@jetbrains/ring-ui-built 7.0.0-beta.2 → 7.0.0-beta.4

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 (336) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +1 -504
  2. package/components/_helpers/anchor.js +7 -10
  3. package/components/_helpers/button__classes.js +15 -13
  4. package/components/_helpers/caption.js +11 -21
  5. package/components/_helpers/card.js +91 -123
  6. package/components/_helpers/dialog__body-scroll-preventer.js +10 -17
  7. package/components/_helpers/icon__svg.js +27 -29
  8. package/components/_helpers/input.js +150 -192
  9. package/components/_helpers/query-assist__suggestions.js +78 -93
  10. package/components/_helpers/select__filter.js +56 -75
  11. package/components/_helpers/services-link.js +23 -39
  12. package/components/_helpers/sidebar.js +91 -102
  13. package/components/_helpers/tab-link.js +8 -12
  14. package/components/_helpers/theme.js +42 -51
  15. package/components/_helpers/title.js +59 -84
  16. package/components/alert/alert.d.ts +7 -24
  17. package/components/alert/alert.js +111 -179
  18. package/components/alert/container.d.ts +0 -5
  19. package/components/alert/container.js +32 -44
  20. package/components/alert-service/alert-service.js +104 -162
  21. package/components/analytics/analytics.js +12 -20
  22. package/components/analytics/analytics__custom-plugin.js +52 -68
  23. package/components/auth/auth.js +2 -28
  24. package/components/auth/auth__core.d.ts +4 -4
  25. package/components/auth/auth__core.js +753 -1431
  26. package/components/auth/background-flow.js +84 -121
  27. package/components/auth/down-notification.js +31 -78
  28. package/components/auth/iframe-flow.js +70 -124
  29. package/components/auth/request-builder.js +46 -77
  30. package/components/auth/response-parser.js +84 -112
  31. package/components/auth/storage.js +160 -319
  32. package/components/auth/token-validator.js +132 -227
  33. package/components/auth/window-flow.js +84 -121
  34. package/components/auth-dialog/auth-dialog.d.ts +0 -18
  35. package/components/auth-dialog/auth-dialog.js +106 -175
  36. package/components/auth-dialog-service/auth-dialog-service.js +10 -31
  37. package/components/avatar/avatar-example-datauri.js +1 -1
  38. package/components/avatar/avatar.d.ts +0 -13
  39. package/components/avatar/avatar.js +94 -136
  40. package/components/avatar/fallback-avatar.d.ts +1 -10
  41. package/components/avatar/fallback-avatar.js +20 -40
  42. package/components/badge/badge.d.ts +0 -10
  43. package/components/badge/badge.js +32 -48
  44. package/components/breadcrumbs/breadcrumbs.js +13 -17
  45. package/components/button/button.d.ts +0 -21
  46. package/components/button/button.js +67 -101
  47. package/components/button-group/button-group.d.ts +0 -5
  48. package/components/button-group/button-group.js +27 -41
  49. package/components/button-group/caption.d.ts +0 -4
  50. package/components/button-group/caption.js +0 -1
  51. package/components/button-set/button-set.d.ts +0 -6
  52. package/components/button-set/button-set.js +19 -33
  53. package/components/button-toolbar/button-toolbar.d.ts +0 -6
  54. package/components/button-toolbar/button-toolbar.js +17 -31
  55. package/components/caret/caret.js +184 -211
  56. package/components/checkbox/checkbox.d.ts +0 -19
  57. package/components/checkbox/checkbox.js +69 -104
  58. package/components/clipboard/clipboard-fallback.js +7 -7
  59. package/components/clipboard/clipboard.js +36 -129
  60. package/components/code/code.d.ts +0 -12
  61. package/components/code/code.js +83 -163
  62. package/components/collapse/collapse-content.js +42 -60
  63. package/components/collapse/collapse-context.js +2 -2
  64. package/components/collapse/collapse-control.js +12 -12
  65. package/components/collapse/collapse.js +12 -17
  66. package/components/collapse/consts.js +4 -4
  67. package/components/collapse/utils.js +1 -3
  68. package/components/confirm/confirm.d.ts +0 -14
  69. package/components/confirm/confirm.js +67 -111
  70. package/components/confirm-service/confirm-service.js +23 -45
  71. package/components/content-layout/content-layout.d.ts +0 -7
  72. package/components/content-layout/content-layout.js +41 -63
  73. package/components/content-layout/sidebar.d.ts +0 -9
  74. package/components/content-layout/sidebar.js +1 -2
  75. package/components/contenteditable/contenteditable.d.ts +1 -22
  76. package/components/contenteditable/contenteditable.js +37 -60
  77. package/components/control-help/control-help.js +5 -3
  78. package/components/control-label/control-label.js +9 -14
  79. package/components/data-list/data-list.d.ts +0 -2
  80. package/components/data-list/data-list.js +115 -179
  81. package/components/data-list/data-list.mock.js +3 -6
  82. package/components/data-list/item.js +118 -164
  83. package/components/data-list/selection.js +77 -135
  84. package/components/data-list/title.d.ts +2 -2
  85. package/components/data-list/title.js +2 -12
  86. package/components/date-picker/consts.d.ts +0 -2
  87. package/components/date-picker/consts.js +16 -24
  88. package/components/date-picker/date-input.d.ts +0 -20
  89. package/components/date-picker/date-input.js +99 -147
  90. package/components/date-picker/date-picker.d.ts +0 -29
  91. package/components/date-picker/date-picker.js +143 -224
  92. package/components/date-picker/date-popup.d.ts +0 -22
  93. package/components/date-picker/date-popup.js +281 -351
  94. package/components/date-picker/day.d.ts +0 -14
  95. package/components/date-picker/day.js +72 -109
  96. package/components/date-picker/month-names.d.ts +1 -11
  97. package/components/date-picker/month-names.js +42 -72
  98. package/components/date-picker/month-slider.d.ts +0 -9
  99. package/components/date-picker/month-slider.js +43 -71
  100. package/components/date-picker/month.d.ts +1 -9
  101. package/components/date-picker/month.js +18 -30
  102. package/components/date-picker/months.d.ts +1 -9
  103. package/components/date-picker/months.js +45 -55
  104. package/components/date-picker/weekdays.d.ts +2 -8
  105. package/components/date-picker/weekdays.js +12 -25
  106. package/components/date-picker/years.d.ts +0 -6
  107. package/components/date-picker/years.js +77 -104
  108. package/components/dialog/dialog.d.ts +0 -20
  109. package/components/dialog/dialog.js +152 -210
  110. package/components/dialog/dialog__body-scroll-preventer.js +0 -3
  111. package/components/dropdown/anchor.d.ts +1 -8
  112. package/components/dropdown/anchor.js +0 -7
  113. package/components/dropdown/dropdown.d.ts +4 -22
  114. package/components/dropdown/dropdown.js +134 -176
  115. package/components/dropdown-menu/dropdown-menu.js +51 -103
  116. package/components/editable-heading/editable-heading.js +69 -118
  117. package/components/error-bubble/error-bubble.d.ts +0 -6
  118. package/components/error-bubble/error-bubble.js +29 -60
  119. package/components/error-message/error-message.d.ts +0 -10
  120. package/components/error-message/error-message.js +34 -59
  121. package/components/footer/footer.js +27 -43
  122. package/components/global/compose.js +1 -8
  123. package/components/global/composeRefs.d.ts +0 -3
  124. package/components/global/composeRefs.js +8 -15
  125. package/components/global/controls-height.js +2 -2
  126. package/components/global/create-stateful-context.d.ts +0 -4
  127. package/components/global/create-stateful-context.js +14 -17
  128. package/components/global/data-tests.js +7 -12
  129. package/components/global/dom.js +49 -82
  130. package/components/global/focus-sensor-hoc.js +95 -122
  131. package/components/global/fuzzy-highlight.js +23 -34
  132. package/components/global/get-event-key.js +8 -8
  133. package/components/global/get-uid.js +3 -7
  134. package/components/global/inject-styles.js +7 -14
  135. package/components/global/listeners.js +28 -47
  136. package/components/global/memoize.js +6 -10
  137. package/components/global/normalize-indent.js +19 -46
  138. package/components/global/promise-with-timeout.js +6 -8
  139. package/components/global/react-dom-renderer.d.ts +0 -5
  140. package/components/global/react-dom-renderer.js +29 -45
  141. package/components/global/rerender-hoc.js +16 -32
  142. package/components/global/schedule-raf.js +4 -4
  143. package/components/global/sniffer.js +1 -1
  144. package/components/global/theme.d.ts +1 -0
  145. package/components/global/theme.js +2 -20
  146. package/components/global/trivial-template-tag.js +4 -9
  147. package/components/global/typescript-utils.js +2 -6
  148. package/components/global/url.js +20 -23
  149. package/components/global/use-event-callback.js +7 -4
  150. package/components/grid/col.d.ts +0 -14
  151. package/components/grid/col.js +26 -53
  152. package/components/grid/grid.d.ts +0 -5
  153. package/components/grid/grid.js +18 -32
  154. package/components/grid/row.d.ts +0 -18
  155. package/components/grid/row.js +22 -47
  156. package/components/group/group.d.ts +0 -5
  157. package/components/group/group.js +16 -27
  158. package/components/header/header-icon.d.ts +0 -22
  159. package/components/header/header-icon.js +19 -36
  160. package/components/header/header.d.ts +0 -7
  161. package/components/header/header.js +30 -71
  162. package/components/header/links.js +6 -3
  163. package/components/header/logo.d.ts +0 -4
  164. package/components/header/logo.js +15 -30
  165. package/components/header/profile.d.ts +1 -39
  166. package/components/header/profile.js +125 -190
  167. package/components/header/services-link.d.ts +0 -10
  168. package/components/header/services-link.js +1 -4
  169. package/components/header/services.d.ts +0 -14
  170. package/components/header/services.js +65 -110
  171. package/components/header/smart-profile.d.ts +0 -9
  172. package/components/header/smart-profile.js +119 -205
  173. package/components/header/smart-services.d.ts +0 -4
  174. package/components/header/smart-services.js +72 -141
  175. package/components/header/tray.d.ts +0 -5
  176. package/components/header/tray.js +21 -35
  177. package/components/heading/heading.js +21 -26
  178. package/components/http/http.js +162 -319
  179. package/components/http/http.mock.js +50 -98
  180. package/components/hub-source/hub-source.js +77 -182
  181. package/components/hub-source/hub-source__user.js +9 -37
  182. package/components/hub-source/hub-source__users-groups.js +34 -60
  183. package/components/i18n/i18n-context.js +7 -8
  184. package/components/i18n/i18n.js +3 -6
  185. package/components/icon/icon.d.ts +0 -11
  186. package/components/icon/icon.js +60 -85
  187. package/components/icon/icon__svg.d.ts +0 -8
  188. package/components/icon/icon__svg.js +0 -6
  189. package/components/icon/index.js +0 -6
  190. package/components/input/input.js +1 -13
  191. package/components/island/adaptive-island-hoc.d.ts +0 -1
  192. package/components/island/adaptive-island-hoc.js +30 -39
  193. package/components/island/content.d.ts +0 -10
  194. package/components/island/content.js +99 -119
  195. package/components/island/header.js +55 -73
  196. package/components/island/island.d.ts +0 -9
  197. package/components/island/island.js +25 -41
  198. package/components/island-legacy/content-legacy.d.ts +0 -5
  199. package/components/island-legacy/content-legacy.js +16 -27
  200. package/components/island-legacy/header-legacy.d.ts +0 -5
  201. package/components/island-legacy/header-legacy.js +19 -30
  202. package/components/island-legacy/island-legacy.d.ts +0 -5
  203. package/components/island-legacy/island-legacy.js +16 -27
  204. package/components/link/clickableLink.d.ts +0 -9
  205. package/components/link/clickableLink.js +33 -51
  206. package/components/link/link.d.ts +0 -25
  207. package/components/link/link.js +47 -68
  208. package/components/list/consts.js +2 -2
  209. package/components/list/list.d.ts +0 -32
  210. package/components/list/list.js +399 -516
  211. package/components/list/list__custom.js +51 -78
  212. package/components/list/list__hint.d.ts +0 -4
  213. package/components/list/list__hint.js +8 -21
  214. package/components/list/list__item.js +147 -211
  215. package/components/list/list__link.js +39 -59
  216. package/components/list/list__separator.js +15 -30
  217. package/components/list/list__title.js +25 -41
  218. package/components/list/list__users-groups-source.js +55 -123
  219. package/components/loader/loader.d.ts +0 -10
  220. package/components/loader/loader.js +38 -70
  221. package/components/loader/loader__core.js +123 -184
  222. package/components/loader-inline/loader-inline.d.ts +0 -6
  223. package/components/loader-inline/loader-inline.js +24 -38
  224. package/components/loader-screen/loader-screen.d.ts +0 -6
  225. package/components/loader-screen/loader-screen.js +24 -46
  226. package/components/login-dialog/login-dialog.d.ts +0 -11
  227. package/components/login-dialog/login-dialog.js +93 -144
  228. package/components/login-dialog/service.js +9 -31
  229. package/components/markdown/markdown.js +16 -29
  230. package/components/message/message.js +170 -217
  231. package/components/old-browsers-message/old-browsers-message.js +11 -14
  232. package/components/old-browsers-message/old-browsers-message__stop.js +1 -4
  233. package/components/old-browsers-message/white-list.js +8 -13
  234. package/components/pager/pager.js +212 -277
  235. package/components/panel/panel.d.ts +0 -5
  236. package/components/panel/panel.js +16 -27
  237. package/components/permissions/permissions.js +118 -161
  238. package/components/permissions/permissions__cache.js +191 -218
  239. package/components/popup/popup.consts.js +1 -1
  240. package/components/popup/popup.js +237 -329
  241. package/components/popup/popup.target.js +9 -12
  242. package/components/popup/position.js +94 -101
  243. package/components/popup-menu/popup-menu.js +31 -76
  244. package/components/progress-bar/progress-bar.d.ts +19 -33
  245. package/components/progress-bar/progress-bar.js +55 -99
  246. package/components/query-assist/query-assist.d.ts +63 -93
  247. package/components/query-assist/query-assist.js +583 -746
  248. package/components/query-assist/query-assist__suggestions.js +2 -28
  249. package/components/radio/radio.d.ts +0 -8
  250. package/components/radio/radio.js +15 -35
  251. package/components/radio/radio__item.d.ts +0 -9
  252. package/components/radio/radio__item.js +52 -72
  253. package/components/scrollable-section/scrollable-section.js +22 -32
  254. package/components/select/select.js +693 -858
  255. package/components/select/select__filter.js +1 -28
  256. package/components/select/select__popup.js +317 -465
  257. package/components/shortcuts/core.js +147 -195
  258. package/components/shortcuts/shortcut-title.js +6 -10
  259. package/components/shortcuts/shortcuts-hoc.d.ts +0 -5
  260. package/components/shortcuts/shortcuts-hoc.js +23 -46
  261. package/components/shortcuts/shortcuts.d.ts +0 -8
  262. package/components/shortcuts/shortcuts.js +41 -72
  263. package/components/slider/slider.js +93 -113
  264. package/components/slider/slider.utils.js +16 -23
  265. package/components/storage/storage.js +3 -28
  266. package/components/storage/storage__fallback.js +137 -210
  267. package/components/storage/storage__local.js +89 -148
  268. package/components/style.css +1 -1
  269. package/components/tab-trap/tab-trap.js +35 -61
  270. package/components/table/cell.d.ts +0 -6
  271. package/components/table/cell.js +11 -27
  272. package/components/table/disable-hover-hoc.d.ts +0 -1
  273. package/components/table/disable-hover-hoc.js +27 -42
  274. package/components/table/header-cell.d.ts +0 -10
  275. package/components/table/header-cell.js +59 -85
  276. package/components/table/header.d.ts +0 -15
  277. package/components/table/header.js +89 -126
  278. package/components/table/multitable.d.ts +0 -4
  279. package/components/table/multitable.js +83 -93
  280. package/components/table/row-with-focus-sensor.d.ts +2 -2
  281. package/components/table/row-with-focus-sensor.js +25 -60
  282. package/components/table/row.js +169 -235
  283. package/components/table/selection-adapter.js +2 -2
  284. package/components/table/selection-shortcuts-hoc.js +102 -126
  285. package/components/table/selection.js +150 -217
  286. package/components/table/simple-table.d.ts +0 -44
  287. package/components/table/simple-table.js +17 -59
  288. package/components/table/smart-table.d.ts +0 -48
  289. package/components/table/smart-table.js +40 -83
  290. package/components/table/table.d.ts +0 -2
  291. package/components/table/table.js +268 -377
  292. package/components/tabs/collapsible-more.d.ts +1 -9
  293. package/components/tabs/collapsible-more.js +47 -97
  294. package/components/tabs/collapsible-tab.js +32 -44
  295. package/components/tabs/collapsible-tabs.d.ts +2 -29
  296. package/components/tabs/collapsible-tabs.js +89 -161
  297. package/components/tabs/custom-item.d.ts +1 -7
  298. package/components/tabs/custom-item.js +4 -7
  299. package/components/tabs/dumb-tabs.d.ts +0 -11
  300. package/components/tabs/dumb-tabs.js +60 -104
  301. package/components/tabs/smart-tabs.d.ts +0 -6
  302. package/components/tabs/smart-tabs.js +29 -68
  303. package/components/tabs/tab-link.d.ts +0 -8
  304. package/components/tabs/tab-link.js +1 -4
  305. package/components/tabs/tab.d.ts +0 -8
  306. package/components/tabs/tab.js +14 -32
  307. package/components/tabs/tabs.js +1 -28
  308. package/components/tag/tag.d.ts +0 -19
  309. package/components/tag/tag.js +120 -179
  310. package/components/tags-input/tags-input.d.ts +7 -33
  311. package/components/tags-input/tags-input.js +223 -338
  312. package/components/tags-list/tags-list.d.ts +0 -13
  313. package/components/tags-list/tags-list.js +45 -74
  314. package/components/text/text.d.ts +0 -7
  315. package/components/text/text.js +27 -43
  316. package/components/toggle/toggle.d.ts +0 -15
  317. package/components/toggle/toggle.js +51 -76
  318. package/components/tooltip/tooltip.d.ts +0 -9
  319. package/components/tooltip/tooltip.js +109 -150
  320. package/components/user-agreement/service.js +259 -401
  321. package/components/user-agreement/user-agreement.d.ts +0 -18
  322. package/components/user-agreement/user-agreement.js +91 -137
  323. package/components/user-card/card.d.ts +0 -35
  324. package/components/user-card/card.js +1 -26
  325. package/components/user-card/smart-user-card-tooltip.d.ts +0 -5
  326. package/components/user-card/smart-user-card-tooltip.js +52 -108
  327. package/components/user-card/tooltip.d.ts +0 -9
  328. package/components/user-card/tooltip.js +35 -74
  329. package/components/user-card/user-card.js +1 -26
  330. package/package.json +1 -2
  331. package/components/global/prop-types.d.ts +0 -4
  332. package/components/global/prop-types.js +0 -9
  333. package/components/global/react-render-adapter.d.ts +0 -1
  334. package/components/global/react-render-adapter.js +0 -6
  335. package/components/header/tray-icon.d.ts +0 -1
  336. package/components/header/tray-icon.js +0 -26
@@ -1,39 +1,21 @@
1
- import { _ as _defineProperty, a as _inherits, b as _createClass, e as _classCallCheck, f as _callSuper, d as _objectSpread2, i as _slicedToArray } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.array.concat.js';
3
- import 'core-js/modules/es.object.entries.js';
4
- import 'core-js/modules/es.object.to-string.js';
1
+ import { _ as _defineProperty, b as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
5
2
  import 'core-js/modules/es.regexp.exec.js';
6
- import 'core-js/modules/es.regexp.to-string.js';
7
3
  import 'core-js/modules/es.string.replace.js';
8
- import 'core-js/modules/web.dom-collections.for-each.js';
4
+ import 'core-js/modules/web.dom-collections.iterator.js';
9
5
  import { PureComponent } from 'react';
10
6
  import { createPortal } from 'react-dom';
11
- import PropTypes from 'prop-types';
12
7
  import classNames from 'classnames';
13
8
  import getUID from '../global/get-uid.js';
14
9
  import scheduleRAF from '../global/schedule-raf.js';
15
- import { getStyles, Listeners } from '../global/dom.js';
10
+ import { Listeners, getStyles } from '../global/dom.js';
16
11
  import Shortcuts from '../shortcuts/shortcuts.js';
17
12
  import joinDataTestAttributes from '../global/data-tests.js';
18
13
  import TabTrap from '../tab-trap/tab-trap.js';
19
14
  import position from './position.js';
20
- import { DEFAULT_DIRECTIONS, Directions, Dimension, MinWidth, MaxHeight, Display } from './popup.consts.js';
15
+ import { Display, DEFAULT_DIRECTIONS, Directions, Dimension, MinWidth, MaxHeight } from './popup.consts.js';
21
16
  import { PopupTargetContext, PopupTarget } from './popup.target.js';
22
17
  import { jsx, jsxs } from 'react/jsx-runtime';
23
- import 'core-js/modules/es.array.filter.js';
24
- import 'core-js/modules/es.array.iterator.js';
25
- import 'core-js/modules/es.object.assign.js';
26
- import 'core-js/modules/es.set.js';
27
- import 'core-js/modules/es.string.split.js';
28
- import 'core-js/modules/web.dom-collections.iterator.js';
29
- import 'core-js/modules/es.array.map.js';
30
18
  import '../shortcuts/core.js';
31
- import 'core-js/modules/es.array.find-index.js';
32
- import 'core-js/modules/es.array.includes.js';
33
- import 'core-js/modules/es.array.slice.js';
34
- import 'core-js/modules/es.array.splice.js';
35
- import 'core-js/modules/es.string.includes.js';
36
- import 'core-js/modules/es.string.match.js';
37
19
  import 'combokeys';
38
20
  import '../global/sniffer.js';
39
21
  import 'sniffr';
@@ -42,9 +24,9 @@ import 'core-js/modules/es.array.sort.js';
42
24
 
43
25
  var modules_2f69e2e2 = {"light":"light_rui_2ac4","popup":"popup_rui_871b font_rui_f295","hidden":"hidden_rui_871b","showing":"showing_rui_871b","attached":"attached_rui_871b"};
44
26
 
45
- var isPossibleClientSideNavigation = function isPossibleClientSideNavigation(event) {
46
- var target = event.target;
47
- var link = target.closest('a');
27
+ const isPossibleClientSideNavigation = event => {
28
+ const target = event.target;
29
+ const link = target.closest('a');
48
30
  // Taken from https://github.com/nanostores/router/blob/80a333db4cf0789fda21a02715ebabca15192642/index.js#L58-L69
49
31
  return link && event.button === 0 &&
50
32
  // Left mouse button
@@ -68,80 +50,70 @@ var isPossibleClientSideNavigation = function isPossibleClientSideNavigation(eve
68
50
  // Not open in new window by user
69
51
  !event.defaultPrevented;
70
52
  };
71
- var stop = function stop(event) {
53
+ const stop = event => {
72
54
  if (!isPossibleClientSideNavigation(event)) {
73
55
  event.stopPropagation();
74
56
  }
75
57
  };
76
- var getPopupContainer = function getPopupContainer(target) {
77
- return typeof target === 'string' ? document.querySelector("[data-portaltarget=".concat(target, "]")) : target;
78
- };
58
+ const getPopupContainer = target => typeof target === 'string' ? document.querySelector("[data-portaltarget=".concat(target, "]")) : target;
79
59
  /**
80
60
  * @constructor
81
61
  * @name Popup
82
62
  * @extends {ReactComponent}
83
63
  */
84
- var Popup = /*#__PURE__*/function (_PureComponent) {
85
- function Popup() {
86
- var _this;
87
- _classCallCheck(this, Popup);
88
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
89
- args[_key] = arguments[_key];
90
- }
91
- _this = _callSuper(this, Popup, [].concat(args));
92
- _defineProperty(_this, "state", {
64
+ class Popup extends PureComponent {
65
+ constructor() {
66
+ super(...arguments);
67
+ _defineProperty(this, "state", {
93
68
  display: Display.SHOWING
94
69
  });
95
- _defineProperty(_this, "popup", void 0);
96
- _defineProperty(_this, "node", void 0);
97
- _defineProperty(_this, "parent", void 0);
98
- _defineProperty(_this, "container", void 0);
99
- _defineProperty(_this, "ringPopupTarget", void 0);
100
- _defineProperty(_this, "listeners", new Listeners());
101
- _defineProperty(_this, "redrawScheduler", scheduleRAF(true));
102
- _defineProperty(_this, "uid", getUID('popup-'));
103
- _defineProperty(_this, "calculateDisplay", function (prevState) {
104
- return _objectSpread2(_objectSpread2({}, prevState), {}, {
105
- display: _this.props.hidden ? Display.SHOWING : Display.SHOWN
106
- });
107
- });
108
- _defineProperty(_this, "portalRef", function (el) {
109
- _this.node = el;
110
- _this.parent = el && el.parentElement;
111
- if (el && _this.getContainer()) {
112
- _this._redraw();
70
+ _defineProperty(this, "popup", void 0);
71
+ _defineProperty(this, "node", void 0);
72
+ _defineProperty(this, "parent", void 0);
73
+ _defineProperty(this, "container", void 0);
74
+ _defineProperty(this, "ringPopupTarget", void 0);
75
+ _defineProperty(this, "listeners", new Listeners());
76
+ _defineProperty(this, "redrawScheduler", scheduleRAF(true));
77
+ _defineProperty(this, "uid", getUID('popup-'));
78
+ _defineProperty(this, "calculateDisplay", prevState => _objectSpread2(_objectSpread2({}, prevState), {}, {
79
+ display: this.props.hidden ? Display.SHOWING : Display.SHOWN
80
+ }));
81
+ _defineProperty(this, "portalRef", el => {
82
+ this.node = el;
83
+ this.parent = el && el.parentElement;
84
+ if (el && this.getContainer()) {
85
+ this._redraw();
113
86
  }
114
87
  });
115
- _defineProperty(_this, "popupRef", function (el) {
116
- _this.popup = el;
117
- _this._redraw();
88
+ _defineProperty(this, "popupRef", el => {
89
+ this.popup = el;
90
+ this._redraw();
118
91
  });
119
- _defineProperty(_this, "containerRef", function (el) {
120
- _this.container = el;
92
+ _defineProperty(this, "containerRef", el => {
93
+ this.container = el;
121
94
  });
122
- _defineProperty(_this, "_updateDirection", function (newDirection) {
123
- if (_this.state.direction !== newDirection) {
124
- _this.setState({
95
+ _defineProperty(this, "_updateDirection", newDirection => {
96
+ if (this.state.direction !== newDirection) {
97
+ this.setState({
125
98
  direction: newDirection
126
99
  });
127
- if (_this.props.onDirectionChange) {
128
- _this.props.onDirectionChange(newDirection);
100
+ if (this.props.onDirectionChange) {
101
+ this.props.onDirectionChange(newDirection);
129
102
  }
130
103
  }
131
104
  });
132
- _defineProperty(_this, "_updatePosition", function () {
133
- var popup = _this.popup;
105
+ _defineProperty(this, "_updatePosition", () => {
106
+ const popup = this.popup;
134
107
  if (popup) {
135
108
  popup.style.position = 'absolute';
136
- if (_this.isVisible()) {
137
- var _this$position = _this.position(),
138
- style = _this$position.styles,
139
- direction = _this$position.direction;
140
- Object.entries(style).forEach(function (_ref) {
141
- var _ref2 = _slicedToArray(_ref, 2),
142
- key = _ref2[0],
143
- value = _ref2[1];
144
- var propKey = key;
109
+ if (this.isVisible()) {
110
+ const {
111
+ styles: style,
112
+ direction
113
+ } = this.position();
114
+ Object.entries(style).forEach(_ref => {
115
+ let [key, value] = _ref;
116
+ const propKey = key;
145
117
  if (typeof value === 'number') {
146
118
  popup.style[propKey] = "".concat(value, "px");
147
119
  } else {
@@ -149,243 +121,219 @@ var Popup = /*#__PURE__*/function (_PureComponent) {
149
121
  }
150
122
  });
151
123
  if (direction != null) {
152
- _this._updateDirection(direction);
124
+ this._updateDirection(direction);
153
125
  }
154
126
  }
155
- _this.setState(_this.calculateDisplay);
127
+ this.setState(this.calculateDisplay);
156
128
  }
157
129
  });
158
- _defineProperty(_this, "_redraw", function () {
159
- if (_this.isVisible()) {
160
- _this.redrawScheduler(_this._updatePosition);
130
+ _defineProperty(this, "_redraw", () => {
131
+ if (this.isVisible()) {
132
+ this.redrawScheduler(this._updatePosition);
161
133
  }
162
134
  });
163
- _defineProperty(_this, "_listenersEnabled", void 0);
164
- _defineProperty(_this, "_onEscPress", function (evt) {
165
- _this.props.onEscPress(evt);
166
- _this._onCloseAttempt(evt, true);
135
+ _defineProperty(this, "_listenersEnabled", void 0);
136
+ _defineProperty(this, "_onEscPress", evt => {
137
+ this.props.onEscPress(evt);
138
+ this._onCloseAttempt(evt, true);
167
139
  });
168
140
  /**
169
141
  * @param {jQuery.Event} evt
170
142
  * @private
171
143
  */
172
- _defineProperty(_this, "_onDocumentClick", function (evt) {
144
+ _defineProperty(this, "_onDocumentClick", evt => {
173
145
  var _this$_getAnchor;
174
- if (_this.container && evt.target instanceof Node && _this.container.contains(evt.target) || !_this._listenersEnabled || _this.props.dontCloseOnAnchorClick && evt.target instanceof Node && (_this$_getAnchor = _this._getAnchor()) !== null && _this$_getAnchor !== void 0 && _this$_getAnchor.contains(evt.target)) {
146
+ if (this.container && evt.target instanceof Node && this.container.contains(evt.target) || !this._listenersEnabled || this.props.dontCloseOnAnchorClick && evt.target instanceof Node && (_this$_getAnchor = this._getAnchor()) !== null && _this$_getAnchor !== void 0 && _this$_getAnchor.contains(evt.target)) {
175
147
  return;
176
148
  }
177
- _this.props.onOutsideClick(evt);
178
- _this._onCloseAttempt(evt, false);
149
+ this.props.onOutsideClick(evt);
150
+ this._onCloseAttempt(evt, false);
179
151
  });
180
- _defineProperty(_this, "shortcutsScope", _this.uid);
181
- _defineProperty(_this, "shortcutsMap", {
182
- esc: _this._onEscPress
152
+ _defineProperty(this, "shortcutsScope", this.uid);
153
+ _defineProperty(this, "shortcutsMap", {
154
+ esc: this._onEscPress
183
155
  });
184
- return _this;
185
156
  }
186
- _inherits(Popup, _PureComponent);
187
- return _createClass(Popup, [{
188
- key: "componentDidMount",
189
- value: function componentDidMount() {
190
- if (!this.props.client) {
191
- this.setState({
192
- client: true
193
- });
194
- }
195
- if (!this.props.hidden) {
196
- this._setListenersEnabled(true);
197
- }
198
- }
199
- }, {
200
- key: "componentDidUpdate",
201
- value: function componentDidUpdate(prevProps, prevState) {
202
- var hidden = this.props.hidden;
203
- if (this.props !== prevProps) {
204
- if (prevProps.hidden !== hidden) {
205
- this._setListenersEnabled(!hidden);
206
- }
207
- this._redraw();
208
- }
209
- if (this.props.onShow && !hidden && this.state.display === Display.SHOWN && (prevProps.hidden || prevState.display !== Display.SHOWN)) {
210
- this.props.onShow();
211
- }
212
- }
213
- }, {
214
- key: "componentWillUnmount",
215
- value: function componentWillUnmount() {
216
- this._setListenersEnabled(false);
217
- }
218
- }, {
219
- key: "shouldUseShortcuts",
220
- value: function shouldUseShortcuts() {
221
- var _this$props = this.props,
222
- shortcuts = _this$props.shortcuts,
223
- hidden = _this$props.hidden;
224
- return shortcuts && !hidden;
225
- }
226
- }, {
227
- key: "getContainer",
228
- value: function getContainer() {
229
- var target = this.props.target || this.ringPopupTarget;
230
- return target && getPopupContainer(target);
231
- }
232
- }, {
233
- key: "position",
234
- value: function position$1() {
235
- var _this$props2 = this.props,
236
- directions = _this$props2.directions,
237
- autoPositioning = _this$props2.autoPositioning,
238
- autoCorrectTopOverflow = _this$props2.autoCorrectTopOverflow,
239
- sidePadding = _this$props2.sidePadding,
240
- top = _this$props2.top,
241
- left = _this$props2.left,
242
- offset = _this$props2.offset,
243
- maxHeight = _this$props2.maxHeight,
244
- minWidth = _this$props2.minWidth;
245
- var container = this.getContainer();
246
- return position({
247
- popup: this.popup,
248
- container: container && getStyles(container).position !== 'static' ? container : null,
249
- anchor: this._getAnchor(),
250
- directions,
251
- autoPositioning,
252
- autoCorrectTopOverflow,
253
- sidePadding,
254
- top,
255
- left,
256
- offset,
257
- maxHeight,
258
- minWidth
157
+ componentDidMount() {
158
+ if (!this.props.client) {
159
+ this.setState({
160
+ client: true
259
161
  });
260
162
  }
261
- }, {
262
- key: "_getAnchor",
263
- value: function _getAnchor() {
264
- return this.props.anchorElement || this.parent;
163
+ if (!this.props.hidden) {
164
+ this._setListenersEnabled(true);
265
165
  }
266
- }, {
267
- key: "_setListenersEnabled",
268
- value:
269
- /**
270
- * @param {boolean} enable
271
- * @private
272
- */
273
- function _setListenersEnabled(enable) {
274
- var _this2 = this;
275
- if (enable && !this._listenersEnabled) {
276
- setTimeout(function () {
277
- _this2._listenersEnabled = true;
278
- _this2.listeners.add(window, 'resize', _this2._redraw);
279
- if (_this2.props.autoPositioningOnScroll) {
280
- _this2.listeners.add(window, 'scroll', _this2._redraw);
281
- }
282
- _this2.listeners.add(document, 'pointerdown', _this2._onDocumentClick, true);
283
- var el = _this2._getAnchor();
284
- while (el) {
285
- _this2.listeners.add(el, 'scroll', _this2._redraw);
286
- el = el.parentElement;
287
- }
288
- }, 0);
289
- return;
290
- }
291
- if (!enable && this._listenersEnabled) {
292
- this.listeners.removeAll();
293
- this._listenersEnabled = false;
166
+ }
167
+ componentDidUpdate(prevProps, prevState) {
168
+ const {
169
+ hidden
170
+ } = this.props;
171
+ if (this.props !== prevProps) {
172
+ if (prevProps.hidden !== hidden) {
173
+ this._setListenersEnabled(!hidden);
294
174
  }
175
+ this._redraw();
295
176
  }
296
- /**
297
- * Returns visibility state
298
- * @return {boolean}
299
- */
300
- }, {
301
- key: "isVisible",
302
- value: function isVisible() {
303
- return !this.props.hidden;
304
- }
305
- }, {
306
- key: "_onCloseAttempt",
307
- value: function _onCloseAttempt(evt, isEsc) {
308
- this.props.onCloseAttempt(evt, isEsc);
177
+ if (this.props.onShow && !hidden && this.state.display === Display.SHOWN && (prevProps.hidden || prevState.display !== Display.SHOWN)) {
178
+ this.props.onShow();
309
179
  }
310
- }, {
311
- key: "getInternalContent",
312
- value: function getInternalContent() {
313
- var _this$props3 = this.props,
314
- trapFocus = _this$props3.trapFocus,
315
- autoFocusFirst = _this$props3.autoFocusFirst,
316
- children = _this$props3.children;
317
- return trapFocus ? /*#__PURE__*/jsx(TabTrap, {
318
- autoFocusFirst: autoFocusFirst,
319
- focusBackOnExit: true,
320
- children: children
321
- }) : children;
322
- }
323
- }, {
324
- key: "render",
325
- value: function render() {
326
- var _this3 = this;
327
- var _this$props4 = this.props,
328
- className = _this$props4.className,
329
- style = _this$props4.style,
330
- hidden = _this$props4.hidden,
331
- attached = _this$props4.attached,
332
- keepMounted = _this$props4.keepMounted,
333
- client = _this$props4.client,
334
- onMouseDown = _this$props4.onMouseDown,
335
- onMouseUp = _this$props4.onMouseUp,
336
- onMouseOver = _this$props4.onMouseOver,
337
- onMouseOut = _this$props4.onMouseOut,
338
- onContextMenu = _this$props4.onContextMenu,
339
- dataTest = _this$props4['data-test'];
340
- var showing = this.state.display === Display.SHOWING;
341
- var classes = classNames(className, modules_2f69e2e2.popup, {
342
- [modules_2f69e2e2.attached]: attached,
343
- [modules_2f69e2e2.hidden]: hidden,
344
- [modules_2f69e2e2.showing]: showing
345
- });
346
- var direction = (this.state.direction || '').toLowerCase().replace(/[_]/g, '-');
347
- return /*#__PURE__*/jsx(PopupTargetContext.Consumer, {
348
- children: function children(value) {
349
- _this3.ringPopupTarget = value;
350
- return /*#__PURE__*/jsxs("span", {
351
- // prevent bubbling through portal
352
- onClick: stop
353
- // This handler only blocks bubbling through React portal
354
- ,
355
- role: "presentation",
356
- ref: _this3.portalRef,
357
- children: [_this3.shouldUseShortcuts() && /*#__PURE__*/jsx(Shortcuts, {
358
- map: _this3.shortcutsMap,
359
- scope: _this3.shortcutsScope
360
- }), (client || _this3.state.client) && (keepMounted || !hidden) && /*#__PURE__*/createPortal( /*#__PURE__*/jsx(PopupTarget, {
361
- id: _this3.uid,
362
- ref: _this3.containerRef,
363
- onMouseOver: onMouseOver,
364
- onFocus: onMouseOver,
365
- onMouseOut: onMouseOut,
366
- onBlur: onMouseOut,
367
- onContextMenu: onContextMenu,
368
- children: /*#__PURE__*/jsx("div", {
369
- "data-test": joinDataTestAttributes('ring-popup', dataTest),
370
- "data-test-shown": !hidden && !showing,
371
- "data-test-direction": direction,
372
- ref: _this3.popupRef,
373
- className: classes,
374
- style: style,
375
- onMouseDown: onMouseDown,
376
- onMouseUp: onMouseUp
377
- // mouse handlers are used to track clicking on inner elements
378
- ,
379
- role: "presentation",
380
- children: _this3.getInternalContent()
381
- })
382
- }), _this3.getContainer() || document.body)]
383
- });
180
+ }
181
+ componentWillUnmount() {
182
+ this._setListenersEnabled(false);
183
+ }
184
+ shouldUseShortcuts() {
185
+ const {
186
+ shortcuts,
187
+ hidden
188
+ } = this.props;
189
+ return shortcuts && !hidden;
190
+ }
191
+ getContainer() {
192
+ const target = this.props.target || this.ringPopupTarget;
193
+ return target && getPopupContainer(target);
194
+ }
195
+ position() {
196
+ const {
197
+ directions,
198
+ autoPositioning,
199
+ autoCorrectTopOverflow,
200
+ sidePadding,
201
+ top,
202
+ left,
203
+ offset,
204
+ maxHeight,
205
+ minWidth
206
+ } = this.props;
207
+ const container = this.getContainer();
208
+ return position({
209
+ popup: this.popup,
210
+ container: container && getStyles(container).position !== 'static' ? container : null,
211
+ anchor: this._getAnchor(),
212
+ directions,
213
+ autoPositioning,
214
+ autoCorrectTopOverflow,
215
+ sidePadding,
216
+ top,
217
+ left,
218
+ offset,
219
+ maxHeight,
220
+ minWidth
221
+ });
222
+ }
223
+ _getAnchor() {
224
+ return this.props.anchorElement || this.parent;
225
+ }
226
+ /**
227
+ * @param {boolean} enable
228
+ * @private
229
+ */
230
+ _setListenersEnabled(enable) {
231
+ if (enable && !this._listenersEnabled) {
232
+ setTimeout(() => {
233
+ this._listenersEnabled = true;
234
+ this.listeners.add(window, 'resize', this._redraw);
235
+ if (this.props.autoPositioningOnScroll) {
236
+ this.listeners.add(window, 'scroll', this._redraw);
384
237
  }
385
- });
238
+ this.listeners.add(document, 'pointerdown', this._onDocumentClick, true);
239
+ let el = this._getAnchor();
240
+ while (el) {
241
+ this.listeners.add(el, 'scroll', this._redraw);
242
+ el = el.parentElement;
243
+ }
244
+ }, 0);
245
+ return;
386
246
  }
387
- }]);
388
- }(PureComponent);
247
+ if (!enable && this._listenersEnabled) {
248
+ this.listeners.removeAll();
249
+ this._listenersEnabled = false;
250
+ }
251
+ }
252
+ /**
253
+ * Returns visibility state
254
+ * @return {boolean}
255
+ */
256
+ isVisible() {
257
+ return !this.props.hidden;
258
+ }
259
+ _onCloseAttempt(evt, isEsc) {
260
+ this.props.onCloseAttempt(evt, isEsc);
261
+ }
262
+ getInternalContent() {
263
+ const {
264
+ trapFocus,
265
+ autoFocusFirst,
266
+ children
267
+ } = this.props;
268
+ return trapFocus ? /*#__PURE__*/jsx(TabTrap, {
269
+ autoFocusFirst: autoFocusFirst,
270
+ focusBackOnExit: true,
271
+ children: children
272
+ }) : children;
273
+ }
274
+ render() {
275
+ const {
276
+ className,
277
+ style,
278
+ hidden,
279
+ attached,
280
+ keepMounted,
281
+ client,
282
+ onMouseDown,
283
+ onMouseUp,
284
+ onMouseOver,
285
+ onMouseOut,
286
+ onContextMenu,
287
+ 'data-test': dataTest
288
+ } = this.props;
289
+ const showing = this.state.display === Display.SHOWING;
290
+ const classes = classNames(className, modules_2f69e2e2.popup, {
291
+ [modules_2f69e2e2.attached]: attached,
292
+ [modules_2f69e2e2.hidden]: hidden,
293
+ [modules_2f69e2e2.showing]: showing
294
+ });
295
+ const direction = (this.state.direction || '').toLowerCase().replace(/[_]/g, '-');
296
+ return /*#__PURE__*/jsx(PopupTargetContext.Consumer, {
297
+ children: value => {
298
+ this.ringPopupTarget = value;
299
+ return /*#__PURE__*/jsxs("span", {
300
+ // prevent bubbling through portal
301
+ onClick: stop
302
+ // This handler only blocks bubbling through React portal
303
+ ,
304
+ role: "presentation",
305
+ ref: this.portalRef,
306
+ children: [this.shouldUseShortcuts() && /*#__PURE__*/jsx(Shortcuts, {
307
+ map: this.shortcutsMap,
308
+ scope: this.shortcutsScope
309
+ }), (client || this.state.client) && (keepMounted || !hidden) && /*#__PURE__*/createPortal( /*#__PURE__*/jsx(PopupTarget, {
310
+ id: this.uid,
311
+ ref: this.containerRef,
312
+ onMouseOver: onMouseOver,
313
+ onFocus: onMouseOver,
314
+ onMouseOut: onMouseOut,
315
+ onBlur: onMouseOut,
316
+ onContextMenu: onContextMenu,
317
+ children: /*#__PURE__*/jsx("div", {
318
+ "data-test": joinDataTestAttributes('ring-popup', dataTest),
319
+ "data-test-shown": !hidden && !showing,
320
+ "data-test-direction": direction,
321
+ ref: this.popupRef,
322
+ className: classes,
323
+ style: style,
324
+ onMouseDown: onMouseDown,
325
+ onMouseUp: onMouseUp
326
+ // mouse handlers are used to track clicking on inner elements
327
+ ,
328
+ role: "presentation",
329
+ children: this.getInternalContent()
330
+ })
331
+ }), this.getContainer() || document.body)]
332
+ });
333
+ }
334
+ });
335
+ }
336
+ }
389
337
  _defineProperty(Popup, "defaultProps", {
390
338
  shortcuts: true,
391
339
  hidden: false,
@@ -413,45 +361,5 @@ _defineProperty(Popup, "PopupProps", {
413
361
  MinWidth,
414
362
  MaxHeight
415
363
  });
416
- Popup.propTypes = {
417
- anchorElement: PropTypes.instanceOf(Node),
418
- target: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Element)]),
419
- className: PropTypes.string,
420
- style: PropTypes.object,
421
- hidden: PropTypes.bool.isRequired,
422
- onOutsideClick: PropTypes.func,
423
- onEscPress: PropTypes.func,
424
- // onCloseAttempt is a common callback for ESC pressing and outside clicking.
425
- // Use it if you don't need different behaviors for this cases.
426
- onCloseAttempt: PropTypes.func,
427
- children: PropTypes.node.isRequired,
428
- dontCloseOnAnchorClick: PropTypes.bool,
429
- shortcuts: PropTypes.bool,
430
- keepMounted: PropTypes.bool,
431
- // pass this prop to preserve the popup's DOM state while hidden
432
- 'data-test': PropTypes.string,
433
- client: PropTypes.bool,
434
- // true means that it's never used in SSR
435
- directions: PropTypes.arrayOf(PropTypes.string),
436
- autoPositioning: PropTypes.bool,
437
- autoCorrectTopOverflow: PropTypes.bool,
438
- left: PropTypes.number,
439
- top: PropTypes.number,
440
- maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
441
- minWidth: PropTypes.number,
442
- sidePadding: PropTypes.number,
443
- attached: PropTypes.bool,
444
- // Popup adjacent to an input, without upper border and shadow
445
- onMouseDown: PropTypes.func,
446
- onMouseUp: PropTypes.func,
447
- onMouseOver: PropTypes.func,
448
- onMouseOut: PropTypes.func,
449
- onContextMenu: PropTypes.func,
450
- onDirectionChange: PropTypes.func,
451
- onShow: PropTypes.func,
452
- // set to true whenever popup contains focusable and scrollable content
453
- trapFocus: PropTypes.bool,
454
- autoFocusFirst: PropTypes.bool
455
- };
456
364
 
457
365
  export { PopupTarget, PopupTargetContext, Popup as default, getPopupContainer };