feffery_antd_components 0.1.16 → 0.2.0-rc1

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 (250) hide show
  1. package/DESCRIPTION +1 -1
  2. package/NAMESPACE +1 -0
  3. package/Project.toml +1 -1
  4. package/README-en_US.md +51 -0
  5. package/README.md +14 -5
  6. package/build/lib/feffery_antd_components/AntdAccordion.py +66 -0
  7. package/build/lib/feffery_antd_components/AntdAccordionItem.py +60 -0
  8. package/build/lib/feffery_antd_components/AntdAffix.py +58 -0
  9. package/build/lib/feffery_antd_components/AntdAlert.py +64 -0
  10. package/build/lib/feffery_antd_components/AntdAnchor.py +64 -0
  11. package/build/lib/feffery_antd_components/AntdAvatar.py +83 -0
  12. package/build/lib/feffery_antd_components/AntdBackTop.py +56 -0
  13. package/build/lib/feffery_antd_components/AntdBadge.py +74 -0
  14. package/build/lib/feffery_antd_components/AntdBreadcrumb.py +78 -0
  15. package/build/lib/feffery_antd_components/AntdButton.py +76 -0
  16. package/build/lib/feffery_antd_components/AntdCalendar.py +79 -0
  17. package/build/lib/feffery_antd_components/AntdCard.py +90 -0
  18. package/build/lib/feffery_antd_components/AntdCardGrid.py +56 -0
  19. package/build/lib/feffery_antd_components/AntdCarousel.py +60 -0
  20. package/build/lib/feffery_antd_components/AntdCascader.py +103 -0
  21. package/build/lib/feffery_antd_components/AntdCheckCard.py +64 -0
  22. package/build/lib/feffery_antd_components/AntdCheckCardGroup.py +64 -0
  23. package/build/lib/feffery_antd_components/AntdCheckbox.py +75 -0
  24. package/build/lib/feffery_antd_components/AntdCheckboxGroup.py +83 -0
  25. package/build/lib/feffery_antd_components/AntdCol.py +150 -0
  26. package/build/lib/feffery_antd_components/AntdCollapse.py +85 -0
  27. package/build/lib/feffery_antd_components/AntdComment.py +90 -0
  28. package/build/lib/feffery_antd_components/AntdContent.py +54 -0
  29. package/build/lib/feffery_antd_components/AntdCopyText.py +58 -0
  30. package/build/lib/feffery_antd_components/AntdCountdown.py +76 -0
  31. package/build/lib/feffery_antd_components/AntdCustomSkeleton.py +64 -0
  32. package/build/lib/feffery_antd_components/AntdDatePicker.py +107 -0
  33. package/build/lib/feffery_antd_components/AntdDateRangePicker.py +109 -0
  34. package/build/lib/feffery_antd_components/AntdDescriptionItem.py +62 -0
  35. package/build/lib/feffery_antd_components/AntdDescriptions.py +80 -0
  36. package/build/lib/feffery_antd_components/AntdDivider.py +66 -0
  37. package/build/lib/feffery_antd_components/AntdDraggerUpload.py +126 -0
  38. package/build/lib/feffery_antd_components/AntdDrawer.py +78 -0
  39. package/build/lib/feffery_antd_components/AntdDropdown.py +90 -0
  40. package/build/lib/feffery_antd_components/AntdEmpty.py +60 -0
  41. package/build/lib/feffery_antd_components/AntdFooter.py +54 -0
  42. package/build/lib/feffery_antd_components/AntdForm.py +76 -0
  43. package/build/lib/feffery_antd_components/AntdFormItem.py +88 -0
  44. package/build/lib/feffery_antd_components/AntdHeader.py +54 -0
  45. package/build/lib/feffery_antd_components/AntdIcon.py +56 -0
  46. package/build/lib/feffery_antd_components/AntdImage.py +66 -0
  47. package/build/lib/feffery_antd_components/AntdInput.py +121 -0
  48. package/build/lib/feffery_antd_components/AntdInputNumber.py +109 -0
  49. package/build/lib/feffery_antd_components/AntdLayout.py +54 -0
  50. package/build/lib/feffery_antd_components/AntdMentions.py +80 -0
  51. package/build/lib/feffery_antd_components/AntdMenu.py +85 -0
  52. package/build/lib/feffery_antd_components/AntdMessage.py +60 -0
  53. package/build/lib/feffery_antd_components/AntdModal.py +94 -0
  54. package/build/lib/feffery_antd_components/AntdNotification.py +64 -0
  55. package/build/lib/feffery_antd_components/AntdPageHeader.py +66 -0
  56. package/build/lib/feffery_antd_components/AntdPagination.py +99 -0
  57. package/build/lib/feffery_antd_components/AntdParagraph.py +74 -0
  58. package/build/lib/feffery_antd_components/AntdPasteImage.py +56 -0
  59. package/build/lib/feffery_antd_components/AntdPictureUpload.py +148 -0
  60. package/build/lib/feffery_antd_components/AntdPopconfirm.py +86 -0
  61. package/build/lib/feffery_antd_components/AntdPopover.py +78 -0
  62. package/build/lib/feffery_antd_components/AntdPopupCard.py +72 -0
  63. package/build/lib/feffery_antd_components/AntdProgress.py +92 -0
  64. package/{feffery_antd_components → build/lib/feffery_antd_components}/AntdRadio.py +0 -0
  65. package/build/lib/feffery_antd_components/AntdRadioGroup.py +93 -0
  66. package/build/lib/feffery_antd_components/AntdRate.py +64 -0
  67. package/build/lib/feffery_antd_components/AntdResult.py +58 -0
  68. package/build/lib/feffery_antd_components/AntdRibbon.py +58 -0
  69. package/build/lib/feffery_antd_components/AntdRow.py +76 -0
  70. package/build/lib/feffery_antd_components/AntdSegmented.py +91 -0
  71. package/build/lib/feffery_antd_components/AntdSegmentedColoring.py +86 -0
  72. package/build/lib/feffery_antd_components/AntdSelect.py +127 -0
  73. package/build/lib/feffery_antd_components/AntdSider.py +72 -0
  74. package/build/lib/feffery_antd_components/AntdSkeleton.py +90 -0
  75. package/build/lib/feffery_antd_components/AntdSkeletonAvatar.py +50 -0
  76. package/build/lib/feffery_antd_components/AntdSkeletonButton.py +52 -0
  77. package/build/lib/feffery_antd_components/AntdSkeletonImage.py +44 -0
  78. package/build/lib/feffery_antd_components/AntdSkeletonInput.py +48 -0
  79. package/build/lib/feffery_antd_components/AntdSlider.py +74 -0
  80. package/build/lib/feffery_antd_components/AntdSpace.py +64 -0
  81. package/build/lib/feffery_antd_components/AntdSpin.py +72 -0
  82. package/build/lib/feffery_antd_components/AntdStatistic.py +78 -0
  83. package/build/lib/feffery_antd_components/AntdSteps.py +76 -0
  84. package/build/lib/feffery_antd_components/AntdSwitch.py +81 -0
  85. package/build/lib/feffery_antd_components/AntdTabPane.py +68 -0
  86. package/build/lib/feffery_antd_components/AntdTable.py +361 -0
  87. package/build/lib/feffery_antd_components/AntdTabs.py +97 -0
  88. package/build/lib/feffery_antd_components/AntdTag.py +58 -0
  89. package/{feffery_antd_components → build/lib/feffery_antd_components}/AntdTestLink.py +0 -0
  90. package/build/lib/feffery_antd_components/AntdText.py +76 -0
  91. package/build/lib/feffery_antd_components/AntdTimePicker.py +99 -0
  92. package/build/lib/feffery_antd_components/AntdTimeRangePicker.py +99 -0
  93. package/build/lib/feffery_antd_components/AntdTimeline.py +72 -0
  94. package/build/lib/feffery_antd_components/AntdTitle.py +78 -0
  95. package/build/lib/feffery_antd_components/AntdTooltip.py +68 -0
  96. package/build/lib/feffery_antd_components/AntdTransfer.py +103 -0
  97. package/build/lib/feffery_antd_components/AntdTree.py +109 -0
  98. package/build/lib/feffery_antd_components/AntdTreeSelect.py +115 -0
  99. package/{feffery_antd_components → build/lib/feffery_antd_components}/AntdTypography.py +0 -0
  100. package/build/lib/feffery_antd_components/AntdUpload.py +124 -0
  101. package/build/lib/feffery_antd_components/AntdWatermark.py +68 -0
  102. package/{feffery_antd_components → build/lib/feffery_antd_components}/Link.py +0 -0
  103. package/build/lib/feffery_antd_components/__init__.py +53 -0
  104. package/build/lib/feffery_antd_components/_imports_.py +189 -0
  105. package/build/lib/feffery_antd_components/feffery_antd_components.min.js +1 -0
  106. package/build/lib/feffery_antd_components/metadata.json +19958 -0
  107. package/build/lib/feffery_antd_components/package-info.json +89 -0
  108. package/feffery_antd_components/AntdAlert.py +1 -1
  109. package/feffery_antd_components/AntdAnchor.py +1 -1
  110. package/feffery_antd_components/AntdAvatar.py +1 -1
  111. package/feffery_antd_components/AntdBackTop.py +1 -1
  112. package/feffery_antd_components/AntdButton.py +10 -6
  113. package/feffery_antd_components/AntdCarousel.py +1 -1
  114. package/feffery_antd_components/AntdCascader.py +9 -5
  115. package/feffery_antd_components/AntdCol.py +1 -1
  116. package/feffery_antd_components/AntdContent.py +1 -1
  117. package/feffery_antd_components/AntdCustomSkeleton.py +1 -1
  118. package/feffery_antd_components/AntdDraggerUpload.py +1 -1
  119. package/feffery_antd_components/AntdDrawer.py +1 -1
  120. package/feffery_antd_components/AntdFooter.py +1 -1
  121. package/feffery_antd_components/AntdHeader.py +1 -1
  122. package/feffery_antd_components/AntdIcon.py +8 -4
  123. package/feffery_antd_components/AntdImage.py +1 -1
  124. package/feffery_antd_components/AntdInput.py +16 -8
  125. package/feffery_antd_components/AntdInputNumber.py +11 -7
  126. package/feffery_antd_components/AntdLayout.py +1 -1
  127. package/feffery_antd_components/AntdModal.py +10 -4
  128. package/feffery_antd_components/AntdParagraph.py +1 -1
  129. package/feffery_antd_components/AntdPasteImage.py +1 -1
  130. package/feffery_antd_components/AntdPopupCard.py +72 -0
  131. package/feffery_antd_components/AntdRibbon.py +3 -3
  132. package/feffery_antd_components/AntdRow.py +1 -1
  133. package/feffery_antd_components/AntdSegmented.py +5 -3
  134. package/feffery_antd_components/AntdSegmentedColoring.py +7 -3
  135. package/feffery_antd_components/AntdSider.py +1 -1
  136. package/feffery_antd_components/AntdSkeleton.py +1 -1
  137. package/feffery_antd_components/AntdSpace.py +1 -1
  138. package/feffery_antd_components/AntdSpin.py +2 -2
  139. package/feffery_antd_components/AntdStatistic.py +1 -1
  140. package/feffery_antd_components/AntdTabPane.py +1 -1
  141. package/feffery_antd_components/AntdTable.py +55 -7
  142. package/feffery_antd_components/AntdTag.py +1 -1
  143. package/feffery_antd_components/AntdText.py +1 -1
  144. package/feffery_antd_components/AntdTitle.py +1 -1
  145. package/feffery_antd_components/AntdTree.py +6 -4
  146. package/feffery_antd_components/AntdTreeSelect.py +8 -6
  147. package/feffery_antd_components/_imports_.py +2 -0
  148. package/feffery_antd_components/feffery_antd_components.min.js +1 -1
  149. package/feffery_antd_components/metadata.json +1042 -93
  150. package/feffery_antd_components/package-info.json +6 -2
  151. package/git-operations.md +0 -1
  152. package/images//345/233/275/351/231/205/345/214/226/347/244/272/344/276/213.png +0 -0
  153. package/package.json +6 -2
  154. package/setup.py +0 -1
  155. package/src/FefferyAntdComponents.jl +4 -3
  156. package/src/jl/'feffery'_antdalert.jl +1 -1
  157. package/src/jl/'feffery'_antdanchor.jl +1 -1
  158. package/src/jl/'feffery'_antdavatar.jl +1 -1
  159. package/src/jl/'feffery'_antdbacktop.jl +1 -1
  160. package/src/jl/'feffery'_antdbutton.jl +4 -2
  161. package/src/jl/'feffery'_antdcarousel.jl +1 -1
  162. package/src/jl/'feffery'_antdcascader.jl +4 -2
  163. package/src/jl/'feffery'_antdcol.jl +1 -1
  164. package/src/jl/'feffery'_antdcontent.jl +1 -1
  165. package/src/jl/'feffery'_antdcustomskeleton.jl +1 -1
  166. package/src/jl/'feffery'_antddraggerupload.jl +1 -1
  167. package/src/jl/'feffery'_antddrawer.jl +1 -1
  168. package/src/jl/'feffery'_antdfooter.jl +1 -1
  169. package/src/jl/'feffery'_antdheader.jl +1 -1
  170. package/src/jl/'feffery'_antdicon.jl +4 -2
  171. package/src/jl/'feffery'_antdimage.jl +1 -1
  172. package/src/jl/'feffery'_antdinput.jl +8 -4
  173. package/src/jl/'feffery'_antdinputnumber.jl +5 -3
  174. package/src/jl/'feffery'_antdlayout.jl +1 -1
  175. package/src/jl/'feffery'_antdmodal.jl +5 -2
  176. package/src/jl/'feffery'_antdparagraph.jl +1 -1
  177. package/src/jl/'feffery'_antdpasteimage.jl +1 -1
  178. package/src/jl/'feffery'_antdpopupcard.jl +43 -0
  179. package/src/jl/'feffery'_antdribbon.jl +1 -1
  180. package/src/jl/'feffery'_antdrow.jl +1 -1
  181. package/src/jl/'feffery'_antdsegmented.jl +5 -4
  182. package/src/jl/'feffery'_antdsegmentedcoloring.jl +3 -1
  183. package/src/jl/'feffery'_antdsider.jl +1 -1
  184. package/src/jl/'feffery'_antdskeleton.jl +1 -1
  185. package/src/jl/'feffery'_antdspace.jl +1 -1
  186. package/src/jl/'feffery'_antdspin.jl +2 -2
  187. package/src/jl/'feffery'_antdstatistic.jl +1 -1
  188. package/src/jl/'feffery'_antdtable.jl +31 -4
  189. package/src/jl/'feffery'_antdtabpane.jl +1 -1
  190. package/src/jl/'feffery'_antdtag.jl +1 -1
  191. package/src/jl/'feffery'_antdtext.jl +1 -1
  192. package/src/jl/'feffery'_antdtitle.jl +1 -1
  193. package/src/jl/'feffery'_antdtree.jl +3 -2
  194. package/src/jl/'feffery'_antdtreeselect.jl +3 -2
  195. package/src/lib/components/AntdAlert.react.js +64 -50
  196. package/src/lib/components/AntdAnchor.react.js +79 -70
  197. package/src/lib/components/AntdAvatar.react.js +92 -76
  198. package/src/lib/components/AntdBackTop.react.js +37 -28
  199. package/src/lib/components/AntdButton.react.js +82 -54
  200. package/src/lib/components/AntdCarousel.react.js +43 -34
  201. package/src/lib/components/AntdCascader.react.js +128 -82
  202. package/src/lib/components/AntdCheckboxGroup.react.js +2 -0
  203. package/src/lib/components/AntdDrawer.react.js +68 -59
  204. package/src/lib/components/AntdIcon.react.js +70 -37
  205. package/src/lib/components/AntdImage.react.js +16 -3
  206. package/src/lib/components/AntdInput.react.js +212 -175
  207. package/src/lib/components/AntdInputNumber.react.js +12 -2
  208. package/src/lib/components/AntdModal.react.js +22 -1
  209. package/src/lib/components/AntdPasteImage.react.js +11 -2
  210. package/src/lib/components/AntdPopupCard.react.js +241 -0
  211. package/src/lib/components/AntdRibbon.react.js +1 -1
  212. package/src/lib/components/AntdSegmented.react.js +19 -4
  213. package/src/lib/components/AntdSegmentedColoring.react.js +107 -82
  214. package/src/lib/components/AntdSelect.react.js +5 -0
  215. package/src/lib/components/AntdSpace.react.js +63 -46
  216. package/src/lib/components/AntdSpin.react.js +21 -6
  217. package/src/lib/components/AntdStatistic.react.js +68 -59
  218. package/src/lib/components/AntdTable.react.js +252 -18
  219. package/src/lib/components/AntdTag.react.js +38 -28
  220. package/src/lib/components/AntdTree.react.js +182 -136
  221. package/src/lib/components/AntdTreeSelect.react.js +144 -101
  222. package/src/lib/components/grid/AntdCol.react.js +61 -52
  223. package/src/lib/components/grid/AntdRow.react.js +46 -37
  224. package/src/lib/components/layout/AntdContent.react.js +35 -26
  225. package/src/lib/components/layout/AntdFooter.react.js +36 -27
  226. package/src/lib/components/layout/AntdHeader.react.js +35 -26
  227. package/src/lib/components/layout/AntdLayout.react.js +35 -26
  228. package/src/lib/components/layout/AntdSider.react.js +61 -52
  229. package/src/lib/components/skeleton/AntdCustomSkeleton.react.js +11 -3
  230. package/src/lib/components/skeleton/AntdSkeleton.react.js +11 -2
  231. package/src/lib/components/styles.css +4 -0
  232. package/src/lib/components/tabs/AntdTabPane.react.js +46 -37
  233. package/src/lib/components/typography/AntdParagraph.react.js +59 -50
  234. package/src/lib/components/typography/AntdText.react.js +61 -52
  235. package/src/lib/components/typography/AntdTitle.react.js +63 -54
  236. package/src/lib/components/upload/AntdDraggerUpload.react.js +11 -2
  237. package/src/lib/components/utils.js +17 -2
  238. package/src/lib/index.js +24 -1
  239. package/tests/DebounceTest/app.py +89 -0
  240. package/tests/SegmentedColoringTest/app.py +106 -0
  241. package/tests/TableCellClickTest/app.py +67 -0
  242. package/tests/TableCellRowMergeTest/app.py +88 -0
  243. package/tests/TableEmptyContentTest/app.py +37 -0
  244. package/tests/TableMiniChartAdvanceTest/app.py +85 -0
  245. package/tests/TreeNodeStyleTest/app.py +73 -0
  246. package/tests/TreeTest/app.py +96 -0
  247. package/tests/VirtualClassNameTest/app.py +49 -0
  248. package/usage.py +11 -82
  249. package/webpack.config.js +45 -11
  250. package/tests/UploadTest/app.py +0 -70
@@ -0,0 +1,85 @@
1
+ if True:
2
+ import sys
3
+ sys.path.append('../..')
4
+ import dash
5
+ import numpy as np
6
+ from dash import html
7
+ import feffery_antd_components as fac
8
+ from dash.dependencies import Input, Output
9
+
10
+ app = dash.Dash(
11
+ __name__,
12
+ suppress_callback_exceptions=True
13
+ )
14
+
15
+ app.layout = html.Div(
16
+ [
17
+ fac.AntdTable(
18
+ columns=[
19
+ {
20
+ 'title': 'mini-line示例',
21
+ 'dataIndex': 'mini-line示例',
22
+ 'width': '20%',
23
+ 'renderOptions': {
24
+ 'renderType': 'mini-line'
25
+ }
26
+ },
27
+ {
28
+ 'title': 'mini-bar示例',
29
+ 'dataIndex': 'mini-bar示例',
30
+ 'width': '20%',
31
+ 'renderOptions': {
32
+ 'renderType': 'mini-bar'
33
+ }
34
+ },
35
+ {
36
+ # 注意,mini-progress模式接受的输入应当在0到1之间
37
+ 'title': 'mini-progress示例',
38
+ 'dataIndex': 'mini-progress示例',
39
+ 'width': '20%',
40
+ 'renderOptions': {
41
+ 'renderType': 'mini-progress'
42
+ }
43
+ },
44
+ {
45
+ # 注意,mini-ring-progress模式接受的输入应当在0到1之间
46
+ 'title': 'mini-ring-progress示例',
47
+ 'dataIndex': 'mini-ring-progress示例',
48
+ 'width': '20%',
49
+ 'renderOptions': {
50
+ 'renderType': 'mini-ring-progress',
51
+ 'ringProgressFontSize': 12
52
+ }
53
+ },
54
+ {
55
+ 'title': 'mini-area示例',
56
+ 'dataIndex': 'mini-area示例',
57
+ 'width': '20%',
58
+ 'renderOptions': {
59
+ 'renderType': 'mini-area'
60
+ }
61
+ }
62
+ ],
63
+ data=[
64
+ {
65
+ 'key': i,
66
+ 'mini-line示例': np.random.randint(1, 20, 10),
67
+ 'mini-bar示例': np.random.randint(1, 20, 10),
68
+ 'mini-progress示例': 1,
69
+ 'mini-ring-progress示例': 1,
70
+ 'mini-area示例': np.random.randint(1, 20, 10)
71
+ }
72
+ for i in range(3)
73
+ ],
74
+ miniChartHeight=50,
75
+ bordered=True
76
+ )
77
+ ],
78
+ style={
79
+ 'width': '800px',
80
+ 'margin': '0 auto'
81
+ }
82
+ )
83
+
84
+ if __name__ == '__main__':
85
+ app.run(debug=True)
@@ -0,0 +1,73 @@
1
+ if True:
2
+ import sys
3
+ sys.path.append('../..')
4
+ import os
5
+ import dash
6
+ from dash import html
7
+ import feffery_antd_components as fac
8
+
9
+ app = dash.Dash(__name__)
10
+
11
+
12
+ app.layout = html.Div(
13
+ html.Div(
14
+ [
15
+ fac.AntdTree(
16
+ treeData=[
17
+ {
18
+ 'title': '世界',
19
+ 'key': '世界',
20
+ 'icon_name': 'user',
21
+ 'children': [
22
+ {
23
+ 'title': '亚洲',
24
+ 'key': '亚洲',
25
+ 'children': [
26
+ {
27
+ 'title': '中国',
28
+ 'key': '中国',
29
+ 'icon': 'antd-table',
30
+ 'style': {
31
+ 'color': 'red'
32
+ }
33
+ },
34
+ {
35
+ 'title': '日本',
36
+ 'key': '日本',
37
+ 'icon_name': 'database',
38
+ 'disabled': True
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ 'title': '北美洲',
44
+ 'key': '北美洲',
45
+ 'icon_name': 'file',
46
+ 'children': [
47
+ {
48
+ 'title': '美国',
49
+ 'key': '美国',
50
+ 'icon_name': 'file-text',
51
+ 'style': {
52
+ 'color': 'green'
53
+ }
54
+ }
55
+ ]
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ )
61
+ ],
62
+ style={
63
+ 'padding': '30px 0'
64
+ }
65
+ ),
66
+ style={
67
+ 'width': '800px',
68
+ 'margin': '0 auto'
69
+ }
70
+ )
71
+
72
+ if __name__ == '__main__':
73
+ app.run(debug=True)
@@ -0,0 +1,96 @@
1
+ if True:
2
+ import sys
3
+ sys.path.append('../..')
4
+ import os
5
+ import dash
6
+ from dash import html
7
+ import feffery_antd_components as fac
8
+
9
+ paths = [path[0].replace('C:\\Conda\\', '')
10
+ for path in os.walk(r'C:\Conda\envs')]
11
+
12
+ pathTreeData = [
13
+ {
14
+ 'title': path.split('\\')[-1],
15
+ 'key': path,
16
+ 'value': path,
17
+ 'parent': '\\'.join(path.split('\\')[:-1])
18
+ }
19
+ for path in paths
20
+ if '\\' in path
21
+ ]
22
+
23
+ pathTreeData.append(
24
+ {
25
+ 'title': 'envs',
26
+ 'key': 'envs',
27
+ 'value': 'envs',
28
+ }
29
+ )
30
+
31
+ app = dash.Dash(__name__)
32
+
33
+ treeData = [
34
+ {'label': "马云", 'value': "马云", 'key': "1"},
35
+ {'label': "前端技术专家", 'value': "前端技术专家", 'key': "3", 'parent': "2"},
36
+ {'label': "首席科学家", 'value': "首席科学家", 'key': "2", 'parent': "1"},
37
+ {'label': "前端架构师", 'value': "前端架构师", 'key': "4", 'parent': "3"},
38
+ {'label': "前端工程师", 'value': "前端工程师", 'key': "5", 'parent': "4"},
39
+ {'label': "前端菜鸟", 'value': "前端菜鸟", 'key': "6", 'parent': "5"},
40
+ {'label': "前端小白", 'value': "前端小白", 'key': "7", 'parent': "6"},
41
+ {'label': "马岳父", 'value': "马岳父", 'key': "8"},
42
+ {'label': "QQ", 'value': "QQ", 'key': "9", 'parent': "8"},
43
+ {'label': "微信", 'value': "微信", 'key': "10", 'parent': "8"},
44
+ {'label': "王者荣耀", 'value': "王者荣耀", 'key': "11", 'parent': "8"},
45
+ {'label': "绝地求生", 'value': "绝地求生", 'key': "12", 'parent': "8"},
46
+ {'label': "QQ会员", 'value': "QQ会员", 'key': "13", 'parent': "9"},
47
+ {'label': "QQ空间", 'value': "QQ空间", 'key': "14", 'parent': "9"},
48
+ {'label': "QQ钱包", 'value': "QQ钱包", 'key': "15", 'parent': "9"},
49
+ {'label': "沙漠地图", 'value': "沙漠地图", 'key': "16", 'parent': "12"},
50
+ {'label': "公众号", 'value': "公众号", 'key': "17", 'parent': "10"},
51
+ {'label': "群聊", 'value': "群聊", 'key': "18", 'parent': "10"},
52
+ {'label': "小程序", 'value': "小程序", 'key': "19", 'parent': "10"},
53
+ {'label': "花木兰", 'value': "花木兰", 'key': "20", 'parent': "11"},
54
+ {'label': "芈月", 'value': "芈月", 'key': "21", 'parent': "11"},
55
+ {'label': "马可波罗", 'value': "马可波罗", 'key': "22", 'parent': "11"},
56
+ ]
57
+
58
+ app.layout = html.Div(
59
+ html.Div(
60
+ [
61
+ fac.AntdTreeSelect(
62
+ # treeData=treeData,
63
+ treeData=pathTreeData,
64
+ treeDataMode='flat',
65
+ treeDefaultExpandAll=True,
66
+ listHeight=600
67
+ ),
68
+
69
+ fac.AntdDivider(),
70
+
71
+ fac.AntdTree(
72
+ treeData=pathTreeData,
73
+ treeDataMode='flat',
74
+ defaultExpandAll=True,
75
+ height=700
76
+ ),
77
+
78
+ fac.AntdDivider(),
79
+
80
+ fac.AntdCascader(
81
+ options=treeData,
82
+ optionsMode='flat'
83
+ )
84
+ ],
85
+ style={
86
+ 'padding': '30px 0'
87
+ }
88
+ ),
89
+ style={
90
+ 'width': '800px',
91
+ 'margin': '0 auto'
92
+ }
93
+ )
94
+
95
+ if __name__ == '__main__':
96
+ app.run(debug=True)
@@ -0,0 +1,49 @@
1
+ if True:
2
+ import sys
3
+ sys.path.append('../..')
4
+ import dash
5
+ import json
6
+ from dash import html
7
+ import feffery_antd_components as fac
8
+ from dash.dependencies import Input, Output
9
+
10
+ app = dash.Dash(
11
+ __name__,
12
+ suppress_callback_exceptions=True
13
+ )
14
+
15
+ app.layout = html.Div(
16
+ [
17
+ fac.AntdButton(
18
+ '按钮测试1',
19
+ type='link',
20
+ className={
21
+ 'border': '2px solid red',
22
+ '&:hover': {
23
+ 'scale': 1.25,
24
+ 'border': '2px solid red'
25
+ }
26
+ }
27
+ ),
28
+ fac.AntdButton(
29
+ '按钮测试2',
30
+ type='link',
31
+ className={
32
+ 'border': '2px solid green',
33
+ '&:hover': {
34
+ 'scale': 1.25
35
+ },
36
+ '&:before': {
37
+ 'content': '测试'
38
+ }
39
+ }
40
+ )
41
+ ],
42
+ style={
43
+ 'width': '800px',
44
+ 'margin': '0 auto'
45
+ }
46
+ )
47
+
48
+ if __name__ == '__main__':
49
+ app.run(debug=True)
package/usage.py CHANGED
@@ -1,98 +1,27 @@
1
+ import json
1
2
  import dash
2
- import numpy as np
3
+ import pandas as pd
3
4
  from dash import html
4
5
  import feffery_antd_components as fac
5
- from dash.dependencies import Input, Output
6
+ from dash.dependencies import Input, Output, State
6
7
 
7
8
  app = dash.Dash(__name__)
8
9
 
9
10
  app.layout = html.Div(
10
11
  [
11
- fac.AntdTable(
12
- id='table-demo',
13
- columns=[
14
- {
15
- 'title': f'字段{i}',
16
- 'dataIndex': f'字段{i}',
17
- 'width': '20%',
18
- 'editable': True
19
- }
20
- for i in range(1, 6)
21
- ],
22
- data=[
23
- {
24
- f'字段{i}': np.random.randint(1, 5)
25
- for i in range(1, 6)
26
- }
27
- for _ in range(20)
28
- ],
29
- sortOptions={
30
- 'sortDataIndexes': ['字段2', '字段4', '字段5'],
31
- 'multiple': True
32
- },
33
- filterOptions={
34
- '字段1': {
35
- 'filterMode': 'checkbox'
36
- },
37
- '字段3': {
38
- 'filterMode': 'keyword'
39
- }
40
- },
41
- bordered=True,
42
- pagination={
43
- 'pageSize': 5
12
+ fac.AntdText(
13
+ '增删改一体化表格示例',
14
+ style={
15
+ 'fontSize': '20px',
16
+ 'borderLeft': '3px solid #2e94f7',
17
+ 'paddingLeft': '5px',
44
18
  }
45
- ),
46
- fac.AntdSpin(
47
- html.Div(id='table-demo-output'),
48
- text='回调中'
49
19
  )
50
20
  ],
51
21
  style={
52
- 'width': '800px',
53
- 'margin': '0 auto',
22
+ 'padding': '50px'
54
23
  }
55
24
  )
56
25
 
57
-
58
- @app.callback(
59
- Output('table-demo-output', 'children'),
60
- [Input('table-demo', 'currentData'),
61
- Input('table-demo', 'recentlyChangedRow'),
62
- Input('table-demo', 'sorter'),
63
- Input('table-demo', 'filter'),
64
- Input('table-demo', 'pagination')],
65
- prevent_initial_call=True
66
- )
67
- def table_callback_demo(currentData,
68
- recentlyChangedRow,
69
- sorter,
70
- filter,
71
- pagination):
72
-
73
- ctx = dash.callback_context
74
-
75
- return [
76
- fac.AntdTitle('本次回调由{}所触发'.format(
77
- ctx.triggered[0]['prop_id'].split('.')[-1]), level=3),
78
- fac.AntdDivider(),
79
-
80
- fac.AntdTitle('currentData:', level=5),
81
- html.Pre(str(currentData)),
82
-
83
- fac.AntdTitle('recentlyChangedRow:', level=5),
84
- html.Pre(str(recentlyChangedRow)),
85
-
86
- fac.AntdTitle('sorter:', level=5),
87
- html.Pre(str(sorter)),
88
-
89
- fac.AntdTitle('filter:', level=5),
90
- html.Pre(str(filter)),
91
-
92
- fac.AntdTitle('pagination:', level=5),
93
- html.Pre(str(pagination))
94
- ]
95
-
96
-
97
26
  if __name__ == '__main__':
98
- app.run_server(debug=True)
27
+ app.run(debug=True)
package/webpack.config.js CHANGED
@@ -1,6 +1,9 @@
1
1
  const path = require('path');
2
- const packagejson = require('./package.json');
2
+ const TerserPlugin = require('terser-webpack-plugin');
3
+ const webpack = require('webpack');
3
4
  const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
5
+ const WebpackDashDynamicImport = require('@plotly/webpack-dash-dynamic-import');
6
+ const packagejson = require('./package.json');
4
7
 
5
8
  const dashLibraryName = packagejson.name.replace(/-/g, '_');
6
9
 
@@ -55,6 +58,19 @@ module.exports = (env, argv) => {
55
58
  externals,
56
59
  module: {
57
60
  rules: [
61
+ {
62
+ test: /\.js?$/,
63
+ exclude: /node_modules/,
64
+ use: {
65
+ loader: 'babel-loader',
66
+ options: {
67
+ presets: ['@babel/preset-env'],
68
+ plugins: [
69
+ "@babel/plugin-proposal-optional-chaining"
70
+ ]
71
+ }
72
+ },
73
+ },
58
74
  {
59
75
  test: /\.jsx?$/,
60
76
  exclude: /node_modules/,
@@ -85,17 +101,35 @@ module.exports = (env, argv) => {
85
101
  ],
86
102
  },
87
103
  optimization: {
88
- minimizer: [new UglifyJsPlugin(
89
- {
104
+ minimizer: [
105
+ new TerserPlugin({
106
+ sourceMap: true,
90
107
  parallel: true,
91
- uglifyOptions: {
92
- output: {
93
- comments: false,
94
- },
95
- warnings: false
108
+ cache: './.build_cache/terser',
109
+ terserOptions: {
110
+ warnings: false,
111
+ ie8: false
96
112
  }
97
- }
98
- )],
99
- }
113
+ }),
114
+ new UglifyJsPlugin(
115
+ {
116
+ parallel: true,
117
+ uglifyOptions: {
118
+ output: {
119
+ comments: false,
120
+ },
121
+ warnings: false
122
+ }
123
+ }
124
+ )
125
+ ]
126
+ },
127
+ plugins: [
128
+ new WebpackDashDynamicImport(),
129
+ new webpack.SourceMapDevToolPlugin({
130
+ filename: '[file].map',
131
+ exclude: ['async-plotlyjs']
132
+ })
133
+ ]
100
134
  }
101
135
  };
@@ -1,70 +0,0 @@
1
- if True:
2
- import sys
3
- sys.path.append('../..')
4
- import json
5
- import dash
6
- from dash import html
7
- from flask import request
8
- import feffery_antd_components as fac
9
- from dash.dependencies import Input, Output
10
-
11
- app = dash.Dash(__name__)
12
-
13
-
14
- @app.server.route('/upload/', methods=['POST'])
15
- def upload():
16
- '''
17
- 构建文件上传服务
18
- :return:
19
- '''
20
-
21
- # 获取上传id参数,用于指向保存路径
22
- uploadId = request.values.get('uploadId')
23
-
24
- # 获取上传的文件名称
25
- filename = request.files['file'].filename
26
-
27
- return {'filename': filename}
28
-
29
-
30
- app.layout = html.Div(
31
- [
32
- fac.AntdUpload(
33
- id='upload-demo',
34
- apiUrl='/upload/',
35
- fileMaxSize=1,
36
- multiple=True
37
- ),
38
-
39
- fac.AntdSpin(
40
- html.Pre(id='upload-demo-output'),
41
- text='回调中'
42
- )
43
- ],
44
- style={
45
- 'width': '800px',
46
- 'margin': '0 auto',
47
- }
48
- )
49
-
50
-
51
- @app.callback(
52
- Output('upload-demo-output', 'children'),
53
- [Input('upload-demo', 'lastUploadTaskRecord'),
54
- Input('upload-demo', 'listUploadTaskRecord')],
55
- prevent_initial_call=True
56
- )
57
- def upload_callback_demo(lastUploadTaskRecord, listUploadTaskRecord):
58
- if lastUploadTaskRecord:
59
- return json.dumps(
60
- {
61
- 'lastUploadTaskRecord': lastUploadTaskRecord,
62
- 'listUploadTaskRecord': listUploadTaskRecord
63
- },
64
- indent=4,
65
- ensure_ascii=False
66
- )
67
-
68
-
69
- if __name__ == '__main__':
70
- app.run(debug=True)