@zohodesk/components 1.0.0-test-252 → 1.0.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 (601) hide show
  1. package/README.md +161 -1
  2. package/assets/Appearance/dark/mode/darkMode.module.css +181 -179
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTAModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +31 -31
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/green/greenDarkCTAModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +30 -30
  8. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +3 -0
  9. package/assets/Appearance/dark/themes/orange/orangeDarkCTAModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +30 -30
  11. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +3 -0
  12. package/assets/Appearance/dark/themes/red/redDarkCTAModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +30 -30
  14. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +3 -0
  15. package/assets/Appearance/dark/themes/yellow/yellowDarkCTAModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +30 -30
  17. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +3 -0
  18. package/assets/Appearance/default/mode/defaultMode.module.css +177 -175
  19. package/assets/Appearance/default/themes/blue/blueDefaultCTAModifyCategory.module.css +452 -0
  20. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +31 -31
  21. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +3 -0
  22. package/assets/Appearance/default/themes/green/greenDefaultCTAModifyCategory.module.css +452 -0
  23. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +30 -30
  24. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +3 -0
  25. package/assets/Appearance/default/themes/orange/orangeDefaultCTAModifyCategory.module.css +452 -0
  26. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +30 -30
  27. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -0
  28. package/assets/Appearance/default/themes/red/redDefaultCTAModifyCategory.module.css +452 -0
  29. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +30 -30
  30. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -0
  31. package/assets/Appearance/default/themes/yellow/yellowDefaultCTAModifyCategory.module.css +452 -0
  32. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +30 -30
  33. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -0
  34. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +182 -180
  35. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTAModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +31 -31
  37. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +3 -0
  38. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTAModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +30 -30
  40. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +3 -0
  41. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTAModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +30 -30
  43. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +3 -0
  44. package/assets/Appearance/pureDark/themes/red/redPureDarkCTAModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +30 -30
  46. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +3 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTAModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +30 -30
  49. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +3 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/defaultContrastLightness.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 +2 -2
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +48 -25
  64. package/es/Avatar/Avatar.module.css +59 -18
  65. package/es/Avatar/props/defaultProps.js +4 -1
  66. package/es/Avatar/props/propTypes.js +5 -2
  67. package/es/AvatarTeam/AvatarTeam.js +21 -11
  68. package/es/AvatarTeam/AvatarTeam.module.css +49 -21
  69. package/es/AvatarTeam/props/defaultProps.js +5 -1
  70. package/es/AvatarTeam/props/propTypes.js +5 -1
  71. package/es/Button/Button.js +55 -51
  72. package/{lib/Button → es/Button/css}/Button.module.css +62 -58
  73. package/es/Button/css/cssJSLogic.js +53 -0
  74. package/es/Button/index.js +2 -0
  75. package/es/Button/props/defaultProps.js +3 -1
  76. package/es/Button/props/propTypes.js +6 -2
  77. package/es/Buttongroup/Buttongroup.js +24 -16
  78. package/es/Buttongroup/Buttongroup.module.css +45 -28
  79. package/es/Buttongroup/props/defaultProps.js +3 -1
  80. package/es/Buttongroup/props/propTypes.js +3 -1
  81. package/es/Card/Card.js +48 -26
  82. package/es/Card/props/defaultProps.js +12 -2
  83. package/es/Card/props/propTypes.js +2 -2
  84. package/es/CheckBox/CheckBox.js +13 -9
  85. package/es/CheckBox/CheckBox.module.css +16 -16
  86. package/es/CheckBox/props/propTypes.js +1 -0
  87. package/es/DateTime/CalendarView.js +46 -19
  88. package/es/DateTime/DateTime.js +139 -77
  89. package/es/DateTime/DateTime.module.css +51 -48
  90. package/es/DateTime/DateTimePopupFooter.js +4 -2
  91. package/es/DateTime/DateTimePopupHeader.js +30 -11
  92. package/es/DateTime/DateWidget.js +122 -51
  93. package/es/DateTime/DateWidget.module.css +5 -5
  94. package/es/DateTime/DaysRow.js +6 -3
  95. package/es/DateTime/Time.js +10 -2
  96. package/es/DateTime/YearView.js +41 -9
  97. package/es/DateTime/YearView.module.css +33 -15
  98. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  99. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  100. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  101. package/es/DateTime/common.js +3 -0
  102. package/es/DateTime/constants.js +1 -0
  103. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  104. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  105. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  106. package/es/DateTime/dateFormatUtils/index.js +59 -2
  107. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  108. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  109. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  110. package/es/DateTime/index.js +1 -1
  111. package/es/DateTime/objectUtils.js +14 -20
  112. package/es/DateTime/props/defaultProps.js +2 -1
  113. package/es/DateTime/props/propTypes.js +5 -2
  114. package/es/DateTime/typeChecker.js +3 -0
  115. package/es/DateTime/validator.js +58 -6
  116. package/es/DropBox/DropBox.js +82 -218
  117. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  118. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  119. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  120. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  121. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  122. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  123. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  124. package/es/DropBox/css/DropBox.module.css +59 -0
  125. package/es/DropBox/css/cssJSLogic.js +14 -0
  126. package/es/DropBox/props/defaultProps.js +9 -15
  127. package/es/DropBox/props/propTypes.js +9 -41
  128. package/es/DropDown/DropDown.js +16 -9
  129. package/es/DropDown/DropDown.module.css +2 -2
  130. package/es/DropDown/DropDownHeading.js +18 -11
  131. package/es/DropDown/DropDownHeading.module.css +3 -3
  132. package/es/DropDown/DropDownItem.js +8 -1
  133. package/es/DropDown/DropDownItem.module.css +9 -9
  134. package/es/DropDown/DropDownSearch.js +4 -0
  135. package/es/DropDown/DropDownSeparator.js +1 -0
  136. package/es/DropDown/DropDownSeparator.module.css +2 -2
  137. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  138. package/es/DropDown/index.js +7 -0
  139. package/es/DropDown/props/defaultProps.js +3 -1
  140. package/es/DropDown/props/propTypes.js +2 -1
  141. package/es/Heading/Heading.js +8 -7
  142. package/es/Heading/Heading.module.css +2 -2
  143. package/es/Label/Label.js +14 -9
  144. package/es/Label/Label.module.css +1 -1
  145. package/es/Label/props/defaultProps.js +2 -1
  146. package/es/Label/props/propTypes.js +1 -0
  147. package/es/Layout/Box.js +19 -4
  148. package/es/Layout/Container.js +18 -5
  149. package/es/Layout/Layout.module.css +15 -15
  150. package/es/Layout/index.js +9 -10
  151. package/es/Layout/props/defaultProps.js +6 -2
  152. package/es/Layout/props/propTypes.js +7 -3
  153. package/es/Layout/utils.js +5 -1
  154. package/es/ListItem/ListContainer.js +21 -9
  155. package/es/ListItem/ListItem.js +30 -14
  156. package/es/ListItem/ListItem.module.css +37 -30
  157. package/es/ListItem/ListItemWithAvatar.js +30 -15
  158. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  159. package/es/ListItem/ListItemWithIcon.js +29 -14
  160. package/es/ListItem/ListItemWithRadio.js +22 -10
  161. package/es/ListItem/index.js +6 -0
  162. package/es/ListItem/props/defaultProps.js +18 -6
  163. package/es/ListItem/props/propTypes.js +13 -1
  164. package/es/Modal/Modal.js +35 -17
  165. package/es/MultiSelect/AdvancedGroupMultiSelect.js +100 -20
  166. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  167. package/es/MultiSelect/EmptyState.js +6 -0
  168. package/es/MultiSelect/MultiSelect.js +129 -46
  169. package/es/MultiSelect/MultiSelect.module.css +32 -31
  170. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  171. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  172. package/es/MultiSelect/SelectedOptions.js +6 -3
  173. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  174. package/es/MultiSelect/Suggestions.js +13 -6
  175. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  176. package/es/MultiSelect/index.js +4 -0
  177. package/es/MultiSelect/props/defaultProps.js +11 -4
  178. package/es/MultiSelect/props/propTypes.js +17 -5
  179. package/es/PopOver/PopOver.js +25 -9
  180. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  181. package/es/PopOver/index.js +3 -0
  182. package/es/Popup/Popup.js +80 -31
  183. package/es/Popup/__tests__/Popup.spec.js +17 -5
  184. package/es/Popup/viewPort.js +16 -4
  185. package/es/Provider/AvatarSize.js +1 -0
  186. package/es/Provider/IdProvider.js +16 -10
  187. package/es/Provider/LibraryContext.js +6 -4
  188. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  189. package/es/Provider/ZindexProvider.js +9 -2
  190. package/es/Provider/index.js +4 -0
  191. package/es/Radio/Radio.js +9 -7
  192. package/es/Radio/Radio.module.css +3 -3
  193. package/es/Responsive/CustomResponsive.js +37 -21
  194. package/es/Responsive/RefWrapper.js +6 -7
  195. package/es/Responsive/ResizeComponent.js +35 -25
  196. package/es/Responsive/ResizeObserver.js +26 -6
  197. package/es/Responsive/Responsive.js +34 -20
  198. package/es/Responsive/index.js +9 -8
  199. package/es/Responsive/sizeObservers.js +28 -7
  200. package/es/Responsive/utils/index.js +7 -5
  201. package/es/Responsive/utils/shallowCompare.js +7 -2
  202. package/es/Responsive/windowResizeObserver.js +7 -0
  203. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  204. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  205. package/es/Ribbon/Ribbon.js +21 -15
  206. package/es/Ribbon/Ribbon.module.css +133 -55
  207. package/es/Ribbon/props/defaultProps.js +2 -1
  208. package/es/Ribbon/props/propTypes.js +2 -1
  209. package/es/RippleEffect/RippleEffect.js +6 -7
  210. package/es/Select/GroupSelect.js +71 -23
  211. package/es/Select/Select.js +115 -50
  212. package/es/Select/Select.module.css +23 -23
  213. package/es/Select/SelectWithAvatar.js +31 -12
  214. package/es/Select/SelectWithIcon.js +60 -14
  215. package/es/Select/__tests__/Select.spec.js +6 -8
  216. package/es/Select/index.js +4 -0
  217. package/es/Select/props/defaultProps.js +6 -1
  218. package/es/Select/props/propTypes.js +10 -4
  219. package/es/Stencils/Stencils.js +10 -9
  220. package/es/Stencils/Stencils.module.css +2 -2
  221. package/es/Switch/Switch.js +14 -8
  222. package/es/Switch/Switch.module.css +49 -32
  223. package/es/Switch/props/defaultProps.js +2 -1
  224. package/es/Switch/props/propTypes.js +1 -0
  225. package/es/Tab/Tab.js +14 -11
  226. package/es/Tab/Tab.module.css +14 -15
  227. package/es/Tab/TabContent.js +6 -3
  228. package/es/Tab/TabContentWrapper.js +6 -2
  229. package/es/Tab/TabWrapper.js +9 -4
  230. package/es/Tab/Tabs.js +85 -21
  231. package/es/Tab/Tabs.module.css +36 -40
  232. package/es/Tab/__tests__/Tab.spec.js +4 -12
  233. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  234. package/es/Tab/props/defaultProps.js +10 -5
  235. package/es/Tab/props/propTypes.js +10 -5
  236. package/es/Tag/Tag.js +16 -10
  237. package/es/Tag/Tag.module.css +10 -10
  238. package/es/Tag/props/defaultProps.js +2 -1
  239. package/es/Tag/props/propTypes.js +2 -1
  240. package/es/TextBox/TextBox.js +26 -10
  241. package/es/TextBox/TextBox.module.css +6 -5
  242. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  243. package/es/TextBox/props/defaultProps.js +2 -1
  244. package/es/TextBox/props/propTypes.js +2 -1
  245. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  246. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  247. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  248. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  249. package/es/TextBoxIcon/props/propTypes.js +1 -0
  250. package/es/Textarea/Textarea.js +23 -10
  251. package/es/Textarea/Textarea.module.css +6 -6
  252. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  253. package/es/Textarea/props/defaultProps.js +2 -1
  254. package/es/Textarea/props/propTypes.js +1 -0
  255. package/es/Tooltip/Tooltip.js +67 -21
  256. package/es/Tooltip/Tooltip.module.css +40 -8
  257. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  258. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  259. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  260. package/es/VelocityAnimation/index.js +2 -0
  261. package/es/common/a11y.module.css +4 -0
  262. package/es/common/animation.module.css +8 -8
  263. package/es/common/avatarsizes.module.css +6 -2
  264. package/es/common/basicReset.module.css +3 -3
  265. package/es/common/boxShadow.module.css +34 -0
  266. package/es/common/common.module.css +24 -24
  267. package/es/common/customscroll.module.css +4 -2
  268. package/es/common/reset.module.css +1 -0
  269. package/es/css.js +2 -1
  270. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  271. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  272. package/es/index.js +30 -146
  273. package/es/semantic/Button/Button.js +9 -7
  274. package/es/semantic/Button/semanticButton.module.css +1 -1
  275. package/es/semantic/index.js +1 -0
  276. package/es/utils/Common.js +74 -7
  277. package/es/utils/ContextOptimizer.js +4 -5
  278. package/es/utils/__tests__/debounce.spec.js +2 -2
  279. package/es/utils/constructFullName.js +2 -0
  280. package/es/utils/css/compileClassNames.js +28 -0
  281. package/es/utils/css/mergeStyle.js +57 -0
  282. package/es/utils/css/utils.js +24 -0
  283. package/es/utils/datetime/GMTZones.js +48 -0
  284. package/es/utils/datetime/common.js +31 -7
  285. package/es/utils/debounce.js +5 -1
  286. package/es/utils/dropDownUtils.js +71 -13
  287. package/es/utils/getInitial.js +4 -0
  288. package/es/utils/index.js +3 -0
  289. package/es/utils/shallowEqual.js +6 -0
  290. package/install.md +10 -0
  291. package/lib/Accordion/Accordion.js +50 -18
  292. package/lib/Accordion/AccordionItem.js +47 -20
  293. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  294. package/lib/Accordion/index.js +3 -0
  295. package/lib/Accordion/props/defaultProps.js +6 -2
  296. package/lib/Accordion/props/propTypes.js +6 -0
  297. package/lib/Animation/Animation.js +44 -21
  298. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  299. package/lib/Animation/props/propTypes.js +3 -0
  300. package/lib/AppContainer/AppContainer.js +75 -27
  301. package/lib/AppContainer/AppContainer.module.css +2 -2
  302. package/lib/AppContainer/props/defaultProps.js +3 -1
  303. package/lib/AppContainer/props/propTypes.js +5 -0
  304. package/lib/Avatar/Avatar.js +97 -44
  305. package/lib/Avatar/Avatar.module.css +59 -18
  306. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  307. package/lib/Avatar/props/defaultProps.js +4 -1
  308. package/lib/Avatar/props/propTypes.js +8 -2
  309. package/lib/AvatarTeam/AvatarTeam.js +64 -30
  310. package/lib/AvatarTeam/AvatarTeam.module.css +49 -21
  311. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  312. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  313. package/lib/AvatarTeam/props/propTypes.js +8 -1
  314. package/lib/Button/Button.js +64 -74
  315. package/{es/Button → lib/Button/css}/Button.module.css +62 -58
  316. package/lib/Button/css/cssJSLogic.js +41 -0
  317. package/lib/Button/index.js +23 -0
  318. package/lib/Button/props/defaultProps.js +5 -1
  319. package/lib/Button/props/propTypes.js +11 -3
  320. package/lib/Buttongroup/Buttongroup.js +49 -19
  321. package/lib/Buttongroup/Buttongroup.module.css +45 -28
  322. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  323. package/lib/Buttongroup/props/defaultProps.js +3 -1
  324. package/lib/Buttongroup/props/propTypes.js +6 -1
  325. package/lib/Card/Card.js +119 -55
  326. package/lib/Card/__tests__/Card.spec.js +10 -1
  327. package/lib/Card/index.js +4 -0
  328. package/lib/Card/props/defaultProps.js +16 -4
  329. package/lib/Card/props/propTypes.js +5 -2
  330. package/lib/CheckBox/CheckBox.js +76 -48
  331. package/lib/CheckBox/CheckBox.module.css +16 -16
  332. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  333. package/lib/CheckBox/props/propTypes.js +4 -0
  334. package/lib/DateTime/CalendarView.js +95 -38
  335. package/lib/DateTime/DateTime.js +309 -216
  336. package/lib/DateTime/DateTime.module.css +51 -48
  337. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  338. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  339. package/lib/DateTime/DateWidget.js +370 -260
  340. package/lib/DateTime/DateWidget.module.css +5 -5
  341. package/lib/DateTime/DaysRow.js +28 -3
  342. package/lib/DateTime/Time.js +72 -29
  343. package/lib/DateTime/YearView.js +89 -30
  344. package/lib/DateTime/YearView.module.css +33 -15
  345. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  346. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  347. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  348. package/lib/DateTime/common.js +6 -0
  349. package/lib/DateTime/constants.js +1 -0
  350. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  351. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  352. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  353. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  354. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  355. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  356. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  357. package/lib/DateTime/index.js +3 -1
  358. package/lib/DateTime/objectUtils.js +24 -20
  359. package/lib/DateTime/props/defaultProps.js +2 -1
  360. package/lib/DateTime/props/propTypes.js +21 -2
  361. package/lib/DateTime/typeChecker.js +4 -0
  362. package/lib/DateTime/validator.js +69 -6
  363. package/lib/DropBox/DropBox.js +102 -249
  364. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  365. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  366. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  367. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  368. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  369. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  370. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  371. package/lib/DropBox/css/DropBox.module.css +59 -0
  372. package/lib/DropBox/css/cssJSLogic.js +20 -0
  373. package/lib/DropBox/props/defaultProps.js +20 -17
  374. package/lib/DropBox/props/propTypes.js +22 -43
  375. package/lib/DropDown/DropDown.js +58 -10
  376. package/lib/DropDown/DropDown.module.css +2 -2
  377. package/lib/DropDown/DropDownHeading.js +47 -18
  378. package/lib/DropDown/DropDownHeading.module.css +3 -3
  379. package/lib/DropDown/DropDownItem.js +43 -18
  380. package/lib/DropDown/DropDownItem.module.css +9 -9
  381. package/lib/DropDown/DropDownSearch.js +39 -14
  382. package/lib/DropDown/DropDownSeparator.js +23 -1
  383. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  384. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  385. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  386. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  387. package/lib/DropDown/index.js +65 -0
  388. package/lib/DropDown/props/defaultProps.js +3 -1
  389. package/lib/DropDown/props/propTypes.js +7 -1
  390. package/lib/Heading/Heading.js +42 -16
  391. package/lib/Heading/Heading.module.css +2 -2
  392. package/lib/Heading/props/propTypes.js +3 -0
  393. package/lib/Label/Label.js +47 -19
  394. package/lib/Label/Label.module.css +1 -1
  395. package/lib/Label/__tests__/Label.spec.js +14 -1
  396. package/lib/Label/props/defaultProps.js +2 -1
  397. package/lib/Label/props/propTypes.js +4 -0
  398. package/lib/Layout/Box.js +41 -16
  399. package/lib/Layout/Container.js +39 -15
  400. package/lib/Layout/Layout.module.css +15 -15
  401. package/lib/Layout/__tests__/Box.spec.js +65 -49
  402. package/lib/Layout/__tests__/Container.spec.js +67 -50
  403. package/lib/Layout/index.js +4 -11
  404. package/lib/Layout/props/defaultProps.js +6 -2
  405. package/lib/Layout/props/propTypes.js +10 -3
  406. package/lib/Layout/utils.js +15 -1
  407. package/lib/ListItem/ListContainer.js +61 -34
  408. package/lib/ListItem/ListItem.js +92 -50
  409. package/lib/ListItem/ListItem.module.css +37 -30
  410. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  411. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  412. package/lib/ListItem/ListItemWithIcon.js +92 -50
  413. package/lib/ListItem/ListItemWithRadio.js +83 -42
  414. package/lib/ListItem/index.js +55 -0
  415. package/lib/ListItem/props/defaultProps.js +18 -6
  416. package/lib/ListItem/props/propTypes.js +18 -3
  417. package/lib/Modal/Modal.js +51 -13
  418. package/lib/Modal/props/propTypes.js +3 -0
  419. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -167
  420. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  421. package/lib/MultiSelect/EmptyState.js +48 -21
  422. package/lib/MultiSelect/MultiSelect.js +341 -205
  423. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  424. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  425. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  426. package/lib/MultiSelect/SelectedOptions.js +42 -14
  427. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  428. package/lib/MultiSelect/Suggestions.js +66 -29
  429. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  430. package/lib/MultiSelect/index.js +39 -0
  431. package/lib/MultiSelect/props/defaultProps.js +13 -4
  432. package/lib/MultiSelect/props/propTypes.js +20 -5
  433. package/lib/PopOver/PopOver.js +101 -53
  434. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  435. package/lib/PopOver/index.js +31 -0
  436. package/lib/PopOver/props/propTypes.js +3 -0
  437. package/lib/Popup/Popup.js +158 -83
  438. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  439. package/lib/Popup/viewPort.js +28 -14
  440. package/lib/Provider/AvatarSize.js +5 -0
  441. package/lib/Provider/Config.js +2 -0
  442. package/lib/Provider/CssProvider.js +4 -0
  443. package/lib/Provider/IdProvider.js +23 -12
  444. package/lib/Provider/LibraryContext.js +32 -10
  445. package/lib/Provider/LibraryContextInit.js +4 -0
  446. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  447. package/lib/Provider/ZindexProvider.js +15 -3
  448. package/lib/Provider/index.js +81 -0
  449. package/lib/Radio/Radio.js +65 -40
  450. package/lib/Radio/Radio.module.css +3 -3
  451. package/lib/Radio/__tests__/Radiospec.js +9 -5
  452. package/lib/Radio/props/propTypes.js +3 -0
  453. package/lib/Responsive/CustomResponsive.js +76 -26
  454. package/lib/Responsive/RefWrapper.js +15 -7
  455. package/lib/Responsive/ResizeComponent.js +58 -27
  456. package/lib/Responsive/ResizeObserver.js +23 -6
  457. package/lib/Responsive/Responsive.js +76 -24
  458. package/lib/Responsive/index.js +49 -22
  459. package/lib/Responsive/props/propTypes.js +3 -0
  460. package/lib/Responsive/sizeObservers.js +51 -13
  461. package/lib/Responsive/utils/index.js +11 -3
  462. package/lib/Responsive/utils/shallowCompare.js +11 -2
  463. package/lib/Responsive/windowResizeObserver.js +8 -0
  464. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  465. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  466. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  467. package/lib/Ribbon/Ribbon.js +48 -21
  468. package/lib/Ribbon/Ribbon.module.css +133 -55
  469. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  470. package/lib/Ribbon/props/defaultProps.js +2 -1
  471. package/lib/Ribbon/props/propTypes.js +5 -1
  472. package/lib/RippleEffect/RippleEffect.js +23 -14
  473. package/lib/RippleEffect/props/propTypes.js +3 -0
  474. package/lib/Select/GroupSelect.js +240 -137
  475. package/lib/Select/Select.js +320 -220
  476. package/lib/Select/Select.module.css +23 -23
  477. package/lib/Select/SelectWithAvatar.js +112 -59
  478. package/lib/Select/SelectWithIcon.js +145 -82
  479. package/lib/Select/__tests__/Select.spec.js +131 -89
  480. package/lib/Select/index.js +39 -0
  481. package/lib/Select/props/defaultProps.js +10 -2
  482. package/lib/Select/props/propTypes.js +13 -4
  483. package/lib/Stencils/Stencils.js +35 -13
  484. package/lib/Stencils/Stencils.module.css +2 -2
  485. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  486. package/lib/Stencils/props/propTypes.js +3 -0
  487. package/lib/Switch/Switch.js +64 -35
  488. package/lib/Switch/Switch.module.css +49 -32
  489. package/lib/Switch/props/defaultProps.js +2 -1
  490. package/lib/Switch/props/propTypes.js +4 -0
  491. package/lib/Tab/Tab.js +49 -33
  492. package/lib/Tab/Tab.module.css +14 -15
  493. package/lib/Tab/TabContent.js +15 -6
  494. package/lib/Tab/TabContentWrapper.js +15 -6
  495. package/lib/Tab/TabWrapper.js +37 -17
  496. package/lib/Tab/Tabs.js +193 -94
  497. package/lib/Tab/Tabs.module.css +36 -40
  498. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  499. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  500. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  501. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  502. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  503. package/lib/Tab/index.js +6 -0
  504. package/lib/Tab/props/defaultProps.js +10 -5
  505. package/lib/Tab/props/propTypes.js +13 -5
  506. package/lib/Tag/Tag.js +82 -48
  507. package/lib/Tag/Tag.module.css +10 -10
  508. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  509. package/lib/Tag/props/defaultProps.js +2 -1
  510. package/lib/Tag/props/propTypes.js +5 -1
  511. package/lib/TextBox/TextBox.js +93 -61
  512. package/lib/TextBox/TextBox.module.css +6 -5
  513. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  514. package/lib/TextBox/props/defaultProps.js +2 -1
  515. package/lib/TextBox/props/propTypes.js +6 -1
  516. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  517. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  518. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  519. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  520. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  521. package/lib/Textarea/Textarea.js +63 -32
  522. package/lib/Textarea/Textarea.module.css +6 -6
  523. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  524. package/lib/Textarea/props/defaultProps.js +2 -1
  525. package/lib/Textarea/props/propTypes.js +4 -0
  526. package/lib/Tooltip/Tooltip.js +102 -35
  527. package/lib/Tooltip/Tooltip.module.css +40 -8
  528. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  529. package/lib/Tooltip/props/propTypes.js +3 -0
  530. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  531. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  532. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  533. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  534. package/lib/VelocityAnimation/index.js +23 -0
  535. package/lib/common/a11y.module.css +4 -0
  536. package/lib/common/animation.module.css +8 -8
  537. package/lib/common/avatarsizes.module.css +6 -2
  538. package/lib/common/basicReset.module.css +3 -3
  539. package/lib/common/boxShadow.module.css +34 -0
  540. package/lib/common/common.module.css +24 -24
  541. package/lib/common/customscroll.module.css +4 -2
  542. package/lib/common/reset.module.css +1 -0
  543. package/lib/css.js +42 -1
  544. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  545. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  546. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  547. package/lib/index.js +214 -210
  548. package/lib/semantic/Button/Button.js +47 -24
  549. package/lib/semantic/Button/props/propTypes.js +3 -0
  550. package/lib/semantic/Button/semanticButton.module.css +1 -1
  551. package/lib/semantic/index.js +15 -0
  552. package/lib/utils/Common.js +136 -17
  553. package/lib/utils/ContextOptimizer.js +16 -10
  554. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  555. package/lib/utils/__tests__/debounce.spec.js +3 -2
  556. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  557. package/lib/utils/constructFullName.js +11 -2
  558. package/lib/utils/css/compileClassNames.js +37 -0
  559. package/lib/utils/css/mergeStyle.js +69 -0
  560. package/lib/utils/css/utils.js +41 -0
  561. package/lib/utils/datetime/GMTZones.js +55 -0
  562. package/lib/utils/datetime/common.js +52 -7
  563. package/lib/utils/debounce.js +6 -1
  564. package/lib/utils/dropDownUtils.js +177 -56
  565. package/lib/utils/dummyFunction.js +2 -0
  566. package/lib/utils/getHTMLFontSize.js +1 -0
  567. package/lib/utils/getInitial.js +6 -0
  568. package/lib/utils/index.js +121 -0
  569. package/lib/utils/scrollTo.js +2 -0
  570. package/lib/utils/shallowEqual.js +8 -0
  571. package/package.json +61 -26
  572. package/postPublish.js +8 -0
  573. package/prePublish.js +70 -0
  574. package/docs/external/active-line.js +0 -72
  575. package/docs/external/autorefresh.js +0 -47
  576. package/docs/external/codemirror.js +0 -9681
  577. package/docs/external/css/hopscotch.css +0 -576
  578. package/docs/external/css/styleGuide.css +0 -1100
  579. package/docs/external/css.js +0 -466
  580. package/docs/external/designTokens.js +0 -1
  581. package/docs/external/foldcode.js +0 -152
  582. package/docs/external/format.js +0 -129
  583. package/docs/external/htmlmixed.js +0 -84
  584. package/docs/external/images/bottom.png +0 -0
  585. package/docs/external/images/bottombg.jpg +0 -0
  586. package/docs/external/images/desk.png +0 -0
  587. package/docs/external/images/desklogo.png +0 -0
  588. package/docs/external/images/menu.png +0 -0
  589. package/docs/external/index.html +0 -127
  590. package/docs/external/javascript.js +0 -422
  591. package/docs/external/jsx.js +0 -148
  592. package/docs/external/matchbrackets.js +0 -145
  593. package/docs/external/xml.js +0 -322
  594. package/docs/package.json +0 -41
  595. package/docs/src/index.js +0 -1311
  596. package/es/Button/__tests__/Button.spec.js +0 -190
  597. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  598. package/es/DropBox/DropBox.module.css +0 -406
  599. package/lib/Button/__tests__/Button.spec.js +0 -193
  600. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  601. package/lib/DropBox/DropBox.module.css +0 -406
@@ -1,6 +1,6 @@
1
1
  /* eslint css-modules/no-unused-class: [0, { markAsUsed: ['datesStr', 'dateContainer', 'dateRow', 'today', 'emptySpan', 'dropDown'] }] */
2
- /* eslint-disable react/forbid-component-props */
3
2
 
3
+ /* eslint-disable react/forbid-component-props */
4
4
  import React from 'react';
5
5
  import { DateTime_propTypes } from './props/propTypes';
6
6
  import { DateTime_defaultProps } from './props/defaultProps';
@@ -15,14 +15,15 @@ import { formatDate, getMonthEnd } from '../utils/datetime/common';
15
15
  import { getIsEmptyValue } from '../utils/Common';
16
16
  import { monthNamesDefault, monthNamesShortDefault, dayNamesDefault, dayNamesShortDefault, ampmTextDefault } from './constants';
17
17
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
18
- import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
19
18
  import { Box } from '../Layout';
20
- import { getHourDetails } from './dateFormatUtils';
19
+ import { getHourSuggestions, getMinuteSuggestions, addZeroIfNeeded } from './dateFormatUtils';
20
+
21
21
  function title(date, year, month) {
22
22
  let monthNames = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
23
23
  const HeadingText = `${monthNames[month] || ''} ${year}`;
24
24
  return HeadingText;
25
25
  }
26
+
26
27
  export default class DateTime extends React.PureComponent {
27
28
  constructor(props) {
28
29
  super(props);
@@ -45,29 +46,11 @@ export default class DateTime extends React.PureComponent {
45
46
  this.handleSelectMonthViaYearView = this.handleSelectMonthViaYearView.bind(this);
46
47
  this.handleGetStateValues = this.handleGetStateValues.bind(this);
47
48
  this.handleYearViewToggle = this.handleYearViewToggle.bind(this);
49
+ this.getInitialDate = this.getInitialDate.bind(this);
48
50
  const {
49
51
  ampmText = ampmTextDefault
50
52
  } = props.i18nKeys;
51
- const {
52
- startPoint: hourStart,
53
- endPoint: hourEnd
54
- } = getHourDetails(props.is24Hour);
55
- this.hourSuggestions = (() => {
56
- const hourArr = [];
57
- for (let hour = hourStart; hour <= hourEnd; hour++) {
58
- const htxt = hour < 10 ? `0${hour}` : `${hour}`;
59
- hourArr.push(htxt);
60
- }
61
- return hourArr;
62
- })();
63
- this.minSuggestions = (() => {
64
- const minArr = [];
65
- for (let minute = 0; minute <= 59; minute++) {
66
- const mtxt = minute < 10 ? `0${minute}` : `${minute}`;
67
- minArr.push(mtxt);
68
- }
69
- return minArr;
70
- })();
53
+
71
54
  this.ampmSuggestions = (() => {
72
55
  const ampmSuggestions = [];
73
56
  ampmText.forEach((text, index) => {
@@ -85,24 +68,29 @@ export default class DateTime extends React.PureComponent {
85
68
  });
86
69
  return ampmSuggestions;
87
70
  })();
71
+
88
72
  const initalStateObj = this.getStateFromProps(props);
89
73
  this.state = Object.assign({}, initalStateObj, {
90
74
  isYearView: false,
91
75
  isMonthOpen: false
92
76
  });
93
77
  }
78
+
94
79
  componentDidMount() {
95
80
  this.handleExposeMethods(true);
96
81
  }
82
+
97
83
  componentDidUpdate(prevProps) {
98
84
  const {
99
85
  value,
100
86
  isActive,
101
87
  is24Hour
102
88
  } = this.props;
89
+
103
90
  if (prevProps.value !== value || is24Hour !== prevProps.is24Hour) {
104
91
  this.setState(this.getStateFromProps(this.props));
105
92
  }
93
+
106
94
  if (prevProps.isActive !== isActive && !isActive) {
107
95
  this.setState({
108
96
  isYearView: false,
@@ -110,9 +98,38 @@ export default class DateTime extends React.PureComponent {
110
98
  });
111
99
  }
112
100
  }
101
+
113
102
  componentWillUnmount() {
114
103
  this.handleExposeMethods(false);
115
104
  }
105
+
106
+ getInitialDate(value) {
107
+ let timeZone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
108
+ let isDateTime = arguments.length > 2 ? arguments[2] : undefined;
109
+ let result = null;
110
+
111
+ if (isDateTime) {
112
+ if (timeZone && value) {
113
+ result = datetime.toDate(datetime.tz.utcToTz(value, timeZone));
114
+ } else {
115
+ value = value ? value.replace('Z', '') : null;
116
+ result = value ? new Date(value) : new Date();
117
+ }
118
+ } else {
119
+ if (value) {
120
+ if (timeZone) {
121
+ result = datetime.toDate(value);
122
+ } else {
123
+ result = new Date(value);
124
+ }
125
+ } else {
126
+ result = new Date();
127
+ }
128
+ }
129
+
130
+ return result;
131
+ }
132
+
116
133
  getStateFromProps(props) {
117
134
  let date, month, year, hours, mins, amPm;
118
135
  let {
@@ -123,24 +140,27 @@ export default class DateTime extends React.PureComponent {
123
140
  isDateTimeField,
124
141
  is24Hour
125
142
  } = props; //defaultTime --> 12:00:PM
143
+
126
144
  defaultTime = needDefaultTime ? defaultTime ? defaultTime : '12:00:PM' : '';
127
145
  let defaultHour, defaultMin, defaultAmPm;
128
146
  let todayObj = new Date();
129
147
  let todayDate = todayObj.getDate();
130
148
  let todayMonth = todayObj.getMonth();
131
149
  let todayYear = todayObj.getFullYear();
150
+
132
151
  if (!value) {
133
152
  [defaultHour, defaultMin, defaultAmPm] = defaultTime ? defaultTime.split(':') : [];
134
153
  defaultHour = parseInt(defaultHour);
135
154
  defaultMin = parseInt(defaultMin);
136
155
  }
137
- const dateObj = isDateTimeField ? datetime.toDate(datetime.tz.utcToTz(value, timeZone)) : value ? datetime.toDate(value) : new Date();
156
+
157
+ const dateObj = this.getInitialDate(value, timeZone, isDateTimeField);
138
158
  date = dateObj.getDate();
139
159
  month = dateObj.getMonth();
140
160
  year = dateObj.getFullYear();
141
161
  hours = defaultHour ? defaultHour : dateObj.getHours();
142
162
  mins = !getIsEmptyValue(defaultMin) ? defaultMin : dateObj.getMinutes();
143
- mins = mins < 10 ? `0${mins}` : mins;
163
+ mins = addZeroIfNeeded(mins);
144
164
  amPm = defaultAmPm ? defaultAmPm : hours < 12 ? 'AM' : 'PM';
145
165
  hours = this.getHours(hours, is24Hour);
146
166
  return {
@@ -155,8 +175,10 @@ export default class DateTime extends React.PureComponent {
155
175
  todayYear
156
176
  };
157
177
  }
178
+
158
179
  getHours(hoursParam, is24Hour) {
159
180
  let hours = hoursParam;
181
+
160
182
  if (!is24Hour) {
161
183
  if (hours === 0) {
162
184
  hours = 12;
@@ -164,9 +186,11 @@ export default class DateTime extends React.PureComponent {
164
186
  hours -= 12;
165
187
  }
166
188
  }
167
- hours = hours < 10 ? `0${hours}` : hours;
189
+
190
+ hours = addZeroIfNeeded(hours);
168
191
  return hours;
169
192
  }
193
+
170
194
  handleGetSelectedDate() {
171
195
  let selectedInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
172
196
  const {
@@ -175,7 +199,8 @@ export default class DateTime extends React.PureComponent {
175
199
  timeZone,
176
200
  isDateTimeField,
177
201
  dateFormat,
178
- is24Hour
202
+ is24Hour,
203
+ customDateFormat
179
204
  } = this.props;
180
205
  let {
181
206
  year,
@@ -185,32 +210,47 @@ export default class DateTime extends React.PureComponent {
185
210
  mins,
186
211
  amPm
187
212
  } = selectedInfo;
213
+
188
214
  if (!is24Hour) {
189
215
  if (parseInt(hours) === 12) {
190
216
  hours = amPm === 'AM' ? 0 : 12;
191
217
  }
218
+
192
219
  if (amPm === 'PM') {
193
220
  if (hours < 12) {
194
221
  hours = parseInt(hours) + 12;
195
222
  }
196
223
  }
197
224
  }
225
+
198
226
  let minInMillis = min ? datetime.millis(min) : null,
199
- maxInMillis = max ? datetime.millis(max) : null,
200
- selectedInMillis,
201
- selectedValue = '',
202
- formattedValue;
203
- if (isDateTimeField) {
204
- selectedInMillis = datetime.tz.tzToUtc(Date.UTC(year, month, date, hours, mins), timeZone);
227
+ maxInMillis = max ? datetime.millis(max) : null,
228
+ selectedInMillis,
229
+ selectedValue = '',
230
+ formattedValue;
231
+ let currentDate = new Date();
232
+ let sec = currentDate.getSeconds();
233
+ let milliSec = currentDate.getMilliseconds();
234
+
235
+ if (isDateTimeField || customDateFormat) {
236
+ const dateArgs = [year, month, date, hours, mins];
237
+
238
+ if (customDateFormat) {
239
+ dateArgs.push(sec, milliSec);
240
+ }
241
+
242
+ selectedInMillis = timeZone ? datetime.tz.tzToUtc(Date.UTC(...dateArgs), timeZone) : Date.UTC(...dateArgs);
205
243
  selectedValue = datetime.ISO(selectedInMillis);
206
- formattedValue = formatDate(new Date(year, month, date, hours, mins), is24Hour ? `${dateFormat} HH:mm` : `${dateFormat} hh:mm A`);
244
+ formattedValue = formatDate(new Date(...dateArgs), customDateFormat == null ? is24Hour ? `${dateFormat} HH:mm:ss` : `${dateFormat} hh:mm:ss A` : `${customDateFormat}`);
207
245
  } else {
208
246
  selectedInMillis = Date.UTC(year, month, date);
209
247
  selectedValue = formatDate(new Date(year, month, date), 'YYYY-MM-DD');
210
248
  formattedValue = formatDate(new Date(year, month, date), dateFormat);
211
249
  }
250
+
212
251
  let isError = false;
213
252
  let errorType = '';
253
+
214
254
  if (minInMillis && minInMillis > selectedInMillis) {
215
255
  isError = true;
216
256
  errorType = 'MIN';
@@ -218,6 +258,7 @@ export default class DateTime extends React.PureComponent {
218
258
  isError = true;
219
259
  errorType = 'MAX';
220
260
  }
261
+
221
262
  return {
222
263
  isError,
223
264
  errorType,
@@ -225,6 +266,7 @@ export default class DateTime extends React.PureComponent {
225
266
  formattedValue
226
267
  };
227
268
  }
269
+
228
270
  handleSelect(e) {
229
271
  e && e.preventDefault();
230
272
  const {
@@ -254,6 +296,7 @@ export default class DateTime extends React.PureComponent {
254
296
  mins,
255
297
  amPm
256
298
  });
299
+
257
300
  if (isError) {
258
301
  if (errorType === 'MIN') {
259
302
  onError && onError(minErrorText, true);
@@ -264,6 +307,7 @@ export default class DateTime extends React.PureComponent {
264
307
  onSelect(selectedValue, formattedValue, e);
265
308
  }
266
309
  }
310
+
267
311
  handleChange() {
268
312
  let selectedInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
269
313
  const {
@@ -296,6 +340,7 @@ export default class DateTime extends React.PureComponent {
296
340
  mins: getIsEmptyValue(mins) ? oldMins : mins,
297
341
  amPm: getIsEmptyValue(amPm) ? oldAMPM : amPm
298
342
  };
343
+
299
344
  if (onChange) {
300
345
  const {
301
346
  isError,
@@ -303,6 +348,7 @@ export default class DateTime extends React.PureComponent {
303
348
  selectedValue,
304
349
  formattedValue
305
350
  } = this.handleGetSelectedDate(newSelectedInfo);
351
+
306
352
  if (isError) {
307
353
  if (errorType === 'MIN') {
308
354
  onError && onError(minErrorText, true);
@@ -317,17 +363,20 @@ export default class DateTime extends React.PureComponent {
317
363
  this.setState(newSelectedInfo);
318
364
  }
319
365
  }
366
+
320
367
  handleClear(e) {
321
368
  const {
322
369
  onSelect,
323
370
  onClear
324
371
  } = this.props;
372
+
325
373
  if (onClear) {
326
374
  onClear(e);
327
375
  } else {
328
376
  onSelect('', '', e);
329
377
  }
330
378
  }
379
+
331
380
  dateSelect(date, month, year, e) {
332
381
  this.handleChange({
333
382
  date,
@@ -359,6 +408,7 @@ export default class DateTime extends React.PureComponent {
359
408
  mins,
360
409
  amPm
361
410
  });
411
+
362
412
  if (isError) {
363
413
  if (errorType === 'MIN') {
364
414
  onError && onError(minErrorText, true);
@@ -369,26 +419,31 @@ export default class DateTime extends React.PureComponent {
369
419
  onDateSelect && onDateSelect(selectedValue, formattedValue, e);
370
420
  }
371
421
  }
422
+
372
423
  hoursSelect(hours) {
373
424
  this.handleChange({
374
425
  hours
375
426
  });
376
427
  }
428
+
377
429
  minutesSelect(mins) {
378
430
  this.handleChange({
379
431
  mins
380
432
  });
381
433
  }
434
+
382
435
  amPmSelect(amPm) {
383
436
  this.handleChange({
384
437
  amPm
385
438
  });
386
439
  }
387
-
388
440
  /*global closeGroupPopups*/
441
+
442
+
389
443
  closePopup() {
390
444
  closeGroupPopups('calender');
391
445
  }
446
+
392
447
  handleCalendarNavigation(type, selectedInfo) {
393
448
  const {
394
449
  year: stateYear,
@@ -398,10 +453,12 @@ export default class DateTime extends React.PureComponent {
398
453
  let date = stateDate;
399
454
  let month = stateMonth;
400
455
  const year = stateYear;
456
+
401
457
  const getDate = (month, year) => {
402
458
  const monthEnd = getMonthEnd(month, year);
403
459
  return monthEnd >= parseInt(date) ? date : monthEnd;
404
460
  };
461
+
405
462
  const modifyCalendarRecursion = recursionType => {
406
463
  if (recursionType === 'nextYear') {
407
464
  //Click next year icon
@@ -425,6 +482,7 @@ export default class DateTime extends React.PureComponent {
425
482
  month = 0;
426
483
  return modifyCalendarRecursion('nextYear');
427
484
  }
485
+
428
486
  const newMonth = month + 1;
429
487
  return {
430
488
  date: getDate(newMonth, year),
@@ -437,6 +495,7 @@ export default class DateTime extends React.PureComponent {
437
495
  month = 11;
438
496
  return modifyCalendarRecursion('previousYear');
439
497
  }
498
+
440
499
  const newMonth = month - 1;
441
500
  return {
442
501
  date: getDate(newMonth, year),
@@ -445,10 +504,12 @@ export default class DateTime extends React.PureComponent {
445
504
  };
446
505
  } else if (recursionType === 'nextDate') {
447
506
  const monthEnd = getMonthEnd(month, year);
507
+
448
508
  if (date === monthEnd) {
449
509
  date = 1;
450
510
  return modifyCalendarRecursion('nextMonth');
451
511
  }
512
+
452
513
  const newDate = parseInt(date) + 1;
453
514
  return {
454
515
  date: newDate,
@@ -460,6 +521,7 @@ export default class DateTime extends React.PureComponent {
460
521
  date = month === 0 ? getMonthEnd(11, year - 1) : getMonthEnd(month - 1, year);
461
522
  return modifyCalendarRecursion('previousMonth');
462
523
  }
524
+
463
525
  const newDate = parseInt(date) - 1;
464
526
  return {
465
527
  date: newDate,
@@ -468,8 +530,10 @@ export default class DateTime extends React.PureComponent {
468
530
  };
469
531
  }
470
532
  };
533
+
471
534
  return modifyCalendarRecursion(type);
472
535
  }
536
+
473
537
  modifyCalendar(type) {
474
538
  const {
475
539
  year,
@@ -482,9 +546,11 @@ export default class DateTime extends React.PureComponent {
482
546
  date
483
547
  }));
484
548
  }
549
+
485
550
  handleDateReset() {
486
551
  this.setState(this.getStateFromProps(this.props));
487
552
  }
553
+
488
554
  handleGetStateValues() {
489
555
  const {
490
556
  isActive
@@ -499,17 +565,20 @@ export default class DateTime extends React.PureComponent {
499
565
  isMonthOpen
500
566
  };
501
567
  }
568
+
502
569
  handleYearViewToggle(isYearOpen, isMonthOpen) {
503
570
  this.setState({
504
571
  isYearView: isYearOpen,
505
572
  isMonthOpen
506
573
  });
507
574
  }
575
+
508
576
  handleExposeMethods(isMount) {
509
577
  const {
510
578
  getMethods
511
579
  } = this.props;
512
580
  let methods = {};
581
+
513
582
  if (isMount) {
514
583
  methods = {
515
584
  resetLocalDate: this.handleDateReset,
@@ -523,8 +592,10 @@ export default class DateTime extends React.PureComponent {
523
592
  toggleYearView: null
524
593
  };
525
594
  }
595
+
526
596
  getMethods && getMethods(methods);
527
597
  }
598
+
528
599
  handleOpenYearView() {
529
600
  const {
530
601
  isYearView,
@@ -535,12 +606,14 @@ export default class DateTime extends React.PureComponent {
535
606
  isMonthOpen: !isMonthOpen
536
607
  });
537
608
  }
609
+
538
610
  handleSelectYear(year) {
539
611
  this.setState({
540
612
  year,
541
613
  isMonthOpen: true
542
614
  });
543
615
  }
616
+
544
617
  handleSelectMonth(month) {
545
618
  const {
546
619
  date,
@@ -548,14 +621,17 @@ export default class DateTime extends React.PureComponent {
548
621
  } = this.state;
549
622
  const monthEnd = getMonthEnd(month, year);
550
623
  let newDate = date;
624
+
551
625
  if (date > monthEnd) {
552
626
  newDate = monthEnd;
553
627
  }
628
+
554
629
  this.setState({
555
630
  month,
556
631
  date: newDate
557
632
  });
558
633
  }
634
+
559
635
  handleSelectMonthViaYearView(month) {
560
636
  this.handleSelectMonth(month);
561
637
  this.setState({
@@ -563,16 +639,7 @@ export default class DateTime extends React.PureComponent {
563
639
  isMonthOpen: false
564
640
  });
565
641
  }
566
- responsiveFunc(_ref) {
567
- let {
568
- mediaQueryOR
569
- } = _ref;
570
- return {
571
- tabletMode: mediaQueryOR([{
572
- maxWidth: 700
573
- }])
574
- };
575
- }
642
+
576
643
  render() {
577
644
  const {
578
645
  date,
@@ -628,6 +695,7 @@ export default class DateTime extends React.PureComponent {
628
695
  const childEle = /*#__PURE__*/React.createElement("div", {
629
696
  className: `${style.container} ${innerClass}`,
630
697
  "data-id": `${dataId}_Calendar`,
698
+ "data-test-id": `${dataId}_Calendar`,
631
699
  onClick: this.closePopup
632
700
  }, /*#__PURE__*/React.createElement(DateTimePopupHeader, {
633
701
  onOpenYearView: this.handleOpenYearView,
@@ -653,12 +721,12 @@ export default class DateTime extends React.PureComponent {
653
721
  }), isDateTimeField ? /*#__PURE__*/React.createElement(Time, {
654
722
  timeText: timeText,
655
723
  dataId: dataId,
656
- hourSuggestions: this.hourSuggestions,
724
+ hourSuggestions: getHourSuggestions(is24Hour),
657
725
  onHourSelect: this.hoursSelect,
658
726
  hours: hours,
659
727
  hourEmptyText: hourEmptyText,
660
728
  needResponsive: needResponsive,
661
- minSuggestions: this.minSuggestions,
729
+ minSuggestions: getMinuteSuggestions(),
662
730
  onMinutesSelect: this.minutesSelect,
663
731
  mins: mins,
664
732
  minuteEmptyText: minuteEmptyText,
@@ -685,37 +753,31 @@ export default class DateTime extends React.PureComponent {
685
753
  })) : null));
686
754
  return isDefaultPosition ? /*#__PURE__*/React.createElement("div", {
687
755
  className: `${style.dropBox} ${className}`,
688
- "data-id": `${dataId}_dateBoxContainer`
689
- }) : isReady ? /*#__PURE__*/React.createElement(ResponsiveReceiver, {
690
- query: this.responsiveFunc,
691
- responsiveId: "Helmet"
692
- }, _ref2 => {
693
- let {
694
- tabletMode
695
- } = _ref2;
696
- return /*#__PURE__*/React.createElement(ResponsiveDropBox, {
697
- size: boxSize,
698
- boxPosition: position,
699
- isActive: isActive,
700
- isArrow: false,
701
- isAnimate: isAnimate,
702
- animationStyle: "bounce",
703
- getRef: getRef,
704
- onClick: onClick,
705
- dataId: `${dataId}_dateBoxContainer`,
706
- needResponsive: needResponsive,
707
- isAbsolutePositioningNeeded: isAbsolute,
708
- customClass: {
709
- customDropBoxWrap: className
710
- },
711
- isPadding: isPadding,
712
- positionsOffset: positionsOffset,
713
- targetOffset: targetOffset,
714
- isRestrictScroll: isRestrictScroll,
715
- portalId: dropBoxPortalId
716
- }, /*#__PURE__*/React.createElement(Box, null, childEle));
717
- }) : null;
756
+ "data-id": `${dataId}_dateBoxContainer`,
757
+ "data-test-id": `${dataId}_dateBoxContainer`
758
+ }, childEle) : isReady ? /*#__PURE__*/React.createElement(ResponsiveDropBox, {
759
+ size: boxSize,
760
+ boxPosition: position,
761
+ isActive: isActive,
762
+ isArrow: false,
763
+ isAnimate: isAnimate,
764
+ animationStyle: "bounce",
765
+ getRef: getRef,
766
+ onClick: onClick,
767
+ dataId: `${dataId}_dateBoxContainer`,
768
+ needResponsive: needResponsive,
769
+ isAbsolutePositioningNeeded: isAbsolute,
770
+ customClass: {
771
+ customDropBoxWrap: className
772
+ },
773
+ isPadding: isPadding,
774
+ positionsOffset: positionsOffset,
775
+ targetOffset: targetOffset,
776
+ isRestrictScroll: isRestrictScroll,
777
+ portalId: dropBoxPortalId
778
+ }, /*#__PURE__*/React.createElement(Box, null, childEle)) : null;
718
779
  }
780
+
719
781
  }
720
782
  DateTime.propTypes = DateTime_propTypes;
721
783
  DateTime.defaultProps = DateTime_defaultProps;