@zohodesk/components 1.0.0-temp-163 → 1.0.0-temp-165

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 (446) hide show
  1. package/README.md +25 -0
  2. package/es/Accordion/Accordion.js +8 -3
  3. package/es/Accordion/AccordionItem.js +5 -2
  4. package/es/Animation/Animation.js +3 -3
  5. package/es/AppContainer/AppContainer.js +27 -10
  6. package/es/AppContainer/AppContainer.module.css +2 -2
  7. package/es/AppContainer/props/defaultProps.js +2 -1
  8. package/es/AppContainer/props/propTypes.js +1 -0
  9. package/es/Avatar/Avatar.js +26 -11
  10. package/es/Avatar/Avatar.module.css +18 -18
  11. package/es/AvatarTeam/AvatarTeam.js +4 -3
  12. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  13. package/es/Button/Button.js +5 -3
  14. package/es/Button/css/Button.module.css +70 -70
  15. package/es/Buttongroup/Buttongroup.js +4 -3
  16. package/es/Buttongroup/Buttongroup.module.css +14 -15
  17. package/es/Card/Card.js +21 -10
  18. package/es/CheckBox/CheckBox.js +5 -3
  19. package/es/CheckBox/CheckBox.module.css +15 -15
  20. package/es/DateTime/CalendarView.js +33 -20
  21. package/es/DateTime/DateTime.js +78 -11
  22. package/es/DateTime/DateTime.module.css +39 -39
  23. package/es/DateTime/DateTimePopupFooter.js +4 -2
  24. package/es/DateTime/DateTimePopupHeader.js +8 -2
  25. package/es/DateTime/DateWidget.js +100 -35
  26. package/es/DateTime/DateWidget.module.css +5 -5
  27. package/es/DateTime/DaysRow.js +4 -2
  28. package/es/DateTime/Time.js +10 -2
  29. package/es/DateTime/YearView.js +28 -4
  30. package/es/DateTime/YearView.module.css +15 -15
  31. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  32. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  33. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  34. package/es/DateTime/common.js +3 -0
  35. package/es/DateTime/constants.js +1 -0
  36. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  37. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  38. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  39. package/es/DateTime/dateFormatUtils/index.js +32 -2
  40. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  41. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  42. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  43. package/es/DateTime/objectUtils.js +14 -20
  44. package/es/DateTime/props/defaultProps.js +2 -1
  45. package/es/DateTime/typeChecker.js +3 -0
  46. package/es/DateTime/validator.js +58 -6
  47. package/es/DropBox/DropBox.js +9 -5
  48. package/es/DropBox/DropBoxElement/DropBoxElement.js +18 -6
  49. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
  50. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +6 -4
  51. package/es/DropBox/DropBoxElement/props/propTypes.js +1 -1
  52. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  53. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  54. package/es/DropBox/css/DropBox.module.css +6 -6
  55. package/es/DropBox/props/defaultProps.js +1 -2
  56. package/es/DropBox/props/propTypes.js +1 -2
  57. package/es/DropDown/DropDown.js +10 -5
  58. package/es/DropDown/DropDown.module.css +2 -2
  59. package/es/DropDown/DropDownHeading.js +5 -5
  60. package/es/DropDown/DropDownHeading.module.css +6 -6
  61. package/es/DropDown/DropDownItem.js +8 -1
  62. package/es/DropDown/DropDownItem.module.css +12 -12
  63. package/es/DropDown/DropDownSearch.js +4 -0
  64. package/es/DropDown/DropDownSearch.module.css +3 -3
  65. package/es/DropDown/DropDownSeparator.js +1 -0
  66. package/es/DropDown/DropDownSeparator.module.css +2 -2
  67. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  68. package/es/Heading/Heading.js +3 -3
  69. package/es/Heading/Heading.module.css +2 -2
  70. package/es/Label/Label.js +10 -5
  71. package/es/Label/Label.module.css +5 -5
  72. package/es/Label/props/propTypes.js +4 -1
  73. package/es/Layout/Box.js +17 -3
  74. package/es/Layout/Container.js +16 -4
  75. package/es/Layout/Layout.module.css +15 -15
  76. package/es/Layout/index.js +1 -2
  77. package/es/Layout/props/defaultProps.js +2 -0
  78. package/es/Layout/props/propTypes.js +2 -0
  79. package/es/Layout/utils.js +5 -1
  80. package/es/ListItem/ListContainer.js +8 -3
  81. package/es/ListItem/ListItem.js +9 -3
  82. package/es/ListItem/ListItem.module.css +38 -38
  83. package/es/ListItem/ListItemWithAvatar.js +9 -3
  84. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  85. package/es/ListItem/ListItemWithIcon.js +8 -3
  86. package/es/ListItem/ListItemWithRadio.js +7 -3
  87. package/es/Modal/Modal.js +28 -11
  88. package/es/MultiSelect/AdvancedGroupMultiSelect.js +90 -13
  89. package/es/MultiSelect/AdvancedMultiSelect.js +33 -9
  90. package/es/MultiSelect/EmptyState.js +6 -0
  91. package/es/MultiSelect/MultiSelect.js +100 -32
  92. package/es/MultiSelect/MultiSelect.module.css +31 -31
  93. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  94. package/es/MultiSelect/MultiSelectWithAvatar.js +13 -6
  95. package/es/MultiSelect/SelectedOptions.js +6 -3
  96. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  97. package/es/MultiSelect/Suggestions.js +7 -3
  98. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  99. package/es/MultiSelect/props/propTypes.js +2 -0
  100. package/es/PopOver/PopOver.js +18 -2
  101. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  102. package/es/Popup/Popup.js +77 -27
  103. package/es/Popup/__tests__/Popup.spec.js +17 -5
  104. package/es/Popup/viewPort.js +16 -4
  105. package/es/Provider/IdProvider.js +10 -5
  106. package/es/Provider/LibraryContext.js +6 -4
  107. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  108. package/es/Provider/ZindexProvider.js +9 -2
  109. package/es/Radio/Radio.js +4 -2
  110. package/es/Radio/Radio.module.css +9 -9
  111. package/es/Responsive/CustomResponsive.js +30 -18
  112. package/es/Responsive/RefWrapper.js +6 -7
  113. package/es/Responsive/ResizeComponent.js +37 -39
  114. package/es/Responsive/ResizeObserver.js +26 -6
  115. package/es/Responsive/Responsive.js +34 -20
  116. package/es/Responsive/index.js +1 -3
  117. package/es/Responsive/sizeObservers.js +28 -7
  118. package/es/Responsive/utils/index.js +7 -5
  119. package/es/Responsive/utils/shallowCompare.js +7 -2
  120. package/es/Responsive/windowResizeObserver.js +7 -0
  121. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  122. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  123. package/es/Ribbon/Ribbon.js +4 -2
  124. package/es/Ribbon/Ribbon.module.css +46 -48
  125. package/es/RippleEffect/RippleEffect.js +1 -3
  126. package/es/Select/GroupSelect.js +59 -14
  127. package/es/Select/Select.js +81 -34
  128. package/es/Select/Select.module.css +23 -23
  129. package/es/Select/SelectWithAvatar.js +19 -4
  130. package/es/Select/SelectWithIcon.js +48 -6
  131. package/es/Select/__tests__/Select.spec.js +6 -8
  132. package/es/Select/props/propTypes.js +1 -0
  133. package/es/Stencils/Stencils.js +3 -3
  134. package/es/Stencils/Stencils.module.css +11 -11
  135. package/es/Switch/Switch.js +6 -3
  136. package/es/Switch/Switch.module.css +23 -23
  137. package/es/Tab/Tab.js +4 -4
  138. package/es/Tab/Tab.module.css +14 -14
  139. package/es/Tab/TabContent.js +1 -0
  140. package/es/Tab/TabContentWrapper.js +2 -0
  141. package/es/Tab/TabWrapper.js +5 -2
  142. package/es/Tab/Tabs.js +63 -28
  143. package/es/Tab/Tabs.module.css +24 -42
  144. package/es/Tab/__tests__/Tab.spec.js +1 -3
  145. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  146. package/es/Tag/Tag.js +7 -3
  147. package/es/Tag/Tag.module.css +25 -25
  148. package/es/TextBox/TextBox.js +16 -3
  149. package/es/TextBox/TextBox.module.css +9 -9
  150. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  151. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  152. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  153. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  154. package/es/Textarea/Textarea.js +13 -3
  155. package/es/Textarea/Textarea.module.css +21 -21
  156. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  157. package/es/Tooltip/Tooltip.js +60 -15
  158. package/es/Tooltip/Tooltip.module.css +5 -5
  159. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  160. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  161. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  162. package/es/common/animation.module.css +8 -8
  163. package/es/common/avatarsizes.module.css +16 -16
  164. package/es/common/basicReset.module.css +3 -3
  165. package/es/common/common.module.css +24 -24
  166. package/es/common/customscroll.module.css +2 -2
  167. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  168. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  169. package/es/semantic/Button/Button.js +4 -2
  170. package/es/semantic/Button/semanticButton.module.css +1 -1
  171. package/es/utils/Common.js +58 -9
  172. package/es/utils/ContextOptimizer.js +4 -5
  173. package/es/utils/__tests__/debounce.spec.js +2 -2
  174. package/es/utils/constructFullName.js +2 -0
  175. package/es/utils/css/compileClassNames.js +5 -0
  176. package/es/utils/css/mergeStyle.js +7 -6
  177. package/es/utils/css/utils.js +1 -0
  178. package/es/utils/datetime/GMTZones.js +48 -0
  179. package/es/utils/datetime/common.js +31 -7
  180. package/es/utils/debounce.js +5 -1
  181. package/es/utils/dropDownUtils.js +68 -11
  182. package/es/utils/getInitial.js +4 -0
  183. package/es/utils/shallowEqual.js +6 -0
  184. package/lib/Accordion/Accordion.js +43 -18
  185. package/lib/Accordion/AccordionItem.js +41 -18
  186. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  187. package/lib/Accordion/index.js +3 -0
  188. package/lib/Accordion/props/propTypes.js +3 -0
  189. package/lib/Animation/Animation.js +38 -18
  190. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  191. package/lib/Animation/props/propTypes.js +3 -0
  192. package/lib/AppContainer/AppContainer.js +66 -26
  193. package/lib/AppContainer/AppContainer.module.css +2 -2
  194. package/lib/AppContainer/props/defaultProps.js +2 -1
  195. package/lib/AppContainer/props/propTypes.js +4 -0
  196. package/lib/Avatar/Avatar.js +81 -38
  197. package/lib/Avatar/Avatar.module.css +18 -18
  198. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  199. package/lib/Avatar/props/propTypes.js +3 -0
  200. package/lib/AvatarTeam/AvatarTeam.js +53 -30
  201. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  202. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  203. package/lib/AvatarTeam/props/propTypes.js +3 -0
  204. package/lib/Button/Button.js +32 -20
  205. package/lib/Button/css/Button.module.css +70 -70
  206. package/lib/Button/css/cssJSLogic.js +18 -17
  207. package/lib/Button/index.js +3 -0
  208. package/lib/Button/props/defaultProps.js +2 -0
  209. package/lib/Button/props/propTypes.js +3 -0
  210. package/lib/Buttongroup/Buttongroup.js +33 -12
  211. package/lib/Buttongroup/Buttongroup.module.css +14 -15
  212. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  213. package/lib/Buttongroup/props/propTypes.js +3 -0
  214. package/lib/Card/Card.js +102 -46
  215. package/lib/Card/__tests__/Card.spec.js +10 -1
  216. package/lib/Card/index.js +4 -0
  217. package/lib/Card/props/propTypes.js +3 -0
  218. package/lib/CheckBox/CheckBox.js +71 -47
  219. package/lib/CheckBox/CheckBox.module.css +15 -15
  220. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  221. package/lib/CheckBox/props/propTypes.js +3 -0
  222. package/lib/DateTime/CalendarView.js +83 -42
  223. package/lib/DateTime/DateTime.js +249 -159
  224. package/lib/DateTime/DateTime.module.css +39 -39
  225. package/lib/DateTime/DateTimePopupFooter.js +31 -8
  226. package/lib/DateTime/DateTimePopupHeader.js +48 -17
  227. package/lib/DateTime/DateWidget.js +354 -250
  228. package/lib/DateTime/DateWidget.module.css +5 -5
  229. package/lib/DateTime/DaysRow.js +27 -5
  230. package/lib/DateTime/Time.js +73 -32
  231. package/lib/DateTime/YearView.js +77 -28
  232. package/lib/DateTime/YearView.module.css +15 -15
  233. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  234. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  235. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  236. package/lib/DateTime/common.js +6 -0
  237. package/lib/DateTime/constants.js +1 -0
  238. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  239. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  240. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  241. package/lib/DateTime/dateFormatUtils/index.js +74 -16
  242. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  243. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  244. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  245. package/lib/DateTime/index.js +2 -0
  246. package/lib/DateTime/objectUtils.js +24 -20
  247. package/lib/DateTime/props/defaultProps.js +2 -1
  248. package/lib/DateTime/props/propTypes.js +11 -1
  249. package/lib/DateTime/typeChecker.js +4 -0
  250. package/lib/DateTime/validator.js +73 -10
  251. package/lib/DropBox/DropBox.js +36 -12
  252. package/lib/DropBox/DropBoxElement/DropBoxElement.js +68 -42
  253. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
  254. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +43 -34
  255. package/lib/DropBox/DropBoxElement/props/propTypes.js +4 -1
  256. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  257. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  258. package/lib/DropBox/css/DropBox.module.css +6 -6
  259. package/lib/DropBox/css/cssJSLogic.js +3 -1
  260. package/lib/DropBox/props/defaultProps.js +8 -4
  261. package/lib/DropBox/props/propTypes.js +10 -4
  262. package/lib/DropDown/DropDown.js +54 -9
  263. package/lib/DropDown/DropDown.module.css +2 -2
  264. package/lib/DropDown/DropDownHeading.js +40 -20
  265. package/lib/DropDown/DropDownHeading.module.css +6 -6
  266. package/lib/DropDown/DropDownItem.js +44 -21
  267. package/lib/DropDown/DropDownItem.module.css +12 -12
  268. package/lib/DropDown/DropDownSearch.js +40 -17
  269. package/lib/DropDown/DropDownSearch.module.css +3 -3
  270. package/lib/DropDown/DropDownSeparator.js +24 -4
  271. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  272. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  273. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  274. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  275. package/lib/DropDown/index.js +9 -0
  276. package/lib/DropDown/props/propTypes.js +6 -4
  277. package/lib/Heading/Heading.js +39 -16
  278. package/lib/Heading/Heading.module.css +2 -2
  279. package/lib/Heading/props/propTypes.js +3 -0
  280. package/lib/Label/Label.js +45 -20
  281. package/lib/Label/Label.module.css +5 -5
  282. package/lib/Label/__tests__/Label.spec.js +14 -1
  283. package/lib/Label/props/propTypes.js +7 -1
  284. package/lib/Layout/Box.js +39 -15
  285. package/lib/Layout/Container.js +37 -14
  286. package/lib/Layout/Layout.module.css +15 -15
  287. package/lib/Layout/__tests__/Box.spec.js +65 -49
  288. package/lib/Layout/__tests__/Container.spec.js +67 -50
  289. package/lib/Layout/index.js +3 -0
  290. package/lib/Layout/props/defaultProps.js +2 -0
  291. package/lib/Layout/props/propTypes.js +5 -0
  292. package/lib/Layout/utils.js +15 -1
  293. package/lib/ListItem/ListContainer.js +48 -27
  294. package/lib/ListItem/ListItem.js +69 -45
  295. package/lib/ListItem/ListItem.module.css +38 -38
  296. package/lib/ListItem/ListItemWithAvatar.js +75 -48
  297. package/lib/ListItem/ListItemWithCheckBox.js +64 -39
  298. package/lib/ListItem/ListItemWithIcon.js +68 -44
  299. package/lib/ListItem/ListItemWithRadio.js +65 -41
  300. package/lib/ListItem/index.js +7 -0
  301. package/lib/ListItem/props/propTypes.js +6 -4
  302. package/lib/Modal/Modal.js +45 -10
  303. package/lib/Modal/props/propTypes.js +3 -0
  304. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +295 -166
  305. package/lib/MultiSelect/AdvancedMultiSelect.js +203 -125
  306. package/lib/MultiSelect/EmptyState.js +49 -24
  307. package/lib/MultiSelect/MultiSelect.js +324 -206
  308. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  309. package/lib/MultiSelect/MultiSelectHeader.js +30 -8
  310. package/lib/MultiSelect/MultiSelectWithAvatar.js +106 -63
  311. package/lib/MultiSelect/SelectedOptions.js +43 -17
  312. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  313. package/lib/MultiSelect/Suggestions.js +64 -32
  314. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  315. package/lib/MultiSelect/index.js +5 -0
  316. package/lib/MultiSelect/props/defaultProps.js +2 -0
  317. package/lib/MultiSelect/props/propTypes.js +5 -0
  318. package/lib/PopOver/PopOver.js +95 -49
  319. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  320. package/lib/PopOver/index.js +4 -0
  321. package/lib/PopOver/props/propTypes.js +3 -0
  322. package/lib/Popup/Popup.js +158 -84
  323. package/lib/Popup/__tests__/Popup.spec.js +43 -8
  324. package/lib/Popup/viewPort.js +28 -14
  325. package/lib/Provider/AvatarSize.js +4 -0
  326. package/lib/Provider/Config.js +2 -0
  327. package/lib/Provider/CssProvider.js +4 -0
  328. package/lib/Provider/IdProvider.js +17 -6
  329. package/lib/Provider/LibraryContext.js +35 -15
  330. package/lib/Provider/LibraryContextInit.js +4 -0
  331. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  332. package/lib/Provider/ZindexProvider.js +15 -3
  333. package/lib/Provider/index.js +5 -0
  334. package/lib/Radio/Radio.js +61 -38
  335. package/lib/Radio/Radio.module.css +9 -9
  336. package/lib/Radio/__tests__/Radiospec.js +9 -5
  337. package/lib/Radio/props/propTypes.js +3 -0
  338. package/lib/Responsive/CustomResponsive.js +73 -29
  339. package/lib/Responsive/RefWrapper.js +17 -11
  340. package/lib/Responsive/ResizeComponent.js +63 -49
  341. package/lib/Responsive/ResizeObserver.js +24 -10
  342. package/lib/Responsive/Responsive.js +80 -30
  343. package/lib/Responsive/index.js +4 -0
  344. package/lib/Responsive/props/propTypes.js +3 -0
  345. package/lib/Responsive/sizeObservers.js +53 -17
  346. package/lib/Responsive/utils/index.js +11 -3
  347. package/lib/Responsive/utils/shallowCompare.js +11 -2
  348. package/lib/Responsive/windowResizeObserver.js +8 -0
  349. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  350. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  351. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  352. package/lib/Ribbon/Ribbon.js +34 -13
  353. package/lib/Ribbon/Ribbon.module.css +46 -48
  354. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  355. package/lib/Ribbon/props/propTypes.js +3 -0
  356. package/lib/RippleEffect/RippleEffect.js +18 -10
  357. package/lib/RippleEffect/props/propTypes.js +3 -0
  358. package/lib/Select/GroupSelect.js +230 -130
  359. package/lib/Select/Select.js +292 -210
  360. package/lib/Select/Select.module.css +23 -23
  361. package/lib/Select/SelectWithAvatar.js +104 -56
  362. package/lib/Select/SelectWithIcon.js +134 -77
  363. package/lib/Select/__tests__/Select.spec.js +133 -91
  364. package/lib/Select/index.js +5 -0
  365. package/lib/Select/props/defaultProps.js +5 -4
  366. package/lib/Select/props/propTypes.js +4 -0
  367. package/lib/Stencils/Stencils.js +29 -10
  368. package/lib/Stencils/Stencils.module.css +11 -11
  369. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  370. package/lib/Stencils/props/propTypes.js +3 -0
  371. package/lib/Switch/Switch.js +58 -34
  372. package/lib/Switch/Switch.module.css +23 -23
  373. package/lib/Switch/props/propTypes.js +3 -0
  374. package/lib/Tab/Tab.js +40 -27
  375. package/lib/Tab/Tab.module.css +14 -14
  376. package/lib/Tab/TabContent.js +12 -5
  377. package/lib/Tab/TabContentWrapper.js +13 -6
  378. package/lib/Tab/TabWrapper.js +37 -19
  379. package/lib/Tab/Tabs.js +191 -121
  380. package/lib/Tab/Tabs.module.css +24 -42
  381. package/lib/Tab/__tests__/Tab.spec.js +67 -58
  382. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  383. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  384. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  385. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  386. package/lib/Tab/index.js +6 -0
  387. package/lib/Tab/props/propTypes.js +3 -0
  388. package/lib/Tag/Tag.js +73 -43
  389. package/lib/Tag/Tag.module.css +25 -25
  390. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  391. package/lib/Tag/props/propTypes.js +3 -0
  392. package/lib/TextBox/TextBox.js +86 -59
  393. package/lib/TextBox/TextBox.module.css +9 -9
  394. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  395. package/lib/TextBox/props/propTypes.js +6 -4
  396. package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
  397. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  398. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  399. package/lib/TextBoxIcon/props/propTypes.js +3 -0
  400. package/lib/Textarea/Textarea.js +55 -29
  401. package/lib/Textarea/Textarea.module.css +21 -21
  402. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  403. package/lib/Textarea/props/propTypes.js +3 -0
  404. package/lib/Tooltip/Tooltip.js +96 -32
  405. package/lib/Tooltip/Tooltip.module.css +5 -5
  406. package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
  407. package/lib/Tooltip/props/propTypes.js +3 -0
  408. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  409. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  410. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  411. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  412. package/lib/VelocityAnimation/index.js +3 -0
  413. package/lib/common/animation.module.css +8 -8
  414. package/lib/common/avatarsizes.module.css +16 -16
  415. package/lib/common/basicReset.module.css +3 -3
  416. package/lib/common/common.module.css +24 -24
  417. package/lib/common/customscroll.module.css +2 -2
  418. package/lib/css.js +40 -0
  419. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  420. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  421. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  422. package/lib/index.js +57 -0
  423. package/lib/semantic/Button/Button.js +43 -22
  424. package/lib/semantic/Button/props/propTypes.js +3 -0
  425. package/lib/semantic/Button/semanticButton.module.css +1 -1
  426. package/lib/semantic/index.js +2 -0
  427. package/lib/utils/Common.js +117 -19
  428. package/lib/utils/ContextOptimizer.js +16 -10
  429. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  430. package/lib/utils/__tests__/debounce.spec.js +3 -2
  431. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  432. package/lib/utils/constructFullName.js +13 -4
  433. package/lib/utils/css/compileClassNames.js +6 -0
  434. package/lib/utils/css/mergeStyle.js +10 -7
  435. package/lib/utils/css/utils.js +8 -0
  436. package/lib/utils/datetime/GMTZones.js +55 -0
  437. package/lib/utils/datetime/common.js +52 -7
  438. package/lib/utils/debounce.js +6 -1
  439. package/lib/utils/dropDownUtils.js +175 -59
  440. package/lib/utils/dummyFunction.js +2 -0
  441. package/lib/utils/getHTMLFontSize.js +1 -0
  442. package/lib/utils/getInitial.js +6 -0
  443. package/lib/utils/index.js +4 -0
  444. package/lib/utils/scrollTo.js +2 -0
  445. package/lib/utils/shallowEqual.js +8 -0
  446. package/package.json +15 -24
package/lib/Tab/Tabs.js CHANGED
@@ -1,47 +1,80 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
9
+
8
10
  var _react = _interopRequireDefault(require("react"));
11
+
9
12
  var _Tab = _interopRequireDefault(require("./Tab"));
13
+
10
14
  var _defaultProps = require("./props/defaultProps");
15
+
11
16
  var _propTypes = require("./props/propTypes");
17
+
12
18
  var _Common = require("../utils/Common");
19
+
13
20
  var _Layout = require("../Layout");
21
+
14
22
  var _ResizeObserver = _interopRequireDefault(require("../Responsive/ResizeObserver"));
23
+
15
24
  var _ListItem = _interopRequireDefault(require("../ListItem/ListItem"));
25
+
16
26
  var _icons = require("@zohodesk/icons");
27
+
17
28
  var _TabsModule = _interopRequireDefault(require("./Tabs.module.css"));
29
+
18
30
  var _Popup = _interopRequireDefault(require("../Popup/Popup"));
31
+
19
32
  var _ResponsiveDropBox = _interopRequireDefault(require("../ResponsiveDropBox/ResponsiveDropBox"));
33
+
20
34
  var _CustomResponsive = require("../Responsive/CustomResponsive");
35
+
21
36
  var _semanticButtonModule = _interopRequireDefault(require("../semantic/Button/semanticButton.module.css"));
37
+
22
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
39
+
23
40
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
+
24
42
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
+
25
44
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
26
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
+
46
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
+
27
48
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
49
+
50
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
51
+
29
52
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
30
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
31
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
53
+
32
54
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
55
+
33
56
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
57
+
34
58
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
59
+
35
60
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
61
+
36
62
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
63
+
37
64
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
65
+
38
66
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
67
+
39
68
  var Tabs = /*#__PURE__*/function (_React$Component) {
40
69
  _inherits(Tabs, _React$Component);
70
+
41
71
  var _super = _createSuper(Tabs);
72
+
42
73
  function Tabs(props) {
43
74
  var _this;
75
+
44
76
  _classCallCheck(this, Tabs);
77
+
45
78
  _this = _super.call(this, props);
46
79
  _this.state = {
47
80
  totalDimension: null,
@@ -50,23 +83,14 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
50
83
  renderVirtualTabs: true,
51
84
  tabKeys: []
52
85
  };
86
+
53
87
  _Common.bind.apply(_assertThisInitialized(_this), ['moreTabSelect', 'onResize', 'onTabResize', 'getHighlightRef', 'getTabsRef', 'getTabRef', 'getHighlightDim', 'onSizeChange', 'onScroll', 'togglePopup', 'setMaxDim']);
54
- var debounce = function debounce(cb) {
55
- var timer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
56
- var timeoutId = null;
57
- return function () {
58
- if (timeoutId) {
59
- clearTimeout(timeoutId);
60
- }
61
- timeoutId = setTimeout(function () {
62
- cb();
63
- }, timer);
64
- };
65
- };
66
- _this.tabsObserver = new _ResizeObserver["default"](debounce(_this.onResize));
88
+
89
+ _this.tabsObserver = new _ResizeObserver["default"](_this.onResize);
67
90
  _this.tabObserver = {};
68
91
  return _this;
69
92
  }
93
+
70
94
  _createClass(Tabs, [{
71
95
  key: "onTabResize",
72
96
  value: function onTabResize(size, target) {
@@ -74,9 +98,11 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
74
98
  var tabDimensions = this.state.tabDimensions;
75
99
  var newDim = Object.assign({}, tabDimensions);
76
100
  var elemDim = (0, _Common.getTotalDimension)(target, align);
101
+
77
102
  if (elemDim !== 0) {
78
103
  newDim[target.dataset.key] = elemDim;
79
104
  }
105
+
80
106
  this.setState({
81
107
  tabDimensions: newDim
82
108
  });
@@ -85,13 +111,15 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
85
111
  key: "componentDidMount",
86
112
  value: function componentDidMount() {
87
113
  var _this2 = this;
114
+
88
115
  var _this$props = this.props,
89
- children = _this$props.children,
90
- childType = _this$props.childType;
116
+ children = _this$props.children,
117
+ childType = _this$props.childType;
91
118
  var totalDimension = this.getTotalDimension();
92
119
  var tabDimensions = this.getTabDimensions();
93
120
  var tabKeys = [];
94
121
  var restrictedKeys = ['state', 'props', 'refs', 'context'];
122
+
95
123
  _react["default"].Children.toArray(children).forEach(function (child) {
96
124
  if (child && child.props.id && child.type === childType) {
97
125
  if (restrictedKeys.includes(child.props.id)) {
@@ -101,6 +129,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
101
129
  }
102
130
  }
103
131
  });
132
+
104
133
  this.setState({
105
134
  totalDimension: totalDimension,
106
135
  tabDimensions: tabDimensions,
@@ -117,10 +146,12 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
117
146
  key: "componentWillUnmount",
118
147
  value: function componentWillUnmount() {
119
148
  var _this3 = this;
149
+
120
150
  if (this.tabsObserver) {
121
151
  this.tabsObserver.disconnect();
122
152
  this.tabsObserver = null;
123
153
  }
154
+
124
155
  if (this.tabObserver) {
125
156
  Object.keys(this.tabObserver).forEach(function (observer) {
126
157
  _this3.tabObserver[observer] && _this3.tabObserver[observer].disconnect();
@@ -132,11 +163,11 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
132
163
  key: "setMaxDim",
133
164
  value: function setMaxDim() {
134
165
  var totalDimension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
135
- var selectedTab = this.props.selectedTab;
136
- // let actual = Object.keys(tabDimensions).reduce(
166
+ var selectedTab = this.props.selectedTab; // let actual = Object.keys(tabDimensions).reduce(
137
167
  // (sum, tab) => sum + (tabDimensions[tab] || 0),
138
168
  // 0
139
169
  // );
170
+
140
171
  if (totalDimension && this[selectedTab]) {
141
172
  var align = this.props.align;
142
173
  var newDim = "".concat((0, _Common.remConvert)(totalDimension), "rem");
@@ -153,29 +184,33 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
153
184
  key: "componentDidUpdate",
154
185
  value: function componentDidUpdate(prevProps) {
155
186
  var _this4 = this;
187
+
156
188
  var _this$props2 = this.props,
157
- children = _this$props2.children,
158
- selectedTab = _this$props2.selectedTab,
159
- childType = _this$props2.childType;
189
+ children = _this$props2.children,
190
+ selectedTab = _this$props2.selectedTab,
191
+ childType = _this$props2.childType;
160
192
  var _this$state = this.state,
161
- tabDimensions = _this$state.tabDimensions,
162
- totalDimension = _this$state.totalDimension,
163
- tabKeys = _this$state.tabKeys;
193
+ tabDimensions = _this$state.tabDimensions,
194
+ totalDimension = _this$state.totalDimension,
195
+ tabKeys = _this$state.tabKeys;
196
+
164
197
  if (prevProps.children && children) {
165
198
  /**
166
199
  * To recalculate the dimensions of tabs we are checking the children length.
167
200
  * and also checking the tab id and their order.
168
201
  */
169
-
170
202
  var newTabKeys = [];
203
+
171
204
  _react["default"].Children.toArray(children).forEach(function (child) {
172
205
  if (child && child.props.id && child.type === childType) {
173
206
  newTabKeys.push(child.props.id);
174
207
  }
175
208
  });
209
+
176
210
  var isSameTabKeys = newTabKeys.every(function (current, index) {
177
211
  return tabKeys[index] === current;
178
212
  });
213
+
179
214
  if (newTabKeys.length !== tabKeys.length || !isSameTabKeys) {
180
215
  this.setState({
181
216
  renderVirtualTabs: true,
@@ -183,6 +218,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
183
218
  }, function () {
184
219
  totalDimension = _this4.getTotalDimension();
185
220
  tabDimensions = _this4.getTabDimensions();
221
+
186
222
  _this4.setState({
187
223
  tabDimensions: tabDimensions,
188
224
  totalDimension: totalDimension,
@@ -190,6 +226,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
190
226
  });
191
227
  });
192
228
  }
229
+
193
230
  if (prevProps.selectedTab !== selectedTab || newTabKeys.length === 1) {
194
231
  this.moveHighlight();
195
232
  }
@@ -199,16 +236,19 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
199
236
  key: "moveHighlight",
200
237
  value: function moveHighlight() {
201
238
  var _this$props3 = this.props,
202
- isAnimate = _this$props3.isAnimate,
203
- needTabBorder = _this$props3.needTabBorder,
204
- selectedTab = _this$props3.selectedTab,
205
- align = _this$props3.align;
239
+ isAnimate = _this$props3.isAnimate,
240
+ needTabBorder = _this$props3.needTabBorder,
241
+ selectedTab = _this$props3.selectedTab,
242
+ align = _this$props3.align;
206
243
  var highlightInitialDimension = this.state.highlightInitialDimension;
207
244
  var node = this.highlight;
245
+
208
246
  if (isAnimate && needTabBorder && node) {
209
247
  var tabActive = this[selectedTab];
248
+
210
249
  if (tabActive) {
211
250
  var position, dimension;
251
+
212
252
  if (align === 'vertical') {
213
253
  position = tabActive.offsetLeft;
214
254
  dimension = tabActive.offsetWidth;
@@ -232,6 +272,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
232
272
  key: "getTabsRef",
233
273
  value: function getTabsRef(ele) {
234
274
  this.tabsEle = ele;
275
+
235
276
  if (ele) {
236
277
  this.tabsObserver.observe(ele);
237
278
  } else {
@@ -242,6 +283,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
242
283
  key: "onSizeChange",
243
284
  value: function onSizeChange() {
244
285
  var _this5 = this;
286
+
245
287
  var totalDimension = this.getTotalDimension();
246
288
  this.setState({
247
289
  totalDimension: totalDimension
@@ -255,15 +297,18 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
255
297
  }, {
256
298
  key: "onResize",
257
299
  value: function onResize(timer) {
300
+ var _this6 = this;
301
+
258
302
  var isResponsive = this.props.isResponsive;
303
+
259
304
  if (this.tabsEle && isResponsive) {
260
- // if (!timer) {
261
- // this.onSizeChange();
262
- // } else {
263
- // setTimeout(() => {
264
- this.onSizeChange();
265
- // }, timer);
266
- // }
305
+ if (!timer) {
306
+ this.onSizeChange();
307
+ } else {
308
+ setTimeout(function () {
309
+ _this6.onSizeChange();
310
+ }, timer);
311
+ }
267
312
  }
268
313
  }
269
314
  }, {
@@ -276,41 +321,47 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
276
321
  }, {
277
322
  key: "getTabDimensions",
278
323
  value: function getTabDimensions() {
279
- var _this6 = this;
324
+ var _this7 = this;
325
+
280
326
  var _this$props4 = this.props,
281
- children = _this$props4.children,
282
- align = _this$props4.align,
283
- childType = _this$props4.childType;
327
+ children = _this$props4.children,
328
+ align = _this$props4.align,
329
+ childType = _this$props4.childType;
284
330
  var tabDimensions = {};
331
+
285
332
  _react["default"].Children.forEach(children, function (child) {
286
- return /*#__PURE__*/_react["default"].isValidElement(child) && child.type === childType && _this6[child.props.id] && Object.assign(tabDimensions, _defineProperty({}, child.props.id, _this6[child.props.id] && (0, _Common.getTotalDimension)(_this6[child.props.id], align)));
333
+ return /*#__PURE__*/_react["default"].isValidElement(child) && child.type === childType && _this7[child.props.id] && Object.assign(tabDimensions, _defineProperty({}, child.props.id, _this7[child.props.id] && (0, _Common.getTotalDimension)(_this7[child.props.id], align)));
287
334
  });
335
+
288
336
  return tabDimensions;
289
337
  }
290
338
  }, {
291
339
  key: "responsiveTab",
292
340
  value: function responsiveTab(totalDimension, tabDimensions) {
293
341
  var _this$props5 = this.props,
294
- children = _this$props5.children,
295
- maxTabsCount = _this$props5.maxTabsCount,
296
- minTabsCount = _this$props5.minTabsCount,
297
- isResponsive = _this$props5.isResponsive;
342
+ children = _this$props5.children,
343
+ maxTabsCount = _this$props5.maxTabsCount,
344
+ minTabsCount = _this$props5.minTabsCount,
345
+ isResponsive = _this$props5.isResponsive;
298
346
  var mainTabs = [],
299
- moreTabs = [],
300
- otherTabs = [];
347
+ moreTabs = [],
348
+ otherTabs = [];
349
+
301
350
  if (totalDimension && isResponsive) {
302
351
  var _this$props6 = this.props,
303
- childType = _this$props6.childType,
304
- selectedTab = _this$props6.selectedTab;
352
+ childType = _this$props6.childType,
353
+ selectedTab = _this$props6.selectedTab;
305
354
  var selectedTabDimension = tabDimensions[selectedTab] || 0;
306
355
  var remainingDimension = totalDimension - selectedTabDimension;
307
356
  var maxTabsTobeVisible = maxTabsCount - 1;
308
357
  var minTabsToBeVisible = 1;
358
+
309
359
  _react["default"].Children.forEach(children, function (child) {
310
360
  if (child && child.type === childType && child.props.id) {
311
361
  var elemDimension = tabDimensions[child.props.id];
312
362
  var isMaxCountExceeded = maxTabsTobeVisible <= 0 ? true : false;
313
363
  var isMinCountNotExceeded = minTabsToBeVisible < minTabsCount ? true : false;
364
+
314
365
  if (child.props.id === selectedTab) {
315
366
  mainTabs.push(child);
316
367
  } else if (isMinCountNotExceeded) {
@@ -329,6 +380,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
329
380
  otherTabs.push(child);
330
381
  }
331
382
  });
383
+
332
384
  if (selectedTabDimension > totalDimension) {
333
385
  /* let { align } = this.props;
334
386
  let newDim = `${remConvert(totalDimension)}rem`;
@@ -343,6 +395,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
343
395
  }
344
396
  } else if (!isResponsive) {
345
397
  var _childType = this.props.childType;
398
+
346
399
  _react["default"].Children.forEach(children, function (child) {
347
400
  if (child && child.type === _childType && child.props.id) {
348
401
  mainTabs.push(child);
@@ -353,6 +406,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
353
406
  } else {
354
407
  moreTabs = children;
355
408
  }
409
+
356
410
  return {
357
411
  mainTabs: mainTabs,
358
412
  moreTabs: moreTabs,
@@ -364,6 +418,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
364
418
  value: function getTabRef(refName, ele, isVirtual) {
365
419
  this[refName] = ele;
366
420
  var key = isVirtual ? "virtual_".concat(refName) : refName;
421
+
367
422
  if (ele) {
368
423
  this.tabObserver[key] = new _ResizeObserver["default"](this.onTabResize);
369
424
  this.tabObserver[key].observe(ele);
@@ -377,10 +432,12 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
377
432
  key: "moreTabSelect",
378
433
  value: function moreTabSelect(tab, value, index, e) {
379
434
  var onSelect = this.props.onSelect;
435
+
380
436
  if (e && e.target && e.target.parentElement.tagName === 'A' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {
381
437
  (0, _Common.cancelBubblingEffect)(e);
382
438
  return;
383
439
  }
440
+
384
441
  e.preventDefault();
385
442
  onSelect(tab);
386
443
  }
@@ -395,10 +452,10 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
395
452
  key: "togglePopup",
396
453
  value: function togglePopup(e) {
397
454
  var _this$props7 = this.props,
398
- boxPosition = _this$props7.boxPosition,
399
- togglePopup = _this$props7.togglePopup,
400
- align = _this$props7.align,
401
- removeClose = _this$props7.removeClose;
455
+ boxPosition = _this$props7.boxPosition,
456
+ togglePopup = _this$props7.togglePopup,
457
+ align = _this$props7.align,
458
+ removeClose = _this$props7.removeClose;
402
459
  removeClose && removeClose(e);
403
460
  var popupPosition = align === 'vertical' ? 'bottomLeft' : 'rightTop';
404
461
  boxPosition = boxPosition ? boxPosition : popupPosition;
@@ -417,57 +474,62 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
417
474
  }, {
418
475
  key: "renderTabs",
419
476
  value: function renderTabs(mainTabs, moreTabs, isVirtual) {
420
- var _this7 = this;
477
+ var _this8 = this;
478
+
421
479
  var _this$props8 = this.props,
422
- selectedTab = _this$props8.selectedTab,
423
- moreButtonClass = _this$props8.moreButtonClass,
424
- moreButtonActiveClass = _this$props8.moreButtonActiveClass,
425
- moreBoxClass = _this$props8.moreBoxClass,
426
- menuItemClass = _this$props8.menuItemClass,
427
- itemClass = _this$props8.itemClass,
428
- itemActiveClass = _this$props8.itemActiveClass,
429
- iconName = _this$props8.iconName,
430
- isPopupReady = _this$props8.isPopupReady,
431
- isPopupOpen = _this$props8.isPopupOpen,
432
- getContainerRef = _this$props8.getContainerRef,
433
- showTitleInMoreOptions = _this$props8.showTitleInMoreOptions,
434
- onSelect = _this$props8.onSelect,
435
- moreContainerClass = _this$props8.moreContainerClass,
436
- align = _this$props8.align,
437
- type = _this$props8.type,
438
- isAnimate = _this$props8.isAnimate,
439
- needTabBorder = _this$props8.needTabBorder,
440
- needAppearance = _this$props8.needAppearance,
441
- iconSize = _this$props8.iconSize,
442
- getTargetRef = _this$props8.getTargetRef,
443
- position = _this$props8.position,
444
- customProps = _this$props8.customProps,
445
- getCustomDropBoxHeaderPlaceHolder = _this$props8.getCustomDropBoxHeaderPlaceHolder,
446
- dataSelectorId = _this$props8.dataSelectorId;
480
+ selectedTab = _this$props8.selectedTab,
481
+ moreButtonClass = _this$props8.moreButtonClass,
482
+ moreButtonActiveClass = _this$props8.moreButtonActiveClass,
483
+ moreBoxClass = _this$props8.moreBoxClass,
484
+ menuItemClass = _this$props8.menuItemClass,
485
+ itemClass = _this$props8.itemClass,
486
+ itemActiveClass = _this$props8.itemActiveClass,
487
+ iconName = _this$props8.iconName,
488
+ isPopupReady = _this$props8.isPopupReady,
489
+ isPopupOpen = _this$props8.isPopupOpen,
490
+ getContainerRef = _this$props8.getContainerRef,
491
+ showTitleInMoreOptions = _this$props8.showTitleInMoreOptions,
492
+ onSelect = _this$props8.onSelect,
493
+ moreContainerClass = _this$props8.moreContainerClass,
494
+ align = _this$props8.align,
495
+ type = _this$props8.type,
496
+ isAnimate = _this$props8.isAnimate,
497
+ needTabBorder = _this$props8.needTabBorder,
498
+ needAppearance = _this$props8.needAppearance,
499
+ iconSize = _this$props8.iconSize,
500
+ getTargetRef = _this$props8.getTargetRef,
501
+ position = _this$props8.position,
502
+ customProps = _this$props8.customProps,
503
+ getCustomDropBoxHeaderPlaceHolder = _this$props8.getCustomDropBoxHeaderPlaceHolder,
504
+ dataSelectorId = _this$props8.dataSelectorId;
447
505
  var _customProps$DropBoxP = customProps.DropBoxProps,
448
- DropBoxProps = _customProps$DropBoxP === void 0 ? {} : _customProps$DropBoxP,
449
- _customProps$ListItem = customProps.ListItemProps,
450
- ListItemProps = _customProps$ListItem === void 0 ? {} : _customProps$ListItem,
451
- _customProps$MoreButt = customProps.MoreButtonProps,
452
- MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt;
506
+ DropBoxProps = _customProps$DropBoxP === void 0 ? {} : _customProps$DropBoxP,
507
+ _customProps$ListItem = customProps.ListItemProps,
508
+ ListItemProps = _customProps$ListItem === void 0 ? {} : _customProps$ListItem,
509
+ _customProps$MoreButt = customProps.MoreButtonProps,
510
+ MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt;
453
511
  var popupClass = align === 'vertical' ? _TabsModule["default"][position] ? _TabsModule["default"][position] : '' : '';
454
512
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(mainTabs, function (child) {
455
513
  if (!child) {
456
514
  return null;
457
515
  }
516
+
458
517
  var MainTab = child.type;
459
518
  var classProps = {};
519
+
460
520
  if (itemActiveClass) {
461
521
  classProps.activeClass = itemActiveClass;
462
522
  }
523
+
463
524
  if (itemClass) {
464
525
  classProps.className = itemClass;
465
526
  }
527
+
466
528
  return /*#__PURE__*/_react["default"].isValidElement(child) && /*#__PURE__*/_react["default"].createElement(MainTab, _extends({}, child.props, {
467
529
  key: child.props.id,
468
- getTabRef: _this7.getTabRef,
530
+ getTabRef: _this8.getTabRef,
469
531
  onSelect: onSelect,
470
- recalculateDimension: _this7.recalculateDimension,
532
+ recalculateDimension: _this8.recalculateDimension,
471
533
  isActive: child.props.id === selectedTab,
472
534
  type: type,
473
535
  isAnimate: isAnimate,
@@ -511,30 +573,31 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
511
573
  }, DropBoxProps, {
512
574
  isResponsivePadding: true,
513
575
  needFocusScope: true,
514
- onClose: _this7.togglePopup
515
- }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(_this7.props), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
576
+ onClose: _this8.togglePopup
577
+ }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(_this8.props), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
516
578
  flexible: true,
517
579
  shrink: true,
518
580
  scroll: "vertical",
519
581
  className: "".concat(tabletMode ? '' : _TabsModule["default"].menuBox, " ").concat(moreBoxClass),
520
- onScroll: _this7.onScroll
582
+ onScroll: _this8.onScroll
521
583
  }, _react["default"].Children.map(moreTabs, function (child) {
522
584
  if (!child) {
523
585
  return null;
524
586
  }
587
+
525
588
  var _child$props = child.props,
526
- text = _child$props.text,
527
- id = _child$props.id,
528
- title = _child$props.title,
529
- isLink = _child$props.isLink,
530
- href = _child$props.href,
531
- children = _child$props.children,
532
- dataId = _child$props.dataId;
589
+ text = _child$props.text,
590
+ id = _child$props.id,
591
+ title = _child$props.title,
592
+ isLink = _child$props.isLink,
593
+ href = _child$props.href,
594
+ children = _child$props.children,
595
+ dataId = _child$props.dataId;
533
596
  var value = text ? text : showTitleInMoreOptions ? title : null;
534
597
  return /*#__PURE__*/_react["default"].isValidElement(child) && /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
535
598
  key: id,
536
599
  value: value,
537
- onClick: _this7.moreTabSelect,
600
+ onClick: _this8.moreTabSelect,
538
601
  id: id,
539
602
  title: title || text,
540
603
  isLink: isLink,
@@ -553,28 +616,30 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
553
616
  key: "render",
554
617
  value: function render() {
555
618
  var _this$props9 = this.props,
556
- style = _this$props9.style,
557
- className = _this$props9.className,
558
- dataId = _this$props9.dataId,
559
- highlightClass = _this$props9.highlightClass,
560
- type = _this$props9.type,
561
- isAnimate = _this$props9.isAnimate,
562
- needTabBorder = _this$props9.needTabBorder,
563
- needBorder = _this$props9.needBorder,
564
- needPadding = _this$props9.needPadding,
565
- align = _this$props9.align,
566
- needAppearance = _this$props9.needAppearance,
567
- children = _this$props9.children,
568
- containerClass = _this$props9.containerClass,
569
- dataSelectorId = _this$props9.dataSelectorId;
619
+ style = _this$props9.style,
620
+ className = _this$props9.className,
621
+ dataId = _this$props9.dataId,
622
+ highlightClass = _this$props9.highlightClass,
623
+ type = _this$props9.type,
624
+ isAnimate = _this$props9.isAnimate,
625
+ needTabBorder = _this$props9.needTabBorder,
626
+ needBorder = _this$props9.needBorder,
627
+ needPadding = _this$props9.needPadding,
628
+ align = _this$props9.align,
629
+ needAppearance = _this$props9.needAppearance,
630
+ children = _this$props9.children,
631
+ containerClass = _this$props9.containerClass,
632
+ dataSelectorId = _this$props9.dataSelectorId;
570
633
  var _this$state2 = this.state,
571
- totalDimension = _this$state2.totalDimension,
572
- tabDimensions = _this$state2.tabDimensions,
573
- renderVirtualTabs = _this$state2.renderVirtualTabs;
634
+ totalDimension = _this$state2.totalDimension,
635
+ tabDimensions = _this$state2.tabDimensions,
636
+ renderVirtualTabs = _this$state2.renderVirtualTabs;
637
+
574
638
  var _this$responsiveTab = this.responsiveTab(totalDimension, tabDimensions),
575
- mainTabs = _this$responsiveTab.mainTabs,
576
- moreTabs = _this$responsiveTab.moreTabs,
577
- otherTabs = _this$responsiveTab.otherTabs;
639
+ mainTabs = _this$responsiveTab.mainTabs,
640
+ moreTabs = _this$responsiveTab.moreTabs,
641
+ otherTabs = _this$responsiveTab.otherTabs;
642
+
578
643
  var appearanceClass = (0, _Common.cs)([_TabsModule["default"][type], needBorder && _TabsModule["default"]["".concat(type, "_border")], needPadding && _TabsModule["default"]["".concat(type, "_padding")]]);
579
644
  var tabsClass = (0, _Common.cs)([_TabsModule["default"].tab, className, needAppearance && appearanceClass]);
580
645
  var hlClass = (0, _Common.cs)([_TabsModule["default"].highlight, highlightClass, isAnimate && _TabsModule["default"].lineAnimate]);
@@ -596,15 +661,20 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
596
661
  }, this.renderTabs(mainTabs, moreTabs, false))), otherTabs.length ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/_react["default"].createElement("div", {
597
662
  className: hlClass,
598
663
  ref: this.getHighlightRef,
599
- "data-id": dataId
664
+ "data-id": dataId,
665
+ "data-test-id": dataId
600
666
  })));
601
667
  }
602
668
  }]);
669
+
603
670
  return Tabs;
604
671
  }(_react["default"].Component);
672
+
605
673
  Tabs.propTypes = _propTypes.Tabs_propTypes;
606
674
  Tabs.defaultProps = _objectSpread(_objectSpread({}, _defaultProps.Tabs_defaultProps), {}, {
607
675
  childType: _Tab["default"]
608
676
  });
677
+
609
678
  var _default = (0, _Popup["default"])(Tabs);
679
+
610
680
  exports["default"] = _default;