@para-ui/core 5.0.0-beta.12 → 5.0.0-beta.13

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 (556) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/FieldForm/component.json +196 -0
  36. package/Form/component.json +161 -0
  37. package/FormItem/component.json +171 -0
  38. package/FunctionModal/component.json +197 -0
  39. package/Help/component.json +118 -0
  40. package/HelperText/component.json +126 -0
  41. package/Image/component.json +165 -0
  42. package/InputCode/component.json +191 -0
  43. package/InputLang/component.json +205 -0
  44. package/InputNumber/component.json +162 -0
  45. package/Label/component.json +126 -0
  46. package/Loading/component.json +91 -0
  47. package/Menu/component.json +180 -0
  48. package/Message/component.json +246 -0
  49. package/Modal/component.json +277 -0
  50. package/MultiBox/component.json +216 -0
  51. package/Notification/component.json +184 -0
  52. package/OperateBtn/component.json +134 -0
  53. package/PageHeader/component.json +112 -0
  54. package/Pagination/component.json +181 -0
  55. package/PasswordRules/component.json +105 -0
  56. package/PopConfirm/component.json +227 -0
  57. package/PopMenu/component.json +131 -0
  58. package/Popover/component.json +165 -0
  59. package/Progress/component.json +161 -0
  60. package/Prompt/component.json +144 -0
  61. package/Querying/component.json +96 -0
  62. package/QuickReply/component.json +129 -0
  63. package/Radio/component.json +136 -0
  64. package/RadioGroup/component.json +149 -0
  65. package/RangeInput/component.json +198 -0
  66. package/Result/component.json +104 -0
  67. package/ScrollBar/component.json +115 -0
  68. package/Search/component.json +177 -0
  69. package/Select/component.json +244 -0
  70. package/SelectInput/component.json +184 -0
  71. package/Selector/component.json +203 -0
  72. package/SelectorPicker/component.json +179 -0
  73. package/SingleBox/component.json +151 -0
  74. package/Slider/component.json +181 -0
  75. package/SortBox/component.json +108 -0
  76. package/Status/component.json +104 -0
  77. package/Stepper/component.json +129 -0
  78. package/Switch/component.json +207 -0
  79. package/Table/component.json +547 -0
  80. package/Tabs/component.json +227 -0
  81. package/Tag/component.json +221 -0
  82. package/TextEditor/component.json +186 -0
  83. package/TextField/component.json +290 -0
  84. package/TimePicker/component.json +176 -0
  85. package/Timeline/component.json +110 -0
  86. package/Title/component.json +156 -0
  87. package/ToggleButton/component.json +153 -0
  88. package/Tooltip/component.json +176 -0
  89. package/Transfer/component.json +157 -0
  90. package/Tree/component.json +512 -0
  91. package/Upload/component.json +450 -0
  92. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  93. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  94. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  95. package/ai-workflows/04-array-field-form.md +281 -0
  96. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  97. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  98. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  99. package/ai-workflows/08-table-advanced-features.md +365 -0
  100. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  101. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  102. package/es/AlignBox/component.json +89 -0
  103. package/es/AlignBox/index.css +1 -1
  104. package/es/AlignBox/index.d.ts +6 -2
  105. package/es/AlignBox/index.js +1 -1
  106. package/es/AlignBox/style/index.css +1 -1
  107. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  108. package/es/Anchor/anchorMenu/index.js +36 -33
  109. package/es/Anchor/component.json +130 -0
  110. package/es/Anchor/index.js +50 -47
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/index.d.ts +5 -6
  114. package/es/AutoBox/component.json +133 -0
  115. package/es/AutoBox/index.d.ts +3 -3
  116. package/es/AutoBox/index.js +1 -1
  117. package/es/AutoBox/protal.d.ts +2 -2
  118. package/es/AutoBox/protal.js +32 -29
  119. package/es/AutoButton/component.json +109 -0
  120. package/es/AutoButton/index.js +1 -1
  121. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  122. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  123. package/es/AutoTips/component.json +121 -0
  124. package/es/Badge/component.json +92 -0
  125. package/es/Breadcrumbs/component.json +142 -0
  126. package/es/Breadcrumbs/index.js +1 -1
  127. package/es/Button/SplitButton.d.ts +2 -2
  128. package/es/Button/component.json +168 -0
  129. package/es/Button/index.js +44 -44
  130. package/es/ButtonGroup/component.json +132 -0
  131. package/es/ButtonGroup/index.d.ts +1 -1
  132. package/es/Card/component.json +162 -0
  133. package/es/Card/index.d.ts +2 -2
  134. package/es/Card/index.js +2 -2
  135. package/es/Carousel/component.json +142 -0
  136. package/es/Carousel/index.d.ts +1 -1
  137. package/es/Cascader/component.json +196 -0
  138. package/es/Cascader/hooks/useEntities.js +7 -7
  139. package/es/Cascader/interface.d.ts +1 -0
  140. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  141. package/es/Cascader/utils/commonUtil.js +16 -16
  142. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  143. package/es/Cascader/utils/treeUtil.js +1 -1
  144. package/es/Checkbox/component.json +138 -0
  145. package/es/CheckboxGroup/component.json +152 -0
  146. package/es/CodeEditor/component.json +189 -0
  147. package/es/CodeEditor/index.d.ts +10 -9
  148. package/es/Collapse/component.json +166 -0
  149. package/es/Collapse/index.d.ts +1 -1
  150. package/es/Collapse/index.js +23 -22
  151. package/es/CollapseBox/component.json +84 -0
  152. package/es/CollapseLayout/component.json +155 -0
  153. package/es/ColorPicker/component.json +142 -0
  154. package/es/ComboSelect/component.json +181 -0
  155. package/es/ComboSelect/index.js +73 -68
  156. package/es/ComboSelect/interface.d.ts +2 -2
  157. package/es/ComboSelect/utils.d.ts +3 -3
  158. package/es/ComboSelect/utils.js +1 -1
  159. package/es/Container/component.json +111 -0
  160. package/es/ContentBox/component.json +81 -0
  161. package/es/CopyText/component.json +118 -0
  162. package/es/CycleSelector/component.json +98 -0
  163. package/es/CycleSelector/index.js +14 -13
  164. package/es/DatePicker/component.json +192 -0
  165. package/es/DatePicker/generatePicker/generateRangePicker.js +10 -10
  166. package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  167. package/es/Descriptions/component.json +142 -0
  168. package/es/Descriptions/index.d.ts +1 -1
  169. package/es/Desktop/component.json +171 -0
  170. package/es/DragVerify/component.json +114 -0
  171. package/es/DragVerify/index.js +19 -19
  172. package/es/Drawer/component.json +200 -0
  173. package/es/Drawer/index.js +86 -86
  174. package/es/Drawer/interface.d.ts +1 -1
  175. package/es/Drawer/util.d.ts +1 -6
  176. package/es/Drawer/util.js +9 -6
  177. package/es/Dropdown/component.json +147 -0
  178. package/es/DynamicMultiBox/component.json +278 -0
  179. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  180. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  181. package/es/Empty/component.json +123 -0
  182. package/es/Empty/index.css +1 -1
  183. package/es/Empty/index.d.ts +2 -2
  184. package/es/Empty/index.js +27 -26
  185. package/es/Empty/style/index.css +1 -1
  186. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  187. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  188. package/es/FieldForm/Form.d.ts +2 -2
  189. package/es/FieldForm/FormList.d.ts +2 -2
  190. package/es/FieldForm/component.json +196 -0
  191. package/es/FieldForm/context.d.ts +5 -1
  192. package/es/FieldForm/context.js +2 -2
  193. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  194. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  195. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  196. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  197. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  198. package/es/FieldForm/hooks/useItemRef.js +6 -6
  199. package/es/Form/component.json +161 -0
  200. package/es/Form/index.d.ts +52 -49
  201. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  202. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  203. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  204. package/es/FormItem/compoments/formFile/index.js +8 -8
  205. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  206. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  207. package/es/FormItem/component.json +171 -0
  208. package/es/FormItem/index.d.ts +5 -5
  209. package/es/FormItem/index.js +23 -23
  210. package/es/FormItem/itemType.js +1 -1
  211. package/es/FunctionModal/component.json +197 -0
  212. package/es/FunctionModal/dialog.d.ts +1 -1
  213. package/es/FunctionModal/modalContext.d.ts +4 -1
  214. package/es/Help/component.json +118 -0
  215. package/es/HelperText/component.json +126 -0
  216. package/es/Image/component.json +165 -0
  217. package/es/InputCode/component.json +191 -0
  218. package/es/InputCode/index.d.ts +2 -2
  219. package/es/InputLang/component.json +205 -0
  220. package/es/InputLang/index.js +1 -1
  221. package/es/InputNumber/component.json +162 -0
  222. package/es/Label/component.json +126 -0
  223. package/es/Label/index.d.ts +2 -2
  224. package/es/Loading/component.json +91 -0
  225. package/es/Menu/component.json +180 -0
  226. package/es/Message/component.json +246 -0
  227. package/es/Message/index.d.ts +2 -2
  228. package/es/Message/index.js +2 -2
  229. package/es/Modal/Confirm/index.d.ts +1 -1
  230. package/es/Modal/component.json +277 -0
  231. package/es/Modal/index.d.ts +85 -5
  232. package/es/Modal/index.js +159 -122
  233. package/es/Modal/interface.d.ts +1 -0
  234. package/es/MultiBox/component.json +216 -0
  235. package/es/MultiBox/index.js +19 -14
  236. package/es/Notification/component.json +184 -0
  237. package/es/OperateBtn/component.json +134 -0
  238. package/es/OperateBtn/index.d.ts +3 -3
  239. package/es/PageHeader/component.json +112 -0
  240. package/es/Pagination/component.json +181 -0
  241. package/es/Pagination/index.js +15 -15
  242. package/es/PasswordRules/component.json +105 -0
  243. package/es/PasswordRules/index.d.ts +4 -4
  244. package/es/PopConfirm/component.json +227 -0
  245. package/es/PopConfirm/index.d.ts +1 -1
  246. package/es/PopConfirm/index.js +1 -1
  247. package/es/PopMenu/component.json +131 -0
  248. package/es/PopMenu/hooks.d.ts +1 -1
  249. package/es/PopMenu/index.js +8 -8
  250. package/es/Popover/component.json +165 -0
  251. package/es/Popover/index.js +1 -1
  252. package/es/Progress/component.json +161 -0
  253. package/es/Prompt/component.json +144 -0
  254. package/es/Querying/component.json +96 -0
  255. package/es/Querying/index.css +1 -1
  256. package/es/Querying/index.d.ts +2 -2
  257. package/es/Querying/index.js +20 -19
  258. package/es/Querying/style/index.css +1 -1
  259. package/es/QuickReply/component.json +129 -0
  260. package/es/QuickReply/index.d.ts +1 -1
  261. package/es/Radio/component.json +136 -0
  262. package/es/RadioGroup/component.json +149 -0
  263. package/es/RangeInput/component.json +198 -0
  264. package/es/RangeInput/index.js +1 -1
  265. package/es/Result/component.json +104 -0
  266. package/es/ScrollBar/component.json +115 -0
  267. package/es/Search/component.json +177 -0
  268. package/es/Search/index.d.ts +1 -1
  269. package/es/Select/component.json +244 -0
  270. package/es/Select/index.js +113 -113
  271. package/es/SelectInput/component.json +184 -0
  272. package/es/Selector/component.json +203 -0
  273. package/es/Selector/index.js +28 -27
  274. package/es/Selector/interface.d.ts +1 -1
  275. package/es/Selector/selectorMain/index.js +2 -2
  276. package/es/Selector/selectorNode/index.js +1 -1
  277. package/es/Selector/util.d.ts +2 -2
  278. package/es/SelectorPicker/component.json +179 -0
  279. package/es/SelectorPicker/index.d.ts +5 -5
  280. package/es/SelectorPicker/index.js +15 -15
  281. package/es/SingleBox/component.json +151 -0
  282. package/es/SingleBox/index.d.ts +2 -2
  283. package/es/Slider/component.json +181 -0
  284. package/es/SortBox/component.json +108 -0
  285. package/es/Status/component.json +104 -0
  286. package/es/Stepper/component.json +129 -0
  287. package/es/Stepper/index.d.ts +2 -2
  288. package/es/Switch/component.json +207 -0
  289. package/es/Switch/index.css +1 -1
  290. package/es/Switch/index.d.ts +3 -2
  291. package/es/Switch/index.js +60 -59
  292. package/es/Switch/style/index.css +1 -1
  293. package/es/Table/component.json +547 -0
  294. package/es/Table/index.d.ts +2 -2
  295. package/es/Table/index.js +414 -414
  296. package/es/Table/interface.d.ts +6 -0
  297. package/es/Tabs/component.json +227 -0
  298. package/es/Tag/component.json +221 -0
  299. package/es/Tag/index.css +1 -1
  300. package/es/Tag/index.d.ts +1 -1
  301. package/es/Tag/index.js +20 -20
  302. package/es/Tag/style/index.css +1 -1
  303. package/es/TextEditor/component.json +186 -0
  304. package/es/TextEditor/index.d.ts +5 -5
  305. package/es/TextField/component.json +290 -0
  306. package/es/TextField/index.d.ts +2 -2
  307. package/es/TimePicker/component.json +176 -0
  308. package/es/Timeline/component.json +110 -0
  309. package/es/Title/component.json +156 -0
  310. package/es/ToggleButton/component.json +153 -0
  311. package/es/Tooltip/component.json +176 -0
  312. package/es/Tooltip/index.js +58 -53
  313. package/es/Tooltip/interface.d.ts +14 -1
  314. package/es/Tooltip/utils.js +6 -6
  315. package/es/Transfer/component.json +157 -0
  316. package/es/Tree/component.json +512 -0
  317. package/es/Upload/component.json +450 -0
  318. package/es/Utils/type.d.ts +0 -2
  319. package/es/index.d.ts +2 -0
  320. package/es/index.js +1 -1
  321. package/es/locale/en_US.d.ts +361 -0
  322. package/es/locale/en_US.js +364 -0
  323. package/es/locale/index.d.ts +1 -723
  324. package/es/locale/index2.js +10 -0
  325. package/es/locale/zh_CN.d.ts +361 -0
  326. package/es/locale/zh_CN.js +364 -0
  327. package/lib/AlignBox/component.json +89 -0
  328. package/lib/AlignBox/index.css +1 -1
  329. package/lib/AlignBox/index.d.ts +6 -2
  330. package/lib/AlignBox/index.js +1 -1
  331. package/lib/AlignBox/style/index.css +1 -1
  332. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  333. package/lib/Anchor/anchorMenu/index.js +1 -1
  334. package/lib/Anchor/component.json +130 -0
  335. package/lib/Anchor/index.js +1 -1
  336. package/lib/Anchor/type.d.ts +8 -4
  337. package/lib/Argv/component.json +216 -0
  338. package/lib/Argv/index.d.ts +5 -6
  339. package/lib/AutoBox/component.json +133 -0
  340. package/lib/AutoBox/index.d.ts +3 -3
  341. package/lib/AutoBox/index.js +1 -1
  342. package/lib/AutoBox/protal.d.ts +2 -2
  343. package/lib/AutoBox/protal.js +1 -1
  344. package/lib/AutoButton/component.json +109 -0
  345. package/lib/AutoButton/index.js +1 -1
  346. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  347. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  348. package/lib/AutoTips/component.json +121 -0
  349. package/lib/Badge/component.json +92 -0
  350. package/lib/Breadcrumbs/component.json +142 -0
  351. package/lib/Breadcrumbs/index.js +1 -1
  352. package/lib/Button/SplitButton.d.ts +2 -2
  353. package/lib/Button/component.json +168 -0
  354. package/lib/Button/index.js +1 -1
  355. package/lib/ButtonGroup/component.json +132 -0
  356. package/lib/ButtonGroup/index.d.ts +1 -1
  357. package/lib/Card/component.json +162 -0
  358. package/lib/Card/index.d.ts +2 -2
  359. package/lib/Card/index.js +1 -1
  360. package/lib/Carousel/component.json +142 -0
  361. package/lib/Carousel/index.d.ts +1 -1
  362. package/lib/Cascader/component.json +196 -0
  363. package/lib/Cascader/hooks/useEntities.js +1 -1
  364. package/lib/Cascader/interface.d.ts +1 -0
  365. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  366. package/lib/Cascader/utils/commonUtil.js +1 -1
  367. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  368. package/lib/Cascader/utils/treeUtil.js +1 -1
  369. package/lib/Checkbox/component.json +138 -0
  370. package/lib/CheckboxGroup/component.json +152 -0
  371. package/lib/CodeEditor/component.json +189 -0
  372. package/lib/CodeEditor/index.d.ts +10 -9
  373. package/lib/Collapse/component.json +166 -0
  374. package/lib/Collapse/index.d.ts +1 -1
  375. package/lib/Collapse/index.js +1 -1
  376. package/lib/CollapseBox/component.json +84 -0
  377. package/lib/CollapseLayout/component.json +155 -0
  378. package/lib/ColorPicker/component.json +142 -0
  379. package/lib/ComboSelect/component.json +181 -0
  380. package/lib/ComboSelect/index.js +1 -1
  381. package/lib/ComboSelect/interface.d.ts +2 -2
  382. package/lib/ComboSelect/utils.d.ts +3 -3
  383. package/lib/ComboSelect/utils.js +1 -1
  384. package/lib/Container/component.json +111 -0
  385. package/lib/ContentBox/component.json +81 -0
  386. package/lib/CopyText/component.json +118 -0
  387. package/lib/CycleSelector/component.json +98 -0
  388. package/lib/CycleSelector/index.js +1 -1
  389. package/lib/DatePicker/component.json +192 -0
  390. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  391. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  392. package/lib/Descriptions/component.json +142 -0
  393. package/lib/Descriptions/index.d.ts +1 -1
  394. package/lib/Desktop/component.json +171 -0
  395. package/lib/DragVerify/component.json +114 -0
  396. package/lib/DragVerify/index.js +1 -1
  397. package/lib/Drawer/component.json +200 -0
  398. package/lib/Drawer/index.js +1 -1
  399. package/lib/Drawer/interface.d.ts +1 -1
  400. package/lib/Drawer/util.d.ts +1 -6
  401. package/lib/Drawer/util.js +1 -1
  402. package/lib/Dropdown/component.json +147 -0
  403. package/lib/DynamicMultiBox/component.json +278 -0
  404. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  405. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  406. package/lib/Empty/component.json +123 -0
  407. package/lib/Empty/index.css +1 -1
  408. package/lib/Empty/index.d.ts +2 -2
  409. package/lib/Empty/index.js +1 -1
  410. package/lib/Empty/style/index.css +1 -1
  411. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  412. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  413. package/lib/FieldForm/Form.d.ts +2 -2
  414. package/lib/FieldForm/FormList.d.ts +2 -2
  415. package/lib/FieldForm/component.json +196 -0
  416. package/lib/FieldForm/context.d.ts +5 -1
  417. package/lib/FieldForm/context.js +1 -1
  418. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  419. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  420. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  421. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  422. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  423. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  424. package/lib/Form/component.json +161 -0
  425. package/lib/Form/index.d.ts +52 -49
  426. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  427. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  428. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  429. package/lib/FormItem/compoments/formFile/index.js +1 -1
  430. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  431. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  432. package/lib/FormItem/component.json +171 -0
  433. package/lib/FormItem/index.d.ts +5 -5
  434. package/lib/FormItem/index.js +1 -1
  435. package/lib/FormItem/itemType.js +1 -1
  436. package/lib/FunctionModal/component.json +197 -0
  437. package/lib/FunctionModal/dialog.d.ts +1 -1
  438. package/lib/FunctionModal/modalContext.d.ts +4 -1
  439. package/lib/Help/component.json +118 -0
  440. package/lib/HelperText/component.json +126 -0
  441. package/lib/Image/component.json +165 -0
  442. package/lib/InputCode/component.json +191 -0
  443. package/lib/InputCode/index.d.ts +2 -2
  444. package/lib/InputLang/component.json +205 -0
  445. package/lib/InputLang/index.js +1 -1
  446. package/lib/InputNumber/component.json +162 -0
  447. package/lib/Label/component.json +126 -0
  448. package/lib/Label/index.d.ts +2 -2
  449. package/lib/Loading/component.json +91 -0
  450. package/lib/Menu/component.json +180 -0
  451. package/lib/Message/component.json +246 -0
  452. package/lib/Message/index.d.ts +2 -2
  453. package/lib/Message/index.js +1 -1
  454. package/lib/Modal/Confirm/index.d.ts +1 -1
  455. package/lib/Modal/component.json +277 -0
  456. package/lib/Modal/index.d.ts +85 -5
  457. package/lib/Modal/index.js +1 -1
  458. package/lib/Modal/interface.d.ts +1 -0
  459. package/lib/MultiBox/component.json +216 -0
  460. package/lib/MultiBox/index.js +1 -1
  461. package/lib/Notification/component.json +184 -0
  462. package/lib/OperateBtn/component.json +134 -0
  463. package/lib/OperateBtn/index.d.ts +3 -3
  464. package/lib/PageHeader/component.json +112 -0
  465. package/lib/Pagination/component.json +181 -0
  466. package/lib/Pagination/index.js +1 -1
  467. package/lib/PasswordRules/component.json +105 -0
  468. package/lib/PasswordRules/index.d.ts +4 -4
  469. package/lib/PopConfirm/component.json +227 -0
  470. package/lib/PopConfirm/index.d.ts +1 -1
  471. package/lib/PopConfirm/index.js +1 -1
  472. package/lib/PopMenu/component.json +131 -0
  473. package/lib/PopMenu/hooks.d.ts +1 -1
  474. package/lib/PopMenu/index.js +1 -1
  475. package/lib/Popover/component.json +165 -0
  476. package/lib/Popover/index.js +1 -1
  477. package/lib/Progress/component.json +161 -0
  478. package/lib/Prompt/component.json +144 -0
  479. package/lib/Querying/component.json +96 -0
  480. package/lib/Querying/index.css +1 -1
  481. package/lib/Querying/index.d.ts +2 -2
  482. package/lib/Querying/index.js +1 -1
  483. package/lib/Querying/style/index.css +1 -1
  484. package/lib/QuickReply/component.json +129 -0
  485. package/lib/QuickReply/index.d.ts +1 -1
  486. package/lib/Radio/component.json +136 -0
  487. package/lib/RadioGroup/component.json +149 -0
  488. package/lib/RangeInput/component.json +198 -0
  489. package/lib/RangeInput/index.js +1 -1
  490. package/lib/Result/component.json +104 -0
  491. package/lib/ScrollBar/component.json +115 -0
  492. package/lib/Search/component.json +177 -0
  493. package/lib/Search/index.d.ts +1 -1
  494. package/lib/Select/component.json +244 -0
  495. package/lib/Select/index.js +1 -1
  496. package/lib/SelectInput/component.json +184 -0
  497. package/lib/Selector/component.json +203 -0
  498. package/lib/Selector/index.js +1 -1
  499. package/lib/Selector/interface.d.ts +1 -1
  500. package/lib/Selector/selectorMain/index.js +1 -1
  501. package/lib/Selector/selectorNode/index.js +1 -1
  502. package/lib/Selector/util.d.ts +2 -2
  503. package/lib/SelectorPicker/component.json +179 -0
  504. package/lib/SelectorPicker/index.d.ts +5 -5
  505. package/lib/SelectorPicker/index.js +1 -1
  506. package/lib/SingleBox/component.json +151 -0
  507. package/lib/SingleBox/index.d.ts +2 -2
  508. package/lib/Slider/component.json +181 -0
  509. package/lib/SortBox/component.json +108 -0
  510. package/lib/Status/component.json +104 -0
  511. package/lib/Stepper/component.json +129 -0
  512. package/lib/Stepper/index.d.ts +2 -2
  513. package/lib/Switch/component.json +207 -0
  514. package/lib/Switch/index.css +1 -1
  515. package/lib/Switch/index.d.ts +3 -2
  516. package/lib/Switch/index.js +1 -1
  517. package/lib/Switch/style/index.css +1 -1
  518. package/lib/Table/component.json +547 -0
  519. package/lib/Table/index.d.ts +2 -2
  520. package/lib/Table/index.js +1 -1
  521. package/lib/Table/interface.d.ts +6 -0
  522. package/lib/Tabs/component.json +227 -0
  523. package/lib/Tag/component.json +221 -0
  524. package/lib/Tag/index.css +1 -1
  525. package/lib/Tag/index.d.ts +1 -1
  526. package/lib/Tag/index.js +1 -1
  527. package/lib/Tag/style/index.css +1 -1
  528. package/lib/TextEditor/component.json +186 -0
  529. package/lib/TextEditor/index.d.ts +5 -5
  530. package/lib/TextField/component.json +290 -0
  531. package/lib/TextField/index.d.ts +2 -2
  532. package/lib/TimePicker/component.json +176 -0
  533. package/lib/Timeline/component.json +110 -0
  534. package/lib/Title/component.json +156 -0
  535. package/lib/ToggleButton/component.json +153 -0
  536. package/lib/Tooltip/component.json +176 -0
  537. package/lib/Tooltip/index.js +1 -1
  538. package/lib/Tooltip/interface.d.ts +14 -1
  539. package/lib/Tooltip/utils.js +1 -1
  540. package/lib/Transfer/component.json +157 -0
  541. package/lib/Tree/component.json +512 -0
  542. package/lib/Upload/component.json +450 -0
  543. package/lib/Utils/type.d.ts +0 -2
  544. package/lib/index.d.ts +2 -0
  545. package/lib/index.js +1 -1
  546. package/lib/locale/en_US.d.ts +361 -0
  547. package/lib/locale/en_US.js +2 -0
  548. package/lib/locale/index.d.ts +1 -723
  549. package/lib/locale/index2.js +2 -0
  550. package/lib/locale/zh_CN.d.ts +361 -0
  551. package/lib/locale/zh_CN.js +2 -0
  552. package/package.json +9 -3
  553. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  554. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  555. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  556. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const w=require("../_virtual/jsx-runtime.js"),o=require("react"),Q=require("@snack-kit/lib"),be=require("../Utils/snack-kit-shims.js"),S=require("./util.js"),Hr=require("./tableHead.js"),Or=require("./tableBody.js"),Lr=require("./tablePagination.js"),zr=require("./tableContainer/index.js"),Pr=require("./tableElement/index.js"),_r=require("../Loading/index.js"),Wr=require("../Hooks/useGlobalProps.js"),m=require("../GlobalContext/constant.js"),Vr=require("../GlobalContext/useFormatMessage.js"),Jr=require("./lang/index.js"),Ir=require("../ScrollBar/index.js");;/* empty css */const Br=require("../Utils/Hooks/useResizeObserver.js"),Kr=Lt=>{const s=Wr.default(Lt,"Table");be.GetBrowserClass()==="ie"&&(s.fixedColumn=!1);const{className:ze,style:zt,url:y,ctx:xe,emptyProps:Pe,method:H="Get",data:Ce,page:Pt=1,size:O=10,sizeArr:L=[10,20,50,100],search:_e,pagination:$=!0,paginationType:We="complex",flippingArrow:Ve,autoPagination:Je=!0,tableCell:Ie,requestCallback:Be,checkDefaultValue:X,setCheck:Se,radioDefaultValue:Y,setRadio:ye,refresh:_t,disabledArr:Z,disabledArrStatus:Ke,headData:Ue=[],sortTableRadio:Ge,sortTable:ee=!1,filter:Qe=!1,expandable:N,rowKey:k="key",check:z=!1,radio:P=!1,checkRememberPage:Wt=!1,align:te="left",paramsCallback:re,operate:ne,showColumns:q="inside",fixedTable:_=!0,fixedColumn:A=!0,dragColumn:De=!0,dragRow:W,formatter:Xe,lineHeight:V=48,lineWidth:ae=80,autoSize:Ye=!0,loadMore:D=!1,loadMoreRender:Ze,onClickMore:et,expandValue:tt,expandMultiple:rt,disabledExpand:nt,onExpand:at,defaultExpandAllRows:st=!1,onClickColumns:Te,beyondText:se=!0,tipMaxWidth:oe=500,loading:Re,defaultSortValue:ot,defaultFilterValue:Vt,searchKeyName:Jt,filterSearchCallback:It,onClickRow:lt,rowClassMapping:it,getPopupContainer:ct,onSort:we,onError:Bt,refreshInside:ut=!!s.url,checkCount:ft=!!s.check,onDragRow:dt,virtual:Ne=!1,columnsInfoEvent:ht,onRefreshCallback:le}=s,Kt=Vr.default("Table",Jr.default),mt=s.expirationTime?s.expirationTime===0?1e8:s.expirationTime:7,[J,gt]=o.useState(s.page!==void 0?s.page:1),[I,Ut]=o.useState(null),[pt,Gt]=o.useState(L),[ie,ke]=o.useState(0),[C,ve]=o.useState([]),[Qt,bt]=o.useState({}),[v,xt]=o.useState({}),[g,Xt]=o.useState(Object.values(ot||{})),[b,Yt]=o.useState(Object.keys(ot||{})),[ce,B]=o.useState("not"),[x,Ee]=o.useState({}),[je,Zt]=o.useState(),[E,er]=o.useState({}),[tr,rr]=o.useState({}),[K,nr]=o.useState([]),[U,Ct]=o.useState([]),[j,ar]=o.useState({...Vt}),[ue,F]=o.useState(!0),[St,sr]=o.useState(!1),Me=o.useRef(""),[or,M]=o.useState(),[lr,ir]=o.useState(0),[fe,cr]=o.useState({}),[yt,$e]=o.useState({}),[de,Dt]=o.useState(!1),[Tt,Rt]=o.useState([0,0]),[ur,wt]=o.useState(0),[Nt,fr]=o.useState(),h=o.useRef(null),qe=o.useRef(null),G=o.useRef(null),a=o.useRef({page:s.page!==void 0?s.page:1,headDataConfig:{}});Br.default({dom:qe.current,cb:()=>$r()}),a.current.loadMoreUrl=D&&y,a.current.search=_e,a.current.url=y,a.current.orderTypeArr=g,a.current.orderFieldArr=b,a.current.selectFilterCom=j,a.current.data=Ce,a.current.searchKeyName=Jt,a.current.filterSearchCallback=It,a.current.onError=Bt,a.current.sizeCom=I,a.current.virtual=Ne,a.current.expandable=N,o.useEffect(()=>()=>{a.current.isDestroy=!0,clearTimeout(a.current.reqTimer),clearTimeout(a.current.loadingTimer),Q.Cancel(Me.current)},[]),o.useEffect(()=>{Re!==void 0&&(clearTimeout(a.current.loadingTimer),a.current.loadingTimer=setTimeout(()=>{F(Re)},50))},[Re]),o.useEffect(()=>{sr(!!(D&&y))},[D,y]),o.useEffect(()=>{s.page!==void 0&&T(s.page)},[Pt]),o.useEffect(()=>{if(!Ye)return he(O);if(s.size)he(O);else if(h&&h.current){const e=kt();L.indexOf(e)===-1&&(L.unshift(e),L.sort((t,r)=>t-r),Gt([...L])),he(e)}},[O,Ye]),o.useEffect(()=>{s.headData!==void 0&&At(Ue,!1)},[Ue]),o.useEffect(()=>{if(Ce){a.current.historyData=[];const e=vt(),t=be.ArrayToObject(k,e);xt(t),M(Math.random())}},[Ce]),o.useEffect(()=>{a.current.initReq&&(T(1),a.current.historyData=[])},[_e,y]),o.useEffect(()=>{a.current.loadMoreUrl?(a.current.historyData=[],T(1)):M(Math.random())},[_t]),o.useEffect(()=>{clearTimeout(a.current.reqTimer),a.current.url&&Q.Cancel(Me.current),a.current.reqTimer=setTimeout(()=>{if(a.current.initReq=!0,a.current.url){let e={};if($){if(a.current.page===null||a.current.size===null)return;e.size=a.current.size,e.page=a.current.page}if(b.length>0&&(e.orderField=b,e.orderType=g,s.sortTableRadio&&(e.orderField=b[0],e.orderType=g[0])),j&&Object.keys(j).length>0){const r=br();Object.keys(r).length>0&&(e.filter=r)}a.current.search&&typeof a.current.search=="object"&&(e={...e,...a.current.search});const t={url:a.current.url,ctx:xe,method:H,data:e};if(H==="Get")if(re)re(t,r=>{const n=S.handGetReqParams(r);me({...r,url:n,ctx:xe,method:H})});else{const r=S.handGetReqParams(t);me({url:r,ctx:xe,method:H})}H==="Post"&&(re?re(t,r=>{me(r)}):me(t))}if(a.current.data){let e=vt();if(e=dr(e),$){if(a.current.page===null||a.current.size===null)return;const t=e.slice((a.current.page-1)*a.current.size,(a.current.page-1)*a.current.size+a.current.size);ge(t),ke(e.length)}else ge(e);s.loading===void 0&&F(!1)}},50)},[or]),o.useEffect(()=>{Y!==void 0&&Y!==je&&Zt(Y)},[Y]),o.useEffect(()=>{if(X){const e={};for(let t=0,r=X.length;t<r;t++){const n=X[t];e[n]=!0}Ee(e)}},[X]),o.useEffect(()=>{if(Z){const e={};for(let t=0,r=Z.length;t<r;t++){const n=Z[t];e[n]=!0}er(e)}},[Z]),o.useEffect(()=>{if(Object.keys(x).length===0)B("not");else{const e=Object.keys(Qt);if(e.length===0)return B("not");let t=e.length,r=0;for(let n=0,i=e.length;n<i;n++){const l=e[n];E[l]?t--:x[l]!==void 0&&r++}if(r===0)return B("not");if(r===t)return B("all");if(r<t)return B("half")}},[x,C,E]),o.useEffect(()=>{Le()},[Ne,C,N]),o.useEffect(()=>{Oe({target:h.current})});const kt=()=>{if(!h.current)return O;let e=h.current.clientHeight-48;s.loadMore&&(e-=V);const t=Math.floor(e/V);return t<1?O:t},he=e=>{a.current.size=e,Ut(e),M(Math.random())},T=e=>{a.current.page=e,gt(e),M(Math.random())},vt=()=>{let e=[];return a.current.data instanceof Array?e=a.current.data:e=a.current.data?.list,e},dr=e=>{const t=Object.keys(a.current.selectFilterCom||{}),r=[];for(let n=0,i=e.length;n<i;n++){const l=e[n];let u=!0;if(a.current.filterSearchCallback)u=a.current.filterSearchCallback(l,{search:a.current.search,filter:a.current.selectFilterCom});else{for(let c=0,f=t.length;c<f;c++){const d=t[c],p=a.current.selectFilterCom[d]||[],R=l[d];if(p.length>0&&p.indexOf(R)===-1){u=!1;continue}}u&&(u=hr(l))}u&&r.push(l)}return r},hr=e=>{let t;const r=a.current.search;if(r&&typeof r!="string"&&r.searchKey&&(t=r.searchKey),typeof t=="string"&&a.current.searchKeyName&&a.current.searchKeyName.length>0)for(let n=0,i=a.current.searchKeyName.length;n<i;n++){const l=a.current.searchKeyName[n],u=e[l];if(u&&u.indexOf&&u.indexOf(t)!==-1)return!0}else return!0;return!1},Et=()=>s.tableKey?s.tableKey:s.data?window.location.origin+window.location.pathname+window.location.hash:s.url?`${s.url}_${s.method||"Get"}`:"",jt=()=>s.rememberColumns===!1?{}:S.getLocalStorageSelectHead(Et(),mt),Mt=e=>{if(s.rememberColumns===!1)return;const t=jt(),r={headName:t.headName||{},headDataConfig:t.headDataConfig||{},storageTime:new Date().getTime(),validity:mt*(3600*24)};if(e.setFixed){const n=be.ArrayToObject("name",e.headArr||[]);for(let i=0,l=K.length;i<l;i++){const c=K[i].name||"";r.headName[c]=!1,n[c]&&(r.headName[c]=!0)}}e.setDrag&&(r.headDataConfig=e.headDataConfig||{}),S.setLocalStorageSelectHead(Et(),r)},mr=(e,t,r)=>{if(q===!1){t.push(e);return}if(s.rememberColumns===!1)e.selected&&t.push(e);else{const n=r.headName||{},i=e.name||"",l=n[i];l!==void 0?l&&t.push(e):e.selected&&t.push(e)}},$t=e=>{const t={label:Kt({id:"serial"}),selected:!0,width:s.radio||s.check||s.expandable?45:55,fixed:"left",align:"center",className:"table-serial-number",name:"table-serial-number",sort:!1,filter:!1,render:(r,n,i,l,u)=>Number(u)+1};s.serialNumber&&(typeof s.serialNumber=="boolean"?e.unshift(t):e.unshift({...t,...s.serialNumber}))},qt=e=>{ht&&ht(e)},At=(e,t)=>{const r=[],n=[],i={},l=jt();a.current.headDataConfig=l.headDataConfig||{};for(let u=0,c=e.length;u<c;u++){const f=e[u],d=f.name||"";typeof f.width=="number"&&(f.width=`${f.width}px`),t||(f.orderNum=u),mr(f,r,l),n.push(f),i[d]=f}t&&(r.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum)),n.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum))),$t(r),Fe(r),Ct(r),qt(r),nr(n),$e({...a.current.headDataConfig}),a.current.headDataJson=i},gr=()=>{let e=0;return s.check&&(e+=48),s.radio&&(s.check?e+=32:e+=48),s.expandable&&(s.check||s.radio?e+=32:e+=48),e},pr=()=>{let e=0;return(s.showColumns==="inside"||s.showColumns===void 0||s.dragRow)&&(e+=53),s.operate&&(s.operate.width?e+=S.getStringInNumber(s.operate.width):s.operate.operateBtnRender?s.dragRow?e+=145:e+=e===0?158:105:e+=ae),e},Ae=e=>{let t=e.width||"";const r=e.name||"",n=a.current.headDataConfig[r]&&a.current.headDataConfig[r].width;return n&&(t=n),t},Fe=e=>{const t=[],r=[];let n=0;const i=gr();n+=i;const l=pr();n+=l;const u={leftBol:!1,rightBol:!1};for(let c=0,f=e.length;c<f;c++){const d=e[c];let p=0;const R=Ae(d);R?(p=S.getStringInNumber(R),n+=p):n+=ae,d.fixed==="left"&&d.width&&t.push(d),d.fixed==="right"&&d.width&&r.push(d)}if(t.length>0){u.leftBol=!0;let c=i;for(let f=0,d=t.length;f<d;f++){const p=t[f];if(p.width){const R=Ae(p),Fr=S.getStringInNumber(R);p.paraui_left_width=c,c+=Fr,f===t.length-1?p.paraui_fixed_left_last=!0:p.paraui_fixed_left_last=!1}}}if(r.length>0){u.rightBol=!0;let c=l;for(let f=r.length-1;f>=0;f--){const d=r[f];if(d.width){const p=Ae(d),R=S.getStringInNumber(p);d.paraui_right_width=c,c+=R,f===0?d.paraui_fixed_right_first=!0:d.paraui_fixed_right_first=!1}}}ir(n),cr(u)},br=()=>{const e={},t=Object.keys(j),r=a.current.headDataJson||{};for(let n=0,i=t.length;n<i;n++){const l=t[n],u=j[l]||[];if(u.length===0)continue;const c=r[l];c&&c.filterRadio?e[l]=u[0]:e[l]=u}return e},me=async e=>{e.onCancelId=n=>{Me.current=n},s.loading===void 0&&F(!0);let{data:t,error:r}=await S.requestFunc(e);if(!a.current.isDestroy){if(r){if(s.loading===void 0&&F(!1),!r.__CANCEL__){let n=!1;if(a.current.onError&&(n=await a.current.onError(r)),!n)return;ve([]),ke(0),bt({})}return!1}Be?Be(t,n=>{n&&(n.data&&(n=n.data),Ft(n),s.loading===void 0&&F(!1))}):(t.data&&(t=t.data),Ft(t),s.loading===void 0&&F(!1))}},Ft=e=>{if(e.columns&&s.headData===void 0&&JSON.stringify(e.columns)!==JSON.stringify(tr)){rr(e.columns);const r=Object.keys(e.columns),n=[];for(let i=0,l=r.length;i<l;i++){const u=r[i],c=e.columns[u];c.name=u,c.label=c.displayName,c.filter=c.filterFlag,c.filterRadio=c.filterRadioFlag,c.sort=c.orderFlag,c.selected=c.selectedFlag,c.width=c.width,n.push(c)}At(n,!0)}if($)ge(e.list||[]),ke(e.total),e.page!==void 0&&e.page!==null&&(a.current.page=Number(e.page),gt(Number(e.page)));else{let t=[];e instanceof Array?t=e:t=e.list||[],ge(t)}},ge=e=>{if(a.current.loadMoreUrl){const r=a.current.historyData||[];r.length>0&&(e=[...r,...e])}const t=be.ArrayToObject(k,e);a.current.historyData=e,bt(t),ve(e),y&&xt({...v,...t})},xr=e=>{e!==void 0&&T(e),pe()},Cr=e=>{e!==void 0&&he(e),T(1),pe()},Sr=e=>{const t=e||Number(J)+1;T(t)},yr=(e,t)=>{const r=b.indexOf(t);if(r!==-1){const l=g[r];l==="asc"&&(g[r]="desc"),l==="desc"&&(b.splice(r,1),g.splice(r,1)),l===void 0&&(g[r]="asc")}else b.push(t),g.push("asc");let n=[...b],i=[...g];if(Ge){const l=n.indexOf(t);l!==-1&&(n=[n[l]],i=[i[l]])}Yt(n),Xt(i),a.current.orderFieldArr=n,a.current.orderTypeArr=i,we&&we({orderField:n,orderType:i}),a.current.loadMoreUrl&&(a.current.historyData=[],T(1)),M(Math.random())},He=e=>{s.checkDefaultValue===void 0&&Ee({...e});const t=Object.keys(e);if(Se){const r=[];for(let n=0,i=t.length;n<i;n++)v[t[n]]&&r.push(v[t[n]]);Se(t,r)}},Ht=(e,t)=>{const r=s.checkDefaultValue!==void 0?{...x}:x;for(let n=0,i=C.length;n<i;n++){const l=C[n][k];E[l]||(t?r[l]=!0:r[l]&&delete r[l])}He(r)},Dr=(e,t,r)=>{const n=s.checkDefaultValue!==void 0?{...x}:x;n[r]=t,n[r]===!1&&delete n[r],He(n)},Tr=(e,t)=>{ye&&ye(t,v[t])},pe=()=>{Wt||(Ee({}),He({}))},Ot=(e,t,r)=>{Fe(e),Ct(e),qt(e);const n={setFixed:!0,headArr:e};r&&(n.setDrag=!0,n.headDataConfig={}),Mt(n),Te&&Te(e,t)},Rr=(e,t,r)=>{if(t){a.current.headDataConfig={},$e({});const i=[],l=[...K];$t(l);for(let u=0,c=l.length;u<c;u++){const f=l[u];f&&f.selected&&i.push(f)}Ot(i,r,!0);return}e.sort((i,l)=>Number(i.orderNum)-Number(l.orderNum));const n=[...e];Ot(n,r)},wr=e=>{a.current.selectFilterCom=Q.DeepClone(e),ar(Q.DeepClone(e)),T(1)},Nr=(e,t)=>{const r=e.name||"";a.current.headDataConfig[r]={width:t.width},$e({...a.current.headDataConfig}),Fe([...U]),Mt({headDataConfig:a.current.headDataConfig,setDrag:!0})},kr=(e,t,r)=>{const n=e.splice(t,1)[0];return e.splice(r,0,n),e},vr=async e=>{const{oldIndex:t,newIndex:r}=e;if(t===r)return;const n=[...C||[]];kr(n,t,r),await dt?.(n,e)||ve(n)},Er=o.useMemo(()=>w.jsxRuntimeExports.jsx(Hr.TableHead,{orderTypeArr:g,orderFieldArr:b,sortTable:ee,filter:Qe,expandable:N,check:z,selectStatus:ce,radio:P,align:te,showList:K,headData:U,selectFilter:j,operate:ne,onRequestSort:yr,selectAll:Ht,changeShowList:Rr,changeFilter:wr,showColumns:q,rowKey:k,fixedTable:_,fixedColumn:A,posFixed:fe,beyondText:se,lineWidth:ae,dragColumn:De,dragRow:W,headDataConfig:yt,tipMaxWidth:oe,changeColumnWidth:Nr,getPopupContainer:ct}),[v,q,k,C,x,E,g,b,ee,Qe,N,z,ce,P,te,K,U,j,ne,Te,Ge,_,fe,se,A,ae,De,W,yt,ct,we,oe]),jr=o.useMemo(()=>w.jsxRuntimeExports.jsx(Or.TableBody,{url:y,emptyProps:Pe,changePage:Sr,loadMoreUrl:St,total:ie,page:J,currentRowsPerPage:I,loadState:ue,loadMore:D,loadMoreRender:Ze,onClickMore:et,rowData:C,headData:U,expandable:N,check:z,radio:P,checkJson:x,radioValue:je,disabledJson:E,disabledArrStatus:Ke,align:te,tableCell:Ie,operate:ne,showColumns:q,formatter:Xe,orderTypeArr:g,orderFieldArr:b,sortTable:ee,selectCheck:Dr,selectRadio:Tr,rowKey:k,expandMultiple:rt,expandValue:tt,disabledExpand:nt,onExpand:at,defaultExpandAllRows:st,onRefresh:()=>{le?.("empty"),M(Math.random()),pe()},posFixed:fe,beyondText:se,fixedColumn:A,fixedTable:_,onClickRow:lt,rowClassMapping:it,tipMaxWidth:oe,lineHeight:V,dragRow:W,onDragRow:vr,virtualIndex:Tt,virtual:de}),[q,Xe,k,C,U,N,z,P,x,ee,g,b,je,E,te,Ie,ne,ye,Se,v,D,Ze,et,ie,J,I,St,tt,rt,nt,at,st,ue,Pe,y,Ke,fe,se,_,A,lt,it,oe,V,W,dt,Tt,Ne,de,le]),Mr=o.useMemo(()=>{if(!(a.current.page===null||a.current.size===null||D))return $&&w.jsxRuntimeExports.jsx(Lr.TableHead,{paginationType:We,flippingArrow:Ve,autoPagination:Je,total:ie,page:J,currentRowsPerPage:I,rowsPerPage:pt,changePage:xr,changeRowsPerPage:Cr,refreshInside:ut,checkCount:ft,onRefresh:()=>{le?.("refresh"),M(Math.random()),pe()},selectStatus:ce,selectAll:Ht,checkNumber:Object.keys(x).length,currentPageTotal:C.length,resizePaginationLine:Nt})},[ie,J,I,pt,$,D,Je,We,Ve,ut,ft,ce,C,x,E,v,Nt,le]),Oe=e=>{const t=qe.current,r=e.target;if(!(!t||!r)&&(t.classList.remove("table-scroll-left","table-scroll-right","table-scroll-middle"),!(r.scrollWidth<=r.clientWidth))){if(r.scrollLeft===0){t.classList.add("table-scroll-left");return}if(r.scrollLeft+r.clientWidth===r.scrollWidth){t.classList.add("table-scroll-right");return}t.classList.add("table-scroll-middle")}},$r=()=>{Le(),Oe({target:h.current}),fr(Q.UUID())},Le=()=>{const e=kt(),t=10;if(a.current.virtual&&!a.current.expandable&&Number(a.current.sizeCom)>e+2*t){if(Dt(!0),!G.current||!h.current)return;const r=G.current.clientHeight-h.current.clientHeight;h.current.scrollTop>=r&&(h.current.scrollTop=r,wt(r)),wt(h.current.scrollTop);const n=h.current,i=Math.floor(n.scrollTop/V),l=i+e+t;Rt([i,l])}else Rt([0,0]),Dt(!1)},qr=()=>!de||!G.current||!h.current?null:w.jsxRuntimeExports.jsx(Ir.default,{style:{position:"absolute",top:0,right:0,zIndex:100},scrollTotalLength:G.current.clientHeight-h.current.clientHeight,scrollLength:ur,onScroll:e=>{h.current&&(h.current.scrollTop=e)}}),Ar=()=>{let e=`${m.$prefixCls}-table`;return q==="inside"&&(e+=` ${m.$prefixCls}-table-columns-inside`),$&&(e+=` ${m.$prefixCls}-table-pagination`),D&&(e+=` ${m.$prefixCls}-table-load-more`),_&&(e+=` ${m.$prefixCls}-table-fixed-table`),A&&(e+=` ${m.$prefixCls}-table-fixed-cloumn`),De&&(e+=` ${m.$prefixCls}-table-drag-column`),W&&(e+=` ${m.$prefixCls}-table-drag-row`),z&&(e+=` ${m.$prefixCls}-table-check`),P&&(e+=` ${m.$prefixCls}-table-radio`),N&&(e+=` ${m.$prefixCls}-table-expandable`),C.length===0&&(e+=` ${m.$prefixCls}-table-no-data`),ue&&(e+=` ${m.$prefixCls}-table-load`),de&&(e+=` ${m.$prefixCls}-virtual`),ze&&(e+=` ${ze}`),e};return w.jsxRuntimeExports.jsxs("div",{className:Ar(),style:zt,ref:qe,children:[w.jsxRuntimeExports.jsx(zr.TableContainer,{className:"table-contain",cRef:h,onScroll:e=>{Le(),Oe(e)},children:w.jsxRuntimeExports.jsxs(Pr.TableElement,{cRef:G,fixedColumn:A,style:{minWidth:`${lr}px`},children:[Er,jr]})}),qr(),ue&&w.jsxRuntimeExports.jsx(_r.Loading,{}),Mr]})};exports.default=Kr;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const w=require("../_virtual/jsx-runtime.js"),o=require("react"),Q=require("@snack-kit/lib"),Ce=require("../Utils/snack-kit-shims.js"),S=require("./util.js"),Hr=require("./tableHead.js"),zr=require("./tableBody.js"),Or=require("./tablePagination.js"),Pr=require("./tableContainer/index.js"),Lr=require("./tableElement/index.js"),_r=require("../Loading/index.js"),Wr=require("../Hooks/useGlobalProps.js"),m=require("../GlobalContext/constant.js"),Vr=require("../GlobalContext/useFormatMessage.js"),Jr=require("./lang/index.js"),Ir=require("../ScrollBar/index.js");;/* empty css */const Br=require("../Hooks/useResizeObserver.js"),Kr=X=>{const s=Wr.default(X,"Table");Ce.GetBrowserClass()==="ie"&&(s.fixedColumn=!1);const{className:Le,style:Pt,url:y,ctx:xe,emptyProps:_e,method:z="Get",data:Se,page:Lt=1,size:O=10,sizeArr:P=[10,20,50,100],search:We,pagination:$=!0,paginationType:Ve="complex",flippingArrow:Je,autoPagination:Ie=!0,tableCell:Be,requestCallback:Ke,checkDefaultValue:Y,setCheck:ye,radioDefaultValue:Z,setRadio:De,refresh:_t,disabledArr:ee,disabledArrStatus:Ue,headData:Ge=[],sortTableRadio:Qe,sortTable:te=!1,filter:Xe=!1,expandable:N,rowKey:k="key",check:L=!1,radio:_=!1,checkRememberPage:Wt=!1,align:re="left",paramsCallback:ne,operate:ae,showColumns:q="inside",fixedTable:W=!0,fixedColumn:A=!0,dragColumn:Te=!0,dragRow:V,formatter:Ye,lineHeight:J=48,lineWidth:se=80,autoSize:Ze=!0,loadMore:D=!1,loadMoreRender:et,onClickMore:tt,expandValue:rt,expandMultiple:nt,disabledExpand:at,onExpand:st,defaultExpandAllRows:ot=!1,onClickColumns:Re,beyondText:oe=!0,tipMaxWidth:le=500,loading:we,defaultSortValue:lt,defaultFilterValue:Vt,searchKeyName:Jt,filterSearchCallback:It,onClickRow:it,rowClassMapping:ct,getPopupContainer:ut,onSort:Ne,onError:Bt,refreshInside:ft=!!s.url,checkCount:dt=!!s.check,onDragRow:ht,virtual:ke=!1,columnsInfoEvent:mt,onRefreshCallback:ie}=s,Kt=Vr.default("Table",Jr.default),gt=s.expirationTime?s.expirationTime===0?1e8:s.expirationTime:7,[I,pt]=o.useState(s.page!==void 0?s.page:1),[F,Ut]=o.useState(null),[bt,Gt]=o.useState(P),[ce,ve]=o.useState(0),[x,Ee]=o.useState([]),[Qt,Ct]=o.useState({}),[v,xt]=o.useState({}),[g,Xt]=o.useState(Object.values(lt||{})),[b,Yt]=o.useState(Object.keys(lt||{})),[ue,B]=o.useState("not"),[C,je]=o.useState({}),[Me,Zt]=o.useState(),[E,er]=o.useState({}),[tr,rr]=o.useState({}),[K,nr]=o.useState([]),[U,St]=o.useState([]),[j,ar]=o.useState({...Vt}),[fe,H]=o.useState(!0),[yt,sr]=o.useState(!1),$e=o.useRef(""),[or,M]=o.useState(),[lr,ir]=o.useState(0),[de,cr]=o.useState({}),[Dt,qe]=o.useState({}),[he,Tt]=o.useState(!1),[Rt,wt]=o.useState([0,0]),[ur,Nt]=o.useState(0),[kt,fr]=o.useState(),h=o.useRef(null),Ae=o.useRef(null),G=o.useRef(null),n=o.useRef({page:s.page!==void 0?s.page:1,headDataConfig:{}});Br.default({dom:Ae.current,cb:()=>$r()}),n.current.loadMoreUrl=D&&y,n.current.search=We,n.current.url=y,n.current.orderTypeArr=g,n.current.orderFieldArr=b,n.current.selectFilterCom=j,n.current.data=Se,n.current.searchKeyName=Jt,n.current.filterSearchCallback=It,n.current.onError=Bt,n.current.sizeCom=F,n.current.virtual=ke,n.current.expandable=N,o.useEffect(()=>()=>{n.current.isDestroy=!0,clearTimeout(n.current.reqTimer),clearTimeout(n.current.loadingTimer),Q.Cancel($e.current)},[]),o.useEffect(()=>{we!==void 0&&(clearTimeout(n.current.loadingTimer),n.current.loadingTimer=setTimeout(()=>{H(we)},50))},[we]),o.useEffect(()=>{sr(!!(D&&y))},[D,y]),o.useEffect(()=>{s.page!==void 0&&T(s.page)},[Lt]),o.useEffect(()=>{if(!Ze)return me(O);if(s.size)me(O);else if(h&&h.current){const e=vt();P.indexOf(e)===-1&&(P.unshift(e),P.sort((t,r)=>t-r),Gt([...P])),me(e)}},[O,Ze]),o.useEffect(()=>{s.headData!==void 0&&Ft(Ge,!1)},[Ge]),o.useEffect(()=>{if(Se){n.current.historyData=[];const e=Et(),t=Ce.ArrayToObject(k,e);xt(t),M(Math.random())}},[Se]),o.useEffect(()=>{n.current.initReq&&(T(1),n.current.historyData=[])},[We,y]),o.useEffect(()=>{n.current.loadMoreUrl?(n.current.historyData=[],T(1)):M(Math.random())},[_t]),o.useEffect(()=>{clearTimeout(n.current.reqTimer),n.current.url&&Q.Cancel($e.current),n.current.reqTimer=setTimeout(()=>{if(n.current.initReq=!0,n.current.url){let e={};if($){if(n.current.page===null||n.current.size===null)return;e.size=n.current.size,e.page=n.current.page}if(b.length>0&&(e.orderField=b,e.orderType=g,s.sortTableRadio&&(e.orderField=b[0],e.orderType=g[0])),j&&Object.keys(j).length>0){const r=br();Object.keys(r).length>0&&(e.filter=r)}n.current.search&&typeof n.current.search=="object"&&(e={...e,...n.current.search});const t={url:n.current.url,ctx:xe,method:z,data:e};if(z==="Get")if(ne)ne(t,r=>{const a=S.handGetReqParams(r);ge({...r,url:a,ctx:xe,method:z})});else{const r=S.handGetReqParams(t);ge({url:r,ctx:xe,method:z})}z==="Post"&&(ne?ne(t,r=>{ge(r)}):ge(t))}if(n.current.data){let e=Et();if(e=dr(e),$){if(n.current.page===null||n.current.size===null)return;const t=e.slice((n.current.page-1)*n.current.size,(n.current.page-1)*n.current.size+n.current.size);pe(t),ve(e.length)}else pe(e);s.loading===void 0&&H(!1)}},50)},[or]),o.useEffect(()=>{Z!==void 0&&Z!==Me&&Zt(Z)},[Z]),o.useEffect(()=>{if(Y){const e={};for(let t=0,r=Y.length;t<r;t++){const a=Y[t];e[a]=!0}je(e)}},[Y]),o.useEffect(()=>{if(ee){const e={};for(let t=0,r=ee.length;t<r;t++){const a=ee[t];e[a]=!0}er(e)}},[ee]),o.useEffect(()=>{if(Object.keys(C).length===0)B("not");else{const e=Object.keys(Qt);if(e.length===0)return B("not");let t=e.length,r=0;for(let a=0,i=e.length;a<i;a++){const l=e[a];E[l]?t--:C[l]!==void 0&&r++}if(r===0)return B("not");if(r===t)return B("all");if(r<t)return B("half")}},[C,x,E]),o.useEffect(()=>{Pe()},[ke,x,N]),o.useEffect(()=>{Oe({target:h.current})});const vt=()=>{if(!h.current)return O;let e=h.current.clientHeight-48;s.loadMore&&(e-=J);const t=Math.floor(e/J);return t<1?O:t},me=e=>{n.current.size=e,Ut(e),M(Math.random()),X.onPageChange?.(n.current.page??1,e)},T=e=>{n.current.page=e,pt(e),M(Math.random()),X.onPageChange?.(e,n.current.size??F??X.size??10)},Et=()=>{let e=[];return n.current.data instanceof Array?e=n.current.data:e=n.current.data?.list,e},dr=e=>{const t=Object.keys(n.current.selectFilterCom||{}),r=[];for(let a=0,i=e.length;a<i;a++){const l=e[a];let u=!0;if(n.current.filterSearchCallback)u=n.current.filterSearchCallback(l,{search:n.current.search,filter:n.current.selectFilterCom});else{for(let c=0,f=t.length;c<f;c++){const d=t[c],p=n.current.selectFilterCom[d]||[],R=l[d];if(p.length>0&&p.indexOf(R)===-1){u=!1;continue}}u&&(u=hr(l))}u&&r.push(l)}return r},hr=e=>{let t;const r=n.current.search;if(r&&typeof r!="string"&&r.searchKey&&(t=r.searchKey),typeof t=="string"&&n.current.searchKeyName&&n.current.searchKeyName.length>0)for(let a=0,i=n.current.searchKeyName.length;a<i;a++){const l=n.current.searchKeyName[a],u=e[l];if(u&&u.indexOf&&u.indexOf(t)!==-1)return!0}else return!0;return!1},jt=()=>s.tableKey?s.tableKey:s.data?window.location.origin+window.location.pathname+window.location.hash:s.url?`${s.url}_${s.method||"Get"}`:"",Mt=()=>s.rememberColumns===!1?{}:S.getLocalStorageSelectHead(jt(),gt),$t=e=>{if(s.rememberColumns===!1)return;const t=Mt(),r={headName:t.headName||{},headDataConfig:t.headDataConfig||{},storageTime:new Date().getTime(),validity:gt*(3600*24)};if(e.setFixed){const a=Ce.ArrayToObject("name",e.headArr||[]);for(let i=0,l=K.length;i<l;i++){const c=K[i].name||"";r.headName[c]=!1,a[c]&&(r.headName[c]=!0)}}e.setDrag&&(r.headDataConfig=e.headDataConfig||{}),S.setLocalStorageSelectHead(jt(),r)},mr=(e,t,r)=>{if(q===!1){t.push(e);return}if(s.rememberColumns===!1)e.selected&&t.push(e);else{const a=r.headName||{},i=e.name||"",l=a[i];l!==void 0?l&&t.push(e):e.selected&&t.push(e)}},qt=e=>{const t={label:Kt({id:"serial"}),selected:!0,width:s.radio||s.check||s.expandable?45:55,fixed:"left",align:"center",className:"table-serial-number",name:"table-serial-number",sort:!1,filter:!1,render:(r,a,i,l,u)=>Number(u)+1};s.serialNumber&&(typeof s.serialNumber=="boolean"?e.unshift(t):e.unshift({...t,...s.serialNumber}))},At=e=>{mt&&mt(e)},Ft=(e,t)=>{const r=[],a=[],i={},l=Mt();n.current.headDataConfig=l.headDataConfig||{};for(let u=0,c=e.length;u<c;u++){const f=e[u],d=f.name||"";typeof f.width=="number"&&(f.width=`${f.width}px`),t||(f.orderNum=u),mr(f,r,l),a.push(f),i[d]=f}t&&(r.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum)),a.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum))),qt(r),He(r),St(r),At(r),nr(a),qe({...n.current.headDataConfig}),n.current.headDataJson=i},gr=()=>{let e=0;return s.check&&(e+=48),s.radio&&(s.check?e+=32:e+=48),s.expandable&&(s.check||s.radio?e+=32:e+=48),e},pr=()=>{let e=0;return(s.showColumns==="inside"||s.showColumns===void 0||s.dragRow)&&(e+=53),s.operate&&(s.operate.width?e+=S.getStringInNumber(s.operate.width):s.operate.operateBtnRender?s.dragRow?e+=145:e+=e===0?158:105:e+=se),e},Fe=e=>{let t=e.width||"";const r=e.name||"",a=n.current.headDataConfig[r]&&n.current.headDataConfig[r].width;return a&&(t=a),t},He=e=>{const t=[],r=[];let a=0;const i=gr();a+=i;const l=pr();a+=l;const u={leftBol:!1,rightBol:!1};for(let c=0,f=e.length;c<f;c++){const d=e[c];let p=0;const R=Fe(d);R?(p=S.getStringInNumber(R),a+=p):a+=se,d.fixed==="left"&&d.width&&t.push(d),d.fixed==="right"&&d.width&&r.push(d)}if(t.length>0){u.leftBol=!0;let c=i;for(let f=0,d=t.length;f<d;f++){const p=t[f];if(p.width){const R=Fe(p),Fr=S.getStringInNumber(R);p.paraui_left_width=c,c+=Fr,f===t.length-1?p.paraui_fixed_left_last=!0:p.paraui_fixed_left_last=!1}}}if(r.length>0){u.rightBol=!0;let c=l;for(let f=r.length-1;f>=0;f--){const d=r[f];if(d.width){const p=Fe(d),R=S.getStringInNumber(p);d.paraui_right_width=c,c+=R,f===0?d.paraui_fixed_right_first=!0:d.paraui_fixed_right_first=!1}}}ir(a),cr(u)},br=()=>{const e={},t=Object.keys(j),r=n.current.headDataJson||{};for(let a=0,i=t.length;a<i;a++){const l=t[a],u=j[l]||[];if(u.length===0)continue;const c=r[l];c&&c.filterRadio?e[l]=u[0]:e[l]=u}return e},ge=async e=>{e.onCancelId=a=>{$e.current=a},s.loading===void 0&&H(!0);let{data:t,error:r}=await S.requestFunc(e);if(!n.current.isDestroy){if(r){if(s.loading===void 0&&H(!1),!r.__CANCEL__){let a=!1;if(n.current.onError&&(a=await n.current.onError(r)),!a)return;Ee([]),ve(0),Ct({})}return!1}Ke?Ke(t,a=>{a&&(a.data&&(a=a.data),Ht(a),s.loading===void 0&&H(!1))}):(t.data&&(t=t.data),Ht(t),s.loading===void 0&&H(!1))}},Ht=e=>{if(e.columns&&s.headData===void 0&&JSON.stringify(e.columns)!==JSON.stringify(tr)){rr(e.columns);const r=Object.keys(e.columns),a=[];for(let i=0,l=r.length;i<l;i++){const u=r[i],c=e.columns[u];c.name=u,c.label=c.displayName,c.filter=c.filterFlag,c.filterRadio=c.filterRadioFlag,c.sort=c.orderFlag,c.selected=c.selectedFlag,c.width=c.width,a.push(c)}Ft(a,!0)}if($)pe(e.list||[]),ve(e.total),e.page!==void 0&&e.page!==null&&(n.current.page=Number(e.page),pt(Number(e.page)));else{let t=[];e instanceof Array?t=e:t=e.list||[],pe(t)}},pe=e=>{if(n.current.loadMoreUrl){const r=n.current.historyData||[];r.length>0&&(e=[...r,...e])}const t=Ce.ArrayToObject(k,e);n.current.historyData=e,Ct(t),Ee(e),y&&xt({...v,...t})},Cr=e=>{e!==void 0&&T(e),be()},xr=e=>{e!==void 0&&me(e),T(1),be()},Sr=e=>{const t=e||Number(I)+1;T(t)},yr=(e,t)=>{const r=b.indexOf(t);if(r!==-1){const l=g[r];l==="asc"&&(g[r]="desc"),l==="desc"&&(b.splice(r,1),g.splice(r,1)),l===void 0&&(g[r]="asc")}else b.push(t),g.push("asc");let a=[...b],i=[...g];if(Qe){const l=a.indexOf(t);l!==-1&&(a=[a[l]],i=[i[l]])}Yt(a),Xt(i),n.current.orderFieldArr=a,n.current.orderTypeArr=i,Ne&&Ne({orderField:a,orderType:i}),n.current.loadMoreUrl&&(n.current.historyData=[],T(1)),M(Math.random())},ze=e=>{s.checkDefaultValue===void 0&&je({...e});const t=Object.keys(e);if(ye){const r=[];for(let a=0,i=t.length;a<i;a++)v[t[a]]&&r.push(v[t[a]]);ye(t,r)}},zt=(e,t)=>{const r=s.checkDefaultValue!==void 0?{...C}:C;for(let a=0,i=x.length;a<i;a++){const l=x[a][k];E[l]||(t?r[l]=!0:r[l]&&delete r[l])}ze(r)},Dr=(e,t,r)=>{const a=s.checkDefaultValue!==void 0?{...C}:C;a[r]=t,a[r]===!1&&delete a[r],ze(a)},Tr=(e,t)=>{De&&De(t,v[t])},be=()=>{Wt||(je({}),ze({}))},Ot=(e,t,r)=>{He(e),St(e),At(e);const a={setFixed:!0,headArr:e};r&&(a.setDrag=!0,a.headDataConfig={}),$t(a),Re&&Re(e,t)},Rr=(e,t,r)=>{if(t){n.current.headDataConfig={},qe({});const i=[],l=[...K];qt(l);for(let u=0,c=l.length;u<c;u++){const f=l[u];f&&f.selected&&i.push(f)}Ot(i,r,!0);return}e.sort((i,l)=>Number(i.orderNum)-Number(l.orderNum));const a=[...e];Ot(a,r)},wr=e=>{n.current.selectFilterCom=Q.DeepClone(e),ar(Q.DeepClone(e)),T(1)},Nr=(e,t)=>{const r=e.name||"";n.current.headDataConfig[r]={width:t.width},qe({...n.current.headDataConfig}),He([...U]),$t({headDataConfig:n.current.headDataConfig,setDrag:!0})},kr=(e,t,r)=>{const a=e.splice(t,1)[0];return e.splice(r,0,a),e},vr=async e=>{const{oldIndex:t,newIndex:r}=e;if(t===r)return;const a=[...x||[]];kr(a,t,r),await ht?.(a,e)||Ee(a)},Er=o.useMemo(()=>w.jsxRuntimeExports.jsx(Hr.TableHead,{orderTypeArr:g,orderFieldArr:b,sortTable:te,filter:Xe,expandable:N,check:L,selectStatus:ue,radio:_,align:re,showList:K,headData:U,selectFilter:j,operate:ae,onRequestSort:yr,selectAll:zt,changeShowList:Rr,changeFilter:wr,showColumns:q,rowKey:k,fixedTable:W,fixedColumn:A,posFixed:de,beyondText:oe,lineWidth:se,dragColumn:Te,dragRow:V,headDataConfig:Dt,tipMaxWidth:le,changeColumnWidth:Nr,getPopupContainer:ut}),[v,q,k,x,C,E,g,b,te,Xe,N,L,ue,_,re,K,U,j,ae,Re,Qe,W,de,oe,A,se,Te,V,Dt,ut,Ne,le]),jr=o.useMemo(()=>w.jsxRuntimeExports.jsx(zr.TableBody,{url:y,emptyProps:_e,changePage:Sr,loadMoreUrl:yt,total:ce,page:I,currentRowsPerPage:F,loadState:fe,loadMore:D,loadMoreRender:et,onClickMore:tt,rowData:x,headData:U,expandable:N,check:L,radio:_,checkJson:C,radioValue:Me,disabledJson:E,disabledArrStatus:Ue,align:re,tableCell:Be,operate:ae,showColumns:q,formatter:Ye,orderTypeArr:g,orderFieldArr:b,sortTable:te,selectCheck:Dr,selectRadio:Tr,rowKey:k,expandMultiple:nt,expandValue:rt,disabledExpand:at,onExpand:st,defaultExpandAllRows:ot,onRefresh:()=>{ie?.("empty"),M(Math.random()),be()},posFixed:de,beyondText:oe,fixedColumn:A,fixedTable:W,onClickRow:it,rowClassMapping:ct,tipMaxWidth:le,lineHeight:J,dragRow:V,onDragRow:vr,virtualIndex:Rt,virtual:he}),[q,Ye,k,x,U,N,L,_,C,te,g,b,Me,E,re,Be,ae,De,ye,v,D,et,tt,ce,I,F,yt,rt,nt,at,st,ot,fe,_e,y,Ue,de,oe,W,A,it,ct,le,J,V,ht,Rt,ke,he,ie]),Mr=o.useMemo(()=>{if(!(n.current.page===null||n.current.size===null||D))return $&&w.jsxRuntimeExports.jsx(Or.TableHead,{paginationType:Ve,flippingArrow:Je,autoPagination:Ie,total:ce,page:I,currentRowsPerPage:F,rowsPerPage:bt,changePage:Cr,changeRowsPerPage:xr,refreshInside:ft,checkCount:dt,onRefresh:()=>{ie?.("refresh"),M(Math.random()),be()},selectStatus:ue,selectAll:zt,checkNumber:Object.keys(C).length,currentPageTotal:x.length,resizePaginationLine:kt})},[ce,I,F,bt,$,D,Ie,Ve,Je,ft,dt,ue,x,C,E,v,kt,ie]),Oe=e=>{const t=Ae.current,r=e.target;if(!(!t||!r)&&(t.classList.remove("table-scroll-left","table-scroll-right","table-scroll-middle"),!(r.scrollWidth<=r.clientWidth))){if(r.scrollLeft===0){t.classList.add("table-scroll-left");return}if(r.scrollLeft+r.clientWidth===r.scrollWidth){t.classList.add("table-scroll-right");return}t.classList.add("table-scroll-middle")}},$r=()=>{Pe(),Oe({target:h.current}),fr(Q.UUID())},Pe=()=>{const e=vt(),t=10;if(n.current.virtual&&!n.current.expandable&&Number(n.current.sizeCom)>e+2*t){if(Tt(!0),!G.current||!h.current)return;const r=G.current.clientHeight-h.current.clientHeight;h.current.scrollTop>=r&&(h.current.scrollTop=r,Nt(r)),Nt(h.current.scrollTop);const a=h.current,i=Math.floor(a.scrollTop/J),l=i+e+t;wt([i,l])}else wt([0,0]),Tt(!1)},qr=()=>!he||!G.current||!h.current?null:w.jsxRuntimeExports.jsx(Ir.default,{style:{position:"absolute",top:0,right:0,zIndex:100},scrollTotalLength:G.current.clientHeight-h.current.clientHeight,scrollLength:ur,onScroll:e=>{h.current&&(h.current.scrollTop=e)}}),Ar=()=>{let e=`${m.$prefixCls}-table`;return q==="inside"&&(e+=` ${m.$prefixCls}-table-columns-inside`),$&&(e+=` ${m.$prefixCls}-table-pagination`),D&&(e+=` ${m.$prefixCls}-table-load-more`),W&&(e+=` ${m.$prefixCls}-table-fixed-table`),A&&(e+=` ${m.$prefixCls}-table-fixed-cloumn`),Te&&(e+=` ${m.$prefixCls}-table-drag-column`),V&&(e+=` ${m.$prefixCls}-table-drag-row`),L&&(e+=` ${m.$prefixCls}-table-check`),_&&(e+=` ${m.$prefixCls}-table-radio`),N&&(e+=` ${m.$prefixCls}-table-expandable`),x.length===0&&(e+=` ${m.$prefixCls}-table-no-data`),fe&&(e+=` ${m.$prefixCls}-table-load`),he&&(e+=` ${m.$prefixCls}-virtual`),Le&&(e+=` ${Le}`),e};return w.jsxRuntimeExports.jsxs("div",{className:Ar(),style:Pt,ref:Ae,children:[w.jsxRuntimeExports.jsx(Pr.TableContainer,{className:"table-contain",cRef:h,onScroll:e=>{Pe(),Oe(e)},children:w.jsxRuntimeExports.jsxs(Lr.TableElement,{cRef:G,fixedColumn:A,style:{minWidth:`${lr}px`},children:[Er,jr]})}),qr(),fe&&w.jsxRuntimeExports.jsx(_r.Loading,{}),Mr]})},Ur=Kr;exports.default=Ur;
2
2
  //# sourceMappingURL=index.js.map
@@ -324,6 +324,12 @@ export interface TableProps<T = unknown> extends TableHeadBodyPublicProps<T> {
324
324
  * 内部刷新事件回调
325
325
  * */
326
326
  onRefreshCallback?: (type: 'empty' | 'refresh') => void;
327
+ /**
328
+ * 分页变化回调(DEFECT-003 修复)。本地 data 模式 + 远程 url 模式都触发;
329
+ * 用户切换页码或每页条数时调用——参数为新的 (page, size)。
330
+ * 未传时不影响任何现有行为;与远程模式 requestCallback 互不干扰,可同时使用。
331
+ * */
332
+ onPageChange?: (page: number, size: number) => void;
327
333
  }
328
334
  export interface ExpandableRowItem {
329
335
  /** 当前嵌套行id */
@@ -0,0 +1,227 @@
1
+ {
2
+ "name": "Tabs",
3
+ "category": "Navigation",
4
+ "description": "选项卡切换组件。**所有 mode 都渲染 data[].content**(src/Tabs/index.tsx:220 把 content 渲染到 TabPane 内部)——不存在『line/track 只渲染 tab 头』的差异,请放心把面板体放进 data[].content。",
5
+ "semantic": {
6
+ "intent": [
7
+ "内容切换",
8
+ "视图分组",
9
+ "平级导航"
10
+ ],
11
+ "useCases": [
12
+ "详情页多维度展示",
13
+ "配置面板",
14
+ "同级功能切换"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "line": {
20
+ "meaning": "线条型 (默认) — 底部下划线指示当前激活"
21
+ },
22
+ "card": {
23
+ "meaning": "卡片型 — tab 头本身像独立卡片"
24
+ },
25
+ "editable-card": {
26
+ "meaning": "可编辑卡片型 — 自带新增 + 关闭按钮,与 editable=true 配套"
27
+ },
28
+ "track": {
29
+ "meaning": "轨道滑块型 — segmented control 风格"
30
+ },
31
+ "card-container": {
32
+ "meaning": "页签容器 — 整个面板被卡片包裹"
33
+ }
34
+ },
35
+ "states": [
36
+ "active",
37
+ "disabled"
38
+ ],
39
+ "idealProps": {
40
+ "data": {
41
+ "type": "TabProps<K>[]",
42
+ "itemSchema": {
43
+ "label": { "type": "ReactNode", "required": true, "description": "tab 头文案" },
44
+ "content": { "type": "ReactNode", "description": "面板内容,所有 mode 都渲染" },
45
+ "value": { "type": "K extends React.Key", "required": true, "description": "唯一标识,与 Tabs value/onChange 对应" },
46
+ "disabled": { "type": "boolean", "description": "是否禁用该 tab" },
47
+ "closable": { "type": "boolean", "description": "是否显示关闭按钮(editable 模式)" },
48
+ "disabledTooltip": { "type": "TooltipProps", "description": "hover 禁用 tab 时显示的 tooltip 配置" },
49
+ "showHelp": { "type": "boolean", "description": "是否显示帮助图标" },
50
+ "helpProps": { "type": "HelpProps", "description": "帮助图标配置" }
51
+ },
52
+ "description": "标签页配置数组。**每项 TabProps 完整字段**:label(tab 头文案)/ content(**面板内容,所有 mode 都渲染**)/ value(唯一 key,类型 K)/ disabled / closable / disabledTooltip(TooltipProps,hover 禁用 tab 时显示)/ showHelp / helpProps。content 不要外部用 `{activeKey === 'x' && <Body />}` 二次条件渲染——直接放在 data[].content 里"
53
+ },
54
+ "value": {
55
+ "type": "K extends React.Key",
56
+ "description": "当前激活的 tab value(受控)。Tabs 是泛型组件 `Tabs<K>`:默认 K = string,需传 string value 时业务端可写 `<Tabs<string>>`;data[].value 与 value 同类型"
57
+ },
58
+ "mode": {
59
+ "type": "enum",
60
+ "values": [
61
+ "line",
62
+ "card",
63
+ "editable-card",
64
+ "track",
65
+ "card-container"
66
+ ],
67
+ "default": "line",
68
+ "description": "外观模式 5 种取值(src/Tabs/index.tsx:19 TabsType);`type` prop 是 mode 的别名(src 优先 type ?? mode),二选一传"
69
+ },
70
+ "type": {
71
+ "type": "enum",
72
+ "values": [
73
+ "line",
74
+ "card",
75
+ "editable-card",
76
+ "track",
77
+ "card-container"
78
+ ],
79
+ "description": "mode 的别名;与 mode 二选一即可"
80
+ },
81
+ "size": {
82
+ "type": "'small' | 'medium' | 'large'",
83
+ "values": ["small", "medium", "large"],
84
+ "description": "尺寸"
85
+ },
86
+ "onChange": {
87
+ "type": "function",
88
+ "signature": "(activeKey: K, item?: TabProps<K>) => void",
89
+ "description": "切换面板的回调。**真实 2 参(activeKey + item)**——首参名 activeKey 不是 value;不带 event 第三参(区别于 antd)。K 默认 string;通过 Tabs<K> 收紧"
90
+ },
91
+ "onEdit": {
92
+ "type": "function",
93
+ "signature": "(item: TabProps<K>, event?: React.MouseEvent | React.KeyboardEvent | string | React.Key, action?: 'add' | 'remove') => void",
94
+ "description": "新增/删除面板的回调(3 参:item / event / action)。配合 editable / showAdd / closable"
95
+ },
96
+ "onAdd": {
97
+ "type": "function",
98
+ "signature": "(event?: React.MouseEvent) => void",
99
+ "description": "新增按钮回调;showAdd 为 true 或 editable 模式下生效"
100
+ },
101
+ "centered": {
102
+ "type": "boolean",
103
+ "default": false,
104
+ "description": "标签居中展示"
105
+ },
106
+ "tabPosition": {
107
+ "type": "'top' | 'right' | 'bottom' | 'left'",
108
+ "values": ["top", "right", "bottom", "left"],
109
+ "default": "'top'",
110
+ "description": "页签位置"
111
+ },
112
+ "editable": {
113
+ "type": "boolean",
114
+ "default": false,
115
+ "description": "可编辑标签(关闭 + 新增);通常与 mode='editable-card' 搭配"
116
+ },
117
+ "showAdd": {
118
+ "type": "boolean",
119
+ "default": false,
120
+ "description": "显示新增按钮"
121
+ },
122
+ "hideAdd": {
123
+ "type": "boolean",
124
+ "default": false,
125
+ "description": "在 editable 模式下隐藏新增按钮"
126
+ },
127
+ "addIcon": {
128
+ "type": "ReactNode",
129
+ "description": "自定义新增按钮图标(替换默认 + 图标);showAdd 或 editable 时生效"
130
+ },
131
+ "radio": {
132
+ "type": "boolean",
133
+ "default": false,
134
+ "description": "在每个 tab 头前加 radio 单选框(与 onRadioChange 配套)"
135
+ },
136
+ "showPopConfirm": {
137
+ "type": "boolean",
138
+ "default": false,
139
+ "description": "切换/删除 tab 前弹出确认框(src/Tabs/index.tsx:56 实证)。⚠️ **`editable=true` 或 `mode='editable-card'` 时有效**(两者满足其一即可触发可编辑态,src:133 `inType === 'editable-card' || editable` 实证)。配合 `popConfirmProps` 自定义确认框内容"
140
+ },
141
+ "popConfirmProps": {
142
+ "type": "PopConfirmProps",
143
+ "description": "控制切换确认弹窗的内容(src/Tabs/index.tsx:58 实证,类型 PopConfirmProps)。在 `showPopConfirm=true` 时生效,可配置 title / description / okText / cancelText 等 PopConfirm 支持的所有属性"
144
+ },
145
+ "onRadioChange": {
146
+ "type": "function",
147
+ "signature": "(radioValue: K) => void",
148
+ "description": "radio 单选框模式下切换选中项的回调(src/Tabs/index.tsx:72 实证签名)。⚠️ **需配合 `mode='card-container'` + `radio=true`**——Radio 组件仅在 card-container 模式下渲染(src:178 实证),其他 mode 下设置 radio=true 无效。K 类型与 Tabs<K> 泛型一致(默认 string)。**与 `onChange` 区分**:onChange 是 tab 切换回调,onRadioChange 是独立的 radio 选中回调"
149
+ }
150
+ },
151
+ "do": [
152
+ "把面板内容放在 data[].content——所有 mode 都会渲染 content,不要外部条件渲染",
153
+ "卡片型外观请直接传 mode='card'(不要退而求其次选 mode='card-container'——后者是『整个面板卡片包裹』,不是『tab 头卡片』)",
154
+ "可编辑标签使用 mode='editable-card' + editable={true};自定义新增图标用 addIcon prop",
155
+ "禁用 tab 的 hover 提示用 TabProps.disabledTooltip(不要给 label 包 <span title>)",
156
+ "受控用 value + onChange;onChange 第一参数是 activeKey,第二参数是 item,无 event 参数"
157
+ ],
158
+ "dont": [
159
+ "在 TabPane 中渲染过重的非首屏内容(应利用懒加载机制)",
160
+ "频繁切换 Tabs mode 导致布局抖动",
161
+ "不要假设『mode='line' 不渲染 content』——所有 mode 都渲染(src 实证)",
162
+ "不要按 antd 习惯传 onChange={(value, tabData, event) => ...}——本组件 2 参 (activeKey, item)",
163
+ "不要按 antd 习惯传 columns/items prop——本组件用 data;不要传 children TabPane——本组件用 data[].content"
164
+ ],
165
+ "events": {
166
+ "onChange": {
167
+ "signature": "(activeKey: K, item?: TabProps<K>) => void",
168
+ "asyncSupported": false,
169
+ "examples": [
170
+ "切换 tab:onChange={(key) => setActiveTab(key)}",
171
+ "利用第二参取 tab 数据:onChange={(key, item) => setTitle(item?.label)}",
172
+ "K 泛型约束:<Tabs<'home'|'profile'> onChange={(key) => ...} />,key 类型被收紧"
173
+ ],
174
+ "commonMistakes": [
175
+ "按 antd 习惯传 onChange={(value, tabData, event) => ...}——本组件仅 2 参 (activeKey, item),无 event 第三参",
176
+ "误以为首参名是 value——首参名是 activeKey(来自 rc-tabs 层),不是 value",
177
+ "忘记第二参 item 是可选的(data 为空或切换到非 data 渲染的 key 时 item 可能 undefined)"
178
+ ]
179
+ },
180
+ "onEdit": {
181
+ "signature": "(item: TabProps<K>, event?: React.MouseEvent | React.KeyboardEvent | string | React.Key, action?: 'add' | 'remove') => void",
182
+ "asyncSupported": false,
183
+ "examples": [
184
+ "新增:action='add', item 是空对象 {}",
185
+ "删除:action='remove', item 是被关闭的 TabProps<K> 项(包含 value/label 等字段)",
186
+ "删除实现:onEdit={(item, _, action) => action === 'remove' && setTabs(tabs.filter(t => t.value !== item.value))}"
187
+ ],
188
+ "commonMistakes": [
189
+ "新增分支期望 item.value 有值——add 时 item 是空对象 {},新 key 需业务侧生成",
190
+ "onEdit 在 editable=false + mode!='editable-card' 时传了但不触发——需满足 editable=true 或 mode='editable-card'"
191
+ ]
192
+ },
193
+ "onRadioChange": {
194
+ "signature": "(radioValue: K) => void",
195
+ "asyncSupported": false,
196
+ "examples": [
197
+ "card-container 模式 + radio=true 时,每个 tab 头前有 Radio,点击 radio 触发此回调",
198
+ "onRadioChange={(val) => setSelected(val)}"
199
+ ],
200
+ "commonMistakes": [
201
+ "不是 card-container + radio=true 模式时传了 onRadioChange——Radio 不渲染,回调永不触发",
202
+ "与 onChange 混淆——onChange 是 tab 激活切换,onRadioChange 是独立的 radio 选中"
203
+ ]
204
+ }
205
+ },
206
+ "typescriptPitfalls": [
207
+ {
208
+ "issue": "onChange 首参名是 activeKey 不是 value,直接解构 value 时 TS 不报错但语义不清",
209
+ "wrong": "onChange={(value) => setTab(value)} // 运行正确但命名误导",
210
+ "right": "onChange={(activeKey) => setTab(activeKey)} // 参数名与签名一致"
211
+ },
212
+ {
213
+ "issue": "data 是 TabProps<K>[] 而不是 RcTabsProps.items,两者不可直接互用",
214
+ "wrong": "// 从 antd 迁移时直接传 items={tabs}——para-ui Tabs 用 data prop 不是 items",
215
+ "right": "data={tabs} // TabProps 数组:[{ value: 'home', label: '首页', content: <Home /> }]"
216
+ },
217
+ {
218
+ "issue": "tabPosition prop 在 Omit<RcTabsProps, 'onChange'> 中保留,但 SCSS 可能不支持所有方向",
219
+ "wrong": "// 传 tabPosition='left' 期望左侧竖排 tab——需确认当前主题 SCSS 是否实现了 left 方向",
220
+ "right": "// 水平 top 位置已完整实现;非 top 方向使用前需自测 SCSS 效果"
221
+ }
222
+ ],
223
+ "mapping": {
224
+ "realComponent": "Tabs",
225
+ "adapter": null
226
+ }
227
+ }
@@ -0,0 +1,221 @@
1
+ {
2
+ "name": "Tag",
3
+ "category": "Data Display",
4
+ "description": "进行标记和分类的小标签,支持 4 种预设色 + 自定义色、描边/实色、closable 可关闭、editable 内置编辑模式、visible 显隐控制",
5
+ "semantic": {
6
+ "intent": [
7
+ "分类",
8
+ "标记",
9
+ "选择"
10
+ ],
11
+ "useCases": [
12
+ "文章标签",
13
+ "状态展示",
14
+ "筛选条件"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "normal": {
20
+ "meaning": "普通标签"
21
+ },
22
+ "outline": {
23
+ "meaning": "描边标签"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "closable",
29
+ "visible",
30
+ "editable"
31
+ ],
32
+ "idealProps": {
33
+ "children": {
34
+ "type": "ReactNode",
35
+ "description": "**标签文案**(src 通过 PropsWithChildren 接收,与 props 分开)。直接作为 children 传入:`<Tag>已激活</Tag>`。**editable 模式下**:当 children 是 string 时会作为内嵌 input 的初始值(src/Tag/index.tsx:118-122 实证)"
36
+ },
37
+ "color": {
38
+ "type": "'blue' | 'green' | 'yellow' | 'red' | string",
39
+ "description": "标签颜色。**预设色(4 个)**:blue / green / yellow / red——会命中专门 CSS 类生成完整配色方案。**非预设值**(如 'gray' / hex / rgb())走 tinycolor 解析,渲染为带 0.1 alpha 的对应色背景 + 原色文字(无 hover/active 等专门 CSS)。**状态色推荐语义**(业界常见映射):green=success/激活、yellow=warning/待处理、red=error/危险、blue=info/默认;灰色场景建议传 hex '#808080' 或 '#999'。需求方若需要灰色等常用色,可以提议加入预设清单(src 改 PresetColors + 加专门样式)",
40
+ "_presetNote": "DEFECT 反查:src/Tag/index.tsx:67 PresetColors = ['blue','green','yellow','red'];非预设走 tinycolor 通用渲染但视觉效果有差异——不是 bug 是设计取舍"
41
+ },
42
+ "type": {
43
+ "type": "enum",
44
+ "values": [
45
+ "normal",
46
+ "outline"
47
+ ],
48
+ "default": "normal",
49
+ "description": "标签类型——normal 实色填充,outline 描边版(color 仍生效,但作为边框色 + 文字色,背景透明)"
50
+ },
51
+ "size": {
52
+ "type": "enum",
53
+ "values": [
54
+ "small",
55
+ "medium",
56
+ "large"
57
+ ],
58
+ "default": "small",
59
+ "description": "标签大小。三档统一为 small / medium / large(2026-05-08 跨组件命名 epic §3.1 选项 B 实施,medium 为新增视觉档,默认 small 不变,既有 small/large 调用零回归)"
60
+ },
61
+ "closable": {
62
+ "type": "boolean",
63
+ "default": false,
64
+ "description": "是否可关闭——开启后右侧自动渲染 ✕ 图标;自定义关闭图标传 closeIcon prop。**半受控行为**(src/Tag/index.tsx:175-178 实证):未传 visible prop 时点击 ✕ 自动 setVisible(false) 内部隐藏;传了 visible 后由父组件控制(点击 ✕ 仅触发 onClose 不自动隐藏)"
65
+ },
66
+ "onClose": {
67
+ "type": "function",
68
+ "signature": "(event: React.MouseEvent) => void",
69
+ "description": "关闭按钮点击回调(**完整签名带 React MouseEvent 参数**,src/Tag/index.tsx:36 实证)。**事件**:内部已 stopPropagation;如需阻止默认隐藏(visible 未受控场景),调用 event.preventDefault() 即可——src 检查 e.defaultPrevented 后跳过 setVisible(false)"
70
+ },
71
+ "closeIcon": {
72
+ "type": "ReactNode",
73
+ "description": "自定义关闭图标节点(替代默认 CloseIcon),仅在 closable=true 时渲染"
74
+ },
75
+ "visible": {
76
+ "type": "boolean",
77
+ "default": true,
78
+ "description": "是否显示标签。**受控**:传入后 Tag 显隐完全跟随 visible(onClose 后不会自动隐藏,由父组件 setState 控制)。**非受控**:不传时 onClose 后 src 内部 setVisible(false) 自动隐藏。如需完全不挂载 DOM,在父组件做条件渲染 `{isShown && <Tag />}` 而非依赖 visible prop(visible=false 时 DOM 仍渲染只是 CSS 隐藏)"
79
+ },
80
+ "icon": {
81
+ "type": "ReactNode",
82
+ "description": "**前置图标**(src/Tag/index.tsx:231-254 实证 icon 渲染在文案左侧;与 closeIcon 在右侧不同)。editable=true 时此 prop 被忽略(前缀位置改渲染 EditIcon)"
83
+ },
84
+ "editable": {
85
+ "type": "boolean",
86
+ "default": false,
87
+ "description": "**Tag 内置可编辑模式**——传 editable={true} 后,Tag 在前缀位置自动渲染编辑图标(EditIcon),点击图标会切换为内嵌 input;按 Enter 或失焦提交。**回调通过 tagChange prop 触发**:`tagChange?: (value: string) => void`。**初值来源**:children 为 string 时作为 input 初始值;不是 string 时初值为空字符串。无需手写原生 input。editable 模式下 children 仅作为编辑态进入时的 initialValue;父组件后续更新 children **不会刷新已激活 input**;父组件需通过 tagChange 回调维护 state"
88
+ },
89
+ "tagChange": {
90
+ "type": "function",
91
+ "signature": "(value: string) => void",
92
+ "description": "**editable=true 模式下 input 值变化的回调**(src/Tag/index.tsx:259 实证:每次 onChange 触发 = 实时键入回调,**不是 onBlur/Enter 才触发**)。提交动作仅控制是否退出编辑态,与 tagChange 触发频率无关"
93
+ },
94
+ "editInputClassName": {
95
+ "type": "string",
96
+ "description": "editable 模式下内嵌 input 的类名"
97
+ },
98
+ "editInputWidth": {
99
+ "type": "number",
100
+ "description": "editable 模式下内嵌 input 的宽度(默认根据内容自适应)"
101
+ },
102
+ "maxWidth": {
103
+ "type": "number | string",
104
+ "description": "标签最大宽度。超出时配合 AutoTips 显示 tooltip(不截断)"
105
+ },
106
+ "tipMaxWidth": {
107
+ "type": "number | string",
108
+ "description": "AutoTips tooltip 的最大宽度(src/Tag/index.tsx:56,310 实证:透传给 AutoTips 的 tipMaxWidth prop,控制文案截断时 tooltip 浮层宽度)"
109
+ },
110
+ "onEdit": {
111
+ "type": "function",
112
+ "signature": "(event: React.MouseEvent) => void",
113
+ "description": "编辑图标点击回调(src/Tag/index.tsx:38,198 实证:editable=true 时点击前缀 EditIcon 触发,可通过 event.preventDefault() 阻止切换为 input 编辑状态)"
114
+ },
115
+ "getWidth": {
116
+ "type": "function",
117
+ "signature": "(width: number) => void",
118
+ "description": "获取标签宽度回调(src/Tag/index.tsx:40,115 实证:挂载及 inputVisible 变化后通过 useEffect 将 tagRef 的 offsetWidth 传出)"
119
+ },
120
+ "marginBottom": {
121
+ "type": "string",
122
+ "description": "标签下边距(src/Tag/index.tsx:58,136 实证:inline style 直接透传,用于 TagGroup 等批量排列场景控制行间距)"
123
+ },
124
+ "marginRight": {
125
+ "type": "string",
126
+ "description": "标签右边距(src/Tag/index.tsx:60,137 实证:inline style 直接透传,用于 TagGroup 等批量排列场景控制列间距)"
127
+ },
128
+ "className": {
129
+ "type": "string",
130
+ "description": "自定义类名(src/Tag/index.tsx:48 interface 声明,透传到根 span 元素)"
131
+ }
132
+ },
133
+ "do": [
134
+ "使用颜色区分不同类型的标签——状态徽章推荐:green=激活/成功、yellow=警告/待处理、red=错误/危险、blue=信息/默认、灰色用 hex '#808080'",
135
+ "使用 closable 实现标签的删除交互(visible 受控时父组件 setState 移除;非受控时 src 内部自动隐藏)",
136
+ "需要可编辑标签时直接传 editable={true} + tagChange 回调——Tag 内置 EditIcon + input 渲染逻辑,**不需要在 children 内手写原生 <input>**;children 为 string 时作为 input 初始值",
137
+ "**跨组件引用 Tag 表达状态色**:在 Table render / Form 选项渲染等场景,用 `<Tag color='green'>已激活</Tag>` 而非 inline style 兜底——预设 4 色已覆盖大多数状态语义"
138
+ ],
139
+ "dont": [
140
+ "在 Tag 中放置过长的文本",
141
+ "滥用 Tag 作为按钮使用",
142
+ "**不要在 editable 模式同时传 icon**——editable=true 时前缀位置改渲染 EditIcon,icon prop 被忽略;如需图标 + 编辑混用,需自实现",
143
+ "不要假设非预设色(hex / rgb / 'gray')有完整 hover/active CSS——非预设走 tinycolor 0.1 alpha 渲染,无专门样式"
144
+ ],
145
+ "events": {
146
+ "onClose": {
147
+ "signature": "(event: React.MouseEvent) => void",
148
+ "asyncSupported": false,
149
+ "examples": [
150
+ "受控关闭:onClose={(e) => setVisible(false)}",
151
+ "阻止默认隐藏(非受控场景):onClose={(e) => { e.preventDefault(); /* 自定义逻辑 */ }}",
152
+ "受控模式父组件删除标签:onClose={() => setTags(prev => prev.filter(t => t.id !== id))}"
153
+ ],
154
+ "commonMistakes": [
155
+ "不传 visible prop 时期望 onClose 后标签仍显示——未传 visible 时 Tag 内部自动 setVisible(false);要阻止需调 e.preventDefault()",
156
+ "假设 onClose 只在显式关闭时触发——Tag 本体 stopPropagation,但父元素 onClick 不受影响",
157
+ "忘记在受控模式(传了 visible)中通过 onClose 更新父 state——Tag 不会自动隐藏,需父组件响应 onClose 更新 visible"
158
+ ]
159
+ },
160
+ "onEdit": {
161
+ "signature": "(event: React.MouseEvent) => void",
162
+ "asyncSupported": false,
163
+ "examples": [
164
+ "监听编辑图标点击:onEdit={(e) => console.log('edit clicked')}",
165
+ "阻止进入内置编辑态:onEdit={(e) => { e.preventDefault(); openCustomEditModal(); }}"
166
+ ],
167
+ "commonMistakes": [
168
+ "期望 onEdit 是编辑完成后的回调——onEdit 是点击编辑图标时触发;编辑完成回调是 tagChange",
169
+ "同时传 onEdit 和 editable 却期望自定义完全替代内置 input——onEdit 调 e.preventDefault() 才能阻止切换 input"
170
+ ]
171
+ },
172
+ "tagChange": {
173
+ "signature": "(value: string) => void",
174
+ "asyncSupported": false,
175
+ "examples": [
176
+ "实时同步编辑值:tagChange={(v) => setTagValue(v)}",
177
+ "受控:在 tagChange 中更新父组件 state,children 随之变化(editable 模式下 children 是初始值)"
178
+ ],
179
+ "commonMistakes": [
180
+ "假设 tagChange 是 onBlur/Enter 确认后触发——实际是实时 onChange(每次键入都触发)",
181
+ "不传 tagChange 期望 Tag 自己保存编辑值——编辑完成后父组件 children 不更新则下次进入编辑态仍是旧初始值"
182
+ ]
183
+ },
184
+ "getWidth": {
185
+ "signature": "(width: number) => void",
186
+ "asyncSupported": false,
187
+ "examples": [
188
+ "获取标签实际渲染宽度:getWidth={(w) => setTagWidth(w)}"
189
+ ],
190
+ "commonMistakes": [
191
+ "期望 getWidth 实时响应容器宽度变化——实际只在挂载时和 inputVisible 变化时触发(不是 ResizeObserver)"
192
+ ]
193
+ }
194
+ },
195
+ "typescriptPitfalls": [
196
+ {
197
+ "issue": "TagProps extends React.HTMLAttributes<HTMLSpanElement>,onClick 等原生事件直接透传,不需要单独声明",
198
+ "wrong": "// 以为 Tag 没有 onClick,外层包一个 div:<div onClick={handleClick}><Tag>文本</Tag></div>",
199
+ "right": "<Tag onClick={handleClick}>文本</Tag> // HTMLAttributes 的所有事件都可直接传"
200
+ },
201
+ {
202
+ "issue": "editable 模式下 children 只作为编辑态初始值,不是受控值——父组件更新 children 不刷新已激活 input",
203
+ "wrong": "// 期望 children 变化实时反映到编辑 input 中\n<Tag editable tagChange={setVal}>{controlledValue}</Tag> // editInputVisible 激活后 children 更新不生效",
204
+ "right": "// 用 key 或在 tagChange 回调中维护 state:\nconst [val, setVal] = useState(initialValue);\n<Tag editable tagChange={setVal}>{val}</Tag> // 父组件维护 val,但注意切换编辑时仍取最新 children 作初始值"
205
+ },
206
+ {
207
+ "issue": "非预设色(hex/rgb/'gray' 等)走 tinycolor 渲染,TS 不报错但无完整 hover/active CSS",
208
+ "wrong": "color='gray' // TS 接受(string 类型),但没有专门 CSS,只有 tinycolor 0.1 alpha 背景",
209
+ "right": "// 预设色(有完整 CSS):color='blue' | 'green' | 'yellow' | 'red'\n// 非预设色自定义(通用渲染):color='#808080' // 接受但无专门 hover/active 样式"
210
+ },
211
+ {
212
+ "issue": "closable 半受控行为:未传 visible 时 onClose 自动隐藏;传了 visible 则需父组件主动响应 onClose",
213
+ "wrong": "// 传了 visible 但不响应 onClose:\n<Tag closable visible={isVisible} onClose={() => {}}>文本</Tag> // 点关闭后 Tag 不隐藏",
214
+ "right": "// 受控:onClose 更新父组件 state\n<Tag closable visible={isVisible} onClose={() => setIsVisible(false)}>文本</Tag>"
215
+ }
216
+ ],
217
+ "mapping": {
218
+ "realComponent": "Tag",
219
+ "adapter": null
220
+ }
221
+ }
package/lib/Tag/index.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid rgb(92,101,115)}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid rgb(46,101,230)}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid rgb(19,191,76)}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid rgb(255,147,38)}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid rgb(244,66,66)}.paraui-v4-tag-edit-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag{vertical-align:bottom;display:inline-flex;justify-content:center;align-items:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;color:#1d2126;white-space:nowrap;background:#eaecf1;border-radius:2px;line-height:18px}.paraui-v4-tag .tag-custom-icon:hover{background:none!important;cursor:default}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-small{height:20px;font-size:12px;padding:0 6px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{color:inherit;font-size:16px}.paraui-v4-tag .tag-edit-icon{color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:#2e65e61a}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:#13bf4c1a}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:#ff93261a}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:#f442421a}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;align-items:center;flex-flow:row wrap}.paraui-v4-tag-group .tag-group-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed rgb(212,218,227)}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none!important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}
1
+ @charset "UTF-8";.paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid rgb(92,101,115)}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid rgb(46,101,230)}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid rgb(19,191,76)}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid rgb(255,147,38)}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid rgb(244,66,66)}.paraui-v4-tag-edit-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag{display:inline-flex;align-items:center;justify-content:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;line-height:18px;color:#1d2126;white-space:nowrap;vertical-align:bottom;background:#eaecf1;border-radius:2px}.paraui-v4-tag .tag-custom-icon:hover{cursor:default;background:none!important}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-large{line-height:28px}.paraui-v4-tag.paraui-v4-tag-medium{line-height:24px}.paraui-v4-tag.paraui-v4-tag-small{height:20px;padding:0 6px;font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{font-size:16px;color:inherit}.paraui-v4-tag .tag-edit-icon{font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:#2e65e61a}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:#13bf4c1a}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:#ff93261a}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:#f442421a}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;flex-flow:row wrap;align-items:center}.paraui-v4-tag-group .tag-group-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed rgb(212,218,227)}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none!important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}
@@ -30,7 +30,7 @@ export interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {
30
30
  /** cls */
31
31
  className?: string;
32
32
  /** 大小 */
33
- size?: 'small' | 'large';
33
+ size?: 'small' | 'medium' | 'large';
34
34
  /** 编辑输入框样式 */
35
35
  editInputClassName?: string;
36
36
  /** 编辑输入框宽度 */
package/lib/Tag/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const s=require("../_virtual/jsx-runtime.js"),n=require("react");require("../node_modules/@para-ui/icons/SvgIcon/index.js");const le=require("../node_modules/@para-ui/icons/Close/index.js"),ae=require("../node_modules/@para-ui/icons/EditOutline/index.js"),w=require("clsx"),ue=require("./TagGroup.js"),o=require("../GlobalContext/constant.js"),ce=require("../AutoTips/index.js"),p=require("../node_modules/tinycolor2/esm/tinycolor.js"),de=require("../Hooks/useGlobalProps.js");;/* empty css */const pe=["blue","green","yellow","red"],fe=a=>{const{type:f="normal",className:A,children:r,icon:u,color:t,onClose:G,onEdit:x,getWidth:g,tagChange:h,editInputClassName:F,closeIcon:m,closable:_=!1,editable:C=!1,size:E="larage",maxWidth:B,style:O,visible:R,editInputWidth:z,tipMaxWidth:D,marginBottom:j,marginRight:v,...K}=de.default(a,"TagGroup"),[H,b]=n.useState(!0),[I,$]=n.useState(!1),[y,S]=n.useState(""),[q,J]=n.useState(0),[Q,c]=n.useState(!1),[U,d]=n.useState(!1),X=n.useRef(),i=n.useRef(null);n.useEffect(()=>{"visible"in a&&b(!!R)},[R]),n.useEffect(()=>{if(!i.current)return;const{offsetWidth:e}=i.current;J(e),g&&g(e)},[i,I]),n.useEffect(()=>{typeof r=="string"&&S(r)},[r]);const l=()=>t?pe.includes(t):!1,Y={color:t&&!l()?t:void 0,backgroundColor:t&&!l()?p.default(t).setAlpha(.1).toRgbString():void 0,borderColor:t&&!l()&&f==="outline"?t:void 0,maxWidth:B,marginBottom:j,marginRight:v,...O},M={backgroundColor:Q?p.default(t).setAlpha(.1).toRgbString():void 0,borderRadius:"2px"},Z={backgroundColor:U?p.default(t).setAlpha(.1).toRgbString():void 0,marginRight:r?E==="small"?"2px":"4px":void 0,borderRadius:"2px"},ee=w(`${o.$prefixCls}-tag`,`${o.$prefixCls}-tag-${f}`,`${o.$prefixCls}-tag-${E}`,A,{[`${o.$prefixCls}-tag-has-color`]:t,[`${o.$prefixCls}-tag-hidden`]:!H,[`${o.$prefixCls}-tag-${t}`]:l()}),N=e=>{e.stopPropagation(),G?.(e),c(!1),!e.defaultPrevented&&("visible"in a||b(!1))},P=()=>{c(!0)},k=()=>{c(!1)},T=()=>{d(!0)},W=()=>{d(!1)},te=e=>{e.stopPropagation(),x&&x(e),!e.defaultPrevented&&(d(!1),$(!0))},se=()=>_?m?s.jsxRuntimeExports.jsx("span",{className:"tag-close-icon",style:M,onClick:N,onMouseEnter:P,onMouseLeave:k,children:m}):s.jsxRuntimeExports.jsx(le.Close,{className:"tag-close-icon",style:M,onClick:N,onMouseEnter:P,onMouseLeave:k}):null,ne=()=>(C||u)&&s.jsxRuntimeExports.jsx("span",{className:`tag-edit-icon ${u?"tag-custom-icon":""}`,style:Z,onMouseEnter:T,onMouseLeave:W,children:C?s.jsxRuntimeExports.jsx(ae.EditOutline,{onMouseEnter:T,onMouseLeave:W,className:"tag-edit-icon",onClick:te}):s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:u})}),oe=e=>{S(e.target.value),h&&h(e.target.value)},L=()=>{$(!1)},re=e=>{(e.keyCode===13||e.which===13)&&L()},ie=()=>{const e=w(`${o.$prefixCls}-tag-edit-input`,F);return s.jsxRuntimeExports.jsx("input",{style:{width:z||q,minWidth:q,marginBottom:j,marginRight:v},type:"text",autoFocus:!0,ref:X,className:e,value:y,onChange:oe,onBlur:L,onKeyDown:re})};return s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:I?ie():s.jsxRuntimeExports.jsxs("span",{...K,className:ee,style:Y,ref:i,children:[ne(),r&&s.jsxRuntimeExports.jsx(ce.default,{tipMaxWidth:D,children:s.jsxRuntimeExports.jsx("span",{className:"tag-text",children:y||r})}),se()]})})},V=fe;exports.TagGroup=ue.default;exports.Tag=V;exports.default=V;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const s=require("../_virtual/jsx-runtime.js"),n=require("react");require("../node_modules/@para-ui/icons/SvgIcon/index.js");const le=require("../node_modules/@para-ui/icons/Close/index.js"),ae=require("../node_modules/@para-ui/icons/EditOutline/index.js"),w=require("clsx"),ue=require("./TagGroup.js"),o=require("../GlobalContext/constant.js"),ce=require("../AutoTips/index.js"),p=require("../node_modules/tinycolor2/esm/tinycolor.js"),de=require("../Hooks/useGlobalProps.js");;/* empty css */const pe=["blue","green","yellow","red"],fe=a=>{const{type:f="normal",className:A,children:r,icon:u,color:t,onClose:G,onEdit:x,getWidth:g,tagChange:h,editInputClassName:F,closeIcon:m,closable:_=!1,editable:C=!1,size:E="small",maxWidth:B,style:O,visible:R,editInputWidth:z,tipMaxWidth:D,marginBottom:j,marginRight:v,...K}=de.default(a,"TagGroup"),[H,b]=n.useState(!0),[I,$]=n.useState(!1),[y,S]=n.useState(""),[q,J]=n.useState(0),[Q,c]=n.useState(!1),[U,d]=n.useState(!1),X=n.useRef(),i=n.useRef(null);n.useEffect(()=>{"visible"in a&&b(!!R)},[R]),n.useEffect(()=>{if(!i.current)return;const{offsetWidth:e}=i.current;J(e),g&&g(e)},[i,I]),n.useEffect(()=>{typeof r=="string"&&S(r)},[r]);const l=()=>t?pe.includes(t):!1,Y={color:t&&!l()?t:void 0,backgroundColor:t&&!l()?p.default(t).setAlpha(.1).toRgbString():void 0,borderColor:t&&!l()&&f==="outline"?t:void 0,maxWidth:B,marginBottom:j,marginRight:v,...O},M={backgroundColor:Q?p.default(t).setAlpha(.1).toRgbString():void 0,borderRadius:"2px"},Z={backgroundColor:U?p.default(t).setAlpha(.1).toRgbString():void 0,marginRight:r?E==="small"?"2px":"4px":void 0,borderRadius:"2px"},ee=w(`${o.$prefixCls}-tag`,`${o.$prefixCls}-tag-${f}`,`${o.$prefixCls}-tag-${E}`,A,{[`${o.$prefixCls}-tag-has-color`]:t,[`${o.$prefixCls}-tag-hidden`]:!H,[`${o.$prefixCls}-tag-${t}`]:l()}),N=e=>{e.stopPropagation(),G?.(e),c(!1),!e.defaultPrevented&&("visible"in a||b(!1))},P=()=>{c(!0)},k=()=>{c(!1)},T=()=>{d(!0)},W=()=>{d(!1)},te=e=>{e.stopPropagation(),x&&x(e),!e.defaultPrevented&&(d(!1),$(!0))},se=()=>_?m?s.jsxRuntimeExports.jsx("span",{className:"tag-close-icon",style:M,onClick:N,onMouseEnter:P,onMouseLeave:k,children:m}):s.jsxRuntimeExports.jsx(le.Close,{className:"tag-close-icon",style:M,onClick:N,onMouseEnter:P,onMouseLeave:k}):null,ne=()=>(C||u)&&s.jsxRuntimeExports.jsx("span",{className:`tag-edit-icon ${u?"tag-custom-icon":""}`,style:Z,onMouseEnter:T,onMouseLeave:W,children:C?s.jsxRuntimeExports.jsx(ae.EditOutline,{onMouseEnter:T,onMouseLeave:W,className:"tag-edit-icon",onClick:te}):s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:u})}),oe=e=>{S(e.target.value),h&&h(e.target.value)},L=()=>{$(!1)},re=e=>{(e.keyCode===13||e.which===13)&&L()},ie=()=>{const e=w(`${o.$prefixCls}-tag-edit-input`,F);return s.jsxRuntimeExports.jsx("input",{style:{width:z||q,minWidth:q,marginBottom:j,marginRight:v},type:"text",autoFocus:!0,ref:X,className:e,value:y,onChange:oe,onBlur:L,onKeyDown:re})};return s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:I?ie():s.jsxRuntimeExports.jsxs("span",{...K,className:ee,style:Y,ref:i,children:[ne(),r&&s.jsxRuntimeExports.jsx(ce.default,{tipMaxWidth:D,children:s.jsxRuntimeExports.jsx("span",{className:"tag-text",children:y||r})}),se()]})})},V=fe;exports.TagGroup=ue.default;exports.Tag=V;exports.default=V;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- .paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid #5c6573}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid #2e65e6}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid #13bf4c}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid #ff9326}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid #f44242}.paraui-v4-tag-edit-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag{vertical-align:bottom;display:inline-flex;justify-content:center;align-items:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;color:#1d2126;white-space:nowrap;background:#eaecf1;border-radius:2px;line-height:18px}.paraui-v4-tag .tag-custom-icon:hover{background:none !important;cursor:default}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-small{height:20px;font-size:12px;padding:0 6px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{color:inherit;font-size:16px}.paraui-v4-tag .tag-edit-icon{color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:rgba(46,101,230,.1)}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:rgba(19,191,76,.1)}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:rgba(255,147,38,.1)}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:rgba(244,66,66,.1)}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;align-items:center;flex-flow:row wrap}.paraui-v4-tag-group .tag-group-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed #d4dae3}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none !important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}
1
+ .paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid #5c6573}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid #2e65e6}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid #13bf4c}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid #ff9326}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid #f44242}.paraui-v4-tag-edit-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag{display:inline-flex;align-items:center;justify-content:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;line-height:18px;color:#1d2126;white-space:nowrap;vertical-align:bottom;background:#eaecf1;border-radius:2px}.paraui-v4-tag .tag-custom-icon:hover{cursor:default;background:none !important}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-large{line-height:28px}.paraui-v4-tag.paraui-v4-tag-medium{line-height:24px}.paraui-v4-tag.paraui-v4-tag-small{height:20px;padding:0 6px;font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{font-size:16px;color:inherit}.paraui-v4-tag .tag-edit-icon{font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:rgba(46,101,230,.1)}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:rgba(19,191,76,.1)}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:rgba(255,147,38,.1)}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:rgba(244,66,66,.1)}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;flex-flow:row wrap;align-items:center}.paraui-v4-tag-group .tag-group-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed #d4dae3}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none !important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}