@zohodesk/components 1.0.0-test-252 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +161 -1
  2. package/assets/Appearance/dark/mode/darkMode.module.css +181 -179
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTAModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +31 -31
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/green/greenDarkCTAModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +30 -30
  8. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +3 -0
  9. package/assets/Appearance/dark/themes/orange/orangeDarkCTAModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +30 -30
  11. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +3 -0
  12. package/assets/Appearance/dark/themes/red/redDarkCTAModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +30 -30
  14. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +3 -0
  15. package/assets/Appearance/dark/themes/yellow/yellowDarkCTAModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +30 -30
  17. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +3 -0
  18. package/assets/Appearance/default/mode/defaultMode.module.css +177 -175
  19. package/assets/Appearance/default/themes/blue/blueDefaultCTAModifyCategory.module.css +452 -0
  20. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +31 -31
  21. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +3 -0
  22. package/assets/Appearance/default/themes/green/greenDefaultCTAModifyCategory.module.css +452 -0
  23. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +30 -30
  24. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +3 -0
  25. package/assets/Appearance/default/themes/orange/orangeDefaultCTAModifyCategory.module.css +452 -0
  26. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +30 -30
  27. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -0
  28. package/assets/Appearance/default/themes/red/redDefaultCTAModifyCategory.module.css +452 -0
  29. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +30 -30
  30. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -0
  31. package/assets/Appearance/default/themes/yellow/yellowDefaultCTAModifyCategory.module.css +452 -0
  32. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +30 -30
  33. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -0
  34. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +182 -180
  35. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTAModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +31 -31
  37. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +3 -0
  38. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTAModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +30 -30
  40. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +3 -0
  41. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTAModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +30 -30
  43. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +3 -0
  44. package/assets/Appearance/pureDark/themes/red/redPureDarkCTAModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +30 -30
  46. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +3 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTAModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +30 -30
  49. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +3 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/defaultContrastLightness.module.css +39 -0
  52. package/assets/Contrast/pureDarkContrastLightness.module.css +39 -0
  53. package/css_error.log +1 -0
  54. package/es/Accordion/Accordion.js +19 -9
  55. package/es/Accordion/AccordionItem.js +13 -8
  56. package/es/Accordion/props/defaultProps.js +6 -2
  57. package/es/Accordion/props/propTypes.js +3 -0
  58. package/es/Animation/Animation.js +10 -9
  59. package/es/AppContainer/AppContainer.js +38 -15
  60. package/es/AppContainer/AppContainer.module.css +2 -2
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +48 -25
  64. package/es/Avatar/Avatar.module.css +59 -18
  65. package/es/Avatar/props/defaultProps.js +4 -1
  66. package/es/Avatar/props/propTypes.js +5 -2
  67. package/es/AvatarTeam/AvatarTeam.js +21 -11
  68. package/es/AvatarTeam/AvatarTeam.module.css +49 -21
  69. package/es/AvatarTeam/props/defaultProps.js +5 -1
  70. package/es/AvatarTeam/props/propTypes.js +5 -1
  71. package/es/Button/Button.js +55 -51
  72. package/{lib/Button → es/Button/css}/Button.module.css +62 -58
  73. package/es/Button/css/cssJSLogic.js +53 -0
  74. package/es/Button/index.js +2 -0
  75. package/es/Button/props/defaultProps.js +3 -1
  76. package/es/Button/props/propTypes.js +6 -2
  77. package/es/Buttongroup/Buttongroup.js +24 -16
  78. package/es/Buttongroup/Buttongroup.module.css +45 -28
  79. package/es/Buttongroup/props/defaultProps.js +3 -1
  80. package/es/Buttongroup/props/propTypes.js +3 -1
  81. package/es/Card/Card.js +48 -26
  82. package/es/Card/props/defaultProps.js +12 -2
  83. package/es/Card/props/propTypes.js +2 -2
  84. package/es/CheckBox/CheckBox.js +13 -9
  85. package/es/CheckBox/CheckBox.module.css +16 -16
  86. package/es/CheckBox/props/propTypes.js +1 -0
  87. package/es/DateTime/CalendarView.js +46 -19
  88. package/es/DateTime/DateTime.js +139 -77
  89. package/es/DateTime/DateTime.module.css +51 -48
  90. package/es/DateTime/DateTimePopupFooter.js +4 -2
  91. package/es/DateTime/DateTimePopupHeader.js +30 -11
  92. package/es/DateTime/DateWidget.js +122 -51
  93. package/es/DateTime/DateWidget.module.css +5 -5
  94. package/es/DateTime/DaysRow.js +6 -3
  95. package/es/DateTime/Time.js +10 -2
  96. package/es/DateTime/YearView.js +41 -9
  97. package/es/DateTime/YearView.module.css +33 -15
  98. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  99. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  100. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  101. package/es/DateTime/common.js +3 -0
  102. package/es/DateTime/constants.js +1 -0
  103. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  104. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  105. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  106. package/es/DateTime/dateFormatUtils/index.js +59 -2
  107. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  108. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  109. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  110. package/es/DateTime/index.js +1 -1
  111. package/es/DateTime/objectUtils.js +14 -20
  112. package/es/DateTime/props/defaultProps.js +2 -1
  113. package/es/DateTime/props/propTypes.js +5 -2
  114. package/es/DateTime/typeChecker.js +3 -0
  115. package/es/DateTime/validator.js +58 -6
  116. package/es/DropBox/DropBox.js +82 -218
  117. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  118. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  119. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  120. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  121. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  122. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  123. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  124. package/es/DropBox/css/DropBox.module.css +59 -0
  125. package/es/DropBox/css/cssJSLogic.js +14 -0
  126. package/es/DropBox/props/defaultProps.js +9 -15
  127. package/es/DropBox/props/propTypes.js +9 -41
  128. package/es/DropDown/DropDown.js +16 -9
  129. package/es/DropDown/DropDown.module.css +2 -2
  130. package/es/DropDown/DropDownHeading.js +18 -11
  131. package/es/DropDown/DropDownHeading.module.css +3 -3
  132. package/es/DropDown/DropDownItem.js +8 -1
  133. package/es/DropDown/DropDownItem.module.css +9 -9
  134. package/es/DropDown/DropDownSearch.js +4 -0
  135. package/es/DropDown/DropDownSeparator.js +1 -0
  136. package/es/DropDown/DropDownSeparator.module.css +2 -2
  137. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  138. package/es/DropDown/index.js +7 -0
  139. package/es/DropDown/props/defaultProps.js +3 -1
  140. package/es/DropDown/props/propTypes.js +2 -1
  141. package/es/Heading/Heading.js +8 -7
  142. package/es/Heading/Heading.module.css +2 -2
  143. package/es/Label/Label.js +14 -9
  144. package/es/Label/Label.module.css +1 -1
  145. package/es/Label/props/defaultProps.js +2 -1
  146. package/es/Label/props/propTypes.js +1 -0
  147. package/es/Layout/Box.js +19 -4
  148. package/es/Layout/Container.js +18 -5
  149. package/es/Layout/Layout.module.css +15 -15
  150. package/es/Layout/index.js +9 -10
  151. package/es/Layout/props/defaultProps.js +6 -2
  152. package/es/Layout/props/propTypes.js +7 -3
  153. package/es/Layout/utils.js +5 -1
  154. package/es/ListItem/ListContainer.js +21 -9
  155. package/es/ListItem/ListItem.js +30 -14
  156. package/es/ListItem/ListItem.module.css +37 -30
  157. package/es/ListItem/ListItemWithAvatar.js +30 -15
  158. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  159. package/es/ListItem/ListItemWithIcon.js +29 -14
  160. package/es/ListItem/ListItemWithRadio.js +22 -10
  161. package/es/ListItem/index.js +6 -0
  162. package/es/ListItem/props/defaultProps.js +18 -6
  163. package/es/ListItem/props/propTypes.js +13 -1
  164. package/es/Modal/Modal.js +35 -17
  165. package/es/MultiSelect/AdvancedGroupMultiSelect.js +100 -20
  166. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  167. package/es/MultiSelect/EmptyState.js +6 -0
  168. package/es/MultiSelect/MultiSelect.js +129 -46
  169. package/es/MultiSelect/MultiSelect.module.css +32 -31
  170. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  171. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  172. package/es/MultiSelect/SelectedOptions.js +6 -3
  173. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  174. package/es/MultiSelect/Suggestions.js +13 -6
  175. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  176. package/es/MultiSelect/index.js +4 -0
  177. package/es/MultiSelect/props/defaultProps.js +11 -4
  178. package/es/MultiSelect/props/propTypes.js +17 -5
  179. package/es/PopOver/PopOver.js +25 -9
  180. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  181. package/es/PopOver/index.js +3 -0
  182. package/es/Popup/Popup.js +80 -31
  183. package/es/Popup/__tests__/Popup.spec.js +17 -5
  184. package/es/Popup/viewPort.js +16 -4
  185. package/es/Provider/AvatarSize.js +1 -0
  186. package/es/Provider/IdProvider.js +16 -10
  187. package/es/Provider/LibraryContext.js +6 -4
  188. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  189. package/es/Provider/ZindexProvider.js +9 -2
  190. package/es/Provider/index.js +4 -0
  191. package/es/Radio/Radio.js +9 -7
  192. package/es/Radio/Radio.module.css +3 -3
  193. package/es/Responsive/CustomResponsive.js +37 -21
  194. package/es/Responsive/RefWrapper.js +6 -7
  195. package/es/Responsive/ResizeComponent.js +35 -25
  196. package/es/Responsive/ResizeObserver.js +26 -6
  197. package/es/Responsive/Responsive.js +34 -20
  198. package/es/Responsive/index.js +9 -8
  199. package/es/Responsive/sizeObservers.js +28 -7
  200. package/es/Responsive/utils/index.js +7 -5
  201. package/es/Responsive/utils/shallowCompare.js +7 -2
  202. package/es/Responsive/windowResizeObserver.js +7 -0
  203. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  204. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  205. package/es/Ribbon/Ribbon.js +21 -15
  206. package/es/Ribbon/Ribbon.module.css +133 -55
  207. package/es/Ribbon/props/defaultProps.js +2 -1
  208. package/es/Ribbon/props/propTypes.js +2 -1
  209. package/es/RippleEffect/RippleEffect.js +6 -7
  210. package/es/Select/GroupSelect.js +71 -23
  211. package/es/Select/Select.js +115 -50
  212. package/es/Select/Select.module.css +23 -23
  213. package/es/Select/SelectWithAvatar.js +31 -12
  214. package/es/Select/SelectWithIcon.js +60 -14
  215. package/es/Select/__tests__/Select.spec.js +6 -8
  216. package/es/Select/index.js +4 -0
  217. package/es/Select/props/defaultProps.js +6 -1
  218. package/es/Select/props/propTypes.js +10 -4
  219. package/es/Stencils/Stencils.js +10 -9
  220. package/es/Stencils/Stencils.module.css +2 -2
  221. package/es/Switch/Switch.js +14 -8
  222. package/es/Switch/Switch.module.css +49 -32
  223. package/es/Switch/props/defaultProps.js +2 -1
  224. package/es/Switch/props/propTypes.js +1 -0
  225. package/es/Tab/Tab.js +14 -11
  226. package/es/Tab/Tab.module.css +14 -15
  227. package/es/Tab/TabContent.js +6 -3
  228. package/es/Tab/TabContentWrapper.js +6 -2
  229. package/es/Tab/TabWrapper.js +9 -4
  230. package/es/Tab/Tabs.js +85 -21
  231. package/es/Tab/Tabs.module.css +36 -40
  232. package/es/Tab/__tests__/Tab.spec.js +4 -12
  233. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  234. package/es/Tab/props/defaultProps.js +10 -5
  235. package/es/Tab/props/propTypes.js +10 -5
  236. package/es/Tag/Tag.js +16 -10
  237. package/es/Tag/Tag.module.css +10 -10
  238. package/es/Tag/props/defaultProps.js +2 -1
  239. package/es/Tag/props/propTypes.js +2 -1
  240. package/es/TextBox/TextBox.js +26 -10
  241. package/es/TextBox/TextBox.module.css +6 -5
  242. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  243. package/es/TextBox/props/defaultProps.js +2 -1
  244. package/es/TextBox/props/propTypes.js +2 -1
  245. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  246. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  247. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  248. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  249. package/es/TextBoxIcon/props/propTypes.js +1 -0
  250. package/es/Textarea/Textarea.js +23 -10
  251. package/es/Textarea/Textarea.module.css +6 -6
  252. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  253. package/es/Textarea/props/defaultProps.js +2 -1
  254. package/es/Textarea/props/propTypes.js +1 -0
  255. package/es/Tooltip/Tooltip.js +67 -21
  256. package/es/Tooltip/Tooltip.module.css +40 -8
  257. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  258. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  259. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  260. package/es/VelocityAnimation/index.js +2 -0
  261. package/es/common/a11y.module.css +4 -0
  262. package/es/common/animation.module.css +8 -8
  263. package/es/common/avatarsizes.module.css +6 -2
  264. package/es/common/basicReset.module.css +3 -3
  265. package/es/common/boxShadow.module.css +34 -0
  266. package/es/common/common.module.css +24 -24
  267. package/es/common/customscroll.module.css +4 -2
  268. package/es/common/reset.module.css +1 -0
  269. package/es/css.js +2 -1
  270. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  271. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  272. package/es/index.js +30 -146
  273. package/es/semantic/Button/Button.js +9 -7
  274. package/es/semantic/Button/semanticButton.module.css +1 -1
  275. package/es/semantic/index.js +1 -0
  276. package/es/utils/Common.js +74 -7
  277. package/es/utils/ContextOptimizer.js +4 -5
  278. package/es/utils/__tests__/debounce.spec.js +2 -2
  279. package/es/utils/constructFullName.js +2 -0
  280. package/es/utils/css/compileClassNames.js +28 -0
  281. package/es/utils/css/mergeStyle.js +57 -0
  282. package/es/utils/css/utils.js +24 -0
  283. package/es/utils/datetime/GMTZones.js +48 -0
  284. package/es/utils/datetime/common.js +31 -7
  285. package/es/utils/debounce.js +5 -1
  286. package/es/utils/dropDownUtils.js +71 -13
  287. package/es/utils/getInitial.js +4 -0
  288. package/es/utils/index.js +3 -0
  289. package/es/utils/shallowEqual.js +6 -0
  290. package/install.md +10 -0
  291. package/lib/Accordion/Accordion.js +50 -18
  292. package/lib/Accordion/AccordionItem.js +47 -20
  293. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  294. package/lib/Accordion/index.js +3 -0
  295. package/lib/Accordion/props/defaultProps.js +6 -2
  296. package/lib/Accordion/props/propTypes.js +6 -0
  297. package/lib/Animation/Animation.js +44 -21
  298. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  299. package/lib/Animation/props/propTypes.js +3 -0
  300. package/lib/AppContainer/AppContainer.js +75 -27
  301. package/lib/AppContainer/AppContainer.module.css +2 -2
  302. package/lib/AppContainer/props/defaultProps.js +3 -1
  303. package/lib/AppContainer/props/propTypes.js +5 -0
  304. package/lib/Avatar/Avatar.js +97 -44
  305. package/lib/Avatar/Avatar.module.css +59 -18
  306. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  307. package/lib/Avatar/props/defaultProps.js +4 -1
  308. package/lib/Avatar/props/propTypes.js +8 -2
  309. package/lib/AvatarTeam/AvatarTeam.js +64 -30
  310. package/lib/AvatarTeam/AvatarTeam.module.css +49 -21
  311. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  312. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  313. package/lib/AvatarTeam/props/propTypes.js +8 -1
  314. package/lib/Button/Button.js +64 -74
  315. package/{es/Button → lib/Button/css}/Button.module.css +62 -58
  316. package/lib/Button/css/cssJSLogic.js +41 -0
  317. package/lib/Button/index.js +23 -0
  318. package/lib/Button/props/defaultProps.js +5 -1
  319. package/lib/Button/props/propTypes.js +11 -3
  320. package/lib/Buttongroup/Buttongroup.js +49 -19
  321. package/lib/Buttongroup/Buttongroup.module.css +45 -28
  322. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  323. package/lib/Buttongroup/props/defaultProps.js +3 -1
  324. package/lib/Buttongroup/props/propTypes.js +6 -1
  325. package/lib/Card/Card.js +119 -55
  326. package/lib/Card/__tests__/Card.spec.js +10 -1
  327. package/lib/Card/index.js +4 -0
  328. package/lib/Card/props/defaultProps.js +16 -4
  329. package/lib/Card/props/propTypes.js +5 -2
  330. package/lib/CheckBox/CheckBox.js +76 -48
  331. package/lib/CheckBox/CheckBox.module.css +16 -16
  332. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  333. package/lib/CheckBox/props/propTypes.js +4 -0
  334. package/lib/DateTime/CalendarView.js +95 -38
  335. package/lib/DateTime/DateTime.js +309 -216
  336. package/lib/DateTime/DateTime.module.css +51 -48
  337. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  338. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  339. package/lib/DateTime/DateWidget.js +370 -260
  340. package/lib/DateTime/DateWidget.module.css +5 -5
  341. package/lib/DateTime/DaysRow.js +28 -3
  342. package/lib/DateTime/Time.js +72 -29
  343. package/lib/DateTime/YearView.js +89 -30
  344. package/lib/DateTime/YearView.module.css +33 -15
  345. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  346. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  347. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  348. package/lib/DateTime/common.js +6 -0
  349. package/lib/DateTime/constants.js +1 -0
  350. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  351. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  352. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  353. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  354. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  355. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  356. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  357. package/lib/DateTime/index.js +3 -1
  358. package/lib/DateTime/objectUtils.js +24 -20
  359. package/lib/DateTime/props/defaultProps.js +2 -1
  360. package/lib/DateTime/props/propTypes.js +21 -2
  361. package/lib/DateTime/typeChecker.js +4 -0
  362. package/lib/DateTime/validator.js +69 -6
  363. package/lib/DropBox/DropBox.js +102 -249
  364. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  365. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  366. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  367. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  368. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  369. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  370. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  371. package/lib/DropBox/css/DropBox.module.css +59 -0
  372. package/lib/DropBox/css/cssJSLogic.js +20 -0
  373. package/lib/DropBox/props/defaultProps.js +20 -17
  374. package/lib/DropBox/props/propTypes.js +22 -43
  375. package/lib/DropDown/DropDown.js +58 -10
  376. package/lib/DropDown/DropDown.module.css +2 -2
  377. package/lib/DropDown/DropDownHeading.js +47 -18
  378. package/lib/DropDown/DropDownHeading.module.css +3 -3
  379. package/lib/DropDown/DropDownItem.js +43 -18
  380. package/lib/DropDown/DropDownItem.module.css +9 -9
  381. package/lib/DropDown/DropDownSearch.js +39 -14
  382. package/lib/DropDown/DropDownSeparator.js +23 -1
  383. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  384. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  385. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  386. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  387. package/lib/DropDown/index.js +65 -0
  388. package/lib/DropDown/props/defaultProps.js +3 -1
  389. package/lib/DropDown/props/propTypes.js +7 -1
  390. package/lib/Heading/Heading.js +42 -16
  391. package/lib/Heading/Heading.module.css +2 -2
  392. package/lib/Heading/props/propTypes.js +3 -0
  393. package/lib/Label/Label.js +47 -19
  394. package/lib/Label/Label.module.css +1 -1
  395. package/lib/Label/__tests__/Label.spec.js +14 -1
  396. package/lib/Label/props/defaultProps.js +2 -1
  397. package/lib/Label/props/propTypes.js +4 -0
  398. package/lib/Layout/Box.js +41 -16
  399. package/lib/Layout/Container.js +39 -15
  400. package/lib/Layout/Layout.module.css +15 -15
  401. package/lib/Layout/__tests__/Box.spec.js +65 -49
  402. package/lib/Layout/__tests__/Container.spec.js +67 -50
  403. package/lib/Layout/index.js +4 -11
  404. package/lib/Layout/props/defaultProps.js +6 -2
  405. package/lib/Layout/props/propTypes.js +10 -3
  406. package/lib/Layout/utils.js +15 -1
  407. package/lib/ListItem/ListContainer.js +61 -34
  408. package/lib/ListItem/ListItem.js +92 -50
  409. package/lib/ListItem/ListItem.module.css +37 -30
  410. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  411. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  412. package/lib/ListItem/ListItemWithIcon.js +92 -50
  413. package/lib/ListItem/ListItemWithRadio.js +83 -42
  414. package/lib/ListItem/index.js +55 -0
  415. package/lib/ListItem/props/defaultProps.js +18 -6
  416. package/lib/ListItem/props/propTypes.js +18 -3
  417. package/lib/Modal/Modal.js +51 -13
  418. package/lib/Modal/props/propTypes.js +3 -0
  419. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -167
  420. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  421. package/lib/MultiSelect/EmptyState.js +48 -21
  422. package/lib/MultiSelect/MultiSelect.js +341 -205
  423. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  424. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  425. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  426. package/lib/MultiSelect/SelectedOptions.js +42 -14
  427. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  428. package/lib/MultiSelect/Suggestions.js +66 -29
  429. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  430. package/lib/MultiSelect/index.js +39 -0
  431. package/lib/MultiSelect/props/defaultProps.js +13 -4
  432. package/lib/MultiSelect/props/propTypes.js +20 -5
  433. package/lib/PopOver/PopOver.js +101 -53
  434. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  435. package/lib/PopOver/index.js +31 -0
  436. package/lib/PopOver/props/propTypes.js +3 -0
  437. package/lib/Popup/Popup.js +158 -83
  438. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  439. package/lib/Popup/viewPort.js +28 -14
  440. package/lib/Provider/AvatarSize.js +5 -0
  441. package/lib/Provider/Config.js +2 -0
  442. package/lib/Provider/CssProvider.js +4 -0
  443. package/lib/Provider/IdProvider.js +23 -12
  444. package/lib/Provider/LibraryContext.js +32 -10
  445. package/lib/Provider/LibraryContextInit.js +4 -0
  446. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  447. package/lib/Provider/ZindexProvider.js +15 -3
  448. package/lib/Provider/index.js +81 -0
  449. package/lib/Radio/Radio.js +65 -40
  450. package/lib/Radio/Radio.module.css +3 -3
  451. package/lib/Radio/__tests__/Radiospec.js +9 -5
  452. package/lib/Radio/props/propTypes.js +3 -0
  453. package/lib/Responsive/CustomResponsive.js +76 -26
  454. package/lib/Responsive/RefWrapper.js +15 -7
  455. package/lib/Responsive/ResizeComponent.js +58 -27
  456. package/lib/Responsive/ResizeObserver.js +23 -6
  457. package/lib/Responsive/Responsive.js +76 -24
  458. package/lib/Responsive/index.js +49 -22
  459. package/lib/Responsive/props/propTypes.js +3 -0
  460. package/lib/Responsive/sizeObservers.js +51 -13
  461. package/lib/Responsive/utils/index.js +11 -3
  462. package/lib/Responsive/utils/shallowCompare.js +11 -2
  463. package/lib/Responsive/windowResizeObserver.js +8 -0
  464. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  465. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  466. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  467. package/lib/Ribbon/Ribbon.js +48 -21
  468. package/lib/Ribbon/Ribbon.module.css +133 -55
  469. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  470. package/lib/Ribbon/props/defaultProps.js +2 -1
  471. package/lib/Ribbon/props/propTypes.js +5 -1
  472. package/lib/RippleEffect/RippleEffect.js +23 -14
  473. package/lib/RippleEffect/props/propTypes.js +3 -0
  474. package/lib/Select/GroupSelect.js +240 -137
  475. package/lib/Select/Select.js +320 -220
  476. package/lib/Select/Select.module.css +23 -23
  477. package/lib/Select/SelectWithAvatar.js +112 -59
  478. package/lib/Select/SelectWithIcon.js +145 -82
  479. package/lib/Select/__tests__/Select.spec.js +131 -89
  480. package/lib/Select/index.js +39 -0
  481. package/lib/Select/props/defaultProps.js +10 -2
  482. package/lib/Select/props/propTypes.js +13 -4
  483. package/lib/Stencils/Stencils.js +35 -13
  484. package/lib/Stencils/Stencils.module.css +2 -2
  485. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  486. package/lib/Stencils/props/propTypes.js +3 -0
  487. package/lib/Switch/Switch.js +64 -35
  488. package/lib/Switch/Switch.module.css +49 -32
  489. package/lib/Switch/props/defaultProps.js +2 -1
  490. package/lib/Switch/props/propTypes.js +4 -0
  491. package/lib/Tab/Tab.js +49 -33
  492. package/lib/Tab/Tab.module.css +14 -15
  493. package/lib/Tab/TabContent.js +15 -6
  494. package/lib/Tab/TabContentWrapper.js +15 -6
  495. package/lib/Tab/TabWrapper.js +37 -17
  496. package/lib/Tab/Tabs.js +193 -94
  497. package/lib/Tab/Tabs.module.css +36 -40
  498. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  499. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  500. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  501. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  502. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  503. package/lib/Tab/index.js +6 -0
  504. package/lib/Tab/props/defaultProps.js +10 -5
  505. package/lib/Tab/props/propTypes.js +13 -5
  506. package/lib/Tag/Tag.js +82 -48
  507. package/lib/Tag/Tag.module.css +10 -10
  508. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  509. package/lib/Tag/props/defaultProps.js +2 -1
  510. package/lib/Tag/props/propTypes.js +5 -1
  511. package/lib/TextBox/TextBox.js +93 -61
  512. package/lib/TextBox/TextBox.module.css +6 -5
  513. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  514. package/lib/TextBox/props/defaultProps.js +2 -1
  515. package/lib/TextBox/props/propTypes.js +6 -1
  516. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  517. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  518. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  519. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  520. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  521. package/lib/Textarea/Textarea.js +63 -32
  522. package/lib/Textarea/Textarea.module.css +6 -6
  523. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  524. package/lib/Textarea/props/defaultProps.js +2 -1
  525. package/lib/Textarea/props/propTypes.js +4 -0
  526. package/lib/Tooltip/Tooltip.js +102 -35
  527. package/lib/Tooltip/Tooltip.module.css +40 -8
  528. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  529. package/lib/Tooltip/props/propTypes.js +3 -0
  530. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  531. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  532. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  533. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  534. package/lib/VelocityAnimation/index.js +23 -0
  535. package/lib/common/a11y.module.css +4 -0
  536. package/lib/common/animation.module.css +8 -8
  537. package/lib/common/avatarsizes.module.css +6 -2
  538. package/lib/common/basicReset.module.css +3 -3
  539. package/lib/common/boxShadow.module.css +34 -0
  540. package/lib/common/common.module.css +24 -24
  541. package/lib/common/customscroll.module.css +4 -2
  542. package/lib/common/reset.module.css +1 -0
  543. package/lib/css.js +42 -1
  544. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  545. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  546. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  547. package/lib/index.js +214 -210
  548. package/lib/semantic/Button/Button.js +47 -24
  549. package/lib/semantic/Button/props/propTypes.js +3 -0
  550. package/lib/semantic/Button/semanticButton.module.css +1 -1
  551. package/lib/semantic/index.js +15 -0
  552. package/lib/utils/Common.js +136 -17
  553. package/lib/utils/ContextOptimizer.js +16 -10
  554. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  555. package/lib/utils/__tests__/debounce.spec.js +3 -2
  556. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  557. package/lib/utils/constructFullName.js +11 -2
  558. package/lib/utils/css/compileClassNames.js +37 -0
  559. package/lib/utils/css/mergeStyle.js +69 -0
  560. package/lib/utils/css/utils.js +41 -0
  561. package/lib/utils/datetime/GMTZones.js +55 -0
  562. package/lib/utils/datetime/common.js +52 -7
  563. package/lib/utils/debounce.js +6 -1
  564. package/lib/utils/dropDownUtils.js +177 -56
  565. package/lib/utils/dummyFunction.js +2 -0
  566. package/lib/utils/getHTMLFontSize.js +1 -0
  567. package/lib/utils/getInitial.js +6 -0
  568. package/lib/utils/index.js +121 -0
  569. package/lib/utils/scrollTo.js +2 -0
  570. package/lib/utils/shallowEqual.js +8 -0
  571. package/package.json +61 -26
  572. package/postPublish.js +8 -0
  573. package/prePublish.js +70 -0
  574. package/docs/external/active-line.js +0 -72
  575. package/docs/external/autorefresh.js +0 -47
  576. package/docs/external/codemirror.js +0 -9681
  577. package/docs/external/css/hopscotch.css +0 -576
  578. package/docs/external/css/styleGuide.css +0 -1100
  579. package/docs/external/css.js +0 -466
  580. package/docs/external/designTokens.js +0 -1
  581. package/docs/external/foldcode.js +0 -152
  582. package/docs/external/format.js +0 -129
  583. package/docs/external/htmlmixed.js +0 -84
  584. package/docs/external/images/bottom.png +0 -0
  585. package/docs/external/images/bottombg.jpg +0 -0
  586. package/docs/external/images/desk.png +0 -0
  587. package/docs/external/images/desklogo.png +0 -0
  588. package/docs/external/images/menu.png +0 -0
  589. package/docs/external/index.html +0 -127
  590. package/docs/external/javascript.js +0 -422
  591. package/docs/external/jsx.js +0 -148
  592. package/docs/external/matchbrackets.js +0 -145
  593. package/docs/external/xml.js +0 -322
  594. package/docs/package.json +0 -41
  595. package/docs/src/index.js +0 -1311
  596. package/es/Button/__tests__/Button.spec.js +0 -190
  597. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  598. package/es/DropBox/DropBox.module.css +0 -406
  599. package/lib/Button/__tests__/Button.spec.js +0 -193
  600. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  601. package/lib/DropBox/DropBox.module.css +0 -406
@@ -0,0 +1,57 @@
1
+ const REPLACER_SYMBOL = '$'; // $ startWith is used for replace the existing style.
2
+ // all other will be append
3
+
4
+ export default function mergeStyle(defaultStyle) {
5
+ let customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6
+ let additionalStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
7
+ // if(!Object.keys(defaultStyle).includes('base')) {
8
+ // throw new Error(`STYLE CUSTOMIZATION RULE - Your style sheet should have "base" class name for customization`);
9
+ // }
10
+ return Object.keys(customStyle).reduce((res, next) => {
11
+ if (next.startsWith(REPLACER_SYMBOL)) {
12
+ let styleValue = customStyle[next];
13
+ let styleName = next.replace(REPLACER_SYMBOL, '');
14
+
15
+ if (!defaultStyle[styleName] && !additionalStyle.includes(styleName)) {
16
+ // return res;
17
+ throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${styleName}" is not available in that component style`);
18
+ }
19
+
20
+ if (additionalStyle.includes(styleName)) {
21
+ res[styleName] = styleValue;
22
+ } else {
23
+ let val = defaultStyle[styleName];
24
+ Object.keys(res).map(keyName => {
25
+ let styleKey = res[keyName];
26
+ let styleClasses = styleKey.split(' ');
27
+ let ind = styleClasses.indexOf(val);
28
+
29
+ if (ind !== -1) {
30
+ styleClasses[ind] = styleValue;
31
+ res[keyName] = styleClasses.join(' ');
32
+ }
33
+ });
34
+ }
35
+ } else if (defaultStyle[next]) {
36
+ let val = defaultStyle[next];
37
+ Object.keys(res).map(keyName => {
38
+ let styleKey = res[keyName];
39
+ let styleClasses = styleKey.split(' ');
40
+ let ind = styleClasses.indexOf(val);
41
+
42
+ if (ind !== -1) {
43
+ styleClasses[ind] = styleClasses[ind] + ' ' + customStyle[next];
44
+ res[keyName] = styleClasses.join(' ');
45
+ }
46
+ });
47
+ } else if (additionalStyle.includes(next)) {
48
+ res[next] = customStyle[next];
49
+ } else if (!defaultStyle[next] && !additionalStyle.includes(next)) {
50
+ // res[next] = customStyle[next];
51
+ throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`);
52
+ }
53
+
54
+ return res;
55
+ }, { ...defaultStyle
56
+ });
57
+ }
@@ -0,0 +1,24 @@
1
+ export const dataTypes = {
2
+ number: 'number',
3
+ array: 'array',
4
+ string: 'string',
5
+ object: 'object',
6
+ bigint: 'bigint',
7
+ symbol: 'symbol',
8
+ undefined: 'undefined',
9
+ function: 'function',
10
+ boolean: 'boolean'
11
+ };
12
+ export const getDataType = data => {
13
+ let typeofData = typeof data;
14
+ let isArrayDataType = Array.isArray(data);
15
+
16
+ if (isArrayDataType) {
17
+ return dataTypes.array;
18
+ } else {
19
+ return dataTypes[typeofData];
20
+ }
21
+ };
22
+ export const isDataTypeOf = (data, type) => {
23
+ return getDataType(data) === type;
24
+ };
@@ -0,0 +1,48 @@
1
+ export const offsetMap = {
2
+ 0: 'GMT+00:00 Africa/Abidjan',
3
+ 44: 'GMT+00:00 Africa/Monrovia',
4
+ 60: 'GMT+01:00 Africa/Bangui',
5
+ 120: 'GMT+02:00 Africa/Blantyre',
6
+ 180: 'GMT+03:00 Africa/Addis_Ababa',
7
+ 210: 'GMT+04:30 Asia/Tehran',
8
+ 240: 'GMT+03:00 Asia/Bahrain',
9
+ 270: 'GMT+04:30 Asia/Kabul',
10
+ 300: 'GMT+05:00 Asia/Aqtau',
11
+ '-330': 'GMT+05:30 Asia/Kolkata',
12
+ 360: 'GMT+06:00 Asia/Dacca',
13
+ 390: 'GMT+06:30 Indian/Cocos',
14
+ 420: 'GMT+07:00 Asia/Bangkok',
15
+ 450: 'GMT+08:00 Asia/Singapore',
16
+ 480: 'GMT+08:00 Asia/Hong_Kong',
17
+ 510: 'GMT+08:00 Asia/Harbin',
18
+ 525: 'GMT+08:45 Australia/Eucla',
19
+ 540: 'GMT+09:00 Asia/Chita',
20
+ 570: 'GMT+09:30 Australia/Adelaide',
21
+ 600: 'GMT+10:00 Antarctica/DumontDUrville',
22
+ 660: 'GMT+11:00 Asia/Magadan',
23
+ 690: 'GMT+11:00 Pacific/Norfolk',
24
+ 720: 'GMT+12:00 Asia/Kamchatka',
25
+ 765: 'GMT+12:45 Pacific/Chatham',
26
+ 780: 'GMT+12:00 Asia/Anadyr',
27
+ 840: 'GMT+14:00 Etc/GMT-14',
28
+ '-60': 'GMT-01:00 Etc/GMT+1',
29
+ '-660': 'GMT-11:00 US/Samoa',
30
+ '-600': 'GMT-04:00 America/Anguilla',
31
+ '-240': 'GMT-04:00 America/Antigua',
32
+ '-180': 'GMT-03:00 America/Araguaina',
33
+ '-300': 'GMT-05:00 America/Atikokan',
34
+ '-480': 'GMT-05:00 America/Bahia_Banderas',
35
+ '-360': 'GMT-06:00 America/Belize',
36
+ '-420': 'GMT-06:00 America/Boise',
37
+ '-540': 'GMT-07:00 America/Dawson',
38
+ '-135': 'GMT-04:00 America/Guyana',
39
+ '-120': 'GMT-02:00 Etc/GMT+2',
40
+ '-150': 'GMT-03:00 America/Paramaribo',
41
+ '-210': 'GMT-04:00 America/Santo_Domingo',
42
+ '-720': 'GMT+12:00 Pacific/Kwajalein',
43
+ '-560': 'GMT+14:00 Pacific/Kiritimati',
44
+ '-510': 'GMT-09:30 Pacific/Marquesas',
45
+ '-630': 'GMT-11:00 Pacific/Niue',
46
+ '-450': 'GMT-08:00 Pacific/Pitcairn',
47
+ '-570': 'GMT-10:00 Pacific/Rarotonga'
48
+ };
@@ -1,3 +1,4 @@
1
+ import { offsetMap } from './GMTZones.js';
1
2
  let dateFormat = {
2
3
  dayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
3
4
  monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
@@ -10,8 +11,15 @@ export function pad(n) {
10
11
  n = `${n}`;
11
12
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
12
13
  }
14
+ export function getTimeOffset() {
15
+ const GMT = new Date();
16
+ const matchingOffset = Object.keys(offsetMap).find(offset => GMT.getTimezoneOffset() === Number(offset));
17
+ return matchingOffset ? offsetMap[matchingOffset].toString().split(' ') : ['', ''];
18
+ }
13
19
  export function formatDate(dateMill, mask) {
14
20
  let date = new Date(dateMill);
21
+ let O = getTimeOffset()[0];
22
+ let Z = getTimeOffset()[1];
15
23
  let d = date.getDate();
16
24
  let D = date.getDay();
17
25
  let m = date.getMonth();
@@ -22,6 +30,7 @@ export function formatDate(dateMill, mask) {
22
30
  let L = date.getMilliseconds();
23
31
  let flags = {
24
32
  d: d,
33
+ O: O,
25
34
  dd: pad(d, 2),
26
35
  ddd: dateFormat.dayNames[D],
27
36
  dddd: dateFormat.dayNames[D + 7],
@@ -49,13 +58,18 @@ export function formatDate(dateMill, mask) {
49
58
  L: pad(Math.round(L / 10)),
50
59
  t: H < 12 ? dateFormat.timeNames[0] : dateFormat.timeNames[1],
51
60
  A: H < 12 ? dateFormat.timeNames[6] : dateFormat.timeNames[7],
52
- T: H < 12 ? dateFormat.timeNames[4] : dateFormat.timeNames[5]
61
+ a: H < 12 ? dateFormat.timeNames[6] : dateFormat.timeNames[7],
62
+ T: H < 12 ? dateFormat.timeNames[4] : dateFormat.timeNames[5],
63
+ Z: Z,
64
+ VV: Z,
65
+ SSS: pad(L, 3)
53
66
  };
54
- let token = /D{1,4}|d{1,4}|M{1,4}|YYYY|yyyy|YY|yy?|([HhmsA])\1?|[LloSZWN]|\[[^\]]*\]|'[^']*'/g;
67
+ let token = /D{1,4}|d{1,4}|M{1,4}|YYYY|yyyy|YY|O|Z|VV|SSS|yy?|([HhmsAa])\1?|[LloSZWN]|\[[^\]]*\]|'[^']*'/g;
55
68
  let dat = mask.replace(token, match => {
56
69
  if (match in flags) {
57
70
  return flags[match];
58
71
  }
72
+
59
73
  return match.slice(1, match.length - 1);
60
74
  });
61
75
  return dat;
@@ -70,6 +84,7 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
70
84
  i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
71
85
  }
72
86
  }
87
+
73
88
  return i18nStr;
74
89
  }
75
90
  export function unescapeUnicode(str) {
@@ -84,25 +99,28 @@ export function getI18NValue(i18n) {
84
99
  if (typeof i18n === 'undefined') {
85
100
  return key => key;
86
101
  }
102
+
87
103
  return (key, values) => {
88
104
  let i18nStr = i18n[key];
105
+
89
106
  if (i18nStr === undefined) {
90
107
  return key;
91
108
  }
109
+
92
110
  i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
93
111
  return unescapeUnicode(i18nStr);
94
112
  };
95
- }
96
-
97
- // function getValues(params = [], diff) {
113
+ } // function getValues(params = [], diff) {
98
114
  // return params.map(param => {
99
115
  // return diff[param];
100
116
  // });
101
117
  // }
118
+
102
119
  export function getI18NInfo(toDateObj, props, diffObj) {
103
120
  let key = null,
104
- values,
105
- text = null;
121
+ values,
122
+ text = null;
123
+
106
124
  if (typeof props === 'function') {
107
125
  let value = props(diffObj1);
108
126
  key = value.key;
@@ -113,6 +131,7 @@ export function getI18NInfo(toDateObj, props, diffObj) {
113
131
  } else if (typeof props === 'string') {
114
132
  text = toDateObj.format(props);
115
133
  }
134
+
116
135
  return {
117
136
  key,
118
137
  values,
@@ -141,12 +160,15 @@ let oneYearInMillis = 31536000000;
141
160
  let oneDayInMillis = 86400000;
142
161
  let oneHourInMillis = 3600000;
143
162
  let oneMinuteInMillis = 60000;
163
+
144
164
  function convertAsNonExponential(number) {
145
165
  if (number.toString().toLowerCase().indexOf('e') !== -1) {
146
166
  return number.toFixed(20);
147
167
  }
168
+
148
169
  return number;
149
170
  }
171
+
150
172
  export function getDiffObj(diff) {
151
173
  diff = Math.abs(diff);
152
174
  let diffYears = diff / oneYearInMillis;
@@ -173,8 +195,10 @@ export function getDiffObj(diff) {
173
195
  export function getMonthEnd(month, year) {
174
196
  let monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
175
197
  let isLeapYear = year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
198
+
176
199
  if (month === 1 && isLeapYear) {
177
200
  return 29;
178
201
  }
202
+
179
203
  return monthend[month];
180
204
  }
@@ -2,16 +2,20 @@ export function debounce(func, wait, immediate) {
2
2
  let timeout;
3
3
  return function () {
4
4
  let context = this,
5
- args = arguments;
5
+ args = arguments;
6
+
6
7
  let later = function () {
7
8
  timeout = null;
9
+
8
10
  if (!immediate) {
9
11
  func.apply(context, args);
10
12
  }
11
13
  };
14
+
12
15
  let callNow = immediate && !timeout;
13
16
  clearTimeout(timeout);
14
17
  timeout = setTimeout(later, wait);
18
+
15
19
  if (callNow) {
16
20
  func.apply(context, args);
17
21
  }
@@ -4,26 +4,43 @@ import { getIsEmptyValue, getSearchString } from './Common';
4
4
  export const dummyArray = [];
5
5
  export const dummyObj = {};
6
6
  export const getOptions = props => props.options || dummyArray;
7
+
7
8
  const getOptionsOrder = props => props.optionsOrder || dummyArray;
9
+
8
10
  const getSelectedOptionsSel = props => props.selectedOptions || dummyArray;
11
+
9
12
  const getSearchStr = props => props.searchStr || '';
13
+
10
14
  export const getValueField = props => props.valueField || '';
11
15
  export const getTextField = props => props.textField || '';
12
16
  export const getImageField = props => props.imageField || '';
13
17
  export const getIconName = props => props.iconName || '';
14
18
  export const getIconSize = props => props.iconSize || '';
15
19
  export const getOptionType = props => props.optionType || '';
20
+
16
21
  const getNeedSearch = props => props.needSearch;
22
+
17
23
  const getIsDefaultSelectValue = props => props.isDefaultSelectValue;
24
+
18
25
  const getSelectedOptionsLength = props => getIsEmptyValue(props.selectedOptionsLength) ? '' : props.selectedOptionsLength;
26
+
19
27
  const getNormalizedFormatOptions = props => props.normalizedFormatOptions || dummyObj;
28
+
20
29
  const getSelectedValue = props => getIsEmptyValue(props.selectedValue) ? '' : props.selectedValue;
30
+
21
31
  const getSelectedFormatOptions = props => props.selectedFormatOptions || dummyObj;
32
+
22
33
  export const getPrefixText = props => props.prefixText || '';
34
+
23
35
  const getIsStartWithSearch = props => props.isStartsWithSearch;
36
+
37
+ const getKeepSelectedOptions = props => props.keepSelectedOptions;
38
+
24
39
  const getDisabledOptions = props => props.disabledOptions || dummyArray;
40
+
25
41
  const getListItemProps = props => props.listItemProps || '';
26
- export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch], (options, selectedOptions, searchStr, needSearch, isStartsWithSearch) => {
42
+
43
+ export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions], (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions) => {
27
44
  const suggestions = [];
28
45
  const suggestionIds = [];
29
46
  options.forEach(option => {
@@ -34,7 +51,8 @@ export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOpti
34
51
  const valueString = getSearchString(value);
35
52
  const searchString = getSearchString(searchStr);
36
53
  const isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : valueString.indexOf(searchString) !== -1 : true;
37
- if (selectedOptions.indexOf(id) === -1 && isMatch) {
54
+
55
+ if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
38
56
  suggestions.push(option);
39
57
  suggestionIds.push(id);
40
58
  }
@@ -48,9 +66,11 @@ export const optionIdGrouping = (id, prefixText) => {
48
66
  if (getIsEmptyValue(id)) {
49
67
  return '';
50
68
  }
69
+
51
70
  if (getIsEmptyValue(prefixText)) {
52
71
  return id;
53
72
  }
73
+
54
74
  const prefixType = typeof prefixText === 'number' ? 'Int' : 'Str';
55
75
  const idType = typeof id === 'number' ? 'Int' : 'Str';
56
76
  return `${prefixType}_${prefixText}_${idType}_${id}`;
@@ -61,15 +81,19 @@ export const extractOptionId = id => {
61
81
  id: ''
62
82
  };
63
83
  }
84
+
64
85
  if (typeof id === 'number') {
65
86
  return {
66
87
  id
67
88
  };
68
89
  }
90
+
69
91
  const splitedOption = id.split && id.split('_');
92
+
70
93
  if (splitedOption.length === 1) {
71
94
  return splitedOption[0];
72
95
  }
96
+
73
97
  if (splitedOption.length === 4) {
74
98
  let [prefixType, prefixText, idType, id] = splitedOption;
75
99
  id = idType === 'Int' ? Number.parseInt(id) : id;
@@ -99,10 +123,10 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
99
123
  } = option;
100
124
  let id = typeof option === 'object' ? option[impValueField || valueField] : option;
101
125
  const value = typeof option === 'object' ? option[impTextField || textField] : option;
102
- const photoURL = typeof option === 'object' ? option[impImageField || imageField] : '';
126
+ const photoURL = typeof option === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
103
127
 
104
- // grouping options (group select/MultiSelect)
105
128
  id = !getIsEmptyValue(id) ? optionIdGrouping(id, prefixText) : '';
129
+
106
130
  if (remvampOptionIds.indexOf(id) === -1 && !getIsEmptyValue(id) && !getIsEmptyValue(value)) {
107
131
  remvampOptionIds.push(id);
108
132
  const optionDetails = {
@@ -110,21 +134,27 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
110
134
  value,
111
135
  optionType: impOptionType || optionType
112
136
  };
137
+
113
138
  if (imageField) {
114
139
  optionDetails.photoURL = photoURL;
115
140
  }
141
+
116
142
  if (impIconName || iconName) {
117
143
  optionDetails.icon = impIconName || iconName;
118
144
  }
145
+
119
146
  if (impIconSize || iconSize) {
120
147
  optionDetails.iconSize = impIconSize || iconSize;
121
148
  }
149
+
122
150
  if (disabledOptions.length) {
123
151
  optionDetails.isDisabled = disabledOptions.indexOf(id) >= 0;
124
152
  }
153
+
125
154
  if (listStyle || listItemProps) {
126
155
  optionDetails.listItemProps = listStyle || listItemProps;
127
156
  }
157
+
128
158
  normalizedFormatOptions[id] = optionDetails;
129
159
  normalizedAllOptions[id] = option;
130
160
  revampOptions.push(optionDetails);
@@ -143,11 +173,13 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
143
173
  const revampSelectedOptions = [];
144
174
  const normalizedSelectedOptions = {};
145
175
  selectedOptionsLength = !getIsEmptyValue(selectedOptionsLength) ? selectedOptionsLength : selectedOptions.length;
176
+
146
177
  for (let i = 0; i < selectedOptionsLength; i++) {
147
178
  const option = selectedOptions[i];
148
179
  const {
149
180
  id
150
181
  } = normalizedFormatOptions[option] || {};
182
+
151
183
  if (revampSelectedOptions.indexOf(id) === -1 && !getIsEmptyValue(id)) {
152
184
  revampSelectedOptions.push(id);
153
185
  output.push(normalizedFormatOptions[option]);
@@ -162,6 +194,7 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
162
194
  revampSelectedOptions.indexOf(option) === -1 ? revampSelectedOptions.push(option) : null;
163
195
  }
164
196
  }
197
+
165
198
  return {
166
199
  formatSelectedOptions: output,
167
200
  normalizedSelectedOptions,
@@ -171,10 +204,12 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
171
204
  export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, getNormalizedFormatOptions, getSelectedValue, getSelectedFormatOptions, getIsDefaultSelectValue, getValueField, getTextField], (optionsOrder, normalizedFormatOptions, selectedValue, selectedFormatOptions, isDefaultSelectValue, valueField, textField) => {
172
205
  let selectedValueIndex = optionsOrder.indexOf(selectedValue);
173
206
  let isSelfValueChanged = false;
207
+
174
208
  if (getIsEmptyValue(selectedValue) && isDefaultSelectValue) {
175
209
  [selectedValue] = optionsOrder;
176
210
  isSelfValueChanged = true;
177
211
  }
212
+
178
213
  const allOptions = Object.assign({}, selectedFormatOptions, normalizedFormatOptions);
179
214
  const details = allOptions[selectedValue];
180
215
  let hoverIndex = selectedValueIndex !== -1 ? selectedValueIndex : 0;
@@ -184,9 +219,8 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
184
219
  let {
185
220
  value: selectedValueText = '',
186
221
  id: selectedId
187
- } = details || dummyObj;
222
+ } = details || dummyObj; //selectedValue is not included in options case
188
223
 
189
- //selectedValue is not included in options case
190
224
  if (getIsEmptyValue(selectedId)) {
191
225
  if (typeof selectedValue === 'object') {
192
226
  const id = selectedValue[valueField];
@@ -204,6 +238,7 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
204
238
  selectedId = selectedValue;
205
239
  }
206
240
  }
241
+
207
242
  return {
208
243
  selected: selectedValueText,
209
244
  hoverIndex,
@@ -212,17 +247,22 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
212
247
  isSelfValueChanged
213
248
  };
214
249
  });
250
+
215
251
  const getObj1 = props => props.obj1 || dummyObj;
252
+
216
253
  const getObj2 = props => props.obj2 || dummyObj;
217
- export const makeObjectConcat = () => createSelector([getObj1, getObj2], (obj1, obj2) => Object.assign({}, obj1, obj2));
218
254
 
255
+ export const makeObjectConcat = () => createSelector([getObj1, getObj2], (obj1, obj2) => Object.assign({}, obj1, obj2));
219
256
  /***** Group Select *****/
257
+
220
258
  const getGroupedOptions = props => props.groupedOptions || dummyArray;
259
+
221
260
  const getFormatOptions = makeFormatOptions();
222
261
  export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions], groupedOptions => {
223
262
  const revampedGroups = [];
224
263
  let allOptionIds = [];
225
264
  let allNormalizedOptions = {}; //all group normalized options
265
+
226
266
  let allNormalizedFormatOptions = {};
227
267
  const groupIds = [];
228
268
  const normalizedGroupedOptions = {};
@@ -234,6 +274,7 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
234
274
  valueField,
235
275
  textField
236
276
  } = group;
277
+
237
278
  if (!getIsEmptyValue(groupId) && groupIds.indexOf(groupId) === -1) {
238
279
  groupIds.push(groupId);
239
280
  normalizedGroupedOptions[groupId] = group;
@@ -248,6 +289,7 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
248
289
  textField,
249
290
  prefixText: groupId
250
291
  });
292
+
251
293
  if (optionsOrder.length) {
252
294
  revampedGroups.push({
253
295
  id: groupId,
@@ -269,7 +311,9 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
269
311
  normalizedGroupedOptions
270
312
  };
271
313
  });
314
+
272
315
  const getGroups = props => props.revampedGroups;
316
+
273
317
  const getFilterSuggestions = makeGetMultiSelectFilterSuggestions();
274
318
  export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGroups, getSearchStr, getNeedSearch, getIsStartWithSearch], (groups, searchStr, needSearch, isStartsWithSearch) => {
275
319
  const suggestionGroups = [];
@@ -287,6 +331,7 @@ export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGrou
287
331
  searchStr,
288
332
  isStartsWithSearch
289
333
  });
334
+
290
335
  if (suggestionIds.length) {
291
336
  suggestionGroups.push(Object.assign({}, group, {
292
337
  options: suggestions
@@ -304,6 +349,7 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
304
349
  return options.reduce((changedOptions, option) => {
305
350
  let newOption;
306
351
  const id = typeof option === 'object' ? option[valueField] : option;
352
+
307
353
  if (typeof option === 'object' && !getIsEmptyValue(id)) {
308
354
  newOption = Object.assign({}, option, {
309
355
  [valueField]: optionIdGrouping(id, prefixText),
@@ -311,9 +357,11 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
311
357
  textField,
312
358
  optionType
313
359
  });
360
+
314
361
  if (imageField) {
315
362
  newOption.imageField = imageField;
316
363
  }
364
+
317
365
  changedOptions.push(newOption);
318
366
  } else if (!getIsEmptyValue(id)) {
319
367
  newOption = {
@@ -327,6 +375,7 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
327
375
  };
328
376
  changedOptions.push(newOption);
329
377
  }
378
+
330
379
  return changedOptions;
331
380
  }, newOptions);
332
381
  });
@@ -337,22 +386,23 @@ export const filterSelectedOptions = function () {
337
386
  disabledOptions = dummyArray
338
387
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
339
388
  // eslint-disable-next-line no-param-reassign
340
- selectedOptions = selectedOptions || dummyArray;
341
- // eslint-disable-next-line no-param-reassign
342
- propSelectedOptions = propSelectedOptions || dummyArray;
343
- // eslint-disable-next-line no-param-reassign
389
+ selectedOptions = selectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
390
+
391
+ propSelectedOptions = propSelectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
392
+
344
393
  disabledOptions = disabledOptions || dummyArray;
345
- const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1);
394
+ const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1); // eslint-disable-next-line max-len
346
395
 
347
- // eslint-disable-next-line max-len
348
396
  const oldValidSelectedOptions = propSelectedOptions.filter(selectedOption => {
349
397
  const isRemoved = selectedOptions.indexOf(selectedOption) === -1;
350
398
  const isDisabled = disabledOptions.indexOf(selectedOption) >= 0;
399
+
351
400
  if (isDisabled) {
352
401
  return true;
353
402
  } else if (isRemoved) {
354
403
  return false;
355
404
  }
405
+
356
406
  return true;
357
407
  });
358
408
  return {
@@ -363,28 +413,36 @@ export const makeGetIsShowClearIcon = () => createSelector([getSelectedOptionsSe
363
413
  let countForShowClear = 2;
364
414
  let enabledOptionsLength = 0;
365
415
  let isShowClearIcon = selectedOptions.length >= countForShowClear;
416
+
366
417
  if (disabledOptions.length) {
367
418
  let isHaveEnabledOptions = false;
368
419
  let isAllDisabled = disabledOptions.length === selectedOptions.length;
420
+
369
421
  if (!isAllDisabled) {
370
422
  isHaveEnabledOptions = selectedOptions.some(option => {
371
423
  let {
372
424
  isDisabled = false
373
425
  } = option || {};
426
+
374
427
  if (!isDisabled) {
375
428
  enabledOptionsLength += 1;
429
+
376
430
  if (enabledOptionsLength === countForShowClear) {
377
431
  return true;
378
432
  }
433
+
379
434
  return false;
380
435
  }
436
+
381
437
  return false;
382
438
  });
383
439
  }
440
+
384
441
  return {
385
442
  isShowClearIcon: isAllDisabled ? !isAllDisabled : isHaveEnabledOptions
386
443
  };
387
444
  }
445
+
388
446
  return {
389
447
  isShowClearIcon
390
448
  };
@@ -2,19 +2,23 @@ export function getInitial() {
2
2
  let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
3
3
  let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4
4
  let initial = '';
5
+
5
6
  if (firstName) {
6
7
  firstName = firstName.trim();
7
8
  initial = firstName[0];
8
9
  }
10
+
9
11
  if (lastName) {
10
12
  lastName = lastName.trim();
11
13
  initial += initial ? lastName[0] : lastName.substring(0, 2);
12
14
  }
15
+
13
16
  return initial ? initial.toUpperCase() : initial;
14
17
  }
15
18
  export function getInitialByPattern(firstName, lastName, pattern) {
16
19
  if (pattern[0] === 'FIRST_NAME') {
17
20
  return getInitial(firstName, lastName);
18
21
  }
22
+
19
23
  return getInitial(lastName, firstName);
20
24
  }
@@ -0,0 +1,3 @@
1
+ export { default as compileClassNames } from './css/compileClassNames';
2
+ export { default as mergeStyle } from './css/mergeStyle';
3
+ export { stopAllEventPropagation, capitalize, getFullName, bytesToSize, getMemSize, checkIsImageFile, getFullDateString, format12Hour, getDateOnly, doAfterScrollEnd, debounce, throttle, getElementSpace, getSearchString, findScrollEnd, isTextSelected } from './Common';
@@ -5,22 +5,28 @@ function is(x, y) {
5
5
  return x !== x && y !== y;
6
6
  }
7
7
  }
8
+
8
9
  export default function shallowEqual(objA, objB) {
9
10
  if (is(objA, objB)) {
10
11
  return true;
11
12
  }
13
+
12
14
  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
13
15
  return false;
14
16
  }
17
+
15
18
  const keysA = Object.keys(objA);
16
19
  const keysB = Object.keys(objB);
20
+
17
21
  if (keysA.length !== keysB.length) {
18
22
  return false;
19
23
  }
24
+
20
25
  for (let i = 0; i < keysA.length; i++) {
21
26
  if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
22
27
  return false;
23
28
  }
24
29
  }
30
+
25
31
  return true;
26
32
  }
package/install.md ADDED
@@ -0,0 +1,10 @@
1
+ - For New :
2
+
3
+ # npm i
4
+ # npm run common_package_build
5
+
6
+ For Update:
7
+
8
+ # npm run download
9
+ # npm run common_package_build
10
+