@zohodesk/components 1.2.23 → 1.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +7 -89
  5. package/es/Animation/utils.js +83 -0
  6. package/es/AppContainer/AppContainer.js +14 -3
  7. package/es/AppContainer/AppContainer.module.css +2 -2
  8. package/es/Avatar/Avatar.js +23 -11
  9. package/es/Avatar/Avatar.module.css +18 -18
  10. package/es/AvatarTeam/AvatarTeam.js +3 -3
  11. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  12. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
  13. package/es/Button/Button.js +4 -3
  14. package/es/Button/css/Button.module.css +70 -70
  15. package/es/Buttongroup/Buttongroup.js +3 -3
  16. package/es/Buttongroup/Buttongroup.module.css +13 -15
  17. package/es/Card/Card.js +21 -10
  18. package/es/CheckBox/CheckBox.js +5 -3
  19. package/es/CheckBox/CheckBox.module.css +15 -15
  20. package/es/DateTime/CalendarView.js +32 -20
  21. package/es/DateTime/DateTime.js +69 -6
  22. package/es/DateTime/DateTime.module.css +40 -40
  23. package/es/DateTime/DateTimePopupFooter.js +4 -1
  24. package/es/DateTime/DateTimePopupHeader.js +8 -2
  25. package/es/DateTime/DateWidget.js +98 -35
  26. package/es/DateTime/DateWidget.module.css +5 -5
  27. package/es/DateTime/DaysRow.js +4 -1
  28. package/es/DateTime/Time.js +10 -1
  29. package/es/DateTime/YearView.js +28 -4
  30. package/es/DateTime/YearView.module.css +15 -15
  31. package/es/DateTime/common.js +3 -0
  32. package/es/DateTime/constants.js +1 -0
  33. package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
  34. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  35. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  36. package/es/DateTime/dateFormatUtils/index.js +31 -1
  37. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  38. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  39. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  40. package/es/DateTime/objectUtils.js +14 -20
  41. package/es/DateTime/typeChecker.js +3 -0
  42. package/es/DateTime/validator.js +58 -6
  43. package/es/DropBox/DropBox.js +6 -2
  44. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  45. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  46. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  47. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  48. package/es/DropBox/css/DropBox.module.css +6 -6
  49. package/es/DropBox/props/defaultProps.js +1 -2
  50. package/es/DropBox/props/propTypes.js +1 -2
  51. package/es/DropDown/DropDown.js +7 -1
  52. package/es/DropDown/DropDown.module.css +2 -2
  53. package/es/DropDown/DropDownHeading.js +4 -5
  54. package/es/DropDown/DropDownHeading.module.css +6 -6
  55. package/es/DropDown/DropDownItem.js +6 -0
  56. package/es/DropDown/DropDownItem.module.css +12 -12
  57. package/es/DropDown/DropDownSearch.js +4 -0
  58. package/es/DropDown/DropDownSearch.module.css +3 -3
  59. package/es/DropDown/DropDownSeparator.js +1 -0
  60. package/es/DropDown/DropDownSeparator.module.css +2 -2
  61. package/es/DropDown/props/propTypes.js +1 -2
  62. package/es/Heading/Heading.js +2 -3
  63. package/es/Heading/Heading.module.css +2 -2
  64. package/es/Label/Label.js +2 -3
  65. package/es/Label/Label.module.css +5 -5
  66. package/es/Label/__tests__/Label.spec.js +1 -2
  67. package/es/Layout/Box.js +15 -2
  68. package/es/Layout/Container.js +14 -3
  69. package/es/Layout/Layout.module.css +15 -15
  70. package/es/Layout/index.js +1 -2
  71. package/es/Layout/utils.js +1 -0
  72. package/es/ListItem/ListContainer.js +8 -3
  73. package/es/ListItem/ListItem.js +9 -3
  74. package/es/ListItem/ListItem.module.css +27 -38
  75. package/es/ListItem/ListItemWithAvatar.js +9 -3
  76. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  77. package/es/ListItem/ListItemWithIcon.js +8 -3
  78. package/es/ListItem/ListItemWithRadio.js +7 -3
  79. package/es/Modal/Modal.js +28 -11
  80. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  81. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  82. package/es/MultiSelect/EmptyState.js +2 -0
  83. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  84. package/es/MultiSelect/MultiSelect.js +99 -30
  85. package/es/MultiSelect/MultiSelect.module.css +31 -31
  86. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  87. package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
  88. package/es/MultiSelect/SelectedOptions.js +6 -3
  89. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  90. package/es/MultiSelect/Suggestions.js +7 -3
  91. package/es/MultiSelect/props/propTypes.js +2 -2
  92. package/es/PopOver/PopOver.js +16 -0
  93. package/es/Popup/Popup.js +77 -24
  94. package/es/Popup/viewPort.js +16 -4
  95. package/es/Provider/IdProvider.js +10 -5
  96. package/es/Provider/LibraryContext.js +6 -4
  97. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  98. package/es/Provider/ZindexProvider.js +9 -2
  99. package/es/Radio/Radio.js +3 -0
  100. package/es/Radio/Radio.module.css +9 -9
  101. package/es/Responsive/CustomResponsive.js +30 -18
  102. package/es/Responsive/RefWrapper.js +6 -7
  103. package/es/Responsive/ResizeComponent.js +35 -25
  104. package/es/Responsive/ResizeObserver.js +26 -6
  105. package/es/Responsive/Responsive.js +34 -20
  106. package/es/Responsive/index.js +1 -3
  107. package/es/Responsive/sizeObservers.js +28 -7
  108. package/es/Responsive/utils/index.js +7 -5
  109. package/es/Responsive/utils/shallowCompare.js +7 -2
  110. package/es/Responsive/windowResizeObserver.js +7 -0
  111. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  112. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  113. package/es/ResponsiveDropBox/props/propTypes.js +1 -2
  114. package/es/Ribbon/Ribbon.js +3 -2
  115. package/es/Ribbon/Ribbon.module.css +45 -48
  116. package/es/RippleEffect/RippleEffect.js +1 -3
  117. package/es/Select/GroupSelect.js +58 -14
  118. package/es/Select/Select.js +79 -33
  119. package/es/Select/Select.module.css +23 -23
  120. package/es/Select/SelectWithAvatar.js +17 -4
  121. package/es/Select/SelectWithIcon.js +46 -5
  122. package/es/Select/props/propTypes.js +2 -2
  123. package/es/Stencils/Stencils.js +3 -3
  124. package/es/Stencils/Stencils.module.css +11 -11
  125. package/es/Switch/Switch.js +5 -3
  126. package/es/Switch/Switch.module.css +23 -23
  127. package/es/Tab/Tab.js +4 -4
  128. package/es/Tab/Tab.module.css +14 -14
  129. package/es/Tab/TabContent.js +1 -0
  130. package/es/Tab/TabContentWrapper.js +3 -0
  131. package/es/Tab/TabWrapper.js +5 -2
  132. package/es/Tab/Tabs.js +54 -7
  133. package/es/Tab/Tabs.module.css +22 -22
  134. package/es/Tag/Tag.js +6 -3
  135. package/es/Tag/Tag.module.css +24 -25
  136. package/es/TextBox/TextBox.js +16 -3
  137. package/es/TextBox/TextBox.module.css +9 -9
  138. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  139. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  140. package/es/TextBoxIcon/props/propTypes.js +1 -2
  141. package/es/Textarea/Textarea.js +12 -3
  142. package/es/Textarea/Textarea.module.css +21 -21
  143. package/es/Tooltip/Tooltip.js +58 -14
  144. package/es/Tooltip/Tooltip.module.css +5 -5
  145. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  146. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  147. package/es/common/animation.module.css +8 -8
  148. package/es/common/avatarsizes.module.css +16 -16
  149. package/es/common/basicReset.module.css +3 -3
  150. package/es/common/common.module.css +24 -24
  151. package/es/common/customscroll.module.css +2 -2
  152. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  153. package/es/semantic/Button/Button.js +3 -2
  154. package/es/semantic/Button/semanticButton.module.css +1 -1
  155. package/es/utils/Common.js +54 -9
  156. package/es/utils/ContextOptimizer.js +4 -5
  157. package/es/utils/constructFullName.js +2 -0
  158. package/es/utils/datetime/common.js +16 -5
  159. package/es/utils/debounce.js +5 -1
  160. package/es/utils/dropDownUtils.js +68 -11
  161. package/es/utils/getInitial.js +4 -0
  162. package/es/utils/shallowEqual.js +6 -0
  163. package/es/v1/Accordion/Accordion.js +4 -3
  164. package/es/v1/Accordion/AccordionItem.js +4 -2
  165. package/es/v1/Animation/Animation.js +5 -89
  166. package/es/v1/Animation/utils.js +83 -0
  167. package/es/v1/AppContainer/AppContainer.js +9 -3
  168. package/es/v1/Avatar/Avatar.js +18 -6
  169. package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
  170. package/es/v1/Button/Button.js +3 -3
  171. package/es/v1/Card/Card.js +16 -8
  172. package/es/v1/CheckBox/CheckBox.js +6 -3
  173. package/es/v1/DateTime/CalendarView.js +32 -20
  174. package/es/v1/DateTime/DateTime.js +69 -6
  175. package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
  176. package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
  177. package/es/v1/DateTime/DateWidget.js +98 -35
  178. package/es/v1/DateTime/DaysRow.js +4 -1
  179. package/es/v1/DateTime/Time.js +10 -1
  180. package/es/v1/DateTime/YearView.js +28 -4
  181. package/es/v1/DropBox/DropBox.js +6 -2
  182. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  183. package/es/v1/DropBox/props/defaultProps.js +1 -2
  184. package/es/v1/DropBox/props/propTypes.js +1 -2
  185. package/es/v1/DropDown/DropDown.js +3 -0
  186. package/es/v1/DropDown/DropDownHeading.js +2 -2
  187. package/es/v1/DropDown/DropDownItem.js +5 -0
  188. package/es/v1/DropDown/DropDownSearch.js +3 -2
  189. package/es/v1/DropDown/props/propTypes.js +1 -2
  190. package/es/v1/Heading/Heading.js +1 -3
  191. package/es/v1/Layout/Box.js +15 -2
  192. package/es/v1/Layout/Container.js +14 -3
  193. package/es/v1/ListItem/ListContainer.js +8 -3
  194. package/es/v1/ListItem/ListItem.js +10 -3
  195. package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
  196. package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
  197. package/es/v1/ListItem/ListItemWithIcon.js +9 -3
  198. package/es/v1/ListItem/ListItemWithRadio.js +8 -3
  199. package/es/v1/Modal/Modal.js +17 -1
  200. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
  201. package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
  202. package/es/v1/MultiSelect/EmptyState.js +2 -0
  203. package/es/v1/MultiSelect/MultiSelect.js +100 -31
  204. package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
  205. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
  206. package/es/v1/MultiSelect/SelectedOptions.js +6 -3
  207. package/es/v1/MultiSelect/Suggestions.js +7 -3
  208. package/es/v1/MultiSelect/props/propTypes.js +2 -2
  209. package/es/v1/PopOver/PopOver.js +11 -0
  210. package/es/v1/Popup/Popup.js +77 -24
  211. package/es/v1/Provider/IdProvider.js +10 -5
  212. package/es/v1/Provider/LibraryContext.js +6 -4
  213. package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
  214. package/es/v1/Provider/ZindexProvider.js +9 -2
  215. package/es/v1/Radio/Radio.js +5 -2
  216. package/es/v1/Responsive/CustomResponsive.js +30 -18
  217. package/es/v1/Responsive/RefWrapper.js +6 -7
  218. package/es/v1/Responsive/ResizeComponent.js +35 -25
  219. package/es/v1/Responsive/ResizeObserver.js +26 -6
  220. package/es/v1/Responsive/Responsive.js +34 -20
  221. package/es/v1/Responsive/index.js +1 -3
  222. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
  223. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
  224. package/es/v1/Select/GroupSelect.js +58 -14
  225. package/es/v1/Select/Select.js +81 -37
  226. package/es/v1/Select/SelectWithAvatar.js +17 -4
  227. package/es/v1/Select/SelectWithIcon.js +46 -5
  228. package/es/v1/Select/props/propTypes.js +2 -2
  229. package/es/v1/Stencils/Stencils.js +2 -0
  230. package/es/v1/Switch/Switch.js +6 -3
  231. package/es/v1/Tab/Tab.js +3 -3
  232. package/es/v1/Tab/TabContent.js +1 -0
  233. package/es/v1/Tab/TabContentWrapper.js +3 -0
  234. package/es/v1/Tab/TabWrapper.js +5 -2
  235. package/es/v1/Tab/Tabs.js +54 -9
  236. package/es/v1/Tab/v1Tab.module.css +14 -14
  237. package/es/v1/Tab/v1Tabs.module.css +22 -22
  238. package/es/v1/Tag/Tag.js +5 -1
  239. package/es/v1/TextBox/TextBox.js +14 -0
  240. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
  241. package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
  242. package/es/v1/Textarea/Textarea.js +10 -3
  243. package/es/v1/Tooltip/Tooltip.js +58 -14
  244. package/es/v1/Typography/Typography.js +2 -0
  245. package/es/v1/Typography/css/Typography.module.css +31 -31
  246. package/es/v1/Typography/css/cssJSLogic.js +3 -0
  247. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
  248. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
  249. package/es/v1/semantic/Button/Button.js +1 -2
  250. package/lib/Accordion/Accordion.js +42 -18
  251. package/lib/Accordion/AccordionItem.js +40 -18
  252. package/lib/Accordion/index.js +3 -0
  253. package/lib/Accordion/props/propTypes.js +3 -0
  254. package/lib/Animation/Animation.js +42 -104
  255. package/lib/Animation/props/propTypes.js +3 -0
  256. package/lib/Animation/utils.js +94 -0
  257. package/lib/AppContainer/AppContainer.js +58 -20
  258. package/lib/AppContainer/AppContainer.module.css +2 -2
  259. package/lib/AppContainer/props/propTypes.js +3 -0
  260. package/lib/Avatar/Avatar.js +78 -38
  261. package/lib/Avatar/Avatar.module.css +18 -18
  262. package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
  263. package/lib/Avatar/props/propTypes.js +3 -0
  264. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  265. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  266. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
  267. package/lib/AvatarTeam/props/propTypes.js +3 -0
  268. package/lib/Button/Button.js +33 -22
  269. package/lib/Button/__tests__/Button.spec.js +65 -48
  270. package/lib/Button/css/Button.module.css +70 -70
  271. package/lib/Button/css/cssJSLogic.js +18 -17
  272. package/lib/Button/index.js +3 -0
  273. package/lib/Button/props/defaultProps.js +2 -0
  274. package/lib/Button/props/propTypes.js +3 -0
  275. package/lib/Buttongroup/Buttongroup.js +32 -12
  276. package/lib/Buttongroup/Buttongroup.module.css +13 -15
  277. package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
  278. package/lib/Buttongroup/props/propTypes.js +3 -0
  279. package/lib/Card/Card.js +102 -46
  280. package/lib/Card/index.js +4 -0
  281. package/lib/Card/props/propTypes.js +3 -0
  282. package/lib/CheckBox/CheckBox.js +71 -47
  283. package/lib/CheckBox/CheckBox.module.css +15 -15
  284. package/lib/CheckBox/props/propTypes.js +3 -0
  285. package/lib/DateTime/CalendarView.js +82 -42
  286. package/lib/DateTime/DateTime.js +244 -156
  287. package/lib/DateTime/DateTime.module.css +40 -40
  288. package/lib/DateTime/DateTimePopupFooter.js +33 -8
  289. package/lib/DateTime/DateTimePopupHeader.js +49 -17
  290. package/lib/DateTime/DateWidget.js +350 -249
  291. package/lib/DateTime/DateWidget.module.css +5 -5
  292. package/lib/DateTime/DaysRow.js +28 -5
  293. package/lib/DateTime/Time.js +75 -32
  294. package/lib/DateTime/YearView.js +76 -27
  295. package/lib/DateTime/YearView.module.css +15 -15
  296. package/lib/DateTime/common.js +6 -0
  297. package/lib/DateTime/constants.js +1 -0
  298. package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
  299. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  300. package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
  301. package/lib/DateTime/dateFormatUtils/index.js +73 -16
  302. package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
  303. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  304. package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
  305. package/lib/DateTime/index.js +2 -0
  306. package/lib/DateTime/objectUtils.js +24 -20
  307. package/lib/DateTime/props/propTypes.js +11 -1
  308. package/lib/DateTime/typeChecker.js +4 -0
  309. package/lib/DateTime/validator.js +73 -10
  310. package/lib/DropBox/DropBox.js +45 -21
  311. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  312. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  313. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  314. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  315. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  316. package/lib/DropBox/css/DropBox.module.css +6 -6
  317. package/lib/DropBox/css/cssJSLogic.js +3 -1
  318. package/lib/DropBox/props/defaultProps.js +8 -4
  319. package/lib/DropBox/props/propTypes.js +10 -4
  320. package/lib/DropDown/DropDown.js +51 -5
  321. package/lib/DropDown/DropDown.module.css +2 -2
  322. package/lib/DropDown/DropDownHeading.js +39 -20
  323. package/lib/DropDown/DropDownHeading.module.css +6 -6
  324. package/lib/DropDown/DropDownItem.js +42 -20
  325. package/lib/DropDown/DropDownItem.module.css +12 -12
  326. package/lib/DropDown/DropDownSearch.js +40 -17
  327. package/lib/DropDown/DropDownSearch.module.css +3 -3
  328. package/lib/DropDown/DropDownSeparator.js +24 -4
  329. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  330. package/lib/DropDown/index.js +9 -0
  331. package/lib/DropDown/props/propTypes.js +10 -4
  332. package/lib/Heading/Heading.js +37 -15
  333. package/lib/Heading/Heading.module.css +2 -2
  334. package/lib/Heading/props/propTypes.js +3 -0
  335. package/lib/Label/Label.js +41 -21
  336. package/lib/Label/Label.module.css +5 -5
  337. package/lib/Label/__tests__/Label.spec.js +48 -34
  338. package/lib/Label/props/propTypes.js +3 -0
  339. package/lib/Layout/Box.js +35 -15
  340. package/lib/Layout/Container.js +33 -14
  341. package/lib/Layout/Layout.module.css +15 -15
  342. package/lib/Layout/index.js +3 -0
  343. package/lib/Layout/props/propTypes.js +3 -0
  344. package/lib/Layout/utils.js +11 -0
  345. package/lib/ListItem/ListContainer.js +55 -30
  346. package/lib/ListItem/ListItem.js +74 -45
  347. package/lib/ListItem/ListItem.module.css +27 -38
  348. package/lib/ListItem/ListItemWithAvatar.js +80 -48
  349. package/lib/ListItem/ListItemWithCheckBox.js +70 -40
  350. package/lib/ListItem/ListItemWithIcon.js +73 -44
  351. package/lib/ListItem/ListItemWithRadio.js +71 -42
  352. package/lib/ListItem/index.js +7 -0
  353. package/lib/ListItem/props/propTypes.js +6 -4
  354. package/lib/Modal/Modal.js +45 -10
  355. package/lib/Modal/props/propTypes.js +3 -0
  356. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
  357. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  358. package/lib/MultiSelect/EmptyState.js +45 -24
  359. package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  360. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  361. package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  362. package/lib/MultiSelect/MultiSelect.js +333 -214
  363. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  364. package/lib/MultiSelect/MultiSelectHeader.js +29 -7
  365. package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
  366. package/lib/MultiSelect/SelectedOptions.js +43 -17
  367. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  368. package/lib/MultiSelect/Suggestions.js +64 -32
  369. package/lib/MultiSelect/index.js +5 -0
  370. package/lib/MultiSelect/props/defaultProps.js +2 -0
  371. package/lib/MultiSelect/props/propTypes.js +14 -4
  372. package/lib/PopOver/PopOver.js +94 -47
  373. package/lib/PopOver/index.js +4 -0
  374. package/lib/PopOver/props/propTypes.js +3 -0
  375. package/lib/Popup/Popup.js +158 -81
  376. package/lib/Popup/viewPort.js +28 -14
  377. package/lib/Provider/AvatarSize.js +4 -0
  378. package/lib/Provider/Config.js +2 -0
  379. package/lib/Provider/CssProvider.js +4 -0
  380. package/lib/Provider/IdProvider.js +17 -6
  381. package/lib/Provider/LibraryContext.js +35 -15
  382. package/lib/Provider/LibraryContextInit.js +4 -0
  383. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  384. package/lib/Provider/ZindexProvider.js +15 -3
  385. package/lib/Provider/index.js +5 -0
  386. package/lib/Radio/Radio.js +60 -36
  387. package/lib/Radio/Radio.module.css +9 -9
  388. package/lib/Radio/__tests__/Radio.spec.js +134 -103
  389. package/lib/Radio/props/propTypes.js +3 -0
  390. package/lib/Responsive/CustomResponsive.js +73 -29
  391. package/lib/Responsive/RefWrapper.js +17 -11
  392. package/lib/Responsive/ResizeComponent.js +62 -36
  393. package/lib/Responsive/ResizeObserver.js +24 -10
  394. package/lib/Responsive/Responsive.js +80 -30
  395. package/lib/Responsive/index.js +4 -0
  396. package/lib/Responsive/props/propTypes.js +3 -0
  397. package/lib/Responsive/sizeObservers.js +53 -17
  398. package/lib/Responsive/utils/index.js +11 -3
  399. package/lib/Responsive/utils/shallowCompare.js +11 -2
  400. package/lib/Responsive/windowResizeObserver.js +8 -0
  401. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  402. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  403. package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
  404. package/lib/Ribbon/Ribbon.js +33 -13
  405. package/lib/Ribbon/Ribbon.module.css +45 -48
  406. package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
  407. package/lib/Ribbon/props/propTypes.js +3 -0
  408. package/lib/RippleEffect/RippleEffect.js +18 -10
  409. package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
  410. package/lib/RippleEffect/props/propTypes.js +3 -0
  411. package/lib/Select/GroupSelect.js +229 -130
  412. package/lib/Select/Select.js +295 -211
  413. package/lib/Select/Select.module.css +23 -23
  414. package/lib/Select/SelectWithAvatar.js +102 -56
  415. package/lib/Select/SelectWithIcon.js +131 -76
  416. package/lib/Select/index.js +5 -0
  417. package/lib/Select/props/defaultProps.js +5 -4
  418. package/lib/Select/props/propTypes.js +10 -4
  419. package/lib/Stencils/Stencils.js +29 -10
  420. package/lib/Stencils/Stencils.module.css +11 -11
  421. package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
  422. package/lib/Stencils/props/propTypes.js +3 -0
  423. package/lib/Switch/Switch.js +57 -34
  424. package/lib/Switch/Switch.module.css +23 -23
  425. package/lib/Switch/__tests__/Switch.spec.js +91 -72
  426. package/lib/Switch/props/propTypes.js +3 -0
  427. package/lib/Tab/Tab.js +40 -27
  428. package/lib/Tab/Tab.module.css +14 -14
  429. package/lib/Tab/TabContent.js +12 -5
  430. package/lib/Tab/TabContentWrapper.js +16 -8
  431. package/lib/Tab/TabWrapper.js +37 -19
  432. package/lib/Tab/Tabs.js +171 -91
  433. package/lib/Tab/Tabs.module.css +22 -22
  434. package/lib/Tab/index.js +6 -0
  435. package/lib/Tab/props/propTypes.js +3 -0
  436. package/lib/Tag/Tag.js +72 -43
  437. package/lib/Tag/Tag.module.css +24 -25
  438. package/lib/Tag/props/propTypes.js +3 -0
  439. package/lib/TextBox/TextBox.js +86 -60
  440. package/lib/TextBox/TextBox.module.css +9 -9
  441. package/lib/TextBox/props/propTypes.js +6 -4
  442. package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
  443. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  444. package/lib/TextBoxIcon/props/propTypes.js +9 -4
  445. package/lib/Textarea/Textarea.js +54 -29
  446. package/lib/Textarea/Textarea.module.css +21 -21
  447. package/lib/Textarea/props/propTypes.js +3 -0
  448. package/lib/Tooltip/Tooltip.js +94 -31
  449. package/lib/Tooltip/Tooltip.module.css +5 -5
  450. package/lib/Tooltip/props/propTypes.js +3 -0
  451. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  452. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  453. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  454. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  455. package/lib/VelocityAnimation/index.js +3 -0
  456. package/lib/common/animation.module.css +8 -8
  457. package/lib/common/avatarsizes.module.css +16 -16
  458. package/lib/common/basicReset.module.css +3 -3
  459. package/lib/common/common.module.css +24 -24
  460. package/lib/common/customscroll.module.css +2 -2
  461. package/lib/css.js +40 -0
  462. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  463. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  464. package/lib/index.js +58 -0
  465. package/lib/semantic/Button/Button.js +42 -22
  466. package/lib/semantic/Button/props/propTypes.js +3 -0
  467. package/lib/semantic/Button/semanticButton.module.css +1 -1
  468. package/lib/semantic/index.js +2 -0
  469. package/lib/utils/Common.js +111 -18
  470. package/lib/utils/ContextOptimizer.js +16 -10
  471. package/lib/utils/constructFullName.js +13 -4
  472. package/lib/utils/datetime/common.js +34 -5
  473. package/lib/utils/debounce.js +6 -1
  474. package/lib/utils/dropDownUtils.js +175 -59
  475. package/lib/utils/dummyFunction.js +2 -0
  476. package/lib/utils/getHTMLFontSize.js +1 -0
  477. package/lib/utils/getInitial.js +6 -0
  478. package/lib/utils/index.js +1 -0
  479. package/lib/utils/scrollTo.js +2 -0
  480. package/lib/utils/shallowEqual.js +8 -0
  481. package/lib/v1/Accordion/Accordion.js +38 -19
  482. package/lib/v1/Accordion/AccordionItem.js +23 -13
  483. package/lib/v1/Accordion/index.js +3 -0
  484. package/lib/v1/Accordion/props/propTypes.js +3 -0
  485. package/lib/v1/Animation/Animation.js +24 -100
  486. package/lib/v1/Animation/props/propTypes.js +3 -0
  487. package/lib/v1/Animation/utils.js +94 -0
  488. package/lib/v1/AppContainer/AppContainer.js +46 -17
  489. package/lib/v1/AppContainer/props/propTypes.js +3 -0
  490. package/lib/v1/Avatar/Avatar.js +68 -32
  491. package/lib/v1/Avatar/props/propTypes.js +3 -0
  492. package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
  493. package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
  494. package/lib/v1/Button/Button.js +32 -22
  495. package/lib/v1/Button/props/defaultProps.js +2 -0
  496. package/lib/v1/Button/props/propTypes.js +3 -0
  497. package/lib/v1/Buttongroup/Buttongroup.js +13 -5
  498. package/lib/v1/Buttongroup/props/propTypes.js +3 -0
  499. package/lib/v1/Card/Card.js +78 -44
  500. package/lib/v1/Card/index.js +4 -0
  501. package/lib/v1/Card/props/propTypes.js +3 -0
  502. package/lib/v1/CheckBox/CheckBox.js +52 -41
  503. package/lib/v1/CheckBox/props/propTypes.js +3 -0
  504. package/lib/v1/DateTime/CalendarView.js +89 -48
  505. package/lib/v1/DateTime/DateTime.js +246 -158
  506. package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
  507. package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
  508. package/lib/v1/DateTime/DateWidget.js +352 -251
  509. package/lib/v1/DateTime/DaysRow.js +28 -5
  510. package/lib/v1/DateTime/Time.js +75 -32
  511. package/lib/v1/DateTime/YearView.js +76 -27
  512. package/lib/v1/DateTime/index.js +2 -0
  513. package/lib/v1/DateTime/props/propTypes.js +11 -1
  514. package/lib/v1/DropBox/DropBox.js +45 -21
  515. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  516. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
  517. package/lib/v1/DropBox/props/defaultProps.js +8 -4
  518. package/lib/v1/DropBox/props/propTypes.js +10 -4
  519. package/lib/v1/DropDown/DropDown.js +23 -3
  520. package/lib/v1/DropDown/DropDownHeading.js +20 -13
  521. package/lib/v1/DropDown/DropDownItem.js +26 -11
  522. package/lib/v1/DropDown/DropDownSearch.js +28 -16
  523. package/lib/v1/DropDown/DropDownSeparator.js +7 -1
  524. package/lib/v1/DropDown/props/propTypes.js +10 -4
  525. package/lib/v1/Heading/Heading.js +19 -14
  526. package/lib/v1/Heading/props/propTypes.js +3 -0
  527. package/lib/v1/Label/Label.js +22 -14
  528. package/lib/v1/Label/props/propTypes.js +3 -0
  529. package/lib/v1/Layout/Box.js +35 -15
  530. package/lib/v1/Layout/Container.js +33 -14
  531. package/lib/v1/Layout/index.js +3 -0
  532. package/lib/v1/Layout/props/propTypes.js +3 -0
  533. package/lib/v1/ListItem/ListContainer.js +55 -30
  534. package/lib/v1/ListItem/ListItem.js +53 -38
  535. package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
  536. package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
  537. package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
  538. package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
  539. package/lib/v1/ListItem/index.js +7 -0
  540. package/lib/v1/ListItem/props/propTypes.js +6 -4
  541. package/lib/v1/Modal/Modal.js +46 -9
  542. package/lib/v1/Modal/props/propTypes.js +3 -0
  543. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
  544. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
  545. package/lib/v1/MultiSelect/EmptyState.js +45 -24
  546. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  547. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  548. package/lib/v1/MultiSelect/MultiSelect.js +335 -216
  549. package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
  550. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
  551. package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
  552. package/lib/v1/MultiSelect/Suggestions.js +64 -32
  553. package/lib/v1/MultiSelect/index.js +5 -0
  554. package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
  555. package/lib/v1/MultiSelect/props/propTypes.js +14 -4
  556. package/lib/v1/PopOver/PopOver.js +71 -40
  557. package/lib/v1/PopOver/props/propTypes.js +3 -0
  558. package/lib/v1/Popup/Popup.js +158 -81
  559. package/lib/v1/Provider/AvatarSize.js +4 -0
  560. package/lib/v1/Provider/Config.js +2 -0
  561. package/lib/v1/Provider/CssProvider.js +4 -0
  562. package/lib/v1/Provider/IdProvider.js +17 -6
  563. package/lib/v1/Provider/LibraryContext.js +35 -15
  564. package/lib/v1/Provider/LibraryContextInit.js +4 -0
  565. package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
  566. package/lib/v1/Provider/ZindexProvider.js +15 -3
  567. package/lib/v1/Provider/index.js +5 -0
  568. package/lib/v1/Radio/Radio.js +42 -32
  569. package/lib/v1/Radio/props/propTypes.js +3 -0
  570. package/lib/v1/Responsive/CustomResponsive.js +73 -29
  571. package/lib/v1/Responsive/RefWrapper.js +17 -11
  572. package/lib/v1/Responsive/ResizeComponent.js +62 -36
  573. package/lib/v1/Responsive/ResizeObserver.js +24 -10
  574. package/lib/v1/Responsive/Responsive.js +80 -30
  575. package/lib/v1/Responsive/index.js +4 -0
  576. package/lib/v1/Responsive/props/propTypes.js +3 -0
  577. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
  578. package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
  579. package/lib/v1/Ribbon/Ribbon.js +14 -7
  580. package/lib/v1/Ribbon/props/propTypes.js +3 -0
  581. package/lib/v1/RippleEffect/RippleEffect.js +17 -7
  582. package/lib/v1/RippleEffect/props/propTypes.js +3 -0
  583. package/lib/v1/Select/GroupSelect.js +229 -130
  584. package/lib/v1/Select/Select.js +297 -214
  585. package/lib/v1/Select/SelectWithAvatar.js +102 -56
  586. package/lib/v1/Select/SelectWithIcon.js +131 -76
  587. package/lib/v1/Select/index.js +5 -0
  588. package/lib/v1/Select/props/defaultProps.js +5 -4
  589. package/lib/v1/Select/props/propTypes.js +10 -4
  590. package/lib/v1/Stencils/Stencils.js +13 -3
  591. package/lib/v1/Stencils/props/propTypes.js +3 -0
  592. package/lib/v1/Switch/Switch.js +38 -25
  593. package/lib/v1/Switch/props/propTypes.js +3 -0
  594. package/lib/v1/Tab/Tab.js +40 -27
  595. package/lib/v1/Tab/TabContent.js +12 -5
  596. package/lib/v1/Tab/TabContentWrapper.js +16 -8
  597. package/lib/v1/Tab/TabWrapper.js +37 -19
  598. package/lib/v1/Tab/Tabs.js +170 -83
  599. package/lib/v1/Tab/index.js +6 -0
  600. package/lib/v1/Tab/props/propTypes.js +3 -0
  601. package/lib/v1/Tab/v1Tab.module.css +14 -14
  602. package/lib/v1/Tab/v1Tabs.module.css +22 -22
  603. package/lib/v1/Tag/Tag.js +50 -32
  604. package/lib/v1/Tag/props/propTypes.js +3 -0
  605. package/lib/v1/TextBox/TextBox.js +70 -47
  606. package/lib/v1/TextBox/props/propTypes.js +6 -4
  607. package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
  608. package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
  609. package/lib/v1/Textarea/Textarea.js +45 -28
  610. package/lib/v1/Textarea/props/propTypes.js +3 -0
  611. package/lib/v1/Tooltip/Tooltip.js +94 -31
  612. package/lib/v1/Tooltip/props/propTypes.js +3 -0
  613. package/lib/v1/Typography/Typography.js +26 -15
  614. package/lib/v1/Typography/css/Typography.module.css +31 -31
  615. package/lib/v1/Typography/css/cssJSLogic.js +25 -20
  616. package/lib/v1/Typography/props/propTypes.js +3 -0
  617. package/lib/v1/Typography/utils/index.js +1 -0
  618. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
  619. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  620. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
  621. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  622. package/lib/v1/semantic/Button/Button.js +24 -18
  623. package/lib/v1/semantic/Button/props/propTypes.js +3 -0
  624. package/lib/v1/semantic/index.js +2 -0
  625. package/package.json +2 -2
  626. package/result.json +1 -1
  627. package/.DS_Store +0 -0
package/es/Popup/Popup.js CHANGED
@@ -1,16 +1,18 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  /**** Libraries ****/
3
4
  import React from 'react';
4
5
  import PropTypes from 'prop-types';
5
6
  import hoistStatics from 'hoist-non-react-statics';
6
-
7
7
  /**** Methods ****/
8
+
8
9
  import { debounce, isDescendant, isTextSelected, cancelBubblingEffect } from '../utils/Common.js';
9
10
  import viewPort from './viewPort';
10
11
  import { absolutePositionMapping, rtlAbsolutePositionMapping, rtlFixedPositionMapping } from './PositionMapping.json';
11
12
  import ResizeObserver from '@zohodesk/virtualizer/lib/commons/ResizeObserver.js';
12
13
  let lastOpenedGroup = [];
13
14
  let popups = {};
15
+
14
16
  global.closeGroupPopups = function (groupName) {
15
17
  const groupPopups = popups[groupName] || [];
16
18
  groupPopups.forEach(popup => {
@@ -20,6 +22,7 @@ global.closeGroupPopups = function (groupName) {
20
22
  });
21
23
  });
22
24
  };
25
+
23
26
  const defaultState = {
24
27
  position: 'bottomCenter',
25
28
  height: '0px',
@@ -33,8 +36,8 @@ const defaultState = {
33
36
  //{height: ‘’, width: ‘’,}
34
37
  isAbsolutePositioningNeeded: true
35
38
  };
36
-
37
39
  /* eslint-disable react/no-deprecated */
40
+
38
41
  /* eslint-disable react/prop-types */
39
42
 
40
43
  const Popup = function (Component) {
@@ -47,6 +50,7 @@ const Popup = function (Component) {
47
50
  scrollDebounceTime: popupScrollDebounceTime = 0,
48
51
  closeOnScroll: closeOnScrollPopup = false
49
52
  } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
53
+
50
54
  class Popup extends React.Component {
51
55
  constructor(props) {
52
56
  super(props);
@@ -87,9 +91,8 @@ const Popup = function (Component) {
87
91
  this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
88
92
  this.handleDocumentFocus = this.handleDocumentFocus.bind(this);
89
93
  this.handleGetNeedPrevent = this.handleGetNeedPrevent.bind(this);
90
- this.popupObserver = new ResizeObserver(this.handlePopupResize);
94
+ this.popupObserver = new ResizeObserver(this.handlePopupResize); //dropBoxSize
91
95
 
92
- //dropBoxSize
93
96
  this.size = null;
94
97
  this.isAbsolutePopup = isAbsolutePopup;
95
98
  this.needPopupArrow = needPopupArrow;
@@ -101,25 +104,29 @@ const Popup = function (Component) {
101
104
  } = this.getScrollDebounceTime(this);
102
105
  this.handleScroll = debounce(this.handleScroll.bind(this), scrollDebounceTime);
103
106
  }
107
+
104
108
  componentDidMount() {
105
109
  const group = this.getGroup();
106
110
  const groupPopups = popups[group] || [];
107
111
  groupPopups.push(this);
108
112
  popups[group] = groupPopups;
113
+
109
114
  if (Object.keys(popups).length === 1 && groupPopups.length === 1) {
110
115
  document.addEventListener('click', this.documentClickHandler, false);
111
- document.addEventListener('keyup', this.documentKeyupHandler, false);
112
- // document.addEventListener('scroll', this.handleScroll, true);
116
+ document.addEventListener('keyup', this.documentKeyupHandler, false); // document.addEventListener('scroll', this.handleScroll, true);
117
+
113
118
  window.addEventListener('resize', this.handleResize);
114
119
  document.addEventListener('click', this.documentClickHandler1, true);
115
120
  document.addEventListener('mousedown', this.handleDocumentMouseDown, true);
116
121
  document.addEventListener('focus', this.handleDocumentFocus, true);
117
122
  }
118
123
  }
124
+
119
125
  componentWillReceiveProps(nextProps) {
120
126
  const {
121
127
  isPopupOpen
122
128
  } = this.state;
129
+
123
130
  if (typeof nextProps.isPopupOpen !== 'undefined' && nextProps.isPopupOpen !== isPopupOpen) {
124
131
  this.setState({
125
132
  isPopupOpen: nextProps.isPopupOpen,
@@ -127,6 +134,7 @@ const Popup = function (Component) {
127
134
  });
128
135
  }
129
136
  }
137
+
130
138
  componentDidUpdate(prevProps, prevState) {
131
139
  const {
132
140
  isPopupReady
@@ -140,6 +148,7 @@ const Popup = function (Component) {
140
148
  const {
141
149
  needResizeHandling: propResizeHandling
142
150
  } = this.props;
151
+
143
152
  if (oldStateOpen !== isPopupReady) {
144
153
  if (isPopupReady && dropElement && (propResizeHandling !== undefined ? propResizeHandling : needResizeHandling)) {
145
154
  this.popupObserver.replaceObservationElement(dropElement);
@@ -149,6 +158,7 @@ const Popup = function (Component) {
149
158
  }
150
159
  }
151
160
  }
161
+
152
162
  componentWillUnmount() {
153
163
  const group = this.getGroup();
154
164
  popups = Object.keys(popups).reduce((res, groupName) => {
@@ -158,34 +168,40 @@ const Popup = function (Component) {
158
168
  newGroupPopups.length === 0 && lastOpenedGroup.indexOf(group) >= 0 && lastOpenedGroup.splice(lastOpenedGroup.indexOf(group), 1);
159
169
  res[group] = newGroupPopups;
160
170
  }
171
+
161
172
  return res;
162
173
  }, popups);
163
174
  let noPopups = true;
175
+
164
176
  for (const i in popups) {
165
177
  if (popups[i].length >= 1) {
166
178
  noPopups = false;
167
179
  break;
168
180
  }
169
181
  }
182
+
170
183
  if (this.popupObserver) {
171
184
  this.popupObserver.disconnect();
172
185
  }
186
+
173
187
  if (noPopups) {
174
188
  document.removeEventListener('click', this.documentClickHandler);
175
- document.removeEventListener('keyup', this.documentKeyupHandler);
176
- // document.removeEventListener('scroll', this.handleScroll);
189
+ document.removeEventListener('keyup', this.documentKeyupHandler); // document.removeEventListener('scroll', this.handleScroll);
190
+
177
191
  window.removeEventListener('resize', this.handleResize);
178
192
  document.removeEventListener('click', this.documentClickHandler1, true);
179
193
  document.removeEventListener('mousedown', this.handleDocumentMouseDown, true);
180
194
  document.removeEventListener('focus', this.handleDocumentFocus, true);
181
195
  }
182
196
  }
197
+
183
198
  getGroup() {
184
199
  const {
185
200
  popupGroup
186
201
  } = this.props;
187
202
  return popupGroup || group;
188
203
  }
204
+
189
205
  getNeedArrow(popup) {
190
206
  const {
191
207
  isArrow
@@ -195,6 +211,7 @@ const Popup = function (Component) {
195
211
  } = popup;
196
212
  return isArrow !== undefined ? isArrow : needPopupArrow;
197
213
  }
214
+
198
215
  getScrollDebounceTime(popup) {
199
216
  const {
200
217
  scrollDebounceTime
@@ -204,6 +221,7 @@ const Popup = function (Component) {
204
221
  } = popup;
205
222
  return scrollDebounceTime !== undefined ? scrollDebounceTime : popupScrollDebounceTime;
206
223
  }
224
+
207
225
  getCloseOnScrollPopup(popup) {
208
226
  const {
209
227
  closeOnScroll
@@ -213,6 +231,7 @@ const Popup = function (Component) {
213
231
  } = popup;
214
232
  return closeOnScroll !== undefined ? closeOnScroll : closeOnScrollPopup;
215
233
  }
234
+
216
235
  getIsAbsolutePopup(popup) {
217
236
  const {
218
237
  isAbsolutePositioningNeeded
@@ -222,6 +241,7 @@ const Popup = function (Component) {
222
241
  } = popup;
223
242
  return isAbsolutePositioningNeeded !== undefined ? isAbsolutePositioningNeeded : isAbsolutePopup;
224
243
  }
244
+
225
245
  getCustomPositionOrder(popup) {
226
246
  const {
227
247
  customOrder = []
@@ -231,6 +251,7 @@ const Popup = function (Component) {
231
251
  } = popup;
232
252
  return customOrder.length !== 0 ? customOrder : customPositionOrder;
233
253
  }
254
+
234
255
  togglePopup(e, defaultPosition) {
235
256
  const group = this.getGroup();
236
257
  this.removeClose(e);
@@ -248,6 +269,7 @@ const Popup = function (Component) {
248
269
  });
249
270
  }
250
271
  });
272
+
251
273
  if (isPopupOpen) {
252
274
  this.setState({
253
275
  isPopupOpen: false,
@@ -257,18 +279,21 @@ const Popup = function (Component) {
257
279
  this.handlePopupPosition(defaultPosition);
258
280
  }
259
281
  }
282
+
260
283
  openPopupOnly(e, defaultPosition) {
261
284
  const group = this.getGroup();
262
285
  this.removeClose(e);
263
286
  lastOpenedGroup = lastOpenedGroup.indexOf(group) === -1 ? [group, ...lastOpenedGroup] : lastOpenedGroup;
264
287
  this.handlePopupPosition(defaultPosition);
265
288
  }
289
+
266
290
  closePopupOnly(e) {
267
291
  this.removeClose(e);
268
292
  lastOpenedGroup.splice(0, 1);
269
293
  const {
270
294
  isPopupOpen
271
295
  } = this.state;
296
+
272
297
  if (isPopupOpen) {
273
298
  this.setState({
274
299
  isPopupOpen: false,
@@ -276,6 +301,7 @@ const Popup = function (Component) {
276
301
  });
277
302
  }
278
303
  }
304
+
279
305
  handleCloseLastOpenedGroup() {
280
306
  const groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] || [] : [];
281
307
  lastOpenedGroup.splice(0, 1);
@@ -286,64 +312,74 @@ const Popup = function (Component) {
286
312
  });
287
313
  });
288
314
  }
315
+
289
316
  handleDocumentMouseDown(e) {
290
317
  const needPrevent = this.handleGetNeedPrevent(e);
318
+
291
319
  if (needPrevent) {
292
320
  this.removeClose(e);
293
321
  }
294
322
  }
323
+
295
324
  handleDocumentFocus(e) {
296
325
  const needPrevent = this.handleGetNeedPrevent(e);
326
+
297
327
  if (needPrevent) {
298
328
  this.removeClose(e);
299
329
  }
300
330
  }
331
+
301
332
  handleGetNeedPrevent(e) {
302
333
  let needPrevent = false;
334
+
303
335
  if (lastOpenedGroup.length > 1) {
304
336
  const {
305
337
  target
306
338
  } = e;
307
339
  const groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] : [];
308
- let openedPopup = null;
309
- // eslint-disable-next-line guard-for-in
340
+ let openedPopup = null; // eslint-disable-next-line guard-for-in
341
+
310
342
  for (const i in groupPopups) {
311
343
  const {
312
344
  isPopupOpen
313
345
  } = groupPopups[i].state;
346
+
314
347
  if (isPopupOpen) {
315
348
  openedPopup = groupPopups[i];
316
349
  break;
317
350
  }
318
351
  }
352
+
319
353
  if (openedPopup) {
320
354
  const {
321
355
  dropElement,
322
356
  placeHolderElement
323
357
  } = openedPopup;
324
358
  const isDropBoxChild = isDescendant(dropElement, target);
325
- const isTargetChild = isDescendant(placeHolderElement, target);
326
- // const isPopupMassUpdateChild = isDescendant(
359
+ const isTargetChild = isDescendant(placeHolderElement, target); // const isPopupMassUpdateChild = isDescendant(
327
360
  // massUpdateParent,
328
361
  // dropElement
329
362
  // );
330
363
 
331
- if (!isDropBoxChild && !isTargetChild
332
- // && isPopupMassUpdateChild
364
+ if (!isDropBoxChild && !isTargetChild // && isPopupMassUpdateChild
333
365
  ) {
334
366
  needPrevent = true;
335
367
  }
336
368
  }
337
369
  }
370
+
338
371
  return needPrevent;
339
372
  }
373
+
340
374
  documentClickHandler1(e) {
341
375
  const needPrevent = this.handleGetNeedPrevent(e);
376
+
342
377
  if (needPrevent) {
343
378
  this.removeClose(e);
344
379
  this.handleCloseLastOpenedGroup();
345
380
  }
346
381
  }
382
+
347
383
  documentClickHandler() {
348
384
  try {
349
385
  Object.keys(popups).forEach(groupName => {
@@ -356,25 +392,26 @@ const Popup = function (Component) {
356
392
  });
357
393
  });
358
394
  lastOpenedGroup = [];
359
- } catch (e) {
360
- // eslint-disable-next-line no-console
395
+ } catch (e) {// eslint-disable-next-line no-console
361
396
  //console.error('popup component not unmounted properly', e);
362
397
  }
363
398
  }
399
+
364
400
  documentKeyupHandler(e) {
365
401
  try {
366
402
  if (e.keyCode === 27) {
367
403
  this.handleCloseLastOpenedGroup();
368
404
  }
369
- } catch (e) {
370
- // eslint-disable-next-line no-console
405
+ } catch (e) {// eslint-disable-next-line no-console
371
406
  //console.log('error', e);
372
407
  }
373
408
  }
409
+
374
410
  removeClose(e) {
375
411
  // e && e.preventDefault && e.preventDefault();
376
412
  cancelBubblingEffect(e);
377
413
  }
414
+
378
415
  handlePopupPosition() {
379
416
  let defaultPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bottomCenter';
380
417
  let isResizeHandling = arguments.length > 1 ? arguments[1] : undefined;
@@ -389,11 +426,13 @@ const Popup = function (Component) {
389
426
  const needArrow = this.getNeedArrow(this);
390
427
  const isAbsolute = this.getIsAbsolutePopup(this);
391
428
  const customOrder = this.getCustomPositionOrder(this);
429
+
392
430
  if (direction === 'rtl') {
393
431
  defaultPosition = isAbsolute ? rtlAbsolutePositionMapping[defaultPosition] : rtlFixedPositionMapping[defaultPosition];
394
432
  } else {
395
433
  defaultPosition = isAbsolute ? absolutePositionMapping[defaultPosition] : defaultPosition;
396
434
  }
435
+
397
436
  if (!placeHolderElement && !dropElement) {
398
437
  this.setState({
399
438
  isPopupOpen: true,
@@ -401,6 +440,7 @@ const Popup = function (Component) {
401
440
  });
402
441
  return;
403
442
  }
443
+
404
444
  const setPosition = () => {
405
445
  requestAnimationFrame(() => {
406
446
  const {
@@ -424,6 +464,7 @@ const Popup = function (Component) {
424
464
  targetOffset,
425
465
  popupOffset
426
466
  } = betterPosition || {};
467
+
427
468
  if (position !== view || !isPopupReady) {
428
469
  this.setState({
429
470
  isPopupReady: true,
@@ -437,6 +478,7 @@ const Popup = function (Component) {
437
478
  }
438
479
  });
439
480
  };
481
+
440
482
  if (isResizeHandling) {
441
483
  setPosition();
442
484
  } else {
@@ -447,6 +489,7 @@ const Popup = function (Component) {
447
489
  }, setPosition);
448
490
  }
449
491
  }
492
+
450
493
  handleOpenPopupPositionChange() {
451
494
  Object.keys(popups).forEach(groupName => {
452
495
  const groupPopups = popups[groupName] || [];
@@ -461,6 +504,7 @@ const Popup = function (Component) {
461
504
  position,
462
505
  positionsOffset = {}
463
506
  } = popup.state;
507
+
464
508
  if (placeHolderElement && dropElement) {
465
509
  const scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
466
510
  requestAnimationFrame(() => {
@@ -487,9 +531,7 @@ const Popup = function (Component) {
487
531
  left = '',
488
532
  top = ''
489
533
  } = viewsOffset[view] || {};
490
- const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top;
491
-
492
- // let isInViewPort = viewPort.isInViewPort(
534
+ const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top; // let isInViewPort = viewPort.isInViewPort(
493
535
  // placeHolderElement,
494
536
  // scrollContainer
495
537
  // );
@@ -503,9 +545,7 @@ const Popup = function (Component) {
503
545
  popupOffset,
504
546
  isAbsolutePositioningNeeded: isAbsolute
505
547
  });
506
- }
507
-
508
- // if (!isInViewPort && !isAbsolute) {
548
+ } // if (!isInViewPort && !isAbsolute) {
509
549
  // popup.setState({ isPopupOpen: false, isPopupReady: false });
510
550
  // } else if (view && changeState) {
511
551
  // popup.setState({
@@ -517,6 +557,7 @@ const Popup = function (Component) {
517
557
  // isAbsolutePositioningNeeded: isAbsolute
518
558
  // });
519
559
  // }
560
+
520
561
  });
521
562
  }
522
563
  }
@@ -527,6 +568,7 @@ const Popup = function (Component) {
527
568
  handleResize() {
528
569
  this.handleOpenPopupPositionChange();
529
570
  }
571
+
530
572
  handleScroll(e) {
531
573
  // this.handleOpenPopupPositionChange();
532
574
  const {
@@ -535,14 +577,17 @@ const Popup = function (Component) {
535
577
  const {
536
578
  isPopupReady
537
579
  } = this.state;
580
+
538
581
  if (isPopupReady) {
539
582
  console.log('onscrollPopupREady');
540
583
  }
584
+
541
585
  if (isPopupReady && closeOnScroll) {
542
586
  console.log(this, 'handle Scroll');
543
587
  this.togglePopup(e);
544
588
  }
545
589
  }
590
+
546
591
  handlePopupResize(popupSize) {
547
592
  const {
548
593
  height,
@@ -556,17 +601,22 @@ const Popup = function (Component) {
556
601
  isPopupReady,
557
602
  position
558
603
  } = this.state;
604
+
559
605
  if (isPopupReady && this.size && (oldHeight !== height || width !== oldWidth)) {
560
606
  this.handlePopupPosition(position, true);
561
607
  }
608
+
562
609
  this.size = popupSize;
563
610
  }
611
+
564
612
  getTargetRef(el) {
565
613
  this.placeHolderElement = el;
566
614
  }
615
+
567
616
  getContainerRef(el) {
568
617
  this.dropElement = el;
569
618
  }
619
+
570
620
  render() {
571
621
  const {
572
622
  isPopupReady,
@@ -582,11 +632,14 @@ const Popup = function (Component) {
582
632
  getContainerRef: this.getContainerRef
583
633
  }));
584
634
  }
635
+
585
636
  }
637
+
586
638
  Popup.displayName = Component.displayName || Component.name || Popup.name;
587
639
  Popup.contextTypes = {
588
640
  direction: PropTypes.string
589
641
  };
590
642
  return hoistStatics(Popup, Component);
591
643
  };
644
+
592
645
  export default Popup;
@@ -4,6 +4,7 @@ let viewPort = {
4
4
  if (!el) {
5
5
  return;
6
6
  }
7
+
7
8
  let rectTemp = el.getBoundingClientRect();
8
9
  let rect = {
9
10
  height: rectTemp.height || el.clientHeight,
@@ -26,9 +27,11 @@ let viewPort = {
26
27
  x: 0,
27
28
  y: 0
28
29
  };
30
+
29
31
  if (customFrame) {
30
32
  customFrameRect = customFrame.getBoundingClientRect();
31
33
  }
34
+
32
35
  let newRect = {
33
36
  top: rect.top - customFrameRect.top,
34
37
  left: rect.left - customFrameRect.left,
@@ -61,6 +64,7 @@ let viewPort = {
61
64
  if (!el) {
62
65
  return;
63
66
  }
67
+
64
68
  let elRects = viewPort.frameRelativeRects(el, customFrame);
65
69
  let {
66
70
  rect
@@ -78,9 +82,11 @@ let viewPort = {
78
82
  needArrow,
79
83
  isAbsolute
80
84
  } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
85
+
81
86
  if (!el) {
82
87
  return;
83
88
  }
89
+
84
90
  let elViewPortEle = viewPort.getViewPortEle(el);
85
91
  let elRects = viewPort.frameRelativeRects(el, customFrame, elViewPortEle);
86
92
  let {
@@ -95,13 +101,12 @@ let viewPort = {
95
101
  let relativeBoxDocumentRects = viewPort.frameRelativeRects(relativeBox, customFrame);
96
102
  let {
97
103
  rectGap: documentGap
98
- } = relativeBoxDocumentRects;
99
-
100
- //rect => PopOverContainer, relativeBoxGap => PopOverTarget
101
-
104
+ } = relativeBoxDocumentRects; //rect => PopOverContainer, relativeBoxGap => PopOverTarget
102
105
  //Horizontal ~ ----- X axis
103
106
  //Vertical ~ ||||||| Y axis
107
+
104
108
  let paddingSpace = 5; // space between target and relative element
109
+
105
110
  let arrowSize = needArrow ? 10 : 0;
106
111
  rect.height = rect.height + (needArrow ? arrowSize : paddingSpace);
107
112
  rect.width = rect.width + (needArrow ? arrowSize : paddingSpace);
@@ -284,6 +289,7 @@ let viewPort = {
284
289
  if (!el) {
285
290
  return;
286
291
  }
292
+
287
293
  let elRects = viewPort.frameRelativeRects(el, customFrame);
288
294
  let {
289
295
  rectGap
@@ -310,9 +316,11 @@ let viewPort = {
310
316
  needArrow,
311
317
  isAbsolute
312
318
  });
319
+
313
320
  if (!viewPortPossibilities) {
314
321
  return;
315
322
  }
323
+
316
324
  let {
317
325
  views,
318
326
  viewsOffset,
@@ -321,10 +329,12 @@ let viewPort = {
321
329
  } = viewPortPossibilities;
322
330
  let view = null;
323
331
  let isViewFound = false;
332
+
324
333
  if (!isViewFound && defaultView && views[defaultView]) {
325
334
  view = defaultView;
326
335
  isViewFound = true;
327
336
  }
337
+
328
338
  if (!isViewFound) {
329
339
  if (customOrder.length > 0) {
330
340
  isViewFound = customOrder.some(position => {
@@ -342,9 +352,11 @@ let viewPort = {
342
352
  });
343
353
  }
344
354
  }
355
+
345
356
  if (!isViewFound) {
346
357
  view = defaultView;
347
358
  }
359
+
348
360
  return {
349
361
  view,
350
362
  views,
@@ -1,29 +1,35 @@
1
1
  import { useNumberGenerator, getNumberGenerators } from './NumberGenerator/NumberGenerator';
2
2
  import { getLibraryConfig } from './Config';
3
3
  let globalId = getLibraryConfig('idCounter'),
4
- deletedIndexes = [],
5
- globalPrefix;
4
+ deletedIndexes = [],
5
+ globalPrefix;
6
6
  export function setGlobalIdPrefix(value) {
7
7
  globalPrefix = value;
8
8
  }
9
9
  export function removeGlobalIdPrefix() {
10
10
  globalPrefix = undefined;
11
11
  }
12
+
12
13
  function getGlobalIdPrefix() {
13
14
  return globalPrefix;
14
15
  }
16
+
15
17
  function setGlobalId(id) {
16
18
  globalId = id;
17
19
  }
20
+
18
21
  function getGlobalId() {
19
22
  return globalId;
20
23
  }
24
+
21
25
  function setDeletedIndexes(array) {
22
26
  deletedIndexes = array;
23
27
  }
28
+
24
29
  function getDeletedIndexes() {
25
30
  return deletedIndexes;
26
31
  }
32
+
27
33
  function callback(_ref) {
28
34
  let {
29
35
  globalId,
@@ -32,6 +38,7 @@ function callback(_ref) {
32
38
  setGlobalId(globalId);
33
39
  setDeletedIndexes(deletedIndexes);
34
40
  }
41
+
35
42
  export function useUniqueId(prefix) {
36
43
  return useNumberGenerator({
37
44
  getGlobalId,
@@ -50,9 +57,7 @@ export function getUniqueId(Component, prefix) {
50
57
  getDeletedIndexes,
51
58
  callback
52
59
  });
53
- }
54
-
55
- // let Provider = {
60
+ } // let Provider = {
56
61
  // docs: {
57
62
  // componentGroup: 'Provider',
58
63
  // folderName: 'Functions'
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import LibraryContextInit from './LibraryContextInit';
4
4
  import { getLibraryConfig } from './Config';
5
+
5
6
  const LibraryContextProvider = _ref => {
6
7
  let {
7
8
  isReducedMotion = getLibraryConfig('isReducedMotion'),
@@ -12,21 +13,22 @@ const LibraryContextProvider = _ref => {
12
13
  isReducedMotion,
13
14
  direction
14
15
  });
16
+
15
17
  function setGlobalContext(key, data) {
16
18
  if (value[key] != data) {
17
- setValue({
18
- ...value,
19
+ setValue({ ...value,
19
20
  [key]: data
20
21
  });
21
22
  }
22
23
  }
24
+
23
25
  return /*#__PURE__*/React.createElement(LibraryContextInit.Provider, {
24
- value: {
25
- ...value,
26
+ value: { ...value,
26
27
  setGlobalContext
27
28
  }
28
29
  }, children);
29
30
  };
31
+
30
32
  LibraryContextProvider.propTypes = {
31
33
  children: PropTypes.node.isRequired,
32
34
  isReducedMotion: PropTypes.bool,