@zohodesk/components 1.0.0-alpha-271 → 1.0.0-alpha-272

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 (352) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +3 -3
  5. package/es/AppContainer/AppContainer.js +13 -5
  6. package/es/Avatar/Avatar.js +23 -11
  7. package/es/AvatarTeam/AvatarTeam.js +3 -3
  8. package/es/Button/Button.js +4 -3
  9. package/es/Buttongroup/Buttongroup.js +3 -3
  10. package/es/Card/Card.js +21 -10
  11. package/es/CheckBox/CheckBox.js +5 -3
  12. package/es/DateTime/CalendarView.js +32 -20
  13. package/es/DateTime/DateTime.js +75 -10
  14. package/es/DateTime/DateTimePopupFooter.js +4 -2
  15. package/es/DateTime/DateTimePopupHeader.js +8 -2
  16. package/es/DateTime/DateWidget.js +98 -35
  17. package/es/DateTime/DaysRow.js +4 -2
  18. package/es/DateTime/Time.js +10 -2
  19. package/es/DateTime/YearView.js +28 -4
  20. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  21. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  22. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  23. package/es/DateTime/common.js +3 -0
  24. package/es/DateTime/constants.js +1 -0
  25. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  26. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  27. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  28. package/es/DateTime/dateFormatUtils/index.js +32 -2
  29. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  30. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  31. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  32. package/es/DateTime/objectUtils.js +14 -20
  33. package/es/DateTime/props/defaultProps.js +2 -1
  34. package/es/DateTime/typeChecker.js +3 -0
  35. package/es/DateTime/validator.js +58 -6
  36. package/es/DropBox/DropBox.js +6 -2
  37. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  38. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  39. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  40. package/es/DropBox/props/defaultProps.js +1 -2
  41. package/es/DropBox/props/propTypes.js +1 -2
  42. package/es/DropDown/DropDown.js +8 -4
  43. package/es/DropDown/DropDownHeading.js +4 -5
  44. package/es/DropDown/DropDownItem.js +6 -0
  45. package/es/DropDown/DropDownSearch.js +4 -0
  46. package/es/DropDown/DropDownSeparator.js +1 -0
  47. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  48. package/es/Heading/Heading.js +2 -3
  49. package/es/Label/Label.js +2 -3
  50. package/es/Layout/Box.js +13 -0
  51. package/es/Layout/Container.js +12 -1
  52. package/es/Layout/index.js +1 -2
  53. package/es/ListItem/ListContainer.js +8 -3
  54. package/es/ListItem/ListItem.js +9 -3
  55. package/es/ListItem/ListItemWithAvatar.js +9 -3
  56. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  57. package/es/ListItem/ListItemWithIcon.js +8 -3
  58. package/es/ListItem/ListItemWithRadio.js +7 -3
  59. package/es/Modal/Modal.js +28 -11
  60. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  61. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  62. package/es/MultiSelect/EmptyState.js +2 -0
  63. package/es/MultiSelect/MultiSelect.js +99 -32
  64. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  65. package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
  66. package/es/MultiSelect/SelectedOptions.js +6 -3
  67. package/es/MultiSelect/Suggestions.js +7 -3
  68. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  69. package/es/MultiSelect/props/propTypes.js +2 -0
  70. package/es/PopOver/PopOver.js +18 -2
  71. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  72. package/es/Popup/Popup.js +77 -24
  73. package/es/Popup/__tests__/Popup.spec.js +17 -5
  74. package/es/Popup/viewPort.js +16 -4
  75. package/es/Provider/IdProvider.js +10 -5
  76. package/es/Provider/LibraryContext.js +6 -4
  77. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  78. package/es/Provider/ZindexProvider.js +9 -2
  79. package/es/Radio/Radio.js +4 -2
  80. package/es/Responsive/CustomResponsive.js +30 -18
  81. package/es/Responsive/RefWrapper.js +6 -7
  82. package/es/Responsive/ResizeComponent.js +35 -25
  83. package/es/Responsive/ResizeObserver.js +26 -6
  84. package/es/Responsive/Responsive.js +34 -20
  85. package/es/Responsive/index.js +1 -3
  86. package/es/Responsive/sizeObservers.js +28 -7
  87. package/es/Responsive/utils/index.js +7 -5
  88. package/es/Responsive/utils/shallowCompare.js +7 -2
  89. package/es/Responsive/windowResizeObserver.js +7 -0
  90. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  91. package/es/Ribbon/Ribbon.js +3 -2
  92. package/es/RippleEffect/RippleEffect.js +1 -3
  93. package/es/Select/GroupSelect.js +58 -14
  94. package/es/Select/Select.js +79 -33
  95. package/es/Select/SelectWithAvatar.js +17 -4
  96. package/es/Select/SelectWithIcon.js +46 -5
  97. package/es/Select/__tests__/Select.spec.js +6 -8
  98. package/es/Select/props/propTypes.js +1 -0
  99. package/es/Stencils/Stencils.js +3 -3
  100. package/es/Switch/Switch.js +5 -3
  101. package/es/Tab/Tab.js +4 -4
  102. package/es/Tab/TabContent.js +1 -0
  103. package/es/Tab/TabContentWrapper.js +2 -0
  104. package/es/Tab/TabWrapper.js +5 -2
  105. package/es/Tab/Tabs.js +54 -7
  106. package/es/Tab/__tests__/Tab.spec.js +1 -3
  107. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  108. package/es/Tag/Tag.js +6 -3
  109. package/es/TextBox/TextBox.js +15 -3
  110. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  111. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  112. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  113. package/es/Textarea/Textarea.js +12 -3
  114. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  115. package/es/Tooltip/Tooltip.js +58 -14
  116. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  117. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  118. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  119. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  120. package/es/semantic/Button/Button.js +3 -2
  121. package/es/utils/Common.js +54 -9
  122. package/es/utils/ContextOptimizer.js +4 -5
  123. package/es/utils/__tests__/debounce.spec.js +2 -2
  124. package/es/utils/constructFullName.js +2 -0
  125. package/es/utils/css/compileClassNames.js +5 -0
  126. package/es/utils/css/mergeStyle.js +7 -6
  127. package/es/utils/css/utils.js +1 -0
  128. package/es/utils/datetime/GMTZones.js +48 -0
  129. package/es/utils/datetime/common.js +31 -7
  130. package/es/utils/debounce.js +5 -1
  131. package/es/utils/dropDownUtils.js +68 -11
  132. package/es/utils/getInitial.js +4 -0
  133. package/es/utils/shallowEqual.js +6 -0
  134. package/lib/Accordion/Accordion.js +42 -18
  135. package/lib/Accordion/AccordionItem.js +40 -18
  136. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  137. package/lib/Accordion/index.js +3 -0
  138. package/lib/Accordion/props/propTypes.js +3 -0
  139. package/lib/Animation/Animation.js +38 -18
  140. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  141. package/lib/Animation/props/propTypes.js +3 -0
  142. package/lib/AppContainer/AppContainer.js +56 -21
  143. package/lib/AppContainer/props/propTypes.js +3 -0
  144. package/lib/Avatar/Avatar.js +78 -38
  145. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  146. package/lib/Avatar/props/propTypes.js +3 -0
  147. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  148. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  149. package/lib/AvatarTeam/props/propTypes.js +3 -0
  150. package/lib/Button/Button.js +31 -20
  151. package/lib/Button/css/cssJSLogic.js +18 -17
  152. package/lib/Button/index.js +3 -0
  153. package/lib/Button/props/defaultProps.js +2 -0
  154. package/lib/Button/props/propTypes.js +3 -0
  155. package/lib/Buttongroup/Buttongroup.js +32 -12
  156. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  157. package/lib/Buttongroup/props/propTypes.js +3 -0
  158. package/lib/Card/Card.js +102 -46
  159. package/lib/Card/__tests__/Card.spec.js +10 -1
  160. package/lib/Card/index.js +4 -0
  161. package/lib/Card/props/propTypes.js +3 -0
  162. package/lib/CheckBox/CheckBox.js +71 -47
  163. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  164. package/lib/CheckBox/props/propTypes.js +3 -0
  165. package/lib/DateTime/CalendarView.js +82 -42
  166. package/lib/DateTime/DateTime.js +246 -158
  167. package/lib/DateTime/DateTimePopupFooter.js +31 -8
  168. package/lib/DateTime/DateTimePopupHeader.js +48 -17
  169. package/lib/DateTime/DateWidget.js +352 -250
  170. package/lib/DateTime/DaysRow.js +27 -5
  171. package/lib/DateTime/Time.js +73 -32
  172. package/lib/DateTime/YearView.js +77 -28
  173. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  174. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  175. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  176. package/lib/DateTime/common.js +6 -0
  177. package/lib/DateTime/constants.js +1 -0
  178. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  179. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  180. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  181. package/lib/DateTime/dateFormatUtils/index.js +74 -16
  182. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  183. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  184. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  185. package/lib/DateTime/index.js +2 -0
  186. package/lib/DateTime/objectUtils.js +24 -20
  187. package/lib/DateTime/props/defaultProps.js +2 -1
  188. package/lib/DateTime/props/propTypes.js +11 -1
  189. package/lib/DateTime/typeChecker.js +4 -0
  190. package/lib/DateTime/validator.js +73 -10
  191. package/lib/DropBox/DropBox.js +34 -10
  192. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  193. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  194. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  195. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  196. package/lib/DropBox/__tests__/DropBox.spec.js +6 -2
  197. package/lib/DropBox/css/cssJSLogic.js +3 -1
  198. package/lib/DropBox/props/defaultProps.js +8 -4
  199. package/lib/DropBox/props/propTypes.js +10 -4
  200. package/lib/DropDown/DropDown.js +52 -8
  201. package/lib/DropDown/DropDownHeading.js +39 -20
  202. package/lib/DropDown/DropDownItem.js +42 -20
  203. package/lib/DropDown/DropDownSearch.js +40 -17
  204. package/lib/DropDown/DropDownSeparator.js +24 -4
  205. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  206. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  207. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  208. package/lib/DropDown/index.js +9 -0
  209. package/lib/DropDown/props/propTypes.js +6 -4
  210. package/lib/Heading/Heading.js +37 -15
  211. package/lib/Heading/props/propTypes.js +3 -0
  212. package/lib/Label/Label.js +39 -19
  213. package/lib/Label/__tests__/Label.spec.js +14 -1
  214. package/lib/Label/props/propTypes.js +3 -0
  215. package/lib/Layout/Box.js +31 -11
  216. package/lib/Layout/Container.js +29 -10
  217. package/lib/Layout/__tests__/Box.spec.js +65 -49
  218. package/lib/Layout/__tests__/Container.spec.js +67 -50
  219. package/lib/Layout/index.js +3 -0
  220. package/lib/Layout/props/propTypes.js +3 -0
  221. package/lib/Layout/utils.js +10 -0
  222. package/lib/ListItem/ListContainer.js +48 -27
  223. package/lib/ListItem/ListItem.js +69 -45
  224. package/lib/ListItem/ListItemWithAvatar.js +75 -48
  225. package/lib/ListItem/ListItemWithCheckBox.js +64 -39
  226. package/lib/ListItem/ListItemWithIcon.js +68 -44
  227. package/lib/ListItem/ListItemWithRadio.js +65 -41
  228. package/lib/ListItem/index.js +7 -0
  229. package/lib/ListItem/props/propTypes.js +6 -4
  230. package/lib/Modal/Modal.js +45 -10
  231. package/lib/Modal/props/propTypes.js +3 -0
  232. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +294 -166
  233. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  234. package/lib/MultiSelect/EmptyState.js +45 -24
  235. package/lib/MultiSelect/MultiSelect.js +323 -206
  236. package/lib/MultiSelect/MultiSelectHeader.js +30 -8
  237. package/lib/MultiSelect/MultiSelectWithAvatar.js +105 -63
  238. package/lib/MultiSelect/SelectedOptions.js +43 -17
  239. package/lib/MultiSelect/Suggestions.js +64 -32
  240. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  241. package/lib/MultiSelect/index.js +5 -0
  242. package/lib/MultiSelect/props/defaultProps.js +2 -0
  243. package/lib/MultiSelect/props/propTypes.js +5 -0
  244. package/lib/PopOver/PopOver.js +95 -49
  245. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  246. package/lib/PopOver/index.js +4 -0
  247. package/lib/PopOver/props/propTypes.js +3 -0
  248. package/lib/Popup/Popup.js +158 -81
  249. package/lib/Popup/__tests__/Popup.spec.js +43 -8
  250. package/lib/Popup/viewPort.js +28 -14
  251. package/lib/Provider/AvatarSize.js +4 -0
  252. package/lib/Provider/Config.js +2 -0
  253. package/lib/Provider/CssProvider.js +4 -0
  254. package/lib/Provider/IdProvider.js +17 -6
  255. package/lib/Provider/LibraryContext.js +35 -15
  256. package/lib/Provider/LibraryContextInit.js +4 -0
  257. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  258. package/lib/Provider/ZindexProvider.js +15 -3
  259. package/lib/Provider/index.js +5 -0
  260. package/lib/Radio/Radio.js +61 -38
  261. package/lib/Radio/__tests__/Radiospec.js +9 -5
  262. package/lib/Radio/props/propTypes.js +3 -0
  263. package/lib/Responsive/CustomResponsive.js +73 -29
  264. package/lib/Responsive/RefWrapper.js +17 -11
  265. package/lib/Responsive/ResizeComponent.js +62 -36
  266. package/lib/Responsive/ResizeObserver.js +24 -10
  267. package/lib/Responsive/Responsive.js +80 -30
  268. package/lib/Responsive/index.js +4 -0
  269. package/lib/Responsive/props/propTypes.js +3 -0
  270. package/lib/Responsive/sizeObservers.js +53 -17
  271. package/lib/Responsive/utils/index.js +11 -3
  272. package/lib/Responsive/utils/shallowCompare.js +11 -2
  273. package/lib/Responsive/windowResizeObserver.js +8 -0
  274. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  275. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  276. package/lib/Ribbon/Ribbon.js +33 -13
  277. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  278. package/lib/Ribbon/props/propTypes.js +3 -0
  279. package/lib/RippleEffect/RippleEffect.js +18 -10
  280. package/lib/RippleEffect/props/propTypes.js +3 -0
  281. package/lib/Select/GroupSelect.js +229 -130
  282. package/lib/Select/Select.js +290 -209
  283. package/lib/Select/SelectWithAvatar.js +102 -56
  284. package/lib/Select/SelectWithIcon.js +132 -76
  285. package/lib/Select/__tests__/Select.spec.js +133 -91
  286. package/lib/Select/index.js +5 -0
  287. package/lib/Select/props/defaultProps.js +5 -4
  288. package/lib/Select/props/propTypes.js +4 -0
  289. package/lib/Stencils/Stencils.js +29 -10
  290. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  291. package/lib/Stencils/props/propTypes.js +3 -0
  292. package/lib/Switch/Switch.js +57 -34
  293. package/lib/Switch/props/propTypes.js +3 -0
  294. package/lib/Tab/Tab.js +40 -27
  295. package/lib/Tab/TabContent.js +12 -5
  296. package/lib/Tab/TabContentWrapper.js +13 -6
  297. package/lib/Tab/TabWrapper.js +37 -19
  298. package/lib/Tab/Tabs.js +171 -91
  299. package/lib/Tab/__tests__/Tab.spec.js +67 -58
  300. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  301. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  302. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  303. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  304. package/lib/Tab/index.js +6 -0
  305. package/lib/Tab/props/propTypes.js +3 -0
  306. package/lib/Tag/Tag.js +72 -43
  307. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  308. package/lib/Tag/props/propTypes.js +3 -0
  309. package/lib/TextBox/TextBox.js +85 -59
  310. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  311. package/lib/TextBox/props/propTypes.js +6 -4
  312. package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
  313. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  314. package/lib/TextBoxIcon/props/propTypes.js +3 -0
  315. package/lib/Textarea/Textarea.js +54 -29
  316. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  317. package/lib/Textarea/props/propTypes.js +3 -0
  318. package/lib/Tooltip/Tooltip.js +94 -31
  319. package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
  320. package/lib/Tooltip/props/propTypes.js +3 -0
  321. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  322. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  323. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  324. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  325. package/lib/VelocityAnimation/index.js +3 -0
  326. package/lib/css.js +40 -0
  327. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  328. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  329. package/lib/index.js +57 -0
  330. package/lib/semantic/Button/Button.js +42 -22
  331. package/lib/semantic/Button/props/propTypes.js +3 -0
  332. package/lib/semantic/index.js +2 -0
  333. package/lib/utils/Common.js +110 -18
  334. package/lib/utils/ContextOptimizer.js +16 -10
  335. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  336. package/lib/utils/__tests__/debounce.spec.js +3 -2
  337. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  338. package/lib/utils/constructFullName.js +13 -4
  339. package/lib/utils/css/compileClassNames.js +6 -0
  340. package/lib/utils/css/mergeStyle.js +10 -7
  341. package/lib/utils/css/utils.js +8 -0
  342. package/lib/utils/datetime/GMTZones.js +55 -0
  343. package/lib/utils/datetime/common.js +52 -7
  344. package/lib/utils/debounce.js +6 -1
  345. package/lib/utils/dropDownUtils.js +175 -59
  346. package/lib/utils/dummyFunction.js +2 -0
  347. package/lib/utils/getHTMLFontSize.js +1 -0
  348. package/lib/utils/getInitial.js +6 -0
  349. package/lib/utils/index.js +4 -0
  350. package/lib/utils/scrollTo.js +2 -0
  351. package/lib/utils/shallowEqual.js +8 -0
  352. package/package.json +1 -1
@@ -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,
@@ -475,14 +515,15 @@ class SelectWithIcon extends Component {
475
515
  }, /*#__PURE__*/React.createElement(Loader, null))))));
476
516
  }) : null);
477
517
  }
518
+
478
519
  }
479
- SelectWithIcon.propTypes = SelectWithIcon_propTypes;
480
- SelectWithIcon.defaultProps = SelectWithIcon_defaultProps;
481
520
 
482
- // if (__DOCS__) {
521
+ SelectWithIcon.propTypes = SelectWithIcon_propTypes;
522
+ SelectWithIcon.defaultProps = SelectWithIcon_defaultProps; // if (__DOCS__) {
483
523
  // SelectWithIcon.docs = {
484
524
  // componentGroup: 'Form Elements',
485
525
  // folderName: 'Style Guide'
486
526
  // };
487
527
  // }
528
+
488
529
  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,4 +1,5 @@
1
1
  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); }
2
+
2
3
  import React from 'react';
3
4
  import { defaultProps } from './props/defaultProps';
4
5
  import { propTypes } from './props/propTypes';
@@ -10,6 +11,7 @@ export default class Switch extends React.Component {
10
11
  super(props);
11
12
  this.onChange = this.onChange.bind(this);
12
13
  }
14
+
13
15
  onChange(e) {
14
16
  let {
15
17
  onChange,
@@ -17,6 +19,7 @@ export default class Switch extends React.Component {
17
19
  } = this.props;
18
20
  onChange && onChange(!checked, e);
19
21
  }
22
+
20
23
  render() {
21
24
  let {
22
25
  id,
@@ -84,11 +87,10 @@ export default class Switch extends React.Component {
84
87
  customClass: customLabel
85
88
  }, LabelProps)));
86
89
  }
90
+
87
91
  }
88
92
  Switch.defaultProps = defaultProps;
89
- Switch.propTypes = propTypes;
90
-
91
- // if (__DOCS__) {
93
+ Switch.propTypes = propTypes; // if (__DOCS__) {
92
94
  // Switch.docs = {
93
95
  // componentGroup: 'Form Elements',
94
96
  // folderName: 'Style Guide'
package/es/Tab/Tab.js CHANGED
@@ -1,7 +1,8 @@
1
1
  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); }
2
+
2
3
  /* eslint-disable react/forbid-component-props */
3
- /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['text', 'tabAlpha', 'alphaActive', 'gammaActive', 'betaActive', 'deltaActive', 'tabGamma', 'tabBeta', 'tabDelta',', 'specialActive', 'tabSpecial', 'alphaActive_border', 'gammaActive_border', 'betaActive_border', 'deltaActive_border'] }] */
4
4
 
5
+ /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['text', 'tabAlpha', 'alphaActive', 'gammaActive', 'betaActive', 'deltaActive', 'tabGamma', 'tabBeta', 'tabDelta',', 'specialActive', 'tabSpecial', 'alphaActive_border', 'gammaActive_border', 'betaActive_border', 'deltaActive_border'] }] */
5
6
  import React, { useMemo, useCallback } from 'react';
6
7
  import { Tab_defaultProps } from './props/defaultProps';
7
8
  import { Tab_propTypes } from './props/propTypes';
@@ -55,6 +56,7 @@ export default function Tab(_ref) {
55
56
  event && event.stopPropagation();
56
57
  return;
57
58
  }
59
+
58
60
  event && event.preventDefault();
59
61
  onSelect(id);
60
62
  onClick && onClick(event);
@@ -100,9 +102,7 @@ export default function Tab(_ref) {
100
102
  }, children) : null));
101
103
  }
102
104
  Tab.defaultProps = Tab_defaultProps;
103
- Tab.propTypes = Tab_propTypes;
104
-
105
- // if (__DOCS__) {
105
+ Tab.propTypes = Tab_propTypes; // if (__DOCS__) {
106
106
  // Tab.docs = {
107
107
  // componentGroup: 'Tab',
108
108
  // folderName: 'Style Guide'
@@ -24,6 +24,7 @@ const TabContent = _ref => {
24
24
  dataSelectorId: dataSelectorId
25
25
  }, children);
26
26
  };
27
+
27
28
  TabContent.defaultProps = TabContent_defaultProps;
28
29
  TabContent.propTypes = TabContent_propTypes;
29
30
  export default TabContent;
@@ -3,6 +3,7 @@ import { TabContentWrapper_defaultProps } from './props/defaultProps';
3
3
  import { TabContentWrapper_propTypes } from './props/propTypes';
4
4
  import { Box } from '../Layout';
5
5
  /* eslint-disable react/forbid-component-props */
6
+
6
7
  const TabContentWrapper = _ref => {
7
8
  let {
8
9
  style,
@@ -22,6 +23,7 @@ const TabContentWrapper = _ref => {
22
23
  dataSelectorId: dataSelectorId
23
24
  }, React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) && child.props.id === selectedTab ? child : null));
24
25
  };
26
+
25
27
  TabContentWrapper.defaultProps = TabContentWrapper_defaultProps;
26
28
  TabContentWrapper.propTypes = TabContentWrapper_propTypes;
27
29
  export default TabContentWrapper;
@@ -1,8 +1,10 @@
1
1
  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); }
2
+
2
3
  import React, { useState, useCallback } from 'react';
3
4
  import { TabWrapper_defaultProps } from './props/defaultProps';
4
5
  import { TabWrapper_propTypes } from './props/propTypes';
5
6
  import { Container } from '../Layout';
7
+
6
8
  function TabWrapper(_ref) {
7
9
  let {
8
10
  defaultTab,
@@ -24,6 +26,7 @@ function TabWrapper(_ref) {
24
26
  if (!hookToDisableInternalState) {
25
27
  setSelected(id);
26
28
  }
29
+
27
30
  onSelect && onSelect(id);
28
31
  }, [hookToDisableInternalState, onSelect]);
29
32
  return /*#__PURE__*/React.createElement(Container, {
@@ -33,8 +36,7 @@ function TabWrapper(_ref) {
33
36
  }, React.Children.map(children, child => {
34
37
  let TabsChild = child.type;
35
38
  let selectedTab = hookToDisableInternalState ? defaultTab : selectedTabInternal;
36
- return /*#__PURE__*/React.createElement(TabsChild
37
- // eslint-disable-next-line react/no-array-index-key
39
+ return /*#__PURE__*/React.createElement(TabsChild // eslint-disable-next-line react/no-array-index-key
38
40
  , _extends({}, child.props, {
39
41
  selectedTab: selectedTab,
40
42
  onSelect: setSelectedTab,
@@ -49,6 +51,7 @@ function TabWrapper(_ref) {
49
51
  }));
50
52
  }));
51
53
  }
54
+
52
55
  TabWrapper.propTypes = TabWrapper_propTypes;
53
56
  TabWrapper.defaultProps = TabWrapper_defaultProps;
54
57
  export default TabWrapper;