@zohodesk/components 1.0.0-temp-164 → 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 (560) hide show
  1. package/README.md +1237 -1212
  2. package/assets/Appearance/dark/mode/{Component_DarkMode.module.css → darkMode.module.css} +4 -4
  3. package/assets/Appearance/dark/themes/blue/{blue_CTA_DarkModifyCategory.module.css → blueDarkCTAModifyCategory.module.css} +1 -1
  4. package/assets/Appearance/dark/themes/blue/{blue_CTA_DarkTheme.module.css → blueDarkCTATheme.module.css} +2 -3
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +45 -0
  6. package/assets/Appearance/dark/themes/green/{green_CTA_DarkTheme.module.css → greenDarkCTATheme.module.css} +1 -2
  7. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +45 -0
  8. package/assets/Appearance/dark/themes/orange/{orange_CTA_DarkTheme.module.css → orangeDarkCTATheme.module.css} +1 -2
  9. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +45 -0
  10. package/assets/Appearance/dark/themes/red/{red_CTA_DarkTheme.module.css → redDarkCTATheme.module.css} +1 -2
  11. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +45 -0
  12. package/assets/Appearance/dark/themes/yellow/{yellow_CTA_DarkTheme.module.css → yellowDarkCTATheme.module.css} +1 -2
  13. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +45 -0
  14. package/assets/Appearance/{light/mode/Component_LightMode.module.css → default/mode/defaultMode.module.css} +155 -155
  15. package/assets/Appearance/{light/themes/blue/blue_CTA_LightModifyCategory.module.css → default/themes/blue/blueDefaultCTAModifyCategory.module.css} +451 -451
  16. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +34 -0
  17. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +45 -0
  18. package/assets/Appearance/{light/themes/green/green_CTA_LightModifyCategory.module.css → default/themes/green/greenDefaultCTAModifyCategory.module.css} +451 -451
  19. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +34 -0
  20. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +45 -0
  21. package/assets/Appearance/{light/themes/orange/orange_CTA_LightModifyCategory.module.css → default/themes/orange/orangeDefaultCTAModifyCategory.module.css} +451 -451
  22. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +34 -0
  23. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +45 -0
  24. package/assets/Appearance/{light/themes/red/red_CTA_LightModifyCategory.module.css → default/themes/red/redDefaultCTAModifyCategory.module.css} +451 -451
  25. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +34 -0
  26. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +45 -0
  27. package/assets/Appearance/{light/themes/yellow/yellow_CTA_LightModifyCategory.module.css → default/themes/yellow/yellowDefaultCTAModifyCategory.module.css} +451 -451
  28. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +34 -0
  29. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +45 -0
  30. package/assets/Appearance/pureDark/mode/{Component_PureDarkMode.module.css → pureDarkMode.module.css} +3 -3
  31. package/assets/Appearance/pureDark/themes/blue/{blue_CTA_PureDarkModifyCategory.module.css → bluePureDarkCTAModifyCategory.module.css} +1 -1
  32. package/assets/Appearance/pureDark/themes/blue/{blue_CTA_PureDarkTheme.module.css → bluePureDarkCTATheme.module.css} +2 -3
  33. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +45 -0
  34. package/assets/Appearance/pureDark/themes/green/{green_CTA_PureDarkTheme.module.css → greenPureDarkCTATheme.module.css} +1 -2
  35. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +45 -0
  36. package/assets/Appearance/pureDark/themes/orange/{orange_CTA_PureDarkTheme.module.css → orangePureDarkCTATheme.module.css} +1 -2
  37. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +45 -0
  38. package/assets/Appearance/pureDark/themes/red/{red_CTA_PureDarkTheme.module.css → redPureDarkCTATheme.module.css} +1 -2
  39. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +45 -0
  40. package/assets/Appearance/pureDark/themes/yellow/{yellow_CTA_PureDarkTheme.module.css → yellowPureDarkCTATheme.module.css} +1 -2
  41. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +45 -0
  42. package/assets/Contrast/defaultContrastLightness.module.css +39 -0
  43. package/es/Accordion/Accordion.js +8 -3
  44. package/es/Accordion/AccordionItem.js +5 -2
  45. package/es/Animation/Animation.js +3 -3
  46. package/es/AppContainer/AppContainer.js +27 -10
  47. package/es/AppContainer/AppContainer.module.css +18 -18
  48. package/es/AppContainer/props/defaultProps.js +2 -1
  49. package/es/AppContainer/props/propTypes.js +1 -0
  50. package/es/Avatar/Avatar.js +35 -20
  51. package/es/Avatar/Avatar.module.css +175 -175
  52. package/es/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -288
  53. package/es/AvatarTeam/AvatarTeam.js +11 -10
  54. package/es/AvatarTeam/AvatarTeam.module.css +189 -189
  55. package/es/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -226
  56. package/es/Button/Button.js +9 -7
  57. package/es/Button/css/Button.module.css +525 -525
  58. package/es/Buttongroup/Buttongroup.js +5 -4
  59. package/es/Buttongroup/Buttongroup.module.css +105 -106
  60. package/es/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -146
  61. package/es/Card/Card.js +25 -14
  62. package/es/Card/Card.module.css +20 -20
  63. package/es/CheckBox/CheckBox.js +5 -3
  64. package/es/CheckBox/CheckBox.module.css +157 -157
  65. package/es/DateTime/CalendarView.js +33 -20
  66. package/es/DateTime/DateTime.js +78 -11
  67. package/es/DateTime/DateTime.module.css +235 -235
  68. package/es/DateTime/DateTimePopupFooter.js +4 -2
  69. package/es/DateTime/DateTimePopupHeader.js +8 -2
  70. package/es/DateTime/DateWidget.js +100 -35
  71. package/es/DateTime/DateWidget.module.css +38 -38
  72. package/es/DateTime/DaysRow.js +4 -2
  73. package/es/DateTime/Time.js +10 -2
  74. package/es/DateTime/YearView.js +28 -4
  75. package/es/DateTime/YearView.module.css +98 -98
  76. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  77. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  78. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  79. package/es/DateTime/common.js +3 -0
  80. package/es/DateTime/constants.js +1 -0
  81. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  82. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  83. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  84. package/es/DateTime/dateFormatUtils/index.js +32 -2
  85. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  86. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  87. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  88. package/es/DateTime/index.js +0 -0
  89. package/es/DateTime/objectUtils.js +14 -20
  90. package/es/DateTime/props/defaultProps.js +2 -1
  91. package/es/DateTime/typeChecker.js +3 -0
  92. package/es/DateTime/validator.js +58 -6
  93. package/es/DropBox/DropBox.js +9 -5
  94. package/es/DropBox/DropBoxElement/DropBoxElement.js +18 -6
  95. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +434 -428
  96. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +6 -4
  97. package/es/DropBox/DropBoxElement/props/propTypes.js +1 -1
  98. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  99. package/es/DropBox/DropBoxPositionMapping.json +144 -144
  100. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  101. package/es/DropBox/css/DropBox.module.css +58 -58
  102. package/es/DropBox/props/defaultProps.js +1 -2
  103. package/es/DropBox/props/propTypes.js +1 -2
  104. package/es/DropDown/DropDown.js +10 -5
  105. package/es/DropDown/DropDown.module.css +5 -5
  106. package/es/DropDown/DropDownHeading.js +5 -5
  107. package/es/DropDown/DropDownHeading.module.css +53 -53
  108. package/es/DropDown/DropDownItem.js +8 -1
  109. package/es/DropDown/DropDownItem.module.css +94 -94
  110. package/es/DropDown/DropDownSearch.js +4 -0
  111. package/es/DropDown/DropDownSearch.module.css +14 -14
  112. package/es/DropDown/DropDownSeparator.js +1 -0
  113. package/es/DropDown/DropDownSeparator.module.css +7 -7
  114. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  115. package/es/Heading/Heading.js +3 -3
  116. package/es/Heading/Heading.module.css +4 -4
  117. package/es/Label/Label.js +12 -7
  118. package/es/Label/Label.module.css +52 -52
  119. package/es/Label/LabelColors.module.css +20 -20
  120. package/es/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -101
  121. package/es/Label/props/propTypes.js +4 -1
  122. package/es/Layout/Box.js +17 -3
  123. package/es/Layout/Container.js +16 -4
  124. package/es/Layout/Layout.module.css +335 -335
  125. package/es/Layout/index.js +1 -2
  126. package/es/Layout/props/defaultProps.js +2 -0
  127. package/es/Layout/props/propTypes.js +2 -0
  128. package/es/Layout/utils.js +5 -1
  129. package/es/ListItem/ListContainer.js +8 -3
  130. package/es/ListItem/ListItem.js +9 -3
  131. package/es/ListItem/ListItem.module.css +216 -216
  132. package/es/ListItem/ListItemWithAvatar.js +9 -3
  133. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  134. package/es/ListItem/ListItemWithIcon.js +8 -3
  135. package/es/ListItem/ListItemWithRadio.js +7 -3
  136. package/es/Modal/Modal.js +28 -11
  137. package/es/MultiSelect/AdvancedGroupMultiSelect.js +95 -18
  138. package/es/MultiSelect/AdvancedMultiSelect.js +33 -9
  139. package/es/MultiSelect/EmptyState.js +6 -0
  140. package/es/MultiSelect/MultiSelect.js +105 -37
  141. package/es/MultiSelect/MultiSelect.module.css +206 -206
  142. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  143. package/es/MultiSelect/MultiSelectWithAvatar.js +13 -6
  144. package/es/MultiSelect/SelectedOptions.js +6 -3
  145. package/es/MultiSelect/SelectedOptions.module.css +15 -15
  146. package/es/MultiSelect/Suggestions.js +7 -3
  147. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  148. package/es/MultiSelect/props/propTypes.js +2 -0
  149. package/es/PopOver/PopOver.js +18 -2
  150. package/es/PopOver/PopOver.module.css +8 -8
  151. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  152. package/es/Popup/Popup.js +77 -27
  153. package/es/Popup/PositionMapping.json +73 -73
  154. package/es/Popup/__tests__/Popup.spec.js +17 -5
  155. package/es/Popup/viewPort.js +16 -4
  156. package/es/Provider/IdProvider.js +10 -5
  157. package/es/Provider/LibraryContext.js +6 -4
  158. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  159. package/es/Provider/ZindexProvider.js +9 -2
  160. package/es/Radio/Radio.js +4 -2
  161. package/es/Radio/Radio.module.css +112 -112
  162. package/es/Responsive/CustomResponsive.js +30 -18
  163. package/es/Responsive/RefWrapper.js +6 -7
  164. package/es/Responsive/ResizeComponent.js +35 -25
  165. package/es/Responsive/ResizeObserver.js +26 -6
  166. package/es/Responsive/Responsive.js +34 -20
  167. package/es/Responsive/index.js +1 -3
  168. package/es/Responsive/sizeObservers.js +28 -7
  169. package/es/Responsive/utils/index.js +7 -5
  170. package/es/Responsive/utils/shallowCompare.js +7 -2
  171. package/es/Responsive/windowResizeObserver.js +7 -0
  172. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  173. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  174. package/es/Ribbon/Ribbon.js +4 -2
  175. package/es/Ribbon/Ribbon.module.css +454 -456
  176. package/es/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -163
  177. package/es/RippleEffect/RippleEffect.js +1 -3
  178. package/es/RippleEffect/RippleEffect.module.css +92 -92
  179. package/es/Select/GroupSelect.js +59 -14
  180. package/es/Select/Select.js +81 -34
  181. package/es/Select/Select.module.css +108 -108
  182. package/es/Select/SelectWithAvatar.js +19 -4
  183. package/es/Select/SelectWithIcon.js +48 -6
  184. package/es/Select/__tests__/Select.spec.js +6 -8
  185. package/es/Select/props/propTypes.js +1 -0
  186. package/es/Stencils/Stencils.js +3 -3
  187. package/es/Stencils/Stencils.module.css +96 -96
  188. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -49
  189. package/es/Switch/Switch.js +6 -3
  190. package/es/Switch/Switch.module.css +127 -127
  191. package/es/Tab/Tab.js +4 -4
  192. package/es/Tab/Tab.module.css +100 -100
  193. package/es/Tab/TabContent.js +1 -0
  194. package/es/Tab/TabContent.module.css +4 -4
  195. package/es/Tab/TabContentWrapper.js +2 -0
  196. package/es/Tab/TabWrapper.js +5 -2
  197. package/es/Tab/Tabs.js +73 -25
  198. package/es/Tab/Tabs.module.css +136 -154
  199. package/es/Tab/__tests__/Tab.spec.js +1 -3
  200. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  201. package/es/Tag/Tag.js +15 -11
  202. package/es/Tag/Tag.module.css +254 -254
  203. package/es/TextBox/TextBox.js +16 -3
  204. package/es/TextBox/TextBox.module.css +158 -158
  205. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  206. package/es/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -127
  207. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  208. package/es/TextBoxIcon/TextBoxIcon.module.css +79 -79
  209. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  210. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -334
  211. package/es/Textarea/Textarea.js +13 -3
  212. package/es/Textarea/Textarea.module.css +139 -139
  213. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  214. package/es/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -97
  215. package/es/Tooltip/Tooltip.js +60 -15
  216. package/es/Tooltip/Tooltip.module.css +140 -140
  217. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  218. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  219. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  220. package/es/common/a11y.module.css +3 -3
  221. package/es/common/animation.module.css +624 -624
  222. package/es/common/avatarsizes.module.css +48 -48
  223. package/es/common/basic.module.css +33 -33
  224. package/es/common/basicReset.module.css +40 -40
  225. package/es/common/boxShadow.module.css +33 -33
  226. package/es/common/common.module.css +524 -524
  227. package/es/common/customscroll.module.css +91 -91
  228. package/es/common/reset.module.css +13 -13
  229. package/es/common/transition.module.css +146 -146
  230. package/es/deprecated/AdvancedMultiSelect.module.css +126 -126
  231. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  232. package/es/semantic/Button/Button.js +4 -2
  233. package/es/semantic/Button/semanticButton.module.css +9 -9
  234. package/es/utils/Common.js +58 -9
  235. package/es/utils/ContextOptimizer.js +4 -5
  236. package/es/utils/__tests__/debounce.spec.js +2 -2
  237. package/es/utils/constructFullName.js +2 -0
  238. package/es/utils/css/compileClassNames.js +5 -0
  239. package/es/utils/css/mergeStyle.js +7 -6
  240. package/es/utils/css/utils.js +1 -0
  241. package/es/utils/datetime/GMTZones.js +48 -0
  242. package/es/utils/datetime/common.js +31 -7
  243. package/es/utils/debounce.js +5 -1
  244. package/es/utils/dropDownUtils.js +68 -11
  245. package/es/utils/getInitial.js +4 -0
  246. package/es/utils/shallowEqual.js +6 -0
  247. package/install.md +10 -10
  248. package/lib/Accordion/Accordion.js +43 -18
  249. package/lib/Accordion/AccordionItem.js +41 -18
  250. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  251. package/lib/Accordion/index.js +3 -0
  252. package/lib/Accordion/props/propTypes.js +3 -0
  253. package/lib/Animation/Animation.js +38 -18
  254. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  255. package/lib/Animation/props/propTypes.js +3 -0
  256. package/lib/AppContainer/AppContainer.js +66 -26
  257. package/lib/AppContainer/AppContainer.module.css +18 -18
  258. package/lib/AppContainer/props/defaultProps.js +2 -1
  259. package/lib/AppContainer/props/propTypes.js +4 -0
  260. package/lib/Avatar/Avatar.js +90 -47
  261. package/lib/Avatar/Avatar.module.css +175 -175
  262. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  263. package/lib/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -288
  264. package/lib/Avatar/props/propTypes.js +3 -0
  265. package/lib/AvatarTeam/AvatarTeam.js +60 -37
  266. package/lib/AvatarTeam/AvatarTeam.module.css +189 -189
  267. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  268. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -226
  269. package/lib/AvatarTeam/props/propTypes.js +3 -0
  270. package/lib/Button/Button.js +36 -24
  271. package/lib/Button/css/Button.module.css +525 -525
  272. package/lib/Button/css/cssJSLogic.js +18 -17
  273. package/lib/Button/index.js +3 -0
  274. package/lib/Button/props/defaultProps.js +2 -0
  275. package/lib/Button/props/propTypes.js +3 -0
  276. package/lib/Buttongroup/Buttongroup.js +34 -13
  277. package/lib/Buttongroup/Buttongroup.module.css +105 -106
  278. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  279. package/lib/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -146
  280. package/lib/Buttongroup/props/propTypes.js +3 -0
  281. package/lib/Card/Card.js +106 -50
  282. package/lib/Card/Card.module.css +20 -20
  283. package/lib/Card/__tests__/Card.spec.js +10 -1
  284. package/lib/Card/index.js +4 -0
  285. package/lib/Card/props/propTypes.js +3 -0
  286. package/lib/CheckBox/CheckBox.js +71 -47
  287. package/lib/CheckBox/CheckBox.module.css +157 -157
  288. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  289. package/lib/CheckBox/props/propTypes.js +3 -0
  290. package/lib/DateTime/CalendarView.js +83 -42
  291. package/lib/DateTime/DateTime.js +249 -159
  292. package/lib/DateTime/DateTime.module.css +235 -235
  293. package/lib/DateTime/DateTimePopupFooter.js +31 -8
  294. package/lib/DateTime/DateTimePopupHeader.js +48 -17
  295. package/lib/DateTime/DateWidget.js +354 -250
  296. package/lib/DateTime/DateWidget.module.css +38 -38
  297. package/lib/DateTime/DaysRow.js +27 -5
  298. package/lib/DateTime/Time.js +73 -32
  299. package/lib/DateTime/YearView.js +77 -28
  300. package/lib/DateTime/YearView.module.css +98 -98
  301. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  302. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  303. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  304. package/lib/DateTime/common.js +6 -0
  305. package/lib/DateTime/constants.js +1 -0
  306. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  307. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  308. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  309. package/lib/DateTime/dateFormatUtils/index.js +74 -16
  310. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  311. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  312. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  313. package/lib/DateTime/index.js +2 -0
  314. package/lib/DateTime/objectUtils.js +24 -20
  315. package/lib/DateTime/props/defaultProps.js +2 -1
  316. package/lib/DateTime/props/propTypes.js +11 -1
  317. package/lib/DateTime/typeChecker.js +4 -0
  318. package/lib/DateTime/validator.js +73 -10
  319. package/lib/DropBox/DropBox.js +36 -12
  320. package/lib/DropBox/DropBoxElement/DropBoxElement.js +68 -42
  321. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +434 -428
  322. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +43 -34
  323. package/lib/DropBox/DropBoxElement/props/propTypes.js +4 -1
  324. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  325. package/lib/DropBox/DropBoxPositionMapping.json +144 -144
  326. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  327. package/lib/DropBox/css/DropBox.module.css +58 -58
  328. package/lib/DropBox/css/cssJSLogic.js +3 -1
  329. package/lib/DropBox/props/defaultProps.js +8 -4
  330. package/lib/DropBox/props/propTypes.js +10 -4
  331. package/lib/DropDown/DropDown.js +54 -9
  332. package/lib/DropDown/DropDown.module.css +5 -5
  333. package/lib/DropDown/DropDownHeading.js +40 -20
  334. package/lib/DropDown/DropDownHeading.module.css +53 -53
  335. package/lib/DropDown/DropDownItem.js +44 -21
  336. package/lib/DropDown/DropDownItem.module.css +94 -94
  337. package/lib/DropDown/DropDownSearch.js +40 -17
  338. package/lib/DropDown/DropDownSearch.module.css +14 -14
  339. package/lib/DropDown/DropDownSeparator.js +24 -4
  340. package/lib/DropDown/DropDownSeparator.module.css +7 -7
  341. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  342. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  343. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  344. package/lib/DropDown/index.js +9 -0
  345. package/lib/DropDown/props/propTypes.js +6 -4
  346. package/lib/Heading/Heading.js +39 -16
  347. package/lib/Heading/Heading.module.css +4 -4
  348. package/lib/Heading/props/propTypes.js +3 -0
  349. package/lib/Label/Label.js +45 -20
  350. package/lib/Label/Label.module.css +52 -52
  351. package/lib/Label/LabelColors.module.css +20 -20
  352. package/lib/Label/__tests__/Label.spec.js +14 -1
  353. package/lib/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -101
  354. package/lib/Label/props/propTypes.js +7 -1
  355. package/lib/Layout/Box.js +39 -15
  356. package/lib/Layout/Container.js +37 -14
  357. package/lib/Layout/Layout.module.css +335 -335
  358. package/lib/Layout/__tests__/Box.spec.js +65 -49
  359. package/lib/Layout/__tests__/Container.spec.js +67 -50
  360. package/lib/Layout/index.js +3 -0
  361. package/lib/Layout/props/defaultProps.js +2 -0
  362. package/lib/Layout/props/propTypes.js +5 -0
  363. package/lib/Layout/utils.js +15 -1
  364. package/lib/ListItem/ListContainer.js +48 -27
  365. package/lib/ListItem/ListItem.js +69 -45
  366. package/lib/ListItem/ListItem.module.css +216 -216
  367. package/lib/ListItem/ListItemWithAvatar.js +75 -48
  368. package/lib/ListItem/ListItemWithCheckBox.js +64 -39
  369. package/lib/ListItem/ListItemWithIcon.js +68 -44
  370. package/lib/ListItem/ListItemWithRadio.js +65 -41
  371. package/lib/ListItem/index.js +7 -0
  372. package/lib/ListItem/props/propTypes.js +6 -4
  373. package/lib/Modal/Modal.js +45 -10
  374. package/lib/Modal/props/propTypes.js +3 -0
  375. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -171
  376. package/lib/MultiSelect/AdvancedMultiSelect.js +203 -125
  377. package/lib/MultiSelect/EmptyState.js +49 -24
  378. package/lib/MultiSelect/MultiSelect.js +329 -211
  379. package/lib/MultiSelect/MultiSelect.module.css +206 -206
  380. package/lib/MultiSelect/MultiSelectHeader.js +30 -8
  381. package/lib/MultiSelect/MultiSelectWithAvatar.js +106 -63
  382. package/lib/MultiSelect/SelectedOptions.js +43 -17
  383. package/lib/MultiSelect/SelectedOptions.module.css +15 -15
  384. package/lib/MultiSelect/Suggestions.js +64 -32
  385. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  386. package/lib/MultiSelect/index.js +5 -0
  387. package/lib/MultiSelect/props/defaultProps.js +2 -0
  388. package/lib/MultiSelect/props/propTypes.js +5 -0
  389. package/lib/PopOver/PopOver.js +95 -49
  390. package/lib/PopOver/PopOver.module.css +8 -8
  391. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  392. package/lib/PopOver/index.js +4 -0
  393. package/lib/PopOver/props/propTypes.js +3 -0
  394. package/lib/Popup/Popup.js +158 -84
  395. package/lib/Popup/PositionMapping.json +73 -73
  396. package/lib/Popup/__tests__/Popup.spec.js +43 -8
  397. package/lib/Popup/viewPort.js +28 -14
  398. package/lib/Provider/AvatarSize.js +4 -0
  399. package/lib/Provider/Config.js +2 -0
  400. package/lib/Provider/CssProvider.js +4 -0
  401. package/lib/Provider/IdProvider.js +17 -6
  402. package/lib/Provider/LibraryContext.js +35 -15
  403. package/lib/Provider/LibraryContextInit.js +4 -0
  404. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  405. package/lib/Provider/ZindexProvider.js +15 -3
  406. package/lib/Provider/index.js +5 -0
  407. package/lib/Radio/Radio.js +61 -38
  408. package/lib/Radio/Radio.module.css +112 -112
  409. package/lib/Radio/__tests__/Radiospec.js +9 -5
  410. package/lib/Radio/props/propTypes.js +3 -0
  411. package/lib/Responsive/CustomResponsive.js +73 -29
  412. package/lib/Responsive/RefWrapper.js +17 -11
  413. package/lib/Responsive/ResizeComponent.js +62 -36
  414. package/lib/Responsive/ResizeObserver.js +24 -10
  415. package/lib/Responsive/Responsive.js +80 -30
  416. package/lib/Responsive/index.js +4 -0
  417. package/lib/Responsive/props/propTypes.js +3 -0
  418. package/lib/Responsive/sizeObservers.js +53 -17
  419. package/lib/Responsive/utils/index.js +11 -3
  420. package/lib/Responsive/utils/shallowCompare.js +11 -2
  421. package/lib/Responsive/windowResizeObserver.js +8 -0
  422. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  423. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  424. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  425. package/lib/Ribbon/Ribbon.js +34 -13
  426. package/lib/Ribbon/Ribbon.module.css +454 -456
  427. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  428. package/lib/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -163
  429. package/lib/Ribbon/props/propTypes.js +3 -0
  430. package/lib/RippleEffect/RippleEffect.js +18 -10
  431. package/lib/RippleEffect/RippleEffect.module.css +92 -92
  432. package/lib/RippleEffect/props/propTypes.js +3 -0
  433. package/lib/Select/GroupSelect.js +230 -130
  434. package/lib/Select/Select.js +292 -210
  435. package/lib/Select/Select.module.css +108 -108
  436. package/lib/Select/SelectWithAvatar.js +104 -56
  437. package/lib/Select/SelectWithIcon.js +134 -77
  438. package/lib/Select/__tests__/Select.spec.js +133 -91
  439. package/lib/Select/index.js +5 -0
  440. package/lib/Select/props/defaultProps.js +5 -4
  441. package/lib/Select/props/propTypes.js +4 -0
  442. package/lib/Stencils/Stencils.js +29 -10
  443. package/lib/Stencils/Stencils.module.css +96 -96
  444. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  445. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -49
  446. package/lib/Stencils/props/propTypes.js +3 -0
  447. package/lib/Switch/Switch.js +58 -34
  448. package/lib/Switch/Switch.module.css +127 -127
  449. package/lib/Switch/props/propTypes.js +3 -0
  450. package/lib/Tab/Tab.js +40 -27
  451. package/lib/Tab/Tab.module.css +100 -100
  452. package/lib/Tab/TabContent.js +12 -5
  453. package/lib/Tab/TabContent.module.css +4 -4
  454. package/lib/Tab/TabContentWrapper.js +13 -6
  455. package/lib/Tab/TabWrapper.js +37 -19
  456. package/lib/Tab/Tabs.js +184 -103
  457. package/lib/Tab/Tabs.module.css +136 -154
  458. package/lib/Tab/__tests__/Tab.spec.js +67 -58
  459. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  460. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  461. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  462. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  463. package/lib/Tab/index.js +6 -0
  464. package/lib/Tab/props/propTypes.js +3 -0
  465. package/lib/Tag/Tag.js +81 -51
  466. package/lib/Tag/Tag.module.css +254 -254
  467. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  468. package/lib/Tag/props/propTypes.js +3 -0
  469. package/lib/TextBox/TextBox.js +86 -59
  470. package/lib/TextBox/TextBox.module.css +158 -158
  471. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  472. package/lib/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -127
  473. package/lib/TextBox/props/propTypes.js +6 -4
  474. package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
  475. package/lib/TextBoxIcon/TextBoxIcon.module.css +79 -79
  476. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  477. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -334
  478. package/lib/TextBoxIcon/props/propTypes.js +3 -0
  479. package/lib/Textarea/Textarea.js +55 -29
  480. package/lib/Textarea/Textarea.module.css +139 -139
  481. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  482. package/lib/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -97
  483. package/lib/Textarea/props/propTypes.js +3 -0
  484. package/lib/Tooltip/Tooltip.js +96 -32
  485. package/lib/Tooltip/Tooltip.module.css +140 -140
  486. package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
  487. package/lib/Tooltip/props/propTypes.js +3 -0
  488. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  489. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  490. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  491. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  492. package/lib/VelocityAnimation/index.js +3 -0
  493. package/lib/common/a11y.module.css +3 -3
  494. package/lib/common/animation.module.css +624 -624
  495. package/lib/common/avatarsizes.module.css +48 -48
  496. package/lib/common/basic.module.css +33 -33
  497. package/lib/common/basicReset.module.css +40 -40
  498. package/lib/common/boxShadow.module.css +33 -33
  499. package/lib/common/common.module.css +524 -524
  500. package/lib/common/customscroll.module.css +91 -91
  501. package/lib/common/reset.module.css +13 -13
  502. package/lib/common/transition.module.css +146 -146
  503. package/lib/css.js +40 -0
  504. package/lib/deprecated/AdvancedMultiSelect.module.css +126 -126
  505. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  506. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  507. package/lib/index.js +57 -0
  508. package/lib/semantic/Button/Button.js +43 -22
  509. package/lib/semantic/Button/props/propTypes.js +3 -0
  510. package/lib/semantic/Button/semanticButton.module.css +9 -9
  511. package/lib/semantic/index.js +2 -0
  512. package/lib/utils/Common.js +117 -19
  513. package/lib/utils/ContextOptimizer.js +16 -10
  514. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  515. package/lib/utils/__tests__/debounce.spec.js +3 -2
  516. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  517. package/lib/utils/constructFullName.js +13 -4
  518. package/lib/utils/css/compileClassNames.js +6 -0
  519. package/lib/utils/css/mergeStyle.js +10 -7
  520. package/lib/utils/css/utils.js +8 -0
  521. package/lib/utils/datetime/GMTZones.js +55 -0
  522. package/lib/utils/datetime/common.js +52 -7
  523. package/lib/utils/debounce.js +6 -1
  524. package/lib/utils/dropDownUtils.js +175 -59
  525. package/lib/utils/dummyFunction.js +2 -0
  526. package/lib/utils/getHTMLFontSize.js +1 -0
  527. package/lib/utils/getInitial.js +6 -0
  528. package/lib/utils/index.js +4 -0
  529. package/lib/utils/scrollTo.js +2 -0
  530. package/lib/utils/shallowEqual.js +8 -0
  531. package/package.json +113 -123
  532. package/assets/Appearance/dark/themes/blue/blue_ComponentTheme_DarkTheme.module.css +0 -45
  533. package/assets/Appearance/dark/themes/green/green_ComponentTheme_DarkTheme.module.css +0 -45
  534. package/assets/Appearance/dark/themes/orange/orange_ComponentTheme_DarkTheme.module.css +0 -45
  535. package/assets/Appearance/dark/themes/red/red_ComponentTheme_DarkTheme.module.css +0 -45
  536. package/assets/Appearance/dark/themes/yellow/yellow_ComponentTheme_DarkTheme.module.css +0 -45
  537. package/assets/Appearance/light/themes/blue/blue_CTA_LightTheme.module.css +0 -35
  538. package/assets/Appearance/light/themes/blue/blue_ComponentTheme_LightTheme.module.css +0 -45
  539. package/assets/Appearance/light/themes/green/green_CTA_LightTheme.module.css +0 -35
  540. package/assets/Appearance/light/themes/green/green_ComponentTheme_LightTheme.module.css +0 -45
  541. package/assets/Appearance/light/themes/orange/orange_CTA_LightTheme.module.css +0 -35
  542. package/assets/Appearance/light/themes/orange/orange_ComponentTheme_LightTheme.module.css +0 -45
  543. package/assets/Appearance/light/themes/red/red_CTA_LightTheme.module.css +0 -35
  544. package/assets/Appearance/light/themes/red/red_ComponentTheme_LightTheme.module.css +0 -45
  545. package/assets/Appearance/light/themes/yellow/yellow_CTA_LightTheme.module.css +0 -35
  546. package/assets/Appearance/light/themes/yellow/yellow_ComponentTheme_LightTheme.module.css +0 -45
  547. package/assets/Appearance/pureDark/themes/blue/blue_ComponentTheme_PureDarkTheme.module.css +0 -45
  548. package/assets/Appearance/pureDark/themes/green/green_ComponentTheme_PureDarkTheme.module.css +0 -45
  549. package/assets/Appearance/pureDark/themes/orange/orange_ComponentTheme_PureDarkTheme.module.css +0 -45
  550. package/assets/Appearance/pureDark/themes/red/red_ComponentTheme_PureDarkTheme.module.css +0 -45
  551. package/assets/Appearance/pureDark/themes/yellow/yellow_ComponentTheme_PureDarkTheme.module.css +0 -45
  552. package/assets/Contrast/lightContrastLightness.module.css +0 -39
  553. /package/assets/Appearance/dark/themes/green/{green_CTA_DarkModifyCategory.module.css → greenDarkCTAModifyCategory.module.css} +0 -0
  554. /package/assets/Appearance/dark/themes/orange/{orange_CTA_DarkModifyCategory.module.css → orangeDarkCTAModifyCategory.module.css} +0 -0
  555. /package/assets/Appearance/dark/themes/red/{red_CTA_DarkModifyCategory.module.css → redDarkCTAModifyCategory.module.css} +0 -0
  556. /package/assets/Appearance/dark/themes/yellow/{yellow_CTA_DarkModifyCategory.module.css → yellowDarkCTAModifyCategory.module.css} +0 -0
  557. /package/assets/Appearance/pureDark/themes/green/{green_CTA_PureDarkModifyCategory.module.css → greenPureDarkCTAModifyCategory.module.css} +0 -0
  558. /package/assets/Appearance/pureDark/themes/orange/{orange_CTA_PureDarkModifyCategory.module.css → orangePureDarkCTAModifyCategory.module.css} +0 -0
  559. /package/assets/Appearance/pureDark/themes/red/{red_CTA_PureDarkModifyCategory.module.css → redPureDarkCTAModifyCategory.module.css} +0 -0
  560. /package/assets/Appearance/pureDark/themes/yellow/{yellow_CTA_PureDarkModifyCategory.module.css → yellowPureDarkCTAModifyCategory.module.css} +0 -0
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import { SelectWithAvatar_defaultProps } from './props/defaultProps';
4
4
  import { SelectWithAvatar_propTypes } from './props/propTypes';
5
5
  /**** Components ****/
6
+
6
7
  import { SelectComponent } from './Select';
7
8
  import Popup from '../Popup/Popup';
8
9
  import Tag from '../Tag/Tag';
@@ -17,10 +18,11 @@ import { getUniqueId } from '../Provider/IdProvider';
17
18
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
18
19
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
19
20
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
20
-
21
21
  /**** CSS ****/
22
+
22
23
  import style from '../MultiSelect/MultiSelect.module.css';
23
24
  import selectStyle from './Select.module.css';
25
+
24
26
  class SelectWithAvatarComponent extends SelectComponent {
25
27
  constructor(props) {
26
28
  super(props);
@@ -32,6 +34,7 @@ class SelectWithAvatarComponent extends SelectComponent {
32
34
  this.handleRemoveOption = this.handleRemoveOption.bind(this);
33
35
  this.getNextAriaId = getUniqueId(this);
34
36
  }
37
+
35
38
  handleFormatOptions(props) {
36
39
  let {
37
40
  options,
@@ -47,15 +50,18 @@ class SelectWithAvatarComponent extends SelectComponent {
47
50
  optionType: 'avatar'
48
51
  });
49
52
  }
53
+
50
54
  handleActive(e) {
51
55
  let {
52
56
  isActive
53
57
  } = this.state;
58
+
54
59
  if (!isActive) {
55
60
  this.setState({
56
61
  isActive: true
57
62
  });
58
63
  }
64
+
59
65
  let {
60
66
  target
61
67
  } = e || {};
@@ -65,16 +71,19 @@ class SelectWithAvatarComponent extends SelectComponent {
65
71
  } = this.props;
66
72
  onFocus && onFocus(this.state.searchStr);
67
73
  }
74
+
68
75
  handleInactive() {
69
76
  let {
70
77
  isActive
71
78
  } = this.state;
79
+
72
80
  if (isActive) {
73
81
  this.setState({
74
82
  isActive: false
75
83
  });
76
84
  }
77
85
  }
86
+
78
87
  handleSearchChange(e) {
79
88
  let {
80
89
  isPopupOpen
@@ -82,6 +91,7 @@ class SelectWithAvatarComponent extends SelectComponent {
82
91
  !isPopupOpen && this.togglePopup(e);
83
92
  this.handleSearch(e);
84
93
  }
94
+
85
95
  handleRemoveOption(e) {
86
96
  let {
87
97
  keyCode
@@ -92,12 +102,14 @@ class SelectWithAvatarComponent extends SelectComponent {
92
102
  let {
93
103
  isDefaultSelectValue
94
104
  } = this.props;
105
+
95
106
  if (keyCode === 8 && searchStr.length === 0 && !isDefaultSelectValue) {
96
107
  this.handleChange('');
97
108
  } else {
98
109
  this.handleKeyDown(e);
99
110
  }
100
111
  }
112
+
101
113
  responsiveFunc(_ref) {
102
114
  let {
103
115
  mediaQueryOR
@@ -108,6 +120,7 @@ class SelectWithAvatarComponent extends SelectComponent {
108
120
  }])
109
121
  };
110
122
  }
123
+
111
124
  render() {
112
125
  let {
113
126
  dropBoxSize,
@@ -170,6 +183,7 @@ class SelectWithAvatarComponent extends SelectComponent {
170
183
  return /*#__PURE__*/React.createElement("div", {
171
184
  className: `${style.wrapper} ${isDisabled ? style.disabled : ''} ${isReadOnly ? style.readOnly : ''} ${needEffect && !(isDisabled || isReadOnly) ? style.effect : ''} ${className ? className : ''}`,
172
185
  "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
186
+ "data-test-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
173
187
  "data-title": isDisabled ? title : null,
174
188
  "data-selector-id": dataSelectorId
175
189
  }, /*#__PURE__*/React.createElement(Container, {
@@ -181,6 +195,7 @@ class SelectWithAvatarComponent extends SelectComponent {
181
195
  }, selectedId ? /*#__PURE__*/React.createElement(Box, {
182
196
  className: style.tag,
183
197
  "data-id": `${dataId}_SelectTag`,
198
+ "data-test-id": `${dataId}_SelectTag`,
184
199
  key: `${id}tag`
185
200
  }, /*#__PURE__*/React.createElement(Tag, {
186
201
  avatarPalette: avatarPalette,
@@ -309,14 +324,14 @@ class SelectWithAvatarComponent extends SelectComponent {
309
324
  }, /*#__PURE__*/React.createElement(Loader, null))))));
310
325
  }) : null);
311
326
  }
327
+
312
328
  }
329
+
313
330
  SelectWithAvatarComponent.propTypes = SelectWithAvatar_propTypes;
314
331
  SelectWithAvatarComponent.defaultProps = SelectWithAvatar_defaultProps;
315
332
  SelectWithAvatarComponent.displayName = 'SelectWithAvatar';
316
333
  let SelectWithAvatar = Popup(SelectWithAvatarComponent);
317
- SelectWithAvatar.defaultProps = SelectWithAvatarComponent.defaultProps;
318
-
319
- // if (__DOCS__) {
334
+ SelectWithAvatar.defaultProps = SelectWithAvatarComponent.defaultProps; // if (__DOCS__) {
320
335
  // SelectWithAvatar.docs = {
321
336
  // componentGroup: 'Form Elements',
322
337
  // folderName: 'Style Guide'
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
2
2
  import { SelectWithIcon_defaultProps } from './props/defaultProps';
3
3
  import { SelectWithIcon_propTypes } from './props/propTypes';
4
4
  /**** Components ****/
5
+
5
6
  import Popup from '../Popup/Popup';
6
7
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
7
8
  import { Icon } from '@zohodesk/icons';
@@ -14,9 +15,12 @@ import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
14
15
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
15
16
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
16
17
  /**** Methods ****/
18
+
17
19
  import { scrollTo, findScrollEnd } from '../utils/Common.js';
18
20
  /**** CSS ****/
21
+
19
22
  import style from './Select.module.css';
23
+
20
24
  class SelectWithIcon extends Component {
21
25
  constructor(props) {
22
26
  super(props);
@@ -42,34 +46,43 @@ class SelectWithIcon extends Component {
42
46
  this.handleGetNextOptions = this.handleGetNextOptions.bind(this);
43
47
  this.handleFetchOptions = this.handleFetchOptions.bind(this);
44
48
  }
49
+
45
50
  componentDidMount() {
46
51
  this._isMounted = true;
47
52
  }
53
+
48
54
  componentWillUnmount() {
49
55
  this._isMounted = false;
50
56
  }
57
+
51
58
  inputRef(el) {
52
59
  this.input = el;
53
60
  }
61
+
54
62
  itemRef(ele, index, id) {
55
63
  this[`suggestion_${id}`] = ele;
56
64
  }
65
+
57
66
  searchInputRef(el) {
58
67
  this.searchInput = el;
59
68
  }
69
+
60
70
  scrollContentRef(el) {
61
71
  let {
62
72
  isPopupOpen
63
73
  } = this.props;
74
+
64
75
  if (isPopupOpen) {
65
76
  this.optionsContainer = el;
66
77
  }
67
78
  }
79
+
68
80
  handleMouseEnter(id, value, index, e) {
69
81
  this.setState({
70
82
  selectedIndex: index
71
83
  });
72
84
  }
85
+
73
86
  handleKeyDown(e) {
74
87
  let {
75
88
  keyCode
@@ -84,10 +97,12 @@ class SelectWithIcon extends Component {
84
97
  isPopupOpen,
85
98
  selectedId
86
99
  } = this.props;
100
+
87
101
  if (isPopupOpen && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
88
102
  e.preventDefault(); //prevent body scroll
89
103
  } else if (!isPopupOpen && (keyCode === 40 || keyCode === 13)) {
90
104
  e.preventDefault(); //prevent body scroll
105
+
91
106
  this.togglePopup(e);
92
107
  options.map((list, index) => {
93
108
  if (list.id === selectedId) {
@@ -97,6 +112,7 @@ class SelectWithIcon extends Component {
97
112
  }
98
113
  });
99
114
  }
115
+
100
116
  if (isPopupOpen) {
101
117
  switch (keyCode) {
102
118
  case 40:
@@ -108,11 +124,14 @@ class SelectWithIcon extends Component {
108
124
  if (selectedIndex === options.length - 3) {
109
125
  this.handleGetNextOptions();
110
126
  }
127
+
111
128
  this.setState({
112
129
  selectedIndex: selectedIndex + 1
113
130
  });
114
131
  }
132
+
115
133
  break;
134
+
116
135
  case 38:
117
136
  if (selectedIndex === 0) {
118
137
  this.setState({
@@ -123,7 +142,9 @@ class SelectWithIcon extends Component {
123
142
  selectedIndex: selectedIndex - 1
124
143
  });
125
144
  }
145
+
126
146
  break;
147
+
127
148
  case 13:
128
149
  let option = options[selectedIndex];
129
150
  this.handleChange && this.handleChange(option[idKey], option[valueKey], selectedIndex, e);
@@ -131,6 +152,7 @@ class SelectWithIcon extends Component {
131
152
  }
132
153
  }
133
154
  }
155
+
134
156
  componentDidUpdate(prevProps) {
135
157
  let {
136
158
  idKey,
@@ -141,6 +163,7 @@ class SelectWithIcon extends Component {
141
163
  selectedIndex,
142
164
  options
143
165
  } = this.state;
166
+
144
167
  if (prevProps.isPopupOpen != isPopupOpen) {
145
168
  setTimeout(() => {
146
169
  isPopupOpen ? needSearch ? this.searchInput.focus({
@@ -152,32 +175,39 @@ class SelectWithIcon extends Component {
152
175
  });
153
176
  }, 10);
154
177
  }
178
+
155
179
  let option = options[selectedIndex];
156
180
  let id = option && option[idKey] || {};
157
181
  let selSuggestion = this[`suggestion_${id}`];
182
+
158
183
  if (isPopupOpen) {
159
184
  this.optionsContainer && scrollTo(this.optionsContainer, selSuggestion);
160
185
  }
161
186
  }
187
+
162
188
  searchList(searchValue) {
163
189
  let datas = [];
164
190
  let {
165
191
  options,
166
192
  valueKey
167
193
  } = this.props;
194
+
168
195
  if (options.length) {
169
196
  datas = options.filter(obj => obj[valueKey].toLowerCase().includes(searchValue.toLowerCase()));
170
197
  }
198
+
171
199
  return datas;
172
200
  }
201
+
173
202
  onSearchClear() {
174
- let options = this.searchList('');
175
- // this.searchInput.focus({preventScroll:false});
203
+ let options = this.searchList(''); // this.searchInput.focus({preventScroll:false});
204
+
176
205
  this.setState({
177
206
  searchValue: '',
178
207
  options
179
208
  });
180
209
  }
210
+
181
211
  onSearch(searchValue) {
182
212
  let options = this.searchList(searchValue);
183
213
  this.setState({
@@ -186,6 +216,7 @@ class SelectWithIcon extends Component {
186
216
  options
187
217
  });
188
218
  }
219
+
189
220
  togglePopup(e) {
190
221
  let {
191
222
  togglePopup,
@@ -194,6 +225,7 @@ class SelectWithIcon extends Component {
194
225
  } = this.props;
195
226
  !isReadOnly && togglePopup(e, boxPosition);
196
227
  }
228
+
197
229
  handleChange(id, value, index, e) {
198
230
  let {
199
231
  onChange,
@@ -202,11 +234,13 @@ class SelectWithIcon extends Component {
202
234
  !isReadOnly && onChange && onChange(id, value, index, e);
203
235
  this.togglePopup(e);
204
236
  }
237
+
205
238
  handleScroll(e) {
206
239
  let ele = e.target;
207
240
  let isScrollReachedBottom = findScrollEnd(ele);
208
241
  isScrollReachedBottom && this.handleGetNextOptions();
209
242
  }
243
+
210
244
  UNSAFE_componentWillReceiveProps(nextProps) {
211
245
  if (nextProps.options.length != this.props.options.length) {
212
246
  this.setState({
@@ -214,6 +248,7 @@ class SelectWithIcon extends Component {
214
248
  });
215
249
  }
216
250
  }
251
+
217
252
  handleGetNextOptions() {
218
253
  let {
219
254
  isNextOptions,
@@ -224,6 +259,7 @@ class SelectWithIcon extends Component {
224
259
  } = this.state;
225
260
  isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchValue);
226
261
  }
262
+
227
263
  handleFetchOptions(APICall) {
228
264
  let searchValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
229
265
  let {
@@ -232,10 +268,12 @@ class SelectWithIcon extends Component {
232
268
  let {
233
269
  _isMounted
234
270
  } = this;
271
+
235
272
  if (!isFetchingOptions && APICall) {
236
273
  this.setState({
237
274
  isFetchingOptions: true
238
275
  });
276
+
239
277
  try {
240
278
  return APICall(searchValue).then(() => {
241
279
  _isMounted && this.setState({
@@ -253,6 +291,7 @@ class SelectWithIcon extends Component {
253
291
  }
254
292
  }
255
293
  }
294
+
256
295
  responsiveFunc(_ref) {
257
296
  let {
258
297
  mediaQueryOR
@@ -263,6 +302,7 @@ class SelectWithIcon extends Component {
263
302
  }])
264
303
  };
265
304
  }
305
+
266
306
  render() {
267
307
  let {
268
308
  animationStyle,
@@ -327,7 +367,8 @@ class SelectWithIcon extends Component {
327
367
  className: `${className ? className : ''}`,
328
368
  onClick: isDisabled || isReadOnly ? null : this.togglePopup,
329
369
  ref: getTargetRef,
330
- "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`
370
+ "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
371
+ "data-test-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`
331
372
  }, /*#__PURE__*/React.createElement(Container, {
332
373
  alignBox: "row"
333
374
  }, needIcon ? /*#__PURE__*/React.createElement(Container, {
@@ -475,14 +516,15 @@ class SelectWithIcon extends Component {
475
516
  }, /*#__PURE__*/React.createElement(Loader, null))))));
476
517
  }) : null);
477
518
  }
519
+
478
520
  }
479
- SelectWithIcon.propTypes = SelectWithIcon_propTypes;
480
- SelectWithIcon.defaultProps = SelectWithIcon_defaultProps;
481
521
 
482
- // if (__DOCS__) {
522
+ SelectWithIcon.propTypes = SelectWithIcon_propTypes;
523
+ SelectWithIcon.defaultProps = SelectWithIcon_defaultProps; // if (__DOCS__) {
483
524
  // SelectWithIcon.docs = {
484
525
  // componentGroup: 'Form Elements',
485
526
  // folderName: 'Style Guide'
486
527
  // };
487
528
  // }
529
+
488
530
  export default Popup(SelectWithIcon);
@@ -1,8 +1,9 @@
1
1
  /* eslint-disable no-undef */
2
+
2
3
  /**** Libraries ****/
3
4
  import expect from 'expect';
4
-
5
5
  /**** Components ****/
6
+
6
7
  import Select from '../Select';
7
8
  import ListItem from '../../ListItem/ListItem';
8
9
  describe('Select component conditions', () => {
@@ -188,9 +189,8 @@ describe('Select component conditions', () => {
188
189
  target: {
189
190
  value: 'value changed'
190
191
  }
191
- });
192
+ }); //
192
193
 
193
- //
194
194
  setTimeout(() => {
195
195
  expect(props.onSearch).toHaveBeenCalled();
196
196
  expect(props.onSearch.mock.calls[0][0]).toEqual('value changed');
@@ -202,10 +202,8 @@ describe('Select component conditions', () => {
202
202
  expect(loadingEleArr.length).toBe(0);
203
203
  cb();
204
204
  });
205
- }, searchDebounceTime);
206
- //
205
+ }, searchDebounceTime); //
207
206
  });
208
-
209
207
  it('Should call onChange, When select list item', () => {
210
208
  let defaultProps = {
211
209
  options: [{
@@ -301,11 +299,11 @@ describe('Select component conditions', () => {
301
299
  };
302
300
  let {
303
301
  renderedDOM
304
- } = setup(Select, defaultProps);
305
- // let liteItemArr = TestUtils.scryRenderedComponentsWithTestid(
302
+ } = setup(Select, defaultProps); // let liteItemArr = TestUtils.scryRenderedComponentsWithTestid(
306
303
  // renderedDOM,
307
304
  // 'listItem'
308
305
  // );
306
+
309
307
  let liteItemArr = TestUtils.scryRenderedComponentsWithType(renderedDOM, ListItem);
310
308
  expect(liteItemArr.length).toBe(3);
311
309
  });
@@ -148,6 +148,7 @@ export const GroupSelect_propTypes = {
148
148
  getFooter: PropTypes.func,
149
149
  htmlId: PropTypes.string,
150
150
  iconOnHover: PropTypes.bool,
151
+
151
152
  /**** Popup Props ****/
152
153
  isPopupOpen: PropTypes.bool,
153
154
  isPopupReady: PropTypes.bool,
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { defaultProps } from './props/defaultProps';
3
3
  import { propTypes } from './props/propTypes';
4
4
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: [primary, secondary, small, default, medium, large, clarge, cmedium, cdefault, csmall] }] */
5
+
5
6
  import style from './Stencils.module.css';
6
7
  export default class Stencils extends React.PureComponent {
7
8
  render() {
@@ -17,11 +18,10 @@ export default class Stencils extends React.PureComponent {
17
18
  className: `${style.container} ${shape} ${size} ${style[palette]} ${customClass}`
18
19
  });
19
20
  }
21
+
20
22
  }
21
23
  Stencils.propTypes = propTypes;
22
- Stencils.defaultProps = defaultProps;
23
-
24
- // if (__DOCS__) {
24
+ Stencils.defaultProps = defaultProps; // if (__DOCS__) {
25
25
  // Stencils.docs = {
26
26
  // componentGroup: 'Atom',
27
27
  // folderName: 'Style Guide',
@@ -1,96 +1,96 @@
1
- .varClass {
2
- /* stencils default variables */
3
- --stencil_height: 9px;
4
- --stencil_width: 100%;
5
- --stencil_border_radius: 5px;
6
- }
7
- .container {
8
- composes: varClass;
9
- height: var(--stencil_height);
10
- width: var(--stencil_width);
11
- border-radius: var(--stencil_border_radius);
12
- }
13
- .stencil {
14
- background-size: 800px 1px;
15
- }
16
- [dir=ltr] .stencil {
17
- animation-name: placeHolderShimmer-ltr ;
18
- animation-fill-mode: forwards;
19
- animation-iteration-count: infinite;
20
- animation-duration: var(--zd_transition10);
21
- animation-timing-function: linear;
22
- }
23
- [dir=rtl] .stencil {
24
- animation-name: placeHolderShimmer-rtl ;
25
- animation-fill-mode: forwards;
26
- animation-iteration-count: infinite;
27
- animation-duration: var(--zd_transition10);
28
- animation-timing-function: linear;
29
- }
30
- @keyframes placeHolderShimmer-ltr {
31
- 0% {
32
- background-position: calc(var(--zd_size468) * -1) 0;
33
- }
34
-
35
- 100% {
36
- background-position: var(--zd_size468) 0;
37
- }
38
- }
39
- @keyframes placeHolderShimmer-rtl {
40
- 0% {
41
- background-position: calc(100% - (var(--zd_size468) * -1)) 0;
42
- }
43
-
44
- 100% {
45
- background-position: var(--zd_size468) 100%;
46
- }
47
- }
48
-
49
- .rectangular {
50
- composes: stencil;
51
- --stencil_height: 9px;
52
- --stencil_border_radius: 5px;
53
- }
54
- .primary {
55
- background-color: var(--zdt_stencil_primary_bg);
56
- background-image: var(--zdt_stencil_primary_gradient_bg);
57
- }
58
- .secondary {
59
- background-color: var(--zdt_stencil_secondary_bg);
60
- background-image: var(--zdt_stencil_secondary_gradient_bg);
61
- }
62
- .dark {
63
- background-color: var(--zdt_stencil_dark_bg);
64
- background-image: var(--zdt_stencil_dark_gradient_bg);
65
- }
66
-
67
- .small {
68
- --stencil_width: 110px;
69
- }
70
- .default {
71
- --stencil_width: 100%;
72
- }
73
- .medium {
74
- --stencil_width: 170px;
75
- }
76
- .large {
77
- --stencil_width: 220px;
78
- }
79
-
80
- .circle {
81
- composes: stencil;
82
- --stencil_border_radius: 50%;
83
- }
84
- .clarge {
85
- --stencil_width: 42px;
86
- --stencil_height: 42px;
87
- }
88
- .cmedium,
89
- .cdefault {
90
- --stencil_width: 30px;
91
- --stencil_height: 30px;
92
- }
93
- .csmall {
94
- --stencil_width: 20px;
95
- --stencil_height: 20px;
96
- }
1
+ .varClass {
2
+ /* stencils default variables */
3
+ --stencil_height: var(--zd_size9);
4
+ --stencil_width: 100%;
5
+ --stencil_border_radius: 5px;
6
+ }
7
+ .container {
8
+ composes: varClass;
9
+ height: var(--stencil_height);
10
+ width: var(--stencil_width);
11
+ border-radius: var(--stencil_border_radius);
12
+ }
13
+ .stencil {
14
+ background-size: 800px 1px;
15
+ }
16
+ [dir=ltr] .stencil {
17
+ animation-name: placeHolderShimmer-ltr ;
18
+ animation-fill-mode: forwards;
19
+ animation-iteration-count: infinite;
20
+ animation-duration: var(--zd_transition10);
21
+ animation-timing-function: linear;
22
+ }
23
+ [dir=rtl] .stencil {
24
+ animation-name: placeHolderShimmer-rtl ;
25
+ animation-fill-mode: forwards;
26
+ animation-iteration-count: infinite;
27
+ animation-duration: var(--zd_transition10);
28
+ animation-timing-function: linear;
29
+ }
30
+ @keyframes placeHolderShimmer-ltr {
31
+ 0% {
32
+ background-position: calc(var(--zd_size468) * -1) 0;
33
+ }
34
+
35
+ 100% {
36
+ background-position: var(--zd_size468) 0;
37
+ }
38
+ }
39
+ @keyframes placeHolderShimmer-rtl {
40
+ 0% {
41
+ background-position: calc(100% - (var(--zd_size468) * -1)) 0;
42
+ }
43
+
44
+ 100% {
45
+ background-position: var(--zd_size468) 100%;
46
+ }
47
+ }
48
+
49
+ .rectangular {
50
+ composes: stencil;
51
+ --stencil_height: var(--zd_size9);
52
+ --stencil_border_radius: 5px;
53
+ }
54
+ .primary {
55
+ background-color: var(--zdt_stencil_primary_bg);
56
+ background-image: var(--zdt_stencil_primary_gradient_bg);
57
+ }
58
+ .secondary {
59
+ background-color: var(--zdt_stencil_secondary_bg);
60
+ background-image: var(--zdt_stencil_secondary_gradient_bg);
61
+ }
62
+ .dark {
63
+ background-color: var(--zdt_stencil_dark_bg);
64
+ background-image: var(--zdt_stencil_dark_gradient_bg);
65
+ }
66
+
67
+ .small {
68
+ --stencil_width: var(--zd_size110);
69
+ }
70
+ .default {
71
+ --stencil_width: 100%;
72
+ }
73
+ .medium {
74
+ --stencil_width: var(--zd_size170);
75
+ }
76
+ .large {
77
+ --stencil_width: var(--zd_size220);
78
+ }
79
+
80
+ .circle {
81
+ composes: stencil;
82
+ --stencil_border_radius: 50%;
83
+ }
84
+ .clarge {
85
+ --stencil_width: var(--zd_size42);
86
+ --stencil_height: var(--zd_size42);
87
+ }
88
+ .cmedium,
89
+ .cdefault {
90
+ --stencil_width: var(--zd_size30);
91
+ --stencil_height: var(--zd_size30);
92
+ }
93
+ .csmall {
94
+ --stencil_width: var(--zd_size20);
95
+ --stencil_height: var(--zd_size20);
96
+ }