@zohodesk/components 1.0.0-temp-154 → 1.0.0-temp-156

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 (432) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +3 -3
  5. package/es/AppContainer/AppContainer.js +13 -5
  6. package/es/AppContainer/AppContainer.module.css +2 -2
  7. package/es/Avatar/Avatar.js +23 -11
  8. package/es/Avatar/Avatar.module.css +10 -10
  9. package/es/AvatarTeam/AvatarTeam.js +3 -3
  10. package/es/AvatarTeam/AvatarTeam.module.css +22 -21
  11. package/es/Button/Button.js +4 -3
  12. package/es/Button/css/Button.module.css +51 -50
  13. package/es/Buttongroup/Buttongroup.js +3 -3
  14. package/es/Buttongroup/Buttongroup.module.css +13 -14
  15. package/es/Card/Card.js +21 -10
  16. package/es/CheckBox/CheckBox.js +5 -3
  17. package/es/CheckBox/CheckBox.module.css +16 -16
  18. package/es/DateTime/CalendarView.js +32 -20
  19. package/es/DateTime/DateTime.js +67 -6
  20. package/es/DateTime/DateTime.module.css +39 -39
  21. package/es/DateTime/DateTimePopupFooter.js +4 -2
  22. package/es/DateTime/DateTimePopupHeader.js +8 -2
  23. package/es/DateTime/DateWidget.js +98 -35
  24. package/es/DateTime/DateWidget.module.css +5 -5
  25. package/es/DateTime/DaysRow.js +4 -2
  26. package/es/DateTime/Time.js +10 -2
  27. package/es/DateTime/YearView.js +28 -4
  28. package/es/DateTime/YearView.module.css +15 -15
  29. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  30. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  31. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  32. package/es/DateTime/common.js +3 -0
  33. package/es/DateTime/constants.js +1 -0
  34. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  35. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  36. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  37. package/es/DateTime/dateFormatUtils/index.js +32 -2
  38. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  39. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  40. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  41. package/es/DateTime/objectUtils.js +14 -20
  42. package/es/DateTime/typeChecker.js +3 -0
  43. package/es/DateTime/validator.js +58 -6
  44. package/es/DropBox/DropBox.js +6 -2
  45. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  46. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +74 -73
  47. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  48. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  49. package/es/DropBox/css/DropBox.module.css +6 -6
  50. package/es/DropBox/props/defaultProps.js +1 -2
  51. package/es/DropBox/props/propTypes.js +1 -2
  52. package/es/DropDown/DropDown.js +8 -4
  53. package/es/DropDown/DropDown.module.css +2 -2
  54. package/es/DropDown/DropDownHeading.js +4 -5
  55. package/es/DropDown/DropDownHeading.module.css +3 -3
  56. package/es/DropDown/DropDownItem.js +6 -0
  57. package/es/DropDown/DropDownItem.module.css +9 -9
  58. package/es/DropDown/DropDownSearch.js +4 -0
  59. package/es/DropDown/DropDownSeparator.js +1 -0
  60. package/es/DropDown/DropDownSeparator.module.css +2 -2
  61. package/es/DropDown/__tests__/DropDown.spec.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 +1 -1
  66. package/es/Layout/Box.js +13 -0
  67. package/es/Layout/Container.js +12 -1
  68. package/es/Layout/Layout.module.css +15 -15
  69. package/es/Layout/index.js +1 -2
  70. package/es/ListItem/ListContainer.js +8 -3
  71. package/es/ListItem/ListItem.js +9 -3
  72. package/es/ListItem/ListItem.module.css +26 -26
  73. package/es/ListItem/ListItemWithAvatar.js +9 -3
  74. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  75. package/es/ListItem/ListItemWithIcon.js +8 -3
  76. package/es/ListItem/ListItemWithRadio.js +7 -3
  77. package/es/Modal/Modal.js +28 -11
  78. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  79. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  80. package/es/MultiSelect/EmptyState.js +2 -0
  81. package/es/MultiSelect/MultiSelect.js +99 -32
  82. package/es/MultiSelect/MultiSelect.module.css +32 -31
  83. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  84. package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
  85. package/es/MultiSelect/SelectedOptions.js +6 -3
  86. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  87. package/es/MultiSelect/Suggestions.js +7 -3
  88. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  89. package/es/MultiSelect/props/propTypes.js +2 -0
  90. package/es/PopOver/PopOver.js +18 -2
  91. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  92. package/es/Popup/Popup.js +77 -24
  93. package/es/Popup/__tests__/Popup.spec.js +17 -5
  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 +4 -2
  100. package/es/Radio/Radio.module.css +3 -3
  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/Ribbon/Ribbon.js +3 -2
  114. package/es/Ribbon/Ribbon.module.css +42 -42
  115. package/es/RippleEffect/RippleEffect.js +1 -3
  116. package/es/Select/GroupSelect.js +58 -14
  117. package/es/Select/Select.js +79 -33
  118. package/es/Select/Select.module.css +23 -23
  119. package/es/Select/SelectWithAvatar.js +17 -4
  120. package/es/Select/SelectWithIcon.js +46 -5
  121. package/es/Select/__tests__/Select.spec.js +6 -8
  122. package/es/Select/props/propTypes.js +1 -0
  123. package/es/Stencils/Stencils.js +3 -3
  124. package/es/Stencils/Stencils.module.css +2 -2
  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 +2 -0
  131. package/es/Tab/TabWrapper.js +5 -2
  132. package/es/Tab/Tabs.js +54 -7
  133. package/es/Tab/Tabs.module.css +23 -23
  134. package/es/Tab/__tests__/Tab.spec.js +1 -3
  135. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  136. package/es/Tag/Tag.js +6 -3
  137. package/es/Tag/Tag.module.css +10 -10
  138. package/es/TextBox/TextBox.js +15 -3
  139. package/es/TextBox/TextBox.module.css +6 -5
  140. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  141. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  142. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  143. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  144. package/es/Textarea/Textarea.js +12 -3
  145. package/es/Textarea/Textarea.module.css +6 -6
  146. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  147. package/es/Tooltip/Tooltip.js +58 -14
  148. package/es/Tooltip/Tooltip.module.css +12 -5
  149. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  150. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  151. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  152. package/es/common/animation.module.css +8 -8
  153. package/es/common/basicReset.module.css +3 -3
  154. package/es/common/boxShadow.module.css +1 -3
  155. package/es/common/common.module.css +24 -24
  156. package/es/common/customscroll.module.css +4 -2
  157. package/es/common/reset.module.css +1 -0
  158. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  159. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  160. package/es/semantic/Button/Button.js +3 -2
  161. package/es/semantic/Button/semanticButton.module.css +1 -1
  162. package/es/utils/Common.js +54 -9
  163. package/es/utils/ContextOptimizer.js +4 -5
  164. package/es/utils/__tests__/debounce.spec.js +2 -2
  165. package/es/utils/constructFullName.js +2 -0
  166. package/es/utils/css/compileClassNames.js +5 -0
  167. package/es/utils/css/mergeStyle.js +7 -6
  168. package/es/utils/css/utils.js +1 -0
  169. package/es/utils/datetime/common.js +16 -5
  170. package/es/utils/debounce.js +5 -1
  171. package/es/utils/dropDownUtils.js +68 -11
  172. package/es/utils/getInitial.js +4 -0
  173. package/es/utils/shallowEqual.js +6 -0
  174. package/lib/Accordion/Accordion.js +42 -18
  175. package/lib/Accordion/AccordionItem.js +40 -18
  176. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  177. package/lib/Accordion/index.js +3 -0
  178. package/lib/Accordion/props/propTypes.js +3 -0
  179. package/lib/Animation/Animation.js +38 -18
  180. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  181. package/lib/Animation/props/propTypes.js +3 -0
  182. package/lib/AppContainer/AppContainer.js +56 -21
  183. package/lib/AppContainer/AppContainer.module.css +2 -2
  184. package/lib/AppContainer/props/propTypes.js +3 -0
  185. package/lib/Avatar/Avatar.js +78 -38
  186. package/lib/Avatar/Avatar.module.css +10 -10
  187. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  188. package/lib/Avatar/props/propTypes.js +3 -0
  189. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  190. package/lib/AvatarTeam/AvatarTeam.module.css +22 -21
  191. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  192. package/lib/AvatarTeam/props/propTypes.js +3 -0
  193. package/lib/Button/Button.js +31 -20
  194. package/lib/Button/css/Button.module.css +51 -50
  195. package/lib/Button/css/cssJSLogic.js +18 -17
  196. package/lib/Button/index.js +3 -0
  197. package/lib/Button/props/defaultProps.js +2 -0
  198. package/lib/Button/props/propTypes.js +3 -0
  199. package/lib/Buttongroup/Buttongroup.js +32 -12
  200. package/lib/Buttongroup/Buttongroup.module.css +13 -14
  201. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  202. package/lib/Buttongroup/props/propTypes.js +3 -0
  203. package/lib/Card/Card.js +102 -46
  204. package/lib/Card/__tests__/Card.spec.js +10 -1
  205. package/lib/Card/index.js +4 -0
  206. package/lib/Card/props/propTypes.js +3 -0
  207. package/lib/CheckBox/CheckBox.js +71 -47
  208. package/lib/CheckBox/CheckBox.module.css +16 -16
  209. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  210. package/lib/CheckBox/props/propTypes.js +3 -0
  211. package/lib/DateTime/CalendarView.js +82 -42
  212. package/lib/DateTime/DateTime.js +239 -155
  213. package/lib/DateTime/DateTime.module.css +39 -39
  214. package/lib/DateTime/DateTimePopupFooter.js +31 -8
  215. package/lib/DateTime/DateTimePopupHeader.js +48 -17
  216. package/lib/DateTime/DateWidget.js +352 -250
  217. package/lib/DateTime/DateWidget.module.css +5 -5
  218. package/lib/DateTime/DaysRow.js +27 -5
  219. package/lib/DateTime/Time.js +73 -32
  220. package/lib/DateTime/YearView.js +77 -28
  221. package/lib/DateTime/YearView.module.css +15 -15
  222. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  223. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  224. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  225. package/lib/DateTime/common.js +6 -0
  226. package/lib/DateTime/constants.js +1 -0
  227. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  228. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  229. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  230. package/lib/DateTime/dateFormatUtils/index.js +74 -16
  231. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  232. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  233. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  234. package/lib/DateTime/index.js +2 -0
  235. package/lib/DateTime/objectUtils.js +24 -20
  236. package/lib/DateTime/props/propTypes.js +11 -1
  237. package/lib/DateTime/typeChecker.js +4 -0
  238. package/lib/DateTime/validator.js +73 -10
  239. package/lib/DropBox/DropBox.js +34 -10
  240. package/lib/DropBox/DropBoxElement/DropBoxElement.js +58 -37
  241. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +74 -73
  242. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +41 -33
  243. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  244. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  245. package/lib/DropBox/__tests__/DropBox.spec.js +6 -2
  246. package/lib/DropBox/css/DropBox.module.css +6 -6
  247. package/lib/DropBox/css/cssJSLogic.js +3 -1
  248. package/lib/DropBox/props/defaultProps.js +8 -4
  249. package/lib/DropBox/props/propTypes.js +10 -4
  250. package/lib/DropDown/DropDown.js +52 -8
  251. package/lib/DropDown/DropDown.module.css +2 -2
  252. package/lib/DropDown/DropDownHeading.js +39 -20
  253. package/lib/DropDown/DropDownHeading.module.css +3 -3
  254. package/lib/DropDown/DropDownItem.js +42 -20
  255. package/lib/DropDown/DropDownItem.module.css +9 -9
  256. package/lib/DropDown/DropDownSearch.js +40 -17
  257. package/lib/DropDown/DropDownSeparator.js +24 -4
  258. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  259. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  260. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  261. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  262. package/lib/DropDown/index.js +9 -0
  263. package/lib/DropDown/props/propTypes.js +6 -4
  264. package/lib/Heading/Heading.js +37 -15
  265. package/lib/Heading/Heading.module.css +2 -2
  266. package/lib/Heading/props/propTypes.js +3 -0
  267. package/lib/Label/Label.js +39 -19
  268. package/lib/Label/Label.module.css +1 -1
  269. package/lib/Label/__tests__/Label.spec.js +14 -1
  270. package/lib/Label/props/propTypes.js +3 -0
  271. package/lib/Layout/Box.js +31 -11
  272. package/lib/Layout/Container.js +29 -10
  273. package/lib/Layout/Layout.module.css +15 -15
  274. package/lib/Layout/__tests__/Box.spec.js +65 -49
  275. package/lib/Layout/__tests__/Container.spec.js +67 -50
  276. package/lib/Layout/index.js +3 -0
  277. package/lib/Layout/props/propTypes.js +3 -0
  278. package/lib/Layout/utils.js +10 -0
  279. package/lib/ListItem/ListContainer.js +48 -27
  280. package/lib/ListItem/ListItem.js +69 -45
  281. package/lib/ListItem/ListItem.module.css +26 -26
  282. package/lib/ListItem/ListItemWithAvatar.js +75 -48
  283. package/lib/ListItem/ListItemWithCheckBox.js +64 -39
  284. package/lib/ListItem/ListItemWithIcon.js +68 -44
  285. package/lib/ListItem/ListItemWithRadio.js +65 -41
  286. package/lib/ListItem/index.js +7 -0
  287. package/lib/ListItem/props/propTypes.js +6 -4
  288. package/lib/Modal/Modal.js +45 -10
  289. package/lib/Modal/props/propTypes.js +3 -0
  290. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +294 -166
  291. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  292. package/lib/MultiSelect/EmptyState.js +45 -24
  293. package/lib/MultiSelect/MultiSelect.js +323 -206
  294. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  295. package/lib/MultiSelect/MultiSelectHeader.js +30 -8
  296. package/lib/MultiSelect/MultiSelectWithAvatar.js +105 -63
  297. package/lib/MultiSelect/SelectedOptions.js +43 -17
  298. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  299. package/lib/MultiSelect/Suggestions.js +64 -32
  300. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  301. package/lib/MultiSelect/index.js +5 -0
  302. package/lib/MultiSelect/props/defaultProps.js +2 -0
  303. package/lib/MultiSelect/props/propTypes.js +5 -0
  304. package/lib/PopOver/PopOver.js +95 -49
  305. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  306. package/lib/PopOver/index.js +4 -0
  307. package/lib/PopOver/props/propTypes.js +3 -0
  308. package/lib/Popup/Popup.js +158 -81
  309. package/lib/Popup/__tests__/Popup.spec.js +43 -8
  310. package/lib/Popup/viewPort.js +28 -14
  311. package/lib/Provider/AvatarSize.js +4 -0
  312. package/lib/Provider/Config.js +2 -0
  313. package/lib/Provider/CssProvider.js +4 -0
  314. package/lib/Provider/IdProvider.js +17 -6
  315. package/lib/Provider/LibraryContext.js +35 -15
  316. package/lib/Provider/LibraryContextInit.js +4 -0
  317. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  318. package/lib/Provider/ZindexProvider.js +15 -3
  319. package/lib/Provider/index.js +5 -0
  320. package/lib/Radio/Radio.js +61 -38
  321. package/lib/Radio/Radio.module.css +3 -3
  322. package/lib/Radio/__tests__/Radiospec.js +9 -5
  323. package/lib/Radio/props/propTypes.js +3 -0
  324. package/lib/Responsive/CustomResponsive.js +73 -29
  325. package/lib/Responsive/RefWrapper.js +17 -11
  326. package/lib/Responsive/ResizeComponent.js +62 -36
  327. package/lib/Responsive/ResizeObserver.js +24 -10
  328. package/lib/Responsive/Responsive.js +80 -30
  329. package/lib/Responsive/index.js +4 -0
  330. package/lib/Responsive/props/propTypes.js +3 -0
  331. package/lib/Responsive/sizeObservers.js +53 -17
  332. package/lib/Responsive/utils/index.js +11 -3
  333. package/lib/Responsive/utils/shallowCompare.js +11 -2
  334. package/lib/Responsive/windowResizeObserver.js +8 -0
  335. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  336. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  337. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  338. package/lib/Ribbon/Ribbon.js +33 -13
  339. package/lib/Ribbon/Ribbon.module.css +42 -42
  340. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  341. package/lib/Ribbon/props/propTypes.js +3 -0
  342. package/lib/RippleEffect/RippleEffect.js +18 -10
  343. package/lib/RippleEffect/props/propTypes.js +3 -0
  344. package/lib/Select/GroupSelect.js +229 -130
  345. package/lib/Select/Select.js +290 -209
  346. package/lib/Select/Select.module.css +23 -23
  347. package/lib/Select/SelectWithAvatar.js +102 -56
  348. package/lib/Select/SelectWithIcon.js +132 -76
  349. package/lib/Select/__tests__/Select.spec.js +133 -91
  350. package/lib/Select/index.js +5 -0
  351. package/lib/Select/props/defaultProps.js +5 -4
  352. package/lib/Select/props/propTypes.js +4 -0
  353. package/lib/Stencils/Stencils.js +29 -10
  354. package/lib/Stencils/Stencils.module.css +2 -2
  355. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  356. package/lib/Stencils/props/propTypes.js +3 -0
  357. package/lib/Switch/Switch.js +57 -34
  358. package/lib/Switch/Switch.module.css +23 -23
  359. package/lib/Switch/props/propTypes.js +3 -0
  360. package/lib/Tab/Tab.js +40 -27
  361. package/lib/Tab/Tab.module.css +14 -14
  362. package/lib/Tab/TabContent.js +12 -5
  363. package/lib/Tab/TabContentWrapper.js +13 -6
  364. package/lib/Tab/TabWrapper.js +37 -19
  365. package/lib/Tab/Tabs.js +171 -91
  366. package/lib/Tab/Tabs.module.css +23 -23
  367. package/lib/Tab/__tests__/Tab.spec.js +67 -58
  368. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  369. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  370. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  371. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  372. package/lib/Tab/index.js +6 -0
  373. package/lib/Tab/props/propTypes.js +3 -0
  374. package/lib/Tag/Tag.js +72 -43
  375. package/lib/Tag/Tag.module.css +10 -10
  376. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  377. package/lib/Tag/props/propTypes.js +3 -0
  378. package/lib/TextBox/TextBox.js +85 -59
  379. package/lib/TextBox/TextBox.module.css +6 -5
  380. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  381. package/lib/TextBox/props/propTypes.js +6 -4
  382. package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
  383. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  384. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  385. package/lib/TextBoxIcon/props/propTypes.js +3 -0
  386. package/lib/Textarea/Textarea.js +54 -29
  387. package/lib/Textarea/Textarea.module.css +6 -6
  388. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  389. package/lib/Textarea/props/propTypes.js +3 -0
  390. package/lib/Tooltip/Tooltip.js +94 -31
  391. package/lib/Tooltip/Tooltip.module.css +12 -5
  392. package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
  393. package/lib/Tooltip/props/propTypes.js +3 -0
  394. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  395. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  396. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  397. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  398. package/lib/VelocityAnimation/index.js +3 -0
  399. package/lib/common/animation.module.css +8 -8
  400. package/lib/common/basicReset.module.css +3 -3
  401. package/lib/common/boxShadow.module.css +1 -3
  402. package/lib/common/common.module.css +24 -24
  403. package/lib/common/customscroll.module.css +4 -2
  404. package/lib/common/reset.module.css +1 -0
  405. package/lib/css.js +40 -0
  406. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  407. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  408. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  409. package/lib/index.js +57 -0
  410. package/lib/semantic/Button/Button.js +42 -22
  411. package/lib/semantic/Button/props/propTypes.js +3 -0
  412. package/lib/semantic/Button/semanticButton.module.css +1 -1
  413. package/lib/semantic/index.js +2 -0
  414. package/lib/utils/Common.js +108 -18
  415. package/lib/utils/ContextOptimizer.js +16 -10
  416. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  417. package/lib/utils/__tests__/debounce.spec.js +3 -2
  418. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  419. package/lib/utils/constructFullName.js +13 -4
  420. package/lib/utils/css/compileClassNames.js +6 -0
  421. package/lib/utils/css/mergeStyle.js +10 -7
  422. package/lib/utils/css/utils.js +8 -0
  423. package/lib/utils/datetime/common.js +32 -5
  424. package/lib/utils/debounce.js +6 -1
  425. package/lib/utils/dropDownUtils.js +175 -59
  426. package/lib/utils/dummyFunction.js +2 -0
  427. package/lib/utils/getHTMLFontSize.js +1 -0
  428. package/lib/utils/getInitial.js +6 -0
  429. package/lib/utils/index.js +4 -0
  430. package/lib/utils/scrollTo.js +2 -0
  431. package/lib/utils/shallowEqual.js +8 -0
  432. package/package.json +20 -13
@@ -16,9 +16,7 @@ export const stopAllEventPropagation = e => {
16
16
  export function cancelBubblingEffect(e) {
17
17
  e && e.stopPropagation && e.stopPropagation();
18
18
  e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
19
- }
20
-
21
- // export function getCommentsDetails(
19
+ } // export function getCommentsDetails(
22
20
  // commentIds = [],
23
21
  // comments = {},
24
22
  // agents = {}
@@ -41,6 +39,7 @@ export function encodeForHtml(str) {
41
39
  str = str.replace(/\\/g, '\');
42
40
  str = str.replace(/'/g, ''');
43
41
  }
42
+
44
43
  return str;
45
44
  }
46
45
  export function getListOfDetails() {
@@ -52,6 +51,7 @@ export function getListOfDetails() {
52
51
  export function capitalize() {
53
52
  let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
54
53
  let newValue = '';
54
+
55
55
  for (let i = 0; i < value.length; i++) {
56
56
  if (i == 0) {
57
57
  newValue += value[i].toUpperCase();
@@ -59,12 +59,14 @@ export function capitalize() {
59
59
  newValue += value[i].toLowerCase();
60
60
  }
61
61
  }
62
+
62
63
  return newValue;
63
64
  }
64
65
  export function bind() {
65
66
  for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
66
67
  handlers[_key] = arguments[_key];
67
68
  }
69
+
68
70
  handlers.forEach(handler => {
69
71
  this[handler] = this[handler].bind(this);
70
72
  });
@@ -73,12 +75,15 @@ export function getFullName() {
73
75
  let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
74
76
  let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
75
77
  let fullName = '';
78
+
76
79
  if (firstName !== null && firstName !== '') {
77
80
  fullName = firstName;
78
81
  }
82
+
79
83
  if (lastName !== null && lastName !== '') {
80
84
  fullName = `${fullName}${lastName}`;
81
85
  }
86
+
82
87
  return fullName;
83
88
  }
84
89
  export function getStringifiedOutputForJson() {
@@ -86,6 +91,7 @@ export function getStringifiedOutputForJson() {
86
91
  const keys = Object.keys(input);
87
92
  const modifiedInput = keys.reduce((curr, next) => {
88
93
  const values = input[next] || [];
94
+
89
95
  if (values.length) {
90
96
  const valueList = values.reduce((curr, next) => {
91
97
  curr.push(next.id);
@@ -94,6 +100,7 @@ export function getStringifiedOutputForJson() {
94
100
  curr[next] = valueList;
95
101
  return curr;
96
102
  }
103
+
97
104
  return curr;
98
105
  }, {});
99
106
  return JSON.stringify(modifiedInput);
@@ -109,6 +116,7 @@ export function filterValue(obj, val) {
109
116
  const ids = obj ? Object.keys(obj) : [];
110
117
  ids.forEach(key => {
111
118
  const value = obj[key] || {};
119
+
112
120
  if (value.name === val && !value.isCustomField) {
113
121
  result = value.id;
114
122
  }
@@ -130,34 +138,42 @@ export function formatValue() {
130
138
  let textField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'name';
131
139
  return values && values.map(value => {
132
140
  let formattedValue = value;
141
+
133
142
  if (typeof value === 'string' || typeof value === 'number') {
134
143
  formattedValue = {};
135
144
  formattedValue[valueField] = value;
136
145
  formattedValue[textField] = value;
137
146
  }
147
+
138
148
  return formattedValue;
139
149
  }) || [];
140
150
  }
141
151
  export function bytesToSize(bytes) {
142
152
  bytes = parseInt(bytes, 10);
143
153
  const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
154
+
144
155
  if (bytes === 0) {
145
156
  return '0 Byte';
146
157
  }
158
+
147
159
  const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
148
160
  return `${Math.round(bytes / Math.pow(1024, i), 2)} ${sizes[i]}`;
149
161
  }
150
162
  export function getMemSize(bytes) {
151
163
  let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0;
152
164
  const thresh = size ? 1000 : 1024;
165
+
153
166
  if (Math.abs(bytes) < thresh) {
154
167
  return `${bytes} B`;
155
168
  }
169
+
156
170
  let units = size ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'],
157
- i = -1;
171
+ i = -1;
172
+
158
173
  do {
159
174
  bytes /= thresh, ++i;
160
175
  } while (Math.abs(bytes) >= thresh && i < units.length - 1);
176
+
161
177
  {
162
178
  return `${bytes.toFixed(1)} ${units[i]}`;
163
179
  }
@@ -166,18 +182,24 @@ export function checkIsImageFile(fileName) {
166
182
  fileName = fileName || '';
167
183
  return /jpeg|jpg|png|gif|bmp|tiff|tif|ico/gi.test(fileName.substr(fileName.lastIndexOf('.') + 1));
168
184
  }
185
+
169
186
  function getI18NValue(key, values) {
170
187
  if (typeof i18n === 'undefined' || key === '' || typeof key === 'undefined') {
171
188
  return key;
172
189
  }
190
+
173
191
  let i18nStr = i18n[key];
192
+
174
193
  if (i18nStr === undefined) {
175
194
  return key;
176
195
  }
196
+
177
197
  i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
178
198
  return unescapeUnicode(i18nStr);
179
199
  }
200
+
180
201
  global.getI18NValue = getI18NValue;
202
+
181
203
  function replaceI18NValuesWithRegex(i18nStr, values) {
182
204
  if (typeof values !== 'undefined') {
183
205
  if (Array.isArray(values)) {
@@ -188,22 +210,27 @@ function replaceI18NValuesWithRegex(i18nStr, values) {
188
210
  i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
189
211
  }
190
212
  }
213
+
191
214
  return i18nStr;
192
215
  }
216
+
193
217
  function unescapeUnicode(str) {
194
218
  return str.replace(/\\u([a-fA-F0-9]{4})/g, (g, m1) => String.fromCharCode(parseInt(m1, 16)));
195
219
  }
220
+
196
221
  export function getPortalName(portalList, portalId) {
197
222
  return portalList && portalList.reduce((res, portal) => {
198
223
  if (portal.orgId === portalId) {
199
224
  return portal.orgName;
200
225
  }
226
+
201
227
  return res;
202
228
  }, null);
203
229
  }
204
230
  export function getFullDateString(fullDateObj) {
205
231
  let dateStr = '';
206
232
  const monthArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
233
+
207
234
  if (fullDateObj.toDateString() == new Date().toDateString()) {
208
235
  dateStr = format12Hour(fullDateObj);
209
236
  } else {
@@ -213,6 +240,7 @@ export function getFullDateString(fullDateObj) {
213
240
  const time = format12Hour(fullDateObj);
214
241
  dateStr = `${month} ${date} ${year} ${time}`;
215
242
  }
243
+
216
244
  return dateStr;
217
245
  }
218
246
  export function format12Hour(date) {
@@ -221,6 +249,7 @@ export function format12Hour(date) {
221
249
  const ampm = hours >= 12 ? 'pm' : 'am';
222
250
  hours %= 12;
223
251
  hours = hours ? hours : 12; // the hour '0' should be '12'
252
+
224
253
  minutes = minutes < 10 ? `0${minutes}` : minutes;
225
254
  const strTime = `${hours}:${minutes} ${ampm}`;
226
255
  return strTime;
@@ -228,6 +257,7 @@ export function format12Hour(date) {
228
257
  export function getDateOnly(fullDateObj) {
229
258
  let dateStr = '';
230
259
  const monthArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
260
+
231
261
  if (fullDateObj.toDateString() == new Date().toDateString()) {
232
262
  dateStr = 'Today';
233
263
  } else {
@@ -236,6 +266,7 @@ export function getDateOnly(fullDateObj) {
236
266
  const date = fullDateObj.getDate();
237
267
  dateStr = `${month} ${date} ${year}`;
238
268
  }
269
+
239
270
  return dateStr;
240
271
  }
241
272
  export function doAfterScrollEnd(element, callback) {
@@ -249,6 +280,7 @@ export function doAfterScrollEnd(element, callback) {
249
280
  scrollHeight
250
281
  } = element;
251
282
  const scrollPercent = scrollTop / (scrollHeight - clientHeight) * 100;
283
+
252
284
  if (scrollPercent > 80) {
253
285
  callback && callback();
254
286
  }
@@ -265,9 +297,11 @@ export const throttle = function (func, wait) {
265
297
  for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
266
298
  args[_key2 - 2] = arguments[_key2];
267
299
  }
300
+
268
301
  if (timerId) {
269
302
  return;
270
303
  }
304
+
271
305
  timerId = setTimeout(() => {
272
306
  try {
273
307
  func(...args);
@@ -280,6 +314,7 @@ export const scrollTo = function (suggestionContainer, selSuggestion) {
280
314
  if (!suggestionContainer || !selSuggestion) {
281
315
  return;
282
316
  }
317
+
283
318
  const {
284
319
  rectGap
285
320
  } = frameRelativeRects(selSuggestion, suggestionContainer) || {};
@@ -287,9 +322,11 @@ export const scrollTo = function (suggestionContainer, selSuggestion) {
287
322
  top = 0,
288
323
  bottom = 0
289
324
  } = rectGap || {};
325
+
290
326
  if (top < 0 && bottom < 0) {
291
327
  return;
292
328
  }
329
+
293
330
  const isElementInViewPort = top < 0 || bottom < 0 ? false : true;
294
331
  const suggestionContainerScrollTop = suggestionContainer.scrollTop;
295
332
  suggestionContainer.scrollTop = !isElementInViewPort ? bottom < 0 ? suggestionContainer.scrollTop + Math.abs(bottom) : top < 0 ? suggestionContainer.scrollTop - Math.abs(top) : suggestionContainerScrollTop : suggestionContainerScrollTop;
@@ -301,17 +338,21 @@ export function remConvert(val) {
301
338
  }
302
339
  export function isDescendant(parent, child) {
303
340
  let node = child.parentNode;
341
+
304
342
  while (node !== null) {
305
343
  if (node === parent) {
306
344
  return true;
307
345
  }
346
+
308
347
  node = node.parentNode;
309
348
  }
349
+
310
350
  return false;
311
351
  }
312
352
  export function getElementSpace(elementRef) {
313
353
  let neededSpace = 0,
314
- availableInsideSpace = 0;
354
+ availableInsideSpace = 0;
355
+
315
356
  if (elementRef) {
316
357
  let getStyle = window.getComputedStyle(elementRef);
317
358
  let margin = parseFloat(getStyle.marginLeft) + parseFloat(getStyle.marginRight);
@@ -320,6 +361,7 @@ export function getElementSpace(elementRef) {
320
361
  neededSpace = width + margin;
321
362
  availableInsideSpace = width - padding;
322
363
  }
364
+
323
365
  return {
324
366
  neededSpace: neededSpace,
325
367
  availableInsideSpace: availableInsideSpace
@@ -329,7 +371,6 @@ export function getSearchString() {
329
371
  let charachers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
330
372
  return (charachers || '').toString().toLowerCase(); //.replace(/\s+/g, '');
331
373
  }
332
-
333
374
  export function findScrollEnd(element) {
334
375
  let {
335
376
  scrollHeight,
@@ -338,26 +379,30 @@ export function findScrollEnd(element) {
338
379
  clientHeight
339
380
  } = element || {};
340
381
  let isElementScrollable = scrollHeight > clientHeight;
382
+
341
383
  if (isElementScrollable) {
342
384
  if (scrollHeight <= Math.ceil(scrollTop + offsetHeight)) {
343
385
  return true;
344
386
  }
345
- }
346
- // else {
347
-
387
+ } // else {
348
388
  // throw 'Is scroll not present in this element';
349
389
  // }
390
+
391
+
350
392
  return false;
351
393
  }
352
394
  export function isTextSelected() {
353
395
  let selectedText = '';
396
+
354
397
  if (window.getSelection) {
355
398
  selectedText = window.getSelection().toString();
356
399
  } else if (document.getSelection) {
357
400
  selectedText = document.getSelection().toString();
358
401
  }
402
+
359
403
  if (selectedText !== '') {
360
404
  return true;
361
405
  }
406
+
362
407
  return false;
363
408
  }
@@ -1,15 +1,12 @@
1
1
  /** ** Libraries *** */
2
2
  import { useContext, useRef } from 'react';
3
3
  import PropTypes from 'prop-types';
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
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
7
5
  // Because below componends only rerender when children or calculation are changed, unless no changes will update below
8
-
9
6
  // this component logic based on return same children reference to stop rerender.
10
7
  // Think before change logic
11
-
12
8
  // eslint-disable-next-line import/prefer-default-export
9
+
13
10
  export function ContextOptimizer(props) {
14
11
  const {
15
12
  Context,
@@ -25,11 +22,13 @@ export function ContextOptimizer(props) {
25
22
  data: null,
26
23
  renderF: null
27
24
  });
25
+
28
26
  if (!shallowEqual(data, local.data) || local.renderF !== renderF) {
29
27
  local.children = renderF(data);
30
28
  local.data = data;
31
29
  local.renderF = renderF;
32
30
  }
31
+
33
32
  return local.children;
34
33
  }
35
34
  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();
10
- //expect(setTimeout).toHaveBeenCalledTimes(1);
9
+ dMockfn(); //expect(setTimeout).toHaveBeenCalledTimes(1);
10
+
11
11
  expect(mockfn.mock.calls.length).toBe(1);
12
12
  });
13
13
  it('should call two times but it invoke multiple times', () => {
@@ -1,8 +1,10 @@
1
1
  function constructFullName(firstName, lastName) {
2
2
  return `${firstName ? `${firstName}${lastName ? ' ' : ''}` : ''}${lastName ? lastName : ''}`;
3
3
  }
4
+
4
5
  export function constructFullNameByPattern(firstName, lastName, namePattern) {
5
6
  let [name0, name1] = namePattern;
7
+
6
8
  if (name0 === 'FIRST_NAME' && name1 === 'LAST_NAME') {
7
9
  return constructFullName(firstName, lastName);
8
10
  } else if (name0 === 'LAST_NAME' && name1 === 'FIRST_NAME') {
@@ -1,7 +1,9 @@
1
1
  import { dataTypes, isDataTypeOf } from './utils';
2
+
2
3
  const collectClassNames = function (processedClassNameList) {
3
4
  for (let index = 0; index < (arguments.length <= 1 ? 0 : arguments.length - 1); index++) {
4
5
  let classInfo = index + 1 < 1 || arguments.length <= index + 1 ? undefined : arguments[index + 1];
6
+
5
7
  if (!classInfo) {
6
8
  continue;
7
9
  } else if (isDataTypeOf(classInfo, dataTypes.object)) {
@@ -13,11 +15,14 @@ const collectClassNames = function (processedClassNameList) {
13
15
  }
14
16
  }
15
17
  };
18
+
16
19
  export default function compileClassNames() {
17
20
  let resultClassNameList = [];
21
+
18
22
  for (var _len = arguments.length, classinfoList = new Array(_len), _key = 0; _key < _len; _key++) {
19
23
  classinfoList[_key] = arguments[_key];
20
24
  }
25
+
21
26
  collectClassNames(resultClassNameList, ...classinfoList);
22
27
  return resultClassNameList.filter(a => a !== '').join(' ');
23
28
  }
@@ -1,6 +1,4 @@
1
- const REPLACER_SYMBOL = '$';
2
-
3
- // $ startWith is used for replace the existing style.
1
+ const REPLACER_SYMBOL = '$'; // $ startWith is used for replace the existing style.
4
2
  // all other will be append
5
3
 
6
4
  export default function mergeStyle(defaultStyle) {
@@ -9,15 +7,16 @@ export default function mergeStyle(defaultStyle) {
9
7
  // if(!Object.keys(defaultStyle).includes('base')) {
10
8
  // throw new Error(`STYLE CUSTOMIZATION RULE - Your style sheet should have "base" class name for customization`);
11
9
  // }
12
-
13
10
  return Object.keys(customStyle).reduce((res, next) => {
14
11
  if (next.startsWith(REPLACER_SYMBOL)) {
15
12
  let styleValue = customStyle[next];
16
13
  let styleName = next.replace(REPLACER_SYMBOL, '');
14
+
17
15
  if (!defaultStyle[styleName] && !additionalStyle.includes(styleName)) {
18
16
  // return res;
19
17
  throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${styleName}" is not available in that component style`);
20
18
  }
19
+
21
20
  if (additionalStyle.includes(styleName)) {
22
21
  res[styleName] = styleValue;
23
22
  } else {
@@ -26,6 +25,7 @@ export default function mergeStyle(defaultStyle) {
26
25
  let styleKey = res[keyName];
27
26
  let styleClasses = styleKey.split(' ');
28
27
  let ind = styleClasses.indexOf(val);
28
+
29
29
  if (ind !== -1) {
30
30
  styleClasses[ind] = styleValue;
31
31
  res[keyName] = styleClasses.join(' ');
@@ -38,6 +38,7 @@ 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
+
41
42
  if (ind !== -1) {
42
43
  styleClasses[ind] = styleClasses[ind] + ' ' + customStyle[next];
43
44
  res[keyName] = styleClasses.join(' ');
@@ -49,8 +50,8 @@ export default function mergeStyle(defaultStyle) {
49
50
  // res[next] = customStyle[next];
50
51
  `UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`;
51
52
  }
53
+
52
54
  return res;
53
- }, {
54
- ...defaultStyle
55
+ }, { ...defaultStyle
55
56
  });
56
57
  }
@@ -12,6 +12,7 @@ export const dataTypes = {
12
12
  export const getDataType = data => {
13
13
  let typeofData = typeof data;
14
14
  let isArrayDataType = Array.isArray(data);
15
+
15
16
  if (isArrayDataType) {
16
17
  return dataTypes.array;
17
18
  } else {
@@ -56,6 +56,7 @@ export function formatDate(dateMill, mask) {
56
56
  if (match in flags) {
57
57
  return flags[match];
58
58
  }
59
+
59
60
  return match.slice(1, match.length - 1);
60
61
  });
61
62
  return dat;
@@ -70,6 +71,7 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
70
71
  i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
71
72
  }
72
73
  }
74
+
73
75
  return i18nStr;
74
76
  }
75
77
  export function unescapeUnicode(str) {
@@ -84,25 +86,28 @@ export function getI18NValue(i18n) {
84
86
  if (typeof i18n === 'undefined') {
85
87
  return key => key;
86
88
  }
89
+
87
90
  return (key, values) => {
88
91
  let i18nStr = i18n[key];
92
+
89
93
  if (i18nStr === undefined) {
90
94
  return key;
91
95
  }
96
+
92
97
  i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
93
98
  return unescapeUnicode(i18nStr);
94
99
  };
95
- }
96
-
97
- // function getValues(params = [], diff) {
100
+ } // function getValues(params = [], diff) {
98
101
  // return params.map(param => {
99
102
  // return diff[param];
100
103
  // });
101
104
  // }
105
+
102
106
  export function getI18NInfo(toDateObj, props, diffObj) {
103
107
  let key = null,
104
- values,
105
- text = null;
108
+ values,
109
+ text = null;
110
+
106
111
  if (typeof props === 'function') {
107
112
  let value = props(diffObj1);
108
113
  key = value.key;
@@ -113,6 +118,7 @@ export function getI18NInfo(toDateObj, props, diffObj) {
113
118
  } else if (typeof props === 'string') {
114
119
  text = toDateObj.format(props);
115
120
  }
121
+
116
122
  return {
117
123
  key,
118
124
  values,
@@ -141,12 +147,15 @@ let oneYearInMillis = 31536000000;
141
147
  let oneDayInMillis = 86400000;
142
148
  let oneHourInMillis = 3600000;
143
149
  let oneMinuteInMillis = 60000;
150
+
144
151
  function convertAsNonExponential(number) {
145
152
  if (number.toString().toLowerCase().indexOf('e') !== -1) {
146
153
  return number.toFixed(20);
147
154
  }
155
+
148
156
  return number;
149
157
  }
158
+
150
159
  export function getDiffObj(diff) {
151
160
  diff = Math.abs(diff);
152
161
  let diffYears = diff / oneYearInMillis;
@@ -173,8 +182,10 @@ export function getDiffObj(diff) {
173
182
  export function getMonthEnd(month, year) {
174
183
  let monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
175
184
  let isLeapYear = year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
185
+
176
186
  if (month === 1 && isLeapYear) {
177
187
  return 29;
178
188
  }
189
+
179
190
  return monthend[month];
180
191
  }
@@ -2,16 +2,20 @@ export function debounce(func, wait, immediate) {
2
2
  let timeout;
3
3
  return function () {
4
4
  let context = this,
5
- args = arguments;
5
+ args = arguments;
6
+
6
7
  let later = function () {
7
8
  timeout = null;
9
+
8
10
  if (!immediate) {
9
11
  func.apply(context, args);
10
12
  }
11
13
  };
14
+
12
15
  let callNow = immediate && !timeout;
13
16
  clearTimeout(timeout);
14
17
  timeout = setTimeout(later, wait);
18
+
15
19
  if (callNow) {
16
20
  func.apply(context, args);
17
21
  }