@jetbrains/ring-ui-built 7.0.0-beta.1 → 7.0.0-beta.11

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 (349) 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 +23 -20
  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/header.js +1 -1
  8. package/components/_helpers/icon__svg.js +27 -29
  9. package/components/_helpers/input.js +151 -193
  10. package/components/_helpers/query-assist__suggestions.js +79 -94
  11. package/components/_helpers/select__filter.js +56 -75
  12. package/components/_helpers/services-link.js +23 -39
  13. package/components/_helpers/sidebar.js +91 -102
  14. package/components/_helpers/tab-link.js +8 -12
  15. package/components/_helpers/theme.js +61 -51
  16. package/components/_helpers/title.js +59 -84
  17. package/components/alert/alert.d.ts +7 -24
  18. package/components/alert/alert.js +111 -179
  19. package/components/alert/container.d.ts +0 -5
  20. package/components/alert/container.js +32 -44
  21. package/components/alert-service/alert-service.js +104 -162
  22. package/components/analytics/analytics.js +12 -20
  23. package/components/analytics/analytics__custom-plugin.js +52 -68
  24. package/components/auth/auth.js +2 -31
  25. package/components/auth/auth__core.d.ts +4 -4
  26. package/components/auth/auth__core.js +755 -1433
  27. package/components/auth/background-flow.js +84 -121
  28. package/components/auth/down-notification.js +32 -79
  29. package/components/auth/iframe-flow.js +71 -125
  30. package/components/auth/request-builder.js +46 -77
  31. package/components/auth/response-parser.js +84 -112
  32. package/components/auth/storage.js +162 -324
  33. package/components/auth/token-validator.js +132 -227
  34. package/components/auth/window-flow.js +84 -121
  35. package/components/auth-dialog/auth-dialog.d.ts +0 -18
  36. package/components/auth-dialog/auth-dialog.js +107 -176
  37. package/components/auth-dialog-service/auth-dialog-service.js +12 -33
  38. package/components/avatar/avatar-example-datauri.js +1 -1
  39. package/components/avatar/avatar.d.ts +0 -13
  40. package/components/avatar/avatar.js +94 -136
  41. package/components/avatar/fallback-avatar.d.ts +1 -10
  42. package/components/avatar/fallback-avatar.js +20 -40
  43. package/components/badge/badge.d.ts +0 -10
  44. package/components/badge/badge.js +32 -48
  45. package/components/breadcrumbs/breadcrumbs.js +13 -17
  46. package/components/button/button.d.ts +0 -21
  47. package/components/button/button.js +68 -104
  48. package/components/button/button__classes.d.ts +1 -1
  49. package/components/button-group/button-group.d.ts +0 -5
  50. package/components/button-group/button-group.js +27 -41
  51. package/components/button-group/caption.d.ts +0 -4
  52. package/components/button-group/caption.js +0 -1
  53. package/components/button-set/button-set.d.ts +0 -6
  54. package/components/button-set/button-set.js +19 -33
  55. package/components/button-toolbar/button-toolbar.d.ts +0 -6
  56. package/components/button-toolbar/button-toolbar.js +17 -31
  57. package/components/caret/caret.js +184 -211
  58. package/components/checkbox/checkbox.d.ts +0 -19
  59. package/components/checkbox/checkbox.js +69 -104
  60. package/components/clipboard/clipboard-fallback.js +7 -7
  61. package/components/clipboard/clipboard.js +36 -129
  62. package/components/code/code.d.ts +0 -12
  63. package/components/code/code.js +83 -163
  64. package/components/collapse/collapse-content.js +42 -60
  65. package/components/collapse/collapse-context.js +2 -2
  66. package/components/collapse/collapse-control.js +12 -12
  67. package/components/collapse/collapse.js +12 -17
  68. package/components/collapse/consts.js +4 -4
  69. package/components/collapse/utils.js +1 -3
  70. package/components/confirm/confirm.d.ts +0 -14
  71. package/components/confirm/confirm.js +68 -112
  72. package/components/confirm-service/confirm-service.js +25 -47
  73. package/components/content-layout/content-layout.d.ts +0 -7
  74. package/components/content-layout/content-layout.js +41 -63
  75. package/components/content-layout/sidebar.d.ts +0 -9
  76. package/components/content-layout/sidebar.js +1 -2
  77. package/components/contenteditable/contenteditable.d.ts +1 -22
  78. package/components/contenteditable/contenteditable.js +37 -60
  79. package/components/control-help/control-help.js +5 -3
  80. package/components/control-label/control-label.js +9 -14
  81. package/components/data-list/data-list.d.ts +0 -2
  82. package/components/data-list/data-list.js +115 -179
  83. package/components/data-list/data-list.mock.js +3 -6
  84. package/components/data-list/item.js +119 -165
  85. package/components/data-list/selection.js +77 -135
  86. package/components/data-list/title.d.ts +2 -2
  87. package/components/data-list/title.js +2 -12
  88. package/components/date-picker/consts.d.ts +0 -2
  89. package/components/date-picker/consts.js +16 -24
  90. package/components/date-picker/date-input.d.ts +0 -20
  91. package/components/date-picker/date-input.js +100 -148
  92. package/components/date-picker/date-picker.d.ts +0 -29
  93. package/components/date-picker/date-picker.js +143 -224
  94. package/components/date-picker/date-popup.d.ts +0 -22
  95. package/components/date-picker/date-popup.js +282 -352
  96. package/components/date-picker/day.d.ts +0 -14
  97. package/components/date-picker/day.js +72 -109
  98. package/components/date-picker/month-names.d.ts +1 -11
  99. package/components/date-picker/month-names.js +42 -72
  100. package/components/date-picker/month-slider.d.ts +0 -9
  101. package/components/date-picker/month-slider.js +43 -71
  102. package/components/date-picker/month.d.ts +1 -9
  103. package/components/date-picker/month.js +18 -30
  104. package/components/date-picker/months.d.ts +1 -9
  105. package/components/date-picker/months.js +45 -55
  106. package/components/date-picker/weekdays.d.ts +2 -8
  107. package/components/date-picker/weekdays.js +12 -25
  108. package/components/date-picker/years.d.ts +0 -6
  109. package/components/date-picker/years.js +77 -104
  110. package/components/dialog/dialog.d.ts +0 -20
  111. package/components/dialog/dialog.js +153 -211
  112. package/components/dialog/dialog__body-scroll-preventer.js +0 -3
  113. package/components/dropdown/anchor.d.ts +1 -8
  114. package/components/dropdown/anchor.js +0 -7
  115. package/components/dropdown/dropdown.d.ts +4 -22
  116. package/components/dropdown/dropdown.js +134 -176
  117. package/components/dropdown-menu/dropdown-menu.js +51 -103
  118. package/components/editable-heading/editable-heading.js +69 -118
  119. package/components/error-bubble/error-bubble.d.ts +0 -6
  120. package/components/error-bubble/error-bubble.js +30 -60
  121. package/components/error-message/error-message.d.ts +0 -10
  122. package/components/error-message/error-message.js +34 -59
  123. package/components/footer/footer.js +28 -44
  124. package/components/form/form.js +1 -1
  125. package/components/global/compose.js +1 -8
  126. package/components/global/composeRefs.d.ts +0 -3
  127. package/components/global/composeRefs.js +8 -15
  128. package/components/global/controls-height.js +2 -2
  129. package/components/global/create-stateful-context.d.ts +0 -4
  130. package/components/global/create-stateful-context.js +14 -17
  131. package/components/global/data-tests.js +7 -12
  132. package/components/global/dom.js +49 -82
  133. package/components/global/focus-sensor-hoc.js +95 -122
  134. package/components/global/fuzzy-highlight.js +23 -34
  135. package/components/global/get-event-key.js +8 -8
  136. package/components/global/get-uid.js +3 -7
  137. package/components/global/inject-styles.js +7 -14
  138. package/components/global/listeners.js +28 -47
  139. package/components/global/memoize.js +6 -10
  140. package/components/global/normalize-indent.js +19 -46
  141. package/components/global/promise-with-timeout.js +6 -8
  142. package/components/global/react-dom-renderer.d.ts +0 -5
  143. package/components/global/react-dom-renderer.js +29 -45
  144. package/components/global/rerender-hoc.d.ts +2 -2
  145. package/components/global/rerender-hoc.js +16 -32
  146. package/components/global/schedule-raf.js +4 -4
  147. package/components/global/sniffer.js +1 -1
  148. package/components/global/theme.d.ts +8 -2
  149. package/components/global/theme.js +2 -20
  150. package/components/global/trivial-template-tag.js +4 -9
  151. package/components/global/typescript-utils.js +2 -6
  152. package/components/global/url.js +20 -23
  153. package/components/global/use-event-callback.js +7 -4
  154. package/components/grid/col.d.ts +0 -14
  155. package/components/grid/col.js +27 -53
  156. package/components/grid/grid.d.ts +0 -5
  157. package/components/grid/grid.js +20 -32
  158. package/components/grid/row.d.ts +0 -18
  159. package/components/grid/row.js +23 -47
  160. package/components/group/group.d.ts +0 -5
  161. package/components/group/group.js +18 -27
  162. package/components/header/header-icon.d.ts +0 -22
  163. package/components/header/header-icon.js +20 -37
  164. package/components/header/header.d.ts +0 -7
  165. package/components/header/header.js +30 -74
  166. package/components/header/links.d.ts +2 -0
  167. package/components/header/links.js +20 -0
  168. package/components/header/logo.d.ts +0 -4
  169. package/components/header/logo.js +15 -30
  170. package/components/header/profile.d.ts +1 -39
  171. package/components/header/profile.js +126 -191
  172. package/components/header/services-link.d.ts +0 -10
  173. package/components/header/services-link.js +1 -4
  174. package/components/header/services.d.ts +0 -14
  175. package/components/header/services.js +65 -110
  176. package/components/header/smart-profile.d.ts +0 -9
  177. package/components/header/smart-profile.js +116 -205
  178. package/components/header/smart-services.d.ts +0 -4
  179. package/components/header/smart-services.js +72 -141
  180. package/components/header/tray.d.ts +0 -5
  181. package/components/header/tray.js +21 -35
  182. package/components/heading/heading.js +21 -26
  183. package/components/http/http.js +162 -319
  184. package/components/http/http.mock.js +50 -98
  185. package/components/hub-source/hub-source.js +77 -182
  186. package/components/hub-source/hub-source__user.js +9 -37
  187. package/components/hub-source/hub-source__users-groups.js +34 -60
  188. package/components/i18n/i18n-context.js +7 -8
  189. package/components/i18n/i18n.js +3 -6
  190. package/components/icon/icon.d.ts +0 -11
  191. package/components/icon/icon.js +60 -85
  192. package/components/icon/icon__svg.d.ts +0 -8
  193. package/components/icon/icon__svg.js +0 -6
  194. package/components/icon/index.js +0 -6
  195. package/components/input/input-legacy.js +1 -1
  196. package/components/input/input.js +2 -14
  197. package/components/input-size/input-size.js +1 -1
  198. package/components/island/adaptive-island-hoc.d.ts +0 -1
  199. package/components/island/adaptive-island-hoc.js +30 -39
  200. package/components/island/content.d.ts +0 -10
  201. package/components/island/content.js +99 -119
  202. package/components/island/header.js +55 -73
  203. package/components/island/island.d.ts +0 -9
  204. package/components/island/island.js +25 -41
  205. package/components/island-legacy/content-legacy.d.ts +0 -5
  206. package/components/island-legacy/content-legacy.js +16 -27
  207. package/components/island-legacy/header-legacy.d.ts +0 -5
  208. package/components/island-legacy/header-legacy.js +19 -30
  209. package/components/island-legacy/island-legacy.d.ts +0 -5
  210. package/components/island-legacy/island-legacy.js +16 -27
  211. package/components/link/clickableLink.d.ts +0 -9
  212. package/components/link/clickableLink.js +33 -51
  213. package/components/link/link.d.ts +0 -25
  214. package/components/link/link.js +47 -68
  215. package/components/list/consts.js +2 -2
  216. package/components/list/list.d.ts +0 -32
  217. package/components/list/list.js +399 -516
  218. package/components/list/list__custom.js +51 -78
  219. package/components/list/list__hint.d.ts +0 -4
  220. package/components/list/list__hint.js +8 -21
  221. package/components/list/list__item.js +147 -211
  222. package/components/list/list__link.js +39 -59
  223. package/components/list/list__separator.js +15 -30
  224. package/components/list/list__title.js +25 -41
  225. package/components/list/list__users-groups-source.js +55 -123
  226. package/components/loader/loader.d.ts +0 -10
  227. package/components/loader/loader.js +38 -70
  228. package/components/loader/loader__core.js +123 -184
  229. package/components/loader-inline/loader-inline.d.ts +0 -6
  230. package/components/loader-inline/loader-inline.js +24 -38
  231. package/components/loader-screen/loader-screen.d.ts +0 -6
  232. package/components/loader-screen/loader-screen.js +24 -46
  233. package/components/login-dialog/login-dialog.d.ts +0 -11
  234. package/components/login-dialog/login-dialog.js +94 -145
  235. package/components/login-dialog/service.js +11 -33
  236. package/components/markdown/markdown.js +16 -29
  237. package/components/message/message.js +171 -218
  238. package/components/old-browsers-message/old-browsers-message.js +11 -14
  239. package/components/old-browsers-message/old-browsers-message__stop.js +1 -4
  240. package/components/old-browsers-message/white-list.js +8 -13
  241. package/components/pager/pager.js +211 -275
  242. package/components/panel/panel.d.ts +0 -5
  243. package/components/panel/panel.js +16 -27
  244. package/components/permissions/permissions.js +118 -161
  245. package/components/permissions/permissions__cache.js +191 -218
  246. package/components/popup/popup.consts.js +1 -1
  247. package/components/popup/popup.js +237 -329
  248. package/components/popup/popup.target.js +9 -12
  249. package/components/popup/position.js +94 -101
  250. package/components/popup-menu/popup-menu.js +31 -76
  251. package/components/progress-bar/progress-bar.d.ts +19 -33
  252. package/components/progress-bar/progress-bar.js +55 -99
  253. package/components/query-assist/query-assist.d.ts +63 -93
  254. package/components/query-assist/query-assist.js +585 -748
  255. package/components/query-assist/query-assist__suggestions.js +2 -28
  256. package/components/radio/radio.d.ts +0 -8
  257. package/components/radio/radio.js +15 -35
  258. package/components/radio/radio__item.d.ts +0 -9
  259. package/components/radio/radio__item.js +52 -72
  260. package/components/scrollable-section/scrollable-section.js +53 -0
  261. package/components/select/select.d.ts +3 -0
  262. package/components/select/select.js +714 -863
  263. package/components/select/select__filter.js +2 -29
  264. package/components/select/select__popup.js +317 -465
  265. package/components/shortcuts/core.js +147 -195
  266. package/components/shortcuts/shortcut-title.js +6 -10
  267. package/components/shortcuts/shortcuts-hoc.d.ts +0 -5
  268. package/components/shortcuts/shortcuts-hoc.js +23 -46
  269. package/components/shortcuts/shortcuts.d.ts +0 -8
  270. package/components/shortcuts/shortcuts.js +41 -72
  271. package/components/slider/slider.js +93 -113
  272. package/components/slider/slider.utils.js +16 -23
  273. package/components/storage/storage.d.ts +2 -3
  274. package/components/storage/storage.js +2 -46
  275. package/components/storage/storage__local.js +89 -148
  276. package/components/style.css +1 -1
  277. package/components/tab-trap/tab-trap.js +35 -61
  278. package/components/table/cell.d.ts +0 -6
  279. package/components/table/cell.js +11 -27
  280. package/components/table/disable-hover-hoc.d.ts +0 -1
  281. package/components/table/disable-hover-hoc.js +27 -42
  282. package/components/table/header-cell.d.ts +0 -10
  283. package/components/table/header-cell.js +59 -85
  284. package/components/table/header.d.ts +1 -23
  285. package/components/table/header.js +89 -126
  286. package/components/table/multitable.d.ts +0 -4
  287. package/components/table/multitable.js +83 -93
  288. package/components/table/row-with-focus-sensor.d.ts +2 -2
  289. package/components/table/row-with-focus-sensor.js +26 -60
  290. package/components/table/row.js +170 -235
  291. package/components/table/selection-adapter.js +2 -2
  292. package/components/table/selection-shortcuts-hoc.js +102 -126
  293. package/components/table/selection.js +150 -217
  294. package/components/table/simple-table.d.ts +0 -44
  295. package/components/table/simple-table.js +18 -59
  296. package/components/table/smart-table.d.ts +0 -48
  297. package/components/table/smart-table.js +41 -83
  298. package/components/table/table.d.ts +0 -2
  299. package/components/table/table.js +269 -377
  300. package/components/tabs/collapsible-more.d.ts +1 -9
  301. package/components/tabs/collapsible-more.js +47 -97
  302. package/components/tabs/collapsible-tab.js +32 -44
  303. package/components/tabs/collapsible-tabs.d.ts +2 -29
  304. package/components/tabs/collapsible-tabs.js +89 -161
  305. package/components/tabs/custom-item.d.ts +1 -7
  306. package/components/tabs/custom-item.js +4 -7
  307. package/components/tabs/dumb-tabs.d.ts +0 -11
  308. package/components/tabs/dumb-tabs.js +60 -104
  309. package/components/tabs/smart-tabs.d.ts +0 -6
  310. package/components/tabs/smart-tabs.js +29 -68
  311. package/components/tabs/tab-link.d.ts +0 -8
  312. package/components/tabs/tab-link.js +1 -4
  313. package/components/tabs/tab.d.ts +0 -8
  314. package/components/tabs/tab.js +14 -32
  315. package/components/tabs/tabs.js +1 -28
  316. package/components/tag/tag.d.ts +0 -19
  317. package/components/tag/tag.js +120 -179
  318. package/components/tags-input/tags-input.d.ts +7 -33
  319. package/components/tags-input/tags-input.js +224 -339
  320. package/components/tags-list/tags-list.d.ts +0 -13
  321. package/components/tags-list/tags-list.js +45 -74
  322. package/components/text/text.d.ts +0 -7
  323. package/components/text/text.js +27 -43
  324. package/components/toggle/toggle.d.ts +0 -15
  325. package/components/toggle/toggle.js +52 -77
  326. package/components/tooltip/tooltip.d.ts +4 -10
  327. package/components/tooltip/tooltip.js +105 -137
  328. package/components/user-agreement/service.d.ts +2 -1
  329. package/components/user-agreement/service.js +260 -405
  330. package/components/user-agreement/user-agreement.d.ts +0 -18
  331. package/components/user-agreement/user-agreement.js +92 -138
  332. package/components/user-card/card.d.ts +0 -35
  333. package/components/user-card/card.js +2 -27
  334. package/components/user-card/smart-user-card-tooltip.d.ts +0 -5
  335. package/components/user-card/smart-user-card-tooltip.js +52 -108
  336. package/components/user-card/tooltip.d.ts +0 -9
  337. package/components/user-card/tooltip.js +35 -74
  338. package/components/user-card/user-card.js +1 -26
  339. package/package.json +4 -6
  340. package/components/global/prop-types.d.ts +0 -4
  341. package/components/global/prop-types.js +0 -9
  342. package/components/global/react-render-adapter.d.ts +0 -1
  343. package/components/global/react-render-adapter.js +0 -6
  344. package/components/header/scrollable-section.js +0 -47
  345. package/components/header/tray-icon.d.ts +0 -1
  346. package/components/header/tray-icon.js +0 -26
  347. package/components/storage/storage__fallback.d.ts +0 -79
  348. package/components/storage/storage__fallback.js +0 -253
  349. /package/components/{header → scrollable-section}/scrollable-section.d.ts +0 -0
@@ -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 };