@zohodesk/components 1.0.0-temp-46 → 1.0.0-temp-49

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 (484) hide show
  1. package/README.md +28 -0
  2. package/{es → assets}/Appearance/dark/mode/darkMode.module.css +4 -2
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +34 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +42 -0
  5. package/{es → assets}/Appearance/dark/themes/green/greenDarkCTATheme.module.css +10 -10
  6. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +42 -0
  7. package/{es → assets}/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +10 -10
  8. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +42 -0
  9. package/{es → assets}/Appearance/dark/themes/red/redDarkCTATheme.module.css +10 -10
  10. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +42 -0
  11. package/{es → assets}/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +10 -10
  12. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +42 -0
  13. package/{es → assets}/Appearance/default/mode/defaultMode.module.css +4 -2
  14. package/{es → assets}/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +0 -0
  15. package/{es → assets}/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +7 -7
  16. package/{es → assets}/Appearance/default/themes/green/greenDefaultCTATheme.module.css +2 -2
  17. package/{es → assets}/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +4 -4
  18. package/{es → assets}/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +0 -0
  19. package/{es → assets}/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -3
  20. package/{es → assets}/Appearance/default/themes/red/redDefaultCTATheme.module.css +7 -7
  21. package/{es → assets}/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -3
  22. package/{es → assets}/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +0 -0
  23. package/{es → assets}/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -3
  24. package/es/Animation/Animation.js +7 -8
  25. package/es/AppContainer/AppContainer.js +6 -6
  26. package/es/Avatar/Avatar.js +12 -11
  27. package/es/Avatar/Avatar.module.css +11 -9
  28. package/es/Avatar/__tests__/Avatar.spec.js +0 -1
  29. package/es/AvatarTeam/AvatarTeam.module.css +21 -7
  30. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -1
  31. package/es/Button/Button.js +24 -20
  32. package/es/Button/Button.module.css +100 -23
  33. package/es/Button/__tests__/Button.spec.js +0 -1
  34. package/es/Buttongroup/Buttongroup.module.css +37 -8
  35. package/es/Buttongroup/__test__/Buttongroup.spec.js +0 -1
  36. package/es/Card/Card.js +4 -5
  37. package/es/CheckBox/CheckBox.module.css +17 -11
  38. package/es/DateTime/DateTime.js +6 -3
  39. package/es/DateTime/DateTime.module.css +41 -14
  40. package/es/DateTime/DateWidget.js +5 -2
  41. package/es/DateTime/DateWidget.module.css +9 -9
  42. package/es/DateTime/YearView.js +6 -5
  43. package/es/DateTime/YearView.module.css +16 -6
  44. package/es/DateTime/common.js +9 -2
  45. package/es/DateTime/dateFormatUtils/dateFormat.js +76 -57
  46. package/es/DateTime/dateFormatUtils/index.js +12 -7
  47. package/es/DateTime/dateFormatUtils/timeChange.js +4 -3
  48. package/es/DateTime/dateFormatUtils/yearChange.js +4 -3
  49. package/es/DateTime/validator.js +0 -1
  50. package/es/DropBox/DropBox.js +2 -2
  51. package/es/DropBox/DropBox.module.css +47 -11
  52. package/es/DropDown/DropDownHeading.module.css +7 -3
  53. package/es/DropDown/DropDownItem.module.css +32 -6
  54. package/es/Label/Label.module.css +1 -4
  55. package/es/Label/__tests__/Label.spec.js +0 -2
  56. package/es/Layout/utils.js +2 -1
  57. package/es/ListItem/ListContainer.js +118 -0
  58. package/es/ListItem/ListItem.js +23 -33
  59. package/es/ListItem/ListItem.module.css +56 -24
  60. package/es/ListItem/ListItemWithAvatar.js +21 -27
  61. package/es/ListItem/ListItemWithCheckBox.js +23 -29
  62. package/es/ListItem/ListItemWithIcon.js +26 -28
  63. package/es/ListItem/ListItemWithRadio.js +24 -31
  64. package/es/MultiSelect/AdvancedGroupMultiSelect.js +18 -7
  65. package/es/MultiSelect/AdvancedMultiSelect.js +24 -8
  66. package/es/MultiSelect/AdvancedMultiSelect.module.css +29 -14
  67. package/es/MultiSelect/MultiSelect.js +29 -10
  68. package/es/MultiSelect/MultiSelect.module.css +34 -21
  69. package/es/MultiSelect/MultiSelectWithAvatar.js +6 -3
  70. package/es/MultiSelect/SelectedOptions.js +3 -2
  71. package/es/MultiSelect/SelectedOptions.module.css +8 -2
  72. package/es/PopOver/PopOver.js +19 -20
  73. package/es/PopOver/PopOver.module.css +1 -1
  74. package/es/Popup/Popup.js +15 -9
  75. package/es/Popup/viewPort.js +14 -9
  76. package/es/Provider/IdProvider.js +5 -4
  77. package/es/Provider/LibraryContext.js +6 -5
  78. package/es/Provider/NumberGenerator/NumberGenerator.js +17 -15
  79. package/es/Provider/ZindexProvider.js +5 -4
  80. package/es/Provider.js +22 -22
  81. package/es/Radio/Radio.js +1 -2
  82. package/es/Radio/Radio.module.css +11 -5
  83. package/es/Responsive/CustomResponsive.js +11 -8
  84. package/es/Responsive/ResizeComponent.js +3 -1
  85. package/es/Responsive/Responsive.js +12 -9
  86. package/es/Responsive/sizeObservers.js +5 -1
  87. package/es/Ribbon/Ribbon.js +8 -8
  88. package/es/Ribbon/Ribbon.module.css +93 -28
  89. package/es/Ribbon/__tests__/Ribbon.spec.js +0 -1
  90. package/es/RippleEffect/RippleEffect.js +7 -4
  91. package/es/RippleEffect/RippleEffect.module.css +18 -44
  92. package/es/Select/GroupSelect.js +2 -1
  93. package/es/Select/Select.js +2 -1
  94. package/es/Select/Select.module.css +14 -4
  95. package/es/Select/SelectWithAvatar.js +7 -4
  96. package/es/Stencils/Stencils.js +5 -6
  97. package/es/Stencils/Stencils.module.css +21 -8
  98. package/es/Stencils/__tests__/Stencils.spec.js +0 -1
  99. package/es/Switch/Switch.module.css +6 -7
  100. package/es/Tab/Tab.js +27 -26
  101. package/es/Tab/Tab.module.css +19 -10
  102. package/es/Tab/TabContent.js +17 -14
  103. package/es/Tab/TabContentWrapper.js +17 -14
  104. package/es/Tab/TabWrapper.js +15 -14
  105. package/es/Tab/Tabs.js +2 -1
  106. package/es/Tab/Tabs.module.css +41 -8
  107. package/es/Tag/Tag.js +10 -4
  108. package/es/Tag/Tag.module.css +50 -25
  109. package/es/TextBox/TextBox.module.css +12 -16
  110. package/es/TextBox/__tests__/TextBox.spec.js +0 -1
  111. package/es/TextBoxIcon/TextBoxIcon.js +1 -1
  112. package/es/TextBoxIcon/TextBoxIcon.module.css +15 -7
  113. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +0 -1
  114. package/es/Textarea/Textarea.module.css +9 -10
  115. package/es/Textarea/__tests__/Textarea.spec.js +0 -1
  116. package/es/Tooltip/Tooltip.js +0 -1
  117. package/es/Tooltip/Tooltip.module.css +10 -9
  118. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -1
  119. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +1 -1
  120. package/es/a11y/FocusScope/FocusScope.js +10 -4
  121. package/es/beta/FocusRing/FocusRing.js +4 -1
  122. package/es/beta/FocusRing/FocusRing.module.css +51 -26
  123. package/es/common/animation.module.css +219 -21
  124. package/es/common/basicReset.module.css +2 -12
  125. package/es/common/common.module.css +62 -18
  126. package/es/common/customscroll.module.css +17 -21
  127. package/es/common/docStyle.module.css +78 -31
  128. package/es/common/transition.module.css +50 -10
  129. package/es/semantic/Button/semanticButton.module.css +3 -3
  130. package/es/utils/Common.js +31 -11
  131. package/es/utils/datetime/common.js +6 -3
  132. package/es/utils/dropDownUtils.js +45 -6
  133. package/es/utils/getInitial.js +3 -1
  134. package/lib/Accordion/Accordion.js +146 -0
  135. package/lib/Accordion/AccordionItem.js +124 -0
  136. package/lib/Accordion/__tests__/Accordion.spec.js +85 -0
  137. package/lib/Accordion/index.js +23 -0
  138. package/lib/Animation/Animation.js +206 -0
  139. package/lib/Animation/__tests__/Animation.spec.js +23 -0
  140. package/lib/AppContainer/AppContainer.js +205 -0
  141. package/lib/AppContainer/AppContainer.module.css +18 -0
  142. package/lib/Avatar/Avatar.js +280 -0
  143. package/lib/Avatar/Avatar.module.css +117 -0
  144. package/lib/Avatar/__tests__/Avatar.spec.js +208 -0
  145. package/lib/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -0
  146. package/lib/AvatarTeam/AvatarTeam.js +157 -0
  147. package/lib/AvatarTeam/AvatarTeam.module.css +161 -0
  148. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +92 -0
  149. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -0
  150. package/lib/Button/Button.js +163 -0
  151. package/lib/Button/Button.module.css +522 -0
  152. package/lib/Button/__tests__/Button.spec.js +233 -0
  153. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +191 -0
  154. package/lib/Buttongroup/Buttongroup.js +101 -0
  155. package/lib/Buttongroup/Buttongroup.module.css +89 -0
  156. package/lib/Buttongroup/__test__/Buttongroup.spec.js +86 -0
  157. package/lib/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -0
  158. package/lib/Card/Card.js +409 -0
  159. package/lib/Card/Card.module.css +20 -0
  160. package/lib/Card/__tests__/Card.spec.js +56 -0
  161. package/lib/Card/index.js +37 -0
  162. package/lib/CheckBox/CheckBox.js +265 -0
  163. package/lib/CheckBox/CheckBox.module.css +153 -0
  164. package/lib/CheckBox/__tests__/CheckBox.spec.js +18 -0
  165. package/lib/DateTime/CalendarView.js +285 -0
  166. package/lib/DateTime/DateTime.js +889 -0
  167. package/lib/DateTime/DateTime.module.css +188 -0
  168. package/lib/DateTime/DateTimePopupFooter.js +90 -0
  169. package/lib/DateTime/DateTimePopupHeader.js +149 -0
  170. package/lib/DateTime/DateWidget.js +1189 -0
  171. package/lib/DateTime/DateWidget.module.css +42 -0
  172. package/lib/DateTime/DaysRow.js +76 -0
  173. package/lib/DateTime/Time.js +248 -0
  174. package/lib/DateTime/YearView.js +324 -0
  175. package/lib/DateTime/YearView.module.css +80 -0
  176. package/lib/DateTime/__tests__/CalendarView.spec.js +45 -0
  177. package/lib/DateTime/__tests__/DateTime.spec.js +127 -0
  178. package/lib/DateTime/__tests__/DateWidget.spec.js +81 -0
  179. package/lib/DateTime/common.js +36 -0
  180. package/lib/DateTime/constants.js +77 -0
  181. package/lib/DateTime/dateFormatUtils/dateFormat.js +613 -0
  182. package/lib/DateTime/dateFormatUtils/dayChange.js +81 -0
  183. package/lib/DateTime/dateFormatUtils/index.js +274 -0
  184. package/lib/DateTime/dateFormatUtils/monthChange.js +94 -0
  185. package/lib/DateTime/dateFormatUtils/timeChange.js +240 -0
  186. package/lib/DateTime/dateFormatUtils/yearChange.js +119 -0
  187. package/lib/DateTime/index.js +15 -0
  188. package/lib/DateTime/objectUtils.js +76 -0
  189. package/lib/DateTime/typeChecker.js +26 -0
  190. package/lib/DateTime/validator.js +353 -0
  191. package/lib/DropBox/DropBox.js +393 -0
  192. package/lib/DropBox/DropBox.module.css +406 -0
  193. package/lib/DropBox/DropBoxPositionMapping.json +145 -0
  194. package/lib/DropBox/__tests__/DropBox.spec.js +87 -0
  195. package/lib/DropDown/DropDown.js +203 -0
  196. package/lib/DropDown/DropDown.module.css +5 -0
  197. package/lib/DropDown/DropDownHeading.js +102 -0
  198. package/lib/DropDown/DropDownHeading.module.css +53 -0
  199. package/lib/DropDown/DropDownItem.js +139 -0
  200. package/lib/DropDown/DropDownItem.module.css +94 -0
  201. package/lib/DropDown/DropDownSearch.js +132 -0
  202. package/lib/DropDown/DropDownSearch.module.css +14 -0
  203. package/lib/DropDown/DropDownSeparator.js +66 -0
  204. package/lib/DropDown/DropDownSeparator.module.css +7 -0
  205. package/lib/DropDown/__tests__/DropDown.spec.js +50 -0
  206. package/lib/DropDown/__tests__/DropDownItem.spec.js +51 -0
  207. package/lib/DropDown/__tests__/DropDownSearch.spec.js +17 -0
  208. package/lib/Label/Label.js +109 -0
  209. package/lib/Label/Label.module.css +52 -0
  210. package/lib/Label/LabelColors.module.css +21 -0
  211. package/lib/Label/__tests__/Label.spec.js +137 -0
  212. package/lib/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -0
  213. package/lib/Layout/Box.js +138 -0
  214. package/lib/Layout/Container.js +152 -0
  215. package/lib/Layout/Layout.module.css +324 -0
  216. package/lib/Layout/__tests__/Box.spec.js +121 -0
  217. package/lib/Layout/__tests__/Container.spec.js +127 -0
  218. package/lib/Layout/index.js +34 -0
  219. package/lib/Layout/utils.js +55 -0
  220. package/lib/LightNightMode/Colors.json +398 -0
  221. package/lib/ListItem/ListContainer.js +127 -0
  222. package/lib/ListItem/ListItem.js +227 -0
  223. package/lib/ListItem/ListItem.module.css +200 -0
  224. package/lib/ListItem/ListItemWithAvatar.js +237 -0
  225. package/lib/ListItem/ListItemWithCheckBox.js +205 -0
  226. package/lib/ListItem/ListItemWithIcon.js +229 -0
  227. package/lib/ListItem/ListItemWithRadio.js +208 -0
  228. package/lib/Modal/Modal.js +218 -0
  229. package/lib/Modal/__docs__/Modal__default.docs.js +88 -0
  230. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +1218 -0
  231. package/lib/MultiSelect/AdvancedMultiSelect.js +696 -0
  232. package/lib/MultiSelect/AdvancedMultiSelect.module.css +127 -0
  233. package/lib/MultiSelect/EmptyState.js +132 -0
  234. package/lib/MultiSelect/MultiSelect.js +1235 -0
  235. package/lib/MultiSelect/MultiSelect.module.css +193 -0
  236. package/lib/MultiSelect/MultiSelectHeader.js +86 -0
  237. package/lib/MultiSelect/MultiSelectWithAvatar.js +410 -0
  238. package/lib/MultiSelect/SelectedOptions.js +140 -0
  239. package/lib/MultiSelect/SelectedOptions.module.css +15 -0
  240. package/lib/MultiSelect/Suggestions.js +219 -0
  241. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +170 -0
  242. package/lib/PopOver/PopOver.js +365 -0
  243. package/lib/PopOver/PopOver.module.css +8 -0
  244. package/lib/PopOver/__tests__/PopOver.spec.js +20 -0
  245. package/lib/Popup/Popup.js +719 -0
  246. package/lib/Popup/PositionMapping.json +74 -0
  247. package/lib/Popup/__tests__/Popup.spec.js +192 -0
  248. package/lib/Popup/viewPort.js +368 -0
  249. package/lib/Provider/AvatarSize.js +23 -0
  250. package/lib/Provider/Config.js +25 -0
  251. package/lib/Provider/CssProvider.js +27 -0
  252. package/lib/Provider/IdProvider.js +82 -0
  253. package/lib/Provider/LibraryContext.js +76 -0
  254. package/lib/Provider/LibraryContextInit.js +15 -0
  255. package/lib/Provider/NumberGenerator/NumberGenerator.js +174 -0
  256. package/lib/Provider/ZindexProvider.js +69 -0
  257. package/lib/Provider.js +241 -0
  258. package/lib/Radio/Radio.js +214 -0
  259. package/lib/Radio/Radio.module.css +110 -0
  260. package/lib/Radio/__tests__/Radiospec.js +29 -0
  261. package/lib/Responsive/CustomResponsive.js +246 -0
  262. package/lib/Responsive/RefWrapper.js +55 -0
  263. package/lib/Responsive/ResizeComponent.js +268 -0
  264. package/lib/Responsive/ResizeObserver.js +168 -0
  265. package/lib/Responsive/Responsive.js +281 -0
  266. package/lib/Responsive/index.js +30 -0
  267. package/lib/Responsive/sizeObservers.js +207 -0
  268. package/lib/Responsive/utils/index.js +70 -0
  269. package/lib/Responsive/utils/shallowCompare.js +38 -0
  270. package/lib/Responsive/windowResizeObserver.js +63 -0
  271. package/lib/Ribbon/Ribbon.js +115 -0
  272. package/lib/Ribbon/Ribbon.module.css +377 -0
  273. package/lib/Ribbon/__tests__/Ribbon.spec.js +193 -0
  274. package/lib/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -0
  275. package/lib/RippleEffect/RippleEffect.js +61 -0
  276. package/lib/RippleEffect/RippleEffect.module.css +70 -0
  277. package/lib/Select/GroupSelect.js +944 -0
  278. package/lib/Select/Select.js +1078 -0
  279. package/lib/Select/Select.module.css +100 -0
  280. package/lib/Select/SelectWithAvatar.js +433 -0
  281. package/lib/Select/SelectWithIcon.js +556 -0
  282. package/lib/Select/__tests__/Select.spec.js +383 -0
  283. package/lib/Stencils/Stencils.js +93 -0
  284. package/lib/Stencils/Stencils.module.css +96 -0
  285. package/lib/Stencils/__tests__/Stencils.spec.js +84 -0
  286. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -0
  287. package/lib/Switch/Switch.js +183 -0
  288. package/lib/Switch/Switch.module.css +110 -0
  289. package/lib/Tab/Tab.js +158 -0
  290. package/lib/Tab/Tab.module.css +101 -0
  291. package/lib/Tab/TabContent.js +45 -0
  292. package/lib/Tab/TabContent.module.css +4 -0
  293. package/lib/Tab/TabContentWrapper.js +47 -0
  294. package/lib/Tab/TabWrapper.js +109 -0
  295. package/lib/Tab/Tabs.js +696 -0
  296. package/lib/Tab/Tabs.module.css +140 -0
  297. package/lib/Tab/__tests__/Tab.spec.js +130 -0
  298. package/lib/Tab/__tests__/TabContent.spec.js +22 -0
  299. package/lib/Tab/__tests__/TabContentWrapper.spec.js +59 -0
  300. package/lib/Tab/__tests__/TabWrapper.spec.js +100 -0
  301. package/lib/Tab/__tests__/Tabs.spec.js +123 -0
  302. package/lib/Tab/index.js +47 -0
  303. package/lib/Tag/Tag.js +252 -0
  304. package/lib/Tag/Tag.module.css +251 -0
  305. package/lib/Tag/__tests__/Tag.spec.js +35 -0
  306. package/lib/TextBox/TextBox.js +289 -0
  307. package/lib/TextBox/TextBox.module.css +157 -0
  308. package/lib/TextBox/__tests__/TextBox.spec.js +205 -0
  309. package/lib/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -0
  310. package/lib/TextBoxIcon/TextBoxIcon.js +284 -0
  311. package/lib/TextBoxIcon/TextBoxIcon.module.css +78 -0
  312. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +228 -0
  313. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -0
  314. package/lib/Textarea/Textarea.js +202 -0
  315. package/lib/Textarea/Textarea.module.css +139 -0
  316. package/lib/Textarea/__tests__/Textarea.spec.js +186 -0
  317. package/lib/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -0
  318. package/lib/Tooltip/Tooltip.js +538 -0
  319. package/lib/Tooltip/Tooltip.module.css +104 -0
  320. package/lib/Tooltip/__tests__/Tooltip.spec.js +98 -0
  321. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +146 -0
  322. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +190 -0
  323. package/lib/a11y/FocusScope/FocusScope.js +443 -0
  324. package/lib/beta/FocusRing/FocusRing.js +338 -0
  325. package/lib/beta/FocusRing/FocusRing.module.css +152 -0
  326. package/lib/common/animation.module.css +624 -0
  327. package/lib/common/avatarsizes.module.css +45 -0
  328. package/lib/common/basic.module.css +33 -0
  329. package/lib/common/basicReset.module.css +40 -0
  330. package/lib/common/common.module.css +502 -0
  331. package/lib/common/customscroll.module.css +89 -0
  332. package/lib/common/docStyle.module.css +762 -0
  333. package/lib/common/reset.module.css +12 -0
  334. package/lib/common/transition.module.css +146 -0
  335. package/lib/css.js +83 -0
  336. package/lib/deprecated/PortalLayer/PortalLayer.js +165 -0
  337. package/lib/index.js +1412 -0
  338. package/lib/semantic/Button/Button.js +138 -0
  339. package/lib/semantic/Button/semanticButton.module.css +9 -0
  340. package/lib/utils/Common.js +457 -0
  341. package/lib/utils/ContextOptimizer.js +49 -0
  342. package/lib/utils/__tests__/constructFullName.spec.js +12 -0
  343. package/lib/utils/__tests__/debounce.spec.js +40 -0
  344. package/lib/utils/__tests__/getInitial.spec.js +26 -0
  345. package/lib/utils/constant.js +10 -0
  346. package/lib/utils/constructFullName.js +34 -0
  347. package/lib/utils/datetime/common.js +233 -0
  348. package/lib/utils/debounce.js +30 -0
  349. package/lib/utils/dropDownUtils.js +608 -0
  350. package/lib/utils/dummyFunction.js +10 -0
  351. package/lib/utils/getHTMLFontSize.js +11 -0
  352. package/lib/utils/getInitial.js +33 -0
  353. package/lib/utils/scrollTo.js +22 -0
  354. package/lib/utils/shallowEqual.js +41 -0
  355. package/package.json +7 -7
  356. package/README_Beta.md +0 -2
  357. package/__testUtils__/globals.js +0 -46
  358. package/__testUtils__/moduleMapKey.json +0 -138
  359. package/dubFinder.js +0 -96
  360. package/es/Accordion/docs/Accordion__Demo.docs.js +0 -80
  361. package/es/Animation/docs/Animation__default.docs.js +0 -34
  362. package/es/Animation/docs/Animation__fadeIn.docs.js +0 -34
  363. package/es/Animation/docs/Animation__scaleIn.docs.js +0 -34
  364. package/es/Animation/docs/Animation__skewIn.docs.js +0 -34
  365. package/es/Animation/docs/Animation__slideDown.docs.js +0 -34
  366. package/es/Animation/docs/Animation__slideLeft.docs.js +0 -34
  367. package/es/Animation/docs/Animation__zoomIn.docs.js +0 -34
  368. package/es/AppContainer/docs/AppContainer__default.docs.js +0 -20
  369. package/es/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +0 -34
  370. package/es/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +0 -42
  371. package/es/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +0 -42
  372. package/es/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +0 -42
  373. package/es/Appearance/dark/themes/red/redDarkComponentTheme.module.css +0 -42
  374. package/es/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +0 -42
  375. package/es/Avatar/docs/Avatar__custom.docs.js +0 -29
  376. package/es/Avatar/docs/Avatar__default.docs.js +0 -29
  377. package/es/Avatar/docs/Avatar__palette.docs.js +0 -49
  378. package/es/Avatar/docs/Avatar__text.docs.js +0 -28
  379. package/es/AvatarTeam/docs/AvatarTeam__custom.docs.js +0 -73
  380. package/es/AvatarTeam/docs/AvatarTeam__default.docs.js +0 -31
  381. package/es/AvatarTeam/docs/AvatarTeam__palette.docs.js +0 -50
  382. package/es/AvatarTeam/docs/AvatarTeam__size.docs.js +0 -49
  383. package/es/Button/docs/Button__custom.docs.js +0 -771
  384. package/es/Button/docs/Button__default.docs.js +0 -536
  385. package/es/Buttongroup/docs/Buttongroup__custom.docs.js +0 -37
  386. package/es/Buttongroup/docs/Buttongroup__footer.docs.js +0 -33
  387. package/es/Buttongroup/docs/Buttongroup__header.docs.js +0 -42
  388. package/es/Card/docs/Card__Custom.docs.js +0 -34
  389. package/es/Card/docs/Card__Default.docs.js +0 -37
  390. package/es/Card/docs/Card__Scroll.docs.js +0 -59
  391. package/es/CheckBox/docs/CheckBox__custom.docs.js +0 -293
  392. package/es/CheckBox/docs/CheckBox__default.docs.js +0 -219
  393. package/es/DateTime/docs/DateTime__default.docs.js +0 -91
  394. package/es/DateTime/docs/DateWidget__default.docs.js +0 -183
  395. package/es/DateTime/docs/timezonedata.json +0 -1
  396. package/es/DropBox/docs/DropBox__custom.docs.js +0 -66
  397. package/es/DropBox/docs/DropBox__customOrder.docs.js +0 -92
  398. package/es/DropBox/docs/DropBox__fixedPosition.docs.js +0 -91
  399. package/es/DropBox/docs/DropBox__position.docs.js +0 -87
  400. package/es/DropBox/docs/DropBox__size.docs.js +0 -61
  401. package/es/DropDown/docs/DropDownHeading__custom.docs.js +0 -23
  402. package/es/DropDown/docs/DropDownHeading__default.docs.js +0 -21
  403. package/es/Label/docs/Label__clipped.docs.js +0 -27
  404. package/es/Label/docs/Label__custom.docs.js +0 -30
  405. package/es/Label/docs/Label__palette.docs.js +0 -42
  406. package/es/Label/docs/Label__size.docs.js +0 -29
  407. package/es/Label/docs/Label__type.docs.js +0 -37
  408. package/es/Layout/docs/Layout__Hidden.docs.js +0 -77
  409. package/es/Layout/docs/Layout__default.docs.js +0 -49
  410. package/es/Layout/docs/Layout__four_Column.docs.js +0 -85
  411. package/es/Layout/docs/Layout__three_Column.docs.js +0 -76
  412. package/es/Layout/docs/Layout__two_Column.docs.js +0 -69
  413. package/es/LightNightMode/docs/AlternativeColors.docs.js +0 -74
  414. package/es/ListItem/docs/ListItemWithAvatar__custom.docs.js +0 -155
  415. package/es/ListItem/docs/ListItemWithAvatar__default.docs.js +0 -112
  416. package/es/ListItem/docs/ListItemWithCheckBox__custom.docs.js +0 -91
  417. package/es/ListItem/docs/ListItemWithCheckBox__default.docs.js +0 -65
  418. package/es/ListItem/docs/ListItemWithIcon__custom.docs.js +0 -68
  419. package/es/ListItem/docs/ListItemWithIcon__default.docs.js +0 -62
  420. package/es/ListItem/docs/ListItemWithRadio__custom.docs.js +0 -91
  421. package/es/ListItem/docs/ListItemWithRadio__default.docs.js +0 -65
  422. package/es/ListItem/docs/ListItem__custom.docs.js +0 -114
  423. package/es/ListItem/docs/ListItem__default.docs.js +0 -82
  424. package/es/MultiSelect/docs/AdvancedGroupMultiSelect__default.docs.js +0 -124
  425. package/es/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +0 -114
  426. package/es/MultiSelect/docs/MultiSelectWithAvatar__default.docs.js +0 -141
  427. package/es/MultiSelect/docs/MultiSelect__default.docs.js +0 -161
  428. package/es/PopOver/docs/PopOver__default.docs.js +0 -32
  429. package/es/Provider/docs/Provider_Id__Class.docs.js +0 -29
  430. package/es/Provider/docs/Provider_Id__Function.docs.js +0 -18
  431. package/es/Provider/docs/Provider_Zindex__Class.docs.js +0 -32
  432. package/es/Provider/docs/Provider_Zindex__Function.docs.js +0 -23
  433. package/es/Radio/docs/Radio__custom.docs.js +0 -245
  434. package/es/Radio/docs/Radio__default.docs.js +0 -169
  435. package/es/Responsive/docs/Responsive__Custom.docs.js +0 -201
  436. package/es/Responsive/docs/Responsive__default.docs.js +0 -94
  437. package/es/Responsive/docs/style.module.css +0 -47
  438. package/es/Ribbon/docs/Ribbon__custom.docs.js +0 -386
  439. package/es/Ribbon/docs/Ribbon__default.docs.js +0 -342
  440. package/es/RippleEffect/docs/RippleEffect__default.docs.js +0 -435
  441. package/es/Select/docs/GroupSelect__default.docs.js +0 -149
  442. package/es/Select/docs/SelectWithAvatar__default.docs.js +0 -97
  443. package/es/Select/docs/SelectWithIcon__default.docs.js +0 -138
  444. package/es/Select/docs/Select__default.docs.js +0 -287
  445. package/es/Stencils/docs/Stencils__custom.docs.js +0 -45
  446. package/es/Stencils/docs/Stencils__default.docs.js +0 -50
  447. package/es/Switch/docs/Switch__custom.docs.js +0 -153
  448. package/es/Switch/docs/Switch__default.docs.js +0 -107
  449. package/es/Tab/docs/Tab__default.docs.js +0 -259
  450. package/es/Tab/docs/tabdocs.module.css +0 -29
  451. package/es/Tag/docs/Tag__custom.docs.js +0 -368
  452. package/es/Tag/docs/Tag__default.docs.js +0 -253
  453. package/es/TextBox/docs/TextBox__custom.docs.js +0 -43
  454. package/es/TextBox/docs/TextBox__default.docs.js +0 -40
  455. package/es/TextBox/docs/TextBox__size.docs.js +0 -38
  456. package/es/TextBox/docs/TextBox__variant.docs.js +0 -38
  457. package/es/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +0 -89
  458. package/es/TextBoxIcon/docs/TextBoxIcon__default.docs.js +0 -61
  459. package/es/Textarea/docs/Textarea__animated.docs.js +0 -41
  460. package/es/Textarea/docs/Textarea__custom.docs.js +0 -82
  461. package/es/Textarea/docs/Textarea__default.docs.js +0 -76
  462. package/es/Textarea/docs/Textarea__disabled.docs.js +0 -29
  463. package/es/Tooltip/docs/Tooltip__default.docs.js +0 -332
  464. package/es/VelocityAnimation/VelocityAnimation/docs/VelocityAnimation__demo.docs.js +0 -97
  465. package/es/VelocityAnimation/VelocityAnimationGroup/docs/VelocityAnimationGroup__demo.docs.js +0 -150
  466. package/es/a11y/FocusScope/docs/FocusScope__default.docs.js +0 -139
  467. package/es/beta/FocusRing/docs/FocusRing__default.docs.js +0 -48
  468. package/es/deprecated/PortalLayer/docs/PortalLayer__default.docs.js +0 -72
  469. package/es/deprecated/Theme/darkTheme.module.css +0 -393
  470. package/es/deprecated/Theme/defaultTheme.module.css +0 -393
  471. package/es/deprecated/Theme/palette/darkCTAPalette.module.css +0 -116
  472. package/es/deprecated/Theme/palette/darkPalette.module.css +0 -155
  473. package/es/deprecated/Theme/palette/defaultCTAPalette.module.css +0 -116
  474. package/es/deprecated/Theme/palette/defaultPalette.module.css +0 -155
  475. package/es/deprecated/customscroll_Old.module.css +0 -46
  476. package/es/semantic/Button/docs/Button__default.docs.js +0 -20
  477. package/externalDocsBuild.js +0 -21
  478. package/preprocess/componentAppearanceColors.js +0 -65
  479. package/preprocess/componentThemeColors.js +0 -119
  480. package/preprocess/ctaThemeColors.js +0 -95
  481. package/preprocess/index.js +0 -3
  482. package/preprocess/json/componentAppearanceVariableJson.js +0 -1515
  483. package/preprocess/json/componentThemeVariableJson.js +0 -259
  484. package/preprocess/json/ctaThemeVariableJson.js +0 -337
@@ -0,0 +1,719 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
15
+
16
+ var _Common = require("../utils/Common.js");
17
+
18
+ var _viewPort = _interopRequireDefault(require("./viewPort"));
19
+
20
+ var _PositionMapping = require("./PositionMapping.json");
21
+
22
+ var _ResizeObserver = _interopRequireDefault(require("@zohodesk/virtualizer/lib/commons/ResizeObserver.js"));
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
+
26
+ function _extends() { _extends = Object.assign || 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); }
27
+
28
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
29
+
30
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
+
32
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
+
34
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
35
+
36
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
37
+
38
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
39
+
40
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
+
42
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
43
+
44
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
45
+
46
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
47
+
48
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
49
+
50
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
51
+
52
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
53
+
54
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
55
+
56
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
+
58
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
59
+
60
+ var lastOpenedGroup = [];
61
+ var popups = {};
62
+
63
+ global.closeGroupPopups = function (groupName) {
64
+ var groupPopups = popups[groupName] || [];
65
+ groupPopups.forEach(function (popup) {
66
+ popup.state.isPopupOpen && popup.setState({
67
+ isPopupOpen: false,
68
+ isPopupReady: false
69
+ });
70
+ });
71
+ };
72
+
73
+ var defaultState = {
74
+ position: 'bottomCenter',
75
+ height: '0px',
76
+ positions: {},
77
+ //{bottomCenter: true, bottomLeft: false, ...}
78
+ positionsOffset: {},
79
+ //{bottomCenter: {left: ‘’,top: ‘’ }, .....}
80
+ targetOffset: {},
81
+ //{height: ‘’, width: ‘’,}
82
+ popupOffset: {},
83
+ //{height: ‘’, width: ‘’,}
84
+ isAbsolutePositioningNeeded: true
85
+ };
86
+ /* eslint-disable react/no-deprecated */
87
+
88
+ /* eslint-disable react/prop-types */
89
+
90
+ var Popup = function Popup(Component) {
91
+ var group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'global';
92
+ var needResizeHandling = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
93
+
94
+ var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
95
+ _ref$isAbsolutePositi = _ref.isAbsolutePositioningNeeded,
96
+ isAbsolutePopup = _ref$isAbsolutePositi === void 0 ? true : _ref$isAbsolutePositi,
97
+ _ref$isArrow = _ref.isArrow,
98
+ needPopupArrow = _ref$isArrow === void 0 ? false : _ref$isArrow,
99
+ _ref$customOrder = _ref.customOrder,
100
+ customPositionOrder = _ref$customOrder === void 0 ? [] : _ref$customOrder,
101
+ _ref$scrollDebounceTi = _ref.scrollDebounceTime,
102
+ popupScrollDebounceTime = _ref$scrollDebounceTi === void 0 ? 0 : _ref$scrollDebounceTi,
103
+ _ref$closeOnScroll = _ref.closeOnScroll,
104
+ closeOnScrollPopup = _ref$closeOnScroll === void 0 ? false : _ref$closeOnScroll;
105
+
106
+ var Popup = /*#__PURE__*/function (_React$Component) {
107
+ _inherits(Popup, _React$Component);
108
+
109
+ var _super = _createSuper(Popup);
110
+
111
+ function Popup(props) {
112
+ var _this;
113
+
114
+ _classCallCheck(this, Popup);
115
+
116
+ _this = _super.call(this, props);
117
+ _this.state = {
118
+ isPopupOpen: props.isPopupOpen || false,
119
+ position: 'bottomCenter',
120
+ height: '0px',
121
+ isPopupReady: props.isPopupOpen || false,
122
+ positions: {},
123
+ //{bottomCenter: true, bottomLeft: false, ...}
124
+ positionsOffset: {},
125
+ //{bottomCenter: {left: ‘’,top: ‘’ }, .....}
126
+ targetOffset: {},
127
+ //{height: ‘’, width: ‘’,}
128
+ popupOffset: {},
129
+ //{height: ‘’, width: ‘’,}
130
+ isAbsolutePositioningNeeded: true
131
+ };
132
+ _this.togglePopup = _this.togglePopup.bind(_assertThisInitialized(_this));
133
+ _this.documentClickHandler = _this.documentClickHandler.bind(_assertThisInitialized(_this));
134
+ _this.documentClickHandler1 = _this.documentClickHandler1.bind(_assertThisInitialized(_this));
135
+ _this.removeClose = _this.removeClose.bind(_assertThisInitialized(_this));
136
+ _this.documentKeyupHandler = _this.documentKeyupHandler.bind(_assertThisInitialized(_this));
137
+ _this.openPopupOnly = _this.openPopupOnly.bind(_assertThisInitialized(_this));
138
+ _this.closePopupOnly = _this.closePopupOnly.bind(_assertThisInitialized(_this));
139
+ _this.getTargetRef = _this.getTargetRef.bind(_assertThisInitialized(_this));
140
+ _this.getContainerRef = _this.getContainerRef.bind(_assertThisInitialized(_this));
141
+ _this.handlePopupPosition = _this.handlePopupPosition.bind(_assertThisInitialized(_this));
142
+ _this.handleResize = (0, _Common.debounce)(_this.handleResize.bind(_assertThisInitialized(_this)), 300);
143
+ _this.handlePopupResize = _this.handlePopupResize.bind(_assertThisInitialized(_this));
144
+ _this.getIsAbsolutePopup = _this.getIsAbsolutePopup.bind(_assertThisInitialized(_this));
145
+ _this.getNeedArrow = _this.getNeedArrow.bind(_assertThisInitialized(_this));
146
+ _this.getCustomPositionOrder = _this.getCustomPositionOrder.bind(_assertThisInitialized(_this));
147
+ _this.handleOpenPopupPositionChange = _this.handleOpenPopupPositionChange.bind(_assertThisInitialized(_this));
148
+ _this.getScrollDebounceTime = _this.getScrollDebounceTime.bind(_assertThisInitialized(_this));
149
+ _this.getCloseOnScrollPopup = _this.getCloseOnScrollPopup.bind(_assertThisInitialized(_this));
150
+ _this.handleCloseLastOpenedGroup = _this.handleCloseLastOpenedGroup.bind(_assertThisInitialized(_this));
151
+ _this.handleDocumentMouseDown = _this.handleDocumentMouseDown.bind(_assertThisInitialized(_this));
152
+ _this.handleDocumentFocus = _this.handleDocumentFocus.bind(_assertThisInitialized(_this));
153
+ _this.handleGetNeedPrevent = _this.handleGetNeedPrevent.bind(_assertThisInitialized(_this));
154
+ _this.popupObserver = new _ResizeObserver["default"](_this.handlePopupResize); //dropBoxSize
155
+
156
+ _this.size = null;
157
+ _this.isAbsolutePopup = isAbsolutePopup;
158
+ _this.needPopupArrow = needPopupArrow;
159
+ _this.customPositionOrder = customPositionOrder;
160
+ _this.scrollDebounceTime = popupScrollDebounceTime;
161
+ _this.closeOnScroll = closeOnScrollPopup;
162
+
163
+ var _this$getScrollDeboun = _this.getScrollDebounceTime(_assertThisInitialized(_this)),
164
+ scrollDebounceTime = _this$getScrollDeboun.scrollDebounceTime;
165
+
166
+ _this.handleScroll = (0, _Common.debounce)(_this.handleScroll.bind(_assertThisInitialized(_this)), scrollDebounceTime);
167
+ return _this;
168
+ }
169
+
170
+ _createClass(Popup, [{
171
+ key: "componentDidMount",
172
+ value: function componentDidMount() {
173
+ var group = this.getGroup();
174
+ var groupPopups = popups[group] || [];
175
+ groupPopups.push(this);
176
+ popups[group] = groupPopups;
177
+
178
+ if (Object.keys(popups).length === 1 && groupPopups.length === 1) {
179
+ document.addEventListener('click', this.documentClickHandler, false);
180
+ document.addEventListener('keyup', this.documentKeyupHandler, false); // document.addEventListener('scroll', this.handleScroll, true);
181
+
182
+ window.addEventListener('resize', this.handleResize);
183
+ document.addEventListener('click', this.documentClickHandler1, true);
184
+ document.addEventListener('mousedown', this.handleDocumentMouseDown, true);
185
+ document.addEventListener('focus', this.handleDocumentFocus, true);
186
+ }
187
+ }
188
+ }, {
189
+ key: "componentWillReceiveProps",
190
+ value: function componentWillReceiveProps(nextProps) {
191
+ var isPopupOpen = this.state.isPopupOpen;
192
+
193
+ if (typeof nextProps.isPopupOpen !== 'undefined' && nextProps.isPopupOpen !== isPopupOpen) {
194
+ this.setState({
195
+ isPopupOpen: nextProps.isPopupOpen,
196
+ isPopupReady: nextProps.isPopupOpen
197
+ });
198
+ }
199
+ }
200
+ }, {
201
+ key: "componentDidUpdate",
202
+ value: function componentDidUpdate(prevProps, prevState) {
203
+ var isPopupReady = this.state.isPopupReady;
204
+
205
+ var _ref2 = prevState || {},
206
+ _ref2$isPopupReady = _ref2.isPopupReady,
207
+ oldStateOpen = _ref2$isPopupReady === void 0 ? false : _ref2$isPopupReady;
208
+
209
+ var dropElement = this.dropElement;
210
+ var propResizeHandling = this.props.needResizeHandling;
211
+
212
+ if (oldStateOpen !== isPopupReady) {
213
+ if (isPopupReady && dropElement && (propResizeHandling !== undefined ? propResizeHandling : needResizeHandling)) {
214
+ this.popupObserver.replaceObservationElement(dropElement);
215
+ } else if (!isPopupReady) {
216
+ this.size = null;
217
+ this.popupObserver.disconnect();
218
+ }
219
+ }
220
+ }
221
+ }, {
222
+ key: "componentWillUnmount",
223
+ value: function componentWillUnmount() {
224
+ var _this2 = this;
225
+
226
+ var group = this.getGroup();
227
+ popups = Object.keys(popups).reduce(function (res, groupName) {
228
+ if (groupName === group) {
229
+ var groupPopups = popups[group];
230
+ var newGroupPopups = groupPopups.filter(function (popup) {
231
+ return popup !== _this2;
232
+ });
233
+ newGroupPopups.length === 0 && lastOpenedGroup.indexOf(group) >= 0 && lastOpenedGroup.splice(lastOpenedGroup.indexOf(group), 1);
234
+ res[group] = newGroupPopups;
235
+ }
236
+
237
+ return res;
238
+ }, popups);
239
+ var noPopups = true;
240
+
241
+ for (var i in popups) {
242
+ if (popups[i].length >= 1) {
243
+ noPopups = false;
244
+ break;
245
+ }
246
+ }
247
+
248
+ if (this.popupObserver) {
249
+ this.popupObserver.disconnect();
250
+ }
251
+
252
+ if (noPopups) {
253
+ document.removeEventListener('click', this.documentClickHandler);
254
+ document.removeEventListener('keyup', this.documentKeyupHandler); // document.removeEventListener('scroll', this.handleScroll);
255
+
256
+ window.removeEventListener('resize', this.handleResize);
257
+ document.removeEventListener('click', this.documentClickHandler1, true);
258
+ document.removeEventListener('mousedown', this.handleDocumentMouseDown, true);
259
+ document.removeEventListener('focus', this.handleDocumentFocus, true);
260
+ }
261
+ }
262
+ }, {
263
+ key: "getGroup",
264
+ value: function getGroup() {
265
+ var popupGroup = this.props.popupGroup;
266
+ return popupGroup || group;
267
+ }
268
+ }, {
269
+ key: "getNeedArrow",
270
+ value: function getNeedArrow(popup) {
271
+ var isArrow = popup.props.isArrow;
272
+ var needPopupArrow = popup.needPopupArrow;
273
+ return isArrow !== undefined ? isArrow : needPopupArrow;
274
+ }
275
+ }, {
276
+ key: "getScrollDebounceTime",
277
+ value: function getScrollDebounceTime(popup) {
278
+ var scrollDebounceTime = popup.props.scrollDebounceTime;
279
+ var popupScrollDebounceTime = popup.scrollDebounceTime;
280
+ return scrollDebounceTime !== undefined ? scrollDebounceTime : popupScrollDebounceTime;
281
+ }
282
+ }, {
283
+ key: "getCloseOnScrollPopup",
284
+ value: function getCloseOnScrollPopup(popup) {
285
+ var closeOnScroll = popup.props.closeOnScroll;
286
+ var closeOnScrollPopup = popup.closeOnScroll;
287
+ return closeOnScroll !== undefined ? closeOnScroll : closeOnScrollPopup;
288
+ }
289
+ }, {
290
+ key: "getIsAbsolutePopup",
291
+ value: function getIsAbsolutePopup(popup) {
292
+ var isAbsolutePositioningNeeded = popup.props.isAbsolutePositioningNeeded;
293
+ var isAbsolutePopup = popup.isAbsolutePopup;
294
+ return isAbsolutePositioningNeeded !== undefined ? isAbsolutePositioningNeeded : isAbsolutePopup;
295
+ }
296
+ }, {
297
+ key: "getCustomPositionOrder",
298
+ value: function getCustomPositionOrder(popup) {
299
+ var _popup$props$customOr = popup.props.customOrder,
300
+ customOrder = _popup$props$customOr === void 0 ? [] : _popup$props$customOr;
301
+ var customPositionOrder = popup.customPositionOrder;
302
+ return customOrder.length !== 0 ? customOrder : customPositionOrder;
303
+ }
304
+ }, {
305
+ key: "togglePopup",
306
+ value: function togglePopup(e, defaultPosition) {
307
+ var _this3 = this;
308
+
309
+ var group = this.getGroup();
310
+ this.removeClose(e);
311
+ var isPopupOpen = this.state.isPopupOpen;
312
+ var groupPopups = popups[group] || [];
313
+ lastOpenedGroup = !isPopupOpen && lastOpenedGroup.indexOf(group) === -1 ? [group].concat(_toConsumableArray(lastOpenedGroup)) : lastOpenedGroup;
314
+ isPopupOpen && lastOpenedGroup.splice(0, 1);
315
+ groupPopups.forEach(function (popup) {
316
+ if (popup !== _this3 && popup.state.isPopupOpen) {
317
+ popup.setState({
318
+ isPopupOpen: false,
319
+ isPopupReady: false
320
+ });
321
+ }
322
+ });
323
+
324
+ if (isPopupOpen) {
325
+ this.setState({
326
+ isPopupOpen: false,
327
+ isPopupReady: false
328
+ });
329
+ } else {
330
+ this.handlePopupPosition(defaultPosition);
331
+ }
332
+ }
333
+ }, {
334
+ key: "openPopupOnly",
335
+ value: function openPopupOnly(e, defaultPosition) {
336
+ var group = this.getGroup();
337
+ this.removeClose(e);
338
+ lastOpenedGroup = lastOpenedGroup.indexOf(group) === -1 ? [group].concat(_toConsumableArray(lastOpenedGroup)) : lastOpenedGroup;
339
+ this.handlePopupPosition(defaultPosition);
340
+ }
341
+ }, {
342
+ key: "closePopupOnly",
343
+ value: function closePopupOnly(e) {
344
+ this.removeClose(e);
345
+ lastOpenedGroup.splice(0, 1);
346
+ var isPopupOpen = this.state.isPopupOpen;
347
+
348
+ if (isPopupOpen) {
349
+ this.setState({
350
+ isPopupOpen: false,
351
+ isPopupReady: false
352
+ });
353
+ }
354
+ }
355
+ }, {
356
+ key: "handleCloseLastOpenedGroup",
357
+ value: function handleCloseLastOpenedGroup() {
358
+ var groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] || [] : [];
359
+ lastOpenedGroup.splice(0, 1);
360
+ groupPopups.forEach(function (popup) {
361
+ popup.state.isPopupOpen && popup.setState({
362
+ isPopupOpen: false,
363
+ isPopupReady: false
364
+ });
365
+ });
366
+ }
367
+ }, {
368
+ key: "handleDocumentMouseDown",
369
+ value: function handleDocumentMouseDown(e) {
370
+ var needPrevent = this.handleGetNeedPrevent(e);
371
+
372
+ if (needPrevent) {
373
+ this.removeClose(e);
374
+ }
375
+ }
376
+ }, {
377
+ key: "handleDocumentFocus",
378
+ value: function handleDocumentFocus(e) {
379
+ var needPrevent = this.handleGetNeedPrevent(e);
380
+
381
+ if (needPrevent) {
382
+ this.removeClose(e);
383
+ }
384
+ }
385
+ }, {
386
+ key: "handleGetNeedPrevent",
387
+ value: function handleGetNeedPrevent(e) {
388
+ var needPrevent = false;
389
+
390
+ if (lastOpenedGroup.length > 1) {
391
+ var target = e.target;
392
+ var groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] : [];
393
+ var openedPopup = null; // eslint-disable-next-line guard-for-in
394
+
395
+ for (var i in groupPopups) {
396
+ var isPopupOpen = groupPopups[i].state.isPopupOpen;
397
+
398
+ if (isPopupOpen) {
399
+ openedPopup = groupPopups[i];
400
+ break;
401
+ }
402
+ }
403
+
404
+ if (openedPopup) {
405
+ var _openedPopup = openedPopup,
406
+ dropElement = _openedPopup.dropElement,
407
+ placeHolderElement = _openedPopup.placeHolderElement;
408
+ var isDropBoxChild = (0, _Common.isDescendant)(dropElement, target);
409
+ var isTargetChild = (0, _Common.isDescendant)(placeHolderElement, target); // const massUpdateParent = document.querySelector(
410
+ // '[data-id=massUpdatePopup]'
411
+ // );
412
+ // const isPopupMassUpdateChild = isDescendant(
413
+ // massUpdateParent,
414
+ // dropElement
415
+ // );
416
+
417
+ if (!isDropBoxChild && !isTargetChild // && isPopupMassUpdateChild
418
+ ) {
419
+ needPrevent = true;
420
+ }
421
+ }
422
+ }
423
+
424
+ return needPrevent;
425
+ }
426
+ }, {
427
+ key: "documentClickHandler1",
428
+ value: function documentClickHandler1(e) {
429
+ var needPrevent = this.handleGetNeedPrevent(e);
430
+
431
+ if (needPrevent) {
432
+ this.removeClose(e);
433
+ this.handleCloseLastOpenedGroup();
434
+ }
435
+ }
436
+ }, {
437
+ key: "documentClickHandler",
438
+ value: function documentClickHandler() {
439
+ try {
440
+ Object.keys(popups).forEach(function (groupName) {
441
+ var groupPopups = popups[groupName] || [];
442
+ groupPopups.forEach(function (popup) {
443
+ popup.state.isPopupOpen && (!popup.props.checkBeforeClose || popup.props.checkBeforeClose && popup.props.checkBeforeClose()) && popup.setState({
444
+ isPopupOpen: false,
445
+ isPopupReady: false
446
+ });
447
+ });
448
+ });
449
+ lastOpenedGroup = [];
450
+ } catch (e) {// eslint-disable-next-line no-console
451
+ //console.error('popup component not unmounted properly', e);
452
+ }
453
+ }
454
+ }, {
455
+ key: "documentKeyupHandler",
456
+ value: function documentKeyupHandler(e) {
457
+ try {
458
+ if (e.keyCode === 27) {
459
+ this.handleCloseLastOpenedGroup();
460
+ }
461
+ } catch (e) {// eslint-disable-next-line no-console
462
+ //console.log('error', e);
463
+ }
464
+ }
465
+ }, {
466
+ key: "removeClose",
467
+ value: function removeClose(e) {
468
+ // e && e.preventDefault && e.preventDefault();
469
+ e && e.stopPropagation && e.stopPropagation();
470
+ e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
471
+ }
472
+ }, {
473
+ key: "handlePopupPosition",
474
+ value: function handlePopupPosition() {
475
+ var _this4 = this;
476
+
477
+ var defaultPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bottomCenter';
478
+ var isResizeHandling = arguments.length > 1 ? arguments[1] : undefined;
479
+
480
+ // isResizeHandling --->>> Window resize and dropBox resize
481
+ var _ref3 = this.context || {},
482
+ direction = _ref3.direction;
483
+
484
+ var placeHolderElement = this.placeHolderElement,
485
+ dropElement = this.dropElement;
486
+ var needArrow = this.getNeedArrow(this);
487
+ var isAbsolute = this.getIsAbsolutePopup(this);
488
+ var customOrder = this.getCustomPositionOrder(this);
489
+
490
+ if (direction === 'rtl') {
491
+ defaultPosition = isAbsolute ? _PositionMapping.rtlAbsolutePositionMapping[defaultPosition] : _PositionMapping.rtlFixedPositionMapping[defaultPosition];
492
+ } else {
493
+ defaultPosition = isAbsolute ? _PositionMapping.absolutePositionMapping[defaultPosition] : defaultPosition;
494
+ }
495
+
496
+ if (!placeHolderElement && !dropElement) {
497
+ this.setState({
498
+ isPopupOpen: true,
499
+ isPopupReady: true
500
+ });
501
+ return;
502
+ }
503
+
504
+ var setPosition = function setPosition() {
505
+ requestAnimationFrame(function () {
506
+ var placeHolderElement = _this4.placeHolderElement,
507
+ dropElement = _this4.dropElement;
508
+ var _this4$state = _this4.state,
509
+ position = _this4$state.position,
510
+ isPopupReady = _this4$state.isPopupReady;
511
+ var scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
512
+
513
+ var betterPosition = _viewPort["default"].betterView(dropElement, placeHolderElement, defaultPosition, scrollContainer, {
514
+ needArrow: needArrow,
515
+ isAbsolute: isAbsolute,
516
+ customOrder: customOrder
517
+ });
518
+
519
+ var _ref4 = betterPosition || {},
520
+ view = _ref4.view,
521
+ views = _ref4.views,
522
+ viewsOffset = _ref4.viewsOffset,
523
+ targetOffset = _ref4.targetOffset,
524
+ popupOffset = _ref4.popupOffset;
525
+
526
+ if (position !== view || !isPopupReady) {
527
+ _this4.setState({
528
+ isPopupReady: true,
529
+ position: view,
530
+ positions: views,
531
+ positionsOffset: viewsOffset,
532
+ targetOffset: targetOffset,
533
+ popupOffset: popupOffset,
534
+ isAbsolutePositioningNeeded: isAbsolute
535
+ });
536
+ }
537
+ });
538
+ };
539
+
540
+ if (isResizeHandling) {
541
+ setPosition();
542
+ } else {
543
+ this.defaultPosition = defaultPosition;
544
+ this.setState({
545
+ isPopupOpen: true,
546
+ isPopupReady: false
547
+ }, setPosition);
548
+ }
549
+ }
550
+ }, {
551
+ key: "handleOpenPopupPositionChange",
552
+ value: function handleOpenPopupPositionChange() {
553
+ var _this5 = this;
554
+
555
+ Object.keys(popups).forEach(function (groupName) {
556
+ var groupPopups = popups[groupName] || [];
557
+ groupPopups.forEach(function (popup) {
558
+ if (popup.state.isPopupOpen) {
559
+ var placeHolderElement = popup.placeHolderElement,
560
+ dropElement = popup.dropElement,
561
+ defaultPosition = popup.defaultPosition;
562
+ var _popup$state = popup.state,
563
+ position = _popup$state.position,
564
+ _popup$state$position = _popup$state.positionsOffset,
565
+ positionsOffset = _popup$state$position === void 0 ? {} : _popup$state$position;
566
+
567
+ if (placeHolderElement && dropElement) {
568
+ var scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
569
+ requestAnimationFrame(function () {
570
+ var needArrow = _this5.getNeedArrow(popup);
571
+
572
+ var isAbsolute = _this5.getIsAbsolutePopup(popup);
573
+
574
+ var customOrder = _this5.getCustomPositionOrder(popup);
575
+
576
+ var betterPosition = _viewPort["default"].betterView(dropElement, placeHolderElement, defaultPosition, scrollContainer, {
577
+ needArrow: needArrow,
578
+ isAbsolute: isAbsolute,
579
+ customOrder: customOrder
580
+ });
581
+
582
+ var _ref5 = betterPosition || {},
583
+ view = _ref5.view,
584
+ views = _ref5.views,
585
+ _ref5$viewsOffset = _ref5.viewsOffset,
586
+ viewsOffset = _ref5$viewsOffset === void 0 ? {} : _ref5$viewsOffset,
587
+ targetOffset = _ref5.targetOffset,
588
+ popupOffset = _ref5.popupOffset;
589
+
590
+ var _ref6 = positionsOffset[position] || {},
591
+ _ref6$left = _ref6.left,
592
+ oldLeft = _ref6$left === void 0 ? '' : _ref6$left,
593
+ _ref6$top = _ref6.top,
594
+ oldTop = _ref6$top === void 0 ? '' : _ref6$top;
595
+
596
+ var _ref7 = viewsOffset[view] || {},
597
+ _ref7$left = _ref7.left,
598
+ left = _ref7$left === void 0 ? '' : _ref7$left,
599
+ _ref7$top = _ref7.top,
600
+ top = _ref7$top === void 0 ? '' : _ref7$top;
601
+
602
+ var changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top; // let isInViewPort = viewPort.isInViewPort(
603
+ // placeHolderElement,
604
+ // scrollContainer
605
+ // );
606
+
607
+ if (changeState) {
608
+ popup.setState({
609
+ position: view,
610
+ positions: views,
611
+ positionsOffset: viewsOffset,
612
+ targetOffset: targetOffset,
613
+ popupOffset: popupOffset,
614
+ isAbsolutePositioningNeeded: isAbsolute
615
+ });
616
+ } // if (!isInViewPort && !isAbsolute) {
617
+ // popup.setState({ isPopupOpen: false, isPopupReady: false });
618
+ // } else if (view && changeState) {
619
+ // popup.setState({
620
+ // position: view,
621
+ // positions: views,
622
+ // positionsOffset: viewsOffset,
623
+ // targetOffset,
624
+ // popupOffset,
625
+ // isAbsolutePositioningNeeded: isAbsolute
626
+ // });
627
+ // }
628
+
629
+ });
630
+ }
631
+ }
632
+ });
633
+ });
634
+ }
635
+ }, {
636
+ key: "handleResize",
637
+ value: function handleResize() {
638
+ this.handleOpenPopupPositionChange();
639
+ }
640
+ }, {
641
+ key: "handleScroll",
642
+ value: function handleScroll(e) {
643
+ // this.handleOpenPopupPositionChange();
644
+ var _this$getCloseOnScrol = this.getCloseOnScrollPopup(this),
645
+ closeOnScroll = _this$getCloseOnScrol.closeOnScroll;
646
+
647
+ var isPopupReady = this.state.isPopupReady;
648
+
649
+ if (isPopupReady) {
650
+ console.log('onscrollPopupREady');
651
+ }
652
+
653
+ if (isPopupReady && closeOnScroll) {
654
+ console.log(this, 'handle Scroll');
655
+ this.togglePopup(e);
656
+ }
657
+ }
658
+ }, {
659
+ key: "handlePopupResize",
660
+ value: function handlePopupResize(popupSize) {
661
+ var height = popupSize.height,
662
+ width = popupSize.width;
663
+
664
+ var _ref8 = this.size || {},
665
+ _ref8$height = _ref8.height,
666
+ oldHeight = _ref8$height === void 0 ? 0 : _ref8$height,
667
+ _ref8$width = _ref8.width,
668
+ oldWidth = _ref8$width === void 0 ? 0 : _ref8$width;
669
+
670
+ var _this$state = this.state,
671
+ isPopupReady = _this$state.isPopupReady,
672
+ position = _this$state.position;
673
+
674
+ if (isPopupReady && this.size && (oldHeight !== height || width !== oldWidth)) {
675
+ this.handlePopupPosition(position, true);
676
+ }
677
+
678
+ this.size = popupSize;
679
+ }
680
+ }, {
681
+ key: "getTargetRef",
682
+ value: function getTargetRef(el) {
683
+ this.placeHolderElement = el;
684
+ }
685
+ }, {
686
+ key: "getContainerRef",
687
+ value: function getContainerRef(el) {
688
+ this.dropElement = el;
689
+ }
690
+ }, {
691
+ key: "render",
692
+ value: function render() {
693
+ var _this$state2 = this.state,
694
+ isPopupReady = _this$state2.isPopupReady,
695
+ isPopupOpen = _this$state2.isPopupOpen;
696
+ var localState = isPopupReady ? this.state : {};
697
+ return /*#__PURE__*/_react["default"].createElement(Component, _extends({}, this.props, this.state, {
698
+ openPopupOnly: this.openPopupOnly,
699
+ closePopupOnly: this.closePopupOnly,
700
+ togglePopup: this.togglePopup,
701
+ removeClose: this.removeClose,
702
+ getTargetRef: this.getTargetRef,
703
+ getContainerRef: this.getContainerRef
704
+ }));
705
+ }
706
+ }]);
707
+
708
+ return Popup;
709
+ }(_react["default"].Component);
710
+
711
+ Popup.displayName = Component.displayName || Component.name || Popup.name;
712
+ Popup.contextTypes = {
713
+ direction: _propTypes["default"].string
714
+ };
715
+ return (0, _hoistNonReactStatics["default"])(Popup, Component);
716
+ };
717
+
718
+ var _default = Popup;
719
+ exports["default"] = _default;