feffery_antd_components 0.4.3-rc6 → 0.4.3
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.
- package/CONTRIBUTING.md +4 -4
- package/DESCRIPTION +1 -1
- package/LICENSE +21 -21
- package/MANIFEST.in +6 -6
- package/Project.toml +1 -1
- package/README-en_US.md +73 -73
- package/README.md +87 -87
- package/bug_fix.py +21 -36
- package/fac-logo.svg +151 -151
- package/feffery_antd_components/AntdAccordion.py +7 -7
- package/feffery_antd_components/AntdAffix.py +2 -2
- package/feffery_antd_components/AntdAlert.py +5 -5
- package/feffery_antd_components/AntdAnchor.py +5 -5
- package/feffery_antd_components/AntdAvatar.py +4 -4
- package/feffery_antd_components/AntdAvatarGroup.py +1 -1
- package/feffery_antd_components/AntdBackTop.py +4 -4
- package/feffery_antd_components/AntdBadge.py +5 -5
- package/feffery_antd_components/AntdBreadcrumb.py +4 -4
- package/feffery_antd_components/AntdButton.py +14 -14
- package/feffery_antd_components/AntdCalendar.py +4 -4
- package/feffery_antd_components/AntdCard.py +5 -5
- package/feffery_antd_components/AntdCardGrid.py +3 -3
- package/feffery_antd_components/AntdCardMeta.py +1 -1
- package/feffery_antd_components/AntdCarousel.py +13 -13
- package/feffery_antd_components/AntdCascader.py +16 -17
- package/feffery_antd_components/AntdCenter.py +3 -3
- package/feffery_antd_components/AntdCheckCard.py +7 -7
- package/feffery_antd_components/AntdCheckCardGroup.py +9 -9
- package/feffery_antd_components/AntdCheckableTag.py +2 -2
- package/feffery_antd_components/AntdCheckbox.py +8 -8
- package/feffery_antd_components/AntdCheckboxGroup.py +6 -6
- package/feffery_antd_components/AntdCol.py +5 -5
- package/feffery_antd_components/AntdCollapse.py +8 -8
- package/feffery_antd_components/AntdColorPicker.py +13 -13
- package/feffery_antd_components/AntdComment.py +7 -7
- package/feffery_antd_components/AntdCompact.py +3 -3
- package/feffery_antd_components/AntdConfigProvider.py +6 -6
- package/feffery_antd_components/AntdContent.py +1 -1
- package/feffery_antd_components/AntdCopyText.py +2 -2
- package/feffery_antd_components/AntdCountdown.py +1 -1
- package/feffery_antd_components/AntdCountup.py +1 -1
- package/feffery_antd_components/AntdCustomSkeleton.py +5 -5
- package/feffery_antd_components/AntdDatePicker.py +13 -13
- package/feffery_antd_components/AntdDateRangePicker.py +12 -12
- package/feffery_antd_components/AntdDescriptionItem.py +2 -2
- package/feffery_antd_components/AntdDescriptions.py +6 -6
- package/feffery_antd_components/AntdDivider.py +5 -5
- package/feffery_antd_components/AntdDraggerUpload.py +15 -15
- package/feffery_antd_components/AntdDrawer.py +12 -12
- package/feffery_antd_components/AntdDropdown.py +18 -18
- package/feffery_antd_components/AntdEmpty.py +2 -2
- package/feffery_antd_components/AntdFlex.py +6 -6
- package/feffery_antd_components/AntdFloatButton.py +5 -5
- package/feffery_antd_components/AntdFloatButtonGroup.py +3 -3
- package/feffery_antd_components/AntdFooter.py +1 -1
- package/feffery_antd_components/AntdForm.py +10 -6
- package/feffery_antd_components/AntdFormItem.py +4 -4
- package/feffery_antd_components/AntdFormRender.py +2 -2
- package/feffery_antd_components/AntdHappyProvider.py +2 -2
- package/feffery_antd_components/AntdHeader.py +1 -1
- package/feffery_antd_components/AntdIcon.py +3 -3
- package/feffery_antd_components/AntdImage.py +6 -6
- package/feffery_antd_components/AntdImageGroup.py +6 -6
- package/feffery_antd_components/AntdInput.py +17 -17
- package/feffery_antd_components/AntdInputNumber.py +12 -12
- package/feffery_antd_components/AntdLayout.py +1 -1
- package/feffery_antd_components/AntdMentions.py +9 -9
- package/feffery_antd_components/AntdMenu.py +9 -9
- package/feffery_antd_components/AntdMessage.py +3 -3
- package/feffery_antd_components/AntdModal.py +28 -28
- package/feffery_antd_components/AntdNotification.py +9 -9
- package/feffery_antd_components/AntdOTP.py +7 -7
- package/feffery_antd_components/AntdPageHeader.py +5 -5
- package/feffery_antd_components/AntdPagination.py +15 -15
- package/feffery_antd_components/AntdParagraph.py +2 -2
- package/feffery_antd_components/AntdPictureUpload.py +28 -28
- package/feffery_antd_components/AntdPopconfirm.py +21 -21
- package/feffery_antd_components/AntdPopover.py +9 -9
- package/feffery_antd_components/AntdPopupCard.py +9 -9
- package/feffery_antd_components/AntdProgress.py +9 -9
- package/feffery_antd_components/AntdQRCode.py +10 -10
- package/feffery_antd_components/AntdRadioGroup.py +9 -9
- package/feffery_antd_components/AntdRate.py +9 -9
- package/feffery_antd_components/AntdResult.py +1 -1
- package/feffery_antd_components/AntdRibbon.py +2 -2
- package/feffery_antd_components/AntdRow.py +3 -3
- package/feffery_antd_components/AntdSegmented.py +9 -9
- package/feffery_antd_components/AntdSegmentedColoring.py +11 -11
- package/feffery_antd_components/AntdSelect.py +19 -19
- package/feffery_antd_components/AntdSider.py +6 -6
- package/feffery_antd_components/AntdSkeleton.py +11 -11
- package/feffery_antd_components/AntdSkeletonAvatar.py +3 -3
- package/feffery_antd_components/AntdSkeletonButton.py +5 -5
- package/feffery_antd_components/AntdSkeletonImage.py +1 -1
- package/feffery_antd_components/AntdSkeletonInput.py +3 -3
- package/feffery_antd_components/AntdSlider.py +10 -10
- package/feffery_antd_components/AntdSpace.py +4 -4
- package/feffery_antd_components/AntdSpin.py +7 -8
- package/feffery_antd_components/AntdSplitter.py +5 -5
- package/feffery_antd_components/AntdSpoiler.py +5 -5
- package/feffery_antd_components/AntdStatistic.py +2 -2
- package/feffery_antd_components/AntdSteps.py +8 -8
- package/feffery_antd_components/AntdSwitch.py +8 -8
- package/feffery_antd_components/AntdTable.py +64 -63
- package/feffery_antd_components/AntdTabs.py +13 -14
- package/feffery_antd_components/AntdTag.py +4 -4
- package/feffery_antd_components/AntdText.py +2 -2
- package/feffery_antd_components/AntdTimePicker.py +16 -16
- package/feffery_antd_components/AntdTimeRangePicker.py +15 -15
- package/feffery_antd_components/AntdTimeline.py +2 -2
- package/feffery_antd_components/AntdTitle.py +2 -2
- package/feffery_antd_components/AntdTooltip.py +9 -9
- package/feffery_antd_components/AntdTour.py +9 -9
- package/feffery_antd_components/AntdTransfer.py +11 -11
- package/feffery_antd_components/AntdTree.py +17 -17
- package/feffery_antd_components/AntdTreeSelect.py +18 -18
- package/feffery_antd_components/AntdUpload.py +18 -18
- package/feffery_antd_components/AntdWatermark.py +6 -6
- package/feffery_antd_components/Fragment.py +1 -1
- package/feffery_antd_components/__init__.py +88 -88
- package/feffery_antd_components/_icons.py +559 -559
- package/feffery_antd_components/alias.py +222 -222
- package/feffery_antd_components/async-antd_table.js +2 -2
- package/feffery_antd_components/async-data_display.js +1 -1
- package/feffery_antd_components/async-data_entry.js +3 -3
- package/feffery_antd_components/async-upload.js +2 -2
- package/feffery_antd_components/feffery_antd_components.min.js +8 -8
- package/feffery_antd_components/metadata.json +1 -1
- package/feffery_antd_components/package-info.json +111 -96
- package/feffery_antd_components/utils.py +262 -262
- package/package.json +111 -96
- package/pytest.ini +5 -5
- package/release-to-test-pypi.sh +1 -1
- package/requirements.txt +2 -2
- package/review_checklist.md +47 -47
- package/ruff.toml +4 -4
- package/setup.py +33 -33
- package/src/jl/'feffery'_antdform.jl +2 -1
- package/src/jl/'feffery'_antdtable.jl +7 -6
- package/src/lib/components/dataDisplay/AntdAccordion.react.js +232 -232
- package/src/lib/components/dataDisplay/AntdAvatar.react.js +177 -177
- package/src/lib/components/dataDisplay/AntdAvatarGroup.react.js +133 -133
- package/src/lib/components/dataDisplay/AntdBadge.react.js +196 -196
- package/src/lib/components/dataDisplay/AntdCarousel.react.js +187 -187
- package/src/lib/components/dataDisplay/AntdCheckableTag.react.js +105 -105
- package/src/lib/components/dataDisplay/AntdCollapse.react.js +239 -239
- package/src/lib/components/dataDisplay/AntdComment.react.js +251 -251
- package/src/lib/components/dataDisplay/AntdCountdown.react.js +143 -143
- package/src/lib/components/dataDisplay/AntdCountup.react.js +133 -133
- package/src/lib/components/dataDisplay/AntdEmpty.react.js +162 -162
- package/src/lib/components/dataDisplay/AntdImage.react.js +202 -202
- package/src/lib/components/dataDisplay/AntdImageGroup.react.js +181 -181
- package/src/lib/components/dataDisplay/AntdPopover.react.js +220 -220
- package/src/lib/components/dataDisplay/AntdQRCode.react.js +191 -191
- package/src/lib/components/dataDisplay/AntdRibbon.react.js +105 -105
- package/src/lib/components/dataDisplay/AntdSegmented.react.js +234 -234
- package/src/lib/components/dataDisplay/AntdSpoiler.react.js +154 -154
- package/src/lib/components/dataDisplay/AntdStatistic.react.js +168 -168
- package/src/lib/components/dataDisplay/AntdTable.react.js +1859 -1858
- package/src/lib/components/dataDisplay/AntdTabs.react.js +352 -352
- package/src/lib/components/dataDisplay/AntdTag.react.js +135 -135
- package/src/lib/components/dataDisplay/AntdTimeline.react.js +136 -136
- package/src/lib/components/dataDisplay/AntdTooltip.react.js +230 -230
- package/src/lib/components/dataDisplay/AntdTree.react.js +641 -641
- package/src/lib/components/dataDisplay/card/AntdCard.react.js +249 -249
- package/src/lib/components/dataDisplay/card/AntdCardGrid.react.js +99 -99
- package/src/lib/components/dataDisplay/card/AntdCardMeta.react.js +97 -97
- package/src/lib/components/dataDisplay/descriptions/AntdDescriptionItem.react.js +130 -130
- package/src/lib/components/dataDisplay/descriptions/AntdDescriptions.react.js +237 -237
- package/src/lib/components/dataEntry/AntdCalendar.react.js +205 -205
- package/src/lib/components/dataEntry/AntdCascader.react.js +435 -435
- package/src/lib/components/dataEntry/AntdCheckbox.react.js +182 -182
- package/src/lib/components/dataEntry/AntdCheckboxGroup.react.js +193 -193
- package/src/lib/components/dataEntry/AntdColorPicker.react.js +240 -240
- package/src/lib/components/dataEntry/AntdDatePicker.react.js +432 -432
- package/src/lib/components/dataEntry/AntdDateRangePicker.react.js +439 -439
- package/src/lib/components/dataEntry/AntdInput.react.js +423 -423
- package/src/lib/components/dataEntry/AntdInputNumber.react.js +329 -329
- package/src/lib/components/dataEntry/AntdMentions.react.js +236 -236
- package/src/lib/components/dataEntry/AntdOTP.react.js +186 -186
- package/src/lib/components/dataEntry/AntdRadioGroup.react.js +241 -241
- package/src/lib/components/dataEntry/AntdRate.react.js +199 -199
- package/src/lib/components/dataEntry/AntdSegmentedColoring.react.js +251 -251
- package/src/lib/components/dataEntry/AntdSelect.react.js +492 -492
- package/src/lib/components/dataEntry/AntdSlider.react.js +325 -325
- package/src/lib/components/dataEntry/AntdSwitch.react.js +210 -210
- package/src/lib/components/dataEntry/AntdTimePicker.react.js +344 -344
- package/src/lib/components/dataEntry/AntdTimeRangePicker.react.js +325 -325
- package/src/lib/components/dataEntry/AntdTransfer.react.js +317 -317
- package/src/lib/components/dataEntry/AntdTreeSelect.react.js +573 -573
- package/src/lib/components/dataEntry/check-card/AntdCheckCard.react.js +186 -186
- package/src/lib/components/dataEntry/check-card/AntdCheckCardGroup.react.js +214 -214
- package/src/lib/components/dataEntry/form/AntdForm.react.js +201 -194
- package/src/lib/components/dataEntry/form/AntdFormItem.react.js +210 -210
- package/src/lib/components/dataEntry/upload/AntdDraggerUpload.react.js +504 -504
- package/src/lib/components/dataEntry/upload/AntdPictureUpload.react.js +530 -530
- package/src/lib/components/dataEntry/upload/AntdUpload.react.js +537 -537
- package/src/lib/components/feedback/AntdAlert.react.js +185 -185
- package/src/lib/components/feedback/AntdDrawer.react.js +306 -306
- package/src/lib/components/feedback/AntdMessage.react.js +143 -143
- package/src/lib/components/feedback/AntdModal.react.js +530 -530
- package/src/lib/components/feedback/AntdNotification.react.js +211 -211
- package/src/lib/components/feedback/AntdPopconfirm.react.js +433 -433
- package/src/lib/components/feedback/AntdPopupCard.react.js +362 -362
- package/src/lib/components/feedback/AntdProgress.react.js +300 -300
- package/src/lib/components/feedback/AntdResult.react.js +125 -125
- package/src/lib/components/feedback/AntdSpin.react.js +273 -273
- package/src/lib/components/feedback/skeleton/AntdCustomSkeleton.react.js +197 -197
- package/src/lib/components/feedback/skeleton/AntdSkeleton.react.js +291 -291
- package/src/lib/components/feedback/skeleton/AntdSkeletonAvatar.react.js +109 -109
- package/src/lib/components/feedback/skeleton/AntdSkeletonButton.react.js +114 -114
- package/src/lib/components/feedback/skeleton/AntdSkeletonImage.react.js +82 -82
- package/src/lib/components/feedback/skeleton/AntdSkeletonInput.react.js +98 -98
- package/src/lib/components/formRender/AntdFormRender.react.js +945 -945
- package/src/lib/components/general/AntdButton.react.js +328 -328
- package/src/lib/components/general/AntdFloatButton.react.js +157 -157
- package/src/lib/components/general/AntdFloatButtonGroup.react.js +162 -162
- package/src/lib/components/general/AntdIcon.react.js +176 -176
- package/src/lib/components/general/typography/AntdParagraph.react.js +202 -202
- package/src/lib/components/general/typography/AntdText.react.js +194 -194
- package/src/lib/components/general/typography/AntdTitle.react.js +186 -186
- package/src/lib/components/icons.react.js +1136 -1136
- package/src/lib/components/layout/AntdCenter.react.js +122 -122
- package/src/lib/components/layout/AntdCompact.react.js +108 -108
- package/src/lib/components/layout/AntdContent.react.js +92 -92
- package/src/lib/components/layout/AntdDivider.react.js +219 -219
- package/src/lib/components/layout/AntdFlex.react.js +143 -143
- package/src/lib/components/layout/AntdFooter.react.js +92 -92
- package/src/lib/components/layout/AntdHeader.react.js +92 -92
- package/src/lib/components/layout/AntdLayout.react.js +90 -90
- package/src/lib/components/layout/AntdSider.react.js +162 -162
- package/src/lib/components/layout/AntdSpace.react.js +213 -213
- package/src/lib/components/layout/AntdSplitter.react.js +173 -173
- package/src/lib/components/layout/grid/AntdCol.react.js +349 -349
- package/src/lib/components/layout/grid/AntdRow.react.js +152 -152
- package/src/lib/components/locales.react.js +197 -197
- package/src/lib/components/navigation/AntdAnchor.react.js +208 -208
- package/src/lib/components/navigation/AntdBreadcrumb.react.js +270 -270
- package/src/lib/components/navigation/AntdDropdown.react.js +469 -469
- package/src/lib/components/navigation/AntdMenu.react.js +573 -649
- package/src/lib/components/navigation/AntdPageHeader.react.js +139 -139
- package/src/lib/components/navigation/AntdPagination.react.js +303 -303
- package/src/lib/components/navigation/AntdSteps.react.js +199 -199
- package/src/lib/components/other/AntdAffix.react.js +120 -120
- package/src/lib/components/other/AntdBackTop.react.js +128 -128
- package/src/lib/components/other/AntdConfigProvider.react.js +246 -246
- package/src/lib/components/other/AntdCopyText.react.js +138 -138
- package/src/lib/components/other/AntdHappyProvider.react.js +50 -50
- package/src/lib/components/other/AntdTour.react.js +277 -277
- package/src/lib/components/other/AntdWatermark.react.js +179 -179
- package/src/lib/components/other/Fragment.react.js +50 -50
- package/src/lib/components/styles.css +513 -513
- package/src/lib/components/utils.js +51 -51
- package/src/lib/contexts/FormContext.js +4 -4
- package/src/lib/contexts/FormItemContext.js +4 -4
- package/src/lib/contexts/PropsContext.js +4 -4
- package/src/lib/fragments/AntdTable.react.js +2215 -2200
- package/src/lib/fragments/dataDisplay/AntdAccordion.react.js +101 -101
- package/src/lib/fragments/dataDisplay/AntdAvatar.react.js +127 -127
- package/src/lib/fragments/dataDisplay/AntdAvatarGroup.react.js +51 -51
- package/src/lib/fragments/dataDisplay/AntdBadge.react.js +73 -73
- package/src/lib/fragments/dataDisplay/AntdCarousel.react.js +71 -71
- package/src/lib/fragments/dataDisplay/AntdCheckableTag.react.js +57 -57
- package/src/lib/fragments/dataDisplay/AntdComment.react.js +178 -178
- package/src/lib/fragments/dataDisplay/AntdCountdown.react.js +83 -83
- package/src/lib/fragments/dataDisplay/AntdCountup.react.js +70 -70
- package/src/lib/fragments/dataDisplay/AntdEmpty.react.js +71 -71
- package/src/lib/fragments/dataDisplay/AntdImage.react.js +206 -206
- package/src/lib/fragments/dataDisplay/AntdImageGroup.react.js +91 -91
- package/src/lib/fragments/dataDisplay/AntdPopover.react.js +106 -106
- package/src/lib/fragments/dataDisplay/AntdQRCode.react.js +93 -93
- package/src/lib/fragments/dataDisplay/AntdRibbon.react.js +53 -53
- package/src/lib/fragments/dataDisplay/AntdSegmented.react.js +129 -129
- package/src/lib/fragments/dataDisplay/AntdSpoiler.react.js +96 -96
- package/src/lib/fragments/dataDisplay/AntdTabs.react.js +211 -211
- package/src/lib/fragments/dataDisplay/AntdTag.react.js +66 -66
- package/src/lib/fragments/dataDisplay/AntdTimeline.react.js +67 -67
- package/src/lib/fragments/dataDisplay/AntdTooltip.react.js +98 -98
- package/src/lib/fragments/dataDisplay/AntdTree.react.js +581 -581
- package/src/lib/fragments/dataDisplay/card/AntdCard.react.js +104 -104
- package/src/lib/fragments/dataDisplay/card/AntdCardGrid.react.js +54 -54
- package/src/lib/fragments/dataDisplay/card/AntdCardMeta.react.js +54 -54
- package/src/lib/fragments/dataDisplay/descriptions/AntdDescriptionItem.react.js +56 -56
- package/src/lib/fragments/dataDisplay/descriptions/AntdDescriptions.react.js +139 -139
- package/src/lib/fragments/dataEntry/AntdCalendar.react.js +178 -178
- package/src/lib/fragments/dataEntry/AntdCascader.react.js +319 -319
- package/src/lib/fragments/dataEntry/AntdCheckbox.react.js +119 -119
- package/src/lib/fragments/dataEntry/AntdCheckboxGroup.react.js +122 -122
- package/src/lib/fragments/dataEntry/AntdColorPicker.react.js +244 -244
- package/src/lib/fragments/dataEntry/AntdDatePicker.react.js +586 -586
- package/src/lib/fragments/dataEntry/AntdDateRangePicker.react.js +628 -628
- package/src/lib/fragments/dataEntry/AntdInput.react.js +450 -450
- package/src/lib/fragments/dataEntry/AntdInputNumber.react.js +194 -194
- package/src/lib/fragments/dataEntry/AntdMentions.react.js +180 -180
- package/src/lib/fragments/dataEntry/AntdOTP.react.js +127 -127
- package/src/lib/fragments/dataEntry/AntdRadioGroup.react.js +203 -203
- package/src/lib/fragments/dataEntry/AntdRate.react.js +131 -131
- package/src/lib/fragments/dataEntry/AntdSegmentedColoring.react.js +246 -246
- package/src/lib/fragments/dataEntry/AntdSelect.react.js +373 -373
- package/src/lib/fragments/dataEntry/AntdSlider.react.js +177 -177
- package/src/lib/fragments/dataEntry/AntdSwitch.react.js +132 -132
- package/src/lib/fragments/dataEntry/AntdTimePicker.react.js +191 -191
- package/src/lib/fragments/dataEntry/AntdTimeRangePicker.react.js +213 -213
- package/src/lib/fragments/dataEntry/AntdTransfer.react.js +183 -183
- package/src/lib/fragments/dataEntry/AntdTreeSelect.react.js +355 -355
- package/src/lib/fragments/dataEntry/check-card/AntdCheckCard.react.js +111 -111
- package/src/lib/fragments/dataEntry/check-card/AntdCheckCardGroup.react.js +122 -122
- package/src/lib/fragments/dataEntry/form/AntdForm.react.js +126 -120
- package/src/lib/fragments/dataEntry/form/AntdFormItem.react.js +85 -84
- package/src/lib/fragments/formRender/AntdFormRender.react.js +179 -179
- package/src/lib/fragments/upload/AntdDraggerUpload.react.js +622 -622
- package/src/lib/fragments/upload/AntdPictureUpload.react.js +577 -577
- package/src/lib/fragments/upload/AntdUpload.react.js +613 -613
- package/src/lib/hooks/useCss.js +28 -28
- package/src/lib/hooks/useStickyOffset.js +115 -115
- package/src/lib/index.js +240 -240
- package/src/lib/internal_components/UtilsLink.react.js +82 -0
- package/src/lib/store/formStore.js +54 -47
- package/tests/dash3.0tests/AntdQRCode/347/273/204/344/273/266loading/347/212/266/346/200/201/351/207/215/346/236/204/test.py +51 -51
- package/tests/dash3.0tests/AntdTable/345/207/275/346/225/260/345/274/217/346/224/271/351/200/240/test.py +62 -62
- package/tests/dash3.0tests/_dashprivate_layout/346/224/271/345/212/250/346/265/213/350/257/225/test.py +50 -50
- package/tests/dash3.0tests/loading_state/346/224/271/345/212/250/346/265/213/350/257/225/test.py +38 -38
- package/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 +30 -30
- package/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 +62 -62
- package/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 +25 -25
- package/tests/dataDisplay/AntdAccordion/feat_size.py +36 -36
- package/tests/dataDisplay/AntdAccordion/feat_styles.py +35 -35
- package/tests/dataDisplay/AntdCard/refactor_delete_props.py +83 -83
- package/tests/dataDisplay/AntdCarousel/feat_auto_play_dot_duration.py +34 -34
- package/tests/dataDisplay/AntdCollapse/feat_size.py +30 -30
- package/tests/dataDisplay/AntdCollapse/feat_styles.py +29 -29
- package/tests/dataDisplay/AntdCountdown/feat_finish_event.py +41 -41
- package/tests/dataDisplay/AntdCountdown/refactor_to_timer.py +57 -57
- package/tests/dataDisplay/AntdCountup/refactor_to_timer.py +57 -57
- package/tests/dataDisplay/AntdDescriptions/feat_span_filled.py +42 -42
- package/tests/dataDisplay/AntdImage/debug_preview_toolbar.py +23 -23
- package/tests/dataDisplay/AntdSegmented/feat_shape.py +39 -39
- package/tests/dataDisplay/AntdSegmented/feat_simple_options.py +43 -43
- package/tests/dataDisplay/AntdSegmented/feat_vertical.py +32 -32
- package/tests/dataDisplay/AntdTable/feat_button_mode_like_dcc_link.py +125 -0
- package/tests/dataDisplay/AntdTable/feat_button_mode_refactor.py +143 -143
- package/tests/dataDisplay/AntdTable/feat_button_mode_tooltip.py +47 -47
- package/tests/dataDisplay/AntdTable/feat_columns_fixed_bool.py +40 -40
- package/tests/dataDisplay/AntdTable/feat_columns_min_width.py +51 -51
- package/tests/dataDisplay/AntdTable/feat_columns_sort_order.py +131 -131
- package/tests/dataDisplay/AntdTable/feat_editable_disabled_keys.py +71 -71
- package/tests/dataDisplay/AntdTable/feat_header_align.py +38 -38
- package/tests/dataDisplay/AntdTable/feat_link_mode_like_dcc_link.py +49 -0
- package/tests/dataDisplay/AntdTable/feat_loading.py +76 -76
- package/tests/dataDisplay/AntdTable/feat_mini_chart_color.py +139 -139
- package/tests/dataDisplay/AntdTable/feat_row_class_name.py +39 -39
- package/tests/dataDisplay/AntdTable/feat_row_class_name_func.py +41 -41
- package/tests/dataDisplay/AntdTable/feat_select_mode_show_search.py +70 -70
- package/tests/dataDisplay/AntdTable/feat_sticky_header.py +81 -81
- package/tests/dataDisplay/AntdTable/feat_table_scroll.py +54 -54
- package/tests/dataDisplay/AntdTable/feat_tag_mode_tooltip.py +88 -88
- package/tests/dataDisplay/AntdTable/feat_title_popover_nodes.py +94 -79
- package/tests/dataDisplay/AntdTable/fix_context_locale.py +37 -37
- package/tests/dataDisplay/AntdTable/fix_field_bool.py +50 -50
- package/tests/dataDisplay/AntdTable/fix_nested_editable.py +115 -115
- package/tests/dataDisplay/AntdTable/fix_select_with_editable.py +84 -84
- package/tests/dataDisplay/AntdTable/fix_server_side_mode_filter_search.py +194 -194
- package/tests/dataDisplay/AntdTable/fix_summary.py +474 -474
- package/tests/dataDisplay/AntdTable/fix_summary_multi_level_header.py +85 -85
- package/tests/dataDisplay/AntdTable/fix_zero_value_filter.py +34 -34
- package/tests/dataDisplay/AntdTable/perf_button_mode_auto_wrap.py +39 -39
- package/tests/dataDisplay/AntdTable/perf_editable_column_format_constrait_message.py +65 -65
- package/tests/dataDisplay/AntdTable/refactor_mini_progress_mode.py +134 -134
- package/tests/dataDisplay/AntdTable/rollback_title_popover_info.py +46 -0
- package/tests/dataDisplay/AntdTabs/feat_item_icon.py +39 -39
- package/tests/dataDisplay/AntdTabs/feat_placeholder.py +124 -124
- package/tests/dataDisplay/AntdTabs/feat_tab_bar_style.py +40 -40
- package/tests/dataDisplay/AntdTree/feat_async_data_load.py +71 -71
- package/tests/dataDisplay/descriptions/AntdDescriptions/feat_extra.py +83 -83
- package/tests/dataEntry/AntdCalendar/feat_custom_cells.py +52 -52
- package/tests/dataEntry/AntdCascader/feat_prefix.py +62 -62
- package/tests/dataEntry/AntdCascader/feat_suffix_icon.py +62 -62
- package/tests/dataEntry/AntdCascader/fix_read_only.py +74 -74
- package/tests/dataEntry/AntdDatePicker/feat_custom_cells.py +79 -79
- package/tests/dataEntry/AntdDatePicker/feat_picker_value.py +38 -38
- package/tests/dataEntry/AntdDatePicker/feat_prefix.py +21 -21
- package/tests/dataEntry/AntdDatePicker/feat_suffix_icon.py +21 -21
- package/tests/dataEntry/AntdDateRangePicker/feat_custom_cells.py +79 -79
- package/tests/dataEntry/AntdDateRangePicker/feat_picker_value.py +38 -38
- package/tests/dataEntry/AntdDateRangePicker/feat_prefix.py +21 -21
- package/tests/dataEntry/AntdDateRangePicker/feat_suffix_icon.py +21 -21
- package/tests/dataEntry/AntdForm/feat_batch_control_tooltips.py +35 -0
- package/tests/dataEntry/AntdForm/feat_optional_batch_control.py +62 -62
- package/tests/dataEntry/AntdForm/fix_checkbox.py +65 -65
- package/tests/dataEntry/AntdRadioGroup/feat_block.py +40 -40
- package/tests/dataEntry/AntdSelect/feat_locale_ru.py +24 -24
- package/tests/dataEntry/AntdSelect/feat_max_count.py +28 -28
- package/tests/dataEntry/AntdSelect/feat_prefix.py +26 -26
- package/tests/dataEntry/AntdSelect/feat_show_search.py +32 -32
- package/tests/dataEntry/AntdSelect/feat_suffix_icon.py +46 -46
- package/tests/dataEntry/AntdSelect/fix_read_only.py +50 -50
- package/tests/dataEntry/AntdSelect/fix_read_only_with_allow_clear.py +29 -29
- package/tests/dataEntry/AntdSlider/feat_range_editable.py +49 -49
- package/tests/dataEntry/AntdTimePicker/feat_prefix.py +21 -21
- package/tests/dataEntry/AntdTimePicker/feat_suffix_icon.py +21 -21
- package/tests/dataEntry/AntdTimeRangePicker/feat_prefix.py +21 -21
- package/tests/dataEntry/AntdTimeRangePicker/feat_suffix_icon.py +21 -21
- package/tests/dataEntry/AntdTreeSelect/feat_async_data_load.py +69 -69
- package/tests/dataEntry/AntdTreeSelect/feat_max_count.py +71 -71
- package/tests/dataEntry/AntdTreeSelect/feat_prefix.py +43 -43
- package/tests/dataEntry/AntdTreeSelect/fix_read_only.py +50 -50
- package/tests/dataEntry/AntdUpload/feat_pastable.py +22 -22
- package/tests/dataEntry/AntdUpload/fix_follow_theme.py +28 -28
- package/tests/feat_variant_underlined.py +100 -100
- package/tests/feedback/AntdAlert/feat_icon.py +35 -35
- package/tests/feedback/AntdMessage/fix_follow_config_provider.py +44 -44
- package/tests/feedback/AntdModal/feat_force_render.py +57 -57
- package/tests/feedback/AntdModal/feat_loading_title.py +92 -92
- package/tests/feedback/AntdModal/feat_prevent_close.py +54 -54
- package/tests/feedback/AntdModal/feat_responsive_width.py +31 -31
- package/tests/feedback/AntdNotification/feat_component_content.py +64 -64
- package/tests/feedback/AntdNotification/feat_number_of_stack.py +40 -40
- package/tests/feedback/AntdNotification/feat_show_progress.py +40 -40
- package/tests/feedback/AntdNotification/fix_follow_config_provider.py +46 -46
- package/tests/feedback/AntdPopupCard/feat_force_render.py +61 -61
- package/tests/feedback/AntdProgress/feat_percent_position.py +39 -39
- package/tests/feedback/AntdProgress/perf_size.py +26 -26
- package/tests/feedback/AntdProgress/perf_steps.py +37 -37
- package/tests/feedback/AntdProgress/perf_stroke_color.py +58 -58
- package/tests/feedback/AntdResult/feat_extra.py +26 -26
- package/tests/feedback/AntdSkeleton/fix_dash3.py +43 -43
- package/tests/general/AntdButton/feat_color_and_variant.py +40 -40
- package/tests/general/AntdButton/feat_preset_color.py +46 -46
- package/tests/general/AntdFloatButtonGroup/feat_placement.py +83 -83
- package/tests/general/AntdFloatButtonGroup/feat_tooltip.py +34 -34
- package/tests/general/AntdIcon/feat_iconfont.py +41 -41
- package/tests/layout/AntdCenter/feat_use_token.py +41 -41
- package/tests/layout/AntdDivider/feat_plain.py +21 -21
- package/tests/layout/AntdDivider/feat_size.py +36 -36
- package/tests/layout/AntdSplitter/feat_AntdSplitter.py +210 -210
- package/tests/layout/AntdSplitter/feat_lazy.py +56 -56
- package/tests/layout/AntdSplitter/refactor.py +303 -303
- package/tests/navigation/AntdAnchor/feat_current_anchor.py +43 -43
- package/tests/navigation/AntdAnchor/feat_direction.py +43 -43
- package/tests/navigation/AntdAnchor/feat_replace.py +43 -43
- package/tests/navigation/AntdBreadcrumb/feat_menu_item_event.py +64 -64
- package/tests/navigation/AntdBreadcrumb/refactor_items.py +140 -140
- package/tests/navigation/AntdDropdown/feat_extra.py +29 -29
- package/tests/navigation/AntdMenu/feat_currentItem.py +85 -85
- package/tests/navigation/AntdMenu/feat_currentItemPath.py +85 -85
- package/tests/navigation/AntdMenu/feat_currentKeyPath.py +85 -85
- package/tests/navigation/AntdMenu/feat_custom_icon.py +57 -57
- package/tests/navigation/AntdMenu/feat_expandIcon.py +70 -70
- package/tests/navigation/AntdMenu/feat_triggerSubMenuAction.py +67 -67
- package/tests/navigation/AntdMenu/fix_onlyExpandCurrentSubMenu.py +57 -57
- package/tests/navigation/AntdMenu/fix_with_sider.py +71 -71
- package/tests/navigation/AntdPagination/feat_align.py +31 -31
- package/tests/other/AntdAffix/feat_listen_affixed.py +41 -41
- package/tests/other/AntdBackTop/refactor.py +18 -18
- package/tests/other/AntdConfigProvider/feat_use_css.py +67 -67
- package/tests/other/AntdCopyText/feat_copy_table.py +67 -67
- package/tests/other/AntdCopyText/feat_tooltips.py +61 -61
- package/tests/other/AntdHappyProvider/feat_component.py +60 -60
- package/tests/other/Fragment/feat_use_token.py +32 -32
- package/usage.py +34 -34
- package/webpack.config.js +181 -181
- package/webpack.serve.config.js +12 -12
package/package.json
CHANGED
|
@@ -1,97 +1,112 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "feffery_antd_components",
|
|
3
|
-
"version": "0.4.3
|
|
4
|
-
"description": "Best implementation of Antd components in Plotly Dash.",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "https://github.com/CNFeffery/feffery-antd-components.git"
|
|
8
|
-
},
|
|
9
|
-
"bugs": {
|
|
10
|
-
"url": "https://github.com/CNFeffery/feffery-antd-components/issues"
|
|
11
|
-
},
|
|
12
|
-
"homepage": "http://fac.feffery.tech/",
|
|
13
|
-
"main": "build/index.js",
|
|
14
|
-
"scripts": {
|
|
15
|
-
"start": "webpack-serve --config ./webpack.serve.config.js --open",
|
|
16
|
-
"build:js": "webpack --mode production",
|
|
17
|
-
"build:backends": "dash-generate-components ./src/lib/components feffery_antd_components --keep-prop-order ALL -p package-info.json --r-prefix 'feffery' --jl-prefix 'feffery'",
|
|
18
|
-
"build:backends-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:py_and_r)",
|
|
19
|
-
"build": "npm run build:js && npm run build:backends",
|
|
20
|
-
"build:activated": "npm run build:js && npm run build:backends-activated"
|
|
21
|
-
},
|
|
22
|
-
"author": "CNFeffery <fefferypzy@gmail.com>",
|
|
23
|
-
"email": "fefferypzy@gmail.com",
|
|
24
|
-
"license": "MIT",
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"@ant-design/charts": "^1.4.2",
|
|
27
|
-
"@ant-design/compatible": "^5.0.0",
|
|
28
|
-
"@ant-design/happy-work-theme": "^1.0.0",
|
|
29
|
-
"@ant-design/icons": "^5.0.0",
|
|
30
|
-
"@ant-design/pro-components": "^2.6.49",
|
|
31
|
-
"@
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"react-
|
|
45
|
-
"react-
|
|
46
|
-
"react-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"@babel/
|
|
55
|
-
"@babel/
|
|
56
|
-
"@babel/
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"eslint": "^
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"webpack": "
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "feffery_antd_components",
|
|
3
|
+
"version": "0.4.3",
|
|
4
|
+
"description": "Best implementation of Antd components in Plotly Dash.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/CNFeffery/feffery-antd-components.git"
|
|
8
|
+
},
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/CNFeffery/feffery-antd-components/issues"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "http://fac.feffery.tech/",
|
|
13
|
+
"main": "build/index.js",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"start": "webpack-serve --config ./webpack.serve.config.js --open",
|
|
16
|
+
"build:js": "webpack --mode production",
|
|
17
|
+
"build:backends": "dash-generate-components ./src/lib/components feffery_antd_components --keep-prop-order ALL -p package-info.json --r-prefix 'feffery' --jl-prefix 'feffery'",
|
|
18
|
+
"build:backends-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:py_and_r)",
|
|
19
|
+
"build": "npm run build:js && npm run build:backends",
|
|
20
|
+
"build:activated": "npm run build:js && npm run build:backends-activated"
|
|
21
|
+
},
|
|
22
|
+
"author": "CNFeffery <fefferypzy@gmail.com>",
|
|
23
|
+
"email": "fefferypzy@gmail.com",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@ant-design/charts": "^1.4.2",
|
|
27
|
+
"@ant-design/compatible": "^5.0.0",
|
|
28
|
+
"@ant-design/happy-work-theme": "^1.0.0",
|
|
29
|
+
"@ant-design/icons": "^5.0.0",
|
|
30
|
+
"@ant-design/pro-components": "^2.6.49",
|
|
31
|
+
"@plotly/webpack-dash-dynamic-import": "^1.3.0",
|
|
32
|
+
"ahooks": "^3.7.0",
|
|
33
|
+
"antd": "^5.28.0",
|
|
34
|
+
"antd-img-crop": "^4.2.3",
|
|
35
|
+
"color": "^4.2.3",
|
|
36
|
+
"dayjs": "^1.11.13",
|
|
37
|
+
"is-absolute-url": "4.0.1",
|
|
38
|
+
"md5": "2.3.0",
|
|
39
|
+
"nano-css": "^5.3.5",
|
|
40
|
+
"ramda": "0.26.1",
|
|
41
|
+
"react-draggable": "4.4.6",
|
|
42
|
+
"react-fast-marquee": "1.3.1",
|
|
43
|
+
"react-highlight-words": "0.17.0",
|
|
44
|
+
"react-icons": "^4.11.0",
|
|
45
|
+
"react-text-loop": "2.3.0",
|
|
46
|
+
"react-use": "^17.4.0",
|
|
47
|
+
"uuid": "8.3.2",
|
|
48
|
+
"zustand": "^4.5.2"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@babel/core": "^7.5.4",
|
|
52
|
+
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
|
53
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.5.4",
|
|
54
|
+
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
|
55
|
+
"@babel/preset-env": "^7.5.4",
|
|
56
|
+
"@babel/preset-react": "^7.0.0",
|
|
57
|
+
"babel-eslint": "^10.0.2",
|
|
58
|
+
"babel-loader": "^8.0.6",
|
|
59
|
+
"copyfiles": "^2.1.1",
|
|
60
|
+
"css-loader": "^3.0.0",
|
|
61
|
+
"eslint": "^6.0.1",
|
|
62
|
+
"eslint-config-prettier": "^6.0.0",
|
|
63
|
+
"eslint-plugin-import": "^2.18.0",
|
|
64
|
+
"eslint-plugin-react": "^7.14.2",
|
|
65
|
+
"less": "^3.13.1",
|
|
66
|
+
"less-loader": "^5.0.0",
|
|
67
|
+
"lodash": "^4.17.21",
|
|
68
|
+
"npm": "^6.1.0",
|
|
69
|
+
"prop-types": "^15.7.2",
|
|
70
|
+
"react": "^18.3.1",
|
|
71
|
+
"react-docgen": "^5.4.3",
|
|
72
|
+
"react-dom": "^18.3.1",
|
|
73
|
+
"style-loader": "^0.23.1",
|
|
74
|
+
"styled-jsx": "^4.0.0",
|
|
75
|
+
"webpack": "4.36.1",
|
|
76
|
+
"webpack-bundle-analyzer": "^4.7.0",
|
|
77
|
+
"webpack-cli": "^3.3.6",
|
|
78
|
+
"webpack-serve": "3.1.0"
|
|
79
|
+
},
|
|
80
|
+
"overrides": {
|
|
81
|
+
"@ant-design/charts": {
|
|
82
|
+
"@ant-design/icons": "$@ant-design/icons",
|
|
83
|
+
"antd": "$antd"
|
|
84
|
+
},
|
|
85
|
+
"react-fast-marquee": {
|
|
86
|
+
"react": "$react",
|
|
87
|
+
"react-dom": "$react-dom"
|
|
88
|
+
},
|
|
89
|
+
"react-highlight-words": {
|
|
90
|
+
"react": "$react",
|
|
91
|
+
"react-dom": "$react-dom"
|
|
92
|
+
},
|
|
93
|
+
"react-text-loop": {
|
|
94
|
+
"react": "$react",
|
|
95
|
+
"react-dom": "$react-dom"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"babel": {
|
|
99
|
+
"presets": [
|
|
100
|
+
"@babel/preset-react",
|
|
101
|
+
"@babel/preset-env"
|
|
102
|
+
],
|
|
103
|
+
"plugins": [
|
|
104
|
+
"@babel/plugin-proposal-optional-chaining",
|
|
105
|
+
"@babel/plugin-transform-react-jsx"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"engines": {
|
|
109
|
+
"node": ">=8.11.0",
|
|
110
|
+
"npm": ">=6.1.0"
|
|
111
|
+
}
|
|
97
112
|
}
|
package/pytest.ini
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
[pytest]
|
|
2
|
-
testpaths = tests/
|
|
3
|
-
addopts = -rsxX -vv
|
|
4
|
-
log_format = %(asctime)s | %(levelname)s | %(name)s:%(lineno)d | %(message)s
|
|
5
|
-
log_cli_level = ERROR
|
|
1
|
+
[pytest]
|
|
2
|
+
testpaths = tests/
|
|
3
|
+
addopts = -rsxX -vv
|
|
4
|
+
log_format = %(asctime)s | %(levelname)s | %(name)s:%(lineno)d | %(message)s
|
|
5
|
+
log_cli_level = ERROR
|
package/release-to-test-pypi.sh
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
python setup.py sdist bdist_wheel && python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
|
|
1
|
+
python setup.py sdist bdist_wheel && python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
|
package/requirements.txt
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
# dash is required to call `build:py`
|
|
2
|
-
dash[dev]>=1.15.0
|
|
1
|
+
# dash is required to call `build:py`
|
|
2
|
+
dash[dev]>=1.15.0
|
package/review_checklist.md
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
# Code Review Checklist
|
|
2
|
-
|
|
3
|
-
## Code quality & design
|
|
4
|
-
|
|
5
|
-
- Is your code clear? If you had to go back to it in a month, would you be happy to? If someone else had to contribute to it, would they be able to?
|
|
6
|
-
|
|
7
|
-
A few suggestions:
|
|
8
|
-
|
|
9
|
-
- Make your variable names descriptive and use the same naming conventions throughout the code.
|
|
10
|
-
|
|
11
|
-
- For more complex pieces of logic, consider putting a comment, and maybe an example.
|
|
12
|
-
|
|
13
|
-
- In the comments, focus on describing _why_ the code does what it does, rather than describing _what_ it does. The reader can most likely read the code, but not necessarily understand why it was necessary.
|
|
14
|
-
|
|
15
|
-
- Don't overdo it in the comments. The code should be clear enough to speak for itself. Stale comments that no longer reflect the intent of the code can hurt code comprehension.
|
|
16
|
-
|
|
17
|
-
* Don't repeat yourself. Any time you see that the same piece of logic can be applied in multiple places, factor it out into a function, or variable, and reuse that code.
|
|
18
|
-
* Scan your code for expensive operations (large computations, DOM queries, React re-renders). Have you done your possible to limit their impact? If not, it is going to slow your app down.
|
|
19
|
-
* Can you think of cases where your current code will break? How are you handling errors? Should the user see them as notifications? Should your app try to auto-correct them for them?
|
|
20
|
-
|
|
21
|
-
## Component API
|
|
22
|
-
|
|
23
|
-
- Have you tested your component on the Python side by creating an app in `usage.py` ?
|
|
24
|
-
|
|
25
|
-
Do all of your component's props work when set from the back-end?
|
|
26
|
-
|
|
27
|
-
Should all of them be settable from the back-end or are some only relevant to user interactions in the front-end?
|
|
28
|
-
|
|
29
|
-
- Have you provided some basic documentation about your component? The Dash community uses [react docstrings](https://github.com/plotly/dash-docs/blob/master/tutorial/plugins.py#L45) to provide basic information about dash components. Take a look at this [Checklist component example](https://github.com/plotly/dash-core-components/blob/master/src/components/Checklist.react.js) and others from the dash-core-components repository.
|
|
30
|
-
|
|
31
|
-
At a minimum, you should describe what your component does, and describe its props and the features they enable.
|
|
32
|
-
|
|
33
|
-
Be careful to use the correct formatting for your docstrings for them to be properly recognized.
|
|
34
|
-
|
|
35
|
-
## Tests
|
|
36
|
-
|
|
37
|
-
- The Dash team uses integration tests extensively, and we highly encourage you to write tests for the main functionality of your component. In the `tests` folder of the boilerplate, you can see a sample integration test. By launching it, you will run a sample Dash app in a browser. You can run the test with:
|
|
38
|
-
```
|
|
39
|
-
python -m tests.test_render
|
|
40
|
-
```
|
|
41
|
-
[Browse the Dash component code on GitHub for more examples of testing.](https://github.com/plotly/dash-core-components)
|
|
42
|
-
|
|
43
|
-
## Ready to publish? Final scan
|
|
44
|
-
|
|
45
|
-
- Take a last look at the external resources that your component is using. Are all the external resources used [referenced in `MANIFEST.in`](https://github.com/plotly/dash-docs/blob/0b2fd8f892db720a7f3dc1c404b4cff464b5f8d4/tutorial/plugins.py#L55)?
|
|
46
|
-
|
|
47
|
-
- [You're ready to publish!](https://github.com/plotly/dash-component-boilerplate/blob/master/%7B%7Bcookiecutter.project_shortname%7D%7D/README.md#create-a-production-build-and-publish)
|
|
1
|
+
# Code Review Checklist
|
|
2
|
+
|
|
3
|
+
## Code quality & design
|
|
4
|
+
|
|
5
|
+
- Is your code clear? If you had to go back to it in a month, would you be happy to? If someone else had to contribute to it, would they be able to?
|
|
6
|
+
|
|
7
|
+
A few suggestions:
|
|
8
|
+
|
|
9
|
+
- Make your variable names descriptive and use the same naming conventions throughout the code.
|
|
10
|
+
|
|
11
|
+
- For more complex pieces of logic, consider putting a comment, and maybe an example.
|
|
12
|
+
|
|
13
|
+
- In the comments, focus on describing _why_ the code does what it does, rather than describing _what_ it does. The reader can most likely read the code, but not necessarily understand why it was necessary.
|
|
14
|
+
|
|
15
|
+
- Don't overdo it in the comments. The code should be clear enough to speak for itself. Stale comments that no longer reflect the intent of the code can hurt code comprehension.
|
|
16
|
+
|
|
17
|
+
* Don't repeat yourself. Any time you see that the same piece of logic can be applied in multiple places, factor it out into a function, or variable, and reuse that code.
|
|
18
|
+
* Scan your code for expensive operations (large computations, DOM queries, React re-renders). Have you done your possible to limit their impact? If not, it is going to slow your app down.
|
|
19
|
+
* Can you think of cases where your current code will break? How are you handling errors? Should the user see them as notifications? Should your app try to auto-correct them for them?
|
|
20
|
+
|
|
21
|
+
## Component API
|
|
22
|
+
|
|
23
|
+
- Have you tested your component on the Python side by creating an app in `usage.py` ?
|
|
24
|
+
|
|
25
|
+
Do all of your component's props work when set from the back-end?
|
|
26
|
+
|
|
27
|
+
Should all of them be settable from the back-end or are some only relevant to user interactions in the front-end?
|
|
28
|
+
|
|
29
|
+
- Have you provided some basic documentation about your component? The Dash community uses [react docstrings](https://github.com/plotly/dash-docs/blob/master/tutorial/plugins.py#L45) to provide basic information about dash components. Take a look at this [Checklist component example](https://github.com/plotly/dash-core-components/blob/master/src/components/Checklist.react.js) and others from the dash-core-components repository.
|
|
30
|
+
|
|
31
|
+
At a minimum, you should describe what your component does, and describe its props and the features they enable.
|
|
32
|
+
|
|
33
|
+
Be careful to use the correct formatting for your docstrings for them to be properly recognized.
|
|
34
|
+
|
|
35
|
+
## Tests
|
|
36
|
+
|
|
37
|
+
- The Dash team uses integration tests extensively, and we highly encourage you to write tests for the main functionality of your component. In the `tests` folder of the boilerplate, you can see a sample integration test. By launching it, you will run a sample Dash app in a browser. You can run the test with:
|
|
38
|
+
```
|
|
39
|
+
python -m tests.test_render
|
|
40
|
+
```
|
|
41
|
+
[Browse the Dash component code on GitHub for more examples of testing.](https://github.com/plotly/dash-core-components)
|
|
42
|
+
|
|
43
|
+
## Ready to publish? Final scan
|
|
44
|
+
|
|
45
|
+
- Take a last look at the external resources that your component is using. Are all the external resources used [referenced in `MANIFEST.in`](https://github.com/plotly/dash-docs/blob/0b2fd8f892db720a7f3dc1c404b4cff464b5f8d4/tutorial/plugins.py#L55)?
|
|
46
|
+
|
|
47
|
+
- [You're ready to publish!](https://github.com/plotly/dash-component-boilerplate/blob/master/%7B%7Bcookiecutter.project_shortname%7D%7D/README.md#create-a-production-build-and-publish)
|
package/ruff.toml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
line-length = 60
|
|
2
|
-
|
|
3
|
-
[format]
|
|
4
|
-
quote-style = "single"
|
|
1
|
+
line-length = 60
|
|
2
|
+
|
|
3
|
+
[format]
|
|
4
|
+
quote-style = "single"
|
package/setup.py
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import io
|
|
2
|
-
import json
|
|
3
|
-
from setuptools import setup
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
with open('package.json') as f:
|
|
7
|
-
package = json.load(f)
|
|
8
|
-
|
|
9
|
-
package_name = package["name"].replace(" ", "_").replace("-", "_")
|
|
10
|
-
|
|
11
|
-
setup(
|
|
12
|
-
name=package_name,
|
|
13
|
-
version=package["version"],
|
|
14
|
-
author_email=package['email'],
|
|
15
|
-
homepage='https://github.com/CNFeffery/feffery-antd-components',
|
|
16
|
-
author=package['author'],
|
|
17
|
-
packages=[package_name],
|
|
18
|
-
include_package_data=True,
|
|
19
|
-
package_data={
|
|
20
|
-
'feffery_antd_components': ['*']
|
|
21
|
-
},
|
|
22
|
-
license=package['license'],
|
|
23
|
-
description=package.get('description', package_name),
|
|
24
|
-
long_description=io.open("README.md", encoding="utf-8").read(),
|
|
25
|
-
long_description_content_type="text/markdown",
|
|
26
|
-
install_requires=[
|
|
27
|
-
'dash>=3.1.1',
|
|
28
|
-
],
|
|
29
|
-
classifiers=[
|
|
30
|
-
'Framework :: Dash',
|
|
31
|
-
],
|
|
32
|
-
url='https://github.com/CNFeffery/feffery-antd-components'
|
|
33
|
-
)
|
|
1
|
+
import io
|
|
2
|
+
import json
|
|
3
|
+
from setuptools import setup
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
with open('package.json') as f:
|
|
7
|
+
package = json.load(f)
|
|
8
|
+
|
|
9
|
+
package_name = package["name"].replace(" ", "_").replace("-", "_")
|
|
10
|
+
|
|
11
|
+
setup(
|
|
12
|
+
name=package_name,
|
|
13
|
+
version=package["version"],
|
|
14
|
+
author_email=package['email'],
|
|
15
|
+
homepage='https://github.com/CNFeffery/feffery-antd-components',
|
|
16
|
+
author=package['author'],
|
|
17
|
+
packages=[package_name],
|
|
18
|
+
include_package_data=True,
|
|
19
|
+
package_data={
|
|
20
|
+
'feffery_antd_components': ['*']
|
|
21
|
+
},
|
|
22
|
+
license=package['license'],
|
|
23
|
+
description=package.get('description', package_name),
|
|
24
|
+
long_description=io.open("README.md", encoding="utf-8").read(),
|
|
25
|
+
long_description_content_type="text/markdown",
|
|
26
|
+
install_requires=[
|
|
27
|
+
'dash>=3.1.1',
|
|
28
|
+
],
|
|
29
|
+
classifiers=[
|
|
30
|
+
'Framework :: Dash',
|
|
31
|
+
],
|
|
32
|
+
url='https://github.com/CNFeffery/feffery-antd-components'
|
|
33
|
+
)
|
|
@@ -33,6 +33,7 @@ Those elements have the following types:
|
|
|
33
33
|
- `layout` (a value equal to: 'horizontal', 'vertical', 'inline'; optional): 表单布局模式,可选项有`'horizontal'`、`'vertical'`、`'inline'`
|
|
34
34
|
默认值:`'horizontal'`
|
|
35
35
|
- `style` (Dict; optional): 当前组件css样式
|
|
36
|
+
- `tooltips` (Dict with Strings as keys and values of type a list of or a singular dash component, string or number; optional): 当`enableBatchControl=True`时,可用于统一设置内部各`AntdFormItem`组件的`tooltip`值,键为对应`AntdFormItem`组件的`label`值,优先级低于各`AntdFormItem`组件的`tooltip`值
|
|
36
37
|
- `validateStatuses` (Dict with Strings as keys and values of type a value equal to: 'success', 'warning', 'error', 'validating'; optional): 当`enableBatchControl=True`时,可用于统一设置内部各`AntdFormItem`组件的`validateStatus`值,键为对应`AntdFormItem`组件的`label`值,优先级低于各`AntdFormItem`组件的`validateStatus`值
|
|
37
38
|
- `values` (Dict; optional): 当`enableBatchControl=True`时,可用于监听或设置搜集内部表单输入类组件的输入值变化情况,开启后内部表单输入类组件自身的`defaultValue`、`value`参数将会失效
|
|
38
39
|
- `wrapperCol` (optional): 配置表单项控件部分相关参数. wrapperCol has the following type: lists containing elements 'span', 'offset', 'flex'.
|
|
@@ -42,7 +43,7 @@ Those elements have the following types:
|
|
|
42
43
|
- `flex` (String | Real; optional): 同css中的flex属性,用于更灵活的控制控件部分所占宽度
|
|
43
44
|
"""
|
|
44
45
|
function 'feffery'_antdform(; kwargs...)
|
|
45
|
-
available_props = Symbol[:children, :id, :className, :colon, :enableBatchControl, :helps, :key, :labelAlign, :labelCol, :labelWrap, :layout, :style, :validateStatuses, :values, :wrapperCol]
|
|
46
|
+
available_props = Symbol[:children, :id, :className, :colon, :enableBatchControl, :helps, :key, :labelAlign, :labelCol, :labelWrap, :layout, :style, :tooltips, :validateStatuses, :values, :wrapperCol]
|
|
46
47
|
wild_props = Symbol[Symbol("aria-"), Symbol("data-")]
|
|
47
48
|
return Component("'feffery'_antdform", "AntdForm", "feffery_antd_components", available_props, wild_props; kwargs...)
|
|
48
49
|
end
|
|
@@ -49,13 +49,15 @@ Those elements have the following types:
|
|
|
49
49
|
- `title` (a list of or a singular dash component, string or number; required): 必填,当前字段标题
|
|
50
50
|
- `dataIndex` (String; required): 必填,当前字段唯一识别id
|
|
51
51
|
- `group` (String | Array of Strings; optional): 当前字段所属分组信息,用于渲染多级表头
|
|
52
|
-
- `renderOptions` (optional): 配置字段[再渲染模式](/AntdTable-rerender)相关参数. renderOptions has the following type: lists containing elements 'renderType', 'renderLinkText', 'renderButtonSplit', 'renderButtonPopConfirmProps', 'miniChartColor', 'tooltipCustomContent', 'progressOneHundredPercentColor', 'progressShowPercent', 'progressPercentPrecision', 'progressPercentPosition', 'progressStrokeLinecap', 'progressSize', 'progressColor', 'ringProgressFontSize', 'dropdownProps'.
|
|
52
|
+
- `renderOptions` (optional): 配置字段[再渲染模式](/AntdTable-rerender)相关参数. renderOptions has the following type: lists containing elements 'renderType', 'renderLinkText', 'likeDccLink', 'renderButtonSplit', 'renderButtonPopConfirmProps', 'miniChartColor', 'tooltipCustomContent', 'progressOneHundredPercentColor', 'progressShowPercent', 'progressPercentPrecision', 'progressPercentPosition', 'progressStrokeLinecap', 'progressSize', 'progressColor', 'ringProgressFontSize', 'dropdownProps'.
|
|
53
53
|
Those elements have the following types:
|
|
54
54
|
- `renderType` (a value equal to: 'link', 'ellipsis', 'copyable', 'ellipsis-copyable', 'tags', 'status-badge', 'image', 'custom-format', 'corner-mark', 'row-merge', 'dropdown', 'dropdown-links', 'image-avatar', 'mini-line', 'mini-bar', 'mini-progress', 'mini-ring-progress', 'mini-area', 'button', 'checkbox', 'switch', 'select'; optional): 再渲染类型,可选项有`'link'`、`'ellipsis'`、`'copyable'`、`'ellipsis-copyable'`、`'tags'`、`'status-badge'`、`'image'`
|
|
55
55
|
、`'custom-format'`、`'corner-mark'`、`'row-merge'`、`'dropdown'`、`'dropdown-links'`、`'image-avatar'`
|
|
56
56
|
、`'mini-line'`、`'mini-bar'`、`'mini-progress'`、`'mini-ring-progress'`、`'mini-area'`
|
|
57
57
|
、`'button'`、`'checkbox'`、`'switch'`、`'select'`
|
|
58
58
|
- `renderLinkText` (String; optional): 当`renderType='link'`时,统一设置渲染链接文本内容
|
|
59
|
+
- `likeDccLink` (Bool; optional): 当`renderType`为`'link'`、`'button'`时,统一设置链接跳转行为是否采用`dcc.Link`模式
|
|
60
|
+
默认值:`false`
|
|
59
61
|
- `renderButtonSplit` (Bool; optional): 当`renderType='button'`时,控制多个按钮之间是否添加分割线
|
|
60
62
|
- `renderButtonPopConfirmProps` (optional): 当`renderType='button'`时,配置气泡确认框相关参数. renderButtonPopConfirmProps has the following type: lists containing elements 'title', 'okText', 'cancelText'.
|
|
61
63
|
Those elements have the following types:
|
|
@@ -427,14 +429,13 @@ Those elements have the following types:
|
|
|
427
429
|
默认值:`false`
|
|
428
430
|
- `tableLayout` (a value equal to: 'auto', 'fixed'; optional): 当`columns`中各字段未设置`width`时,用于控制整体字段宽度分配方式,可选项有`'auto'`、`'fixed'`
|
|
429
431
|
- `title` (a list of or a singular dash component, string or number; optional): 组件型,表格整体标题内容
|
|
430
|
-
- `titlePopoverInfo` (optional): 配置各字段标题额外气泡说明卡片信息相关参数. titlePopoverInfo has the following type:
|
|
432
|
+
- `titlePopoverInfo` (optional): 配置各字段标题额外气泡说明卡片信息相关参数. titlePopoverInfo has the following type: Dict with Strings as keys and values of type lists containing elements 'title', 'content', 'placement', 'overlayStyle'.
|
|
431
433
|
Those elements have the following types:
|
|
432
|
-
- `
|
|
433
|
-
- `
|
|
434
|
-
- `content` (a list of or a singular dash component, string or number; optional): 气泡卡片内容,支持字符串或组件型
|
|
434
|
+
- `title` (String; optional): 气泡卡片标题,支持字符串或组件型
|
|
435
|
+
- `content` (String; optional): 气泡卡片内容,支持字符串或组件型
|
|
435
436
|
- `placement` (a value equal to: 'top', 'left', 'right', 'bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom'; optional): 气泡卡片弹出方位,可选项有`'top'`、`'left'`、`'right'`、`'bottom'`、`'topLeft'`、`'topRight'`、`'bottomLeft'`、`'bottomRight'`、`'leftTop'`、`'leftBottom'`、`'rightTop'`、`'rightBottom'`
|
|
436
437
|
默认值:`'bottom'`
|
|
437
|
-
- `overlayStyle` (Dict; optional): 气泡卡片展开层css样式
|
|
438
|
+
- `overlayStyle` (Dict; optional): 气泡卡片展开层css样式
|
|
438
439
|
- `virtual` (Bool; optional): 是否开启虚拟滚动模式
|
|
439
440
|
默认值:`false`
|
|
440
441
|
"""
|