@jetbrains/ring-ui 5.0.156 → 5.0.158

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