feffery_antd_components 0.4.4 → 0.4.5

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 (590) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc +121 -0
  3. package/.github/FUNDING.yml +1 -0
  4. package/.github/workflows/test.yml +86 -0
  5. package/.prettierrc +6 -0
  6. package/.pylintrc +556 -0
  7. package/.pytest_cache/README.md +8 -0
  8. package/DESCRIPTION +4 -4
  9. package/LICENSE +1 -1
  10. package/NAMESPACE +110 -110
  11. package/Project.toml +1 -1
  12. package/README-en_US.md +4 -4
  13. package/README.md +6 -6
  14. package/feffery_antd_components/AntdAccordion.py +136 -108
  15. package/feffery_antd_components/AntdAffix.py +57 -33
  16. package/feffery_antd_components/AntdAlert.py +76 -44
  17. package/feffery_antd_components/AntdAnchor.py +84 -48
  18. package/feffery_antd_components/AntdAvatar.py +110 -70
  19. package/feffery_antd_components/AntdAvatarGroup.py +96 -74
  20. package/feffery_antd_components/AntdBackTop.py +57 -33
  21. package/feffery_antd_components/AntdBadge.py +111 -79
  22. package/feffery_antd_components/AntdBreadcrumb.py +120 -100
  23. package/feffery_antd_components/AntdButton.py +176 -101
  24. package/feffery_antd_components/AntdCalendar.py +119 -85
  25. package/feffery_antd_components/AntdCard.py +169 -131
  26. package/feffery_antd_components/AntdCardGrid.py +49 -29
  27. package/feffery_antd_components/AntdCardMeta.py +49 -29
  28. package/feffery_antd_components/AntdCarousel.py +96 -61
  29. package/feffery_antd_components/AntdCascader.py +207 -112
  30. package/feffery_antd_components/AntdCenter.py +49 -29
  31. package/feffery_antd_components/AntdCheckCard.py +93 -53
  32. package/feffery_antd_components/AntdCheckCardGroup.py +107 -57
  33. package/feffery_antd_components/AntdCheckableTag.py +53 -31
  34. package/feffery_antd_components/AntdCheckbox.py +92 -52
  35. package/feffery_antd_components/AntdCheckboxGroup.py +98 -62
  36. package/feffery_antd_components/AntdCol.py +209 -169
  37. package/feffery_antd_components/AntdCollapse.py +112 -82
  38. package/feffery_antd_components/AntdColorPicker.py +139 -90
  39. package/feffery_antd_components/AntdComment.py +152 -101
  40. package/feffery_antd_components/AntdCompact.py +50 -30
  41. package/feffery_antd_components/AntdConfigProvider.py +105 -82
  42. package/feffery_antd_components/AntdContent.py +32 -24
  43. package/feffery_antd_components/AntdCopyText.py +64 -38
  44. package/feffery_antd_components/AntdCountdown.py +79 -52
  45. package/feffery_antd_components/AntdCountup.py +70 -40
  46. package/feffery_antd_components/AntdCustomSkeleton.py +76 -44
  47. package/feffery_antd_components/AntdDatePicker.py +276 -184
  48. package/feffery_antd_components/AntdDateRangePicker.py +276 -180
  49. package/feffery_antd_components/AntdDescriptionItem.py +71 -59
  50. package/feffery_antd_components/AntdDescriptions.py +162 -128
  51. package/feffery_antd_components/AntdDivider.py +94 -54
  52. package/feffery_antd_components/AntdDraggerUpload.py +305 -227
  53. package/feffery_antd_components/AntdDrawer.py +158 -104
  54. package/feffery_antd_components/AntdDropdown.py +215 -137
  55. package/feffery_antd_components/AntdEmpty.py +98 -72
  56. package/feffery_antd_components/AntdFlex.py +68 -38
  57. package/feffery_antd_components/AntdFloatButton.py +101 -56
  58. package/feffery_antd_components/AntdFloatButtonGroup.py +107 -60
  59. package/feffery_antd_components/AntdFooter.py +32 -24
  60. package/feffery_antd_components/AntdForm.py +121 -79
  61. package/feffery_antd_components/AntdFormItem.py +127 -83
  62. package/feffery_antd_components/AntdFormRender.py +618 -543
  63. package/feffery_antd_components/AntdHappyProvider.py +19 -19
  64. package/feffery_antd_components/AntdHeader.py +32 -24
  65. package/feffery_antd_components/AntdIcon.py +59 -35
  66. package/feffery_antd_components/AntdImage.py +113 -77
  67. package/feffery_antd_components/AntdImageGroup.py +104 -72
  68. package/feffery_antd_components/AntdInput.py +246 -160
  69. package/feffery_antd_components/AntdInputNumber.py +168 -92
  70. package/feffery_antd_components/AntdLayout.py +32 -24
  71. package/feffery_antd_components/AntdMentions.py +132 -91
  72. package/feffery_antd_components/AntdMenu.py +153 -89
  73. package/feffery_antd_components/AntdMessage.py +60 -36
  74. package/feffery_antd_components/AntdModal.py +311 -213
  75. package/feffery_antd_components/AntdNotification.py +108 -77
  76. package/feffery_antd_components/AntdOTP.py +95 -55
  77. package/feffery_antd_components/AntdPageHeader.py +65 -37
  78. package/feffery_antd_components/AntdPagination.py +136 -76
  79. package/feffery_antd_components/AntdParagraph.py +105 -67
  80. package/feffery_antd_components/AntdPictureUpload.py +333 -258
  81. package/feffery_antd_components/AntdPopconfirm.py +249 -175
  82. package/feffery_antd_components/AntdPopover.py +140 -86
  83. package/feffery_antd_components/AntdPopupCard.py +162 -102
  84. package/feffery_antd_components/AntdProgress.py +183 -147
  85. package/feffery_antd_components/AntdQRCode.py +104 -66
  86. package/feffery_antd_components/AntdRadioGroup.py +128 -80
  87. package/feffery_antd_components/AntdRate.py +100 -56
  88. package/feffery_antd_components/AntdResult.py +61 -35
  89. package/feffery_antd_components/AntdRibbon.py +54 -32
  90. package/feffery_antd_components/AntdRow.py +87 -59
  91. package/feffery_antd_components/AntdSegmented.py +131 -89
  92. package/feffery_antd_components/AntdSegmentedColoring.py +143 -86
  93. package/feffery_antd_components/AntdSelect.py +300 -168
  94. package/feffery_antd_components/AntdSider.py +75 -43
  95. package/feffery_antd_components/AntdSkeleton.py +125 -88
  96. package/feffery_antd_components/AntdSkeletonAvatar.py +54 -32
  97. package/feffery_antd_components/AntdSkeletonButton.py +55 -33
  98. package/feffery_antd_components/AntdSkeletonImage.py +21 -21
  99. package/feffery_antd_components/AntdSkeletonInput.py +36 -27
  100. package/feffery_antd_components/AntdSlider.py +191 -129
  101. package/feffery_antd_components/AntdSpace.py +87 -65
  102. package/feffery_antd_components/AntdSpin.py +98 -56
  103. package/feffery_antd_components/AntdSplitter.py +91 -76
  104. package/feffery_antd_components/AntdSpoiler.py +80 -46
  105. package/feffery_antd_components/AntdStatistic.py +86 -54
  106. package/feffery_antd_components/AntdSteps.py +117 -77
  107. package/feffery_antd_components/AntdSwitch.py +118 -72
  108. package/feffery_antd_components/AntdTable.py +1215 -938
  109. package/feffery_antd_components/AntdTabs.py +225 -156
  110. package/feffery_antd_components/AntdTag.py +69 -39
  111. package/feffery_antd_components/AntdText.py +97 -62
  112. package/feffery_antd_components/AntdTimePicker.py +198 -116
  113. package/feffery_antd_components/AntdTimeRangePicker.py +179 -99
  114. package/feffery_antd_components/AntdTimeline.py +86 -57
  115. package/feffery_antd_components/AntdTitle.py +92 -52
  116. package/feffery_antd_components/AntdTooltip.py +142 -99
  117. package/feffery_antd_components/AntdTour.py +186 -144
  118. package/feffery_antd_components/AntdTransfer.py +186 -120
  119. package/feffery_antd_components/AntdTree.py +267 -159
  120. package/feffery_antd_components/AntdTreeSelect.py +301 -162
  121. package/feffery_antd_components/AntdUpload.py +338 -262
  122. package/feffery_antd_components/AntdWatermark.py +93 -51
  123. package/feffery_antd_components/Fragment.py +19 -19
  124. package/feffery_antd_components/__init__.py +22 -17
  125. package/feffery_antd_components/_imports_.py +187 -187
  126. package/feffery_antd_components/alias.py +187 -187
  127. package/feffery_antd_components/async-antd_table.js +2 -2
  128. package/feffery_antd_components/async-data_display.js +1 -1
  129. package/feffery_antd_components/async-data_entry.js +4 -4
  130. package/feffery_antd_components/async-upload.js +2 -2
  131. package/feffery_antd_components/feffery_antd_components.min.js +8 -8
  132. package/feffery_antd_components/metadata.json +1 -1
  133. package/feffery_antd_components/package-info.json +15 -9
  134. package/{tests → legacy_tests}/dash3.0tests/AntdQRCode/347/273/204/344/273/266loading/347/212/266/346/200/201/351/207/215/346/236/204/test.py +3 -1
  135. package/{tests → legacy_tests}/dash3.0tests/AntdTable/345/207/275/346/225/260/345/274/217/346/224/271/351/200/240/test.py +5 -5
  136. package/{tests → legacy_tests}/dash3.0tests/_dashprivate_layout/346/224/271/345/212/250/346/265/213/350/257/225/test.py +3 -4
  137. package/{tests → legacy_tests}/dash3.0tests/loading_state/346/224/271/345/212/250/346/265/213/350/257/225/test.py +3 -1
  138. package/{tests → legacy_tests}/dash3.0tests//345/207/275/346/225/260/345/274/217/347/273/204/344/273/266/351/273/230/350/256/244/345/200/274/351/207/215/346/236/204/test.py +2 -1
  139. package/{tests → legacy_tests}/dash3.0tests//345/212/240/350/275/275/345/212/250/347/224/273/347/261/273/347/273/204/344/273/266/351/207/215/346/236/204/346/265/213/350/257/225/test.py +3 -1
  140. package/{tests → legacy_tests}/dash3.0tests//347/273/204/344/273/266/345/261/236/346/200/247/345/237/272/347/241/200/346/214/201/344/271/205/345/214/226/351/207/215/346/236/204/346/265/213/350/257/225/test.py +2 -1
  141. package/{tests → legacy_tests}/dataDisplay/AntdAccordion/feat_size.py +3 -4
  142. package/{tests → legacy_tests}/dataDisplay/AntdAccordion/feat_styles.py +3 -4
  143. package/{tests → legacy_tests}/dataDisplay/AntdCard/refactor_delete_props.py +7 -24
  144. package/{tests → legacy_tests}/dataDisplay/AntdCarousel/feat_auto_play_dot_duration.py +2 -1
  145. package/{tests → legacy_tests}/dataDisplay/AntdCollapse/feat_size.py +2 -1
  146. package/{tests → legacy_tests}/dataDisplay/AntdCollapse/feat_styles.py +2 -1
  147. package/{tests → legacy_tests}/dataDisplay/AntdCountdown/feat_finish_event.py +6 -7
  148. package/{tests → legacy_tests}/dataDisplay/AntdCountdown/refactor_to_timer.py +8 -14
  149. package/{tests → legacy_tests}/dataDisplay/AntdCountup/refactor_to_timer.py +8 -14
  150. package/{tests → legacy_tests}/dataDisplay/AntdDescriptions/feat_span_filled.py +2 -1
  151. package/{tests → legacy_tests}/dataDisplay/AntdImage/debug_preview_toolbar.py +2 -1
  152. package/{tests → legacy_tests}/dataDisplay/AntdSegmented/feat_shape.py +2 -1
  153. package/{tests → legacy_tests}/dataDisplay/AntdSegmented/feat_simple_options.py +2 -1
  154. package/{tests → legacy_tests}/dataDisplay/AntdSegmented/feat_vertical.py +2 -1
  155. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_button_mode_like_dcc_link.py +6 -10
  156. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_button_mode_refactor.py +10 -20
  157. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_button_mode_tooltip.py +2 -3
  158. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_columns_fixed_bool.py +3 -8
  159. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_columns_min_width.py +6 -8
  160. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_columns_sort_order.py +8 -14
  161. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_editable_disabled_keys.py +4 -4
  162. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_header_align.py +2 -7
  163. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_link_mode_like_dcc_link.py +1 -0
  164. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_loading.py +7 -17
  165. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_mini_chart_color.py +8 -25
  166. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_row_class_name.py +4 -8
  167. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_row_class_name_func.py +5 -11
  168. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_select_mode_show_search.py +4 -7
  169. package/legacy_tests/dataDisplay/AntdTable/feat_sticky_header.py +75 -0
  170. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_table_scroll.py +3 -1
  171. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_tag_mode_tooltip.py +3 -6
  172. package/{tests → legacy_tests}/dataDisplay/AntdTable/feat_title_popover_nodes.py +4 -9
  173. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_context_locale.py +3 -6
  174. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_field_bool.py +3 -1
  175. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_max_width_height_ghost_row.py +3 -14
  176. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_nested_editable.py +5 -5
  177. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_select_with_editable.py +6 -10
  178. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_server_side_mode_filter_search.py +18 -50
  179. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_summary.py +5 -12
  180. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_summary_multi_level_header.py +2 -7
  181. package/{tests → legacy_tests}/dataDisplay/AntdTable/fix_zero_value_filter.py +2 -3
  182. package/{tests → legacy_tests}/dataDisplay/AntdTable/perf_button_mode_auto_wrap.py +3 -11
  183. package/{tests → legacy_tests}/dataDisplay/AntdTable/perf_editable_column_format_constrait_message.py +2 -1
  184. package/{tests → legacy_tests}/dataDisplay/AntdTable/refactor_mini_progress_mode.py +3 -5
  185. package/{tests → legacy_tests}/dataDisplay/AntdTable/rollback_title_popover_info.py +2 -4
  186. package/{tests → legacy_tests}/dataDisplay/AntdTabs/feat_item_icon.py +3 -4
  187. package/{tests → legacy_tests}/dataDisplay/AntdTabs/feat_placeholder.py +10 -21
  188. package/{tests → legacy_tests}/dataDisplay/AntdTabs/feat_tab_bar_style.py +3 -4
  189. package/{tests → legacy_tests}/dataDisplay/AntdTree/feat_async_data_load.py +4 -2
  190. package/{tests → legacy_tests}/dataDisplay/descriptions/AntdDescriptions/feat_extra.py +3 -4
  191. package/{tests → legacy_tests}/dataEntry/AntdCalendar/feat_custom_cells.py +5 -12
  192. package/{tests → legacy_tests}/dataEntry/AntdCascader/feat_prefix.py +1 -0
  193. package/{tests → legacy_tests}/dataEntry/AntdCascader/feat_suffix_icon.py +1 -0
  194. package/{tests → legacy_tests}/dataEntry/AntdCascader/fix_read_only.py +2 -1
  195. package/{tests → legacy_tests}/dataEntry/AntdDatePicker/feat_custom_cells.py +1 -0
  196. package/{tests → legacy_tests}/dataEntry/AntdDatePicker/feat_picker_value.py +2 -1
  197. package/{tests/dataEntry/AntdTimePicker → legacy_tests/dataEntry/AntdDatePicker}/feat_prefix.py +2 -5
  198. package/{tests/dataEntry/AntdTimePicker → legacy_tests/dataEntry/AntdDatePicker}/feat_suffix_icon.py +2 -5
  199. package/{tests → legacy_tests}/dataEntry/AntdDateRangePicker/feat_custom_cells.py +1 -0
  200. package/{tests → legacy_tests}/dataEntry/AntdDateRangePicker/feat_picker_value.py +2 -1
  201. package/{tests/dataEntry/AntdDatePicker → legacy_tests/dataEntry/AntdDateRangePicker}/feat_prefix.py +2 -5
  202. package/{tests/dataEntry/AntdDatePicker → legacy_tests/dataEntry/AntdDateRangePicker}/feat_suffix_icon.py +2 -5
  203. package/{tests → legacy_tests}/dataEntry/AntdForm/feat_batch_control_tooltips.py +2 -5
  204. package/{tests → legacy_tests}/dataEntry/AntdForm/feat_optional_batch_control.py +7 -12
  205. package/{tests → legacy_tests}/dataEntry/AntdForm/fix_checkbox.py +3 -4
  206. package/{tests → legacy_tests}/dataEntry/AntdRadioGroup/feat_block.py +2 -1
  207. package/{tests → legacy_tests}/dataEntry/AntdSelect/feat_locale_ru.py +2 -1
  208. package/{tests → legacy_tests}/dataEntry/AntdSelect/feat_max_count.py +2 -4
  209. package/{tests → legacy_tests}/dataEntry/AntdSelect/feat_prefix.py +2 -4
  210. package/{tests → legacy_tests}/dataEntry/AntdSelect/feat_show_search.py +2 -1
  211. package/{tests → legacy_tests}/dataEntry/AntdSelect/feat_suffix_icon.py +2 -3
  212. package/{tests → legacy_tests}/dataEntry/AntdSelect/fix_read_only.py +4 -9
  213. package/{tests → legacy_tests}/dataEntry/AntdSelect/fix_read_only_with_allow_clear.py +3 -5
  214. package/{tests → legacy_tests}/dataEntry/AntdSlider/feat_range_editable.py +3 -1
  215. package/legacy_tests/dataEntry/AntdTimePicker/feat_prefix.py +18 -0
  216. package/legacy_tests/dataEntry/AntdTimePicker/feat_suffix_icon.py +18 -0
  217. package/legacy_tests/dataEntry/AntdTimeRangePicker/feat_prefix.py +18 -0
  218. package/legacy_tests/dataEntry/AntdTimeRangePicker/feat_suffix_icon.py +18 -0
  219. package/{tests → legacy_tests}/dataEntry/AntdTreeSelect/feat_async_data_load.py +4 -2
  220. package/{tests → legacy_tests}/dataEntry/AntdTreeSelect/feat_max_count.py +2 -4
  221. package/{tests → legacy_tests}/dataEntry/AntdTreeSelect/feat_prefix.py +1 -0
  222. package/{tests → legacy_tests}/dataEntry/AntdTreeSelect/fix_read_only.py +1 -0
  223. package/{tests → legacy_tests}/dataEntry/AntdUpload/feat_pastable.py +3 -6
  224. package/{tests → legacy_tests}/dataEntry/AntdUpload/fix_follow_theme.py +2 -1
  225. package/{tests → legacy_tests}/feat_variant_underlined.py +3 -4
  226. package/{tests → legacy_tests}/feedback/AntdAlert/feat_icon.py +2 -1
  227. package/{tests → legacy_tests}/feedback/AntdMessage/fix_follow_config_provider.py +2 -1
  228. package/{tests → legacy_tests}/feedback/AntdModal/feat_force_render.py +5 -8
  229. package/{tests → legacy_tests}/feedback/AntdModal/feat_loading_title.py +2 -7
  230. package/{tests → legacy_tests}/feedback/AntdModal/feat_prevent_close.py +3 -2
  231. package/{tests → legacy_tests}/feedback/AntdModal/feat_responsive_width.py +2 -1
  232. package/{tests → legacy_tests}/feedback/AntdNotification/feat_component_content.py +2 -1
  233. package/{tests → legacy_tests}/feedback/AntdNotification/feat_number_of_stack.py +2 -1
  234. package/{tests → legacy_tests}/feedback/AntdNotification/feat_show_progress.py +2 -1
  235. package/{tests → legacy_tests}/feedback/AntdNotification/fix_follow_config_provider.py +2 -1
  236. package/{tests → legacy_tests}/feedback/AntdPopupCard/feat_force_render.py +3 -2
  237. package/{tests → legacy_tests}/feedback/AntdProgress/feat_percent_position.py +2 -1
  238. package/{tests → legacy_tests}/feedback/AntdProgress/perf_size.py +2 -1
  239. package/{tests → legacy_tests}/feedback/AntdProgress/perf_steps.py +2 -1
  240. package/{tests → legacy_tests}/feedback/AntdProgress/perf_stroke_color.py +2 -1
  241. package/{tests → legacy_tests}/feedback/AntdResult/feat_extra.py +3 -4
  242. package/{tests → legacy_tests}/feedback/AntdSkeleton/fix_dash3.py +4 -6
  243. package/{tests → legacy_tests}/general/AntdButton/feat_color_and_variant.py +2 -1
  244. package/{tests → legacy_tests}/general/AntdButton/feat_preset_color.py +2 -1
  245. package/legacy_tests/general/AntdFloatButtonGroup/feat_placement.py +60 -0
  246. package/{tests → legacy_tests}/general/AntdFloatButtonGroup/feat_tooltip.py +3 -4
  247. package/{tests → legacy_tests}/general/AntdIcon/feat_iconfont.py +2 -1
  248. package/{tests → legacy_tests}/layout/AntdCenter/feat_use_token.py +2 -1
  249. package/{tests → legacy_tests}/layout/AntdDivider/feat_plain.py +2 -1
  250. package/{tests → legacy_tests}/layout/AntdDivider/feat_size.py +2 -1
  251. package/{tests → legacy_tests}/layout/AntdSplitter/feat_AntdSplitter.py +4 -4
  252. package/{tests → legacy_tests}/layout/AntdSplitter/feat_lazy.py +2 -1
  253. package/{tests → legacy_tests}/layout/AntdSplitter/refactor.py +18 -49
  254. package/{tests → legacy_tests}/navigation/AntdAnchor/feat_current_anchor.py +2 -1
  255. package/{tests → legacy_tests}/navigation/AntdAnchor/feat_direction.py +2 -1
  256. package/{tests → legacy_tests}/navigation/AntdAnchor/feat_replace.py +2 -1
  257. package/{tests → legacy_tests}/navigation/AntdBreadcrumb/feat_menu_item_event.py +3 -1
  258. package/{tests → legacy_tests}/navigation/AntdBreadcrumb/refactor_items.py +3 -1
  259. package/{tests → legacy_tests}/navigation/AntdDropdown/feat_extra.py +2 -1
  260. package/legacy_tests/navigation/AntdDropdown/test_cascading_dropdown.py +107 -0
  261. package/{tests → legacy_tests}/navigation/AntdMenu/feat_currentItem.py +3 -1
  262. package/{tests → legacy_tests}/navigation/AntdMenu/feat_currentItemPath.py +3 -1
  263. package/{tests → legacy_tests}/navigation/AntdMenu/feat_currentKeyPath.py +3 -1
  264. package/{tests → legacy_tests}/navigation/AntdMenu/feat_custom_icon.py +1 -0
  265. package/{tests → legacy_tests}/navigation/AntdMenu/feat_expandIcon.py +5 -8
  266. package/{tests → legacy_tests}/navigation/AntdMenu/feat_triggerSubMenuAction.py +4 -7
  267. package/{tests → legacy_tests}/navigation/AntdMenu/fix_onlyExpandCurrentSubMenu.py +2 -1
  268. package/{tests → legacy_tests}/navigation/AntdMenu/fix_with_sider.py +1 -0
  269. package/{tests → legacy_tests}/navigation/AntdPagination/feat_align.py +5 -10
  270. package/{tests → legacy_tests}/other/AntdAffix/feat_listen_affixed.py +2 -1
  271. package/{tests → legacy_tests}/other/AntdBackTop/refactor.py +2 -1
  272. package/legacy_tests/other/AntdConfigProvider/feat_use_css.py +67 -0
  273. package/{tests → legacy_tests}/other/AntdCopyText/feat_copy_table.py +7 -17
  274. package/{tests → legacy_tests}/other/AntdCopyText/feat_tooltips.py +5 -10
  275. package/{tests → legacy_tests}/other/AntdHappyProvider/feat_component.py +6 -13
  276. package/{tests → legacy_tests}/other/Fragment/feat_use_token.py +2 -1
  277. package/package.json +15 -9
  278. package/requirements.txt +7 -1
  279. package/ruff.toml +17 -1
  280. package/setup.py +12 -13
  281. package/src/lib/components/dataDisplay/AntdAccordion.react.js +22 -22
  282. package/src/lib/components/dataDisplay/AntdAvatar.react.js +18 -16
  283. package/src/lib/components/dataDisplay/AntdAvatarGroup.react.js +18 -16
  284. package/src/lib/components/dataDisplay/AntdBadge.react.js +24 -16
  285. package/src/lib/components/dataDisplay/AntdCarousel.react.js +17 -15
  286. package/src/lib/components/dataDisplay/AntdCheckableTag.react.js +15 -13
  287. package/src/lib/components/dataDisplay/AntdCollapse.react.js +40 -40
  288. package/src/lib/components/dataDisplay/AntdComment.react.js +19 -17
  289. package/src/lib/components/dataDisplay/AntdCountdown.react.js +15 -13
  290. package/src/lib/components/dataDisplay/AntdCountup.react.js +15 -13
  291. package/src/lib/components/dataDisplay/AntdEmpty.react.js +21 -24
  292. package/src/lib/components/dataDisplay/AntdImage.react.js +22 -26
  293. package/src/lib/components/dataDisplay/AntdImageGroup.react.js +19 -17
  294. package/src/lib/components/dataDisplay/AntdPopover.react.js +30 -17
  295. package/src/lib/components/dataDisplay/AntdQRCode.react.js +19 -17
  296. package/src/lib/components/dataDisplay/AntdRibbon.react.js +15 -13
  297. package/src/lib/components/dataDisplay/AntdSegmented.react.js +24 -30
  298. package/src/lib/components/dataDisplay/AntdSpoiler.react.js +19 -20
  299. package/src/lib/components/dataDisplay/AntdStatistic.react.js +28 -23
  300. package/src/lib/components/dataDisplay/AntdTable.react.js +241 -142
  301. package/src/lib/components/dataDisplay/AntdTabs.react.js +22 -23
  302. package/src/lib/components/dataDisplay/AntdTag.react.js +15 -13
  303. package/src/lib/components/dataDisplay/AntdTimeline.react.js +16 -14
  304. package/src/lib/components/dataDisplay/AntdTooltip.react.js +30 -23
  305. package/src/lib/components/dataDisplay/AntdTree.react.js +60 -32
  306. package/src/lib/components/dataDisplay/card/AntdCard.react.js +19 -17
  307. package/src/lib/components/dataDisplay/card/AntdCardGrid.react.js +15 -13
  308. package/src/lib/components/dataDisplay/card/AntdCardMeta.react.js +15 -13
  309. package/src/lib/components/dataDisplay/descriptions/AntdDescriptionItem.react.js +17 -15
  310. package/src/lib/components/dataDisplay/descriptions/AntdDescriptions.react.js +21 -19
  311. package/src/lib/components/dataEntry/AntdCalendar.react.js +22 -20
  312. package/src/lib/components/dataEntry/AntdCascader.react.js +44 -50
  313. package/src/lib/components/dataEntry/AntdCheckbox.react.js +18 -16
  314. package/src/lib/components/dataEntry/AntdCheckboxGroup.react.js +22 -23
  315. package/src/lib/components/dataEntry/AntdColorPicker.react.js +27 -22
  316. package/src/lib/components/dataEntry/AntdDatePicker.react.js +61 -33
  317. package/src/lib/components/dataEntry/AntdDateRangePicker.react.js +61 -38
  318. package/src/lib/components/dataEntry/AntdInput.react.js +28 -21
  319. package/src/lib/components/dataEntry/AntdInputNumber.react.js +30 -41
  320. package/src/lib/components/dataEntry/AntdMentions.react.js +24 -17
  321. package/src/lib/components/dataEntry/AntdOTP.react.js +25 -21
  322. package/src/lib/components/dataEntry/AntdRadioGroup.react.js +23 -27
  323. package/src/lib/components/dataEntry/AntdRate.react.js +19 -19
  324. package/src/lib/components/dataEntry/AntdSegmentedColoring.react.js +22 -15
  325. package/src/lib/components/dataEntry/AntdSelect.react.js +50 -47
  326. package/src/lib/components/dataEntry/AntdSlider.react.js +24 -22
  327. package/src/lib/components/dataEntry/AntdSwitch.react.js +19 -17
  328. package/src/lib/components/dataEntry/AntdTimePicker.react.js +35 -23
  329. package/src/lib/components/dataEntry/AntdTimeRangePicker.react.js +32 -20
  330. package/src/lib/components/dataEntry/AntdTransfer.react.js +46 -54
  331. package/src/lib/components/dataEntry/AntdTreeSelect.react.js +51 -43
  332. package/src/lib/components/dataEntry/check-card/AntdCheckCard.react.js +19 -20
  333. package/src/lib/components/dataEntry/check-card/AntdCheckCardGroup.react.js +24 -34
  334. package/src/lib/components/dataEntry/form/AntdForm.react.js +17 -21
  335. package/src/lib/components/dataEntry/form/AntdFormItem.react.js +23 -22
  336. package/src/lib/components/dataEntry/upload/AntdDraggerUpload.react.js +27 -28
  337. package/src/lib/components/dataEntry/upload/AntdPictureUpload.react.js +38 -26
  338. package/src/lib/components/dataEntry/upload/AntdUpload.react.js +36 -27
  339. package/src/lib/components/feedback/AntdAlert.react.js +34 -22
  340. package/src/lib/components/feedback/AntdDrawer.react.js +41 -44
  341. package/src/lib/components/feedback/AntdMessage.react.js +27 -34
  342. package/src/lib/components/feedback/AntdModal.react.js +71 -58
  343. package/src/lib/components/feedback/AntdNotification.react.js +51 -41
  344. package/src/lib/components/feedback/AntdPopconfirm.react.js +66 -42
  345. package/src/lib/components/feedback/AntdPopupCard.react.js +102 -87
  346. package/src/lib/components/feedback/AntdProgress.react.js +44 -41
  347. package/src/lib/components/feedback/AntdResult.react.js +28 -19
  348. package/src/lib/components/feedback/AntdSpin.react.js +77 -38
  349. package/src/lib/components/feedback/skeleton/AntdCustomSkeleton.react.js +44 -20
  350. package/src/lib/components/feedback/skeleton/AntdSkeleton.react.js +52 -34
  351. package/src/lib/components/feedback/skeleton/AntdSkeletonAvatar.react.js +14 -13
  352. package/src/lib/components/feedback/skeleton/AntdSkeletonButton.react.js +13 -12
  353. package/src/lib/components/feedback/skeleton/AntdSkeletonImage.react.js +13 -12
  354. package/src/lib/components/feedback/skeleton/AntdSkeletonInput.react.js +13 -12
  355. package/src/lib/components/formRender/AntdFormRender.react.js +585 -518
  356. package/src/lib/components/general/AntdButton.react.js +56 -35
  357. package/src/lib/components/general/AntdFloatButton.react.js +28 -14
  358. package/src/lib/components/general/AntdFloatButtonGroup.react.js +31 -15
  359. package/src/lib/components/general/AntdIcon.react.js +48 -36
  360. package/src/lib/components/general/typography/AntdParagraph.react.js +23 -21
  361. package/src/lib/components/general/typography/AntdText.react.js +22 -20
  362. package/src/lib/components/general/typography/AntdTitle.react.js +22 -20
  363. package/src/lib/components/icons.react.js +18 -22
  364. package/src/lib/components/layout/AntdCenter.react.js +24 -24
  365. package/src/lib/components/layout/AntdCompact.react.js +16 -14
  366. package/src/lib/components/layout/AntdContent.react.js +16 -14
  367. package/src/lib/components/layout/AntdDivider.react.js +26 -27
  368. package/src/lib/components/layout/AntdFlex.react.js +18 -19
  369. package/src/lib/components/layout/AntdFooter.react.js +16 -14
  370. package/src/lib/components/layout/AntdHeader.react.js +16 -14
  371. package/src/lib/components/layout/AntdLayout.react.js +16 -14
  372. package/src/lib/components/layout/AntdSider.react.js +18 -19
  373. package/src/lib/components/layout/AntdSpace.react.js +42 -27
  374. package/src/lib/components/layout/AntdSplitter.react.js +24 -35
  375. package/src/lib/components/layout/grid/AntdCol.react.js +29 -30
  376. package/src/lib/components/layout/grid/AntdRow.react.js +23 -17
  377. package/src/lib/components/locales.react.js +96 -35
  378. package/src/lib/components/navigation/AntdAnchor.react.js +24 -23
  379. package/src/lib/components/navigation/AntdBreadcrumb.react.js +93 -100
  380. package/src/lib/components/navigation/AntdDropdown.react.js +132 -124
  381. package/src/lib/components/navigation/AntdMenu.react.js +248 -201
  382. package/src/lib/components/navigation/AntdPageHeader.react.js +19 -17
  383. package/src/lib/components/navigation/AntdPagination.react.js +38 -35
  384. package/src/lib/components/navigation/AntdSteps.react.js +21 -16
  385. package/src/lib/components/other/AntdAffix.react.js +15 -14
  386. package/src/lib/components/other/AntdBackTop.react.js +20 -20
  387. package/src/lib/components/other/AntdConfigProvider.react.js +80 -85
  388. package/src/lib/components/other/AntdCopyText.react.js +21 -19
  389. package/src/lib/components/other/AntdHappyProvider.react.js +5 -8
  390. package/src/lib/components/other/AntdTour.react.js +63 -47
  391. package/src/lib/components/other/AntdWatermark.react.js +11 -8
  392. package/src/lib/components/other/Fragment.react.js +4 -5
  393. package/src/lib/components/utils.js +23 -13
  394. package/src/lib/contexts/FormContext.js +2 -2
  395. package/src/lib/contexts/FormItemContext.js +2 -2
  396. package/src/lib/contexts/PropsContext.js +2 -2
  397. package/src/lib/fragments/AntdTable.react.js +1965 -1197
  398. package/src/lib/fragments/dataDisplay/AntdAccordion.react.js +41 -37
  399. package/src/lib/fragments/dataDisplay/AntdAvatar.react.js +64 -51
  400. package/src/lib/fragments/dataDisplay/AntdAvatarGroup.react.js +19 -9
  401. package/src/lib/fragments/dataDisplay/AntdBadge.react.js +20 -10
  402. package/src/lib/fragments/dataDisplay/AntdCarousel.react.js +25 -9
  403. package/src/lib/fragments/dataDisplay/AntdCheckableTag.react.js +19 -12
  404. package/src/lib/fragments/dataDisplay/AntdComment.react.js +105 -52
  405. package/src/lib/fragments/dataDisplay/AntdCountdown.react.js +43 -28
  406. package/src/lib/fragments/dataDisplay/AntdCountup.react.js +29 -17
  407. package/src/lib/fragments/dataDisplay/AntdEmpty.react.js +21 -13
  408. package/src/lib/fragments/dataDisplay/AntdImage.react.js +142 -113
  409. package/src/lib/fragments/dataDisplay/AntdImageGroup.react.js +28 -20
  410. package/src/lib/fragments/dataDisplay/AntdPopover.react.js +38 -21
  411. package/src/lib/fragments/dataDisplay/AntdQRCode.react.js +30 -20
  412. package/src/lib/fragments/dataDisplay/AntdRibbon.react.js +19 -9
  413. package/src/lib/fragments/dataDisplay/AntdSegmented.react.js +50 -47
  414. package/src/lib/fragments/dataDisplay/AntdSpoiler.react.js +49 -36
  415. package/src/lib/fragments/dataDisplay/AntdTabs.react.js +82 -71
  416. package/src/lib/fragments/dataDisplay/AntdTag.react.js +27 -12
  417. package/src/lib/fragments/dataDisplay/AntdTimeline.react.js +24 -21
  418. package/src/lib/fragments/dataDisplay/AntdTooltip.react.js +24 -17
  419. package/src/lib/fragments/dataDisplay/AntdTree.react.js +355 -271
  420. package/src/lib/fragments/dataDisplay/card/AntdCard.react.js +44 -31
  421. package/src/lib/fragments/dataDisplay/card/AntdCardGrid.react.js +18 -9
  422. package/src/lib/fragments/dataDisplay/card/AntdCardMeta.react.js +18 -10
  423. package/src/lib/fragments/dataDisplay/descriptions/AntdDescriptionItem.react.js +18 -9
  424. package/src/lib/fragments/dataDisplay/descriptions/AntdDescriptions.react.js +75 -54
  425. package/src/lib/fragments/dataEntry/AntdCalendar.react.js +104 -75
  426. package/src/lib/fragments/dataEntry/AntdCascader.react.js +137 -98
  427. package/src/lib/fragments/dataEntry/AntdCheckbox.react.js +43 -31
  428. package/src/lib/fragments/dataEntry/AntdCheckboxGroup.react.js +45 -35
  429. package/src/lib/fragments/dataEntry/AntdColorPicker.react.js +95 -86
  430. package/src/lib/fragments/dataEntry/AntdDatePicker.react.js +171 -135
  431. package/src/lib/fragments/dataEntry/AntdDateRangePicker.react.js +242 -173
  432. package/src/lib/fragments/dataEntry/AntdInput.react.js +176 -168
  433. package/src/lib/fragments/dataEntry/AntdInputNumber.react.js +63 -54
  434. package/src/lib/fragments/dataEntry/AntdMentions.react.js +65 -63
  435. package/src/lib/fragments/dataEntry/AntdOTP.react.js +45 -34
  436. package/src/lib/fragments/dataEntry/AntdRadioGroup.react.js +92 -68
  437. package/src/lib/fragments/dataEntry/AntdRate.react.js +44 -33
  438. package/src/lib/fragments/dataEntry/AntdSegmentedColoring.react.js +194 -151
  439. package/src/lib/fragments/dataEntry/AntdSelect.react.js +232 -169
  440. package/src/lib/fragments/dataEntry/AntdSlider.react.js +58 -45
  441. package/src/lib/fragments/dataEntry/AntdSwitch.react.js +43 -33
  442. package/src/lib/fragments/dataEntry/AntdTimePicker.react.js +68 -47
  443. package/src/lib/fragments/dataEntry/AntdTimeRangePicker.react.js +105 -64
  444. package/src/lib/fragments/dataEntry/AntdTransfer.react.js +75 -59
  445. package/src/lib/fragments/dataEntry/AntdTreeSelect.react.js +154 -135
  446. package/src/lib/fragments/dataEntry/check-card/AntdCheckCard.react.js +34 -25
  447. package/src/lib/fragments/dataEntry/check-card/AntdCheckCardGroup.react.js +35 -26
  448. package/src/lib/fragments/dataEntry/form/AntdForm.react.js +45 -31
  449. package/src/lib/fragments/dataEntry/form/AntdFormItem.react.js +21 -10
  450. package/src/lib/fragments/formRender/AntdFormRender.react.js +45 -49
  451. package/src/lib/fragments/upload/AntdDraggerUpload.react.js +548 -339
  452. package/src/lib/fragments/upload/AntdPictureUpload.react.js +417 -282
  453. package/src/lib/fragments/upload/AntdUpload.react.js +554 -336
  454. package/src/lib/hooks/useCss.js +1 -1
  455. package/src/lib/hooks/useStickyOffset.js +103 -84
  456. package/src/lib/index.js +3 -5
  457. package/src/lib/internal_components/UtilsLink.react.js +10 -5
  458. package/src/lib/store/formStore.js +52 -45
  459. package/tests/__init__.py +0 -0
  460. package/tests/requirements.txt +5 -0
  461. package/tests/test_basic_usage.py +19 -0
  462. package/tests/test_locale_french.py +33 -0
  463. package/usage.py +3 -4
  464. package/webpack.config.js +6 -15
  465. package/bug_fix.py +0 -21
  466. package/feffery_antd_components/utils.py +0 -262
  467. package/release-to-test-pypi.sh +0 -1
  468. package/review_checklist.md +0 -47
  469. package/src/jl/'feffery'_antdaccordion.jl +0 -56
  470. package/src/jl/'feffery'_antdaffix.jl +0 -35
  471. package/src/jl/'feffery'_antdalert.jl +0 -37
  472. package/src/jl/'feffery'_antdanchor.jl +0 -39
  473. package/src/jl/'feffery'_antdavatar.jl +0 -45
  474. package/src/jl/'feffery'_antdavatargroup.jl +0 -49
  475. package/src/jl/'feffery'_antdbacktop.jl +0 -31
  476. package/src/jl/'feffery'_antdbadge.jl +0 -53
  477. package/src/jl/'feffery'_antdbreadcrumb.jl +0 -51
  478. package/src/jl/'feffery'_antdbutton.jl +0 -72
  479. package/src/jl/'feffery'_antdcalendar.jl +0 -50
  480. package/src/jl/'feffery'_antdcard.jl +0 -70
  481. package/src/jl/'feffery'_antdcardgrid.jl +0 -34
  482. package/src/jl/'feffery'_antdcardmeta.jl +0 -26
  483. package/src/jl/'feffery'_antdcarousel.jl +0 -56
  484. package/src/jl/'feffery'_antdcascader.jl +0 -75
  485. package/src/jl/'feffery'_antdcenter.jl +0 -34
  486. package/src/jl/'feffery'_antdcheckabletag.jl +0 -28
  487. package/src/jl/'feffery'_antdcheckbox.jl +0 -44
  488. package/src/jl/'feffery'_antdcheckboxgroup.jl +0 -44
  489. package/src/jl/'feffery'_antdcheckcard.jl +0 -49
  490. package/src/jl/'feffery'_antdcheckcardgroup.jl +0 -52
  491. package/src/jl/'feffery'_antdcol.jl +0 -82
  492. package/src/jl/'feffery'_antdcollapse.jl +0 -57
  493. package/src/jl/'feffery'_antdcolorpicker.jl +0 -61
  494. package/src/jl/'feffery'_antdcomment.jl +0 -66
  495. package/src/jl/'feffery'_antdcompact.jl +0 -34
  496. package/src/jl/'feffery'_antdconfigprovider.jl +0 -52
  497. package/src/jl/'feffery'_antdcontent.jl +0 -30
  498. package/src/jl/'feffery'_antdcopytext.jl +0 -31
  499. package/src/jl/'feffery'_antdcountdown.jl +0 -35
  500. package/src/jl/'feffery'_antdcountup.jl +0 -32
  501. package/src/jl/'feffery'_antdcustomskeleton.jl +0 -42
  502. package/src/jl/'feffery'_antddatepicker.jl +0 -99
  503. package/src/jl/'feffery'_antddaterangepicker.jl +0 -98
  504. package/src/jl/'feffery'_antddescriptionitem.jl +0 -41
  505. package/src/jl/'feffery'_antddescriptions.jl +0 -71
  506. package/src/jl/'feffery'_antddivider.jl +0 -47
  507. package/src/jl/'feffery'_antddraggerupload.jl +0 -117
  508. package/src/jl/'feffery'_antddrawer.jl +0 -72
  509. package/src/jl/'feffery'_antddropdown.jl +0 -91
  510. package/src/jl/'feffery'_antdempty.jl +0 -47
  511. package/src/jl/'feffery'_antdflex.jl +0 -41
  512. package/src/jl/'feffery'_antdfloatbutton.jl +0 -39
  513. package/src/jl/'feffery'_antdfloatbuttongroup.jl +0 -44
  514. package/src/jl/'feffery'_antdfooter.jl +0 -30
  515. package/src/jl/'feffery'_antdform.jl +0 -53
  516. package/src/jl/'feffery'_antdformitem.jl +0 -55
  517. package/src/jl/'feffery'_antdformrender.jl +0 -229
  518. package/src/jl/'feffery'_antdhappyprovider.jl +0 -28
  519. package/src/jl/'feffery'_antdheader.jl +0 -30
  520. package/src/jl/'feffery'_antdicon.jl +0 -31
  521. package/src/jl/'feffery'_antdimage.jl +0 -49
  522. package/src/jl/'feffery'_antdimagegroup.jl +0 -53
  523. package/src/jl/'feffery'_antdinput.jl +0 -94
  524. package/src/jl/'feffery'_antdinputnumber.jl +0 -67
  525. package/src/jl/'feffery'_antdlayout.jl +0 -30
  526. package/src/jl/'feffery'_antdmentions.jl +0 -56
  527. package/src/jl/'feffery'_antdmenu.jl +0 -58
  528. package/src/jl/'feffery'_antdmessage.jl +0 -31
  529. package/src/jl/'feffery'_antdmodal.jl +0 -128
  530. package/src/jl/'feffery'_antdnotification.jl +0 -52
  531. package/src/jl/'feffery'_antdotp.jl +0 -43
  532. package/src/jl/'feffery'_antdpageheader.jl +0 -40
  533. package/src/jl/'feffery'_antdpagination.jl +0 -61
  534. package/src/jl/'feffery'_antdparagraph.jl +0 -48
  535. package/src/jl/'feffery'_antdpictureupload.jl +0 -137
  536. package/src/jl/'feffery'_antdpopconfirm.jl +0 -105
  537. package/src/jl/'feffery'_antdpopover.jl +0 -60
  538. package/src/jl/'feffery'_antdpopupcard.jl +0 -67
  539. package/src/jl/'feffery'_antdprogress.jl +0 -71
  540. package/src/jl/'feffery'_antdqrcode.jl +0 -51
  541. package/src/jl/'feffery'_antdradiogroup.jl +0 -55
  542. package/src/jl/'feffery'_antdrate.jl +0 -47
  543. package/src/jl/'feffery'_antdresult.jl +0 -29
  544. package/src/jl/'feffery'_antdribbon.jl +0 -34
  545. package/src/jl/'feffery'_antdrow.jl +0 -44
  546. package/src/jl/'feffery'_antdsegmented.jl +0 -56
  547. package/src/jl/'feffery'_antdsegmentedcoloring.jl +0 -59
  548. package/src/jl/'feffery'_antdselect.jl +0 -102
  549. package/src/jl/'feffery'_antdsider.jl +0 -43
  550. package/src/jl/'feffery'_antdskeleton.jl +0 -62
  551. package/src/jl/'feffery'_antdskeletonavatar.jl +0 -29
  552. package/src/jl/'feffery'_antdskeletonbutton.jl +0 -31
  553. package/src/jl/'feffery'_antdskeletonimage.jl +0 -23
  554. package/src/jl/'feffery'_antdskeletoninput.jl +0 -27
  555. package/src/jl/'feffery'_antdslider.jl +0 -73
  556. package/src/jl/'feffery'_antdspace.jl +0 -46
  557. package/src/jl/'feffery'_antdspin.jl +0 -49
  558. package/src/jl/'feffery'_antdsplitter.jl +0 -44
  559. package/src/jl/'feffery'_antdspoiler.jl +0 -44
  560. package/src/jl/'feffery'_antdstatistic.jl +0 -37
  561. package/src/jl/'feffery'_antdsteps.jl +0 -49
  562. package/src/jl/'feffery'_antdswitch.jl +0 -51
  563. package/src/jl/'feffery'_antdtable.jl +0 -447
  564. package/src/jl/'feffery'_antdtabs.jl +0 -84
  565. package/src/jl/'feffery'_antdtag.jl +0 -34
  566. package/src/jl/'feffery'_antdtext.jl +0 -46
  567. package/src/jl/'feffery'_antdtimeline.jl +0 -35
  568. package/src/jl/'feffery'_antdtimepicker.jl +0 -79
  569. package/src/jl/'feffery'_antdtimerangepicker.jl +0 -73
  570. package/src/jl/'feffery'_antdtitle.jl +0 -44
  571. package/src/jl/'feffery'_antdtooltip.jl +0 -64
  572. package/src/jl/'feffery'_antdtour.jl +0 -68
  573. package/src/jl/'feffery'_antdtransfer.jl +0 -71
  574. package/src/jl/'feffery'_antdtree.jl +0 -96
  575. package/src/jl/'feffery'_antdtreeselect.jl +0 -101
  576. package/src/jl/'feffery'_antdupload.jl +0 -131
  577. package/src/jl/'feffery'_antdwatermark.jl +0 -48
  578. package/src/jl/'feffery'_fragment.jl +0 -27
  579. package/tests/dataDisplay/AntdTable/feat_sticky_header.py +0 -81
  580. package/tests/dataEntry/AntdDateRangePicker/feat_prefix.py +0 -21
  581. package/tests/dataEntry/AntdDateRangePicker/feat_suffix_icon.py +0 -21
  582. package/tests/dataEntry/AntdTimeRangePicker/feat_prefix.py +0 -21
  583. package/tests/dataEntry/AntdTimeRangePicker/feat_suffix_icon.py +0 -21
  584. package/tests/general/AntdFloatButtonGroup/feat_placement.py +0 -83
  585. package/tests/other/AntdConfigProvider/feat_use_css.py +0 -67
  586. /package/{fac-logo.svg → imgs/fac-logo.svg} +0 -0
  587. /package/{images → imgs}//345/205/254/344/274/227/345/217/267.png" +0 -0
  588. /package/{images → imgs}//345/233/275/351/231/205/345/214/226/347/244/272/344/276/213_de-de.png" +0 -0
  589. /package/{images → imgs}//345/233/275/351/231/205/345/214/226/347/244/272/344/276/213_en-us.png" +0 -0
  590. /package/{images → imgs}//347/237/245/350/257/206/346/230/237/347/220/203.jpg" +0 -0
@@ -5,13 +5,23 @@ import { Tree, Tooltip, Dropdown, Rate } from 'antd';
5
5
  import AntdIcon from '../../components/general/AntdIcon.react';
6
6
  // 辅助库
7
7
  import Highlighter from 'react-highlight-words';
8
- import { omitBy, isUndefined, isString, isObject, isArray, cloneDeep } from 'lodash';
8
+ import {
9
+ omitBy,
10
+ isUndefined,
11
+ isString,
12
+ isObject,
13
+ isArray,
14
+ cloneDeep,
15
+ } from 'lodash';
9
16
  import { pickBy } from 'ramda';
10
17
  import { flatToTree, useLoading } from '../../components/utils';
11
18
  // 自定义hooks
12
19
  import useCss from '../../hooks/useCss';
13
20
  // 参数类型
14
- import { propTypes, defaultProps } from '../../components/dataDisplay/AntdTree.react';
21
+ import {
22
+ propTypes,
23
+ defaultProps,
24
+ } from '../../components/dataDisplay/AntdTree.react';
15
25
 
16
26
  // 自定义工具函数
17
27
  // https://github.com/ant-design/ant-design/issues/15926
@@ -28,16 +38,22 @@ const isSameParent = (a, b) => {
28
38
  aLevel.pop();
29
39
 
30
40
  return aLevel.join('') === bLevel.join('');
31
- }
41
+ };
32
42
 
33
43
  const filterTree = (toFilterData, keyword, caseSensitive) => {
34
- return toFilterData.filter(node => {
44
+ return toFilterData.filter((node) => {
35
45
  // 首先检查当前节点是否匹配关键字
36
46
  let isMatch = false;
37
47
  if (Array.isArray(keyword)) {
38
- isMatch = keyword.some(s => caseSensitive ? node.title.includes(s) : node.title.toLowerCase().includes(s.toLowerCase()));
48
+ isMatch = keyword.some((s) =>
49
+ caseSensitive
50
+ ? node.title.includes(s)
51
+ : node.title.toLowerCase().includes(s.toLowerCase())
52
+ );
39
53
  } else {
40
- isMatch = caseSensitive ? node.title.includes(keyword) : node.title.toLowerCase().includes(keyword.toLowerCase());
54
+ isMatch = caseSensitive
55
+ ? node.title.includes(keyword)
56
+ : node.title.toLowerCase().includes(keyword.toLowerCase());
41
57
  }
42
58
 
43
59
  // 如果当前节点匹配关键字,但不是根节点,才保留它及其全部后代节点信息
@@ -58,7 +74,7 @@ const filterTree = (toFilterData, keyword, caseSensitive) => {
58
74
  // 如果当前节点和它的子节点都不匹配,返回 false,表示不保留该节点
59
75
  return false;
60
76
  });
61
- }
77
+ };
62
78
 
63
79
  /**
64
80
  * 树形控件组件AntdTree
@@ -120,20 +136,20 @@ const AntdTree = (props) => {
120
136
  if (dataLoading.current) {
121
137
  dataLoading.current = false;
122
138
  }
123
- }, [treeData])
139
+ }, [treeData]);
124
140
 
125
141
  // 批属性监听
126
142
  useEffect(() => {
127
143
  if (batchPropsNames && batchPropsNames.length !== 0) {
128
- let _batchPropsValues = {};
129
- for (let propName of batchPropsNames) {
144
+ const _batchPropsValues = {};
145
+ for (const propName of batchPropsNames) {
130
146
  _batchPropsValues[propName] = props[propName];
131
147
  }
132
148
  setProps({
133
- batchPropsValues: _batchPropsValues
134
- })
149
+ batchPropsValues: _batchPropsValues,
150
+ });
135
151
  }
136
- })
152
+ });
137
153
 
138
154
  const treeRef = useRef(null);
139
155
 
@@ -142,30 +158,39 @@ const AntdTree = (props) => {
142
158
  if (scrollTarget && treeRef.current) {
143
159
  treeRef.current.scrollTo(scrollTarget);
144
160
  setProps({
145
- scrollTarget: null
146
- })
161
+ scrollTarget: null,
162
+ });
147
163
  }
148
- }, [scrollTarget])
164
+ }, [scrollTarget]);
149
165
 
150
166
  if (showLine) {
151
- showLine = { 'showLeafIcon': false }
167
+ showLine = { showLeafIcon: false };
152
168
  }
153
169
 
154
170
  useEffect(() => {
155
171
  setProps({
156
- expandedKeys: defaultExpandedKeys && !expandedKeys ? defaultExpandedKeys : expandedKeys,
157
- selectedKeys: defaultSelectedKeys && !selectedKeys ? defaultSelectedKeys : selectedKeys,
158
- checkedKeys: defaultCheckedKeys && !checkedKeys ? defaultCheckedKeys : checkedKeys
159
- })
160
- }, [])
172
+ expandedKeys:
173
+ defaultExpandedKeys && !expandedKeys
174
+ ? defaultExpandedKeys
175
+ : expandedKeys,
176
+ selectedKeys:
177
+ defaultSelectedKeys && !selectedKeys
178
+ ? defaultSelectedKeys
179
+ : selectedKeys,
180
+ checkedKeys:
181
+ defaultCheckedKeys && !checkedKeys
182
+ ? defaultCheckedKeys
183
+ : checkedKeys,
184
+ });
185
+ }, []);
161
186
 
162
187
  const flatToTreeData = useMemo(() => {
163
188
  return flatToTree(treeData);
164
- }, [treeData])
189
+ }, [treeData]);
165
190
 
166
191
  // 根据treeDataMode对treeData进行预处理
167
192
  if (treeDataMode === 'flat') {
168
- treeData = flatToTreeData
193
+ treeData = flatToTreeData;
169
194
  }
170
195
 
171
196
  // 用于以递归的方式将节点icon属性替换成相应的icon对象
@@ -173,113 +198,107 @@ const AntdTree = (props) => {
173
198
  if (isObject(inputTreeData)) {
174
199
  // 为节点添加tooltip相关参数
175
200
  if (inputTreeData.tooltipProps && isString(inputTreeData.title)) {
176
- inputTreeData.title = (<Tooltip {...inputTreeData.tooltipProps}>
177
- {inputTreeData.title}
178
- </Tooltip>)
201
+ inputTreeData.title = (
202
+ <Tooltip {...inputTreeData.tooltipProps}>
203
+ {inputTreeData.title}
204
+ </Tooltip>
205
+ );
179
206
  }
180
207
  if (inputTreeData.children) {
181
208
  if (isString(inputTreeData.icon)) {
182
- inputTreeData.icon = (
183
- inputTreeData.iconRenderer === 'fontawesome' ?
184
- (
185
- React.createElement(
186
- 'i',
187
- {
188
- className: inputTreeData.icon
189
- }
190
- )
191
- ) :
192
- (
193
- <AntdIcon icon={inputTreeData.icon} />
194
- )
195
- )
209
+ inputTreeData.icon =
210
+ inputTreeData.iconRenderer === 'fontawesome' ? (
211
+ React.createElement('i', {
212
+ className: inputTreeData.icon,
213
+ })
214
+ ) : (
215
+ <AntdIcon icon={inputTreeData.icon} />
216
+ );
196
217
  }
197
218
  for (let i = 0; i < inputTreeData.children.length; i++) {
198
- inputTreeData.children[i] = add_leaf_node_icon(inputTreeData.children[i])
219
+ inputTreeData.children[i] = add_leaf_node_icon(
220
+ inputTreeData.children[i]
221
+ );
199
222
  }
200
223
  } else {
201
224
  if (isString(inputTreeData.icon)) {
202
- inputTreeData.icon = (
203
- inputTreeData.iconRenderer === 'fontawesome' ?
204
- (
205
- React.createElement(
206
- 'i',
207
- {
208
- className: inputTreeData.icon
209
- }
210
- )
211
- ) :
212
- (
213
- <AntdIcon icon={inputTreeData.icon} />
214
- )
215
- )
225
+ inputTreeData.icon =
226
+ inputTreeData.iconRenderer === 'fontawesome' ? (
227
+ React.createElement('i', {
228
+ className: inputTreeData.icon,
229
+ })
230
+ ) : (
231
+ <AntdIcon icon={inputTreeData.icon} />
232
+ );
216
233
  }
217
234
  }
218
235
  }
219
236
 
220
237
  if (isArray(inputTreeData)) {
221
238
  for (var i = 0; i < inputTreeData.length; i++) {
222
- inputTreeData[i] = add_leaf_node_icon(inputTreeData[i])
239
+ inputTreeData[i] = add_leaf_node_icon(inputTreeData[i]);
223
240
  }
224
241
  }
225
242
 
226
243
  return inputTreeData;
227
- }
244
+ };
228
245
 
229
246
  const listenSelect = (e) => {
230
- setProps({ selectedKeys: e })
231
- }
247
+ setProps({ selectedKeys: e });
248
+ };
232
249
 
233
250
  const listenCheck = (checkedKeys, e) => {
234
251
  if (checkStrictly) {
235
252
  setProps({
236
253
  checkedKeys: checkedKeys.checked,
237
- halfCheckedKeys: checkedKeys.halfChecked
238
- })
254
+ halfCheckedKeys: checkedKeys.halfChecked,
255
+ });
239
256
  } else {
240
257
  setProps({
241
258
  checkedKeys: checkedKeys,
242
- halfCheckedKeys: e.halfCheckedKeys
243
- })
259
+ halfCheckedKeys: e.halfCheckedKeys,
260
+ });
244
261
  }
245
- }
262
+ };
246
263
 
247
264
  const listenExpand = (e) => {
248
- setProps({ expandedKeys: e })
249
- }
265
+ setProps({ expandedKeys: e });
266
+ };
250
267
 
251
268
  const onDragEnter = (info) => {
252
- setProps({ expandedKeys: info.expandedKeys })
269
+ setProps({ expandedKeys: info.expandedKeys });
253
270
  };
254
271
 
255
272
  let config = {
256
- expandedKeys
257
- }
273
+ expandedKeys,
274
+ };
258
275
 
259
- config = omitBy(config, isUndefined)
276
+ config = omitBy(config, isUndefined);
260
277
 
261
278
  // 处理树节点拖拽事件,偏平结构模式下不可用
262
279
  const onDrop = (info) => {
263
-
264
280
  // 若当前放置目标节点前后同级不允许被放置
265
281
  if (dropDisabledKeys && dropDisabledKeys.includes(info.node.key)) {
266
282
  // 结束拖拽计算过程
267
- return
283
+ return;
268
284
  }
269
285
 
270
286
  // 若仅允许同级拖拽
271
287
  if (dragInSameLevel) {
272
- const canDrop = (isSameLevel(info.dragNode, info.node) && info.dropToGap) || (isSameParent(info.dragNode, info.node) && !info.dropToGap);
288
+ const canDrop =
289
+ (isSameLevel(info.dragNode, info.node) && info.dropToGap) ||
290
+ (isSameParent(info.dragNode, info.node) && !info.dropToGap);
273
291
  if (!canDrop) {
274
292
  // 结束拖拽计算过程
275
- return
293
+ return;
276
294
  }
277
295
  }
278
296
 
279
297
  const dropKey = info.node.key;
280
298
  const dragKey = info.dragNode.key;
281
299
  const dropPos = info.node.pos.split('-');
282
- const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);
300
+ const dropPosition =
301
+ info.dropPosition - Number(dropPos[dropPos.length - 1]);
283
302
  const loop = (data, _key, callback) => {
284
303
  for (let i = 0; i < data.length; i++) {
285
304
  if (data[i].key === _key) {
@@ -328,27 +347,38 @@ const AntdTree = (props) => {
328
347
  // 更新拖拽完成后的树结构数据
329
348
  setProps({
330
349
  treeData: data,
331
- draggedNodeKey: dragKey
332
- })
350
+ draggedNodeKey: dragKey,
351
+ });
333
352
  };
334
353
 
335
354
  return (
336
355
  <Tree
337
356
  // 提取具有data-*或aria-*通配格式的属性
338
- {...pickBy((_, k) => k.startsWith('data-') || k.startsWith('aria-'), others)}
357
+ {...pickBy(
358
+ (_, k) => k.startsWith('data-') || k.startsWith('aria-'),
359
+ others
360
+ )}
339
361
  id={id}
340
362
  className={
341
- isString(className) ?
342
- className :
343
- (className ? useCss(className) : undefined)
363
+ isString(className)
364
+ ? className
365
+ : className
366
+ ? useCss(className)
367
+ : undefined
344
368
  }
345
369
  style={style}
346
370
  key={key}
347
371
  ref={treeRef}
348
372
  treeData={
349
- searchKeyword ?
350
- add_leaf_node_icon(filterTree(cloneDeep(treeData), searchKeyword, caseSensitive)) :
351
- add_leaf_node_icon(cloneDeep(treeData))
373
+ searchKeyword
374
+ ? add_leaf_node_icon(
375
+ filterTree(
376
+ cloneDeep(treeData),
377
+ searchKeyword,
378
+ caseSensitive
379
+ )
380
+ )
381
+ : add_leaf_node_icon(cloneDeep(treeData))
352
382
  }
353
383
  selectedKeys={selectedKeys}
354
384
  checkedKeys={checkedKeys}
@@ -370,213 +400,267 @@ const AntdTree = (props) => {
370
400
  showIcon={showIcon}
371
401
  height={height}
372
402
  titleRender={(nodeData) => {
373
- return (
374
- nodeData.contextMenu ?
375
- (
376
- <Dropdown
377
- menu={{
378
- items: nodeData.contextMenu.map(
379
- itemProps => {
380
- return {
381
- ...itemProps,
382
- icon: itemProps.icon && (
383
- itemProps.iconRenderer === 'fontawesome' ?
384
- (
385
- React.createElement(
386
- 'i',
387
- {
388
- className: itemProps.icon
389
- }
390
- )
391
- ) :
392
- (
393
- <AntdIcon icon={itemProps.icon} />
394
- )
403
+ return nodeData.contextMenu ? (
404
+ <Dropdown
405
+ menu={{
406
+ items: nodeData.contextMenu.map((itemProps) => {
407
+ return {
408
+ ...itemProps,
409
+ icon:
410
+ itemProps.icon &&
411
+ (itemProps.iconRenderer ===
412
+ 'fontawesome' ? (
413
+ React.createElement('i', {
414
+ className: itemProps.icon,
415
+ })
416
+ ) : (
417
+ <AntdIcon icon={itemProps.icon} />
418
+ )),
419
+ };
420
+ }),
421
+ // 右键菜单事件监听
422
+ onClick: (e) => {
423
+ // 阻止事件蔓延
424
+ e.domEvent.stopPropagation();
425
+ // 更新相关事件信息
426
+ setProps({
427
+ clickedContextMenu: {
428
+ nodeKey: nodeData.key,
429
+ menuKey: e.key,
430
+ timestamp: Date.now(),
431
+ },
432
+ });
433
+ },
434
+ }}
435
+ trigger={['contextMenu']}
436
+ >
437
+ <span
438
+ className={
439
+ nodeData.className
440
+ ? `ant-tree-title ${nodeData.className}`
441
+ : 'ant-tree-title'
442
+ }
443
+ style={{
444
+ ...(checkedKeys?.includes(nodeData.key)
445
+ ? nodeCheckedStyle
446
+ : nodeUncheckedStyle),
447
+ ...nodeData.style, // 优先级更高
448
+ }}
449
+ >
450
+ {searchKeyword ? (
451
+ <Highlighter
452
+ highlightStyle={highlightStyle}
453
+ searchWords={
454
+ Array.isArray(searchKeyword)
455
+ ? searchKeyword
456
+ : [searchKeyword]
457
+ }
458
+ autoEscape
459
+ textToHighlight={nodeData.title}
460
+ />
461
+ ) : treeNodeKeyToTitle &&
462
+ treeNodeKeyToTitle[nodeData.key] ? (
463
+ treeNodeKeyToTitle[nodeData.key]
464
+ ) : (
465
+ nodeData.title
466
+ )}
467
+ {
468
+ // 若当前节点满足收藏控件渲染条件
469
+ enableNodeFavorites &&
470
+ (isUndefined(nodeData.enableFavorites) ||
471
+ nodeData.enableFavorites) ? (
472
+ <span
473
+ style={{
474
+ paddingLeft: 2,
475
+ }}
476
+ onClick={(e) => {
477
+ // 阻止事件向外传递
478
+ e.stopPropagation();
479
+ }}
480
+ >
481
+ <Rate
482
+ count={1}
483
+ value={
484
+ favoritedKeys.includes(
485
+ nodeData.key
395
486
  )
487
+ ? 1
488
+ : 0
396
489
  }
490
+ onChange={(e) => {
491
+ setProps({
492
+ favoritedKeys:
493
+ favoritedKeys.includes(
494
+ nodeData.key
495
+ )
496
+ ? favoritedKeys.filter(
497
+ (key) =>
498
+ key !==
499
+ nodeData.key
500
+ )
501
+ : [
502
+ ...favoritedKeys,
503
+ nodeData.key,
504
+ ],
505
+ });
506
+ }}
507
+ />
508
+ </span>
509
+ ) : null
510
+ }
511
+ {checkedKeys?.includes(nodeData.key)
512
+ ? nodeCheckedSuffix
513
+ : nodeUncheckedSuffix}
514
+ </span>
515
+ </Dropdown>
516
+ ) : (
517
+ <span
518
+ className={
519
+ nodeData.className
520
+ ? `ant-tree-title ${nodeData.className}`
521
+ : 'ant-tree-title'
522
+ }
523
+ style={{
524
+ ...(checkedKeys?.includes(nodeData.key)
525
+ ? nodeCheckedStyle
526
+ : nodeUncheckedStyle),
527
+ ...nodeData.style, // 优先级更高
528
+ }}
529
+ >
530
+ {searchKeyword ? (
531
+ nodeData.tooltipProps ? (
532
+ <Tooltip {...nodeData.tooltipProps}>
533
+ <Highlighter
534
+ highlightStyle={highlightStyle}
535
+ searchWords={
536
+ Array.isArray(searchKeyword)
537
+ ? searchKeyword
538
+ : [searchKeyword]
397
539
  }
398
- ),
399
- // 右键菜单事件监听
400
- onClick: (e) => {
401
- // 阻止事件蔓延
402
- e.domEvent.stopPropagation()
403
- // 更新相关事件信息
404
- setProps({
405
- clickedContextMenu: {
406
- nodeKey: nodeData.key,
407
- menuKey: e.key,
408
- timestamp: Date.now()
409
- }
410
- })
540
+ autoEscape
541
+ textToHighlight={
542
+ nodeData.title.props.children
543
+ }
544
+ />
545
+ </Tooltip>
546
+ ) : (
547
+ <Highlighter
548
+ highlightStyle={highlightStyle}
549
+ searchWords={
550
+ Array.isArray(searchKeyword)
551
+ ? searchKeyword
552
+ : [searchKeyword]
411
553
  }
412
- }}
413
- trigger={['contextMenu']}
414
- >
415
- <span className={nodeData.className ? `ant-tree-title ${nodeData.className}` : "ant-tree-title"}
554
+ autoEscape
555
+ textToHighlight={nodeData.title}
556
+ />
557
+ )
558
+ ) : treeNodeKeyToTitle &&
559
+ treeNodeKeyToTitle[nodeData.key] ? (
560
+ treeNodeKeyToTitle[nodeData.key]
561
+ ) : (
562
+ nodeData.title
563
+ )}
564
+ {
565
+ // 若当前节点满足收藏控件渲染条件
566
+ enableNodeFavorites &&
567
+ (isUndefined(nodeData.enableFavorites) ||
568
+ nodeData.enableFavorites) ? (
569
+ <span
416
570
  style={{
417
- ...(checkedKeys?.includes(nodeData.key) ? nodeCheckedStyle : nodeUncheckedStyle),
418
- ...nodeData.style // 优先级更高
419
- }}>
420
- {
421
- searchKeyword ?
422
- <Highlighter
423
- highlightStyle={highlightStyle}
424
- searchWords={Array.isArray(searchKeyword) ? searchKeyword : [searchKeyword]}
425
- autoEscape
426
- textToHighlight={nodeData.title}
427
- /> :
428
- (
429
- treeNodeKeyToTitle && treeNodeKeyToTitle[nodeData.key] ?
430
- treeNodeKeyToTitle[nodeData.key] :
431
- nodeData.title
432
- )
433
- }
434
- {
435
- // 若当前节点满足收藏控件渲染条件
436
- enableNodeFavorites && (isUndefined(nodeData.enableFavorites) || nodeData.enableFavorites) ?
437
- <span style={{
438
- paddingLeft: 2
439
- }}
440
- onClick={(e) => {
441
- // 阻止事件向外传递
442
- e.stopPropagation()
443
- }}>
444
- <Rate
445
- count={1}
446
- value={favoritedKeys.includes(nodeData.key) ? 1 : 0}
447
- onChange={(e) => {
448
- setProps({
449
- favoritedKeys: (
450
- favoritedKeys.includes(nodeData.key) ?
451
- favoritedKeys.filter(key => key !== nodeData.key) :
452
- [...favoritedKeys, nodeData.key]
453
- )
454
- })
455
- }}
456
- />
457
- </span> :
458
- null
459
- }
460
- {checkedKeys?.includes(nodeData.key) ? nodeCheckedSuffix : nodeUncheckedSuffix}
461
- </span>
462
- </Dropdown>
463
- ) :
464
- (
465
- <span className={nodeData.className ? `ant-tree-title ${nodeData.className}` : "ant-tree-title"}
466
- style={{
467
- ...(checkedKeys?.includes(nodeData.key) ? nodeCheckedStyle : nodeUncheckedStyle),
468
- ...nodeData.style // 优先级更高
469
- }}>
470
- {
471
- searchKeyword ?
472
- (
473
- nodeData.tooltipProps ?
474
- <Tooltip {...nodeData.tooltipProps}>
475
- <Highlighter
476
- highlightStyle={highlightStyle}
477
- searchWords={Array.isArray(searchKeyword) ? searchKeyword : [searchKeyword]}
478
- autoEscape
479
- textToHighlight={nodeData.title.props.children}
480
- />
481
- </Tooltip> :
482
- <Highlighter
483
- highlightStyle={highlightStyle}
484
- searchWords={Array.isArray(searchKeyword) ? searchKeyword : [searchKeyword]}
485
- autoEscape
486
- textToHighlight={nodeData.title}
487
- />
488
- ) :
489
- (
490
- treeNodeKeyToTitle && treeNodeKeyToTitle[nodeData.key] ?
491
- treeNodeKeyToTitle[nodeData.key] :
492
- nodeData.title
493
- )
494
- }
495
- {
496
- // 若当前节点满足收藏控件渲染条件
497
- enableNodeFavorites && (isUndefined(nodeData.enableFavorites) || nodeData.enableFavorites) ?
498
- <span style={{
499
- paddingLeft: 2
571
+ paddingLeft: 2,
572
+ }}
573
+ onClick={(e) => {
574
+ // 阻止事件向外传递
575
+ e.stopPropagation();
576
+ }}
577
+ >
578
+ <Rate
579
+ count={1}
580
+ value={
581
+ favoritedKeys.includes(nodeData.key)
582
+ ? 1
583
+ : 0
584
+ }
585
+ onChange={(e) => {
586
+ setProps({
587
+ favoritedKeys:
588
+ favoritedKeys.includes(
589
+ nodeData.key
590
+ )
591
+ ? favoritedKeys.filter(
592
+ (key) =>
593
+ key !==
594
+ nodeData.key
595
+ )
596
+ : [
597
+ ...favoritedKeys,
598
+ nodeData.key,
599
+ ],
600
+ });
500
601
  }}
501
- onClick={(e) => {
502
- // 阻止事件向外传递
503
- e.stopPropagation()
504
- }}>
505
- <Rate
506
- count={1}
507
- value={favoritedKeys.includes(nodeData.key) ? 1 : 0}
508
- onChange={(e) => {
509
- setProps({
510
- favoritedKeys: (
511
- favoritedKeys.includes(nodeData.key) ?
512
- favoritedKeys.filter(key => key !== nodeData.key) :
513
- [...favoritedKeys, nodeData.key]
514
- )
515
- })
516
- }}
517
- />
518
- </span> :
519
- null
520
- }
521
- {checkedKeys?.includes(nodeData.key) ? nodeCheckedSuffix : nodeUncheckedSuffix}
522
- </span>
523
- )
602
+ />
603
+ </span>
604
+ ) : null
605
+ }
606
+ {checkedKeys?.includes(nodeData.key)
607
+ ? nodeCheckedSuffix
608
+ : nodeUncheckedSuffix}
609
+ </span>
524
610
  );
525
611
  }}
526
612
  showLeafIcon={false}
527
613
  // 处理树可拖拽特性
528
614
  draggable={
529
- (draggable && treeDataMode !== 'flat') ?
530
- {
531
- icon: showDragIcon,
532
- nodeDraggable: (node) => {
533
- // 检查当前节点是否被禁用拖拽
534
- if (dragDisabledKeys && dragDisabledKeys.includes(node.key)) {
535
- return false;
536
- }
537
- return true;
538
- }
539
- } :
540
- false
615
+ draggable && treeDataMode !== 'flat'
616
+ ? {
617
+ icon: showDragIcon,
618
+ nodeDraggable: (node) => {
619
+ // 检查当前节点是否被禁用拖拽
620
+ if (
621
+ dragDisabledKeys &&
622
+ dragDisabledKeys.includes(node.key)
623
+ ) {
624
+ return false;
625
+ }
626
+ return true;
627
+ },
628
+ }
629
+ : false
541
630
  }
542
631
  blockNode={draggable && treeDataMode !== 'flat'}
543
632
  onDrop={draggable && treeDataMode !== 'flat' ? onDrop : undefined}
544
633
  loadData={
545
- enableAsyncLoad ?
546
- (node) => {
547
- // 更新最新的异步加载数据目标节点
548
- setProps({
549
- loadingNode: {
550
- key: node.key,
551
- title: node.title
552
- }
553
- })
554
- return new Promise(
555
- (resolve) => {
556
- // 更新数据异步加载标识
557
- dataLoading.current = true;
558
- // 轮询检测是否加载完成
559
- const timer = setInterval(
560
- () => {
561
- if (!dataLoading.current) {
562
- clearInterval(timer);
563
- resolve();
564
- }
565
- },
566
- 200
567
- );
568
- }
569
- )
570
- } :
571
- undefined
634
+ enableAsyncLoad
635
+ ? (node) => {
636
+ // 更新最新的异步加载数据目标节点
637
+ setProps({
638
+ loadingNode: {
639
+ key: node.key,
640
+ title: node.title,
641
+ },
642
+ });
643
+ return new Promise((resolve) => {
644
+ // 更新数据异步加载标识
645
+ dataLoading.current = true;
646
+ // 轮询检测是否加载完成
647
+ const timer = setInterval(() => {
648
+ if (!dataLoading.current) {
649
+ clearInterval(timer);
650
+ resolve();
651
+ }
652
+ }, 200);
653
+ });
654
+ }
655
+ : undefined
572
656
  }
573
657
  data-dash-is-loading={useLoading()}
574
658
  {...config}
575
659
  />
576
660
  );
577
- }
661
+ };
578
662
 
579
663
  export default AntdTree;
580
664
 
581
665
  AntdTree.defaultProps = defaultProps;
582
- AntdTree.propTypes = propTypes;
666
+ AntdTree.propTypes = propTypes;