@zohodesk/components 1.0.0-test-252 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +161 -1
  2. package/assets/Appearance/dark/mode/darkMode.module.css +181 -179
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTAModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +31 -31
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/green/greenDarkCTAModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +30 -30
  8. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +3 -0
  9. package/assets/Appearance/dark/themes/orange/orangeDarkCTAModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +30 -30
  11. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +3 -0
  12. package/assets/Appearance/dark/themes/red/redDarkCTAModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +30 -30
  14. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +3 -0
  15. package/assets/Appearance/dark/themes/yellow/yellowDarkCTAModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +30 -30
  17. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +3 -0
  18. package/assets/Appearance/default/mode/defaultMode.module.css +177 -175
  19. package/assets/Appearance/default/themes/blue/blueDefaultCTAModifyCategory.module.css +452 -0
  20. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +31 -31
  21. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +3 -0
  22. package/assets/Appearance/default/themes/green/greenDefaultCTAModifyCategory.module.css +452 -0
  23. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +30 -30
  24. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +3 -0
  25. package/assets/Appearance/default/themes/orange/orangeDefaultCTAModifyCategory.module.css +452 -0
  26. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +30 -30
  27. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -0
  28. package/assets/Appearance/default/themes/red/redDefaultCTAModifyCategory.module.css +452 -0
  29. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +30 -30
  30. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -0
  31. package/assets/Appearance/default/themes/yellow/yellowDefaultCTAModifyCategory.module.css +452 -0
  32. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +30 -30
  33. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -0
  34. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +182 -180
  35. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTAModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +31 -31
  37. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +3 -0
  38. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTAModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +30 -30
  40. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +3 -0
  41. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTAModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +30 -30
  43. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +3 -0
  44. package/assets/Appearance/pureDark/themes/red/redPureDarkCTAModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +30 -30
  46. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +3 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTAModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +30 -30
  49. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +3 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/defaultContrastLightness.module.css +39 -0
  52. package/assets/Contrast/pureDarkContrastLightness.module.css +39 -0
  53. package/css_error.log +1 -0
  54. package/es/Accordion/Accordion.js +19 -9
  55. package/es/Accordion/AccordionItem.js +13 -8
  56. package/es/Accordion/props/defaultProps.js +6 -2
  57. package/es/Accordion/props/propTypes.js +3 -0
  58. package/es/Animation/Animation.js +10 -9
  59. package/es/AppContainer/AppContainer.js +38 -15
  60. package/es/AppContainer/AppContainer.module.css +2 -2
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +48 -25
  64. package/es/Avatar/Avatar.module.css +59 -18
  65. package/es/Avatar/props/defaultProps.js +4 -1
  66. package/es/Avatar/props/propTypes.js +5 -2
  67. package/es/AvatarTeam/AvatarTeam.js +21 -11
  68. package/es/AvatarTeam/AvatarTeam.module.css +49 -21
  69. package/es/AvatarTeam/props/defaultProps.js +5 -1
  70. package/es/AvatarTeam/props/propTypes.js +5 -1
  71. package/es/Button/Button.js +55 -51
  72. package/{lib/Button → es/Button/css}/Button.module.css +62 -58
  73. package/es/Button/css/cssJSLogic.js +53 -0
  74. package/es/Button/index.js +2 -0
  75. package/es/Button/props/defaultProps.js +3 -1
  76. package/es/Button/props/propTypes.js +6 -2
  77. package/es/Buttongroup/Buttongroup.js +24 -16
  78. package/es/Buttongroup/Buttongroup.module.css +45 -28
  79. package/es/Buttongroup/props/defaultProps.js +3 -1
  80. package/es/Buttongroup/props/propTypes.js +3 -1
  81. package/es/Card/Card.js +48 -26
  82. package/es/Card/props/defaultProps.js +12 -2
  83. package/es/Card/props/propTypes.js +2 -2
  84. package/es/CheckBox/CheckBox.js +13 -9
  85. package/es/CheckBox/CheckBox.module.css +16 -16
  86. package/es/CheckBox/props/propTypes.js +1 -0
  87. package/es/DateTime/CalendarView.js +46 -19
  88. package/es/DateTime/DateTime.js +139 -77
  89. package/es/DateTime/DateTime.module.css +51 -48
  90. package/es/DateTime/DateTimePopupFooter.js +4 -2
  91. package/es/DateTime/DateTimePopupHeader.js +30 -11
  92. package/es/DateTime/DateWidget.js +122 -51
  93. package/es/DateTime/DateWidget.module.css +5 -5
  94. package/es/DateTime/DaysRow.js +6 -3
  95. package/es/DateTime/Time.js +10 -2
  96. package/es/DateTime/YearView.js +41 -9
  97. package/es/DateTime/YearView.module.css +33 -15
  98. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  99. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  100. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  101. package/es/DateTime/common.js +3 -0
  102. package/es/DateTime/constants.js +1 -0
  103. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  104. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  105. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  106. package/es/DateTime/dateFormatUtils/index.js +59 -2
  107. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  108. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  109. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  110. package/es/DateTime/index.js +1 -1
  111. package/es/DateTime/objectUtils.js +14 -20
  112. package/es/DateTime/props/defaultProps.js +2 -1
  113. package/es/DateTime/props/propTypes.js +5 -2
  114. package/es/DateTime/typeChecker.js +3 -0
  115. package/es/DateTime/validator.js +58 -6
  116. package/es/DropBox/DropBox.js +82 -218
  117. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  118. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  119. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  120. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  121. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  122. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  123. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  124. package/es/DropBox/css/DropBox.module.css +59 -0
  125. package/es/DropBox/css/cssJSLogic.js +14 -0
  126. package/es/DropBox/props/defaultProps.js +9 -15
  127. package/es/DropBox/props/propTypes.js +9 -41
  128. package/es/DropDown/DropDown.js +16 -9
  129. package/es/DropDown/DropDown.module.css +2 -2
  130. package/es/DropDown/DropDownHeading.js +18 -11
  131. package/es/DropDown/DropDownHeading.module.css +3 -3
  132. package/es/DropDown/DropDownItem.js +8 -1
  133. package/es/DropDown/DropDownItem.module.css +9 -9
  134. package/es/DropDown/DropDownSearch.js +4 -0
  135. package/es/DropDown/DropDownSeparator.js +1 -0
  136. package/es/DropDown/DropDownSeparator.module.css +2 -2
  137. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  138. package/es/DropDown/index.js +7 -0
  139. package/es/DropDown/props/defaultProps.js +3 -1
  140. package/es/DropDown/props/propTypes.js +2 -1
  141. package/es/Heading/Heading.js +8 -7
  142. package/es/Heading/Heading.module.css +2 -2
  143. package/es/Label/Label.js +14 -9
  144. package/es/Label/Label.module.css +1 -1
  145. package/es/Label/props/defaultProps.js +2 -1
  146. package/es/Label/props/propTypes.js +1 -0
  147. package/es/Layout/Box.js +19 -4
  148. package/es/Layout/Container.js +18 -5
  149. package/es/Layout/Layout.module.css +15 -15
  150. package/es/Layout/index.js +9 -10
  151. package/es/Layout/props/defaultProps.js +6 -2
  152. package/es/Layout/props/propTypes.js +7 -3
  153. package/es/Layout/utils.js +5 -1
  154. package/es/ListItem/ListContainer.js +21 -9
  155. package/es/ListItem/ListItem.js +30 -14
  156. package/es/ListItem/ListItem.module.css +37 -30
  157. package/es/ListItem/ListItemWithAvatar.js +30 -15
  158. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  159. package/es/ListItem/ListItemWithIcon.js +29 -14
  160. package/es/ListItem/ListItemWithRadio.js +22 -10
  161. package/es/ListItem/index.js +6 -0
  162. package/es/ListItem/props/defaultProps.js +18 -6
  163. package/es/ListItem/props/propTypes.js +13 -1
  164. package/es/Modal/Modal.js +35 -17
  165. package/es/MultiSelect/AdvancedGroupMultiSelect.js +100 -20
  166. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  167. package/es/MultiSelect/EmptyState.js +6 -0
  168. package/es/MultiSelect/MultiSelect.js +129 -46
  169. package/es/MultiSelect/MultiSelect.module.css +32 -31
  170. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  171. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  172. package/es/MultiSelect/SelectedOptions.js +6 -3
  173. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  174. package/es/MultiSelect/Suggestions.js +13 -6
  175. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  176. package/es/MultiSelect/index.js +4 -0
  177. package/es/MultiSelect/props/defaultProps.js +11 -4
  178. package/es/MultiSelect/props/propTypes.js +17 -5
  179. package/es/PopOver/PopOver.js +25 -9
  180. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  181. package/es/PopOver/index.js +3 -0
  182. package/es/Popup/Popup.js +80 -31
  183. package/es/Popup/__tests__/Popup.spec.js +17 -5
  184. package/es/Popup/viewPort.js +16 -4
  185. package/es/Provider/AvatarSize.js +1 -0
  186. package/es/Provider/IdProvider.js +16 -10
  187. package/es/Provider/LibraryContext.js +6 -4
  188. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  189. package/es/Provider/ZindexProvider.js +9 -2
  190. package/es/Provider/index.js +4 -0
  191. package/es/Radio/Radio.js +9 -7
  192. package/es/Radio/Radio.module.css +3 -3
  193. package/es/Responsive/CustomResponsive.js +37 -21
  194. package/es/Responsive/RefWrapper.js +6 -7
  195. package/es/Responsive/ResizeComponent.js +35 -25
  196. package/es/Responsive/ResizeObserver.js +26 -6
  197. package/es/Responsive/Responsive.js +34 -20
  198. package/es/Responsive/index.js +9 -8
  199. package/es/Responsive/sizeObservers.js +28 -7
  200. package/es/Responsive/utils/index.js +7 -5
  201. package/es/Responsive/utils/shallowCompare.js +7 -2
  202. package/es/Responsive/windowResizeObserver.js +7 -0
  203. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  204. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  205. package/es/Ribbon/Ribbon.js +21 -15
  206. package/es/Ribbon/Ribbon.module.css +133 -55
  207. package/es/Ribbon/props/defaultProps.js +2 -1
  208. package/es/Ribbon/props/propTypes.js +2 -1
  209. package/es/RippleEffect/RippleEffect.js +6 -7
  210. package/es/Select/GroupSelect.js +71 -23
  211. package/es/Select/Select.js +115 -50
  212. package/es/Select/Select.module.css +23 -23
  213. package/es/Select/SelectWithAvatar.js +31 -12
  214. package/es/Select/SelectWithIcon.js +60 -14
  215. package/es/Select/__tests__/Select.spec.js +6 -8
  216. package/es/Select/index.js +4 -0
  217. package/es/Select/props/defaultProps.js +6 -1
  218. package/es/Select/props/propTypes.js +10 -4
  219. package/es/Stencils/Stencils.js +10 -9
  220. package/es/Stencils/Stencils.module.css +2 -2
  221. package/es/Switch/Switch.js +14 -8
  222. package/es/Switch/Switch.module.css +49 -32
  223. package/es/Switch/props/defaultProps.js +2 -1
  224. package/es/Switch/props/propTypes.js +1 -0
  225. package/es/Tab/Tab.js +14 -11
  226. package/es/Tab/Tab.module.css +14 -15
  227. package/es/Tab/TabContent.js +6 -3
  228. package/es/Tab/TabContentWrapper.js +6 -2
  229. package/es/Tab/TabWrapper.js +9 -4
  230. package/es/Tab/Tabs.js +85 -21
  231. package/es/Tab/Tabs.module.css +36 -40
  232. package/es/Tab/__tests__/Tab.spec.js +4 -12
  233. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  234. package/es/Tab/props/defaultProps.js +10 -5
  235. package/es/Tab/props/propTypes.js +10 -5
  236. package/es/Tag/Tag.js +16 -10
  237. package/es/Tag/Tag.module.css +10 -10
  238. package/es/Tag/props/defaultProps.js +2 -1
  239. package/es/Tag/props/propTypes.js +2 -1
  240. package/es/TextBox/TextBox.js +26 -10
  241. package/es/TextBox/TextBox.module.css +6 -5
  242. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  243. package/es/TextBox/props/defaultProps.js +2 -1
  244. package/es/TextBox/props/propTypes.js +2 -1
  245. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  246. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  247. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  248. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  249. package/es/TextBoxIcon/props/propTypes.js +1 -0
  250. package/es/Textarea/Textarea.js +23 -10
  251. package/es/Textarea/Textarea.module.css +6 -6
  252. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  253. package/es/Textarea/props/defaultProps.js +2 -1
  254. package/es/Textarea/props/propTypes.js +1 -0
  255. package/es/Tooltip/Tooltip.js +67 -21
  256. package/es/Tooltip/Tooltip.module.css +40 -8
  257. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  258. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  259. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  260. package/es/VelocityAnimation/index.js +2 -0
  261. package/es/common/a11y.module.css +4 -0
  262. package/es/common/animation.module.css +8 -8
  263. package/es/common/avatarsizes.module.css +6 -2
  264. package/es/common/basicReset.module.css +3 -3
  265. package/es/common/boxShadow.module.css +34 -0
  266. package/es/common/common.module.css +24 -24
  267. package/es/common/customscroll.module.css +4 -2
  268. package/es/common/reset.module.css +1 -0
  269. package/es/css.js +2 -1
  270. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  271. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  272. package/es/index.js +30 -146
  273. package/es/semantic/Button/Button.js +9 -7
  274. package/es/semantic/Button/semanticButton.module.css +1 -1
  275. package/es/semantic/index.js +1 -0
  276. package/es/utils/Common.js +74 -7
  277. package/es/utils/ContextOptimizer.js +4 -5
  278. package/es/utils/__tests__/debounce.spec.js +2 -2
  279. package/es/utils/constructFullName.js +2 -0
  280. package/es/utils/css/compileClassNames.js +28 -0
  281. package/es/utils/css/mergeStyle.js +57 -0
  282. package/es/utils/css/utils.js +24 -0
  283. package/es/utils/datetime/GMTZones.js +48 -0
  284. package/es/utils/datetime/common.js +31 -7
  285. package/es/utils/debounce.js +5 -1
  286. package/es/utils/dropDownUtils.js +71 -13
  287. package/es/utils/getInitial.js +4 -0
  288. package/es/utils/index.js +3 -0
  289. package/es/utils/shallowEqual.js +6 -0
  290. package/install.md +10 -0
  291. package/lib/Accordion/Accordion.js +50 -18
  292. package/lib/Accordion/AccordionItem.js +47 -20
  293. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  294. package/lib/Accordion/index.js +3 -0
  295. package/lib/Accordion/props/defaultProps.js +6 -2
  296. package/lib/Accordion/props/propTypes.js +6 -0
  297. package/lib/Animation/Animation.js +44 -21
  298. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  299. package/lib/Animation/props/propTypes.js +3 -0
  300. package/lib/AppContainer/AppContainer.js +75 -27
  301. package/lib/AppContainer/AppContainer.module.css +2 -2
  302. package/lib/AppContainer/props/defaultProps.js +3 -1
  303. package/lib/AppContainer/props/propTypes.js +5 -0
  304. package/lib/Avatar/Avatar.js +97 -44
  305. package/lib/Avatar/Avatar.module.css +59 -18
  306. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  307. package/lib/Avatar/props/defaultProps.js +4 -1
  308. package/lib/Avatar/props/propTypes.js +8 -2
  309. package/lib/AvatarTeam/AvatarTeam.js +64 -30
  310. package/lib/AvatarTeam/AvatarTeam.module.css +49 -21
  311. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  312. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  313. package/lib/AvatarTeam/props/propTypes.js +8 -1
  314. package/lib/Button/Button.js +64 -74
  315. package/{es/Button → lib/Button/css}/Button.module.css +62 -58
  316. package/lib/Button/css/cssJSLogic.js +41 -0
  317. package/lib/Button/index.js +23 -0
  318. package/lib/Button/props/defaultProps.js +5 -1
  319. package/lib/Button/props/propTypes.js +11 -3
  320. package/lib/Buttongroup/Buttongroup.js +49 -19
  321. package/lib/Buttongroup/Buttongroup.module.css +45 -28
  322. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  323. package/lib/Buttongroup/props/defaultProps.js +3 -1
  324. package/lib/Buttongroup/props/propTypes.js +6 -1
  325. package/lib/Card/Card.js +119 -55
  326. package/lib/Card/__tests__/Card.spec.js +10 -1
  327. package/lib/Card/index.js +4 -0
  328. package/lib/Card/props/defaultProps.js +16 -4
  329. package/lib/Card/props/propTypes.js +5 -2
  330. package/lib/CheckBox/CheckBox.js +76 -48
  331. package/lib/CheckBox/CheckBox.module.css +16 -16
  332. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  333. package/lib/CheckBox/props/propTypes.js +4 -0
  334. package/lib/DateTime/CalendarView.js +95 -38
  335. package/lib/DateTime/DateTime.js +309 -216
  336. package/lib/DateTime/DateTime.module.css +51 -48
  337. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  338. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  339. package/lib/DateTime/DateWidget.js +370 -260
  340. package/lib/DateTime/DateWidget.module.css +5 -5
  341. package/lib/DateTime/DaysRow.js +28 -3
  342. package/lib/DateTime/Time.js +72 -29
  343. package/lib/DateTime/YearView.js +89 -30
  344. package/lib/DateTime/YearView.module.css +33 -15
  345. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  346. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  347. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  348. package/lib/DateTime/common.js +6 -0
  349. package/lib/DateTime/constants.js +1 -0
  350. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  351. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  352. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  353. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  354. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  355. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  356. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  357. package/lib/DateTime/index.js +3 -1
  358. package/lib/DateTime/objectUtils.js +24 -20
  359. package/lib/DateTime/props/defaultProps.js +2 -1
  360. package/lib/DateTime/props/propTypes.js +21 -2
  361. package/lib/DateTime/typeChecker.js +4 -0
  362. package/lib/DateTime/validator.js +69 -6
  363. package/lib/DropBox/DropBox.js +102 -249
  364. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  365. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  366. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  367. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  368. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  369. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  370. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  371. package/lib/DropBox/css/DropBox.module.css +59 -0
  372. package/lib/DropBox/css/cssJSLogic.js +20 -0
  373. package/lib/DropBox/props/defaultProps.js +20 -17
  374. package/lib/DropBox/props/propTypes.js +22 -43
  375. package/lib/DropDown/DropDown.js +58 -10
  376. package/lib/DropDown/DropDown.module.css +2 -2
  377. package/lib/DropDown/DropDownHeading.js +47 -18
  378. package/lib/DropDown/DropDownHeading.module.css +3 -3
  379. package/lib/DropDown/DropDownItem.js +43 -18
  380. package/lib/DropDown/DropDownItem.module.css +9 -9
  381. package/lib/DropDown/DropDownSearch.js +39 -14
  382. package/lib/DropDown/DropDownSeparator.js +23 -1
  383. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  384. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  385. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  386. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  387. package/lib/DropDown/index.js +65 -0
  388. package/lib/DropDown/props/defaultProps.js +3 -1
  389. package/lib/DropDown/props/propTypes.js +7 -1
  390. package/lib/Heading/Heading.js +42 -16
  391. package/lib/Heading/Heading.module.css +2 -2
  392. package/lib/Heading/props/propTypes.js +3 -0
  393. package/lib/Label/Label.js +47 -19
  394. package/lib/Label/Label.module.css +1 -1
  395. package/lib/Label/__tests__/Label.spec.js +14 -1
  396. package/lib/Label/props/defaultProps.js +2 -1
  397. package/lib/Label/props/propTypes.js +4 -0
  398. package/lib/Layout/Box.js +41 -16
  399. package/lib/Layout/Container.js +39 -15
  400. package/lib/Layout/Layout.module.css +15 -15
  401. package/lib/Layout/__tests__/Box.spec.js +65 -49
  402. package/lib/Layout/__tests__/Container.spec.js +67 -50
  403. package/lib/Layout/index.js +4 -11
  404. package/lib/Layout/props/defaultProps.js +6 -2
  405. package/lib/Layout/props/propTypes.js +10 -3
  406. package/lib/Layout/utils.js +15 -1
  407. package/lib/ListItem/ListContainer.js +61 -34
  408. package/lib/ListItem/ListItem.js +92 -50
  409. package/lib/ListItem/ListItem.module.css +37 -30
  410. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  411. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  412. package/lib/ListItem/ListItemWithIcon.js +92 -50
  413. package/lib/ListItem/ListItemWithRadio.js +83 -42
  414. package/lib/ListItem/index.js +55 -0
  415. package/lib/ListItem/props/defaultProps.js +18 -6
  416. package/lib/ListItem/props/propTypes.js +18 -3
  417. package/lib/Modal/Modal.js +51 -13
  418. package/lib/Modal/props/propTypes.js +3 -0
  419. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -167
  420. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  421. package/lib/MultiSelect/EmptyState.js +48 -21
  422. package/lib/MultiSelect/MultiSelect.js +341 -205
  423. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  424. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  425. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  426. package/lib/MultiSelect/SelectedOptions.js +42 -14
  427. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  428. package/lib/MultiSelect/Suggestions.js +66 -29
  429. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  430. package/lib/MultiSelect/index.js +39 -0
  431. package/lib/MultiSelect/props/defaultProps.js +13 -4
  432. package/lib/MultiSelect/props/propTypes.js +20 -5
  433. package/lib/PopOver/PopOver.js +101 -53
  434. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  435. package/lib/PopOver/index.js +31 -0
  436. package/lib/PopOver/props/propTypes.js +3 -0
  437. package/lib/Popup/Popup.js +158 -83
  438. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  439. package/lib/Popup/viewPort.js +28 -14
  440. package/lib/Provider/AvatarSize.js +5 -0
  441. package/lib/Provider/Config.js +2 -0
  442. package/lib/Provider/CssProvider.js +4 -0
  443. package/lib/Provider/IdProvider.js +23 -12
  444. package/lib/Provider/LibraryContext.js +32 -10
  445. package/lib/Provider/LibraryContextInit.js +4 -0
  446. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  447. package/lib/Provider/ZindexProvider.js +15 -3
  448. package/lib/Provider/index.js +81 -0
  449. package/lib/Radio/Radio.js +65 -40
  450. package/lib/Radio/Radio.module.css +3 -3
  451. package/lib/Radio/__tests__/Radiospec.js +9 -5
  452. package/lib/Radio/props/propTypes.js +3 -0
  453. package/lib/Responsive/CustomResponsive.js +76 -26
  454. package/lib/Responsive/RefWrapper.js +15 -7
  455. package/lib/Responsive/ResizeComponent.js +58 -27
  456. package/lib/Responsive/ResizeObserver.js +23 -6
  457. package/lib/Responsive/Responsive.js +76 -24
  458. package/lib/Responsive/index.js +49 -22
  459. package/lib/Responsive/props/propTypes.js +3 -0
  460. package/lib/Responsive/sizeObservers.js +51 -13
  461. package/lib/Responsive/utils/index.js +11 -3
  462. package/lib/Responsive/utils/shallowCompare.js +11 -2
  463. package/lib/Responsive/windowResizeObserver.js +8 -0
  464. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  465. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  466. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  467. package/lib/Ribbon/Ribbon.js +48 -21
  468. package/lib/Ribbon/Ribbon.module.css +133 -55
  469. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  470. package/lib/Ribbon/props/defaultProps.js +2 -1
  471. package/lib/Ribbon/props/propTypes.js +5 -1
  472. package/lib/RippleEffect/RippleEffect.js +23 -14
  473. package/lib/RippleEffect/props/propTypes.js +3 -0
  474. package/lib/Select/GroupSelect.js +240 -137
  475. package/lib/Select/Select.js +320 -220
  476. package/lib/Select/Select.module.css +23 -23
  477. package/lib/Select/SelectWithAvatar.js +112 -59
  478. package/lib/Select/SelectWithIcon.js +145 -82
  479. package/lib/Select/__tests__/Select.spec.js +131 -89
  480. package/lib/Select/index.js +39 -0
  481. package/lib/Select/props/defaultProps.js +10 -2
  482. package/lib/Select/props/propTypes.js +13 -4
  483. package/lib/Stencils/Stencils.js +35 -13
  484. package/lib/Stencils/Stencils.module.css +2 -2
  485. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  486. package/lib/Stencils/props/propTypes.js +3 -0
  487. package/lib/Switch/Switch.js +64 -35
  488. package/lib/Switch/Switch.module.css +49 -32
  489. package/lib/Switch/props/defaultProps.js +2 -1
  490. package/lib/Switch/props/propTypes.js +4 -0
  491. package/lib/Tab/Tab.js +49 -33
  492. package/lib/Tab/Tab.module.css +14 -15
  493. package/lib/Tab/TabContent.js +15 -6
  494. package/lib/Tab/TabContentWrapper.js +15 -6
  495. package/lib/Tab/TabWrapper.js +37 -17
  496. package/lib/Tab/Tabs.js +193 -94
  497. package/lib/Tab/Tabs.module.css +36 -40
  498. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  499. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  500. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  501. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  502. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  503. package/lib/Tab/index.js +6 -0
  504. package/lib/Tab/props/defaultProps.js +10 -5
  505. package/lib/Tab/props/propTypes.js +13 -5
  506. package/lib/Tag/Tag.js +82 -48
  507. package/lib/Tag/Tag.module.css +10 -10
  508. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  509. package/lib/Tag/props/defaultProps.js +2 -1
  510. package/lib/Tag/props/propTypes.js +5 -1
  511. package/lib/TextBox/TextBox.js +93 -61
  512. package/lib/TextBox/TextBox.module.css +6 -5
  513. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  514. package/lib/TextBox/props/defaultProps.js +2 -1
  515. package/lib/TextBox/props/propTypes.js +6 -1
  516. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  517. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  518. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  519. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  520. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  521. package/lib/Textarea/Textarea.js +63 -32
  522. package/lib/Textarea/Textarea.module.css +6 -6
  523. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  524. package/lib/Textarea/props/defaultProps.js +2 -1
  525. package/lib/Textarea/props/propTypes.js +4 -0
  526. package/lib/Tooltip/Tooltip.js +102 -35
  527. package/lib/Tooltip/Tooltip.module.css +40 -8
  528. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  529. package/lib/Tooltip/props/propTypes.js +3 -0
  530. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  531. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  532. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  533. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  534. package/lib/VelocityAnimation/index.js +23 -0
  535. package/lib/common/a11y.module.css +4 -0
  536. package/lib/common/animation.module.css +8 -8
  537. package/lib/common/avatarsizes.module.css +6 -2
  538. package/lib/common/basicReset.module.css +3 -3
  539. package/lib/common/boxShadow.module.css +34 -0
  540. package/lib/common/common.module.css +24 -24
  541. package/lib/common/customscroll.module.css +4 -2
  542. package/lib/common/reset.module.css +1 -0
  543. package/lib/css.js +42 -1
  544. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  545. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  546. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  547. package/lib/index.js +214 -210
  548. package/lib/semantic/Button/Button.js +47 -24
  549. package/lib/semantic/Button/props/propTypes.js +3 -0
  550. package/lib/semantic/Button/semanticButton.module.css +1 -1
  551. package/lib/semantic/index.js +15 -0
  552. package/lib/utils/Common.js +136 -17
  553. package/lib/utils/ContextOptimizer.js +16 -10
  554. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  555. package/lib/utils/__tests__/debounce.spec.js +3 -2
  556. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  557. package/lib/utils/constructFullName.js +11 -2
  558. package/lib/utils/css/compileClassNames.js +37 -0
  559. package/lib/utils/css/mergeStyle.js +69 -0
  560. package/lib/utils/css/utils.js +41 -0
  561. package/lib/utils/datetime/GMTZones.js +55 -0
  562. package/lib/utils/datetime/common.js +52 -7
  563. package/lib/utils/debounce.js +6 -1
  564. package/lib/utils/dropDownUtils.js +177 -56
  565. package/lib/utils/dummyFunction.js +2 -0
  566. package/lib/utils/getHTMLFontSize.js +1 -0
  567. package/lib/utils/getInitial.js +6 -0
  568. package/lib/utils/index.js +121 -0
  569. package/lib/utils/scrollTo.js +2 -0
  570. package/lib/utils/shallowEqual.js +8 -0
  571. package/package.json +61 -26
  572. package/postPublish.js +8 -0
  573. package/prePublish.js +70 -0
  574. package/docs/external/active-line.js +0 -72
  575. package/docs/external/autorefresh.js +0 -47
  576. package/docs/external/codemirror.js +0 -9681
  577. package/docs/external/css/hopscotch.css +0 -576
  578. package/docs/external/css/styleGuide.css +0 -1100
  579. package/docs/external/css.js +0 -466
  580. package/docs/external/designTokens.js +0 -1
  581. package/docs/external/foldcode.js +0 -152
  582. package/docs/external/format.js +0 -129
  583. package/docs/external/htmlmixed.js +0 -84
  584. package/docs/external/images/bottom.png +0 -0
  585. package/docs/external/images/bottombg.jpg +0 -0
  586. package/docs/external/images/desk.png +0 -0
  587. package/docs/external/images/desklogo.png +0 -0
  588. package/docs/external/images/menu.png +0 -0
  589. package/docs/external/index.html +0 -127
  590. package/docs/external/javascript.js +0 -422
  591. package/docs/external/jsx.js +0 -148
  592. package/docs/external/matchbrackets.js +0 -145
  593. package/docs/external/xml.js +0 -322
  594. package/docs/package.json +0 -41
  595. package/docs/src/index.js +0 -1311
  596. package/es/Button/__tests__/Button.spec.js +0 -190
  597. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  598. package/es/DropBox/DropBox.module.css +0 -406
  599. package/lib/Button/__tests__/Button.spec.js +0 -193
  600. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  601. package/lib/DropBox/DropBox.module.css +0 -406
@@ -1,5 +1,6 @@
1
1
  import React, { forwardRef, useCallback, Children, cloneElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+
3
4
  function setRef(refFunc, value) {
4
5
  if (typeof refFunc === 'function') {
5
6
  refFunc(value);
@@ -7,22 +8,20 @@ function setRef(refFunc, value) {
7
8
  refFunc.current = value;
8
9
  }
9
10
  }
11
+
10
12
  const DOMRefWrapper = /*#__PURE__*/forwardRef((props, refFunc) => {
11
13
  const ele = Children.only(props.children);
12
14
  const {
13
15
  domRefKey = 'eleRef'
14
- } = props;
16
+ } = props; // NOTE: need to check for forward Ref function, Because in Froward Ref case refKey is "ref"
17
+
18
+ const refKey = typeof ele.type !== 'string' ? domRefKey : 'ref'; // const setAttribute = useCallback(node => {
15
19
 
16
- // NOTE: need to check for forward Ref function, Because in Froward Ref case refKey is "ref"
17
- const refKey = typeof ele.type !== 'string' ? domRefKey : 'ref';
18
- // const setAttribute = useCallback(node => {
19
20
  const eleRealRefFunc = ele.props[refKey];
20
21
  const setAttribute = useCallback(ref => {
21
22
  setRef(refFunc, ref);
22
23
  setRef(eleRealRefFunc, ref);
23
- }, [refFunc, eleRealRefFunc]);
24
-
25
- // let refKey = typeof ele.type === 'string' ? 'ref' : 'eleRef';
24
+ }, [refFunc, eleRealRefFunc]); // let refKey = typeof ele.type === 'string' ? 'ref' : 'eleRef';
26
25
 
27
26
  let childProps = {
28
27
  [refKey]: setAttribute
@@ -11,8 +11,8 @@ export default class ResizeComponent extends React.Component {
11
11
  super(props);
12
12
  this.noSpaceForChildren = false;
13
13
  this.childrenCurrentList = [];
14
- this.widthCheck = debounce(this.widthCheck.bind(this), 10);
15
- // this.widthCheck = this.widthCheck.bind(this);
14
+ this.widthCheck = debounce(this.widthCheck.bind(this), 10); // this.widthCheck = this.widthCheck.bind(this);
15
+
16
16
  this.onResize = this.onResize.bind(this);
17
17
  this.onResizeMutation = this.onResizeMutation.bind(this);
18
18
  this.tabsObserver = new ResizeObserver(this.onResize);
@@ -21,6 +21,7 @@ export default class ResizeComponent extends React.Component {
21
21
  this.constructChildren = this.constructChildren.bind(this);
22
22
  this.querySelector = this.querySelector.bind(this);
23
23
  }
24
+
24
25
  querySelector() {
25
26
  if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
26
27
  return this.props.wrapperDivRef.current.querySelectorAll('[data-responsive="true"]');
@@ -28,11 +29,13 @@ export default class ResizeComponent extends React.Component {
28
29
  return [];
29
30
  }
30
31
  }
32
+
31
33
  onResizeMutation(mutations) {
32
34
  // console.log(mutations);
33
35
  let {
34
36
  childrenList
35
37
  } = this.props;
38
+
36
39
  for (const mutation of mutations) {
37
40
  if (mutation.type === 'childList') {
38
41
  if (mutation.addedNodes.length) {
@@ -43,24 +46,19 @@ export default class ResizeComponent extends React.Component {
43
46
  newAdded = true;
44
47
  }
45
48
  });
49
+
46
50
  if (newAdded) {
47
51
  //console.log('A child node has been added ', mutation);
48
-
49
52
  this.onResize();
50
53
  }
51
- } else if (mutation.removedNodes.length) {
52
- // ?? removed nodes ku check pannanum ah ??
54
+ } else if (mutation.removedNodes.length) {// ?? removed nodes ku check pannanum ah ??
53
55
  // console.log('A child node has been removed ', mutation);
54
56
  }
55
- } else if (mutation.type === 'attributes') {
56
- //console.log('The ' + mutation.attributeName + ' attribute was modified.', mutation);
57
- } else if (mutation.type === 'characterData') {
58
- // To Call While Changing InnerText, Remove Below line If Required. But It might affect Performance.
57
+ } else if (mutation.type === 'attributes') {//console.log('The ' + mutation.attributeName + ' attribute was modified.', mutation);
58
+ } else if (mutation.type === 'characterData') {// To Call While Changing InnerText, Remove Below line If Required. But It might affect Performance.
59
59
  // this.onResize();
60
60
  }
61
- }
62
-
63
- // mutations.forEach(mutation => {
61
+ } // mutations.forEach(mutation => {
64
62
  // if (mutation.target === foo &&
65
63
  // mutation.attributeName === 'style' &&
66
64
  // oldWidth !== foo.style.width) {
@@ -69,6 +67,7 @@ export default class ResizeComponent extends React.Component {
69
67
  // oldWidth = foo.style.width;
70
68
  // }
71
69
  // });
70
+
72
71
  }
73
72
 
74
73
  componentDidMount() {
@@ -83,22 +82,27 @@ export default class ResizeComponent extends React.Component {
83
82
  });
84
83
  }
85
84
  }
85
+
86
86
  componentWillUnmount() {
87
87
  this.reset();
88
88
  }
89
+
89
90
  reset() {
90
91
  this.childrenCurrentList = [];
91
92
  this.tabsObserver.disconnect();
92
93
  this.tabObserver && this.tabObserver.disconnect();
93
94
  }
95
+
94
96
  componentDidUpdate(prevProps) {
95
97
  if (this.childrenCurrentList.length === 0) {
96
98
  this.childrenCurrentList = this.querySelector();
97
99
  this.widthCheck();
98
100
  }
101
+
99
102
  if (this.props.resizeId !== prevProps.resizeId) {
100
103
  // Completely reset the observers and set new observer if id is changed
101
104
  this.reset();
105
+
102
106
  if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
103
107
  this.tabsObserver.observe(this.props.wrapperDivRef.current);
104
108
  this.tabObserver.observe(this.props.wrapperDivRef.current, {
@@ -111,67 +115,73 @@ export default class ResizeComponent extends React.Component {
111
115
  }
112
116
  }
113
117
  }
118
+
114
119
  onResize() {
115
120
  // if (this.childrenCurrentList.length !== 0) {
116
121
  this.childrenCurrentList = [];
117
- this.constructChildren(0, false);
118
- //}
119
- }
120
-
121
- // shouldComponentUpdate() {
122
+ this.constructChildren(0, false); //}
123
+ } // shouldComponentUpdate() {
122
124
  // return this.childrenCurrentList.length === 0
123
125
  // }
124
126
 
127
+
125
128
  widthCheck() {
126
129
  let wrapperDivRef = this.props.wrapperDivRef.current;
127
130
  let moreDivRef = this.props.moreDivRef.current;
131
+
128
132
  if (wrapperDivRef && this.childrenCurrentList.length > 0) {
129
- const childrenWidthList = this.childrenCurrentList;
130
- // this.childrenCurrentList = childrenWidthList;
131
- const moreWidth = getElementSpace(moreDivRef).neededSpace;
132
- //console.log(moreWidth,'moreWidth');
133
+ const childrenWidthList = this.childrenCurrentList; // this.childrenCurrentList = childrenWidthList;
134
+
135
+ const moreWidth = getElementSpace(moreDivRef).neededSpace; //console.log(moreWidth,'moreWidth');
136
+
133
137
  let totalWidth = getElementSpace(wrapperDivRef).availableInsideSpace - moreWidth;
134
138
  let _childrenTotalWidth = 0;
135
139
  let dataCount = 0;
136
140
  this.noSpaceForChildren = false;
141
+
137
142
  if (totalWidth <= moreWidth) {
138
143
  this.noSpaceForChildren = true;
139
144
  } else {
140
145
  for (let i = 0; i < childrenWidthList.length; i++) {
141
146
  let currentWidth = getElementSpace(childrenWidthList[i]).neededSpace;
142
- _childrenTotalWidth += currentWidth;
143
- // console.log(_childrenTotalWidth, currentWidth, totalWidth)
147
+ _childrenTotalWidth += currentWidth; // console.log(_childrenTotalWidth, currentWidth, totalWidth)
148
+
144
149
  if (i === childrenWidthList.length - 1 && moreWidth >= currentWidth) {
145
150
  totalWidth += moreWidth;
146
151
  }
152
+
147
153
  if (totalWidth <= _childrenTotalWidth) {
148
154
  dataCount = i;
149
155
  break;
150
156
  }
151
157
  }
152
158
  }
159
+
153
160
  this.constructChildren(dataCount, true);
154
161
  } else {
155
162
  this.constructChildren(0, false);
156
163
  }
157
164
  }
165
+
158
166
  constructChildren() {
159
167
  let dataCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
160
168
  let responsive = arguments.length > 1 ? arguments[1] : undefined;
161
169
  const {
162
170
  childrenList,
163
171
  getData
164
- } = this.props;
165
- // If the data count is zero we assume that we can render all the items - data count will be zero only when we want to calculate the whole list width
172
+ } = this.props; // If the data count is zero we assume that we can render all the items - data count will be zero only when we want to calculate the whole list width
173
+
166
174
  dataCount = dataCount || childrenList && childrenList.length;
167
175
  getData({
168
176
  responsiveHook: responsive,
169
177
  validListCount: this.noSpaceForChildren ? 0 : dataCount
170
178
  });
171
179
  }
180
+
172
181
  render() {
173
182
  return /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children);
174
183
  }
184
+
175
185
  }
176
186
  ResizeComponent.propTypes = {
177
187
  children: PropTypes.node,
@@ -4,30 +4,33 @@ const mutationObserverOptions = {
4
4
  // childList: true,
5
5
  attributes: true
6
6
  };
7
+
7
8
  function getSize(element) {
8
9
  let {
9
10
  offsetHeight,
10
11
  offsetWidth
11
- } = element;
12
- // const { height, width } = element.getBoundingClientRect();
12
+ } = element; // const { height, width } = element.getBoundingClientRect();
13
+
13
14
  return {
14
15
  height: offsetHeight,
15
16
  width: offsetWidth
16
17
  };
17
18
  }
19
+
18
20
  function dispatch() {
19
21
  let resizeResponsive = new Event('resizeResponsive');
20
22
  window.dispatchEvent(resizeResponsive);
21
23
  }
24
+
22
25
  if (!hasResizeObserver) {
23
26
  let interval = null;
24
27
  window.addEventListener('resize', () => {
25
28
  clearTimeout(interval);
26
29
  interval = setTimeout(dispatch, 100);
27
30
  });
28
- }
31
+ } // NOTE: this is not full polyfill , we just wrote what types of changes wlli
32
+
29
33
 
30
- // NOTE: this is not full polyfill , we just wrote what types of changes wlli
31
34
  export default class ResizeObserverPolyfill {
32
35
  constructor(onResize) {
33
36
  // method finding
@@ -42,57 +45,70 @@ export default class ResizeObserverPolyfill {
42
45
  height: 0,
43
46
  width: 0
44
47
  };
48
+
45
49
  if (hasResizeObserver) {
46
50
  this.resizeObserverInstance = new window.ResizeObserver(this.resizeHandlerDispatch);
47
51
  } else {
48
52
  this.mutationObserverInstance = new window.MutationObserver(this.resizeHandlerDispatch);
49
53
  }
50
54
  }
55
+
51
56
  replaceResizeHandler(onResize) {
52
57
  this.onResize = onResize;
53
58
  }
59
+
54
60
  resizeHandler() {
55
61
  if (!this.targetNode) {
56
62
  return;
57
63
  }
58
- const currentSize = getSize(this.targetNode);
59
- // if (this.size && shallowCompare(currentSize, this.size)) {
64
+
65
+ const currentSize = getSize(this.targetNode); // if (this.size && shallowCompare(currentSize, this.size)) {
66
+
60
67
  if (this.size && currentSize.height === this.size.height && currentSize.width === this.size.width) {
61
68
  return;
62
69
  }
70
+
63
71
  this.size = currentSize;
64
72
  this.onResize(this.size, this.targetNode);
65
73
  return true;
66
74
  }
75
+
67
76
  resizeHandlerDispatch() {
68
77
  if (!this.resizeHandler() || hasResizeObserver) {
69
78
  return;
70
79
  }
80
+
71
81
  dispatch();
72
82
  }
83
+
73
84
  debounce() {
74
85
  clearTimeout(this.interval);
75
86
  this.interval = setTimeout(this.resizeHandler, 100);
76
87
  }
88
+
77
89
  transitionEndHandler(event) {
78
90
  if (event.propertyName.indexOf('color') === -1) {
79
91
  this.resizeHandlerDispatch();
80
92
  }
81
93
  }
94
+
82
95
  addEventListeners(targetNode) {
83
96
  targetNode.addEventListener('transitionend', this.transitionEndHandler);
84
97
  window.addEventListener('resizeResponsive', this.debounce);
85
98
  targetNode.addEventListener('animationend', this.resizeHandlerDispatch);
86
99
  targetNode.addEventListener('webkitAnimationEnd', this.resizeHandlerDispatch);
87
100
  }
101
+
88
102
  removeEventListeners(targetNode) {
89
103
  targetNode.removeEventListener('transitionend', this.transitionEndHandler);
90
104
  window.removeEventListener('resizeResponsive', this.debounce);
91
105
  targetNode.removeEventListener('animationend', this.resizeHandlerDispatch);
92
106
  targetNode.removeEventListener('webkitAnimationEnd', this.resizeHandlerDispatch);
93
107
  }
108
+
94
109
  observe(targetNode) {
95
110
  this.targetNode = targetNode;
111
+
96
112
  if (hasResizeObserver) {
97
113
  this.resizeObserverInstance.observe(targetNode);
98
114
  } else {
@@ -100,14 +116,17 @@ export default class ResizeObserverPolyfill {
100
116
  this.mutationObserverInstance.observe(targetNode, mutationObserverOptions);
101
117
  }
102
118
  }
119
+
103
120
  replaceObservationElement(targetNode) {
104
121
  if (this.targetNode === targetNode) {
105
122
  return;
106
123
  }
124
+
107
125
  this.targetNode && this.disconnect();
108
126
  targetNode && this.observe(targetNode);
109
127
  targetNode && this.resizeHandlerDispatch();
110
128
  }
129
+
111
130
  disconnect() {
112
131
  this.targetNode && this.removeEventListeners(this.targetNode);
113
132
  hasResizeObserver ? this.resizeObserverInstance.disconnect() : this.mutationObserverInstance.disconnect();
@@ -117,4 +136,5 @@ export default class ResizeObserverPolyfill {
117
136
  width: 0
118
137
  };
119
138
  }
139
+
120
140
  }
@@ -1,42 +1,41 @@
1
- import React, { useContext, useEffect, useState, useMemo } from 'react';
2
- // import React, { useState, useMemo, useCallback, useContext } from 'react';
1
+ import React, { useContext, useEffect, useState, useMemo } from 'react'; // import React, { useState, useMemo, useCallback, useContext } from 'react';
2
+
3
3
  import { ResponsiveSender_defaultProps, ResponsiveReceiver_defaultProps } from './props/defaultProps';
4
4
  import { ResponsiveSender_propTypes, ResponsiveReceiver_propTypes } from './props/propTypes';
5
5
  import ResizeObserver from './ResizeObserver';
6
6
  import DOMRefWrapper from './RefWrapper';
7
7
  import { windowResizeObserver } from './windowResizeObserver';
8
- import { getBreakPointValue, defaultMatcher } from './utils/';
9
-
10
- // const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
8
+ import { getBreakPointValue, defaultMatcher } from './utils/'; // const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
11
9
 
12
10
  export const ResponsiveContext = /*#__PURE__*/React.createContext({});
13
11
  const defaultResponsiveId = 'parentReceiver';
14
12
  export class ResponsiveSender extends React.Component {
15
13
  constructor(props) {
16
- super(props);
14
+ super(props); // method binding
17
15
 
18
- // method binding
19
16
  this.onResize = this.onResize.bind(this);
20
17
  this.containerRef = this.containerRef.bind(this);
21
18
  this.getWidth = this.getWidth.bind(this);
22
19
  this.state = {
23
20
  breakPoint: null,
24
21
  getWidth: this.getWidth
25
- };
22
+ }; // variables
26
23
 
27
- // variables
28
24
  this.observer = new ResizeObserver(this.onResize);
29
25
  this.size = null;
30
26
  }
27
+
31
28
  getWidth() {
32
29
  if (!this.size) {
33
30
  return 0;
34
31
  }
32
+
35
33
  const {
36
34
  width
37
35
  } = this.size;
38
36
  return width;
39
37
  }
38
+
40
39
  onResize(size) {
41
40
  // const { matcher } = this.props;
42
41
  const {
@@ -44,21 +43,25 @@ export class ResponsiveSender extends React.Component {
44
43
  } = this.state;
45
44
  const newBreakPoint = defaultMatcher(size);
46
45
  this.size = size;
46
+
47
47
  if (breakPoint !== newBreakPoint) {
48
48
  this.setState({
49
49
  breakPoint: newBreakPoint
50
50
  });
51
51
  }
52
52
  }
53
+
53
54
  containerRef(node) {
54
55
  this.observer.replaceObservationElement(node);
55
56
  }
57
+
56
58
  isChanged(data, key) {
57
59
  this.memo = this.memo || {};
58
60
  const changed = this.memo[key] !== data;
59
61
  this.memo[key] = data;
60
62
  return changed;
61
63
  }
64
+
62
65
  render() {
63
66
  const parentContext = this.context;
64
67
  const {
@@ -68,9 +71,10 @@ export class ResponsiveSender extends React.Component {
68
71
  } = this.props;
69
72
  let {
70
73
  childContext
71
- } = this;
72
- // NOTE: this method called here ,Because of we must update local memo.
74
+ } = this; // NOTE: this method called here ,Because of we must update local memo.
75
+
73
76
  const isStateChanged = this.isChanged(this.state, 'state');
77
+
74
78
  if (this.isChanged(this.context, 'context') || isStateChanged) {
75
79
  childContext = Object.assign({}, parentContext);
76
80
  childContext[responsiveId] = this.state;
@@ -85,9 +89,9 @@ export class ResponsiveSender extends React.Component {
85
89
  ref: this.containerRef
86
90
  }, children));
87
91
  }
92
+
88
93
  }
89
- ResponsiveSender.defaultProps = {
90
- ...ResponsiveSender_defaultProps,
94
+ ResponsiveSender.defaultProps = { ...ResponsiveSender_defaultProps,
91
95
  responsiveId: defaultResponsiveId
92
96
  };
93
97
  ResponsiveSender.contextType = ResponsiveContext;
@@ -97,17 +101,20 @@ export function useResponsiveReceiver() {
97
101
  const [_, forceUpdate] = useState();
98
102
  let totalContextData = useContext(ResponsiveContext);
99
103
  let contextData = totalContextData[responsiveId] || totalContextData[defaultResponsiveId]; // NOTE: this for fallback of if responsive receiver id wrong
104
+
100
105
  let data = contextData;
101
106
  useEffect(() => {
102
107
  !contextData && windowResizeObserver.observe(forceUpdate);
103
108
  return () => !contextData && windowResizeObserver.unobserve(forceUpdate);
104
109
  }, [!!contextData]);
110
+
105
111
  if (!contextData) {
106
112
  data = {
107
113
  breakPoint: windowResizeObserver.getBreackPoint(),
108
114
  getWidth: () => windowResizeObserver.getSize().width
109
115
  };
110
116
  }
117
+
111
118
  const {
112
119
  breakPoint,
113
120
  getWidth
@@ -117,37 +124,45 @@ export function useResponsiveReceiver() {
117
124
  return {
118
125
  breakPoint,
119
126
  isTouchDevice,
127
+
120
128
  deviceBetween(breakPoint1, breakPoint2) {
121
129
  const width = getWidth();
130
+
122
131
  if (!width) {
123
132
  return false;
124
- }
125
- // const smallBreakPointIndex = sortedBreackPointKey.indexOf(breakPoint1);
133
+ } // const smallBreakPointIndex = sortedBreackPointKey.indexOf(breakPoint1);
126
134
  // const value1 = smallBreakPointIndex < 1 ? 0 : getBreakPointValue(sortedBreackPointKey[smallBreakPointIndex-1]);
135
+
136
+
127
137
  const value1 = getBreakPointValue(breakPoint1);
128
138
  const value2 = getBreakPointValue(breakPoint2);
139
+
129
140
  if (value1 > value2) {
130
141
  return this.deviceBetween(breakPoint2, breakPoint1);
131
142
  }
143
+
132
144
  return value1 <= width && value2 >= width || breakPoint1 === breakPoint || breakPoint2 === breakPoint;
133
145
  },
146
+
134
147
  deviceOnly() {
135
148
  let breakPoints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
136
149
  return breakPoints.includes(breakPoint);
137
150
  },
151
+
138
152
  deviceUpto(breakPoint) {
139
153
  const width = getWidth();
154
+
140
155
  if (!width) {
141
156
  return false;
142
157
  }
158
+
143
159
  return width <= getBreakPointValue(breakPoint);
144
160
  }
161
+
145
162
  };
146
163
  }, [breakPoint, getWidth]);
147
164
  return childArg;
148
- }
149
-
150
- // function ResponsiveReceiverFunc({ children, hiddenSizes }, ref) {
165
+ } // function ResponsiveReceiverFunc({ children, hiddenSizes }, ref) {
151
166
  // const { breakPoint, methods } = useResponsiveReceiver();
152
167
  // console.log(hiddenSizes);
153
168
  // return hiddenSizes.indexOf(breakPoint) === -1 ? (
@@ -173,8 +188,7 @@ export function ResponsiveReceiver(_ref) {
173
188
  ref: eleRef
174
189
  }, child) : child : null;
175
190
  }
176
- ResponsiveReceiver.defaultProps = {
177
- ...ResponsiveReceiver_defaultProps,
191
+ ResponsiveReceiver.defaultProps = { ...ResponsiveReceiver_defaultProps,
178
192
  responsiveId: defaultResponsiveId
179
193
  };
180
194
  ResponsiveReceiver.propTypes = ResponsiveReceiver_propTypes;
@@ -1,8 +1,9 @@
1
- export * from './Responsive';
2
- let Responsive = {
3
- docs: {
4
- componentGroup: 'Layout',
5
- folderName: 'Style Guide'
6
- }
7
- };
8
- export { Responsive };
1
+ export { ResponsiveSender as CustomResponsiveSender, ResponsiveReceiver as CustomResponsiveReceiver, useResponsiveReceiver as useCustomResponsiveReceiver } from './CustomResponsive';
2
+ export { ResponsiveSender, ResponsiveReceiver, useResponsiveReceiver } from './Responsive';
3
+ export { default as ResizeComponent } from './ResizeComponent'; // let Responsive = {
4
+ // docs: {
5
+ // componentGroup: 'Layout',
6
+ // folderName: 'Style Guide'
7
+ // }
8
+ // };
9
+ // export { Responsive };
@@ -4,34 +4,39 @@ const breakPointKeys = {
4
4
  minWidth: true,
5
5
  maxWidth: true
6
6
  };
7
+
7
8
  function isValideBreakPoint(breakPoint) {
8
9
  return Object.keys(breakPoint).every(key => breakPointKeys[key]);
9
10
  }
11
+
10
12
  function rangeCheck(minValue, maxValue, screenValue) {
11
13
  if (minValue === undefined) {
12
14
  if (maxValue === undefined) {
13
15
  return undefined;
14
16
  }
17
+
15
18
  return maxValue >= screenValue;
16
19
  }
20
+
17
21
  if (maxValue === undefined) {
18
22
  return minValue <= screenValue;
19
23
  }
24
+
20
25
  return minValue <= screenValue && maxValue >= screenValue;
21
26
  }
27
+
22
28
  function isTouchDeviceFunc() {
23
29
  // return window.matchMedia("(pointer: coarse)").matches
24
30
  return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
25
- }
26
-
27
- // export const isTouchDevice =
31
+ } // export const isTouchDevice =
28
32
  // 'ontouchstart' in window && navigator.userAgent.match(/mobi/i) ? true : false;
33
+
34
+
29
35
  export const isTouchDevice = isTouchDeviceFunc();
30
36
  export function isBreackPointMatched(object, screen) {
31
37
  if (!isValideBreakPoint(object)) {
32
38
  // eslint-disable-next-line no-console
33
- console.error('only minHeight,maxHeight,minWidth,maxWidth these keys are allowed, your object', JSON.stringify(object));
34
- // return;
39
+ console.error('only minHeight,maxHeight,minWidth,maxWidth these keys are allowed, your object', JSON.stringify(object)); // return;
35
40
  }
36
41
 
37
42
  const {
@@ -55,46 +60,59 @@ export class Subscribale {
55
60
  constructor() {
56
61
  this.subscribers = [];
57
62
  }
63
+
58
64
  connect() {}
65
+
59
66
  disconnect() {}
67
+
60
68
  subscribe(func) {
61
69
  this.subscribers.length && this.connect();
62
70
  this.subscribers.push(func);
63
71
  }
72
+
64
73
  unsubscribe(func) {
65
74
  this.subscribers = this.subscribers.filter(s => s !== func);
66
75
  this.subscribers.length && this.disconnect();
67
76
  }
77
+
68
78
  dispatch() {
69
79
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
70
80
  args[_key] = arguments[_key];
71
81
  }
82
+
72
83
  this.subscribers.forEach(subscriber => {
73
84
  subscriber(...args);
74
85
  });
75
86
  }
87
+
76
88
  }
89
+
77
90
  class InitSubscribale extends Subscribale {
78
91
  // must be OverWrite
79
- connect() {}
92
+ connect() {} // must be OverWrite
93
+
80
94
 
81
- // must be OverWrite
82
95
  disconnect() {}
96
+
83
97
  subscribe(func) {
84
98
  !this.subscribers.length && this.connect();
85
99
  super.subscribe(func);
86
100
  }
101
+
87
102
  unsubscribe(func) {
88
103
  super.unsubscribe(func);
89
104
  !this.subscribers.length && this.disconnect();
90
105
  }
106
+
91
107
  }
108
+
92
109
  export const windowResizeObserver = (() => {
93
110
  const subscribaleInstance = new InitSubscribale();
94
111
  let size = {
95
112
  heigth: window.innerHeight,
96
113
  width: window.innerWidth
97
114
  };
115
+
98
116
  function handleResize() {
99
117
  const newSize = {
100
118
  height: window.innerHeight,
@@ -103,13 +121,16 @@ export const windowResizeObserver = (() => {
103
121
  size = newSize;
104
122
  subscribaleInstance.dispatch(newSize);
105
123
  }
124
+
106
125
  function addResizeListener() {
107
126
  window.addEventListener('resize', handleResize);
108
127
  handleResize();
109
128
  }
129
+
110
130
  function removeResizeListener() {
111
131
  window.removeEventListener('resize', handleResize);
112
132
  }
133
+
113
134
  subscribaleInstance.connect = addResizeListener;
114
135
  subscribaleInstance.disconnect = removeResizeListener;
115
136
  return {