@para-ui/core 5.0.0-beta.11 → 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 (650) 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 +52 -49
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/dataGenerator/index.js +1 -1
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/Argv/index.js +1 -1
  116. package/es/AutoBox/component.json +133 -0
  117. package/es/AutoBox/index.d.ts +3 -3
  118. package/es/AutoBox/index.js +1 -1
  119. package/es/AutoBox/protal.d.ts +2 -2
  120. package/es/AutoBox/protal.js +33 -30
  121. package/es/AutoButton/component.json +109 -0
  122. package/es/AutoButton/index.js +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  124. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  125. package/es/AutoTips/component.json +121 -0
  126. package/es/AutoTips/index.js +1 -1
  127. package/es/Badge/component.json +92 -0
  128. package/es/Breadcrumbs/component.json +142 -0
  129. package/es/Breadcrumbs/index.js +1 -1
  130. package/es/Button/SplitButton.d.ts +2 -2
  131. package/es/Button/component.json +168 -0
  132. package/es/Button/index.js +44 -44
  133. package/es/ButtonGroup/component.json +132 -0
  134. package/es/ButtonGroup/index.d.ts +1 -1
  135. package/es/Card/component.json +162 -0
  136. package/es/Card/index.d.ts +2 -2
  137. package/es/Card/index.js +2 -2
  138. package/es/Carousel/component.json +142 -0
  139. package/es/Carousel/index.d.ts +1 -1
  140. package/es/Cascader/Cascader.js +1 -1
  141. package/es/Cascader/OptionList/Column.js +1 -1
  142. package/es/Cascader/OptionList/index.js +1 -1
  143. package/es/Cascader/component.json +196 -0
  144. package/es/Cascader/hooks/useEntities.js +7 -7
  145. package/es/Cascader/interface.d.ts +1 -0
  146. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  147. package/es/Cascader/utils/commonUtil.js +16 -16
  148. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  149. package/es/Cascader/utils/treeUtil.js +1 -1
  150. package/es/Checkbox/component.json +138 -0
  151. package/es/CheckboxGroup/component.json +152 -0
  152. package/es/CheckboxGroup/index.js +1 -1
  153. package/es/CodeEditor/component.json +189 -0
  154. package/es/CodeEditor/index.d.ts +11 -10
  155. package/es/CodeEditor/index.js +19 -19
  156. package/es/Collapse/component.json +166 -0
  157. package/es/Collapse/index.d.ts +1 -1
  158. package/es/Collapse/index.js +23 -22
  159. package/es/CollapseBox/component.json +84 -0
  160. package/es/CollapseLayout/component.json +155 -0
  161. package/es/ColorPicker/component.json +142 -0
  162. package/es/ComboSelect/component.json +181 -0
  163. package/es/ComboSelect/index.js +115 -109
  164. package/es/ComboSelect/interface.d.ts +2 -2
  165. package/es/ComboSelect/utils.d.ts +3 -3
  166. package/es/ComboSelect/utils.js +1 -1
  167. package/es/Container/component.json +111 -0
  168. package/es/ContentBox/component.json +81 -0
  169. package/es/CopyText/component.json +118 -0
  170. package/es/CycleSelector/component.json +98 -0
  171. package/es/CycleSelector/index.js +14 -13
  172. package/es/DatePicker/component.json +192 -0
  173. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  174. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  175. package/es/Descriptions/component.json +142 -0
  176. package/es/Descriptions/index.d.ts +1 -1
  177. package/es/Desktop/component.json +171 -0
  178. package/es/Desktop/index.js +1 -1
  179. package/es/DragVerify/component.json +114 -0
  180. package/es/DragVerify/index.js +19 -19
  181. package/es/Drawer/component.json +200 -0
  182. package/es/Drawer/index.js +86 -86
  183. package/es/Drawer/interface.d.ts +1 -1
  184. package/es/Drawer/util.d.ts +1 -6
  185. package/es/Drawer/util.js +9 -6
  186. package/es/Dropdown/component.json +147 -0
  187. package/es/Dropdown/index.js +1 -1
  188. package/es/DynamicMultiBox/component.json +278 -0
  189. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  190. package/es/DynamicMultiBox/index.js +1 -1
  191. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  192. package/es/Empty/component.json +123 -0
  193. package/es/Empty/index.css +1 -1
  194. package/es/Empty/index.d.ts +2 -2
  195. package/es/Empty/index.js +27 -26
  196. package/es/Empty/style/index.css +1 -1
  197. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  198. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  199. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  200. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  201. package/es/FieldForm/Form.d.ts +2 -2
  202. package/es/FieldForm/Form.js +1 -1
  203. package/es/FieldForm/FormItemInput.js +1 -1
  204. package/es/FieldForm/FormItemLabel.js +1 -1
  205. package/es/FieldForm/FormList.d.ts +2 -2
  206. package/es/FieldForm/component.json +196 -0
  207. package/es/FieldForm/context.d.ts +5 -1
  208. package/es/FieldForm/context.js +2 -2
  209. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  210. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  211. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  212. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  213. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  214. package/es/FieldForm/hooks/useItemRef.js +6 -6
  215. package/es/Form/component.json +161 -0
  216. package/es/Form/index.d.ts +52 -49
  217. package/es/Form/index.js +1 -1
  218. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  219. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  220. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  221. package/es/FormItem/compoments/formFile/index.js +8 -8
  222. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  223. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  224. package/es/FormItem/component.json +171 -0
  225. package/es/FormItem/index.d.ts +5 -5
  226. package/es/FormItem/index.js +23 -23
  227. package/es/FormItem/itemType.js +1 -1
  228. package/es/FunctionModal/component.json +197 -0
  229. package/es/FunctionModal/dialog.d.ts +1 -1
  230. package/es/FunctionModal/modalContext.d.ts +4 -1
  231. package/es/GlobalContext/confirmLocale.js +1 -1
  232. package/es/GlobalContext/index.js +1 -1
  233. package/es/Help/component.json +118 -0
  234. package/es/HelperText/component.json +126 -0
  235. package/es/Image/PreviewGroup.js +1 -1
  236. package/es/Image/component.json +165 -0
  237. package/es/Image/index.js +1 -1
  238. package/es/InputCode/component.json +191 -0
  239. package/es/InputCode/index.d.ts +2 -2
  240. package/es/InputLang/component.json +205 -0
  241. package/es/InputLang/index.js +2 -2
  242. package/es/InputNumber/component.json +162 -0
  243. package/es/Label/component.json +126 -0
  244. package/es/Label/index.d.ts +2 -2
  245. package/es/Loading/component.json +91 -0
  246. package/es/Menu/component.json +180 -0
  247. package/es/Menu/verticalMenuList.js +1 -1
  248. package/es/Message/component.json +246 -0
  249. package/es/Message/index.d.ts +2 -2
  250. package/es/Message/index.js +2 -2
  251. package/es/Modal/Confirm/index.d.ts +1 -1
  252. package/es/Modal/Confirm/index.js +1 -1
  253. package/es/Modal/component.json +277 -0
  254. package/es/Modal/index.d.ts +85 -5
  255. package/es/Modal/index.js +159 -122
  256. package/es/Modal/interface.d.ts +1 -0
  257. package/es/MultiBox/component.json +216 -0
  258. package/es/MultiBox/index.js +19 -14
  259. package/es/Notification/component.json +184 -0
  260. package/es/OperateBtn/component.json +134 -0
  261. package/es/OperateBtn/index.d.ts +3 -3
  262. package/es/PageHeader/component.json +112 -0
  263. package/es/PageHeader/horizontalMeun.js +1 -1
  264. package/es/PageHeader/horizontalMeunRight.js +1 -1
  265. package/es/Pagination/component.json +181 -0
  266. package/es/Pagination/index.js +15 -15
  267. package/es/ParauiProvider/index.js +1 -1
  268. package/es/PasswordRules/component.json +105 -0
  269. package/es/PasswordRules/index.d.ts +4 -4
  270. package/es/PopConfirm/component.json +227 -0
  271. package/es/PopConfirm/index.d.ts +1 -1
  272. package/es/PopConfirm/index.js +1 -1
  273. package/es/PopMenu/component.json +131 -0
  274. package/es/PopMenu/hooks.d.ts +1 -1
  275. package/es/PopMenu/index.js +8 -8
  276. package/es/Popover/component.json +165 -0
  277. package/es/Popover/index.js +1 -1
  278. package/es/Progress/component.json +161 -0
  279. package/es/Prompt/component.json +144 -0
  280. package/es/Querying/component.json +96 -0
  281. package/es/Querying/index.css +1 -1
  282. package/es/Querying/index.d.ts +2 -2
  283. package/es/Querying/index.js +20 -19
  284. package/es/Querying/style/index.css +1 -1
  285. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  286. package/es/QuickReply/component.json +129 -0
  287. package/es/QuickReply/index.d.ts +1 -1
  288. package/es/Radio/component.json +136 -0
  289. package/es/RadioGroup/component.json +149 -0
  290. package/es/RangeInput/component.json +198 -0
  291. package/es/RangeInput/index.js +20 -20
  292. package/es/Result/component.json +104 -0
  293. package/es/ScrollBar/component.json +115 -0
  294. package/es/Search/component.json +177 -0
  295. package/es/Search/index.d.ts +1 -1
  296. package/es/Select/component.json +244 -0
  297. package/es/Select/index.js +114 -114
  298. package/es/SelectInput/component.json +184 -0
  299. package/es/Selector/component.json +203 -0
  300. package/es/Selector/index.js +56 -50
  301. package/es/Selector/interface.d.ts +2 -2
  302. package/es/Selector/selectorData/index.js +1 -1
  303. package/es/Selector/selectorMain/index.js +3 -3
  304. package/es/Selector/selectorNode/index.js +1 -1
  305. package/es/Selector/util.d.ts +3 -3
  306. package/es/Selector/util.js +6 -12
  307. package/es/SelectorPicker/component.json +179 -0
  308. package/es/SelectorPicker/index.d.ts +5 -5
  309. package/es/SelectorPicker/index.js +15 -15
  310. package/es/SingleBox/component.json +151 -0
  311. package/es/SingleBox/index.d.ts +2 -2
  312. package/es/Slider/component.json +181 -0
  313. package/es/SortBox/component.json +108 -0
  314. package/es/Status/component.json +104 -0
  315. package/es/Stepper/component.json +129 -0
  316. package/es/Stepper/index.d.ts +2 -2
  317. package/es/Switch/component.json +207 -0
  318. package/es/Switch/index.css +1 -1
  319. package/es/Switch/index.d.ts +3 -2
  320. package/es/Switch/index.js +60 -59
  321. package/es/Switch/style/index.css +1 -1
  322. package/es/Table/component.json +547 -0
  323. package/es/Table/index.d.ts +2 -2
  324. package/es/Table/index.js +385 -382
  325. package/es/Table/interface.d.ts +30 -0
  326. package/es/Table/tableHead.js +1 -1
  327. package/es/Table/util.d.ts +1 -1
  328. package/es/Table/util.js +3 -12
  329. package/es/Tabs/component.json +227 -0
  330. package/es/Tag/component.json +221 -0
  331. package/es/Tag/index.css +1 -1
  332. package/es/Tag/index.d.ts +1 -1
  333. package/es/Tag/index.js +20 -20
  334. package/es/Tag/style/index.css +1 -1
  335. package/es/TextEditor/component.json +186 -0
  336. package/es/TextEditor/index.d.ts +5 -5
  337. package/es/TextEditor/index.js +1 -1
  338. package/es/TextField/component.json +290 -0
  339. package/es/TextField/index.d.ts +2 -2
  340. package/es/TextField/index.js +1 -1
  341. package/es/TimePicker/component.json +176 -0
  342. package/es/Timeline/component.json +110 -0
  343. package/es/Title/component.json +156 -0
  344. package/es/ToggleButton/component.json +153 -0
  345. package/es/ToggleButton/index.js +1 -1
  346. package/es/Tooltip/component.json +176 -0
  347. package/es/Tooltip/index.js +58 -53
  348. package/es/Tooltip/interface.d.ts +14 -1
  349. package/es/Tooltip/utils.js +6 -6
  350. package/es/Transfer/component.json +157 -0
  351. package/es/Tree/OperateBar/index.js +1 -1
  352. package/es/Tree/Tree.js +3 -3
  353. package/es/Tree/component.json +512 -0
  354. package/es/Tree/interface.d.ts +1 -1
  355. package/es/Upload/component.json +450 -0
  356. package/es/Upload/util.js +1 -1
  357. package/es/Utils/snack-kit-shims.d.ts +18 -0
  358. package/es/Utils/snack-kit-shims.js +19 -0
  359. package/es/Utils/type.d.ts +0 -2
  360. package/es/_virtual/index.js +5 -3
  361. package/es/_virtual/index2.js +2 -5
  362. package/es/index.d.ts +2 -0
  363. package/es/index.js +1 -1
  364. package/es/locale/en_US.d.ts +361 -0
  365. package/es/locale/en_US.js +364 -0
  366. package/es/locale/index.d.ts +1 -723
  367. package/es/locale/index2.js +10 -0
  368. package/es/locale/zh_CN.d.ts +361 -0
  369. package/es/locale/zh_CN.js +364 -0
  370. package/es/node_modules/classnames/index.js +1 -1
  371. package/lib/AlignBox/component.json +89 -0
  372. package/lib/AlignBox/index.css +1 -1
  373. package/lib/AlignBox/index.d.ts +6 -2
  374. package/lib/AlignBox/index.js +1 -1
  375. package/lib/AlignBox/style/index.css +1 -1
  376. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  377. package/lib/Anchor/anchorMenu/index.js +1 -1
  378. package/lib/Anchor/component.json +130 -0
  379. package/lib/Anchor/index.js +1 -1
  380. package/lib/Anchor/type.d.ts +8 -4
  381. package/lib/Argv/component.json +216 -0
  382. package/lib/Argv/dataGenerator/index.js +1 -1
  383. package/lib/Argv/index.d.ts +5 -6
  384. package/lib/Argv/index.js +1 -1
  385. package/lib/AutoBox/component.json +133 -0
  386. package/lib/AutoBox/index.d.ts +3 -3
  387. package/lib/AutoBox/index.js +1 -1
  388. package/lib/AutoBox/protal.d.ts +2 -2
  389. package/lib/AutoBox/protal.js +1 -1
  390. package/lib/AutoButton/component.json +109 -0
  391. package/lib/AutoButton/index.js +1 -1
  392. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  393. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  394. package/lib/AutoTips/component.json +121 -0
  395. package/lib/AutoTips/index.js +1 -1
  396. package/lib/Badge/component.json +92 -0
  397. package/lib/Breadcrumbs/component.json +142 -0
  398. package/lib/Breadcrumbs/index.js +1 -1
  399. package/lib/Button/SplitButton.d.ts +2 -2
  400. package/lib/Button/component.json +168 -0
  401. package/lib/Button/index.js +1 -1
  402. package/lib/ButtonGroup/component.json +132 -0
  403. package/lib/ButtonGroup/index.d.ts +1 -1
  404. package/lib/Card/component.json +162 -0
  405. package/lib/Card/index.d.ts +2 -2
  406. package/lib/Card/index.js +1 -1
  407. package/lib/Carousel/component.json +142 -0
  408. package/lib/Carousel/index.d.ts +1 -1
  409. package/lib/Cascader/Cascader.js +1 -1
  410. package/lib/Cascader/OptionList/Column.js +1 -1
  411. package/lib/Cascader/OptionList/index.js +1 -1
  412. package/lib/Cascader/component.json +196 -0
  413. package/lib/Cascader/hooks/useEntities.js +1 -1
  414. package/lib/Cascader/interface.d.ts +1 -0
  415. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  416. package/lib/Cascader/utils/commonUtil.js +1 -1
  417. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  418. package/lib/Cascader/utils/treeUtil.js +1 -1
  419. package/lib/Checkbox/component.json +138 -0
  420. package/lib/CheckboxGroup/component.json +152 -0
  421. package/lib/CheckboxGroup/index.js +1 -1
  422. package/lib/CodeEditor/component.json +189 -0
  423. package/lib/CodeEditor/index.d.ts +11 -10
  424. package/lib/CodeEditor/index.js +1 -1
  425. package/lib/Collapse/component.json +166 -0
  426. package/lib/Collapse/index.d.ts +1 -1
  427. package/lib/Collapse/index.js +1 -1
  428. package/lib/CollapseBox/component.json +84 -0
  429. package/lib/CollapseLayout/component.json +155 -0
  430. package/lib/ColorPicker/component.json +142 -0
  431. package/lib/ComboSelect/component.json +181 -0
  432. package/lib/ComboSelect/index.js +1 -1
  433. package/lib/ComboSelect/interface.d.ts +2 -2
  434. package/lib/ComboSelect/utils.d.ts +3 -3
  435. package/lib/ComboSelect/utils.js +1 -1
  436. package/lib/Container/component.json +111 -0
  437. package/lib/ContentBox/component.json +81 -0
  438. package/lib/CopyText/component.json +118 -0
  439. package/lib/CycleSelector/component.json +98 -0
  440. package/lib/CycleSelector/index.js +1 -1
  441. package/lib/DatePicker/component.json +192 -0
  442. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  443. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  444. package/lib/Descriptions/component.json +142 -0
  445. package/lib/Descriptions/index.d.ts +1 -1
  446. package/lib/Desktop/component.json +171 -0
  447. package/lib/Desktop/index.js +1 -1
  448. package/lib/DragVerify/component.json +114 -0
  449. package/lib/DragVerify/index.js +1 -1
  450. package/lib/Drawer/component.json +200 -0
  451. package/lib/Drawer/index.js +1 -1
  452. package/lib/Drawer/interface.d.ts +1 -1
  453. package/lib/Drawer/util.d.ts +1 -6
  454. package/lib/Drawer/util.js +1 -1
  455. package/lib/Dropdown/component.json +147 -0
  456. package/lib/Dropdown/index.js +1 -1
  457. package/lib/DynamicMultiBox/component.json +278 -0
  458. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  459. package/lib/DynamicMultiBox/index.js +1 -1
  460. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  461. package/lib/Empty/component.json +123 -0
  462. package/lib/Empty/index.css +1 -1
  463. package/lib/Empty/index.d.ts +2 -2
  464. package/lib/Empty/index.js +1 -1
  465. package/lib/Empty/style/index.css +1 -1
  466. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  467. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  468. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  469. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  470. package/lib/FieldForm/Form.d.ts +2 -2
  471. package/lib/FieldForm/Form.js +1 -1
  472. package/lib/FieldForm/FormItemInput.js +1 -1
  473. package/lib/FieldForm/FormItemLabel.js +1 -1
  474. package/lib/FieldForm/FormList.d.ts +2 -2
  475. package/lib/FieldForm/component.json +196 -0
  476. package/lib/FieldForm/context.d.ts +5 -1
  477. package/lib/FieldForm/context.js +1 -1
  478. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  479. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  480. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  481. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  482. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  483. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  484. package/lib/Form/component.json +161 -0
  485. package/lib/Form/index.d.ts +52 -49
  486. package/lib/Form/index.js +1 -1
  487. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  488. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  489. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  490. package/lib/FormItem/compoments/formFile/index.js +1 -1
  491. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  492. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  493. package/lib/FormItem/component.json +171 -0
  494. package/lib/FormItem/index.d.ts +5 -5
  495. package/lib/FormItem/index.js +1 -1
  496. package/lib/FormItem/itemType.js +1 -1
  497. package/lib/FunctionModal/component.json +197 -0
  498. package/lib/FunctionModal/dialog.d.ts +1 -1
  499. package/lib/FunctionModal/modalContext.d.ts +4 -1
  500. package/lib/GlobalContext/confirmLocale.js +1 -1
  501. package/lib/GlobalContext/index.js +1 -1
  502. package/lib/Help/component.json +118 -0
  503. package/lib/HelperText/component.json +126 -0
  504. package/lib/Image/PreviewGroup.js +1 -1
  505. package/lib/Image/component.json +165 -0
  506. package/lib/Image/index.js +1 -1
  507. package/lib/InputCode/component.json +191 -0
  508. package/lib/InputCode/index.d.ts +2 -2
  509. package/lib/InputLang/component.json +205 -0
  510. package/lib/InputLang/index.js +1 -1
  511. package/lib/InputNumber/component.json +162 -0
  512. package/lib/Label/component.json +126 -0
  513. package/lib/Label/index.d.ts +2 -2
  514. package/lib/Loading/component.json +91 -0
  515. package/lib/Menu/component.json +180 -0
  516. package/lib/Menu/verticalMenuList.js +1 -1
  517. package/lib/Message/component.json +246 -0
  518. package/lib/Message/index.d.ts +2 -2
  519. package/lib/Message/index.js +1 -1
  520. package/lib/Modal/Confirm/index.d.ts +1 -1
  521. package/lib/Modal/Confirm/index.js +1 -1
  522. package/lib/Modal/component.json +277 -0
  523. package/lib/Modal/index.d.ts +85 -5
  524. package/lib/Modal/index.js +1 -1
  525. package/lib/Modal/interface.d.ts +1 -0
  526. package/lib/MultiBox/component.json +216 -0
  527. package/lib/MultiBox/index.js +1 -1
  528. package/lib/Notification/component.json +184 -0
  529. package/lib/OperateBtn/component.json +134 -0
  530. package/lib/OperateBtn/index.d.ts +3 -3
  531. package/lib/PageHeader/component.json +112 -0
  532. package/lib/PageHeader/horizontalMeun.js +1 -1
  533. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  534. package/lib/Pagination/component.json +181 -0
  535. package/lib/Pagination/index.js +1 -1
  536. package/lib/ParauiProvider/index.js +1 -1
  537. package/lib/PasswordRules/component.json +105 -0
  538. package/lib/PasswordRules/index.d.ts +4 -4
  539. package/lib/PopConfirm/component.json +227 -0
  540. package/lib/PopConfirm/index.d.ts +1 -1
  541. package/lib/PopConfirm/index.js +1 -1
  542. package/lib/PopMenu/component.json +131 -0
  543. package/lib/PopMenu/hooks.d.ts +1 -1
  544. package/lib/PopMenu/index.js +1 -1
  545. package/lib/Popover/component.json +165 -0
  546. package/lib/Popover/index.js +1 -1
  547. package/lib/Progress/component.json +161 -0
  548. package/lib/Prompt/component.json +144 -0
  549. package/lib/Querying/component.json +96 -0
  550. package/lib/Querying/index.css +1 -1
  551. package/lib/Querying/index.d.ts +2 -2
  552. package/lib/Querying/index.js +1 -1
  553. package/lib/Querying/style/index.css +1 -1
  554. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  555. package/lib/QuickReply/component.json +129 -0
  556. package/lib/QuickReply/index.d.ts +1 -1
  557. package/lib/Radio/component.json +136 -0
  558. package/lib/RadioGroup/component.json +149 -0
  559. package/lib/RangeInput/component.json +198 -0
  560. package/lib/RangeInput/index.js +1 -1
  561. package/lib/Result/component.json +104 -0
  562. package/lib/ScrollBar/component.json +115 -0
  563. package/lib/Search/component.json +177 -0
  564. package/lib/Search/index.d.ts +1 -1
  565. package/lib/Select/component.json +244 -0
  566. package/lib/Select/index.js +1 -1
  567. package/lib/SelectInput/component.json +184 -0
  568. package/lib/Selector/component.json +203 -0
  569. package/lib/Selector/index.js +1 -1
  570. package/lib/Selector/interface.d.ts +2 -2
  571. package/lib/Selector/selectorData/index.js +1 -1
  572. package/lib/Selector/selectorMain/index.js +1 -1
  573. package/lib/Selector/selectorNode/index.js +1 -1
  574. package/lib/Selector/util.d.ts +3 -3
  575. package/lib/Selector/util.js +1 -1
  576. package/lib/SelectorPicker/component.json +179 -0
  577. package/lib/SelectorPicker/index.d.ts +5 -5
  578. package/lib/SelectorPicker/index.js +1 -1
  579. package/lib/SingleBox/component.json +151 -0
  580. package/lib/SingleBox/index.d.ts +2 -2
  581. package/lib/Slider/component.json +181 -0
  582. package/lib/SortBox/component.json +108 -0
  583. package/lib/Status/component.json +104 -0
  584. package/lib/Stepper/component.json +129 -0
  585. package/lib/Stepper/index.d.ts +2 -2
  586. package/lib/Switch/component.json +207 -0
  587. package/lib/Switch/index.css +1 -1
  588. package/lib/Switch/index.d.ts +3 -2
  589. package/lib/Switch/index.js +1 -1
  590. package/lib/Switch/style/index.css +1 -1
  591. package/lib/Table/component.json +547 -0
  592. package/lib/Table/index.d.ts +2 -2
  593. package/lib/Table/index.js +1 -1
  594. package/lib/Table/interface.d.ts +30 -0
  595. package/lib/Table/tableHead.js +1 -1
  596. package/lib/Table/util.d.ts +1 -1
  597. package/lib/Table/util.js +1 -1
  598. package/lib/Tabs/component.json +227 -0
  599. package/lib/Tag/component.json +221 -0
  600. package/lib/Tag/index.css +1 -1
  601. package/lib/Tag/index.d.ts +1 -1
  602. package/lib/Tag/index.js +1 -1
  603. package/lib/Tag/style/index.css +1 -1
  604. package/lib/TextEditor/component.json +186 -0
  605. package/lib/TextEditor/index.d.ts +5 -5
  606. package/lib/TextEditor/index.js +1 -1
  607. package/lib/TextField/component.json +290 -0
  608. package/lib/TextField/index.d.ts +2 -2
  609. package/lib/TextField/index.js +1 -1
  610. package/lib/TimePicker/component.json +176 -0
  611. package/lib/Timeline/component.json +110 -0
  612. package/lib/Title/component.json +156 -0
  613. package/lib/ToggleButton/component.json +153 -0
  614. package/lib/ToggleButton/index.js +1 -1
  615. package/lib/Tooltip/component.json +176 -0
  616. package/lib/Tooltip/index.js +1 -1
  617. package/lib/Tooltip/interface.d.ts +14 -1
  618. package/lib/Tooltip/utils.js +1 -1
  619. package/lib/Transfer/component.json +157 -0
  620. package/lib/Tree/OperateBar/index.js +2 -2
  621. package/lib/Tree/Tree.js +1 -1
  622. package/lib/Tree/component.json +512 -0
  623. package/lib/Tree/interface.d.ts +1 -1
  624. package/lib/Upload/component.json +450 -0
  625. package/lib/Upload/util.js +1 -1
  626. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  627. package/lib/Utils/snack-kit-shims.js +2 -0
  628. package/lib/Utils/type.d.ts +0 -2
  629. package/lib/_virtual/index.js +1 -1
  630. package/lib/_virtual/index2.js +1 -1
  631. package/lib/index.d.ts +2 -0
  632. package/lib/index.js +1 -1
  633. package/lib/locale/en_US.d.ts +361 -0
  634. package/lib/locale/en_US.js +2 -0
  635. package/lib/locale/index.d.ts +1 -723
  636. package/lib/locale/index2.js +2 -0
  637. package/lib/locale/zh_CN.d.ts +361 -0
  638. package/lib/locale/zh_CN.js +2 -0
  639. package/lib/node_modules/classnames/index.js +1 -1
  640. package/package.json +11 -4
  641. package/es/_virtual/index3.js +0 -5
  642. package/es/_virtual/index4.js +0 -5
  643. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  644. package/lib/_virtual/index3.js +0 -2
  645. package/lib/_virtual/index4.js +0 -2
  646. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  647. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  648. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  649. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  650. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -0,0 +1,112 @@
1
+ {
2
+ "name": "PageHeader",
3
+ "category": "Navigation",
4
+ "description": "页头(应用级顶部导航条):左侧 logo/标题 + 中间横向菜单 + 右侧用户/语言/帮助/按钮区",
5
+ "semantic": {
6
+ "intent": [
7
+ "应用顶部导航",
8
+ "横向菜单展示",
9
+ "用户/语言/帮助入口聚合"
10
+ ],
11
+ "useCases": [
12
+ "应用主页头",
13
+ "管理后台顶栏",
14
+ "工作台首屏"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "标准页头(横向菜单 + 右侧功能区)"
21
+ }
22
+ },
23
+ "states": [
24
+ "default"
25
+ ],
26
+ "idealProps": {
27
+ "leftRender": {
28
+ "type": "ReactNode",
29
+ "description": "左侧自定义内容(放 logo / 应用标题 / 返回按钮等);**支持纯文本 / 单行 JSX / 多行复合 JSX**(标题+副标题、返回按钮+标题、面包屑+标题、标题+状态彩标);**注意:不是 title / subTitle / backIcon / breadcrumb / onBack prop**(这些 Ant Design PageHeader 命名本组件均不存在,需要时全部组合进 leftRender ReactNode);典型场景见 docs/view/pageHeader/codeString.ts 注释 7a/7b/7c/7d"
30
+ },
31
+ "menuListProps": {
32
+ "type": "MenuListProps",
33
+ "description": "横向菜单配置对象;MenuListProps = { list?: MenuChildrenProps[]; selectMenu?: string; onClickMenu?: (item: MenuChildrenProps | false) => void; className?: string; moreCustomize?: ReactNode };src/PageHeader/interface.ts:38"
34
+ },
35
+ "footerProps": {
36
+ "type": "FooterProps",
37
+ "description": "**右侧功能区聚合对象**(放语言切换 / 用户菜单 / 帮助 / 按钮列表 / 自助跳转 / 自定义);FooterProps = { backSelfcareProps?: BackSelfcareProps; languageProps?: LanguageProps; btnListProps?: BtnListProps; userProps?: UserProps; helpProps?: HelpProps; render?: ReactNode; className?: string };**所有右侧功能都在这个对象里嵌套配置,不是顶层独立 prop**;**helpProps 结构同 BackSelfcareProps**(label/icon/render/onClick/className);**render 是「替换」语义**,传入后整个右侧被替换,其他 5 widget 字段都不渲染(无追加模式);src/PageHeader/interface.ts:162"
38
+ },
39
+ "selectMenu": {
40
+ "type": "string",
41
+ "description": "当前选中菜单(匹配 menuListProps.list[].path);顶层 selectMenu 会下传到 MenuListProps.selectMenu;src/PageHeader/index.tsx:14"
42
+ },
43
+ "onClickMenu": {
44
+ "type": "(item: MenuChildrenProps | false) => void",
45
+ "description": "菜单点击回调;**回参 item 是 MenuChildrenProps 对象或 false**(false 表示选中态被清空);MenuChildrenProps = { label?, type?, path?, icon?, children?, ... },典型用法 `item.path` 取菜单路径"
46
+ },
47
+ "className": {
48
+ "type": "string",
49
+ "description": "外层容器样式 class"
50
+ },
51
+ "style": {
52
+ "type": "React.CSSProperties",
53
+ "description": "外层容器内联样式"
54
+ }
55
+ },
56
+ "do": [
57
+ "logo / 应用名放 leftRender",
58
+ "横向菜单走 menuListProps.list(树形结构通过 children 嵌套)",
59
+ "右侧功能(语言 / 用户 / 帮助 / 按钮)统一在 footerProps 对象里嵌套配置",
60
+ "selectMenu 受控 — 父维护 string 匹配 list[].path"
61
+ ],
62
+ "dont": [
63
+ "把 title / subTitle / extra / onBack / backIcon / breadcrumb / footer 当作顶层 prop 传(全部 Ant Design 命名,**本组件均不存在**)",
64
+ "把右侧功能字段(languageProps / userProps / btnListProps / helpProps / backSelfcareProps)拆到顶层(必须嵌套在 footerProps 对象里)",
65
+ "在 menuListProps.list[].type 上随意填值(仅支持 'redirect' | 'router' | 'iframe' | 'snack' | 'snackPage' 五种)",
66
+ "传 footerProps.render 同时配其他 widget 字段(render 是**替换语义**,会覆盖整个右侧,languageProps/userProps 等都不渲染;无追加模式)",
67
+ "期望 PageHeader 顶层有 bottomRender / footerRender / statsRender / extraBottom 下方内容区(**本组件不支持下方扩展插槽**;如需统计条/标签栏在 PageHeader 外层 div 包装)",
68
+ "把「标题 + 副标题」/「返回按钮 + 标题」/「面包屑 + 标题」拆成多个顶层 prop(本组件这类复合内容**全部塞进 leftRender ReactNode**;见 docs/view/pageHeader/codeString.ts 注释 7a/7b/7c)"
69
+ ],
70
+ "events": {
71
+ "onClickMenu": {
72
+ "signature": "(item: MenuChildrenProps | false) => void",
73
+ "asyncSupported": false,
74
+ "examples": [
75
+ "获取路由路径:onClickMenu={(item) => { if (item) navigate(item.path); }}",
76
+ "清空选中:onClickMenu={(item) => { if (!item) setSelectMenu(''); else setSelectMenu(item.path); }}",
77
+ "嵌套子菜单点击:回参 item.children 可能有子项,item.path 是当前点击项的路径,非父级路径"
78
+ ],
79
+ "commonMistakes": [
80
+ "假设 item 永远是对象——回参可能是 false(表示选中态被清空),使用前需判断 if (item)",
81
+ "直接用 item.label 作路由——应用 item.path;item.label 是显示文案",
82
+ "不更新 selectMenu 导致菜单高亮不同步——onClickMenu 触发后需 setState(item.path) 回写 selectMenu"
83
+ ]
84
+ }
85
+ },
86
+ "typescriptPitfalls": [
87
+ {
88
+ "issue": "footerProps 内字段不能拆到 PageHeader 顶层,TS 会报未知 prop",
89
+ "wrong": "<PageHeader userProps={{ label: '张三' }} languageProps={{ ... }} /> // 这些不是顶层 prop",
90
+ "right": "<PageHeader footerProps={{ userProps: { label: '张三' }, languageProps: { ... } }} />"
91
+ },
92
+ {
93
+ "issue": "MenuChildrenProps.type 是菜单行为类型,有严格枚举,传错值 TS 不会报错但菜单不响应",
94
+ "wrong": "list={[{ label: '首页', type: 'link', path: '/home' }]} // 'link' 不在联合类型",
95
+ "right": "list={[{ label: '首页', type: 'router', path: '/home' }]} // 合法值: 'redirect' | 'router' | 'iframe' | 'snack' | 'snackPage'"
96
+ },
97
+ {
98
+ "issue": "onClickMenu 回参是 MenuChildrenProps | false,直接访问属性前需判空",
99
+ "wrong": "onClickMenu={(item) => navigate(item.path)} // item 可能是 false,访问 .path 会 TypeError",
100
+ "right": "onClickMenu={(item) => { if (item && item.path) navigate(item.path); }}"
101
+ },
102
+ {
103
+ "issue": "不要从 @para-ui/core 导入 MenuChildrenProps 用于 onClickMenu 类型标注——PageHeader/interface.ts 和 Menu/interface.ts 各有一个同名 MenuChildrenProps,两者互不兼容,强行标注会导致 TS2322",
104
+ "wrong": "import { PageHeader, MenuChildrenProps } from '@para-ui/core';\nonClickMenu={(item: MenuChildrenProps | false) => ...} // MenuChildrenProps 来自 Menu 不来自 PageHeader,类型冲突",
105
+ "right": "import { PageHeader } from '@para-ui/core';\n// 不标注类型,让 TS 推断,或使用 Parameters<typeof PageHeader>[0]['onClickMenu']\nonClickMenu={(item) => { if (item && item.path) navigate(item.path); }}"
106
+ }
107
+ ],
108
+ "mapping": {
109
+ "realComponent": "PageHeader",
110
+ "adapter": null
111
+ }
112
+ }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("../_virtual/jsx-runtime.js"),i=require("react"),Q=require("../Popover/index.js"),W=require("../node_modules/@para-ui/icons/Down/index.js"),X=require("../node_modules/@para-ui/icons/index.js"),ue=require("../node_modules/@para-ui/icons/More/index.js"),ae=require("@paraview/lib"),U=require("../GlobalContext/constant.js"),Y=d=>{let l="div";return(!d||d.length===0)&&(l="a"),l},Z=(d=[],l,u)=>!d||d.length===0?{href:u||`#${l}`}:{},ee=d=>{const{idMenuLast:l,selectMenu:u="",onClickMenu:h,list:N=[],onMouseEnter:z,onMouseLeave:x,level:j=1,className:g}=d,[M,T]=i.useState(null),[C,S]=i.useState(null),[R,E]=i.useState([]),[f]=i.useState({});i.useEffect(()=>()=>{clearTimeout(f.leaveTimer)},[]);const b=(n,r)=>m=>{f.leaveTimer&&clearTimeout(f.leaveTimer),f.leaveTimer=setTimeout(()=>{let v=[n];n.children&&n.children.length>0&&(v=n.children);const w=m.target;S(w),E(v),T(r)},50)},D=(n,r)=>()=>{f.leaveTimer&&clearTimeout(f.leaveTimer),f.leaveTimer=setTimeout(()=>{T(null),S(null),E([])})},F=n=>r=>{r.preventDefault(),!(n.children&&n.children.length>0)&&(h&&h(n),x&&x())},y=n=>{const r=n.icon;if(r){if(typeof r=="string"){const m=X[r];if(m)return m()}return r}return null},a=n=>{const r=n.children;return r&&r.length>0?s.jsxRuntimeExports.jsx(W.Down,{}):null},O=n=>{let r="menu-item-popper-content-item";const m=l&&l[u];return m&&m.indexOf(n.path)!==-1&&(r+=" menu-item-popper-content-item-select"),r},p=()=>{let n="menu-item-popper";return j!==1&&(n+=" menu-item-popper-child"),g&&(n+=` ${g}`),n},$=i.useCallback((n,r)=>s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:n.children&&n.children.length>0&&M===r&&s.jsxRuntimeExports.jsx(ee,{open:M===r,anchorEl:C,list:R,idMenuLast:l,selectMenu:u,onClickMenu:h,onMouseEnter:z,onMouseLeave:x,level:j+1})}),[M,C,R,l,u,h,z,x,j]),P=i.useMemo(()=>s.jsxRuntimeExports.jsx("div",{className:"menu-item-popper-content",children:N.map((n,r)=>{const m=y(n),v=a(n),w=Y(n.children);return s.jsxRuntimeExports.jsx("div",{className:O(n),onMouseLeave:D(),onMouseEnter:b(n,r),children:s.jsxRuntimeExports.jsxs(w,{className:"menu-item-popper-content-item-content",onClick:F(n),...Z(n.children,n.path,n.href),children:[m&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-icon",children:m}),s.jsxRuntimeExports.jsx("span",{className:"menu-item-label",children:n.label}),v&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-arrow",children:v}),$(n,r)]})},r)})}),[N,h,M,C,R,l,u,h,z,x,j]);return s.jsxRuntimeExports.jsx("div",{className:p(),children:P})},ne=d=>{const{list:l,selectMenu:u="",onClickMenu:h,className:N,moreCustomize:z}=d,[x,j]=i.useState(!1),[g,M]=i.useState(null),[T,C]=i.useState(null),[S,R]=i.useState([]),[E,f]=i.useState(""),[b,D]=i.useState({}),[F,y]=i.useState({}),[a,O]=i.useState(null),[p]=i.useState({}),$=i.useRef(null);i.useEffect(()=>{u!==E&&f(u)},[u]),i.useEffect(()=>(r(l||[]),P(),window.addEventListener("resize",P),()=>{window.removeEventListener("resize",P),p.timerResize&&clearTimeout(p.timerResize)}),[l]);const P=()=>{p.timerResize&&clearTimeout(p.timerResize),p.timerResize=setTimeout(()=>{O((l||[]).length),n()},100)},n=e=>{if(e===null||e===0)return;e===void 0&&(e=(l||[]).length);const t=$.current;if(t)if(t.scrollHeight>t.clientHeight){const o=Number(e)-1;O(o),n(o)}else(l||[]).length<=e},r=e=>{const t={},o={},c={},q=(k,_,B)=>{for(let H=0,ce=k.length;H<ce;H++){const I=k[H],L=I.path||"",G=B===void 0?H:B;if(_&&_.path){const K=ae.DeepClone(t[_.path]||[]);K.push(L),t[L]=[...K]}else t[L]=[L];I.children&&I.children.length>0?q(I.children,I,G):(o[L]=t[L],c[L]=G)}};q(e),y(c),D(o)},m=(e,t)=>o=>{let c=[];if(e.children&&e.children.length>0&&(c=e.children),c.length===0)return v();M(t),C(o.target),R(c),j(!0)},v=()=>{j(!1),C(null),R([]),M(null)},w=()=>{v()},J=e=>{h&&h(e)},te=(e,t)=>{let o="horizontal-menu-list-item";const c=b[E];return c&&c.indexOf(e.path)!==-1&&(o+=" horizontal-menu-list-item-select"),g===t&&(o+=" horizontal-menu-list-item-hover"),o},se=e=>{const t=e.icon;if(t){if(typeof t=="string"){const o=X[t];if(o)return o()}return t}return null},re=e=>{const t=e.children;return t&&t.length>0?s.jsxRuntimeExports.jsx(W.Down,{}):null},A=i.useMemo(()=>s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:x&&s.jsxRuntimeExports.jsx(ee,{open:x,anchorEl:T,list:S,idMenuLast:b,selectMenu:E,onClickMenu:J,onMouseLeave:w,level:1})}),[x,T,S,b,E,h,p]),oe=()=>{let e="horizontal-menu-list";return N&&(e+=` ${N}`),e},le=e=>{p.leaveTimer&&clearTimeout(p.leaveTimer);const t=[];for(let o=Number(a),c=(l||[]).length;o<c;o++)t.push((l||[])[o]);M(a),C(e.target),R(t),j(!0)},ie=()=>{let e=" horizontal-menu-list-item";const t=F[E];return a!==null&&a<=t&&(e+=" horizontal-menu-list-item-select"),g===a&&(e+=" horizontal-menu-list-item-hover"),e},V=e=>{e||v()};return s.jsxRuntimeExports.jsxs("div",{className:oe(),ref:$,children:[(l||[]).map((e,t)=>{if(a!==null&&a<=t)return null;const o=se(e),c=re(e),q=Y(e.children);return s.jsxRuntimeExports.jsx(Q.Popover,{visible:g===t,trigger:"hover",placement:"bottom-start",content:A,overlayClassName:`${U.$prefixCls}-horizontal-menu-popper`,onVisibleChange:V,children:s.jsxRuntimeExports.jsxs(q,{onClick:k=>{k.preventDefault(),(!e.children||e.children.length===0)&&J(e)},onMouseEnter:m(e,t),className:te(e,t),...Z(e.children,e.path,e.href),children:[o&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-icon",children:o}),s.jsxRuntimeExports.jsx("span",{className:"menu-item-label",children:e.label}),c&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-arrow",children:c})]})},t)}),(()=>{if(a!==null&&(l||[]).length>a)return s.jsxRuntimeExports.jsx(Q.Popover,{visible:g===a,trigger:"hover",placement:"bottom-start",content:A,overlayClassName:`${U.$prefixCls}-horizontal-menu-popper`,onVisibleChange:V,children:s.jsxRuntimeExports.jsx("div",{onMouseEnter:le,className:ie(),children:z||s.jsxRuntimeExports.jsx("span",{className:"menu-item-icon",children:s.jsxRuntimeExports.jsx(ue.More,{})})})})})()]})};exports.HorizontalMenu=ne;exports.default=ne;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("../_virtual/jsx-runtime.js"),i=require("react"),Q=require("../Popover/index.js"),W=require("../node_modules/@para-ui/icons/Down/index.js"),X=require("../node_modules/@para-ui/icons/index.js"),ue=require("../node_modules/@para-ui/icons/More/index.js"),ae=require("@snack-kit/lib"),U=require("../GlobalContext/constant.js"),Y=d=>{let l="div";return(!d||d.length===0)&&(l="a"),l},Z=(d=[],l,u)=>!d||d.length===0?{href:u||`#${l}`}:{},ee=d=>{const{idMenuLast:l,selectMenu:u="",onClickMenu:h,list:N=[],onMouseEnter:z,onMouseLeave:x,level:j=1,className:g}=d,[M,T]=i.useState(null),[C,S]=i.useState(null),[R,E]=i.useState([]),[f]=i.useState({});i.useEffect(()=>()=>{clearTimeout(f.leaveTimer)},[]);const b=(n,r)=>m=>{f.leaveTimer&&clearTimeout(f.leaveTimer),f.leaveTimer=setTimeout(()=>{let v=[n];n.children&&n.children.length>0&&(v=n.children);const w=m.target;S(w),E(v),T(r)},50)},D=(n,r)=>()=>{f.leaveTimer&&clearTimeout(f.leaveTimer),f.leaveTimer=setTimeout(()=>{T(null),S(null),E([])})},F=n=>r=>{r.preventDefault(),!(n.children&&n.children.length>0)&&(h&&h(n),x&&x())},y=n=>{const r=n.icon;if(r){if(typeof r=="string"){const m=X[r];if(m)return m()}return r}return null},a=n=>{const r=n.children;return r&&r.length>0?s.jsxRuntimeExports.jsx(W.Down,{}):null},O=n=>{let r="menu-item-popper-content-item";const m=l&&l[u];return m&&m.indexOf(n.path)!==-1&&(r+=" menu-item-popper-content-item-select"),r},p=()=>{let n="menu-item-popper";return j!==1&&(n+=" menu-item-popper-child"),g&&(n+=` ${g}`),n},$=i.useCallback((n,r)=>s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:n.children&&n.children.length>0&&M===r&&s.jsxRuntimeExports.jsx(ee,{open:M===r,anchorEl:C,list:R,idMenuLast:l,selectMenu:u,onClickMenu:h,onMouseEnter:z,onMouseLeave:x,level:j+1})}),[M,C,R,l,u,h,z,x,j]),P=i.useMemo(()=>s.jsxRuntimeExports.jsx("div",{className:"menu-item-popper-content",children:N.map((n,r)=>{const m=y(n),v=a(n),w=Y(n.children);return s.jsxRuntimeExports.jsx("div",{className:O(n),onMouseLeave:D(),onMouseEnter:b(n,r),children:s.jsxRuntimeExports.jsxs(w,{className:"menu-item-popper-content-item-content",onClick:F(n),...Z(n.children,n.path,n.href),children:[m&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-icon",children:m}),s.jsxRuntimeExports.jsx("span",{className:"menu-item-label",children:n.label}),v&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-arrow",children:v}),$(n,r)]})},r)})}),[N,h,M,C,R,l,u,h,z,x,j]);return s.jsxRuntimeExports.jsx("div",{className:p(),children:P})},ne=d=>{const{list:l,selectMenu:u="",onClickMenu:h,className:N,moreCustomize:z}=d,[x,j]=i.useState(!1),[g,M]=i.useState(null),[T,C]=i.useState(null),[S,R]=i.useState([]),[E,f]=i.useState(""),[b,D]=i.useState({}),[F,y]=i.useState({}),[a,O]=i.useState(null),[p]=i.useState({}),$=i.useRef(null);i.useEffect(()=>{u!==E&&f(u)},[u]),i.useEffect(()=>(r(l||[]),P(),window.addEventListener("resize",P),()=>{window.removeEventListener("resize",P),p.timerResize&&clearTimeout(p.timerResize)}),[l]);const P=()=>{p.timerResize&&clearTimeout(p.timerResize),p.timerResize=setTimeout(()=>{O((l||[]).length),n()},100)},n=e=>{if(e===null||e===0)return;e===void 0&&(e=(l||[]).length);const t=$.current;if(t)if(t.scrollHeight>t.clientHeight){const o=Number(e)-1;O(o),n(o)}else(l||[]).length<=e},r=e=>{const t={},o={},c={},k=(q,_,B)=>{for(let H=0,ce=q.length;H<ce;H++){const I=q[H],L=I.path||"",G=B===void 0?H:B;if(_&&_.path){const K=ae.DeepClone(t[_.path]||[]);K.push(L),t[L]=[...K]}else t[L]=[L];I.children&&I.children.length>0?k(I.children,I,G):(o[L]=t[L],c[L]=G)}};k(e),y(c),D(o)},m=(e,t)=>o=>{let c=[];if(e.children&&e.children.length>0&&(c=e.children),c.length===0)return v();M(t),C(o.target),R(c),j(!0)},v=()=>{j(!1),C(null),R([]),M(null)},w=()=>{v()},J=e=>{h&&h(e)},te=(e,t)=>{let o="horizontal-menu-list-item";const c=b[E];return c&&c.indexOf(e.path)!==-1&&(o+=" horizontal-menu-list-item-select"),g===t&&(o+=" horizontal-menu-list-item-hover"),o},se=e=>{const t=e.icon;if(t){if(typeof t=="string"){const o=X[t];if(o)return o()}return t}return null},re=e=>{const t=e.children;return t&&t.length>0?s.jsxRuntimeExports.jsx(W.Down,{}):null},A=i.useMemo(()=>s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:x&&s.jsxRuntimeExports.jsx(ee,{open:x,anchorEl:T,list:S,idMenuLast:b,selectMenu:E,onClickMenu:J,onMouseLeave:w,level:1})}),[x,T,S,b,E,h,p]),oe=()=>{let e="horizontal-menu-list";return N&&(e+=` ${N}`),e},le=e=>{p.leaveTimer&&clearTimeout(p.leaveTimer);const t=[];for(let o=Number(a),c=(l||[]).length;o<c;o++)t.push((l||[])[o]);M(a),C(e.target),R(t),j(!0)},ie=()=>{let e=" horizontal-menu-list-item";const t=F[E];return a!==null&&a<=t&&(e+=" horizontal-menu-list-item-select"),g===a&&(e+=" horizontal-menu-list-item-hover"),e},V=e=>{e||v()};return s.jsxRuntimeExports.jsxs("div",{className:oe(),ref:$,children:[(l||[]).map((e,t)=>{if(a!==null&&a<=t)return null;const o=se(e),c=re(e),k=Y(e.children);return s.jsxRuntimeExports.jsx(Q.Popover,{visible:g===t,trigger:"hover",placement:"bottom-start",content:A,overlayClassName:`${U.$prefixCls}-horizontal-menu-popper`,onVisibleChange:V,children:s.jsxRuntimeExports.jsxs(k,{onClick:q=>{q.preventDefault(),(!e.children||e.children.length===0)&&J(e)},onMouseEnter:m(e,t),className:te(e,t),...Z(e.children,e.path,e.href),children:[o&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-icon",children:o}),s.jsxRuntimeExports.jsx("span",{className:"menu-item-label",children:e.label}),c&&s.jsxRuntimeExports.jsx("span",{className:"menu-item-arrow",children:c})]})},t)}),(()=>{if(a!==null&&(l||[]).length>a)return s.jsxRuntimeExports.jsx(Q.Popover,{visible:g===a,trigger:"hover",placement:"bottom-start",content:A,overlayClassName:`${U.$prefixCls}-horizontal-menu-popper`,onVisibleChange:V,children:s.jsxRuntimeExports.jsx("div",{onMouseEnter:le,className:ie(),children:z||s.jsxRuntimeExports.jsx("span",{className:"menu-item-icon",children:s.jsxRuntimeExports.jsx(ue.More,{})})})})})()]})};exports.HorizontalMenu=ne;exports.default=ne;
2
2
  //# sourceMappingURL=horizontalMeun.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../_virtual/jsx-runtime.js"),n=require("react"),K=require("../Button/index.js"),y=require("../Popover/index.js"),Q=require("../AutoTips/index.js"),X=require("../node_modules/@para-ui/icons/Down/index.js"),Y=require("../node_modules/@para-ui/icons/Right/index.js"),S=require("../GlobalContext/constant.js"),F=require("@paraview/lib"),Z=g=>{const{icon:s,label:p,render:a,onClick:m,className:l}=g,r=t=>{m&&m(t)},x=()=>e.jsxRuntimeExports.jsx(K.Button,{startIcon:s,variant:"contained",onClick:r,size:"small",children:p}),c=()=>{let t="back-btn";return l&&(t+=` ${l}`),t};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:a||e.jsxRuntimeExports.jsx("div",{className:c(),children:x()})})},ee=g=>{const{icon:s,label:p,render:a,onClick:m,className:l}=g,r=()=>{let x="help-btn";return l&&(x+=` ${l}`),x};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:a||e.jsxRuntimeExports.jsxs("div",{className:r(),onClick:m,children:[s&&e.jsxRuntimeExports.jsx("span",{className:"icon",children:s}),p&&e.jsxRuntimeExports.jsx("span",{className:"label",children:p})]})})},se=g=>{const{language:s=[],selectLang:p="",onClick:a,className:m,render:l}=g,[r,x]=n.useState({}),[c,t]=n.useState({}),[E,R]=n.useState(!1);n.useEffect(()=>{const o=r[p]||{};t(o)},[p,r]),n.useEffect(()=>{const o={};for(let d=0,u=s.length;d<u;d++){const C=s[d];C.value&&(o[C.value]=C)}x(o)},[s]);const v=o=>()=>{a&&a(o.value,o),R(!1)},f=()=>{let o="language";return m&&(o+=` ${m}`),E&&(o+=" language-select"),o},_=o=>{R(o)},b=()=>{const o=d=>{let u="menu-popover-item";return d.value===c.value&&(u+=" menu-popover-item-select"),u};return e.jsxRuntimeExports.jsx("div",{className:"menu-popover-box",children:s.map((d,u)=>e.jsxRuntimeExports.jsxs("div",{className:o(d),onClick:v(d),children:[d.icon&&e.jsxRuntimeExports.jsx("span",{className:"icon",children:d.icon}),d.label&&e.jsxRuntimeExports.jsx("span",{className:"label",style:{marginLeft:"5px"},children:d.label})]},u))})},N=()=>{const o=()=>e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[c.icon&&e.jsxRuntimeExports.jsx("span",{className:"language-item-icon",children:c.icon}),c.label&&e.jsxRuntimeExports.jsx("span",{className:"language-item-label",children:c.label})]});return e.jsxRuntimeExports.jsx(y.Popover,{trigger:"hover",visible:E,placement:"bottom-start",content:b(),overlayClassName:`${S.$prefixCls}-horizontal-meun-right-popover`,onVisibleChange:_,children:e.jsxRuntimeExports.jsx("div",{className:"language-item",children:o()})})};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:l||e.jsxRuntimeExports.jsx("div",{className:f(),children:N()})})},te=g=>{const{list:s=[],render:p,className:a,onClick:m}=g,l=()=>{let c="btn-list";return a&&(c+=` ${a}`),c},r=c=>t=>{m&&m(c,t)},x=n.useMemo(()=>{const c=t=>e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[t.icon&&e.jsxRuntimeExports.jsx("span",{className:"btn-list-item-icon",children:t.icon}),t.label&&e.jsxRuntimeExports.jsx("span",{className:"btn-list-item-label",children:t.label})]});return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:s.map((t,E)=>{let R="btn-list-item";return t.sign&&(R+=" btn-list-item-sign"),e.jsxRuntimeExports.jsx("div",{className:R,onClick:r(t),children:c(t)},E)})})},[s]);return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:p||e.jsxRuntimeExports.jsx("div",{className:l(),children:x})})},q=g=>{const{item:s,selectValue:p,selectId:a,clickUserItem:m,hoverId:l,showDialog:r,idMapLast:x,onMouseEnter:c,onMouseLeave:t}=g,[E,R]=n.useState(!1),[v,f]=n.useState("");n.useEffect(()=>(r===!1&&R(!1),()=>{f("")}),[r]);const _=u=>{f(u._paraui_menu_id||"")},b=()=>{},N=()=>{let u="menu-popover-item";return l===s._paraui_menu_id&&(u+=" menu-popover-item-hover"),s._paraui_menu_id&&x[l]&&x[l].indexOf(s._paraui_menu_id)!==-1&&(u+=" menu-popover-item-hover"),s._paraui_menu_id&&x[a]&&x[a].indexOf(s._paraui_menu_id)!==-1&&(u+=" menu-popover-item-select"),u},o=()=>{if(s.children&&s.children.length>0)return e.jsxRuntimeExports.jsx("div",{className:"menu-popover-box",children:s.children&&s.children.map((u,C)=>e.jsxRuntimeExports.jsx(q,{item:u,selectValue:p,clickUserItem:m,onMouseEnter:()=>_(u),onMouseLeave:b,hoverId:v,showDialog:r,selectId:a,idMapLast:x},C))})},d=u=>{R(u),u||f("")};return e.jsxRuntimeExports.jsx(y.Popover,{visible:E,trigger:"hover",placement:"left-start",content:o(),onVisibleChange:d,overlayClassName:`${S.$prefixCls}-horizontal-meun-right-popover ${S.$prefixCls}-horizontal-meun-right-popover-children`,children:e.jsxRuntimeExports.jsxs("div",{className:N(),onClick:m(s),onMouseEnter:c,onMouseLeave:t,children:[s.icon&&e.jsxRuntimeExports.jsx("span",{className:"icon",style:{marginRight:"5px"},children:s.icon}),s.label&&e.jsxRuntimeExports.jsx("span",{className:"label",children:e.jsxRuntimeExports.jsx(Q.default,{children:s.label})}),s.children&&s.children.length>0&&e.jsxRuntimeExports.jsx("span",{className:"icon icon-right",children:e.jsxRuntimeExports.jsx(Y.Right,{})})]})})},ne=g=>{const{img:s,imgRender:p,label:a,render:m,className:l,list:r,onClick:x,onClickMenu:c,selectValue:t}=g,[E,R]=n.useState([]),[v,f]=n.useState(""),[_,b]=n.useState(!1),[N,o]=n.useState(""),[d,u]=n.useState({}),[C]=n.useState({}),L=n.useRef(null),I=n.useRef({listJson:{}});n.useEffect(()=>()=>{clearTimeout(C.timer)},[]),n.useEffect(()=>{J()},[r]),n.useEffect(()=>{const i=Object.keys(I.current.listJson);for(let h=0,M=i.length;h<M;h++){const k=I.current.listJson[i[h]];if(k.value===t){f(k._paraui_menu_id||"");break}}},[t,r]);const J=()=>{const i={},h={},M={},k=(D,$)=>{for(let P=0,G=D.length;P<G;P++){const j=D[P];if(j._paraui_menu_id=`_paraui_menu_id_${F.UUID()}`,i[j._paraui_menu_id]=j,$&&$._paraui_menu_id){const w=F.DeepClone(h[$._paraui_menu_id]||[]);w.push(j._paraui_menu_id),h[j._paraui_menu_id]=[...w]}else h[j._paraui_menu_id]=[j._paraui_menu_id],j._paraui_menu_first=!0;j.children&&j.children.length>0?k(j.children,j):M[j._paraui_menu_id]=h[j._paraui_menu_id]}};k(r||[]),I.current.listJson=i,R([...r||[]]),u(M)},B=i=>{x&&x(i)},U=i=>()=>{i.children&&i.children.length>0||(c&&c(i.value,i),b(!1),o(""))},H=i=>{o(i._paraui_menu_id||"")},V=()=>{},O=i=>{b(i),i||o("")},T=()=>{if(E.length===0)return null;const i=()=>{const h={};return L&&L.current&&(h.minWidth=`${L.current.getBoundingClientRect().width}px`),h};return e.jsxRuntimeExports.jsx("div",{className:"menu-popover-box",style:i(),children:E&&E.map((h,M)=>e.jsxRuntimeExports.jsx(q,{item:h,selectValue:t,clickUserItem:U,onMouseEnter:()=>H(h),onMouseLeave:V,hoverId:N,showDialog:_,selectId:v,idMapLast:d},M))})},W=()=>e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[p||s&&e.jsxRuntimeExports.jsx("img",{src:s,alt:""}),a&&e.jsxRuntimeExports.jsx("span",{className:"label",style:{marginLeft:"12px"},children:a}),r&&r.length>0&&e.jsxRuntimeExports.jsx("span",{className:"arrow",children:e.jsxRuntimeExports.jsx(X.Down,{})})]}),A=()=>{let i="logo";return l&&(i+=` ${l}`),_&&(i+=" logo-show-dialog"),i};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:m||e.jsxRuntimeExports.jsx(y.Popover,{trigger:"hover",visible:_,placement:"bottom-start",content:T(),overlayClassName:`${S.$prefixCls}-horizontal-meun-right-popover`,onVisibleChange:O,children:e.jsxRuntimeExports.jsx("div",{className:A(),onClick:B,ref:L,children:W()})})})},z=g=>{const{className:s="",backSelfcareProps:p,languageProps:a,btnListProps:m,userProps:l,helpProps:r,render:x}=g,c=()=>{let _="horizontal-meun-right";return s&&(_+=` ${s}`),_},t=n.useMemo(()=>p&&e.jsxRuntimeExports.jsx(Z,{...p}),[p]),E=n.useMemo(()=>r&&e.jsxRuntimeExports.jsx(ee,{...r}),[r]),R=n.useMemo(()=>a&&e.jsxRuntimeExports.jsx(se,{...a}),[a]),v=n.useMemo(()=>m&&e.jsxRuntimeExports.jsx(te,{...m}),[m]),f=n.useMemo(()=>l&&e.jsxRuntimeExports.jsx(ne,{...l}),[l]);return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:x||e.jsxRuntimeExports.jsxs("div",{className:c(),children:[t,E,R,v,f]})})};exports.HorizontalMeunRight=z;exports.default=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../_virtual/jsx-runtime.js"),n=require("react"),K=require("../Button/index.js"),y=require("../Popover/index.js"),Q=require("../AutoTips/index.js"),X=require("../node_modules/@para-ui/icons/Down/index.js"),Y=require("../node_modules/@para-ui/icons/Right/index.js"),S=require("../GlobalContext/constant.js"),F=require("@snack-kit/lib"),Z=g=>{const{icon:s,label:p,render:a,onClick:m,className:l}=g,r=t=>{m&&m(t)},x=()=>e.jsxRuntimeExports.jsx(K.Button,{startIcon:s,variant:"contained",onClick:r,size:"small",children:p}),c=()=>{let t="back-btn";return l&&(t+=` ${l}`),t};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:a||e.jsxRuntimeExports.jsx("div",{className:c(),children:x()})})},ee=g=>{const{icon:s,label:p,render:a,onClick:m,className:l}=g,r=()=>{let x="help-btn";return l&&(x+=` ${l}`),x};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:a||e.jsxRuntimeExports.jsxs("div",{className:r(),onClick:m,children:[s&&e.jsxRuntimeExports.jsx("span",{className:"icon",children:s}),p&&e.jsxRuntimeExports.jsx("span",{className:"label",children:p})]})})},se=g=>{const{language:s=[],selectLang:p="",onClick:a,className:m,render:l}=g,[r,x]=n.useState({}),[c,t]=n.useState({}),[E,R]=n.useState(!1);n.useEffect(()=>{const o=r[p]||{};t(o)},[p,r]),n.useEffect(()=>{const o={};for(let d=0,u=s.length;d<u;d++){const C=s[d];C.value&&(o[C.value]=C)}x(o)},[s]);const v=o=>()=>{a&&a(o.value,o),R(!1)},f=()=>{let o="language";return m&&(o+=` ${m}`),E&&(o+=" language-select"),o},_=o=>{R(o)},b=()=>{const o=d=>{let u="menu-popover-item";return d.value===c.value&&(u+=" menu-popover-item-select"),u};return e.jsxRuntimeExports.jsx("div",{className:"menu-popover-box",children:s.map((d,u)=>e.jsxRuntimeExports.jsxs("div",{className:o(d),onClick:v(d),children:[d.icon&&e.jsxRuntimeExports.jsx("span",{className:"icon",children:d.icon}),d.label&&e.jsxRuntimeExports.jsx("span",{className:"label",style:{marginLeft:"5px"},children:d.label})]},u))})},N=()=>{const o=()=>e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[c.icon&&e.jsxRuntimeExports.jsx("span",{className:"language-item-icon",children:c.icon}),c.label&&e.jsxRuntimeExports.jsx("span",{className:"language-item-label",children:c.label})]});return e.jsxRuntimeExports.jsx(y.Popover,{trigger:"hover",visible:E,placement:"bottom-start",content:b(),overlayClassName:`${S.$prefixCls}-horizontal-meun-right-popover`,onVisibleChange:_,children:e.jsxRuntimeExports.jsx("div",{className:"language-item",children:o()})})};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:l||e.jsxRuntimeExports.jsx("div",{className:f(),children:N()})})},te=g=>{const{list:s=[],render:p,className:a,onClick:m}=g,l=()=>{let c="btn-list";return a&&(c+=` ${a}`),c},r=c=>t=>{m&&m(c,t)},x=n.useMemo(()=>{const c=t=>e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[t.icon&&e.jsxRuntimeExports.jsx("span",{className:"btn-list-item-icon",children:t.icon}),t.label&&e.jsxRuntimeExports.jsx("span",{className:"btn-list-item-label",children:t.label})]});return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:s.map((t,E)=>{let R="btn-list-item";return t.sign&&(R+=" btn-list-item-sign"),e.jsxRuntimeExports.jsx("div",{className:R,onClick:r(t),children:c(t)},E)})})},[s]);return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:p||e.jsxRuntimeExports.jsx("div",{className:l(),children:x})})},q=g=>{const{item:s,selectValue:p,selectId:a,clickUserItem:m,hoverId:l,showDialog:r,idMapLast:x,onMouseEnter:c,onMouseLeave:t}=g,[E,R]=n.useState(!1),[v,f]=n.useState("");n.useEffect(()=>(r===!1&&R(!1),()=>{f("")}),[r]);const _=u=>{f(u._paraui_menu_id||"")},b=()=>{},N=()=>{let u="menu-popover-item";return l===s._paraui_menu_id&&(u+=" menu-popover-item-hover"),s._paraui_menu_id&&x[l]&&x[l].indexOf(s._paraui_menu_id)!==-1&&(u+=" menu-popover-item-hover"),s._paraui_menu_id&&x[a]&&x[a].indexOf(s._paraui_menu_id)!==-1&&(u+=" menu-popover-item-select"),u},o=()=>{if(s.children&&s.children.length>0)return e.jsxRuntimeExports.jsx("div",{className:"menu-popover-box",children:s.children&&s.children.map((u,C)=>e.jsxRuntimeExports.jsx(q,{item:u,selectValue:p,clickUserItem:m,onMouseEnter:()=>_(u),onMouseLeave:b,hoverId:v,showDialog:r,selectId:a,idMapLast:x},C))})},d=u=>{R(u),u||f("")};return e.jsxRuntimeExports.jsx(y.Popover,{visible:E,trigger:"hover",placement:"left-start",content:o(),onVisibleChange:d,overlayClassName:`${S.$prefixCls}-horizontal-meun-right-popover ${S.$prefixCls}-horizontal-meun-right-popover-children`,children:e.jsxRuntimeExports.jsxs("div",{className:N(),onClick:m(s),onMouseEnter:c,onMouseLeave:t,children:[s.icon&&e.jsxRuntimeExports.jsx("span",{className:"icon",style:{marginRight:"5px"},children:s.icon}),s.label&&e.jsxRuntimeExports.jsx("span",{className:"label",children:e.jsxRuntimeExports.jsx(Q.default,{children:s.label})}),s.children&&s.children.length>0&&e.jsxRuntimeExports.jsx("span",{className:"icon icon-right",children:e.jsxRuntimeExports.jsx(Y.Right,{})})]})})},ne=g=>{const{img:s,imgRender:p,label:a,render:m,className:l,list:r,onClick:x,onClickMenu:c,selectValue:t}=g,[E,R]=n.useState([]),[v,f]=n.useState(""),[_,b]=n.useState(!1),[N,o]=n.useState(""),[d,u]=n.useState({}),[C]=n.useState({}),L=n.useRef(null),I=n.useRef({listJson:{}});n.useEffect(()=>()=>{clearTimeout(C.timer)},[]),n.useEffect(()=>{J()},[r]),n.useEffect(()=>{const i=Object.keys(I.current.listJson);for(let h=0,M=i.length;h<M;h++){const k=I.current.listJson[i[h]];if(k.value===t){f(k._paraui_menu_id||"");break}}},[t,r]);const J=()=>{const i={},h={},M={},k=(D,$)=>{for(let P=0,G=D.length;P<G;P++){const j=D[P];if(j._paraui_menu_id=`_paraui_menu_id_${F.UUID()}`,i[j._paraui_menu_id]=j,$&&$._paraui_menu_id){const w=F.DeepClone(h[$._paraui_menu_id]||[]);w.push(j._paraui_menu_id),h[j._paraui_menu_id]=[...w]}else h[j._paraui_menu_id]=[j._paraui_menu_id],j._paraui_menu_first=!0;j.children&&j.children.length>0?k(j.children,j):M[j._paraui_menu_id]=h[j._paraui_menu_id]}};k(r||[]),I.current.listJson=i,R([...r||[]]),u(M)},B=i=>{x&&x(i)},U=i=>()=>{i.children&&i.children.length>0||(c&&c(i.value,i),b(!1),o(""))},H=i=>{o(i._paraui_menu_id||"")},V=()=>{},O=i=>{b(i),i||o("")},T=()=>{if(E.length===0)return null;const i=()=>{const h={};return L&&L.current&&(h.minWidth=`${L.current.getBoundingClientRect().width}px`),h};return e.jsxRuntimeExports.jsx("div",{className:"menu-popover-box",style:i(),children:E&&E.map((h,M)=>e.jsxRuntimeExports.jsx(q,{item:h,selectValue:t,clickUserItem:U,onMouseEnter:()=>H(h),onMouseLeave:V,hoverId:N,showDialog:_,selectId:v,idMapLast:d},M))})},W=()=>e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[p||s&&e.jsxRuntimeExports.jsx("img",{src:s,alt:""}),a&&e.jsxRuntimeExports.jsx("span",{className:"label",style:{marginLeft:"12px"},children:a}),r&&r.length>0&&e.jsxRuntimeExports.jsx("span",{className:"arrow",children:e.jsxRuntimeExports.jsx(X.Down,{})})]}),A=()=>{let i="logo";return l&&(i+=` ${l}`),_&&(i+=" logo-show-dialog"),i};return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:m||e.jsxRuntimeExports.jsx(y.Popover,{trigger:"hover",visible:_,placement:"bottom-start",content:T(),overlayClassName:`${S.$prefixCls}-horizontal-meun-right-popover`,onVisibleChange:O,children:e.jsxRuntimeExports.jsx("div",{className:A(),onClick:B,ref:L,children:W()})})})},z=g=>{const{className:s="",backSelfcareProps:p,languageProps:a,btnListProps:m,userProps:l,helpProps:r,render:x}=g,c=()=>{let _="horizontal-meun-right";return s&&(_+=` ${s}`),_},t=n.useMemo(()=>p&&e.jsxRuntimeExports.jsx(Z,{...p}),[p]),E=n.useMemo(()=>r&&e.jsxRuntimeExports.jsx(ee,{...r}),[r]),R=n.useMemo(()=>a&&e.jsxRuntimeExports.jsx(se,{...a}),[a]),v=n.useMemo(()=>m&&e.jsxRuntimeExports.jsx(te,{...m}),[m]),f=n.useMemo(()=>l&&e.jsxRuntimeExports.jsx(ne,{...l}),[l]);return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:x||e.jsxRuntimeExports.jsxs("div",{className:c(),children:[t,E,R,v,f]})})};exports.HorizontalMeunRight=z;exports.default=z;
2
2
  //# sourceMappingURL=horizontalMeunRight.js.map
@@ -0,0 +1,181 @@
1
+ {
2
+ "name": "Pagination",
3
+ "category": "Navigation",
4
+ "description": "分页组件,支持 simple / complex 双模式及自定义布局组合",
5
+ "semantic": {
6
+ "intent": [
7
+ "展示数据",
8
+ "分批加载",
9
+ "导航"
10
+ ],
11
+ "useCases": [
12
+ "数据列表",
13
+ "搜索结果",
14
+ "评论区"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "simple": {
20
+ "meaning": "简单模式(仅翻页按钮/数字页码)"
21
+ },
22
+ "complex": {
23
+ "meaning": "复杂模式(含总数 + 每页行数 + 页码 + 跳转)"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "disabled"
29
+ ],
30
+ "idealProps": {
31
+ "total": {
32
+ "type": "number",
33
+ "default": 0,
34
+ "description": "数据总数"
35
+ },
36
+ "page": {
37
+ "type": "number",
38
+ "default": 1,
39
+ "description": "当前页码(受控)"
40
+ },
41
+ "rowsPerPage": {
42
+ "type": "number[]",
43
+ "default": [10, 20, 50, 100],
44
+ "description": "每页行数候选项列表(下拉选项)"
45
+ },
46
+ "currentRowsPerPage": {
47
+ "type": "number",
48
+ "default": 10,
49
+ "description": "当前选中的每页行数"
50
+ },
51
+ "type": {
52
+ "type": "enum",
53
+ "values": [
54
+ "simple",
55
+ "complex",
56
+ "PaginationLayout[]"
57
+ ],
58
+ "default": "simple",
59
+ "description": "分页类型;**'simple'** = 仅翻页按钮/数字(sizes/pageRow/jumper 均不显示);**'complex'** = 完整布局(总数+每页行数+页码+跳转,支持 autoType 响应式收叠);**PaginationLayout[]** = 自定义组合,合法值 'sizes'|'pageRow'|'pager'|'jumper'"
60
+ },
61
+ "pagerType": {
62
+ "type": "enum",
63
+ "values": [
64
+ "btn",
65
+ "num"
66
+ ],
67
+ "default": "num",
68
+ "description": "页码显示模式 btn=上下页按钮 / num=数字页码列表"
69
+ },
70
+ "flippingArrow": {
71
+ "type": "PaginationFlippingArrow[]",
72
+ "values": [
73
+ "prev",
74
+ "next"
75
+ ],
76
+ "default": ["prev", "next"],
77
+ "description": "方向键 layout;传空数组隐藏全部箭头"
78
+ },
79
+ "autoType": {
80
+ "type": "boolean",
81
+ "default": true,
82
+ "description": "type=complex 自适应模式(响应宽度自动收叠)"
83
+ },
84
+ "resizeLine": {
85
+ "type": "string | number",
86
+ "description": "type=complex 时重新计算换行(传值变化触发自适应)"
87
+ },
88
+ "pageMaxLimit": {
89
+ "type": "boolean",
90
+ "default": true,
91
+ "description": "当前页超过总页数时自动回落到最大页"
92
+ },
93
+ "skipFunc": {
94
+ "type": "function",
95
+ "signature": "(num?: number, skipValue?: number) => void",
96
+ "description": "回车跳页回调;num 是校正后目标页(已 clamp 到 1~totalPage),skipValue 是输入框原始值(未校正)"
97
+ },
98
+ "changePage": {
99
+ "type": "function",
100
+ "signature": "(num?: number) => void",
101
+ "description": "页码改变回调(点击页码 / prev / next / 回车跳转时均触发);num 是目标页码"
102
+ },
103
+ "changeRowsPerPage": {
104
+ "type": "function",
105
+ "signature": "(num: number) => void",
106
+ "description": "每页行数改变回调;num 是新选中行数(非下标,是实际数值)"
107
+ },
108
+ "getPopupContainer": {
109
+ "type": "function",
110
+ "description": "rowsPerPage 下拉的渲染父节点 (triggerNode) => HTMLElement"
111
+ },
112
+ "className": {
113
+ "type": "string",
114
+ "description": "自定义类名(src/Pagination/index.tsx:33 interface 实证,追加到根容器 div)"
115
+ },
116
+ "style": {
117
+ "type": "React.CSSProperties",
118
+ "description": "自定义样式(src/Pagination/index.tsx:35 interface 实证,透传到根容器 div)"
119
+ }
120
+ },
121
+ "do": [
122
+ "Table 独立分页时:changePage 里更新父组件 page state 并重新请求数据,将最新 page 回传给 Pagination 维持受控",
123
+ "展示总记录数 + 每页行数切换:使用 type='complex',changeRowsPerPage 里同时重置 page=1 再发请求",
124
+ "在数据量较大时使用服务端分页——本地分页仅适合 <200 条",
125
+ "保持每页数量适中(10-50)"
126
+ ],
127
+ "dont": [
128
+ "在极少量数据(<20)时使用 Pagination",
129
+ "隐藏当前页码标识",
130
+ "changePage/changeRowsPerPage 里不更新父组件 page state——Pagination 是受控组件,不回写 page prop 会导致翻页后页码回弹"
131
+ ],
132
+ "events": {
133
+ "changePage": {
134
+ "signature": "(num?: number) => void",
135
+ "asyncSupported": false,
136
+ "examples": [
137
+ "受控翻页:changePage={(num) => { setPage(num ?? 1); fetchData(num ?? 1, currentRowsPerPage); }}",
138
+ "配合 Table:changePage={(num) => { tableRef.current.reload({ page: num }); }}",
139
+ "防止 undefined:changePage={(num) => setPage(num ?? 1)} // num 在正常翻页时有值,极端情况下可能 undefined"
140
+ ],
141
+ "commonMistakes": [
142
+ "收到 changePage 后不更新 page prop——Pagination 是受控组件,不回写会导致页码状态不一致",
143
+ "期望 changePage 在组件内部状态已更新后触发——组件内部先 setPageCom(num) 再触发 changePage,父组件需自行维护独立的 page state",
144
+ "changeRowsPerPage 里忘记重置 page=1——切换每页条数后通常应回到第一页"
145
+ ]
146
+ },
147
+ "changeRowsPerPage": {
148
+ "signature": "(num: number) => void",
149
+ "asyncSupported": false,
150
+ "examples": [
151
+ "切换每页行数并重置页码:changeRowsPerPage={(num) => { setCurrentRowsPerPage(num); setPage(1); fetchData(1, num); }}",
152
+ "受控写法:currentRowsPerPage={currentRowsPerPage} changeRowsPerPage={(num) => setCurrentRowsPerPage(num)}"
153
+ ],
154
+ "commonMistakes": [
155
+ "忘记同步更新 currentRowsPerPage prop——不回写 prop 导致下拉显示旧值",
156
+ "假设 num 是下标而非实际行数值——num 是 rowsPerPage 数组里选中的那个数字本身"
157
+ ]
158
+ }
159
+ },
160
+ "typescriptPitfalls": [
161
+ {
162
+ "issue": "type prop 接受 PaginationLayout[] 数组,但内部枚举是 'sizes'|'pageRow'|'pager'|'jumper',不是 'complex'|'simple'",
163
+ "wrong": "type={['simple', 'pager']} // 'simple' 不在 PaginationLayout 联合类型",
164
+ "right": "type={['pager', 'jumper']} // 自定义布局组合只能用 PaginationLayout 枚举值"
165
+ },
166
+ {
167
+ "issue": "changeRowsPerPage 回参 num 是 number,不是可选 number | undefined",
168
+ "wrong": "(num?: number) => setCurrentRowsPerPage(num ?? 10) // 多余的 ?? 语法噪音",
169
+ "right": "(num: number) => setCurrentRowsPerPage(num) // num 保证有值"
170
+ },
171
+ {
172
+ "issue": "skipFunc 与 changePage 在回车跳页时都会触发,不要做重复请求",
173
+ "wrong": "skipFunc={(num) => fetchData(num)} changePage={(num) => fetchData(num)} // 回车时两个都触发,重复请求",
174
+ "right": "// 只需 changePage 处理翻页逻辑;skipFunc 是可选补充,跳页专用(例如记录跳转日志)"
175
+ }
176
+ ],
177
+ "mapping": {
178
+ "realComponent": "Pagination",
179
+ "adapter": null
180
+ }
181
+ }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const n=require("../_virtual/jsx-runtime.js"),r=require("react"),xe=require("../GlobalContext/index.js"),R=require("../GlobalContext/constant.js"),ge=require("../TextField/index.js"),fe=require("../GlobalContext/useFormatMessage.js"),de=require("./lang/index.js"),je=require("../Select/index.js"),V=require("../Button/index.js"),K=require("../node_modules/@para-ui/icons/Left/index.js"),he=require("rc-pagination"),U=require("../node_modules/@para-ui/icons/Right/index.js"),ve=require("../node_modules/@para-ui/icons/DoubleLeft/index.js"),Pe=require("../node_modules/@para-ui/icons/DoubleRight/index.js");;/* empty css */const G=E=>{const{className:q,style:H,type:c="simple",pagerType:b="num",autoType:k=!0,total:p=0,rowsPerPage:$=[10,20,50,100],flippingArrow:z=["prev","next"],currentRowsPerPage:M=10,page:S=1,pageMaxLimit:L=!0,skipFunc:D,changePage:w,changeRowsPerPage:I,getPopupContainer:A,resizeLine:J}=E,m=fe.default("Pagination",de.default),{language:C,locale:x}=r.useContext(xe.default),[l,B]=r.useState(M),[_,Q]=r.useState([]),[s,y]=r.useState(S),[a,W]=r.useState(),[g,T]=r.useState(),[o,F]=r.useState(null),f=r.useRef(null),i=r.useRef({layoutArr:["jumper","pageRow","pager-btn","sizes","pager-num"]});i.current.type=c,i.current.autoType=k,r.useEffect(()=>()=>{window.removeEventListener("resize",d),clearTimeout(i.current.timer),clearTimeout(i.current.changePagination)},[]),r.useEffect(()=>{y(S)},[S]),r.useEffect(()=>{B(M)},[M]),r.useEffect(()=>{const e=[];for(let t=0,u=$.length;t<u;t++){const N=$[t],P={label:N.toString()+m({id:"barPage"}),value:N};e.push(P)}Q(e)},[E.rowsPerPage,x]),r.useEffect(()=>{const e=Number(a);L&&s>e&&e!==s&&y(e)},[s,a,L]),r.useEffect(()=>{const e=Math.ceil(p/l);W(e||E.page||1)},[l,p]),r.useEffect(()=>{c==="complex"&&k?(d(),window.addEventListener("resize",d)):window.removeEventListener("resize",d)},[c,k]),r.useEffect(()=>{i.current.type==="complex"&&i.current.autoType&&d()},[p,l,s,C,J]);const d=()=>{clearTimeout(i.current.timer);const e=f.current;e&&(e.classList.add(`${R.$prefixCls}-pagination-over`),i.current.timer=setTimeout(()=>{F(i.current.layoutArr.length),i.current.layoutArr.length>1&&O()},100))},X=()=>{const e=[".total-num",".component-pagination",".pagination-btn-content",".page-line-memo",".skip-page-memo"];let t,u=!1;return e.forEach(N=>{const P=f.current.querySelector(N);P&&(t===void 0?t=P.offsetTop:P.offsetTop!==t&&(u=!0))}),u},O=e=>{if(!(e===null||e===0))if(e===void 0&&(e=i.current.layoutArr.length),X()){const t=Number(e)-1;F(t),t>3?O(t):f.current.classList.remove(`${R.$prefixCls}-pagination-over`)}else f.current.classList.remove(`${R.$prefixCls}-pagination-over`)},j=e=>i.current.type instanceof Array&&i.current.type.indexOf(e)===-1,h=e=>{if(o===null)return!1;switch(e){case"jumper":return o<=0;case"pageRow":return o<=1;case"pager-btn":return o<=2||o>4;case"sizes":return o<=3;case"pager-num":return o<=4;default:return!1}},v=e=>t=>{let u=s;switch(e){case"prev":if(s===1)return;u--;break;case"next":if(s===a)return;u++;break;case"pagination":u=t;break}u!==void 0&&y(u),w&&w(u)},Y=e=>{if(e===void 0)return;const t=Number(e);e!==l&&(B(t),I&&I(t))},Z=e=>{["E","e",".","-"].indexOf(e.key)!==-1&&e.preventDefault()},ee=e=>{if(e.keyCode===13){let t=parseInt(g&&g.toString()||"0");t<=0&&(t=1,T(t)),t>Number(a)&&(t=Number(a),T(t)),D&&D(t,g),y(t),w&&w(t)}},te=e=>{T(Number(e.target.value))},ne=e=>{const t=/(?=(\B)(\d{3})+$)/g;return e.toString().replace(t,",")},re=r.useMemo(()=>{if(c==="simple"||j("sizes")||h("sizes"))return null;const e=ne(p);return n.jsxRuntimeExports.jsx("div",{className:"total-num pagination-space",children:m({id:"total"},{total:e})})},[p,C,x,o]),se=r.useMemo(()=>j("pageRow")||h("pageRow")?null:n.jsxRuntimeExports.jsx("div",{className:"page-line-memo pagination-space",children:n.jsxRuntimeExports.jsx(je.default,{className:"page-line-select",size:"large",value:l,list:_,hideErrorDom:!0,onChange:Y,allowClear:!1,getPopupContainer:A})}),[_,l,A,C,x,o]),ie=()=>n.jsxRuntimeExports.jsxs("div",{className:"jump-prev-icon",children:[n.jsxRuntimeExports.jsx("span",{children:"..."}),n.jsxRuntimeExports.jsx(ve.DoubleLeft,{})]}),oe=()=>n.jsxRuntimeExports.jsxs("div",{className:"jump-next-icon",children:[n.jsxRuntimeExports.jsx("span",{children:"..."}),n.jsxRuntimeExports.jsx(Pe.DoubleRight,{})]}),ae=()=>b!=="num"||c==="simple"?!0:c==="complex"?h("pager-num"):j("pager"),ue=r.useMemo(()=>ae()?null:n.jsxRuntimeExports.jsxs("div",{className:"pagination-content pagination-space",children:[z.indexOf("prev")!==-1&&n.jsxRuntimeExports.jsx("div",{className:"left-page",children:n.jsxRuntimeExports.jsx("div",{onClick:v("prev"),className:s===1?"disabled-btn":"",children:n.jsxRuntimeExports.jsx(K.Left,{})})}),n.jsxRuntimeExports.jsx(he,{prefixCls:`${R.$rcPrefixCls}-pagination`,current:s,pageSize:l,total:p,jumpPrevIcon:ie(),jumpNextIcon:oe(),onChange:v("pagination"),showTitle:!1}),z.indexOf("next")!==-1&&n.jsxRuntimeExports.jsx("div",{className:"right-page",children:n.jsxRuntimeExports.jsx("div",{onClick:v("next"),className:s===a?"disabled-btn":"",children:n.jsxRuntimeExports.jsx(U.Right,{})})})]}),[p,s,a,l,E.flippingArrow,b,o]),ce=()=>b==="btn"||c==="simple"?!1:c==="complex"?h("pager-btn"):j("pager"),le=r.useMemo(()=>ce()?null:n.jsxRuntimeExports.jsxs("div",{className:"pagination-btn-content pagination-space",children:[n.jsxRuntimeExports.jsx(V.Button,{variant:"outlined",size:"large",startIcon:n.jsxRuntimeExports.jsx(K.Left,{}),onClick:v("prev"),disabled:s===1,children:m({id:"prevPage"})}),n.jsxRuntimeExports.jsx(V.Button,{variant:"outlined",size:"large",endIcon:n.jsxRuntimeExports.jsx(U.Right,{}),onClick:v("next"),disabled:s===a,children:m({id:"nextPage"})})]}),[s,a,b,x,o]),pe=r.useMemo(()=>j("jumper")||h("jumper")?null:n.jsxRuntimeExports.jsxs("div",{className:"skip-page-memo pagination-space",children:[n.jsxRuntimeExports.jsx("span",{children:m({id:"jumpTo"})}),n.jsxRuntimeExports.jsx(ge.TextField,{className:"skip-page-text-field",size:"large",type:"number",value:g||"",onChange:te,hideErrorDom:!0,onKeydown:Z,onKeyUp:ee}),n.jsxRuntimeExports.jsxs("span",{children:["/ ",a,m({id:"page"})]})]}),[g,a,C,x,o]),me=()=>{let e=`${R.$prefixCls}-pagination`;return q&&(e+=` ${q}`),e};return n.jsxRuntimeExports.jsxs("div",{className:me(),style:H,ref:f,children:[re,ue,le,se,pe]})};exports.Pagination=G;exports.default=G;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const n=require("../_virtual/jsx-runtime.js"),r=require("react"),xe=require("../GlobalContext/index.js"),R=require("../GlobalContext/constant.js"),ge=require("../TextField/index.js"),fe=require("../GlobalContext/useFormatMessage.js"),de=require("./lang/index.js"),je=require("../Select/index.js"),V=require("../Button/index.js"),K=require("../node_modules/@para-ui/icons/Left/index.js"),ve=require("rc-pagination"),U=require("../node_modules/@para-ui/icons/Right/index.js"),he=require("../node_modules/@para-ui/icons/DoubleLeft/index.js"),Pe=require("../node_modules/@para-ui/icons/DoubleRight/index.js");;/* empty css */const G=E=>{const{className:q,style:H,type:c="simple",pagerType:b="num",autoType:k=!0,total:p=0,rowsPerPage:$=[10,20,50,100],flippingArrow:z=["prev","next"],currentRowsPerPage:M=10,page:S=1,pageMaxLimit:L=!0,skipFunc:D,changePage:w,changeRowsPerPage:I,getPopupContainer:A,resizeLine:J}=E,m=fe.default("Pagination",de.default),{language:C,locale:x}=r.useContext(xe.default),[l,B]=r.useState(M),[_,Q]=r.useState([]),[s,y]=r.useState(S),[a,W]=r.useState(),[g,T]=r.useState(),[o,F]=r.useState(null),f=r.useRef(null),i=r.useRef({layoutArr:["jumper","pageRow","pager-btn","sizes","pager-num"]});i.current.type=c,i.current.autoType=k,r.useEffect(()=>()=>{window.removeEventListener("resize",d),clearTimeout(i.current.timer??void 0),clearTimeout(i.current.changePagination??void 0)},[]),r.useEffect(()=>{y(S)},[S]),r.useEffect(()=>{B(M)},[M]),r.useEffect(()=>{const e=[];for(let t=0,u=$.length;t<u;t++){const N=$[t],P={label:N.toString()+m({id:"barPage"}),value:N};e.push(P)}Q(e)},[E.rowsPerPage,x]),r.useEffect(()=>{const e=Number(a);L&&s>e&&e!==s&&y(e)},[s,a,L]),r.useEffect(()=>{const e=Math.ceil(p/l);W(e||E.page||1)},[l,p]),r.useEffect(()=>{c==="complex"&&k?(d(),window.addEventListener("resize",d)):window.removeEventListener("resize",d)},[c,k]),r.useEffect(()=>{i.current.type==="complex"&&i.current.autoType&&d()},[p,l,s,C,J]);const d=()=>{clearTimeout(i.current.timer??void 0);const e=f.current;e&&(e.classList.add(`${R.$prefixCls}-pagination-over`),i.current.timer=setTimeout(()=>{F(i.current.layoutArr.length),i.current.layoutArr.length>1&&O()},100))},X=()=>{const e=[".total-num",".component-pagination",".pagination-btn-content",".page-line-memo",".skip-page-memo"];let t,u=!1;return e.forEach(N=>{const P=f.current.querySelector(N);P&&(t===void 0?t=P.offsetTop:P.offsetTop!==t&&(u=!0))}),u},O=e=>{if(!(e===null||e===0))if(e===void 0&&(e=i.current.layoutArr.length),X()){const t=Number(e)-1;F(t),t>3?O(t):f.current.classList.remove(`${R.$prefixCls}-pagination-over`)}else f.current.classList.remove(`${R.$prefixCls}-pagination-over`)},j=e=>i.current.type instanceof Array&&i.current.type.indexOf(e)===-1,v=e=>{if(o===null)return!1;switch(e){case"jumper":return o<=0;case"pageRow":return o<=1;case"pager-btn":return o<=2||o>4;case"sizes":return o<=3;case"pager-num":return o<=4;default:return!1}},h=e=>t=>{let u=s;switch(e){case"prev":if(s===1)return;u--;break;case"next":if(s===a)return;u++;break;case"pagination":u=t;break}u!==void 0&&y(u),w&&w(u)},Y=e=>{if(e===void 0)return;const t=Number(e);e!==l&&(B(t),I&&I(t))},Z=e=>{["E","e",".","-"].indexOf(e.key)!==-1&&e.preventDefault()},ee=e=>{if(e.keyCode===13){let t=parseInt(g&&g.toString()||"0");t<=0&&(t=1,T(t)),t>Number(a)&&(t=Number(a),T(t)),D&&D(t,g),y(t),w&&w(t)}},te=e=>{T(Number(e.target.value))},ne=e=>{const t=/(?=(\B)(\d{3})+$)/g;return e.toString().replace(t,",")},re=r.useMemo(()=>{if(c==="simple"||j("sizes")||v("sizes"))return null;const e=ne(p);return n.jsxRuntimeExports.jsx("div",{className:"total-num pagination-space",children:m({id:"total"},{total:e})})},[p,C,x,o]),se=r.useMemo(()=>j("pageRow")||v("pageRow")?null:n.jsxRuntimeExports.jsx("div",{className:"page-line-memo pagination-space",children:n.jsxRuntimeExports.jsx(je.default,{className:"page-line-select",size:"large",value:l,list:_,hideErrorDom:!0,onChange:Y,allowClear:!1,getPopupContainer:A})}),[_,l,A,C,x,o]),ie=()=>n.jsxRuntimeExports.jsxs("div",{className:"jump-prev-icon",children:[n.jsxRuntimeExports.jsx("span",{children:"..."}),n.jsxRuntimeExports.jsx(he.DoubleLeft,{})]}),oe=()=>n.jsxRuntimeExports.jsxs("div",{className:"jump-next-icon",children:[n.jsxRuntimeExports.jsx("span",{children:"..."}),n.jsxRuntimeExports.jsx(Pe.DoubleRight,{})]}),ae=()=>b!=="num"||c==="simple"?!0:c==="complex"?v("pager-num"):j("pager"),ue=r.useMemo(()=>ae()?null:n.jsxRuntimeExports.jsxs("div",{className:"pagination-content pagination-space",children:[z.indexOf("prev")!==-1&&n.jsxRuntimeExports.jsx("div",{className:"left-page",children:n.jsxRuntimeExports.jsx("div",{onClick:h("prev"),className:s===1?"disabled-btn":"",children:n.jsxRuntimeExports.jsx(K.Left,{})})}),n.jsxRuntimeExports.jsx(ve,{prefixCls:`${R.$rcPrefixCls}-pagination`,current:s,pageSize:l,total:p,jumpPrevIcon:ie(),jumpNextIcon:oe(),onChange:h("pagination"),showTitle:!1}),z.indexOf("next")!==-1&&n.jsxRuntimeExports.jsx("div",{className:"right-page",children:n.jsxRuntimeExports.jsx("div",{onClick:h("next"),className:s===a?"disabled-btn":"",children:n.jsxRuntimeExports.jsx(U.Right,{})})})]}),[p,s,a,l,E.flippingArrow,b,o]),ce=()=>b==="btn"||c==="simple"?!1:c==="complex"?v("pager-btn"):j("pager"),le=r.useMemo(()=>ce()?null:n.jsxRuntimeExports.jsxs("div",{className:"pagination-btn-content pagination-space",children:[n.jsxRuntimeExports.jsx(V.Button,{variant:"outlined",size:"large",startIcon:n.jsxRuntimeExports.jsx(K.Left,{}),onClick:h("prev"),disabled:s===1,children:m({id:"prevPage"})}),n.jsxRuntimeExports.jsx(V.Button,{variant:"outlined",size:"large",endIcon:n.jsxRuntimeExports.jsx(U.Right,{}),onClick:h("next"),disabled:s===a,children:m({id:"nextPage"})})]}),[s,a,b,x,o]),pe=r.useMemo(()=>j("jumper")||v("jumper")?null:n.jsxRuntimeExports.jsxs("div",{className:"skip-page-memo pagination-space",children:[n.jsxRuntimeExports.jsx("span",{children:m({id:"jumpTo"})}),n.jsxRuntimeExports.jsx(ge.TextField,{className:"skip-page-text-field",size:"large",type:"number",value:g||"",onChange:te,hideErrorDom:!0,onKeydown:Z,onKeyUp:ee}),n.jsxRuntimeExports.jsxs("span",{children:["/ ",a,m({id:"page"})]})]}),[g,a,C,x,o]),me=()=>{let e=`${R.$prefixCls}-pagination`;return q&&(e+=` ${q}`),e};return n.jsxRuntimeExports.jsxs("div",{className:me(),style:H,ref:f,children:[re,ue,le,se,pe]})};exports.Pagination=G;exports.default=G;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('../Styles/index.css');const s=require("../_virtual/jsx-runtime.js"),d=require("react"),q=require("../GlobalContext/index.js"),l=require("@paraview/lib"),f=require("../GlobalContext/intl.js");;/* empty css */const m=require("../GlobalContext/confirmLocale.js"),u=e=>{const r=(a,c)=>(n,o)=>{const t=e.language||l.GetLanguage(),i=(e.locale||{})[t]||{},g={[t]:i[a]||{}};return f.i18nIntl({ops:n,i18nData:g,lang:t,params:o,defI18nData:c})};return d.useEffect(()=>{const a=e.language||l.GetLanguage(),n=(e.locale||{})[a]||{};m.changeConfirmLocale?.(n,a)},[e.language,e.locale]),s.jsxRuntimeExports.jsx(q.default.Provider,{value:{...e,language:e.language||l.GetLanguage(),intlFormat:r},children:e.children})};exports.ParauiProvider=u;exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('../Styles/index.css');const s=require("../_virtual/jsx-runtime.js"),d=require("react"),f=require("../GlobalContext/index.js"),l=require("../Utils/snack-kit-shims.js"),m=require("../GlobalContext/intl.js");;/* empty css */const q=require("../GlobalContext/confirmLocale.js"),u=e=>{const o=(a,c)=>(n,i)=>{const t=e.language||l.GetLanguage(),r=(e.locale||{})[t]||{},g={[t]:r[a]||{}};return m.i18nIntl({ops:n,i18nData:g,lang:t,params:i,defI18nData:c})};return d.useEffect(()=>{const a=e.language||l.GetLanguage(),n=(e.locale||{})[a]||{};q.changeConfirmLocale?.(n,a)},[e.language,e.locale]),s.jsxRuntimeExports.jsx(f.default.Provider,{value:{...e,language:e.language||l.GetLanguage(),intlFormat:o},children:e.children})};exports.ParauiProvider=u;exports.default=u;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,105 @@
1
+ {
2
+ "name": "PasswordRules",
3
+ "category": "Data Display",
4
+ "description": "密码规则校验器,实时显示密码强度及各项规则通过/失败状态",
5
+ "semantic": {
6
+ "intent": [
7
+ "密码验证",
8
+ "规则提示",
9
+ "安全引导"
10
+ ],
11
+ "useCases": [
12
+ "注册",
13
+ "修改密码",
14
+ "安全设置"
15
+ ],
16
+ "riskLevel": "high"
17
+ },
18
+ "variants": {
19
+ "icon": {
20
+ "meaning": "图标模式(✓/✗ 图标指示每条规则)"
21
+ },
22
+ "order": {
23
+ "meaning": "序列模式(1. 2. 3. 数字序号)"
24
+ }
25
+ },
26
+ "states": [
27
+ "pass",
28
+ "fail"
29
+ ],
30
+ "idealProps": {
31
+ "value": {
32
+ "type": "string",
33
+ "description": "需要校验的密码值;每次 value 变化组件自动重新对所有规则校验并触发 onCheckAll"
34
+ },
35
+ "config": {
36
+ "type": "PasswordRulesConfigProps | PasswordRulesConfigProps[]",
37
+ "description": "规则配置,单组或多组。**PasswordRulesConfigProps** = { title?: ReactNode; type?: 'icon'|'order'; list?: PasswordRulesConfigItemProps[] };**PasswordRulesConfigItemProps** = { label?: ReactNode; reg?: RegExp(正则校验); validator?: (item, value) => boolean | ReactNode(自定义校验,返回 true 表示通过,false 或 ReactNode 表示失败,ReactNode 会替换显示文案); result?: boolean | ReactNode };⚠️ validator 优先级高于 reg"
38
+ },
39
+ "onCheckAll": {
40
+ "type": "(bol: boolean | undefined) => void",
41
+ "description": "全部规则校验结果回调:**true** = 所有规则全部通过;**false** = 所有规则全部未通过;**undefined** = 部分通过(非全通过也非全失败);value 为 undefined 时也回调 undefined"
42
+ },
43
+ "boxShadow": {
44
+ "type": "boolean",
45
+ "default": false,
46
+ "description": "是否带有边框阴影(src/PasswordRules/index.tsx:51 interface 实证)"
47
+ },
48
+ "className": {
49
+ "type": "string",
50
+ "description": "自定义类名"
51
+ },
52
+ "style": {
53
+ "type": "React.CSSProperties",
54
+ "description": "自定义样式"
55
+ }
56
+ },
57
+ "do": [
58
+ "在密码输入旁实时显示校验结果——value 受控绑定 TextField 的 onChange",
59
+ "列出所有规则及其状态,配合 onCheckAll 控制提交按钮的 disabled 状态(true 时才允许提交)",
60
+ "使用 validator 函数处理复杂规则(如「密码不能包含用户名」),返回 ReactNode 可自定义失败文案",
61
+ "多组规则(如「格式要求」+「强度要求」)传 config 数组,每组可设置独立 title"
62
+ ],
63
+ "dont": [
64
+ "规则不明确——每条 label 应简短描述具体要求(如「至少 8 位字符」)",
65
+ "规则过于复杂导致用户无法满足——不超过 6 条主要规则",
66
+ "只用 reg 不提供 validator——复杂规则如「必须包含大小写」建议用 validator 加更友好的提示"
67
+ ],
68
+ "events": {
69
+ "onCheckAll": {
70
+ "signature": "(bol: boolean | undefined) => void",
71
+ "asyncSupported": false,
72
+ "examples": [
73
+ "控制提交按钮:onCheckAll={(bol) => setCanSubmit(bol === true)}",
74
+ "显示强度文案:onCheckAll={(bol) => setStrengthText(bol === true ? '强' : bol === false ? '弱' : '中')}",
75
+ "value 为空时 onCheckAll(undefined):onCheckAll={(bol) => { if (bol === undefined) { clearStrengthUI(); return; } setValid(bol); }}"
76
+ ],
77
+ "commonMistakes": [
78
+ "把 bol === false 当「有错误」——false 是「全部失败」;undefined 才是「部分通过」(最常见的进行时状态)",
79
+ "用 onCheckAll 直接控制表单 submit——建议只用它更新 UI 状态,表单提交时再做一次完整校验",
80
+ "假设 value 初始化时不触发 onCheckAll——组件 mount 后 value 变化(包括 undefined→string)每次都触发"
81
+ ]
82
+ }
83
+ },
84
+ "typescriptPitfalls": [
85
+ {
86
+ "issue": "PasswordRulesConfigItemProps.validator 返回值类型是 boolean | ReactNode,不能返回 string 以外的 falsy",
87
+ "wrong": "validator: (item, value) => value.length >= 8 // 返回 false 表示失败,符合要求",
88
+ "right": "validator: (item, value) => value.length >= 8 ? true : false // 显式返回 boolean;返回 ReactNode 可自定义失败文案"
89
+ },
90
+ {
91
+ "issue": "config 可以是单对象或数组,直接传数组字面量时类型推断正确,动态构建时需显式标注",
92
+ "wrong": "const cfg = { title: '格式', list: [...] }; <PasswordRules config={cfg} /> // 单对象 ok\nconst cfgs = [cfg1, cfg2]; <PasswordRules config={cfgs} /> // 数组 ok,但动态 push 时注意类型",
93
+ "right": "const cfgs: PasswordRulesConfigProps[] = [cfg1, cfg2]; <PasswordRules config={cfgs} />"
94
+ },
95
+ {
96
+ "issue": "onCheckAll 回参 bol 是三值逻辑,用 === 严格比较而非 truthy/falsy",
97
+ "wrong": "onCheckAll={(bol) => setValid(!!bol)} // undefined 被 coerce 成 false,与「全部失败」混淆",
98
+ "right": "onCheckAll={(bol) => setValid(bol === true)} // 只有全部通过才为 true"
99
+ }
100
+ ],
101
+ "mapping": {
102
+ "realComponent": "PasswordRules",
103
+ "adapter": null
104
+ }
105
+ }
@@ -3,7 +3,7 @@ export interface PasswordRulesConfigItemProps {
3
3
  /** 文案 */
4
4
  label?: ReactNode;
5
5
  /** 正则 正则表达式 */
6
- reg?: any;
6
+ reg?: RegExp;
7
7
  /** 自定义校验方法
8
8
  * item: 当前项配置
9
9
  * value: 校验值
@@ -14,7 +14,7 @@ export interface PasswordRulesConfigItemProps {
14
14
  validator?: (item: PasswordRulesConfigItemProps, value: string) => boolean | ReactNode;
15
15
  /** 校验结果 */
16
16
  result?: boolean | ReactNode;
17
- [name: string]: any;
17
+ [name: string]: unknown;
18
18
  }
19
19
  export interface PasswordRulesConfigProps {
20
20
  /** 标题 */
@@ -23,7 +23,7 @@ export interface PasswordRulesConfigProps {
23
23
  type?: 'icon' | 'order';
24
24
  /** 规则列表 */
25
25
  list?: PasswordRulesConfigItemProps[];
26
- [name: string]: any;
26
+ [name: string]: unknown;
27
27
  }
28
28
  export interface PasswordRulesProps {
29
29
  /** 样式class */
@@ -43,7 +43,7 @@ export interface PasswordRulesProps {
43
43
  * undefined: 未全部通过
44
44
  * */
45
45
  onCheckAll?: (bol: boolean | undefined) => void;
46
- [name: string]: any;
46
+ [name: string]: unknown;
47
47
  }
48
48
  declare const PasswordRules: FunctionComponent<PasswordRulesProps>;
49
49
  export default PasswordRules;