@zohodesk/components 1.2.23 → 1.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +7 -89
  5. package/es/Animation/utils.js +83 -0
  6. package/es/AppContainer/AppContainer.js +14 -3
  7. package/es/AppContainer/AppContainer.module.css +2 -2
  8. package/es/Avatar/Avatar.js +23 -11
  9. package/es/Avatar/Avatar.module.css +18 -18
  10. package/es/AvatarTeam/AvatarTeam.js +3 -3
  11. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  12. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
  13. package/es/Button/Button.js +4 -3
  14. package/es/Button/css/Button.module.css +70 -70
  15. package/es/Buttongroup/Buttongroup.js +3 -3
  16. package/es/Buttongroup/Buttongroup.module.css +13 -15
  17. package/es/Card/Card.js +21 -10
  18. package/es/CheckBox/CheckBox.js +5 -3
  19. package/es/CheckBox/CheckBox.module.css +15 -15
  20. package/es/DateTime/CalendarView.js +32 -20
  21. package/es/DateTime/DateTime.js +69 -6
  22. package/es/DateTime/DateTime.module.css +40 -40
  23. package/es/DateTime/DateTimePopupFooter.js +4 -1
  24. package/es/DateTime/DateTimePopupHeader.js +8 -2
  25. package/es/DateTime/DateWidget.js +98 -35
  26. package/es/DateTime/DateWidget.module.css +5 -5
  27. package/es/DateTime/DaysRow.js +4 -1
  28. package/es/DateTime/Time.js +10 -1
  29. package/es/DateTime/YearView.js +28 -4
  30. package/es/DateTime/YearView.module.css +15 -15
  31. package/es/DateTime/common.js +3 -0
  32. package/es/DateTime/constants.js +1 -0
  33. package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
  34. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  35. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  36. package/es/DateTime/dateFormatUtils/index.js +31 -1
  37. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  38. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  39. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  40. package/es/DateTime/objectUtils.js +14 -20
  41. package/es/DateTime/typeChecker.js +3 -0
  42. package/es/DateTime/validator.js +58 -6
  43. package/es/DropBox/DropBox.js +6 -2
  44. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  45. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  46. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  47. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  48. package/es/DropBox/css/DropBox.module.css +6 -6
  49. package/es/DropBox/props/defaultProps.js +1 -2
  50. package/es/DropBox/props/propTypes.js +1 -2
  51. package/es/DropDown/DropDown.js +7 -1
  52. package/es/DropDown/DropDown.module.css +2 -2
  53. package/es/DropDown/DropDownHeading.js +4 -5
  54. package/es/DropDown/DropDownHeading.module.css +6 -6
  55. package/es/DropDown/DropDownItem.js +6 -0
  56. package/es/DropDown/DropDownItem.module.css +12 -12
  57. package/es/DropDown/DropDownSearch.js +4 -0
  58. package/es/DropDown/DropDownSearch.module.css +3 -3
  59. package/es/DropDown/DropDownSeparator.js +1 -0
  60. package/es/DropDown/DropDownSeparator.module.css +2 -2
  61. package/es/DropDown/props/propTypes.js +1 -2
  62. package/es/Heading/Heading.js +2 -3
  63. package/es/Heading/Heading.module.css +2 -2
  64. package/es/Label/Label.js +2 -3
  65. package/es/Label/Label.module.css +5 -5
  66. package/es/Label/__tests__/Label.spec.js +1 -2
  67. package/es/Layout/Box.js +15 -2
  68. package/es/Layout/Container.js +14 -3
  69. package/es/Layout/Layout.module.css +15 -15
  70. package/es/Layout/index.js +1 -2
  71. package/es/Layout/utils.js +1 -0
  72. package/es/ListItem/ListContainer.js +8 -3
  73. package/es/ListItem/ListItem.js +9 -3
  74. package/es/ListItem/ListItem.module.css +27 -38
  75. package/es/ListItem/ListItemWithAvatar.js +9 -3
  76. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  77. package/es/ListItem/ListItemWithIcon.js +8 -3
  78. package/es/ListItem/ListItemWithRadio.js +7 -3
  79. package/es/Modal/Modal.js +28 -11
  80. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  81. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  82. package/es/MultiSelect/EmptyState.js +2 -0
  83. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  84. package/es/MultiSelect/MultiSelect.js +99 -30
  85. package/es/MultiSelect/MultiSelect.module.css +31 -31
  86. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  87. package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
  88. package/es/MultiSelect/SelectedOptions.js +6 -3
  89. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  90. package/es/MultiSelect/Suggestions.js +7 -3
  91. package/es/MultiSelect/props/propTypes.js +2 -2
  92. package/es/PopOver/PopOver.js +16 -0
  93. package/es/Popup/Popup.js +77 -24
  94. package/es/Popup/viewPort.js +16 -4
  95. package/es/Provider/IdProvider.js +10 -5
  96. package/es/Provider/LibraryContext.js +6 -4
  97. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  98. package/es/Provider/ZindexProvider.js +9 -2
  99. package/es/Radio/Radio.js +3 -0
  100. package/es/Radio/Radio.module.css +9 -9
  101. package/es/Responsive/CustomResponsive.js +30 -18
  102. package/es/Responsive/RefWrapper.js +6 -7
  103. package/es/Responsive/ResizeComponent.js +35 -25
  104. package/es/Responsive/ResizeObserver.js +26 -6
  105. package/es/Responsive/Responsive.js +34 -20
  106. package/es/Responsive/index.js +1 -3
  107. package/es/Responsive/sizeObservers.js +28 -7
  108. package/es/Responsive/utils/index.js +7 -5
  109. package/es/Responsive/utils/shallowCompare.js +7 -2
  110. package/es/Responsive/windowResizeObserver.js +7 -0
  111. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  112. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  113. package/es/ResponsiveDropBox/props/propTypes.js +1 -2
  114. package/es/Ribbon/Ribbon.js +3 -2
  115. package/es/Ribbon/Ribbon.module.css +45 -48
  116. package/es/RippleEffect/RippleEffect.js +1 -3
  117. package/es/Select/GroupSelect.js +58 -14
  118. package/es/Select/Select.js +79 -33
  119. package/es/Select/Select.module.css +23 -23
  120. package/es/Select/SelectWithAvatar.js +17 -4
  121. package/es/Select/SelectWithIcon.js +46 -5
  122. package/es/Select/props/propTypes.js +2 -2
  123. package/es/Stencils/Stencils.js +3 -3
  124. package/es/Stencils/Stencils.module.css +11 -11
  125. package/es/Switch/Switch.js +5 -3
  126. package/es/Switch/Switch.module.css +23 -23
  127. package/es/Tab/Tab.js +4 -4
  128. package/es/Tab/Tab.module.css +14 -14
  129. package/es/Tab/TabContent.js +1 -0
  130. package/es/Tab/TabContentWrapper.js +3 -0
  131. package/es/Tab/TabWrapper.js +5 -2
  132. package/es/Tab/Tabs.js +54 -7
  133. package/es/Tab/Tabs.module.css +22 -22
  134. package/es/Tag/Tag.js +6 -3
  135. package/es/Tag/Tag.module.css +24 -25
  136. package/es/TextBox/TextBox.js +16 -3
  137. package/es/TextBox/TextBox.module.css +9 -9
  138. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  139. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  140. package/es/TextBoxIcon/props/propTypes.js +1 -2
  141. package/es/Textarea/Textarea.js +12 -3
  142. package/es/Textarea/Textarea.module.css +21 -21
  143. package/es/Tooltip/Tooltip.js +58 -14
  144. package/es/Tooltip/Tooltip.module.css +5 -5
  145. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  146. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  147. package/es/common/animation.module.css +8 -8
  148. package/es/common/avatarsizes.module.css +16 -16
  149. package/es/common/basicReset.module.css +3 -3
  150. package/es/common/common.module.css +24 -24
  151. package/es/common/customscroll.module.css +2 -2
  152. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  153. package/es/semantic/Button/Button.js +3 -2
  154. package/es/semantic/Button/semanticButton.module.css +1 -1
  155. package/es/utils/Common.js +54 -9
  156. package/es/utils/ContextOptimizer.js +4 -5
  157. package/es/utils/constructFullName.js +2 -0
  158. package/es/utils/datetime/common.js +16 -5
  159. package/es/utils/debounce.js +5 -1
  160. package/es/utils/dropDownUtils.js +68 -11
  161. package/es/utils/getInitial.js +4 -0
  162. package/es/utils/shallowEqual.js +6 -0
  163. package/es/v1/Accordion/Accordion.js +4 -3
  164. package/es/v1/Accordion/AccordionItem.js +4 -2
  165. package/es/v1/Animation/Animation.js +5 -89
  166. package/es/v1/Animation/utils.js +83 -0
  167. package/es/v1/AppContainer/AppContainer.js +9 -3
  168. package/es/v1/Avatar/Avatar.js +18 -6
  169. package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
  170. package/es/v1/Button/Button.js +3 -3
  171. package/es/v1/Card/Card.js +16 -8
  172. package/es/v1/CheckBox/CheckBox.js +6 -3
  173. package/es/v1/DateTime/CalendarView.js +32 -20
  174. package/es/v1/DateTime/DateTime.js +69 -6
  175. package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
  176. package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
  177. package/es/v1/DateTime/DateWidget.js +98 -35
  178. package/es/v1/DateTime/DaysRow.js +4 -1
  179. package/es/v1/DateTime/Time.js +10 -1
  180. package/es/v1/DateTime/YearView.js +28 -4
  181. package/es/v1/DropBox/DropBox.js +6 -2
  182. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  183. package/es/v1/DropBox/props/defaultProps.js +1 -2
  184. package/es/v1/DropBox/props/propTypes.js +1 -2
  185. package/es/v1/DropDown/DropDown.js +3 -0
  186. package/es/v1/DropDown/DropDownHeading.js +2 -2
  187. package/es/v1/DropDown/DropDownItem.js +5 -0
  188. package/es/v1/DropDown/DropDownSearch.js +3 -2
  189. package/es/v1/DropDown/props/propTypes.js +1 -2
  190. package/es/v1/Heading/Heading.js +1 -3
  191. package/es/v1/Layout/Box.js +15 -2
  192. package/es/v1/Layout/Container.js +14 -3
  193. package/es/v1/ListItem/ListContainer.js +8 -3
  194. package/es/v1/ListItem/ListItem.js +10 -3
  195. package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
  196. package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
  197. package/es/v1/ListItem/ListItemWithIcon.js +9 -3
  198. package/es/v1/ListItem/ListItemWithRadio.js +8 -3
  199. package/es/v1/Modal/Modal.js +17 -1
  200. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
  201. package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
  202. package/es/v1/MultiSelect/EmptyState.js +2 -0
  203. package/es/v1/MultiSelect/MultiSelect.js +100 -31
  204. package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
  205. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
  206. package/es/v1/MultiSelect/SelectedOptions.js +6 -3
  207. package/es/v1/MultiSelect/Suggestions.js +7 -3
  208. package/es/v1/MultiSelect/props/propTypes.js +2 -2
  209. package/es/v1/PopOver/PopOver.js +11 -0
  210. package/es/v1/Popup/Popup.js +77 -24
  211. package/es/v1/Provider/IdProvider.js +10 -5
  212. package/es/v1/Provider/LibraryContext.js +6 -4
  213. package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
  214. package/es/v1/Provider/ZindexProvider.js +9 -2
  215. package/es/v1/Radio/Radio.js +5 -2
  216. package/es/v1/Responsive/CustomResponsive.js +30 -18
  217. package/es/v1/Responsive/RefWrapper.js +6 -7
  218. package/es/v1/Responsive/ResizeComponent.js +35 -25
  219. package/es/v1/Responsive/ResizeObserver.js +26 -6
  220. package/es/v1/Responsive/Responsive.js +34 -20
  221. package/es/v1/Responsive/index.js +1 -3
  222. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
  223. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
  224. package/es/v1/Select/GroupSelect.js +58 -14
  225. package/es/v1/Select/Select.js +81 -37
  226. package/es/v1/Select/SelectWithAvatar.js +17 -4
  227. package/es/v1/Select/SelectWithIcon.js +46 -5
  228. package/es/v1/Select/props/propTypes.js +2 -2
  229. package/es/v1/Stencils/Stencils.js +2 -0
  230. package/es/v1/Switch/Switch.js +6 -3
  231. package/es/v1/Tab/Tab.js +3 -3
  232. package/es/v1/Tab/TabContent.js +1 -0
  233. package/es/v1/Tab/TabContentWrapper.js +3 -0
  234. package/es/v1/Tab/TabWrapper.js +5 -2
  235. package/es/v1/Tab/Tabs.js +54 -9
  236. package/es/v1/Tab/v1Tab.module.css +14 -14
  237. package/es/v1/Tab/v1Tabs.module.css +22 -22
  238. package/es/v1/Tag/Tag.js +5 -1
  239. package/es/v1/TextBox/TextBox.js +14 -0
  240. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
  241. package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
  242. package/es/v1/Textarea/Textarea.js +10 -3
  243. package/es/v1/Tooltip/Tooltip.js +58 -14
  244. package/es/v1/Typography/Typography.js +2 -0
  245. package/es/v1/Typography/css/Typography.module.css +31 -31
  246. package/es/v1/Typography/css/cssJSLogic.js +3 -0
  247. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
  248. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
  249. package/es/v1/semantic/Button/Button.js +1 -2
  250. package/lib/Accordion/Accordion.js +42 -18
  251. package/lib/Accordion/AccordionItem.js +40 -18
  252. package/lib/Accordion/index.js +3 -0
  253. package/lib/Accordion/props/propTypes.js +3 -0
  254. package/lib/Animation/Animation.js +42 -104
  255. package/lib/Animation/props/propTypes.js +3 -0
  256. package/lib/Animation/utils.js +94 -0
  257. package/lib/AppContainer/AppContainer.js +58 -20
  258. package/lib/AppContainer/AppContainer.module.css +2 -2
  259. package/lib/AppContainer/props/propTypes.js +3 -0
  260. package/lib/Avatar/Avatar.js +78 -38
  261. package/lib/Avatar/Avatar.module.css +18 -18
  262. package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
  263. package/lib/Avatar/props/propTypes.js +3 -0
  264. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  265. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  266. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
  267. package/lib/AvatarTeam/props/propTypes.js +3 -0
  268. package/lib/Button/Button.js +33 -22
  269. package/lib/Button/__tests__/Button.spec.js +65 -48
  270. package/lib/Button/css/Button.module.css +70 -70
  271. package/lib/Button/css/cssJSLogic.js +18 -17
  272. package/lib/Button/index.js +3 -0
  273. package/lib/Button/props/defaultProps.js +2 -0
  274. package/lib/Button/props/propTypes.js +3 -0
  275. package/lib/Buttongroup/Buttongroup.js +32 -12
  276. package/lib/Buttongroup/Buttongroup.module.css +13 -15
  277. package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
  278. package/lib/Buttongroup/props/propTypes.js +3 -0
  279. package/lib/Card/Card.js +102 -46
  280. package/lib/Card/index.js +4 -0
  281. package/lib/Card/props/propTypes.js +3 -0
  282. package/lib/CheckBox/CheckBox.js +71 -47
  283. package/lib/CheckBox/CheckBox.module.css +15 -15
  284. package/lib/CheckBox/props/propTypes.js +3 -0
  285. package/lib/DateTime/CalendarView.js +82 -42
  286. package/lib/DateTime/DateTime.js +244 -156
  287. package/lib/DateTime/DateTime.module.css +40 -40
  288. package/lib/DateTime/DateTimePopupFooter.js +33 -8
  289. package/lib/DateTime/DateTimePopupHeader.js +49 -17
  290. package/lib/DateTime/DateWidget.js +350 -249
  291. package/lib/DateTime/DateWidget.module.css +5 -5
  292. package/lib/DateTime/DaysRow.js +28 -5
  293. package/lib/DateTime/Time.js +75 -32
  294. package/lib/DateTime/YearView.js +76 -27
  295. package/lib/DateTime/YearView.module.css +15 -15
  296. package/lib/DateTime/common.js +6 -0
  297. package/lib/DateTime/constants.js +1 -0
  298. package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
  299. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  300. package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
  301. package/lib/DateTime/dateFormatUtils/index.js +73 -16
  302. package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
  303. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  304. package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
  305. package/lib/DateTime/index.js +2 -0
  306. package/lib/DateTime/objectUtils.js +24 -20
  307. package/lib/DateTime/props/propTypes.js +11 -1
  308. package/lib/DateTime/typeChecker.js +4 -0
  309. package/lib/DateTime/validator.js +73 -10
  310. package/lib/DropBox/DropBox.js +45 -21
  311. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  312. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  313. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  314. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  315. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  316. package/lib/DropBox/css/DropBox.module.css +6 -6
  317. package/lib/DropBox/css/cssJSLogic.js +3 -1
  318. package/lib/DropBox/props/defaultProps.js +8 -4
  319. package/lib/DropBox/props/propTypes.js +10 -4
  320. package/lib/DropDown/DropDown.js +51 -5
  321. package/lib/DropDown/DropDown.module.css +2 -2
  322. package/lib/DropDown/DropDownHeading.js +39 -20
  323. package/lib/DropDown/DropDownHeading.module.css +6 -6
  324. package/lib/DropDown/DropDownItem.js +42 -20
  325. package/lib/DropDown/DropDownItem.module.css +12 -12
  326. package/lib/DropDown/DropDownSearch.js +40 -17
  327. package/lib/DropDown/DropDownSearch.module.css +3 -3
  328. package/lib/DropDown/DropDownSeparator.js +24 -4
  329. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  330. package/lib/DropDown/index.js +9 -0
  331. package/lib/DropDown/props/propTypes.js +10 -4
  332. package/lib/Heading/Heading.js +37 -15
  333. package/lib/Heading/Heading.module.css +2 -2
  334. package/lib/Heading/props/propTypes.js +3 -0
  335. package/lib/Label/Label.js +41 -21
  336. package/lib/Label/Label.module.css +5 -5
  337. package/lib/Label/__tests__/Label.spec.js +48 -34
  338. package/lib/Label/props/propTypes.js +3 -0
  339. package/lib/Layout/Box.js +35 -15
  340. package/lib/Layout/Container.js +33 -14
  341. package/lib/Layout/Layout.module.css +15 -15
  342. package/lib/Layout/index.js +3 -0
  343. package/lib/Layout/props/propTypes.js +3 -0
  344. package/lib/Layout/utils.js +11 -0
  345. package/lib/ListItem/ListContainer.js +55 -30
  346. package/lib/ListItem/ListItem.js +74 -45
  347. package/lib/ListItem/ListItem.module.css +27 -38
  348. package/lib/ListItem/ListItemWithAvatar.js +80 -48
  349. package/lib/ListItem/ListItemWithCheckBox.js +70 -40
  350. package/lib/ListItem/ListItemWithIcon.js +73 -44
  351. package/lib/ListItem/ListItemWithRadio.js +71 -42
  352. package/lib/ListItem/index.js +7 -0
  353. package/lib/ListItem/props/propTypes.js +6 -4
  354. package/lib/Modal/Modal.js +45 -10
  355. package/lib/Modal/props/propTypes.js +3 -0
  356. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
  357. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  358. package/lib/MultiSelect/EmptyState.js +45 -24
  359. package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  360. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  361. package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  362. package/lib/MultiSelect/MultiSelect.js +333 -214
  363. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  364. package/lib/MultiSelect/MultiSelectHeader.js +29 -7
  365. package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
  366. package/lib/MultiSelect/SelectedOptions.js +43 -17
  367. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  368. package/lib/MultiSelect/Suggestions.js +64 -32
  369. package/lib/MultiSelect/index.js +5 -0
  370. package/lib/MultiSelect/props/defaultProps.js +2 -0
  371. package/lib/MultiSelect/props/propTypes.js +14 -4
  372. package/lib/PopOver/PopOver.js +94 -47
  373. package/lib/PopOver/index.js +4 -0
  374. package/lib/PopOver/props/propTypes.js +3 -0
  375. package/lib/Popup/Popup.js +158 -81
  376. package/lib/Popup/viewPort.js +28 -14
  377. package/lib/Provider/AvatarSize.js +4 -0
  378. package/lib/Provider/Config.js +2 -0
  379. package/lib/Provider/CssProvider.js +4 -0
  380. package/lib/Provider/IdProvider.js +17 -6
  381. package/lib/Provider/LibraryContext.js +35 -15
  382. package/lib/Provider/LibraryContextInit.js +4 -0
  383. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  384. package/lib/Provider/ZindexProvider.js +15 -3
  385. package/lib/Provider/index.js +5 -0
  386. package/lib/Radio/Radio.js +60 -36
  387. package/lib/Radio/Radio.module.css +9 -9
  388. package/lib/Radio/__tests__/Radio.spec.js +134 -103
  389. package/lib/Radio/props/propTypes.js +3 -0
  390. package/lib/Responsive/CustomResponsive.js +73 -29
  391. package/lib/Responsive/RefWrapper.js +17 -11
  392. package/lib/Responsive/ResizeComponent.js +62 -36
  393. package/lib/Responsive/ResizeObserver.js +24 -10
  394. package/lib/Responsive/Responsive.js +80 -30
  395. package/lib/Responsive/index.js +4 -0
  396. package/lib/Responsive/props/propTypes.js +3 -0
  397. package/lib/Responsive/sizeObservers.js +53 -17
  398. package/lib/Responsive/utils/index.js +11 -3
  399. package/lib/Responsive/utils/shallowCompare.js +11 -2
  400. package/lib/Responsive/windowResizeObserver.js +8 -0
  401. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  402. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  403. package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
  404. package/lib/Ribbon/Ribbon.js +33 -13
  405. package/lib/Ribbon/Ribbon.module.css +45 -48
  406. package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
  407. package/lib/Ribbon/props/propTypes.js +3 -0
  408. package/lib/RippleEffect/RippleEffect.js +18 -10
  409. package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
  410. package/lib/RippleEffect/props/propTypes.js +3 -0
  411. package/lib/Select/GroupSelect.js +229 -130
  412. package/lib/Select/Select.js +295 -211
  413. package/lib/Select/Select.module.css +23 -23
  414. package/lib/Select/SelectWithAvatar.js +102 -56
  415. package/lib/Select/SelectWithIcon.js +131 -76
  416. package/lib/Select/index.js +5 -0
  417. package/lib/Select/props/defaultProps.js +5 -4
  418. package/lib/Select/props/propTypes.js +10 -4
  419. package/lib/Stencils/Stencils.js +29 -10
  420. package/lib/Stencils/Stencils.module.css +11 -11
  421. package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
  422. package/lib/Stencils/props/propTypes.js +3 -0
  423. package/lib/Switch/Switch.js +57 -34
  424. package/lib/Switch/Switch.module.css +23 -23
  425. package/lib/Switch/__tests__/Switch.spec.js +91 -72
  426. package/lib/Switch/props/propTypes.js +3 -0
  427. package/lib/Tab/Tab.js +40 -27
  428. package/lib/Tab/Tab.module.css +14 -14
  429. package/lib/Tab/TabContent.js +12 -5
  430. package/lib/Tab/TabContentWrapper.js +16 -8
  431. package/lib/Tab/TabWrapper.js +37 -19
  432. package/lib/Tab/Tabs.js +171 -91
  433. package/lib/Tab/Tabs.module.css +22 -22
  434. package/lib/Tab/index.js +6 -0
  435. package/lib/Tab/props/propTypes.js +3 -0
  436. package/lib/Tag/Tag.js +72 -43
  437. package/lib/Tag/Tag.module.css +24 -25
  438. package/lib/Tag/props/propTypes.js +3 -0
  439. package/lib/TextBox/TextBox.js +86 -60
  440. package/lib/TextBox/TextBox.module.css +9 -9
  441. package/lib/TextBox/props/propTypes.js +6 -4
  442. package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
  443. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  444. package/lib/TextBoxIcon/props/propTypes.js +9 -4
  445. package/lib/Textarea/Textarea.js +54 -29
  446. package/lib/Textarea/Textarea.module.css +21 -21
  447. package/lib/Textarea/props/propTypes.js +3 -0
  448. package/lib/Tooltip/Tooltip.js +94 -31
  449. package/lib/Tooltip/Tooltip.module.css +5 -5
  450. package/lib/Tooltip/props/propTypes.js +3 -0
  451. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  452. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  453. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  454. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  455. package/lib/VelocityAnimation/index.js +3 -0
  456. package/lib/common/animation.module.css +8 -8
  457. package/lib/common/avatarsizes.module.css +16 -16
  458. package/lib/common/basicReset.module.css +3 -3
  459. package/lib/common/common.module.css +24 -24
  460. package/lib/common/customscroll.module.css +2 -2
  461. package/lib/css.js +40 -0
  462. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  463. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  464. package/lib/index.js +58 -0
  465. package/lib/semantic/Button/Button.js +42 -22
  466. package/lib/semantic/Button/props/propTypes.js +3 -0
  467. package/lib/semantic/Button/semanticButton.module.css +1 -1
  468. package/lib/semantic/index.js +2 -0
  469. package/lib/utils/Common.js +111 -18
  470. package/lib/utils/ContextOptimizer.js +16 -10
  471. package/lib/utils/constructFullName.js +13 -4
  472. package/lib/utils/datetime/common.js +34 -5
  473. package/lib/utils/debounce.js +6 -1
  474. package/lib/utils/dropDownUtils.js +175 -59
  475. package/lib/utils/dummyFunction.js +2 -0
  476. package/lib/utils/getHTMLFontSize.js +1 -0
  477. package/lib/utils/getInitial.js +6 -0
  478. package/lib/utils/index.js +1 -0
  479. package/lib/utils/scrollTo.js +2 -0
  480. package/lib/utils/shallowEqual.js +8 -0
  481. package/lib/v1/Accordion/Accordion.js +38 -19
  482. package/lib/v1/Accordion/AccordionItem.js +23 -13
  483. package/lib/v1/Accordion/index.js +3 -0
  484. package/lib/v1/Accordion/props/propTypes.js +3 -0
  485. package/lib/v1/Animation/Animation.js +24 -100
  486. package/lib/v1/Animation/props/propTypes.js +3 -0
  487. package/lib/v1/Animation/utils.js +94 -0
  488. package/lib/v1/AppContainer/AppContainer.js +46 -17
  489. package/lib/v1/AppContainer/props/propTypes.js +3 -0
  490. package/lib/v1/Avatar/Avatar.js +68 -32
  491. package/lib/v1/Avatar/props/propTypes.js +3 -0
  492. package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
  493. package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
  494. package/lib/v1/Button/Button.js +32 -22
  495. package/lib/v1/Button/props/defaultProps.js +2 -0
  496. package/lib/v1/Button/props/propTypes.js +3 -0
  497. package/lib/v1/Buttongroup/Buttongroup.js +13 -5
  498. package/lib/v1/Buttongroup/props/propTypes.js +3 -0
  499. package/lib/v1/Card/Card.js +78 -44
  500. package/lib/v1/Card/index.js +4 -0
  501. package/lib/v1/Card/props/propTypes.js +3 -0
  502. package/lib/v1/CheckBox/CheckBox.js +52 -41
  503. package/lib/v1/CheckBox/props/propTypes.js +3 -0
  504. package/lib/v1/DateTime/CalendarView.js +89 -48
  505. package/lib/v1/DateTime/DateTime.js +246 -158
  506. package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
  507. package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
  508. package/lib/v1/DateTime/DateWidget.js +352 -251
  509. package/lib/v1/DateTime/DaysRow.js +28 -5
  510. package/lib/v1/DateTime/Time.js +75 -32
  511. package/lib/v1/DateTime/YearView.js +76 -27
  512. package/lib/v1/DateTime/index.js +2 -0
  513. package/lib/v1/DateTime/props/propTypes.js +11 -1
  514. package/lib/v1/DropBox/DropBox.js +45 -21
  515. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  516. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
  517. package/lib/v1/DropBox/props/defaultProps.js +8 -4
  518. package/lib/v1/DropBox/props/propTypes.js +10 -4
  519. package/lib/v1/DropDown/DropDown.js +23 -3
  520. package/lib/v1/DropDown/DropDownHeading.js +20 -13
  521. package/lib/v1/DropDown/DropDownItem.js +26 -11
  522. package/lib/v1/DropDown/DropDownSearch.js +28 -16
  523. package/lib/v1/DropDown/DropDownSeparator.js +7 -1
  524. package/lib/v1/DropDown/props/propTypes.js +10 -4
  525. package/lib/v1/Heading/Heading.js +19 -14
  526. package/lib/v1/Heading/props/propTypes.js +3 -0
  527. package/lib/v1/Label/Label.js +22 -14
  528. package/lib/v1/Label/props/propTypes.js +3 -0
  529. package/lib/v1/Layout/Box.js +35 -15
  530. package/lib/v1/Layout/Container.js +33 -14
  531. package/lib/v1/Layout/index.js +3 -0
  532. package/lib/v1/Layout/props/propTypes.js +3 -0
  533. package/lib/v1/ListItem/ListContainer.js +55 -30
  534. package/lib/v1/ListItem/ListItem.js +53 -38
  535. package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
  536. package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
  537. package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
  538. package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
  539. package/lib/v1/ListItem/index.js +7 -0
  540. package/lib/v1/ListItem/props/propTypes.js +6 -4
  541. package/lib/v1/Modal/Modal.js +46 -9
  542. package/lib/v1/Modal/props/propTypes.js +3 -0
  543. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
  544. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
  545. package/lib/v1/MultiSelect/EmptyState.js +45 -24
  546. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  547. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  548. package/lib/v1/MultiSelect/MultiSelect.js +335 -216
  549. package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
  550. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
  551. package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
  552. package/lib/v1/MultiSelect/Suggestions.js +64 -32
  553. package/lib/v1/MultiSelect/index.js +5 -0
  554. package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
  555. package/lib/v1/MultiSelect/props/propTypes.js +14 -4
  556. package/lib/v1/PopOver/PopOver.js +71 -40
  557. package/lib/v1/PopOver/props/propTypes.js +3 -0
  558. package/lib/v1/Popup/Popup.js +158 -81
  559. package/lib/v1/Provider/AvatarSize.js +4 -0
  560. package/lib/v1/Provider/Config.js +2 -0
  561. package/lib/v1/Provider/CssProvider.js +4 -0
  562. package/lib/v1/Provider/IdProvider.js +17 -6
  563. package/lib/v1/Provider/LibraryContext.js +35 -15
  564. package/lib/v1/Provider/LibraryContextInit.js +4 -0
  565. package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
  566. package/lib/v1/Provider/ZindexProvider.js +15 -3
  567. package/lib/v1/Provider/index.js +5 -0
  568. package/lib/v1/Radio/Radio.js +42 -32
  569. package/lib/v1/Radio/props/propTypes.js +3 -0
  570. package/lib/v1/Responsive/CustomResponsive.js +73 -29
  571. package/lib/v1/Responsive/RefWrapper.js +17 -11
  572. package/lib/v1/Responsive/ResizeComponent.js +62 -36
  573. package/lib/v1/Responsive/ResizeObserver.js +24 -10
  574. package/lib/v1/Responsive/Responsive.js +80 -30
  575. package/lib/v1/Responsive/index.js +4 -0
  576. package/lib/v1/Responsive/props/propTypes.js +3 -0
  577. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
  578. package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
  579. package/lib/v1/Ribbon/Ribbon.js +14 -7
  580. package/lib/v1/Ribbon/props/propTypes.js +3 -0
  581. package/lib/v1/RippleEffect/RippleEffect.js +17 -7
  582. package/lib/v1/RippleEffect/props/propTypes.js +3 -0
  583. package/lib/v1/Select/GroupSelect.js +229 -130
  584. package/lib/v1/Select/Select.js +297 -214
  585. package/lib/v1/Select/SelectWithAvatar.js +102 -56
  586. package/lib/v1/Select/SelectWithIcon.js +131 -76
  587. package/lib/v1/Select/index.js +5 -0
  588. package/lib/v1/Select/props/defaultProps.js +5 -4
  589. package/lib/v1/Select/props/propTypes.js +10 -4
  590. package/lib/v1/Stencils/Stencils.js +13 -3
  591. package/lib/v1/Stencils/props/propTypes.js +3 -0
  592. package/lib/v1/Switch/Switch.js +38 -25
  593. package/lib/v1/Switch/props/propTypes.js +3 -0
  594. package/lib/v1/Tab/Tab.js +40 -27
  595. package/lib/v1/Tab/TabContent.js +12 -5
  596. package/lib/v1/Tab/TabContentWrapper.js +16 -8
  597. package/lib/v1/Tab/TabWrapper.js +37 -19
  598. package/lib/v1/Tab/Tabs.js +170 -83
  599. package/lib/v1/Tab/index.js +6 -0
  600. package/lib/v1/Tab/props/propTypes.js +3 -0
  601. package/lib/v1/Tab/v1Tab.module.css +14 -14
  602. package/lib/v1/Tab/v1Tabs.module.css +22 -22
  603. package/lib/v1/Tag/Tag.js +50 -32
  604. package/lib/v1/Tag/props/propTypes.js +3 -0
  605. package/lib/v1/TextBox/TextBox.js +70 -47
  606. package/lib/v1/TextBox/props/propTypes.js +6 -4
  607. package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
  608. package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
  609. package/lib/v1/Textarea/Textarea.js +45 -28
  610. package/lib/v1/Textarea/props/propTypes.js +3 -0
  611. package/lib/v1/Tooltip/Tooltip.js +94 -31
  612. package/lib/v1/Tooltip/props/propTypes.js +3 -0
  613. package/lib/v1/Typography/Typography.js +26 -15
  614. package/lib/v1/Typography/css/Typography.module.css +31 -31
  615. package/lib/v1/Typography/css/cssJSLogic.js +25 -20
  616. package/lib/v1/Typography/props/propTypes.js +3 -0
  617. package/lib/v1/Typography/utils/index.js +1 -0
  618. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
  619. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  620. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
  621. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  622. package/lib/v1/semantic/Button/Button.js +24 -18
  623. package/lib/v1/semantic/Button/props/propTypes.js +3 -0
  624. package/lib/v1/semantic/index.js +2 -0
  625. package/package.json +2 -2
  626. package/result.json +1 -1
  627. package/.DS_Store +0 -0
@@ -2,18 +2,18 @@
2
2
  import React from 'react';
3
3
  import { DateWidget_propTypes } from './props/propTypes';
4
4
  import { DateWidget_defaultProps } from './props/defaultProps';
5
-
6
5
  /**** Components ****/
6
+
7
7
  import DateTime from './DateTime';
8
8
  import Popup from '../Popup/Popup';
9
9
  import { Icon } from '@zohodesk/icons';
10
10
  import { Container } from '../Layout';
11
11
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
12
-
13
12
  /**** CSS ****/
14
- import style from './DateWidget.module.css';
15
13
 
14
+ import style from './DateWidget.module.css';
16
15
  /**** Methods ****/
16
+
17
17
  import validator from './validator';
18
18
  import { formatDate } from '../utils/datetime/common';
19
19
  import { getIsSupportedKey, arrayIsNotEqual } from './dateFormatUtils';
@@ -23,11 +23,11 @@ import { getChangedMonth } from './dateFormatUtils/monthChange';
23
23
  import { getChangedYear } from './dateFormatUtils/yearChange';
24
24
  import { getChangedHour, getChangedMinute, getChangedNoon } from './dateFormatUtils/timeChange';
25
25
  import { getIsEmptyValue } from '../utils/Common';
26
-
27
26
  /** * Constants ** */
28
- import { INVALID_DATE, i18nShortMonths, i18nMonths } from './constants';
29
27
 
28
+ import { INVALID_DATE, i18nShortMonths, i18nMonths } from './constants';
30
29
  /* eslint-disable react/no-unused-prop-types */
30
+
31
31
  /* eslint css-modules/no-unused-class: [0, { markAsUsed: 'inputLine'] }] */
32
32
 
33
33
  class DateWidgetComponent extends React.Component {
@@ -71,9 +71,12 @@ class DateWidgetComponent extends React.Component {
71
71
  this.oldFocusOrder = '';
72
72
  this.focusOrder = '';
73
73
  this.oldKeyDownAction = ''; //'Arrow' || 'valueTyped'
74
+
74
75
  this.keyDownAction = ''; //'Arrow' || 'valueTyped'
76
+
75
77
  this.isMouseDown = false;
76
78
  }
79
+
77
80
  componentDidMount() {
78
81
  const {
79
82
  validation
@@ -81,9 +84,11 @@ class DateWidgetComponent extends React.Component {
81
84
  const {
82
85
  selected
83
86
  } = this.state;
87
+
84
88
  if (validation && validation.validate) {
85
89
  this.validateOnSelect(selected, this.props);
86
90
  }
91
+
87
92
  const {
88
93
  displayText,
89
94
  selected: newSelected
@@ -94,6 +99,7 @@ class DateWidgetComponent extends React.Component {
94
99
  });
95
100
  this.handleSelectionRangeDetails(this.props);
96
101
  }
102
+
97
103
  componentDidUpdate(prevProps, prevState) {
98
104
  const {
99
105
  selected,
@@ -115,9 +121,11 @@ class DateWidgetComponent extends React.Component {
115
121
  is24Hour,
116
122
  isHideCurrentYear
117
123
  } = this.props;
124
+
118
125
  if (validation && validation.validate) {
119
126
  this.validateOnSelect(selected, this.props);
120
127
  }
128
+
121
129
  if (value !== prevProps.value || dateFormat !== prevProps.dateFormat || is24Hour !== prevProps.is24Hour || isHideCurrentYear !== prevProps.isHideCurrentYear) {
122
130
  const {
123
131
  displayText,
@@ -127,6 +135,7 @@ class DateWidgetComponent extends React.Component {
127
135
  selected,
128
136
  displayText
129
137
  });
138
+
130
139
  if (value !== INVALID_DATE) {
131
140
  this.setState({
132
141
  day: '',
@@ -140,27 +149,28 @@ class DateWidgetComponent extends React.Component {
140
149
  });
141
150
  }
142
151
  }
152
+
143
153
  if (prevProps.isPopupReady !== isPopupReady) {
144
154
  if (isPopupReady) {
145
155
  this.resetLocalDate && this.resetLocalDate();
146
156
  }
147
157
  }
158
+
148
159
  const haveLocalValue = [day, month, year, hour, minute, noon].some(value => !getIsEmptyValue(value));
160
+
149
161
  if (isDateEdited !== haveLocalValue) {
150
162
  this.setState({
151
163
  isDateEdited: haveLocalValue
152
164
  });
153
165
  }
166
+
154
167
  if (value !== prevProps.value || dateFormat !== prevProps.dateFormat || is24Hour !== prevProps.is24Hour || arrayIsNotEqual([day, month, year, hour, minute, noon], [prevState.day, prevState.month, prevState.year, prevState.hour, prevState.minute, prevState.noon])) {
155
168
  this.handleSelectionRangeDetails(this.props);
156
- }
169
+ } // if (stateFocusOrder !== prevState.stateFocusOrder) {
157
170
 
158
- // if (stateFocusOrder !== prevState.stateFocusOrder) {
159
171
 
160
172
  isFocused && !getIsEmptyValue(stateFocusOrder) && this.handleSelection(stateFocusOrder);
161
- this.handleBlurSelectionRange(stateFocusOrder, prevState.stateFocusOrder);
162
- // }
163
-
173
+ this.handleBlurSelectionRange(stateFocusOrder, prevState.stateFocusOrder); // }
164
174
  // if (prevProps.isPopupOpen !== isPopupOpen) {
165
175
  // if (!isPopupOpen) {
166
176
  // this.valueInput && this.valueInput.focus({preventScroll:true});
@@ -175,18 +185,21 @@ class DateWidgetComponent extends React.Component {
175
185
  closePopupOnly,
176
186
  validation
177
187
  } = this.props;
188
+
178
189
  if (validation && validation.validateOn) {
179
190
  const {
180
191
  selected
181
192
  } = this.state;
182
193
  this.validateOnSelect(selected, this.props);
183
194
  }
195
+
184
196
  onSelect && onSelect(userZoneSelectedTime, id);
185
197
  this.valueInput && this.valueInput.focus({
186
198
  preventScroll: true
187
199
  });
188
200
  closePopupOnly(e);
189
201
  }
202
+
190
203
  validateOnSelect(value, props) {
191
204
  const defaultCheckPropsRules = ['required'];
192
205
  const defaultValidateRules = ['required'];
@@ -197,6 +210,7 @@ class DateWidgetComponent extends React.Component {
197
210
  onFailValidation
198
211
  } = props;
199
212
  const targetTag = this.elementRef;
213
+
200
214
  if (validation) {
201
215
  //validateOn won't work here ...
202
216
  const newValidation = validator.combinePropsValidation(this.props, defaultType, 'onSelect', validation, defaultCheckPropsRules, defaultValidateRules);
@@ -210,6 +224,7 @@ class DateWidgetComponent extends React.Component {
210
224
  onPassValidation && onPassValidation(value, targetTag);
211
225
  }
212
226
  }
227
+
213
228
  handleTogglePopup(e, isOpenOnly) {
214
229
  const {
215
230
  togglePopup,
@@ -217,6 +232,7 @@ class DateWidgetComponent extends React.Component {
217
232
  isPopupOpen,
218
233
  removeClose
219
234
  } = this.props;
235
+
220
236
  if (isOpenOnly) {
221
237
  if (!isPopupOpen) {
222
238
  togglePopup(e, `${defaultPosition}Right`);
@@ -224,8 +240,10 @@ class DateWidgetComponent extends React.Component {
224
240
  removeClose(e);
225
241
  }
226
242
  }
243
+
227
244
  !isOpenOnly && togglePopup(e, `${defaultPosition}Right`);
228
245
  }
246
+
229
247
  handleSelectionRangeDetails(props) {
230
248
  const {
231
249
  timeZone,
@@ -242,9 +260,8 @@ class DateWidgetComponent extends React.Component {
242
260
  minute,
243
261
  noon
244
262
  } = this.state;
245
- const selected = value === INVALID_DATE ? '' : value;
263
+ const selected = value === INVALID_DATE ? '' : value; //New UI Changes
246
264
 
247
- //New UI Changes
248
265
  const dateFormatDetails = getDateFormatDetails(dateFormat, {
249
266
  isHideCurrentYear: false,
250
267
  value,
@@ -273,6 +290,7 @@ class DateWidgetComponent extends React.Component {
273
290
  newDateFormat
274
291
  });
275
292
  }
293
+
276
294
  handleGetDisplayText(props) {
277
295
  const {
278
296
  timeZone,
@@ -293,19 +311,24 @@ class DateWidgetComponent extends React.Component {
293
311
  } = dateFormatDetails;
294
312
  let displayText = '';
295
313
  const selected = value === INVALID_DATE ? '' : value;
314
+
296
315
  if (selected) {
297
316
  let format = newDateFormat,
298
- convertedValue = getDateText(value, isDateTime, timeZone);
317
+ convertedValue = getDateText(value, isDateTime, timeZone);
318
+
299
319
  if (isDateTime) {
300
320
  format = `${newDateFormat} ${is24Hour ? 'HH:mm' : 'hh:mm A'}`;
301
321
  }
322
+
302
323
  displayText = formatDate(convertedValue, format);
303
324
  }
325
+
304
326
  return {
305
327
  displayText,
306
328
  selected
307
329
  };
308
330
  }
331
+
309
332
  handleKeyDown(e) {
310
333
  const {
311
334
  keyCode
@@ -318,12 +341,14 @@ class DateWidgetComponent extends React.Component {
318
341
  cantEditOnPopupOpen
319
342
  } = this.props;
320
343
  const isAllowedDateType = this.handleGetAllowedType();
344
+
321
345
  if (isPopupOpen) {
322
346
  if (keyCode === 9 && !isAllowedDateType) {
323
347
  //on tab click popup close
324
348
  closePopupOnly(e);
325
- }
326
- // ~~~~~~~ handle date navigation in dateTime popup ~~~~~
349
+ } // ~~~~~~~ handle date navigation in dateTime popup ~~~~~
350
+
351
+
327
352
  if (isAllowedDateType) {
328
353
  cantEditOnPopupOpen && this.handleDateType(e);
329
354
  }
@@ -339,6 +364,7 @@ class DateWidgetComponent extends React.Component {
339
364
  }
340
365
  }
341
366
  }
367
+
342
368
  getValueInputRef(el) {
343
369
  const {
344
370
  getRef
@@ -346,11 +372,13 @@ class DateWidgetComponent extends React.Component {
346
372
  this.valueInput = el;
347
373
  getRef && getRef(el);
348
374
  }
375
+
349
376
  handleFocus() {
350
377
  const isAllowedDateType = this.handleGetAllowedType();
351
378
  const {
352
379
  isMouseDown
353
380
  } = this;
381
+
354
382
  if (isAllowedDateType && !isMouseDown) {
355
383
  const {
356
384
  dateFormatSelection
@@ -377,11 +405,13 @@ class DateWidgetComponent extends React.Component {
377
405
  isFocused: true
378
406
  });
379
407
  }
408
+
380
409
  const {
381
410
  onFocus
382
411
  } = this.props;
383
412
  onFocus && onFocus();
384
413
  }
414
+
385
415
  handleBlur() {
386
416
  this.focusOrder = '';
387
417
  this.oldFocusOrder = '';
@@ -389,9 +419,7 @@ class DateWidgetComponent extends React.Component {
389
419
  this.keyDownAction = '';
390
420
  this.setState({
391
421
  isFocused: false
392
- });
393
-
394
- // const { valueInput } = this;
422
+ }); // const { valueInput } = this;
395
423
  // document.getSelection().removeAllRanges();
396
424
  // valueInput && valueInput.setSelectionRange(0, 0);
397
425
 
@@ -400,6 +428,7 @@ class DateWidgetComponent extends React.Component {
400
428
  } = this.props;
401
429
  onBlur && onBlur();
402
430
  }
431
+
403
432
  handleGetMethods(methods) {
404
433
  const {
405
434
  getMethods
@@ -414,15 +443,18 @@ class DateWidgetComponent extends React.Component {
414
443
  this.DateTimeYearViewToggle = toggleYearView;
415
444
  getMethods && getMethods(methods);
416
445
  }
446
+
417
447
  handleDateType(e) {
418
448
  const {
419
449
  keyCode,
420
450
  shiftKey
421
451
  } = e;
422
452
  const input = e.target;
453
+
423
454
  if (getIsSupportedKey(e)) {
424
455
  e.preventDefault();
425
456
  }
457
+
426
458
  const {
427
459
  isDateTime,
428
460
  timeZone,
@@ -482,6 +514,7 @@ class DateWidgetComponent extends React.Component {
482
514
  } = order[focusedOrder] || {};
483
515
  this.oldFocusOrder = this.focusOrder;
484
516
  this.focusOrder = focusedOrder;
517
+
485
518
  if (keyCode === 38 || keyCode === 40) {
486
519
  //up arrow && down arrow
487
520
  this.oldKeyDownAction = this.keyDownAction;
@@ -490,6 +523,7 @@ class DateWidgetComponent extends React.Component {
490
523
  this.oldKeyDownAction = this.keyDownAction;
491
524
  this.keyDownAction = 'valueTyped';
492
525
  }
526
+
493
527
  const focusedOrders = {
494
528
  focusOrder: this.focusOrder,
495
529
  oldFocusOrder: this.oldFocusOrder
@@ -499,13 +533,14 @@ class DateWidgetComponent extends React.Component {
499
533
  keyAction: this.keyDownAction
500
534
  };
501
535
  let newDay = selectedDay,
502
- newMonth = selectedMonth,
503
- newYear = selectedYear,
504
- newHour = selectedHour,
505
- newMinute = selectedMinute,
506
- newNoon = selectedNoon,
507
- isValueChanged = false,
508
- newFocusOrder = focusedOrder;
536
+ newMonth = selectedMonth,
537
+ newYear = selectedYear,
538
+ newHour = selectedHour,
539
+ newMinute = selectedMinute,
540
+ newNoon = selectedNoon,
541
+ isValueChanged = false,
542
+ newFocusOrder = focusedOrder;
543
+
509
544
  if (keyCode === 9 && shiftKey && !getIsEmptyValue(focusedOrder) && focusedOrder !== 0) {
510
545
  e.preventDefault();
511
546
  this.setState({
@@ -594,6 +629,7 @@ class DateWidgetComponent extends React.Component {
594
629
  noon: selectedNoon
595
630
  }, e, focusedOrders, keyActions));
596
631
  }
632
+
597
633
  if (isValueChanged) {
598
634
  const currentValue = {
599
635
  day: newDay,
@@ -603,6 +639,7 @@ class DateWidgetComponent extends React.Component {
603
639
  minute: newMinute,
604
640
  noon: newNoon
605
641
  };
642
+
606
643
  const errorCaseHandle = isEmptyValError => {
607
644
  this.setState(() => ({
608
645
  day: newDay,
@@ -618,12 +655,14 @@ class DateWidgetComponent extends React.Component {
618
655
  const newSelected = isEmptyValError ? '' : INVALID_DATE;
619
656
  value !== newSelected && onSelect && onSelect(newSelected, id);
620
657
  };
658
+
621
659
  const {
622
660
  isError,
623
661
  isEmptyValError
624
662
  } = getIsValidDate(currentValue, isDateTime, {
625
663
  is24Hour
626
664
  });
665
+
627
666
  if (isError) {
628
667
  errorCaseHandle(isEmptyValError);
629
668
  } else {
@@ -638,12 +677,14 @@ class DateWidgetComponent extends React.Component {
638
677
  isDateTime,
639
678
  is24Hour
640
679
  });
680
+
641
681
  if (selectedDateError) {
642
682
  if (errorType === 'MIN') {
643
683
  onError && onError(minErrorText, true);
644
684
  } else if (errorType === 'MAX') {
645
685
  onError && onError(maxErrorText, true);
646
686
  }
687
+
647
688
  errorCaseHandle();
648
689
  } else {
649
690
  this.setState(() => ({
@@ -662,9 +703,11 @@ class DateWidgetComponent extends React.Component {
662
703
  }
663
704
  }
664
705
  }
706
+
665
707
  handleSelection() {
666
708
  let focusOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
667
709
  const isAllowedDateType = this.handleGetAllowedType();
710
+
668
711
  if (isAllowedDateType) {
669
712
  const {
670
713
  dateFormatSelection
@@ -675,18 +718,21 @@ class DateWidgetComponent extends React.Component {
675
718
  let {
676
719
  index
677
720
  } = order[focusOrder] || {};
721
+
678
722
  if (!index) {
679
723
  focusOrder = 0;
680
724
  ({
681
725
  index
682
726
  } = order[focusOrder] || {});
683
727
  }
728
+
684
729
  if (index && this.valueInput) {
685
730
  document.getSelection().removeAllRanges();
686
731
  this.valueInput.setSelectionRange(index[0], index[1]);
687
732
  }
688
733
  }
689
734
  }
735
+
690
736
  handleInputClick(e) {
691
737
  this.isMouseDown = false;
692
738
  const {
@@ -702,12 +748,14 @@ class DateWidgetComponent extends React.Component {
702
748
  } = dateFormatSelection;
703
749
  const focusOrder = clickIndex[selectionEnd] || clickIndex[selectionEnd - 1] || 0;
704
750
  const isAllowedDateType = this.handleGetAllowedType();
751
+
705
752
  if (isAllowedDateType) {
706
753
  this.setState({
707
754
  stateFocusOrder: focusOrder,
708
755
  isFocused: true
709
756
  });
710
757
  }
758
+
711
759
  if (!isAllowedDateType) {
712
760
  this.handleTogglePopup(e);
713
761
  } else {
@@ -716,22 +764,27 @@ class DateWidgetComponent extends React.Component {
716
764
  isReadOnly,
717
765
  isDisabled
718
766
  } = this.props;
767
+
719
768
  if (isPopupOpenOnClick && (!isReadOnly || !isDisabled)) {
720
769
  this.handleTogglePopup(e, true);
721
770
  }
771
+
722
772
  const {
723
773
  isPopupCloseOnClick,
724
774
  isPopupOpen,
725
775
  closePopupOnly
726
776
  } = this.props;
777
+
727
778
  if (isPopupCloseOnClick && !isPopupOpen) {
728
779
  closePopupOnly && closePopupOnly(e);
729
780
  }
730
781
  }
731
782
  }
783
+
732
784
  handleMouseDown() {
733
785
  this.isMouseDown = true;
734
786
  }
787
+
735
788
  handleGetShowValue() {
736
789
  const {
737
790
  day,
@@ -754,6 +807,7 @@ class DateWidgetComponent extends React.Component {
754
807
  timeZone,
755
808
  isPopupOpen
756
809
  } = this.props;
810
+
757
811
  if (isDateEdited || isFocused || isPopupReady || isPopupOpen) {
758
812
  const {
759
813
  day: selectedDay = '',
@@ -788,24 +842,30 @@ class DateWidgetComponent extends React.Component {
788
842
  } else if (displayText) {
789
843
  return displayText;
790
844
  }
845
+
791
846
  const timeFormat = is24Hour ? ' HH:mm' : ' hh:mm --';
792
847
  const dateTimeFormat = isDateTime ? `${newDateFormat}${timeFormat}` : newDateFormat;
793
848
  return dateTimeFormat || '';
794
849
  }
850
+
795
851
  handleGetAllowedType() {
796
852
  const {
797
853
  isReadOnly,
798
854
  isDisabled,
799
855
  isEditable
800
856
  } = this.props;
857
+
801
858
  if (isEditable) {
802
859
  if (isReadOnly || isDisabled) {
803
860
  return false;
804
861
  }
862
+
805
863
  return true;
806
864
  }
865
+
807
866
  return false;
808
867
  }
868
+
809
869
  handleDateClear() {
810
870
  const {
811
871
  id,
@@ -823,8 +883,7 @@ class DateWidgetComponent extends React.Component {
823
883
  stateFocusOrder: 0,
824
884
  isError: false
825
885
  });
826
- value && onSelect && onSelect('', id);
827
- // this.valueInput && this.valueInput.focus({ preventScroll: true });
886
+ value && onSelect && onSelect('', id); // this.valueInput && this.valueInput.focus({ preventScroll: true });
828
887
  }
829
888
 
830
889
  handleDateTimeClear(e) {
@@ -834,16 +893,19 @@ class DateWidgetComponent extends React.Component {
834
893
  } = this.props;
835
894
  closePopupOnly(e);
836
895
  }
896
+
837
897
  handleDateIconClick(e) {
838
898
  this.handleTogglePopup(e);
839
899
  this.valueInput && this.valueInput.focus({
840
900
  preventScroll: true
841
901
  });
842
902
  }
903
+
843
904
  handleBlurSelectionRange() {
844
905
  let focusOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
845
906
  let oldFocusOrder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
846
907
  const isAllowedDateType = this.handleGetAllowedType();
908
+
847
909
  if (isAllowedDateType) {
848
910
  // if (focusOrder !== oldFocusOrder) {
849
911
  const {
@@ -854,26 +916,27 @@ class DateWidgetComponent extends React.Component {
854
916
  } = dateFormatSelection;
855
917
  const {
856
918
  isPopupOpen
857
- } = this.props;
919
+ } = this.props; // const { type: oldFocusedType = '' } = order[oldFocusOrder] || {};
858
920
 
859
- // const { type: oldFocusedType = '' } = order[oldFocusOrder] || {};
860
921
  const {
861
922
  type: focusedType = ''
862
923
  } = order[focusOrder] || {};
863
924
  const {
864
- /*isActive,*/isYearView,
925
+ /*isActive,*/
926
+ isYearView,
865
927
  isMonthOpen: oldIsMonthOpen
866
928
  } = this.getDateTimeStateValues();
867
929
  const yearViewTypes = ['month', 'year'];
868
930
  const isMonthOpen = focusedType === 'month';
931
+
869
932
  if (isPopupOpen) {
870
933
  if (yearViewTypes.indexOf(focusedType) >= 0 && (!isYearView || isMonthOpen !== oldIsMonthOpen)) {
871
934
  this.DateTimeYearViewToggle(true, isMonthOpen);
872
935
  } else if (yearViewTypes.indexOf(focusedType) === -1 && isYearView) {
873
936
  this.DateTimeYearViewToggle(false, false);
874
937
  }
875
- }
876
- // }
938
+ } // }
939
+
877
940
  }
878
941
  }
879
942
 
@@ -1009,14 +1072,14 @@ class DateWidgetComponent extends React.Component {
1009
1072
  onError: onError
1010
1073
  }));
1011
1074
  }
1075
+
1012
1076
  }
1077
+
1013
1078
  DateWidgetComponent.defaultProps = DateWidget_defaultProps;
1014
1079
  DateWidgetComponent.propTypes = DateWidget_propTypes;
1015
1080
  const DateWidget = Popup(DateWidgetComponent);
1016
1081
  DateWidget.defaultProps = DateWidgetComponent.defaultProps;
1017
- DateWidget.propTypes = DateWidgetComponent.propTypes;
1018
-
1019
- // eslint-disable-next-line no-undef
1082
+ DateWidget.propTypes = DateWidgetComponent.propTypes; // eslint-disable-next-line no-undef
1020
1083
  // if (__DOCS__) {
1021
1084
  // DateWidgetComponent.docs = {
1022
1085
  // componentGroup: 'Form Elements',
@@ -14,17 +14,17 @@
14
14
  }
15
15
  .inputLine {
16
16
  position: absolute;
17
- bottom: 0;
17
+ bottom: 0 ;
18
18
  transition: border var(--zd_transition2) linear 0s;
19
19
  border-bottom: 1px solid var(--zdt_datewidget_input_border);
20
20
  }
21
21
  [dir=ltr] .inputLine {
22
- left: 0;
23
- right: 0;
22
+ left: 0 ;
23
+ right: 0 ;
24
24
  }
25
25
  [dir=rtl] .inputLine {
26
- right: 0;
27
- left: 0;
26
+ right: 0 ;
27
+ left: 0 ;
28
28
  }
29
29
  .enabled:hover .inputLine {
30
30
  border-bottom-color: var(--zdt_datewidget_enabled_border);
@@ -1,11 +1,13 @@
1
1
  /* eslint-disable react/forbid-component-props */
2
+
2
3
  /** ** Libraries *** */
3
4
  import React, { PureComponent } from 'react';
4
5
  import { DaysRow_propTypes } from './props/propTypes';
5
6
  /** ** CSS *** */
6
- import style from './DateTime.module.css';
7
7
 
8
+ import style from './DateTime.module.css';
8
9
  /** ** Components *** */
10
+
9
11
  import { Container, Box } from '../Layout';
10
12
  export default class DaysRow extends PureComponent {
11
13
  render() {
@@ -24,5 +26,6 @@ export default class DaysRow extends PureComponent {
24
26
  "aria-label": dayName
25
27
  }, dayNamesShort[index])));
26
28
  }
29
+
27
30
  }
28
31
  DaysRow.propTypes = DaysRow_propTypes;
@@ -1,13 +1,15 @@
1
1
  /* eslint-disable react/forbid-component-props */
2
+
2
3
  /** ** Libraries *** */
3
4
  import React, { PureComponent } from 'react';
4
5
  import { Time_propTypes } from './props/propTypes';
5
6
  import { Time_defaultProps } from './props/defaultProps';
6
7
  /**** Components ****/
8
+
7
9
  import { Container, Box } from '../Layout';
8
10
  import Select from '../Select/Select';
9
-
10
11
  /** ** CSS *** */
12
+
11
13
  import style from './DateTime.module.css';
12
14
  export default class Time extends PureComponent {
13
15
  render() {
@@ -64,9 +66,11 @@ export default class Time extends PureComponent {
64
66
  needResponsive: needResponsive
65
67
  })) : null));
66
68
  }
69
+
67
70
  }
68
71
  Time.propTypes = Time_propTypes;
69
72
  Time.defaultProps = Time_defaultProps;
73
+
70
74
  class Hour extends React.PureComponent {
71
75
  render() {
72
76
  const {
@@ -97,7 +101,9 @@ class Hour extends React.PureComponent {
97
101
  listItemSize: "small"
98
102
  });
99
103
  }
104
+
100
105
  }
106
+
101
107
  class Minute extends React.PureComponent {
102
108
  render() {
103
109
  const {
@@ -128,7 +134,9 @@ class Minute extends React.PureComponent {
128
134
  listItemSize: "small"
129
135
  });
130
136
  }
137
+
131
138
  }
139
+
132
140
  class AmPm extends React.PureComponent {
133
141
  render() {
134
142
  const {
@@ -154,4 +162,5 @@ class AmPm extends React.PureComponent {
154
162
  listItemSize: "small"
155
163
  });
156
164
  }
165
+
157
166
  }