@jetbrains/ring-ui 5.0.155 → 5.0.157

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 (299) hide show
  1. package/components/checkbox/checkbox.css +1 -1
  2. package/components/global/variables_dark.css +2 -2
  3. package/components/radio/radio.css +1 -1
  4. package/dist/_helpers/_rollupPluginBabelHelpers.js +642 -1
  5. package/dist/_helpers/anchor.js +6 -7
  6. package/dist/_helpers/button__classes.js +16 -28
  7. package/dist/_helpers/card.js +107 -95
  8. package/dist/_helpers/dialog__body-scroll-preventer.js +20 -11
  9. package/dist/_helpers/footer.js +29 -34
  10. package/dist/_helpers/query-assist__suggestions.js +91 -74
  11. package/dist/_helpers/select__filter.js +71 -48
  12. package/dist/_helpers/services-link.js +41 -29
  13. package/dist/_helpers/sidebar.js +103 -99
  14. package/dist/_helpers/theme.js +42 -35
  15. package/dist/_helpers/title.js +71 -57
  16. package/dist/alert/alert.js +199 -158
  17. package/dist/alert/container.js +43 -32
  18. package/dist/alert-service/alert-service.js +172 -104
  19. package/dist/analytics/analytics.js +92 -68
  20. package/dist/analytics/analytics__custom-plugin.js +84 -60
  21. package/dist/analytics/analytics__fus-plugin.js +28 -15
  22. package/dist/analytics/analytics__ga-plugin.js +60 -43
  23. package/dist/analytics/analytics__plugin-utils.js +28 -22
  24. package/dist/auth/auth.js +36 -4
  25. package/dist/auth/auth__core.js +1458 -732
  26. package/dist/auth/background-flow.js +129 -87
  27. package/dist/auth/down-notification.js +75 -30
  28. package/dist/auth/iframe-flow.js +136 -75
  29. package/dist/auth/landing.js +90 -30
  30. package/dist/auth/request-builder.js +82 -46
  31. package/dist/auth/response-parser.js +119 -86
  32. package/dist/auth/storage.js +333 -171
  33. package/dist/auth/token-validator.js +244 -137
  34. package/dist/auth/window-flow.js +136 -92
  35. package/dist/auth-dialog/auth-dialog.js +176 -114
  36. package/dist/auth-dialog-service/auth-dialog-service.js +32 -7
  37. package/dist/auth-ng/auth-ng.js +70 -34
  38. package/dist/auth-ng/auth-ng.mock.js +6 -6
  39. package/dist/autofocus-ng/autofocus-ng.js +23 -8
  40. package/dist/avatar/avatar-example-datauri.js +1 -23
  41. package/dist/avatar/avatar.js +155 -119
  42. package/dist/avatar/fallback-avatar.js +41 -22
  43. package/dist/avatar-editor-ng/avatar-editor-ng.js +56 -23
  44. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
  45. package/dist/avatar-ng/avatar-ng.js +23 -1
  46. package/dist/badge/badge.js +43 -35
  47. package/dist/badge-ng/badge-ng.js +13 -1
  48. package/dist/breadcrumb-ng/breadcrumb-ng.js +15 -29
  49. package/dist/button/button.js +111 -87
  50. package/dist/button/button__classes.js +1 -0
  51. package/dist/button-group/button-group.js +35 -19
  52. package/dist/button-group/caption.js +22 -14
  53. package/dist/button-group-ng/button-group-ng.js +13 -7
  54. package/dist/button-ng/button-ng.js +154 -133
  55. package/dist/button-set/button-set.js +34 -20
  56. package/dist/button-set-ng/button-set-ng.js +2 -2
  57. package/dist/button-toolbar/button-toolbar.js +33 -19
  58. package/dist/button-toolbar-ng/button-toolbar-ng.js +5 -3
  59. package/dist/caret/caret.js +225 -188
  60. package/dist/checkbox/checkbox.js +104 -76
  61. package/dist/checkbox-ng/checkbox-ng.js +18 -27
  62. package/dist/clipboard/clipboard-fallback.js +10 -10
  63. package/dist/clipboard/clipboard.js +131 -34
  64. package/dist/code/code.js +168 -92
  65. package/dist/compiler-ng/compiler-ng.js +18 -15
  66. package/dist/confirm/confirm.js +108 -66
  67. package/dist/confirm-ng/confirm-ng.js +33 -4
  68. package/dist/confirm-service/confirm-service.js +66 -42
  69. package/dist/content-layout/content-layout.js +64 -43
  70. package/dist/content-layout/sidebar.js +1 -0
  71. package/dist/contenteditable/contenteditable.js +61 -50
  72. package/dist/control-label/control-label.js +11 -15
  73. package/dist/data-list/data-list.js +184 -128
  74. package/dist/data-list/data-list.mock.js +11 -2
  75. package/dist/data-list/item.js +174 -143
  76. package/dist/data-list/selection.js +139 -76
  77. package/dist/data-list/title.js +13 -1
  78. package/dist/data-list-ng/data-list-ng.js +31 -1
  79. package/dist/date-picker/consts.js +18 -15
  80. package/dist/date-picker/date-input.js +147 -115
  81. package/dist/date-picker/date-picker.js +285 -228
  82. package/dist/date-picker/date-popup.js +397 -356
  83. package/dist/date-picker/day.js +98 -84
  84. package/dist/date-picker/month-names.js +64 -43
  85. package/dist/date-picker/month-slider.js +74 -51
  86. package/dist/date-picker/month.js +21 -15
  87. package/dist/date-picker/months.js +48 -43
  88. package/dist/date-picker/weekdays.js +18 -12
  89. package/dist/date-picker/years.js +109 -84
  90. package/dist/dialog/dialog.js +189 -141
  91. package/dist/dialog/dialog__body-scroll-preventer.js +5 -0
  92. package/dist/dialog-ng/dialog-ng.js +401 -287
  93. package/dist/dialog-ng/dialog-ng__template.js +1 -70
  94. package/dist/docked-panel-ng/docked-panel-ng.js +33 -18
  95. package/dist/dropdown/anchor.js +10 -0
  96. package/dist/dropdown/dropdown.js +214 -182
  97. package/dist/dropdown-menu/dropdown-menu.js +102 -72
  98. package/dist/editable-heading/editable-heading.js +100 -58
  99. package/dist/error-bubble/error-bubble.js +64 -31
  100. package/dist/error-message/error-message.js +61 -38
  101. package/dist/error-message-ng/error-message-ng.js +11 -22
  102. package/dist/footer/footer.js +11 -1
  103. package/dist/footer-ng/footer-ng.js +64 -36
  104. package/dist/form-ng/form-ng.js +66 -56
  105. package/dist/global/angular-component-factory.js +76 -53
  106. package/dist/global/compose.js +10 -1
  107. package/dist/global/composeRefs.js +12 -7
  108. package/dist/global/controls-height.js +2 -2
  109. package/dist/global/create-stateful-context.js +19 -19
  110. package/dist/global/data-tests.js +15 -7
  111. package/dist/global/dom.js +95 -53
  112. package/dist/global/focus-sensor-hoc.js +134 -122
  113. package/dist/global/fuzzy-highlight.js +41 -27
  114. package/dist/global/get-event-key.js +8 -8
  115. package/dist/global/get-uid.js +8 -4
  116. package/dist/global/inject-styles.js +15 -10
  117. package/dist/global/linear-function.js +2 -2
  118. package/dist/global/listeners.js +53 -27
  119. package/dist/global/memoize.js +13 -6
  120. package/dist/global/normalize-indent.js +51 -19
  121. package/dist/global/promise-with-timeout.js +8 -6
  122. package/dist/global/prop-types.js +5 -3
  123. package/dist/global/react-dom-renderer.js +47 -28
  124. package/dist/global/react-render-adapter.js +19 -13
  125. package/dist/global/rerender-hoc.js +41 -16
  126. package/dist/global/ring-angular-component.js +20 -10
  127. package/dist/global/schedule-raf.js +6 -5
  128. package/dist/global/sniffer.js +1 -1
  129. package/dist/global/theme.js +24 -0
  130. package/dist/global/trivial-template-tag.js +10 -3
  131. package/dist/global/typescript-utils.js +6 -2
  132. package/dist/global/url.js +27 -21
  133. package/dist/global/use-event-callback.js +4 -6
  134. package/dist/grid/col.js +55 -35
  135. package/dist/grid/grid.js +36 -17
  136. package/dist/grid/row.js +48 -35
  137. package/dist/group/group.js +27 -17
  138. package/dist/group-ng/group-ng.js +2 -2
  139. package/dist/header/header.js +80 -33
  140. package/dist/header/logo.js +39 -20
  141. package/dist/header/profile.js +188 -150
  142. package/dist/header/services-link.js +9 -0
  143. package/dist/header/services.js +118 -73
  144. package/dist/header/smart-profile.js +207 -111
  145. package/dist/header/smart-services.js +115 -62
  146. package/dist/header/tray-icon.js +38 -21
  147. package/dist/header/tray.js +34 -21
  148. package/dist/heading/heading.js +25 -26
  149. package/dist/heading-ng/heading-ng.js +11 -1
  150. package/dist/http/http.js +368 -215
  151. package/dist/http/http.mock.js +104 -49
  152. package/dist/hub-source/hub-source.js +191 -83
  153. package/dist/hub-source/hub-source__user.js +45 -11
  154. package/dist/hub-source/hub-source__users-groups.js +67 -37
  155. package/dist/i18n/i18n-context.js +14 -10
  156. package/dist/i18n/i18n.js +11 -7
  157. package/dist/icon/icon.js +94 -76
  158. package/dist/icon/icon__svg.js +31 -24
  159. package/dist/icon/index.js +9 -0
  160. package/dist/icon-ng/icon-ng.js +27 -15
  161. package/dist/input/input.js +184 -145
  162. package/dist/input-ng/input-ng.js +96 -118
  163. package/dist/island/adaptive-island-hoc.js +45 -30
  164. package/dist/island/content.js +130 -115
  165. package/dist/island/header.js +69 -56
  166. package/dist/island/island.js +40 -28
  167. package/dist/island-legacy/content-legacy.js +27 -17
  168. package/dist/island-legacy/header-legacy.js +29 -19
  169. package/dist/island-legacy/island-legacy.js +27 -17
  170. package/dist/island-ng/island-content-ng.js +17 -26
  171. package/dist/island-ng/island-header-ng.js +9 -12
  172. package/dist/island-ng/island-ng-class-fixer.js +3 -0
  173. package/dist/island-ng/island-ng.js +6 -10
  174. package/dist/link/clickableLink.js +61 -44
  175. package/dist/link/link.js +85 -74
  176. package/dist/link-ng/link-ng.js +3 -5
  177. package/dist/list/consts.js +1 -1
  178. package/dist/list/list.js +696 -602
  179. package/dist/list/list__custom.js +61 -44
  180. package/dist/list/list__hint.js +21 -10
  181. package/dist/list/list__item.js +167 -129
  182. package/dist/list/list__link.js +54 -37
  183. package/dist/list/list__separator.js +24 -14
  184. package/dist/list/list__title.js +32 -22
  185. package/dist/list/list__users-groups-source.js +131 -54
  186. package/dist/loader/loader.js +78 -43
  187. package/dist/loader/loader__core.js +257 -189
  188. package/dist/loader-inline/loader-inline.js +37 -23
  189. package/dist/loader-inline-ng/loader-inline-ng.js +2 -2
  190. package/dist/loader-ng/loader-ng.js +46 -19
  191. package/dist/loader-screen/loader-screen.js +48 -25
  192. package/dist/loader-screen-ng/loader-screen-ng.js +46 -30
  193. package/dist/login-dialog/login-dialog.js +162 -111
  194. package/dist/login-dialog/service.js +35 -7
  195. package/dist/markdown/code.js +31 -9
  196. package/dist/markdown/heading.js +3 -5
  197. package/dist/markdown/link.js +13 -6
  198. package/dist/markdown/markdown.js +66 -33
  199. package/dist/message/message.js +157 -125
  200. package/dist/message-bundle-ng/message-bundle-ng.js +128 -44
  201. package/dist/old-browsers-message/old-browsers-message.js +19 -11
  202. package/dist/old-browsers-message/old-browsers-message__stop.js +8 -0
  203. package/dist/old-browsers-message/white-list.js +16 -9
  204. package/dist/pager/pager.js +275 -210
  205. package/dist/pager-ng/pager-ng.js +36 -1
  206. package/dist/panel/panel.js +27 -17
  207. package/dist/panel-ng/panel-ng.js +14 -1
  208. package/dist/permissions/permissions.js +173 -127
  209. package/dist/permissions/permissions__cache.js +225 -194
  210. package/dist/permissions-ng/permissions-ng.js +86 -35
  211. package/dist/place-under-ng/place-under-ng.js +68 -45
  212. package/dist/popup/popup.consts.js +1 -1
  213. package/dist/popup/popup.js +342 -280
  214. package/dist/popup/popup.target.js +8 -9
  215. package/dist/popup/position.js +153 -153
  216. package/dist/popup-menu/popup-menu.js +86 -44
  217. package/dist/progress-bar/progress-bar.js +97 -80
  218. package/dist/progress-bar-ng/progress-bar-ng.js +11 -1
  219. package/dist/promised-click-ng/promised-click-ng.js +92 -58
  220. package/dist/proxy-attrs/proxy-attrs.js +18 -9
  221. package/dist/query-assist/query-assist.js +903 -832
  222. package/dist/query-assist/query-assist__suggestions.js +33 -1
  223. package/dist/query-assist-ng/query-assist-ng.js +38 -1
  224. package/dist/radio/radio.js +36 -19
  225. package/dist/radio/radio__item.js +71 -52
  226. package/dist/radio-ng/radio-ng.js +14 -25
  227. package/dist/save-field-ng/save-field-ng.js +86 -52
  228. package/dist/save-field-ng/save-field-ng__template.js +1 -32
  229. package/dist/select/select.js +937 -835
  230. package/dist/select/select__filter.js +33 -0
  231. package/dist/select/select__popup.js +472 -359
  232. package/dist/select-ng/select-ng.js +125 -74
  233. package/dist/select-ng/select-ng__lazy.js +101 -50
  234. package/dist/select-ng/select-ng__options.js +107 -81
  235. package/dist/shortcuts/core.js +218 -166
  236. package/dist/shortcuts/shortcut-title.js +11 -6
  237. package/dist/shortcuts/shortcuts-hoc.js +47 -19
  238. package/dist/shortcuts/shortcuts.js +77 -50
  239. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +104 -53
  240. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
  241. package/dist/shortcuts-ng/shortcuts-ng.js +86 -51
  242. package/dist/sidebar-ng/sidebar-ng.js +53 -22
  243. package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
  244. package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
  245. package/dist/storage/storage.js +35 -4
  246. package/dist/storage/storage__fallback.js +224 -149
  247. package/dist/storage/storage__local.js +156 -90
  248. package/dist/style.css +1 -1
  249. package/dist/tab-trap/tab-trap.js +157 -122
  250. package/dist/table/cell.js +28 -14
  251. package/dist/table/disable-hover-hoc.js +53 -33
  252. package/dist/table/header-cell.js +87 -64
  253. package/dist/table/header.js +126 -98
  254. package/dist/table/multitable.js +127 -107
  255. package/dist/table/row-with-focus-sensor.js +73 -25
  256. package/dist/table/row.js +208 -170
  257. package/dist/table/selection-adapter.js +3 -1
  258. package/dist/table/selection-shortcuts-hoc.js +184 -181
  259. package/dist/table/selection.js +228 -156
  260. package/dist/table/smart-table.js +93 -51
  261. package/dist/table/table.js +348 -281
  262. package/dist/table-legacy-ng/table-legacy-ng.js +117 -102
  263. package/dist/table-legacy-ng/table-legacy-ng__pager.js +42 -10
  264. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +92 -69
  265. package/dist/table-legacy-ng/table-legacy-ng__selection.js +169 -119
  266. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +36 -21
  267. package/dist/table-ng/smart-table-ng.js +31 -1
  268. package/dist/table-ng/table-ng.js +31 -1
  269. package/dist/tabs/collapsible-more.js +87 -50
  270. package/dist/tabs/collapsible-tab.js +45 -38
  271. package/dist/tabs/collapsible-tabs.js +161 -94
  272. package/dist/tabs/custom-item.js +2 -4
  273. package/dist/tabs/dumb-tabs.js +122 -75
  274. package/dist/tabs/smart-tabs.js +75 -29
  275. package/dist/tabs/tab-link.js +29 -19
  276. package/dist/tabs/tab.js +33 -19
  277. package/dist/tabs/tabs.js +35 -0
  278. package/dist/tabs-ng/tabs-ng.js +38 -24
  279. package/dist/tabs-ng/tabs-ng__template.js +1 -38
  280. package/dist/tag/tag.js +170 -133
  281. package/dist/tags-input/tags-input.js +428 -327
  282. package/dist/tags-input-ng/tags-input-ng.js +37 -1
  283. package/dist/tags-list/tags-list.js +80 -56
  284. package/dist/template-ng/template-ng.js +50 -39
  285. package/dist/text/text.js +38 -28
  286. package/dist/title-ng/title-ng.js +28 -23
  287. package/dist/toggle/toggle.js +72 -56
  288. package/dist/toggle-ng/toggle-ng.js +14 -1
  289. package/dist/tooltip/tooltip.js +192 -146
  290. package/dist/tooltip-ng/tooltip-ng.js +51 -25
  291. package/dist/user-agreement/service.js +374 -227
  292. package/dist/user-agreement/toolbox.eula.js +1 -160
  293. package/dist/user-agreement/user-agreement.js +128 -86
  294. package/dist/user-card/card.js +32 -0
  295. package/dist/user-card/smart-user-card-tooltip.js +116 -51
  296. package/dist/user-card/tooltip.js +90 -48
  297. package/dist/user-card/user-card.js +32 -0
  298. package/dist/user-card-ng/user-card-ng.js +34 -2
  299. package/package.json +13 -13
@@ -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 };