amis 1.5.6-beta.4 → 1.5.8-beta.2

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 (427) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/lib/Schema.d.ts +3 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/AsideNav.d.ts +1 -1
  5. package/lib/components/AsideNav.js.map +1 -1
  6. package/lib/components/AssociatedSelection.d.ts +84 -84
  7. package/lib/components/AssociatedSelection.js +2 -2
  8. package/lib/components/AssociatedSelection.js.map +2 -2
  9. package/lib/components/Avatar.d.ts +135 -0
  10. package/lib/components/Avatar.js +120 -0
  11. package/lib/components/Avatar.js.map +13 -0
  12. package/lib/components/BaiduMapPicker.js.map +2 -2
  13. package/lib/components/CalendarMobile.d.ts +547 -0
  14. package/lib/components/CalendarMobile.js +432 -0
  15. package/lib/components/CalendarMobile.js.map +13 -0
  16. package/lib/components/Card.d.ts +20 -20
  17. package/lib/components/Card.js +1 -1
  18. package/lib/components/Card.js.map +2 -2
  19. package/lib/components/ChainedSelection.d.ts +84 -84
  20. package/lib/components/ChainedSelection.js +15 -3
  21. package/lib/components/ChainedSelection.js.map +2 -2
  22. package/lib/components/CodeMirror.d.ts +26 -0
  23. package/lib/components/CodeMirror.js +104 -0
  24. package/lib/components/CodeMirror.js.map +13 -0
  25. package/lib/components/Collapse.d.ts +22 -21
  26. package/lib/components/Collapse.js +1 -1
  27. package/lib/components/Collapse.js.map +2 -2
  28. package/lib/components/ColorPicker.d.ts +85 -84
  29. package/lib/components/ColorPicker.js +15 -3
  30. package/lib/components/ColorPicker.js.map +2 -2
  31. package/lib/components/DatePicker.d.ts +84 -84
  32. package/lib/components/DatePicker.js +15 -5
  33. package/lib/components/DatePicker.js.map +2 -2
  34. package/lib/components/DateRangePicker.d.ts +86 -84
  35. package/lib/components/DateRangePicker.js +22 -5
  36. package/lib/components/DateRangePicker.js.map +2 -2
  37. package/lib/components/GroupedSelection.d.ts +84 -84
  38. package/lib/components/GroupedSelection.js +14 -2
  39. package/lib/components/GroupedSelection.js.map +2 -2
  40. package/lib/components/MonthRangePicker.d.ts +86 -84
  41. package/lib/components/MonthRangePicker.js +20 -5
  42. package/lib/components/MonthRangePicker.js.map +2 -2
  43. package/lib/components/Overlay.d.ts +1 -1
  44. package/lib/components/Overlay.js.map +1 -1
  45. package/lib/components/Picker.js +9 -4
  46. package/lib/components/Picker.js.map +2 -2
  47. package/lib/components/PickerColumn.js +0 -1
  48. package/lib/components/PickerColumn.js.map +2 -2
  49. package/lib/components/PickerContainer.d.ts +5 -1
  50. package/lib/components/PickerContainer.js +14 -7
  51. package/lib/components/PickerContainer.js.map +2 -2
  52. package/lib/components/PopUp.d.ts +94 -0
  53. package/lib/components/PopUp.js +58 -0
  54. package/lib/components/PopUp.js.map +13 -0
  55. package/lib/components/Rating.d.ts +203 -73
  56. package/lib/components/Rating.js +147 -31
  57. package/lib/components/Rating.js.map +2 -2
  58. package/lib/components/ResultBox.js +2 -1
  59. package/lib/components/ResultBox.js.map +2 -2
  60. package/lib/components/ResultList.d.ts +9 -2
  61. package/lib/components/ResultList.js +22 -2
  62. package/lib/components/ResultList.js.map +2 -2
  63. package/lib/components/Select.d.ts +237 -237
  64. package/lib/components/Select.js +1 -1
  65. package/lib/components/Select.js.map +1 -1
  66. package/lib/components/Selection.d.ts +94 -86
  67. package/lib/components/Selection.js +11 -2
  68. package/lib/components/Selection.js.map +2 -2
  69. package/lib/components/Steps.d.ts +1 -0
  70. package/lib/components/Steps.js +5 -3
  71. package/lib/components/Steps.js.map +2 -2
  72. package/lib/components/TableSelection.d.ts +85 -85
  73. package/lib/components/TableSelection.js +1 -9
  74. package/lib/components/TableSelection.js.map +2 -2
  75. package/lib/components/Tabs.js +31 -33
  76. package/lib/components/Tabs.js.map +2 -2
  77. package/lib/components/TabsTransfer.d.ts +87 -256
  78. package/lib/components/TabsTransfer.js +52 -9
  79. package/lib/components/TabsTransfer.js.map +2 -2
  80. package/lib/components/TabsTransferPicker.d.ts +1 -1
  81. package/lib/components/TabsTransferPicker.js +21 -19
  82. package/lib/components/TabsTransferPicker.js.map +2 -2
  83. package/lib/components/Timeline.d.ts +69 -0
  84. package/lib/components/Timeline.js +16 -0
  85. package/lib/components/Timeline.js.map +13 -0
  86. package/lib/components/TimelineItem.d.ts +516 -0
  87. package/lib/components/TimelineItem.js +41 -0
  88. package/lib/components/TimelineItem.js.map +13 -0
  89. package/lib/components/Transfer.d.ts +100 -98
  90. package/lib/components/Transfer.js +2 -3
  91. package/lib/components/Transfer.js.map +2 -2
  92. package/lib/components/TransferDropDown.d.ts +84 -84
  93. package/lib/components/TransferDropDown.js +1 -5
  94. package/lib/components/TransferDropDown.js.map +2 -2
  95. package/lib/components/TransferPicker.d.ts +1 -1
  96. package/lib/components/TransferPicker.js +21 -19
  97. package/lib/components/TransferPicker.js.map +2 -2
  98. package/lib/components/TreeSelection.d.ts +85 -85
  99. package/lib/components/TreeSelection.js +7 -1
  100. package/lib/components/TreeSelection.js.map +2 -2
  101. package/lib/components/calendar/Calendar.d.ts +5 -0
  102. package/lib/components/calendar/Calendar.js +15 -2
  103. package/lib/components/calendar/Calendar.js.map +2 -2
  104. package/lib/components/calendar/DaysView.d.ts +1 -0
  105. package/lib/components/calendar/DaysView.js +25 -13
  106. package/lib/components/calendar/DaysView.js.map +2 -2
  107. package/lib/components/calendar/MonthsView.d.ts +28 -0
  108. package/lib/components/calendar/MonthsView.js +79 -3
  109. package/lib/components/calendar/MonthsView.js.map +2 -2
  110. package/lib/components/calendar/QuartersView.d.ts +1 -0
  111. package/lib/components/calendar/QuartersView.js +2 -2
  112. package/lib/components/calendar/QuartersView.js.map +2 -2
  113. package/lib/components/calendar/TimeView.d.ts +5 -0
  114. package/lib/components/calendar/TimeView.js +8 -5
  115. package/lib/components/calendar/TimeView.js.map +2 -2
  116. package/lib/components/calendar/YearsView.js +6 -4
  117. package/lib/components/calendar/YearsView.js.map +2 -2
  118. package/lib/components/condition-builder/Field.js +1 -4
  119. package/lib/components/condition-builder/Field.js.map +2 -2
  120. package/lib/components/condition-builder/Func.js +1 -1
  121. package/lib/components/condition-builder/Func.js.map +2 -2
  122. package/lib/components/formula/Editor.d.ts +563 -0
  123. package/lib/components/formula/Editor.js +187 -0
  124. package/lib/components/formula/Editor.js.map +13 -0
  125. package/lib/components/formula/FuncList.d.ts +67 -0
  126. package/lib/components/formula/FuncList.js +36 -0
  127. package/lib/components/formula/FuncList.js.map +13 -0
  128. package/lib/components/formula/Picker.d.ts +493 -0
  129. package/lib/components/formula/Picker.js +48 -0
  130. package/lib/components/formula/Picker.js.map +13 -0
  131. package/lib/components/formula/VariableList.d.ts +9 -0
  132. package/lib/components/formula/VariableList.js +15 -0
  133. package/lib/components/formula/VariableList.js.map +13 -0
  134. package/lib/components/formula/plugin.d.ts +18 -0
  135. package/lib/components/formula/plugin.js +136 -0
  136. package/lib/components/formula/plugin.js.map +13 -0
  137. package/lib/components/icons.js +4 -0
  138. package/lib/components/icons.js.map +2 -2
  139. package/lib/components/index.d.ts +2 -1
  140. package/lib/components/index.js +4 -2
  141. package/lib/components/index.js.map +2 -2
  142. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  143. package/lib/components/virtual-list/index.js +1 -2
  144. package/lib/components/virtual-list/index.js.map +2 -2
  145. package/lib/factory.js +5 -0
  146. package/lib/factory.js.map +2 -2
  147. package/lib/helper.css +57 -57
  148. package/lib/helper.css.map +1 -1
  149. package/lib/icons/star.js +12 -0
  150. package/lib/icons/tree-down.js +7 -0
  151. package/lib/index.d.ts +2 -0
  152. package/lib/index.js +3 -1
  153. package/lib/index.js.map +2 -2
  154. package/lib/locale/de-DE.js +13 -2
  155. package/lib/locale/de-DE.js.map +2 -2
  156. package/lib/locale/en-US.js +13 -2
  157. package/lib/locale/en-US.js.map +2 -2
  158. package/lib/locale/zh-CN.js +12 -1
  159. package/lib/locale/zh-CN.js.map +2 -2
  160. package/lib/renderers/Avatar.d.ts +35 -26
  161. package/lib/renderers/Avatar.js +14 -19
  162. package/lib/renderers/Avatar.js.map +2 -2
  163. package/lib/renderers/CRUD.js +1 -2
  164. package/lib/renderers/CRUD.js.map +2 -2
  165. package/lib/renderers/Card.js +6 -5
  166. package/lib/renderers/Card.js.map +2 -2
  167. package/lib/renderers/Custom.js.map +2 -2
  168. package/lib/renderers/Each.js +5 -2
  169. package/lib/renderers/Each.js.map +2 -2
  170. package/lib/renderers/Flex.js +1 -5
  171. package/lib/renderers/Flex.js.map +2 -2
  172. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  173. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  174. package/lib/renderers/Form/DiffEditor.js +2 -1
  175. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  176. package/lib/renderers/Form/InputCity.d.ts +84 -84
  177. package/lib/renderers/Form/InputColor.d.ts +84 -84
  178. package/lib/renderers/Form/InputColor.js +1 -1
  179. package/lib/renderers/Form/InputColor.js.map +2 -2
  180. package/lib/renderers/Form/InputDate.js +6 -4
  181. package/lib/renderers/Form/InputDate.js.map +2 -2
  182. package/lib/renderers/Form/InputDateRange.js +1 -1
  183. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  184. package/lib/renderers/Form/InputFormula.d.ts +38 -0
  185. package/lib/renderers/Form/InputFormula.js +25 -0
  186. package/lib/renderers/Form/InputFormula.js.map +13 -0
  187. package/lib/renderers/Form/InputImage.d.ts +1 -0
  188. package/lib/renderers/Form/InputImage.js +8 -4
  189. package/lib/renderers/Form/InputImage.js.map +2 -2
  190. package/lib/renderers/Form/InputMonthRange.js +1 -1
  191. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  192. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  193. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  194. package/lib/renderers/Form/InputRating.d.ts +37 -0
  195. package/lib/renderers/Form/InputRating.js +6 -2
  196. package/lib/renderers/Form/InputRating.js.map +2 -2
  197. package/lib/renderers/Form/InputYearRange.js +1 -1
  198. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  199. package/lib/renderers/Form/Item.js +11 -4
  200. package/lib/renderers/Form/Item.js.map +2 -2
  201. package/lib/renderers/Form/NestedSelect.js +1 -1
  202. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  203. package/lib/renderers/Form/Select.js +1 -1
  204. package/lib/renderers/Form/Select.js.map +2 -2
  205. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  206. package/lib/renderers/Form/TabsTransfer.js +20 -1
  207. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  208. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  209. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  210. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  211. package/lib/renderers/Form/Transfer.d.ts +15 -4
  212. package/lib/renderers/Form/Transfer.js +55 -18
  213. package/lib/renderers/Form/Transfer.js.map +2 -2
  214. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  215. package/lib/renderers/Form/TransferPicker.js +1 -1
  216. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  217. package/lib/renderers/Form/TreeSelect.d.ts +1 -0
  218. package/lib/renderers/Form/TreeSelect.js +11 -8
  219. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  220. package/lib/renderers/Form/index.js +2 -1
  221. package/lib/renderers/Form/index.js.map +2 -2
  222. package/lib/renderers/IFrame.js +0 -2
  223. package/lib/renderers/IFrame.js.map +2 -2
  224. package/lib/renderers/Json.js +7 -0
  225. package/lib/renderers/Json.js.map +2 -2
  226. package/lib/renderers/Nav.js +4 -1
  227. package/lib/renderers/Nav.js.map +2 -2
  228. package/lib/renderers/Remark.d.ts +4 -0
  229. package/lib/renderers/Remark.js +38 -7
  230. package/lib/renderers/Remark.js.map +2 -2
  231. package/lib/renderers/Steps.js +5 -5
  232. package/lib/renderers/Steps.js.map +2 -2
  233. package/lib/renderers/Table/TableRow.js +4 -1
  234. package/lib/renderers/Table/TableRow.js.map +2 -2
  235. package/lib/renderers/Table/index.js +4 -1
  236. package/lib/renderers/Table/index.js.map +2 -2
  237. package/lib/renderers/Tabs.js +1 -1
  238. package/lib/renderers/Tabs.js.map +2 -2
  239. package/lib/renderers/Timeline.d.ts +65 -0
  240. package/lib/renderers/Timeline.js +54 -0
  241. package/lib/renderers/Timeline.js.map +13 -0
  242. package/lib/renderers/Video.js.map +2 -2
  243. package/lib/store/combo.js.map +2 -2
  244. package/lib/store/formItem.js +6 -6
  245. package/lib/store/formItem.js.map +2 -2
  246. package/lib/store/table.js +1 -1
  247. package/lib/store/table.js.map +2 -2
  248. package/lib/themes/ang-ie11.css +952 -23
  249. package/lib/themes/ang.css +952 -23
  250. package/lib/themes/ang.css.map +1 -1
  251. package/lib/themes/antd-ie11.css +987 -23
  252. package/lib/themes/antd.css +987 -23
  253. package/lib/themes/antd.css.map +1 -1
  254. package/lib/themes/cxd-ie11.css +991 -24
  255. package/lib/themes/cxd.css +991 -24
  256. package/lib/themes/cxd.css.map +1 -1
  257. package/lib/themes/dark-ie11.css +953 -23
  258. package/lib/themes/dark.css +953 -23
  259. package/lib/themes/dark.css.map +1 -1
  260. package/lib/themes/default.css +991 -24
  261. package/lib/themes/default.css.map +1 -1
  262. package/lib/utils/RootClose.js +3 -1
  263. package/lib/utils/RootClose.js.map +2 -2
  264. package/lib/utils/api.js +2 -2
  265. package/lib/utils/api.js.map +2 -2
  266. package/lib/utils/helper.d.ts +1 -1
  267. package/lib/utils/helper.js +1 -1
  268. package/lib/utils/helper.js.map +2 -2
  269. package/package.json +12 -3
  270. package/schema.json +1224 -671
  271. package/scss/_properties.scss +11 -1
  272. package/scss/_variables.scss +1 -1
  273. package/scss/components/_avatar.scss +27 -9
  274. package/scss/components/_calendar.scss +280 -0
  275. package/scss/components/_card.scss +1 -1
  276. package/scss/components/_collapse-group.scss +1 -3
  277. package/scss/components/_formula.scss +146 -0
  278. package/scss/components/_modal.scss +18 -0
  279. package/scss/components/_panel.scss +45 -0
  280. package/scss/components/_popup.scss +127 -0
  281. package/scss/components/_steps.scss +60 -0
  282. package/scss/components/_timeline.scss +198 -0
  283. package/scss/components/form/_color.scss +4 -0
  284. package/scss/components/form/_date-range.scss +4 -0
  285. package/scss/components/form/_date.scss +3 -0
  286. package/scss/components/form/_form.scss +168 -0
  287. package/scss/components/form/_rating.scss +60 -21
  288. package/scss/components/form/_result-list.scss +2 -0
  289. package/scss/components/form/_selection.scss +5 -4
  290. package/scss/components/form/_tree-select.scss +4 -0
  291. package/scss/helper/background/_background-color.scss +1 -1
  292. package/scss/helper/border/_border-color.scss +1 -1
  293. package/scss/helper/typography/_text-color.scss +1 -1
  294. package/scss/themes/_antd-variables.scss +42 -0
  295. package/scss/themes/_common.scss +3 -0
  296. package/scss/themes/_cxd-variables.scss +50 -1
  297. package/scss/themes/_dark-variables.scss +1 -0
  298. package/sdk/ang-ie11.css +1692 -19
  299. package/sdk/ang.css +1705 -24
  300. package/sdk/antd-ie11.css +1692 -19
  301. package/sdk/antd.css +1740 -24
  302. package/sdk/charts.js +17 -17
  303. package/sdk/codemirror.js +14 -0
  304. package/sdk/color-picker.js +65 -65
  305. package/sdk/cropperjs.js +3 -3
  306. package/sdk/cxd-ie11.css +1693 -20
  307. package/sdk/cxd.css +1744 -25
  308. package/sdk/dark-ie11.css +1693 -20
  309. package/sdk/dark.css +1706 -24
  310. package/sdk/exceljs.js +1 -1
  311. package/sdk/helper.css +57 -57
  312. package/sdk/helper.css.map +1 -1
  313. package/sdk/locale/de-DE.js +13 -2
  314. package/sdk/markdown.js +69 -69
  315. package/sdk/papaparse.js +1 -1
  316. package/sdk/renderers/Form/CityDB.js +1 -1
  317. package/sdk/rest.js +18 -18
  318. package/sdk/rich-text.js +62 -62
  319. package/sdk/sdk-ie11.css +1693 -20
  320. package/sdk/sdk.css +1744 -25
  321. package/sdk/sdk.js +1235 -1275
  322. package/sdk/thirds/hls.js/hls.js +18 -18
  323. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  324. package/sdk/tinymce.js +57 -57
  325. package/src/Schema.ts +4 -0
  326. package/src/components/AsideNav.tsx +1 -1
  327. package/src/components/AssociatedSelection.tsx +5 -1
  328. package/src/components/Avatar.tsx +253 -0
  329. package/src/components/BaiduMapPicker.tsx +19 -14
  330. package/src/components/CalendarMobile.tsx +563 -0
  331. package/src/components/Card.tsx +2 -2
  332. package/src/components/ChainedSelection.tsx +16 -3
  333. package/src/components/CodeMirror.tsx +99 -0
  334. package/src/components/Collapse.tsx +3 -2
  335. package/src/components/ColorPicker.tsx +43 -3
  336. package/src/components/DatePicker.tsx +44 -8
  337. package/src/components/DateRangePicker.tsx +64 -5
  338. package/src/components/GroupedSelection.tsx +14 -2
  339. package/src/components/MonthRangePicker.tsx +59 -5
  340. package/src/components/Overlay.tsx +1 -1
  341. package/src/components/Picker.tsx +41 -36
  342. package/src/components/PickerColumn.tsx +22 -25
  343. package/src/components/PickerContainer.tsx +23 -7
  344. package/src/components/PopUp.tsx +118 -0
  345. package/src/components/Rating.tsx +235 -47
  346. package/src/components/ResultBox.tsx +4 -1
  347. package/src/components/ResultList.tsx +36 -6
  348. package/src/components/Select.tsx +1 -1
  349. package/src/components/Selection.tsx +21 -3
  350. package/src/components/Steps.tsx +27 -9
  351. package/src/components/TableSelection.tsx +1 -44
  352. package/src/components/Tabs.tsx +65 -54
  353. package/src/components/TabsTransfer.tsx +78 -9
  354. package/src/components/TabsTransferPicker.tsx +25 -13
  355. package/src/components/Timeline.tsx +31 -0
  356. package/src/components/TimelineItem.tsx +107 -0
  357. package/src/components/Transfer.tsx +11 -8
  358. package/src/components/TransferDropDown.tsx +1 -7
  359. package/src/components/TransferPicker.tsx +25 -14
  360. package/src/components/TreeSelection.tsx +7 -1
  361. package/src/components/calendar/Calendar.tsx +26 -6
  362. package/src/components/calendar/DaysView.tsx +79 -31
  363. package/src/components/calendar/MonthsView.tsx +116 -2
  364. package/src/components/calendar/QuartersView.tsx +3 -2
  365. package/src/components/calendar/TimeView.tsx +26 -16
  366. package/src/components/calendar/YearsView.tsx +14 -16
  367. package/src/components/condition-builder/Field.tsx +1 -3
  368. package/src/components/condition-builder/Func.tsx +1 -1
  369. package/src/components/formula/Editor.tsx +266 -0
  370. package/src/components/formula/FuncList.tsx +84 -0
  371. package/src/components/formula/Picker.tsx +87 -0
  372. package/src/components/formula/VariableList.tsx +49 -0
  373. package/src/components/formula/plugin.ts +177 -0
  374. package/src/components/icons.tsx +4 -0
  375. package/src/components/index.tsx +2 -0
  376. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  377. package/src/components/virtual-list/index.tsx +4 -6
  378. package/src/factory.tsx +6 -0
  379. package/src/icons/star.svg +12 -0
  380. package/src/icons/tree-down.svg +5 -0
  381. package/src/index.tsx +2 -0
  382. package/src/locale/de-DE.ts +13 -2
  383. package/src/locale/en-US.ts +13 -2
  384. package/src/locale/zh-CN.ts +12 -1
  385. package/src/renderers/Avatar.tsx +83 -74
  386. package/src/renderers/CRUD.tsx +1 -3
  387. package/src/renderers/Card.tsx +10 -6
  388. package/src/renderers/Custom.tsx +6 -3
  389. package/src/renderers/Each.tsx +4 -4
  390. package/src/renderers/Flex.tsx +3 -7
  391. package/src/renderers/Form/ChartRadios.tsx +2 -7
  392. package/src/renderers/Form/Checkboxes.tsx +1 -1
  393. package/src/renderers/Form/DiffEditor.tsx +2 -3
  394. package/src/renderers/Form/InputColor.tsx +1 -2
  395. package/src/renderers/Form/InputDate.tsx +39 -18
  396. package/src/renderers/Form/InputDateRange.tsx +1 -0
  397. package/src/renderers/Form/InputFormula.tsx +80 -0
  398. package/src/renderers/Form/InputImage.tsx +9 -4
  399. package/src/renderers/Form/InputMonthRange.tsx +1 -0
  400. package/src/renderers/Form/InputQuarterRange.tsx +1 -0
  401. package/src/renderers/Form/InputRating.tsx +66 -3
  402. package/src/renderers/Form/InputYearRange.tsx +1 -0
  403. package/src/renderers/Form/Item.tsx +15 -4
  404. package/src/renderers/Form/NestedSelect.tsx +1 -1
  405. package/src/renderers/Form/Select.tsx +0 -1
  406. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  407. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  408. package/src/renderers/Form/Transfer.tsx +75 -24
  409. package/src/renderers/Form/TransferPicker.tsx +6 -38
  410. package/src/renderers/Form/TreeSelect.tsx +80 -63
  411. package/src/renderers/Form/index.tsx +2 -1
  412. package/src/renderers/IFrame.tsx +0 -2
  413. package/src/renderers/Json.tsx +5 -0
  414. package/src/renderers/Nav.tsx +4 -1
  415. package/src/renderers/Remark.tsx +67 -18
  416. package/src/renderers/Steps.tsx +13 -13
  417. package/src/renderers/Table/TableRow.tsx +3 -1
  418. package/src/renderers/Table/index.tsx +7 -1
  419. package/src/renderers/Tabs.tsx +6 -2
  420. package/src/renderers/Timeline.tsx +141 -0
  421. package/src/renderers/Video.tsx +4 -20
  422. package/src/store/combo.ts +1 -3
  423. package/src/store/formItem.ts +2 -2
  424. package/src/store/table.ts +2 -1
  425. package/src/utils/RootClose.ts +5 -1
  426. package/src/utils/api.ts +5 -2
  427. package/src/utils/helper.ts +1 -1
@@ -6,51 +6,19 @@ import {
6
6
  import React from 'react';
7
7
  import {Api} from '../../types';
8
8
  import Spinner from '../../components/Spinner';
9
- import {BaseTransferRenderer} from './Transfer';
9
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
10
10
  import TabsTransfer from '../../components/TabsTransfer';
11
- import {SchemaApi} from '../../Schema';
11
+ import {SchemaApi, SchemaObject} from '../../Schema';
12
+ import {autobind, createObject} from '../../utils/helper';
13
+ import {BaseSelection, ItemRenderStates} from '../../components/Selection';
12
14
 
13
15
  /**
14
16
  * TabsTransfer
15
17
  * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer
16
18
  */
17
- export interface TabsTransferControlSchema extends FormOptionsControl {
19
+ export interface TabsTransferControlSchema
20
+ extends Omit<TransferControlSchema, 'type'> {
18
21
  type: 'tabs-transfer';
19
-
20
- /**
21
- * 是否显示剪头
22
- */
23
- showArrow?: boolean;
24
-
25
- /**
26
- * 可排序?
27
- */
28
- sortable?: boolean;
29
-
30
- /**
31
- * 搜索结果展示模式
32
- */
33
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
34
-
35
- /**
36
- * 可搜索?
37
- */
38
- searchable?: boolean;
39
-
40
- /**
41
- * 搜索 API
42
- */
43
- searchApi?: SchemaApi;
44
-
45
- /**
46
- * 左侧的标题文字
47
- */
48
- selectTitle?: string;
49
-
50
- /**
51
- * 右侧结果的标题文字
52
- */
53
- resultTitle?: string;
54
22
  }
55
23
 
56
24
  export interface TabsTransferProps
@@ -68,6 +36,26 @@ export interface TabsTransferProps
68
36
  type: 'tabs-transfer'
69
37
  })
70
38
  export class TabsTransferRenderer extends BaseTransferRenderer<TabsTransferProps> {
39
+ @autobind
40
+ optionItemRender(option: any, states: ItemRenderStates) {
41
+ const {menuTpl, render, data} = this.props;
42
+ const ctx = arguments[2] || {};
43
+
44
+ if (menuTpl) {
45
+ return render(`item/${states.index}`, menuTpl, {
46
+ data: createObject(
47
+ createObject(data, {
48
+ ...states,
49
+ ...ctx
50
+ }),
51
+ option
52
+ )
53
+ });
54
+ }
55
+
56
+ return BaseSelection.itemRender(option, states);
57
+ }
58
+
71
59
  render() {
72
60
  const {
73
61
  className,
@@ -100,6 +88,8 @@ export class TabsTransferRenderer extends BaseTransferRenderer<TabsTransferProps
100
88
  onDeferLoad={deferLoad}
101
89
  selectTitle={selectTitle}
102
90
  resultTitle={resultTitle}
91
+ optionItemRender={this.optionItemRender}
92
+ resultItemRender={this.resultItemRender}
103
93
  />
104
94
 
105
95
  <Spinner overlay key="info" show={loading} />
@@ -4,60 +4,21 @@ import {
4
4
  FormOptionsControl
5
5
  } from './Options';
6
6
  import React from 'react';
7
- import {Api} from '../../types';
8
7
  import Spinner from '../../components/Spinner';
9
8
  import {BaseTransferRenderer} from './Transfer';
10
- import TabsTransfer from '../../components/TabsTransfer';
11
- import {SchemaApi} from '../../Schema';
12
- import TransferPicker from '../../components/TransferPicker';
9
+ import {SchemaApi, SchemaObject} from '../../Schema';
13
10
  import TabsTransferPicker from '../../components/TabsTransferPicker';
11
+ import {TabsTransferControlSchema} from './TabsTransfer';
12
+ import {autobind, createObject} from '../../utils/helper';
13
+ import {BaseSelection, ItemRenderStates} from '../../components/Selection';
14
14
 
15
15
  /**
16
16
  * TabsTransferPicker 穿梭器的弹框形态
17
17
  * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer-picker
18
18
  */
19
- export interface TabsTransferPickerControlSchema extends FormOptionsControl {
19
+ export interface TabsTransferPickerControlSchema
20
+ extends Omit<TabsTransferControlSchema, 'type'> {
20
21
  type: 'tabs-transfer-picker';
21
-
22
- /**
23
- * 是否显示剪头
24
- */
25
- showArrow?: boolean;
26
-
27
- /**
28
- * 可排序?
29
- */
30
- sortable?: boolean;
31
-
32
- /**
33
- * 搜索结果展示模式
34
- */
35
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
36
-
37
- /**
38
- * 可搜索?
39
- */
40
- searchable?: boolean;
41
-
42
- /**
43
- * 搜索 API
44
- */
45
- searchApi?: SchemaApi;
46
-
47
- /**
48
- * 左侧的标题文字
49
- */
50
- selectTitle?: string;
51
-
52
- /**
53
- * 右侧结果的标题文字
54
- */
55
- resultTitle?: string;
56
-
57
- /**
58
- * 弹窗大小
59
- */
60
- pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
61
22
  }
62
23
 
63
24
  export interface TabsTransferProps
@@ -75,6 +36,26 @@ export interface TabsTransferProps
75
36
  type: 'tabs-transfer-picker'
76
37
  })
77
38
  export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
39
+ @autobind
40
+ optionItemRender(option: any, states: ItemRenderStates) {
41
+ const {menuTpl, render, data} = this.props;
42
+ const ctx = arguments[2] || {};
43
+
44
+ if (menuTpl) {
45
+ return render(`item/${states.index}`, menuTpl, {
46
+ data: createObject(
47
+ createObject(data, {
48
+ ...states,
49
+ ...ctx
50
+ }),
51
+ option
52
+ )
53
+ });
54
+ }
55
+
56
+ return BaseSelection.itemRender(option, states);
57
+ }
58
+
78
59
  render() {
79
60
  const {
80
61
  className,
@@ -91,7 +72,6 @@ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransfe
91
72
  selectTitle,
92
73
  resultTitle,
93
74
  pickerSize,
94
- columns,
95
75
  leftMode,
96
76
  leftOptions
97
77
  } = this.props;
@@ -114,6 +94,8 @@ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransfe
114
94
  size={pickerSize}
115
95
  leftMode={leftMode}
116
96
  leftOptions={leftOptions}
97
+ optionItemRender={this.optionItemRender}
98
+ resultItemRender={this.resultItemRender}
117
99
  />
118
100
 
119
101
  <Spinner overlay key="info" show={loading} />
@@ -5,20 +5,28 @@ import {
5
5
  } from './Options';
6
6
  import React from 'react';
7
7
  import Transfer from '../../components/Transfer';
8
- import {Option} from './Options';
8
+ import type {Option} from './Options';
9
9
  import {
10
10
  autobind,
11
11
  filterTree,
12
12
  string2regExp,
13
13
  createObject,
14
- findTree
14
+ findTree,
15
+ findTreeIndex,
16
+ getTree,
17
+ spliceTree
15
18
  } from '../../utils/helper';
16
19
  import {Api} from '../../types';
17
20
  import Spinner from '../../components/Spinner';
18
21
  import find from 'lodash/find';
19
22
  import {optionValueCompare} from '../../components/Select';
20
23
  import {resolveVariable} from '../../utils/tpl-builtin';
21
- import {SchemaApi} from '../../Schema';
24
+ import {SchemaApi, SchemaObject} from '../../Schema';
25
+ import {BaseSelection, ItemRenderStates} from '../../components/Selection';
26
+ import {
27
+ ItemRenderStates as ResultItemRenderStates,
28
+ ResultList
29
+ } from '../../components/ResultList';
22
30
 
23
31
  /**
24
32
  * Transfer
@@ -91,6 +99,16 @@ export interface TransferControlSchema extends FormOptionsControl {
91
99
  * 右侧结果的标题文字
92
100
  */
93
101
  resultTitle?: string;
102
+
103
+ /**
104
+ * 用来丰富选项展示
105
+ */
106
+ menuTpl?: SchemaObject;
107
+
108
+ /**
109
+ * 用来丰富值的展示
110
+ */
111
+ valueTpl?: SchemaObject;
94
112
  }
95
113
 
96
114
  export interface BaseTransferProps
@@ -103,7 +121,6 @@ export interface BaseTransferProps
103
121
  | 'descriptionClassName'
104
122
  | 'inputClassName'
105
123
  > {
106
- optionItemRender?: (option: Option) => JSX.Element;
107
124
  resultItemRender?: (option: Option) => JSX.Element;
108
125
  }
109
126
 
@@ -111,7 +128,7 @@ export class BaseTransferRenderer<
111
128
  T extends OptionsControlProps = BaseTransferProps
112
129
  > extends React.Component<T> {
113
130
  @autobind
114
- handleChange(value: Array<Option>) {
131
+ handleChange(value: Array<Option>, optionModified?: boolean) {
115
132
  const {
116
133
  onChange,
117
134
  joinValues,
@@ -125,30 +142,37 @@ export class BaseTransferRenderer<
125
142
  let newOptions = options.concat();
126
143
 
127
144
  if (Array.isArray(value)) {
128
- if (joinValues || extractValue) {
129
- newValue = value.map(item => {
130
- const resolved = findTree(
131
- options,
132
- optionValueCompare(
133
- item[(valueField as string) || 'value'],
134
- (valueField as string) || 'value'
135
- )
136
- );
145
+ newValue = value.map(item => {
146
+ const indexes = findTreeIndex(
147
+ options,
148
+ optionValueCompare(
149
+ item[(valueField as string) || 'value'],
150
+ (valueField as string) || 'value'
151
+ )
152
+ );
137
153
 
138
- if (!resolved) {
139
- newOptions.push(item);
140
- }
154
+ if (!indexes) {
155
+ newOptions.push(item);
156
+ } else if (optionModified) {
157
+ const origin = getTree(newOptions, indexes);
158
+ newOptions = spliceTree(newOptions, indexes, 1, {
159
+ ...origin,
160
+ ...item
161
+ });
162
+ }
141
163
 
142
- return item[(valueField as string) || 'value'];
143
- });
144
- }
164
+ return joinValues || extractValue
165
+ ? item[(valueField as string) || 'value']
166
+ : item;
167
+ });
145
168
 
146
169
  if (joinValues) {
147
170
  newValue = newValue.join(delimiter || ',');
148
171
  }
149
172
  }
150
173
 
151
- newOptions.length > options.length && setOptions(newOptions, true);
174
+ (newOptions.length > options.length || optionModified) &&
175
+ setOptions(newOptions, true);
152
176
  onChange(newValue);
153
177
  }
154
178
 
@@ -220,6 +244,33 @@ export class BaseTransferRenderer<
220
244
  }
221
245
  }
222
246
 
247
+ @autobind
248
+ optionItemRender(option: Option, states: ItemRenderStates) {
249
+ const {menuTpl, render, data} = this.props;
250
+
251
+ if (menuTpl) {
252
+ return render(`item/${states.index}`, menuTpl, {
253
+ data: createObject(createObject(data, states), option)
254
+ });
255
+ }
256
+
257
+ return BaseSelection.itemRender(option, states);
258
+ }
259
+
260
+ @autobind
261
+ resultItemRender(option: Option, states: ResultItemRenderStates) {
262
+ const {valueTpl, render, data} = this.props;
263
+
264
+ if (valueTpl) {
265
+ return render(`value/${states.index}`, valueTpl, {
266
+ onChange: states.onChange,
267
+ data: createObject(createObject(data, states), option)
268
+ });
269
+ }
270
+
271
+ return ResultList.itemRender(option);
272
+ }
273
+
223
274
  @autobind
224
275
  renderCell(
225
276
  column: {
@@ -264,7 +315,7 @@ export class BaseTransferRenderer<
264
315
  disabled,
265
316
  selectTitle,
266
317
  resultTitle,
267
- optionItemRender,
318
+ menuTpl,
268
319
  resultItemRender
269
320
  } = this.props;
270
321
 
@@ -306,8 +357,8 @@ export class BaseTransferRenderer<
306
357
  cellRender={this.renderCell}
307
358
  selectTitle={selectTitle}
308
359
  resultTitle={resultTitle}
309
- optionItemRender={optionItemRender}
310
- resultItemRender={resultItemRender}
360
+ optionItemRender={this.optionItemRender}
361
+ resultItemRender={this.resultItemRender}
311
362
  />
312
363
 
313
364
  <Spinner overlay key="info" show={loading} />
@@ -6,57 +6,23 @@ import {
6
6
  import React from 'react';
7
7
  import {Api} from '../../types';
8
8
  import Spinner from '../../components/Spinner';
9
- import {BaseTransferRenderer} from './Transfer';
9
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
10
10
  import TabsTransfer from '../../components/TabsTransfer';
11
- import {SchemaApi} from '../../Schema';
11
+ import {SchemaApi, SchemaObject} from '../../Schema';
12
12
  import TransferPicker from '../../components/TransferPicker';
13
13
 
14
14
  /**
15
15
  * TransferPicker 穿梭器的弹框形态
16
16
  * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer-picker
17
17
  */
18
- export interface TransferPickerControlSchema extends FormOptionsControl {
18
+ export interface TransferPickerControlSchema
19
+ extends Omit<TransferControlSchema, 'type'> {
19
20
  type: 'transfer-picker';
20
21
  /**
21
22
  * 边框模式,全边框,还是半边框,或者没边框。
22
23
  */
23
24
  borderMode?: 'full' | 'half' | 'none';
24
25
 
25
- /**
26
- * 是否显示剪头
27
- */
28
- showArrow?: boolean;
29
-
30
- /**
31
- * 可排序?
32
- */
33
- sortable?: boolean;
34
-
35
- /**
36
- * 搜索结果展示模式
37
- */
38
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
39
-
40
- /**
41
- * 可搜索?
42
- */
43
- searchable?: boolean;
44
-
45
- /**
46
- * 搜索 API
47
- */
48
- searchApi?: SchemaApi;
49
-
50
- /**
51
- * 左侧的标题文字
52
- */
53
- selectTitle?: string;
54
-
55
- /**
56
- * 右侧结果的标题文字
57
- */
58
- resultTitle?: string;
59
-
60
26
  /**
61
27
  * 弹窗大小
62
28
  */
@@ -136,6 +102,8 @@ export class TransferPickerRenderer extends BaseTransferRenderer<TabsTransferPro
136
102
  columns={columns}
137
103
  leftMode={leftMode}
138
104
  leftOptions={leftOptions}
105
+ optionItemRender={this.optionItemRender}
106
+ resultItemRender={this.resultItemRender}
139
107
  />
140
108
 
141
109
  <Spinner overlay key="info" show={loading} />
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import Overlay from '../../components/Overlay';
3
3
  import PopOver from '../../components/PopOver';
4
+ import PopUp from '../../components/PopUp';
4
5
 
5
6
  import {
6
7
  OptionsControl,
@@ -17,7 +18,7 @@ import {Api} from '../../types';
17
18
  import {isEffectiveApi} from '../../utils/api';
18
19
  import Spinner from '../../components/Spinner';
19
20
  import ResultBox from '../../components/ResultBox';
20
- import {autobind, getTreeAncestors} from '../../utils/helper';
21
+ import {autobind, getTreeAncestors, isMobile} from '../../utils/helper';
21
22
  import {findDOMNode} from 'react-dom';
22
23
  import {normalizeOptions} from '../../components/Select';
23
24
 
@@ -90,6 +91,7 @@ export interface TreeSelectProps extends OptionsControlProps {
90
91
  hideNodePathLabel?: boolean;
91
92
  enableNodePath?: boolean;
92
93
  pathSeparator?: string;
94
+ useMobileUI?: boolean;
93
95
  }
94
96
 
95
97
  export interface TreeSelectState {
@@ -502,67 +504,51 @@ export default class TreeSelectControl extends React.Component<
502
504
  : options;
503
505
 
504
506
  return (
505
- <Overlay
506
- container={popOverContainer || (() => this.container.current)}
507
- target={() => this.target}
508
- show
509
- >
510
- <PopOver
511
- classPrefix={ns}
512
- className={`${ns}TreeSelect-popover`}
513
- style={{
514
- minWidth: this.target ? this.target.offsetWidth : undefined
515
- }}
516
- onHide={this.close}
517
- overlay
518
- >
519
- <TreeSelector
520
- classPrefix={ns}
521
- onlyChildren={onlyChildren}
522
- labelField={labelField}
523
- valueField={valueField}
524
- disabled={disabled}
525
- onChange={this.handleChange}
526
- joinValues={joinValues}
527
- extractValue={extractValue}
528
- delimiter={delimiter}
529
- placeholder={__(optionsPlaceholder)}
530
- options={filtedOptions}
531
- highlightTxt={this.state.inputValue}
532
- multiple={multiple}
533
- initiallyOpen={initiallyOpen}
534
- unfoldedLevel={unfoldedLevel}
535
- withChildren={withChildren}
536
- rootLabel={__(rootLabel)}
537
- rootValue={rootValue}
538
- showIcon={showIcon}
539
- showRadio={showRadio}
540
- cascade={cascade}
541
- foldedField="collapsed"
542
- hideRoot
543
- value={value || ''}
544
- nodePath={nodePath}
545
- enableNodePath={enableNodePath}
546
- pathSeparator={pathSeparator}
547
- maxLength={maxLength}
548
- minLength={minLength}
549
- onAdd={onAdd}
550
- creatable={creatable}
551
- createTip={createTip}
552
- rootCreatable={rootCreatable}
553
- rootCreateTip={rootCreateTip}
554
- onEdit={onEdit}
555
- editable={editable}
556
- editTip={editTip}
557
- removable={removable}
558
- removeTip={removeTip}
559
- onDelete={onDelete}
560
- bultinCUD={!addControls && !editControls}
561
- onDeferLoad={deferLoad}
562
- onExpandTree={expandTreeOptions}
563
- />
564
- </PopOver>
565
- </Overlay>
507
+ <TreeSelector
508
+ classPrefix={ns}
509
+ onlyChildren={onlyChildren}
510
+ labelField={labelField}
511
+ valueField={valueField}
512
+ disabled={disabled}
513
+ onChange={this.handleChange}
514
+ joinValues={joinValues}
515
+ extractValue={extractValue}
516
+ delimiter={delimiter}
517
+ placeholder={__(optionsPlaceholder)}
518
+ options={filtedOptions}
519
+ highlightTxt={this.state.inputValue}
520
+ multiple={multiple}
521
+ initiallyOpen={initiallyOpen}
522
+ unfoldedLevel={unfoldedLevel}
523
+ withChildren={withChildren}
524
+ rootLabel={__(rootLabel)}
525
+ rootValue={rootValue}
526
+ showIcon={showIcon}
527
+ showRadio={showRadio}
528
+ cascade={cascade}
529
+ foldedField="collapsed"
530
+ hideRoot
531
+ value={value || ''}
532
+ nodePath={nodePath}
533
+ enableNodePath={enableNodePath}
534
+ pathSeparator={pathSeparator}
535
+ maxLength={maxLength}
536
+ minLength={minLength}
537
+ onAdd={onAdd}
538
+ creatable={creatable}
539
+ createTip={createTip}
540
+ rootCreatable={rootCreatable}
541
+ rootCreateTip={rootCreateTip}
542
+ onEdit={onEdit}
543
+ editable={editable}
544
+ editTip={editTip}
545
+ removable={removable}
546
+ removeTip={removeTip}
547
+ onDelete={onDelete}
548
+ bultinCUD={!addControls && !editControls}
549
+ onDeferLoad={deferLoad}
550
+ onExpandTree={expandTreeOptions}
551
+ />
566
552
  );
567
553
  }
568
554
 
@@ -581,9 +567,13 @@ export default class TreeSelectControl extends React.Component<
581
567
  autoComplete,
582
568
  selectedOptions,
583
569
  placeholder,
570
+ popOverContainer,
571
+ env,
584
572
  translate: __
585
573
  } = this.props;
586
574
 
575
+ const {isOpened} = this.state;
576
+ const {useMobileUI} = env;
587
577
  return (
588
578
  <div ref={this.container} className={cx(`TreeSelectControl`, className)}>
589
579
  <ResultBox
@@ -622,7 +612,34 @@ export default class TreeSelectControl extends React.Component<
622
612
  >
623
613
  {loading ? <Spinner size="sm" /> : undefined}
624
614
  </ResultBox>
625
- {this.state.isOpened ? this.renderOuter() : null}
615
+ {!(useMobileUI && isMobile()) && isOpened ? (
616
+ <Overlay
617
+ container={popOverContainer || (() => this.container.current)}
618
+ target={() => this.target}
619
+ show
620
+ >
621
+ <PopOver
622
+ classPrefix={ns}
623
+ className={`${ns}TreeSelect-popover`}
624
+ style={{
625
+ minWidth: this.target ? this.target.offsetWidth : undefined
626
+ }}
627
+ onHide={this.close}
628
+ overlay
629
+ >
630
+ {this.renderOuter()}
631
+ </PopOver>
632
+ </Overlay>
633
+ ) : null}
634
+ {useMobileUI && isMobile() && (
635
+ <PopUp
636
+ className={cx(`${ns}TreeSelect-popup`)}
637
+ isShow={isOpened}
638
+ onHide={this.close}
639
+ >
640
+ {this.renderOuter()}
641
+ </PopUp>
642
+ )}
626
643
  </div>
627
644
  );
628
645
  }
@@ -398,7 +398,8 @@ export default class Form extends React.Component<FormProps, object> {
398
398
  'simpleMode',
399
399
  'inputOnly',
400
400
  'value',
401
- 'actions'
401
+ 'actions',
402
+ 'multiple'
402
403
  ];
403
404
 
404
405
  hooks: {
@@ -161,8 +161,6 @@ export default class IFrame extends React.Component<IFrameProps, object> {
161
161
  ...style
162
162
  };
163
163
 
164
- src = dataMapping(src, data);
165
-
166
164
  const finalSrc = src ? buildApi(src, data).url : undefined;
167
165
 
168
166
  if (
@@ -94,6 +94,11 @@ export class JSONField extends React.Component<JSONProps, object> {
94
94
  let data = value;
95
95
  if (source !== undefined && isPureVariable(source)) {
96
96
  data = resolveVariableAndFilter(source, this.props.data, '| raw');
97
+ } else if (typeof value === 'string') {
98
+ // 尝试解析 json
99
+ try {
100
+ data = JSON.parse(value);
101
+ } catch (e) {}
97
102
  }
98
103
 
99
104
  let jsonThemeValue = jsonTheme;
@@ -415,7 +415,10 @@ export class Navigation extends React.Component<
415
415
  />
416
416
  ) : hasSub ? (
417
417
  <span
418
- onClick={() => this.toggleLink(link)}
418
+ onClick={e => {
419
+ this.toggleLink(link);
420
+ e.stopPropagation();
421
+ }}
419
422
  className={cx('Nav-itemToggler', togglerClassName)}
420
423
  >
421
424
  <Icon icon="caret" className="icon" />