@jetbrains/ring-ui-built 7.0.66 → 7.0.71

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 (231) hide show
  1. package/components/_helpers/anchor.js +12 -17
  2. package/components/_helpers/avatar-info.js +4 -5
  3. package/components/_helpers/button.classes.js +20 -21
  4. package/components/_helpers/caption.js +3 -3
  5. package/components/_helpers/card.js +26 -32
  6. package/components/_helpers/dialog-body-scroll-preventer.js +1 -2
  7. package/components/_helpers/icon-svg.js +9 -12
  8. package/components/_helpers/input.js +78 -86
  9. package/components/_helpers/loader-core.js +260 -0
  10. package/components/_helpers/query-assist-suggestions.js +0 -1
  11. package/components/_helpers/select-filter.js +19 -26
  12. package/components/_helpers/services-link.js +9 -12
  13. package/components/_helpers/sidebar.js +36 -44
  14. package/components/_helpers/tab-link.js +9 -11
  15. package/components/_helpers/theme.js +20 -24
  16. package/components/_helpers/title.js +12 -17
  17. package/components/alert/alert.js +41 -49
  18. package/components/alert/container.js +9 -12
  19. package/components/alert-service/alert-service.js +23 -32
  20. package/components/analytics/analytics-custom-plugin.js +12 -17
  21. package/components/analytics/analytics.js +1 -3
  22. package/components/auth/auth-core.js +128 -170
  23. package/components/auth/auth.js +3 -10
  24. package/components/auth/background-flow.js +5 -8
  25. package/components/auth/down-notification.js +9 -17
  26. package/components/auth/iframe-flow.js +13 -19
  27. package/components/auth/request-builder.js +4 -9
  28. package/components/auth/response-parser.js +9 -12
  29. package/components/auth/storage.js +12 -18
  30. package/components/auth/token-validator.js +19 -30
  31. package/components/auth/window-flow.js +22 -27
  32. package/components/auth-dialog/auth-dialog.js +40 -48
  33. package/components/auth-dialog-service/auth-dialog-service.js +10 -13
  34. package/components/avatar/avatar.figma.js +6 -6
  35. package/components/avatar/avatar.js +58 -59
  36. package/components/avatar/fallback-avatar.js +8 -11
  37. package/components/avatar-stack/avatar-stack.figma.js +10 -11
  38. package/components/avatar-stack/avatar-stack.js +25 -31
  39. package/components/banner/banner.js +0 -6
  40. package/components/breadcrumbs/breadcrumbs.figma.js +8 -6
  41. package/components/breadcrumbs/breadcrumbs.js +4 -5
  42. package/components/button/button.figma.js +15 -10
  43. package/components/button/button.js +59 -64
  44. package/components/button-group/button-group.js +11 -15
  45. package/components/button-group/caption.js +0 -1
  46. package/components/button-set/button-set.js +9 -12
  47. package/components/button-toolbar/button-toolbar.js +8 -11
  48. package/components/caret/caret.js +20 -28
  49. package/components/checkbox/checkbox-group.figma.js +8 -10
  50. package/components/checkbox/checkbox.figma.js +5 -5
  51. package/components/checkbox/checkbox.js +27 -35
  52. package/components/clipboard/clipboard-fallback.js +3 -3
  53. package/components/clipboard/clipboard.js +3 -16
  54. package/components/code/code.js +8 -14
  55. package/components/collapse/collapse-content.js +10 -15
  56. package/components/collapse/collapse-control.js +5 -7
  57. package/components/collapse/collapse.js +9 -11
  58. package/components/collapse/utils.js +1 -1
  59. package/components/confirm/confirm.js +17 -26
  60. package/components/confirm-service/confirm-service.js +30 -31
  61. package/components/content-layout/content-layout.js +21 -28
  62. package/components/content-layout/sidebar.js +0 -2
  63. package/components/contenteditable/contenteditable.js +23 -28
  64. package/components/control-help/control-help.js +8 -10
  65. package/components/control-label/control-label.js +12 -17
  66. package/components/data-list/data-list.js +57 -65
  67. package/components/data-list/data-list.mock.js +0 -4
  68. package/components/data-list/item.js +65 -72
  69. package/components/data-list/selection.js +11 -19
  70. package/components/data-list/title.js +0 -4
  71. package/components/date-picker/consts.js +3 -4
  72. package/components/date-picker/date-input.js +25 -33
  73. package/components/date-picker/date-picker.js +179 -193
  74. package/components/date-picker/date-popup.js +135 -127
  75. package/components/date-picker/day.d.ts +1 -1
  76. package/components/date-picker/day.js +24 -30
  77. package/components/date-picker/month-names.js +7 -12
  78. package/components/date-picker/month-slider.js +16 -22
  79. package/components/date-picker/month.js +3 -5
  80. package/components/date-picker/months.js +6 -6
  81. package/components/date-picker/weekdays.js +0 -1
  82. package/components/date-picker/years.js +20 -26
  83. package/components/dialog/dialog-body-scroll-preventer.js +0 -1
  84. package/components/dialog/dialog.js +73 -83
  85. package/components/dropdown/anchor.js +0 -4
  86. package/components/dropdown/dropdown.js +98 -114
  87. package/components/dropdown-menu/dropdown-menu.js +80 -79
  88. package/components/editable-heading/editable-heading.js +48 -54
  89. package/components/error-bubble/error-bubble.figma.js +4 -4
  90. package/components/error-bubble/error-bubble.js +9 -13
  91. package/components/error-message/error-message.js +1 -6
  92. package/components/footer/footer.js +11 -15
  93. package/components/global/compose-refs.js +1 -4
  94. package/components/global/compose.js +1 -4
  95. package/components/global/configuration.js +3 -3
  96. package/components/global/controls-height.js +0 -1
  97. package/components/global/create-stateful-context.js +10 -14
  98. package/components/global/data-tests.js +2 -10
  99. package/components/global/dom.js +6 -19
  100. package/components/global/focus-sensor-hoc.js +74 -87
  101. package/components/global/fuzzy-highlight.js +3 -8
  102. package/components/global/get-uid.js +1 -1
  103. package/components/global/inject-styles.js +5 -6
  104. package/components/global/listeners.js +2 -11
  105. package/components/global/memoize.js +0 -2
  106. package/components/global/normalize-indent.js +2 -6
  107. package/components/global/promise-with-timeout.js +4 -5
  108. package/components/global/react-dom-renderer.js +4 -9
  109. package/components/global/rerender-hoc.js +8 -11
  110. package/components/global/schedule-raf.js +1 -2
  111. package/components/global/theme.js +0 -5
  112. package/components/global/trivial-template-tag.js +1 -6
  113. package/components/global/url.js +2 -6
  114. package/components/global/use-event-callback.js +2 -3
  115. package/components/grid/col.js +7 -18
  116. package/components/grid/grid.js +9 -14
  117. package/components/grid/row.js +7 -11
  118. package/components/group/group.js +9 -12
  119. package/components/header/header-icon.js +8 -13
  120. package/components/header/header.js +16 -27
  121. package/components/header/links.js +7 -10
  122. package/components/header/logo.js +12 -16
  123. package/components/header/profile.js +73 -83
  124. package/components/header/services-link.js +0 -2
  125. package/components/header/services.js +32 -43
  126. package/components/header/smart-profile.js +44 -59
  127. package/components/header/smart-services.js +33 -45
  128. package/components/header/tray.js +8 -10
  129. package/components/heading/heading.js +27 -27
  130. package/components/http/http.js +120 -125
  131. package/components/http/http.mock.js +6 -10
  132. package/components/hub-source/hub-source-user.js +6 -13
  133. package/components/hub-source/hub-source-users-groups.js +8 -12
  134. package/components/hub-source/hub-source.js +8 -10
  135. package/components/i18n/i18n-context.js +4 -7
  136. package/components/i18n/i18n.js +5 -5
  137. package/components/icon/icon-svg.js +0 -4
  138. package/components/icon/icon.js +28 -32
  139. package/components/icon/index.js +0 -4
  140. package/components/input/input.figma.js +8 -8
  141. package/components/input/input.js +0 -4
  142. package/components/island/adaptive-island-hoc.js +19 -23
  143. package/components/island/content.js +70 -75
  144. package/components/island/header.js +21 -21
  145. package/components/island/island.js +11 -14
  146. package/components/link/clickable-link.js +30 -37
  147. package/components/link/link.js +27 -29
  148. package/components/list/list-custom.js +6 -11
  149. package/components/list/list-item.js +49 -56
  150. package/components/list/list-separator.js +0 -1
  151. package/components/list/list-title.js +0 -1
  152. package/components/list/list-users-groups-source.js +14 -22
  153. package/components/list/list.classes.js +8 -9
  154. package/components/list/list.js +387 -404
  155. package/components/loader/loader-core.js +2 -265
  156. package/components/loader/loader.d.ts +8 -0
  157. package/components/loader/loader.js +43 -29
  158. package/components/loader-inline/loader-inline.js +9 -12
  159. package/components/loader-screen/loader-screen.js +10 -14
  160. package/components/login-dialog/login-dialog.js +46 -54
  161. package/components/login-dialog/service.js +13 -15
  162. package/components/message/message.js +65 -79
  163. package/components/old-browsers-message/old-browsers-message-stop.js +0 -3
  164. package/components/old-browsers-message/old-browsers-message.js +1 -4
  165. package/components/old-browsers-message/white-list.js +5 -7
  166. package/components/pager/pager.js +73 -88
  167. package/components/panel/panel.js +9 -12
  168. package/components/permissions/permissions-cache.js +6 -8
  169. package/components/permissions/permissions.js +19 -21
  170. package/components/popup/popup.js +136 -145
  171. package/components/popup/popup.target.js +8 -10
  172. package/components/popup/position-css.js +19 -27
  173. package/components/popup/position.js +22 -28
  174. package/components/popup-menu/popup-menu.js +27 -37
  175. package/components/progress-bar/progress-bar.js +26 -32
  176. package/components/query-assist/query-assist-suggestions.js +0 -6
  177. package/components/query-assist/query-assist.js +432 -468
  178. package/components/radio/radio-item.js +30 -40
  179. package/components/radio/radio.js +6 -10
  180. package/components/scrollable-section/scrollable-section.js +7 -10
  181. package/components/select/select-filter.js +0 -6
  182. package/components/select/select-popup.js +155 -174
  183. package/components/select/select.js +464 -479
  184. package/components/shortcuts/core.js +40 -45
  185. package/components/shortcuts/shortcut-title.js +0 -1
  186. package/components/shortcuts/shortcuts-hoc.js +9 -15
  187. package/components/shortcuts/shortcuts.js +3 -5
  188. package/components/slider/slider.js +53 -66
  189. package/components/slider/slider.utils.js +1 -4
  190. package/components/storage/storage-local.js +2 -8
  191. package/components/storage/storage.js +0 -5
  192. package/components/style.css +1 -1
  193. package/components/tab-trap/tab-trap.js +21 -30
  194. package/components/table/cell.js +3 -4
  195. package/components/table/disable-hover-hoc.js +24 -28
  196. package/components/table/header-cell.js +30 -38
  197. package/components/table/header.js +20 -28
  198. package/components/table/multitable.js +81 -101
  199. package/components/table/row-with-focus-sensor.js +17 -28
  200. package/components/table/row.js +89 -99
  201. package/components/table/selection-adapter.js +0 -2
  202. package/components/table/selection-shortcuts-hoc.js +159 -161
  203. package/components/table/selection.js +23 -31
  204. package/components/table/simple-table.js +16 -22
  205. package/components/table/smart-table.js +19 -26
  206. package/components/table/table.js +137 -146
  207. package/components/tabs/collapsible-more.js +34 -47
  208. package/components/tabs/collapsible-tab.js +28 -33
  209. package/components/tabs/collapsible-tabs.js +16 -24
  210. package/components/tabs/custom-item.js +3 -6
  211. package/components/tabs/dumb-tabs.js +48 -64
  212. package/components/tabs/smart-tabs.js +14 -23
  213. package/components/tabs/tab-link.js +0 -2
  214. package/components/tabs/tab.js +0 -1
  215. package/components/tabs/tabs.js +0 -7
  216. package/components/tag/tag.js +30 -35
  217. package/components/tags-input/tags-input.js +192 -218
  218. package/components/tags-list/tags-list.js +26 -31
  219. package/components/text/text.js +16 -19
  220. package/components/toggle/toggle.js +19 -23
  221. package/components/tooltip/tooltip.js +110 -121
  222. package/components/upload/upload.js +19 -28
  223. package/components/user-agreement/service.js +247 -252
  224. package/components/user-agreement/toolbox.eula.js +160 -1
  225. package/components/user-agreement/user-agreement.js +23 -32
  226. package/components/user-card/card.js +0 -5
  227. package/components/user-card/smart-user-card-tooltip.js +41 -50
  228. package/components/user-card/tooltip.js +32 -38
  229. package/components/user-card/user-card.js +0 -5
  230. package/package.json +9 -3
  231. package/components/_helpers/_rollupPluginBabelHelpers.js +0 -72
@@ -1,16 +1,13 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
1
  import AuthResponseParser from './response-parser.js';
3
- import 'core-js/modules/es.regexp.exec.js';
4
- import 'core-js/modules/es.string.replace.js';
5
2
  import '../global/url.js';
6
3
 
7
4
  const HUB_AUTH_PAGE_OPENED = 'HUB_AUTH_PAGE_OPENED';
8
5
  class BackgroundFlow {
6
+ _requestBuilder;
7
+ _storage;
8
+ _timeout;
9
+ _promise;
9
10
  constructor(requestBuilder, storage, timeout) {
10
- _defineProperty(this, "_requestBuilder", void 0);
11
- _defineProperty(this, "_storage", void 0);
12
- _defineProperty(this, "_timeout", void 0);
13
- _defineProperty(this, "_promise", void 0);
14
11
  this._requestBuilder = requestBuilder;
15
12
  this._storage = storage;
16
13
  this._timeout = timeout;
@@ -36,7 +33,7 @@ class BackgroundFlow {
36
33
  * @private
37
34
  */
38
35
  _redirectFrame(iframe, url) {
39
- iframe.src = "".concat(url, "&rnd=").concat(Math.random());
36
+ iframe.src = `${url}&rnd=${Math.random()}`;
40
37
  }
41
38
  /**
42
39
  * Refreshes the access token in an iframe.
@@ -3,8 +3,6 @@ import alertService from '../alert-service/alert-service.js';
3
3
  import Alert from '../alert/alert.js';
4
4
  import Link from '../link/link.js';
5
5
  import Group from '../group/group.js';
6
- import '../_helpers/_rollupPluginBabelHelpers.js';
7
- import 'core-js/modules/web.dom-collections.iterator.js';
8
6
  import 'react-dom/client';
9
7
  import '../global/get-uid.js';
10
8
  import '../alert/container.js';
@@ -19,8 +17,6 @@ import '../icon/icon.js';
19
17
  import 'util-deprecate';
20
18
  import '../icon/icon.constants.js';
21
19
  import '../_helpers/icon-svg.js';
22
- import 'core-js/modules/es.regexp.exec.js';
23
- import 'core-js/modules/es.string.replace.js';
24
20
  import '../global/memoize.js';
25
21
  import '../loader-inline/loader-inline.js';
26
22
  import '../global/data-tests.js';
@@ -43,7 +39,6 @@ import '../global/sniffer.js';
43
39
  import 'sniffr';
44
40
  import '../tab-trap/tab-trap.js';
45
41
  import '../popup/position.js';
46
- import 'core-js/modules/es.array.sort.js';
47
42
  import '../popup/popup.consts.js';
48
43
  import '../popup/position-css.js';
49
44
  import '../_helpers/link.js';
@@ -51,8 +46,7 @@ import '../_helpers/link.js';
51
46
  var styles = {"title":"ring-down-notification-title","error":"ring-down-notification-error"};
52
47
 
53
48
  let key = null;
54
- function renderAlert(message) {
55
- let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Alert.Type.WARNING;
49
+ function renderAlert(message, type = Alert.Type.WARNING) {
56
50
  const existingAlert = alertService.showingAlerts.filter(alert => alert.key === key)[0];
57
51
  if (!existingAlert) {
58
52
  key = alertService.addAlert(message, type, 0, {
@@ -64,11 +58,10 @@ function renderAlert(message) {
64
58
  alertService.renderAlerts();
65
59
  }
66
60
  }
67
- function Message(_ref) {
68
- let {
69
- translations,
70
- onCheckAgain
71
- } = _ref;
61
+ function Message({
62
+ translations,
63
+ onCheckAgain
64
+ }) {
72
65
  const {
73
66
  backendIsNotAvailable,
74
67
  checkAgain,
@@ -91,11 +84,10 @@ function Message(_ref) {
91
84
  })]
92
85
  });
93
86
  }
94
- function onBackendDown(_ref2) {
95
- let {
96
- onCheckAgain,
97
- translations
98
- } = _ref2;
87
+ function onBackendDown({
88
+ onCheckAgain,
89
+ translations
90
+ }) {
99
91
  async function checkAgainWithoutClosing(e) {
100
92
  // Alert has weird behaviour of handling clicks by "a" tags
101
93
  e.stopPropagation();
@@ -1,4 +1,3 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
1
  import { jsx } from 'react/jsx-runtime';
3
2
  import showAuthDialog from '../login-dialog/service.js';
4
3
  import Link from '../link/link.js';
@@ -9,7 +8,6 @@ import 'react';
9
8
  import 'util-deprecate';
10
9
  import '../global/configuration.js';
11
10
  import '../login-dialog/login-dialog.js';
12
- import 'core-js/modules/web.dom-collections.iterator.js';
13
11
  import '../dialog/dialog.js';
14
12
  import 'react-dom';
15
13
  import 'classnames';
@@ -26,7 +24,6 @@ import '../global/schedule-raf.js';
26
24
  import '../global/get-uid.js';
27
25
  import '../shortcuts/shortcuts.js';
28
26
  import '../shortcuts/core.js';
29
- import 'core-js/modules/es.regexp.exec.js';
30
27
  import 'combokeys';
31
28
  import '../global/sniffer.js';
32
29
  import 'sniffr';
@@ -38,38 +35,32 @@ import '@jetbrains/icons/chevron-12px-down';
38
35
  import '../icon/icon.js';
39
36
  import '../icon/icon.constants.js';
40
37
  import '../_helpers/icon-svg.js';
41
- import 'core-js/modules/es.string.replace.js';
42
38
  import '../global/memoize.js';
43
39
  import '../link/clickable-link.js';
44
40
  import '../_helpers/button.classes.js';
45
41
  import '../popup/popup.target.js';
46
42
  import '../popup/popup.js';
47
43
  import '../popup/position.js';
48
- import 'core-js/modules/es.array.sort.js';
49
44
  import '../popup/popup.consts.js';
50
45
  import '../popup/position-css.js';
51
46
  import '../_helpers/dialog-body-scroll-preventer.js';
52
47
  import 'scrollbar-width';
53
48
  import '../loader-screen/loader-screen.js';
54
49
  import '../loader/loader.js';
55
- import '../loader/loader-core.js';
50
+ import '../_helpers/loader-core.js';
56
51
  import './background-flow.js';
57
52
  import '../global/url.js';
58
53
  import '../_helpers/link.js';
59
54
 
60
55
  class IFrameFlow {
56
+ hideDialog = null;
57
+ _requestBuilder;
58
+ _storage;
59
+ _translations;
60
+ reject;
61
+ _promise;
62
+ _loginWindow;
61
63
  constructor(requestBuilder, storage, translations) {
62
- _defineProperty(this, "hideDialog", null);
63
- _defineProperty(this, "_requestBuilder", void 0);
64
- _defineProperty(this, "_storage", void 0);
65
- _defineProperty(this, "_translations", void 0);
66
- _defineProperty(this, "reject", void 0);
67
- _defineProperty(this, "_promise", void 0);
68
- _defineProperty(this, "_loginWindow", void 0);
69
- _defineProperty(this, "_reset", () => {
70
- this._promise = null;
71
- this.hideDialog = null;
72
- });
73
64
  this._requestBuilder = requestBuilder;
74
65
  this._storage = storage;
75
66
  this._translations = translations;
@@ -117,13 +108,16 @@ class IFrameFlow {
117
108
  }
118
109
  });
119
110
  const cleanUp = () => {
120
- var _this$hideDialog;
121
- (_this$hideDialog = this.hideDialog) === null || _this$hideDialog === void 0 || _this$hideDialog.call(this);
111
+ this.hideDialog?.();
122
112
  removeStateListener();
123
113
  removeTokenListener();
124
114
  };
125
115
  });
126
116
  }
117
+ _reset = () => {
118
+ this._promise = null;
119
+ this.hideDialog = null;
120
+ };
127
121
  stop() {
128
122
  if (this.hideDialog) {
129
123
  this.hideDialog();
@@ -1,10 +1,9 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
1
  import uuid from 'simply-uuid';
3
2
  import { encodeURL } from '../global/url.js';
4
- import 'core-js/modules/es.regexp.exec.js';
5
- import 'core-js/modules/es.string.replace.js';
6
3
 
7
4
  class AuthRequestBuilder {
5
+ config;
6
+ storage;
8
7
  /**
9
8
  * @param {{
10
9
  * authorization: string,
@@ -16,15 +15,13 @@ class AuthRequestBuilder {
16
15
  * @param {AuthStorage} storage
17
16
  */
18
17
  constructor(config, storage) {
19
- _defineProperty(this, "config", void 0);
20
- _defineProperty(this, "storage", void 0);
21
18
  this.config = config;
22
19
  this.storage = storage;
23
20
  }
24
21
  /**
25
22
  * @return {string} random string used for state
26
23
  */
27
-
24
+ static _uuid = uuid.generate;
28
25
  /**
29
26
  * Save state and build an auth server redirect URL.
30
27
  *
@@ -62,10 +59,8 @@ class AuthRequestBuilder {
62
59
  * @private
63
60
  */
64
61
  _saveState(id, storedState) {
65
- var _this$storage;
66
- return (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.saveState(id, storedState);
62
+ return this.storage?.saveState(id, storedState);
67
63
  }
68
64
  }
69
- _defineProperty(AuthRequestBuilder, "_uuid", uuid.generate);
70
65
 
71
66
  export { AuthRequestBuilder as default };
@@ -1,16 +1,12 @@
1
- import { _ as _defineProperty, b as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.regexp.exec.js';
3
- import 'core-js/modules/es.string.replace.js';
4
1
  import { parseQueryString } from '../global/url.js';
5
2
 
6
3
  class AuthError extends Error {
4
+ code;
5
+ uri;
6
+ stateId;
7
7
  // Supports weird IE 11 failing test issue
8
- constructor() {
9
- let authResponse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ constructor(authResponse = {}) {
10
9
  super(authResponse.errorDescription);
11
- _defineProperty(this, "code", void 0);
12
- _defineProperty(this, "uri", void 0);
13
- _defineProperty(this, "stateId", void 0);
14
10
  this.code = authResponse.error;
15
11
  this.uri = authResponse.errorUri;
16
12
  this.stateId = authResponse.state;
@@ -26,10 +22,11 @@ class AuthError extends Error {
26
22
  * @property {?string} error
27
23
  */
28
24
  class AuthResponseParser {
25
+ _authResponse;
29
26
  constructor() {
30
- _defineProperty(this, "_authResponse", void 0);
31
27
  this._authResponse = this.readAuthResponseFromURL();
32
28
  }
29
+ static AuthError = AuthError;
33
30
  static convertKey(key) {
34
31
  return key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
35
32
  }
@@ -63,9 +60,10 @@ class AuthResponseParser {
63
60
  if (!authResponse.accessToken) {
64
61
  return null;
65
62
  }
66
- return _objectSpread2(_objectSpread2({}, authResponse), {}, {
63
+ return {
64
+ ...authResponse,
67
65
  accessToken: authResponse.accessToken
68
- });
66
+ };
69
67
  }
70
68
  /**
71
69
  * Reads the current accessToken from the URL.
@@ -102,6 +100,5 @@ class AuthResponseParser {
102
100
  return window.location.toString();
103
101
  }
104
102
  }
105
- _defineProperty(AuthResponseParser, "AuthError", AuthError);
106
103
 
107
104
  export { AuthError, AuthResponseParser as default };
@@ -1,6 +1,3 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.array.sort.js';
3
- import 'core-js/modules/web.dom-collections.iterator.js';
4
1
  import LocalStorage from '../storage/storage-local.js';
5
2
  import '../alert-service/alert-service.js';
6
3
  import 'react/jsx-runtime';
@@ -17,8 +14,6 @@ import '../icon/icon.js';
17
14
  import 'util-deprecate';
18
15
  import '../icon/icon.constants.js';
19
16
  import '../_helpers/icon-svg.js';
20
- import 'core-js/modules/es.regexp.exec.js';
21
- import 'core-js/modules/es.string.replace.js';
22
17
  import '../global/memoize.js';
23
18
  import '../loader-inline/loader-inline.js';
24
19
  import '../global/data-tests.js';
@@ -63,22 +58,22 @@ const DEFAULT_STATE_QUOTA = 102400; // 100 kb ~~ 200 tabs with a large list of s
63
58
  const DEFAULT_STATE_TTL = 1000 * 60 * 60 * 24; // nobody will need auth state after a day
64
59
  const UPDATE_USER_TIMEOUT = 1000;
65
60
  class AuthStorage {
61
+ messagePrefix;
62
+ stateKeyPrefix;
63
+ tokenKey;
64
+ userKey;
65
+ stateTTL;
66
+ stateQuota;
67
+ _lastMessage;
68
+ _stateStorage;
69
+ _tokenStorage;
70
+ _messagesStorage;
71
+ _currentUserStorage;
66
72
  /**
67
73
  * Custom storage for Auth
68
74
  * @param {{stateKeyPrefix: string, tokenKey: string, onTokenRemove: Function}} config
69
75
  */
70
76
  constructor(config) {
71
- _defineProperty(this, "messagePrefix", void 0);
72
- _defineProperty(this, "stateKeyPrefix", void 0);
73
- _defineProperty(this, "tokenKey", void 0);
74
- _defineProperty(this, "userKey", void 0);
75
- _defineProperty(this, "stateTTL", void 0);
76
- _defineProperty(this, "stateQuota", void 0);
77
- _defineProperty(this, "_lastMessage", void 0);
78
- _defineProperty(this, "_stateStorage", void 0);
79
- _defineProperty(this, "_tokenStorage", void 0);
80
- _defineProperty(this, "_messagesStorage", void 0);
81
- _defineProperty(this, "_currentUserStorage", void 0);
82
77
  this.messagePrefix = config.messagePrefix || '';
83
78
  this.stateKeyPrefix = config.stateKeyPrefix || '';
84
79
  this.tokenKey = config.tokenKey || '';
@@ -126,8 +121,7 @@ class AuthStorage {
126
121
  onMessage(key, fn) {
127
122
  return this._messagesStorage.on(this.messagePrefix + key, message => fn(message));
128
123
  }
129
- sendMessage(key) {
130
- let message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
124
+ sendMessage(key, message = null) {
131
125
  this._lastMessage = message;
132
126
  this._messagesStorage.set(this.messagePrefix + key, message);
133
127
  }
@@ -1,24 +1,20 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
1
  import { CODE } from '../http/http.js';
3
- import 'core-js/modules/web.dom-collections.iterator.js';
4
2
  import '../global/url.js';
5
- import 'core-js/modules/es.regexp.exec.js';
6
- import 'core-js/modules/es.string.replace.js';
7
3
 
8
4
  class TokenValidationError extends Error {
5
+ cause;
6
+ authRedirect;
9
7
  constructor(message, cause) {
10
8
  super(message);
11
- _defineProperty(this, "cause", void 0);
12
- _defineProperty(this, "authRedirect", void 0);
13
9
  this.cause = cause;
14
10
  this.authRedirect = true;
15
11
  }
16
12
  }
17
13
  class TokenValidator {
14
+ _getUser;
15
+ _config;
16
+ _storage;
18
17
  constructor(config, getUser, storage) {
19
- _defineProperty(this, "_getUser", void 0);
20
- _defineProperty(this, "_config", void 0);
21
- _defineProperty(this, "_storage", void 0);
22
18
  this._getUser = getUser;
23
19
  this._config = config;
24
20
  this._storage = storage;
@@ -37,7 +33,14 @@ class TokenValidator {
37
33
  * @const {number}
38
34
  */
39
35
  // eslint-disable-next-line @typescript-eslint/no-magic-numbers
40
-
36
+ static DEFAULT_REFRESH_BEFORE = 10 * 60; // 20 min in s
37
+ /**
38
+ * Error class for auth token validation
39
+ *
40
+ * @param {string} message Error message
41
+ * @param {Error=} cause Error that caused this error
42
+ */
43
+ static TokenValidationError = TokenValidationError;
41
44
  /**
42
45
  * Check token validity against all conditions.
43
46
  * @mockReturnValue {Promise.<string>}
@@ -77,11 +80,10 @@ class TokenValidator {
77
80
  * @return {Promise.<StoredToken>}
78
81
  * @private
79
82
  */
80
- static _validateExpiration(_ref) {
81
- let {
82
- expires,
83
- lifeTime
84
- } = _ref;
83
+ static _validateExpiration({
84
+ expires,
85
+ lifeTime
86
+ }) {
85
87
  const REFRESH_BEFORE_RATIO = 6;
86
88
  const refreshBefore = lifeTime ? Math.ceil(lifeTime / REFRESH_BEFORE_RATIO) : TokenValidator.DEFAULT_REFRESH_BEFORE;
87
89
  // eslint-disable-next-line no-underscore-dangle
@@ -101,10 +103,7 @@ class TokenValidator {
101
103
  optionalScopes
102
104
  } = this._config;
103
105
  const requiredScopes = optionalScopes ? scope.filter(scopeId => !optionalScopes.includes(scopeId)) : scope;
104
- const hasAllScopes = requiredScopes.every(scopeId => {
105
- var _storedToken$scopes;
106
- return (_storedToken$scopes = storedToken.scopes) === null || _storedToken$scopes === void 0 ? void 0 : _storedToken$scopes.includes(scopeId);
107
- });
106
+ const hasAllScopes = requiredScopes.every(scopeId => storedToken.scopes?.includes(scopeId));
108
107
  if (!hasAllScopes) {
109
108
  throw new TokenValidator.TokenValidationError("Token doesn't match required scopes");
110
109
  }
@@ -135,9 +134,8 @@ class TokenValidator {
135
134
  // Skip JSON parsing errors
136
135
  }
137
136
  if (errorResponse.status === CODE.UNAUTHORIZED || TokenValidator.shouldRefreshToken(response.error)) {
138
- var _errorResponse$data, _errorResponse$data2;
139
137
  // Token expired
140
- throw new TokenValidator.TokenValidationError(response.error || errorResponse.message, (_errorResponse$data = errorResponse.data) !== null && _errorResponse$data !== void 0 && _errorResponse$data.error ? new Error((_errorResponse$data2 = errorResponse.data) === null || _errorResponse$data2 === void 0 ? void 0 : _errorResponse$data2.error) : undefined);
138
+ throw new TokenValidator.TokenValidationError(response.error || errorResponse.message, errorResponse.data?.error ? new Error(errorResponse.data?.error) : undefined);
141
139
  }
142
140
  // Request unexpectedly failed
143
141
  throw errorResponse;
@@ -167,14 +165,5 @@ class TokenValidator {
167
165
  return storedToken.accessToken;
168
166
  }
169
167
  }
170
- _defineProperty(TokenValidator, "DEFAULT_REFRESH_BEFORE", 10 * 60);
171
- // 20 min in s
172
- /**
173
- * Error class for auth token validation
174
- *
175
- * @param {string} message Error message
176
- * @param {Error=} cause Error that caused this error
177
- */
178
- _defineProperty(TokenValidator, "TokenValidationError", TokenValidationError);
179
168
 
180
169
  export { TokenValidationError, TokenValidator as default };
@@ -1,32 +1,16 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
1
  import AuthResponseParser from './response-parser.js';
3
- import 'core-js/modules/es.regexp.exec.js';
4
- import 'core-js/modules/es.string.replace.js';
5
2
  import '../global/url.js';
6
3
 
7
4
  const NAVBAR_HEIGHT = 50;
8
5
  const CLOSED_CHECK_INTERVAL = 200;
9
6
  class WindowFlow {
7
+ _timeoutId = undefined;
8
+ _requestBuilder;
9
+ _storage;
10
+ reject;
11
+ _loginWindow;
12
+ _promise;
10
13
  constructor(requestBuilder, storage) {
11
- _defineProperty(this, "_timeoutId", undefined);
12
- _defineProperty(this, "_requestBuilder", void 0);
13
- _defineProperty(this, "_storage", void 0);
14
- _defineProperty(this, "reject", void 0);
15
- _defineProperty(this, "_loginWindow", void 0);
16
- _defineProperty(this, "_promise", void 0);
17
- _defineProperty(this, "checkIsClosed", () => {
18
- var _this$_loginWindow;
19
- if ((_this$_loginWindow = this._loginWindow) !== null && _this$_loginWindow !== void 0 && _this$_loginWindow.closed) {
20
- this.stop();
21
- return;
22
- }
23
- this._timeoutId = window.setTimeout(this.checkIsClosed, CLOSED_CHECK_INTERVAL);
24
- });
25
- _defineProperty(this, "_reset", () => {
26
- this._promise = null;
27
- this._loginWindow = null;
28
- clearTimeout(this._timeoutId);
29
- });
30
14
  this._requestBuilder = requestBuilder;
31
15
  this._storage = storage;
32
16
  this._reset();
@@ -42,7 +26,7 @@ class WindowFlow {
42
26
  const screenHalves = 2;
43
27
  const top = (window.screen.height - height - NAVBAR_HEIGHT) / screenHalves;
44
28
  const left = (window.screen.width - width) / screenHalves;
45
- return window.open(url, 'HubLoginWindow', "height=".concat(height, ", width=").concat(width, ", left=").concat(left, ", top=").concat(top));
29
+ return window.open(url, 'HubLoginWindow', `height=${height}, width=${width}, left=${left}, top=${top}`);
46
30
  }
47
31
  /**
48
32
  * Initiates authorization in window
@@ -58,7 +42,6 @@ class WindowFlow {
58
42
  this.reject = reject;
59
43
  let cleanRun;
60
44
  const cleanUp = () => {
61
- var _this$_loginWindow2;
62
45
  if (cleanRun) {
63
46
  return;
64
47
  }
@@ -67,7 +50,7 @@ class WindowFlow {
67
50
  removeStateListener();
68
51
  removeTokenListener();
69
52
  /* eslint-enable @typescript-eslint/no-use-before-define */
70
- (_this$_loginWindow2 = this._loginWindow) === null || _this$_loginWindow2 === void 0 || _this$_loginWindow2.close();
53
+ this._loginWindow?.close();
71
54
  clearTimeout(this._timeoutId);
72
55
  };
73
56
  const removeTokenListener = this._storage.onTokenChange(token => {
@@ -82,7 +65,7 @@ class WindowFlow {
82
65
  reject(new AuthResponseParser.AuthError(state));
83
66
  }
84
67
  });
85
- if (this._loginWindow === null || this._loginWindow === undefined || this._loginWindow && this._loginWindow.closed) {
68
+ if (!this._loginWindow || this._loginWindow && this._loginWindow.closed) {
86
69
  this._loginWindow = this._openWindow(authRequest.url);
87
70
  } else if (this._loginWindow) {
88
71
  this._loginWindow.location.href = authRequest.url;
@@ -90,8 +73,20 @@ class WindowFlow {
90
73
  this.checkIsClosed();
91
74
  });
92
75
  }
76
+ checkIsClosed = () => {
77
+ if (this._loginWindow?.closed) {
78
+ this.stop();
79
+ return;
80
+ }
81
+ this._timeoutId = window.setTimeout(this.checkIsClosed, CLOSED_CHECK_INTERVAL);
82
+ };
83
+ _reset = () => {
84
+ this._promise = null;
85
+ this._loginWindow = null;
86
+ clearTimeout(this._timeoutId);
87
+ };
93
88
  stop() {
94
- if (this._loginWindow !== null && this._loginWindow !== undefined) {
89
+ if (this._loginWindow) {
95
90
  this._loginWindow.close();
96
91
  }
97
92
  if (this.reject) {
@@ -1,24 +1,20 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.regexp.exec.js';
3
- import 'core-js/modules/es.string.replace.js';
4
- import 'core-js/modules/web.dom-collections.iterator.js';
5
1
  import { jsx, jsxs } from 'react/jsx-runtime';
6
2
  import { Component } from 'react';
7
3
  import classNames from 'classnames';
8
4
  import '../_helpers/island.js';
9
- import '../island/header.js';
10
5
  import ContentWrapper from '../island/content.js';
11
6
  import Dialog from '../dialog/dialog.js';
12
7
  import { Button } from '../button/button.js';
13
8
  import { H2 } from '../heading/heading.js';
14
- import '../global/linear-function.js';
15
- import '../island/adaptive-island-hoc.js';
16
9
  import 'element-resize-detector';
17
10
  import '../global/schedule-raf.js';
11
+ import '../island/adaptive-island-hoc.js';
12
+ import '../global/linear-function.js';
18
13
  import 'react-dom';
19
14
  import '@jetbrains/icons/close';
20
15
  import '../island/island.js';
21
16
  import '../global/data-tests.js';
17
+ import '../island/header.js';
22
18
  import '../global/get-uid.js';
23
19
  import '../shortcuts/shortcuts.js';
24
20
  import '../shortcuts/core.js';
@@ -31,7 +27,6 @@ import '../popup/popup.target.js';
31
27
  import '../popup/popup.js';
32
28
  import '../global/configuration.js';
33
29
  import '../popup/position.js';
34
- import 'core-js/modules/es.array.sort.js';
35
30
  import '../popup/popup.consts.js';
36
31
  import '../popup/position-css.js';
37
32
  import '../_helpers/dialog-body-scroll-preventer.js';
@@ -51,40 +46,48 @@ import '../_helpers/heading.js';
51
46
  var styles = {"dialog":"ring-auth-dialog-dialog","content":"ring-auth-dialog-content ring-global-font","button":"ring-auth-dialog-button","firstButton":"ring-auth-dialog-firstButton ring-auth-dialog-button","title":"ring-auth-dialog-title","logo":"ring-auth-dialog-logo","error":"ring-auth-dialog-error"};
52
47
 
53
48
  class AuthDialog extends Component {
54
- constructor() {
55
- super(...arguments);
56
- _defineProperty(this, "state", {
57
- retrying: false
58
- });
59
- _defineProperty(this, "onEscPress", () => {
60
- if (this.props.cancelOnEsc) {
61
- this.props.onCancel();
62
- }
63
- });
64
- _defineProperty(this, "onRetryPress", async () => {
65
- if (!this.props.onTryAgain || this.state.retrying) {
66
- return;
67
- }
68
- this.setState({
69
- retrying: true
70
- });
71
- try {
72
- await this.props.onTryAgain();
73
- } catch (e) {
74
- // do nothing, error is handled in onTryAgain
75
- } finally {
76
- this.setState({
77
- retrying: false
78
- });
79
- }
80
- });
81
- }
49
+ static defaultProps = {
50
+ loginCaption: 'Log in',
51
+ loginToCaption: 'Log in to %serviceName%',
52
+ tryAgainLabel: 'Try again',
53
+ show: false,
54
+ cancelOnEsc: true,
55
+ confirmLabel: 'Log in',
56
+ cancelLabel: 'Remain a guest',
57
+ onConfirm: () => {},
58
+ onCancel: () => {}
59
+ };
60
+ state = {
61
+ retrying: false
62
+ };
82
63
  componentDidMount() {
83
64
  window.addEventListener('online', this.onRetryPress);
84
65
  }
85
66
  componentWillUnmount() {
86
67
  window.removeEventListener('online', this.onRetryPress);
87
68
  }
69
+ onEscPress = () => {
70
+ if (this.props.cancelOnEsc) {
71
+ this.props.onCancel();
72
+ }
73
+ };
74
+ onRetryPress = async () => {
75
+ if (!this.props.onTryAgain || this.state.retrying) {
76
+ return;
77
+ }
78
+ this.setState({
79
+ retrying: true
80
+ });
81
+ try {
82
+ await this.props.onTryAgain();
83
+ } catch (e) {
84
+ // do nothing, error is handled in onTryAgain
85
+ } finally {
86
+ this.setState({
87
+ retrying: false
88
+ });
89
+ }
90
+ };
88
91
  render() {
89
92
  const {
90
93
  show,
@@ -118,7 +121,7 @@ class AuthDialog extends Component {
118
121
  children: jsxs("div", {
119
122
  className: styles.content,
120
123
  children: [serviceImage && jsx("img", {
121
- alt: "".concat(serviceName, " logo"),
124
+ alt: `${serviceName} logo`,
122
125
  className: styles.logo,
123
126
  src: serviceImage
124
127
  }), jsx(H2, {
@@ -151,16 +154,5 @@ class AuthDialog extends Component {
151
154
  });
152
155
  }
153
156
  }
154
- _defineProperty(AuthDialog, "defaultProps", {
155
- loginCaption: 'Log in',
156
- loginToCaption: 'Log in to %serviceName%',
157
- tryAgainLabel: 'Try again',
158
- show: false,
159
- cancelOnEsc: true,
160
- confirmLabel: 'Log in',
161
- cancelLabel: 'Remain a guest',
162
- onConfirm: () => {},
163
- onCancel: () => {}
164
- });
165
157
 
166
158
  export { AuthDialog as default };