@jetbrains/ring-ui 5.0.155 → 5.0.157

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