@jetbrains/ring-ui-built 6.0.31 → 6.0.32

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 (225) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +1 -567
  2. package/components/_helpers/anchor.js +7 -6
  3. package/components/_helpers/button__classes.js +16 -14
  4. package/components/_helpers/caption.js +14 -20
  5. package/components/_helpers/card.js +95 -105
  6. package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
  7. package/components/_helpers/icon__svg.js +22 -25
  8. package/components/_helpers/input.js +146 -177
  9. package/components/_helpers/query-assist__suggestions.js +74 -90
  10. package/components/_helpers/select__filter.js +48 -69
  11. package/components/_helpers/services-link.js +29 -37
  12. package/components/_helpers/sidebar.js +99 -107
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +31 -40
  15. package/components/_helpers/title.js +57 -72
  16. package/components/alert/alert.js +150 -202
  17. package/components/alert/container.js +32 -41
  18. package/components/alert-service/alert-service.js +105 -170
  19. package/components/analytics/analytics.js +12 -22
  20. package/components/analytics/analytics__custom-plugin.js +54 -75
  21. package/components/auth/auth.js +4 -36
  22. package/components/auth/auth__core.js +746 -1471
  23. package/components/auth/background-flow.js +87 -127
  24. package/components/auth/down-notification.js +30 -73
  25. package/components/auth/iframe-flow.js +75 -133
  26. package/components/auth/request-builder.js +46 -82
  27. package/components/auth/response-parser.js +86 -116
  28. package/components/auth/storage.js +171 -334
  29. package/components/auth/token-validator.js +137 -242
  30. package/components/auth/window-flow.js +92 -134
  31. package/components/auth-dialog/auth-dialog.js +114 -172
  32. package/components/auth-dialog-service/auth-dialog-service.js +8 -31
  33. package/components/avatar/avatar-example-datauri.js +23 -1
  34. package/components/avatar/avatar.js +119 -152
  35. package/components/avatar/fallback-avatar.js +22 -38
  36. package/components/badge/badge.js +35 -45
  37. package/components/button/button.js +86 -107
  38. package/components/button-group/button-group.js +19 -33
  39. package/components/button-set/button-set.js +20 -32
  40. package/components/button-toolbar/button-toolbar.js +19 -31
  41. package/components/caret/caret.js +186 -220
  42. package/components/checkbox/checkbox.js +76 -101
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +35 -132
  45. package/components/code/code.js +92 -166
  46. package/components/collapse/collapse-content.js +42 -64
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +12 -14
  49. package/components/collapse/collapse.js +11 -17
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +1 -3
  52. package/components/confirm/confirm.js +66 -104
  53. package/components/confirm-service/confirm-service.js +37 -59
  54. package/components/content-layout/content-layout.js +43 -64
  55. package/components/content-layout/sidebar.js +0 -1
  56. package/components/contenteditable/contenteditable.js +50 -59
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +129 -182
  59. package/components/data-list/data-list.mock.js +2 -6
  60. package/components/data-list/item.js +143 -170
  61. package/components/data-list/selection.js +76 -136
  62. package/components/data-list/title.js +1 -12
  63. package/components/date-picker/consts.js +19 -26
  64. package/components/date-picker/date-input.js +113 -144
  65. package/components/date-picker/date-picker.js +227 -282
  66. package/components/date-picker/date-popup.js +350 -395
  67. package/components/date-picker/day.js +87 -116
  68. package/components/date-picker/month-names.js +43 -66
  69. package/components/date-picker/month-slider.js +51 -76
  70. package/components/date-picker/month.js +16 -25
  71. package/components/date-picker/months.js +43 -50
  72. package/components/date-picker/weekdays.js +12 -22
  73. package/components/date-picker/years.js +83 -110
  74. package/components/dialog/dialog.js +142 -190
  75. package/components/dialog/dialog__body-scroll-preventer.js +0 -4
  76. package/components/dropdown/anchor.js +0 -9
  77. package/components/dropdown/dropdown.js +182 -213
  78. package/components/dropdown-menu/dropdown-menu.js +71 -97
  79. package/components/editable-heading/editable-heading.js +75 -127
  80. package/components/error-bubble/error-bubble.js +31 -60
  81. package/components/error-message/error-message.js +39 -59
  82. package/components/footer/footer.js +27 -30
  83. package/components/global/compose.js +1 -10
  84. package/components/global/composeRefs.js +7 -12
  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 +6 -14
  88. package/components/global/dom.js +47 -86
  89. package/components/global/focus-sensor-hoc.js +122 -132
  90. package/components/global/fuzzy-highlight.js +22 -36
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +4 -8
  93. package/components/global/inject-styles.js +10 -15
  94. package/components/global/listeners.js +27 -51
  95. package/components/global/memoize.js +6 -12
  96. package/components/global/normalize-indent.js +19 -50
  97. package/components/global/promise-with-timeout.js +6 -8
  98. package/components/global/prop-types.js +3 -5
  99. package/components/global/react-dom-renderer.js +28 -44
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +12 -30
  102. package/components/global/schedule-raf.js +5 -6
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +0 -22
  105. package/components/global/trivial-template-tag.js +3 -10
  106. package/components/global/typescript-utils.js +2 -6
  107. package/components/global/url.js +20 -26
  108. package/components/global/use-event-callback.js +6 -4
  109. package/components/grid/col.js +35 -52
  110. package/components/grid/grid.js +17 -31
  111. package/components/grid/row.js +35 -47
  112. package/components/group/group.js +17 -25
  113. package/components/header/header.js +33 -78
  114. package/components/header/logo.js +20 -36
  115. package/components/header/profile.js +166 -199
  116. package/components/header/services-link.js +0 -4
  117. package/components/header/services.js +73 -116
  118. package/components/header/smart-profile.js +111 -203
  119. package/components/header/smart-services.js +62 -113
  120. package/components/header/tray-icon.js +21 -37
  121. package/components/header/tray.js +21 -32
  122. package/components/heading/heading.js +24 -25
  123. package/components/http/http.d.ts +1 -3
  124. package/components/http/http.js +203 -353
  125. package/components/http/http.mock.js +49 -101
  126. package/components/hub-source/hub-source.js +83 -190
  127. package/components/hub-source/hub-source__user.js +11 -44
  128. package/components/hub-source/hub-source__users-groups.js +37 -65
  129. package/components/i18n/i18n-context.js +7 -10
  130. package/components/i18n/i18n.js +7 -10
  131. package/components/icon/icon.js +76 -93
  132. package/components/icon/icon__svg.js +0 -8
  133. package/components/icon/index.js +0 -8
  134. package/components/input/input.js +0 -13
  135. package/components/island/adaptive-island-hoc.js +30 -43
  136. package/components/island/content.js +115 -132
  137. package/components/island/header.js +57 -70
  138. package/components/island/island.js +28 -40
  139. package/components/island-legacy/content-legacy.js +17 -25
  140. package/components/island-legacy/header-legacy.js +19 -27
  141. package/components/island-legacy/island-legacy.js +17 -25
  142. package/components/link/clickableLink.js +44 -59
  143. package/components/link/link.js +57 -68
  144. package/components/list/consts.js +2 -2
  145. package/components/list/list.js +611 -698
  146. package/components/list/list__custom.js +44 -62
  147. package/components/list/list__hint.js +10 -19
  148. package/components/list/list__item.js +133 -174
  149. package/components/list/list__link.js +37 -50
  150. package/components/list/list__separator.js +14 -24
  151. package/components/list/list__title.js +22 -32
  152. package/components/list/list__users-groups-source.js +54 -126
  153. package/components/loader/loader.js +43 -74
  154. package/components/loader/loader__core.js +198 -263
  155. package/components/loader-inline/loader-inline.js +23 -35
  156. package/components/loader-screen/loader-screen.js +25 -46
  157. package/components/login-dialog/login-dialog.js +111 -158
  158. package/components/login-dialog/service.js +8 -34
  159. package/components/markdown/markdown.js +15 -23
  160. package/components/message/message.js +161 -203
  161. package/components/old-browsers-message/old-browsers-message.js +11 -18
  162. package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
  163. package/components/old-browsers-message/white-list.js +8 -16
  164. package/components/pager/pager.js +212 -271
  165. package/components/panel/panel.js +17 -25
  166. package/components/permissions/permissions.js +127 -172
  167. package/components/permissions/permissions__cache.js +194 -224
  168. package/components/popup/popup.consts.js +1 -1
  169. package/components/popup/popup.js +284 -343
  170. package/components/popup/popup.target.js +9 -8
  171. package/components/popup/position.js +96 -106
  172. package/components/popup-menu/popup-menu.js +44 -80
  173. package/components/progress-bar/progress-bar.js +87 -104
  174. package/components/query-assist/query-assist.js +838 -916
  175. package/components/query-assist/query-assist__suggestions.js +1 -30
  176. package/components/radio/radio.js +19 -34
  177. package/components/radio/radio__item.js +52 -69
  178. package/components/select/select.js +852 -957
  179. package/components/select/select__filter.js +0 -30
  180. package/components/select/select__popup.js +373 -487
  181. package/components/shortcuts/core.js +166 -217
  182. package/components/shortcuts/shortcut-title.js +6 -11
  183. package/components/shortcuts/shortcuts-hoc.js +19 -45
  184. package/components/shortcuts/shortcuts.js +50 -75
  185. package/components/slider/slider.js +99 -122
  186. package/components/slider/slider.utils.js +14 -24
  187. package/components/storage/storage.js +4 -33
  188. package/components/storage/storage__fallback.js +149 -224
  189. package/components/storage/storage__local.js +90 -153
  190. package/components/tab-trap/tab-trap.js +122 -153
  191. package/components/table/cell.js +14 -26
  192. package/components/table/disable-hover-hoc.js +33 -51
  193. package/components/table/header-cell.js +64 -89
  194. package/components/table/header.js +104 -132
  195. package/components/table/multitable.js +107 -125
  196. package/components/table/row-with-focus-sensor.js +25 -69
  197. package/components/table/row.js +175 -216
  198. package/components/table/selection-adapter.js +1 -3
  199. package/components/table/selection-shortcuts-hoc.js +180 -181
  200. package/components/table/selection.js +156 -226
  201. package/components/table/smart-table.js +50 -88
  202. package/components/table/table.js +289 -358
  203. package/components/tabs/collapsible-more.js +46 -79
  204. package/components/tabs/collapsible-tab.js +31 -38
  205. package/components/tabs/collapsible-tabs.js +88 -153
  206. package/components/tabs/custom-item.js +4 -2
  207. package/components/tabs/dumb-tabs.js +74 -117
  208. package/components/tabs/smart-tabs.js +29 -69
  209. package/components/tabs/tab-link.js +1 -5
  210. package/components/tabs/tab.js +19 -31
  211. package/components/tabs/tabs.js +0 -31
  212. package/components/tag/tag.js +133 -173
  213. package/components/tags-input/tags-input.js +329 -427
  214. package/components/tags-list/tags-list.js +57 -78
  215. package/components/text/text.js +28 -39
  216. package/components/toggle/toggle.js +56 -70
  217. package/components/tooltip/tooltip.js +146 -190
  218. package/components/user-agreement/service.js +228 -371
  219. package/components/user-agreement/toolbox.eula.js +160 -1
  220. package/components/user-agreement/user-agreement.js +85 -120
  221. package/components/user-card/card.js +0 -29
  222. package/components/user-card/smart-user-card-tooltip.js +51 -111
  223. package/components/user-card/tooltip.js +47 -84
  224. package/components/user-card/user-card.js +0 -29
  225. package/package.json +1 -1
@@ -1,18 +1,10 @@
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.concat.js';
3
- import 'core-js/modules/es.array.index-of.js';
4
- import 'core-js/modules/es.array.iterator.js';
5
- import 'core-js/modules/es.object.to-string.js';
6
- import 'core-js/modules/es.promise.js';
7
- import 'core-js/modules/es.reflect.delete-property.js';
8
- import 'core-js/modules/web.dom-collections.iterator.js';
9
1
  import deepEqual from 'deep-equal';
10
2
 
11
- var DEFAULT_CHECK_DELAY = 3000;
12
- var COOKIE_EXPIRES = 365;
13
- var QUOTA = 4093;
3
+ const DEFAULT_CHECK_DELAY = 3000;
4
+ const COOKIE_EXPIRES = 365;
5
+ const QUOTA = 4093;
14
6
  // eslint-disable-next-line @typescript-eslint/no-magic-numbers
15
- var SECONDS_IN_DAY = 24 * 60 * 60 * 1000;
7
+ const SECONDS_IN_DAY = 24 * 60 * 60 * 1000;
16
8
  /**
17
9
  * @prop {string} cookieName
18
10
  *
@@ -22,14 +14,62 @@ var SECONDS_IN_DAY = 24 * 60 * 60 * 1000;
22
14
  * @return {FallbackStorage}
23
15
  * @constructor
24
16
  */
25
- var FallbackStorage = /*#__PURE__*/function () {
26
- function FallbackStorage() {
27
- var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28
- _classCallCheck(this, FallbackStorage);
29
- _defineProperty(this, "cookieName", void 0);
30
- _defineProperty(this, "checkDelay", void 0);
31
- _defineProperty(this, "expires", void 0);
32
- var session = config.type === 'session';
17
+ class FallbackStorage {
18
+ static DEFAULT_COOKIE_NAME = 'localStorage';
19
+ static DEFAULT_SESSION_COOKIE_NAME = 'sessionStorage';
20
+ static DEFAULT_CHECK_DELAY = DEFAULT_CHECK_DELAY;
21
+ static COOKIE_EXPIRES = COOKIE_EXPIRES;
22
+ /**
23
+ * Maximum storage size
24
+ * @see http://browsercookielimits.squawky.net/
25
+ * @type {number}
26
+ */
27
+ static QUOTA = QUOTA;
28
+ /**
29
+ * @param {string} name
30
+ * @param {string} value
31
+ * @param {number} days
32
+ * @private
33
+ */
34
+ static _createCookie(name, value, days) {
35
+ let date;
36
+ let expires;
37
+ if (days) {
38
+ date = new Date();
39
+ date.setTime(date.getTime() + days * SECONDS_IN_DAY);
40
+ expires = `; expires=${date.toUTCString()}`;
41
+ } else {
42
+ expires = ';';
43
+ }
44
+ document.cookie = `${name}=${value}${expires}; path=/`;
45
+ }
46
+ /**
47
+ *
48
+ * @param {string} name
49
+ * @return {string}
50
+ * @private
51
+ */
52
+ static _readCookie(name) {
53
+ const nameEQ = `${name}=`;
54
+ const cookies = document.cookie.split(';');
55
+ let cookie;
56
+ for (let i = 0; i < cookies.length; i++) {
57
+ cookie = cookies[i];
58
+ while (cookie.charAt(0) === ' ') {
59
+ cookie = cookie.substring(1, cookie.length);
60
+ }
61
+ if (cookie.indexOf(nameEQ) === 0) {
62
+ return cookie.substring(nameEQ.length, cookie.length);
63
+ }
64
+ }
65
+ return undefined;
66
+ }
67
+ cookieName;
68
+ checkDelay;
69
+ expires;
70
+ constructor() {
71
+ let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
72
+ const session = config.type === 'session';
33
73
  this.cookieName = config.cookieName || (session ? FallbackStorage.DEFAULT_SESSION_COOKIE_NAME : FallbackStorage.DEFAULT_COOKIE_NAME);
34
74
  this.checkDelay = config.checkDelay || FallbackStorage.DEFAULT_CHECK_DELAY;
35
75
  this.expires = session ? FallbackStorage.COOKIE_EXPIRES : null;
@@ -38,216 +78,101 @@ var FallbackStorage = /*#__PURE__*/function () {
38
78
  * @return {Promise}
39
79
  * @private
40
80
  */
41
- return _createClass(FallbackStorage, [{
42
- key: "_read",
43
- value: function _read() {
44
- var _this = this;
45
- return new Promise(function (resolve, reject) {
46
- var rawData = FallbackStorage._readCookie(_this.cookieName);
47
- if (rawData != null) {
48
- resolve(JSON.parse(decodeURIComponent(rawData)));
49
- } else {
50
- reject();
51
- }
52
- }).catch(function () {
53
- return {};
54
- });
55
- }
56
- /**
57
- * @param data
58
- * @return {Promise}
59
- * @private
60
- */
61
- }, {
62
- key: "_write",
63
- value: function _write(data) {
64
- var _this2 = this;
65
- return new Promise(function (resolve) {
66
- var stringData = encodeURIComponent(JSON.stringify(data));
67
- FallbackStorage._createCookie(_this2.cookieName, stringData === '{}' ? '' : stringData, _this2.expires);
68
- return resolve(data);
69
- });
70
- }
71
- /**
72
- * @param {string} key
73
- * @return {Promise}
74
- */
75
- }, {
76
- key: "get",
77
- value: function get(key) {
78
- return this._read().then(function (data) {
79
- return data[key] || null;
80
- });
81
- }
82
- /**
83
- * @param {string} key
84
- * @param {object} value
85
- * @return {Promise}
86
- */
87
- }, {
88
- key: "set",
89
- value: (function () {
90
- var _set = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(key, value) {
91
- var data;
92
- return _regeneratorRuntime().wrap(function _callee$(_context) {
93
- while (1) switch (_context.prev = _context.next) {
94
- case 0:
95
- _context.next = 2;
96
- return this._read();
97
- case 2:
98
- data = _context.sent;
99
- if (key) {
100
- if (value != null) {
101
- data[key] = value;
102
- } else {
103
- Reflect.deleteProperty(data, key);
104
- }
105
- }
106
- _context.next = 6;
107
- return this._write(data);
108
- case 6:
109
- return _context.abrupt("return", value);
110
- case 7:
111
- case "end":
112
- return _context.stop();
113
- }
114
- }, _callee, this);
115
- }));
116
- function set(_x, _x2) {
117
- return _set.apply(this, arguments);
118
- }
119
- return set;
120
- }()
121
- /**
122
- * @param {string} key
123
- * @return {Promise}
124
- */
125
- )
126
- }, {
127
- key: "remove",
128
- value: (function () {
129
- var _remove = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(key) {
130
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
131
- while (1) switch (_context2.prev = _context2.next) {
132
- case 0:
133
- _context2.next = 2;
134
- return this.set(key, null);
135
- case 2:
136
- case "end":
137
- return _context2.stop();
138
- }
139
- }, _callee2, this);
140
- }));
141
- function remove(_x3) {
142
- return _remove.apply(this, arguments);
81
+ _read() {
82
+ return new Promise((resolve, reject) => {
83
+ const rawData = FallbackStorage._readCookie(this.cookieName);
84
+ if (rawData != null) {
85
+ resolve(JSON.parse(decodeURIComponent(rawData)));
86
+ } else {
87
+ reject();
143
88
  }
144
- return remove;
145
- }()
146
- /**
147
- *
148
- * @param {function(string, value)} callback
149
- * @return {Promise}
150
- */
151
- )
152
- }, {
153
- key: "each",
154
- value: function each(callback) {
155
- if (typeof callback !== 'function') {
156
- return Promise.reject(new Error('Callback is not a function'));
89
+ }).catch(() => ({}));
90
+ }
91
+ /**
92
+ * @param data
93
+ * @return {Promise}
94
+ * @private
95
+ */
96
+ _write(data) {
97
+ return new Promise(resolve => {
98
+ const stringData = encodeURIComponent(JSON.stringify(data));
99
+ FallbackStorage._createCookie(this.cookieName, stringData === '{}' ? '' : stringData, this.expires);
100
+ return resolve(data);
101
+ });
102
+ }
103
+ /**
104
+ * @param {string} key
105
+ * @return {Promise}
106
+ */
107
+ get(key) {
108
+ return this._read().then(data => data[key] || null);
109
+ }
110
+ /**
111
+ * @param {string} key
112
+ * @param {object} value
113
+ * @return {Promise}
114
+ */
115
+ async set(key, value) {
116
+ const data = await this._read();
117
+ if (key) {
118
+ if (value != null) {
119
+ data[key] = value;
120
+ } else {
121
+ Reflect.deleteProperty(data, key);
157
122
  }
158
- return this._read().then(function (data) {
159
- var promises = [];
160
- for (var key in data) {
161
- if (data.hasOwnProperty(key)) {
162
- promises.push(callback(key, data[key]));
163
- }
164
- }
165
- return Promise.all(promises);
166
- });
167
123
  }
168
- /**
169
- * @param {string} key
170
- * @param {Function} callback
171
- * @return {Function}
172
- */
173
- }, {
174
- key: "on",
175
- value: function on(key, callback) {
176
- var _this3 = this;
177
- var stop = false;
178
- var checkForChange = function checkForChange(oldValue) {
179
- _this3.get(key).then(function (newValue) {
180
- if (stop) {
181
- return;
182
- }
183
- if (!deepEqual(oldValue, newValue)) {
184
- callback(newValue);
185
- }
186
- window.setTimeout(function () {
187
- return checkForChange(oldValue);
188
- }, _this3.checkDelay);
189
- });
190
- };
191
- this.get(key).then(checkForChange);
192
- return function () {
193
- stop = true;
194
- };
124
+ await this._write(data);
125
+ return value;
126
+ }
127
+ /**
128
+ * @param {string} key
129
+ * @return {Promise}
130
+ */
131
+ async remove(key) {
132
+ await this.set(key, null);
133
+ }
134
+ /**
135
+ *
136
+ * @param {function(string, value)} callback
137
+ * @return {Promise}
138
+ */
139
+ each(callback) {
140
+ if (typeof callback !== 'function') {
141
+ return Promise.reject(new Error('Callback is not a function'));
195
142
  }
196
- }], [{
197
- key: "_createCookie",
198
- value:
199
- /**
200
- * @param {string} name
201
- * @param {string} value
202
- * @param {number} days
203
- * @private
204
- */
205
- function _createCookie(name, value, days) {
206
- var date;
207
- var expires;
208
- if (days) {
209
- date = new Date();
210
- date.setTime(date.getTime() + days * SECONDS_IN_DAY);
211
- expires = "; expires=".concat(date.toUTCString());
212
- } else {
213
- expires = ';';
143
+ return this._read().then(data => {
144
+ const promises = [];
145
+ for (const key in data) {
146
+ if (data.hasOwnProperty(key)) {
147
+ promises.push(callback(key, data[key]));
148
+ }
214
149
  }
215
- document.cookie = "".concat(name, "=").concat(value).concat(expires, "; path=/");
216
- }
217
- /**
218
- *
219
- * @param {string} name
220
- * @return {string}
221
- * @private
222
- */
223
- }, {
224
- key: "_readCookie",
225
- value: function _readCookie(name) {
226
- var nameEQ = "".concat(name, "=");
227
- var cookies = document.cookie.split(';');
228
- var cookie;
229
- for (var i = 0; i < cookies.length; i++) {
230
- cookie = cookies[i];
231
- while (cookie.charAt(0) === ' ') {
232
- cookie = cookie.substring(1, cookie.length);
150
+ return Promise.all(promises);
151
+ });
152
+ }
153
+ /**
154
+ * @param {string} key
155
+ * @param {Function} callback
156
+ * @return {Function}
157
+ */
158
+ on(key, callback) {
159
+ let stop = false;
160
+ const checkForChange = oldValue => {
161
+ this.get(key).then(newValue => {
162
+ if (stop) {
163
+ return;
233
164
  }
234
- if (cookie.indexOf(nameEQ) === 0) {
235
- return cookie.substring(nameEQ.length, cookie.length);
165
+ if (!deepEqual(oldValue, newValue)) {
166
+ callback(newValue);
236
167
  }
237
- }
238
- return undefined;
239
- }
240
- }]);
241
- }();
242
- _defineProperty(FallbackStorage, "DEFAULT_COOKIE_NAME", 'localStorage');
243
- _defineProperty(FallbackStorage, "DEFAULT_SESSION_COOKIE_NAME", 'sessionStorage');
244
- _defineProperty(FallbackStorage, "DEFAULT_CHECK_DELAY", DEFAULT_CHECK_DELAY);
245
- _defineProperty(FallbackStorage, "COOKIE_EXPIRES", COOKIE_EXPIRES);
246
- /**
247
- * Maximum storage size
248
- * @see http://browsercookielimits.squawky.net/
249
- * @type {number}
250
- */
251
- _defineProperty(FallbackStorage, "QUOTA", QUOTA);
168
+ window.setTimeout(() => checkForChange(oldValue), this.checkDelay);
169
+ });
170
+ };
171
+ this.get(key).then(checkForChange);
172
+ return () => {
173
+ stop = true;
174
+ };
175
+ }
176
+ }
252
177
 
253
178
  export { FallbackStorage as default };