@zohodesk/components 1.2.23 → 1.2.24

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 (627) 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 +7 -89
  5. package/es/Animation/utils.js +83 -0
  6. package/es/AppContainer/AppContainer.js +14 -3
  7. package/es/AppContainer/AppContainer.module.css +2 -2
  8. package/es/Avatar/Avatar.js +23 -11
  9. package/es/Avatar/Avatar.module.css +18 -18
  10. package/es/AvatarTeam/AvatarTeam.js +3 -3
  11. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  12. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
  13. package/es/Button/Button.js +4 -3
  14. package/es/Button/css/Button.module.css +70 -70
  15. package/es/Buttongroup/Buttongroup.js +3 -3
  16. package/es/Buttongroup/Buttongroup.module.css +13 -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 +32 -20
  21. package/es/DateTime/DateTime.js +69 -6
  22. package/es/DateTime/DateTime.module.css +40 -40
  23. package/es/DateTime/DateTimePopupFooter.js +4 -1
  24. package/es/DateTime/DateTimePopupHeader.js +8 -2
  25. package/es/DateTime/DateWidget.js +98 -35
  26. package/es/DateTime/DateWidget.module.css +5 -5
  27. package/es/DateTime/DaysRow.js +4 -1
  28. package/es/DateTime/Time.js +10 -1
  29. package/es/DateTime/YearView.js +28 -4
  30. package/es/DateTime/YearView.module.css +15 -15
  31. package/es/DateTime/common.js +3 -0
  32. package/es/DateTime/constants.js +1 -0
  33. package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
  34. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  35. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  36. package/es/DateTime/dateFormatUtils/index.js +31 -1
  37. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  38. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  39. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  40. package/es/DateTime/objectUtils.js +14 -20
  41. package/es/DateTime/typeChecker.js +3 -0
  42. package/es/DateTime/validator.js +58 -6
  43. package/es/DropBox/DropBox.js +6 -2
  44. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  45. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  46. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  47. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  48. package/es/DropBox/css/DropBox.module.css +6 -6
  49. package/es/DropBox/props/defaultProps.js +1 -2
  50. package/es/DropBox/props/propTypes.js +1 -2
  51. package/es/DropDown/DropDown.js +7 -1
  52. package/es/DropDown/DropDown.module.css +2 -2
  53. package/es/DropDown/DropDownHeading.js +4 -5
  54. package/es/DropDown/DropDownHeading.module.css +6 -6
  55. package/es/DropDown/DropDownItem.js +6 -0
  56. package/es/DropDown/DropDownItem.module.css +12 -12
  57. package/es/DropDown/DropDownSearch.js +4 -0
  58. package/es/DropDown/DropDownSearch.module.css +3 -3
  59. package/es/DropDown/DropDownSeparator.js +1 -0
  60. package/es/DropDown/DropDownSeparator.module.css +2 -2
  61. package/es/DropDown/props/propTypes.js +1 -2
  62. package/es/Heading/Heading.js +2 -3
  63. package/es/Heading/Heading.module.css +2 -2
  64. package/es/Label/Label.js +2 -3
  65. package/es/Label/Label.module.css +5 -5
  66. package/es/Label/__tests__/Label.spec.js +1 -2
  67. package/es/Layout/Box.js +15 -2
  68. package/es/Layout/Container.js +14 -3
  69. package/es/Layout/Layout.module.css +15 -15
  70. package/es/Layout/index.js +1 -2
  71. package/es/Layout/utils.js +1 -0
  72. package/es/ListItem/ListContainer.js +8 -3
  73. package/es/ListItem/ListItem.js +9 -3
  74. package/es/ListItem/ListItem.module.css +27 -38
  75. package/es/ListItem/ListItemWithAvatar.js +9 -3
  76. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  77. package/es/ListItem/ListItemWithIcon.js +8 -3
  78. package/es/ListItem/ListItemWithRadio.js +7 -3
  79. package/es/Modal/Modal.js +28 -11
  80. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  81. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  82. package/es/MultiSelect/EmptyState.js +2 -0
  83. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  84. package/es/MultiSelect/MultiSelect.js +99 -30
  85. package/es/MultiSelect/MultiSelect.module.css +31 -31
  86. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  87. package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
  88. package/es/MultiSelect/SelectedOptions.js +6 -3
  89. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  90. package/es/MultiSelect/Suggestions.js +7 -3
  91. package/es/MultiSelect/props/propTypes.js +2 -2
  92. package/es/PopOver/PopOver.js +16 -0
  93. package/es/Popup/Popup.js +77 -24
  94. package/es/Popup/viewPort.js +16 -4
  95. package/es/Provider/IdProvider.js +10 -5
  96. package/es/Provider/LibraryContext.js +6 -4
  97. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  98. package/es/Provider/ZindexProvider.js +9 -2
  99. package/es/Radio/Radio.js +3 -0
  100. package/es/Radio/Radio.module.css +9 -9
  101. package/es/Responsive/CustomResponsive.js +30 -18
  102. package/es/Responsive/RefWrapper.js +6 -7
  103. package/es/Responsive/ResizeComponent.js +35 -25
  104. package/es/Responsive/ResizeObserver.js +26 -6
  105. package/es/Responsive/Responsive.js +34 -20
  106. package/es/Responsive/index.js +1 -3
  107. package/es/Responsive/sizeObservers.js +28 -7
  108. package/es/Responsive/utils/index.js +7 -5
  109. package/es/Responsive/utils/shallowCompare.js +7 -2
  110. package/es/Responsive/windowResizeObserver.js +7 -0
  111. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  112. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  113. package/es/ResponsiveDropBox/props/propTypes.js +1 -2
  114. package/es/Ribbon/Ribbon.js +3 -2
  115. package/es/Ribbon/Ribbon.module.css +45 -48
  116. package/es/RippleEffect/RippleEffect.js +1 -3
  117. package/es/Select/GroupSelect.js +58 -14
  118. package/es/Select/Select.js +79 -33
  119. package/es/Select/Select.module.css +23 -23
  120. package/es/Select/SelectWithAvatar.js +17 -4
  121. package/es/Select/SelectWithIcon.js +46 -5
  122. package/es/Select/props/propTypes.js +2 -2
  123. package/es/Stencils/Stencils.js +3 -3
  124. package/es/Stencils/Stencils.module.css +11 -11
  125. package/es/Switch/Switch.js +5 -3
  126. package/es/Switch/Switch.module.css +23 -23
  127. package/es/Tab/Tab.js +4 -4
  128. package/es/Tab/Tab.module.css +14 -14
  129. package/es/Tab/TabContent.js +1 -0
  130. package/es/Tab/TabContentWrapper.js +3 -0
  131. package/es/Tab/TabWrapper.js +5 -2
  132. package/es/Tab/Tabs.js +54 -7
  133. package/es/Tab/Tabs.module.css +22 -22
  134. package/es/Tag/Tag.js +6 -3
  135. package/es/Tag/Tag.module.css +24 -25
  136. package/es/TextBox/TextBox.js +16 -3
  137. package/es/TextBox/TextBox.module.css +9 -9
  138. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  139. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  140. package/es/TextBoxIcon/props/propTypes.js +1 -2
  141. package/es/Textarea/Textarea.js +12 -3
  142. package/es/Textarea/Textarea.module.css +21 -21
  143. package/es/Tooltip/Tooltip.js +58 -14
  144. package/es/Tooltip/Tooltip.module.css +5 -5
  145. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  146. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  147. package/es/common/animation.module.css +8 -8
  148. package/es/common/avatarsizes.module.css +16 -16
  149. package/es/common/basicReset.module.css +3 -3
  150. package/es/common/common.module.css +24 -24
  151. package/es/common/customscroll.module.css +2 -2
  152. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  153. package/es/semantic/Button/Button.js +3 -2
  154. package/es/semantic/Button/semanticButton.module.css +1 -1
  155. package/es/utils/Common.js +54 -9
  156. package/es/utils/ContextOptimizer.js +4 -5
  157. package/es/utils/constructFullName.js +2 -0
  158. package/es/utils/datetime/common.js +16 -5
  159. package/es/utils/debounce.js +5 -1
  160. package/es/utils/dropDownUtils.js +68 -11
  161. package/es/utils/getInitial.js +4 -0
  162. package/es/utils/shallowEqual.js +6 -0
  163. package/es/v1/Accordion/Accordion.js +4 -3
  164. package/es/v1/Accordion/AccordionItem.js +4 -2
  165. package/es/v1/Animation/Animation.js +5 -89
  166. package/es/v1/Animation/utils.js +83 -0
  167. package/es/v1/AppContainer/AppContainer.js +9 -3
  168. package/es/v1/Avatar/Avatar.js +18 -6
  169. package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
  170. package/es/v1/Button/Button.js +3 -3
  171. package/es/v1/Card/Card.js +16 -8
  172. package/es/v1/CheckBox/CheckBox.js +6 -3
  173. package/es/v1/DateTime/CalendarView.js +32 -20
  174. package/es/v1/DateTime/DateTime.js +69 -6
  175. package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
  176. package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
  177. package/es/v1/DateTime/DateWidget.js +98 -35
  178. package/es/v1/DateTime/DaysRow.js +4 -1
  179. package/es/v1/DateTime/Time.js +10 -1
  180. package/es/v1/DateTime/YearView.js +28 -4
  181. package/es/v1/DropBox/DropBox.js +6 -2
  182. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  183. package/es/v1/DropBox/props/defaultProps.js +1 -2
  184. package/es/v1/DropBox/props/propTypes.js +1 -2
  185. package/es/v1/DropDown/DropDown.js +3 -0
  186. package/es/v1/DropDown/DropDownHeading.js +2 -2
  187. package/es/v1/DropDown/DropDownItem.js +5 -0
  188. package/es/v1/DropDown/DropDownSearch.js +3 -2
  189. package/es/v1/DropDown/props/propTypes.js +1 -2
  190. package/es/v1/Heading/Heading.js +1 -3
  191. package/es/v1/Layout/Box.js +15 -2
  192. package/es/v1/Layout/Container.js +14 -3
  193. package/es/v1/ListItem/ListContainer.js +8 -3
  194. package/es/v1/ListItem/ListItem.js +10 -3
  195. package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
  196. package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
  197. package/es/v1/ListItem/ListItemWithIcon.js +9 -3
  198. package/es/v1/ListItem/ListItemWithRadio.js +8 -3
  199. package/es/v1/Modal/Modal.js +17 -1
  200. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
  201. package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
  202. package/es/v1/MultiSelect/EmptyState.js +2 -0
  203. package/es/v1/MultiSelect/MultiSelect.js +100 -31
  204. package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
  205. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
  206. package/es/v1/MultiSelect/SelectedOptions.js +6 -3
  207. package/es/v1/MultiSelect/Suggestions.js +7 -3
  208. package/es/v1/MultiSelect/props/propTypes.js +2 -2
  209. package/es/v1/PopOver/PopOver.js +11 -0
  210. package/es/v1/Popup/Popup.js +77 -24
  211. package/es/v1/Provider/IdProvider.js +10 -5
  212. package/es/v1/Provider/LibraryContext.js +6 -4
  213. package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
  214. package/es/v1/Provider/ZindexProvider.js +9 -2
  215. package/es/v1/Radio/Radio.js +5 -2
  216. package/es/v1/Responsive/CustomResponsive.js +30 -18
  217. package/es/v1/Responsive/RefWrapper.js +6 -7
  218. package/es/v1/Responsive/ResizeComponent.js +35 -25
  219. package/es/v1/Responsive/ResizeObserver.js +26 -6
  220. package/es/v1/Responsive/Responsive.js +34 -20
  221. package/es/v1/Responsive/index.js +1 -3
  222. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
  223. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
  224. package/es/v1/Select/GroupSelect.js +58 -14
  225. package/es/v1/Select/Select.js +81 -37
  226. package/es/v1/Select/SelectWithAvatar.js +17 -4
  227. package/es/v1/Select/SelectWithIcon.js +46 -5
  228. package/es/v1/Select/props/propTypes.js +2 -2
  229. package/es/v1/Stencils/Stencils.js +2 -0
  230. package/es/v1/Switch/Switch.js +6 -3
  231. package/es/v1/Tab/Tab.js +3 -3
  232. package/es/v1/Tab/TabContent.js +1 -0
  233. package/es/v1/Tab/TabContentWrapper.js +3 -0
  234. package/es/v1/Tab/TabWrapper.js +5 -2
  235. package/es/v1/Tab/Tabs.js +54 -9
  236. package/es/v1/Tab/v1Tab.module.css +14 -14
  237. package/es/v1/Tab/v1Tabs.module.css +22 -22
  238. package/es/v1/Tag/Tag.js +5 -1
  239. package/es/v1/TextBox/TextBox.js +14 -0
  240. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
  241. package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
  242. package/es/v1/Textarea/Textarea.js +10 -3
  243. package/es/v1/Tooltip/Tooltip.js +58 -14
  244. package/es/v1/Typography/Typography.js +2 -0
  245. package/es/v1/Typography/css/Typography.module.css +31 -31
  246. package/es/v1/Typography/css/cssJSLogic.js +3 -0
  247. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
  248. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
  249. package/es/v1/semantic/Button/Button.js +1 -2
  250. package/lib/Accordion/Accordion.js +42 -18
  251. package/lib/Accordion/AccordionItem.js +40 -18
  252. package/lib/Accordion/index.js +3 -0
  253. package/lib/Accordion/props/propTypes.js +3 -0
  254. package/lib/Animation/Animation.js +42 -104
  255. package/lib/Animation/props/propTypes.js +3 -0
  256. package/lib/Animation/utils.js +94 -0
  257. package/lib/AppContainer/AppContainer.js +58 -20
  258. package/lib/AppContainer/AppContainer.module.css +2 -2
  259. package/lib/AppContainer/props/propTypes.js +3 -0
  260. package/lib/Avatar/Avatar.js +78 -38
  261. package/lib/Avatar/Avatar.module.css +18 -18
  262. package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
  263. package/lib/Avatar/props/propTypes.js +3 -0
  264. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  265. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  266. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
  267. package/lib/AvatarTeam/props/propTypes.js +3 -0
  268. package/lib/Button/Button.js +33 -22
  269. package/lib/Button/__tests__/Button.spec.js +65 -48
  270. package/lib/Button/css/Button.module.css +70 -70
  271. package/lib/Button/css/cssJSLogic.js +18 -17
  272. package/lib/Button/index.js +3 -0
  273. package/lib/Button/props/defaultProps.js +2 -0
  274. package/lib/Button/props/propTypes.js +3 -0
  275. package/lib/Buttongroup/Buttongroup.js +32 -12
  276. package/lib/Buttongroup/Buttongroup.module.css +13 -15
  277. package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
  278. package/lib/Buttongroup/props/propTypes.js +3 -0
  279. package/lib/Card/Card.js +102 -46
  280. package/lib/Card/index.js +4 -0
  281. package/lib/Card/props/propTypes.js +3 -0
  282. package/lib/CheckBox/CheckBox.js +71 -47
  283. package/lib/CheckBox/CheckBox.module.css +15 -15
  284. package/lib/CheckBox/props/propTypes.js +3 -0
  285. package/lib/DateTime/CalendarView.js +82 -42
  286. package/lib/DateTime/DateTime.js +244 -156
  287. package/lib/DateTime/DateTime.module.css +40 -40
  288. package/lib/DateTime/DateTimePopupFooter.js +33 -8
  289. package/lib/DateTime/DateTimePopupHeader.js +49 -17
  290. package/lib/DateTime/DateWidget.js +350 -249
  291. package/lib/DateTime/DateWidget.module.css +5 -5
  292. package/lib/DateTime/DaysRow.js +28 -5
  293. package/lib/DateTime/Time.js +75 -32
  294. package/lib/DateTime/YearView.js +76 -27
  295. package/lib/DateTime/YearView.module.css +15 -15
  296. package/lib/DateTime/common.js +6 -0
  297. package/lib/DateTime/constants.js +1 -0
  298. package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
  299. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  300. package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
  301. package/lib/DateTime/dateFormatUtils/index.js +73 -16
  302. package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
  303. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  304. package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
  305. package/lib/DateTime/index.js +2 -0
  306. package/lib/DateTime/objectUtils.js +24 -20
  307. package/lib/DateTime/props/propTypes.js +11 -1
  308. package/lib/DateTime/typeChecker.js +4 -0
  309. package/lib/DateTime/validator.js +73 -10
  310. package/lib/DropBox/DropBox.js +45 -21
  311. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  312. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  313. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  314. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  315. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  316. package/lib/DropBox/css/DropBox.module.css +6 -6
  317. package/lib/DropBox/css/cssJSLogic.js +3 -1
  318. package/lib/DropBox/props/defaultProps.js +8 -4
  319. package/lib/DropBox/props/propTypes.js +10 -4
  320. package/lib/DropDown/DropDown.js +51 -5
  321. package/lib/DropDown/DropDown.module.css +2 -2
  322. package/lib/DropDown/DropDownHeading.js +39 -20
  323. package/lib/DropDown/DropDownHeading.module.css +6 -6
  324. package/lib/DropDown/DropDownItem.js +42 -20
  325. package/lib/DropDown/DropDownItem.module.css +12 -12
  326. package/lib/DropDown/DropDownSearch.js +40 -17
  327. package/lib/DropDown/DropDownSearch.module.css +3 -3
  328. package/lib/DropDown/DropDownSeparator.js +24 -4
  329. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  330. package/lib/DropDown/index.js +9 -0
  331. package/lib/DropDown/props/propTypes.js +10 -4
  332. package/lib/Heading/Heading.js +37 -15
  333. package/lib/Heading/Heading.module.css +2 -2
  334. package/lib/Heading/props/propTypes.js +3 -0
  335. package/lib/Label/Label.js +41 -21
  336. package/lib/Label/Label.module.css +5 -5
  337. package/lib/Label/__tests__/Label.spec.js +48 -34
  338. package/lib/Label/props/propTypes.js +3 -0
  339. package/lib/Layout/Box.js +35 -15
  340. package/lib/Layout/Container.js +33 -14
  341. package/lib/Layout/Layout.module.css +15 -15
  342. package/lib/Layout/index.js +3 -0
  343. package/lib/Layout/props/propTypes.js +3 -0
  344. package/lib/Layout/utils.js +11 -0
  345. package/lib/ListItem/ListContainer.js +55 -30
  346. package/lib/ListItem/ListItem.js +74 -45
  347. package/lib/ListItem/ListItem.module.css +27 -38
  348. package/lib/ListItem/ListItemWithAvatar.js +80 -48
  349. package/lib/ListItem/ListItemWithCheckBox.js +70 -40
  350. package/lib/ListItem/ListItemWithIcon.js +73 -44
  351. package/lib/ListItem/ListItemWithRadio.js +71 -42
  352. package/lib/ListItem/index.js +7 -0
  353. package/lib/ListItem/props/propTypes.js +6 -4
  354. package/lib/Modal/Modal.js +45 -10
  355. package/lib/Modal/props/propTypes.js +3 -0
  356. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
  357. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  358. package/lib/MultiSelect/EmptyState.js +45 -24
  359. package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  360. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  361. package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  362. package/lib/MultiSelect/MultiSelect.js +333 -214
  363. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  364. package/lib/MultiSelect/MultiSelectHeader.js +29 -7
  365. package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
  366. package/lib/MultiSelect/SelectedOptions.js +43 -17
  367. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  368. package/lib/MultiSelect/Suggestions.js +64 -32
  369. package/lib/MultiSelect/index.js +5 -0
  370. package/lib/MultiSelect/props/defaultProps.js +2 -0
  371. package/lib/MultiSelect/props/propTypes.js +14 -4
  372. package/lib/PopOver/PopOver.js +94 -47
  373. package/lib/PopOver/index.js +4 -0
  374. package/lib/PopOver/props/propTypes.js +3 -0
  375. package/lib/Popup/Popup.js +158 -81
  376. package/lib/Popup/viewPort.js +28 -14
  377. package/lib/Provider/AvatarSize.js +4 -0
  378. package/lib/Provider/Config.js +2 -0
  379. package/lib/Provider/CssProvider.js +4 -0
  380. package/lib/Provider/IdProvider.js +17 -6
  381. package/lib/Provider/LibraryContext.js +35 -15
  382. package/lib/Provider/LibraryContextInit.js +4 -0
  383. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  384. package/lib/Provider/ZindexProvider.js +15 -3
  385. package/lib/Provider/index.js +5 -0
  386. package/lib/Radio/Radio.js +60 -36
  387. package/lib/Radio/Radio.module.css +9 -9
  388. package/lib/Radio/__tests__/Radio.spec.js +134 -103
  389. package/lib/Radio/props/propTypes.js +3 -0
  390. package/lib/Responsive/CustomResponsive.js +73 -29
  391. package/lib/Responsive/RefWrapper.js +17 -11
  392. package/lib/Responsive/ResizeComponent.js +62 -36
  393. package/lib/Responsive/ResizeObserver.js +24 -10
  394. package/lib/Responsive/Responsive.js +80 -30
  395. package/lib/Responsive/index.js +4 -0
  396. package/lib/Responsive/props/propTypes.js +3 -0
  397. package/lib/Responsive/sizeObservers.js +53 -17
  398. package/lib/Responsive/utils/index.js +11 -3
  399. package/lib/Responsive/utils/shallowCompare.js +11 -2
  400. package/lib/Responsive/windowResizeObserver.js +8 -0
  401. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  402. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  403. package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
  404. package/lib/Ribbon/Ribbon.js +33 -13
  405. package/lib/Ribbon/Ribbon.module.css +45 -48
  406. package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
  407. package/lib/Ribbon/props/propTypes.js +3 -0
  408. package/lib/RippleEffect/RippleEffect.js +18 -10
  409. package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
  410. package/lib/RippleEffect/props/propTypes.js +3 -0
  411. package/lib/Select/GroupSelect.js +229 -130
  412. package/lib/Select/Select.js +295 -211
  413. package/lib/Select/Select.module.css +23 -23
  414. package/lib/Select/SelectWithAvatar.js +102 -56
  415. package/lib/Select/SelectWithIcon.js +131 -76
  416. package/lib/Select/index.js +5 -0
  417. package/lib/Select/props/defaultProps.js +5 -4
  418. package/lib/Select/props/propTypes.js +10 -4
  419. package/lib/Stencils/Stencils.js +29 -10
  420. package/lib/Stencils/Stencils.module.css +11 -11
  421. package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
  422. package/lib/Stencils/props/propTypes.js +3 -0
  423. package/lib/Switch/Switch.js +57 -34
  424. package/lib/Switch/Switch.module.css +23 -23
  425. package/lib/Switch/__tests__/Switch.spec.js +91 -72
  426. package/lib/Switch/props/propTypes.js +3 -0
  427. package/lib/Tab/Tab.js +40 -27
  428. package/lib/Tab/Tab.module.css +14 -14
  429. package/lib/Tab/TabContent.js +12 -5
  430. package/lib/Tab/TabContentWrapper.js +16 -8
  431. package/lib/Tab/TabWrapper.js +37 -19
  432. package/lib/Tab/Tabs.js +171 -91
  433. package/lib/Tab/Tabs.module.css +22 -22
  434. package/lib/Tab/index.js +6 -0
  435. package/lib/Tab/props/propTypes.js +3 -0
  436. package/lib/Tag/Tag.js +72 -43
  437. package/lib/Tag/Tag.module.css +24 -25
  438. package/lib/Tag/props/propTypes.js +3 -0
  439. package/lib/TextBox/TextBox.js +86 -60
  440. package/lib/TextBox/TextBox.module.css +9 -9
  441. package/lib/TextBox/props/propTypes.js +6 -4
  442. package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
  443. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  444. package/lib/TextBoxIcon/props/propTypes.js +9 -4
  445. package/lib/Textarea/Textarea.js +54 -29
  446. package/lib/Textarea/Textarea.module.css +21 -21
  447. package/lib/Textarea/props/propTypes.js +3 -0
  448. package/lib/Tooltip/Tooltip.js +94 -31
  449. package/lib/Tooltip/Tooltip.module.css +5 -5
  450. package/lib/Tooltip/props/propTypes.js +3 -0
  451. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  452. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  453. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  454. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  455. package/lib/VelocityAnimation/index.js +3 -0
  456. package/lib/common/animation.module.css +8 -8
  457. package/lib/common/avatarsizes.module.css +16 -16
  458. package/lib/common/basicReset.module.css +3 -3
  459. package/lib/common/common.module.css +24 -24
  460. package/lib/common/customscroll.module.css +2 -2
  461. package/lib/css.js +40 -0
  462. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  463. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  464. package/lib/index.js +58 -0
  465. package/lib/semantic/Button/Button.js +42 -22
  466. package/lib/semantic/Button/props/propTypes.js +3 -0
  467. package/lib/semantic/Button/semanticButton.module.css +1 -1
  468. package/lib/semantic/index.js +2 -0
  469. package/lib/utils/Common.js +111 -18
  470. package/lib/utils/ContextOptimizer.js +16 -10
  471. package/lib/utils/constructFullName.js +13 -4
  472. package/lib/utils/datetime/common.js +34 -5
  473. package/lib/utils/debounce.js +6 -1
  474. package/lib/utils/dropDownUtils.js +175 -59
  475. package/lib/utils/dummyFunction.js +2 -0
  476. package/lib/utils/getHTMLFontSize.js +1 -0
  477. package/lib/utils/getInitial.js +6 -0
  478. package/lib/utils/index.js +1 -0
  479. package/lib/utils/scrollTo.js +2 -0
  480. package/lib/utils/shallowEqual.js +8 -0
  481. package/lib/v1/Accordion/Accordion.js +38 -19
  482. package/lib/v1/Accordion/AccordionItem.js +23 -13
  483. package/lib/v1/Accordion/index.js +3 -0
  484. package/lib/v1/Accordion/props/propTypes.js +3 -0
  485. package/lib/v1/Animation/Animation.js +24 -100
  486. package/lib/v1/Animation/props/propTypes.js +3 -0
  487. package/lib/v1/Animation/utils.js +94 -0
  488. package/lib/v1/AppContainer/AppContainer.js +46 -17
  489. package/lib/v1/AppContainer/props/propTypes.js +3 -0
  490. package/lib/v1/Avatar/Avatar.js +68 -32
  491. package/lib/v1/Avatar/props/propTypes.js +3 -0
  492. package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
  493. package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
  494. package/lib/v1/Button/Button.js +32 -22
  495. package/lib/v1/Button/props/defaultProps.js +2 -0
  496. package/lib/v1/Button/props/propTypes.js +3 -0
  497. package/lib/v1/Buttongroup/Buttongroup.js +13 -5
  498. package/lib/v1/Buttongroup/props/propTypes.js +3 -0
  499. package/lib/v1/Card/Card.js +78 -44
  500. package/lib/v1/Card/index.js +4 -0
  501. package/lib/v1/Card/props/propTypes.js +3 -0
  502. package/lib/v1/CheckBox/CheckBox.js +52 -41
  503. package/lib/v1/CheckBox/props/propTypes.js +3 -0
  504. package/lib/v1/DateTime/CalendarView.js +89 -48
  505. package/lib/v1/DateTime/DateTime.js +246 -158
  506. package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
  507. package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
  508. package/lib/v1/DateTime/DateWidget.js +352 -251
  509. package/lib/v1/DateTime/DaysRow.js +28 -5
  510. package/lib/v1/DateTime/Time.js +75 -32
  511. package/lib/v1/DateTime/YearView.js +76 -27
  512. package/lib/v1/DateTime/index.js +2 -0
  513. package/lib/v1/DateTime/props/propTypes.js +11 -1
  514. package/lib/v1/DropBox/DropBox.js +45 -21
  515. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  516. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
  517. package/lib/v1/DropBox/props/defaultProps.js +8 -4
  518. package/lib/v1/DropBox/props/propTypes.js +10 -4
  519. package/lib/v1/DropDown/DropDown.js +23 -3
  520. package/lib/v1/DropDown/DropDownHeading.js +20 -13
  521. package/lib/v1/DropDown/DropDownItem.js +26 -11
  522. package/lib/v1/DropDown/DropDownSearch.js +28 -16
  523. package/lib/v1/DropDown/DropDownSeparator.js +7 -1
  524. package/lib/v1/DropDown/props/propTypes.js +10 -4
  525. package/lib/v1/Heading/Heading.js +19 -14
  526. package/lib/v1/Heading/props/propTypes.js +3 -0
  527. package/lib/v1/Label/Label.js +22 -14
  528. package/lib/v1/Label/props/propTypes.js +3 -0
  529. package/lib/v1/Layout/Box.js +35 -15
  530. package/lib/v1/Layout/Container.js +33 -14
  531. package/lib/v1/Layout/index.js +3 -0
  532. package/lib/v1/Layout/props/propTypes.js +3 -0
  533. package/lib/v1/ListItem/ListContainer.js +55 -30
  534. package/lib/v1/ListItem/ListItem.js +53 -38
  535. package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
  536. package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
  537. package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
  538. package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
  539. package/lib/v1/ListItem/index.js +7 -0
  540. package/lib/v1/ListItem/props/propTypes.js +6 -4
  541. package/lib/v1/Modal/Modal.js +46 -9
  542. package/lib/v1/Modal/props/propTypes.js +3 -0
  543. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
  544. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
  545. package/lib/v1/MultiSelect/EmptyState.js +45 -24
  546. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  547. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  548. package/lib/v1/MultiSelect/MultiSelect.js +335 -216
  549. package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
  550. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
  551. package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
  552. package/lib/v1/MultiSelect/Suggestions.js +64 -32
  553. package/lib/v1/MultiSelect/index.js +5 -0
  554. package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
  555. package/lib/v1/MultiSelect/props/propTypes.js +14 -4
  556. package/lib/v1/PopOver/PopOver.js +71 -40
  557. package/lib/v1/PopOver/props/propTypes.js +3 -0
  558. package/lib/v1/Popup/Popup.js +158 -81
  559. package/lib/v1/Provider/AvatarSize.js +4 -0
  560. package/lib/v1/Provider/Config.js +2 -0
  561. package/lib/v1/Provider/CssProvider.js +4 -0
  562. package/lib/v1/Provider/IdProvider.js +17 -6
  563. package/lib/v1/Provider/LibraryContext.js +35 -15
  564. package/lib/v1/Provider/LibraryContextInit.js +4 -0
  565. package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
  566. package/lib/v1/Provider/ZindexProvider.js +15 -3
  567. package/lib/v1/Provider/index.js +5 -0
  568. package/lib/v1/Radio/Radio.js +42 -32
  569. package/lib/v1/Radio/props/propTypes.js +3 -0
  570. package/lib/v1/Responsive/CustomResponsive.js +73 -29
  571. package/lib/v1/Responsive/RefWrapper.js +17 -11
  572. package/lib/v1/Responsive/ResizeComponent.js +62 -36
  573. package/lib/v1/Responsive/ResizeObserver.js +24 -10
  574. package/lib/v1/Responsive/Responsive.js +80 -30
  575. package/lib/v1/Responsive/index.js +4 -0
  576. package/lib/v1/Responsive/props/propTypes.js +3 -0
  577. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
  578. package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
  579. package/lib/v1/Ribbon/Ribbon.js +14 -7
  580. package/lib/v1/Ribbon/props/propTypes.js +3 -0
  581. package/lib/v1/RippleEffect/RippleEffect.js +17 -7
  582. package/lib/v1/RippleEffect/props/propTypes.js +3 -0
  583. package/lib/v1/Select/GroupSelect.js +229 -130
  584. package/lib/v1/Select/Select.js +297 -214
  585. package/lib/v1/Select/SelectWithAvatar.js +102 -56
  586. package/lib/v1/Select/SelectWithIcon.js +131 -76
  587. package/lib/v1/Select/index.js +5 -0
  588. package/lib/v1/Select/props/defaultProps.js +5 -4
  589. package/lib/v1/Select/props/propTypes.js +10 -4
  590. package/lib/v1/Stencils/Stencils.js +13 -3
  591. package/lib/v1/Stencils/props/propTypes.js +3 -0
  592. package/lib/v1/Switch/Switch.js +38 -25
  593. package/lib/v1/Switch/props/propTypes.js +3 -0
  594. package/lib/v1/Tab/Tab.js +40 -27
  595. package/lib/v1/Tab/TabContent.js +12 -5
  596. package/lib/v1/Tab/TabContentWrapper.js +16 -8
  597. package/lib/v1/Tab/TabWrapper.js +37 -19
  598. package/lib/v1/Tab/Tabs.js +170 -83
  599. package/lib/v1/Tab/index.js +6 -0
  600. package/lib/v1/Tab/props/propTypes.js +3 -0
  601. package/lib/v1/Tab/v1Tab.module.css +14 -14
  602. package/lib/v1/Tab/v1Tabs.module.css +22 -22
  603. package/lib/v1/Tag/Tag.js +50 -32
  604. package/lib/v1/Tag/props/propTypes.js +3 -0
  605. package/lib/v1/TextBox/TextBox.js +70 -47
  606. package/lib/v1/TextBox/props/propTypes.js +6 -4
  607. package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
  608. package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
  609. package/lib/v1/Textarea/Textarea.js +45 -28
  610. package/lib/v1/Textarea/props/propTypes.js +3 -0
  611. package/lib/v1/Tooltip/Tooltip.js +94 -31
  612. package/lib/v1/Tooltip/props/propTypes.js +3 -0
  613. package/lib/v1/Typography/Typography.js +26 -15
  614. package/lib/v1/Typography/css/Typography.module.css +31 -31
  615. package/lib/v1/Typography/css/cssJSLogic.js +25 -20
  616. package/lib/v1/Typography/props/propTypes.js +3 -0
  617. package/lib/v1/Typography/utils/index.js +1 -0
  618. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
  619. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  620. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
  621. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  622. package/lib/v1/semantic/Button/Button.js +24 -18
  623. package/lib/v1/semantic/Button/props/propTypes.js +3 -0
  624. package/lib/v1/semantic/index.js +2 -0
  625. package/package.json +2 -2
  626. package/result.json +1 -1
  627. package/.DS_Store +0 -0
@@ -4,26 +4,42 @@ import { getIsEmptyValue, getSearchString } from './Common';
4
4
  export const dummyArray = [];
5
5
  export const dummyObj = {};
6
6
  export const getOptions = props => props.options || dummyArray;
7
+
7
8
  const getOptionsOrder = props => props.optionsOrder || dummyArray;
9
+
8
10
  const getSelectedOptionsSel = props => props.selectedOptions || dummyArray;
11
+
9
12
  const getSearchStr = props => props.searchStr || '';
13
+
10
14
  export const getValueField = props => props.valueField || '';
11
15
  export const getTextField = props => props.textField || '';
12
16
  export const getImageField = props => props.imageField || '';
13
17
  export const getIconName = props => props.iconName || '';
14
18
  export const getIconSize = props => props.iconSize || '';
15
19
  export const getOptionType = props => props.optionType || '';
20
+
16
21
  const getNeedSearch = props => props.needSearch;
22
+
17
23
  const getIsDefaultSelectValue = props => props.isDefaultSelectValue;
24
+
18
25
  const getSelectedOptionsLength = props => getIsEmptyValue(props.selectedOptionsLength) ? '' : props.selectedOptionsLength;
26
+
19
27
  const getNormalizedFormatOptions = props => props.normalizedFormatOptions || dummyObj;
28
+
20
29
  const getSelectedValue = props => getIsEmptyValue(props.selectedValue) ? '' : props.selectedValue;
30
+
21
31
  const getSelectedFormatOptions = props => props.selectedFormatOptions || dummyObj;
32
+
22
33
  export const getPrefixText = props => props.prefixText || '';
34
+
23
35
  const getIsStartWithSearch = props => props.isStartsWithSearch;
36
+
24
37
  const getKeepSelectedOptions = props => props.keepSelectedOptions;
38
+
25
39
  const getDisabledOptions = props => props.disabledOptions || dummyArray;
40
+
26
41
  const getListItemProps = props => props.listItemProps || '';
42
+
27
43
  export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions], (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions) => {
28
44
  const suggestions = [];
29
45
  const suggestionIds = [];
@@ -35,6 +51,7 @@ export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOpti
35
51
  const valueString = getSearchString(value);
36
52
  const searchString = getSearchString(searchStr);
37
53
  const isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : valueString.indexOf(searchString) !== -1 : true;
54
+
38
55
  if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
39
56
  suggestions.push(option);
40
57
  suggestionIds.push(id);
@@ -49,9 +66,11 @@ export const optionIdGrouping = (id, prefixText) => {
49
66
  if (getIsEmptyValue(id)) {
50
67
  return '';
51
68
  }
69
+
52
70
  if (getIsEmptyValue(prefixText)) {
53
71
  return id;
54
72
  }
73
+
55
74
  const prefixType = typeof prefixText === 'number' ? 'Int' : 'Str';
56
75
  const idType = typeof id === 'number' ? 'Int' : 'Str';
57
76
  return `${prefixType}_${prefixText}_${idType}_${id}`;
@@ -62,15 +81,19 @@ export const extractOptionId = id => {
62
81
  id: ''
63
82
  };
64
83
  }
84
+
65
85
  if (typeof id === 'number') {
66
86
  return {
67
87
  id
68
88
  };
69
89
  }
90
+
70
91
  const splitedOption = id.split && id.split('_');
92
+
71
93
  if (splitedOption.length === 1) {
72
94
  return splitedOption[0];
73
95
  }
96
+
74
97
  if (splitedOption.length === 4) {
75
98
  let [prefixType, prefixText, idType, id] = splitedOption;
76
99
  id = idType === 'Int' ? Number.parseInt(id) : id;
@@ -100,10 +123,10 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
100
123
  } = option;
101
124
  let id = typeof option === 'object' ? option[impValueField || valueField] : option;
102
125
  const value = typeof option === 'object' ? option[impTextField || textField] : option;
103
- const photoURL = typeof option === 'object' ? option[impImageField || imageField] : '';
126
+ const photoURL = typeof option === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
104
127
 
105
- // grouping options (group select/MultiSelect)
106
128
  id = !getIsEmptyValue(id) ? optionIdGrouping(id, prefixText) : '';
129
+
107
130
  if (remvampOptionIds.indexOf(id) === -1 && !getIsEmptyValue(id) && !getIsEmptyValue(value)) {
108
131
  remvampOptionIds.push(id);
109
132
  const optionDetails = {
@@ -111,21 +134,27 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
111
134
  value,
112
135
  optionType: impOptionType || optionType
113
136
  };
137
+
114
138
  if (imageField) {
115
139
  optionDetails.photoURL = photoURL;
116
140
  }
141
+
117
142
  if (impIconName || iconName) {
118
143
  optionDetails.icon = impIconName || iconName;
119
144
  }
145
+
120
146
  if (impIconSize || iconSize) {
121
147
  optionDetails.iconSize = impIconSize || iconSize;
122
148
  }
149
+
123
150
  if (disabledOptions.length) {
124
151
  optionDetails.isDisabled = disabledOptions.indexOf(id) >= 0;
125
152
  }
153
+
126
154
  if (listStyle || listItemProps) {
127
155
  optionDetails.listItemProps = listStyle || listItemProps;
128
156
  }
157
+
129
158
  normalizedFormatOptions[id] = optionDetails;
130
159
  normalizedAllOptions[id] = option;
131
160
  revampOptions.push(optionDetails);
@@ -144,11 +173,13 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
144
173
  const revampSelectedOptions = [];
145
174
  const normalizedSelectedOptions = {};
146
175
  selectedOptionsLength = !getIsEmptyValue(selectedOptionsLength) ? selectedOptionsLength : selectedOptions.length;
176
+
147
177
  for (let i = 0; i < selectedOptionsLength; i++) {
148
178
  const option = selectedOptions[i];
149
179
  const {
150
180
  id
151
181
  } = normalizedFormatOptions[option] || {};
182
+
152
183
  if (revampSelectedOptions.indexOf(id) === -1 && !getIsEmptyValue(id)) {
153
184
  revampSelectedOptions.push(id);
154
185
  output.push(normalizedFormatOptions[option]);
@@ -163,6 +194,7 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
163
194
  revampSelectedOptions.indexOf(option) === -1 ? revampSelectedOptions.push(option) : null;
164
195
  }
165
196
  }
197
+
166
198
  return {
167
199
  formatSelectedOptions: output,
168
200
  normalizedSelectedOptions,
@@ -172,10 +204,12 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
172
204
  export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, getNormalizedFormatOptions, getSelectedValue, getSelectedFormatOptions, getIsDefaultSelectValue, getValueField, getTextField], (optionsOrder, normalizedFormatOptions, selectedValue, selectedFormatOptions, isDefaultSelectValue, valueField, textField) => {
173
205
  let selectedValueIndex = optionsOrder.indexOf(selectedValue);
174
206
  let isSelfValueChanged = false;
207
+
175
208
  if (getIsEmptyValue(selectedValue) && isDefaultSelectValue) {
176
209
  [selectedValue] = optionsOrder;
177
210
  isSelfValueChanged = true;
178
211
  }
212
+
179
213
  const allOptions = Object.assign({}, selectedFormatOptions, normalizedFormatOptions);
180
214
  const details = allOptions[selectedValue];
181
215
  let hoverIndex = selectedValueIndex !== -1 ? selectedValueIndex : 0;
@@ -185,9 +219,8 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
185
219
  let {
186
220
  value: selectedValueText = '',
187
221
  id: selectedId
188
- } = details || dummyObj;
222
+ } = details || dummyObj; //selectedValue is not included in options case
189
223
 
190
- //selectedValue is not included in options case
191
224
  if (getIsEmptyValue(selectedId)) {
192
225
  if (typeof selectedValue === 'object') {
193
226
  const id = selectedValue[valueField];
@@ -205,6 +238,7 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
205
238
  selectedId = selectedValue;
206
239
  }
207
240
  }
241
+
208
242
  return {
209
243
  selected: selectedValueText,
210
244
  hoverIndex,
@@ -213,17 +247,22 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
213
247
  isSelfValueChanged
214
248
  };
215
249
  });
250
+
216
251
  const getObj1 = props => props.obj1 || dummyObj;
252
+
217
253
  const getObj2 = props => props.obj2 || dummyObj;
218
- export const makeObjectConcat = () => createSelector([getObj1, getObj2], (obj1, obj2) => Object.assign({}, obj1, obj2));
219
254
 
255
+ export const makeObjectConcat = () => createSelector([getObj1, getObj2], (obj1, obj2) => Object.assign({}, obj1, obj2));
220
256
  /***** Group Select *****/
257
+
221
258
  const getGroupedOptions = props => props.groupedOptions || dummyArray;
259
+
222
260
  const getFormatOptions = makeFormatOptions();
223
261
  export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions], groupedOptions => {
224
262
  const revampedGroups = [];
225
263
  let allOptionIds = [];
226
264
  let allNormalizedOptions = {}; //all group normalized options
265
+
227
266
  let allNormalizedFormatOptions = {};
228
267
  const groupIds = [];
229
268
  const normalizedGroupedOptions = {};
@@ -235,6 +274,7 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
235
274
  valueField,
236
275
  textField
237
276
  } = group;
277
+
238
278
  if (!getIsEmptyValue(groupId) && groupIds.indexOf(groupId) === -1) {
239
279
  groupIds.push(groupId);
240
280
  normalizedGroupedOptions[groupId] = group;
@@ -249,6 +289,7 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
249
289
  textField,
250
290
  prefixText: groupId
251
291
  });
292
+
252
293
  if (optionsOrder.length) {
253
294
  revampedGroups.push({
254
295
  id: groupId,
@@ -270,7 +311,9 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
270
311
  normalizedGroupedOptions
271
312
  };
272
313
  });
314
+
273
315
  const getGroups = props => props.revampedGroups;
316
+
274
317
  const getFilterSuggestions = makeGetMultiSelectFilterSuggestions();
275
318
  export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGroups, getSearchStr, getNeedSearch, getIsStartWithSearch], (groups, searchStr, needSearch, isStartsWithSearch) => {
276
319
  const suggestionGroups = [];
@@ -288,6 +331,7 @@ export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGrou
288
331
  searchStr,
289
332
  isStartsWithSearch
290
333
  });
334
+
291
335
  if (suggestionIds.length) {
292
336
  suggestionGroups.push(Object.assign({}, group, {
293
337
  options: suggestions
@@ -305,6 +349,7 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
305
349
  return options.reduce((changedOptions, option) => {
306
350
  let newOption;
307
351
  const id = typeof option === 'object' ? option[valueField] : option;
352
+
308
353
  if (typeof option === 'object' && !getIsEmptyValue(id)) {
309
354
  newOption = Object.assign({}, option, {
310
355
  [valueField]: optionIdGrouping(id, prefixText),
@@ -312,9 +357,11 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
312
357
  textField,
313
358
  optionType
314
359
  });
360
+
315
361
  if (imageField) {
316
362
  newOption.imageField = imageField;
317
363
  }
364
+
318
365
  changedOptions.push(newOption);
319
366
  } else if (!getIsEmptyValue(id)) {
320
367
  newOption = {
@@ -328,6 +375,7 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
328
375
  };
329
376
  changedOptions.push(newOption);
330
377
  }
378
+
331
379
  return changedOptions;
332
380
  }, newOptions);
333
381
  });
@@ -338,22 +386,23 @@ export const filterSelectedOptions = function () {
338
386
  disabledOptions = dummyArray
339
387
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
340
388
  // eslint-disable-next-line no-param-reassign
341
- selectedOptions = selectedOptions || dummyArray;
342
- // eslint-disable-next-line no-param-reassign
343
- propSelectedOptions = propSelectedOptions || dummyArray;
344
- // eslint-disable-next-line no-param-reassign
389
+ selectedOptions = selectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
390
+
391
+ propSelectedOptions = propSelectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
392
+
345
393
  disabledOptions = disabledOptions || dummyArray;
346
- const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1);
394
+ const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1); // eslint-disable-next-line max-len
347
395
 
348
- // eslint-disable-next-line max-len
349
396
  const oldValidSelectedOptions = propSelectedOptions.filter(selectedOption => {
350
397
  const isRemoved = selectedOptions.indexOf(selectedOption) === -1;
351
398
  const isDisabled = disabledOptions.indexOf(selectedOption) >= 0;
399
+
352
400
  if (isDisabled) {
353
401
  return true;
354
402
  } else if (isRemoved) {
355
403
  return false;
356
404
  }
405
+
357
406
  return true;
358
407
  });
359
408
  return {
@@ -364,28 +413,36 @@ export const makeGetIsShowClearIcon = () => createSelector([getSelectedOptionsSe
364
413
  let countForShowClear = 2;
365
414
  let enabledOptionsLength = 0;
366
415
  let isShowClearIcon = selectedOptions.length >= countForShowClear;
416
+
367
417
  if (disabledOptions.length) {
368
418
  let isHaveEnabledOptions = false;
369
419
  let isAllDisabled = disabledOptions.length === selectedOptions.length;
420
+
370
421
  if (!isAllDisabled) {
371
422
  isHaveEnabledOptions = selectedOptions.some(option => {
372
423
  let {
373
424
  isDisabled = false
374
425
  } = option || {};
426
+
375
427
  if (!isDisabled) {
376
428
  enabledOptionsLength += 1;
429
+
377
430
  if (enabledOptionsLength === countForShowClear) {
378
431
  return true;
379
432
  }
433
+
380
434
  return false;
381
435
  }
436
+
382
437
  return false;
383
438
  });
384
439
  }
440
+
385
441
  return {
386
442
  isShowClearIcon: isAllDisabled ? !isAllDisabled : isHaveEnabledOptions
387
443
  };
388
444
  }
445
+
389
446
  return {
390
447
  isShowClearIcon
391
448
  };
@@ -2,19 +2,23 @@ export function getInitial() {
2
2
  let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
3
3
  let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4
4
  let initial = '';
5
+
5
6
  if (firstName) {
6
7
  firstName = firstName.trim();
7
8
  initial = firstName[0];
8
9
  }
10
+
9
11
  if (lastName) {
10
12
  lastName = lastName.trim();
11
13
  initial += initial ? lastName[0] : lastName.substring(0, 2);
12
14
  }
15
+
13
16
  return initial ? initial.toUpperCase() : initial;
14
17
  }
15
18
  export function getInitialByPattern(firstName, lastName, pattern) {
16
19
  if (pattern[0] === 'FIRST_NAME') {
17
20
  return getInitial(firstName, lastName);
18
21
  }
22
+
19
23
  return getInitial(lastName, firstName);
20
24
  }
@@ -5,22 +5,28 @@ function is(x, y) {
5
5
  return x !== x && y !== y;
6
6
  }
7
7
  }
8
+
8
9
  export default function shallowEqual(objA, objB) {
9
10
  if (is(objA, objB)) {
10
11
  return true;
11
12
  }
13
+
12
14
  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
13
15
  return false;
14
16
  }
17
+
15
18
  const keysA = Object.keys(objA);
16
19
  const keysB = Object.keys(objB);
20
+
17
21
  if (keysA.length !== keysB.length) {
18
22
  return false;
19
23
  }
24
+
20
25
  for (let i = 0; i < keysA.length; i++) {
21
26
  if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
22
27
  return false;
23
28
  }
24
29
  }
30
+
25
31
  return true;
26
32
  }
@@ -21,12 +21,15 @@ export default function Accordion(props) {
21
21
  ariaHaspopup
22
22
  } = a11y;
23
23
  const [selectedItem, setSelectedItem] = useState(propSelectedItem);
24
+
24
25
  function selectMenu(selectedItem) {
25
26
  if (onSelect) {
26
27
  onSelect(selectedItem);
27
28
  }
29
+
28
30
  !disableInternalState && setSelectedItem(selectedItem);
29
31
  }
32
+
30
33
  useEffectCallOnlyAfterState(() => {
31
34
  if (!disableInternalState) {
32
35
  setSelectedItem(propSelectedItem);
@@ -55,9 +58,7 @@ export default function Accordion(props) {
55
58
  }, renderChildren);
56
59
  }
57
60
  Accordion.propTypes = Accordion_propTypes;
58
- Accordion.defaultProps = Accordion_defaultProps;
59
-
60
- // if (__DOCS__) {
61
+ Accordion.defaultProps = Accordion_defaultProps; // if (__DOCS__) {
61
62
  // Accordion.docs = {
62
63
  // componentGroup: 'Animation',
63
64
  // folderName: 'Style Guide'
@@ -22,12 +22,15 @@ export default function AccordionItem(props) {
22
22
  let {
23
23
  role
24
24
  } = a11y;
25
+
25
26
  function equalityChecking() {
26
27
  return equalityCheck ? equalityCheck(id, selectedItem) : selectedItem == id;
27
28
  }
29
+
28
30
  function handleSelectMenu() {
29
31
  selectMenu(id);
30
32
  }
33
+
31
34
  return /*#__PURE__*/React.createElement("div", {
32
35
  className: className ? className : '',
33
36
  "data-id": dataId,
@@ -46,8 +49,7 @@ export default function AccordionItem(props) {
46
49
  }, children[1]));
47
50
  }
48
51
  AccordionItem.propTypes = AccordionItem_propTypes;
49
- AccordionItem.defaultProps = AccordionItem_defaultProps;
50
- // if (__DOCS__) {
52
+ AccordionItem.defaultProps = AccordionItem_defaultProps; // if (__DOCS__) {
51
53
  // AccordionItem.docs = {
52
54
  // componentGroup: 'Animation',
53
55
  // folderName: 'Style Guide'
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { defaultProps } from './props/defaultProps';
3
3
  import { propTypes } from './props/propTypes';
4
4
  import { CSSTransition } from 'react-transition-group';
5
- import style from '../../common/transition.module.css';
5
+ import { animationStyle } from './utils';
6
6
  export default function Animation(props) {
7
7
  let {
8
8
  name,
@@ -15,91 +15,9 @@ export default function Animation(props) {
15
15
  onExit = () => {},
16
16
  delayClassName = null
17
17
  } = props;
18
- const animation = {
19
- zoomIn: {
20
- enter: style.zoomInEnter,
21
- enterActive: style.zoomInEnterActive,
22
- enterDone: style.zoomInEnterActive,
23
- exit: style.zoomInLeave,
24
- exitActive: style.zoomInLeaveActive,
25
- exitDone: style.zoomInLeaveActive,
26
- appear: style.zoomInEnter,
27
- appearActive: style.zoomInEnterActive
28
- },
29
- scaleIn: {
30
- enter: style.scaleInEnter,
31
- enterActive: style.scaleInEnterActive,
32
- enterDone: style.scaleInEnterActive,
33
- exit: style.scaleInLeave,
34
- exitActive: style.scaleInLeaveActive,
35
- exitDone: style.scaleInLeaveActive,
36
- appear: style.scaleInEnter,
37
- appearActive: style.scaleInEnterActive
38
- },
39
- fadeIn: {
40
- enter: style.fadeInEnter,
41
- enterActive: style.fadeInEnterActive,
42
- enterDone: style.fadeInEnterActive,
43
- exit: style.fadeInLeave,
44
- exitActive: style.fadeInLeaveActive,
45
- exitDone: style.fadeInLeaveActive,
46
- appear: style.fadeInEnter,
47
- appearActive: style.fadeInEnterActive
48
- },
49
- slideLeft: {
50
- enter: style.slideLeftEnter,
51
- enterActive: style.slideLeftEnterActive,
52
- enterDone: style.slideLeftEnterActive,
53
- exit: style.slideLeftLeave,
54
- exitActive: style.slideLeftLeaveActive,
55
- exitDone: style.slideLeftLeaveActive,
56
- appear: style.slideLeftEnter,
57
- appearActive: style.slideLeftEnterActive
58
- },
59
- slideDown: {
60
- enter: style.slideDownEnter,
61
- enterActive: style.slideDownEnterActive,
62
- enterDone: style.slideDownEnterActive,
63
- exit: style.slideDownLeave,
64
- exitActive: style.slideDownLeaveActive,
65
- exitDone: style.slideDownLeaveActive,
66
- appear: style.slideDownEnter,
67
- appearActive: style.slideDownEnterActive
68
- },
69
- skewIn: {
70
- enter: style.skewInEnter,
71
- enterActive: style.skewInEnterActive,
72
- enterDone: style.skewInEnterActive,
73
- exit: style.skewInLeave,
74
- exitActive: style.skewInLeaveActive,
75
- exitDone: style.skewInLeaveActive,
76
- appear: style.skewInEnter,
77
- appearActive: style.skewInEnterActive
78
- },
79
- none: {
80
- enter: style.noneEnter,
81
- enterActive: style.noneEnterActive,
82
- enterDone: style.noneEnterActive,
83
- exit: style.noneLeave,
84
- exitActive: style.noneLeaveActive,
85
- exitDone: style.noneLeaveActive,
86
- appear: style.noneEnter,
87
- appearActive: style.noneEnterActive
88
- },
89
- default: {
90
- enter: style.defaultEnter,
91
- enterActive: style.defaultEnterActive,
92
- enterDone: style.defaultEnterActive,
93
- exit: style.defaultLeave,
94
- exitActive: style.defaultLeaveActive,
95
- exitDone: style.defaultLeaveActive,
96
- appear: style.defaultEnter,
97
- appearActive: style.defaultEnterActive
98
- }
99
- };
100
- let newClassNames = delayClassName ? Object.assign({}, animation[name], {
101
- exit: `${delayClassName} ${animation[name].exit}`
102
- }) : animation[name];
18
+ let newClassNames = delayClassName ? Object.assign({}, animationStyle[name], {
19
+ exit: `${delayClassName} ${animationStyle[name].exit}`
20
+ }) : animaanimationStyletion[name];
103
21
  return /*#__PURE__*/React.createElement(CSSTransition, {
104
22
  classNames: newClassNames && newClassNames,
105
23
  in: isActive,
@@ -117,9 +35,7 @@ export default function Animation(props) {
117
35
  }, /*#__PURE__*/React.createElement(React.Fragment, null, children));
118
36
  }
119
37
  Animation.propTypes = propTypes;
120
- Animation.defaultProps = defaultProps;
121
-
122
- // if (__DOCS__) {
38
+ Animation.defaultProps = defaultProps; // if (__DOCS__) {
123
39
  // Animation.docs = {
124
40
  // componentGroup: 'Animation',
125
41
  // folderName: 'Style Guide',
@@ -0,0 +1,83 @@
1
+ import style from '../../common/transition.module.css';
2
+ export const animationStyle = {
3
+ zoomIn: {
4
+ enter: style.zoomInEnter,
5
+ enterActive: style.zoomInEnterActive,
6
+ enterDone: style.zoomInEnterActive,
7
+ exit: style.zoomInLeave,
8
+ exitActive: style.zoomInLeaveActive,
9
+ exitDone: style.zoomInLeaveActive,
10
+ appear: style.zoomInEnter,
11
+ appearActive: style.zoomInEnterActive
12
+ },
13
+ scaleIn: {
14
+ enter: style.scaleInEnter,
15
+ enterActive: style.scaleInEnterActive,
16
+ enterDone: style.scaleInEnterActive,
17
+ exit: style.scaleInLeave,
18
+ exitActive: style.scaleInLeaveActive,
19
+ exitDone: style.scaleInLeaveActive,
20
+ appear: style.scaleInEnter,
21
+ appearActive: style.scaleInEnterActive
22
+ },
23
+ fadeIn: {
24
+ enter: style.fadeInEnter,
25
+ enterActive: style.fadeInEnterActive,
26
+ enterDone: style.fadeInEnterActive,
27
+ exit: style.fadeInLeave,
28
+ exitActive: style.fadeInLeaveActive,
29
+ exitDone: style.fadeInLeaveActive,
30
+ appear: style.fadeInEnter,
31
+ appearActive: style.fadeInEnterActive
32
+ },
33
+ slideLeft: {
34
+ enter: style.slideLeftEnter,
35
+ enterActive: style.slideLeftEnterActive,
36
+ enterDone: style.slideLeftEnterActive,
37
+ exit: style.slideLeftLeave,
38
+ exitActive: style.slideLeftLeaveActive,
39
+ exitDone: style.slideLeftLeaveActive,
40
+ appear: style.slideLeftEnter,
41
+ appearActive: style.slideLeftEnterActive
42
+ },
43
+ slideDown: {
44
+ enter: style.slideDownEnter,
45
+ enterActive: style.slideDownEnterActive,
46
+ enterDone: style.slideDownEnterActive,
47
+ exit: style.slideDownLeave,
48
+ exitActive: style.slideDownLeaveActive,
49
+ exitDone: style.slideDownLeaveActive,
50
+ appear: style.slideDownEnter,
51
+ appearActive: style.slideDownEnterActive
52
+ },
53
+ skewIn: {
54
+ enter: style.skewInEnter,
55
+ enterActive: style.skewInEnterActive,
56
+ enterDone: style.skewInEnterActive,
57
+ exit: style.skewInLeave,
58
+ exitActive: style.skewInLeaveActive,
59
+ exitDone: style.skewInLeaveActive,
60
+ appear: style.skewInEnter,
61
+ appearActive: style.skewInEnterActive
62
+ },
63
+ none: {
64
+ enter: style.noneEnter,
65
+ enterActive: style.noneEnterActive,
66
+ enterDone: style.noneEnterActive,
67
+ exit: style.noneLeave,
68
+ exitActive: style.noneLeaveActive,
69
+ exitDone: style.noneLeaveActive,
70
+ appear: style.noneEnter,
71
+ appearActive: style.noneEnterActive
72
+ },
73
+ default: {
74
+ enter: style.defaultEnter,
75
+ enterActive: style.defaultEnterActive,
76
+ enterDone: style.defaultEnterActive,
77
+ exit: style.defaultLeave,
78
+ exitActive: style.defaultLeaveActive,
79
+ exitDone: style.defaultLeaveActive,
80
+ appear: style.defaultEnter,
81
+ appearActive: style.defaultEnterActive
82
+ }
83
+ };
@@ -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, { useEffect, useRef, useLayoutEffect } from 'react';
3
4
  import { defaultProps } from './props/defaultProps';
4
5
  import { propTypes } from './props/propTypes';
@@ -43,29 +44,36 @@ export default function AppContainer(props) {
43
44
  getTooltipContainer: () => containerElement.current
44
45
  });
45
46
  }, []);
47
+
46
48
  function mouseOverDispatch(e) {
47
49
  if (tooltipRef.current) {
48
50
  tooltipRef.current.handleOver(e, containerElement.current);
49
51
  }
50
52
  }
53
+
51
54
  function removeTimeout() {
52
55
  if (timer.current) {
53
56
  timer.current = clearTimeout(timer.current);
54
57
  }
55
58
  }
59
+
56
60
  function handleOver(e) {
57
61
  if (timer.current) {
58
62
  timer.current = clearTimeout(timer.current);
59
63
  }
64
+
60
65
  timer.current = setTimeout(() => mouseOverDispatch(e), tooltipDebounce.current);
61
66
  }
67
+
62
68
  function getContainerRef(ref) {
63
69
  containerElement.current = ref;
64
70
  eleRef && eleRef(ref);
65
71
  }
72
+
66
73
  function setTooltipRef(ref) {
67
74
  tooltipRef.current = ref;
68
75
  }
76
+
69
77
  useEffect(() => {
70
78
  if (containerElement.current && needTooltip) {
71
79
  containerElement.current.addEventListener('mouseover', handleOver, false);
@@ -104,9 +112,7 @@ export default function AppContainer(props) {
104
112
  }, TooltipProps))) : null);
105
113
  }
106
114
  AppContainer.propTypes = propTypes;
107
- AppContainer.defaultProps = defaultProps;
108
-
109
- // if (__DOCS__) {
115
+ AppContainer.defaultProps = defaultProps; // if (__DOCS__) {
110
116
  // AppContainer.docs = {
111
117
  // componentGroup: 'Template',
112
118
  // folderName: 'Style Guide'