@zohodesk/components 1.0.0-test-252 → 1.1.0

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 (672) hide show
  1. package/README.md +1266 -1102
  2. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +346 -0
  3. package/assets/Appearance/dark/themes/blue/blue_CTA_DarkModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blue_CTA_DarkTheme.module.css +35 -0
  5. package/assets/Appearance/dark/themes/blue/blue_ComponentTheme_DarkTheme.module.css +45 -0
  6. package/assets/Appearance/dark/themes/green/green_CTA_DarkModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/green_CTA_DarkTheme.module.css +35 -0
  8. package/assets/Appearance/dark/themes/green/green_ComponentTheme_DarkTheme.module.css +45 -0
  9. package/assets/Appearance/dark/themes/orange/orange_CTA_DarkModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orange_CTA_DarkTheme.module.css +35 -0
  11. package/assets/Appearance/dark/themes/orange/orange_ComponentTheme_DarkTheme.module.css +45 -0
  12. package/assets/Appearance/dark/themes/red/red_CTA_DarkModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/red_CTA_DarkTheme.module.css +35 -0
  14. package/assets/Appearance/dark/themes/red/red_ComponentTheme_DarkTheme.module.css +45 -0
  15. package/assets/Appearance/dark/themes/yellow/yellow_CTA_DarkModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellow_CTA_DarkTheme.module.css +35 -0
  17. package/assets/Appearance/dark/themes/yellow/yellow_ComponentTheme_DarkTheme.module.css +45 -0
  18. package/assets/Appearance/light/mode/Component_LightMode.module.css +346 -0
  19. package/assets/Appearance/light/themes/blue/blue_CTA_LightModifyCategory.module.css +452 -0
  20. package/assets/Appearance/light/themes/blue/blue_CTA_LightTheme.module.css +35 -0
  21. package/assets/Appearance/light/themes/blue/blue_ComponentTheme_LightTheme.module.css +45 -0
  22. package/assets/Appearance/light/themes/green/green_CTA_LightModifyCategory.module.css +452 -0
  23. package/assets/Appearance/light/themes/green/green_CTA_LightTheme.module.css +35 -0
  24. package/assets/Appearance/light/themes/green/green_ComponentTheme_LightTheme.module.css +45 -0
  25. package/assets/Appearance/light/themes/orange/orange_CTA_LightModifyCategory.module.css +452 -0
  26. package/assets/Appearance/light/themes/orange/orange_CTA_LightTheme.module.css +35 -0
  27. package/assets/Appearance/light/themes/orange/orange_ComponentTheme_LightTheme.module.css +45 -0
  28. package/assets/Appearance/light/themes/red/red_CTA_LightModifyCategory.module.css +452 -0
  29. package/assets/Appearance/light/themes/red/red_CTA_LightTheme.module.css +35 -0
  30. package/assets/Appearance/light/themes/red/red_ComponentTheme_LightTheme.module.css +45 -0
  31. package/assets/Appearance/light/themes/yellow/yellow_CTA_LightModifyCategory.module.css +452 -0
  32. package/assets/Appearance/light/themes/yellow/yellow_CTA_LightTheme.module.css +35 -0
  33. package/assets/Appearance/light/themes/yellow/yellow_ComponentTheme_LightTheme.module.css +45 -0
  34. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +346 -0
  35. package/assets/Appearance/pureDark/themes/blue/blue_CTA_PureDarkModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/blue_CTA_PureDarkTheme.module.css +35 -0
  37. package/assets/Appearance/pureDark/themes/blue/blue_ComponentTheme_PureDarkTheme.module.css +45 -0
  38. package/assets/Appearance/pureDark/themes/green/green_CTA_PureDarkModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/green_CTA_PureDarkTheme.module.css +35 -0
  40. package/assets/Appearance/pureDark/themes/green/green_ComponentTheme_PureDarkTheme.module.css +45 -0
  41. package/assets/Appearance/pureDark/themes/orange/orange_CTA_PureDarkModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orange_CTA_PureDarkTheme.module.css +35 -0
  43. package/assets/Appearance/pureDark/themes/orange/orange_ComponentTheme_PureDarkTheme.module.css +45 -0
  44. package/assets/Appearance/pureDark/themes/red/red_CTA_PureDarkModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/red_CTA_PureDarkTheme.module.css +35 -0
  46. package/assets/Appearance/pureDark/themes/red/red_ComponentTheme_PureDarkTheme.module.css +45 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellow_CTA_PureDarkModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellow_CTA_PureDarkTheme.module.css +35 -0
  49. package/assets/Appearance/pureDark/themes/yellow/yellow_ComponentTheme_PureDarkTheme.module.css +45 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/lightContrastLightness.module.css +39 -0
  52. package/assets/Contrast/pureDarkContrastLightness.module.css +39 -0
  53. package/css_error.log +1 -0
  54. package/es/Accordion/Accordion.js +19 -9
  55. package/es/Accordion/AccordionItem.js +13 -8
  56. package/es/Accordion/props/defaultProps.js +6 -2
  57. package/es/Accordion/props/propTypes.js +3 -0
  58. package/es/Animation/Animation.js +10 -9
  59. package/es/AppContainer/AppContainer.js +38 -15
  60. package/es/AppContainer/AppContainer.module.css +18 -18
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +57 -34
  64. package/es/Avatar/Avatar.module.css +176 -135
  65. package/es/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -288
  66. package/es/Avatar/props/defaultProps.js +4 -1
  67. package/es/Avatar/props/propTypes.js +5 -2
  68. package/es/AvatarTeam/AvatarTeam.js +28 -18
  69. package/es/AvatarTeam/AvatarTeam.module.css +189 -161
  70. package/es/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -226
  71. package/es/AvatarTeam/props/defaultProps.js +5 -1
  72. package/es/AvatarTeam/props/propTypes.js +5 -1
  73. package/es/Button/Button.js +59 -55
  74. package/{lib/Button → es/Button/css}/Button.module.css +525 -521
  75. package/es/Button/css/cssJSLogic.js +53 -0
  76. package/es/Button/index.js +2 -0
  77. package/es/Button/props/defaultProps.js +3 -1
  78. package/es/Button/props/propTypes.js +6 -2
  79. package/es/Buttongroup/Buttongroup.js +25 -17
  80. package/es/Buttongroup/Buttongroup.module.css +106 -89
  81. package/es/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -146
  82. package/es/Buttongroup/props/defaultProps.js +3 -1
  83. package/es/Buttongroup/props/propTypes.js +3 -1
  84. package/es/Card/Card.js +52 -30
  85. package/es/Card/Card.module.css +20 -20
  86. package/es/Card/props/defaultProps.js +12 -2
  87. package/es/Card/props/propTypes.js +2 -2
  88. package/es/CheckBox/CheckBox.js +13 -9
  89. package/es/CheckBox/CheckBox.module.css +157 -157
  90. package/es/CheckBox/props/propTypes.js +1 -0
  91. package/es/DateTime/CalendarView.js +46 -19
  92. package/es/DateTime/DateTime.js +139 -77
  93. package/es/DateTime/DateTime.module.css +235 -232
  94. package/es/DateTime/DateTimePopupFooter.js +4 -2
  95. package/es/DateTime/DateTimePopupHeader.js +30 -11
  96. package/es/DateTime/DateWidget.js +122 -51
  97. package/es/DateTime/DateWidget.module.css +38 -38
  98. package/es/DateTime/DaysRow.js +6 -3
  99. package/es/DateTime/Time.js +10 -2
  100. package/es/DateTime/YearView.js +41 -9
  101. package/es/DateTime/YearView.module.css +99 -81
  102. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  103. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  104. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  105. package/es/DateTime/common.js +3 -0
  106. package/es/DateTime/constants.js +1 -0
  107. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  108. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  109. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  110. package/es/DateTime/dateFormatUtils/index.js +59 -2
  111. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  112. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  113. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  114. package/es/DateTime/index.js +1 -1
  115. package/es/DateTime/objectUtils.js +14 -20
  116. package/es/DateTime/props/defaultProps.js +2 -1
  117. package/es/DateTime/props/propTypes.js +5 -2
  118. package/es/DateTime/typeChecker.js +3 -0
  119. package/es/DateTime/validator.js +58 -6
  120. package/es/DropBox/DropBox.js +82 -218
  121. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  122. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  123. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  124. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  125. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  126. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  127. package/es/DropBox/DropBoxPositionMapping.json +144 -144
  128. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  129. package/es/DropBox/css/DropBox.module.css +59 -0
  130. package/es/DropBox/css/cssJSLogic.js +14 -0
  131. package/es/DropBox/props/defaultProps.js +9 -15
  132. package/es/DropBox/props/propTypes.js +9 -41
  133. package/es/DropDown/DropDown.js +16 -9
  134. package/es/DropDown/DropDown.module.css +5 -5
  135. package/es/DropDown/DropDownHeading.js +18 -11
  136. package/es/DropDown/DropDownHeading.module.css +53 -53
  137. package/es/DropDown/DropDownItem.js +8 -1
  138. package/es/DropDown/DropDownItem.module.css +94 -94
  139. package/es/DropDown/DropDownSearch.js +4 -0
  140. package/es/DropDown/DropDownSearch.module.css +14 -14
  141. package/es/DropDown/DropDownSeparator.js +1 -0
  142. package/es/DropDown/DropDownSeparator.module.css +7 -7
  143. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  144. package/es/DropDown/index.js +7 -0
  145. package/es/DropDown/props/defaultProps.js +3 -1
  146. package/es/DropDown/props/propTypes.js +2 -1
  147. package/es/Heading/Heading.js +8 -7
  148. package/es/Heading/Heading.module.css +4 -4
  149. package/es/Label/Label.js +16 -11
  150. package/es/Label/Label.module.css +52 -52
  151. package/es/Label/LabelColors.module.css +20 -20
  152. package/es/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -101
  153. package/es/Label/props/defaultProps.js +2 -1
  154. package/es/Label/props/propTypes.js +1 -0
  155. package/es/Layout/Box.js +19 -4
  156. package/es/Layout/Container.js +18 -5
  157. package/es/Layout/Layout.module.css +335 -335
  158. package/es/Layout/index.js +9 -10
  159. package/es/Layout/props/defaultProps.js +6 -2
  160. package/es/Layout/props/propTypes.js +7 -3
  161. package/es/Layout/utils.js +5 -1
  162. package/es/ListItem/ListContainer.js +21 -9
  163. package/es/ListItem/ListItem.js +30 -14
  164. package/es/ListItem/ListItem.module.css +216 -209
  165. package/es/ListItem/ListItemWithAvatar.js +30 -15
  166. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  167. package/es/ListItem/ListItemWithIcon.js +29 -14
  168. package/es/ListItem/ListItemWithRadio.js +22 -10
  169. package/es/ListItem/index.js +6 -0
  170. package/es/ListItem/props/defaultProps.js +18 -6
  171. package/es/ListItem/props/propTypes.js +13 -1
  172. package/es/Modal/Modal.js +35 -17
  173. package/es/MultiSelect/AdvancedGroupMultiSelect.js +105 -25
  174. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  175. package/es/MultiSelect/EmptyState.js +6 -0
  176. package/es/MultiSelect/MultiSelect.js +134 -51
  177. package/es/MultiSelect/MultiSelect.module.css +206 -205
  178. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  179. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  180. package/es/MultiSelect/SelectedOptions.js +6 -3
  181. package/es/MultiSelect/SelectedOptions.module.css +15 -15
  182. package/es/MultiSelect/Suggestions.js +13 -6
  183. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  184. package/es/MultiSelect/index.js +4 -0
  185. package/es/MultiSelect/props/defaultProps.js +11 -4
  186. package/es/MultiSelect/props/propTypes.js +17 -5
  187. package/es/PopOver/PopOver.js +25 -9
  188. package/es/PopOver/PopOver.module.css +8 -8
  189. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  190. package/es/PopOver/index.js +3 -0
  191. package/es/Popup/Popup.js +80 -31
  192. package/es/Popup/PositionMapping.json +73 -73
  193. package/es/Popup/__tests__/Popup.spec.js +17 -5
  194. package/es/Popup/viewPort.js +16 -4
  195. package/es/Provider/AvatarSize.js +1 -0
  196. package/es/Provider/IdProvider.js +16 -10
  197. package/es/Provider/LibraryContext.js +6 -4
  198. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  199. package/es/Provider/ZindexProvider.js +9 -2
  200. package/es/Provider/index.js +4 -0
  201. package/es/Radio/Radio.js +9 -7
  202. package/es/Radio/Radio.module.css +112 -112
  203. package/es/Responsive/CustomResponsive.js +37 -21
  204. package/es/Responsive/RefWrapper.js +6 -7
  205. package/es/Responsive/ResizeComponent.js +35 -25
  206. package/es/Responsive/ResizeObserver.js +26 -6
  207. package/es/Responsive/Responsive.js +34 -20
  208. package/es/Responsive/index.js +9 -8
  209. package/es/Responsive/sizeObservers.js +28 -7
  210. package/es/Responsive/utils/index.js +7 -5
  211. package/es/Responsive/utils/shallowCompare.js +7 -2
  212. package/es/Responsive/windowResizeObserver.js +7 -0
  213. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  214. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  215. package/es/Ribbon/Ribbon.js +21 -15
  216. package/es/Ribbon/Ribbon.module.css +454 -376
  217. package/es/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -163
  218. package/es/Ribbon/props/defaultProps.js +2 -1
  219. package/es/Ribbon/props/propTypes.js +2 -1
  220. package/es/RippleEffect/RippleEffect.js +6 -7
  221. package/es/RippleEffect/RippleEffect.module.css +92 -92
  222. package/es/Select/GroupSelect.js +71 -23
  223. package/es/Select/Select.js +115 -50
  224. package/es/Select/Select.module.css +108 -108
  225. package/es/Select/SelectWithAvatar.js +31 -12
  226. package/es/Select/SelectWithIcon.js +60 -14
  227. package/es/Select/__tests__/Select.spec.js +6 -8
  228. package/es/Select/index.js +4 -0
  229. package/es/Select/props/defaultProps.js +6 -1
  230. package/es/Select/props/propTypes.js +10 -4
  231. package/es/Stencils/Stencils.js +10 -9
  232. package/es/Stencils/Stencils.module.css +96 -96
  233. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -49
  234. package/es/Switch/Switch.js +14 -8
  235. package/es/Switch/Switch.module.css +127 -110
  236. package/es/Switch/props/defaultProps.js +2 -1
  237. package/es/Switch/props/propTypes.js +1 -0
  238. package/es/Tab/Tab.js +14 -11
  239. package/es/Tab/Tab.module.css +100 -101
  240. package/es/Tab/TabContent.js +6 -3
  241. package/es/Tab/TabContent.module.css +4 -4
  242. package/es/Tab/TabContentWrapper.js +6 -2
  243. package/es/Tab/TabWrapper.js +9 -4
  244. package/es/Tab/Tabs.js +100 -36
  245. package/es/Tab/Tabs.module.css +137 -141
  246. package/es/Tab/__tests__/Tab.spec.js +4 -12
  247. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  248. package/es/Tab/props/defaultProps.js +10 -5
  249. package/es/Tab/props/propTypes.js +10 -5
  250. package/es/Tag/Tag.js +24 -18
  251. package/es/Tag/Tag.module.css +254 -254
  252. package/es/Tag/props/defaultProps.js +2 -1
  253. package/es/Tag/props/propTypes.js +2 -1
  254. package/es/TextBox/TextBox.js +26 -10
  255. package/es/TextBox/TextBox.module.css +158 -157
  256. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  257. package/es/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -127
  258. package/es/TextBox/props/defaultProps.js +2 -1
  259. package/es/TextBox/props/propTypes.js +2 -1
  260. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  261. package/es/TextBoxIcon/TextBoxIcon.module.css +79 -78
  262. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  263. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -334
  264. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  265. package/es/TextBoxIcon/props/propTypes.js +1 -0
  266. package/es/Textarea/Textarea.js +23 -10
  267. package/es/Textarea/Textarea.module.css +139 -139
  268. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  269. package/es/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -97
  270. package/es/Textarea/props/defaultProps.js +2 -1
  271. package/es/Textarea/props/propTypes.js +1 -0
  272. package/es/Tooltip/Tooltip.js +67 -21
  273. package/es/Tooltip/Tooltip.module.css +141 -109
  274. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  275. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  276. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  277. package/es/VelocityAnimation/index.js +2 -0
  278. package/es/common/a11y.module.css +4 -0
  279. package/es/common/animation.module.css +624 -624
  280. package/es/common/avatarsizes.module.css +48 -44
  281. package/es/common/basic.module.css +33 -33
  282. package/es/common/basicReset.module.css +40 -40
  283. package/es/common/boxShadow.module.css +34 -0
  284. package/es/common/common.module.css +524 -524
  285. package/es/common/customscroll.module.css +91 -89
  286. package/es/common/reset.module.css +13 -12
  287. package/es/common/transition.module.css +146 -146
  288. package/es/css.js +2 -1
  289. package/es/deprecated/AdvancedMultiSelect.module.css +126 -126
  290. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  291. package/es/index.js +30 -146
  292. package/es/semantic/Button/Button.js +9 -7
  293. package/es/semantic/Button/semanticButton.module.css +9 -9
  294. package/es/semantic/index.js +1 -0
  295. package/es/utils/Common.js +74 -7
  296. package/es/utils/ContextOptimizer.js +4 -5
  297. package/es/utils/__tests__/debounce.spec.js +2 -2
  298. package/es/utils/constructFullName.js +2 -0
  299. package/es/utils/css/compileClassNames.js +28 -0
  300. package/es/utils/css/mergeStyle.js +57 -0
  301. package/es/utils/css/utils.js +24 -0
  302. package/es/utils/datetime/GMTZones.js +48 -0
  303. package/es/utils/datetime/common.js +31 -7
  304. package/es/utils/debounce.js +5 -1
  305. package/es/utils/dropDownUtils.js +71 -13
  306. package/es/utils/getInitial.js +4 -0
  307. package/es/utils/index.js +3 -0
  308. package/es/utils/shallowEqual.js +6 -0
  309. package/install.md +10 -0
  310. package/lib/Accordion/Accordion.js +50 -18
  311. package/lib/Accordion/AccordionItem.js +47 -20
  312. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  313. package/lib/Accordion/index.js +3 -0
  314. package/lib/Accordion/props/defaultProps.js +6 -2
  315. package/lib/Accordion/props/propTypes.js +6 -0
  316. package/lib/Animation/Animation.js +44 -21
  317. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  318. package/lib/Animation/props/propTypes.js +3 -0
  319. package/lib/AppContainer/AppContainer.js +75 -27
  320. package/lib/AppContainer/AppContainer.module.css +18 -18
  321. package/lib/AppContainer/props/defaultProps.js +3 -1
  322. package/lib/AppContainer/props/propTypes.js +5 -0
  323. package/lib/Avatar/Avatar.js +106 -53
  324. package/lib/Avatar/Avatar.module.css +176 -135
  325. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  326. package/lib/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -288
  327. package/lib/Avatar/props/defaultProps.js +4 -1
  328. package/lib/Avatar/props/propTypes.js +8 -2
  329. package/lib/AvatarTeam/AvatarTeam.js +70 -36
  330. package/lib/AvatarTeam/AvatarTeam.module.css +189 -161
  331. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  332. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -226
  333. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  334. package/lib/AvatarTeam/props/propTypes.js +8 -1
  335. package/lib/Button/Button.js +68 -78
  336. package/{es/Button → lib/Button/css}/Button.module.css +525 -521
  337. package/lib/Button/css/cssJSLogic.js +41 -0
  338. package/lib/Button/index.js +23 -0
  339. package/lib/Button/props/defaultProps.js +5 -1
  340. package/lib/Button/props/propTypes.js +11 -3
  341. package/lib/Buttongroup/Buttongroup.js +50 -20
  342. package/lib/Buttongroup/Buttongroup.module.css +106 -89
  343. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  344. package/lib/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -146
  345. package/lib/Buttongroup/props/defaultProps.js +3 -1
  346. package/lib/Buttongroup/props/propTypes.js +6 -1
  347. package/lib/Card/Card.js +123 -59
  348. package/lib/Card/Card.module.css +20 -20
  349. package/lib/Card/__tests__/Card.spec.js +10 -1
  350. package/lib/Card/index.js +4 -0
  351. package/lib/Card/props/defaultProps.js +16 -4
  352. package/lib/Card/props/propTypes.js +5 -2
  353. package/lib/CheckBox/CheckBox.js +76 -48
  354. package/lib/CheckBox/CheckBox.module.css +157 -157
  355. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  356. package/lib/CheckBox/props/propTypes.js +4 -0
  357. package/lib/DateTime/CalendarView.js +95 -38
  358. package/lib/DateTime/DateTime.js +309 -216
  359. package/lib/DateTime/DateTime.module.css +235 -232
  360. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  361. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  362. package/lib/DateTime/DateWidget.js +370 -260
  363. package/lib/DateTime/DateWidget.module.css +38 -38
  364. package/lib/DateTime/DaysRow.js +28 -3
  365. package/lib/DateTime/Time.js +72 -29
  366. package/lib/DateTime/YearView.js +89 -30
  367. package/lib/DateTime/YearView.module.css +99 -81
  368. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  369. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  370. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  371. package/lib/DateTime/common.js +6 -0
  372. package/lib/DateTime/constants.js +1 -0
  373. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  374. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  375. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  376. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  377. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  378. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  379. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  380. package/lib/DateTime/index.js +3 -1
  381. package/lib/DateTime/objectUtils.js +24 -20
  382. package/lib/DateTime/props/defaultProps.js +2 -1
  383. package/lib/DateTime/props/propTypes.js +21 -2
  384. package/lib/DateTime/typeChecker.js +4 -0
  385. package/lib/DateTime/validator.js +69 -6
  386. package/lib/DropBox/DropBox.js +102 -249
  387. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  388. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  389. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  390. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  391. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  392. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  393. package/lib/DropBox/DropBoxPositionMapping.json +144 -144
  394. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  395. package/lib/DropBox/css/DropBox.module.css +59 -0
  396. package/lib/DropBox/css/cssJSLogic.js +20 -0
  397. package/lib/DropBox/props/defaultProps.js +20 -17
  398. package/lib/DropBox/props/propTypes.js +22 -43
  399. package/lib/DropDown/DropDown.js +58 -10
  400. package/lib/DropDown/DropDown.module.css +5 -5
  401. package/lib/DropDown/DropDownHeading.js +47 -18
  402. package/lib/DropDown/DropDownHeading.module.css +53 -53
  403. package/lib/DropDown/DropDownItem.js +43 -18
  404. package/lib/DropDown/DropDownItem.module.css +94 -94
  405. package/lib/DropDown/DropDownSearch.js +39 -14
  406. package/lib/DropDown/DropDownSearch.module.css +14 -14
  407. package/lib/DropDown/DropDownSeparator.js +23 -1
  408. package/lib/DropDown/DropDownSeparator.module.css +7 -7
  409. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  410. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  411. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  412. package/lib/DropDown/index.js +65 -0
  413. package/lib/DropDown/props/defaultProps.js +3 -1
  414. package/lib/DropDown/props/propTypes.js +7 -1
  415. package/lib/Heading/Heading.js +42 -16
  416. package/lib/Heading/Heading.module.css +4 -4
  417. package/lib/Heading/props/propTypes.js +3 -0
  418. package/lib/Label/Label.js +47 -19
  419. package/lib/Label/Label.module.css +52 -52
  420. package/lib/Label/LabelColors.module.css +20 -20
  421. package/lib/Label/__tests__/Label.spec.js +14 -1
  422. package/lib/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -101
  423. package/lib/Label/props/defaultProps.js +2 -1
  424. package/lib/Label/props/propTypes.js +4 -0
  425. package/lib/Layout/Box.js +41 -16
  426. package/lib/Layout/Container.js +39 -15
  427. package/lib/Layout/Layout.module.css +335 -335
  428. package/lib/Layout/__tests__/Box.spec.js +65 -49
  429. package/lib/Layout/__tests__/Container.spec.js +67 -50
  430. package/lib/Layout/index.js +4 -11
  431. package/lib/Layout/props/defaultProps.js +6 -2
  432. package/lib/Layout/props/propTypes.js +10 -3
  433. package/lib/Layout/utils.js +15 -1
  434. package/lib/ListItem/ListContainer.js +61 -34
  435. package/lib/ListItem/ListItem.js +92 -50
  436. package/lib/ListItem/ListItem.module.css +216 -209
  437. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  438. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  439. package/lib/ListItem/ListItemWithIcon.js +92 -50
  440. package/lib/ListItem/ListItemWithRadio.js +83 -42
  441. package/lib/ListItem/index.js +55 -0
  442. package/lib/ListItem/props/defaultProps.js +18 -6
  443. package/lib/ListItem/props/propTypes.js +18 -3
  444. package/lib/Modal/Modal.js +51 -13
  445. package/lib/Modal/props/propTypes.js +3 -0
  446. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +305 -172
  447. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  448. package/lib/MultiSelect/EmptyState.js +48 -21
  449. package/lib/MultiSelect/MultiSelect.js +346 -210
  450. package/lib/MultiSelect/MultiSelect.module.css +206 -205
  451. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  452. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  453. package/lib/MultiSelect/SelectedOptions.js +42 -14
  454. package/lib/MultiSelect/SelectedOptions.module.css +15 -15
  455. package/lib/MultiSelect/Suggestions.js +66 -29
  456. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  457. package/lib/MultiSelect/index.js +39 -0
  458. package/lib/MultiSelect/props/defaultProps.js +13 -4
  459. package/lib/MultiSelect/props/propTypes.js +20 -5
  460. package/lib/PopOver/PopOver.js +101 -53
  461. package/lib/PopOver/PopOver.module.css +8 -8
  462. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  463. package/lib/PopOver/index.js +31 -0
  464. package/lib/PopOver/props/propTypes.js +3 -0
  465. package/lib/Popup/Popup.js +158 -83
  466. package/lib/Popup/PositionMapping.json +73 -73
  467. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  468. package/lib/Popup/viewPort.js +28 -14
  469. package/lib/Provider/AvatarSize.js +5 -0
  470. package/lib/Provider/Config.js +2 -0
  471. package/lib/Provider/CssProvider.js +4 -0
  472. package/lib/Provider/IdProvider.js +23 -12
  473. package/lib/Provider/LibraryContext.js +32 -10
  474. package/lib/Provider/LibraryContextInit.js +4 -0
  475. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  476. package/lib/Provider/ZindexProvider.js +15 -3
  477. package/lib/Provider/index.js +81 -0
  478. package/lib/Radio/Radio.js +65 -40
  479. package/lib/Radio/Radio.module.css +112 -112
  480. package/lib/Radio/__tests__/Radiospec.js +9 -5
  481. package/lib/Radio/props/propTypes.js +3 -0
  482. package/lib/Responsive/CustomResponsive.js +76 -26
  483. package/lib/Responsive/RefWrapper.js +15 -7
  484. package/lib/Responsive/ResizeComponent.js +58 -27
  485. package/lib/Responsive/ResizeObserver.js +23 -6
  486. package/lib/Responsive/Responsive.js +76 -24
  487. package/lib/Responsive/index.js +49 -22
  488. package/lib/Responsive/props/propTypes.js +3 -0
  489. package/lib/Responsive/sizeObservers.js +51 -13
  490. package/lib/Responsive/utils/index.js +11 -3
  491. package/lib/Responsive/utils/shallowCompare.js +11 -2
  492. package/lib/Responsive/windowResizeObserver.js +8 -0
  493. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  494. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  495. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  496. package/lib/Ribbon/Ribbon.js +48 -21
  497. package/lib/Ribbon/Ribbon.module.css +454 -376
  498. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  499. package/lib/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -163
  500. package/lib/Ribbon/props/defaultProps.js +2 -1
  501. package/lib/Ribbon/props/propTypes.js +5 -1
  502. package/lib/RippleEffect/RippleEffect.js +23 -14
  503. package/lib/RippleEffect/RippleEffect.module.css +92 -92
  504. package/lib/RippleEffect/props/propTypes.js +3 -0
  505. package/lib/Select/GroupSelect.js +240 -137
  506. package/lib/Select/Select.js +320 -220
  507. package/lib/Select/Select.module.css +108 -108
  508. package/lib/Select/SelectWithAvatar.js +112 -59
  509. package/lib/Select/SelectWithIcon.js +145 -82
  510. package/lib/Select/__tests__/Select.spec.js +131 -89
  511. package/lib/Select/index.js +39 -0
  512. package/lib/Select/props/defaultProps.js +10 -2
  513. package/lib/Select/props/propTypes.js +13 -4
  514. package/lib/Stencils/Stencils.js +35 -13
  515. package/lib/Stencils/Stencils.module.css +96 -96
  516. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  517. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -49
  518. package/lib/Stencils/props/propTypes.js +3 -0
  519. package/lib/Switch/Switch.js +64 -35
  520. package/lib/Switch/Switch.module.css +127 -110
  521. package/lib/Switch/props/defaultProps.js +2 -1
  522. package/lib/Switch/props/propTypes.js +4 -0
  523. package/lib/Tab/Tab.js +49 -33
  524. package/lib/Tab/Tab.module.css +100 -101
  525. package/lib/Tab/TabContent.js +15 -6
  526. package/lib/Tab/TabContent.module.css +4 -4
  527. package/lib/Tab/TabContentWrapper.js +15 -6
  528. package/lib/Tab/TabWrapper.js +37 -17
  529. package/lib/Tab/Tabs.js +204 -105
  530. package/lib/Tab/Tabs.module.css +137 -141
  531. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  532. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  533. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  534. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  535. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  536. package/lib/Tab/index.js +6 -0
  537. package/lib/Tab/props/defaultProps.js +10 -5
  538. package/lib/Tab/props/propTypes.js +13 -5
  539. package/lib/Tag/Tag.js +90 -56
  540. package/lib/Tag/Tag.module.css +254 -254
  541. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  542. package/lib/Tag/props/defaultProps.js +2 -1
  543. package/lib/Tag/props/propTypes.js +5 -1
  544. package/lib/TextBox/TextBox.js +93 -61
  545. package/lib/TextBox/TextBox.module.css +158 -157
  546. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  547. package/lib/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -127
  548. package/lib/TextBox/props/defaultProps.js +2 -1
  549. package/lib/TextBox/props/propTypes.js +6 -1
  550. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  551. package/lib/TextBoxIcon/TextBoxIcon.module.css +79 -78
  552. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  553. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -334
  554. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  555. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  556. package/lib/Textarea/Textarea.js +63 -32
  557. package/lib/Textarea/Textarea.module.css +139 -139
  558. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  559. package/lib/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -97
  560. package/lib/Textarea/props/defaultProps.js +2 -1
  561. package/lib/Textarea/props/propTypes.js +4 -0
  562. package/lib/Tooltip/Tooltip.js +102 -35
  563. package/lib/Tooltip/Tooltip.module.css +141 -109
  564. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  565. package/lib/Tooltip/props/propTypes.js +3 -0
  566. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  567. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  568. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  569. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  570. package/lib/VelocityAnimation/index.js +23 -0
  571. package/lib/common/a11y.module.css +4 -0
  572. package/lib/common/animation.module.css +624 -624
  573. package/lib/common/avatarsizes.module.css +48 -44
  574. package/lib/common/basic.module.css +33 -33
  575. package/lib/common/basicReset.module.css +40 -40
  576. package/lib/common/boxShadow.module.css +34 -0
  577. package/lib/common/common.module.css +524 -524
  578. package/lib/common/customscroll.module.css +91 -89
  579. package/lib/common/reset.module.css +13 -12
  580. package/lib/common/transition.module.css +146 -146
  581. package/lib/css.js +42 -1
  582. package/lib/deprecated/AdvancedMultiSelect.module.css +126 -126
  583. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  584. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  585. package/lib/index.js +214 -210
  586. package/lib/semantic/Button/Button.js +47 -24
  587. package/lib/semantic/Button/props/propTypes.js +3 -0
  588. package/lib/semantic/Button/semanticButton.module.css +9 -9
  589. package/lib/semantic/index.js +15 -0
  590. package/lib/utils/Common.js +136 -17
  591. package/lib/utils/ContextOptimizer.js +16 -10
  592. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  593. package/lib/utils/__tests__/debounce.spec.js +3 -2
  594. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  595. package/lib/utils/constructFullName.js +11 -2
  596. package/lib/utils/css/compileClassNames.js +37 -0
  597. package/lib/utils/css/mergeStyle.js +69 -0
  598. package/lib/utils/css/utils.js +41 -0
  599. package/lib/utils/datetime/GMTZones.js +55 -0
  600. package/lib/utils/datetime/common.js +52 -7
  601. package/lib/utils/debounce.js +6 -1
  602. package/lib/utils/dropDownUtils.js +177 -56
  603. package/lib/utils/dummyFunction.js +2 -0
  604. package/lib/utils/getHTMLFontSize.js +1 -0
  605. package/lib/utils/getInitial.js +6 -0
  606. package/lib/utils/index.js +121 -0
  607. package/lib/utils/scrollTo.js +2 -0
  608. package/lib/utils/shallowEqual.js +8 -0
  609. package/package.json +117 -81
  610. package/postPublish.js +8 -0
  611. package/prePublish.js +70 -0
  612. package/assets/Appearance/dark/mode/darkMode.module.css +0 -344
  613. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +0 -34
  614. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +0 -42
  615. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +0 -34
  616. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +0 -42
  617. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +0 -34
  618. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +0 -42
  619. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +0 -34
  620. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +0 -42
  621. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +0 -34
  622. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +0 -42
  623. package/assets/Appearance/default/mode/defaultMode.module.css +0 -344
  624. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +0 -34
  625. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +0 -42
  626. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +0 -34
  627. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +0 -42
  628. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +0 -34
  629. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +0 -42
  630. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +0 -34
  631. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +0 -42
  632. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +0 -34
  633. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +0 -42
  634. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +0 -344
  635. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +0 -34
  636. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +0 -42
  637. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +0 -34
  638. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +0 -42
  639. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +0 -34
  640. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +0 -42
  641. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +0 -34
  642. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +0 -42
  643. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +0 -34
  644. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +0 -42
  645. package/docs/external/active-line.js +0 -72
  646. package/docs/external/autorefresh.js +0 -47
  647. package/docs/external/codemirror.js +0 -9681
  648. package/docs/external/css/hopscotch.css +0 -576
  649. package/docs/external/css/styleGuide.css +0 -1100
  650. package/docs/external/css.js +0 -466
  651. package/docs/external/designTokens.js +0 -1
  652. package/docs/external/foldcode.js +0 -152
  653. package/docs/external/format.js +0 -129
  654. package/docs/external/htmlmixed.js +0 -84
  655. package/docs/external/images/bottom.png +0 -0
  656. package/docs/external/images/bottombg.jpg +0 -0
  657. package/docs/external/images/desk.png +0 -0
  658. package/docs/external/images/desklogo.png +0 -0
  659. package/docs/external/images/menu.png +0 -0
  660. package/docs/external/index.html +0 -127
  661. package/docs/external/javascript.js +0 -422
  662. package/docs/external/jsx.js +0 -148
  663. package/docs/external/matchbrackets.js +0 -145
  664. package/docs/external/xml.js +0 -322
  665. package/docs/package.json +0 -41
  666. package/docs/src/index.js +0 -1311
  667. package/es/Button/__tests__/Button.spec.js +0 -190
  668. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  669. package/es/DropBox/DropBox.module.css +0 -406
  670. package/lib/Button/__tests__/Button.spec.js +0 -193
  671. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  672. package/lib/DropBox/DropBox.module.css +0 -406
@@ -9,12 +9,18 @@ export const getTotalDimension = (elem, align) => {
9
9
  const style = window.getComputedStyle(elem);
10
10
  return align === 'vertical' ? elem.offsetWidth + parseDecimal(style.marginLeft) + parseDecimal(style.marginRight) : elem.offsetHeight + parseDecimal(style.marginTop) + parseDecimal(style.marginBottom);
11
11
  };
12
+ export function stopPropagation(e) {
13
+ e && e.stopPropagation && e.stopPropagation();
14
+ }
15
+ ;
12
16
  export const stopAllEventPropagation = e => {
13
17
  e.stopPropagation && e.stopPropagation();
14
18
  e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
15
19
  };
16
-
17
- // export function getCommentsDetails(
20
+ export function cancelBubblingEffect(e) {
21
+ e && e.stopPropagation && e.stopPropagation();
22
+ e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
23
+ } // export function getCommentsDetails(
18
24
  // commentIds = [],
19
25
  // comments = {},
20
26
  // agents = {}
@@ -37,6 +43,7 @@ export function encodeForHtml(str) {
37
43
  str = str.replace(/\\/g, '\');
38
44
  str = str.replace(/'/g, ''');
39
45
  }
46
+
40
47
  return str;
41
48
  }
42
49
  export function getListOfDetails() {
@@ -48,6 +55,7 @@ export function getListOfDetails() {
48
55
  export function capitalize() {
49
56
  let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
50
57
  let newValue = '';
58
+
51
59
  for (let i = 0; i < value.length; i++) {
52
60
  if (i == 0) {
53
61
  newValue += value[i].toUpperCase();
@@ -55,12 +63,14 @@ export function capitalize() {
55
63
  newValue += value[i].toLowerCase();
56
64
  }
57
65
  }
66
+
58
67
  return newValue;
59
68
  }
60
69
  export function bind() {
61
70
  for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
62
71
  handlers[_key] = arguments[_key];
63
72
  }
73
+
64
74
  handlers.forEach(handler => {
65
75
  this[handler] = this[handler].bind(this);
66
76
  });
@@ -69,12 +79,15 @@ export function getFullName() {
69
79
  let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
70
80
  let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
71
81
  let fullName = '';
82
+
72
83
  if (firstName !== null && firstName !== '') {
73
84
  fullName = firstName;
74
85
  }
86
+
75
87
  if (lastName !== null && lastName !== '') {
76
88
  fullName = `${fullName}${lastName}`;
77
89
  }
90
+
78
91
  return fullName;
79
92
  }
80
93
  export function getStringifiedOutputForJson() {
@@ -82,6 +95,7 @@ export function getStringifiedOutputForJson() {
82
95
  const keys = Object.keys(input);
83
96
  const modifiedInput = keys.reduce((curr, next) => {
84
97
  const values = input[next] || [];
98
+
85
99
  if (values.length) {
86
100
  const valueList = values.reduce((curr, next) => {
87
101
  curr.push(next.id);
@@ -90,6 +104,7 @@ export function getStringifiedOutputForJson() {
90
104
  curr[next] = valueList;
91
105
  return curr;
92
106
  }
107
+
93
108
  return curr;
94
109
  }, {});
95
110
  return JSON.stringify(modifiedInput);
@@ -105,6 +120,7 @@ export function filterValue(obj, val) {
105
120
  const ids = obj ? Object.keys(obj) : [];
106
121
  ids.forEach(key => {
107
122
  const value = obj[key] || {};
123
+
108
124
  if (value.name === val && !value.isCustomField) {
109
125
  result = value.id;
110
126
  }
@@ -126,34 +142,42 @@ export function formatValue() {
126
142
  let textField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'name';
127
143
  return values && values.map(value => {
128
144
  let formattedValue = value;
145
+
129
146
  if (typeof value === 'string' || typeof value === 'number') {
130
147
  formattedValue = {};
131
148
  formattedValue[valueField] = value;
132
149
  formattedValue[textField] = value;
133
150
  }
151
+
134
152
  return formattedValue;
135
153
  }) || [];
136
154
  }
137
155
  export function bytesToSize(bytes) {
138
156
  bytes = parseInt(bytes, 10);
139
157
  const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
158
+
140
159
  if (bytes === 0) {
141
160
  return '0 Byte';
142
161
  }
162
+
143
163
  const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
144
164
  return `${Math.round(bytes / Math.pow(1024, i), 2)} ${sizes[i]}`;
145
165
  }
146
166
  export function getMemSize(bytes) {
147
167
  let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0;
148
168
  const thresh = size ? 1000 : 1024;
169
+
149
170
  if (Math.abs(bytes) < thresh) {
150
171
  return `${bytes} B`;
151
172
  }
173
+
152
174
  let units = size ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'],
153
- i = -1;
175
+ i = -1;
176
+
154
177
  do {
155
178
  bytes /= thresh, ++i;
156
179
  } while (Math.abs(bytes) >= thresh && i < units.length - 1);
180
+
157
181
  {
158
182
  return `${bytes.toFixed(1)} ${units[i]}`;
159
183
  }
@@ -162,18 +186,24 @@ export function checkIsImageFile(fileName) {
162
186
  fileName = fileName || '';
163
187
  return /jpeg|jpg|png|gif|bmp|tiff|tif|ico/gi.test(fileName.substr(fileName.lastIndexOf('.') + 1));
164
188
  }
189
+
165
190
  function getI18NValue(key, values) {
166
191
  if (typeof i18n === 'undefined' || key === '' || typeof key === 'undefined') {
167
192
  return key;
168
193
  }
194
+
169
195
  let i18nStr = i18n[key];
196
+
170
197
  if (i18nStr === undefined) {
171
198
  return key;
172
199
  }
200
+
173
201
  i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
174
202
  return unescapeUnicode(i18nStr);
175
203
  }
204
+
176
205
  global.getI18NValue = getI18NValue;
206
+
177
207
  function replaceI18NValuesWithRegex(i18nStr, values) {
178
208
  if (typeof values !== 'undefined') {
179
209
  if (Array.isArray(values)) {
@@ -184,22 +214,27 @@ function replaceI18NValuesWithRegex(i18nStr, values) {
184
214
  i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
185
215
  }
186
216
  }
217
+
187
218
  return i18nStr;
188
219
  }
220
+
189
221
  function unescapeUnicode(str) {
190
222
  return str.replace(/\\u([a-fA-F0-9]{4})/g, (g, m1) => String.fromCharCode(parseInt(m1, 16)));
191
223
  }
224
+
192
225
  export function getPortalName(portalList, portalId) {
193
226
  return portalList && portalList.reduce((res, portal) => {
194
227
  if (portal.orgId === portalId) {
195
228
  return portal.orgName;
196
229
  }
230
+
197
231
  return res;
198
232
  }, null);
199
233
  }
200
234
  export function getFullDateString(fullDateObj) {
201
235
  let dateStr = '';
202
236
  const monthArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
237
+
203
238
  if (fullDateObj.toDateString() == new Date().toDateString()) {
204
239
  dateStr = format12Hour(fullDateObj);
205
240
  } else {
@@ -209,6 +244,7 @@ export function getFullDateString(fullDateObj) {
209
244
  const time = format12Hour(fullDateObj);
210
245
  dateStr = `${month} ${date} ${year} ${time}`;
211
246
  }
247
+
212
248
  return dateStr;
213
249
  }
214
250
  export function format12Hour(date) {
@@ -217,6 +253,7 @@ export function format12Hour(date) {
217
253
  const ampm = hours >= 12 ? 'pm' : 'am';
218
254
  hours %= 12;
219
255
  hours = hours ? hours : 12; // the hour '0' should be '12'
256
+
220
257
  minutes = minutes < 10 ? `0${minutes}` : minutes;
221
258
  const strTime = `${hours}:${minutes} ${ampm}`;
222
259
  return strTime;
@@ -224,6 +261,7 @@ export function format12Hour(date) {
224
261
  export function getDateOnly(fullDateObj) {
225
262
  let dateStr = '';
226
263
  const monthArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
264
+
227
265
  if (fullDateObj.toDateString() == new Date().toDateString()) {
228
266
  dateStr = 'Today';
229
267
  } else {
@@ -232,6 +270,7 @@ export function getDateOnly(fullDateObj) {
232
270
  const date = fullDateObj.getDate();
233
271
  dateStr = `${month} ${date} ${year}`;
234
272
  }
273
+
235
274
  return dateStr;
236
275
  }
237
276
  export function doAfterScrollEnd(element, callback) {
@@ -245,6 +284,7 @@ export function doAfterScrollEnd(element, callback) {
245
284
  scrollHeight
246
285
  } = element;
247
286
  const scrollPercent = scrollTop / (scrollHeight - clientHeight) * 100;
287
+
248
288
  if (scrollPercent > 80) {
249
289
  callback && callback();
250
290
  }
@@ -261,9 +301,11 @@ export const throttle = function (func, wait) {
261
301
  for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
262
302
  args[_key2 - 2] = arguments[_key2];
263
303
  }
304
+
264
305
  if (timerId) {
265
306
  return;
266
307
  }
308
+
267
309
  timerId = setTimeout(() => {
268
310
  try {
269
311
  func(...args);
@@ -276,6 +318,7 @@ export const scrollTo = function (suggestionContainer, selSuggestion) {
276
318
  if (!suggestionContainer || !selSuggestion) {
277
319
  return;
278
320
  }
321
+
279
322
  const {
280
323
  rectGap
281
324
  } = frameRelativeRects(selSuggestion, suggestionContainer) || {};
@@ -283,9 +326,11 @@ export const scrollTo = function (suggestionContainer, selSuggestion) {
283
326
  top = 0,
284
327
  bottom = 0
285
328
  } = rectGap || {};
329
+
286
330
  if (top < 0 && bottom < 0) {
287
331
  return;
288
332
  }
333
+
289
334
  const isElementInViewPort = top < 0 || bottom < 0 ? false : true;
290
335
  const suggestionContainerScrollTop = suggestionContainer.scrollTop;
291
336
  suggestionContainer.scrollTop = !isElementInViewPort ? bottom < 0 ? suggestionContainer.scrollTop + Math.abs(bottom) : top < 0 ? suggestionContainer.scrollTop - Math.abs(top) : suggestionContainerScrollTop : suggestionContainerScrollTop;
@@ -297,17 +342,21 @@ export function remConvert(val) {
297
342
  }
298
343
  export function isDescendant(parent, child) {
299
344
  let node = child.parentNode;
345
+
300
346
  while (node !== null) {
301
347
  if (node === parent) {
302
348
  return true;
303
349
  }
350
+
304
351
  node = node.parentNode;
305
352
  }
353
+
306
354
  return false;
307
355
  }
308
356
  export function getElementSpace(elementRef) {
309
357
  let neededSpace = 0,
310
- availableInsideSpace = 0;
358
+ availableInsideSpace = 0;
359
+
311
360
  if (elementRef) {
312
361
  let getStyle = window.getComputedStyle(elementRef);
313
362
  let margin = parseFloat(getStyle.marginLeft) + parseFloat(getStyle.marginRight);
@@ -316,6 +365,7 @@ export function getElementSpace(elementRef) {
316
365
  neededSpace = width + margin;
317
366
  availableInsideSpace = width - padding;
318
367
  }
368
+
319
369
  return {
320
370
  neededSpace: neededSpace,
321
371
  availableInsideSpace: availableInsideSpace
@@ -325,7 +375,6 @@ export function getSearchString() {
325
375
  let charachers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
326
376
  return (charachers || '').toString().toLowerCase(); //.replace(/\s+/g, '');
327
377
  }
328
-
329
378
  export function findScrollEnd(element) {
330
379
  let {
331
380
  scrollHeight,
@@ -334,12 +383,30 @@ export function findScrollEnd(element) {
334
383
  clientHeight
335
384
  } = element || {};
336
385
  let isElementScrollable = scrollHeight > clientHeight;
386
+
337
387
  if (isElementScrollable) {
338
388
  if (scrollHeight <= Math.ceil(scrollTop + offsetHeight)) {
339
389
  return true;
340
390
  }
341
- } else {
342
- throw 'Is scroll not present in this element';
391
+ } // else {
392
+ // throw 'Is scroll not present in this element';
393
+ // }
394
+
395
+
396
+ return false;
397
+ }
398
+ export function isTextSelected() {
399
+ let selectedText = '';
400
+
401
+ if (window.getSelection) {
402
+ selectedText = window.getSelection().toString();
403
+ } else if (document.getSelection) {
404
+ selectedText = document.getSelection().toString();
343
405
  }
406
+
407
+ if (selectedText !== '') {
408
+ return true;
409
+ }
410
+
344
411
  return false;
345
412
  }
@@ -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') {
@@ -0,0 +1,28 @@
1
+ import { dataTypes, isDataTypeOf } from './utils';
2
+
3
+ const collectClassNames = function (processedClassNameList) {
4
+ for (let index = 0; index < (arguments.length <= 1 ? 0 : arguments.length - 1); index++) {
5
+ let classInfo = index + 1 < 1 || arguments.length <= index + 1 ? undefined : arguments[index + 1];
6
+
7
+ if (!classInfo) {
8
+ continue;
9
+ } else if (isDataTypeOf(classInfo, dataTypes.object)) {
10
+ for (let property in classInfo) {
11
+ if (Object.hasOwnProperty.call(classInfo, property) && property !== 'undefined' && property !== 'null' && classInfo[property] && !processedClassNameList.includes(property)) {
12
+ processedClassNameList.push(property);
13
+ }
14
+ }
15
+ }
16
+ }
17
+ };
18
+
19
+ export default function compileClassNames() {
20
+ let resultClassNameList = [];
21
+
22
+ for (var _len = arguments.length, classinfoList = new Array(_len), _key = 0; _key < _len; _key++) {
23
+ classinfoList[_key] = arguments[_key];
24
+ }
25
+
26
+ collectClassNames(resultClassNameList, ...classinfoList);
27
+ return resultClassNameList.filter(a => a !== '').join(' ');
28
+ }
@@ -0,0 +1,57 @@
1
+ const REPLACER_SYMBOL = '$'; // $ startWith is used for replace the existing style.
2
+ // all other will be append
3
+
4
+ export default function mergeStyle(defaultStyle) {
5
+ let customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6
+ let additionalStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
7
+ // if(!Object.keys(defaultStyle).includes('base')) {
8
+ // throw new Error(`STYLE CUSTOMIZATION RULE - Your style sheet should have "base" class name for customization`);
9
+ // }
10
+ return Object.keys(customStyle).reduce((res, next) => {
11
+ if (next.startsWith(REPLACER_SYMBOL)) {
12
+ let styleValue = customStyle[next];
13
+ let styleName = next.replace(REPLACER_SYMBOL, '');
14
+
15
+ if (!defaultStyle[styleName] && !additionalStyle.includes(styleName)) {
16
+ // return res;
17
+ throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${styleName}" is not available in that component style`);
18
+ }
19
+
20
+ if (additionalStyle.includes(styleName)) {
21
+ res[styleName] = styleValue;
22
+ } else {
23
+ let val = defaultStyle[styleName];
24
+ Object.keys(res).map(keyName => {
25
+ let styleKey = res[keyName];
26
+ let styleClasses = styleKey.split(' ');
27
+ let ind = styleClasses.indexOf(val);
28
+
29
+ if (ind !== -1) {
30
+ styleClasses[ind] = styleValue;
31
+ res[keyName] = styleClasses.join(' ');
32
+ }
33
+ });
34
+ }
35
+ } else if (defaultStyle[next]) {
36
+ let val = defaultStyle[next];
37
+ Object.keys(res).map(keyName => {
38
+ let styleKey = res[keyName];
39
+ let styleClasses = styleKey.split(' ');
40
+ let ind = styleClasses.indexOf(val);
41
+
42
+ if (ind !== -1) {
43
+ styleClasses[ind] = styleClasses[ind] + ' ' + customStyle[next];
44
+ res[keyName] = styleClasses.join(' ');
45
+ }
46
+ });
47
+ } else if (additionalStyle.includes(next)) {
48
+ res[next] = customStyle[next];
49
+ } else if (!defaultStyle[next] && !additionalStyle.includes(next)) {
50
+ // res[next] = customStyle[next];
51
+ throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`);
52
+ }
53
+
54
+ return res;
55
+ }, { ...defaultStyle
56
+ });
57
+ }
@@ -0,0 +1,24 @@
1
+ export const dataTypes = {
2
+ number: 'number',
3
+ array: 'array',
4
+ string: 'string',
5
+ object: 'object',
6
+ bigint: 'bigint',
7
+ symbol: 'symbol',
8
+ undefined: 'undefined',
9
+ function: 'function',
10
+ boolean: 'boolean'
11
+ };
12
+ export const getDataType = data => {
13
+ let typeofData = typeof data;
14
+ let isArrayDataType = Array.isArray(data);
15
+
16
+ if (isArrayDataType) {
17
+ return dataTypes.array;
18
+ } else {
19
+ return dataTypes[typeofData];
20
+ }
21
+ };
22
+ export const isDataTypeOf = (data, type) => {
23
+ return getDataType(data) === type;
24
+ };
@@ -0,0 +1,48 @@
1
+ export const offsetMap = {
2
+ 0: 'GMT+00:00 Africa/Abidjan',
3
+ 44: 'GMT+00:00 Africa/Monrovia',
4
+ 60: 'GMT+01:00 Africa/Bangui',
5
+ 120: 'GMT+02:00 Africa/Blantyre',
6
+ 180: 'GMT+03:00 Africa/Addis_Ababa',
7
+ 210: 'GMT+04:30 Asia/Tehran',
8
+ 240: 'GMT+03:00 Asia/Bahrain',
9
+ 270: 'GMT+04:30 Asia/Kabul',
10
+ 300: 'GMT+05:00 Asia/Aqtau',
11
+ '-330': 'GMT+05:30 Asia/Kolkata',
12
+ 360: 'GMT+06:00 Asia/Dacca',
13
+ 390: 'GMT+06:30 Indian/Cocos',
14
+ 420: 'GMT+07:00 Asia/Bangkok',
15
+ 450: 'GMT+08:00 Asia/Singapore',
16
+ 480: 'GMT+08:00 Asia/Hong_Kong',
17
+ 510: 'GMT+08:00 Asia/Harbin',
18
+ 525: 'GMT+08:45 Australia/Eucla',
19
+ 540: 'GMT+09:00 Asia/Chita',
20
+ 570: 'GMT+09:30 Australia/Adelaide',
21
+ 600: 'GMT+10:00 Antarctica/DumontDUrville',
22
+ 660: 'GMT+11:00 Asia/Magadan',
23
+ 690: 'GMT+11:00 Pacific/Norfolk',
24
+ 720: 'GMT+12:00 Asia/Kamchatka',
25
+ 765: 'GMT+12:45 Pacific/Chatham',
26
+ 780: 'GMT+12:00 Asia/Anadyr',
27
+ 840: 'GMT+14:00 Etc/GMT-14',
28
+ '-60': 'GMT-01:00 Etc/GMT+1',
29
+ '-660': 'GMT-11:00 US/Samoa',
30
+ '-600': 'GMT-04:00 America/Anguilla',
31
+ '-240': 'GMT-04:00 America/Antigua',
32
+ '-180': 'GMT-03:00 America/Araguaina',
33
+ '-300': 'GMT-05:00 America/Atikokan',
34
+ '-480': 'GMT-05:00 America/Bahia_Banderas',
35
+ '-360': 'GMT-06:00 America/Belize',
36
+ '-420': 'GMT-06:00 America/Boise',
37
+ '-540': 'GMT-07:00 America/Dawson',
38
+ '-135': 'GMT-04:00 America/Guyana',
39
+ '-120': 'GMT-02:00 Etc/GMT+2',
40
+ '-150': 'GMT-03:00 America/Paramaribo',
41
+ '-210': 'GMT-04:00 America/Santo_Domingo',
42
+ '-720': 'GMT+12:00 Pacific/Kwajalein',
43
+ '-560': 'GMT+14:00 Pacific/Kiritimati',
44
+ '-510': 'GMT-09:30 Pacific/Marquesas',
45
+ '-630': 'GMT-11:00 Pacific/Niue',
46
+ '-450': 'GMT-08:00 Pacific/Pitcairn',
47
+ '-570': 'GMT-10:00 Pacific/Rarotonga'
48
+ };
@@ -1,3 +1,4 @@
1
+ import { offsetMap } from './GMTZones.js';
1
2
  let dateFormat = {
2
3
  dayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
3
4
  monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
@@ -10,8 +11,15 @@ export function pad(n) {
10
11
  n = `${n}`;
11
12
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
12
13
  }
14
+ export function getTimeOffset() {
15
+ const GMT = new Date();
16
+ const matchingOffset = Object.keys(offsetMap).find(offset => GMT.getTimezoneOffset() === Number(offset));
17
+ return matchingOffset ? offsetMap[matchingOffset].toString().split(' ') : ['', ''];
18
+ }
13
19
  export function formatDate(dateMill, mask) {
14
20
  let date = new Date(dateMill);
21
+ let O = getTimeOffset()[0];
22
+ let Z = getTimeOffset()[1];
15
23
  let d = date.getDate();
16
24
  let D = date.getDay();
17
25
  let m = date.getMonth();
@@ -22,6 +30,7 @@ export function formatDate(dateMill, mask) {
22
30
  let L = date.getMilliseconds();
23
31
  let flags = {
24
32
  d: d,
33
+ O: O,
25
34
  dd: pad(d, 2),
26
35
  ddd: dateFormat.dayNames[D],
27
36
  dddd: dateFormat.dayNames[D + 7],
@@ -49,13 +58,18 @@ export function formatDate(dateMill, mask) {
49
58
  L: pad(Math.round(L / 10)),
50
59
  t: H < 12 ? dateFormat.timeNames[0] : dateFormat.timeNames[1],
51
60
  A: H < 12 ? dateFormat.timeNames[6] : dateFormat.timeNames[7],
52
- T: H < 12 ? dateFormat.timeNames[4] : dateFormat.timeNames[5]
61
+ a: H < 12 ? dateFormat.timeNames[6] : dateFormat.timeNames[7],
62
+ T: H < 12 ? dateFormat.timeNames[4] : dateFormat.timeNames[5],
63
+ Z: Z,
64
+ VV: Z,
65
+ SSS: pad(L, 3)
53
66
  };
54
- let token = /D{1,4}|d{1,4}|M{1,4}|YYYY|yyyy|YY|yy?|([HhmsA])\1?|[LloSZWN]|\[[^\]]*\]|'[^']*'/g;
67
+ let token = /D{1,4}|d{1,4}|M{1,4}|YYYY|yyyy|YY|O|Z|VV|SSS|yy?|([HhmsAa])\1?|[LloSZWN]|\[[^\]]*\]|'[^']*'/g;
55
68
  let dat = mask.replace(token, match => {
56
69
  if (match in flags) {
57
70
  return flags[match];
58
71
  }
72
+
59
73
  return match.slice(1, match.length - 1);
60
74
  });
61
75
  return dat;
@@ -70,6 +84,7 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
70
84
  i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
71
85
  }
72
86
  }
87
+
73
88
  return i18nStr;
74
89
  }
75
90
  export function unescapeUnicode(str) {
@@ -84,25 +99,28 @@ export function getI18NValue(i18n) {
84
99
  if (typeof i18n === 'undefined') {
85
100
  return key => key;
86
101
  }
102
+
87
103
  return (key, values) => {
88
104
  let i18nStr = i18n[key];
105
+
89
106
  if (i18nStr === undefined) {
90
107
  return key;
91
108
  }
109
+
92
110
  i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
93
111
  return unescapeUnicode(i18nStr);
94
112
  };
95
- }
96
-
97
- // function getValues(params = [], diff) {
113
+ } // function getValues(params = [], diff) {
98
114
  // return params.map(param => {
99
115
  // return diff[param];
100
116
  // });
101
117
  // }
118
+
102
119
  export function getI18NInfo(toDateObj, props, diffObj) {
103
120
  let key = null,
104
- values,
105
- text = null;
121
+ values,
122
+ text = null;
123
+
106
124
  if (typeof props === 'function') {
107
125
  let value = props(diffObj1);
108
126
  key = value.key;
@@ -113,6 +131,7 @@ export function getI18NInfo(toDateObj, props, diffObj) {
113
131
  } else if (typeof props === 'string') {
114
132
  text = toDateObj.format(props);
115
133
  }
134
+
116
135
  return {
117
136
  key,
118
137
  values,
@@ -141,12 +160,15 @@ let oneYearInMillis = 31536000000;
141
160
  let oneDayInMillis = 86400000;
142
161
  let oneHourInMillis = 3600000;
143
162
  let oneMinuteInMillis = 60000;
163
+
144
164
  function convertAsNonExponential(number) {
145
165
  if (number.toString().toLowerCase().indexOf('e') !== -1) {
146
166
  return number.toFixed(20);
147
167
  }
168
+
148
169
  return number;
149
170
  }
171
+
150
172
  export function getDiffObj(diff) {
151
173
  diff = Math.abs(diff);
152
174
  let diffYears = diff / oneYearInMillis;
@@ -173,8 +195,10 @@ export function getDiffObj(diff) {
173
195
  export function getMonthEnd(month, year) {
174
196
  let monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
175
197
  let isLeapYear = year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
198
+
176
199
  if (month === 1 && isLeapYear) {
177
200
  return 29;
178
201
  }
202
+
179
203
  return monthend[month];
180
204
  }
@@ -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
  }