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

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 (434) hide show
  1. package/README.md +16 -0
  2. package/es/Accordion/Accordion.js +3 -7
  3. package/es/Accordion/AccordionItem.js +2 -4
  4. package/es/Animation/Animation.js +3 -3
  5. package/es/AppContainer/AppContainer.js +5 -13
  6. package/es/AppContainer/AppContainer.module.css +2 -2
  7. package/es/Avatar/Avatar.js +11 -23
  8. package/es/Avatar/Avatar.module.css +18 -18
  9. package/es/AvatarTeam/AvatarTeam.js +3 -3
  10. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  11. package/es/Button/Button.js +3 -4
  12. package/es/Button/css/Button.module.css +70 -70
  13. package/es/Buttongroup/Buttongroup.js +3 -3
  14. package/es/Buttongroup/Buttongroup.module.css +15 -14
  15. package/es/Card/Card.js +10 -21
  16. package/es/CheckBox/CheckBox.js +3 -5
  17. package/es/CheckBox/CheckBox.module.css +15 -15
  18. package/es/DateTime/CalendarView.js +20 -32
  19. package/es/DateTime/DateTime.js +6 -67
  20. package/es/DateTime/DateTime.module.css +39 -39
  21. package/es/DateTime/DateTimePopupFooter.js +2 -4
  22. package/es/DateTime/DateTimePopupHeader.js +2 -8
  23. package/es/DateTime/DateWidget.js +35 -98
  24. package/es/DateTime/DateWidget.module.css +5 -5
  25. package/es/DateTime/DaysRow.js +2 -4
  26. package/es/DateTime/Time.js +2 -10
  27. package/es/DateTime/YearView.js +4 -28
  28. package/es/DateTime/YearView.module.css +15 -15
  29. package/es/DateTime/__tests__/CalendarView.spec.js +0 -1
  30. package/es/DateTime/__tests__/DateTime.spec.js +0 -1
  31. package/es/DateTime/__tests__/DateWidget.spec.js +3 -2
  32. package/es/DateTime/common.js +0 -3
  33. package/es/DateTime/constants.js +0 -1
  34. package/es/DateTime/dateFormatUtils/dateFormat.js +30 -63
  35. package/es/DateTime/dateFormatUtils/dateFormats.js +1 -0
  36. package/es/DateTime/dateFormatUtils/dayChange.js +4 -13
  37. package/es/DateTime/dateFormatUtils/index.js +2 -32
  38. package/es/DateTime/dateFormatUtils/monthChange.js +0 -8
  39. package/es/DateTime/dateFormatUtils/timeChange.js +6 -22
  40. package/es/DateTime/dateFormatUtils/yearChange.js +2 -11
  41. package/es/DateTime/objectUtils.js +20 -14
  42. package/es/DateTime/typeChecker.js +0 -3
  43. package/es/DateTime/validator.js +6 -58
  44. package/es/DropBox/DropBox.js +5 -9
  45. package/es/DropBox/DropBoxElement/DropBoxElement.js +8 -13
  46. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
  47. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -7
  48. package/es/DropBox/DropBoxElement/props/propTypes.js +1 -1
  49. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +0 -3
  50. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  51. package/es/DropBox/css/DropBox.module.css +6 -6
  52. package/es/DropBox/props/defaultProps.js +2 -1
  53. package/es/DropBox/props/propTypes.js +2 -1
  54. package/es/DropDown/DropDown.js +4 -8
  55. package/es/DropDown/DropDown.module.css +2 -2
  56. package/es/DropDown/DropDownHeading.js +5 -4
  57. package/es/DropDown/DropDownHeading.module.css +6 -6
  58. package/es/DropDown/DropDownItem.js +0 -6
  59. package/es/DropDown/DropDownItem.module.css +12 -12
  60. package/es/DropDown/DropDownSearch.js +0 -4
  61. package/es/DropDown/DropDownSearch.module.css +3 -3
  62. package/es/DropDown/DropDownSeparator.js +0 -1
  63. package/es/DropDown/DropDownSeparator.module.css +2 -2
  64. package/es/DropDown/__tests__/DropDown.spec.js +2 -1
  65. package/es/Heading/Heading.js +3 -2
  66. package/es/Heading/Heading.module.css +2 -2
  67. package/es/Label/Label.js +3 -2
  68. package/es/Label/Label.module.css +5 -5
  69. package/es/Layout/Box.js +0 -13
  70. package/es/Layout/Container.js +1 -12
  71. package/es/Layout/Layout.module.css +15 -15
  72. package/es/Layout/index.js +2 -1
  73. package/es/ListItem/ListContainer.js +3 -8
  74. package/es/ListItem/ListItem.js +3 -9
  75. package/es/ListItem/ListItem.module.css +38 -38
  76. package/es/ListItem/ListItemWithAvatar.js +3 -9
  77. package/es/ListItem/ListItemWithCheckBox.js +2 -7
  78. package/es/ListItem/ListItemWithIcon.js +3 -8
  79. package/es/ListItem/ListItemWithRadio.js +3 -7
  80. package/es/Modal/Modal.js +11 -28
  81. package/es/MultiSelect/AdvancedGroupMultiSelect.js +13 -89
  82. package/es/MultiSelect/AdvancedMultiSelect.js +9 -32
  83. package/es/MultiSelect/EmptyState.js +0 -2
  84. package/es/MultiSelect/MultiSelect.js +32 -99
  85. package/es/MultiSelect/MultiSelect.module.css +31 -31
  86. package/es/MultiSelect/MultiSelectHeader.js +0 -3
  87. package/es/MultiSelect/MultiSelectWithAvatar.js +6 -12
  88. package/es/MultiSelect/SelectedOptions.js +3 -6
  89. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  90. package/es/MultiSelect/Suggestions.js +3 -7
  91. package/es/MultiSelect/__tests__/MultiSelect.spec.js +6 -4
  92. package/es/MultiSelect/props/propTypes.js +0 -2
  93. package/es/PopOver/PopOver.js +2 -18
  94. package/es/PopOver/__tests__/PopOver.spec.js +1 -2
  95. package/es/Popup/Popup.js +24 -77
  96. package/es/Popup/__tests__/Popup.spec.js +5 -17
  97. package/es/Popup/viewPort.js +4 -16
  98. package/es/Provider/IdProvider.js +5 -10
  99. package/es/Provider/LibraryContext.js +4 -6
  100. package/es/Provider/NumberGenerator/NumberGenerator.js +7 -21
  101. package/es/Provider/ZindexProvider.js +2 -9
  102. package/es/Radio/Radio.js +2 -4
  103. package/es/Radio/Radio.module.css +9 -9
  104. package/es/Responsive/CustomResponsive.js +18 -30
  105. package/es/Responsive/RefWrapper.js +7 -6
  106. package/es/Responsive/ResizeComponent.js +25 -35
  107. package/es/Responsive/ResizeObserver.js +6 -26
  108. package/es/Responsive/Responsive.js +20 -34
  109. package/es/Responsive/index.js +3 -1
  110. package/es/Responsive/sizeObservers.js +7 -28
  111. package/es/Responsive/utils/index.js +5 -7
  112. package/es/Responsive/utils/shallowCompare.js +2 -7
  113. package/es/Responsive/windowResizeObserver.js +0 -7
  114. package/es/ResponsiveDropBox/ResponsiveDropBox.js +0 -4
  115. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  116. package/es/Ribbon/Ribbon.js +2 -3
  117. package/es/Ribbon/Ribbon.module.css +48 -46
  118. package/es/RippleEffect/RippleEffect.js +3 -1
  119. package/es/Select/GroupSelect.js +14 -58
  120. package/es/Select/Select.js +33 -79
  121. package/es/Select/Select.module.css +23 -23
  122. package/es/Select/SelectWithAvatar.js +4 -17
  123. package/es/Select/SelectWithIcon.js +5 -46
  124. package/es/Select/__tests__/Select.spec.js +8 -6
  125. package/es/Select/props/propTypes.js +0 -1
  126. package/es/Stencils/Stencils.js +3 -3
  127. package/es/Stencils/Stencils.module.css +11 -11
  128. package/es/Switch/Switch.js +3 -5
  129. package/es/Switch/Switch.module.css +23 -23
  130. package/es/Tab/Tab.js +4 -4
  131. package/es/Tab/Tab.module.css +14 -14
  132. package/es/Tab/TabContent.js +0 -1
  133. package/es/Tab/TabContentWrapper.js +0 -2
  134. package/es/Tab/TabWrapper.js +2 -5
  135. package/es/Tab/Tabs.js +7 -54
  136. package/es/Tab/Tabs.module.css +30 -37
  137. package/es/Tab/__tests__/Tab.spec.js +3 -1
  138. package/es/Tab/__tests__/TabWrapper.spec.js +0 -1
  139. package/es/Tag/Tag.js +3 -6
  140. package/es/Tag/Tag.module.css +25 -25
  141. package/es/TextBox/TextBox.js +3 -15
  142. package/es/TextBox/TextBox.module.css +9 -9
  143. package/es/TextBox/__tests__/TextBox.spec.js +4 -1
  144. package/es/TextBoxIcon/TextBoxIcon.js +2 -9
  145. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  146. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +7 -2
  147. package/es/Textarea/Textarea.js +3 -12
  148. package/es/Textarea/Textarea.module.css +21 -21
  149. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  150. package/es/Tooltip/Tooltip.js +14 -58
  151. package/es/Tooltip/Tooltip.module.css +5 -5
  152. package/es/Tooltip/__tests__/Tooltip.spec.js +0 -5
  153. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +2 -3
  154. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -7
  155. package/es/common/animation.module.css +8 -8
  156. package/es/common/avatarsizes.module.css +16 -16
  157. package/es/common/basicReset.module.css +3 -3
  158. package/es/common/common.module.css +24 -24
  159. package/es/common/customscroll.module.css +2 -2
  160. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  161. package/es/deprecated/PortalLayer/PortalLayer.js +20 -25
  162. package/es/semantic/Button/Button.js +2 -3
  163. package/es/semantic/Button/semanticButton.module.css +1 -1
  164. package/es/utils/Common.js +13 -54
  165. package/es/utils/ContextOptimizer.js +5 -4
  166. package/es/utils/__tests__/debounce.spec.js +2 -2
  167. package/es/utils/constructFullName.js +0 -2
  168. package/es/utils/css/compileClassNames.js +0 -5
  169. package/es/utils/css/mergeStyle.js +7 -8
  170. package/es/utils/css/utils.js +0 -1
  171. package/es/utils/datetime/common.js +5 -16
  172. package/es/utils/debounce.js +1 -5
  173. package/es/utils/dropDownUtils.js +11 -68
  174. package/es/utils/getInitial.js +0 -4
  175. package/es/utils/shallowEqual.js +0 -6
  176. package/lib/Accordion/Accordion.js +18 -42
  177. package/lib/Accordion/AccordionItem.js +18 -40
  178. package/lib/Accordion/__tests__/Accordion.spec.js +0 -3
  179. package/lib/Accordion/index.js +0 -3
  180. package/lib/Accordion/props/propTypes.js +0 -3
  181. package/lib/Animation/Animation.js +18 -38
  182. package/lib/Animation/__tests__/Animation.spec.js +7 -11
  183. package/lib/Animation/props/propTypes.js +0 -3
  184. package/lib/AppContainer/AppContainer.js +21 -56
  185. package/lib/AppContainer/AppContainer.module.css +2 -2
  186. package/lib/AppContainer/props/propTypes.js +0 -3
  187. package/lib/Avatar/Avatar.js +38 -78
  188. package/lib/Avatar/Avatar.module.css +18 -18
  189. package/lib/Avatar/__tests__/Avatar.spec.js +0 -44
  190. package/lib/Avatar/props/propTypes.js +0 -3
  191. package/lib/AvatarTeam/AvatarTeam.js +30 -52
  192. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  193. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -13
  194. package/lib/AvatarTeam/props/propTypes.js +0 -3
  195. package/lib/Button/Button.js +20 -31
  196. package/lib/Button/css/Button.module.css +70 -70
  197. package/lib/Button/css/cssJSLogic.js +17 -18
  198. package/lib/Button/index.js +0 -3
  199. package/lib/Button/props/defaultProps.js +0 -2
  200. package/lib/Button/props/propTypes.js +0 -3
  201. package/lib/Buttongroup/Buttongroup.js +12 -32
  202. package/lib/Buttongroup/Buttongroup.module.css +15 -14
  203. package/lib/Buttongroup/__test__/Buttongroup.spec.js +0 -10
  204. package/lib/Buttongroup/props/propTypes.js +0 -3
  205. package/lib/Card/Card.js +46 -102
  206. package/lib/Card/__tests__/Card.spec.js +1 -10
  207. package/lib/Card/index.js +0 -4
  208. package/lib/Card/props/propTypes.js +0 -3
  209. package/lib/CheckBox/CheckBox.js +47 -71
  210. package/lib/CheckBox/CheckBox.module.css +15 -15
  211. package/lib/CheckBox/__tests__/CheckBox.spec.js +0 -3
  212. package/lib/CheckBox/props/propTypes.js +0 -3
  213. package/lib/DateTime/CalendarView.js +42 -82
  214. package/lib/DateTime/DateTime.js +155 -239
  215. package/lib/DateTime/DateTime.module.css +39 -39
  216. package/lib/DateTime/DateTimePopupFooter.js +8 -31
  217. package/lib/DateTime/DateTimePopupHeader.js +17 -48
  218. package/lib/DateTime/DateWidget.js +250 -352
  219. package/lib/DateTime/DateWidget.module.css +5 -5
  220. package/lib/DateTime/DaysRow.js +5 -27
  221. package/lib/DateTime/Time.js +32 -73
  222. package/lib/DateTime/YearView.js +28 -77
  223. package/lib/DateTime/YearView.module.css +15 -15
  224. package/lib/DateTime/__tests__/CalendarView.spec.js +5 -13
  225. package/lib/DateTime/__tests__/DateTime.spec.js +37 -51
  226. package/lib/DateTime/__tests__/DateWidget.spec.js +8 -10
  227. package/lib/DateTime/common.js +0 -6
  228. package/lib/DateTime/constants.js +0 -1
  229. package/lib/DateTime/dateFormatUtils/dateFormat.js +122 -184
  230. package/lib/DateTime/dateFormatUtils/dateFormats.js +1 -0
  231. package/lib/DateTime/dateFormatUtils/dayChange.js +7 -14
  232. package/lib/DateTime/dateFormatUtils/index.js +16 -74
  233. package/lib/DateTime/dateFormatUtils/monthChange.js +9 -19
  234. package/lib/DateTime/dateFormatUtils/timeChange.js +22 -54
  235. package/lib/DateTime/dateFormatUtils/yearChange.js +11 -22
  236. package/lib/DateTime/index.js +0 -2
  237. package/lib/DateTime/objectUtils.js +20 -24
  238. package/lib/DateTime/props/propTypes.js +1 -11
  239. package/lib/DateTime/typeChecker.js +0 -4
  240. package/lib/DateTime/validator.js +10 -73
  241. package/lib/DropBox/DropBox.js +12 -36
  242. package/lib/DropBox/DropBoxElement/DropBoxElement.js +44 -63
  243. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
  244. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +35 -42
  245. package/lib/DropBox/DropBoxElement/props/propTypes.js +1 -4
  246. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +9 -14
  247. package/lib/DropBox/__tests__/DropBox.spec.js +4 -8
  248. package/lib/DropBox/css/DropBox.module.css +6 -6
  249. package/lib/DropBox/css/cssJSLogic.js +1 -3
  250. package/lib/DropBox/props/defaultProps.js +4 -8
  251. package/lib/DropBox/props/propTypes.js +4 -10
  252. package/lib/DropDown/DropDown.js +8 -52
  253. package/lib/DropDown/DropDown.module.css +2 -2
  254. package/lib/DropDown/DropDownHeading.js +20 -39
  255. package/lib/DropDown/DropDownHeading.module.css +6 -6
  256. package/lib/DropDown/DropDownItem.js +20 -42
  257. package/lib/DropDown/DropDownItem.module.css +12 -12
  258. package/lib/DropDown/DropDownSearch.js +17 -40
  259. package/lib/DropDown/DropDownSearch.module.css +3 -3
  260. package/lib/DropDown/DropDownSeparator.js +4 -24
  261. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  262. package/lib/DropDown/__tests__/DropDown.spec.js +9 -15
  263. package/lib/DropDown/__tests__/DropDownItem.spec.js +4 -9
  264. package/lib/DropDown/__tests__/DropDownSearch.spec.js +0 -3
  265. package/lib/DropDown/index.js +0 -9
  266. package/lib/DropDown/props/propTypes.js +4 -6
  267. package/lib/Heading/Heading.js +15 -37
  268. package/lib/Heading/Heading.module.css +2 -2
  269. package/lib/Heading/props/propTypes.js +0 -3
  270. package/lib/Label/Label.js +19 -39
  271. package/lib/Label/Label.module.css +5 -5
  272. package/lib/Label/__tests__/Label.spec.js +1 -14
  273. package/lib/Label/props/propTypes.js +0 -3
  274. package/lib/Layout/Box.js +11 -31
  275. package/lib/Layout/Container.js +10 -29
  276. package/lib/Layout/Layout.module.css +15 -15
  277. package/lib/Layout/__tests__/Box.spec.js +49 -65
  278. package/lib/Layout/__tests__/Container.spec.js +50 -67
  279. package/lib/Layout/index.js +0 -3
  280. package/lib/Layout/props/propTypes.js +0 -3
  281. package/lib/Layout/utils.js +0 -10
  282. package/lib/ListItem/ListContainer.js +27 -48
  283. package/lib/ListItem/ListItem.js +45 -69
  284. package/lib/ListItem/ListItem.module.css +38 -38
  285. package/lib/ListItem/ListItemWithAvatar.js +48 -75
  286. package/lib/ListItem/ListItemWithCheckBox.js +39 -64
  287. package/lib/ListItem/ListItemWithIcon.js +44 -68
  288. package/lib/ListItem/ListItemWithRadio.js +41 -65
  289. package/lib/ListItem/index.js +0 -7
  290. package/lib/ListItem/props/propTypes.js +4 -6
  291. package/lib/Modal/Modal.js +10 -45
  292. package/lib/Modal/props/propTypes.js +0 -3
  293. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +166 -294
  294. package/lib/MultiSelect/AdvancedMultiSelect.js +125 -202
  295. package/lib/MultiSelect/EmptyState.js +24 -45
  296. package/lib/MultiSelect/MultiSelect.js +206 -323
  297. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  298. package/lib/MultiSelect/MultiSelectHeader.js +8 -30
  299. package/lib/MultiSelect/MultiSelectWithAvatar.js +63 -105
  300. package/lib/MultiSelect/SelectedOptions.js +17 -43
  301. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  302. package/lib/MultiSelect/Suggestions.js +32 -64
  303. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +75 -86
  304. package/lib/MultiSelect/index.js +0 -5
  305. package/lib/MultiSelect/props/defaultProps.js +0 -2
  306. package/lib/MultiSelect/props/propTypes.js +0 -5
  307. package/lib/PopOver/PopOver.js +49 -95
  308. package/lib/PopOver/__tests__/PopOver.spec.js +1 -4
  309. package/lib/PopOver/index.js +0 -4
  310. package/lib/PopOver/props/propTypes.js +0 -3
  311. package/lib/Popup/Popup.js +81 -158
  312. package/lib/Popup/__tests__/Popup.spec.js +8 -43
  313. package/lib/Popup/viewPort.js +14 -28
  314. package/lib/Provider/AvatarSize.js +0 -4
  315. package/lib/Provider/Config.js +0 -2
  316. package/lib/Provider/CssProvider.js +0 -4
  317. package/lib/Provider/IdProvider.js +6 -17
  318. package/lib/Provider/LibraryContext.js +15 -35
  319. package/lib/Provider/LibraryContextInit.js +0 -4
  320. package/lib/Provider/NumberGenerator/NumberGenerator.js +15 -44
  321. package/lib/Provider/ZindexProvider.js +3 -15
  322. package/lib/Provider/index.js +0 -5
  323. package/lib/Radio/Radio.js +38 -61
  324. package/lib/Radio/Radio.module.css +9 -9
  325. package/lib/Radio/__tests__/Radiospec.js +5 -9
  326. package/lib/Radio/props/propTypes.js +0 -3
  327. package/lib/Responsive/CustomResponsive.js +29 -73
  328. package/lib/Responsive/RefWrapper.js +11 -17
  329. package/lib/Responsive/ResizeComponent.js +36 -62
  330. package/lib/Responsive/ResizeObserver.js +10 -24
  331. package/lib/Responsive/Responsive.js +30 -80
  332. package/lib/Responsive/index.js +0 -4
  333. package/lib/Responsive/props/propTypes.js +0 -3
  334. package/lib/Responsive/sizeObservers.js +17 -53
  335. package/lib/Responsive/utils/index.js +3 -11
  336. package/lib/Responsive/utils/shallowCompare.js +2 -11
  337. package/lib/Responsive/windowResizeObserver.js +0 -8
  338. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +17 -45
  339. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  340. package/lib/ResponsiveDropBox/props/propTypes.js +0 -3
  341. package/lib/Ribbon/Ribbon.js +13 -33
  342. package/lib/Ribbon/Ribbon.module.css +48 -46
  343. package/lib/Ribbon/__tests__/Ribbon.spec.js +0 -22
  344. package/lib/Ribbon/props/propTypes.js +0 -3
  345. package/lib/RippleEffect/RippleEffect.js +10 -18
  346. package/lib/RippleEffect/props/propTypes.js +0 -3
  347. package/lib/Select/GroupSelect.js +130 -229
  348. package/lib/Select/Select.js +209 -290
  349. package/lib/Select/Select.module.css +23 -23
  350. package/lib/Select/SelectWithAvatar.js +56 -102
  351. package/lib/Select/SelectWithIcon.js +76 -132
  352. package/lib/Select/__tests__/Select.spec.js +91 -133
  353. package/lib/Select/index.js +0 -5
  354. package/lib/Select/props/defaultProps.js +4 -5
  355. package/lib/Select/props/propTypes.js +0 -4
  356. package/lib/Stencils/Stencils.js +10 -29
  357. package/lib/Stencils/Stencils.module.css +11 -11
  358. package/lib/Stencils/__tests__/Stencils.spec.js +0 -12
  359. package/lib/Stencils/props/propTypes.js +0 -3
  360. package/lib/Switch/Switch.js +34 -57
  361. package/lib/Switch/Switch.module.css +23 -23
  362. package/lib/Switch/props/propTypes.js +0 -3
  363. package/lib/Tab/Tab.js +27 -40
  364. package/lib/Tab/Tab.module.css +14 -14
  365. package/lib/Tab/TabContent.js +5 -12
  366. package/lib/Tab/TabContentWrapper.js +6 -13
  367. package/lib/Tab/TabWrapper.js +19 -37
  368. package/lib/Tab/Tabs.js +91 -171
  369. package/lib/Tab/Tabs.module.css +30 -37
  370. package/lib/Tab/__tests__/Tab.spec.js +58 -67
  371. package/lib/Tab/__tests__/TabContent.spec.js +6 -10
  372. package/lib/Tab/__tests__/TabContentWrapper.spec.js +20 -28
  373. package/lib/Tab/__tests__/TabWrapper.spec.js +0 -12
  374. package/lib/Tab/__tests__/Tabs.spec.js +39 -53
  375. package/lib/Tab/index.js +0 -6
  376. package/lib/Tab/props/propTypes.js +0 -3
  377. package/lib/Tag/Tag.js +43 -72
  378. package/lib/Tag/Tag.module.css +25 -25
  379. package/lib/Tag/__tests__/Tag.spec.js +8 -14
  380. package/lib/Tag/props/propTypes.js +0 -3
  381. package/lib/TextBox/TextBox.js +59 -85
  382. package/lib/TextBox/TextBox.module.css +9 -9
  383. package/lib/TextBox/__tests__/TextBox.spec.js +4 -14
  384. package/lib/TextBox/props/propTypes.js +4 -6
  385. package/lib/TextBoxIcon/TextBoxIcon.js +52 -79
  386. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  387. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +5 -14
  388. package/lib/TextBoxIcon/props/propTypes.js +0 -3
  389. package/lib/Textarea/Textarea.js +29 -54
  390. package/lib/Textarea/Textarea.module.css +21 -21
  391. package/lib/Textarea/__tests__/Textarea.spec.js +2 -14
  392. package/lib/Textarea/props/propTypes.js +0 -3
  393. package/lib/Tooltip/Tooltip.js +31 -94
  394. package/lib/Tooltip/Tooltip.module.css +5 -5
  395. package/lib/Tooltip/__tests__/Tooltip.spec.js +3 -24
  396. package/lib/Tooltip/props/propTypes.js +0 -3
  397. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +16 -40
  398. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -3
  399. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +25 -53
  400. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -3
  401. package/lib/VelocityAnimation/index.js +0 -3
  402. package/lib/common/animation.module.css +8 -8
  403. package/lib/common/avatarsizes.module.css +16 -16
  404. package/lib/common/basicReset.module.css +3 -3
  405. package/lib/common/common.module.css +24 -24
  406. package/lib/common/customscroll.module.css +2 -2
  407. package/lib/css.js +0 -40
  408. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  409. package/lib/deprecated/PortalLayer/PortalLayer.js +23 -46
  410. package/lib/deprecated/PortalLayer/props/propTypes.js +0 -3
  411. package/lib/index.js +0 -57
  412. package/lib/semantic/Button/Button.js +22 -42
  413. package/lib/semantic/Button/props/propTypes.js +0 -3
  414. package/lib/semantic/Button/semanticButton.module.css +1 -1
  415. package/lib/semantic/index.js +0 -2
  416. package/lib/utils/Common.js +25 -109
  417. package/lib/utils/ContextOptimizer.js +10 -16
  418. package/lib/utils/__tests__/constructFullName.spec.js +0 -1
  419. package/lib/utils/__tests__/debounce.spec.js +2 -3
  420. package/lib/utils/__tests__/getInitial.spec.js +0 -1
  421. package/lib/utils/constructFullName.js +4 -13
  422. package/lib/utils/css/compileClassNames.js +0 -6
  423. package/lib/utils/css/mergeStyle.js +8 -11
  424. package/lib/utils/css/utils.js +0 -8
  425. package/lib/utils/datetime/common.js +5 -32
  426. package/lib/utils/debounce.js +1 -6
  427. package/lib/utils/dropDownUtils.js +59 -175
  428. package/lib/utils/dummyFunction.js +0 -2
  429. package/lib/utils/getHTMLFontSize.js +0 -1
  430. package/lib/utils/getInitial.js +0 -6
  431. package/lib/utils/index.js +0 -4
  432. package/lib/utils/scrollTo.js +0 -2
  433. package/lib/utils/shallowEqual.js +0 -8
  434. package/package.json +1 -1
@@ -1,12 +1,15 @@
1
1
  /** ** Libraries *** */
2
2
  import { useContext, useRef } from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import shallowEqual from './shallowEqual'; // Please use this component with children as inline function for force this components rerender when parent rerender regardless of reason
4
+ import shallowEqual from './shallowEqual';
5
+
6
+ // Please use this component with children as inline function for force this components rerender when parent rerender regardless of reason
5
7
  // Because below componends only rerender when children or calculation are changed, unless no changes will update below
8
+
6
9
  // this component logic based on return same children reference to stop rerender.
7
10
  // Think before change logic
8
- // eslint-disable-next-line import/prefer-default-export
9
11
 
12
+ // eslint-disable-next-line import/prefer-default-export
10
13
  export function ContextOptimizer(props) {
11
14
  const {
12
15
  Context,
@@ -22,13 +25,11 @@ export function ContextOptimizer(props) {
22
25
  data: null,
23
26
  renderF: null
24
27
  });
25
-
26
28
  if (!shallowEqual(data, local.data) || local.renderF !== renderF) {
27
29
  local.children = renderF(data);
28
30
  local.data = data;
29
31
  local.renderF = renderF;
30
32
  }
31
-
32
33
  return local.children;
33
34
  }
34
35
  ContextOptimizer.propTypes = {
@@ -6,8 +6,8 @@ describe('debounce specification', () => {
6
6
  it('should call immediate', () => {
7
7
  const mockfn = jest.fn();
8
8
  const dMockfn = debounce(mockfn, 1000, true);
9
- dMockfn(); //expect(setTimeout).toHaveBeenCalledTimes(1);
10
-
9
+ dMockfn();
10
+ //expect(setTimeout).toHaveBeenCalledTimes(1);
11
11
  expect(mockfn.mock.calls.length).toBe(1);
12
12
  });
13
13
  it('should call two times but it invoke multiple times', () => {
@@ -1,10 +1,8 @@
1
1
  function constructFullName(firstName, lastName) {
2
2
  return `${firstName ? `${firstName}${lastName ? ' ' : ''}` : ''}${lastName ? lastName : ''}`;
3
3
  }
4
-
5
4
  export function constructFullNameByPattern(firstName, lastName, namePattern) {
6
5
  let [name0, name1] = namePattern;
7
-
8
6
  if (name0 === 'FIRST_NAME' && name1 === 'LAST_NAME') {
9
7
  return constructFullName(firstName, lastName);
10
8
  } else if (name0 === 'LAST_NAME' && name1 === 'FIRST_NAME') {
@@ -1,9 +1,7 @@
1
1
  import { dataTypes, isDataTypeOf } from './utils';
2
-
3
2
  const collectClassNames = function (processedClassNameList) {
4
3
  for (let index = 0; index < (arguments.length <= 1 ? 0 : arguments.length - 1); index++) {
5
4
  let classInfo = index + 1 < 1 || arguments.length <= index + 1 ? undefined : arguments[index + 1];
6
-
7
5
  if (!classInfo) {
8
6
  continue;
9
7
  } else if (isDataTypeOf(classInfo, dataTypes.object)) {
@@ -15,14 +13,11 @@ const collectClassNames = function (processedClassNameList) {
15
13
  }
16
14
  }
17
15
  };
18
-
19
16
  export default function compileClassNames() {
20
17
  let resultClassNameList = [];
21
-
22
18
  for (var _len = arguments.length, classinfoList = new Array(_len), _key = 0; _key < _len; _key++) {
23
19
  classinfoList[_key] = arguments[_key];
24
20
  }
25
-
26
21
  collectClassNames(resultClassNameList, ...classinfoList);
27
22
  return resultClassNameList.filter(a => a !== '').join(' ');
28
23
  }
@@ -1,4 +1,6 @@
1
- const REPLACER_SYMBOL = '$'; // $ startWith is used for replace the existing style.
1
+ const REPLACER_SYMBOL = '$';
2
+
3
+ // $ startWith is used for replace the existing style.
2
4
  // all other will be append
3
5
 
4
6
  export default function mergeStyle(defaultStyle) {
@@ -7,16 +9,15 @@ export default function mergeStyle(defaultStyle) {
7
9
  // if(!Object.keys(defaultStyle).includes('base')) {
8
10
  // throw new Error(`STYLE CUSTOMIZATION RULE - Your style sheet should have "base" class name for customization`);
9
11
  // }
12
+
10
13
  return Object.keys(customStyle).reduce((res, next) => {
11
14
  if (next.startsWith(REPLACER_SYMBOL)) {
12
15
  let styleValue = customStyle[next];
13
16
  let styleName = next.replace(REPLACER_SYMBOL, '');
14
-
15
17
  if (!defaultStyle[styleName] && !additionalStyle.includes(styleName)) {
16
18
  // return res;
17
19
  throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${styleName}" is not available in that component style`);
18
20
  }
19
-
20
21
  if (additionalStyle.includes(styleName)) {
21
22
  res[styleName] = styleValue;
22
23
  } else {
@@ -25,7 +26,6 @@ export default function mergeStyle(defaultStyle) {
25
26
  let styleKey = res[keyName];
26
27
  let styleClasses = styleKey.split(' ');
27
28
  let ind = styleClasses.indexOf(val);
28
-
29
29
  if (ind !== -1) {
30
30
  styleClasses[ind] = styleValue;
31
31
  res[keyName] = styleClasses.join(' ');
@@ -38,7 +38,6 @@ export default function mergeStyle(defaultStyle) {
38
38
  let styleKey = res[keyName];
39
39
  let styleClasses = styleKey.split(' ');
40
40
  let ind = styleClasses.indexOf(val);
41
-
42
41
  if (ind !== -1) {
43
42
  styleClasses[ind] = styleClasses[ind] + ' ' + customStyle[next];
44
43
  res[keyName] = styleClasses.join(' ');
@@ -48,10 +47,10 @@ export default function mergeStyle(defaultStyle) {
48
47
  res[next] = customStyle[next];
49
48
  } else if (!defaultStyle[next] && !additionalStyle.includes(next)) {
50
49
  // res[next] = customStyle[next];
51
- `UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`;
50
+ throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`);
52
51
  }
53
-
54
52
  return res;
55
- }, { ...defaultStyle
53
+ }, {
54
+ ...defaultStyle
56
55
  });
57
56
  }
@@ -12,7 +12,6 @@ export const dataTypes = {
12
12
  export const getDataType = data => {
13
13
  let typeofData = typeof data;
14
14
  let isArrayDataType = Array.isArray(data);
15
-
16
15
  if (isArrayDataType) {
17
16
  return dataTypes.array;
18
17
  } else {
@@ -56,7 +56,6 @@ export function formatDate(dateMill, mask) {
56
56
  if (match in flags) {
57
57
  return flags[match];
58
58
  }
59
-
60
59
  return match.slice(1, match.length - 1);
61
60
  });
62
61
  return dat;
@@ -71,7 +70,6 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
71
70
  i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
72
71
  }
73
72
  }
74
-
75
73
  return i18nStr;
76
74
  }
77
75
  export function unescapeUnicode(str) {
@@ -86,28 +84,25 @@ export function getI18NValue(i18n) {
86
84
  if (typeof i18n === 'undefined') {
87
85
  return key => key;
88
86
  }
89
-
90
87
  return (key, values) => {
91
88
  let i18nStr = i18n[key];
92
-
93
89
  if (i18nStr === undefined) {
94
90
  return key;
95
91
  }
96
-
97
92
  i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
98
93
  return unescapeUnicode(i18nStr);
99
94
  };
100
- } // function getValues(params = [], diff) {
95
+ }
96
+
97
+ // function getValues(params = [], diff) {
101
98
  // return params.map(param => {
102
99
  // return diff[param];
103
100
  // });
104
101
  // }
105
-
106
102
  export function getI18NInfo(toDateObj, props, diffObj) {
107
103
  let key = null,
108
- values,
109
- text = null;
110
-
104
+ values,
105
+ text = null;
111
106
  if (typeof props === 'function') {
112
107
  let value = props(diffObj1);
113
108
  key = value.key;
@@ -118,7 +113,6 @@ export function getI18NInfo(toDateObj, props, diffObj) {
118
113
  } else if (typeof props === 'string') {
119
114
  text = toDateObj.format(props);
120
115
  }
121
-
122
116
  return {
123
117
  key,
124
118
  values,
@@ -147,15 +141,12 @@ let oneYearInMillis = 31536000000;
147
141
  let oneDayInMillis = 86400000;
148
142
  let oneHourInMillis = 3600000;
149
143
  let oneMinuteInMillis = 60000;
150
-
151
144
  function convertAsNonExponential(number) {
152
145
  if (number.toString().toLowerCase().indexOf('e') !== -1) {
153
146
  return number.toFixed(20);
154
147
  }
155
-
156
148
  return number;
157
149
  }
158
-
159
150
  export function getDiffObj(diff) {
160
151
  diff = Math.abs(diff);
161
152
  let diffYears = diff / oneYearInMillis;
@@ -182,10 +173,8 @@ export function getDiffObj(diff) {
182
173
  export function getMonthEnd(month, year) {
183
174
  let monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
184
175
  let isLeapYear = year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
185
-
186
176
  if (month === 1 && isLeapYear) {
187
177
  return 29;
188
178
  }
189
-
190
179
  return monthend[month];
191
180
  }
@@ -2,20 +2,16 @@ export function debounce(func, wait, immediate) {
2
2
  let timeout;
3
3
  return function () {
4
4
  let context = this,
5
- args = arguments;
6
-
5
+ args = arguments;
7
6
  let later = function () {
8
7
  timeout = null;
9
-
10
8
  if (!immediate) {
11
9
  func.apply(context, args);
12
10
  }
13
11
  };
14
-
15
12
  let callNow = immediate && !timeout;
16
13
  clearTimeout(timeout);
17
14
  timeout = setTimeout(later, wait);
18
-
19
15
  if (callNow) {
20
16
  func.apply(context, args);
21
17
  }
@@ -4,42 +4,26 @@ 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
-
8
7
  const getOptionsOrder = props => props.optionsOrder || dummyArray;
9
-
10
8
  const getSelectedOptionsSel = props => props.selectedOptions || dummyArray;
11
-
12
9
  const getSearchStr = props => props.searchStr || '';
13
-
14
10
  export const getValueField = props => props.valueField || '';
15
11
  export const getTextField = props => props.textField || '';
16
12
  export const getImageField = props => props.imageField || '';
17
13
  export const getIconName = props => props.iconName || '';
18
14
  export const getIconSize = props => props.iconSize || '';
19
15
  export const getOptionType = props => props.optionType || '';
20
-
21
16
  const getNeedSearch = props => props.needSearch;
22
-
23
17
  const getIsDefaultSelectValue = props => props.isDefaultSelectValue;
24
-
25
18
  const getSelectedOptionsLength = props => getIsEmptyValue(props.selectedOptionsLength) ? '' : props.selectedOptionsLength;
26
-
27
19
  const getNormalizedFormatOptions = props => props.normalizedFormatOptions || dummyObj;
28
-
29
20
  const getSelectedValue = props => getIsEmptyValue(props.selectedValue) ? '' : props.selectedValue;
30
-
31
21
  const getSelectedFormatOptions = props => props.selectedFormatOptions || dummyObj;
32
-
33
22
  export const getPrefixText = props => props.prefixText || '';
34
-
35
23
  const getIsStartWithSearch = props => props.isStartsWithSearch;
36
-
37
24
  const getKeepSelectedOptions = props => props.keepSelectedOptions;
38
-
39
25
  const getDisabledOptions = props => props.disabledOptions || dummyArray;
40
-
41
26
  const getListItemProps = props => props.listItemProps || '';
42
-
43
27
  export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions], (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions) => {
44
28
  const suggestions = [];
45
29
  const suggestionIds = [];
@@ -51,7 +35,6 @@ export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOpti
51
35
  const valueString = getSearchString(value);
52
36
  const searchString = getSearchString(searchStr);
53
37
  const isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : valueString.indexOf(searchString) !== -1 : true;
54
-
55
38
  if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
56
39
  suggestions.push(option);
57
40
  suggestionIds.push(id);
@@ -66,11 +49,9 @@ export const optionIdGrouping = (id, prefixText) => {
66
49
  if (getIsEmptyValue(id)) {
67
50
  return '';
68
51
  }
69
-
70
52
  if (getIsEmptyValue(prefixText)) {
71
53
  return id;
72
54
  }
73
-
74
55
  const prefixType = typeof prefixText === 'number' ? 'Int' : 'Str';
75
56
  const idType = typeof id === 'number' ? 'Int' : 'Str';
76
57
  return `${prefixType}_${prefixText}_${idType}_${id}`;
@@ -81,19 +62,15 @@ export const extractOptionId = id => {
81
62
  id: ''
82
63
  };
83
64
  }
84
-
85
65
  if (typeof id === 'number') {
86
66
  return {
87
67
  id
88
68
  };
89
69
  }
90
-
91
70
  const splitedOption = id.split && id.split('_');
92
-
93
71
  if (splitedOption.length === 1) {
94
72
  return splitedOption[0];
95
73
  }
96
-
97
74
  if (splitedOption.length === 4) {
98
75
  let [prefixType, prefixText, idType, id] = splitedOption;
99
76
  id = idType === 'Int' ? Number.parseInt(id) : id;
@@ -123,10 +100,10 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
123
100
  } = option;
124
101
  let id = typeof option === 'object' ? option[impValueField || valueField] : option;
125
102
  const value = typeof option === 'object' ? option[impTextField || textField] : option;
126
- const photoURL = typeof option === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
103
+ const photoURL = typeof option === 'object' ? option[impImageField || imageField] : '';
127
104
 
105
+ // grouping options (group select/MultiSelect)
128
106
  id = !getIsEmptyValue(id) ? optionIdGrouping(id, prefixText) : '';
129
-
130
107
  if (remvampOptionIds.indexOf(id) === -1 && !getIsEmptyValue(id) && !getIsEmptyValue(value)) {
131
108
  remvampOptionIds.push(id);
132
109
  const optionDetails = {
@@ -134,27 +111,21 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
134
111
  value,
135
112
  optionType: impOptionType || optionType
136
113
  };
137
-
138
114
  if (imageField) {
139
115
  optionDetails.photoURL = photoURL;
140
116
  }
141
-
142
117
  if (impIconName || iconName) {
143
118
  optionDetails.icon = impIconName || iconName;
144
119
  }
145
-
146
120
  if (impIconSize || iconSize) {
147
121
  optionDetails.iconSize = impIconSize || iconSize;
148
122
  }
149
-
150
123
  if (disabledOptions.length) {
151
124
  optionDetails.isDisabled = disabledOptions.indexOf(id) >= 0;
152
125
  }
153
-
154
126
  if (listStyle || listItemProps) {
155
127
  optionDetails.listItemProps = listStyle || listItemProps;
156
128
  }
157
-
158
129
  normalizedFormatOptions[id] = optionDetails;
159
130
  normalizedAllOptions[id] = option;
160
131
  revampOptions.push(optionDetails);
@@ -173,13 +144,11 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
173
144
  const revampSelectedOptions = [];
174
145
  const normalizedSelectedOptions = {};
175
146
  selectedOptionsLength = !getIsEmptyValue(selectedOptionsLength) ? selectedOptionsLength : selectedOptions.length;
176
-
177
147
  for (let i = 0; i < selectedOptionsLength; i++) {
178
148
  const option = selectedOptions[i];
179
149
  const {
180
150
  id
181
151
  } = normalizedFormatOptions[option] || {};
182
-
183
152
  if (revampSelectedOptions.indexOf(id) === -1 && !getIsEmptyValue(id)) {
184
153
  revampSelectedOptions.push(id);
185
154
  output.push(normalizedFormatOptions[option]);
@@ -194,7 +163,6 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
194
163
  revampSelectedOptions.indexOf(option) === -1 ? revampSelectedOptions.push(option) : null;
195
164
  }
196
165
  }
197
-
198
166
  return {
199
167
  formatSelectedOptions: output,
200
168
  normalizedSelectedOptions,
@@ -204,12 +172,10 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
204
172
  export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, getNormalizedFormatOptions, getSelectedValue, getSelectedFormatOptions, getIsDefaultSelectValue, getValueField, getTextField], (optionsOrder, normalizedFormatOptions, selectedValue, selectedFormatOptions, isDefaultSelectValue, valueField, textField) => {
205
173
  let selectedValueIndex = optionsOrder.indexOf(selectedValue);
206
174
  let isSelfValueChanged = false;
207
-
208
175
  if (getIsEmptyValue(selectedValue) && isDefaultSelectValue) {
209
176
  [selectedValue] = optionsOrder;
210
177
  isSelfValueChanged = true;
211
178
  }
212
-
213
179
  const allOptions = Object.assign({}, selectedFormatOptions, normalizedFormatOptions);
214
180
  const details = allOptions[selectedValue];
215
181
  let hoverIndex = selectedValueIndex !== -1 ? selectedValueIndex : 0;
@@ -219,8 +185,9 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
219
185
  let {
220
186
  value: selectedValueText = '',
221
187
  id: selectedId
222
- } = details || dummyObj; //selectedValue is not included in options case
188
+ } = details || dummyObj;
223
189
 
190
+ //selectedValue is not included in options case
224
191
  if (getIsEmptyValue(selectedId)) {
225
192
  if (typeof selectedValue === 'object') {
226
193
  const id = selectedValue[valueField];
@@ -238,7 +205,6 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
238
205
  selectedId = selectedValue;
239
206
  }
240
207
  }
241
-
242
208
  return {
243
209
  selected: selectedValueText,
244
210
  hoverIndex,
@@ -247,22 +213,17 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
247
213
  isSelfValueChanged
248
214
  };
249
215
  });
250
-
251
216
  const getObj1 = props => props.obj1 || dummyObj;
252
-
253
217
  const getObj2 = props => props.obj2 || dummyObj;
254
-
255
218
  export const makeObjectConcat = () => createSelector([getObj1, getObj2], (obj1, obj2) => Object.assign({}, obj1, obj2));
256
- /***** Group Select *****/
257
219
 
220
+ /***** Group Select *****/
258
221
  const getGroupedOptions = props => props.groupedOptions || dummyArray;
259
-
260
222
  const getFormatOptions = makeFormatOptions();
261
223
  export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions], groupedOptions => {
262
224
  const revampedGroups = [];
263
225
  let allOptionIds = [];
264
226
  let allNormalizedOptions = {}; //all group normalized options
265
-
266
227
  let allNormalizedFormatOptions = {};
267
228
  const groupIds = [];
268
229
  const normalizedGroupedOptions = {};
@@ -274,7 +235,6 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
274
235
  valueField,
275
236
  textField
276
237
  } = group;
277
-
278
238
  if (!getIsEmptyValue(groupId) && groupIds.indexOf(groupId) === -1) {
279
239
  groupIds.push(groupId);
280
240
  normalizedGroupedOptions[groupId] = group;
@@ -289,7 +249,6 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
289
249
  textField,
290
250
  prefixText: groupId
291
251
  });
292
-
293
252
  if (optionsOrder.length) {
294
253
  revampedGroups.push({
295
254
  id: groupId,
@@ -311,9 +270,7 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
311
270
  normalizedGroupedOptions
312
271
  };
313
272
  });
314
-
315
273
  const getGroups = props => props.revampedGroups;
316
-
317
274
  const getFilterSuggestions = makeGetMultiSelectFilterSuggestions();
318
275
  export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGroups, getSearchStr, getNeedSearch, getIsStartWithSearch], (groups, searchStr, needSearch, isStartsWithSearch) => {
319
276
  const suggestionGroups = [];
@@ -331,7 +288,6 @@ export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGrou
331
288
  searchStr,
332
289
  isStartsWithSearch
333
290
  });
334
-
335
291
  if (suggestionIds.length) {
336
292
  suggestionGroups.push(Object.assign({}, group, {
337
293
  options: suggestions
@@ -349,7 +305,6 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
349
305
  return options.reduce((changedOptions, option) => {
350
306
  let newOption;
351
307
  const id = typeof option === 'object' ? option[valueField] : option;
352
-
353
308
  if (typeof option === 'object' && !getIsEmptyValue(id)) {
354
309
  newOption = Object.assign({}, option, {
355
310
  [valueField]: optionIdGrouping(id, prefixText),
@@ -357,11 +312,9 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
357
312
  textField,
358
313
  optionType
359
314
  });
360
-
361
315
  if (imageField) {
362
316
  newOption.imageField = imageField;
363
317
  }
364
-
365
318
  changedOptions.push(newOption);
366
319
  } else if (!getIsEmptyValue(id)) {
367
320
  newOption = {
@@ -375,7 +328,6 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
375
328
  };
376
329
  changedOptions.push(newOption);
377
330
  }
378
-
379
331
  return changedOptions;
380
332
  }, newOptions);
381
333
  });
@@ -386,23 +338,22 @@ export const filterSelectedOptions = function () {
386
338
  disabledOptions = dummyArray
387
339
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
388
340
  // 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
-
341
+ selectedOptions = selectedOptions || dummyArray;
342
+ // eslint-disable-next-line no-param-reassign
343
+ propSelectedOptions = propSelectedOptions || dummyArray;
344
+ // eslint-disable-next-line no-param-reassign
393
345
  disabledOptions = disabledOptions || dummyArray;
394
- const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1); // eslint-disable-next-line max-len
346
+ const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1);
395
347
 
348
+ // eslint-disable-next-line max-len
396
349
  const oldValidSelectedOptions = propSelectedOptions.filter(selectedOption => {
397
350
  const isRemoved = selectedOptions.indexOf(selectedOption) === -1;
398
351
  const isDisabled = disabledOptions.indexOf(selectedOption) >= 0;
399
-
400
352
  if (isDisabled) {
401
353
  return true;
402
354
  } else if (isRemoved) {
403
355
  return false;
404
356
  }
405
-
406
357
  return true;
407
358
  });
408
359
  return {
@@ -413,36 +364,28 @@ export const makeGetIsShowClearIcon = () => createSelector([getSelectedOptionsSe
413
364
  let countForShowClear = 2;
414
365
  let enabledOptionsLength = 0;
415
366
  let isShowClearIcon = selectedOptions.length >= countForShowClear;
416
-
417
367
  if (disabledOptions.length) {
418
368
  let isHaveEnabledOptions = false;
419
369
  let isAllDisabled = disabledOptions.length === selectedOptions.length;
420
-
421
370
  if (!isAllDisabled) {
422
371
  isHaveEnabledOptions = selectedOptions.some(option => {
423
372
  let {
424
373
  isDisabled = false
425
374
  } = option || {};
426
-
427
375
  if (!isDisabled) {
428
376
  enabledOptionsLength += 1;
429
-
430
377
  if (enabledOptionsLength === countForShowClear) {
431
378
  return true;
432
379
  }
433
-
434
380
  return false;
435
381
  }
436
-
437
382
  return false;
438
383
  });
439
384
  }
440
-
441
385
  return {
442
386
  isShowClearIcon: isAllDisabled ? !isAllDisabled : isHaveEnabledOptions
443
387
  };
444
388
  }
445
-
446
389
  return {
447
390
  isShowClearIcon
448
391
  };
@@ -2,23 +2,19 @@ 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
-
6
5
  if (firstName) {
7
6
  firstName = firstName.trim();
8
7
  initial = firstName[0];
9
8
  }
10
-
11
9
  if (lastName) {
12
10
  lastName = lastName.trim();
13
11
  initial += initial ? lastName[0] : lastName.substring(0, 2);
14
12
  }
15
-
16
13
  return initial ? initial.toUpperCase() : initial;
17
14
  }
18
15
  export function getInitialByPattern(firstName, lastName, pattern) {
19
16
  if (pattern[0] === 'FIRST_NAME') {
20
17
  return getInitial(firstName, lastName);
21
18
  }
22
-
23
19
  return getInitial(lastName, firstName);
24
20
  }
@@ -5,28 +5,22 @@ function is(x, y) {
5
5
  return x !== x && y !== y;
6
6
  }
7
7
  }
8
-
9
8
  export default function shallowEqual(objA, objB) {
10
9
  if (is(objA, objB)) {
11
10
  return true;
12
11
  }
13
-
14
12
  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
15
13
  return false;
16
14
  }
17
-
18
15
  const keysA = Object.keys(objA);
19
16
  const keysB = Object.keys(objB);
20
-
21
17
  if (keysA.length !== keysB.length) {
22
18
  return false;
23
19
  }
24
-
25
20
  for (let i = 0; i < keysA.length; i++) {
26
21
  if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
27
22
  return false;
28
23
  }
29
24
  }
30
-
31
25
  return true;
32
26
  }