@douyinfe/semi-ui 2.28.0-alpha.0 → 2.28.0-beta.1

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 (353) hide show
  1. package/dist/css/semi.css +216 -0
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +2389 -2067
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/_portal/index.js +2 -2
  8. package/lib/cjs/_utils/index.js +3 -1
  9. package/lib/cjs/anchor/index.js +9 -9
  10. package/lib/cjs/anchor/link.js +8 -8
  11. package/lib/cjs/autoComplete/index.js +8 -4
  12. package/lib/cjs/autoComplete/option.js +7 -7
  13. package/lib/cjs/avatar/avatarGroup.js +7 -7
  14. package/lib/cjs/avatar/index.js +12 -12
  15. package/lib/cjs/badge/index.js +8 -8
  16. package/lib/cjs/banner/index.js +12 -12
  17. package/lib/cjs/breadcrumb/index.js +12 -12
  18. package/lib/cjs/breadcrumb/item.js +8 -8
  19. package/lib/cjs/button/Button.js +9 -9
  20. package/lib/cjs/button/buttonGroup.js +5 -5
  21. package/lib/cjs/button/splitButtonGroup.js +1 -1
  22. package/lib/cjs/calendar/dayCalendar.js +13 -13
  23. package/lib/cjs/calendar/dayCol.js +17 -17
  24. package/lib/cjs/calendar/monthCalendar.js +38 -38
  25. package/lib/cjs/calendar/rangeCalendar.js +27 -27
  26. package/lib/cjs/calendar/timeCol.js +6 -6
  27. package/lib/cjs/calendar/weekCalendar.js +27 -27
  28. package/lib/cjs/card/cardGroup.js +2 -2
  29. package/lib/cjs/card/index.js +16 -16
  30. package/lib/cjs/card/meta.js +5 -5
  31. package/lib/cjs/carousel/CarouselArrow.js +6 -6
  32. package/lib/cjs/carousel/CarouselIndicator.js +6 -6
  33. package/lib/cjs/carousel/index.js +12 -12
  34. package/lib/cjs/cascader/index.d.ts +5 -2
  35. package/lib/cjs/cascader/index.js +40 -38
  36. package/lib/cjs/cascader/item.d.ts +15 -1
  37. package/lib/cjs/cascader/item.js +64 -32
  38. package/lib/cjs/checkbox/checkbox.js +14 -14
  39. package/lib/cjs/checkbox/checkboxGroup.js +4 -4
  40. package/lib/cjs/checkbox/checkboxInner.js +6 -6
  41. package/lib/cjs/collapse/item.js +9 -9
  42. package/lib/cjs/collapsible/index.js +3 -3
  43. package/lib/cjs/configProvider/index.js +1 -1
  44. package/lib/cjs/datePicker/dateInput.js +16 -16
  45. package/lib/cjs/datePicker/datePicker.js +9 -9
  46. package/lib/cjs/datePicker/footer.js +1 -1
  47. package/lib/cjs/datePicker/index.js +1 -1
  48. package/lib/cjs/datePicker/month.js +2 -2
  49. package/lib/cjs/datePicker/monthsGrid.js +27 -27
  50. package/lib/cjs/datePicker/navigation.js +1 -1
  51. package/lib/cjs/datePicker/quickControl.js +14 -14
  52. package/lib/cjs/datePicker/yearAndMonth.js +4 -4
  53. package/lib/cjs/descriptions/index.js +3 -3
  54. package/lib/cjs/descriptions/item.js +5 -5
  55. package/lib/cjs/divider/index.js +7 -7
  56. package/lib/cjs/dropdown/dropdownDivider.js +1 -1
  57. package/lib/cjs/dropdown/dropdownItem.js +7 -7
  58. package/lib/cjs/dropdown/dropdownMenu.js +1 -1
  59. package/lib/cjs/dropdown/dropdownTitle.js +2 -2
  60. package/lib/cjs/dropdown/index.js +3 -3
  61. package/lib/cjs/empty/index.js +7 -7
  62. package/lib/cjs/form/arrayField.js +1 -1
  63. package/lib/cjs/form/baseForm.d.ts +3 -1
  64. package/lib/cjs/form/baseForm.js +2 -2
  65. package/lib/cjs/form/errorMessage.js +1 -1
  66. package/lib/cjs/form/field.d.ts +3 -1
  67. package/lib/cjs/form/group.js +2 -2
  68. package/lib/cjs/form/hoc/withField.js +16 -16
  69. package/lib/cjs/form/label.js +9 -9
  70. package/lib/cjs/form/slot.js +5 -5
  71. package/lib/cjs/grid/col.js +11 -11
  72. package/lib/cjs/grid/row.js +4 -4
  73. package/lib/cjs/highlight/index.js +1 -1
  74. package/lib/cjs/iconButton/index.js +5 -5
  75. package/lib/cjs/image/image.js +10 -10
  76. package/lib/cjs/image/preview.js +3 -3
  77. package/lib/cjs/image/previewFooter.js +12 -12
  78. package/lib/cjs/image/previewHeader.js +3 -3
  79. package/lib/cjs/image/previewImage.js +7 -7
  80. package/lib/cjs/image/previewInner.js +7 -7
  81. package/lib/cjs/input/index.js +38 -38
  82. package/lib/cjs/input/inputGroup.js +7 -7
  83. package/lib/cjs/input/textarea.js +14 -14
  84. package/lib/cjs/inputNumber/index.js +11 -11
  85. package/lib/cjs/layout/Sider.d.ts +1 -1
  86. package/lib/cjs/layout/Sider.js +4 -4
  87. package/lib/cjs/layout/index.js +3 -3
  88. package/lib/cjs/list/index.js +11 -11
  89. package/lib/cjs/list/item.js +6 -6
  90. package/lib/cjs/modal/ConfirmModal.js +7 -7
  91. package/lib/cjs/modal/Modal.js +4 -4
  92. package/lib/cjs/modal/ModalContent.js +24 -24
  93. package/lib/cjs/modal/useModal/index.js +1 -1
  94. package/lib/cjs/navigation/CollapseButton.js +1 -1
  95. package/lib/cjs/navigation/Footer.js +2 -2
  96. package/lib/cjs/navigation/Header.js +5 -5
  97. package/lib/cjs/navigation/Item.js +16 -16
  98. package/lib/cjs/navigation/SubNav.js +14 -14
  99. package/lib/cjs/navigation/index.js +8 -8
  100. package/lib/cjs/notification/index.js +3 -3
  101. package/lib/cjs/notification/notice.js +12 -12
  102. package/lib/cjs/overflowList/index.d.ts +1 -1
  103. package/lib/cjs/overflowList/index.js +32 -35
  104. package/lib/cjs/overflowList/intersectionObserver.js +3 -1
  105. package/lib/cjs/pagination/index.js +26 -26
  106. package/lib/cjs/popconfirm/index.js +9 -9
  107. package/lib/cjs/popover/index.js +2 -2
  108. package/lib/cjs/progress/index.js +14 -14
  109. package/lib/cjs/radio/radio.js +22 -22
  110. package/lib/cjs/radio/radioGroup.js +5 -5
  111. package/lib/cjs/radio/radioInner.js +7 -7
  112. package/lib/cjs/rating/index.js +5 -5
  113. package/lib/cjs/rating/item.js +11 -11
  114. package/lib/cjs/scrollList/index.js +5 -5
  115. package/lib/cjs/scrollList/scrollItem.js +13 -13
  116. package/lib/cjs/select/index.d.ts +11 -0
  117. package/lib/cjs/select/index.js +297 -116
  118. package/lib/cjs/select/option.js +7 -7
  119. package/lib/cjs/sideSheet/SideSheetContent.js +10 -10
  120. package/lib/cjs/sideSheet/index.js +7 -7
  121. package/lib/cjs/skeleton/index.js +1 -1
  122. package/lib/cjs/skeleton/item.js +4 -4
  123. package/lib/cjs/slider/index.js +28 -28
  124. package/lib/cjs/space/index.js +12 -12
  125. package/lib/cjs/spin/icon.js +2 -2
  126. package/lib/cjs/spin/index.js +6 -6
  127. package/lib/cjs/steps/basicStep.js +14 -14
  128. package/lib/cjs/steps/basicSteps.js +6 -6
  129. package/lib/cjs/steps/fillStep.js +10 -10
  130. package/lib/cjs/steps/fillSteps.js +4 -4
  131. package/lib/cjs/steps/navStep.js +5 -5
  132. package/lib/cjs/steps/navSteps.js +2 -2
  133. package/lib/cjs/table/Body/BaseRow.js +5 -5
  134. package/lib/cjs/table/Body/ExpandedRow.js +3 -3
  135. package/lib/cjs/table/Body/SectionRow.js +1 -1
  136. package/lib/cjs/table/Body/index.js +8 -8
  137. package/lib/cjs/table/ColGroup.js +2 -2
  138. package/lib/cjs/table/ColumnFilter.js +3 -3
  139. package/lib/cjs/table/ColumnSelection.js +2 -2
  140. package/lib/cjs/table/ColumnSorter.js +7 -7
  141. package/lib/cjs/table/CustomExpandIcon.js +2 -2
  142. package/lib/cjs/table/HeadTable.js +3 -3
  143. package/lib/cjs/table/Table.js +20 -20
  144. package/lib/cjs/table/TableCell.js +8 -8
  145. package/lib/cjs/table/TableHeader.js +1 -1
  146. package/lib/cjs/table/TableHeaderRow.js +8 -8
  147. package/lib/cjs/table/TablePagination.js +3 -3
  148. package/lib/cjs/tabs/TabBar.js +31 -49
  149. package/lib/cjs/tabs/TabItem.d.ts +18 -0
  150. package/lib/cjs/tabs/TabItem.js +95 -0
  151. package/lib/cjs/tabs/TabPane.js +3 -3
  152. package/lib/cjs/tabs/index.d.ts +2 -1
  153. package/lib/cjs/tabs/index.js +5 -2
  154. package/lib/cjs/tag/group.js +5 -5
  155. package/lib/cjs/tag/index.js +13 -13
  156. package/lib/cjs/tagInput/index.js +33 -33
  157. package/lib/cjs/timePicker/Combobox.js +4 -4
  158. package/lib/cjs/timePicker/TimeInput.js +4 -4
  159. package/lib/cjs/timePicker/TimePicker.js +8 -8
  160. package/lib/cjs/timeline/index.js +8 -8
  161. package/lib/cjs/timeline/item.js +7 -7
  162. package/lib/cjs/toast/index.js +5 -5
  163. package/lib/cjs/toast/toast.js +9 -9
  164. package/lib/cjs/tooltip/index.js +7 -7
  165. package/lib/cjs/transfer/index.js +31 -31
  166. package/lib/cjs/tree/autoSizer.js +1 -1
  167. package/lib/cjs/tree/index.js +6 -6
  168. package/lib/cjs/tree/interface.d.ts +1 -0
  169. package/lib/cjs/tree/nodeList.js +1 -1
  170. package/lib/cjs/tree/treeNode.js +26 -26
  171. package/lib/cjs/treeSelect/index.js +41 -41
  172. package/lib/cjs/typography/base.js +14 -14
  173. package/lib/cjs/typography/copyable.js +3 -3
  174. package/lib/cjs/typography/paragraph.js +1 -1
  175. package/lib/cjs/typography/title.d.ts +1 -1
  176. package/lib/cjs/typography/title.js +1 -1
  177. package/lib/cjs/typography/util.js +1 -1
  178. package/lib/cjs/upload/fileCard.js +32 -32
  179. package/lib/cjs/upload/index.js +37 -37
  180. package/lib/es/_portal/index.js +2 -2
  181. package/lib/es/_utils/index.js +3 -1
  182. package/lib/es/anchor/index.js +9 -9
  183. package/lib/es/anchor/link.js +8 -8
  184. package/lib/es/autoComplete/index.js +8 -4
  185. package/lib/es/autoComplete/option.js +7 -7
  186. package/lib/es/avatar/avatarGroup.js +7 -7
  187. package/lib/es/avatar/index.js +12 -12
  188. package/lib/es/badge/index.js +8 -8
  189. package/lib/es/banner/index.js +12 -12
  190. package/lib/es/breadcrumb/index.js +12 -12
  191. package/lib/es/breadcrumb/item.js +8 -8
  192. package/lib/es/button/Button.js +9 -9
  193. package/lib/es/button/buttonGroup.js +5 -5
  194. package/lib/es/button/splitButtonGroup.js +1 -1
  195. package/lib/es/calendar/dayCalendar.js +13 -13
  196. package/lib/es/calendar/dayCol.js +17 -17
  197. package/lib/es/calendar/monthCalendar.js +38 -38
  198. package/lib/es/calendar/rangeCalendar.js +27 -27
  199. package/lib/es/calendar/timeCol.js +6 -6
  200. package/lib/es/calendar/weekCalendar.js +27 -27
  201. package/lib/es/card/cardGroup.js +2 -2
  202. package/lib/es/card/index.js +16 -16
  203. package/lib/es/card/meta.js +5 -5
  204. package/lib/es/carousel/CarouselArrow.js +6 -6
  205. package/lib/es/carousel/CarouselIndicator.js +6 -6
  206. package/lib/es/carousel/index.js +12 -12
  207. package/lib/es/cascader/index.d.ts +5 -2
  208. package/lib/es/cascader/index.js +40 -38
  209. package/lib/es/cascader/item.d.ts +15 -1
  210. package/lib/es/cascader/item.js +64 -32
  211. package/lib/es/checkbox/checkbox.js +14 -14
  212. package/lib/es/checkbox/checkboxGroup.js +4 -4
  213. package/lib/es/checkbox/checkboxInner.js +6 -6
  214. package/lib/es/collapse/item.js +9 -9
  215. package/lib/es/collapsible/index.js +3 -3
  216. package/lib/es/configProvider/index.js +1 -1
  217. package/lib/es/datePicker/dateInput.js +16 -16
  218. package/lib/es/datePicker/datePicker.js +9 -9
  219. package/lib/es/datePicker/footer.js +1 -1
  220. package/lib/es/datePicker/index.js +1 -1
  221. package/lib/es/datePicker/month.js +2 -2
  222. package/lib/es/datePicker/monthsGrid.js +27 -27
  223. package/lib/es/datePicker/navigation.js +1 -1
  224. package/lib/es/datePicker/quickControl.js +14 -14
  225. package/lib/es/datePicker/yearAndMonth.js +4 -4
  226. package/lib/es/descriptions/index.js +3 -3
  227. package/lib/es/descriptions/item.js +5 -5
  228. package/lib/es/divider/index.js +7 -7
  229. package/lib/es/dropdown/dropdownDivider.js +1 -1
  230. package/lib/es/dropdown/dropdownItem.js +7 -7
  231. package/lib/es/dropdown/dropdownMenu.js +1 -1
  232. package/lib/es/dropdown/dropdownTitle.js +2 -2
  233. package/lib/es/dropdown/index.js +3 -3
  234. package/lib/es/empty/index.js +7 -7
  235. package/lib/es/form/arrayField.js +1 -1
  236. package/lib/es/form/baseForm.d.ts +3 -1
  237. package/lib/es/form/baseForm.js +2 -2
  238. package/lib/es/form/errorMessage.js +1 -1
  239. package/lib/es/form/field.d.ts +3 -1
  240. package/lib/es/form/group.js +2 -2
  241. package/lib/es/form/hoc/withField.js +16 -16
  242. package/lib/es/form/label.js +9 -9
  243. package/lib/es/form/slot.js +5 -5
  244. package/lib/es/grid/col.js +11 -11
  245. package/lib/es/grid/row.js +4 -4
  246. package/lib/es/highlight/index.js +1 -1
  247. package/lib/es/iconButton/index.js +5 -5
  248. package/lib/es/image/image.js +10 -10
  249. package/lib/es/image/preview.js +3 -3
  250. package/lib/es/image/previewFooter.js +12 -12
  251. package/lib/es/image/previewHeader.js +3 -3
  252. package/lib/es/image/previewImage.js +7 -7
  253. package/lib/es/image/previewInner.js +7 -7
  254. package/lib/es/input/index.js +38 -38
  255. package/lib/es/input/inputGroup.js +7 -7
  256. package/lib/es/input/textarea.js +14 -14
  257. package/lib/es/inputNumber/index.js +11 -11
  258. package/lib/es/layout/Sider.d.ts +1 -1
  259. package/lib/es/layout/Sider.js +4 -4
  260. package/lib/es/layout/index.js +3 -3
  261. package/lib/es/list/index.js +11 -11
  262. package/lib/es/list/item.js +6 -6
  263. package/lib/es/modal/ConfirmModal.js +7 -7
  264. package/lib/es/modal/Modal.js +4 -4
  265. package/lib/es/modal/ModalContent.js +24 -24
  266. package/lib/es/modal/useModal/index.js +1 -1
  267. package/lib/es/navigation/CollapseButton.js +1 -1
  268. package/lib/es/navigation/Footer.js +2 -2
  269. package/lib/es/navigation/Header.js +5 -5
  270. package/lib/es/navigation/Item.js +16 -16
  271. package/lib/es/navigation/SubNav.js +14 -14
  272. package/lib/es/navigation/index.js +8 -8
  273. package/lib/es/notification/index.js +3 -3
  274. package/lib/es/notification/notice.js +12 -12
  275. package/lib/es/overflowList/index.d.ts +1 -1
  276. package/lib/es/overflowList/index.js +31 -35
  277. package/lib/es/overflowList/intersectionObserver.js +2 -1
  278. package/lib/es/pagination/index.js +26 -26
  279. package/lib/es/popconfirm/index.js +9 -9
  280. package/lib/es/popover/index.js +2 -2
  281. package/lib/es/progress/index.js +14 -14
  282. package/lib/es/radio/radio.js +22 -22
  283. package/lib/es/radio/radioGroup.js +5 -5
  284. package/lib/es/radio/radioInner.js +7 -7
  285. package/lib/es/rating/index.js +5 -5
  286. package/lib/es/rating/item.js +11 -11
  287. package/lib/es/scrollList/index.js +5 -5
  288. package/lib/es/scrollList/scrollItem.js +13 -13
  289. package/lib/es/select/index.d.ts +11 -0
  290. package/lib/es/select/index.js +288 -112
  291. package/lib/es/select/option.js +7 -7
  292. package/lib/es/sideSheet/SideSheetContent.js +10 -10
  293. package/lib/es/sideSheet/index.js +7 -7
  294. package/lib/es/skeleton/index.js +1 -1
  295. package/lib/es/skeleton/item.js +4 -4
  296. package/lib/es/slider/index.js +28 -28
  297. package/lib/es/space/index.js +12 -12
  298. package/lib/es/spin/icon.js +2 -2
  299. package/lib/es/spin/index.js +6 -6
  300. package/lib/es/steps/basicStep.js +14 -14
  301. package/lib/es/steps/basicSteps.js +6 -6
  302. package/lib/es/steps/fillStep.js +10 -10
  303. package/lib/es/steps/fillSteps.js +4 -4
  304. package/lib/es/steps/navStep.js +5 -5
  305. package/lib/es/steps/navSteps.js +2 -2
  306. package/lib/es/table/Body/BaseRow.js +5 -5
  307. package/lib/es/table/Body/ExpandedRow.js +3 -3
  308. package/lib/es/table/Body/SectionRow.js +1 -1
  309. package/lib/es/table/Body/index.js +8 -8
  310. package/lib/es/table/ColGroup.js +2 -2
  311. package/lib/es/table/ColumnFilter.js +3 -3
  312. package/lib/es/table/ColumnSelection.js +2 -2
  313. package/lib/es/table/ColumnSorter.js +7 -7
  314. package/lib/es/table/CustomExpandIcon.js +2 -2
  315. package/lib/es/table/HeadTable.js +3 -3
  316. package/lib/es/table/Table.js +20 -20
  317. package/lib/es/table/TableCell.js +8 -8
  318. package/lib/es/table/TableHeader.js +1 -1
  319. package/lib/es/table/TableHeaderRow.js +8 -8
  320. package/lib/es/table/TablePagination.js +3 -3
  321. package/lib/es/tabs/TabBar.js +30 -50
  322. package/lib/es/tabs/TabItem.d.ts +18 -0
  323. package/lib/es/tabs/TabItem.js +78 -0
  324. package/lib/es/tabs/TabPane.js +3 -3
  325. package/lib/es/tabs/index.d.ts +2 -1
  326. package/lib/es/tabs/index.js +4 -2
  327. package/lib/es/tag/group.js +5 -5
  328. package/lib/es/tag/index.js +13 -13
  329. package/lib/es/tagInput/index.js +33 -33
  330. package/lib/es/timePicker/Combobox.js +4 -4
  331. package/lib/es/timePicker/TimeInput.js +4 -4
  332. package/lib/es/timePicker/TimePicker.js +8 -8
  333. package/lib/es/timeline/index.js +8 -8
  334. package/lib/es/timeline/item.js +7 -7
  335. package/lib/es/toast/index.js +5 -5
  336. package/lib/es/toast/toast.js +9 -9
  337. package/lib/es/tooltip/index.js +7 -7
  338. package/lib/es/transfer/index.js +31 -31
  339. package/lib/es/tree/autoSizer.js +1 -1
  340. package/lib/es/tree/index.js +6 -6
  341. package/lib/es/tree/interface.d.ts +1 -0
  342. package/lib/es/tree/nodeList.js +1 -1
  343. package/lib/es/tree/treeNode.js +26 -26
  344. package/lib/es/treeSelect/index.js +41 -41
  345. package/lib/es/typography/base.js +14 -14
  346. package/lib/es/typography/copyable.js +3 -3
  347. package/lib/es/typography/paragraph.js +1 -1
  348. package/lib/es/typography/title.d.ts +1 -1
  349. package/lib/es/typography/title.js +1 -1
  350. package/lib/es/typography/util.js +1 -1
  351. package/lib/es/upload/fileCard.js +32 -32
  352. package/lib/es/upload/index.js +37 -37
  353. package/package.json +8 -8
@@ -41,7 +41,7 @@ function useModal() {
41
41
  let closeFunc;
42
42
 
43
43
  const modal = /*#__PURE__*/_react.default.createElement(_HookModal.default, {
44
- key: "semi-modal-".concat(uuid),
44
+ key: `semi-modal-${uuid}`,
45
45
  config: withFunc(config),
46
46
  ref: modalRef,
47
47
  afterClose: () => {
@@ -45,7 +45,7 @@ function CollapseButton(_ref) {
45
45
  }
46
46
 
47
47
  return /*#__PURE__*/_react.default.createElement("div", {
48
- className: "".concat(prefixCls, "-collapse-btn")
48
+ className: `${prefixCls}-collapse-btn`
49
49
  }, isCollapsed ? /*#__PURE__*/_react.default.createElement(_tooltip.default, {
50
50
  content: finalCollapseText,
51
51
  position: "right"
@@ -73,8 +73,8 @@ class NavFooter extends _react.PureComponent {
73
73
  children = this.renderCollapseButton();
74
74
  }
75
75
 
76
- const wrapCls = (0, _classnames.default)(className, "".concat(_constants.cssClasses.PREFIX, "-footer"), {
77
- ["".concat(_constants.cssClasses.PREFIX, "-footer-collapsed")]: isCollapsed
76
+ const wrapCls = (0, _classnames.default)(className, `${_constants.cssClasses.PREFIX}-footer`, {
77
+ [`${_constants.cssClasses.PREFIX}-footer-collapsed`]: isCollapsed
78
78
  });
79
79
  return /*#__PURE__*/_react.default.createElement("div", {
80
80
  className: wrapCls,
@@ -48,19 +48,19 @@ class NavHeader extends _react.PureComponent {
48
48
  const {
49
49
  isCollapsed
50
50
  } = this.context;
51
- const wrapCls = (0, _classnames.default)(className, "".concat(_constants.cssClasses.PREFIX, "-header"), {
52
- ["".concat(_constants.cssClasses.PREFIX, "-header-collapsed")]: isCollapsed
51
+ const wrapCls = (0, _classnames.default)(className, `${_constants.cssClasses.PREFIX}-header`, {
52
+ [`${_constants.cssClasses.PREFIX}-header-collapsed`]: isCollapsed
53
53
  });
54
54
 
55
55
  let wrappedChildren = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, logo ? /*#__PURE__*/_react.default.createElement("i", {
56
- className: "".concat(_constants.cssClasses.PREFIX, "-header-logo")
56
+ className: `${_constants.cssClasses.PREFIX}-header-logo`
57
57
  }, this.renderLogo(logo)) : null, !(0, _isNullOrUndefined.default)(text) && !isCollapsed ? /*#__PURE__*/_react.default.createElement("span", {
58
- className: "".concat(_constants.cssClasses.PREFIX, "-header-text")
58
+ className: `${_constants.cssClasses.PREFIX}-header-text`
59
59
  }, text) : null, children);
60
60
 
61
61
  if (typeof link === 'string') {
62
62
  wrappedChildren = /*#__PURE__*/_react.default.createElement("a", Object.assign({
63
- className: "".concat(prefixCls, "-header-link"),
63
+ className: `${prefixCls}-header-link`,
64
64
  href: link
65
65
  }, linkOptions), wrappedChildren);
66
66
  }
@@ -36,7 +36,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
36
36
  /* eslint-disable max-len */
37
37
 
38
38
  /* eslint-disable no-nested-ternary */
39
- const clsPrefix = "".concat(_constants.cssClasses.PREFIX, "-item");
39
+ const clsPrefix = `${_constants.cssClasses.PREFIX}-item`;
40
40
 
41
41
  class NavItem extends _baseComponent.default {
42
42
  constructor(props) {
@@ -143,9 +143,9 @@ class NavItem extends _baseComponent.default {
143
143
  iconSize = 'default';
144
144
  }
145
145
 
146
- const className = (0, _classnames.default)("".concat(clsPrefix, "-icon"), {
147
- ["".concat(clsPrefix, "-icon-toggle-").concat(this.context.toggleIconPosition)]: isToggleIcon,
148
- ["".concat(clsPrefix, "-icon-info")]: !isToggleIcon
146
+ const className = (0, _classnames.default)(`${clsPrefix}-icon`, {
147
+ [`${clsPrefix}-icon-toggle-${this.context.toggleIconPosition}`]: isToggleIcon,
148
+ [`${clsPrefix}-icon-info`]: !isToggleIcon
149
149
  });
150
150
  return /*#__PURE__*/_react.default.createElement("i", {
151
151
  className: className,
@@ -194,13 +194,13 @@ class NavItem extends _baseComponent.default {
194
194
  }
195
195
 
196
196
  itemChildren = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIcon, _constants.strings.ICON_POS_RIGHT, true, 'key-toggle-pos-right'), icon || indent || isInSubNav ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, false, 'key-position-left') : null, !(0, _isNullOrUndefined.default)(text) ? /*#__PURE__*/_react.default.createElement("span", {
197
- className: "".concat(_constants.cssClasses.PREFIX, "-item-text")
197
+ className: `${_constants.cssClasses.PREFIX}-item-text`
198
198
  }, text) : '', this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIcon, _constants.strings.ICON_POS_RIGHT, true, 'key-toggle-pos-right'));
199
199
  }
200
200
 
201
201
  if (typeof link === 'string') {
202
202
  itemChildren = /*#__PURE__*/_react.default.createElement("a", Object.assign({
203
- className: "".concat(prefixCls, "-item-link"),
203
+ className: `${prefixCls}-item-link`,
204
204
  href: link,
205
205
  tabIndex: -1
206
206
  }, linkOptions), itemChildren);
@@ -211,10 +211,10 @@ class NavItem extends _baseComponent.default {
211
211
  if (isInSubNav && (isCollapsed || mode === _constants.strings.MODE_HORIZONTAL)) {
212
212
  const popoverItemCls = (0, _classnames.default)({
213
213
  [clsPrefix]: true,
214
- ["".concat(clsPrefix, "-sub")]: isSubNav,
215
- ["".concat(clsPrefix, "-selected")]: selected,
216
- ["".concat(clsPrefix, "-collapsed")]: isCollapsed,
217
- ["".concat(clsPrefix, "-disabled")]: disabled
214
+ [`${clsPrefix}-sub`]: isSubNav,
215
+ [`${clsPrefix}-selected`]: selected,
216
+ [`${clsPrefix}-collapsed`]: isCollapsed,
217
+ [`${clsPrefix}-disabled`]: disabled
218
218
  });
219
219
  itemDom = /*#__PURE__*/_react.default.createElement(_dropdown.default.Item, {
220
220
  selected: selected,
@@ -229,13 +229,13 @@ class NavItem extends _baseComponent.default {
229
229
  }, itemChildren);
230
230
  } else {
231
231
  // Items are divided into normal and sub-wrap
232
- const popoverItemCls = (0, _classnames.default)("".concat(className || "".concat(clsPrefix, "-normal")), {
232
+ const popoverItemCls = (0, _classnames.default)(`${className || `${clsPrefix}-normal`}`, {
233
233
  [clsPrefix]: true,
234
- ["".concat(clsPrefix, "-sub")]: isSubNav,
235
- ["".concat(clsPrefix, "-selected")]: selected && !isSubNav,
236
- ["".concat(clsPrefix, "-collapsed")]: isCollapsed,
237
- ["".concat(clsPrefix, "-disabled")]: disabled,
238
- ["".concat(clsPrefix, "-has-link")]: typeof link === 'string'
234
+ [`${clsPrefix}-sub`]: isSubNav,
235
+ [`${clsPrefix}-selected`]: selected && !isSubNav,
236
+ [`${clsPrefix}-collapsed`]: isCollapsed,
237
+ [`${clsPrefix}-disabled`]: disabled,
238
+ [`${clsPrefix}-has-link`]: typeof link === 'string'
239
239
  });
240
240
  const ariaProps = {
241
241
  'aria-disabled': disabled
@@ -146,14 +146,14 @@ class SubNav extends _baseComponent.default {
146
146
  iconSize = 'default';
147
147
  }
148
148
 
149
- const className = (0, _classnames.default)("".concat(prefixCls, "-item-icon"), {
150
- ["".concat(prefixCls, "-item-icon-toggle-").concat(this.context.toggleIconPosition)]: isToggleIcon,
151
- ["".concat(prefixCls, "-item-icon-info")]: !isToggleIcon
149
+ const className = (0, _classnames.default)(`${prefixCls}-item-icon`, {
150
+ [`${prefixCls}-item-icon-toggle-${this.context.toggleIconPosition}`]: isToggleIcon,
151
+ [`${prefixCls}-item-icon-info`]: !isToggleIcon
152
152
  });
153
153
  const isOpen = this.adapter.getIsOpen();
154
154
  const iconElem = /*#__PURE__*/_react.default.isValidElement(icon) ? withTransition ? /*#__PURE__*/_react.default.createElement(_cssAnimation.default, {
155
155
  animationState: isOpen ? "enter" : "leave",
156
- startClassName: "".concat(_constants.cssClasses.PREFIX, "-icon-rotate-").concat(isOpen ? "180" : "0")
156
+ startClassName: `${_constants.cssClasses.PREFIX}-icon-rotate-${isOpen ? "180" : "0"}`
157
157
  }, _ref => {
158
158
  let {
159
159
  animationClassName
@@ -191,9 +191,9 @@ class SubNav extends _baseComponent.default {
191
191
  limitIndent
192
192
  } = this.context;
193
193
  const isOpen = this.adapter.getIsOpen();
194
- const titleCls = (0, _classnames.default)("".concat(prefixCls, "-sub-title"), {
195
- ["".concat(prefixCls, "-sub-title-selected")]: this.adapter.getIsSelected(itemKey),
196
- ["".concat(prefixCls, "-sub-title-disabled")]: disabled
194
+ const titleCls = (0, _classnames.default)(`${prefixCls}-sub-title`, {
195
+ [`${prefixCls}-sub-title-selected`]: this.adapter.getIsSelected(itemKey),
196
+ [`${prefixCls}-sub-title-disabled`]: disabled
197
197
  });
198
198
  let withTransition = false;
199
199
  let toggleIconType = '';
@@ -245,9 +245,9 @@ class SubNav extends _baseComponent.default {
245
245
  onKeyPress: this.handleKeyPress,
246
246
  "aria-expanded": isOpen ? 'true' : 'false'
247
247
  }, /*#__PURE__*/_react.default.createElement("div", {
248
- className: "".concat(prefixCls, "-item-inner")
248
+ className: `${prefixCls}-item-inner`
249
249
  }, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== _constants.strings.MODE_HORIZONTAL ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, false, false, 'key-inSubNav-position-left') : null, /*#__PURE__*/_react.default.createElement("span", {
250
- className: "".concat(prefixCls, "-item-text")
250
+ className: `${prefixCls}-item-text`
251
251
  }, text), this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-right')));
252
252
 
253
253
  return titleDiv;
@@ -266,9 +266,9 @@ class SubNav extends _baseComponent.default {
266
266
  } = this.context;
267
267
  const isOpen = this.adapter.getIsOpen();
268
268
  const isHorizontal = mode === _constants.strings.MODE_HORIZONTAL;
269
- const subNavCls = (0, _classnames.default)("".concat(prefixCls, "-sub"), {
270
- ["".concat(prefixCls, "-sub-open")]: isOpen,
271
- ["".concat(prefixCls, "-sub-popover")]: isCollapsed || isHorizontal
269
+ const subNavCls = (0, _classnames.default)(`${prefixCls}-sub`, {
270
+ [`${prefixCls}-sub-open`]: isOpen,
271
+ [`${prefixCls}-sub-popover`]: isCollapsed || isHorizontal
272
272
  });
273
273
 
274
274
  const ulWithMotion = /*#__PURE__*/_react.default.createElement(_collapsible.default, {
@@ -306,7 +306,7 @@ class SubNav extends _baseComponent.default {
306
306
  const isOpen = this.adapter.getIsOpen();
307
307
  const openKeysIsControlled = this.adapter.getOpenKeysIsControlled();
308
308
  const subNavCls = (0, _classnames.default)({
309
- ["".concat(prefixCls, "-popover")]: isCollapsed
309
+ [`${prefixCls}-popover`]: isCollapsed
310
310
  });
311
311
  const dropdownProps = {
312
312
  trigger: 'hover',
@@ -364,7 +364,7 @@ class SubNav extends _baseComponent.default {
364
364
  itemKey: itemKey,
365
365
  forwardRef: this.setItemRef,
366
366
  isCollapsed: isCollapsed,
367
- className: "".concat(prefixCls, "-sub-wrap"),
367
+ className: `${prefixCls}-sub-wrap`,
368
368
  onMouseEnter: onMouseEnter,
369
369
  onMouseLeave: onMouseLeave,
370
370
  disabled: disabled,
@@ -301,12 +301,12 @@ class Nav extends _baseComponent.default {
301
301
  }
302
302
 
303
303
  const finalCls = (0, _classnames.default)(prefixCls, className, {
304
- ["".concat(prefixCls, "-collapsed")]: isCollapsed,
305
- ["".concat(prefixCls, "-horizontal")]: mode === 'horizontal',
306
- ["".concat(prefixCls, "-vertical")]: mode === 'vertical'
304
+ [`${prefixCls}-collapsed`]: isCollapsed,
305
+ [`${prefixCls}-horizontal`]: mode === 'horizontal',
306
+ [`${prefixCls}-vertical`]: mode === 'vertical'
307
307
  });
308
- const headerListOuterCls = (0, _classnames.default)("".concat(prefixCls, "-header-list-outer"), {
309
- ["".concat(prefixCls, "-header-list-outer-collapsed")]: isCollapsed
308
+ const headerListOuterCls = (0, _classnames.default)(`${prefixCls}-header-list-outer`, {
309
+ [`${prefixCls}-header-list-outer-collapsed`]: isCollapsed
310
310
  });
311
311
 
312
312
  if (this.itemsChanged) {
@@ -351,16 +351,16 @@ class Nav extends _baseComponent.default {
351
351
  className: finalCls,
352
352
  style: finalStyle
353
353
  }, /*#__PURE__*/_react.default.createElement("div", {
354
- className: "".concat(prefixCls, "-inner")
354
+ className: `${prefixCls}-inner`
355
355
  }, /*#__PURE__*/_react.default.createElement("div", {
356
356
  className: headerListOuterCls
357
357
  }, headers, /*#__PURE__*/_react.default.createElement("div", {
358
358
  style: bodyStyle,
359
- className: "".concat(prefixCls, "-list-wrapper")
359
+ className: `${prefixCls}-list-wrapper`
360
360
  }, /*#__PURE__*/_react.default.createElement("ul", {
361
361
  role: "menu",
362
362
  "aria-orientation": mode,
363
- className: "".concat(prefixCls, "-list")
363
+ className: `${prefixCls}-list`
364
364
  }, this.adapter.getCache('itemElems'), children))), footers))));
365
365
  }
366
366
 
@@ -78,7 +78,7 @@ class NotificationList extends _baseComponent.default {
78
78
  return /*#__PURE__*/_react.default.createElement(_cssAnimation.default, {
79
79
  key: notice.id,
80
80
  animationState: isRemoved ? "leave" : "enter",
81
- startClassName: "".concat(_constants.cssClasses.NOTICE, "-animation-").concat(isRemoved ? "hide" : "show", "_").concat(position)
81
+ startClassName: `${_constants.cssClasses.NOTICE}-animation-${isRemoved ? "hide" : "show"}_${position}`
82
82
  }, _ref => {
83
83
  let {
84
84
  animationClassName,
@@ -214,7 +214,7 @@ class NotificationList extends _baseComponent.default {
214
214
  static destroyAll() {
215
215
  if (ref) {
216
216
  ref.destroyAll();
217
- const wrapper = document.querySelector("#".concat(this.wrapperId));
217
+ const wrapper = document.querySelector(`#${this.wrapperId}`);
218
218
 
219
219
  _reactDom.default.unmountComponentAtNode(wrapper);
220
220
 
@@ -249,7 +249,7 @@ class NotificationList extends _baseComponent.default {
249
249
  ['top', 'left', 'bottom', 'right'].forEach(pos => {
250
250
  if (pos in noticeInstance) {
251
251
  const val = noticeInstance[pos];
252
- style[pos] = typeof val === 'number' ? "".concat(val, "px") : val;
252
+ style[pos] = typeof val === 'number' ? `${val}px` : val;
253
253
  }
254
254
  });
255
255
  return style;
@@ -118,8 +118,8 @@ class Notice extends _baseComponent.default {
118
118
  };
119
119
  let iconType = iconMap[type];
120
120
  const iconCls = (0, _classnames.default)({
121
- ["".concat(prefixCls, "-icon")]: true,
122
- ["".concat(prefixCls, "-").concat(type)]: true
121
+ [`${prefixCls}-icon`]: true,
122
+ [`${prefixCls}-${type}`]: true
123
123
  });
124
124
 
125
125
  if (icon) {
@@ -161,11 +161,11 @@ class Notice extends _baseComponent.default {
161
161
  visible
162
162
  } = this.state;
163
163
  const wrapper = (0, _classnames.default)(prefixCls, className, {
164
- ["".concat(prefixCls, "-close")]: !visible,
165
- ["".concat(prefixCls, "-icon-show")]: types.includes(type),
166
- ["".concat(prefixCls, "-").concat(type)]: true,
167
- ["".concat(prefixCls, "-").concat(theme)]: theme === 'light',
168
- ["".concat(prefixCls, "-rtl")]: direction === 'rtl'
164
+ [`${prefixCls}-close`]: !visible,
165
+ [`${prefixCls}-icon-show`]: types.includes(type),
166
+ [`${prefixCls}-${type}`]: true,
167
+ [`${prefixCls}-${theme}`]: theme === 'light',
168
+ [`${prefixCls}-rtl`]: direction === 'rtl'
169
169
  });
170
170
  const titleID = (0, _uuid.getUuidShort)({});
171
171
  return (
@@ -182,18 +182,18 @@ class Notice extends _baseComponent.default {
182
182
  onAnimationEnd: this.props.onAnimationEnd,
183
183
  onAnimationStart: this.props.onAnimationStart
184
184
  }, /*#__PURE__*/_react.default.createElement("div", null, this.renderTypeIcon()), /*#__PURE__*/_react.default.createElement("div", {
185
- className: "".concat(prefixCls, "-inner")
185
+ className: `${prefixCls}-inner`
186
186
  }, /*#__PURE__*/_react.default.createElement("div", {
187
- className: "".concat(prefixCls, "-content-wrapper")
187
+ className: `${prefixCls}-content-wrapper`
188
188
  }, title ? /*#__PURE__*/_react.default.createElement("div", {
189
189
  id: titleID,
190
- className: "".concat(prefixCls, "-title"),
190
+ className: `${prefixCls}-title`,
191
191
  "x-semi-prop": "title"
192
192
  }, title) : '', content ? /*#__PURE__*/_react.default.createElement("div", {
193
- className: "".concat(prefixCls, "-content"),
193
+ className: `${prefixCls}-content`,
194
194
  "x-semi-prop": "content"
195
195
  }, content) : ''), showClose && /*#__PURE__*/_react.default.createElement(_iconButton.default, {
196
- className: "".concat(prefixCls, "-icon-close"),
196
+ className: `${prefixCls}-icon-close`,
197
197
  type: "tertiary",
198
198
  icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, null),
199
199
  theme: "borderless",
@@ -83,7 +83,7 @@ declare class OverflowList extends BaseComponent<OverflowListProps, OverflowList
83
83
  reintersect: (entries: Array<IntersectionObserverEntry>) => void;
84
84
  mergeRef: (ref: RefCallback<any> | MutableRefObject<any> | null, node: Element, key: Key) => void;
85
85
  renderOverflow: () => ReactNode | ReactNode[];
86
- getItemKey: (item: any, defalutKey?: Key) => any;
86
+ getItemKey: (item: any, defaultKey?: Key) => any;
87
87
  renderItemList: () => React.DetailedReactHTMLElement<{
88
88
  className: string;
89
89
  style: {
@@ -29,6 +29,8 @@ var _foundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/
29
29
 
30
30
  require("@douyinfe/semi-foundation/lib/cjs/overflowList/overflowList.css");
31
31
 
32
+ var _utils = require("../_utils");
33
+
32
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
35
 
34
36
  /* eslint-disable arrow-body-style */
@@ -85,7 +87,7 @@ class OverflowList extends _baseComponent.default {
85
87
  return this.props.overflowRenderer(overflow);
86
88
  };
87
89
 
88
- this.getItemKey = (item, defalutKey) => {
90
+ this.getItemKey = (item, defaultKey) => {
89
91
  const {
90
92
  itemKey
91
93
  } = this.props;
@@ -94,7 +96,7 @@ class OverflowList extends _baseComponent.default {
94
96
  return itemKey(item);
95
97
  }
96
98
 
97
- return (0, _get2.default)(item, itemKey || 'key', defalutKey);
99
+ return (0, _get2.default)(item, itemKey || 'key', defaultKey);
98
100
  };
99
101
 
100
102
  this.renderItemList = () => {
@@ -130,18 +132,18 @@ class OverflowList extends _baseComponent.default {
130
132
  });
131
133
  }
132
134
  }, /*#__PURE__*/_react.default.createElement("div", {
133
- className: "".concat(prefixCls, "-overflow")
135
+ className: `${prefixCls}-overflow`
134
136
  }, child));
135
137
  }
136
138
  }
137
139
 
138
140
  const inner = renderMode === RenderMode.SCROLL ? [overflow[0], /*#__PURE__*/_react.default.createElement("div", {
139
- className: (0, _classnames.default)(wrapperClassName, "".concat(prefixCls, "-scroll-wrapper")),
141
+ className: (0, _classnames.default)(wrapperClassName, `${prefixCls}-scroll-wrapper`),
140
142
  ref: ref => {
141
143
  this.scroller = ref;
142
144
  },
143
145
  style: Object.assign({}, wrapperStyle),
144
- key: "".concat(prefixCls, "-scroll-wrapper")
146
+ key: `${prefixCls}-scroll-wrapper`
145
147
  }, visible.map(visibleItemRenderer).map(item => {
146
148
  const {
147
149
  forwardRef,
@@ -149,7 +151,7 @@ class OverflowList extends _baseComponent.default {
149
151
  } = item;
150
152
  return /*#__PURE__*/_react.default.cloneElement(item, {
151
153
  ref: node => this.mergeRef(forwardRef, node, key),
152
- 'data-scrollkey': "".concat(key),
154
+ 'data-scrollkey': `${key}`,
153
155
  key
154
156
  });
155
157
  })), overflow[1]] : [collapseFrom === Boundary.START ? overflow : null, visible.map((item, idx) => {
@@ -168,12 +170,12 @@ class OverflowList extends _baseComponent.default {
168
170
  }
169
171
  }, /*#__PURE__*/_react.default.createElement("div", {
170
172
  key: key,
171
- className: "".concat(prefixCls, "-item")
173
+ className: `${prefixCls}-item`
172
174
  }, child));
173
175
  }), collapseFrom === Boundary.END ? overflow : null];
174
176
 
175
177
  const list = /*#__PURE__*/_react.default.createElement('div', {
176
- className: (0, _classnames.default)("".concat(prefixCls), className),
178
+ className: (0, _classnames.default)(`${prefixCls}`, className),
177
179
  style: Object.assign(Object.assign({}, style), renderMode === RenderMode.COLLAPSE ? {
178
180
  maxWidth: '100%',
179
181
  visibility: overflowStatus === "calculating" ? "hidden" : "visible"
@@ -199,10 +201,10 @@ class OverflowList extends _baseComponent.default {
199
201
 
200
202
  const {
201
203
  maxCount
202
- } = this.state; // 已经按照最大值maxCount渲染完毕,触发真正的渲染。(-1 是overflow部分会占1)
203
- // Already rendered maxCount items, trigger the real rendering. (-1 for the overflow part)
204
+ } = this.state; // 已经按照最大值maxCount渲染完毕,触发真正的渲染
205
+ // Already rendered maxCount items, trigger the real rendering
204
206
 
205
- if (this.itemSizeMap.size === maxCount - 1) {
207
+ if (this.itemSizeMap.size === maxCount) {
206
208
  this.setState({
207
209
  overflowStatus: 'calculating'
208
210
  });
@@ -218,7 +220,7 @@ class OverflowList extends _baseComponent.default {
218
220
  visibleState: new Map(),
219
221
  itemSizeMap: new Map(),
220
222
  overflowStatus: "calculating",
221
- pivot: 0,
223
+ pivot: -1,
222
224
  overflowWidth: 0,
223
225
  maxCount: 0
224
226
  };
@@ -243,17 +245,27 @@ class OverflowList extends _baseComponent.default {
243
245
  // reset visible state if the above props change.
244
246
  newState.direction = OverflowDirection.GROW;
245
247
  newState.lastOverflowCount = 0;
248
+ newState.maxCount = 0;
246
249
 
247
250
  if (props.renderMode === RenderMode.SCROLL) {
248
251
  newState.visible = props.items;
249
252
  newState.overflow = [];
250
253
  } else {
251
- newState.visible = [];
252
- newState.overflow = [];
254
+ let maxCount = props.items.length;
255
+
256
+ if (Math.floor(prevState.containerWidth / _constants.numbers.MINIMUM_HTML_ELEMENT_WIDTH) !== 0) {
257
+ maxCount = Math.min(maxCount, Math.floor(prevState.containerWidth / _constants.numbers.MINIMUM_HTML_ELEMENT_WIDTH));
258
+ }
259
+
260
+ const isCollapseFromStart = props.collapseFrom === Boundary.START;
261
+ const visible = isCollapseFromStart ? (0, _utils.cloneDeep)(props.items).reverse().slice(0, maxCount) : props.items.slice(0, maxCount);
262
+ const overflow = isCollapseFromStart ? (0, _utils.cloneDeep)(props.items).reverse().slice(maxCount) : props.items.slice(maxCount);
263
+ newState.visible = visible;
264
+ newState.overflow = overflow;
265
+ newState.maxCount = maxCount;
253
266
  }
254
267
 
255
- newState.pivot = 0;
256
- newState.maxCount = 0;
268
+ newState.pivot = -1;
257
269
  newState.overflowStatus = "calculating";
258
270
  }
259
271
 
@@ -280,6 +292,9 @@ class OverflowList extends _baseComponent.default {
280
292
  componentDidUpdate(prevProps, prevState) {
281
293
  if (!(0, _isEqual2.default)(prevProps.items, this.props.items)) {
282
294
  this.itemRefs = {};
295
+ this.setState({
296
+ visibleState: new Map()
297
+ });
283
298
  }
284
299
 
285
300
  const {
@@ -293,25 +308,7 @@ class OverflowList extends _baseComponent.default {
293
308
  return;
294
309
  }
295
310
 
296
- if (visible.length === 0 && overflow.length === 0 && this.props.items.length !== 0) {
297
- // 推测container最多能渲染的数量
298
- // Figure out the maximum number of items in this container
299
- const maxCount = Math.min(this.props.items.length, Math.floor(containerWidth / _constants.numbers.MINIMUM_HTML_ELEMENT_WIDTH)); // 如果collapseFrom是start, 第一次用来计算容量时,倒转列表顺序渲染
300
- // If collapseFrom === start, render item from end to start. Figuring out how many items in the end could fit in container.
301
-
302
- const isCollapseFromStart = this.props.collapseFrom === Boundary.START;
303
- const visible = isCollapseFromStart ? this.foundation.getReversedItems().slice(0, maxCount) : this.props.items.slice(0, maxCount);
304
- const overflow = isCollapseFromStart ? this.foundation.getReversedItems().slice(maxCount) : this.props.items.slice(maxCount);
305
- this.setState({
306
- overflowStatus: 'calculating',
307
- visible,
308
- overflow,
309
- maxCount: maxCount
310
- });
311
- this.itemSizeMap.clear();
312
- } else {
313
- this.foundation.handleCollapseOverflow();
314
- }
311
+ this.foundation.handleCollapseOverflow();
315
312
  }
316
313
 
317
314
  render() {
@@ -13,6 +13,8 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
+ var _reactUtils = require("../_base/reactUtils");
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  class ReactIntersectionObserver extends _react.default.PureComponent {
@@ -75,7 +77,7 @@ class ReactIntersectionObserver extends _react.default.PureComponent {
75
77
  Object.keys(items).forEach(key => {
76
78
  const node = items[key];
77
79
 
78
- if (!node) {
80
+ if (!(node && (0, _reactUtils.isHTMLElement)(node))) {
79
81
  return;
80
82
  }
81
83