@flatbiz/antd 4.2.69 → 4.2.71

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 (312) hide show
  1. package/esm/amount-fen-input/index.css +0 -0
  2. package/esm/amount-fen-input/index.js +5 -0
  3. package/esm/amount-fen-input/index.js.map +1 -0
  4. package/esm/amount-fen-input-form-item/index.css +1 -0
  5. package/esm/amount-fen-input-form-item/index.js +5 -0
  6. package/esm/amount-fen-input-form-item/index.js.map +1 -0
  7. package/esm/anchor-steps/index.js +1 -1
  8. package/esm/anchor-steps/index.js.map +1 -1
  9. package/esm/button-operate/index.js +1 -1
  10. package/esm/button-operate/index.js.map +1 -1
  11. package/esm/button-wrapper/index.js +1 -1
  12. package/esm/button-wrapper/index.js.map +1 -1
  13. package/esm/cascader-wrapper/index.js +1 -1
  14. package/esm/cascader-wrapper/index.js.map +1 -1
  15. package/esm/check-list/index.js +1 -1
  16. package/esm/check-list/index.js.map +1 -1
  17. package/esm/checkbox-wrapper/index.js +1 -1
  18. package/esm/checkbox-wrapper/index.js.map +1 -1
  19. package/esm/config-provider-wrapper/index.js +1 -1
  20. package/esm/config-provider-wrapper/index.js.map +1 -1
  21. package/esm/context-1f2093c6.js.map +1 -1
  22. package/esm/css-node-hover/index.js +1 -1
  23. package/esm/css-node-hover/index.js.map +1 -1
  24. package/esm/data-render/index.js +1 -1
  25. package/esm/data-render/index.js.map +1 -1
  26. package/esm/date-picker-wrapper/index.js +1 -1
  27. package/esm/date-picker-wrapper/index.js.map +1 -1
  28. package/esm/date-range-picker-wrapper/index.js +1 -1
  29. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  30. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  31. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  32. package/esm/dialog-alert/index.js +1 -1
  33. package/esm/dialog-alert/index.js.map +1 -1
  34. package/esm/dialog-confirm/index.js +1 -1
  35. package/esm/dialog-confirm/index.js.map +1 -1
  36. package/esm/dialog-drawer/index.js +1 -1
  37. package/esm/dialog-drawer/index.js.map +1 -1
  38. package/esm/dialog-drawer-content/index.js +1 -1
  39. package/esm/dialog-drawer-content/index.js.map +1 -1
  40. package/esm/dialog-loading/index.js +1 -1
  41. package/esm/dialog-loading/index.js.map +1 -1
  42. package/esm/dialog-modal/index.js +1 -1
  43. package/esm/dialog-modal/index.js.map +1 -1
  44. package/esm/dom-4d04aa64.js.map +1 -1
  45. package/esm/drag-collapse/index.js +1 -1
  46. package/esm/drag-collapse/index.js.map +1 -1
  47. package/esm/drag-collapse-form-list/index.js +1 -1
  48. package/esm/drag-collapse-form-list/index.js.map +1 -1
  49. package/esm/drawer-wrapper/index.js +1 -1
  50. package/esm/drawer-wrapper/index.js.map +1 -1
  51. package/esm/dropdown-menu-wrapper/index.js +1 -1
  52. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  53. package/esm/dynamic-node/index.js +1 -1
  54. package/esm/dynamic-node/index.js.map +1 -1
  55. package/esm/easy-table/index.js +1 -1
  56. package/esm/easy-table/index.js.map +1 -1
  57. package/esm/editable-field/index.js +1 -1
  58. package/esm/editable-field/index.js.map +1 -1
  59. package/esm/editable-field-provider/index.js +1 -1
  60. package/esm/editable-field-provider/index.js.map +1 -1
  61. package/esm/editable-table/index.js +1 -1
  62. package/esm/editable-table/index.js.map +1 -1
  63. package/esm/editor-wrapper/index.js +1 -1
  64. package/esm/editor-wrapper/index.js.map +1 -1
  65. package/esm/fba-hooks/index.js +1 -1
  66. package/esm/fba-utils/index.js +1 -1
  67. package/esm/fba-utils/index.js.map +1 -1
  68. package/esm/file-import/index.js +1 -1
  69. package/esm/file-import/index.js.map +1 -1
  70. package/esm/flex-layout/index.js +1 -1
  71. package/esm/flex-layout/index.js.map +1 -1
  72. package/esm/form-grid/index.js +1 -1
  73. package/esm/form-item-group/index.js +1 -1
  74. package/esm/form-item-group/index.js.map +1 -1
  75. package/esm/form-item-hidden/index.js +1 -1
  76. package/esm/form-item-hidden/index.js.map +1 -1
  77. package/esm/form-item-wrapper/index.js +1 -1
  78. package/esm/form-item-wrapper/index.js.map +1 -1
  79. package/esm/gap/index.js +1 -1
  80. package/esm/gap/index.js.map +1 -1
  81. package/esm/icon-wrapper/index.js +1 -1
  82. package/esm/icon-wrapper/index.js.map +1 -1
  83. package/esm/index.js +5 -1
  84. package/esm/input-search-wrapper/index.js +1 -1
  85. package/esm/input-search-wrapper/index.js.map +1 -1
  86. package/esm/input-text-area-wrapper/index.js +1 -1
  87. package/esm/input-text-area-wrapper/index.js.map +1 -1
  88. package/esm/input-wrapper/index.js +1 -1
  89. package/esm/input-wrapper/index.js.map +1 -1
  90. package/esm/label-value-layout/index.js +1 -1
  91. package/esm/label-value-layout/index.js.map +1 -1
  92. package/esm/local-loading/index.js +1 -1
  93. package/esm/local-loading/index.js.map +1 -1
  94. package/esm/modal-action/index.js +1 -1
  95. package/esm/modal-action/index.js.map +1 -1
  96. package/esm/modal-wrapper/index.js +1 -1
  97. package/esm/modal-wrapper/index.js.map +1 -1
  98. package/esm/page-fixed-footer/index.js +1 -1
  99. package/esm/page-fixed-footer/index.js.map +1 -1
  100. package/esm/page404/index.js +1 -1
  101. package/esm/page404/index.js.map +1 -1
  102. package/esm/pagination-wrapper/index.js +1 -1
  103. package/esm/permission/index.js +1 -1
  104. package/esm/permission/index.js.map +1 -1
  105. package/esm/radio-group-wrapper/index.js +1 -1
  106. package/esm/radio-group-wrapper/index.js.map +1 -1
  107. package/esm/relation-tree/index.js +1 -1
  108. package/esm/relation-tree/index.js.map +1 -1
  109. package/esm/request-status/index.js +1 -1
  110. package/esm/request-status/index.js.map +1 -1
  111. package/esm/rich-text-editor/index.js +1 -1
  112. package/esm/rich-text-editor/index.js.map +1 -1
  113. package/esm/rich-text-viewer/index.js +1 -1
  114. package/esm/rich-text-viewer/index.js.map +1 -1
  115. package/esm/roll-location-center/index.js +1 -1
  116. package/esm/roll-location-center/index.js.map +1 -1
  117. package/esm/roll-location-in-view/index.js +1 -1
  118. package/esm/roll-location-in-view/index.js.map +1 -1
  119. package/esm/rule-describe/index.js +1 -1
  120. package/esm/rule-describe/index.js.map +1 -1
  121. package/esm/selector-wrapper/index.js +1 -1
  122. package/esm/selector-wrapper/index.js.map +1 -1
  123. package/esm/selector-wrapper-search/index.js +1 -1
  124. package/esm/selector-wrapper-search/index.js.map +1 -1
  125. package/esm/selector-wrapper-simple/index.js +1 -1
  126. package/esm/selector-wrapper-simple/index.js.map +1 -1
  127. package/esm/simple-layout/index.js +1 -1
  128. package/esm/simple-layout/index.js.map +1 -1
  129. package/esm/sms-count-down/index.js +1 -1
  130. package/esm/sms-count-down/index.js.map +1 -1
  131. package/esm/switch-confirm-wrapper/index.js +1 -1
  132. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  133. package/esm/switch-wrapper/index.js +1 -1
  134. package/esm/switch-wrapper/index.js.map +1 -1
  135. package/esm/table-cell-render/index.js +1 -1
  136. package/esm/table-cell-render/index.js.map +1 -1
  137. package/esm/table-scrollbar/index.js +1 -1
  138. package/esm/table-scrollbar/index.js.map +1 -1
  139. package/esm/table-title-tooltip/index.js +1 -1
  140. package/esm/table-title-tooltip/index.js.map +1 -1
  141. package/esm/tabs-wrapper/index.js +1 -1
  142. package/esm/tabs-wrapper/index.js.map +1 -1
  143. package/esm/tag-group/index.js +1 -1
  144. package/esm/tag-group/index.js.map +1 -1
  145. package/esm/tag-list-select/index.js +1 -1
  146. package/esm/tag-list-select/index.js.map +1 -1
  147. package/esm/tag-wrapper/index.js +1 -1
  148. package/esm/tag-wrapper/index.js.map +1 -1
  149. package/esm/text-css-ellipsis/index.js +1 -1
  150. package/esm/text-css-ellipsis/index.js.map +1 -1
  151. package/esm/text-overflow-render/index.js +1 -1
  152. package/esm/text-overflow-render/index.js.map +1 -1
  153. package/esm/time-picker-wrapper/index.js +1 -1
  154. package/esm/time-picker-wrapper/index.js.map +1 -1
  155. package/esm/time-range-picker-wrapper/index.js +1 -1
  156. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  157. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  158. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  159. package/esm/tree-selector-wrapper/index.js +1 -1
  160. package/esm/tree-selector-wrapper/index.js.map +1 -1
  161. package/esm/tree-wrapper/index.js +2 -2
  162. package/esm/tree-wrapper/index.js.map +1 -1
  163. package/esm/upload-wrapper/index.js +1 -1
  164. package/esm/upload-wrapper/index.js.map +1 -1
  165. package/index.d.ts +219 -1
  166. package/package.json +3 -3
  167. package/esm/_rollupPluginBabelHelpers-1f4d8910.js +0 -3
  168. package/esm/_rollupPluginBabelHelpers-1f4d8910.js.map +0 -1
  169. package/esm/anchor-steps-601a335f.js +0 -3
  170. package/esm/anchor-steps-601a335f.js.map +0 -1
  171. package/esm/button-operate-d00df6c9.js +0 -3
  172. package/esm/button-operate-d00df6c9.js.map +0 -1
  173. package/esm/button-wrapper-125fce50.js +0 -3
  174. package/esm/button-wrapper-125fce50.js.map +0 -1
  175. package/esm/cascader-wrapper-2f6a926f.js +0 -3
  176. package/esm/cascader-wrapper-2f6a926f.js.map +0 -1
  177. package/esm/cell-render-4934a7de.js +0 -3
  178. package/esm/cell-render-4934a7de.js.map +0 -1
  179. package/esm/center-a4dfda6f.js +0 -3
  180. package/esm/center-a4dfda6f.js.map +0 -1
  181. package/esm/checkbox-wrapper-018a5c59.js +0 -3
  182. package/esm/checkbox-wrapper-018a5c59.js.map +0 -1
  183. package/esm/config-provider-wrapper-dfe8f592.js +0 -3
  184. package/esm/config-provider-wrapper-dfe8f592.js.map +0 -1
  185. package/esm/content-c0e49ffb.js +0 -3
  186. package/esm/content-c0e49ffb.js.map +0 -1
  187. package/esm/css-node-hover-ed7b9860.js +0 -3
  188. package/esm/css-node-hover-ed7b9860.js.map +0 -1
  189. package/esm/data-render-07c0ab6b.js +0 -3
  190. package/esm/data-render-07c0ab6b.js.map +0 -1
  191. package/esm/date-picker-wrapper-ba650858.js +0 -3
  192. package/esm/date-picker-wrapper-ba650858.js.map +0 -1
  193. package/esm/date-range-picker-wrapper-fb15c592.js +0 -3
  194. package/esm/date-range-picker-wrapper-fb15c592.js.map +0 -1
  195. package/esm/date-range-picker-wrapper-form-item-688cf465.js +0 -3
  196. package/esm/date-range-picker-wrapper-form-item-688cf465.js.map +0 -1
  197. package/esm/dialog-alert-89d37729.js +0 -3
  198. package/esm/dialog-alert-89d37729.js.map +0 -1
  199. package/esm/dialog-confirm-74fc9337.js +0 -3
  200. package/esm/dialog-confirm-74fc9337.js.map +0 -1
  201. package/esm/dialog-drawer-550ce42c.js +0 -3
  202. package/esm/dialog-drawer-550ce42c.js.map +0 -1
  203. package/esm/dialog-loading-53cf2c60.js +0 -3
  204. package/esm/dialog-loading-53cf2c60.js.map +0 -1
  205. package/esm/dialog-modal-4a0c72c5.js +0 -3
  206. package/esm/dialog-modal-4a0c72c5.js.map +0 -1
  207. package/esm/drag-collapse-24ccfe8c.js +0 -3
  208. package/esm/drag-collapse-24ccfe8c.js.map +0 -1
  209. package/esm/drag-collapse-433fb1e0.js +0 -3
  210. package/esm/drag-collapse-433fb1e0.js.map +0 -1
  211. package/esm/drawer-wrapper-9af2f178.js +0 -3
  212. package/esm/drawer-wrapper-9af2f178.js.map +0 -1
  213. package/esm/dropdown-menu-wrapper-3a565fd8.js +0 -3
  214. package/esm/dropdown-menu-wrapper-3a565fd8.js.map +0 -1
  215. package/esm/dynamic-node-c7864af4.js +0 -3
  216. package/esm/dynamic-node-c7864af4.js.map +0 -1
  217. package/esm/editable-field-bcac193d.js +0 -3
  218. package/esm/editable-field-bcac193d.js.map +0 -1
  219. package/esm/editable-field-provider-3223073a.js +0 -3
  220. package/esm/editable-field-provider-3223073a.js.map +0 -1
  221. package/esm/editable-table-64554cac.js +0 -3
  222. package/esm/editable-table-64554cac.js.map +0 -1
  223. package/esm/editor-wrapper-ff6e75b7.js +0 -3
  224. package/esm/editor-wrapper-ff6e75b7.js.map +0 -1
  225. package/esm/fba-utils-f9e11d02.js +0 -3
  226. package/esm/fba-utils-f9e11d02.js.map +0 -1
  227. package/esm/file-import-890a1df9.js +0 -3
  228. package/esm/file-import-890a1df9.js.map +0 -1
  229. package/esm/flex-layout-8d2b668b.js +0 -3
  230. package/esm/flex-layout-8d2b668b.js.map +0 -1
  231. package/esm/form-item-hidden-45541774.js +0 -3
  232. package/esm/form-item-hidden-45541774.js.map +0 -1
  233. package/esm/form-item-wrapper-208febed.js +0 -3
  234. package/esm/form-item-wrapper-208febed.js.map +0 -1
  235. package/esm/gap-284e1f59.js +0 -3
  236. package/esm/gap-284e1f59.js.map +0 -1
  237. package/esm/icon-wrapper-ed5fcacc.js +0 -3
  238. package/esm/icon-wrapper-ed5fcacc.js.map +0 -1
  239. package/esm/in-view-448ba714.js +0 -3
  240. package/esm/in-view-448ba714.js.map +0 -1
  241. package/esm/input-search-wrapper-10d4a9b9.js +0 -3
  242. package/esm/input-search-wrapper-10d4a9b9.js.map +0 -1
  243. package/esm/input-text-area-wrapper-1f22992b.js +0 -3
  244. package/esm/input-text-area-wrapper-1f22992b.js.map +0 -1
  245. package/esm/input-wrapper-338ae416.js +0 -3
  246. package/esm/input-wrapper-338ae416.js.map +0 -1
  247. package/esm/label-value-layout-beb35b0d.js +0 -3
  248. package/esm/label-value-layout-beb35b0d.js.map +0 -1
  249. package/esm/modal-action-5c5ca8a7.js +0 -3
  250. package/esm/modal-action-5c5ca8a7.js.map +0 -1
  251. package/esm/modal-wrapper-ff8df98b.js +0 -3
  252. package/esm/modal-wrapper-ff8df98b.js.map +0 -1
  253. package/esm/page-fixed-footer-9ec2b46c.js +0 -3
  254. package/esm/page-fixed-footer-9ec2b46c.js.map +0 -1
  255. package/esm/page404-f087129a.js +0 -3
  256. package/esm/page404-f087129a.js.map +0 -1
  257. package/esm/pagination-0e66a3b5.js +0 -3
  258. package/esm/pagination-0e66a3b5.js.map +0 -1
  259. package/esm/permission-17ed4d0b.js +0 -3
  260. package/esm/permission-17ed4d0b.js.map +0 -1
  261. package/esm/radio-group-wrapper-b34746d1.js +0 -3
  262. package/esm/radio-group-wrapper-b34746d1.js.map +0 -1
  263. package/esm/relation-tree-7bec12bd.js +0 -3
  264. package/esm/relation-tree-7bec12bd.js.map +0 -1
  265. package/esm/request-status-03fc60e2.js +0 -3
  266. package/esm/request-status-03fc60e2.js.map +0 -1
  267. package/esm/rich-text-editor-213daa34.js +0 -3
  268. package/esm/rich-text-editor-213daa34.js.map +0 -1
  269. package/esm/rich-text-viewer-4a859351.js +0 -3
  270. package/esm/rich-text-viewer-4a859351.js.map +0 -1
  271. package/esm/rule-describe-b4a8e831.js +0 -3
  272. package/esm/rule-describe-b4a8e831.js.map +0 -1
  273. package/esm/selector-wrapper-efc44920.js +0 -3
  274. package/esm/selector-wrapper-efc44920.js.map +0 -1
  275. package/esm/selector-wrapper-search-54866dd6.js +0 -3
  276. package/esm/selector-wrapper-search-54866dd6.js.map +0 -1
  277. package/esm/selector-wrapper-simple-7b34f7bd.js +0 -3
  278. package/esm/selector-wrapper-simple-7b34f7bd.js.map +0 -1
  279. package/esm/simple-layout-0dce0d39.js +0 -3
  280. package/esm/simple-layout-0dce0d39.js.map +0 -1
  281. package/esm/sms-count-down-c2609386.js +0 -3
  282. package/esm/sms-count-down-c2609386.js.map +0 -1
  283. package/esm/switch-confirm-wrapper-984d57c4.js +0 -3
  284. package/esm/switch-confirm-wrapper-984d57c4.js.map +0 -1
  285. package/esm/switch-wrapper-f20b9a58.js +0 -3
  286. package/esm/switch-wrapper-f20b9a58.js.map +0 -1
  287. package/esm/table-scrollbar-66c1682c.js +0 -3
  288. package/esm/table-scrollbar-66c1682c.js.map +0 -1
  289. package/esm/tabs-wrapper-0a2da713.js +0 -3
  290. package/esm/tabs-wrapper-0a2da713.js.map +0 -1
  291. package/esm/tag-group-4fbcaa14.js +0 -3
  292. package/esm/tag-group-4fbcaa14.js.map +0 -1
  293. package/esm/tag-list-select-066f682f.js +0 -3
  294. package/esm/tag-list-select-066f682f.js.map +0 -1
  295. package/esm/tag-wrapper-6d8b505e.js +0 -3
  296. package/esm/tag-wrapper-6d8b505e.js.map +0 -1
  297. package/esm/text-css-ellipsis-9135d4c5.js +0 -3
  298. package/esm/text-css-ellipsis-9135d4c5.js.map +0 -1
  299. package/esm/text-overflow-render-7a6541f5.js +0 -3
  300. package/esm/text-overflow-render-7a6541f5.js.map +0 -1
  301. package/esm/time-picker-wrapper-f1d26d96.js +0 -3
  302. package/esm/time-picker-wrapper-f1d26d96.js.map +0 -1
  303. package/esm/time-range-picker-wrapper-be9850b5.js +0 -3
  304. package/esm/time-range-picker-wrapper-be9850b5.js.map +0 -1
  305. package/esm/time-range-picker-wrapper-form-item-9df6c0f4.js +0 -3
  306. package/esm/time-range-picker-wrapper-form-item-9df6c0f4.js.map +0 -1
  307. package/esm/title-render-4f255df0.js +0 -3
  308. package/esm/title-render-4f255df0.js.map +0 -1
  309. package/esm/tree-selector-wrapper-1e520ad1.js +0 -3
  310. package/esm/tree-selector-wrapper-1e520ad1.js.map +0 -1
  311. package/esm/upload-wrapper-bd9ef592.js +0 -3
  312. package/esm/upload-wrapper-bd9ef592.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-status-03fc60e2.js","sources":["@flatbiz/antd/src/request-status/request-status.tsx"],"sourcesContent":["import { extend } from '@dimjs/utils';\nimport { valueIsEqual } from '@flatbiz/utils';\nimport { Empty, Spin } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type TRequestStatus =\n | 'request-init'\n | 'request-progress'\n | 'request-success'\n | 'request-error'\n | 'no-dependencies-params';\nexport type TRequestStatusProps = {\n status?: TRequestStatus;\n errorButton?: ReactElement;\n messageConfig?: Partial<Record<TRequestStatus, string>>;\n loading?: boolean;\n};\nexport const RequestStatus = (props: TRequestStatusProps) => {\n const messageConfig = extend(\n {\n 'request-success': '暂无数据',\n 'request-progress': '数据查询中',\n 'request-error': '数据查询异常',\n 'request-init': '暂无数据',\n 'no-dependencies-params': '未获取到依赖查询条件',\n },\n props.messageConfig,\n );\n const description = useMemo(() => {\n if (\n props.status &&\n valueIsEqual(props.status, [\n 'request-success',\n 'request-progress',\n 'request-error',\n 'no-dependencies-params',\n ])\n ) {\n return messageConfig[props.status];\n }\n return messageConfig['request-init'];\n }, [messageConfig, props.status]);\n return (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description={description} className={'v-request-status'}>\n <Spin spinning={props.loading || false}></Spin>\n {props.status === 'request-error' && props.errorButton}\n </Empty>\n );\n};\n"],"names":["RequestStatus","props","messageConfig","_extend","description","useMemo","status","valueIsEqual","_jsxs","Empty","image","PRESENTED_IMAGE_SIMPLE","className","children","_jsx","Spin","spinning","loading","errorButton"],"mappings":";4NAkBaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IAAMC,EAAgBC,EACpB,CACE,kBAAmB,OACnB,mBAAoB,QACpB,gBAAiB,SACjB,eAAgB,OAChB,yBAA0B,cAE5BF,EAAMC,eAER,IAAME,EAAcC,GAAQ,WAC1B,GACEJ,EAAMK,QACNC,EAAaN,EAAMK,OAAQ,CACzB,kBACA,mBACA,gBACA,2BAEF,CACA,OAAOJ,EAAcD,EAAMK,OAC7B,CACA,OAAOJ,EAAc,eACtB,GAAE,CAACA,EAAeD,EAAMK,SACzB,OACEE,EAACC,EAAK,CAACC,MAAOD,EAAME,uBAAwBP,YAAaA,EAAaQ,UAAW,mBAAmBC,SAAA,CAClGC,EAACC,EAAI,CAACC,SAAUf,EAAMgB,SAAW,QAChChB,EAAMK,SAAW,iBAAmBL,EAAMiB,cAGjD"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{Editor as i}from"@tinymce/tinymce-react";import{useKeyPress as o}from"ahooks";import{Fragment as a,useRef as l,useState as s}from"react";import c from"@ant-design/icons/es/icons/PlusCircleOutlined";import{Image as u}from"antd";import{d as m}from"./dynamic-node-c7864af4.js";import{fbaHooks as d}from"./fba-hooks/index.js";import{jsx as f,Fragment as v,jsxs as p}from"react/jsx-runtime";var g=function e(n){var t=n.visible,r=n.url;d.useEffectCustom((function(){if(t){m.append({content:f(c,{onClick:n.close,className:"preview-image-popup-close",twoToneColor:"#1890ff"})})}else{m.remove()}}),[t]);if(!r)return f(v,{});return f(a,{children:f(u,{style:{left:"100px"},preview:{className:"preview-image-popup",maskStyle:{backgroundColor:"rgba(0,0,0,0.85)"},visible:t,src:r,onVisibleChange:function e(){n.close()}}},r)})};var h=["onUploadImage","onChange","className"];var y=function a(c){var u,m,d,v;var y=c.onUploadImage,b=c.onChange,C=c.className,k=e(c,h);var x=l(null);var w=s(""),_=w[0],j=w[1];var E=((u=c.init)==null?void 0:u.img_ratio)||[{min:0,max:1e3,ratio:.5},{min:1e3,ratio:.3}];o((function(){return true}),(function(e){try{if(e.type==="keyup"&&e.key==="Escape"){var n;var t=(n=x.current)==null?void 0:n.editorContainer.classList.contains("tox-fullscreen");if(t){var r;(r=x.current)==null?void 0:r.editorCommands.execCommand("mceFullScreen")}}}catch(e){}}),{events:["keydown","keyup"]});var I=r.useCallbackRef((function(e,n){try{if(e.keyCode==27){var t;var r=(t=x.current)==null?void 0:t.editorContainer.classList.contains("tox-fullscreen");if(r){var i;(i=x.current)==null?void 0:i.editorCommands.execCommand("mceFullScreen")}}}catch(e){}c.onKeyDown==null?void 0:c.onKeyDown(e,n)}));var N=r.useCallbackRef((function(e,n){x.current=n;try{var t,r;(t=n.iframeElement)==null?void 0:(r=t.contentDocument)==null?void 0:r.addEventListener("click",(function(e){var n;if(c.imgPreview&&((n=e.target)==null?void 0:n["tagName"])==="IMG"){j(e.target["src"])}}),true)}catch(e){}k.onInit==null?void 0:k.onInit(e,n)}));var P=r.useCallbackRef((function(e,n){x.current=n;k.onEditorChange==null?void 0:k.onEditorChange(e,n);b==null?void 0:b(e)}));var R="https://file.40017.cn/tcsk/tinymce@6.4.1";var S=function e(n){if(E.length===0)return 1;for(var t=0;t<E.length;t++){var r=E[t];if(r.max){if(n>=r.min&&n<=r.max)return r.ratio}else{if(n>=r.min)return r.ratio}}return 1};var z=r.useCallbackRef((function(e,n){try{var t=n.node.children||[];if(t.length===1&&t[0].nodeName==="IMG"){t[0].setAttribute("style","display:none");var r=document.createElement("img");r.src=t[0].getAttribute("src");r.onload=function(){var n=S(r.width);e.execCommand("mceInsertContent",true,'<img src="'+r.src+'" width="'+r.width*n+'" height="'+r.height*n+'" />')}}}catch(e){}}));return p("div",{className:t("v-editor-wrapper",C),children:[f(i,n({tinymceScriptSrc:R+"/tinymce.min.js"},k,{onInit:N,onKeyDown:I,onEditorChange:P,init:n({promotion:false,language:"zh-Hans",height:500,paste_data_images:y?true:false,paste_postprocess:z,autosave_ask_before_unload:false,base_url:R,autoresize_bottom_margin:0,images_upload_handler:function e(n){return new Promise((function(e,t){var r,i,o;var a=function(n){try{return e(Promise.reject((n==null?void 0:n.message)||"图片上传异常"))}catch(e){return t(e)}};try{r=n.blob();i=new File([r],r.name,{type:r.type});return Promise.resolve(y==null?void 0:y(i)).then((function(n){try{o=n;return e(Promise.resolve(o))}catch(e){return a(e)}}),a)}catch(e){a(e)}}))},plugins:"lists link image advlist charmap preview fullscreen code table help codesample "+(((m=c.init)==null?void 0:m.plugins_append)||""),toolbar:"undo redo fullscreen preview | bold italic underline strikethrough |"+"fontsize blocks |"+"forecolor backcolor removeformat |"+"numlist bullist advlist |"+"alignleft aligncenter alignright alignjustify |"+"outdent indent |"+"hr image link code codesample |"+(((d=c.init)==null?void 0:d.toolbar_append)||""),font_size_formats:"8px 10px 12px 14px 16px 18px 24px 36px 48px"},c.init,{content_style:"img {max-width:100%;} table{width:100%} "+((v=c.init)==null?void 0:v.content_style)})})),f(g,{visible:!!_,url:_,close:function e(){j("")}})]})};export{y as R};
3
- //# sourceMappingURL=rich-text-editor-213daa34.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-text-editor-213daa34.js","sources":["@flatbiz/antd/src/rich-text-editor/preview/preview.tsx","@flatbiz/antd/src/rich-text-editor/rich-text-editor.tsx"],"sourcesContent":["import { PlusCircleOutlined } from '@ant-design/icons';\nimport { Image } from 'antd';\nimport { Fragment } from 'react';\nimport { dynamicNode } from '../../dynamic-node';\nimport { fbaHooks } from '../../fba-hooks';\nimport './preview.less';\n\nexport const Preview = (props) => {\n const { visible, url } = props;\n\n fbaHooks.useEffectCustom(() => {\n if (visible) {\n dynamicNode.append({\n content: (\n <PlusCircleOutlined\n onClick={props.close}\n className=\"preview-image-popup-close\"\n twoToneColor=\"#1890ff\"\n />\n ),\n });\n } else {\n dynamicNode.remove();\n }\n }, [visible]);\n\n if (!url) return <></>;\n\n return (\n <Fragment>\n <Image\n key={url}\n style={{ left: '100px' }}\n preview={{\n className: 'preview-image-popup',\n maskStyle: { backgroundColor: 'rgba(0,0,0,0.85)' },\n visible,\n src: url,\n onVisibleChange: () => {\n props.close();\n },\n }}\n />\n </Fragment>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Editor, IAllProps } from '@tinymce/tinymce-react';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\nimport { Preview } from './preview';\nimport './style.less';\n\nexport interface RichTextEditorProps extends Omit<IAllProps, 'onChange' | 'init'> {\n onChange?: (data?: string) => void;\n // value?: string;\n /** 上传图片服务 */\n onUploadImage?: (file: File) => Promise<string>;\n className?: string;\n /** 图片点击预览 */\n imgPreview?: boolean;\n init?: IAllProps['init'] & {\n /**\n * 通过粘贴图片创建的img标签,显示压缩比例,此处min、max是和指图片宽度\n * 1. 默认值:[{ min: 0, max: 1000, ratio: 0.5 }, { min: 1000, ratio: 0.3 }]\n */\n img_ratio?: { min: number; max?: number; ratio: number }[];\n /** 插件添加;自定义plugins后失效 */\n plugins_append?: string;\n /** 工具栏添加;自定义toolbar后失效 */\n toolbar_append?: string;\n };\n}\n\n/**\n * 富文本编辑器,配置参考tinymce https://www.tiny.cloud/docs/tinymce/6\n * @param props\n * @returns\n * ```\n * 1. 如果需要粘贴上传图片服务,需要提供 onUploadImage 上传图片接口\n * 2. 获取富文本实例,通过onInit(_, editor)函数获取\n * 3. 预览富文本数据,使用 RichTextViewer 组件\n * 4. 添加其他插件使用方式,配置 init.plugins_append、init.toolbar_append\n * <RichTextEditor init={{ plugins_append: 'codesample', toolbar_append: 'codesample' }} />\n * 5. 可通过设置 init.plugins、init.toolbar 完全自定义插件、工具栏\n * 6. 其他插件\n * emoticons 表情插件\n * 7. 可通过设置 init.img_ratio 设置通过粘贴上传的图片压缩显示比例\n * 默认比例:[{ min: 0, max: 1000, ratio: 0.5 }, { min: 1000, ratio: 0.3 }]\n * ```\n */\nexport const RichTextEditor = (props: RichTextEditorProps) => {\n const { onUploadImage, onChange, className, ...otherProps } = props;\n\n const editorRef = useRef<TAny>(null);\n const [previewUrl, setPreviewUrl] = useState('');\n const imgRatio = props.init?.img_ratio || [\n { min: 0, max: 1000, ratio: 0.5 },\n { min: 1000, ratio: 0.3 },\n ];\n\n // const varStyleString = useMemo(() => {\n // const merge = { ...defaultVarStyle, ...props.varStyle };\n // let varStyleString = '';\n // Object.keys(merge).map((key) => {\n // varStyleString += `${key}:${merge[key]};`;\n // });\n // return varStyleString;\n // }, [props.varStyle]);\n\n useKeyPress(\n () => true,\n (event) => {\n try {\n if (event.type === 'keyup' && event.key === 'Escape') {\n const isFull = editorRef.current?.editorContainer.classList.contains('tox-fullscreen');\n if (isFull) {\n editorRef.current?.editorCommands.execCommand('mceFullScreen');\n }\n }\n } catch (error) {\n // 异常不处理\n }\n },\n {\n events: ['keydown', 'keyup'],\n },\n );\n\n const onKeyDown = hooks.useCallbackRef((event, editor: TinyMCEEditor) => {\n try {\n if (event.keyCode == 27) {\n const isFull = editorRef.current?.editorContainer.classList.contains('tox-fullscreen');\n if (isFull) {\n editorRef.current?.editorCommands.execCommand('mceFullScreen');\n }\n }\n } catch (error) {\n // 异常不处理\n }\n props.onKeyDown?.(event, editor);\n });\n\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n try {\n editor.iframeElement?.contentDocument?.addEventListener(\n 'click',\n (event) => {\n if (props.imgPreview && event.target?.['tagName'] === 'IMG') {\n setPreviewUrl(event.target['src']);\n }\n },\n true,\n );\n } catch (error) {\n //\n }\n otherProps.onInit?.(_, editor);\n });\n\n const onEditorChange = hooks.useCallbackRef((a: string, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n otherProps.onEditorChange?.(a, editor);\n onChange?.(a);\n });\n\n const tinymceBaseUrl = 'https://file.40017.cn/tcsk/tinymce@6.4.1';\n\n const getImgRatio = (width: number) => {\n if (imgRatio.length === 0) return 1;\n for (let index = 0; index < imgRatio.length; index++) {\n const element = imgRatio[index];\n if (element.max) {\n if (width >= element.min && width <= element.max) return element.ratio;\n } else {\n if (width >= element.min) return element.ratio;\n }\n }\n return 1;\n };\n\n const paste_postprocess = hooks.useCallbackRef((editor, args) => {\n try {\n const nodes = (args.node.children || []) as unknown as HTMLElement[];\n if (nodes.length === 1 && nodes[0].nodeName === 'IMG') {\n nodes[0].setAttribute('style', `display:none`);\n const img = document.createElement('img');\n img.src = nodes[0].getAttribute('src') as string;\n img.onload = () => {\n const ratio = getImgRatio(img.width);\n editor.execCommand(\n 'mceInsertContent',\n true,\n `<img src=\"${img.src}\" width=\"${img.width * ratio}\" height=\"${img.height * ratio}\" />`,\n );\n };\n }\n } catch (error) {}\n });\n\n return (\n <div className={classNames('v-editor-wrapper', className)}>\n <Editor\n // apiKey=\"ds6j8so4g3d2cycidbhgkds36q0phy1uqd9jd8bot91sfe5l\"\n tinymceScriptSrc={`${tinymceBaseUrl}/tinymce.min.js`}\n {...otherProps}\n onInit={onInit}\n onKeyDown={onKeyDown}\n onEditorChange={onEditorChange}\n init={{\n promotion: false,\n language: 'zh-Hans',\n height: 500,\n paste_data_images: onUploadImage ? true : false,\n paste_postprocess,\n autosave_ask_before_unload: false,\n base_url: tinymceBaseUrl,\n autoresize_bottom_margin: 0,\n images_upload_handler: async (blobInfo) => {\n try {\n const blob = blobInfo.blob();\n const file = new File([blob], blob.name, { type: blob.type });\n const respData = await onUploadImage?.(file);\n return Promise.resolve(respData as string);\n } catch (error) {\n return Promise.reject(error?.message || '图片上传异常');\n }\n },\n\n plugins:\n 'lists link image advlist charmap preview fullscreen code table help codesample ' +\n (props.init?.plugins_append || ''),\n toolbar:\n 'undo redo fullscreen preview | bold italic underline strikethrough |' +\n 'fontsize blocks |' +\n 'forecolor backcolor removeformat |' +\n 'numlist bullist advlist |' +\n 'alignleft aligncenter alignright alignjustify |' +\n 'outdent indent |' +\n 'hr image link code codesample |' +\n (props.init?.toolbar_append || ''),\n font_size_formats: '8px 10px 12px 14px 16px 18px 24px 36px 48px',\n ...props.init,\n content_style: `img {max-width:100%;} table{width:100%} ${props.init?.content_style}`,\n }}\n />\n <Preview\n visible={!!previewUrl}\n url={previewUrl}\n close={() => {\n setPreviewUrl('');\n }}\n />\n </div>\n );\n};\n\n/**\n * undo redo\n * codesample\n * fontselect fontsizeselect formatselect\n * image media link anchor\n * preview save print\n * emoticons(表情)\n */\n"],"names":["Preview","props","visible","url","fbaHooks","useEffectCustom","dynamicNode","append","content","_jsx","_PlusCircleOutlined","onClick","close","className","twoToneColor","remove","_Fragment","Fragment","children","Image","style","left","preview","maskStyle","backgroundColor","src","onVisibleChange","RichTextEditor","_props$init","_props$init2","_props$init3","_props$init4","onUploadImage","onChange","otherProps","_objectWithoutPropertiesLoose","_excluded","editorRef","useRef","_useState","useState","previewUrl","setPreviewUrl","imgRatio","init","img_ratio","min","max","ratio","useKeyPress","event","type","key","_editorRef$current","isFull","current","editorContainer","classList","contains","_editorRef$current2","editorCommands","execCommand","error","events","onKeyDown","_hooks","useCallbackRef","editor","keyCode","_editorRef$current3","_editorRef$current4","onInit","_","_editor$iframeElement","_editor$iframeElement2","iframeElement","contentDocument","addEventListener","_event$target","imgPreview","target","onEditorChange","a","tinymceBaseUrl","getImgRatio","width","length","index","element","paste_postprocess","args","nodes","node","nodeName","setAttribute","img","document","createElement","getAttribute","onload","height","_jsxs","_classNames","Editor","_extends","tinymceScriptSrc","promotion","language","paste_data_images","autosave_ask_before_unload","base_url","autoresize_bottom_margin","images_upload_handler","blobInfo","Promise","$return","$error","blob","_file","respData","$Try_5_Catch","reject","message","$boundEx","file","File","name","resolve","then","$await_6","plugins","plugins_append","toolbar","toolbar_append","font_size_formats","content_style"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/FullscreenOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{useKeyPress as o}from"ahooks";import{useState as t,useRef as s}from"react";import{fbaHooks as n}from"./fba-hooks/index.js";import{I as a}from"./icon-wrapper-ed5fcacc.js";import{R as c}from"./rich-text-editor-213daa34.js";import{jsxs as l,jsx as u}from"react/jsx-runtime";var m=function m(f){var d=t(false),v=d[0],p=d[1];var b=s();o((function(){return true}),(function(e){if(e.type==="keyup"&&e.key==="Escape"&&v){p(false)}}),{events:["keydown","keyup"]});var k=i.useCallbackRef((function(){p(!v)}));var h=i.useCallbackRef((function(e,r){b.current=r;f.onInit==null?void 0:f.onInit(r)}));n.useEffectCustom((function(){var e;(e=b.current)==null?void 0:e.editorCommands.execCommand("mceAutoResize")}),[f.value]);return l("div",{className:r("fba-editor-viewer",{"fba-editor-viewer-fixed":v},f.className),style:f.style,children:[f.children,f.fullscreen&&f.value&&u("div",{className:"fba-editor-viewer-icon",children:u(a,{hoverTips:f.fullscreenIconTips,icon:u(e,{}),onClick:k})}),u(c,{value:f.value,onInit:h,imgPreview:true,disabled:true,init:{plugins:"autoresize",menubar:false,toolbar:"",statusbar:false}})]})};export{m as R};
3
- //# sourceMappingURL=rich-text-viewer-4a859351.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-text-viewer-4a859351.js","sources":["@flatbiz/antd/src/rich-text-viewer/rich-text-viewer.tsx"],"sourcesContent":["import { FullscreenOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport { RichTextEditor } from '../rich-text-editor';\nimport './style.less';\n\ntype RichTextViewerProps = {\n value: string;\n className?: string;\n style?: CSSProperties;\n fullscreen?: boolean;\n onInit?: (editor: TinyMCEEditor) => void;\n children?: ReactElement;\n fullscreenIconTips?: string;\n};\n\n/**\n * 预览 RichTextEditor 生成的富文本数据\n * ```\n * 1. 通过 onInit 属性可获取实例:editor\n * 2. 如果高度发生变更,可执行 editor.execCommand('mceAutoResize');\n *\n * ```\n * @param props\n * @returns\n */\nexport const RichTextViewer = (props: RichTextViewerProps) => {\n const [isFixed, setIsFixed] = useState(false);\n const editorRef = useRef<TinyMCEEditor>();\n\n useKeyPress(\n () => true,\n (event) => {\n if (event.type === 'keyup' && event.key === 'Escape' && isFixed) {\n setIsFixed(false);\n }\n },\n { events: ['keydown', 'keyup'] },\n );\n\n const onChangeFixed = hooks.useCallbackRef(() => {\n setIsFixed(!isFixed);\n });\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n props.onInit?.(editor);\n });\n\n fbaHooks.useEffectCustom(() => {\n editorRef.current?.editorCommands.execCommand('mceAutoResize');\n }, [props.value]);\n\n return (\n <div\n className={classNames('fba-editor-viewer', { 'fba-editor-viewer-fixed': isFixed }, props.className)}\n style={props.style}\n >\n {props.children}\n {props.fullscreen && props.value && (\n <div className=\"fba-editor-viewer-icon\">\n <IconWrapper\n hoverTips={props.fullscreenIconTips}\n icon={<FullscreenOutlined />}\n onClick={onChangeFixed}\n />\n </div>\n )}\n <RichTextEditor\n value={props.value}\n onInit={onInit}\n imgPreview\n disabled\n init={{\n plugins: 'autoresize',\n menubar: false,\n toolbar: '',\n statusbar: false,\n }}\n />\n </div>\n );\n};\n"],"names":["RichTextViewer","props","_useState","useState","isFixed","setIsFixed","editorRef","useRef","useKeyPress","event","type","key","events","onChangeFixed","_hooks","useCallbackRef","onInit","_","editor","current","fbaHooks","useEffectCustom","_editorRef$current","editorCommands","execCommand","value","_jsxs","className","_classNames","style","children","fullscreen","_jsx","IconWrapper","hoverTips","fullscreenIconTips","icon","_FullscreenOutlined","onClick","RichTextEditor","imgPreview","disabled","init","plugins","menubar","toolbar","statusbar"],"mappings":";+bAgCaA,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAYC,IAElBC,GACE,WAAA,OAAM,IACN,IAAA,SAACC,GACC,GAAIA,EAAMC,OAAS,SAAWD,EAAME,MAAQ,UAAYP,EAAS,CAC/DC,EAAW,MACb,CACF,GACA,CAAEO,OAAQ,CAAC,UAAW,WAGxB,IAAMC,EAAgBC,EAAMC,gBAAe,WACzCV,GAAYD,EACd,IACA,IAAMY,EAASF,EAAMC,gBAAe,SAACE,EAAGC,GACtCZ,EAAUa,QAAUD,EACpBjB,EAAMe,QAANf,UAAAA,EAAAA,EAAMe,OAASE,EACjB,IAEAE,EAASC,iBAAgB,WAAM,IAAAC,GAC7BA,EAAAhB,EAAUa,UAAO,UAAA,EAAjBG,EAAmBC,eAAeC,YAAY,gBAChD,GAAG,CAACvB,EAAMwB,QAEV,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,oBAAqB,CAAE,0BAA2BxB,GAAWH,EAAM0B,WACzFE,MAAO5B,EAAM4B,MAAMC,SAElB7B,CAAAA,EAAM6B,SACN7B,EAAM8B,YAAc9B,EAAMwB,OACzBO,EAAA,MAAA,CAAKL,UAAU,yBAAwBG,SACrCE,EAACC,EAAW,CACVC,UAAWjC,EAAMkC,mBACjBC,KAAMJ,EAAAK,EAAuB,IAC7BC,QAASzB,MAIfmB,EAACO,EAAc,CACbd,MAAOxB,EAAMwB,MACbT,OAAQA,EACRwB,WAAU,KACVC,SAAQ,KACRC,KAAM,CACJC,QAAS,aACTC,QAAS,MACTC,QAAS,GACTC,UAAW,WAKrB"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{isUndefinedOrNull as l}from"@flatbiz/utils";import{fbaHooks as i}from"./fba-hooks/index.js";import{F as t}from"./flex-layout-8d2b668b.js";import{jsxs as r,jsx as s}from"react/jsx-runtime";var c=function c(a){var d=l(a.showTitleIndex)?true:a.showTitleIndex;var m=i.useThemeToken();var n={"--rule-describe-colorPrimary":m.colorPrimary};return r("div",{className:e("v-rule-describe",a.className),style:n,children:[a.title?s("div",{className:e("v-rule-describe-title",{"v-rule-describe-title-sign":a.titleSign}),children:a.title}):null,a.ruleDataList.map((function(e,l){if(d&&e.title){return r("div",{className:"v-rule-describe-item",children:[r(t,{direction:"horizontal",className:"v-rule-describe-item-title",style:a.ruleItemTitleStyle,children:[r("span",{className:"v-rule-describe-item-title-index",children:[l+1,". "]}),s("span",{className:"v-rule-describe-item-title-content",children:e.title})]}),e.desc?r(t,{direction:"horizontal",className:"v-rule-describe-item-desc",style:a.ruleItemDescStyle,children:[s("span",{className:"v-rule-describe-item-title-index"}),s("span",{className:"v-rule-describe-item-title-content",children:e.desc})]}):null]},l)}return r("div",{className:"v-rule-describe-item",children:[e.title?s("div",{className:"v-rule-describe-item-title",style:a.ruleItemTitleStyle,children:e.title}):null,e.desc?s("div",{className:"v-rule-describe-item-desc",style:a.ruleItemDescStyle,children:e.desc}):null]},l)}))]})};export{c as R};
3
- //# sourceMappingURL=rule-describe-b4a8e831.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-describe-b4a8e831.js","sources":["@flatbiz/antd/src/rule-describe/rule-describe.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { CSSProperties, ReactElement } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\n\nexport type RuleDataItem = {\n title?: string | ReactElement;\n desc?: string | ReactElement;\n};\nexport type RuleDescribeProps = {\n title?: string;\n showTitleIndex?: boolean;\n ruleDataList: RuleDataItem[];\n titleSign?: boolean;\n className?: string;\n ruleItemTitleStyle?: CSSProperties;\n ruleItemDescStyle?: CSSProperties;\n};\n\nexport const RuleDescribe = (props: RuleDescribeProps) => {\n const showTitleIndex = isUndefinedOrNull(props.showTitleIndex) ? true : props.showTitleIndex;\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--rule-describe-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames('v-rule-describe', props.className)} style={style}>\n {props.title ? (\n <div\n className={classNames('v-rule-describe-title', { 'v-rule-describe-title-sign': props.titleSign })}\n >\n {props.title}\n </div>\n ) : null}\n {props.ruleDataList.map((item, index) => {\n if (showTitleIndex && item.title) {\n return (\n <div key={index} className=\"v-rule-describe-item\">\n <FlexLayout\n direction=\"horizontal\"\n className=\"v-rule-describe-item-title\"\n style={props.ruleItemTitleStyle}\n >\n <span className=\"v-rule-describe-item-title-index\">{index + 1}. </span>\n <span className=\"v-rule-describe-item-title-content\">{item.title}</span>\n </FlexLayout>\n {item.desc ? (\n <FlexLayout\n direction=\"horizontal\"\n className=\"v-rule-describe-item-desc\"\n style={props.ruleItemDescStyle}\n >\n <span className=\"v-rule-describe-item-title-index\"></span>\n <span className=\"v-rule-describe-item-title-content\">{item.desc}</span>\n </FlexLayout>\n ) : null}\n </div>\n );\n }\n return (\n <div key={index} className=\"v-rule-describe-item\">\n {item.title ? (\n <div className=\"v-rule-describe-item-title\" style={props.ruleItemTitleStyle}>\n {item.title}\n </div>\n ) : null}\n {item.desc ? (\n <div className=\"v-rule-describe-item-desc\" style={props.ruleItemDescStyle}>\n {item.desc}\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["RuleDescribe","props","showTitleIndex","isUndefinedOrNull","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","children","title","_jsx","titleSign","ruleDataList","map","item","index","FlexLayout","direction","ruleItemTitleStyle","desc","ruleItemDescStyle"],"mappings":";iQAqBaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAiBC,EAAkBF,EAAMC,gBAAkB,KAAOD,EAAMC,eAE9E,IAAME,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,+BAAgCH,EAAMI,cAEtD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAW,kBAAmBV,EAAMS,WAAYH,MAAOA,EAAMK,SAC1EX,CAAAA,EAAMY,MACLC,EAAA,MAAA,CACEJ,UAAWC,EAAW,wBAAyB,CAAE,6BAA8BV,EAAMc,YAAaH,SAEjGX,EAAMY,QAEP,KACHZ,EAAMe,aAAaC,KAAI,SAACC,EAAMC,GAC7B,GAAIjB,GAAkBgB,EAAKL,MAAO,CAChC,OACEJ,EAAA,MAAA,CAAiBC,UAAU,uBAAsBE,SAAA,CAC/CH,EAACW,EAAU,CACTC,UAAU,aACVX,UAAU,6BACVH,MAAON,EAAMqB,mBAAmBV,UAEhCH,EAAA,OAAA,CAAMC,UAAU,mCAAkCE,SAAEO,CAAAA,EAAQ,EAAE,QAC9DL,EAAA,OAAA,CAAMJ,UAAU,qCAAoCE,SAAEM,EAAKL,WAE5DK,EAAKK,KACJd,EAACW,EAAU,CACTC,UAAU,aACVX,UAAU,4BACVH,MAAON,EAAMuB,kBAAkBZ,UAE/BE,EAAA,OAAA,CAAMJ,UAAU,qCAChBI,EAAA,OAAA,CAAMJ,UAAU,qCAAoCE,SAAEM,EAAKK,UAE3D,OAlBIJ,EAqBd,CACA,OACEV,EAAA,MAAA,CAAiBC,UAAU,uBAAsBE,SAC9CM,CAAAA,EAAKL,MACJC,EAAA,MAAA,CAAKJ,UAAU,6BAA6BH,MAAON,EAAMqB,mBAAmBV,SACzEM,EAAKL,QAEN,KACHK,EAAKK,KACJT,EAAA,MAAA,CAAKJ,UAAU,4BAA4BH,MAAON,EAAMuB,kBAAkBZ,SACvEM,EAAKK,OAEN,OAVIJ,EAad,MAGN"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/RedoOutlined";import{isString as r}from"@dimjs/lang/cjs/is-string";import{hooks as n}from"@wove/react/cjs/hooks";import{_ as t,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefinedOrNull as u,toArray as s,valueIsEqual as i,arrayFind as a}from"@flatbiz/utils";import{Select as l,Button as c}from"antd";import{useState as f,useMemo as v,useRef as d}from"react";import{R as h}from"./request-status-03fc60e2.js";import{isDeepEqual as m}from"@dimjs/lang/cjs/is-deep-equal";import{isArray as p}from"@dimjs/lang/cjs/is-array";import{get as g}from"@dimjs/utils/cjs/get";import{json as C}from"@dimjs/utils/cjs/json";import q from"pubsub-js";import{fbaHooks as w}from"./fba-hooks/index.js";import{isObject as _}from"@dimjs/lang/cjs/is-object";import{jsx as b,jsxs as y}from"react/jsx-runtime";var R=function e(r){var n=r.cacheKey,t=r.serviceConfig,o=r.hasOuterSelectorList,s=r.outerSelectorList,i=r.onRespDataChange,a=r.onSelectorRequestError,l=r.onChange,c=r.useCache,d=r.fieldNames;var h=t==null?void 0:t.params;var _=(t==null?void 0:t.requiredParamsKeys)||[];var b=h&&Object.keys(h).length>0;var y=f(),R=y[0],j=y[1];var S=f(),L=S[0],P=S[1];var O=f(Date.now()),A=O[0],k=O[1];var E=v((function(){try{if(b){var e=JSON.stringify(C.sort(h));if(e==="{}"){return undefined}return e}}catch(e){}return undefined}),[b,h]);var N=""+E;var x=E+"_status";var D=n+"_"+N;var K=w.usePrevious(E);var I=w.usePrevious(h);var M=function e(r){if(t!=null&&t.onRequestResultAdapter){return t==null?void 0:t.onRequestResultAdapter(r)}if(d!=null&&d.list){var n=g(r,d==null?void 0:d.list);return p(n)?n:[]}return r};var B=function e(){var r;return(r=window["__selector_wrapper_"])==null?void 0:r[n]};var T=function e(){var r;return(r=B())==null?void 0:r[N]};var V=function e(){var r;return(r=B())==null?void 0:r[x]};var z=function e(r,t){if(!window["__selector_wrapper_"]){window["__selector_wrapper_"]={}}if(!window["__selector_wrapper_"][n]){window["__selector_wrapper_"][n]={}}window["__selector_wrapper_"][n][r]=t};var F=function e(r){z(x,r);P(r)};var H=function e(){return new Promise((function(e,r){var n,o;var u=function(n){try{console.error(n);F("request-error");j(undefined);setTimeout((function(){q.publish(D,{status:"request-error"})}));a==null?void 0:a(n);return e(Promise.reject())}catch(e){return r(e)}};try{F("request-progress");return Promise.resolve(t==null?void 0:t.onRequest==null?void 0:t.onRequest(h||{})).then((function(r){try{n=r;o=M(n)||[];z(N,o);F("request-success");setTimeout((function(){q.publish(D,{status:"request-success",respData:o})}));return e(o)}catch(e){return u(e)}}),u)}catch(e){u(e)}}))};w.useEffectCustomAsync((function(){return new Promise((function(e,r){var n,f,v,d,p,g;if(o){P("request-success");j(s);i==null?void 0:i(s);return e()}if(_.length>0){n=h?_.find((function(e){return u(h[e])})):true;if(n){j([]);P("no-dependencies-params");if(K){l==null?void 0:l(undefined)}return e()}if(c===false){if(m(h,I)){return e()}var C=function(){try{return e()}catch(e){return r(e)}};var w=function(e){try{console.error(e);P("request-error");j(undefined);a==null?void 0:a(e);return C()}catch(e){return r(e)}};try{P("request-progress");return Promise.resolve(t==null?void 0:t.onRequest==null?void 0:t.onRequest(h||{})).then((function(e){try{f=e;v=M(f)||[];P("request-success");j(v);i==null?void 0:i(v);return C()}catch(e){return w(e)}}),w)}catch(e){w(e)}}return b.call(this)}function b(){d=V();if(d==="request-success"){p=T();j(p);P(d);i==null?void 0:i(p);return e()}if(d==="request-progress"){P(d);q.subscribe(D,(function(e,r){var n=r.status,t=r.respData;if(n==="request-success"){P(n);j(t);i==null?void 0:i(t)}else{P("request-error");j(undefined)}}));return e()}var n=function(){try{return e()}catch(e){return r(e)}};var t=function(e){try{console.error(e);P("request-error");j(undefined);a==null?void 0:a(e);return n()}catch(e){return r(e)}};try{return Promise.resolve(H()).then((function(e){try{g=e;j(g);P("request-success");i==null?void 0:i(g);return n()}catch(e){return t(e)}}),t)}catch(e){t(e)}}return b.call(this)}))}),[h,s,A]);var J=function e(){k(Date.now())};return{requestStatus:L,stateSelectorList:R,serviceRequestParamsStringify:E,onRefreshRequest:J}};var j=function e(r,n){var t=s(r);t=t.map((function(e){if(_(e))return e[n];return e}));return t};var S=["serviceConfig","showAllOption","onSelectorListChange","onSelectorListAllChange","onSelectorRequestError","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","fieldNames","value","labelInValue","useCache"];var L=function u(f){var m=f.serviceConfig,p=f.showAllOption,g=f.onSelectorListChange,C=f.onSelectorListAllChange,q=f.onSelectorRequestError,w=f.onLabelRenderAdapter,_=f.requestMessageConfig,L=f.selectorList,P=f.modelKey,O=f.fieldNames,A=f.value,k=f.labelInValue,E=f.useCache,N=t(f,S);var x=d(true);var D=f.hasOwnProperty("selectorList");var K=o({label:"label",value:"value",disabled:"disabled"},O);var I=K.label,M=K.value,B=K.disabled;var T=v((function(){var e;if(!p)return null;var r=p===true;return e={},e[I]=r?"全部":p.label,e[M]=r?"":p.value,e}),[I,M,p]);var V=i(f.mode,["multiple"]);var z=R({fieldNames:K,cacheKey:P,hasOuterSelectorList:D,onChange:f.onChange,serviceConfig:m,outerSelectorList:L,onRespDataChange:function e(r){if(x.current){g==null?void 0:g(r||[]);x.current=false}C==null?void 0:C(r||[])},onSelectorRequestError:q,useCache:E===undefined?true:E}),F=z.requestStatus,H=z.stateSelectorList,J=z.onRefreshRequest;var W=n.useCallbackRef((function(e){if(k){if(V){f.onChange==null?void 0:f.onChange(e,e)}else{f.onChange==null?void 0:f.onChange(e[0],e)}}else{var r=e.map((function(e){return e[M]}));if(V){f.onChange==null?void 0:f.onChange(r,e)}else{f.onChange==null?void 0:f.onChange(r[0],e[0])}}}));var G=n.useCallbackRef((function(e,r){if(!r)return f.onChange==null?void 0:f.onChange(undefined);var n=s(r);var t=[];n.forEach((function(e){if(p&&T&&e.value===T[M]){t.push(T)}else{var r=a(H||[],e.value,M);if(r){t.push(r)}}}));W(t)}));var Q=v((function(){if(F!=="request-success")return[];if(!H||H.length===0)return[];if(!T)return H;return[T].concat(H)}),[T,F,H]);var U=F==="request-progress";var X=v((function(){var e=j(A,M);return V?e:e[0]}),[V,M,A]);var Y=n.useCallbackRef((function(e,n){var t=s(n.children);var o="";t.forEach((function(e){if(r(e))o+=e}));return o.toLowerCase().indexOf(e.toLowerCase())>=0}));return b(l,o({showSearch:true,allowClear:true,dropdownMatchSelectWidth:false,filterOption:Y},N,{style:o({width:"100%"},f.style),value:X,loading:U,onChange:G,fieldNames:undefined,suffixIcon:F==="request-error"?b(e,{spin:U,onClick:J}):N.suffixIcon,notFoundContent:b(h,{status:F,loading:U,messageConfig:o({"request-init":"暂无数据"},_),errorButton:b(c,{type:"primary",onClick:J,children:"重新获取数据"})}),children:Q.map((function(e,r){var n=e[M];var t=e[I];return y(l.Option,{value:n,label:t,disabled:e[B],children:[f.showIcon?b("span",{className:"v-selector-item-icon",children:f.icon==null?void 0:f.icon(e,r)}):null,w?w(e):t]},n+"-"+r)}))}))};export{L as S};
3
- //# sourceMappingURL=selector-wrapper-efc44920.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selector-wrapper-efc44920.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TRequestStatus } from '../request-status';\nimport { SelectorServiceConfig, SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\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 respData;\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [serviceRequestParams, outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索 + 调用服务模式\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = { label: 'label', value: 'value', disabled: 'disabled', ...fieldNames };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","console","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","_dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","dataList","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as t,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as s}from"@dimjs/utils/cjs/get";import{Select as i,Button as a}from"antd";import{useState as u,useMemo as l}from"react";import{fbaHooks as c}from"./fba-hooks/index.js";import{R as d}from"./request-status-03fc60e2.js";import{jsx as f}from"react/jsx-runtime";var v=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter"];var m=function m(p){var h=p.showAllOption,g=p.serviceConfig,b=p.onSelectorListChange,q=p.onSelectorRequestError,y=p.requestMessageConfig,w=p.fieldNames,C=p.onLabelRenderAdapter,R=t(p,v);var j=u("request-init"),S=j[0],A=j[1];var K=u(),k=K[0],x=K[1];var E=(w==null?void 0:w.label)||"label";var L=(w==null?void 0:w.value)||"value";var O=(w==null?void 0:w.disabled)||"disabled";var M=(w==null?void 0:w.searchKeyword)||"searchKeyword";var P=g.params;var B=l((function(){var e=h===true;if(h){return{label:e?"全部":h.label,value:e?"":h.value}}return null}),[h]);var N=function e(r){if(g.onRequestResultAdapter){return g.onRequestResultAdapter(r)}if(w!=null&&w.list){var t=s(r,w==null?void 0:w.list);return n(t)?t:[]}return n(r)?r:[]};var _=function e(r){return new Promise((function(e,t){var n,s,i;var a=function(){try{return e()}catch(e){return t(e)}};var u=function(e){try{A("request-error");q==null?void 0:q(e);return a()}catch(e){return t(e)}};try{A("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(o({},P,(n={},n[M]=r,n)))).then((function(e){try{s=e;i=N(s);b==null?void 0:b(i);if(E&&L){i=i.map((function(e){return o({},e,{label:e[E],value:e[L],disabled:e[O||"disabled"]})}))}i.forEach((function(e){if(C){e.label=C(e)}}));if(B){i.unshift(B)}x(i);A("request-success");return a()}catch(e){return u(e)}}),u)}catch(e){u(e)}}))};var D=r.useDebounceCallback((function(e){x([]);void _(e)}),300);c.useEffectCustom((function(){if(p.customKeyword){void _(p.customKeyword)}}),[p.customKeyword]);var F=S==="request-progress";return f(i,o({showSearch:true,allowClear:true,dropdownMatchSelectWidth:false},R,{style:o({width:"100%"},p.style),options:k,filterOption:false,onSearch:D,notFoundContent:f(d,{status:S,loading:F,messageConfig:o({"request-init":"请输入搜索条件"},y),errorButton:f(a,{type:"primary",onClick:_,children:"重新获取数据"})}),suffixIcon:S==="request-error"?f(e,{spin:F,onClick:_}):undefined,loading:F}))};export{m as S};
3
- //# sourceMappingURL=selector-wrapper-search-54866dd6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selector-wrapper-search-54866dd6.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.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 { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = 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; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\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 onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n // 自定义keyword值\n customKeyword?: string;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\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 searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\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 (keyword) => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.({\n ...serviceParams,\n [searchKeyword]: keyword,\n });\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 || 'disabled'],\n };\n });\n }\n\n respAdapterData.forEach((item) => {\n if (onLabelRenderAdapter) {\n item.label = onLabelRenderAdapter(item);\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 const onSearch = hooks.useDebounceCallback((value: string) => {\n setDataSource([]);\n void startDataSourceRequest(value);\n }, 300);\n\n fbaHooks.useEffectCustom(() => {\n if (props.customKeyword) {\n void startDataSourceRequest(props.customKeyword);\n }\n }, [props.customKeyword]);\n\n const loading = requestStatus === 'request-progress';\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n filterOption={false}\n onSearch={onSearch}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '请输入搜索条件',\n ...requestMessageConfig,\n }}\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":["SelectorWrapperSearch","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","searchKeyword","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","startDataSourceRequest","keyword","Promise","$return","$error","_extends2","_respData","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","_extends","then","$await_2","map","item","forEach","unshift","onSearch","_hooks","useDebounceCallback","fbaHooks","useEffectCustom","customKeyword","loading","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","options","filterOption","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import r from"@ant-design/icons/es/icons/RedoOutlined";import{_ as e,a as t}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as o}from"@dimjs/utils/cjs/get";import{Select as s,Button as i}from"antd";import{useState as u,useMemo as a}from"react";import{fbaHooks as l}from"./fba-hooks/index.js";import{R as f}from"./request-status-03fc60e2.js";import{jsx as c}from"react/jsx-runtime";var v=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames"];var d=function d(m){var p=m.showAllOption,g=m.serviceConfig,q=m.onSelectorListChange,h=m.onSelectorRequestError,C=m.requestMessageConfig,b=m.fieldNames,R=e(m,v);var y=u("request-init"),j=y[0],S=y[1];var w=u(),x=w[0],A=w[1];var k=(b==null?void 0:b.label)||"label";var E=(b==null?void 0:b.value)||"value";var O=(b==null?void 0:b.disabled)||"disabled";var P=g.params;var B=a((function(){var r=p===true;if(p){return{label:r?"全部":p.label,value:r?"":p.value}}return null}),[p]);var L=function r(e){if(g.onRequestResultAdapter){return g.onRequestResultAdapter(e)}if(b!=null&&b.list){var t=o(e,b==null?void 0:b.list);return n(t)?t:[]}return n(e)?e:[]};var M=function r(){return new Promise((function(r,e){var n,o;var s=function(){try{return r()}catch(r){return e(r)}};var i=function(r){try{S("request-error");h==null?void 0:h(r);return s()}catch(r){return e(r)}};try{S("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(P)).then((function(r){try{n=r;o=L(n);q==null?void 0:q(o);if(k&&E){o=o.map((function(r){return t({},r,{label:r[k],value:r[E],disabled:r[O]})}))}if(B){o.unshift(B)}A(o);S("request-success");return s()}catch(r){return i(r)}}),i)}catch(r){i(r)}}))};l.useEffectCustom((function(){void M()}),[]);var N=j==="request-progress";return c(s,t({},R,{style:t({width:"100%"},m.style),options:x,notFoundContent:c(f,{status:j,loading:N,messageConfig:C,errorButton:c(i,{type:"primary",onClick:M,children:"重新获取数据"})}),suffixIcon:j==="request-error"?c(r,{spin:N,onClick:M}):undefined,loading:N}))};export{d as S};
3
- //# sourceMappingURL=selector-wrapper-simple-7b34f7bd.js.map
@@ -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