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

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 (352) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +3 -3
  5. package/es/AppContainer/AppContainer.js +13 -5
  6. package/es/Avatar/Avatar.js +23 -11
  7. package/es/AvatarTeam/AvatarTeam.js +3 -3
  8. package/es/Button/Button.js +4 -3
  9. package/es/Buttongroup/Buttongroup.js +3 -3
  10. package/es/Card/Card.js +21 -10
  11. package/es/CheckBox/CheckBox.js +5 -3
  12. package/es/DateTime/CalendarView.js +32 -20
  13. package/es/DateTime/DateTime.js +75 -10
  14. package/es/DateTime/DateTimePopupFooter.js +4 -2
  15. package/es/DateTime/DateTimePopupHeader.js +8 -2
  16. package/es/DateTime/DateWidget.js +98 -35
  17. package/es/DateTime/DaysRow.js +4 -2
  18. package/es/DateTime/Time.js +10 -2
  19. package/es/DateTime/YearView.js +28 -4
  20. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  21. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  22. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  23. package/es/DateTime/common.js +3 -0
  24. package/es/DateTime/constants.js +1 -0
  25. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  26. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  27. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  28. package/es/DateTime/dateFormatUtils/index.js +32 -2
  29. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  30. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  31. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  32. package/es/DateTime/objectUtils.js +14 -20
  33. package/es/DateTime/props/defaultProps.js +2 -1
  34. package/es/DateTime/typeChecker.js +3 -0
  35. package/es/DateTime/validator.js +58 -6
  36. package/es/DropBox/DropBox.js +6 -2
  37. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  38. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  39. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  40. package/es/DropBox/props/defaultProps.js +1 -2
  41. package/es/DropBox/props/propTypes.js +1 -2
  42. package/es/DropDown/DropDown.js +8 -4
  43. package/es/DropDown/DropDownHeading.js +4 -5
  44. package/es/DropDown/DropDownItem.js +6 -0
  45. package/es/DropDown/DropDownSearch.js +4 -0
  46. package/es/DropDown/DropDownSeparator.js +1 -0
  47. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  48. package/es/Heading/Heading.js +2 -3
  49. package/es/Label/Label.js +2 -3
  50. package/es/Layout/Box.js +13 -0
  51. package/es/Layout/Container.js +12 -1
  52. package/es/Layout/index.js +1 -2
  53. package/es/ListItem/ListContainer.js +8 -3
  54. package/es/ListItem/ListItem.js +9 -3
  55. package/es/ListItem/ListItemWithAvatar.js +9 -3
  56. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  57. package/es/ListItem/ListItemWithIcon.js +8 -3
  58. package/es/ListItem/ListItemWithRadio.js +7 -3
  59. package/es/Modal/Modal.js +28 -11
  60. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  61. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  62. package/es/MultiSelect/EmptyState.js +2 -0
  63. package/es/MultiSelect/MultiSelect.js +99 -32
  64. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  65. package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
  66. package/es/MultiSelect/SelectedOptions.js +6 -3
  67. package/es/MultiSelect/Suggestions.js +7 -3
  68. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  69. package/es/MultiSelect/props/propTypes.js +2 -0
  70. package/es/PopOver/PopOver.js +18 -2
  71. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  72. package/es/Popup/Popup.js +77 -24
  73. package/es/Popup/__tests__/Popup.spec.js +17 -5
  74. package/es/Popup/viewPort.js +16 -4
  75. package/es/Provider/IdProvider.js +10 -5
  76. package/es/Provider/LibraryContext.js +6 -4
  77. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  78. package/es/Provider/ZindexProvider.js +9 -2
  79. package/es/Radio/Radio.js +4 -2
  80. package/es/Responsive/CustomResponsive.js +30 -18
  81. package/es/Responsive/RefWrapper.js +6 -7
  82. package/es/Responsive/ResizeComponent.js +35 -25
  83. package/es/Responsive/ResizeObserver.js +26 -6
  84. package/es/Responsive/Responsive.js +34 -20
  85. package/es/Responsive/index.js +1 -3
  86. package/es/Responsive/sizeObservers.js +28 -7
  87. package/es/Responsive/utils/index.js +7 -5
  88. package/es/Responsive/utils/shallowCompare.js +7 -2
  89. package/es/Responsive/windowResizeObserver.js +7 -0
  90. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  91. package/es/Ribbon/Ribbon.js +3 -2
  92. package/es/RippleEffect/RippleEffect.js +1 -3
  93. package/es/Select/GroupSelect.js +58 -14
  94. package/es/Select/Select.js +79 -33
  95. package/es/Select/SelectWithAvatar.js +17 -4
  96. package/es/Select/SelectWithIcon.js +46 -5
  97. package/es/Select/__tests__/Select.spec.js +6 -8
  98. package/es/Select/props/propTypes.js +1 -0
  99. package/es/Stencils/Stencils.js +3 -3
  100. package/es/Switch/Switch.js +5 -3
  101. package/es/Tab/Tab.js +4 -4
  102. package/es/Tab/TabContent.js +1 -0
  103. package/es/Tab/TabContentWrapper.js +2 -0
  104. package/es/Tab/TabWrapper.js +5 -2
  105. package/es/Tab/Tabs.js +54 -7
  106. package/es/Tab/__tests__/Tab.spec.js +1 -3
  107. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  108. package/es/Tag/Tag.js +6 -3
  109. package/es/TextBox/TextBox.js +15 -3
  110. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  111. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  112. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  113. package/es/Textarea/Textarea.js +12 -3
  114. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  115. package/es/Tooltip/Tooltip.js +58 -14
  116. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  117. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  118. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  119. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  120. package/es/semantic/Button/Button.js +3 -2
  121. package/es/utils/Common.js +54 -9
  122. package/es/utils/ContextOptimizer.js +4 -5
  123. package/es/utils/__tests__/debounce.spec.js +2 -2
  124. package/es/utils/constructFullName.js +2 -0
  125. package/es/utils/css/compileClassNames.js +5 -0
  126. package/es/utils/css/mergeStyle.js +7 -6
  127. package/es/utils/css/utils.js +1 -0
  128. package/es/utils/datetime/GMTZones.js +48 -0
  129. package/es/utils/datetime/common.js +31 -7
  130. package/es/utils/debounce.js +5 -1
  131. package/es/utils/dropDownUtils.js +68 -11
  132. package/es/utils/getInitial.js +4 -0
  133. package/es/utils/shallowEqual.js +6 -0
  134. package/lib/Accordion/Accordion.js +42 -18
  135. package/lib/Accordion/AccordionItem.js +40 -18
  136. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  137. package/lib/Accordion/index.js +3 -0
  138. package/lib/Accordion/props/propTypes.js +3 -0
  139. package/lib/Animation/Animation.js +38 -18
  140. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  141. package/lib/Animation/props/propTypes.js +3 -0
  142. package/lib/AppContainer/AppContainer.js +56 -21
  143. package/lib/AppContainer/props/propTypes.js +3 -0
  144. package/lib/Avatar/Avatar.js +78 -38
  145. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  146. package/lib/Avatar/props/propTypes.js +3 -0
  147. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  148. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  149. package/lib/AvatarTeam/props/propTypes.js +3 -0
  150. package/lib/Button/Button.js +31 -20
  151. package/lib/Button/css/cssJSLogic.js +18 -17
  152. package/lib/Button/index.js +3 -0
  153. package/lib/Button/props/defaultProps.js +2 -0
  154. package/lib/Button/props/propTypes.js +3 -0
  155. package/lib/Buttongroup/Buttongroup.js +32 -12
  156. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  157. package/lib/Buttongroup/props/propTypes.js +3 -0
  158. package/lib/Card/Card.js +102 -46
  159. package/lib/Card/__tests__/Card.spec.js +10 -1
  160. package/lib/Card/index.js +4 -0
  161. package/lib/Card/props/propTypes.js +3 -0
  162. package/lib/CheckBox/CheckBox.js +71 -47
  163. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  164. package/lib/CheckBox/props/propTypes.js +3 -0
  165. package/lib/DateTime/CalendarView.js +82 -42
  166. package/lib/DateTime/DateTime.js +246 -158
  167. package/lib/DateTime/DateTimePopupFooter.js +31 -8
  168. package/lib/DateTime/DateTimePopupHeader.js +48 -17
  169. package/lib/DateTime/DateWidget.js +352 -250
  170. package/lib/DateTime/DaysRow.js +27 -5
  171. package/lib/DateTime/Time.js +73 -32
  172. package/lib/DateTime/YearView.js +77 -28
  173. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  174. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  175. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  176. package/lib/DateTime/common.js +6 -0
  177. package/lib/DateTime/constants.js +1 -0
  178. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  179. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  180. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  181. package/lib/DateTime/dateFormatUtils/index.js +74 -16
  182. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  183. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  184. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  185. package/lib/DateTime/index.js +2 -0
  186. package/lib/DateTime/objectUtils.js +24 -20
  187. package/lib/DateTime/props/defaultProps.js +2 -1
  188. package/lib/DateTime/props/propTypes.js +11 -1
  189. package/lib/DateTime/typeChecker.js +4 -0
  190. package/lib/DateTime/validator.js +73 -10
  191. package/lib/DropBox/DropBox.js +34 -10
  192. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  193. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  194. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  195. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  196. package/lib/DropBox/__tests__/DropBox.spec.js +6 -2
  197. package/lib/DropBox/css/cssJSLogic.js +3 -1
  198. package/lib/DropBox/props/defaultProps.js +8 -4
  199. package/lib/DropBox/props/propTypes.js +10 -4
  200. package/lib/DropDown/DropDown.js +52 -8
  201. package/lib/DropDown/DropDownHeading.js +39 -20
  202. package/lib/DropDown/DropDownItem.js +42 -20
  203. package/lib/DropDown/DropDownSearch.js +40 -17
  204. package/lib/DropDown/DropDownSeparator.js +24 -4
  205. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  206. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  207. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  208. package/lib/DropDown/index.js +9 -0
  209. package/lib/DropDown/props/propTypes.js +6 -4
  210. package/lib/Heading/Heading.js +37 -15
  211. package/lib/Heading/props/propTypes.js +3 -0
  212. package/lib/Label/Label.js +39 -19
  213. package/lib/Label/__tests__/Label.spec.js +14 -1
  214. package/lib/Label/props/propTypes.js +3 -0
  215. package/lib/Layout/Box.js +31 -11
  216. package/lib/Layout/Container.js +29 -10
  217. package/lib/Layout/__tests__/Box.spec.js +65 -49
  218. package/lib/Layout/__tests__/Container.spec.js +67 -50
  219. package/lib/Layout/index.js +3 -0
  220. package/lib/Layout/props/propTypes.js +3 -0
  221. package/lib/Layout/utils.js +10 -0
  222. package/lib/ListItem/ListContainer.js +48 -27
  223. package/lib/ListItem/ListItem.js +69 -45
  224. package/lib/ListItem/ListItemWithAvatar.js +75 -48
  225. package/lib/ListItem/ListItemWithCheckBox.js +64 -39
  226. package/lib/ListItem/ListItemWithIcon.js +68 -44
  227. package/lib/ListItem/ListItemWithRadio.js +65 -41
  228. package/lib/ListItem/index.js +7 -0
  229. package/lib/ListItem/props/propTypes.js +6 -4
  230. package/lib/Modal/Modal.js +45 -10
  231. package/lib/Modal/props/propTypes.js +3 -0
  232. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +294 -166
  233. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  234. package/lib/MultiSelect/EmptyState.js +45 -24
  235. package/lib/MultiSelect/MultiSelect.js +323 -206
  236. package/lib/MultiSelect/MultiSelectHeader.js +30 -8
  237. package/lib/MultiSelect/MultiSelectWithAvatar.js +105 -63
  238. package/lib/MultiSelect/SelectedOptions.js +43 -17
  239. package/lib/MultiSelect/Suggestions.js +64 -32
  240. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  241. package/lib/MultiSelect/index.js +5 -0
  242. package/lib/MultiSelect/props/defaultProps.js +2 -0
  243. package/lib/MultiSelect/props/propTypes.js +5 -0
  244. package/lib/PopOver/PopOver.js +95 -49
  245. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  246. package/lib/PopOver/index.js +4 -0
  247. package/lib/PopOver/props/propTypes.js +3 -0
  248. package/lib/Popup/Popup.js +158 -81
  249. package/lib/Popup/__tests__/Popup.spec.js +43 -8
  250. package/lib/Popup/viewPort.js +28 -14
  251. package/lib/Provider/AvatarSize.js +4 -0
  252. package/lib/Provider/Config.js +2 -0
  253. package/lib/Provider/CssProvider.js +4 -0
  254. package/lib/Provider/IdProvider.js +17 -6
  255. package/lib/Provider/LibraryContext.js +35 -15
  256. package/lib/Provider/LibraryContextInit.js +4 -0
  257. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  258. package/lib/Provider/ZindexProvider.js +15 -3
  259. package/lib/Provider/index.js +5 -0
  260. package/lib/Radio/Radio.js +61 -38
  261. package/lib/Radio/__tests__/Radiospec.js +9 -5
  262. package/lib/Radio/props/propTypes.js +3 -0
  263. package/lib/Responsive/CustomResponsive.js +73 -29
  264. package/lib/Responsive/RefWrapper.js +17 -11
  265. package/lib/Responsive/ResizeComponent.js +62 -36
  266. package/lib/Responsive/ResizeObserver.js +24 -10
  267. package/lib/Responsive/Responsive.js +80 -30
  268. package/lib/Responsive/index.js +4 -0
  269. package/lib/Responsive/props/propTypes.js +3 -0
  270. package/lib/Responsive/sizeObservers.js +53 -17
  271. package/lib/Responsive/utils/index.js +11 -3
  272. package/lib/Responsive/utils/shallowCompare.js +11 -2
  273. package/lib/Responsive/windowResizeObserver.js +8 -0
  274. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  275. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  276. package/lib/Ribbon/Ribbon.js +33 -13
  277. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  278. package/lib/Ribbon/props/propTypes.js +3 -0
  279. package/lib/RippleEffect/RippleEffect.js +18 -10
  280. package/lib/RippleEffect/props/propTypes.js +3 -0
  281. package/lib/Select/GroupSelect.js +229 -130
  282. package/lib/Select/Select.js +290 -209
  283. package/lib/Select/SelectWithAvatar.js +102 -56
  284. package/lib/Select/SelectWithIcon.js +132 -76
  285. package/lib/Select/__tests__/Select.spec.js +133 -91
  286. package/lib/Select/index.js +5 -0
  287. package/lib/Select/props/defaultProps.js +5 -4
  288. package/lib/Select/props/propTypes.js +4 -0
  289. package/lib/Stencils/Stencils.js +29 -10
  290. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  291. package/lib/Stencils/props/propTypes.js +3 -0
  292. package/lib/Switch/Switch.js +57 -34
  293. package/lib/Switch/props/propTypes.js +3 -0
  294. package/lib/Tab/Tab.js +40 -27
  295. package/lib/Tab/TabContent.js +12 -5
  296. package/lib/Tab/TabContentWrapper.js +13 -6
  297. package/lib/Tab/TabWrapper.js +37 -19
  298. package/lib/Tab/Tabs.js +171 -91
  299. package/lib/Tab/__tests__/Tab.spec.js +67 -58
  300. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  301. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  302. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  303. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  304. package/lib/Tab/index.js +6 -0
  305. package/lib/Tab/props/propTypes.js +3 -0
  306. package/lib/Tag/Tag.js +72 -43
  307. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  308. package/lib/Tag/props/propTypes.js +3 -0
  309. package/lib/TextBox/TextBox.js +85 -59
  310. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  311. package/lib/TextBox/props/propTypes.js +6 -4
  312. package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
  313. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  314. package/lib/TextBoxIcon/props/propTypes.js +3 -0
  315. package/lib/Textarea/Textarea.js +54 -29
  316. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  317. package/lib/Textarea/props/propTypes.js +3 -0
  318. package/lib/Tooltip/Tooltip.js +94 -31
  319. package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
  320. package/lib/Tooltip/props/propTypes.js +3 -0
  321. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  322. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  323. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  324. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  325. package/lib/VelocityAnimation/index.js +3 -0
  326. package/lib/css.js +40 -0
  327. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  328. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  329. package/lib/index.js +57 -0
  330. package/lib/semantic/Button/Button.js +42 -22
  331. package/lib/semantic/Button/props/propTypes.js +3 -0
  332. package/lib/semantic/index.js +2 -0
  333. package/lib/utils/Common.js +110 -18
  334. package/lib/utils/ContextOptimizer.js +16 -10
  335. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  336. package/lib/utils/__tests__/debounce.spec.js +3 -2
  337. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  338. package/lib/utils/constructFullName.js +13 -4
  339. package/lib/utils/css/compileClassNames.js +6 -0
  340. package/lib/utils/css/mergeStyle.js +10 -7
  341. package/lib/utils/css/utils.js +8 -0
  342. package/lib/utils/datetime/GMTZones.js +55 -0
  343. package/lib/utils/datetime/common.js +52 -7
  344. package/lib/utils/debounce.js +6 -1
  345. package/lib/utils/dropDownUtils.js +175 -59
  346. package/lib/utils/dummyFunction.js +2 -0
  347. package/lib/utils/getHTMLFontSize.js +1 -0
  348. package/lib/utils/getInitial.js +6 -0
  349. package/lib/utils/index.js +4 -0
  350. package/lib/utils/scrollTo.js +2 -0
  351. package/lib/utils/shallowEqual.js +8 -0
  352. package/package.json +1 -1
@@ -6,11 +6,12 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
6
6
  which
7
7
  } = event;
8
8
  const {
9
- day = '' /*month = '', year = ''*/
9
+ day = ''
10
+ /*month = '', year = ''*/
11
+
10
12
  } = values;
11
13
  let isChanged = false;
12
- let newDay = Number.parseInt(day) || 0;
13
- // const newMonth = Number.parseInt(month) || 0;
14
+ let newDay = Number.parseInt(day) || 0; // const newMonth = Number.parseInt(month) || 0;
14
15
  // const newYear = Number.parseInt(year) || 0;
15
16
 
16
17
  const {
@@ -20,8 +21,11 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
20
21
  const isNewType = getIsNewValueType(focusOrders, keyActions);
21
22
  const {
22
23
  startPoint,
23
- endPoint /*getDayEnd(newMonth, newYear);*/
24
+ endPoint
25
+ /*getDayEnd(newMonth, newYear);*/
26
+
24
27
  } = getDayDetails();
28
+
25
29
  if (keyCode === 38) {
26
30
  //up arrow
27
31
  if (newDay === endPoint || !newDay) {
@@ -44,15 +48,19 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
44
48
  const keyString = String.fromCharCode(which);
45
49
  let newValue = isNewType ? keyString : day.toString() + keyString;
46
50
  newValue = Number.parseInt(newValue);
51
+
47
52
  if (isNewType) {
48
53
  isChanged = true;
54
+
49
55
  if (newValue * 10 > endPoint) {
50
56
  newFocusOrder += 1;
51
57
  }
58
+
52
59
  newDay = newValue;
53
60
  } else {
54
61
  isChanged = true;
55
62
  newFocusOrder += 1;
63
+
56
64
  if (newValue > endPoint) {
57
65
  newDay = endPoint;
58
66
  } else if (!newValue) {
@@ -65,6 +73,7 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
65
73
  isChanged = true;
66
74
  newDay = '';
67
75
  }
76
+
68
77
  return {
69
78
  day: newDay,
70
79
  isChanged,
@@ -2,11 +2,11 @@
2
2
 
3
3
  /** * Libraries ** */
4
4
  import datetime from '@zohodesk/datetimejs';
5
-
6
5
  /** * Methods ** */
7
- import { getMonthEnd } from '../../utils/datetime/common';
8
6
 
7
+ import { getMonthEnd } from '../../utils/datetime/common';
9
8
  /** * Constants ** */
9
+
10
10
  import { flags, INVALID_DATE } from '../constants';
11
11
  export function convertYearToTwoDigit(year) {
12
12
  return parseInt(year.toString().slice(-2));
@@ -15,6 +15,7 @@ export function addZero() {
15
15
  let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
16
16
  let length = arguments.length > 1 ? arguments[1] : undefined;
17
17
  let newValue = value.toString();
18
+
18
19
  for (let i = 0; i < length; i++) {
19
20
  if (newValue.length < length) {
20
21
  newValue = `0${newValue}`;
@@ -22,16 +23,19 @@ export function addZero() {
22
23
  break;
23
24
  }
24
25
  }
26
+
25
27
  return newValue;
26
28
  }
27
29
  export function getDayEnd(month, year) {
28
30
  month -= 1;
29
31
  const monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
32
+
30
33
  if (month && year) {
31
34
  return getMonthEnd(month, year);
32
35
  } else if (month) {
33
36
  return monthend[month];
34
37
  }
38
+
35
39
  return 31;
36
40
  }
37
41
  export function getIsNumberTyped(event) {
@@ -41,15 +45,18 @@ export function getIsNumberTyped(event) {
41
45
  metaKey,
42
46
  shiftKey
43
47
  } = event;
48
+
44
49
  if (keyCode >= 48 && keyCode <= 57 && !ctrlKey && !metaKey && !shiftKey) {
45
50
  return true;
46
51
  }
52
+
47
53
  return false;
48
54
  }
49
55
  export function getIsDeleteTyped(keyCode) {
50
56
  if (keyCode === 8) {
51
57
  return true;
52
58
  }
59
+
53
60
  return false;
54
61
  }
55
62
  export function getIsNewValueType(focusOrders, keyActions) {
@@ -78,6 +85,7 @@ export function getMonthDetails() {
78
85
  export function getYearDetails(yearLength) {
79
86
  const dateObj = new Date();
80
87
  const year = dateObj.getFullYear();
88
+
81
89
  if (yearLength === 2) {
82
90
  return {
83
91
  startPoint: 0,
@@ -85,6 +93,7 @@ export function getYearDetails(yearLength) {
85
93
  currentYear: year
86
94
  };
87
95
  }
96
+
88
97
  return {
89
98
  startPoint: 1850,
90
99
  endPoint: 9999,
@@ -98,9 +107,11 @@ export function convertTwoDigitToYear() {
98
107
  let year = dateObj.getFullYear();
99
108
  const digitValueStr = addZero(digitValue.toString(), 2);
100
109
  year = selectedYear ? selectedYear : year;
110
+
101
111
  if (digitValueStr && digitValueStr.length <= 2) {
102
112
  return parseInt(year.toString().slice(0, 2) + digitValueStr);
103
113
  }
114
+
104
115
  return digitValue;
105
116
  }
106
117
  export function getHourDetails(is24Hour) {
@@ -115,10 +126,12 @@ export function getHourSuggestions(is24Hour) {
115
126
  endPoint
116
127
  } = getHourDetails(is24Hour);
117
128
  const hourArr = [];
129
+
118
130
  for (let hour = startPoint; hour <= endPoint; hour++) {
119
131
  const htxt = addZeroIfNeeded(hour);
120
132
  hourArr.push(htxt);
121
133
  }
134
+
122
135
  return hourArr;
123
136
  }
124
137
  export function getMinuteDetails() {
@@ -133,10 +146,12 @@ export function getMinuteSuggestions() {
133
146
  endPoint
134
147
  } = getMinuteDetails();
135
148
  const minArr = [];
149
+
136
150
  for (let minute = startPoint; minute <= endPoint; minute++) {
137
151
  const mtxt = addZeroIfNeeded(minute);
138
152
  minArr.push(mtxt);
139
153
  }
154
+
140
155
  return minArr;
141
156
  }
142
157
  export function addZeroIfNeeded(value) {
@@ -146,12 +161,14 @@ export function getIsNoonValueTyped(event) {
146
161
  const {
147
162
  keyCode
148
163
  } = event;
164
+
149
165
  if (keyCode === 65 || keyCode === 77 || keyCode === 80) {
150
166
  //A -65
151
167
  //M -77
152
168
  //P -80
153
169
  return true;
154
170
  }
171
+
155
172
  return false;
156
173
  }
157
174
  export function getNoonDetails() {
@@ -159,32 +176,42 @@ export function getNoonDetails() {
159
176
  allowedValues: ['AM', 'PM']
160
177
  };
161
178
  }
179
+
162
180
  function getIsArrowTyped(keyCode) {
163
181
  const arrowKeycodes = [37, 38, 39, 40];
182
+
164
183
  if (arrowKeycodes.indexOf(keyCode) >= 0) {
165
184
  return true;
166
185
  }
186
+
167
187
  return false;
168
188
  }
189
+
169
190
  export function getIsSupportedKey(event) {
170
191
  const {
171
192
  keyCode
172
193
  } = event;
194
+
173
195
  if (getIsArrowTyped(keyCode) || getIsDeleteTyped(keyCode) || getIsNumberTyped(event) || getIsNoonValueTyped(event)) {
174
196
  return true;
175
197
  }
198
+
176
199
  return false;
177
200
  }
178
201
  export function arrayIsNotEqual(a, b) {
179
202
  return a.some((val, index) => val !== b[index]);
180
203
  }
204
+
181
205
  function getIsEmptyValue(value, startPoint, endPoint) {
182
206
  const newValue = parseInt(value) || 0;
207
+
183
208
  if (newValue >= startPoint && newValue <= endPoint) {
184
209
  return false;
185
210
  }
211
+
186
212
  return true;
187
213
  }
214
+
188
215
  export function getIsEmptyHour(value, is24Hour) {
189
216
  const {
190
217
  startPoint,
@@ -206,6 +233,7 @@ export function getIsCurrentYear(_ref) {
206
233
  timeZone
207
234
  } = _ref;
208
235
  let isCurrentYear = false;
236
+
209
237
  if (value && value !== INVALID_DATE) {
210
238
  const dateObj = isDateTime ? datetime.toDate(datetime.tz.utcToTz(value, timeZone)) : datetime.toDate(value);
211
239
  const currentDateObj = new Date();
@@ -213,6 +241,7 @@ export function getIsCurrentYear(_ref) {
213
241
  const selectedYear = dateObj.getFullYear();
214
242
  isCurrentYear = currentYear === selectedYear;
215
243
  }
244
+
216
245
  return {
217
246
  isCurrentYear
218
247
  };
@@ -225,6 +254,7 @@ export function removeYearPattern(dateFormatArr, patternArr) {
225
254
  const {
226
255
  type
227
256
  } = flags[val];
257
+
228
258
  if (type === 'year') {
229
259
  yearIndex = index;
230
260
  } else {
@@ -23,6 +23,7 @@ export function getChangedMonth(values, event, focusOrders, keyActions) {
23
23
  startPoint,
24
24
  endPoint
25
25
  } = getMonthDetails();
26
+
26
27
  if (keyCode === 38) {
27
28
  //up arrow
28
29
  if (newMonth === endPoint || !newMonth) {
@@ -45,15 +46,19 @@ export function getChangedMonth(values, event, focusOrders, keyActions) {
45
46
  const keyString = String.fromCharCode(which);
46
47
  let newValue = isNewType ? keyString : month.toString() + keyString;
47
48
  newValue = Number.parseInt(newValue);
49
+
48
50
  if (isNewType) {
49
51
  isChanged = true;
52
+
50
53
  if (newValue * 10 > endPoint) {
51
54
  newFocusOrder += 1;
52
55
  }
56
+
53
57
  newMonth = newValue;
54
58
  } else {
55
59
  isChanged = true;
56
60
  newFocusOrder += 1;
61
+
57
62
  if (newValue > endPoint) {
58
63
  newMonth = endPoint;
59
64
  } else if (!newValue) {
@@ -66,12 +71,15 @@ export function getChangedMonth(values, event, focusOrders, keyActions) {
66
71
  isChanged = true;
67
72
  newMonth = '';
68
73
  }
74
+
69
75
  const dayEnd = getDayEnd(newMonth, newYear);
70
76
  let dayChanged = false;
77
+
71
78
  if (newDay && newDay > dayEnd) {
72
79
  dayChanged = true;
73
80
  newDay = dayEnd;
74
81
  }
82
+
75
83
  return {
76
84
  day: dayChanged ? newDay : day,
77
85
  month: newMonth,
@@ -23,6 +23,7 @@ export function getChangedHour(values, event, focusOrders, keyActions) {
23
23
  startPoint,
24
24
  endPoint
25
25
  } = getHourDetails(is24Hour);
26
+
26
27
  if (keyCode === 38) {
27
28
  //up arrow
28
29
  if (newHour === endPoint || getIsEmptyHour(newHour, is24Hour)) {
@@ -45,15 +46,19 @@ export function getChangedHour(values, event, focusOrders, keyActions) {
45
46
  const keyString = String.fromCharCode(which);
46
47
  let newValue = isNewType ? keyString : hour.toString() + keyString;
47
48
  newValue = Number.parseInt(newValue);
49
+
48
50
  if (isNewType) {
49
51
  isChanged = true;
52
+
50
53
  if (newValue * 10 > endPoint) {
51
54
  newFocusOrder += 1;
52
55
  }
56
+
53
57
  newHour = newValue;
54
58
  } else {
55
59
  isChanged = true;
56
60
  newFocusOrder += 1;
61
+
57
62
  if (newValue > endPoint) {
58
63
  newHour = endPoint;
59
64
  } else if (!newValue) {
@@ -66,6 +71,7 @@ export function getChangedHour(values, event, focusOrders, keyActions) {
66
71
  isChanged = true;
67
72
  newHour = '';
68
73
  }
74
+
69
75
  return {
70
76
  hour: newHour,
71
77
  isChanged,
@@ -92,6 +98,7 @@ export function getChangedMinute(values, event, focusOrders, keyActions) {
92
98
  startPoint,
93
99
  endPoint
94
100
  } = getMinuteDetails();
101
+
95
102
  if (keyCode === 38) {
96
103
  //up arrow
97
104
  if (newMinute === endPoint || isEmptyMinute) {
@@ -114,15 +121,19 @@ export function getChangedMinute(values, event, focusOrders, keyActions) {
114
121
  const keyString = String.fromCharCode(which);
115
122
  let newValue = isNewType ? keyString : minute.toString() + keyString;
116
123
  newValue = Number.parseInt(newValue);
124
+
117
125
  if (isNewType) {
118
126
  isChanged = true;
127
+
119
128
  if (newValue * 10 > endPoint) {
120
129
  newFocusOrder += 1;
121
130
  }
131
+
122
132
  newMinute = newValue;
123
133
  } else {
124
134
  isChanged = true;
125
135
  newFocusOrder += 1;
136
+
126
137
  if (newValue > endPoint) {
127
138
  newMinute = endPoint;
128
139
  } else {
@@ -133,13 +144,16 @@ export function getChangedMinute(values, event, focusOrders, keyActions) {
133
144
  isChanged = true;
134
145
  newMinute = '';
135
146
  }
147
+
136
148
  return {
137
149
  minute: newMinute,
138
150
  isChanged,
139
151
  focusOrder: newFocusOrder
140
152
  };
141
153
  }
142
- export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
154
+ export function getChangedNoon(values, event, focusOrders
155
+ /*keyActions*/
156
+ ) {
143
157
  const {
144
158
  keyCode,
145
159
  which
@@ -152,9 +166,7 @@ export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
152
166
  const {
153
167
  focusOrder
154
168
  } = focusOrders;
155
- const newFocusOrder = focusOrder;
156
-
157
- // const isNewType = getIsNewValueType(focusOrders, keyActions);
169
+ const newFocusOrder = focusOrder; // const isNewType = getIsNewValueType(focusOrders, keyActions);
158
170
 
159
171
  const {
160
172
  allowedValues
@@ -162,6 +174,7 @@ export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
162
174
  const [startPoint] = allowedValues;
163
175
  const endPoint = allowedValues[allowedValues.length - 1];
164
176
  const currentNoonIndex = allowedValues.indexOf(newNoon);
177
+
165
178
  if (keyCode === 38) {
166
179
  //up arrow
167
180
  if (newNoon === endPoint || !newNoon) {
@@ -181,11 +194,11 @@ export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
181
194
  newNoon = allowedValues[currentNoonIndex - 1];
182
195
  }
183
196
  } else if (getIsNoonValueTyped(event)) {
184
- const keyString = String.fromCharCode(which);
197
+ const keyString = String.fromCharCode(which); // let newValue = isNewType ? keyString : noon.toString() + keyString;
185
198
 
186
- // let newValue = isNewType ? keyString : noon.toString() + keyString;
187
199
  const newValue = keyString;
188
200
  const needChangeNoon = newNoon.indexOf(newValue) === -1 ? true : false;
201
+
189
202
  if (needChangeNoon) {
190
203
  let newValueIndex = currentNoonIndex;
191
204
  allowedValues.some((val, index) => {
@@ -193,8 +206,10 @@ export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
193
206
  newValueIndex = index;
194
207
  return true;
195
208
  }
209
+
196
210
  return false;
197
211
  });
212
+
198
213
  if (currentNoonIndex !== newValueIndex) {
199
214
  isChanged = true;
200
215
  newNoon = allowedValues[newValueIndex];
@@ -204,6 +219,7 @@ export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
204
219
  isChanged = true;
205
220
  newNoon = '';
206
221
  }
222
+
207
223
  return {
208
224
  noon: newNoon,
209
225
  isChanged,
@@ -15,16 +15,17 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
15
15
  day = '',
16
16
  month = ''
17
17
  } = values;
18
- let isChanged = false;
18
+ let isChanged = false; //Year Two Digit case
19
19
 
20
- //Year Two Digit case
21
20
  const {
22
21
  length: yearLength
23
22
  } = yearInfo;
24
23
  const oldYear = year; // For get Centuries
24
+
25
25
  if (yearLength === 2) {
26
26
  year = convertYearToTwoDigit(year).toString();
27
27
  }
28
+
28
29
  let newDay = Number.parseInt(day) || 0;
29
30
  const newMonth = Number.parseInt(month) || 0;
30
31
  let newYear = Number.parseInt(year) || 0;
@@ -38,6 +39,7 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
38
39
  endPoint,
39
40
  currentYear
40
41
  } = getYearDetails(yearLength);
42
+
41
43
  if (keyCode === 38) {
42
44
  //up arrow
43
45
  if (newYear === endPoint) {
@@ -67,14 +69,17 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
67
69
  let newValue = isNewType ? keyString : year.toString() + keyString;
68
70
  const newValueString = newValue || '';
69
71
  newValue = Number.parseInt(newValue);
72
+
70
73
  if (isNewType) {
71
74
  isChanged = true;
72
75
  newYear = newValue;
73
76
  } else {
74
77
  isChanged = true;
78
+
75
79
  if (newValue * 10 > endPoint) {
76
80
  newFocusOrder += 1;
77
81
  }
82
+
78
83
  if (newValue > endPoint) {
79
84
  // newYear = endPoint;
80
85
  newYear = currentYear;
@@ -93,15 +98,19 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
93
98
  isChanged = true;
94
99
  newYear = '';
95
100
  }
101
+
96
102
  if (yearLength === 2) {
97
103
  newYear = convertTwoDigitToYear(newYear, oldYear);
98
104
  }
105
+
99
106
  const dayEnd = getDayEnd(newMonth, newYear);
100
107
  let dayChanged = false;
108
+
101
109
  if (newDay && newDay > dayEnd) {
102
110
  dayChanged = true;
103
111
  newDay = dayEnd;
104
112
  }
113
+
105
114
  return {
106
115
  day: dayChanged ? newDay : day,
107
116
  year: newYear,
@@ -4,56 +4,50 @@ export const clone = (a, b, c, d, e, f) => {
4
4
  };
5
5
  export const extract = (obj, keys, target) => {
6
6
  target = target || {};
7
+
7
8
  for (var i in obj) {
8
9
  if (keys.indexOf(i) < 0) continue;
9
10
  if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
10
11
  target[i] = obj[i];
11
12
  }
13
+
12
14
  return target;
13
15
  };
14
16
  export const omit = (obj, keys, target) => {
15
17
  target = target || {};
18
+
16
19
  for (var i in obj) {
17
20
  if (keys.indexOf(i) >= 0) continue;
18
21
  if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
19
22
  target[i] = obj[i];
20
23
  }
24
+
21
25
  return target;
22
26
  };
23
27
  export const equals = (x, y) => {
24
- if (x === y) return true;
25
- // if both x and y are null or undefined and exactly the same
28
+ if (x === y) return true; // if both x and y are null or undefined and exactly the same
26
29
 
27
- if (x == null && y != null || x != null && y == null) return false;
28
- //break if not same null or undefined
30
+ if (x == null && y != null || x != null && y == null) return false; //break if not same null or undefined
29
31
 
30
- if (!(x instanceof Object) || !(y instanceof Object)) return false;
31
- // if they are not strictly equal, they both need to be Objects
32
+ if (!(x instanceof Object) || !(y instanceof Object)) return false; // if they are not strictly equal, they both need to be Objects
32
33
 
33
- if (x.constructor !== y.constructor) return false;
34
- // they must have the exact same prototype chain, the closest we can do is
34
+ if (x.constructor !== y.constructor) return false; // they must have the exact same prototype chain, the closest we can do is
35
35
  // test there constructor.
36
36
 
37
37
  for (var p in x) {
38
- if (!x.hasOwnProperty(p)) continue;
39
- // other properties were tested using x.constructor === y.constructor
38
+ if (!x.hasOwnProperty(p)) continue; // other properties were tested using x.constructor === y.constructor
40
39
 
41
- if (!y.hasOwnProperty(p)) return false;
42
- // allows to compare x[ p ] and y[ p ] when set to undefined
40
+ if (!y.hasOwnProperty(p)) return false; // allows to compare x[ p ] and y[ p ] when set to undefined
43
41
 
44
- if (x[p] === y[p]) continue;
45
- // if they have the same strict value or identity then they are equal
42
+ if (x[p] === y[p]) continue; // if they have the same strict value or identity then they are equal
46
43
 
47
- if (typeof x[p] !== 'object') return false;
48
- // Numbers, Strings, Functions, Booleans must be strictly equal
44
+ if (typeof x[p] !== 'object') return false; // Numbers, Strings, Functions, Booleans must be strictly equal
49
45
 
50
- if (!equals(x[p], y[p])) return false;
51
- // Objects and Arrays must be tested recursively
46
+ if (!equals(x[p], y[p])) return false; // Objects and Arrays must be tested recursively
52
47
  }
53
48
 
54
49
  for (p in y) {
55
- if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false;
56
- // allows x[ p ] to be set to undefined
50
+ if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false; // allows x[ p ] to be set to undefined
57
51
  }
58
52
 
59
53
  return true;
@@ -19,7 +19,8 @@ export const DateTime_defaultProps = {
19
19
  isPadding: false,
20
20
  i18nKeys: {},
21
21
  is24Hour: false,
22
- isDefaultPosition: false
22
+ isDefaultPosition: false,
23
+ customDateFormat: null
23
24
  };
24
25
  export const DateWidget_defaultProps = {
25
26
  borderColor: 'default',
@@ -1,8 +1,10 @@
1
1
  const exports = {};
2
2
  let types = 'Array Object String Date RegExp Function Boolean Number Null Undefined'.split(' ');
3
+
3
4
  let type = function () {
4
5
  return Object.prototype.toString.call(this).slice(8, -1);
5
6
  };
7
+
6
8
  for (let i = types.length; i--;) {
7
9
  /*eslint-disable */
8
10
  exports['is' + types[i]] = function (self) {
@@ -13,4 +15,5 @@ for (let i = types.length; i--;) {
13
15
  }
14
16
  /*eslint-enable */
15
17
 
18
+
16
19
  export default exports;