@zohodesk/components 1.0.0-test-252 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +161 -1
  2. package/assets/Appearance/dark/mode/darkMode.module.css +181 -179
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTAModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +31 -31
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/green/greenDarkCTAModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +30 -30
  8. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +3 -0
  9. package/assets/Appearance/dark/themes/orange/orangeDarkCTAModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +30 -30
  11. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +3 -0
  12. package/assets/Appearance/dark/themes/red/redDarkCTAModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +30 -30
  14. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +3 -0
  15. package/assets/Appearance/dark/themes/yellow/yellowDarkCTAModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +30 -30
  17. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +3 -0
  18. package/assets/Appearance/default/mode/defaultMode.module.css +177 -175
  19. package/assets/Appearance/default/themes/blue/blueDefaultCTAModifyCategory.module.css +452 -0
  20. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +31 -31
  21. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +3 -0
  22. package/assets/Appearance/default/themes/green/greenDefaultCTAModifyCategory.module.css +452 -0
  23. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +30 -30
  24. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +3 -0
  25. package/assets/Appearance/default/themes/orange/orangeDefaultCTAModifyCategory.module.css +452 -0
  26. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +30 -30
  27. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -0
  28. package/assets/Appearance/default/themes/red/redDefaultCTAModifyCategory.module.css +452 -0
  29. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +30 -30
  30. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -0
  31. package/assets/Appearance/default/themes/yellow/yellowDefaultCTAModifyCategory.module.css +452 -0
  32. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +30 -30
  33. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -0
  34. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +182 -180
  35. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTAModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +31 -31
  37. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +3 -0
  38. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTAModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +30 -30
  40. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +3 -0
  41. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTAModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +30 -30
  43. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +3 -0
  44. package/assets/Appearance/pureDark/themes/red/redPureDarkCTAModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +30 -30
  46. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +3 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTAModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +30 -30
  49. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +3 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/defaultContrastLightness.module.css +39 -0
  52. package/assets/Contrast/pureDarkContrastLightness.module.css +39 -0
  53. package/css_error.log +1 -0
  54. package/es/Accordion/Accordion.js +19 -9
  55. package/es/Accordion/AccordionItem.js +13 -8
  56. package/es/Accordion/props/defaultProps.js +6 -2
  57. package/es/Accordion/props/propTypes.js +3 -0
  58. package/es/Animation/Animation.js +10 -9
  59. package/es/AppContainer/AppContainer.js +38 -15
  60. package/es/AppContainer/AppContainer.module.css +2 -2
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +48 -25
  64. package/es/Avatar/Avatar.module.css +59 -18
  65. package/es/Avatar/props/defaultProps.js +4 -1
  66. package/es/Avatar/props/propTypes.js +5 -2
  67. package/es/AvatarTeam/AvatarTeam.js +21 -11
  68. package/es/AvatarTeam/AvatarTeam.module.css +49 -21
  69. package/es/AvatarTeam/props/defaultProps.js +5 -1
  70. package/es/AvatarTeam/props/propTypes.js +5 -1
  71. package/es/Button/Button.js +55 -51
  72. package/{lib/Button → es/Button/css}/Button.module.css +62 -58
  73. package/es/Button/css/cssJSLogic.js +53 -0
  74. package/es/Button/index.js +2 -0
  75. package/es/Button/props/defaultProps.js +3 -1
  76. package/es/Button/props/propTypes.js +6 -2
  77. package/es/Buttongroup/Buttongroup.js +24 -16
  78. package/es/Buttongroup/Buttongroup.module.css +45 -28
  79. package/es/Buttongroup/props/defaultProps.js +3 -1
  80. package/es/Buttongroup/props/propTypes.js +3 -1
  81. package/es/Card/Card.js +48 -26
  82. package/es/Card/props/defaultProps.js +12 -2
  83. package/es/Card/props/propTypes.js +2 -2
  84. package/es/CheckBox/CheckBox.js +13 -9
  85. package/es/CheckBox/CheckBox.module.css +16 -16
  86. package/es/CheckBox/props/propTypes.js +1 -0
  87. package/es/DateTime/CalendarView.js +46 -19
  88. package/es/DateTime/DateTime.js +139 -77
  89. package/es/DateTime/DateTime.module.css +51 -48
  90. package/es/DateTime/DateTimePopupFooter.js +4 -2
  91. package/es/DateTime/DateTimePopupHeader.js +30 -11
  92. package/es/DateTime/DateWidget.js +122 -51
  93. package/es/DateTime/DateWidget.module.css +5 -5
  94. package/es/DateTime/DaysRow.js +6 -3
  95. package/es/DateTime/Time.js +10 -2
  96. package/es/DateTime/YearView.js +41 -9
  97. package/es/DateTime/YearView.module.css +33 -15
  98. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  99. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  100. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  101. package/es/DateTime/common.js +3 -0
  102. package/es/DateTime/constants.js +1 -0
  103. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  104. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  105. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  106. package/es/DateTime/dateFormatUtils/index.js +59 -2
  107. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  108. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  109. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  110. package/es/DateTime/index.js +1 -1
  111. package/es/DateTime/objectUtils.js +14 -20
  112. package/es/DateTime/props/defaultProps.js +2 -1
  113. package/es/DateTime/props/propTypes.js +5 -2
  114. package/es/DateTime/typeChecker.js +3 -0
  115. package/es/DateTime/validator.js +58 -6
  116. package/es/DropBox/DropBox.js +82 -218
  117. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  118. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  119. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  120. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  121. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  122. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  123. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  124. package/es/DropBox/css/DropBox.module.css +59 -0
  125. package/es/DropBox/css/cssJSLogic.js +14 -0
  126. package/es/DropBox/props/defaultProps.js +9 -15
  127. package/es/DropBox/props/propTypes.js +9 -41
  128. package/es/DropDown/DropDown.js +16 -9
  129. package/es/DropDown/DropDown.module.css +2 -2
  130. package/es/DropDown/DropDownHeading.js +18 -11
  131. package/es/DropDown/DropDownHeading.module.css +3 -3
  132. package/es/DropDown/DropDownItem.js +8 -1
  133. package/es/DropDown/DropDownItem.module.css +9 -9
  134. package/es/DropDown/DropDownSearch.js +4 -0
  135. package/es/DropDown/DropDownSeparator.js +1 -0
  136. package/es/DropDown/DropDownSeparator.module.css +2 -2
  137. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  138. package/es/DropDown/index.js +7 -0
  139. package/es/DropDown/props/defaultProps.js +3 -1
  140. package/es/DropDown/props/propTypes.js +2 -1
  141. package/es/Heading/Heading.js +8 -7
  142. package/es/Heading/Heading.module.css +2 -2
  143. package/es/Label/Label.js +14 -9
  144. package/es/Label/Label.module.css +1 -1
  145. package/es/Label/props/defaultProps.js +2 -1
  146. package/es/Label/props/propTypes.js +1 -0
  147. package/es/Layout/Box.js +19 -4
  148. package/es/Layout/Container.js +18 -5
  149. package/es/Layout/Layout.module.css +15 -15
  150. package/es/Layout/index.js +9 -10
  151. package/es/Layout/props/defaultProps.js +6 -2
  152. package/es/Layout/props/propTypes.js +7 -3
  153. package/es/Layout/utils.js +5 -1
  154. package/es/ListItem/ListContainer.js +21 -9
  155. package/es/ListItem/ListItem.js +30 -14
  156. package/es/ListItem/ListItem.module.css +37 -30
  157. package/es/ListItem/ListItemWithAvatar.js +30 -15
  158. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  159. package/es/ListItem/ListItemWithIcon.js +29 -14
  160. package/es/ListItem/ListItemWithRadio.js +22 -10
  161. package/es/ListItem/index.js +6 -0
  162. package/es/ListItem/props/defaultProps.js +18 -6
  163. package/es/ListItem/props/propTypes.js +13 -1
  164. package/es/Modal/Modal.js +35 -17
  165. package/es/MultiSelect/AdvancedGroupMultiSelect.js +100 -20
  166. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  167. package/es/MultiSelect/EmptyState.js +6 -0
  168. package/es/MultiSelect/MultiSelect.js +129 -46
  169. package/es/MultiSelect/MultiSelect.module.css +32 -31
  170. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  171. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  172. package/es/MultiSelect/SelectedOptions.js +6 -3
  173. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  174. package/es/MultiSelect/Suggestions.js +13 -6
  175. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  176. package/es/MultiSelect/index.js +4 -0
  177. package/es/MultiSelect/props/defaultProps.js +11 -4
  178. package/es/MultiSelect/props/propTypes.js +17 -5
  179. package/es/PopOver/PopOver.js +25 -9
  180. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  181. package/es/PopOver/index.js +3 -0
  182. package/es/Popup/Popup.js +80 -31
  183. package/es/Popup/__tests__/Popup.spec.js +17 -5
  184. package/es/Popup/viewPort.js +16 -4
  185. package/es/Provider/AvatarSize.js +1 -0
  186. package/es/Provider/IdProvider.js +16 -10
  187. package/es/Provider/LibraryContext.js +6 -4
  188. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  189. package/es/Provider/ZindexProvider.js +9 -2
  190. package/es/Provider/index.js +4 -0
  191. package/es/Radio/Radio.js +9 -7
  192. package/es/Radio/Radio.module.css +3 -3
  193. package/es/Responsive/CustomResponsive.js +37 -21
  194. package/es/Responsive/RefWrapper.js +6 -7
  195. package/es/Responsive/ResizeComponent.js +35 -25
  196. package/es/Responsive/ResizeObserver.js +26 -6
  197. package/es/Responsive/Responsive.js +34 -20
  198. package/es/Responsive/index.js +9 -8
  199. package/es/Responsive/sizeObservers.js +28 -7
  200. package/es/Responsive/utils/index.js +7 -5
  201. package/es/Responsive/utils/shallowCompare.js +7 -2
  202. package/es/Responsive/windowResizeObserver.js +7 -0
  203. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  204. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  205. package/es/Ribbon/Ribbon.js +21 -15
  206. package/es/Ribbon/Ribbon.module.css +133 -55
  207. package/es/Ribbon/props/defaultProps.js +2 -1
  208. package/es/Ribbon/props/propTypes.js +2 -1
  209. package/es/RippleEffect/RippleEffect.js +6 -7
  210. package/es/Select/GroupSelect.js +71 -23
  211. package/es/Select/Select.js +115 -50
  212. package/es/Select/Select.module.css +23 -23
  213. package/es/Select/SelectWithAvatar.js +31 -12
  214. package/es/Select/SelectWithIcon.js +60 -14
  215. package/es/Select/__tests__/Select.spec.js +6 -8
  216. package/es/Select/index.js +4 -0
  217. package/es/Select/props/defaultProps.js +6 -1
  218. package/es/Select/props/propTypes.js +10 -4
  219. package/es/Stencils/Stencils.js +10 -9
  220. package/es/Stencils/Stencils.module.css +2 -2
  221. package/es/Switch/Switch.js +14 -8
  222. package/es/Switch/Switch.module.css +49 -32
  223. package/es/Switch/props/defaultProps.js +2 -1
  224. package/es/Switch/props/propTypes.js +1 -0
  225. package/es/Tab/Tab.js +14 -11
  226. package/es/Tab/Tab.module.css +14 -15
  227. package/es/Tab/TabContent.js +6 -3
  228. package/es/Tab/TabContentWrapper.js +6 -2
  229. package/es/Tab/TabWrapper.js +9 -4
  230. package/es/Tab/Tabs.js +85 -21
  231. package/es/Tab/Tabs.module.css +36 -40
  232. package/es/Tab/__tests__/Tab.spec.js +4 -12
  233. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  234. package/es/Tab/props/defaultProps.js +10 -5
  235. package/es/Tab/props/propTypes.js +10 -5
  236. package/es/Tag/Tag.js +16 -10
  237. package/es/Tag/Tag.module.css +10 -10
  238. package/es/Tag/props/defaultProps.js +2 -1
  239. package/es/Tag/props/propTypes.js +2 -1
  240. package/es/TextBox/TextBox.js +26 -10
  241. package/es/TextBox/TextBox.module.css +6 -5
  242. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  243. package/es/TextBox/props/defaultProps.js +2 -1
  244. package/es/TextBox/props/propTypes.js +2 -1
  245. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  246. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  247. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  248. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  249. package/es/TextBoxIcon/props/propTypes.js +1 -0
  250. package/es/Textarea/Textarea.js +23 -10
  251. package/es/Textarea/Textarea.module.css +6 -6
  252. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  253. package/es/Textarea/props/defaultProps.js +2 -1
  254. package/es/Textarea/props/propTypes.js +1 -0
  255. package/es/Tooltip/Tooltip.js +67 -21
  256. package/es/Tooltip/Tooltip.module.css +40 -8
  257. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  258. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  259. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  260. package/es/VelocityAnimation/index.js +2 -0
  261. package/es/common/a11y.module.css +4 -0
  262. package/es/common/animation.module.css +8 -8
  263. package/es/common/avatarsizes.module.css +6 -2
  264. package/es/common/basicReset.module.css +3 -3
  265. package/es/common/boxShadow.module.css +34 -0
  266. package/es/common/common.module.css +24 -24
  267. package/es/common/customscroll.module.css +4 -2
  268. package/es/common/reset.module.css +1 -0
  269. package/es/css.js +2 -1
  270. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  271. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  272. package/es/index.js +30 -146
  273. package/es/semantic/Button/Button.js +9 -7
  274. package/es/semantic/Button/semanticButton.module.css +1 -1
  275. package/es/semantic/index.js +1 -0
  276. package/es/utils/Common.js +74 -7
  277. package/es/utils/ContextOptimizer.js +4 -5
  278. package/es/utils/__tests__/debounce.spec.js +2 -2
  279. package/es/utils/constructFullName.js +2 -0
  280. package/es/utils/css/compileClassNames.js +28 -0
  281. package/es/utils/css/mergeStyle.js +57 -0
  282. package/es/utils/css/utils.js +24 -0
  283. package/es/utils/datetime/GMTZones.js +48 -0
  284. package/es/utils/datetime/common.js +31 -7
  285. package/es/utils/debounce.js +5 -1
  286. package/es/utils/dropDownUtils.js +71 -13
  287. package/es/utils/getInitial.js +4 -0
  288. package/es/utils/index.js +3 -0
  289. package/es/utils/shallowEqual.js +6 -0
  290. package/install.md +10 -0
  291. package/lib/Accordion/Accordion.js +50 -18
  292. package/lib/Accordion/AccordionItem.js +47 -20
  293. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  294. package/lib/Accordion/index.js +3 -0
  295. package/lib/Accordion/props/defaultProps.js +6 -2
  296. package/lib/Accordion/props/propTypes.js +6 -0
  297. package/lib/Animation/Animation.js +44 -21
  298. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  299. package/lib/Animation/props/propTypes.js +3 -0
  300. package/lib/AppContainer/AppContainer.js +75 -27
  301. package/lib/AppContainer/AppContainer.module.css +2 -2
  302. package/lib/AppContainer/props/defaultProps.js +3 -1
  303. package/lib/AppContainer/props/propTypes.js +5 -0
  304. package/lib/Avatar/Avatar.js +97 -44
  305. package/lib/Avatar/Avatar.module.css +59 -18
  306. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  307. package/lib/Avatar/props/defaultProps.js +4 -1
  308. package/lib/Avatar/props/propTypes.js +8 -2
  309. package/lib/AvatarTeam/AvatarTeam.js +64 -30
  310. package/lib/AvatarTeam/AvatarTeam.module.css +49 -21
  311. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  312. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  313. package/lib/AvatarTeam/props/propTypes.js +8 -1
  314. package/lib/Button/Button.js +64 -74
  315. package/{es/Button → lib/Button/css}/Button.module.css +62 -58
  316. package/lib/Button/css/cssJSLogic.js +41 -0
  317. package/lib/Button/index.js +23 -0
  318. package/lib/Button/props/defaultProps.js +5 -1
  319. package/lib/Button/props/propTypes.js +11 -3
  320. package/lib/Buttongroup/Buttongroup.js +49 -19
  321. package/lib/Buttongroup/Buttongroup.module.css +45 -28
  322. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  323. package/lib/Buttongroup/props/defaultProps.js +3 -1
  324. package/lib/Buttongroup/props/propTypes.js +6 -1
  325. package/lib/Card/Card.js +119 -55
  326. package/lib/Card/__tests__/Card.spec.js +10 -1
  327. package/lib/Card/index.js +4 -0
  328. package/lib/Card/props/defaultProps.js +16 -4
  329. package/lib/Card/props/propTypes.js +5 -2
  330. package/lib/CheckBox/CheckBox.js +76 -48
  331. package/lib/CheckBox/CheckBox.module.css +16 -16
  332. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  333. package/lib/CheckBox/props/propTypes.js +4 -0
  334. package/lib/DateTime/CalendarView.js +95 -38
  335. package/lib/DateTime/DateTime.js +309 -216
  336. package/lib/DateTime/DateTime.module.css +51 -48
  337. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  338. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  339. package/lib/DateTime/DateWidget.js +370 -260
  340. package/lib/DateTime/DateWidget.module.css +5 -5
  341. package/lib/DateTime/DaysRow.js +28 -3
  342. package/lib/DateTime/Time.js +72 -29
  343. package/lib/DateTime/YearView.js +89 -30
  344. package/lib/DateTime/YearView.module.css +33 -15
  345. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  346. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  347. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  348. package/lib/DateTime/common.js +6 -0
  349. package/lib/DateTime/constants.js +1 -0
  350. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  351. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  352. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  353. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  354. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  355. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  356. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  357. package/lib/DateTime/index.js +3 -1
  358. package/lib/DateTime/objectUtils.js +24 -20
  359. package/lib/DateTime/props/defaultProps.js +2 -1
  360. package/lib/DateTime/props/propTypes.js +21 -2
  361. package/lib/DateTime/typeChecker.js +4 -0
  362. package/lib/DateTime/validator.js +69 -6
  363. package/lib/DropBox/DropBox.js +102 -249
  364. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  365. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  366. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  367. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  368. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  369. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  370. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  371. package/lib/DropBox/css/DropBox.module.css +59 -0
  372. package/lib/DropBox/css/cssJSLogic.js +20 -0
  373. package/lib/DropBox/props/defaultProps.js +20 -17
  374. package/lib/DropBox/props/propTypes.js +22 -43
  375. package/lib/DropDown/DropDown.js +58 -10
  376. package/lib/DropDown/DropDown.module.css +2 -2
  377. package/lib/DropDown/DropDownHeading.js +47 -18
  378. package/lib/DropDown/DropDownHeading.module.css +3 -3
  379. package/lib/DropDown/DropDownItem.js +43 -18
  380. package/lib/DropDown/DropDownItem.module.css +9 -9
  381. package/lib/DropDown/DropDownSearch.js +39 -14
  382. package/lib/DropDown/DropDownSeparator.js +23 -1
  383. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  384. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  385. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  386. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  387. package/lib/DropDown/index.js +65 -0
  388. package/lib/DropDown/props/defaultProps.js +3 -1
  389. package/lib/DropDown/props/propTypes.js +7 -1
  390. package/lib/Heading/Heading.js +42 -16
  391. package/lib/Heading/Heading.module.css +2 -2
  392. package/lib/Heading/props/propTypes.js +3 -0
  393. package/lib/Label/Label.js +47 -19
  394. package/lib/Label/Label.module.css +1 -1
  395. package/lib/Label/__tests__/Label.spec.js +14 -1
  396. package/lib/Label/props/defaultProps.js +2 -1
  397. package/lib/Label/props/propTypes.js +4 -0
  398. package/lib/Layout/Box.js +41 -16
  399. package/lib/Layout/Container.js +39 -15
  400. package/lib/Layout/Layout.module.css +15 -15
  401. package/lib/Layout/__tests__/Box.spec.js +65 -49
  402. package/lib/Layout/__tests__/Container.spec.js +67 -50
  403. package/lib/Layout/index.js +4 -11
  404. package/lib/Layout/props/defaultProps.js +6 -2
  405. package/lib/Layout/props/propTypes.js +10 -3
  406. package/lib/Layout/utils.js +15 -1
  407. package/lib/ListItem/ListContainer.js +61 -34
  408. package/lib/ListItem/ListItem.js +92 -50
  409. package/lib/ListItem/ListItem.module.css +37 -30
  410. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  411. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  412. package/lib/ListItem/ListItemWithIcon.js +92 -50
  413. package/lib/ListItem/ListItemWithRadio.js +83 -42
  414. package/lib/ListItem/index.js +55 -0
  415. package/lib/ListItem/props/defaultProps.js +18 -6
  416. package/lib/ListItem/props/propTypes.js +18 -3
  417. package/lib/Modal/Modal.js +51 -13
  418. package/lib/Modal/props/propTypes.js +3 -0
  419. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -167
  420. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  421. package/lib/MultiSelect/EmptyState.js +48 -21
  422. package/lib/MultiSelect/MultiSelect.js +341 -205
  423. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  424. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  425. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  426. package/lib/MultiSelect/SelectedOptions.js +42 -14
  427. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  428. package/lib/MultiSelect/Suggestions.js +66 -29
  429. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  430. package/lib/MultiSelect/index.js +39 -0
  431. package/lib/MultiSelect/props/defaultProps.js +13 -4
  432. package/lib/MultiSelect/props/propTypes.js +20 -5
  433. package/lib/PopOver/PopOver.js +101 -53
  434. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  435. package/lib/PopOver/index.js +31 -0
  436. package/lib/PopOver/props/propTypes.js +3 -0
  437. package/lib/Popup/Popup.js +158 -83
  438. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  439. package/lib/Popup/viewPort.js +28 -14
  440. package/lib/Provider/AvatarSize.js +5 -0
  441. package/lib/Provider/Config.js +2 -0
  442. package/lib/Provider/CssProvider.js +4 -0
  443. package/lib/Provider/IdProvider.js +23 -12
  444. package/lib/Provider/LibraryContext.js +32 -10
  445. package/lib/Provider/LibraryContextInit.js +4 -0
  446. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  447. package/lib/Provider/ZindexProvider.js +15 -3
  448. package/lib/Provider/index.js +81 -0
  449. package/lib/Radio/Radio.js +65 -40
  450. package/lib/Radio/Radio.module.css +3 -3
  451. package/lib/Radio/__tests__/Radiospec.js +9 -5
  452. package/lib/Radio/props/propTypes.js +3 -0
  453. package/lib/Responsive/CustomResponsive.js +76 -26
  454. package/lib/Responsive/RefWrapper.js +15 -7
  455. package/lib/Responsive/ResizeComponent.js +58 -27
  456. package/lib/Responsive/ResizeObserver.js +23 -6
  457. package/lib/Responsive/Responsive.js +76 -24
  458. package/lib/Responsive/index.js +49 -22
  459. package/lib/Responsive/props/propTypes.js +3 -0
  460. package/lib/Responsive/sizeObservers.js +51 -13
  461. package/lib/Responsive/utils/index.js +11 -3
  462. package/lib/Responsive/utils/shallowCompare.js +11 -2
  463. package/lib/Responsive/windowResizeObserver.js +8 -0
  464. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  465. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  466. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  467. package/lib/Ribbon/Ribbon.js +48 -21
  468. package/lib/Ribbon/Ribbon.module.css +133 -55
  469. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  470. package/lib/Ribbon/props/defaultProps.js +2 -1
  471. package/lib/Ribbon/props/propTypes.js +5 -1
  472. package/lib/RippleEffect/RippleEffect.js +23 -14
  473. package/lib/RippleEffect/props/propTypes.js +3 -0
  474. package/lib/Select/GroupSelect.js +240 -137
  475. package/lib/Select/Select.js +320 -220
  476. package/lib/Select/Select.module.css +23 -23
  477. package/lib/Select/SelectWithAvatar.js +112 -59
  478. package/lib/Select/SelectWithIcon.js +145 -82
  479. package/lib/Select/__tests__/Select.spec.js +131 -89
  480. package/lib/Select/index.js +39 -0
  481. package/lib/Select/props/defaultProps.js +10 -2
  482. package/lib/Select/props/propTypes.js +13 -4
  483. package/lib/Stencils/Stencils.js +35 -13
  484. package/lib/Stencils/Stencils.module.css +2 -2
  485. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  486. package/lib/Stencils/props/propTypes.js +3 -0
  487. package/lib/Switch/Switch.js +64 -35
  488. package/lib/Switch/Switch.module.css +49 -32
  489. package/lib/Switch/props/defaultProps.js +2 -1
  490. package/lib/Switch/props/propTypes.js +4 -0
  491. package/lib/Tab/Tab.js +49 -33
  492. package/lib/Tab/Tab.module.css +14 -15
  493. package/lib/Tab/TabContent.js +15 -6
  494. package/lib/Tab/TabContentWrapper.js +15 -6
  495. package/lib/Tab/TabWrapper.js +37 -17
  496. package/lib/Tab/Tabs.js +193 -94
  497. package/lib/Tab/Tabs.module.css +36 -40
  498. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  499. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  500. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  501. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  502. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  503. package/lib/Tab/index.js +6 -0
  504. package/lib/Tab/props/defaultProps.js +10 -5
  505. package/lib/Tab/props/propTypes.js +13 -5
  506. package/lib/Tag/Tag.js +82 -48
  507. package/lib/Tag/Tag.module.css +10 -10
  508. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  509. package/lib/Tag/props/defaultProps.js +2 -1
  510. package/lib/Tag/props/propTypes.js +5 -1
  511. package/lib/TextBox/TextBox.js +93 -61
  512. package/lib/TextBox/TextBox.module.css +6 -5
  513. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  514. package/lib/TextBox/props/defaultProps.js +2 -1
  515. package/lib/TextBox/props/propTypes.js +6 -1
  516. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  517. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  518. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  519. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  520. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  521. package/lib/Textarea/Textarea.js +63 -32
  522. package/lib/Textarea/Textarea.module.css +6 -6
  523. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  524. package/lib/Textarea/props/defaultProps.js +2 -1
  525. package/lib/Textarea/props/propTypes.js +4 -0
  526. package/lib/Tooltip/Tooltip.js +102 -35
  527. package/lib/Tooltip/Tooltip.module.css +40 -8
  528. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  529. package/lib/Tooltip/props/propTypes.js +3 -0
  530. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  531. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  532. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  533. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  534. package/lib/VelocityAnimation/index.js +23 -0
  535. package/lib/common/a11y.module.css +4 -0
  536. package/lib/common/animation.module.css +8 -8
  537. package/lib/common/avatarsizes.module.css +6 -2
  538. package/lib/common/basicReset.module.css +3 -3
  539. package/lib/common/boxShadow.module.css +34 -0
  540. package/lib/common/common.module.css +24 -24
  541. package/lib/common/customscroll.module.css +4 -2
  542. package/lib/common/reset.module.css +1 -0
  543. package/lib/css.js +42 -1
  544. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  545. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  546. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  547. package/lib/index.js +214 -210
  548. package/lib/semantic/Button/Button.js +47 -24
  549. package/lib/semantic/Button/props/propTypes.js +3 -0
  550. package/lib/semantic/Button/semanticButton.module.css +1 -1
  551. package/lib/semantic/index.js +15 -0
  552. package/lib/utils/Common.js +136 -17
  553. package/lib/utils/ContextOptimizer.js +16 -10
  554. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  555. package/lib/utils/__tests__/debounce.spec.js +3 -2
  556. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  557. package/lib/utils/constructFullName.js +11 -2
  558. package/lib/utils/css/compileClassNames.js +37 -0
  559. package/lib/utils/css/mergeStyle.js +69 -0
  560. package/lib/utils/css/utils.js +41 -0
  561. package/lib/utils/datetime/GMTZones.js +55 -0
  562. package/lib/utils/datetime/common.js +52 -7
  563. package/lib/utils/debounce.js +6 -1
  564. package/lib/utils/dropDownUtils.js +177 -56
  565. package/lib/utils/dummyFunction.js +2 -0
  566. package/lib/utils/getHTMLFontSize.js +1 -0
  567. package/lib/utils/getInitial.js +6 -0
  568. package/lib/utils/index.js +121 -0
  569. package/lib/utils/scrollTo.js +2 -0
  570. package/lib/utils/shallowEqual.js +8 -0
  571. package/package.json +61 -26
  572. package/postPublish.js +8 -0
  573. package/prePublish.js +70 -0
  574. package/docs/external/active-line.js +0 -72
  575. package/docs/external/autorefresh.js +0 -47
  576. package/docs/external/codemirror.js +0 -9681
  577. package/docs/external/css/hopscotch.css +0 -576
  578. package/docs/external/css/styleGuide.css +0 -1100
  579. package/docs/external/css.js +0 -466
  580. package/docs/external/designTokens.js +0 -1
  581. package/docs/external/foldcode.js +0 -152
  582. package/docs/external/format.js +0 -129
  583. package/docs/external/htmlmixed.js +0 -84
  584. package/docs/external/images/bottom.png +0 -0
  585. package/docs/external/images/bottombg.jpg +0 -0
  586. package/docs/external/images/desk.png +0 -0
  587. package/docs/external/images/desklogo.png +0 -0
  588. package/docs/external/images/menu.png +0 -0
  589. package/docs/external/index.html +0 -127
  590. package/docs/external/javascript.js +0 -422
  591. package/docs/external/jsx.js +0 -148
  592. package/docs/external/matchbrackets.js +0 -145
  593. package/docs/external/xml.js +0 -322
  594. package/docs/package.json +0 -41
  595. package/docs/src/index.js +0 -1311
  596. package/es/Button/__tests__/Button.spec.js +0 -190
  597. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  598. package/es/DropBox/DropBox.module.css +0 -406
  599. package/lib/Button/__tests__/Button.spec.js +0 -193
  600. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  601. package/lib/DropBox/DropBox.module.css +0 -406
@@ -5,6 +5,7 @@ import Popup from '../Popup/Popup';
5
5
  import { Box } from '../Layout';
6
6
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
7
7
  import style from './PopOver.module.css';
8
+
8
9
  class PopOver extends React.Component {
9
10
  constructor(props) {
10
11
  super(props);
@@ -12,17 +13,20 @@ class PopOver extends React.Component {
12
13
  this.popOverContainerRef = this.popOverContainerRef.bind(this);
13
14
  this.togglePopup = this.togglePopup.bind(this);
14
15
  }
16
+
15
17
  componentDidUpdate(prevProps) {
16
18
  let {
17
19
  isPopupOpen,
18
20
  onPopupOpen,
19
21
  onPopupClose
20
22
  } = this.props;
23
+
21
24
  if (prevProps.isPopupOpen !== isPopupOpen) {
22
25
  isPopupOpen && onPopupOpen && onPopupOpen();
23
26
  !isPopupOpen && onPopupClose && onPopupClose();
24
27
  }
25
28
  }
29
+
26
30
  popOverTargetRef(el) {
27
31
  this.popOverTarget = el;
28
32
  let {
@@ -30,6 +34,7 @@ class PopOver extends React.Component {
30
34
  } = this.props;
31
35
  getTargetRef(el);
32
36
  }
37
+
33
38
  popOverContainerRef(el) {
34
39
  this.popOverContainer = el;
35
40
  let {
@@ -37,6 +42,7 @@ class PopOver extends React.Component {
37
42
  } = this.props;
38
43
  getContainerRef(el);
39
44
  }
45
+
40
46
  togglePopup(e) {
41
47
  let {
42
48
  togglePopup,
@@ -44,6 +50,7 @@ class PopOver extends React.Component {
44
50
  } = this.props;
45
51
  togglePopup(e, boxPosition);
46
52
  }
53
+
47
54
  render() {
48
55
  let {
49
56
  children,
@@ -98,29 +105,33 @@ class PopOver extends React.Component {
98
105
  className: style.popup
99
106
  }, childrens);
100
107
  }
108
+
101
109
  }
110
+
102
111
  PopOver.defaultProps = PopOver_defaultProps;
103
- PopOver.propTypes = PopOver_propTypes;
104
- if (false) {
105
- PopOver.docs = {
106
- componentGroup: 'Form Elements',
107
- folderName: 'Style Guide',
108
- description: ' ',
109
- external: true
110
- };
111
- }
112
+ PopOver.propTypes = PopOver_propTypes; // if (__DOCS__) {
113
+ // PopOver.docs = {
114
+ // componentGroup: 'Form Elements',
115
+ // folderName: 'Style Guide',
116
+ // description: ' ',
117
+ // external: true
118
+ // };
119
+ // }
120
+
112
121
  export default Popup(PopOver);
113
122
  export class PopOverTarget extends React.Component {
114
123
  constructor(props) {
115
124
  super(props);
116
125
  this.getRef = this.getRef.bind(this);
117
126
  }
127
+
118
128
  getRef(el) {
119
129
  let {
120
130
  getRef
121
131
  } = this.props;
122
132
  getRef(el);
123
133
  }
134
+
124
135
  render() {
125
136
  let {
126
137
  children,
@@ -132,6 +143,7 @@ export class PopOverTarget extends React.Component {
132
143
  ref: this.getRef
133
144
  }, children);
134
145
  }
146
+
135
147
  }
136
148
  PopOverTarget.propTypes = PopOverTarget_propTypes;
137
149
  export class PopOverContainer extends React.Component {
@@ -140,12 +152,14 @@ export class PopOverContainer extends React.Component {
140
152
  this.handleClick = this.handleClick.bind(this);
141
153
  this.getRef = this.getRef.bind(this);
142
154
  }
155
+
143
156
  getRef(el) {
144
157
  let {
145
158
  getRef
146
159
  } = this.props;
147
160
  getRef && getRef(el);
148
161
  }
162
+
149
163
  handleClick(e) {
150
164
  let {
151
165
  onClick,
@@ -154,6 +168,7 @@ export class PopOverContainer extends React.Component {
154
168
  removeClose && removeClose(e);
155
169
  onClick && onClick();
156
170
  }
171
+
157
172
  render() {
158
173
  let {
159
174
  children,
@@ -198,6 +213,7 @@ export class PopOverContainer extends React.Component {
198
213
  scroll: "vertical"
199
214
  }, children));
200
215
  }
216
+
201
217
  }
202
218
  PopOverContainer.defaultProps = PopOverContainer_defaultProps;
203
219
  PopOverContainer.propTypes = PopOverContainer_propTypes;
@@ -1,8 +1,9 @@
1
1
  /* eslint-disable no-undef */
2
+
2
3
  /**** Libraries ****/
3
4
  import React from 'react';
4
-
5
5
  /**** Components ****/
6
+
6
7
  import PopOver from '../PopOver';
7
8
  describe('PopOver component conditions', () => {
8
9
  xit('should open popup', () => {
@@ -0,0 +1,3 @@
1
+ export { default as PopOver } from './PopOver';
2
+ export { PopOverTarget } from './PopOver';
3
+ export { PopOverContainer } from './PopOver';
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
- import { debounce, isDescendant } from '../utils/Common.js';
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,99 +312,106 @@ 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 massUpdateParent = document.querySelector(
327
- // '[data-id=massUpdatePopup]'
328
- // );
329
- // const isPopupMassUpdateChild = isDescendant(
359
+ const isTargetChild = isDescendant(placeHolderElement, target); // const isPopupMassUpdateChild = isDescendant(
330
360
  // massUpdateParent,
331
361
  // dropElement
332
362
  // );
333
363
 
334
- if (!isDropBoxChild && !isTargetChild
335
- // && isPopupMassUpdateChild
364
+ if (!isDropBoxChild && !isTargetChild // && isPopupMassUpdateChild
336
365
  ) {
337
366
  needPrevent = true;
338
367
  }
339
368
  }
340
369
  }
370
+
341
371
  return needPrevent;
342
372
  }
373
+
343
374
  documentClickHandler1(e) {
344
375
  const needPrevent = this.handleGetNeedPrevent(e);
376
+
345
377
  if (needPrevent) {
346
378
  this.removeClose(e);
347
379
  this.handleCloseLastOpenedGroup();
348
380
  }
349
381
  }
382
+
350
383
  documentClickHandler() {
351
384
  try {
352
385
  Object.keys(popups).forEach(groupName => {
353
386
  const groupPopups = popups[groupName] || [];
354
387
  groupPopups.forEach(popup => {
355
- popup.state.isPopupOpen && (!popup.props.checkBeforeClose || popup.props.checkBeforeClose && popup.props.checkBeforeClose()) && popup.setState({
388
+ popup.state.isPopupOpen && (!popup.props.checkBeforeClose || popup.props.checkBeforeClose && popup.props.checkBeforeClose()) && !isTextSelected() && popup.setState({
356
389
  isPopupOpen: false,
357
390
  isPopupReady: false
358
391
  });
359
392
  });
360
393
  });
361
394
  lastOpenedGroup = [];
362
- } catch (e) {
363
- // eslint-disable-next-line no-console
395
+ } catch (e) {// eslint-disable-next-line no-console
364
396
  //console.error('popup component not unmounted properly', e);
365
397
  }
366
398
  }
399
+
367
400
  documentKeyupHandler(e) {
368
401
  try {
369
402
  if (e.keyCode === 27) {
370
403
  this.handleCloseLastOpenedGroup();
371
404
  }
372
- } catch (e) {
373
- // eslint-disable-next-line no-console
405
+ } catch (e) {// eslint-disable-next-line no-console
374
406
  //console.log('error', e);
375
407
  }
376
408
  }
409
+
377
410
  removeClose(e) {
378
411
  // e && e.preventDefault && e.preventDefault();
379
- e && e.stopPropagation && e.stopPropagation();
380
- e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
412
+ cancelBubblingEffect(e);
381
413
  }
414
+
382
415
  handlePopupPosition() {
383
416
  let defaultPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bottomCenter';
384
417
  let isResizeHandling = arguments.length > 1 ? arguments[1] : undefined;
@@ -393,11 +426,13 @@ const Popup = function (Component) {
393
426
  const needArrow = this.getNeedArrow(this);
394
427
  const isAbsolute = this.getIsAbsolutePopup(this);
395
428
  const customOrder = this.getCustomPositionOrder(this);
429
+
396
430
  if (direction === 'rtl') {
397
431
  defaultPosition = isAbsolute ? rtlAbsolutePositionMapping[defaultPosition] : rtlFixedPositionMapping[defaultPosition];
398
432
  } else {
399
433
  defaultPosition = isAbsolute ? absolutePositionMapping[defaultPosition] : defaultPosition;
400
434
  }
435
+
401
436
  if (!placeHolderElement && !dropElement) {
402
437
  this.setState({
403
438
  isPopupOpen: true,
@@ -405,6 +440,7 @@ const Popup = function (Component) {
405
440
  });
406
441
  return;
407
442
  }
443
+
408
444
  const setPosition = () => {
409
445
  requestAnimationFrame(() => {
410
446
  const {
@@ -428,6 +464,7 @@ const Popup = function (Component) {
428
464
  targetOffset,
429
465
  popupOffset
430
466
  } = betterPosition || {};
467
+
431
468
  if (position !== view || !isPopupReady) {
432
469
  this.setState({
433
470
  isPopupReady: true,
@@ -441,6 +478,7 @@ const Popup = function (Component) {
441
478
  }
442
479
  });
443
480
  };
481
+
444
482
  if (isResizeHandling) {
445
483
  setPosition();
446
484
  } else {
@@ -451,6 +489,7 @@ const Popup = function (Component) {
451
489
  }, setPosition);
452
490
  }
453
491
  }
492
+
454
493
  handleOpenPopupPositionChange() {
455
494
  Object.keys(popups).forEach(groupName => {
456
495
  const groupPopups = popups[groupName] || [];
@@ -465,6 +504,7 @@ const Popup = function (Component) {
465
504
  position,
466
505
  positionsOffset = {}
467
506
  } = popup.state;
507
+
468
508
  if (placeHolderElement && dropElement) {
469
509
  const scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
470
510
  requestAnimationFrame(() => {
@@ -491,9 +531,7 @@ const Popup = function (Component) {
491
531
  left = '',
492
532
  top = ''
493
533
  } = viewsOffset[view] || {};
494
- const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top;
495
-
496
- // let isInViewPort = viewPort.isInViewPort(
534
+ const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top; // let isInViewPort = viewPort.isInViewPort(
497
535
  // placeHolderElement,
498
536
  // scrollContainer
499
537
  // );
@@ -507,9 +545,7 @@ const Popup = function (Component) {
507
545
  popupOffset,
508
546
  isAbsolutePositioningNeeded: isAbsolute
509
547
  });
510
- }
511
-
512
- // if (!isInViewPort && !isAbsolute) {
548
+ } // if (!isInViewPort && !isAbsolute) {
513
549
  // popup.setState({ isPopupOpen: false, isPopupReady: false });
514
550
  // } else if (view && changeState) {
515
551
  // popup.setState({
@@ -521,6 +557,7 @@ const Popup = function (Component) {
521
557
  // isAbsolutePositioningNeeded: isAbsolute
522
558
  // });
523
559
  // }
560
+
524
561
  });
525
562
  }
526
563
  }
@@ -531,6 +568,7 @@ const Popup = function (Component) {
531
568
  handleResize() {
532
569
  this.handleOpenPopupPositionChange();
533
570
  }
571
+
534
572
  handleScroll(e) {
535
573
  // this.handleOpenPopupPositionChange();
536
574
  const {
@@ -539,14 +577,17 @@ const Popup = function (Component) {
539
577
  const {
540
578
  isPopupReady
541
579
  } = this.state;
580
+
542
581
  if (isPopupReady) {
543
582
  console.log('onscrollPopupREady');
544
583
  }
584
+
545
585
  if (isPopupReady && closeOnScroll) {
546
586
  console.log(this, 'handle Scroll');
547
587
  this.togglePopup(e);
548
588
  }
549
589
  }
590
+
550
591
  handlePopupResize(popupSize) {
551
592
  const {
552
593
  height,
@@ -560,17 +601,22 @@ const Popup = function (Component) {
560
601
  isPopupReady,
561
602
  position
562
603
  } = this.state;
604
+
563
605
  if (isPopupReady && this.size && (oldHeight !== height || width !== oldWidth)) {
564
606
  this.handlePopupPosition(position, true);
565
607
  }
608
+
566
609
  this.size = popupSize;
567
610
  }
611
+
568
612
  getTargetRef(el) {
569
613
  this.placeHolderElement = el;
570
614
  }
615
+
571
616
  getContainerRef(el) {
572
617
  this.dropElement = el;
573
618
  }
619
+
574
620
  render() {
575
621
  const {
576
622
  isPopupReady,
@@ -586,11 +632,14 @@ const Popup = function (Component) {
586
632
  getContainerRef: this.getContainerRef
587
633
  }));
588
634
  }
635
+
589
636
  }
637
+
590
638
  Popup.displayName = Component.displayName || Component.name || Popup.name;
591
639
  Popup.contextTypes = {
592
640
  direction: PropTypes.string
593
641
  };
594
642
  return hoistStatics(Popup, Component);
595
643
  };
644
+
596
645
  export default Popup;