@jetbrains/ring-ui-built 6.0.32 → 6.0.33

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 (224) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +567 -1
  2. package/components/_helpers/anchor.js +6 -7
  3. package/components/_helpers/button__classes.js +14 -16
  4. package/components/_helpers/caption.js +20 -14
  5. package/components/_helpers/card.js +105 -95
  6. package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
  7. package/components/_helpers/icon__svg.js +25 -22
  8. package/components/_helpers/input.js +177 -146
  9. package/components/_helpers/query-assist__suggestions.js +90 -74
  10. package/components/_helpers/select__filter.js +69 -48
  11. package/components/_helpers/services-link.js +37 -29
  12. package/components/_helpers/sidebar.js +107 -99
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +40 -31
  15. package/components/_helpers/title.js +72 -57
  16. package/components/alert/alert.js +202 -150
  17. package/components/alert/container.js +41 -32
  18. package/components/alert-service/alert-service.js +170 -105
  19. package/components/analytics/analytics.js +22 -12
  20. package/components/analytics/analytics__custom-plugin.js +75 -54
  21. package/components/auth/auth.js +36 -4
  22. package/components/auth/auth__core.js +1471 -746
  23. package/components/auth/background-flow.js +127 -87
  24. package/components/auth/down-notification.js +73 -30
  25. package/components/auth/iframe-flow.js +133 -75
  26. package/components/auth/request-builder.js +82 -46
  27. package/components/auth/response-parser.js +116 -86
  28. package/components/auth/storage.js +334 -171
  29. package/components/auth/token-validator.js +242 -137
  30. package/components/auth/window-flow.js +134 -92
  31. package/components/auth-dialog/auth-dialog.js +172 -114
  32. package/components/auth-dialog-service/auth-dialog-service.js +31 -8
  33. package/components/avatar/avatar-example-datauri.js +1 -23
  34. package/components/avatar/avatar.js +152 -119
  35. package/components/avatar/fallback-avatar.js +38 -22
  36. package/components/badge/badge.js +45 -35
  37. package/components/button/button.js +107 -86
  38. package/components/button-group/button-group.js +33 -19
  39. package/components/button-set/button-set.js +32 -20
  40. package/components/button-toolbar/button-toolbar.js +31 -19
  41. package/components/caret/caret.js +220 -186
  42. package/components/checkbox/checkbox.js +101 -76
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +132 -35
  45. package/components/code/code.js +166 -92
  46. package/components/collapse/collapse-content.js +64 -42
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +14 -12
  49. package/components/collapse/collapse.js +17 -11
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +3 -1
  52. package/components/confirm/confirm.js +104 -66
  53. package/components/confirm-service/confirm-service.js +59 -37
  54. package/components/content-layout/content-layout.js +64 -43
  55. package/components/content-layout/sidebar.js +1 -0
  56. package/components/contenteditable/contenteditable.js +59 -50
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +182 -129
  59. package/components/data-list/data-list.mock.js +6 -2
  60. package/components/data-list/item.js +170 -143
  61. package/components/data-list/selection.js +136 -76
  62. package/components/data-list/title.js +12 -1
  63. package/components/date-picker/consts.js +26 -19
  64. package/components/date-picker/date-input.js +144 -113
  65. package/components/date-picker/date-picker.js +282 -227
  66. package/components/date-picker/date-popup.js +395 -350
  67. package/components/date-picker/day.js +116 -87
  68. package/components/date-picker/month-names.js +66 -43
  69. package/components/date-picker/month-slider.js +76 -51
  70. package/components/date-picker/month.js +25 -16
  71. package/components/date-picker/months.js +50 -43
  72. package/components/date-picker/weekdays.js +22 -12
  73. package/components/date-picker/years.js +110 -83
  74. package/components/dialog/dialog.js +190 -142
  75. package/components/dialog/dialog__body-scroll-preventer.js +4 -0
  76. package/components/dropdown/anchor.js +9 -0
  77. package/components/dropdown/dropdown.js +213 -182
  78. package/components/dropdown-menu/dropdown-menu.js +97 -71
  79. package/components/editable-heading/editable-heading.js +127 -75
  80. package/components/error-bubble/error-bubble.js +60 -31
  81. package/components/error-message/error-message.js +59 -39
  82. package/components/footer/footer.js +30 -27
  83. package/components/global/compose.js +10 -1
  84. package/components/global/composeRefs.js +12 -7
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +14 -6
  88. package/components/global/dom.js +86 -47
  89. package/components/global/focus-sensor-hoc.js +132 -122
  90. package/components/global/fuzzy-highlight.js +36 -22
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +8 -4
  93. package/components/global/inject-styles.js +15 -10
  94. package/components/global/listeners.js +51 -27
  95. package/components/global/memoize.js +12 -6
  96. package/components/global/normalize-indent.js +50 -19
  97. package/components/global/promise-with-timeout.js +8 -6
  98. package/components/global/prop-types.js +5 -3
  99. package/components/global/react-dom-renderer.js +44 -28
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +30 -12
  102. package/components/global/schedule-raf.js +6 -5
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +22 -0
  105. package/components/global/trivial-template-tag.js +10 -3
  106. package/components/global/typescript-utils.js +6 -2
  107. package/components/global/url.js +26 -20
  108. package/components/global/use-event-callback.js +4 -6
  109. package/components/grid/col.js +52 -35
  110. package/components/grid/grid.js +31 -17
  111. package/components/grid/row.js +47 -35
  112. package/components/group/group.js +25 -17
  113. package/components/header/header.js +78 -33
  114. package/components/header/logo.js +36 -20
  115. package/components/header/profile.js +199 -166
  116. package/components/header/services-link.js +4 -0
  117. package/components/header/services.js +116 -73
  118. package/components/header/smart-profile.js +203 -111
  119. package/components/header/smart-services.js +113 -62
  120. package/components/header/tray-icon.js +37 -21
  121. package/components/header/tray.js +32 -21
  122. package/components/heading/heading.js +25 -24
  123. package/components/http/http.js +353 -203
  124. package/components/http/http.mock.js +101 -49
  125. package/components/hub-source/hub-source.js +190 -83
  126. package/components/hub-source/hub-source__user.js +44 -11
  127. package/components/hub-source/hub-source__users-groups.js +65 -37
  128. package/components/i18n/i18n-context.js +10 -7
  129. package/components/i18n/i18n.js +10 -7
  130. package/components/icon/icon.js +93 -76
  131. package/components/icon/icon__svg.js +8 -0
  132. package/components/icon/index.js +8 -0
  133. package/components/input/input.js +13 -0
  134. package/components/island/adaptive-island-hoc.js +43 -30
  135. package/components/island/content.js +132 -115
  136. package/components/island/header.js +70 -57
  137. package/components/island/island.js +40 -28
  138. package/components/island-legacy/content-legacy.js +25 -17
  139. package/components/island-legacy/header-legacy.js +27 -19
  140. package/components/island-legacy/island-legacy.js +25 -17
  141. package/components/link/clickableLink.js +59 -44
  142. package/components/link/link.js +68 -57
  143. package/components/list/consts.js +2 -2
  144. package/components/list/list.js +698 -611
  145. package/components/list/list__custom.js +62 -44
  146. package/components/list/list__hint.js +19 -10
  147. package/components/list/list__item.js +174 -133
  148. package/components/list/list__link.js +50 -37
  149. package/components/list/list__separator.js +24 -14
  150. package/components/list/list__title.js +32 -22
  151. package/components/list/list__users-groups-source.js +126 -54
  152. package/components/loader/loader.js +74 -43
  153. package/components/loader/loader__core.js +263 -198
  154. package/components/loader-inline/loader-inline.js +35 -23
  155. package/components/loader-screen/loader-screen.js +46 -25
  156. package/components/login-dialog/login-dialog.js +158 -111
  157. package/components/login-dialog/service.js +34 -8
  158. package/components/markdown/markdown.js +23 -15
  159. package/components/message/message.js +203 -161
  160. package/components/old-browsers-message/old-browsers-message.js +18 -11
  161. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  162. package/components/old-browsers-message/white-list.js +16 -8
  163. package/components/pager/pager.js +271 -212
  164. package/components/panel/panel.js +25 -17
  165. package/components/permissions/permissions.js +172 -127
  166. package/components/permissions/permissions__cache.js +224 -194
  167. package/components/popup/popup.consts.js +1 -1
  168. package/components/popup/popup.js +343 -284
  169. package/components/popup/popup.target.js +8 -9
  170. package/components/popup/position.js +106 -96
  171. package/components/popup-menu/popup-menu.js +81 -44
  172. package/components/progress-bar/progress-bar.js +104 -87
  173. package/components/query-assist/query-assist.js +916 -838
  174. package/components/query-assist/query-assist__suggestions.js +30 -1
  175. package/components/radio/radio.js +34 -19
  176. package/components/radio/radio__item.js +69 -52
  177. package/components/select/select.js +957 -852
  178. package/components/select/select__filter.js +30 -0
  179. package/components/select/select__popup.js +487 -373
  180. package/components/shortcuts/core.js +217 -166
  181. package/components/shortcuts/shortcut-title.js +11 -6
  182. package/components/shortcuts/shortcuts-hoc.js +45 -19
  183. package/components/shortcuts/shortcuts.js +75 -50
  184. package/components/slider/slider.js +122 -99
  185. package/components/slider/slider.utils.js +24 -14
  186. package/components/storage/storage.js +33 -4
  187. package/components/storage/storage__fallback.js +224 -149
  188. package/components/storage/storage__local.js +153 -90
  189. package/components/tab-trap/tab-trap.js +153 -122
  190. package/components/table/cell.js +26 -14
  191. package/components/table/disable-hover-hoc.js +51 -33
  192. package/components/table/header-cell.js +89 -64
  193. package/components/table/header.js +132 -104
  194. package/components/table/multitable.js +125 -107
  195. package/components/table/row-with-focus-sensor.js +69 -25
  196. package/components/table/row.js +216 -175
  197. package/components/table/selection-adapter.js +3 -1
  198. package/components/table/selection-shortcuts-hoc.js +181 -180
  199. package/components/table/selection.js +226 -156
  200. package/components/table/smart-table.js +88 -50
  201. package/components/table/table.js +358 -289
  202. package/components/tabs/collapsible-more.js +79 -46
  203. package/components/tabs/collapsible-tab.js +38 -31
  204. package/components/tabs/collapsible-tabs.js +153 -88
  205. package/components/tabs/custom-item.js +2 -4
  206. package/components/tabs/dumb-tabs.js +117 -74
  207. package/components/tabs/smart-tabs.js +69 -29
  208. package/components/tabs/tab-link.js +5 -1
  209. package/components/tabs/tab.js +31 -19
  210. package/components/tabs/tabs.js +31 -0
  211. package/components/tag/tag.js +173 -133
  212. package/components/tags-input/tags-input.js +427 -329
  213. package/components/tags-list/tags-list.js +78 -57
  214. package/components/text/text.js +39 -28
  215. package/components/toggle/toggle.js +70 -56
  216. package/components/tooltip/tooltip.js +190 -146
  217. package/components/user-agreement/service.js +371 -228
  218. package/components/user-agreement/toolbox.eula.js +1 -160
  219. package/components/user-agreement/user-agreement.js +120 -85
  220. package/components/user-card/card.js +29 -0
  221. package/components/user-card/smart-user-card-tooltip.js +111 -51
  222. package/components/user-card/tooltip.js +84 -47
  223. package/components/user-card/user-card.js +29 -0
  224. package/package.json +1 -1
@@ -1,9 +1,15 @@
1
+ import { _ as _defineProperty, b as _createClass, f as _classCallCheck, h as _asyncToGenerator, i as _regeneratorRuntime } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.map.js';
3
+ import 'core-js/modules/es.object.assign.js';
1
4
  import uuid from 'simply-uuid';
2
5
  import { encodeURL } from '../global/url.js';
6
+ import 'core-js/modules/es.array.concat.js';
7
+ import 'core-js/modules/es.array.index-of.js';
8
+ import 'core-js/modules/es.regexp.exec.js';
9
+ import 'core-js/modules/es.string.match.js';
10
+ import 'core-js/modules/es.string.replace.js';
3
11
 
4
- class AuthRequestBuilder {
5
- config;
6
- storage;
12
+ var AuthRequestBuilder = /*#__PURE__*/function () {
7
13
  /**
8
14
  * @param {{
9
15
  * authorization: string,
@@ -14,54 +20,84 @@ class AuthRequestBuilder {
14
20
  * }} config
15
21
  * @param {AuthStorage} storage
16
22
  */
17
- constructor(config, storage) {
23
+ function AuthRequestBuilder(config, storage) {
24
+ _classCallCheck(this, AuthRequestBuilder);
25
+ _defineProperty(this, "config", void 0);
26
+ _defineProperty(this, "storage", void 0);
18
27
  this.config = config;
19
28
  this.storage = storage;
20
29
  }
21
30
  /**
22
31
  * @return {string} random string used for state
23
32
  */
24
- static _uuid = uuid.generate;
25
- /**
26
- * Save state and build an auth server redirect URL.
27
- *
28
- * @param {object=} extraParams additional query parameters for auth request
29
- * @param {object=} extraState additional state parameters to save
30
- * @return {Promise.<string>} promise that is resolved to authURL
31
- */
32
- async prepareAuthRequest(extraParams, extraState) {
33
- const stateId = AuthRequestBuilder._uuid();
34
- const scopes = this.config.scopes.map(scope => encodeURIComponent(scope));
35
- /* eslint-disable camelcase */
36
- const request = Object.assign({
37
- response_type: 'token',
38
- state: stateId,
39
- redirect_uri: this.config.redirectUri,
40
- request_credentials: this.config.requestCredentials,
41
- client_id: this.config.clientId,
42
- scope: scopes.join(' ')
43
- }, extraParams || {});
44
- /* eslint-enable camelcase */
45
- const authURL = encodeURL(this.config.authorization, request);
46
- const state = Object.assign({
47
- restoreLocation: window.location.href,
48
- scopes: this.config.scopes
49
- }, extraState || {});
50
- await this._saveState(stateId, state);
51
- return {
52
- url: authURL,
53
- stateId
54
- };
55
- }
56
- /**
57
- * @param {string} id
58
- * @param {StoredState} storedState
59
- * @return {Promise}
60
- * @private
61
- */
62
- _saveState(id, storedState) {
63
- return this.storage?.saveState(id, storedState);
64
- }
65
- }
33
+ return _createClass(AuthRequestBuilder, [{
34
+ key: "prepareAuthRequest",
35
+ value: (
36
+ /**
37
+ * Save state and build an auth server redirect URL.
38
+ *
39
+ * @param {object=} extraParams additional query parameters for auth request
40
+ * @param {object=} extraState additional state parameters to save
41
+ * @return {Promise.<string>} promise that is resolved to authURL
42
+ */
43
+ function () {
44
+ var _prepareAuthRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(extraParams, extraState) {
45
+ var stateId, scopes, request, authURL, state;
46
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
47
+ while (1) switch (_context.prev = _context.next) {
48
+ case 0:
49
+ stateId = AuthRequestBuilder._uuid();
50
+ scopes = this.config.scopes.map(function (scope) {
51
+ return encodeURIComponent(scope);
52
+ });
53
+ /* eslint-disable camelcase */
54
+ request = Object.assign({
55
+ response_type: 'token',
56
+ state: stateId,
57
+ redirect_uri: this.config.redirectUri,
58
+ request_credentials: this.config.requestCredentials,
59
+ client_id: this.config.clientId,
60
+ scope: scopes.join(' ')
61
+ }, extraParams || {});
62
+ /* eslint-enable camelcase */
63
+ authURL = encodeURL(this.config.authorization, request);
64
+ state = Object.assign({
65
+ restoreLocation: window.location.href,
66
+ scopes: this.config.scopes
67
+ }, extraState || {});
68
+ _context.next = 7;
69
+ return this._saveState(stateId, state);
70
+ case 7:
71
+ return _context.abrupt("return", {
72
+ url: authURL,
73
+ stateId
74
+ });
75
+ case 8:
76
+ case "end":
77
+ return _context.stop();
78
+ }
79
+ }, _callee, this);
80
+ }));
81
+ function prepareAuthRequest(_x, _x2) {
82
+ return _prepareAuthRequest.apply(this, arguments);
83
+ }
84
+ return prepareAuthRequest;
85
+ }()
86
+ /**
87
+ * @param {string} id
88
+ * @param {StoredState} storedState
89
+ * @return {Promise}
90
+ * @private
91
+ */
92
+ )
93
+ }, {
94
+ key: "_saveState",
95
+ value: function _saveState(id, storedState) {
96
+ var _this$storage;
97
+ return (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.saveState(id, storedState);
98
+ }
99
+ }]);
100
+ }();
101
+ _defineProperty(AuthRequestBuilder, "_uuid", uuid.generate);
66
102
 
67
103
  export { AuthRequestBuilder as default };
@@ -1,19 +1,33 @@
1
+ import { _ as _defineProperty, a as _inherits, b as _createClass, d as _objectSpread2, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.index-of.js';
3
+ import 'core-js/modules/es.object.to-string.js';
4
+ import 'core-js/modules/es.regexp.exec.js';
5
+ import 'core-js/modules/es.regexp.to-string.js';
6
+ import 'core-js/modules/es.string.replace.js';
7
+ import 'core-js/modules/web.dom-collections.for-each.js';
1
8
  import ExtendableError from 'es6-error';
2
9
  import { parseQueryString } from '../global/url.js';
10
+ import 'core-js/modules/es.array.concat.js';
11
+ import 'core-js/modules/es.string.match.js';
3
12
 
4
- class AuthError extends ExtendableError {
5
- code;
6
- uri;
7
- stateId;
13
+ var AuthError = /*#__PURE__*/function (_ExtendableError) {
8
14
  // Supports weird IE 11 failing test issue
9
- constructor() {
10
- let authResponse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
- super(authResponse.errorDescription);
12
- this.code = authResponse.error;
13
- this.uri = authResponse.errorUri;
14
- this.stateId = authResponse.state;
15
+ function AuthError() {
16
+ var _this;
17
+ var authResponse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
+ _classCallCheck(this, AuthError);
19
+ _this = _callSuper(this, AuthError, [authResponse.errorDescription]);
20
+ _defineProperty(_this, "code", void 0);
21
+ _defineProperty(_this, "uri", void 0);
22
+ _defineProperty(_this, "stateId", void 0);
23
+ _this.code = authResponse.error;
24
+ _this.uri = authResponse.errorUri;
25
+ _this.stateId = authResponse.state;
26
+ return _this;
15
27
  }
16
- }
28
+ _inherits(AuthError, _ExtendableError);
29
+ return _createClass(AuthError);
30
+ }(ExtendableError);
17
31
  /**
18
32
  * @typedef {Object} AuthResponse
19
33
  * @property {?string} accessToken
@@ -23,84 +37,100 @@ class AuthError extends ExtendableError {
23
37
  * @property {?string} scope
24
38
  * @property {?string} error
25
39
  */
26
- class AuthResponseParser {
27
- _authResponse;
28
- constructor() {
40
+ var AuthResponseParser = /*#__PURE__*/function () {
41
+ function AuthResponseParser() {
42
+ _classCallCheck(this, AuthResponseParser);
43
+ _defineProperty(this, "_authResponse", void 0);
29
44
  this._authResponse = this.readAuthResponseFromURL();
30
45
  }
31
- static AuthError = AuthError;
32
- static convertKey(key) {
33
- return key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
34
- }
35
- /**
36
- * Check if the hash contains an access token.
37
- * If it does, return auth response. Otherwise return undefined.
38
- * Always clears the hash part of the URL.
39
- *
40
- * @throws {Error} if the auth server returned an error
41
- * @return {?AuthResponse}
42
- */
43
- getAuthResponseFromURL() {
44
- return this.validateAuthResponse(this._authResponse);
45
- }
46
- /**
47
- * Validates given authResponse.
48
- * If it contains a token - returns the token, if an error is found - throws the error,
49
- * otherwise - null
50
- * Always clears the hash part of the URL.
51
- *
52
- * @param authResponse {AuthResponse} parsed authResponse
53
- * @throws {Error} if the auth server returned an error
54
- * @return {?AuthResponse}
55
- */
56
- validateAuthResponse(authResponse) {
57
- // Check for errors
58
- if (authResponse.error) {
59
- throw new AuthResponseParser.AuthError(authResponse);
46
+ return _createClass(AuthResponseParser, [{
47
+ key: "getAuthResponseFromURL",
48
+ value:
49
+ /**
50
+ * Check if the hash contains an access token.
51
+ * If it does, return auth response. Otherwise return undefined.
52
+ * Always clears the hash part of the URL.
53
+ *
54
+ * @throws {Error} if the auth server returned an error
55
+ * @return {?AuthResponse}
56
+ */
57
+ function getAuthResponseFromURL() {
58
+ return this.validateAuthResponse(this._authResponse);
60
59
  }
61
- // If there is no token in the hash
62
- if (!authResponse.accessToken) {
63
- return null;
64
- }
65
- return {
66
- ...authResponse,
67
- accessToken: authResponse.accessToken
68
- };
69
- }
70
- /**
71
- * Reads the current accessToken from the URL.
72
- * Doesn't modify URL
73
- *
74
- * @return {AuthResponse}
75
- */
76
- readAuthResponseFromURL() {
77
- const authResponse = {};
78
- const rawAuthResponse = parseQueryString(this.getHash());
79
- Object.keys(rawAuthResponse).forEach(key => {
80
- if (key.indexOf('_') !== -1) {
81
- authResponse[AuthResponseParser.convertKey(key)] = rawAuthResponse[key];
82
- return;
60
+ /**
61
+ * Validates given authResponse.
62
+ * If it contains a token - returns the token, if an error is found - throws the error,
63
+ * otherwise - null
64
+ * Always clears the hash part of the URL.
65
+ *
66
+ * @param authResponse {AuthResponse} parsed authResponse
67
+ * @throws {Error} if the auth server returned an error
68
+ * @return {?AuthResponse}
69
+ */
70
+ }, {
71
+ key: "validateAuthResponse",
72
+ value: function validateAuthResponse(authResponse) {
73
+ // Check for errors
74
+ if (authResponse.error) {
75
+ throw new AuthResponseParser.AuthError(authResponse);
83
76
  }
84
- authResponse[key] = rawAuthResponse[key];
85
- });
86
- return authResponse;
87
- }
88
- /**
89
- * @return {string} part of the URL after # sign.
90
- * @private
91
- */
92
- getHash() {
93
- // Because of stupid Firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=483304
94
- const location = this.getLocation();
95
- return location && location.replace(/^[^#]*#?/, '');
96
- }
97
- /**
98
- * Current page location.
99
- * @return {string}
100
- */
101
- getLocation() {
102
- return window.location.toString();
103
- }
104
- }
77
+ // If there is no token in the hash
78
+ if (!authResponse.accessToken) {
79
+ return null;
80
+ }
81
+ return _objectSpread2(_objectSpread2({}, authResponse), {}, {
82
+ accessToken: authResponse.accessToken
83
+ });
84
+ }
85
+ /**
86
+ * Reads the current accessToken from the URL.
87
+ * Doesn't modify URL
88
+ *
89
+ * @return {AuthResponse}
90
+ */
91
+ }, {
92
+ key: "readAuthResponseFromURL",
93
+ value: function readAuthResponseFromURL() {
94
+ var authResponse = {};
95
+ var rawAuthResponse = parseQueryString(this.getHash());
96
+ Object.keys(rawAuthResponse).forEach(function (key) {
97
+ if (key.indexOf('_') !== -1) {
98
+ authResponse[AuthResponseParser.convertKey(key)] = rawAuthResponse[key];
99
+ return;
100
+ }
101
+ authResponse[key] = rawAuthResponse[key];
102
+ });
103
+ return authResponse;
104
+ }
105
+ /**
106
+ * @return {string} part of the URL after # sign.
107
+ * @private
108
+ */
109
+ }, {
110
+ key: "getHash",
111
+ value: function getHash() {
112
+ // Because of stupid Firefox bug — https://bugzilla.mozilla.org/show_bug.cgi?id=483304
113
+ var location = this.getLocation();
114
+ return location && location.replace(/^[^#]*#?/, '');
115
+ }
116
+ /**
117
+ * Current page location.
118
+ * @return {string}
119
+ */
120
+ }, {
121
+ key: "getLocation",
122
+ value: function getLocation() {
123
+ return window.location.toString();
124
+ }
125
+ }], [{
126
+ key: "convertKey",
127
+ value: function convertKey(key) {
128
+ return key.replace(/_([a-z])/g, function (_, letter) {
129
+ return letter.toUpperCase();
130
+ });
131
+ }
132
+ }]);
133
+ }();
134
+ _defineProperty(AuthResponseParser, "AuthError", AuthError);
105
135
 
106
136
  export { AuthError, AuthResponseParser as default };