@flatbiz/antd 4.2.68 → 4.2.70

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 (314) hide show
  1. package/esm/{_rollupPluginBabelHelpers-1f4d8910.js → _rollupPluginBabelHelpers-fc015ef2.js} +2 -2
  2. package/esm/_rollupPluginBabelHelpers-fc015ef2.js.map +1 -0
  3. package/esm/anchor-steps/index.js +1 -1
  4. package/esm/anchor-steps/index.js.map +1 -1
  5. package/esm/button-operate/index.js +1 -1
  6. package/esm/button-operate/index.js.map +1 -1
  7. package/esm/button-wrapper/index.js +1 -1
  8. package/esm/button-wrapper/index.js.map +1 -1
  9. package/esm/cascader-wrapper/index.js +1 -1
  10. package/esm/cascader-wrapper/index.js.map +1 -1
  11. package/esm/check-list/index.js +1 -1
  12. package/esm/check-list/index.js.map +1 -1
  13. package/esm/checkbox-wrapper/index.js +1 -1
  14. package/esm/checkbox-wrapper/index.js.map +1 -1
  15. package/esm/color-picker-wrapper/index.css +0 -0
  16. package/esm/color-picker-wrapper/index.js +5 -0
  17. package/esm/color-picker-wrapper/index.js.map +1 -0
  18. package/esm/config-provider-wrapper/index.js +1 -1
  19. package/esm/config-provider-wrapper/index.js.map +1 -1
  20. package/esm/context-1f2093c6.js.map +1 -1
  21. package/esm/css-node-hover/index.js +1 -1
  22. package/esm/css-node-hover/index.js.map +1 -1
  23. package/esm/data-render/index.js +1 -1
  24. package/esm/data-render/index.js.map +1 -1
  25. package/esm/date-picker-wrapper/index.js +1 -1
  26. package/esm/date-picker-wrapper/index.js.map +1 -1
  27. package/esm/date-range-picker-wrapper/index.js +1 -1
  28. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  29. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  30. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  31. package/esm/dialog-alert/index.js +1 -1
  32. package/esm/dialog-alert/index.js.map +1 -1
  33. package/esm/dialog-confirm/index.js +1 -1
  34. package/esm/dialog-confirm/index.js.map +1 -1
  35. package/esm/dialog-drawer/index.js +1 -1
  36. package/esm/dialog-drawer/index.js.map +1 -1
  37. package/esm/dialog-drawer-content/index.js +1 -1
  38. package/esm/dialog-drawer-content/index.js.map +1 -1
  39. package/esm/dialog-loading/index.js +1 -1
  40. package/esm/dialog-loading/index.js.map +1 -1
  41. package/esm/dialog-modal/index.js +1 -1
  42. package/esm/dialog-modal/index.js.map +1 -1
  43. package/esm/dom-4d04aa64.js.map +1 -1
  44. package/esm/drag-collapse/index.js +1 -1
  45. package/esm/drag-collapse/index.js.map +1 -1
  46. package/esm/drag-collapse-form-list/index.js +1 -1
  47. package/esm/drag-collapse-form-list/index.js.map +1 -1
  48. package/esm/drawer-wrapper/index.js +1 -1
  49. package/esm/drawer-wrapper/index.js.map +1 -1
  50. package/esm/dropdown-menu-wrapper/index.js +1 -1
  51. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  52. package/esm/dynamic-node/index.js +1 -1
  53. package/esm/dynamic-node/index.js.map +1 -1
  54. package/esm/easy-table/index.js +1 -1
  55. package/esm/easy-table/index.js.map +1 -1
  56. package/esm/editable-field/index.js +1 -1
  57. package/esm/editable-field/index.js.map +1 -1
  58. package/esm/editable-field-provider/index.js +1 -1
  59. package/esm/editable-field-provider/index.js.map +1 -1
  60. package/esm/editable-table/index.js +1 -1
  61. package/esm/editable-table/index.js.map +1 -1
  62. package/esm/editor-wrapper/index.js +1 -1
  63. package/esm/editor-wrapper/index.js.map +1 -1
  64. package/esm/fba-hooks/index.js +1 -1
  65. package/esm/fba-utils/index.js +1 -1
  66. package/esm/fba-utils/index.js.map +1 -1
  67. package/esm/file-import/index.js +1 -1
  68. package/esm/file-import/index.js.map +1 -1
  69. package/esm/flex-layout/index.js +1 -1
  70. package/esm/flex-layout/index.js.map +1 -1
  71. package/esm/form-grid/index.js +1 -1
  72. package/esm/form-item-group/index.js +1 -1
  73. package/esm/form-item-group/index.js.map +1 -1
  74. package/esm/form-item-hidden/index.js +1 -1
  75. package/esm/form-item-hidden/index.js.map +1 -1
  76. package/esm/form-item-wrapper/index.js +1 -1
  77. package/esm/form-item-wrapper/index.js.map +1 -1
  78. package/esm/gap/index.js +1 -1
  79. package/esm/gap/index.js.map +1 -1
  80. package/esm/icon-wrapper/index.js +1 -1
  81. package/esm/icon-wrapper/index.js.map +1 -1
  82. package/esm/{pagination-0e66a3b5.js → index-e98b9352.js} +2 -2
  83. package/esm/index-e98b9352.js.map +1 -0
  84. package/esm/index.js +3 -1
  85. package/esm/input-search-wrapper/index.js +1 -1
  86. package/esm/input-search-wrapper/index.js.map +1 -1
  87. package/esm/input-text-area-wrapper/index.js +1 -1
  88. package/esm/input-text-area-wrapper/index.js.map +1 -1
  89. package/esm/input-wrapper/index.js +1 -1
  90. package/esm/input-wrapper/index.js.map +1 -1
  91. package/esm/label-value-layout/index.js +1 -1
  92. package/esm/label-value-layout/index.js.map +1 -1
  93. package/esm/local-loading/index.js +1 -1
  94. package/esm/local-loading/index.js.map +1 -1
  95. package/esm/modal-action/index.js +1 -1
  96. package/esm/modal-action/index.js.map +1 -1
  97. package/esm/modal-wrapper/index.js +1 -1
  98. package/esm/modal-wrapper/index.js.map +1 -1
  99. package/esm/page-fixed-footer/index.js +1 -1
  100. package/esm/page-fixed-footer/index.js.map +1 -1
  101. package/esm/page404/index.js +1 -1
  102. package/esm/page404/index.js.map +1 -1
  103. package/esm/pagination-wrapper/index.js +1 -1
  104. package/esm/permission/index.js +1 -1
  105. package/esm/permission/index.js.map +1 -1
  106. package/esm/radio-group-wrapper/index.js +1 -1
  107. package/esm/radio-group-wrapper/index.js.map +1 -1
  108. package/esm/relation-tree/index.js +1 -1
  109. package/esm/relation-tree/index.js.map +1 -1
  110. package/esm/request-status/index.js +1 -1
  111. package/esm/request-status/index.js.map +1 -1
  112. package/esm/rich-text-editor/index.js +1 -1
  113. package/esm/rich-text-editor/index.js.map +1 -1
  114. package/esm/rich-text-viewer/index.js +1 -1
  115. package/esm/rich-text-viewer/index.js.map +1 -1
  116. package/esm/roll-location-center/index.js +1 -1
  117. package/esm/roll-location-center/index.js.map +1 -1
  118. package/esm/roll-location-in-view/index.js +1 -1
  119. package/esm/roll-location-in-view/index.js.map +1 -1
  120. package/esm/rule-describe/index.js +1 -1
  121. package/esm/rule-describe/index.js.map +1 -1
  122. package/esm/selector-wrapper/index.js +1 -1
  123. package/esm/selector-wrapper/index.js.map +1 -1
  124. package/esm/selector-wrapper-search/index.js +1 -1
  125. package/esm/selector-wrapper-search/index.js.map +1 -1
  126. package/esm/selector-wrapper-simple/index.js +1 -1
  127. package/esm/selector-wrapper-simple/index.js.map +1 -1
  128. package/esm/simple-layout/index.js +1 -1
  129. package/esm/simple-layout/index.js.map +1 -1
  130. package/esm/sms-count-down/index.js +1 -1
  131. package/esm/sms-count-down/index.js.map +1 -1
  132. package/esm/switch-confirm-wrapper/index.js +1 -1
  133. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  134. package/esm/switch-wrapper/index.js +1 -1
  135. package/esm/switch-wrapper/index.js.map +1 -1
  136. package/esm/table-cell-render/index.js +1 -1
  137. package/esm/table-cell-render/index.js.map +1 -1
  138. package/esm/table-scrollbar/index.js +1 -1
  139. package/esm/table-scrollbar/index.js.map +1 -1
  140. package/esm/table-title-tooltip/index.js +1 -1
  141. package/esm/table-title-tooltip/index.js.map +1 -1
  142. package/esm/tabs-wrapper/index.js +1 -1
  143. package/esm/tabs-wrapper/index.js.map +1 -1
  144. package/esm/tag-group/index.js +1 -1
  145. package/esm/tag-group/index.js.map +1 -1
  146. package/esm/tag-list-select/index.js +1 -1
  147. package/esm/tag-list-select/index.js.map +1 -1
  148. package/esm/tag-wrapper/index.js +1 -1
  149. package/esm/tag-wrapper/index.js.map +1 -1
  150. package/esm/text-css-ellipsis/index.js +1 -1
  151. package/esm/text-css-ellipsis/index.js.map +1 -1
  152. package/esm/text-overflow-render/index.js +1 -1
  153. package/esm/text-overflow-render/index.js.map +1 -1
  154. package/esm/time-picker-wrapper/index.js +1 -1
  155. package/esm/time-picker-wrapper/index.js.map +1 -1
  156. package/esm/time-range-picker-wrapper/index.js +1 -1
  157. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  158. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  159. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  160. package/esm/tips-title/index.css +1 -0
  161. package/esm/tips-title/index.js +5 -0
  162. package/esm/tips-title/index.js.map +1 -0
  163. package/esm/tree-selector-wrapper/index.js +1 -1
  164. package/esm/tree-selector-wrapper/index.js.map +1 -1
  165. package/esm/tree-wrapper/index.js +2 -2
  166. package/esm/tree-wrapper/index.js.map +1 -1
  167. package/esm/upload-wrapper/index.js +1 -1
  168. package/esm/upload-wrapper/index.js.map +1 -1
  169. package/index.d.ts +100 -80
  170. package/package.json +7 -7
  171. package/esm/_rollupPluginBabelHelpers-1f4d8910.js.map +0 -1
  172. package/esm/anchor-steps-601a335f.js +0 -3
  173. package/esm/anchor-steps-601a335f.js.map +0 -1
  174. package/esm/button-operate-d00df6c9.js +0 -3
  175. package/esm/button-operate-d00df6c9.js.map +0 -1
  176. package/esm/button-wrapper-125fce50.js +0 -3
  177. package/esm/button-wrapper-125fce50.js.map +0 -1
  178. package/esm/cascader-wrapper-2f6a926f.js +0 -3
  179. package/esm/cascader-wrapper-2f6a926f.js.map +0 -1
  180. package/esm/cell-render-4934a7de.js +0 -3
  181. package/esm/cell-render-4934a7de.js.map +0 -1
  182. package/esm/center-a4dfda6f.js +0 -3
  183. package/esm/center-a4dfda6f.js.map +0 -1
  184. package/esm/checkbox-wrapper-018a5c59.js +0 -3
  185. package/esm/checkbox-wrapper-018a5c59.js.map +0 -1
  186. package/esm/config-provider-wrapper-dfe8f592.js +0 -3
  187. package/esm/config-provider-wrapper-dfe8f592.js.map +0 -1
  188. package/esm/content-c0e49ffb.js +0 -3
  189. package/esm/content-c0e49ffb.js.map +0 -1
  190. package/esm/css-node-hover-ed7b9860.js +0 -3
  191. package/esm/css-node-hover-ed7b9860.js.map +0 -1
  192. package/esm/data-render-07c0ab6b.js +0 -3
  193. package/esm/data-render-07c0ab6b.js.map +0 -1
  194. package/esm/date-picker-wrapper-ba650858.js +0 -3
  195. package/esm/date-picker-wrapper-ba650858.js.map +0 -1
  196. package/esm/date-range-picker-wrapper-fb15c592.js +0 -3
  197. package/esm/date-range-picker-wrapper-fb15c592.js.map +0 -1
  198. package/esm/date-range-picker-wrapper-form-item-688cf465.js +0 -3
  199. package/esm/date-range-picker-wrapper-form-item-688cf465.js.map +0 -1
  200. package/esm/dialog-alert-89d37729.js +0 -3
  201. package/esm/dialog-alert-89d37729.js.map +0 -1
  202. package/esm/dialog-confirm-74fc9337.js +0 -3
  203. package/esm/dialog-confirm-74fc9337.js.map +0 -1
  204. package/esm/dialog-drawer-550ce42c.js +0 -3
  205. package/esm/dialog-drawer-550ce42c.js.map +0 -1
  206. package/esm/dialog-loading-53cf2c60.js +0 -3
  207. package/esm/dialog-loading-53cf2c60.js.map +0 -1
  208. package/esm/dialog-modal-4a0c72c5.js +0 -3
  209. package/esm/dialog-modal-4a0c72c5.js.map +0 -1
  210. package/esm/drag-collapse-24ccfe8c.js +0 -3
  211. package/esm/drag-collapse-24ccfe8c.js.map +0 -1
  212. package/esm/drag-collapse-433fb1e0.js +0 -3
  213. package/esm/drag-collapse-433fb1e0.js.map +0 -1
  214. package/esm/drawer-wrapper-9af2f178.js +0 -3
  215. package/esm/drawer-wrapper-9af2f178.js.map +0 -1
  216. package/esm/dropdown-menu-wrapper-3a565fd8.js +0 -3
  217. package/esm/dropdown-menu-wrapper-3a565fd8.js.map +0 -1
  218. package/esm/dynamic-node-c7864af4.js +0 -3
  219. package/esm/dynamic-node-c7864af4.js.map +0 -1
  220. package/esm/editable-field-bcac193d.js +0 -3
  221. package/esm/editable-field-bcac193d.js.map +0 -1
  222. package/esm/editable-field-provider-3223073a.js +0 -3
  223. package/esm/editable-field-provider-3223073a.js.map +0 -1
  224. package/esm/editable-table-64554cac.js +0 -3
  225. package/esm/editable-table-64554cac.js.map +0 -1
  226. package/esm/editor-wrapper-ff6e75b7.js +0 -3
  227. package/esm/editor-wrapper-ff6e75b7.js.map +0 -1
  228. package/esm/fba-utils-f9e11d02.js +0 -3
  229. package/esm/fba-utils-f9e11d02.js.map +0 -1
  230. package/esm/file-import-890a1df9.js +0 -3
  231. package/esm/file-import-890a1df9.js.map +0 -1
  232. package/esm/flex-layout-8d2b668b.js +0 -3
  233. package/esm/flex-layout-8d2b668b.js.map +0 -1
  234. package/esm/form-item-hidden-45541774.js +0 -3
  235. package/esm/form-item-hidden-45541774.js.map +0 -1
  236. package/esm/form-item-wrapper-208febed.js +0 -3
  237. package/esm/form-item-wrapper-208febed.js.map +0 -1
  238. package/esm/gap-284e1f59.js +0 -3
  239. package/esm/gap-284e1f59.js.map +0 -1
  240. package/esm/icon-wrapper-ed5fcacc.js +0 -3
  241. package/esm/icon-wrapper-ed5fcacc.js.map +0 -1
  242. package/esm/in-view-448ba714.js +0 -3
  243. package/esm/in-view-448ba714.js.map +0 -1
  244. package/esm/input-search-wrapper-10d4a9b9.js +0 -3
  245. package/esm/input-search-wrapper-10d4a9b9.js.map +0 -1
  246. package/esm/input-text-area-wrapper-1f22992b.js +0 -3
  247. package/esm/input-text-area-wrapper-1f22992b.js.map +0 -1
  248. package/esm/input-wrapper-338ae416.js +0 -3
  249. package/esm/input-wrapper-338ae416.js.map +0 -1
  250. package/esm/label-value-layout-beb35b0d.js +0 -3
  251. package/esm/label-value-layout-beb35b0d.js.map +0 -1
  252. package/esm/modal-action-5c5ca8a7.js +0 -3
  253. package/esm/modal-action-5c5ca8a7.js.map +0 -1
  254. package/esm/modal-wrapper-ff8df98b.js +0 -3
  255. package/esm/modal-wrapper-ff8df98b.js.map +0 -1
  256. package/esm/page-fixed-footer-9ec2b46c.js +0 -3
  257. package/esm/page-fixed-footer-9ec2b46c.js.map +0 -1
  258. package/esm/page404-f087129a.js +0 -3
  259. package/esm/page404-f087129a.js.map +0 -1
  260. package/esm/pagination-0e66a3b5.js.map +0 -1
  261. package/esm/permission-17ed4d0b.js +0 -3
  262. package/esm/permission-17ed4d0b.js.map +0 -1
  263. package/esm/radio-group-wrapper-b34746d1.js +0 -3
  264. package/esm/radio-group-wrapper-b34746d1.js.map +0 -1
  265. package/esm/relation-tree-7bec12bd.js +0 -3
  266. package/esm/relation-tree-7bec12bd.js.map +0 -1
  267. package/esm/request-status-03fc60e2.js +0 -3
  268. package/esm/request-status-03fc60e2.js.map +0 -1
  269. package/esm/rich-text-editor-213daa34.js +0 -3
  270. package/esm/rich-text-editor-213daa34.js.map +0 -1
  271. package/esm/rich-text-viewer-4a859351.js +0 -3
  272. package/esm/rich-text-viewer-4a859351.js.map +0 -1
  273. package/esm/rule-describe-b4a8e831.js +0 -3
  274. package/esm/rule-describe-b4a8e831.js.map +0 -1
  275. package/esm/selector-wrapper-efc44920.js +0 -3
  276. package/esm/selector-wrapper-efc44920.js.map +0 -1
  277. package/esm/selector-wrapper-search-54866dd6.js +0 -3
  278. package/esm/selector-wrapper-search-54866dd6.js.map +0 -1
  279. package/esm/selector-wrapper-simple-7b34f7bd.js +0 -3
  280. package/esm/selector-wrapper-simple-7b34f7bd.js.map +0 -1
  281. package/esm/simple-layout-0dce0d39.js +0 -3
  282. package/esm/simple-layout-0dce0d39.js.map +0 -1
  283. package/esm/sms-count-down-c2609386.js +0 -3
  284. package/esm/sms-count-down-c2609386.js.map +0 -1
  285. package/esm/switch-confirm-wrapper-984d57c4.js +0 -3
  286. package/esm/switch-confirm-wrapper-984d57c4.js.map +0 -1
  287. package/esm/switch-wrapper-f20b9a58.js +0 -3
  288. package/esm/switch-wrapper-f20b9a58.js.map +0 -1
  289. package/esm/table-scrollbar-66c1682c.js +0 -3
  290. package/esm/table-scrollbar-66c1682c.js.map +0 -1
  291. package/esm/tabs-wrapper-0a2da713.js +0 -3
  292. package/esm/tabs-wrapper-0a2da713.js.map +0 -1
  293. package/esm/tag-group-4fbcaa14.js +0 -3
  294. package/esm/tag-group-4fbcaa14.js.map +0 -1
  295. package/esm/tag-list-select-066f682f.js +0 -3
  296. package/esm/tag-list-select-066f682f.js.map +0 -1
  297. package/esm/tag-wrapper-6d8b505e.js +0 -3
  298. package/esm/tag-wrapper-6d8b505e.js.map +0 -1
  299. package/esm/text-css-ellipsis-9135d4c5.js +0 -3
  300. package/esm/text-css-ellipsis-9135d4c5.js.map +0 -1
  301. package/esm/text-overflow-render-7a6541f5.js +0 -3
  302. package/esm/text-overflow-render-7a6541f5.js.map +0 -1
  303. package/esm/time-picker-wrapper-f1d26d96.js +0 -3
  304. package/esm/time-picker-wrapper-f1d26d96.js.map +0 -1
  305. package/esm/time-range-picker-wrapper-be9850b5.js +0 -3
  306. package/esm/time-range-picker-wrapper-be9850b5.js.map +0 -1
  307. package/esm/time-range-picker-wrapper-form-item-9df6c0f4.js +0 -3
  308. package/esm/time-range-picker-wrapper-form-item-9df6c0f4.js.map +0 -1
  309. package/esm/title-render-4f255df0.js +0 -3
  310. package/esm/title-render-4f255df0.js.map +0 -1
  311. package/esm/tree-selector-wrapper-1e520ad1.js +0 -3
  312. package/esm/tree-selector-wrapper-1e520ad1.js.map +0 -1
  313. package/esm/upload-wrapper-bd9ef592.js +0 -3
  314. package/esm/upload-wrapper-bd9ef592.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"selector-wrapper-simple-7b34f7bd.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Select, SelectProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n const result = get(respData, fieldNames?.list);\n return isArray(result) ? result : [];\n }\n return isArray(respData) ? respData : [];\n };\n\n const startDataSourceRequest = async () => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceParams);\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField],\n };\n });\n }\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loading = requestStatus === 'request-progress';\n\n return (\n <Select\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSimple","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","startDataSourceRequest","Promise","$return","$error","_respData","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","then","$await_2","map","item","_extends","unshift","fbaHooks","useEffectCustom","loading","_jsx","Select","style","width","options","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":";yjBA0DaA,EAAwB,SAAxBA,EAAyBC,GACpC,IACEC,EAOED,EAPFC,cACAC,EAMEF,EANFE,cACAC,EAKEH,EALFG,qBACAC,EAIEJ,EAJFI,uBACAC,EAGEL,EAHFK,qBACAC,EAEEN,EAFFM,WACGC,EAAUC,EACXR,EAAKS,GACT,IAAAC,EAA0CC,EAAyB,gBAA5DC,EAAaF,EAAA,GAAEG,EAAgBH,EAAA,GACtC,IAAAI,EAAoCH,IAA7BI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAMG,GAAwBX,eAAAA,EAAYY,QAAS,QACnD,IAAMC,GAAwBb,eAAAA,EAAYc,QAAS,QACnD,IAAMC,GAA2Bf,eAAAA,EAAYgB,WAAY,WACzD,IAAMC,EAAgBrB,EAAcsB,OAEpC,IAAMC,EAAkBC,GAAQ,WAC9B,IAAMC,EAAS1B,IAAkB,KACjC,GAAIA,EAAe,CACjB,MAAO,CACLiB,MAAOS,EAAS,KAAQ1B,EAAciB,MACtCE,MAAOO,EAAS,GAAM1B,EAAcmB,MAExC,CACA,OAAO,IACT,GAAG,CAACnB,IAEJ,IAAM2B,EAAyB,SAAzBA,EAA0BC,GAC9B,GAAI3B,EAAc4B,uBAAwB,CACxC,OAAO5B,EAAc4B,uBAAuBD,EAC9C,CACA,GAAIvB,GAAU,MAAVA,EAAYyB,KAAM,CACpB,IAAMC,EAASC,EAAIJ,EAAUvB,GAAAA,UAAAA,EAAAA,EAAYyB,MACzC,OAAOG,EAAQF,GAAUA,EAAS,EACpC,CACA,OAAOE,EAAQL,GAAYA,EAAW,IAGxC,IAAMM,EAAyB,SAAzBA,IAAyB,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAGrBC,EACFC,EArGV,IAAIC,aAAJ,IAAI,OAAAJ,GAAK,CAAC,MAAAK,GAAW,OAAOJ,EAAAI,EAAM,GAAlC,IAAIC,EAAA,SAuHSC,GAvHb,IAwHM/B,EAAiB,iBACjBT,GAAAA,UAAAA,EAAAA,EAAyBwC,GAzH/B,OAAOH,GAAE,CAAC,MAAAC,GAAW,OAAOJ,EAAAI,EAAM,GAkG9B,IACE7B,EAAiB,oBACA,OAAAuB,QAAAS,QAAM3C,EAAc4C,WAAS,UAAA,EAAvB5C,EAAc4C,UAAYvB,IAAhCwB,eAA8CC,GApGrE,IAoGYnB,EAAWmB,EACbR,EAAkBZ,EAAuBC,GAC7C1B,GAAAA,UAAAA,EAAAA,EAAuBqC,GACvB,GAAIvB,GAAyBE,EAAuB,CAClDqB,EAAkBA,EAAgBS,KAAI,SAACC,GACrC,OAAAC,KACKD,EAAI,CACPhC,MAAOgC,EAAKjC,GACZG,MAAO8B,EAAK/B,GACZG,SAAU4B,EAAK7B,IAEnB,GACF,CAEA,GAAII,EAAiB,CACnBe,EAAgBY,QAAQ3B,EAC1B,CACAT,EAAcwB,GACd3B,EAAiB,mBAtHvB,OAAO4B,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAuH9B,CAAC,MAAOC,GAAOD,EAAPC,EAGT,CAAC,GACF,EAEDS,EAASC,iBAAgB,gBAClBnB,GACN,GAAE,IAEH,IAAMoB,EAAU3C,IAAkB,mBAElC,OACE4C,EAACC,EAAMN,KACD5C,EAAU,CACdmD,MAAKP,EAAA,CAAIQ,MAAO,QAAW3D,EAAM0D,OACjCE,QAAS7C,EACT8C,gBACEL,EAACM,EAAa,CACZC,OAAQnD,EACR2C,QAASA,EACTS,cAAe3D,EACf4D,YACET,EAACU,EAAM,CAACC,KAAK,UAAUC,QAASjC,EAAuBkC,SAAC,aAM9DC,WACE1D,IAAkB,gBAChB4C,EAAAe,EAAA,CAAcC,KAAMjB,EAASa,QAASjC,IACpCsC,UAENlB,QAASA,IAGf"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{isArray as e}from"@dimjs/lang/cjs/is-array";import{extend as l}from"@dimjs/utils/cjs/extend";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{Space as i}from"antd";import{Fragment as s}from"react";import{fbaHooks as a}from"./fba-hooks/index.js";import{jsx as r,jsxs as m}from"react/jsx-runtime";var d=function d(o){var c=o.formLabelAlign||"right";var n=t("simple-layout",{"simple-layout-tight":o.layoutType==="tight","simple-layout-formlabel-left":c==="left","simple-layout-title-fixed":o.titleFixed,"simple-layout-small":o.size==="small"},o.className);var u=a.useThemeToken();var y=l({"--simple-layout-colorPrimary":u.colorPrimary},o.style,{padding:o.padding,width:o.width});if(o.hidden)return r(s,{});return m("div",{className:n,style:y,children:[o.title&&o.titleExtra?r("div",{className:t({"simple-layout-title-sign":o.titleLeftLine}),style:o.titleStyle,children:m(i,{className:"simple-layout-title-extra-space",children:[r("div",{className:"simple-layout-title",children:o.title}),r("div",{className:"simple-layout-title-extra",children:o.titleExtra})]})}):null,o.title&&!o.titleExtra?r("div",{className:t("simple-layout-title",{"simple-layout-title-sign":o.titleLeftLine}),style:o.titleStyle,children:o.title}):null,o.desc&&!e(o.desc)?r("div",{className:"simple-layout-desc",children:o.desc}):null,o.desc&&e(o.desc)?r("div",{className:"simple-layout-desc",children:r(i,{direction:"vertical",size:5,children:o.desc.map((function(e,l){return r(s,{children:e},l)}))})}):null,o.children?r("div",{className:"simple-layout-content",style:o.contentStyle,children:o.children}):null]})};d.defaultProps={titleLeftLine:true,layoutType:"layer"};export{d as S};
3
- //# sourceMappingURL=simple-layout-0dce0d39.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-layout-0dce0d39.js","sources":["@flatbiz/antd/src/simple-layout/simple-layout.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type SimpleLayoutProps = {\n className?: string;\n style?: CSSProperties;\n title?: string | ReactElement;\n desc?: string | ReactElement | string[] | ReactElement[];\n formLabelAlign?: 'left' | 'right';\n /**\n * layoutType 布局类型\n * ```\n * 1. layer:分层布局\n * 2. tight:紧凑布局(没有外边距)\n * ```\n */\n layoutType?: 'layer' | 'tight';\n titleLeftLine?: boolean;\n titleStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n /** 优先级大于 style padding */\n padding?: CSSProperties['padding'];\n /** 优先级大于 style width */\n width?: CSSProperties['width'];\n children?: ReactNode | ReactNode[];\n titleExtra?: string | ReactElement;\n hidden?: boolean;\n titleFixed?: boolean;\n /**\n * 间距尺寸\n * 1. default = 15\n * 2. small = 8\n */\n size?: 'default' | 'small';\n};\n\n/**\n * 简单布局\n * @param props\n * @returns\n * ```\n * 1. layoutType 布局类型\n * layer:分层布局\n * tight:紧凑布局(没有外边距)\n * ```\n */\nexport const SimpleLayout = (props: SimpleLayoutProps) => {\n const labelAlign = props.formLabelAlign || 'right';\n const className = classNames(\n 'simple-layout',\n {\n 'simple-layout-tight': props.layoutType === 'tight',\n 'simple-layout-formlabel-left': labelAlign === 'left',\n 'simple-layout-title-fixed': props.titleFixed,\n 'simple-layout-small': props.size === 'small',\n },\n props.className,\n );\n\n const theme = fbaHooks.useThemeToken();\n const style = extend({ '--simple-layout-colorPrimary': theme.colorPrimary }, props.style, {\n padding: props.padding,\n width: props.width,\n });\n\n if (props.hidden) return <Fragment />;\n\n return (\n <div className={className} style={style}>\n {props.title && props.titleExtra ? (\n <div\n className={classNames({ 'simple-layout-title-sign': props.titleLeftLine })}\n style={props.titleStyle}\n >\n <Space className=\"simple-layout-title-extra-space\">\n <div className=\"simple-layout-title\">{props.title}</div>\n <div className=\"simple-layout-title-extra\">{props.titleExtra}</div>\n </Space>\n </div>\n ) : null}\n {props.title && !props.titleExtra ? (\n <div\n className={classNames('simple-layout-title', {\n 'simple-layout-title-sign': props.titleLeftLine,\n })}\n style={props.titleStyle}\n >\n {props.title}\n </div>\n ) : null}\n {props.desc && !isArray(props.desc) ? <div className=\"simple-layout-desc\">{props.desc}</div> : null}\n {props.desc && isArray(props.desc) ? (\n <div className=\"simple-layout-desc\">\n <Space direction=\"vertical\" size={5}>\n {(props.desc as string[]).map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n </div>\n ) : null}\n {props.children ? (\n <div className=\"simple-layout-content\" style={props.contentStyle}>\n {props.children}\n </div>\n ) : null}\n </div>\n );\n};\n\nSimpleLayout.defaultProps = {\n titleLeftLine: true,\n layoutType: 'layer',\n};\n"],"names":["SimpleLayout","props","labelAlign","formLabelAlign","className","_classNames","layoutType","titleFixed","size","theme","fbaHooks","useThemeToken","style","_extend","colorPrimary","padding","width","hidden","_jsx","Fragment","_jsxs","children","title","titleExtra","titleLeftLine","titleStyle","Space","desc","_isArray","direction","map","item","index","contentStyle","defaultProps"],"mappings":";kUAkDaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAaD,EAAME,gBAAkB,QAC3C,IAAMC,EAAYC,EAChB,gBACA,CACE,sBAAuBJ,EAAMK,aAAe,QAC5C,+BAAgCJ,IAAe,OAC/C,4BAA6BD,EAAMM,WACnC,sBAAuBN,EAAMO,OAAS,SAExCP,EAAMG,WAGR,IAAMK,EAAQC,EAASC,gBACvB,IAAMC,EAAQC,EAAO,CAAE,+BAAgCJ,EAAMK,cAAgBb,EAAMW,MAAO,CACxFG,QAASd,EAAMc,QACfC,MAAOf,EAAMe,QAGf,GAAIf,EAAMgB,OAAQ,OAAOC,EAACC,EAAW,CAAA,GAErC,OACEC,EAAA,MAAA,CAAKhB,UAAWA,EAAWQ,MAAOA,EAAMS,SAAA,CACrCpB,EAAMqB,OAASrB,EAAMsB,WACpBL,EAAA,MAAA,CACEd,UAAWC,EAAW,CAAE,2BAA4BJ,EAAMuB,gBAC1DZ,MAAOX,EAAMwB,WAAWJ,SAExBD,EAACM,EAAK,CAACtB,UAAU,kCAAiCiB,UAChDH,EAAA,MAAA,CAAKd,UAAU,sBAAqBiB,SAAEpB,EAAMqB,QAC5CJ,EAAA,MAAA,CAAKd,UAAU,4BAA2BiB,SAAEpB,EAAMsB,kBAGpD,KACHtB,EAAMqB,QAAUrB,EAAMsB,WACrBL,EAAA,MAAA,CACEd,UAAWC,EAAW,sBAAuB,CAC3C,2BAA4BJ,EAAMuB,gBAEpCZ,MAAOX,EAAMwB,WAAWJ,SAEvBpB,EAAMqB,QAEP,KACHrB,EAAM0B,OAASC,EAAQ3B,EAAM0B,MAAQT,EAAA,MAAA,CAAKd,UAAU,qBAAoBiB,SAAEpB,EAAM0B,OAAc,KAC9F1B,EAAM0B,MAAQC,EAAQ3B,EAAM0B,MAC3BT,EAAA,MAAA,CAAKd,UAAU,qBAAoBiB,SACjCH,EAACQ,EAAK,CAACG,UAAU,WAAWrB,KAAM,EAAEa,SAChCpB,EAAM0B,KAAkBG,KAAI,SAACC,EAAMC,GACnC,OAAOd,EAACC,EAAQ,CAAAE,SAAcU,GAARC,UAI1B,KACH/B,EAAMoB,SACLH,EAAA,MAAA,CAAKd,UAAU,wBAAwBQ,MAAOX,EAAMgC,aAAaZ,SAC9DpB,EAAMoB,WAEP,OAGV,EAEArB,EAAakC,aAAe,CAC1BV,cAAe,KACflB,WAAY"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{useState as a,useMemo as n,useEffect as e}from"react";import{jsx as o}from"react/jsx-runtime";var s=function s(i){var c=a(),u=c[0],l=c[1];var f=a(false),T=f[0],d=f[1];var v=a(false),m=v[0],x=v[1];var k=n((function(){return{sendTxt:i.sendTxt,sentTxt:i.sentTxt,processingTxt:i.processingTxt,format:i.format,autoStart:i.autoStart,totalTicks:i.totalTicks,duration:i.duration}}),[]);var p=k.format;var g=k.totalTicks;var S=k.duration;var h=r.useCountdownCallback((function(t){var r=t/1e3;if(t>0){if(!T){d(true)}l(p.replace("{t}",String(r)));i.onTick==null?void 0:i.onTick(r)}else if(t===0){d(false);x(false);i.onTick==null?void 0:i.onTick(r);l(k.sentTxt)}}),g*1e3,{intervalTime:S});e((function(){if(!k.autoStart){l(k.sendTxt)}else{h();x(true);d(true)}}),[h,k]);var j=r.useCallbackRef((function(){if(T||m)return;x(true);l(k.processingTxt);void i.onSendRequest().then((function(){d(true);h()})).catch((function(){l(k.sendTxt);x(false)}))}));var C=t("v-count-down",i.className,{running:T,starting:m});return o("div",{className:C,onClick:j,children:u})};s.defaultProps={totalTicks:60,duration:1e3,autoStart:false,format:"{t}s",sendTxt:"获取验证码",sentTxt:"重新获取",processingTxt:"发送中..."};export{s as S};
3
- //# sourceMappingURL=sms-count-down-c2609386.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sms-count-down-c2609386.js","sources":["@flatbiz/antd/src/sms-count-down/sms-count-down.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nexport interface SmsCountDownProps {\n onSendRequest: () => Promise<void>; // 验证码请求函数\n totalTicks?: number; // 总倒计时,默认:60(s)\n duration?: number; // 倒计时间隔,默认:1000ms(1s)\n autoStart?: boolean; // 是否自动开始倒计时,默认:fasle,注意:不会自动调用 onSendRequest\n format?: string; // 倒计时格式化,默认:'{t}s'\n sendTxt?: string; // 文案,默认:'获取验证码'\n sentTxt?: string; // 倒计时完成文案,默认:'重新获取'\n processingTxt?: string; // 倒计时中文案,默认:'发送中...'\n onTick?: (time: number) => void; // 倒计时回调\n className?: string;\n}\nexport const SmsCountDown: FC<SmsCountDownProps> = (props) => {\n const [showMessage, setShowMessage] = useState<string>();\n\n const [running, setRunning] = useState(false);\n const [starting, setStarting] = useState(false);\n\n // 初始化设置有效\n const initConfig = useMemo<Omit<SmsCountDownProps, 'onSendRequest' | 'onTick' | 'className'>>(() => {\n return {\n sendTxt: props.sendTxt,\n sentTxt: props.sentTxt,\n processingTxt: props.processingTxt,\n format: props.format,\n autoStart: props.autoStart,\n totalTicks: props.totalTicks,\n duration: props.duration,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const format = initConfig.format as string;\n const totalTicks = initConfig.totalTicks as number;\n const duration = initConfig.duration as number;\n\n const countdownFnc = hooks.useCountdownCallback(\n (num) => {\n const second = num / 1000;\n if (num > 0) {\n if (!running) {\n setRunning(true);\n }\n setShowMessage(format.replace('{t}', String(second)));\n props.onTick?.(second);\n } else if (num === 0) {\n setRunning(false);\n setStarting(false);\n props.onTick?.(second);\n setShowMessage(initConfig.sentTxt);\n }\n },\n totalTicks * 1000,\n { intervalTime: duration },\n );\n\n useEffect(() => {\n if (!initConfig.autoStart) {\n setShowMessage(initConfig.sendTxt);\n } else {\n countdownFnc();\n setStarting(true);\n setRunning(true);\n }\n }, [countdownFnc, initConfig]);\n\n const onStart = hooks.useCallbackRef(() => {\n if (running || starting) return;\n setStarting(true);\n setShowMessage(initConfig.processingTxt);\n void props\n .onSendRequest()\n .then(() => {\n setRunning(true);\n countdownFnc();\n })\n .catch(() => {\n setShowMessage(initConfig.sendTxt);\n setStarting(false);\n });\n });\n\n const className = classNames('v-count-down', props.className, {\n running,\n starting,\n });\n\n return (\n <div className={className} onClick={onStart}>\n {showMessage}\n </div>\n );\n};\n\nSmsCountDown.defaultProps = {\n totalTicks: 60,\n duration: 1000,\n autoStart: false,\n format: '{t}s',\n sendTxt: '获取验证码',\n sentTxt: '重新获取',\n processingTxt: '发送中...',\n};\n"],"names":["SmsCountDown","props","_useState","useState","showMessage","setShowMessage","_useState2","running","setRunning","_useState3","starting","setStarting","initConfig","useMemo","sendTxt","sentTxt","processingTxt","format","autoStart","totalTicks","duration","countdownFnc","_hooks","useCountdownCallback","num","second","replace","String","onTick","intervalTime","useEffect","onStart","useCallbackRef","onSendRequest","then","catch","className","_classNames","_jsx","onClick","children","defaultProps"],"mappings":";iNAgBaA,EAAsC,SAAtCA,EAAuCC,GAClD,IAAAC,EAAsCC,IAA/BC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAElC,IAAAI,EAA8BH,EAAS,OAAhCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAgCN,EAAS,OAAlCO,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAG5B,IAAMG,EAAaC,GAA2E,WAC5F,MAAO,CACLC,QAASb,EAAMa,QACfC,QAASd,EAAMc,QACfC,cAAef,EAAMe,cACrBC,OAAQhB,EAAMgB,OACdC,UAAWjB,EAAMiB,UACjBC,WAAYlB,EAAMkB,WAClBC,SAAUnB,EAAMmB,SAGnB,GAAE,IAEH,IAAMH,EAASL,EAAWK,OAC1B,IAAME,EAAaP,EAAWO,WAC9B,IAAMC,EAAWR,EAAWQ,SAE5B,IAAMC,EAAeC,EAAMC,sBACzB,SAACC,GACC,IAAMC,EAASD,EAAM,IACrB,GAAIA,EAAM,EAAG,CACX,IAAKjB,EAAS,CACZC,EAAW,KACb,CACAH,EAAeY,EAAOS,QAAQ,MAAOC,OAAOF,KAC5CxB,EAAM2B,QAAN3B,UAAAA,EAAAA,EAAM2B,OAASH,EACjB,MAAO,GAAID,IAAQ,EAAG,CACpBhB,EAAW,OACXG,EAAY,OACZV,EAAM2B,QAAN3B,UAAAA,EAAAA,EAAM2B,OAASH,GACfpB,EAAeO,EAAWG,QAC5B,CACF,GACAI,EAAa,IACb,CAAEU,aAAcT,IAGlBU,GAAU,WACR,IAAKlB,EAAWM,UAAW,CACzBb,EAAeO,EAAWE,QAC5B,KAAO,CACLO,IACAV,EAAY,MACZH,EAAW,KACb,CACF,GAAG,CAACa,EAAcT,IAElB,IAAMmB,EAAUT,EAAMU,gBAAe,WACnC,GAAIzB,GAAWG,EAAU,OACzBC,EAAY,MACZN,EAAeO,EAAWI,oBACrBf,EACFgC,gBACAC,MAAK,WACJ1B,EAAW,MACXa,GACF,IACCc,OAAM,WACL9B,EAAeO,EAAWE,SAC1BH,EAAY,MACd,GACJ,IAEA,IAAMyB,EAAYC,EAAW,eAAgBpC,EAAMmC,UAAW,CAC5D7B,QAAAA,EACAG,SAAAA,IAGF,OACE4B,EAAA,MAAA,CAAKF,UAAWA,EAAWG,QAASR,EAAQS,SACzCpC,GAGP,EAEAJ,EAAayC,aAAe,CAC1BtB,WAAY,GACZC,SAAU,IACVF,UAAW,MACXD,OAAQ,OACRH,QAAS,QACTC,QAAS,OACTC,cAAe"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as n}from"@wove/react/cjs/hooks";import{message as o,Popconfirm as t,Switch as i}from"antd";import{useState as u,useMemo as a}from"react";import{fbaHooks as s}from"./fba-hooks/index.js";import{jsx as l}from"react/jsx-runtime";var c=["popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage"];var f=function f(d){var v=d.popConfirmProps,h=d.needConfirm,m=d.checkedValue,p=d.unCheckedValue,C=d.onChange,g=d.value,k=d.serviceConfig,b=d.noMessage,P=e(d,c);var y=v||{},j=y.description,V=y.title,x=y.disabled;var R=u(false),q=R[0],w=R[1];var B=u(false),E=B[0],M=B[1];s.useEffectCustom((function(){w(g===m)}),[d.value]);var _=a((function(){return h==="close"&&q||h==="open"&&!q||!h||h==="all"}),[q,h]);var H=n.useCallbackRef((function(){return new Promise((function(e,r){var n,t,i;n=!q?m:p;if(k!=null&&k.onRequest){var u=function(e){return function(n){try{M(false);return e&&e.call(this,n)}catch(e){return r(e)}}.bind(this)}.bind(this);var a=function(){try{return l.call(this)}catch(e){return r(e)}}.bind(this);var s=function(e){try{if(!b){void o.error((e==null?void 0:e.message)||(k==null?void 0:(i=k.message)==null?void 0:i.defaultError)||"状态修改失败!")}return u(a)()}catch(e){return u(r)(e)}};try{M(true);return Promise.resolve(k.onRequest(n)).then((function(e){try{w(!q);C==null?void 0:C(n);if(!b){void o.success((k==null?void 0:(t=k.message)==null?void 0:t.success)||"状态修改成功!")}return u(a)()}catch(e){return s(e)}}),s)}catch(e){s(e)}}else{w(!q);C==null?void 0:C(n);return l.call(this)}function l(){return e()}}))}));if(_){return l(t,{disabled:x,okButtonProps:{loading:E},title:V,description:j,onConfirm:H,children:l(i,r({checked:q},P))})}return l(i,r({checked:q,loading:E},P,{onChange:H}))};export{f as S};
3
- //# sourceMappingURL=switch-confirm-wrapper-984d57c4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch-confirm-wrapper-984d57c4.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?: Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>;\n serviceConfig?: {\n onRequest: (value: SwitchConfirmWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n\n/**\n *\n * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】\n * @param props\n * @param value\n * @param checkedValue:选中状态值\n * @param unCheckedValue:非选中状态值\n * @param needConfirm:二次pop拦截时机 可不传 同 all close:switch 由开启转换成关闭时pop弹出、open:switch 由开启转换成开启时pop弹出all:switch 一直popnone:switch 不弹出\n * @param noMessage:不采用内置message提示\n * @param onChange:switch 有效切换回掉\n * @param popConfirmProps:popConfirm中参数 disabled title description\n * @param serviceConfig onRequest\n * @field onRequest 请求函数\n * @field message message配置 success defaultError\n * ```\n * 1. 单独使用\n * <SwitchConfirmWrapper\n * value={value}\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * onChange={(value) => {\n * setValue(value as string);\n * }}\n * />\n *\n * 2. 与Form.Item结合使用\n * <Form.Item name=\"open\">\n * <SwitchConfirmWrapper\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * />\n * </Form.Item>\n * ```\n */\nexport const SwitchConfirmWrapper = (props: SwitchConfirmWrapperProps) => {\n const {\n popConfirmProps,\n needConfirm,\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n serviceConfig,\n noMessage,\n ...otherProps\n } = props;\n const { description, title, disabled } = popConfirmProps || {};\n const [isCheked, setIsCheked] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n fbaHooks.useEffectCustom(() => {\n setIsCheked(value === checkedValue);\n }, [props.value]);\n\n const showConfirm = useMemo(() => {\n return (\n (needConfirm === 'close' && isCheked) ||\n (needConfirm === 'open' && !isCheked) ||\n !needConfirm ||\n needConfirm === 'all'\n );\n }, [isCheked, needConfirm]);\n\n const onHandleChange = hooks.useCallbackRef(async () => {\n const changeValue = !isCheked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n if (!noMessage) {\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n }\n } catch (error) {\n if (!noMessage) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n }\n } finally {\n setLoading(false);\n }\n } else {\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n }\n });\n if (showConfirm) {\n return (\n <Popconfirm\n disabled={disabled}\n okButtonProps={{ loading: loading }}\n title={title}\n description={description}\n onConfirm={onHandleChange}\n >\n <Switch checked={isCheked} {...otherProps} />\n </Popconfirm>\n );\n }\n return <Switch checked={isCheked} loading={loading} {...otherProps} onChange={onHandleChange} />;\n};\n"],"names":["SwitchConfirmWrapper","props","popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage","otherProps","_objectWithoutPropertiesLoose","_excluded","_ref","description","title","disabled","_useState","useState","isCheked","setIsCheked","_useState2","loading","setLoading","fbaHooks","useEffectCustom","showConfirm","useMemo","onHandleChange","_hooks","useCallbackRef","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","_jsx","Popconfirm","okButtonProps","onConfirm","children","Switch","_extends","checked"],"mappings":";6aA4EaA,EAAuB,SAAvBA,EAAwBC,GACnC,IACEC,EASED,EATFC,gBACAC,EAQEF,EARFE,YACAC,EAOEH,EAPFG,aACAC,EAMEJ,EANFI,eACAC,EAKEL,EALFK,SACAC,EAIEN,EAJFM,MACAC,EAGEP,EAHFO,cACAC,EAEER,EAFFQ,UACGC,EAAUC,EACXV,EAAKW,GACT,IAAAC,EAAyCX,GAAmB,CAAE,EAAtDY,EAAWD,EAAXC,YAAaC,EAAKF,EAALE,MAAOC,EAAQH,EAARG,SAC5B,IAAAC,EAAgCC,EAAkB,OAA3CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5B,IAAAI,EAA8BH,EAAkB,OAAzCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAE1BG,EAASC,iBAAgB,WACvBL,EAAYb,IAAUH,EACxB,GAAG,CAACH,EAAMM,QAEV,IAAMmB,EAAcC,GAAQ,WAC1B,OACGxB,IAAgB,SAAWgB,GAC3BhB,IAAgB,SAAWgB,IAC3BhB,GACDA,IAAgB,KAEpB,GAAG,CAACgB,EAAUhB,IAEd,IAAMyB,EAAiBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAuDC,EAAAC,EAAvDF,GAAef,EAAWf,EAAeC,EAC/C,GAAIG,GAAa,MAAbA,EAAe6B,UAAW,CAAA,IAAAC,EA3GlC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IAyHQjB,EAAW,OAzH4F,OAAOgB,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAQC,KAAF,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SAoHWC,GApHf,IAqHQ,IAAKvC,EAAW,MACTwC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAWzC,gBAAa4B,EAAb5B,EAAeyC,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,UAC/E,CAvHR,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GA4G5B,IACEpB,EAAW,MACX,OAAAQ,QAAAoB,QAAM3C,EAAc6B,UAAUH,IAA9BkB,eAA0CC,GA9GlD,IA+GQjC,GAAaD,GACbb,GAAAA,UAAAA,EAAAA,EAAW4B,GACX,IAAKzB,EAAW,MACTwC,EAAQK,SAAQ9C,gBAAa2B,EAAb3B,EAAeyC,UAAfd,UAAAA,EAAAA,EAAwBmB,UAAW,UAC1D,CAnHR,OAAOhB,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EAoH5B,CAAC,MAAOC,GAAOD,EAAPC,EAIT,CAGF,KAAO,CACL5B,GAAaD,GACbb,GAAAA,UAAAA,EAAAA,EAAW4B,GAAa,OA7H9BY,EAAGL,KAAQC,KA8HP,CAAC,SAAAI,IAAA,OAAAd,GAAA,CAAA,OAEH,GAAIN,EAAa,CACf,OACE6B,EAACC,EAAU,CACTxC,SAAUA,EACVyC,cAAe,CAAEnC,QAASA,GAC1BP,MAAOA,EACPD,YAAaA,EACb4C,UAAW9B,EAAe+B,SAE1BJ,EAACK,EAAMC,EAAA,CAACC,QAAS3C,GAAcT,KAGrC,CACA,OAAO6C,EAACK,EAAMC,EAAA,CAACC,QAAS3C,EAAUG,QAASA,GAAaZ,EAAU,CAAEJ,SAAUsB,IAChF"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as n}from"@flatbiz/utils";import{message as o,Tooltip as i,Switch as l}from"antd";import{useState as u}from"react";import{jsx as a}from"react/jsx-runtime";var c=["checkedValue","unCheckedValue","onChange","value","tooltipProps","tooltipTitle","serviceConfig"];var s=function s(f){var v=f.checkedValue,h=f.unCheckedValue,d=f.onChange,m=f.value,p=f.tooltipProps,g=f.tooltipTitle,C=f.serviceConfig,k=e(f,c);var b=u(),y=b[0],P=b[1];var V=t.useCallbackRef((function(e){return new Promise((function(r,t){var n,i,l;n=e?v:h;if(C!=null&&C.onRequest){var u=function(e){return function(r){try{P(false);return e&&e.call(this,r)}catch(e){return t(e)}}.bind(this)}.bind(this);var a=function(){try{return s.call(this)}catch(e){return t(e)}}.bind(this);var c=function(e){try{void o.error((e==null?void 0:e.message)||(C==null?void 0:(l=C.message)==null?void 0:l.defaultError)||"状态修改失败!");return u(a)()}catch(e){return u(t)(e)}};try{P(true);return Promise.resolve(C.onRequest(n)).then((function(e){try{d==null?void 0:d(n);void o.success((C==null?void 0:(i=C.message)==null?void 0:i.success)||"状态修改成功!");return u(a)()}catch(e){return c(e)}}),c)}catch(e){c(e)}}else{d==null?void 0:d(n);return s.call(this)}function s(){return r()}}))}));var j;if(typeof g==="function"){j=g(m)}else{j=g}if(j){return a(i,r({placement:"top"},p,{title:j,children:a(l,r({},k,{checked:!n(m)&&v===m,onChange:V}))}))}return a(l,r({loading:y},k,{checked:!n(m)&&v===m,onChange:V}))};export{s as S};
3
- //# sourceMappingURL=switch-wrapper-f20b9a58.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch-wrapper-f20b9a58.js","sources":["@flatbiz/antd/src/switch-wrapper/switch-wrapper.tsx"],"sourcesContent":["import { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Switch, SwitchProps, Tooltip, TooltipProps } from 'antd';\nimport { useState } from 'react';\n\nexport type SwitchWrapperValue = string | number | boolean;\nexport type SwitchWrapperProps = Omit<SwitchProps, 'checked' | 'defaultChecked' | 'onChange'> & {\n value?: SwitchWrapperValue;\n checkedValue: SwitchWrapperValue;\n unCheckedValue: SwitchWrapperValue;\n onChange?: (value: SwitchWrapperValue) => void;\n tooltipProps?: Omit<TooltipProps, 'title'>;\n tooltipTitle?: string | ((value?: SwitchWrapperValue) => string | undefined);\n serviceConfig?: {\n onRequest: (value: SwitchWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n/**\n * 解决Switch只能接收boolean的限制,与Form.Item结合使用最佳\n * ```\n * 1. value 为状态值,不局限于boolean,可以为 [string | number | boolean]\n * 2. checkedValue 选中值\n * 3. unCheckedValue 未选中值\n * 4. 与 Form.Item 结合使用,不再需要配置 valuePropName\n * <Form.Item name=\"fieldName\">\n * <SwitchWrapper checkedValue={2} unCheckedValue={1} />\n * </Form.Item>\n * 5. 可设置tooltip效果数据显示\n * 6. 可设置 serviceConfig 配置服务调用交互\n * ```\n */\nexport const SwitchWrapper = (props: SwitchWrapperProps) => {\n const {\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n tooltipProps,\n tooltipTitle,\n serviceConfig,\n ...otherProps\n } = props;\n const [loading, setLoading] = useState<boolean>();\n const onChangeHandle = hooks.useCallbackRef(async (checked) => {\n const changeValue = checked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n onChange?.(changeValue);\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n } catch (error) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n } finally {\n setLoading(false);\n }\n } else {\n onChange?.(changeValue);\n }\n });\n\n let tipTitle: string | undefined;\n\n if (typeof tooltipTitle === 'function') {\n tipTitle = tooltipTitle(value);\n } else {\n tipTitle = tooltipTitle;\n }\n\n if (tipTitle) {\n return (\n <Tooltip placement=\"top\" {...tooltipProps} title={tipTitle}>\n <Switch\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n </Tooltip>\n );\n }\n\n return (\n <Switch\n loading={loading}\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n );\n};\n"],"names":["SwitchWrapper","props","checkedValue","unCheckedValue","onChange","value","tooltipProps","tooltipTitle","serviceConfig","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","loading","setLoading","onChangeHandle","_hooks","useCallbackRef","checked","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","tipTitle","_jsx","Tooltip","_extends","placement","title","children","Switch","isUndefinedOrNull"],"mappings":";kZAmCaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IACEC,EAQED,EARFC,aACAC,EAOEF,EAPFE,eACAC,EAMEH,EANFG,SACAC,EAKEJ,EALFI,MACAC,EAIEL,EAJFK,aACAC,EAGEN,EAHFM,aACAC,EAEEP,EAFFO,cACGC,EAAUC,EACXT,EAAKU,GACT,IAAAC,EAA8BC,IAAvBC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAiBC,EAAMC,gBAAe,SAAOC,GAAP,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAqDC,EAAAC,EAArDF,EAAcJ,EAAUjB,EAAeC,EAC7C,GAAIK,GAAa,MAAbA,EAAekB,UAAW,CAAA,IAAAC,EAjDlC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IA0DQd,EAAW,OA1D4F,OAAOa,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAQC,KAAF,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SAuDWC,GAvDf,SAwDaC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAW9B,gBAAaiB,EAAbjB,EAAe8B,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,WAxDrF,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GAkD5B,IACEjB,EAAW,MACX,OAAAK,QAAAoB,QAAMhC,EAAckB,UAAUH,IAA9BkB,eAA0CC,GApDlD,IAqDQtC,GAAAA,UAAAA,EAAAA,EAAWmB,QACNe,EAAQK,SAAQnC,gBAAagB,EAAbhB,EAAe8B,UAAfd,UAAAA,EAAAA,EAAwBmB,UAAW,WAtDhE,OAAOhB,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EAuD5B,CAAC,MAAOC,GAAOD,EAAPC,EAET,CAGF,KAAO,CACLjC,GAAAA,UAAAA,EAAAA,EAAWmB,GAAa,OA7D9BY,EAAGL,KAAQC,KA8DP,CAAC,SAAAI,IAAA,OAAAd,GAAA,CAAA,OAGH,IAAIuB,EAEJ,UAAWrC,IAAiB,WAAY,CACtCqC,EAAWrC,EAAaF,EAC1B,KAAO,CACLuC,EAAWrC,CACb,CAEA,GAAIqC,EAAU,CACZ,OACEC,EAACC,EAAOC,EAAA,CAACC,UAAU,OAAU1C,EAAY,CAAE2C,MAAOL,EAASM,SACzDL,EAACM,EAAMJ,KACDtC,EAAU,CACdU,SAAUiC,EAAkB/C,IAAUH,IAAiBG,EACvDD,SAAUY,OAIlB,CAEA,OACE6B,EAACM,EAAMJ,EAAA,CACLjC,QAASA,GACLL,EAAU,CACdU,SAAUiC,EAAkB/C,IAAUH,IAAiBG,EACvDD,SAAUY,IAGhB"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as r,a as t}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{get as e}from"@dimjs/utils/cjs/get";import{useCreation as n,useInViewport as o,useSize as i,useEventListener as l}from"ahooks";import{Affix as a}from"antd";import{cloneElement as u,useRef as c,useState as f}from"react";import{fbaHooks as d}from"./fba-hooks/index.js";import{jsxs as v,Fragment as s,jsx as m}from"react/jsx-runtime";var p=["children","target"];var h=d.useEffectCustom;var g=function r(t){if(!t)return undefined;var e=getComputedStyle(t);if(e.overflowY==="scroll"||e.overflowY==="auto"){return t}return r(t.parentNode)};var y=function n(o){var i=o.children,l=o.target,a=r(o,p);var c=e(i,"props.summary");return u(i,t({},a,{summary:function r(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++){e[n]=arguments[n]}return v(s,{children:[c==null?void 0:c.apply(void 0,e),m(b,{target:l})]})}}))};var b=function r(t){var e=t.target;var u=c();var d=c();var v=f(false),s=v[0],p=v[1];var y=n((function(){var r;var t=function r(t){if(!t)return undefined;if(t.nodeName==="TABLE"){return t}return r(t.parentNode)};var e=t(u==null?void 0:(r=u.current)==null?void 0:r.parentElement);return{table:e,tableBox:e==null?void 0:e.parentElement}}),[u.current]),b=y.table,x=y.tableBox;var W=o(b==null?void 0:b.querySelector("tbody")),j=W[0];var w=i(x);var B=n((function(){if(e)return e;return g(b)||document.body}),[e,b,w]);h((function(){if(s&&u.current&&d.current){if(u.current.clientWidth!=(x==null?void 0:x.clientWidth)){u.current.style.width=((x==null?void 0:x.clientWidth)||0)+"px"}if(d.current.clientWidth!=(b==null?void 0:b.clientWidth)){d.current.style.width=((b==null?void 0:b.clientWidth)||0)+"px"}}}),[w,s]);l("scroll",(function(r){var t=r.target;if(u.current){u.current.scrollLeft=t.scrollLeft}}),{target:function r(){return x}});l("scroll",(function(r){var t=r.target;if(x)x.scrollLeft=t.scrollLeft}),{target:u});return m("div",{className:"scrollbar-main",children:m(a,{offsetBottom:j?13:0,style:{opacity:s?1:0},onChange:function r(t){p(!!t)},target:function r(){return B},children:m("div",{ref:u,className:"scrollbar-box",children:m("div",{ref:d,style:{height:1}})})})})};export{y as T};
3
- //# sourceMappingURL=table-scrollbar-66c1682c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-scrollbar-66c1682c.js","sources":["@flatbiz/antd/src/table-scrollbar/table-scrollbar.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { get } from '@dimjs/utils';\nimport { useCreation, useEventListener, useInViewport, useSize } from 'ahooks';\nimport { Affix } from 'antd';\nimport { cloneElement, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nimport './style.less';\nconst { useEffectCustom } = fbaHooks;\n\ntype TableScrollProps = {\n children: React.ReactNode;\n /**\n * y轴的滚动条\n */\n target?: HTMLElement;\n};\n\nconst getParentNodeScroll = (parentNode: HTMLElement | null | undefined): HTMLElement | undefined => {\n if (!parentNode) return undefined;\n const computedStyle = getComputedStyle(parentNode);\n if (computedStyle.overflowY === 'scroll' || computedStyle.overflowY === 'auto') {\n return parentNode;\n }\n return getParentNodeScroll(parentNode.parentNode as HTMLElement);\n};\n/**\n * 表格x轴浮动滚动条\n * ```\n * 使用方法\n * <TableScrollbar>\n * <Table/>\n * </TableScrollbar>\n * ```\n */\nexport const TableScrollbar = ({ children, target, ...props }: TableScrollProps) => {\n const summary: any = get(children as any, 'props.summary');\n return cloneElement(children as any, {\n ...props,\n summary: (...args) => (\n <>\n {summary?.(...args)}\n <ScrollbarSummary target={target} />\n </>\n ),\n });\n};\ntype ScrollbarSummaryProps = {\n target?: HTMLElement;\n};\nconst ScrollbarSummary = ({ target }: ScrollbarSummaryProps) => {\n const refScrollBox = useRef<HTMLDivElement>();\n const refScroll = useRef<HTMLDivElement>();\n // 控制滚动条的显示\n const [show, setShow] = useState<boolean>(false);\n // 获取表格和表格包裹框\n const { table, tableBox } = useCreation(() => {\n const getParentTable = (parentNode: HTMLElement | null | undefined): HTMLElement | undefined => {\n if (!parentNode) return undefined;\n if (parentNode.nodeName === 'TABLE') {\n return parentNode;\n }\n return getParentTable(parentNode.parentNode as HTMLElement);\n };\n const table = getParentTable(refScrollBox?.current?.parentElement);\n return {\n table,\n tableBox: table?.parentElement,\n };\n }, [refScrollBox.current]);\n // 表格是否显示\n const [inViewport] = useInViewport(table?.querySelector('tbody'));\n\n // 监听左右滚动框的大小变化\n const size = useSize(tableBox);\n // 获取上下滚动事件的滚动条\n const _target = useCreation(() => {\n if (target) return target;\n return getParentNodeScroll(table) || document.body;\n }, [target, table, size]);\n\n useEffectCustom(() => {\n if (show && refScrollBox.current && refScroll.current) {\n if (refScrollBox.current.clientWidth != tableBox?.clientWidth) {\n refScrollBox.current.style.width = `${tableBox?.clientWidth || 0}px`;\n }\n if (refScroll.current.clientWidth != table?.clientWidth) {\n refScroll.current.style.width = `${table?.clientWidth || 0}px`;\n }\n }\n }, [size, show]);\n // 注册原始滚动条事件\n useEventListener(\n 'scroll',\n ({ target }) => {\n if (refScrollBox.current) {\n refScrollBox.current.scrollLeft = target.scrollLeft;\n }\n },\n { target: () => tableBox },\n );\n // 注册原始自定义滚动条时间\n useEventListener(\n 'scroll',\n ({ target }) => {\n if (tableBox) tableBox.scrollLeft = target.scrollLeft;\n },\n { target: refScrollBox },\n );\n return (\n <div className=\"scrollbar-main\">\n <Affix\n offsetBottom={inViewport ? 13 : 0}\n style={{ opacity: show ? 1 : 0 }}\n onChange={(value) => {\n setShow(!!value);\n }}\n target={() => _target}\n >\n <div ref={refScrollBox as any} className=\"scrollbar-box\">\n <div ref={refScroll as any} style={{ height: 1 }}></div>\n </div>\n </Affix>\n </div>\n );\n};\n"],"names":["useEffectCustom","fbaHooks","getParentNodeScroll","parentNode","undefined","computedStyle","getComputedStyle","overflowY","TableScrollbar","_ref","children","target","props","_objectWithoutPropertiesLoose","_excluded","summary","_get","cloneElement","_extends","_len","arguments","length","args","Array","_key","_jsxs","_Fragment","apply","_jsx","ScrollbarSummary","_ref2","refScrollBox","useRef","refScroll","_useState","useState","show","setShow","_useCreation","useCreation","_refScrollBox$current","getParentTable","nodeName","table","current","parentElement","tableBox","_useInViewport","useInViewport","querySelector","inViewport","size","useSize","_target","document","body","clientWidth","style","width","useEventListener","_ref3","scrollLeft","_ref4","className","Affix","offsetBottom","opacity","onChange","value","ref","height"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{sessionStorageCache as c}from"@flatbiz/utils";import{Tabs as o}from"antd";import{useMemo as s}from"react";import{jsx as n}from"react/jsx-runtime";var v=["isSticky","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader"];var l=function l(d){var f=d.isSticky,u=f===void 0?true:f,m=d.isFixed,p=m===void 0?true:m,y=d.activeCacheKey,b=d.cancelActiveCache,h=d.hiddenTabHeader,K=e(d,v);var j=Object.prototype.hasOwnProperty.call(d,"activeKey");var C=y||"tabs-wrapper-activeKey";var A=i(p)?u:p;var g=t.useCallbackRef((function(e){if(b!==true&&!j){c.set(C,{activeKey:e})}K.onChange==null?void 0:K.onChange(e)}));var w=s((function(){var e;if(b===true||j){return d.defaultActiveKey}var a=(e=c.get(C))==null?void 0:e.activeKey;return a||K.defaultActiveKey}),[C,b,j,K.defaultActiveKey,d.defaultActiveKey]);var x=r("fba-tabs-wrapper",{"fba-tabs-wrapper-fixed":A,"fba-tabs-wrapper-hidden-header":h},K.className);return n(o,a({},K,{className:x,defaultActiveKey:w,onChange:g}))};export{l as T};
3
- //# sourceMappingURL=tabs-wrapper-0a2da713.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs-wrapper-0a2da713.js","sources":["@flatbiz/antd/src/tabs-wrapper/tabs-wrapper.tsx"],"sourcesContent":["import { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { sessionStorageCache } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Tabs, TabsProps } from 'antd';\nimport { useMemo } from 'react';\nimport './style.less';\n\nexport type TabsWrapperProps = TabsProps & {\n /**\n * Tabs Header 提供 Sticky 效果,默认值:true\n * @deprecated 已废弃 4.3.0版本移除,请使用 isFixed 属性\n */\n isSticky?: boolean;\n /**\n * Tabs Header 提供 Fixed 效果,默认值:true\n */\n isFixed?: boolean;\n /** 是否取消 active 缓存 */\n cancelActiveCache?: boolean;\n activeCacheKey?: string;\n /** 隐藏头部 */\n hiddenTabHeader?: boolean;\n};\n\n/**\n * Tabs 包装组件\n * ```\n * 1. Tabs Header 提供 Sticky 效果,默认值:true\n * 2. 使用时,父级必须要有高度,可置于Flex布局中\n * 3. 默认缓存激活的tab item(activeKey受控操作下缓存无效)\n * 当未设置activeKey,非受控操作时,组件内部会会话缓存activeKey,在刷新时,会显示上次的激活的tab item\n * 缓存Key:如果未设置 activeCacheKey,则使用默认的 cache key(tabs-wrapper-activeKey)\n * 缓存模式:会话缓存,在浏览器关闭后,会清除\n * ```\n */\nexport const TabsWrapper = (props: TabsWrapperProps) => {\n const {\n isSticky = true,\n isFixed = true,\n activeCacheKey,\n cancelActiveCache,\n hiddenTabHeader,\n ...otherProps\n } = props;\n // 是否受控操作\n const isControl = Object.prototype.hasOwnProperty.call(props, 'activeKey');\n const cacheKey = activeCacheKey || 'tabs-wrapper-activeKey';\n const isFixedNew = isUndefined(isFixed) ? isSticky : isFixed;\n\n const onChange = hooks.useCallbackRef((activeKey: string) => {\n if (cancelActiveCache !== true && !isControl) {\n sessionStorageCache.set(cacheKey, { activeKey });\n }\n otherProps.onChange?.(activeKey);\n });\n\n const defaultActiveKey = useMemo(() => {\n if (cancelActiveCache === true || isControl) {\n return props.defaultActiveKey;\n }\n const chcheActiveKey = sessionStorageCache.get(cacheKey)?.activeKey as string | undefined;\n return chcheActiveKey || otherProps.defaultActiveKey;\n }, [cacheKey, cancelActiveCache, isControl, otherProps.defaultActiveKey, props.defaultActiveKey]);\n\n const className = classNames(\n 'fba-tabs-wrapper',\n { 'fba-tabs-wrapper-fixed': isFixedNew, 'fba-tabs-wrapper-hidden-header': hiddenTabHeader },\n otherProps.className,\n );\n\n return (\n <Tabs {...otherProps} className={className} defaultActiveKey={defaultActiveKey} onChange={onChange} />\n );\n};\n"],"names":["TabsWrapper","props","_props$isSticky","isSticky","_props$isFixed","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader","otherProps","_objectWithoutPropertiesLoose","_excluded","isControl","Object","prototype","hasOwnProperty","call","cacheKey","isFixedNew","_isUndefined","onChange","_hooks","useCallbackRef","activeKey","sessionStorageCache","set","defaultActiveKey","useMemo","_sessionStorageCache$","chcheActiveKey","get","className","_classNames","_jsx","Tabs","_extends"],"mappings":";kdAoCaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAOID,EANFE,SAAAA,EAAQD,SAAG,EAAA,KAAIA,EAAAE,EAMbH,EALFI,QAAAA,EAAOD,SAAG,EAAA,KAAIA,EACdE,EAIEL,EAJFK,eACAC,EAGEN,EAHFM,kBACAC,EAEEP,EAFFO,gBACGC,EAAUC,EACXT,EAAKU,GAET,IAAMC,EAAYC,OAAOC,UAAUC,eAAeC,KAAKf,EAAO,aAC9D,IAAMgB,EAAWX,GAAkB,yBACnC,IAAMY,EAAaC,EAAYd,GAAWF,EAAWE,EAErD,IAAMe,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIhB,IAAsB,OAASK,EAAW,CAC5CY,EAAoBC,IAAIR,EAAU,CAAEM,UAAAA,GACtC,CACAd,EAAWW,UAAXX,UAAAA,EAAAA,EAAWW,SAAWG,EACxB,IAEA,IAAMG,EAAmBC,GAAQ,WAAM,IAAAC,EACrC,GAAIrB,IAAsB,MAAQK,EAAW,CAC3C,OAAOX,EAAMyB,gBACf,CACA,IAAMG,GAAcD,EAAGJ,EAAoBM,IAAIb,KAAxBW,UAAAA,EAAAA,EAAmCL,UAC1D,OAAOM,GAAkBpB,EAAWiB,gBACtC,GAAG,CAACT,EAAUV,EAAmBK,EAAWH,EAAWiB,iBAAkBzB,EAAMyB,mBAE/E,IAAMK,EAAYC,EAChB,mBACA,CAAE,yBAA0Bd,EAAY,iCAAkCV,GAC1EC,EAAWsB,WAGb,OACEE,EAACC,EAAIC,KAAK1B,EAAU,CAAEsB,UAAWA,EAAWL,iBAAkBA,EAAkBN,SAAUA,IAE9F"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{Space as o,Tag as a}from"antd";import{fbaHooks as e}from"./fba-hooks/index.js";import{jsx as l}from"react/jsx-runtime";var i=function i(t){var n=e.useThemeToken();return l(o,r({wrap:true,size:5},t.spaceProps,{children:t.dataList.map((function(r,o){var e;var i=r.color||((e=t.colorMap)==null?void 0:e[r.value])||n.colorPrimary;return l(a,{color:i,children:r.label},o)}))}))};export{i as T};
3
- //# sourceMappingURL=tag-group-4fbcaa14.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-group-4fbcaa14.js","sources":["@flatbiz/antd/src/tag-group/tag-group.tsx"],"sourcesContent":["import { Space, SpaceProps, Tag } from 'antd';\nimport { FC } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\ntype TagGroupDataItem = { label: string; value: string | number; color?: string };\n\nexport type TagGroupProps = {\n dataList: TagGroupDataItem[];\n /**\n * 颜色配置数据,例如:{ 1:'red', 2: 'blue'} key值与 dataList中value相同\n */\n colorMap?: Record<string, string>;\n spaceProps?: SpaceProps;\n};\n\n/**\n * Tag 列表显示\n */\nexport const TagGroup: FC<TagGroupProps> = (props) => {\n const theme = fbaHooks.useThemeToken();\n return (\n <Space wrap size={5} {...props.spaceProps}>\n {props.dataList.map((item, index) => {\n const color = item.color || props.colorMap?.[item.value] || theme.colorPrimary;\n return (\n <Tag color={color} key={index}>\n {item.label}\n </Tag>\n );\n })}\n </Space>\n );\n};\n"],"names":["TagGroup","props","theme","fbaHooks","useThemeToken","_jsx","Space","_extends","wrap","size","spaceProps","children","dataList","map","item","index","_props$colorMap","color","colorMap","value","colorPrimary","Tag","label"],"mappings":";8LAkBaA,EAA8B,SAA9BA,EAA+BC,GAC1C,IAAMC,EAAQC,EAASC,gBACvB,OACEC,EAACC,EAAKC,EAAA,CAACC,KAAI,KAACC,KAAM,GAAOR,EAAMS,WAAU,CAAAC,SACtCV,EAAMW,SAASC,KAAI,SAACC,EAAMC,GAAU,IAAAC,EACnC,IAAMC,EAAQH,EAAKG,SAAKD,EAAIf,EAAMiB,WAANF,UAAAA,EAAAA,EAAiBF,EAAKK,SAAUjB,EAAMkB,aAClE,OACEf,EAACgB,EAAG,CAACJ,MAAOA,EAAMN,SACfG,EAAKQ,OADgBP,QAOlC"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{isUndefinedOrNull as r,valueIsEqual as l}from"@flatbiz/utils";import{Tag as a}from"antd";import{useMemo as e,Fragment as t}from"react";import{jsx as o}from"react/jsx-runtime";var n=function n(u){var i=e((function(){if(r(u.value)){return null}if(!u.dataList||u.dataList.length===0){return{label:""+u.value}}var a=u.dataList.find((function(r){return l(r.value,u.value)||r.label===u.value}));if(a){var e;return{label:a.label,color:((e=u.colorMap)==null?void 0:e[String(a.value)])||a.color}}if(u.forceMatch){return undefined}return{label:""+u.value}}),[u.colorMap,u.dataList,u.forceMatch,u.value]);if(!i){return o(t,{children:u.value})}return o(t,{children:i!=null&&i.color?o(a,{color:i.color,children:i.label}):i==null?void 0:i.label})};n.defaultProps={forceMatch:false};export{n as T};
3
- //# sourceMappingURL=tag-list-select-066f682f.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-list-select-066f682f.js","sources":["@flatbiz/antd/src/tag-list-select/tag-list-select.tsx"],"sourcesContent":["import { isUndefinedOrNull, valueIsEqual } from '@flatbiz/utils';\nimport { Tag } from 'antd';\nimport { FC, Fragment, useMemo } from 'react';\n\nexport type TagListSelectValue = string | number | boolean;\nexport type TagListSelectDataItem = { label: string; value: TagListSelectValue; color?: string };\n\nexport type TagListSelectProps = {\n dataList: TagListSelectDataItem[];\n /** 颜色配置数据,例如:{ 1:'red', 2: 'blue'} key值与 dataList中value相同 */\n colorMap?: Record<string, string>;\n value?: TagListSelectValue;\n /** 是否强制匹配,默认值false */\n forceMatch?: boolean;\n};\n\n/**\n * 在列表数据中通过value匹配数据,以Tag形式展示\n * @param props\n * @returns\n * ```\n * 1. forceMatch: 是否强制匹配(默认值false)\n * - false: 匹配不到显示value值,\n * - true:匹配不到不显示\n * 2. value 与 dataList中label、value任一相等,都可匹配\n *\n * 用法1:\n * <TagListSelect\n * dataList=[{ label: '启用', value: 1 }]\n * colorMap={{ 1:'red', 2: 'blue'}}\n * value={1} />\n * =>\n * <Tag color={'red'}>启用</Tag>\n *\n * 用法2\n * <TagListSelect\n * dataList=[{ label: '启用', value: 1. color: 'red' }]\n * value=\"启用\" />\n * =>\n * <Tag color={'red'}>启用</Tag>\n * ```\n */\nexport const TagListSelect: FC<TagListSelectProps> = (props) => {\n const tagItem = useMemo(() => {\n if (isUndefinedOrNull(props.value)) {\n return null;\n }\n if (!props.dataList || props.dataList.length === 0) {\n return { label: `${props.value}` };\n }\n\n const target = props.dataList.find(\n (item) => valueIsEqual(item.value, props.value) || item.label === props.value,\n );\n if (target) {\n return { label: target.label, color: props.colorMap?.[String(target.value)] || target.color };\n }\n if (props.forceMatch) {\n return undefined;\n }\n return { label: `${props.value}` };\n }, [props.colorMap, props.dataList, props.forceMatch, props.value]);\n\n if (!tagItem) {\n return <Fragment>{props.value}</Fragment>;\n }\n\n return (\n <Fragment>{tagItem?.color ? <Tag color={tagItem.color}>{tagItem.label}</Tag> : tagItem?.label}</Fragment>\n );\n};\n\nTagListSelect.defaultProps = {\n forceMatch: false,\n};\n"],"names":["TagListSelect","props","tagItem","useMemo","isUndefinedOrNull","value","dataList","length","label","target","find","item","valueIsEqual","_props$colorMap","color","colorMap","String","forceMatch","undefined","_jsx","Fragment","children","Tag","defaultProps"],"mappings":";0LA0CaA,EAAwC,SAAxCA,EAAyCC,GACpD,IAAMC,EAAUC,GAAQ,WACtB,GAAIC,EAAkBH,EAAMI,OAAQ,CAClC,OAAO,IACT,CACA,IAAKJ,EAAMK,UAAYL,EAAMK,SAASC,SAAW,EAAG,CAClD,MAAO,CAAEC,MAAK,GAAKP,EAAMI,MAC3B,CAEA,IAAMI,EAASR,EAAMK,SAASI,MAC5B,SAACC,GAAI,OAAKC,EAAaD,EAAKN,MAAOJ,EAAMI,QAAUM,EAAKH,QAAUP,EAAMI,SAE1E,GAAII,EAAQ,CAAA,IAAAI,EACV,MAAO,CAAEL,MAAOC,EAAOD,MAAOM,QAAOD,EAAAZ,EAAMc,WAANF,UAAAA,EAAAA,EAAiBG,OAAOP,EAAOJ,UAAWI,EAAOK,MACxF,CACA,GAAIb,EAAMgB,WAAY,CACpB,OAAOC,SACT,CACA,MAAO,CAAEV,MAAK,GAAKP,EAAMI,MAC3B,GAAG,CAACJ,EAAMc,SAAUd,EAAMK,SAAUL,EAAMgB,WAAYhB,EAAMI,QAE5D,IAAKH,EAAS,CACZ,OAAOiB,EAACC,EAAQ,CAAAC,SAAEpB,EAAMI,OAC1B,CAEA,OACEc,EAACC,EAAQ,CAAAC,SAAEnB,GAAAA,MAAAA,EAASY,MAAQK,EAACG,EAAG,CAACR,MAAOZ,EAAQY,MAAMO,SAAEnB,EAAQM,QAAeN,GAAAA,UAAAA,EAAAA,EAASM,OAE5F,EAEAR,EAAcuB,aAAe,CAC3BN,WAAY"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import r from"@ant-design/icons/es/icons/LoadingOutlined";import{_ as o,a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as t}from"@flatbiz/utils";import{Tag as a}from"antd";import{useState as l}from"react";import{fbaHooks as s}from"./fba-hooks/index.js";import{jsxs as c,jsx as f}from"react/jsx-runtime";var m=["loading","children","debounceDuration","style"];var u=function u(d){var p=d.loading,v=d.children,h=d.debounceDuration,g=d.style,b=o(d,m);var j=l(false),k=j[0],y=j[1];var C=t(h)?500:h;s.useEffectCustom((function(){if(!t(p)){y(p||false)}}),[p]);var x=n.useDebounceClick((function(r){var o=d.onClick;if(!o){return}var i=o(r);if(i&&e(i)){y(true);i.catch((function(r){console.error(r)})).finally((function(){y(false)}))}}),C);return c(a,i({},b,{onClick:x,style:i({cursor:d.onClick?"pointer":"default"},g),children:[k&&f("div",{className:"tw-center-loading",children:f(r,{})}),k?f("div",{style:{opacity:.5},children:v}):v]}))};export{u as T};
3
- //# sourceMappingURL=tag-wrapper-6d8b505e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-wrapper-6d8b505e.js","sources":["@flatbiz/antd/src/tag-wrapper/tag-wrapper.tsx"],"sourcesContent":["import { LoadingOutlined } from '@ant-design/icons';\nimport { isPromise } from '@dimjs/lang';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Tag, TagProps } from 'antd';\nimport { useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type TagWrapperProps = Omit<TagProps, 'onClick'> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => Promise<TAny> | void;\n loading?: boolean;\n // 重复点击间隙,单位毫秒 默认值:500\n debounceDuration?: number;\n};\n\n/**\n * 为 Tag 添加 loading 效果\n */\nexport const TagWrapper = (props: TagWrapperProps) => {\n const { loading, children, debounceDuration, style, ...otherProps } = props;\n\n const [innerLoading, setLoading] = useState(false);\n const debounceDurationMew = isUndefinedOrNull(debounceDuration) ? 500 : debounceDuration;\n\n fbaHooks.useEffectCustom(() => {\n if (!isUndefinedOrNull(loading)) {\n setLoading(loading || false);\n }\n }, [loading]);\n\n const onClick = hooks.useDebounceClick((e) => {\n const onClick = props.onClick;\n if (!onClick) {\n return;\n }\n const result = onClick(e);\n if (result && isPromise(result)) {\n setLoading(true);\n result\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, debounceDurationMew);\n\n return (\n <Tag\n {...otherProps}\n onClick={onClick}\n style={{ cursor: props.onClick ? 'pointer' : 'default', ...style }}\n >\n {innerLoading && (\n <div className=\"tw-center-loading\">\n <LoadingOutlined />\n </div>\n )}\n {innerLoading ? <div style={{ opacity: 0.5 }}>{children}</div> : children}\n </Tag>\n );\n};\n"],"names":["TagWrapper","props","loading","children","debounceDuration","style","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","innerLoading","setLoading","debounceDurationMew","isUndefinedOrNull","fbaHooks","useEffectCustom","onClick","_hooks","useDebounceClick","e","result","_isPromise","catch","error","console","finally","_jsxs","Tag","_extends","cursor","_jsx","className","_LoadingOutlined","opacity"],"mappings":";+eAmBaA,EAAa,SAAbA,EAAcC,GACzB,IAAQC,EAA8DD,EAA9DC,QAASC,EAAqDF,EAArDE,SAAUC,EAA2CH,EAA3CG,iBAAkBC,EAAyBJ,EAAzBI,MAAUC,EAAUC,EAAKN,EAAKO,GAE3E,IAAAC,EAAmCC,EAAS,OAArCC,EAAYF,EAAA,GAAEG,EAAUH,EAAA,GAC/B,IAAMI,EAAsBC,EAAkBV,GAAoB,IAAMA,EAExEW,EAASC,iBAAgB,WACvB,IAAKF,EAAkBZ,GAAU,CAC/BU,EAAWV,GAAW,MACxB,CACF,GAAG,CAACA,IAEJ,IAAMe,EAAUC,EAAMC,kBAAiB,SAACC,GACtC,IAAMH,EAAUhB,EAAMgB,QACtB,IAAKA,EAAS,CACZ,MACF,CACA,IAAMI,EAASJ,EAAQG,GACvB,GAAIC,GAAUC,EAAUD,GAAS,CAC/BT,EAAW,MACXS,EACGE,OAAM,SAACC,GACNC,QAAQD,MAAMA,EAChB,IACCE,SAAQ,WACPd,EAAW,MACb,GACJ,CACD,GAAEC,GAEH,OACEc,EAACC,EAAGC,KACEvB,EAAU,CACdW,QAASA,EACTZ,MAAKwB,EAAA,CAAIC,OAAQ7B,EAAMgB,QAAU,UAAY,WAAcZ,GAAQF,SAAA,CAElEQ,GACCoB,EAAA,MAAA,CAAKC,UAAU,oBAAmB7B,SAChC4B,EAAAE,EAAA,MAGHtB,EAAeoB,EAAA,MAAA,CAAK1B,MAAO,CAAE6B,QAAS,IAAM/B,SAAEA,IAAkBA,KAGvE"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{Tooltip as t}from"antd";import{useRef as e,useState as r,useEffect as i}from"react";import{jsxs as a,jsx as n}from"react/jsx-runtime";var s=function s(l){var c=e(null);var d=r(false),f=d[0],o=d[1];var h=a("span",{className:"text-css-ellipsis",style:{width:l.width},children:[n("span",{className:"tce-hidden",children:n("span",{ref:c,children:l.text})}),l.text]});i((function(){var t;var e=((t=c.current)==null?void 0:t.offsetWidth)||0;if(l.text&&e>l.width){o(true)}else{o(false)}}),[l.text,l.width]);if(f){return n(t,{title:l.text,children:h})}return h};export{s as T};
3
- //# sourceMappingURL=text-css-ellipsis-9135d4c5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-css-ellipsis-9135d4c5.js","sources":["@flatbiz/antd/src/text-css-ellipsis/text-css-ellipsis.tsx"],"sourcesContent":["import { Tooltip } from 'antd';\nimport { useEffect, useRef, useState } from 'react';\nimport './style.less';\nexport type CssTextEllipsisProps = {\n text?: string;\n width: number;\n};\n\n/**\n * 根据配置宽度显示数据,内容超过宽度截取,并在尾部添加...,被截取的添加Tooltip显示完整数据\n * @param props\n * @returns\n */\nexport const TextCssEllipsis = (props: CssTextEllipsisProps) => {\n const ref = useRef<HTMLSpanElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n\n const content = (\n <span className=\"text-css-ellipsis\" style={{ width: props.width }}>\n <span className=\"tce-hidden\">\n <span ref={ref}>{props.text}</span>\n </span>\n {props.text}\n </span>\n );\n\n useEffect(() => {\n const offsetWidth = ref.current?.offsetWidth || 0;\n if (props.text && offsetWidth > props.width) {\n setShowTooltip(true);\n } else {\n setShowTooltip(false);\n }\n }, [props.text, props.width]);\n\n if (showTooltip) {\n return <Tooltip title={props.text}>{content}</Tooltip>;\n }\n\n return content;\n};\n"],"names":["TextCssEllipsis","props","ref","useRef","_useState","useState","showTooltip","setShowTooltip","content","_jsxs","className","style","width","children","_jsx","text","useEffect","_ref$current","offsetWidth","current","Tooltip","title"],"mappings":";iJAaaA,EAAkB,SAAlBA,EAAmBC,GAC9B,IAAMC,EAAMC,EAAwB,MACpC,IAAAC,EAAsCC,EAAS,OAAxCC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAElC,IAAMI,EACJC,EAAA,OAAA,CAAMC,UAAU,oBAAoBC,MAAO,CAAEC,MAAOX,EAAMW,OAAQC,UAChEC,EAAA,OAAA,CAAMJ,UAAU,aAAYG,SAC1BC,EAAA,OAAA,CAAMZ,IAAKA,EAAIW,SAAEZ,EAAMc,SAExBd,EAAMc,QAIXC,GAAU,WAAM,IAAAC,EACd,IAAMC,IAAcD,EAAAf,EAAIiB,UAAJF,UAAAA,EAAAA,EAAaC,cAAe,EAChD,GAAIjB,EAAMc,MAAQG,EAAcjB,EAAMW,MAAO,CAC3CL,EAAe,KACjB,KAAO,CACLA,EAAe,MACjB,CACD,GAAE,CAACN,EAAMc,KAAMd,EAAMW,QAEtB,GAAIN,EAAa,CACf,OAAOQ,EAACM,EAAO,CAACC,MAAOpB,EAAMc,KAAKF,SAAEL,GACtC,CAEA,OAAOA,CACT"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{isEmpty as i}from"@dimjs/lang/cjs/is-empty";import{_ as r,a as e}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{getStrByteLen as t,cutString as n}from"@flatbiz/utils";import{Tooltip as l}from"antd";import{Fragment as a}from"react";import{B as p}from"./button-wrapper-125fce50.js";import{T as o}from"./text-css-ellipsis-9135d4c5.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";var f=["onClick","children","prefix"];var m=function i(t){var n=t.onClick,l=t.children,a=t.prefix,o=r(t,f);if(!!n){return c(p,e({type:"link",onClick:n,style:{padding:0,height:"initial",display:"inline-flex",alignItems:"center"}},o,{children:[a?s("span",{style:{marginRight:5},children:a}):null,l]}))}return c("span",e({},o,{style:e({display:"inline-flex"},o["style"]),children:[a?s("span",{style:{marginRight:5},children:a}):null,l]}))};var d=function r(e){var p=e.text,c=e.maxLength,f=e.placeholder,d=e.onClick,h=e.prefix;if(!p||i(p)||p==="")return s(a,{children:f});if(!!c){var u=t(p);if(u<=c*2){return s(m,{onClick:d,prefix:h,children:p})}else{var x=n(p,c*2);return s(l,{placement:"topLeft",title:p,children:s(m,{onClick:d,prefix:h,children:x})})}}if(e.width){return s(m,{onClick:d,prefix:h,children:s(o,{text:p,width:e.width})})}return s(m,{onClick:d,prefix:h,children:e.text})};export{d as T};
3
- //# sourceMappingURL=text-overflow-render-7a6541f5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-overflow-render-7a6541f5.js","sources":["@flatbiz/antd/src/text-overflow-render/text-overflow-render.tsx"],"sourcesContent":["import { isEmpty } from '@dimjs/lang';\nimport { cutString, getStrByteLen } from '@flatbiz/utils';\nimport { Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\n\nconst LinkRender = (props: {\n onClick?: (e) => void;\n children?: ReactElement | string;\n prefix?: string | ReactElement;\n}) => {\n const { onClick, children, prefix, ...otherProps } = props;\n if (!!onClick) {\n return (\n <ButtonWrapper\n type=\"link\"\n onClick={onClick}\n style={{ padding: 0, height: 'initial', display: 'inline-flex', alignItems: 'center' }}\n {...otherProps}\n >\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </ButtonWrapper>\n );\n }\n return (\n <span {...otherProps} style={{ display: 'inline-flex', ...otherProps['style'] }}>\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </span>\n );\n};\n\nexport type TextOverflowRenderProps = {\n /** width 宽度控制超长 */\n width?: number;\n /** maxLength 数字控制超长 */\n maxLength?: number;\n /** 完整文本 */\n text?: string;\n /** 文本前缀显示 */\n prefix?: string | ReactElement;\n /** 数据不存在时,占位符 */\n placeholder?: ReactElement | string;\n onClick?: (e) => void;\n};\n\n/**\n * 文本显示超出截取,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示两种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 width 控制超长\n *\n * 3. maxLength 与 width 互斥,优先级:maxLength > width\n * ```\n * @param props\n * @returns\n */\nexport const TextOverflowRender = (props: TextOverflowRenderProps) => {\n const { text, maxLength, placeholder, onClick, prefix } = props;\n\n if (!text || isEmpty(text) || text === '') return <Fragment>{placeholder}</Fragment>;\n if (!!maxLength) {\n const strByteLen = getStrByteLen(text);\n if (strByteLen <= maxLength * 2) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {text}\n </LinkRender>\n );\n } else {\n const resultTitle = cutString(text, maxLength * 2);\n return (\n <Tooltip placement=\"topLeft\" title={text}>\n <LinkRender onClick={onClick} prefix={prefix}>\n {resultTitle}\n </LinkRender>\n </Tooltip>\n );\n }\n }\n if (props.width) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n <TextCssEllipsis text={text} width={props.width} />\n </LinkRender>\n );\n }\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {props.text}\n </LinkRender>\n );\n};\n"],"names":["LinkRender","props","onClick","children","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsxs","ButtonWrapper","_extends","type","style","padding","height","display","alignItems","_jsx","marginRight","TextOverflowRender","text","maxLength","placeholder","_isEmpty","Fragment","strByteLen","getStrByteLen","resultTitle","cutString","Tooltip","placement","title","width","TextCssEllipsis"],"mappings":";ibAOA,IAAMA,EAAa,SAAbA,EAAcC,GAKlB,IAAQC,EAA6CD,EAA7CC,QAASC,EAAoCF,EAApCE,SAAUC,EAA0BH,EAA1BG,OAAWC,EAAUC,EAAKL,EAAKM,GAC1D,KAAML,EAAS,CACb,OACEM,EAACC,EAAaC,EAAA,CACZC,KAAK,OACLT,QAASA,EACTU,MAAO,CAAEC,QAAS,EAAGC,OAAQ,UAAWC,QAAS,cAAeC,WAAY,WACxEX,EAAU,CAAAF,SAAA,CAEbC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,CACA,OACEK,EAAA,OAAAE,EAAA,CAAA,EAAUL,EAAU,CAAEO,MAAKF,EAAA,CAAIK,QAAS,eAAkBV,EAAW,UAAWF,SAAA,CAC7EC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,MA4BagB,EAAqB,SAArBA,EAAsBlB,GACjC,IAAQmB,EAAkDnB,EAAlDmB,KAAMC,EAA4CpB,EAA5CoB,UAAWC,EAAiCrB,EAAjCqB,YAAapB,EAAoBD,EAApBC,QAASE,EAAWH,EAAXG,OAE/C,IAAKgB,GAAQG,EAAQH,IAASA,IAAS,GAAI,OAAOH,EAACO,EAAQ,CAAArB,SAAEmB,IAC7D,KAAMD,EAAW,CACf,IAAMI,EAAaC,EAAcN,GACjC,GAAIK,GAAcJ,EAAY,EAAG,CAC/B,OACEJ,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CiB,GAGP,KAAO,CACL,IAAMO,EAAcC,EAAUR,EAAMC,EAAY,GAChD,OACEJ,EAACY,EAAO,CAACC,UAAU,UAAUC,MAAOX,EAAKjB,SACvCc,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CwB,KAIT,CACF,CACA,GAAI1B,EAAM+B,MAAO,CACf,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC3Cc,EAACgB,EAAe,CAACb,KAAMA,EAAMY,MAAO/B,EAAM+B,SAGhD,CACA,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CF,EAAMmB,MAGb"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as i}from"@wove/react/cjs/hooks";import{TimePicker as a}from"antd";import n from"dayjs";import o from"dayjs/plugin/isSameOrAfter";import t from"dayjs/plugin/isSameOrBefore";import{useMemo as s}from"react";import{c as d,D as m,g as u,a as f,b as l}from"./time-53b3f55f.js";import{jsx as v}from"react/jsx-runtime";var c=["onChange","disabledTimeConfig","format"];n.extend(t);n.extend(o);var b=function o(t){var b=t.onChange,p=t.disabledTimeConfig,g=t.format,T=e(t,c);var j=p||{},S=j.minTime,x=j.maxTime,C=j.disabledHourList,L=j.disabledMinuteList,h=j.disabledSecondList;var H=g||d.Hms;var D=i.useCallbackRef((function(e,r){if(e){b==null?void 0:b(r)}else{b==null?void 0:b(undefined)}}));var M=s((function(){var e=t.value;if(e){return n(e,H)}return undefined}),[H,t.value]);var O=function e(){var r=n().format(m.YMD);var i={minDateTime:S?n(r+" "+S):undefined,maxDateTime:x?n(r+" "+x):undefined,disabledHourList:C,disabledMinuteList:L,disabledSecondList:h};return{disabledHours:function e(){return u(n(),i)},disabledMinutes:function e(a){return f(n(r+" "+a),i)},disabledSeconds:function e(a,o){return l(n(r+" "+a+":"+o),i)}}};var w=s((function(){var e=n();return e.isSameOrAfter(n(S||"00:00:00",H))&&e.isSameOrBefore(n(x||"23:59:59",H))}),[H,x,S]);return v(a,r({showNow:w,disabledTime:O},T,{value:M,onChange:D,format:H}))};export{b as T};
3
- //# sourceMappingURL=time-picker-wrapper-f1d26d96.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-picker-wrapper-f1d26d96.js","sources":["@flatbiz/antd/src/time-picker-wrapper/time-picker-wrapper.tsx"],"sourcesContent":["import { hooks } from '@wove/react';\nimport { TimePicker, TimePickerProps } from 'antd';\nimport dayjs from 'dayjs';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport { useMemo } from 'react';\nimport { DayjsDateTypeEnum, DayjsTimeTypeEnum, TDayjsTimeType } from '../_utils/constants';\nimport { getDisabledHour, getDisabledMinute, getDisabledSecond } from '../_utils/time';\ndayjs.extend(isSameOrBefore);\ndayjs.extend(isSameOrAfter);\n\nexport type TimePickerWrapperProps = Omit<TimePickerProps, 'value' | 'onChange' | 'format'> & {\n value?: string;\n onChange?: (value?: string) => void;\n /**\n * 1. minTime、maxTime设置为 DayjsTimeTypeEnum,默认格式:HH:mm:ss\n * 2. minTime、maxTime格式必须与 format 相同\n */\n disabledTimeConfig?: {\n minTime?: TDayjsTimeType;\n maxTime?: TDayjsTimeType;\n /** 禁用 小时 刻度列表,与日期无关 */\n disabledHourList?: number[];\n /** 禁用 分钟 刻度列表,与日期无关 */\n disabledMinuteList?: number[];\n /** 禁用 秒钟 刻度列表,与日期无关 */\n disabledSecondList?: number[];\n };\n format?: TDayjsTimeType;\n};\n/**\n * TimePicker组件包装\n * ```\n * 1. value类型为 string\n * 2. onChange返回类型 string\n * 3. 默认格式化类型 HH:mm:ss\n * 4. 其他格式化类型自定义format\n * 5. 设置disabledTime后,disabledTimeConfig配置将失效\n * ```\n */\nexport const TimePickerWrapper = (props: TimePickerWrapperProps) => {\n const { onChange, disabledTimeConfig, format, ...otherProps } = props;\n const { minTime, maxTime, disabledHourList, disabledMinuteList, disabledSecondList } =\n disabledTimeConfig || {};\n\n const customFormat = format || DayjsTimeTypeEnum.Hms;\n\n const onChangeTime = hooks.useCallbackRef((time: dayjs.Dayjs | null, timeString: string) => {\n if (time) {\n onChange?.(timeString);\n } else {\n onChange?.(undefined);\n }\n });\n\n const timePickerValue = useMemo(() => {\n const value = props.value;\n if (value) {\n return dayjs(value, customFormat);\n }\n return undefined;\n }, [customFormat, props.value]);\n\n const getDisabledTime: TimePickerProps['disabledTime'] = () => {\n const date = dayjs().format(DayjsDateTypeEnum.YMD);\n const options = {\n minDateTime: minTime ? dayjs(`${date} ${minTime}`) : undefined,\n maxDateTime: maxTime ? dayjs(`${date} ${maxTime}`) : undefined,\n disabledHourList,\n disabledMinuteList,\n disabledSecondList,\n };\n return {\n disabledHours: () => {\n return getDisabledHour(dayjs(), options);\n },\n disabledMinutes: (hour: number) => {\n return getDisabledMinute(dayjs(`${date} ${hour}`), options);\n },\n disabledSeconds: (hour: number, minute: number) => {\n return getDisabledSecond(dayjs(`${date} ${hour}:${minute}`), options);\n },\n };\n };\n\n const showNow = useMemo(() => {\n const now = dayjs();\n return (\n now.isSameOrAfter(dayjs(minTime || '00:00:00', customFormat)) &&\n now.isSameOrBefore(dayjs(maxTime || '23:59:59', customFormat))\n );\n }, [customFormat, maxTime, minTime]);\n\n return (\n <TimePicker\n showNow={showNow}\n disabledTime={getDisabledTime}\n {...otherProps}\n value={timePickerValue}\n onChange={onChangeTime}\n format={customFormat}\n />\n );\n};\n"],"names":["dayjs","extend","isSameOrBefore","isSameOrAfter","TimePickerWrapper","props","onChange","disabledTimeConfig","format","otherProps","_objectWithoutPropertiesLoose","_excluded","_ref","minTime","maxTime","disabledHourList","disabledMinuteList","disabledSecondList","customFormat","DayjsTimeTypeEnum","Hms","onChangeTime","_hooks","useCallbackRef","time","timeString","undefined","timePickerValue","useMemo","value","getDisabledTime","date","DayjsDateTypeEnum","YMD","options","minDateTime","maxDateTime","disabledHours","getDisabledHour","disabledMinutes","hour","getDisabledMinute","disabledSeconds","minute","getDisabledSecond","showNow","now","_jsx","TimePicker","_extends","disabledTime"],"mappings":";ybAQAA,EAAMC,OAAOC,GACbF,EAAMC,OAAOE,OA+BAC,EAAoB,SAApBA,EAAqBC,GAChC,IAAQC,EAAwDD,EAAxDC,SAAUC,EAA8CF,EAA9CE,mBAAoBC,EAA0BH,EAA1BG,OAAWC,EAAUC,EAAKL,EAAKM,GACrE,IAAAC,EACEL,GAAsB,CAAE,EADlBM,EAAOD,EAAPC,QAASC,EAAOF,EAAPE,QAASC,EAAgBH,EAAhBG,iBAAkBC,EAAkBJ,EAAlBI,mBAAoBC,EAAkBL,EAAlBK,mBAGhE,IAAMC,EAAeV,GAAUW,EAAkBC,IAEjD,IAAMC,EAAeC,EAAMC,gBAAe,SAACC,EAA0BC,GACnE,GAAID,EAAM,CACRlB,GAAAA,UAAAA,EAAAA,EAAWmB,EACb,KAAO,CACLnB,GAAAA,UAAAA,EAAAA,EAAWoB,UACb,CACF,IAEA,IAAMC,EAAkBC,GAAQ,WAC9B,IAAMC,EAAQxB,EAAMwB,MACpB,GAAIA,EAAO,CACT,OAAO7B,EAAM6B,EAAOX,EACtB,CACA,OAAOQ,SACR,GAAE,CAACR,EAAcb,EAAMwB,QAExB,IAAMC,EAAmD,SAAnDA,IACJ,IAAMC,EAAO/B,IAAQQ,OAAOwB,EAAkBC,KAC9C,IAAMC,EAAU,CACdC,YAAatB,EAAUb,EAAS+B,EAAQlB,IAAAA,GAAaa,UACrDU,YAAatB,EAAUd,EAAS+B,EAAQjB,IAAAA,GAAaY,UACrDX,iBAAAA,EACAC,mBAAAA,EACAC,mBAAAA,GAEF,MAAO,CACLoB,cAAe,SAAAA,IACb,OAAOC,EAAgBtC,IAASkC,EACjC,EACDK,gBAAiB,SAAAA,EAACC,GAChB,OAAOC,EAAkBzC,EAAS+B,MAAQS,GAASN,EACpD,EACDQ,gBAAiB,SAAAA,EAACF,EAAcG,GAC9B,OAAOC,EAAkB5C,EAAS+B,EAAI,IAAIS,EAAI,IAAIG,GAAWT,EAC/D,IAIJ,IAAMW,EAAUjB,GAAQ,WACtB,IAAMkB,EAAM9C,IACZ,OACE8C,EAAI3C,cAAcH,EAAMa,GAAW,WAAYK,KAC/C4B,EAAI5C,eAAeF,EAAMc,GAAW,WAAYI,GAEnD,GAAE,CAACA,EAAcJ,EAASD,IAE3B,OACEkC,EAACC,EAAUC,EAAA,CACTJ,QAASA,EACTK,aAAcpB,GACVrB,EAAU,CACdoB,MAAOF,EACPrB,SAAUe,EACVb,OAAQU,IAGd"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as a}from"@wove/react/cjs/hooks";import{TimePicker as r}from"antd";import n from"dayjs";import{useMemo as t}from"react";import{c as o,D as d,g as s,a as u,b as m}from"./time-53b3f55f.js";import{jsx as f}from"react/jsx-runtime";var l=["onChange","disabledTimeConfig"];var c=function c(v){var b=v.onChange,p=v.disabledTimeConfig,g=e(v,l);var T=p||{},C=T.minTime,L=T.maxTime,h=T.disabledHourList,j=T.disabledMinuteList,H=T.disabledSecondList;var x=t((function(){return v.format||o.Hms}),[v.format]);var D=a.useCallbackRef((function(e,i){var a=i[0],r=i[1];if(e){b==null?void 0:b([a,r])}else{b==null?void 0:b(undefined)}}));var M=t((function(){var e=v.value;if(e&&e.length>0){return[e[0]?n(e[0],x):e[0],e[1]?n(e[1],x):e[1]]}return undefined}),[v.value,x]);var k=function e(){var i=n().format(d.YMD);var a={minDateTime:C?n(i+" "+C):undefined,maxDateTime:L?n(i+" "+L):undefined,disabledHourList:h,disabledMinuteList:j,disabledSecondList:H};return{disabledHours:function e(){return s(n(),a)},disabledMinutes:function e(r){return u(n(i+" "+r),a)},disabledSeconds:function e(r,t){return m(n(i+" "+r+":"+t),a)}}};return f(r.RangePicker,i({disabledTime:k},g,{value:M,onChange:D,format:x}))};export{c as T};
3
- //# sourceMappingURL=time-range-picker-wrapper-be9850b5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-range-picker-wrapper-be9850b5.js","sources":["@flatbiz/antd/src/time-range-picker-wrapper/time-range-picker-wrapper.tsx"],"sourcesContent":["import { hooks } from '@wove/react';\nimport { TimePicker, TimeRangePickerProps } from 'antd';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { useMemo } from 'react';\nimport { DayjsDateTypeEnum, DayjsTimeTypeEnum, TDayjsTimeType } from '../_utils/constants';\nimport { getDisabledHour, getDisabledMinute, getDisabledSecond } from '../_utils/time';\n\nexport type TimeRangePickerWrapperProps = Omit<TimeRangePickerProps, 'value' | 'onChange' | 'format'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n /**\n * 1. minTime、maxTime设置格式,默认格式:HH:mm:ss\n * 2. minTime、maxTime格式必须与 format 相同\n */\n disabledTimeConfig?: {\n minTime?: TDayjsTimeType;\n maxTime?: TDayjsTimeType;\n /** 禁用 小时 刻度列表,与日期无关 */\n disabledHourList?: number[];\n /** 禁用 分钟 刻度列表,与日期无关 */\n disabledMinuteList?: number[];\n /** 禁用 秒钟 刻度列表,与日期无关 */\n disabledSecondList?: number[];\n };\n format?: TDayjsTimeType;\n};\n// export declare type EventValue<DateType> = DateType | null;\n// export declare type RangeValue<DateType> = [EventValue<DateType>, EventValue<DateType>] | null;\n/**\n * TimePicker组件包装\n * ```\n * 1. value类型为 [string, string]\n * 2. onChange返回类型 [string, string]\n * 3. 默认格式化类型 HH:mm:ss,其他格式化类型自定义format\n * 4. 设置disabledTime后,disabledTimeConfig配置将失效\n * ```\n */\nexport const TimeRangePickerWrapper = (props: TimeRangePickerWrapperProps) => {\n const { onChange, disabledTimeConfig, ...otherProps } = props;\n\n const { minTime, maxTime, disabledHourList, disabledMinuteList, disabledSecondList } =\n disabledTimeConfig || {};\n\n const format = useMemo(() => {\n return props.format || DayjsTimeTypeEnum.Hms;\n }, [props.format]);\n\n const onChangeTime = hooks.useCallbackRef((date, [timeStart, timeEnd]: [string, string]) => {\n if (date) {\n onChange?.([timeStart, timeEnd]);\n } else {\n onChange?.(undefined);\n }\n });\n\n const timePickerValue = useMemo(() => {\n const value = props.value;\n if (value && value.length > 0) {\n return [\n value[0] ? dayjs(value[0], format) : value[0],\n value[1] ? dayjs(value[1], format) : value[1],\n ] as [Dayjs, Dayjs];\n }\n return undefined;\n }, [props.value, format]);\n\n const getDisabledTime: TimeRangePickerProps['disabledTime'] = () => {\n const date = dayjs().format(DayjsDateTypeEnum.YMD);\n const options = {\n minDateTime: minTime ? dayjs(`${date} ${minTime}`) : undefined,\n maxDateTime: maxTime ? dayjs(`${date} ${maxTime}`) : undefined,\n disabledHourList,\n disabledMinuteList,\n disabledSecondList,\n };\n return {\n disabledHours: () => {\n return getDisabledHour(dayjs(), options);\n },\n disabledMinutes: (hour: number) => {\n return getDisabledMinute(dayjs(`${date} ${hour}`), options);\n },\n disabledSeconds: (hour: number, minute: number) => {\n return getDisabledSecond(dayjs(`${date} ${hour}:${minute}`), options);\n },\n };\n };\n\n return (\n <TimePicker.RangePicker\n disabledTime={getDisabledTime}\n {...otherProps}\n value={timePickerValue}\n onChange={onChangeTime}\n format={format}\n />\n );\n};\n"],"names":["TimeRangePickerWrapper","props","onChange","disabledTimeConfig","otherProps","_objectWithoutPropertiesLoose","_excluded","_ref","minTime","maxTime","disabledHourList","disabledMinuteList","disabledSecondList","format","useMemo","DayjsTimeTypeEnum","Hms","onChangeTime","_hooks","useCallbackRef","date","_ref2","timeStart","timeEnd","undefined","timePickerValue","value","length","dayjs","getDisabledTime","DayjsDateTypeEnum","YMD","options","minDateTime","maxDateTime","disabledHours","getDisabledHour","disabledMinutes","hour","getDisabledMinute","disabledSeconds","minute","getDisabledSecond","_jsx","TimePicker","RangePicker","_extends","disabledTime"],"mappings":";+VAqCaA,EAAyB,SAAzBA,EAA0BC,GACrC,IAAQC,EAAgDD,EAAhDC,SAAUC,EAAsCF,EAAtCE,mBAAuBC,EAAUC,EAAKJ,EAAKK,GAE7D,IAAAC,EACEJ,GAAsB,CAAE,EADlBK,EAAOD,EAAPC,QAASC,EAAOF,EAAPE,QAASC,EAAgBH,EAAhBG,iBAAkBC,EAAkBJ,EAAlBI,mBAAoBC,EAAkBL,EAAlBK,mBAGhE,IAAMC,EAASC,GAAQ,WACrB,OAAOb,EAAMY,QAAUE,EAAkBC,GAC3C,GAAG,CAACf,EAAMY,SAEV,IAAMI,EAAeC,EAAMC,gBAAe,SAACC,EAAIC,GAA6C,IAA1CC,EAASD,EAAA,GAAEE,EAAOF,EAAA,GAClE,GAAID,EAAM,CACRlB,GAAQ,UAAA,EAARA,EAAW,CAACoB,EAAWC,GACzB,KAAO,CACLrB,GAAAA,UAAAA,EAAAA,EAAWsB,UACb,CACF,IAEA,IAAMC,EAAkBX,GAAQ,WAC9B,IAAMY,EAAQzB,EAAMyB,MACpB,GAAIA,GAASA,EAAMC,OAAS,EAAG,CAC7B,MAAO,CACLD,EAAM,GAAKE,EAAMF,EAAM,GAAIb,GAAUa,EAAM,GAC3CA,EAAM,GAAKE,EAAMF,EAAM,GAAIb,GAAUa,EAAM,GAE/C,CACA,OAAOF,SACR,GAAE,CAACvB,EAAMyB,MAAOb,IAEjB,IAAMgB,EAAwD,SAAxDA,IACJ,IAAMT,EAAOQ,IAAQf,OAAOiB,EAAkBC,KAC9C,IAAMC,EAAU,CACdC,YAAazB,EAAUoB,EAASR,EAAQZ,IAAAA,GAAagB,UACrDU,YAAazB,EAAUmB,EAASR,EAAQX,IAAAA,GAAae,UACrDd,iBAAAA,EACAC,mBAAAA,EACAC,mBAAAA,GAEF,MAAO,CACLuB,cAAe,SAAAA,IACb,OAAOC,EAAgBR,IAASI,EACjC,EACDK,gBAAiB,SAAAA,EAACC,GAChB,OAAOC,EAAkBX,EAASR,MAAQkB,GAASN,EACpD,EACDQ,gBAAiB,SAAAA,EAACF,EAAcG,GAC9B,OAAOC,EAAkBd,EAASR,EAAI,IAAIkB,EAAI,IAAIG,GAAWT,EAC/D,IAIJ,OACEW,EAACC,EAAWC,YAAWC,EAAA,CACrBC,aAAclB,GACVzB,EAAU,CACdsB,MAAOD,EACPvB,SAAUe,EACVJ,OAAQA,IAGd"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as t,Input as i}from"antd";import{useMemo as o,useRef as u,forwardRef as l,useImperativeHandle as m}from"react";import{fbaHooks as s}from"./fba-hooks/index.js";import{T as c}from"./time-range-picker-wrapper-be9850b5.js";import{jsxs as v,Fragment as d,jsx as f}from"react/jsx-runtime";var h=["startName","endName","formListName","timeRangePickerWrapperProps"];var p=function i(l){var m=l.startName,p=l.endName,_=l.formListName,C=l.timeRangePickerWrapperProps,j=e(l,h);var P=t.useFormInstance();var k=o((function(){if(a(m)&&a(p)){return m.slice(0,m.length-1).concat("__#invalid_time_"+m[m.length-1]+"_"+p[p.length-1])}return"__#invalid_time_"+m+"_"+p}),[m,p]);var N=o((function(){return _?[].concat(_,m):m}),[m,_]);var F=o((function(){return _?[].concat(_,p):p}),[p,_]);var I=t.useWatch(N,P);var W=t.useWatch(F,P);var b=s.usePrevious(I);var x=s.usePrevious(W);s.useEffectCustom((function(){var e=_?[].concat(_,k):k;if(I&&W){P.setFields([{name:e,value:[I,W]}])}if(b&&x&&!I&&!W){P.setFields([{name:e,value:undefined}])}}),[I,W]);var R=u(null);var w=u(null);var L=r.useCallbackRef((function(e){var n,r;P.setFields([{name:N,value:e==null?void 0:e[0]},{name:F,value:e==null?void 0:e[1]}]);(n=R.current)==null?void 0:n.onChange==null?void 0:n.onChange(e==null?void 0:e[0]);(r=w.current)==null?void 0:r.onChange==null?void 0:r.onChange(e==null?void 0:e[1])}));return v(d,{children:[f(t.Item,{name:m,hidden:true,children:f(g,{ref:R})}),f(t.Item,{name:p,hidden:true,children:f(g,{ref:w})}),f(t.Item,n({},j,{name:k,children:f(c,n({},C,{onChange:L}))}))]})};var g=l((function(e,n){m(n,(function(){return{onChange:function n(r){e.onChange==null?void 0:e.onChange(r)}}}));return f(i,{value:e.value})}));export{p as T};
3
- //# sourceMappingURL=time-range-picker-wrapper-form-item-9df6c0f4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-range-picker-wrapper-form-item-9df6c0f4.js","sources":["@flatbiz/antd/src/time-range-picker-wrapper-form-item/time-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormItemProps, Input } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TimeRangePickerWrapper, TimeRangePickerWrapperProps } from '../time-range-picker-wrapper';\nimport { FormItemNamePath } from '../types';\n\nexport type TimeRangePickerWrapperFormItemProps = Omit<FormItemProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 TimeRangePickerWrapperFormItem 在Form.List场景下 必传\n */\n formListName?: FormItemNamePath;\n timeRangePickerWrapperProps?: Omit<TimeRangePickerWrapperProps, 'onChange'>;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件\n * ```\n * 1. 时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * 2. 会在form中产生一个 `__#invalid_time_xxxx_xxxx` 的无效字段,可以直接忽略\n * ```\n */\nexport const TimeRangePickerWrapperFormItem = (props: TimeRangePickerWrapperFormItemProps) => {\n const { startName, endName, formListName, timeRangePickerWrapperProps, ...otherProps } = props;\n const form = Form.useFormInstance();\n const bodyName = useMemo(() => {\n if (isArray(startName) && isArray(endName)) {\n return startName\n .slice(0, startName.length - 1)\n .concat(`__#invalid_time_${startName[startName.length - 1]}_${endName[endName.length - 1]}`);\n }\n return `__#invalid_time_${startName}_${endName}`;\n }, [startName, endName]);\n\n const startNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, startName) : startName;\n }, [startName, formListName]);\n\n const endNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, endName) : endName;\n }, [endName, formListName]);\n\n const startVal = Form.useWatch(startNameMerge, form);\n const endVal = Form.useWatch(endNameMerge, form);\n // const bodyVal = Form.useWatch(bodyName, form);\n\n const preValue1 = fbaHooks.usePrevious(startVal);\n const preValue2 = fbaHooks.usePrevious(endVal);\n\n fbaHooks.useEffectCustom(() => {\n const name = formListName ? ([] as (string | number)[]).concat(formListName, bodyName) : bodyName;\n if (startVal && endVal) {\n form.setFields([{ name, value: [startVal, endVal] }]);\n }\n if (preValue1 && preValue2 && !startVal && !endVal) {\n form.setFields([{ name, value: undefined }]);\n }\n }, [startVal, endVal]);\n\n const reftest = useRef<InputContentRef>(null);\n const reftest2 = useRef<InputContentRef>(null);\n\n const onChange = hooks.useCallbackRef((data) => {\n form.setFields([\n { name: startNameMerge, value: data?.[0] },\n { name: endNameMerge, value: data?.[1] },\n ]);\n // 为了解决 外部Form onValuesChange获取到操作值\n reftest.current?.onChange?.(data?.[0]);\n reftest2.current?.onChange?.(data?.[1]);\n });\n\n return (\n <>\n <Form.Item name={startName} hidden>\n <InputContent ref={reftest} />\n </Form.Item>\n <Form.Item name={endName} hidden>\n <InputContent ref={reftest2} />\n </Form.Item>\n <Form.Item {...otherProps} name={bodyName}>\n <TimeRangePickerWrapper {...timeRangePickerWrapperProps} onChange={onChange} />\n </Form.Item>\n </>\n );\n};\n\ntype InputContentProps = {\n onChange?: (data: TAny) => void;\n value?: string;\n};\n\ntype InputContentRef = {\n onChange?: (data: TAny) => void;\n};\n\nconst InputContent = forwardRef<InputContentRef, InputContentProps>((props, ref) => {\n useImperativeHandle(ref, () => {\n return {\n onChange: (startVal) => {\n props.onChange?.(startVal);\n },\n };\n });\n\n return <Input value={props.value} />;\n});\n"],"names":["TimeRangePickerWrapperFormItem","props","startName","endName","formListName","timeRangePickerWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","form","Form","useFormInstance","bodyName","useMemo","_isArray","slice","length","concat","startNameMerge","endNameMerge","startVal","useWatch","endVal","preValue1","fbaHooks","usePrevious","preValue2","useEffectCustom","name","setFields","value","undefined","reftest","useRef","reftest2","onChange","_hooks","useCallbackRef","data","_reftest$current","_reftest2$current","current","_jsxs","_Fragment","children","_jsx","Item","hidden","InputContent","ref","_extends","TimeRangePickerWrapper","forwardRef","useImperativeHandle","Input"],"mappings":";2hBA+BaA,EAAiC,SAAjCA,EAAkCC,GAC7C,IAAQC,EAAiFD,EAAjFC,UAAWC,EAAsEF,EAAtEE,QAASC,EAA6DH,EAA7DG,aAAcC,EAA+CJ,EAA/CI,4BAAgCC,EAAUC,EAAKN,EAAKO,GAC9F,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAWC,GAAQ,WACvB,GAAIC,EAAQZ,IAAcY,EAAQX,GAAU,CAC1C,OAAOD,EACJa,MAAM,EAAGb,EAAUc,OAAS,GAC5BC,OAA0Bf,mBAAAA,EAAUA,EAAUc,OAAS,GAAMb,IAAAA,EAAQA,EAAQa,OAAS,GAC3F,CACA,MAA0Bd,mBAAAA,MAAaC,CACzC,GAAG,CAACD,EAAWC,IAEf,IAAMe,EAAiBL,GAAQ,WAC7B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcF,GAAaA,CACtF,GAAG,CAACA,EAAWE,IAEf,IAAMe,EAAeN,GAAQ,WAC3B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcD,GAAWA,CACpF,GAAG,CAACA,EAASC,IAEb,IAAMgB,EAAWV,EAAKW,SAASH,EAAgBT,GAC/C,IAAMa,EAASZ,EAAKW,SAASF,EAAcV,GAG3C,IAAMc,EAAYC,EAASC,YAAYL,GACvC,IAAMM,EAAYF,EAASC,YAAYH,GAEvCE,EAASG,iBAAgB,WACvB,IAAMC,EAAOxB,EAAgB,GAA2Ba,OAAOb,EAAcQ,GAAYA,EACzF,GAAIQ,GAAYE,EAAQ,CACtBb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAO,CAACV,EAAUE,KAC5C,CACA,GAAIC,GAAaG,IAAcN,IAAaE,EAAQ,CAClDb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAOC,YACjC,CACF,GAAG,CAACX,EAAUE,IAEd,IAAMU,EAAUC,EAAwB,MACxC,IAAMC,EAAWD,EAAwB,MAEzC,IAAME,EAAWC,EAAMC,gBAAe,SAACC,GAAS,IAAAC,EAAAC,EAC9C/B,EAAKoB,UAAU,CACb,CAAED,KAAMV,EAAgBY,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,IACtC,CAAEV,KAAMT,EAAcW,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,OAGtCC,EAAAP,EAAQS,UAARF,UAAAA,EAAAA,EAAiBJ,UAAQ,UAAA,EAAzBI,EAAiBJ,SAAWG,GAAI,UAAA,EAAJA,EAAO,KACnCE,EAAAN,EAASO,UAATD,UAAAA,EAAAA,EAAkBL,UAAQ,UAAA,EAA1BK,EAAkBL,SAAWG,GAAI,UAAA,EAAJA,EAAO,GACtC,IAEA,OACEI,EAAAC,EAAA,CAAAC,SACEC,CAAAA,EAACnC,EAAKoC,KAAI,CAAClB,KAAM1B,EAAW6C,OAAM,KAAAH,SAChCC,EAACG,EAAY,CAACC,IAAKjB,MAErBa,EAACnC,EAAKoC,KAAI,CAAClB,KAAMzB,EAAS4C,OAAM,KAAAH,SAC9BC,EAACG,EAAY,CAACC,IAAKf,MAErBW,EAACnC,EAAKoC,KAAII,EAAA,CAAA,EAAK5C,EAAU,CAAEsB,KAAMhB,EAASgC,SACxCC,EAACM,EAAsBD,KAAK7C,EAA2B,CAAE8B,SAAUA,UAI3E,EAWA,IAAMa,EAAeI,GAA+C,SAACnD,EAAOgD,GAC1EI,EAAoBJ,GAAK,WACvB,MAAO,CACLd,SAAU,SAAAA,EAACf,GACTnB,EAAMkC,UAANlC,UAAAA,EAAAA,EAAMkC,SAAWf,EACnB,EAEJ,IAEA,OAAOyB,EAACS,EAAK,CAACxB,MAAO7B,EAAM6B,OAC7B"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/QuestionCircleOutlined";import{isUndefinedOrNull as t}from"@flatbiz/utils";import{Space as i,Tooltip as n}from"antd";import{jsxs as r,jsx as s}from"react/jsx-runtime";var l=function l(a){var c=a.tooltip;var o=t(a.gap)?3:a.gap;if(typeof c==="string"){return r(i,{size:o,className:a.className,style:a.style,children:[s("span",{children:a.title}),s(n,{title:c,children:s("span",{style:{opacity:.7},children:s(e,{})})})]})}var p=t(c.hoverArea)?"icon":c.hoverArea;if(p==="icon"){return r(i,{size:o,className:a.className,style:a.style,children:[s("span",{children:a.title}),s(n,{title:c.content,children:s("span",{children:c.icon||s(e,{})})})]})}return s(n,{title:c.content,children:r(i,{size:o,className:a.className,style:a.style,children:[s("span",{children:a.title}),s("span",{children:c.icon||s(e,{})})]})})};export{l as T};
3
- //# sourceMappingURL=title-render-4f255df0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"title-render-4f255df0.js","sources":["@flatbiz/antd/src/table-title-tooltip/title-render.tsx"],"sourcesContent":["import { QuestionCircleOutlined } from '@ant-design/icons';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\n\nexport type TableTitleTooltipProps = {\n title: string;\n tooltip: string | { icon?: ReactElement; content?: string; hoverArea?: 'icon' | 'all' };\n // 间隙,默认值:3\n gap?: number;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * title + tooltip\n * @param props\n * @returns\n */\nexport const TableTitleTooltip = (props: TableTitleTooltipProps) => {\n const tooltip = props.tooltip;\n const gap = isUndefinedOrNull(props.gap) ? 3 : props.gap;\n if (typeof tooltip === 'string') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <Tooltip title={tooltip}>\n <span style={{ opacity: 0.7 }}>\n <QuestionCircleOutlined />\n </span>\n </Tooltip>\n </Space>\n );\n }\n const hoverArea = isUndefinedOrNull(tooltip.hoverArea) ? 'icon' : tooltip.hoverArea;\n if (hoverArea === 'icon') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <Tooltip title={tooltip.content}>\n <span>{tooltip.icon || <QuestionCircleOutlined />}</span>\n </Tooltip>\n </Space>\n );\n }\n return (\n <Tooltip title={tooltip.content}>\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <span>{tooltip.icon || <QuestionCircleOutlined />}</span>\n </Space>\n </Tooltip>\n );\n};\n"],"names":["TableTitleTooltip","props","tooltip","gap","isUndefinedOrNull","_jsxs","Space","size","className","style","children","_jsx","title","Tooltip","opacity","_QuestionCircleOutlined","hoverArea","content","icon"],"mappings":";oNAmBaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAMC,EAAUD,EAAMC,QACtB,IAAMC,EAAMC,EAAkBH,EAAME,KAAO,EAAIF,EAAME,IACrD,UAAWD,IAAY,SAAU,CAC/B,OACEG,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAACE,EAAO,CAACD,MAAOV,EAAQQ,SACtBC,EAAA,OAAA,CAAMF,MAAO,CAAEK,QAAS,IAAMJ,SAC5BC,EAAAI,EAAA,UAKV,CACA,IAAMC,EAAYZ,EAAkBF,EAAQc,WAAa,OAASd,EAAQc,UAC1E,GAAIA,IAAc,OAAQ,CACxB,OACEX,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAACE,EAAO,CAACD,MAAOV,EAAQe,QAAQP,SAC9BC,EAAA,OAAA,CAAAD,SAAOR,EAAQgB,MAAQP,EAAAI,EAAA,CAAA,SAI/B,CACA,OACEJ,EAACE,EAAO,CAACD,MAAOV,EAAQe,QAAQP,SAC9BL,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAAA,OAAA,CAAAD,SAAOR,EAAQgB,MAAQP,EAAAI,EAAA,CAAA,SAI/B"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{isString as l}from"@dimjs/lang/cjs/is-string";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{extend as a}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as u,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{treeToTiledArray as s,treeLeafParentsArray as c,toArray as f,isUndefinedOrNull as d,treeToArray as v,arrayFind as m,valueIsEqual as h,isNumber as p,getValueOrDefault as S}from"@flatbiz/utils";import{TreeSelect as b,Button as g}from"antd";import{useState as C,useRef as y,useMemo as L,createElement as w}from"react";import{Model as k}from"@dimjs/model-react";import{usePrevious as q}from"ahooks";import{dequal as R}from"dequal";import{fbaHooks as A}from"./fba-hooks/index.js";import{R as T}from"./request-status-03fc60e2.js";import{isObject as j}from"@dimjs/lang/cjs/is-object";import{jsx as x}from"react/jsx-runtime";var E={treeSelectorList:[],treeSelectorTiledArray:[],queryIsEmpty:false};var N={actions:{setSelectBoxList:function e(r){return function(e){e.treeSelectorList=r.treeSelectorList||[];e.treeSelectorTiledArray=r.treeSelectorTiledArray||[];e.requestStatus="request-success"}},resetSelectBoxList:function e(){return function(e){e.treeSelectorList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r}}},state:E};var I={};var D=function e(r){if(!I[r]){I[r]=k(N)}return I[r]};var P=function e(r,t,l){if(!n(t)||t.length===0)return[];var a=s(t,l);return c(r,a,true,{value:"value",parentValue:"parentValue"})};var V=function e(r,t){var l=f(r);l=l.map((function(e){if(j(e))return e[t.value];return e}));return l};var B=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","onChangeHandle","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys"];var K=function s(c){var k=c.serviceConfig,j=c.effectDependencyList,E=c.onTreeSelectorListChange,N=c.onTreeSelectorRequestError,I=c.treeSelectorList,K=c.requestMessageConfig,H=c.modelKey,O=c.value,F=c.labelInValue,W=c.labelInValueFieldNames,_=c.onTreeItemDataAdapter,M=c.selectedParentCheckedAllChildrenList,z=M===void 0?true:M,G=c.fieldNames,J=c.onChange,Q=c.onChangeHandle,U=c.treeDefaultExpandAll,X=c.showAllOption,Y=c.initRootExpand,Z=c.treeDefaultExpandedKeys,$=u(c,B);var ee=c.hasOwnProperty("treeSelectorList");var re=k||{};var te=j||[];var le=A.useSafeState(false),ne=le[0],ae=le[1];var ie=C(),ue=ie[0],oe=ie[1];var se=D(H).useStore(),ce=se[0],fe=se[1];var de="request-progress-"+H;var ve=$.treeCheckable;var me=y(true);var he=L((function(){if($.treeCheckStrictly)return true;return F}),[F,$.treeCheckStrictly]);var pe=L((function(){return o({label:"label",value:"value",children:"children",disabled:"disabled"},G)}),[G]);var Se=L((function(){return o({label:"label",value:"value"},W)}),[W]);var be=L((function(){if(X){var e=X===true;return{label:e?"全部":X.label,value:e?"":X.value}}return null}),[X]);var ge=y(true);var Ce=q(O);A.useEffectCustom((function(){if(ce.treeSelectorList.length>0){if(me.current&&d(O)){me.current=false;if(Z){oe(Z)}else if(U){var e=v(ce.treeSelectorList,pe.children).map((function(e){return e[pe.value]}));oe(e);return}else if(Y&&ce.treeSelectorList.length){oe([ce.treeSelectorList[0][pe.value]]);return}}if(d(O)&&ge.current)return;ge.current=false;if(O!==Ce){var r=V(O,Se);var t=Ae(r,true);oe(Array.from(new Set(t)))}}}),[O,ce.treeSelectorList]);var ye=function e(r){return r===""||d(r)};var Le=function e(r){var t=re.onRequestResultAdapter?re.onRequestResultAdapter(r):r;return t};var we=i.useCallbackRef((function(){return new Promise((function(e,r){var t,l,n,i,u;if(!re.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=re.requiredParamsKeys||[];l=a({},re.params);n=t.find((function(e){return ye(l[e])}));if(n){void fe.changeRequestStatus("no-dependencies-params");console.warn("TreeSelectorWrapper组件:参数:"+t.join("、")+"不能为空");return e()}var o=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{ae(false);window[de]=false;void fe.changeRequestStatus("request-error");N==null?void 0:N(e);return o()}catch(e){return r(e)}};try{ae(true);window[de]=true;void fe.changeRequestStatus("request-progress");return Promise.resolve(re.onRequest==null?void 0:re.onRequest(l)).then((function(e){try{i=e;u=Le(i);ae(false);window[de]=false;ke(u||[]);return o()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));i.useCustomCompareEffect((function(){if(ee)return;if(Boolean(te.length)){ke([]);void we();return}var e=D(H).getState();if(e.requestStatus==="request-success"){return}if(!window[de]){void we();return}}),te,R);var ke=i.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ce.treeSelectorList.length===0){void fe.setSelectBoxList({treeSelectorList:[],treeSelectorTiledArray:[]});E==null?void 0:E([]);return}var t=be?(r={},r[pe.label]=be.label,r[pe.value]=be.value,r):undefined;var l=X?[t].concat(e):e;void fe.setSelectBoxList({treeSelectorList:l,treeSelectorTiledArray:v(l||[],pe.children)});E==null?void 0:E(e)}));A.useEffectCustom((function(){if(ee){ke(I||[])}}),[I]);var qe=i.useCallbackRef((function(e){oe(e)}));var Re=i.useCallbackRef((function(){void we()}));var Ae=function e(r,t){var l=[];r.forEach((function(e){if(!t&&ue!=null&&ue.includes(e))return;var r=P(e,ce.treeSelectorList,pe);l=l.concat(r.map((function(e){return e.value})))}));return l};var Te=i.useCallbackRef((function(e){if(!e)return undefined;return{label:e==null?void 0:e[pe.label],value:e==null?void 0:e[pe.value],children:e==null?void 0:e[pe.children],disabled:e==null?void 0:e["disabled"]}}));var je=i.useCallbackRef((function(e){if(!e)return undefined;return{label:e==null?void 0:e[Se.label],value:e==null?void 0:e[Se.value],disabled:e==null?void 0:e["disabled"]}}));var xe=i.useCallbackRef((function(e,r){var t=V(e,{value:"value",label:"label"});var l=[];t.forEach((function(e){var r=m(ce.treeSelectorTiledArray,e,pe.value);if(!r)return;l.push(r)}));if($.treeCheckStrictly&&z){var a=Te(r.checked?m(ce.treeSelectorTiledArray,r.triggerValue,pe.value):null);if(a&&n(a.children)&&a.children.length>0){var i=v(a.children,pe.children);var u=i.filter((function(e){var r=Te(e);if(r!=null&&r.disabled)return false;if(m(l,r==null?void 0:r.value,pe.value))return false;return true}));l=l.concat(u)}}var o=[];if($.treeCheckable){if($.treeCheckStrictly===true||h($.showCheckedStrategy,["SHOW_ALL","SHOW_PARENT"])){o=l}else{o=l.filter((function(e){var r=e[pe.children];return!(n(r)&&r.length>0)}))}}else{o=l}return{realTreeNodeList:o,realTreeNodeValueList:V(o,pe)}}));var Ee=i.useCallbackRef((function(e,r,t){J==null?void 0:J(e,r,t);Q==null?void 0:Q(e,r,t)}));var Ne=i.useCallbackRef((function(e,r,t){var l=xe(e,t),n=l.realTreeNodeList,a=l.realTreeNodeValueList;if($.treeCheckable){oe((function(e){var r=Ae(a).concat(e||[]);return Array.from(new Set(r))}))}if(he){var i=n.map((function(e){var r;var t=Te(e);return r={},r[Se.label]=t==null?void 0:t.label,r[Se.value]=t==null?void 0:t.value,r}));if(ve){Ee==null?void 0:Ee(i,n,t)}else{Ee==null?void 0:Ee(i[0],n[0],t)}}else{if(ve){Ee==null?void 0:Ee(a,n,t)}else{Ee==null?void 0:Ee(a[0],n[0],t)}}}));var Ie=i.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(_==null?void 0:_(o({},e)))||e;var t=r[pe.children];var l=r[pe.value];var n=r[pe.label];var a=r[pe.disabled]?r[pe.disabled]:r.disabled;return w(b.TreeNode,o({},r,{disabled:a,value:l,title:n,key:""+l}),t&&t.length>0&&Ie(t))}))}));var De=L((function(){var e=f(O);if(e.length==0)return[];if($.treeCheckStrictly){if(ce.treeSelectorTiledArray.length===0){return e.map((function(e){return{label:e,value:e}}))}return e.map((function(e){var r,t;var n;var a;if(l(e)||p(e)){var i=m(ce.treeSelectorTiledArray,e,pe.value);n=Te(i);a=e}else{n=je(e)}return{label:S((r=n)==null?void 0:r.label,a),value:S((t=n)==null?void 0:t.value,a)}}))}return V(O,Se)}),[O,$.treeCheckStrictly,Se,ce.treeSelectorTiledArray,pe.value,Te,je]);var Pe=L((function(){if(n(De)&&De.length===0){return undefined}return ve?De:De[0]}),[ve,De]);return x(b,o({dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:x(t,{}),showArrow:true},$,{className:r("v-tree-select-wrapper",$.className),popupClassName:r("v-tree-select-wrapper-dropdown",$.popupClassName),onChange:Ne,treeExpandedKeys:ue,value:Pe,loading:ne,dropdownMatchSelectWidth:false,onTreeExpand:qe,style:o({width:"100%"},$.style),suffixIcon:ce.requestStatus==="request-error"?x(e,{spin:ne,onClick:Re}):undefined,notFoundContent:x(T,{status:ce.requestStatus,messageConfig:K,loading:ne,errorButton:x(g,{type:"primary",onClick:Re,children:"重新获取数据"})}),children:Ie(ce.treeSelectorList)}))};export{K as T};
3
- //# sourceMappingURL=tree-selector-wrapper-1e520ad1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree-selector-wrapper-1e520ad1.js","sources":["@flatbiz/antd/src/tree-selector-wrapper/model.ts","@flatbiz/antd/src/tree-selector-wrapper/utils.ts","@flatbiz/antd/src/tree-selector-wrapper/tree-selector-wrapper.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeSelectorList: TSetDefaultDefined<TreeSelectProps['treeData'], []>;\n treeSelectorTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: {\n treeSelectorList: ModelState['treeSelectorList'];\n treeSelectorTiledArray: ModelState['treeSelectorTiledArray'];\n };\n resetSelectBoxList: void;\n changeRequestStatus: TRequestStatus;\n};\n\nconst defaultState: ModelState = {\n treeSelectorList: [],\n treeSelectorTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeSelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.treeSelectorList = params.treeSelectorList || [];\n state.treeSelectorTiledArray = params.treeSelectorTiledArray || [];\n state.requestStatus = 'request-success';\n };\n },\n resetSelectBoxList: () => {\n return (state) => {\n state.treeSelectorList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeSelectorWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeSelectorWrapperModel('key值').useStore();\n * ```\n */\nexport const treeSelectorWrapperModel = (key: string) => {\n if (!treeSelectorWrapperModels[key]) {\n treeSelectorWrapperModels[key] = Model(TreeSelectorWrapperModel);\n }\n return treeSelectorWrapperModels[key];\n};\n","import { isArray, isObject } from '@dimjs/lang';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n toArray,\n TPlainObject,\n treeLeafParentsArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { dequal } from 'dequal';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: TreeSelectProps['fieldNames'],\n) => {\n if (!isArray(treeList) || treeList.length === 0) return [];\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nexport const getVauleList = (data, fieldNames: LabelValueItem<string>) => {\n let tempList = toArray<TPlainObject | string | number>(data);\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[fieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, fieldNames: LabelValueItem<string>) => {\n const list = getVauleList(data, fieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括 string、number、Array<string | number>、{ label: string, value: string | nuber }\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeSelectorWrapperValueDeepEqual = (\n value1: any,\n value2: any,\n fieldNames: LabelValueItem<string>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, fieldNames);\n const object2 = array2map(value2, fieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n","import { CaretDownFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray, isString } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport {\n isNumber,\n isUndefinedOrNull,\n TAny,\n toArray,\n TPlainObject,\n treeToArray,\n valueIsEqual,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, TreeSelect, TreeSelectProps } from 'antd';\nimport { DependencyList, useMemo, useRef, useState } from 'react';\nimport { treeSelectorWrapperModel } from './model';\nimport './style.less';\n\nimport { arrayFind, getValueOrDefault } from '@flatbiz/utils';\nimport { usePrevious } from 'ahooks';\nimport { dequal } from 'dequal';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport { getExpandedKeys, getVauleList } from './utils';\n\ntype TreeSelectorWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeSelectorServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeSelectorWrapperProps = Omit<\n TreeSelectProps,\n | 'treeExpandedKeys'\n | 'treeData'\n | 'loading'\n | 'onTreeExpand'\n | 'onChange'\n | 'value'\n | 'fieldNames'\n | 'defaultValue'\n | 'treeDataSimpleMode'\n> & {\n modelKey: string;\n fieldNames?: { label?: string; value?: string; children?: string; disabled?: string };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`treeSelectorList`后无效果\n */\n serviceConfig?: TreeSelectorServiceConfig;\n /**\n * 当设置treeSelectorList后,serviceConfig 将失效\n */\n treeSelectorList?: TreeSelectProps['treeData'];\n /**\n * treeSelectorList发生变更时触发\n */\n onTreeSelectorListChange?: (treeSelectorList?: TreeSelectProps['treeData']) => void;\n /**\n * 通过服务获取数据异常回调,当设置`treeSelectorList`后无效果\n */\n onTreeSelectorRequestError?: (error: Error) => void;\n /**\n * 添加全部选项\n * ```\n * 1. showAllOption = true,添加默认全部选项(value值为空字符串)\n * 2. 可自定义全部选项,例如:{ label: '全部', value: 'all' }\n * 3. 自定义字段会通过fieldNames转换后使用\n * 4. 多选操作时,最好不要设置全部选项\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /**\n * @deprecated 已过期,请使用onChange\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChangeHandle?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChange?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * tree item 数据适配器\n */\n onTreeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n // icon 无法实现、treeIcon不起作用4.20.0\n // showIcon?: boolean;\n // icon?: (data: TPlainObject) => ReactElement;\n /** 自定义异常提示文案 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeSelectorWrapperValue;\n\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * treeCheckStrictly = true模式下有效,点击父节点是否选中所有子节点,默认值:true\n */\n selectedParentCheckedAllChildrenList?: boolean;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n};\n\n// type TreeSelectorWrapperPropsInner = TreeSelectorWrapperProps & {\n// onChange?: (selectedValue?: TreeSelectorWrapperValue) => void;\n// };\n\n/**\n * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现\n * @param props\n * @returns\n * ```\n * 1. 当设置treeSelectorList属性后,serviceConfig、onTreeSelectorListChange将失效\n * 2. 父节点默认不返回,需要返回请设置showCheckedStrategy\n * ```\n */\nexport const TreeSelectorWrapper = (props: TreeSelectorWrapperProps) => {\n const {\n serviceConfig,\n effectDependencyList,\n onTreeSelectorListChange,\n onTreeSelectorRequestError,\n treeSelectorList,\n requestMessageConfig,\n modelKey,\n value,\n labelInValue: _labelInValue,\n labelInValueFieldNames,\n onTreeItemDataAdapter,\n selectedParentCheckedAllChildrenList = true,\n fieldNames,\n onChange,\n onChangeHandle,\n treeDefaultExpandAll,\n showAllOption,\n initRootExpand,\n treeDefaultExpandedKeys,\n ...otherProps\n } = props;\n /**\n * 不能使用key、defaultValue模式\n * 1. 勾选的和回填选中不相同情况,勾选后会渲染defaultValue模式后,弹框被关闭,操作体验存在问题\n */\n const hasTreeSelectorList = props.hasOwnProperty('treeSelectorList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeSelectorWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${modelKey}`;\n const isMultiple = otherProps.treeCheckable;\n const responseFirstRef = useRef(true);\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n const labelInValue = useMemo(() => {\n if (otherProps.treeCheckStrictly) return true;\n return _labelInValue;\n }, [_labelInValue, otherProps.treeCheckStrictly]);\n\n const fieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', disabled: 'disabled', ...fieldNames };\n }, [fieldNames]);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n\n const allOptionConfig = useMemo(() => {\n if (showAllOption) {\n const isTrue = showAllOption === true;\n return {\n label: isTrue ? '全部' : showAllOption.label,\n value: isTrue ? '' : showAllOption.value,\n };\n }\n return null;\n }, [showAllOption]);\n\n const isFirstUseValueRef = useRef(true);\n\n const prevValue = usePrevious(value);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeSelectorList.length > 0) {\n if (responseFirstRef.current && isUndefinedOrNull(value)) {\n responseFirstRef.current = false;\n if (treeDefaultExpandedKeys) {\n setTreeExpandedKeys(treeDefaultExpandedKeys);\n } else if (treeDefaultExpandAll) {\n const allValues = treeToArray(state.treeSelectorList, fieldNamesMerge.children).map((item) => {\n return item[fieldNamesMerge.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeSelectorList.length) {\n setTreeExpandedKeys([state.treeSelectorList[0][fieldNamesMerge.value]]);\n return;\n }\n }\n if (isUndefinedOrNull(value) && isFirstUseValueRef.current) return;\n isFirstUseValueRef.current = false;\n if (value !== prevValue) {\n const valueList = getVauleList(value, labelInValueFieldNamesMerge);\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n }\n }\n }, [value, state.treeSelectorList]);\n\n const valueIsEmpty = (value: string | number) => {\n return value === '' || isUndefinedOrNull(value);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData;\n return respDataList as TPlainObject[];\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys || [];\n const params = extend({}, newServiceConfig.params);\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n void actions.changeRequestStatus('no-dependencies-params');\n console.warn(`TreeSelectorWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeSelectProps['treeData'];\n setLoading(false);\n window[requestPreKey] = false;\n onChangeSelectorList(respData || []);\n } catch (error: any) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n onTreeSelectorRequestError?.(error);\n }\n });\n\n hooks.useCustomCompareEffect(\n () => {\n if (hasTreeSelectorList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n // 内部主动清楚数据,被依赖的数据发生变更时,依赖组件数据清空\n onChangeSelectorList([]);\n void startDataSourceRequest();\n return;\n }\n const allState = treeSelectorWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n },\n newEffectDependencyList,\n dequal,\n );\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeSelectorList.length === 0) {\n void actions.setSelectBoxList({\n treeSelectorList: [],\n treeSelectorTiledArray: [],\n });\n onTreeSelectorListChange?.([]);\n return;\n }\n // 全部选项\n const tempItem = allOptionConfig\n ? {\n [fieldNamesMerge.label]: allOptionConfig.label,\n [fieldNamesMerge.value]: allOptionConfig.value,\n }\n : undefined;\n const newdataList = showAllOption ? [tempItem, ...dataList] : dataList;\n void actions.setSelectBoxList({\n treeSelectorList: newdataList,\n treeSelectorTiledArray: treeToArray(newdataList || [], fieldNamesMerge.children),\n });\n onTreeSelectorListChange?.(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasTreeSelectorList) {\n onChangeSelectorList(treeSelectorList || []);\n }\n }, [treeSelectorList]);\n\n const onTreeExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n const getTreeExpandedKeys = (valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeSelectorList, fieldNamesMerge);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n /**\n * 数据源Item解析\n */\n const parseDataSourceItem = hooks.useCallbackRef((item?: TPlainObject | null) => {\n if (!item) return undefined;\n return {\n label: item?.[fieldNamesMerge.label],\n value: item?.[fieldNamesMerge.value],\n children: item?.[fieldNamesMerge.children],\n disabled: item?.['disabled'],\n };\n });\n /**\n * labelInValue模式入参value item解析\n */\n const parseLabelInValueItem = hooks.useCallbackRef((item?: TPlainObject | null) => {\n if (!item) return undefined;\n return {\n label: item?.[labelInValueFieldNamesMerge.label],\n value: item?.[labelInValueFieldNamesMerge.value],\n disabled: item?.['disabled'],\n };\n });\n\n const getResponseTreeNodeList = hooks.useCallbackRef((changeValue: TAny, triggerInfo: TPlainObject) => {\n const valueList = getVauleList(changeValue, { value: 'value', label: 'label' });\n let selectedTreeNodeList = [] as TPlainObject[];\n valueList.forEach((item) => {\n const target = arrayFind(state.treeSelectorTiledArray, item, fieldNamesMerge.value) as TPlainObject;\n if (!target) return;\n selectedTreeNodeList.push(target);\n });\n if (otherProps.treeCheckStrictly && selectedParentCheckedAllChildrenList) {\n const triggerNode = parseDataSourceItem(\n triggerInfo.checked\n ? arrayFind(state.treeSelectorTiledArray, triggerInfo.triggerValue, fieldNamesMerge.value)\n : null,\n );\n if (triggerNode && isArray(triggerNode.children) && triggerNode.children.length > 0) {\n // 判断为父节点\n const allChildrenList = treeToArray(triggerNode.children, fieldNamesMerge.children);\n const selectedChildrenList = allChildrenList.filter((item) => {\n const parseItem = parseDataSourceItem(item);\n if (parseItem?.disabled) return false;\n // 去重\n if (arrayFind(selectedTreeNodeList, parseItem?.value, fieldNamesMerge.value)) return false;\n return true;\n });\n selectedTreeNodeList = selectedTreeNodeList.concat(selectedChildrenList);\n }\n }\n let realTreeNodeList = [] as TPlainObject[];\n if (otherProps.treeCheckable) {\n if (\n otherProps.treeCheckStrictly === true ||\n valueIsEqual(otherProps.showCheckedStrategy, ['SHOW_ALL', 'SHOW_PARENT'])\n ) {\n // 返回包含父节点\n realTreeNodeList = selectedTreeNodeList;\n } else {\n // 返回不包含父节点\n realTreeNodeList = selectedTreeNodeList.filter((item) => {\n const children = item[fieldNamesMerge.children];\n return !(isArray(children) && children.length > 0);\n });\n }\n } else {\n realTreeNodeList = selectedTreeNodeList;\n }\n return {\n realTreeNodeList,\n realTreeNodeValueList: getVauleList(realTreeNodeList, fieldNamesMerge),\n };\n });\n\n const onRespChange = hooks.useCallbackRef((values, selectedValues, triggerInfo) => {\n // setInnerOperateValue(values);\n onChange?.(values, selectedValues, triggerInfo);\n onChangeHandle?.(values, selectedValues, triggerInfo);\n });\n\n /**\n * 根据treeCheckable、treeCheckStrictly、showCheckedStrategy等设置情况,判断返回数据是否包含父节点\n * 1. 当 treeCheckable = true,changeValue 数据格式为 { label,value }[]\n */\n const onInnerChange = hooks.useCallbackRef((changeValue: TAny, _data, triggerInfo: TPlainObject) => {\n const { realTreeNodeList, realTreeNodeValueList } = getResponseTreeNodeList(changeValue, triggerInfo);\n if (otherProps.treeCheckable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(realTreeNodeValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n }\n\n if (labelInValue) {\n const labelInValueList = realTreeNodeList.map((item) => {\n const parseItem = parseDataSourceItem(item);\n return {\n [labelInValueFieldNamesMerge.label]: parseItem?.label,\n [labelInValueFieldNamesMerge.value]: parseItem?.value,\n };\n });\n\n if (isMultiple) {\n onRespChange?.(labelInValueList, realTreeNodeList, triggerInfo);\n } else {\n onRespChange?.(labelInValueList[0], realTreeNodeList[0], triggerInfo);\n }\n } else {\n if (isMultiple) {\n onRespChange?.(realTreeNodeValueList, realTreeNodeList, triggerInfo);\n } else {\n onRespChange?.(realTreeNodeValueList[0], realTreeNodeList[0], triggerInfo);\n }\n }\n });\n\n const mapTree = hooks.useCallbackRef((data) => {\n if (!data) return null;\n return data.map((item) => {\n const itemAdapterData = onTreeItemDataAdapter?.({ ...item }) || item;\n const children = itemAdapterData[fieldNamesMerge.children];\n const value = itemAdapterData[fieldNamesMerge.value];\n const label = itemAdapterData[fieldNamesMerge.label];\n const disabled = itemAdapterData[fieldNamesMerge.disabled]\n ? itemAdapterData[fieldNamesMerge.disabled]\n : itemAdapterData.disabled;\n return (\n <TreeSelect.TreeNode\n {...itemAdapterData}\n disabled={disabled}\n value={value}\n title={label}\n key={`${value}`}\n >\n {children && children.length > 0 && mapTree(children)}\n </TreeSelect.TreeNode>\n );\n });\n });\n\n /**\n * 1. 当 treeCheckable = true,value 数据格式为 labelInValueFieldNames[]\n * 2. 其他情况 value 数据格式为 value[]\n */\n const renderValueList = useMemo(() => {\n const innerOperateValueList = toArray(value);\n if (innerOperateValueList.length == 0) return [];\n if (otherProps.treeCheckStrictly) {\n if (state.treeSelectorTiledArray.length === 0) {\n return innerOperateValueList.map((item) => ({ label: item, value: item }));\n }\n return innerOperateValueList.map((item) => {\n let targetParseItem: TPlainObject;\n let defualtValue;\n if (isString(item) || isNumber(item as TAny)) {\n const target = arrayFind(state.treeSelectorTiledArray, item as string, fieldNamesMerge.value);\n targetParseItem = parseDataSourceItem(target) as TPlainObject;\n defualtValue = item;\n } else {\n targetParseItem = parseLabelInValueItem(item as TPlainObject) as TPlainObject;\n }\n return {\n label: getValueOrDefault(targetParseItem?.label, defualtValue),\n value: getValueOrDefault(targetParseItem?.value, defualtValue),\n };\n });\n }\n return getVauleList(value, labelInValueFieldNamesMerge);\n }, [\n value,\n otherProps.treeCheckStrictly,\n labelInValueFieldNamesMerge,\n state.treeSelectorTiledArray,\n fieldNamesMerge.value,\n parseDataSourceItem,\n parseLabelInValueItem,\n ]);\n\n const treeSelectValue = useMemo(() => {\n if (isArray(renderValueList) && renderValueList.length === 0) {\n return undefined;\n }\n return isMultiple ? renderValueList : renderValueList[0];\n }, [isMultiple, renderValueList]);\n\n /**\n * 1. 使用 TreeNode 渲染节点,不能重写 fieldNames 配置\n * 2. 使用 TreeNode 是为了实现 TreeNode ICON\n */\n return (\n <TreeSelect\n dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\n showSearch={true}\n treeLine={{ showLeafIcon: false }}\n treeNodeFilterProp=\"title\"\n switcherIcon={<CaretDownFilled />}\n showArrow\n {...otherProps}\n className={classNames('v-tree-select-wrapper', otherProps.className)}\n popupClassName={classNames('v-tree-select-wrapper-dropdown', otherProps.popupClassName)}\n onChange={onInnerChange}\n treeExpandedKeys={treeExpandedKeys}\n value={treeSelectValue}\n loading={loading}\n dropdownMatchSelectWidth={false}\n onTreeExpand={onTreeExpand}\n style={{ width: '100%', ...otherProps.style }}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n messageConfig={requestMessageConfig}\n loading={loading}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {mapTree(state.treeSelectorList)}\n </TreeSelect>\n );\n};\n"],"names":["defaultState","treeSelectorList","treeSelectorTiledArray","queryIsEmpty","TreeSelectorWrapperModel","actions","setSelectBoxList","params","state","requestStatus","resetSelectBoxList","changeRequestStatus","treeSelectorWrapperModels","treeSelectorWrapperModel","key","Model","getExpandedKeys","value","treeList","fieldNames","_isArray","length","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","tempList","toArray","map","item","_isObject","TreeSelectorWrapper","props","serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","requestMessageConfig","modelKey","_labelInValue","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","_props$selectedParent","selectedParentCheckedAllChildrenList","onChange","onChangeHandle","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","otherProps","_objectWithoutPropertiesLoose","_excluded","hasTreeSelectorList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeSelectorWrapperM","useStore","requestPreKey","isMultiple","treeCheckable","responseFirstRef","useRef","useMemo","treeCheckStrictly","fieldNamesMerge","_extends","label","children","disabled","labelInValueFieldNamesMerge","allOptionConfig","isTrue","isFirstUseValueRef","prevValue","usePrevious","useEffectCustom","current","isUndefinedOrNull","allValues","treeToArray","valueList","expandedKeys","getTreeExpandedKeys","Array","from","Set","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_respData","_respData2","onRequest","Error","_extend","find","console","warn","join","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","resolve","then","$await_2","onChangeSelectorList","useCustomCompareEffect","Boolean","allState","getState","dequal","dataList","_ref","tempItem","undefined","newdataList","concat","onTreeExpand","onAgainRequest","refresh","newTreeExpandedKeys","forEach","includes","targetList","parseDataSourceItem","parseLabelInValueItem","getResponseTreeNodeList","changeValue","triggerInfo","selectedTreeNodeList","target","arrayFind","push","triggerNode","checked","triggerValue","allChildrenList","selectedChildrenList","filter","parseItem","realTreeNodeList","valueIsEqual","showCheckedStrategy","realTreeNodeValueList","onRespChange","values","selectedValues","onInnerChange","_data","_getResponseTreeNodeL","prev","mergeList","labelInValueList","_ref2","mapTree","itemAdapterData","_createElement","TreeSelect","TreeNode","title","renderValueList","innerOperateValueList","_targetParseItem","_targetParseItem2","targetParseItem","defualtValue","_isString","isNumber","getValueOrDefault","treeSelectValue","_jsx","dropdownStyle","maxHeight","overflow","showSearch","treeLine","showLeafIcon","treeNodeFilterProp","switcherIcon","_CaretDownFilled","showArrow","className","_classNames","popupClassName","dropdownMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type"],"mappings":";qiCAsBA,IAAMA,EAA2B,CAC/BC,iBAAkB,GAClBC,uBAAwB,GACxBC,aAAc,OAGhB,IAAMC,EAAqE,CACzEC,QAAS,CACPC,iBAAkB,SAAAA,EAACC,GACjB,OAAO,SAACC,GACNA,EAAMP,iBAAmBM,EAAON,kBAAoB,GACpDO,EAAMN,uBAAyBK,EAAOL,wBAA0B,GAChEM,EAAMC,cAAgB,kBAEzB,EACDC,mBAAoB,SAAAA,IAClB,OAAO,SAACF,GACNA,EAAMP,iBAAmB,GAE5B,EACDU,oBAAqB,SAAAA,EAACJ,GACpB,OAAO,SAACC,GACNA,EAAMC,cAAgBF,EAE1B,GAEFC,MAAOR,GAGT,IAAMY,EAAiG,CAAA,EAQhG,IAAMC,EAA2B,SAA3BA,EAA4BC,GACvC,IAAKF,EAA0BE,GAAM,CACnCF,EAA0BE,GAAOC,EAAMX,EACzC,CACA,OAAOQ,EAA0BE,EACnC,ECpDO,IAAME,EAAkB,SAAlBA,EACXC,EACAC,EACAC,GAEA,IAAKC,EAAQF,IAAaA,EAASG,SAAW,EAAG,MAAO,GACxD,IAAMC,EAAaC,EAAiBL,EAAUC,GAC9C,OAAOK,EAAqBP,EAAOK,EAAY,KAAM,CAAEL,MAAO,QAASQ,YAAa,eACtF,EAEO,IAAMC,EAAe,SAAfA,EAAgBC,EAAMR,GACjC,IAAIS,EAAWC,EAAwCF,GACvDC,EAAWA,EAASE,KAAI,SAACC,GACvB,GAAIC,EAASD,GAAO,OAAOA,EAAKZ,EAAWF,OAC3C,OAAOc,CACT,IACA,OAAOH,CACT,4YCwIaK,EAAsB,SAAtBA,EAAuBC,GAClC,IACEC,EAoBED,EApBFC,cACAC,EAmBEF,EAnBFE,qBACAC,EAkBEH,EAlBFG,yBACAC,EAiBEJ,EAjBFI,2BACArC,EAgBEiC,EAhBFjC,iBACAsC,EAeEL,EAfFK,qBACAC,EAcEN,EAdFM,SACAvB,EAaEiB,EAbFjB,MACcwB,EAYZP,EAZFQ,aACAC,EAWET,EAXFS,uBACAC,EAUEV,EAVFU,sBAAqBC,EAUnBX,EATFY,qCAAAA,EAAoCD,SAAG,EAAA,KAAIA,EAC3C1B,EAQEe,EARFf,WACA4B,EAOEb,EAPFa,SACAC,EAMEd,EANFc,eACAC,EAKEf,EALFe,qBACAC,EAIEhB,EAJFgB,cACAC,EAGEjB,EAHFiB,eACAC,EAEElB,EAFFkB,wBACGC,EAAUC,EACXpB,EAAKqB,GAKT,IAAMC,GAAsBtB,EAAMuB,eAAe,oBACjD,IAAMC,GAAmBvB,GAAiB,GAC1C,IAAMwB,GAA0BvB,GAAwB,GACxD,IAAAwB,GAA8BC,EAASC,aAAa,OAA7CC,GAAOH,GAAA,GAAEI,GAAUJ,GAAA,GAC1B,IAAAK,GAAgDC,IAAzCC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAC5C,IAAAI,GAAyBxD,EAAyB2B,GAAU8B,WAArD9D,GAAK6D,GAAA,GAAEhE,GAAOgE,GAAA,GACrB,IAAME,uBAAoC/B,EAC1C,IAAMgC,GAAanB,EAAWoB,cAC9B,IAAMC,GAAmBC,EAAO,MAKhC,IAAMjC,GAAekC,GAAQ,WAC3B,GAAIvB,EAAWwB,kBAAmB,OAAO,KACzC,OAAOpC,CACR,GAAE,CAACA,EAAeY,EAAWwB,oBAE9B,IAAMC,GAAkBF,GAAQ,WAC9B,OAAAG,EAAA,CAASC,MAAO,QAAS/D,MAAO,QAASgE,SAAU,WAAYC,SAAU,YAAe/D,EAC1F,GAAG,CAACA,IAEJ,IAAMgE,GAA8BP,GAAQ,WAC1C,OAAAG,EAAA,CAASC,MAAO,QAAS/D,MAAO,SAAY0B,EAC9C,GAAG,CAACA,IAEJ,IAAMyC,GAAkBR,GAAQ,WAC9B,GAAI1B,EAAe,CACjB,IAAMmC,EAASnC,IAAkB,KACjC,MAAO,CACL8B,MAAOK,EAAS,KAAOnC,EAAc8B,MACrC/D,MAAOoE,EAAS,GAAKnC,EAAcjC,MAEvC,CACA,OAAO,IACT,GAAG,CAACiC,IAEJ,IAAMoC,GAAqBX,EAAO,MAElC,IAAMY,GAAYC,EAAYvE,GAE9B4C,EAAS4B,iBAAgB,WACvB,GAAIjF,GAAMP,iBAAiBoB,OAAS,EAAG,CACrC,GAAIqD,GAAiBgB,SAAWC,EAAkB1E,GAAQ,CACxDyD,GAAiBgB,QAAU,MAC3B,GAAItC,EAAyB,CAC3BgB,GAAoBhB,EACrB,MAAM,GAAIH,EAAsB,CAC/B,IAAM2C,EAAYC,EAAYrF,GAAMP,iBAAkB6E,GAAgBG,UAAUnD,KAAI,SAACC,GACnF,OAAOA,EAAK+C,GAAgB7D,MAC9B,IACAmD,GAAoBwB,GACpB,MACD,MAAM,GAAIzC,GAAkB3C,GAAMP,iBAAiBoB,OAAQ,CAC1D+C,GAAoB,CAAC5D,GAAMP,iBAAiB,GAAG6E,GAAgB7D,SAC/D,MACF,CACF,CACA,GAAI0E,EAAkB1E,IAAUqE,GAAmBI,QAAS,OAC5DJ,GAAmBI,QAAU,MAC7B,GAAIzE,IAAUsE,GAAW,CACvB,IAAMO,EAAYpE,EAAaT,EAAOkE,IACtC,IAAMY,EAAeC,GAAoBF,EAAW,MACpD1B,GAAoB6B,MAAMC,KAAK,IAAIC,IAAIJ,IACzC,CACF,CACD,GAAE,CAAC9E,EAAOT,GAAMP,mBAEjB,IAAMmG,GAAe,SAAfA,EAAgBnF,GACpB,OAAOA,IAAU,IAAM0E,EAAkB1E,IAG3C,IAAMoF,GAAwB,SAAxBA,EAAyBC,GAC7B,IAAMC,EAAe7C,GAAiB8C,uBAClC9C,GAAiB8C,uBAAuBF,GACxCA,EACJ,OAAOC,GAGT,IAAME,GAAyBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAI5CC,EACAxG,EACAyG,EAYEC,EACAC,EAlBR,IAAKxD,GAAiByD,UAAW,CAC/B,OAAAL,EAAM,IAAIM,MAAM,wBAClB,CACML,EAAqBrD,GAAiBqD,oBAAsB,GAC5DxG,EAAS8G,EAAO,CAAA,EAAI3D,GAAiBnD,QACrCyG,EAAUD,EAAmBO,MAAK,SAACxG,GACvC,OAAOsF,GAAa7F,EAAOO,GAC7B,IACA,GAAIkG,EAAS,MACN3G,GAAQM,oBAAoB,0BACjC4G,QAAQC,KAAiCT,4BAAAA,EAAmBU,KAAK,KAAW,QAC5E,OAAAZ,GACF,CA5RJ,IAAIa,aAAJ,IAAI,OAAAb,GAAK,CAAC,MAAAc,GAAW,OAAOb,EAAAa,EAAM,GAAlC,IAAIC,EAAA,SAsSSC,GAtSb,IAuSM7D,GAAW,OACX8D,OAAOvD,IAAiB,WACnBlE,GAAQM,oBAAoB,iBACjC2B,GAAAA,UAAAA,EAAAA,EAA6BuF,GA1SnC,OAAOH,GAAE,CAAC,MAAAC,GAAW,OAAOb,EAAAa,EAAM,GA6R9B,IACE3D,GAAW,MACX8D,OAAOvD,IAAiB,UACnBlE,GAAQM,oBAAoB,oBACf,OAAAiG,QAAAmB,QAAMrE,GAAiByD,WAAS,UAAA,EAA1BzD,GAAiByD,UAAY5G,IAAnCyH,eAA0CC,GAjSlE,IAiSYhB,EAAYgB,EACZ3B,EAAWD,GAAsBY,GACvCjD,GAAW,OACX8D,OAAOvD,IAAiB,MACxB2D,GAAqB5B,GAAY,IArSvC,OAAOoB,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAsS9B,CAAC,MAAOC,GAAYD,EAAZC,EAKT,CAAC,OAGHnB,EAAMyB,wBACJ,WACE,GAAI3E,GAAqB,OAEzB,GAAI4E,QAAQzE,GAAwBtC,QAAS,CAE3C6G,GAAqB,SAChBzB,KACL,MACF,CACA,IAAM4B,EAAWxH,EAAyB2B,GAAU8F,WACpD,GAAID,EAAS5H,gBAAkB,kBAAmB,CAChD,MACF,CAEA,IAAKqH,OAAOvD,IAAgB,MACrBkC,KACL,MACF,CACF,GACA9C,GACA4E,GAGF,IAAML,GAAuBxB,EAAMC,gBAAe,SAAC6B,GAAqB,IAAAC,EACtE,IAAID,GAAQ,UAAA,EAARA,EAAUnH,UAAW,GAAKb,GAAMP,iBAAiBoB,SAAW,EAAG,MAC5DhB,GAAQC,iBAAiB,CAC5BL,iBAAkB,GAClBC,uBAAwB,KAE1BmC,GAAAA,UAAAA,EAAAA,EAA2B,IAC3B,MACF,CAEA,IAAMqG,EAAWtD,IAAeqD,EAAA,CAAA,EAAAA,EAEzB3D,GAAgBE,OAAQI,GAAgBJ,MAAKyD,EAC7C3D,GAAgB7D,OAAQmE,GAAgBnE,MAAKwH,GAEhDE,UACJ,IAAMC,EAAc1F,EAAiBwF,CAAAA,GAAQG,OAAKL,GAAYA,OACzDnI,GAAQC,iBAAiB,CAC5BL,iBAAkB2I,EAClB1I,uBAAwB2F,EAAY+C,GAAe,GAAI9D,GAAgBG,YAEzE5C,GAAAA,UAAAA,EAAAA,EAA2BmG,EAC7B,IAEA3E,EAAS4B,iBAAgB,WACvB,GAAIjC,GAAqB,CACvB0E,GAAqBjI,GAAoB,GAC3C,CACF,GAAG,CAACA,IAEJ,IAAM6I,GAAepC,EAAMC,gBAAe,SAACZ,GACzC3B,GAAoB2B,EACtB,IAEA,IAAMgD,GAAiBrC,EAAMC,gBAAe,gBACrCF,IACP,IAEA,IAAMT,GAAsB,SAAtBA,EAAuBF,EAAmCkD,GAC9D,IAAIC,EAAsB,GAC1BnD,EAAUoD,SAAQ,SAACjI,GACjB,IAAK+H,GAAW7E,IAAgB,MAAhBA,GAAkBgF,SAASlI,GAAQ,OACnD,IAAMmI,EAAapI,EAAgBC,EAAOT,GAAMP,iBAAkB6E,IAClEmE,EAAsBA,EAAoBJ,OAAOO,EAAWtH,KAAI,SAACC,GAAI,OAAKA,EAAKd,KAAK,IACtF,IACA,OAAOgI,GAMT,IAAMI,GAAsB3C,EAAMC,gBAAe,SAAC5E,GAChD,IAAKA,EAAM,OAAO4G,UAClB,MAAO,CACL3D,MAAOjD,GAAAA,UAAAA,EAAAA,EAAO+C,GAAgBE,OAC9B/D,MAAOc,GAAAA,UAAAA,EAAAA,EAAO+C,GAAgB7D,OAC9BgE,SAAUlD,GAAAA,UAAAA,EAAAA,EAAO+C,GAAgBG,UACjCC,SAAUnD,GAAAA,UAAAA,EAAAA,EAAO,YAErB,IAIA,IAAMuH,GAAwB5C,EAAMC,gBAAe,SAAC5E,GAClD,IAAKA,EAAM,OAAO4G,UAClB,MAAO,CACL3D,MAAOjD,GAAAA,UAAAA,EAAAA,EAAOoD,GAA4BH,OAC1C/D,MAAOc,GAAAA,UAAAA,EAAAA,EAAOoD,GAA4BlE,OAC1CiE,SAAUnD,GAAAA,UAAAA,EAAAA,EAAO,YAErB,IAEA,IAAMwH,GAA0B7C,EAAMC,gBAAe,SAAC6C,EAAmBC,GACvE,IAAM3D,EAAYpE,EAAa8H,EAAa,CAAEvI,MAAO,QAAS+D,MAAO,UACrE,IAAI0E,EAAuB,GAC3B5D,EAAUoD,SAAQ,SAACnH,GACjB,IAAM4H,EAASC,EAAUpJ,GAAMN,uBAAwB6B,EAAM+C,GAAgB7D,OAC7E,IAAK0I,EAAQ,OACbD,EAAqBG,KAAKF,EAC5B,IACA,GAAItG,EAAWwB,mBAAqB/B,EAAsC,CACxE,IAAMgH,EAAcT,GAClBI,EAAYM,QACRH,EAAUpJ,GAAMN,uBAAwBuJ,EAAYO,aAAclF,GAAgB7D,OAClF,MAEN,GAAI6I,GAAe1I,EAAQ0I,EAAY7E,WAAa6E,EAAY7E,SAAS5D,OAAS,EAAG,CAEnF,IAAM4I,EAAkBpE,EAAYiE,EAAY7E,SAAUH,GAAgBG,UAC1E,IAAMiF,EAAuBD,EAAgBE,QAAO,SAACpI,GACnD,IAAMqI,EAAYf,GAAoBtH,GACtC,GAAIqI,GAAAA,MAAAA,EAAWlF,SAAU,OAAO,MAEhC,GAAI0E,EAAUF,EAAsBU,eAAAA,EAAWnJ,MAAO6D,GAAgB7D,OAAQ,OAAO,MACrF,OAAO,IACT,IACAyI,EAAuBA,EAAqBb,OAAOqB,EACrD,CACF,CACA,IAAIG,EAAmB,GACvB,GAAIhH,EAAWoB,cAAe,CAC5B,GACEpB,EAAWwB,oBAAsB,MACjCyF,EAAajH,EAAWkH,oBAAqB,CAAC,WAAY,gBAC1D,CAEAF,EAAmBX,CACrB,KAAO,CAELW,EAAmBX,EAAqBS,QAAO,SAACpI,GAC9C,IAAMkD,EAAWlD,EAAK+C,GAAgBG,UACtC,QAAS7D,EAAQ6D,IAAaA,EAAS5D,OAAS,EAClD,GACF,CACF,KAAO,CACLgJ,EAAmBX,CACrB,CACA,MAAO,CACLW,iBAAAA,EACAG,sBAAuB9I,EAAa2I,EAAkBvF,IAE1D,IAEA,IAAM2F,GAAe/D,EAAMC,gBAAe,SAAC+D,EAAQC,EAAgBlB,GAEjE1G,GAAQ,UAAA,EAARA,EAAW2H,EAAQC,EAAgBlB,GACnCzG,GAAc,UAAA,EAAdA,EAAiB0H,EAAQC,EAAgBlB,EAC3C,IAMA,IAAMmB,GAAgBlE,EAAMC,gBAAe,SAAC6C,EAAmBqB,EAAOpB,GACpE,IAAAqB,EAAoDvB,GAAwBC,EAAaC,GAAjFY,EAAgBS,EAAhBT,iBAAkBG,EAAqBM,EAArBN,sBAC1B,GAAInH,EAAWoB,cAAe,CAC5BL,IAAoB,SAAC2G,GACnB,IAAMC,EAAYhF,GAAoBwE,GAAuB3B,OAAOkC,GAAQ,IAC5E,OAAO9E,MAAMC,KAAK,IAAIC,IAAI6E,GAC5B,GACF,CAEA,GAAItI,GAAc,CAChB,IAAMuI,EAAmBZ,EAAiBvI,KAAI,SAACC,GAAS,IAAAmJ,EACtD,IAAMd,EAAYf,GAAoBtH,GACtC,OAAAmJ,EAAAA,GAAAA,EACG/F,GAA4BH,OAAQoF,GAAAA,UAAAA,EAAAA,EAAWpF,MAAKkG,EACpD/F,GAA4BlE,OAAQmJ,GAAS,UAAA,EAATA,EAAWnJ,MAAKiK,CAEzD,IAEA,GAAI1G,GAAY,CACdiG,IAAY,UAAA,EAAZA,GAAeQ,EAAkBZ,EAAkBZ,EACrD,KAAO,CACLgB,IAAAA,UAAAA,EAAAA,GAAeQ,EAAiB,GAAIZ,EAAiB,GAAIZ,EAC3D,CACF,KAAO,CACL,GAAIjF,GAAY,CACdiG,IAAY,UAAA,EAAZA,GAAeD,EAAuBH,EAAkBZ,EAC1D,KAAO,CACLgB,IAAAA,UAAAA,EAAAA,GAAeD,EAAsB,GAAIH,EAAiB,GAAIZ,EAChE,CACF,CACF,IAEA,IAAM0B,GAAUzE,EAAMC,gBAAe,SAAChF,GACpC,IAAKA,EAAM,OAAO,KAClB,OAAOA,EAAKG,KAAI,SAACC,GACf,IAAMqJ,GAAkBxI,GAAAA,UAAAA,EAAAA,EAAqBmC,EAAQhD,CAAAA,EAAAA,MAAWA,EAChE,IAAMkD,EAAWmG,EAAgBtG,GAAgBG,UACjD,IAAMhE,EAAQmK,EAAgBtG,GAAgB7D,OAC9C,IAAM+D,EAAQoG,EAAgBtG,GAAgBE,OAC9C,IAAME,EAAWkG,EAAgBtG,GAAgBI,UAC7CkG,EAAgBtG,GAAgBI,UAChCkG,EAAgBlG,SACpB,OACEmG,EAACC,EAAWC,SAAQxG,KACdqG,EAAe,CACnBlG,SAAUA,EACVjE,MAAOA,EACPuK,MAAOxG,EACPlE,IAAQG,GAAAA,IAEPgE,GAAYA,EAAS5D,OAAS,GAAK8J,GAAQlG,GAGlD,GACF,IAMA,IAAMwG,GAAkB7G,GAAQ,WAC9B,IAAM8G,EAAwB7J,EAAQZ,GACtC,GAAIyK,EAAsBrK,QAAU,EAAG,MAAO,GAC9C,GAAIgC,EAAWwB,kBAAmB,CAChC,GAAIrE,GAAMN,uBAAuBmB,SAAW,EAAG,CAC7C,OAAOqK,EAAsB5J,KAAI,SAACC,GAAI,MAAM,CAAEiD,MAAOjD,EAAMd,MAAOc,EAAM,GAC1E,CACA,OAAO2J,EAAsB5J,KAAI,SAACC,GAAS,IAAA4J,EAAAC,EACzC,IAAIC,EACJ,IAAIC,EACJ,GAAIC,EAAShK,IAASiK,EAASjK,GAAe,CAC5C,IAAM4H,EAASC,EAAUpJ,GAAMN,uBAAwB6B,EAAgB+C,GAAgB7D,OACvF4K,EAAkBxC,GAAoBM,GACtCmC,EAAe/J,CACjB,KAAO,CACL8J,EAAkBvC,GAAsBvH,EAC1C,CACA,MAAO,CACLiD,MAAOiH,GAAiBN,EAACE,IAAAF,UAAAA,EAAAA,EAAiB3G,MAAO8G,GACjD7K,MAAOgL,GAAiBL,EAACC,IAAe,UAAA,EAAfD,EAAiB3K,MAAO6K,GAErD,GACF,CACA,OAAOpK,EAAaT,EAAOkE,GAC5B,GAAE,CACDlE,EACAoC,EAAWwB,kBACXM,GACA3E,GAAMN,uBACN4E,GAAgB7D,MAChBoI,GACAC,KAGF,IAAM4C,GAAkBtH,GAAQ,WAC9B,GAAIxD,EAAQqK,KAAoBA,GAAgBpK,SAAW,EAAG,CAC5D,OAAOsH,SACT,CACA,OAAOnE,GAAaiH,GAAkBA,GAAgB,EACxD,GAAG,CAACjH,GAAYiH,KAMhB,OACEU,EAACb,EAAUvG,EAAA,CACTqH,cAAe,CAAEC,UAAW,IAAKC,SAAU,QAC3CC,WAAY,KACZC,SAAU,CAAEC,aAAc,OAC1BC,mBAAmB,QACnBC,aAAcR,EAAAS,EAAoB,IAClCC,UAAS,MACLxJ,EAAU,CACdyJ,UAAWC,EAAW,wBAAyB1J,EAAWyJ,WAC1DE,eAAgBD,EAAW,iCAAkC1J,EAAW2J,gBACxEjK,SAAU6H,GACVzG,iBAAkBA,GAClBlD,MAAOiL,GACPnI,QAASA,GACTkJ,yBAA0B,MAC1BnE,aAAcA,GACdoE,MAAKnI,EAAA,CAAIoI,MAAO,QAAW9J,EAAW6J,OACtCE,WACE5M,GAAMC,gBAAkB,gBACtB0L,EAAAkB,EAAA,CAAcC,KAAMvJ,GAASwJ,QAASxE,KACpCJ,UAEN6E,gBACErB,EAACsB,EAAa,CACZC,OAAQlN,GAAMC,cACdkN,cAAepL,EACfwB,QAASA,GACT6J,YACEzB,EAAC0B,EAAM,CAACC,KAAK,UAAUP,QAASxE,GAAe9D,SAAC,aAKrDA,SAEAkG,GAAQ3K,GAAMP,oBAGrB"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import r from"@ant-design/icons/es/icons/PlusOutlined";import{_ as e,a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{isPlainObject as a}from"@dimjs/lang/cjs/is-plain-object";import{extend as s}from"@dimjs/utils/cjs/extend";import{message as o,Upload as u,Button as l}from"antd";import{useState as d,useMemo as f,Fragment as m}from"react";import{flushSync as c}from"react-dom";import{fbaHooks as p}from"./fba-hooks/index.js";import{jsx as v,jsxs as g}from"react/jsx-runtime";var h=["onChange","onUploadError","value","triggerText","limitHidden"];var x=function r(l){var m=l.onChange,g=l.onUploadError,x=l.value,C=l.triggerText,T=l.limitHidden,y=e(l,h);var b=d(),O=b[0],R=b[1];var U=s({uid:"uid",name:"name",url:"url"},l.fieldNames);p.useEffectCustom((function(){var r=(O==null?void 0:O.filter((function(r){return r["status"]==="error"})))||[];var e=(x==null?void 0:x.map((function(r){return{uid:r[U.uid],name:r[U.name],url:r[U.url],status:"done",isOriginal:true,responseData:r["responseData"]}})))||[];if(r.length>0){var i=r.map((function(r){return{uid:r.uid,name:r.name,status:"error",isOriginal:true,response:r["response"]}}));e=e.concat(i)}R(e)}),[U.name,U.uid,U.url,x]);var E=function r(e){var i=[];var n=false;e.forEach((function(r){if(r["isOriginal"]){if(r["status"]!=="error"){var e;i.push((e={},e[U.uid]=r.uid,e[U.name]=r.name,e[U.url]=r.url,e))}}else if(a(r.response)){if(r.response.code==="0000"){var t;var s=r.response.data;var o=(l.onRequestResultAdapter==null?void 0:l.onRequestResultAdapter(s))||s;i.push((t={},t[U.uid]=o[U.uid]||r.uid,t[U.name]=o[U.name]||r.name,t[U.url]=o[U.url],t.responseData=s,t))}else{n=true;r.status="error";r.response=r.response.message||"上传失败"}}}));if(n){R([].concat(e))}m==null?void 0:m(i)};var k=t.useCallbackRef((function(r){var e=r.fileList;if(r.file.status==="done"){var i=[].concat(r.fileList);var n=i.filter((function(r){return r.status==="done"||r["isOriginal"]}));var t=n.length===i.length;if(t){E(i)}c((function(){return R(i)}));return}else if(r.file.status==="removed"){var a=r.file.uid;var s=x!==undefined?[].concat(x):[];var u=s.findIndex((function(r){var e=r[U.uid];return e===a}));if(u>=0){s.splice(u,1)}m==null?void 0:m(s)}else if(r.file.status==="error"){if(g){g()}else{void o.error("上传操作失败...")}}R([].concat(e));l.onUploadChange==null?void 0:l.onUploadChange(r)}));var D=f((function(){if(y.maxCount===undefined||!T)return false;if(y.maxCount===0)return true;if(O&&O.length>=y.maxCount)return true;return false}),[T,y.maxCount,O]);return v(u,i({},y,{onChange:k,fileList:O,className:n("v-upload-wrapper",y.className),children:y.disabled||D?null:v(j,{triggerText:C,listType:y.listType,children:l.children})}))};var j=function e(i){if(i.children)return v(m,{children:i.children});if(i.listType==="picture-card"){return g("div",{children:[v(r,{}),v("div",{style:{marginTop:8},children:i.triggerText||"上传图片"})]})}if(i.listType==="picture"){return v(l,{type:"primary",ghost:true,children:i.triggerText||"选择图片上传"})}return v(l,{type:"primary",ghost:true,children:i.triggerText||"选择文件上传"})};export{x as U};
3
- //# sourceMappingURL=upload-wrapper-bd9ef592.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-wrapper-bd9ef592.js","sources":["@flatbiz/antd/src/upload-wrapper/upload-wrapper.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { isPlainObject } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Upload, UploadProps } from 'antd';\nimport { UploadChangeParam } from 'antd/lib/upload';\nimport { UploadFile, UploadListType } from 'antd/lib/upload/interface';\nimport { Fragment, ReactNode, useMemo, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type UploadWrapperFileItem = {\n uid: string;\n name: string;\n url?: string;\n};\n\nexport type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {\n value?: T[];\n onChange?: (value?: T[]) => void;\n onUploadError?: (message?: string) => void;\n onUploadChange?: (info: UploadChangeParam<UploadFile>) => void;\n /**\n * 属性映射\n */\n fieldNames?: {\n uid: string;\n name?: string;\n url?: string;\n };\n /**\n * 接口响应数据适配器,如果配置了fieldNames,适配器返回值会再进过fieldNames转换\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject;\n /** 操作触发显示文本 */\n triggerText?: string;\n /** 超过maxCount 隐藏上传入口 */\n limitHidden?: boolean;\n} & Omit<UploadProps, 'onChange' | 'fileList'>;\n\n/**\n * 文件上传\n * ```\n * 1. 可通过配置children替换默认上传触发布局\n * 2. 接口返回结构:\n * formData上传接口返回值\n * {\n * code: '0000',\n * data: {\n * uid: '唯一值,可使用fileKey值'\n * name: '文件名称'\n * url: '预览地址'\n * }\n * }\n * 3. 如果接口返回的不是上面的字段名称,可通过fieldNames配置接口返回字段名称映射\n *\n * 4. 最佳使用方式,与Form结合使用\n * <Form.Item name=\"attachmentList\" label=\"附件\">\n * <UploadWrapper action={uploadUrl} />\n * </Form.Item>\n * ```\n *\n */\nexport const UploadWrapper = (props: UploadWrapperProps) => {\n const { onChange, onUploadError, value, triggerText, limitHidden, ...otherProps } = props;\n const [uploadList, setUploadList] = useState<UploadWrapperFileItem[]>();\n const fieldNames = extend(\n {\n uid: 'uid',\n name: 'name',\n url: 'url',\n },\n props.fieldNames,\n ) as Required<UploadWrapperFileItem>;\n\n fbaHooks.useEffectCustom(() => {\n const errorList = uploadList?.filter((item) => item['status'] === 'error') || [];\n let newList =\n value?.map((item) => {\n return {\n uid: item[fieldNames.uid],\n name: item[fieldNames.name],\n url: item[fieldNames.url],\n status: 'done',\n isOriginal: true,\n responseData: item['responseData'],\n };\n }) || [];\n if (errorList.length > 0) {\n const newErrorList = errorList.map((item) => {\n return {\n uid: item.uid,\n name: item.name,\n status: 'error',\n isOriginal: true,\n response: item['response'],\n };\n }) as TAny[];\n newList = newList.concat(newErrorList);\n }\n setUploadList(newList);\n }, [fieldNames.name, fieldNames.uid, fieldNames.url, value]);\n\n const handleResponse = (fileList: UploadFile<TAny>[]) => {\n const newFileList: TAny[] = [];\n let hasError = false;\n fileList.forEach((item) => {\n if (item['isOriginal']) {\n if (item['status'] !== 'error') {\n newFileList.push({\n [fieldNames.uid]: item.uid,\n [fieldNames.name]: item.name,\n [fieldNames.url]: item.url,\n });\n }\n } else if (isPlainObject(item.response)) {\n if (item.response.code === '0000') {\n const respData = item.response.data;\n const result = (props.onRequestResultAdapter?.(respData) || respData) as TPlainObject;\n newFileList.push({\n [fieldNames.uid]: result[fieldNames.uid] || item.uid,\n [fieldNames.name]: result[fieldNames.name] || item.name,\n [fieldNames.url]: result[fieldNames.url],\n responseData: respData,\n });\n } else {\n hasError = true;\n item.status = 'error';\n item.response = item.response.message || '上传失败';\n }\n }\n });\n if (hasError) {\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n }\n onChange?.(newFileList);\n };\n\n const onUploadChange = hooks.useCallbackRef((info) => {\n const fileList = info.fileList as TPlainObject[];\n if (info.file.status === 'done') {\n const newFileList = [...info.fileList];\n const donwList = newFileList.filter((item) => item.status === 'done' || item['isOriginal']);\n\n const allDone = donwList.length === newFileList.length;\n if (allDone) {\n handleResponse(newFileList);\n }\n flushSync(() => setUploadList(newFileList));\n return;\n } else if (info.file.status === 'removed') {\n const uid = info.file.uid;\n const targetList = value !== undefined ? [...value] : [];\n const targetIndex = targetList.findIndex((item) => {\n const tempUid = item[fieldNames.uid];\n return tempUid === uid;\n });\n if (targetIndex >= 0) {\n targetList.splice(targetIndex, 1);\n }\n onChange?.(targetList);\n } else if (info.file.status === 'error') {\n if (onUploadError) {\n onUploadError();\n } else {\n void message.error('上传操作失败...');\n }\n }\n // https://github.com/ant-design/ant-design/issues/2423\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n props.onUploadChange?.(info);\n });\n\n const hiddenEmtry = useMemo(() => {\n if (otherProps.maxCount === undefined || !limitHidden) return false;\n if (otherProps.maxCount === 0) return true;\n if (uploadList && uploadList.length >= otherProps.maxCount) return true;\n return false;\n }, [limitHidden, otherProps.maxCount, uploadList]);\n\n return (\n <Upload\n {...otherProps}\n onChange={onUploadChange}\n fileList={uploadList}\n className={classNames('v-upload-wrapper', otherProps.className)}\n >\n {otherProps.disabled || hiddenEmtry ? null : (\n <UploadTrigger triggerText={triggerText} listType={otherProps.listType}>\n {props.children}\n </UploadTrigger>\n )}\n </Upload>\n );\n};\n\nconst UploadTrigger = (props: {\n listType?: UploadListType;\n children?: ReactNode | ReactNode[];\n triggerText?: string;\n}) => {\n if (props.children) return <Fragment>{props.children}</Fragment>;\n if (props.listType === 'picture-card') {\n return (\n <div>\n <PlusOutlined />\n <div style={{ marginTop: 8 }}>{props.triggerText || '上传图片'}</div>\n </div>\n );\n }\n if (props.listType === 'picture') {\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择图片上传'}\n </Button>\n );\n }\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择文件上传'}\n </Button>\n );\n};\n"],"names":["UploadWrapper","props","onChange","onUploadError","value","triggerText","limitHidden","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","uploadList","setUploadList","fieldNames","_extend","uid","name","url","fbaHooks","useEffectCustom","errorList","filter","item","newList","map","status","isOriginal","responseData","length","newErrorList","response","concat","handleResponse","fileList","newFileList","hasError","forEach","_newFileList$push","push","_isPlainObject","code","_newFileList$push2","respData","data","result","onRequestResultAdapter","message","onUploadChange","_hooks","useCallbackRef","info","file","donwList","allDone","flushSync","targetList","undefined","targetIndex","findIndex","tempUid","splice","error","hiddenEmtry","useMemo","maxCount","_jsx","Upload","_extends","className","_classNames","children","disabled","UploadTrigger","listType","Fragment","_jsxs","_PlusOutlined","style","marginTop","Button","type","ghost"],"mappings":"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"}