@jetbrains/ring-ui-built 6.0.32 → 6.0.34

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 (226) 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 +176 -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.d.ts +1 -2
  124. package/components/http/http.js +345 -203
  125. package/components/http/http.mock.d.ts +1 -5
  126. package/components/http/http.mock.js +101 -49
  127. package/components/hub-source/hub-source.js +190 -83
  128. package/components/hub-source/hub-source__user.js +44 -11
  129. package/components/hub-source/hub-source__users-groups.js +65 -37
  130. package/components/i18n/i18n-context.js +10 -7
  131. package/components/i18n/i18n.js +10 -7
  132. package/components/icon/icon.js +93 -76
  133. package/components/icon/icon__svg.js +8 -0
  134. package/components/icon/index.js +8 -0
  135. package/components/input/input.js +13 -0
  136. package/components/island/adaptive-island-hoc.js +43 -30
  137. package/components/island/content.js +132 -115
  138. package/components/island/header.js +70 -57
  139. package/components/island/island.js +40 -28
  140. package/components/island-legacy/content-legacy.js +25 -17
  141. package/components/island-legacy/header-legacy.js +27 -19
  142. package/components/island-legacy/island-legacy.js +25 -17
  143. package/components/link/clickableLink.js +59 -44
  144. package/components/link/link.js +68 -57
  145. package/components/list/consts.js +2 -2
  146. package/components/list/list.js +698 -611
  147. package/components/list/list__custom.js +62 -44
  148. package/components/list/list__hint.js +19 -10
  149. package/components/list/list__item.js +174 -133
  150. package/components/list/list__link.js +50 -37
  151. package/components/list/list__separator.js +24 -14
  152. package/components/list/list__title.js +32 -22
  153. package/components/list/list__users-groups-source.js +126 -54
  154. package/components/loader/loader.js +74 -43
  155. package/components/loader/loader__core.js +263 -198
  156. package/components/loader-inline/loader-inline.js +35 -23
  157. package/components/loader-screen/loader-screen.js +46 -25
  158. package/components/login-dialog/login-dialog.js +158 -111
  159. package/components/login-dialog/service.js +34 -8
  160. package/components/markdown/markdown.js +23 -15
  161. package/components/message/message.js +203 -161
  162. package/components/old-browsers-message/old-browsers-message.js +18 -11
  163. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  164. package/components/old-browsers-message/white-list.js +17 -9
  165. package/components/pager/pager.js +271 -212
  166. package/components/panel/panel.js +25 -17
  167. package/components/permissions/permissions.js +172 -127
  168. package/components/permissions/permissions__cache.js +224 -194
  169. package/components/popup/popup.consts.js +1 -1
  170. package/components/popup/popup.js +343 -284
  171. package/components/popup/popup.target.js +8 -9
  172. package/components/popup/position.js +106 -96
  173. package/components/popup-menu/popup-menu.js +81 -44
  174. package/components/progress-bar/progress-bar.js +104 -87
  175. package/components/query-assist/query-assist.js +916 -838
  176. package/components/query-assist/query-assist__suggestions.js +30 -1
  177. package/components/radio/radio.js +34 -19
  178. package/components/radio/radio__item.js +69 -52
  179. package/components/select/select.js +957 -852
  180. package/components/select/select__filter.js +30 -0
  181. package/components/select/select__popup.js +487 -373
  182. package/components/shortcuts/core.js +217 -166
  183. package/components/shortcuts/shortcut-title.js +11 -6
  184. package/components/shortcuts/shortcuts-hoc.js +45 -19
  185. package/components/shortcuts/shortcuts.js +75 -50
  186. package/components/slider/slider.js +122 -99
  187. package/components/slider/slider.utils.js +24 -14
  188. package/components/storage/storage.js +33 -4
  189. package/components/storage/storage__fallback.js +224 -149
  190. package/components/storage/storage__local.js +153 -90
  191. package/components/tab-trap/tab-trap.js +153 -122
  192. package/components/table/cell.js +26 -14
  193. package/components/table/disable-hover-hoc.js +51 -33
  194. package/components/table/header-cell.js +89 -64
  195. package/components/table/header.js +132 -104
  196. package/components/table/multitable.js +125 -107
  197. package/components/table/row-with-focus-sensor.js +69 -25
  198. package/components/table/row.js +216 -175
  199. package/components/table/selection-adapter.js +3 -1
  200. package/components/table/selection-shortcuts-hoc.js +181 -180
  201. package/components/table/selection.js +226 -156
  202. package/components/table/smart-table.js +88 -50
  203. package/components/table/table.js +358 -289
  204. package/components/tabs/collapsible-more.js +79 -46
  205. package/components/tabs/collapsible-tab.js +38 -31
  206. package/components/tabs/collapsible-tabs.js +153 -88
  207. package/components/tabs/custom-item.js +2 -4
  208. package/components/tabs/dumb-tabs.js +117 -74
  209. package/components/tabs/smart-tabs.js +69 -29
  210. package/components/tabs/tab-link.js +5 -1
  211. package/components/tabs/tab.js +31 -19
  212. package/components/tabs/tabs.js +31 -0
  213. package/components/tag/tag.js +173 -133
  214. package/components/tags-input/tags-input.js +427 -329
  215. package/components/tags-list/tags-list.js +78 -57
  216. package/components/text/text.js +39 -28
  217. package/components/toggle/toggle.js +70 -56
  218. package/components/tooltip/tooltip.js +190 -146
  219. package/components/user-agreement/service.js +371 -228
  220. package/components/user-agreement/toolbox.eula.js +1 -160
  221. package/components/user-agreement/user-agreement.js +120 -85
  222. package/components/user-card/card.js +29 -0
  223. package/components/user-card/smart-user-card-tooltip.js +111 -51
  224. package/components/user-card/tooltip.js +84 -47
  225. package/components/user-card/user-card.js +29 -0
  226. package/package.json +1 -2
@@ -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 };