@jetbrains/ring-ui 5.0.156 → 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 (295) hide show
  1. package/dist/_helpers/_rollupPluginBabelHelpers.js +642 -1
  2. package/dist/_helpers/anchor.js +6 -7
  3. package/dist/_helpers/button__classes.js +16 -28
  4. package/dist/_helpers/card.js +107 -95
  5. package/dist/_helpers/dialog__body-scroll-preventer.js +20 -11
  6. package/dist/_helpers/footer.js +29 -34
  7. package/dist/_helpers/query-assist__suggestions.js +91 -74
  8. package/dist/_helpers/select__filter.js +71 -48
  9. package/dist/_helpers/services-link.js +41 -29
  10. package/dist/_helpers/sidebar.js +103 -99
  11. package/dist/_helpers/theme.js +42 -35
  12. package/dist/_helpers/title.js +71 -57
  13. package/dist/alert/alert.js +199 -158
  14. package/dist/alert/container.js +43 -32
  15. package/dist/alert-service/alert-service.js +172 -104
  16. package/dist/analytics/analytics.js +92 -68
  17. package/dist/analytics/analytics__custom-plugin.js +84 -60
  18. package/dist/analytics/analytics__fus-plugin.js +28 -15
  19. package/dist/analytics/analytics__ga-plugin.js +60 -43
  20. package/dist/analytics/analytics__plugin-utils.js +28 -22
  21. package/dist/auth/auth.js +36 -4
  22. package/dist/auth/auth__core.js +1458 -732
  23. package/dist/auth/background-flow.js +129 -87
  24. package/dist/auth/down-notification.js +75 -30
  25. package/dist/auth/iframe-flow.js +136 -75
  26. package/dist/auth/landing.js +90 -30
  27. package/dist/auth/request-builder.js +82 -46
  28. package/dist/auth/response-parser.js +119 -86
  29. package/dist/auth/storage.js +333 -171
  30. package/dist/auth/token-validator.js +244 -137
  31. package/dist/auth/window-flow.js +136 -92
  32. package/dist/auth-dialog/auth-dialog.js +176 -114
  33. package/dist/auth-dialog-service/auth-dialog-service.js +32 -7
  34. package/dist/auth-ng/auth-ng.js +70 -34
  35. package/dist/auth-ng/auth-ng.mock.js +6 -6
  36. package/dist/autofocus-ng/autofocus-ng.js +23 -8
  37. package/dist/avatar/avatar-example-datauri.js +1 -23
  38. package/dist/avatar/avatar.js +155 -119
  39. package/dist/avatar/fallback-avatar.js +41 -22
  40. package/dist/avatar-editor-ng/avatar-editor-ng.js +56 -23
  41. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
  42. package/dist/avatar-ng/avatar-ng.js +23 -1
  43. package/dist/badge/badge.js +43 -35
  44. package/dist/badge-ng/badge-ng.js +13 -1
  45. package/dist/breadcrumb-ng/breadcrumb-ng.js +15 -29
  46. package/dist/button/button.js +111 -87
  47. package/dist/button/button__classes.js +1 -0
  48. package/dist/button-group/button-group.js +35 -19
  49. package/dist/button-group/caption.js +22 -14
  50. package/dist/button-group-ng/button-group-ng.js +13 -7
  51. package/dist/button-ng/button-ng.js +154 -133
  52. package/dist/button-set/button-set.js +34 -20
  53. package/dist/button-set-ng/button-set-ng.js +2 -2
  54. package/dist/button-toolbar/button-toolbar.js +33 -19
  55. package/dist/button-toolbar-ng/button-toolbar-ng.js +5 -3
  56. package/dist/caret/caret.js +225 -188
  57. package/dist/checkbox/checkbox.js +104 -76
  58. package/dist/checkbox-ng/checkbox-ng.js +18 -27
  59. package/dist/clipboard/clipboard-fallback.js +10 -10
  60. package/dist/clipboard/clipboard.js +131 -34
  61. package/dist/code/code.js +168 -92
  62. package/dist/compiler-ng/compiler-ng.js +18 -15
  63. package/dist/confirm/confirm.js +108 -66
  64. package/dist/confirm-ng/confirm-ng.js +33 -4
  65. package/dist/confirm-service/confirm-service.js +66 -42
  66. package/dist/content-layout/content-layout.js +64 -43
  67. package/dist/content-layout/sidebar.js +1 -0
  68. package/dist/contenteditable/contenteditable.js +61 -50
  69. package/dist/control-label/control-label.js +11 -15
  70. package/dist/data-list/data-list.js +184 -128
  71. package/dist/data-list/data-list.mock.js +11 -2
  72. package/dist/data-list/item.js +174 -143
  73. package/dist/data-list/selection.js +139 -76
  74. package/dist/data-list/title.js +13 -1
  75. package/dist/data-list-ng/data-list-ng.js +31 -1
  76. package/dist/date-picker/consts.js +18 -15
  77. package/dist/date-picker/date-input.js +147 -115
  78. package/dist/date-picker/date-picker.js +285 -228
  79. package/dist/date-picker/date-popup.js +397 -356
  80. package/dist/date-picker/day.js +98 -84
  81. package/dist/date-picker/month-names.js +64 -43
  82. package/dist/date-picker/month-slider.js +74 -51
  83. package/dist/date-picker/month.js +21 -15
  84. package/dist/date-picker/months.js +48 -43
  85. package/dist/date-picker/weekdays.js +18 -12
  86. package/dist/date-picker/years.js +109 -84
  87. package/dist/dialog/dialog.js +189 -141
  88. package/dist/dialog/dialog__body-scroll-preventer.js +5 -0
  89. package/dist/dialog-ng/dialog-ng.js +401 -287
  90. package/dist/dialog-ng/dialog-ng__template.js +1 -70
  91. package/dist/docked-panel-ng/docked-panel-ng.js +33 -18
  92. package/dist/dropdown/anchor.js +10 -0
  93. package/dist/dropdown/dropdown.js +214 -182
  94. package/dist/dropdown-menu/dropdown-menu.js +102 -72
  95. package/dist/editable-heading/editable-heading.js +100 -58
  96. package/dist/error-bubble/error-bubble.js +64 -31
  97. package/dist/error-message/error-message.js +61 -38
  98. package/dist/error-message-ng/error-message-ng.js +11 -22
  99. package/dist/footer/footer.js +11 -1
  100. package/dist/footer-ng/footer-ng.js +64 -36
  101. package/dist/form-ng/form-ng.js +66 -56
  102. package/dist/global/angular-component-factory.js +76 -53
  103. package/dist/global/compose.js +10 -1
  104. package/dist/global/composeRefs.js +12 -7
  105. package/dist/global/controls-height.js +2 -2
  106. package/dist/global/create-stateful-context.js +19 -19
  107. package/dist/global/data-tests.js +15 -7
  108. package/dist/global/dom.js +95 -53
  109. package/dist/global/focus-sensor-hoc.js +134 -122
  110. package/dist/global/fuzzy-highlight.js +41 -27
  111. package/dist/global/get-event-key.js +8 -8
  112. package/dist/global/get-uid.js +8 -4
  113. package/dist/global/inject-styles.js +15 -10
  114. package/dist/global/linear-function.js +2 -2
  115. package/dist/global/listeners.js +53 -27
  116. package/dist/global/memoize.js +13 -6
  117. package/dist/global/normalize-indent.js +51 -19
  118. package/dist/global/promise-with-timeout.js +8 -6
  119. package/dist/global/prop-types.js +5 -3
  120. package/dist/global/react-dom-renderer.js +47 -28
  121. package/dist/global/react-render-adapter.js +19 -13
  122. package/dist/global/rerender-hoc.js +41 -16
  123. package/dist/global/ring-angular-component.js +20 -10
  124. package/dist/global/schedule-raf.js +6 -5
  125. package/dist/global/sniffer.js +1 -1
  126. package/dist/global/theme.js +24 -0
  127. package/dist/global/trivial-template-tag.js +10 -3
  128. package/dist/global/typescript-utils.js +6 -2
  129. package/dist/global/url.js +27 -21
  130. package/dist/global/use-event-callback.js +4 -6
  131. package/dist/grid/col.js +55 -35
  132. package/dist/grid/grid.js +36 -17
  133. package/dist/grid/row.js +48 -35
  134. package/dist/group/group.js +27 -17
  135. package/dist/group-ng/group-ng.js +2 -2
  136. package/dist/header/header.js +80 -33
  137. package/dist/header/logo.js +39 -20
  138. package/dist/header/profile.js +188 -150
  139. package/dist/header/services-link.js +9 -0
  140. package/dist/header/services.js +118 -73
  141. package/dist/header/smart-profile.js +207 -111
  142. package/dist/header/smart-services.js +115 -62
  143. package/dist/header/tray-icon.js +38 -21
  144. package/dist/header/tray.js +34 -21
  145. package/dist/heading/heading.js +25 -26
  146. package/dist/heading-ng/heading-ng.js +11 -1
  147. package/dist/http/http.js +368 -215
  148. package/dist/http/http.mock.js +104 -49
  149. package/dist/hub-source/hub-source.js +191 -83
  150. package/dist/hub-source/hub-source__user.js +45 -11
  151. package/dist/hub-source/hub-source__users-groups.js +67 -37
  152. package/dist/i18n/i18n-context.js +14 -10
  153. package/dist/i18n/i18n.js +11 -7
  154. package/dist/icon/icon.js +94 -76
  155. package/dist/icon/icon__svg.js +31 -24
  156. package/dist/icon/index.js +9 -0
  157. package/dist/icon-ng/icon-ng.js +27 -15
  158. package/dist/input/input.js +184 -145
  159. package/dist/input-ng/input-ng.js +96 -118
  160. package/dist/island/adaptive-island-hoc.js +45 -30
  161. package/dist/island/content.js +130 -115
  162. package/dist/island/header.js +69 -56
  163. package/dist/island/island.js +40 -28
  164. package/dist/island-legacy/content-legacy.js +27 -17
  165. package/dist/island-legacy/header-legacy.js +29 -19
  166. package/dist/island-legacy/island-legacy.js +27 -17
  167. package/dist/island-ng/island-content-ng.js +17 -26
  168. package/dist/island-ng/island-header-ng.js +9 -12
  169. package/dist/island-ng/island-ng-class-fixer.js +3 -0
  170. package/dist/island-ng/island-ng.js +6 -10
  171. package/dist/link/clickableLink.js +61 -44
  172. package/dist/link/link.js +85 -74
  173. package/dist/link-ng/link-ng.js +3 -5
  174. package/dist/list/consts.js +1 -1
  175. package/dist/list/list.js +696 -602
  176. package/dist/list/list__custom.js +61 -44
  177. package/dist/list/list__hint.js +21 -10
  178. package/dist/list/list__item.js +167 -129
  179. package/dist/list/list__link.js +54 -37
  180. package/dist/list/list__separator.js +24 -14
  181. package/dist/list/list__title.js +32 -22
  182. package/dist/list/list__users-groups-source.js +131 -54
  183. package/dist/loader/loader.js +78 -43
  184. package/dist/loader/loader__core.js +257 -189
  185. package/dist/loader-inline/loader-inline.js +37 -23
  186. package/dist/loader-inline-ng/loader-inline-ng.js +2 -2
  187. package/dist/loader-ng/loader-ng.js +46 -19
  188. package/dist/loader-screen/loader-screen.js +48 -25
  189. package/dist/loader-screen-ng/loader-screen-ng.js +46 -30
  190. package/dist/login-dialog/login-dialog.js +162 -111
  191. package/dist/login-dialog/service.js +35 -7
  192. package/dist/markdown/code.js +31 -9
  193. package/dist/markdown/heading.js +3 -5
  194. package/dist/markdown/link.js +13 -6
  195. package/dist/markdown/markdown.js +66 -33
  196. package/dist/message/message.js +157 -125
  197. package/dist/message-bundle-ng/message-bundle-ng.js +128 -44
  198. package/dist/old-browsers-message/old-browsers-message.js +19 -11
  199. package/dist/old-browsers-message/old-browsers-message__stop.js +8 -0
  200. package/dist/old-browsers-message/white-list.js +16 -9
  201. package/dist/pager/pager.js +275 -210
  202. package/dist/pager-ng/pager-ng.js +36 -1
  203. package/dist/panel/panel.js +27 -17
  204. package/dist/panel-ng/panel-ng.js +14 -1
  205. package/dist/permissions/permissions.js +173 -127
  206. package/dist/permissions/permissions__cache.js +225 -194
  207. package/dist/permissions-ng/permissions-ng.js +86 -35
  208. package/dist/place-under-ng/place-under-ng.js +68 -45
  209. package/dist/popup/popup.consts.js +1 -1
  210. package/dist/popup/popup.js +342 -280
  211. package/dist/popup/popup.target.js +8 -9
  212. package/dist/popup/position.js +153 -153
  213. package/dist/popup-menu/popup-menu.js +86 -44
  214. package/dist/progress-bar/progress-bar.js +97 -80
  215. package/dist/progress-bar-ng/progress-bar-ng.js +11 -1
  216. package/dist/promised-click-ng/promised-click-ng.js +92 -58
  217. package/dist/proxy-attrs/proxy-attrs.js +18 -9
  218. package/dist/query-assist/query-assist.js +903 -832
  219. package/dist/query-assist/query-assist__suggestions.js +33 -1
  220. package/dist/query-assist-ng/query-assist-ng.js +38 -1
  221. package/dist/radio/radio.js +36 -19
  222. package/dist/radio/radio__item.js +71 -52
  223. package/dist/radio-ng/radio-ng.js +14 -25
  224. package/dist/save-field-ng/save-field-ng.js +86 -52
  225. package/dist/save-field-ng/save-field-ng__template.js +1 -32
  226. package/dist/select/select.js +937 -835
  227. package/dist/select/select__filter.js +33 -0
  228. package/dist/select/select__popup.js +472 -359
  229. package/dist/select-ng/select-ng.js +125 -74
  230. package/dist/select-ng/select-ng__lazy.js +101 -50
  231. package/dist/select-ng/select-ng__options.js +107 -81
  232. package/dist/shortcuts/core.js +218 -166
  233. package/dist/shortcuts/shortcut-title.js +11 -6
  234. package/dist/shortcuts/shortcuts-hoc.js +47 -19
  235. package/dist/shortcuts/shortcuts.js +77 -50
  236. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +104 -53
  237. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
  238. package/dist/shortcuts-ng/shortcuts-ng.js +86 -51
  239. package/dist/sidebar-ng/sidebar-ng.js +53 -22
  240. package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
  241. package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
  242. package/dist/storage/storage.js +35 -4
  243. package/dist/storage/storage__fallback.js +224 -149
  244. package/dist/storage/storage__local.js +156 -90
  245. package/dist/tab-trap/tab-trap.js +157 -122
  246. package/dist/table/cell.js +28 -14
  247. package/dist/table/disable-hover-hoc.js +53 -33
  248. package/dist/table/header-cell.js +87 -64
  249. package/dist/table/header.js +126 -98
  250. package/dist/table/multitable.js +127 -107
  251. package/dist/table/row-with-focus-sensor.js +73 -25
  252. package/dist/table/row.js +208 -170
  253. package/dist/table/selection-adapter.js +3 -1
  254. package/dist/table/selection-shortcuts-hoc.js +184 -181
  255. package/dist/table/selection.js +228 -156
  256. package/dist/table/smart-table.js +93 -51
  257. package/dist/table/table.js +348 -281
  258. package/dist/table-legacy-ng/table-legacy-ng.js +117 -102
  259. package/dist/table-legacy-ng/table-legacy-ng__pager.js +42 -10
  260. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +92 -69
  261. package/dist/table-legacy-ng/table-legacy-ng__selection.js +169 -119
  262. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +36 -21
  263. package/dist/table-ng/smart-table-ng.js +31 -1
  264. package/dist/table-ng/table-ng.js +31 -1
  265. package/dist/tabs/collapsible-more.js +87 -50
  266. package/dist/tabs/collapsible-tab.js +45 -38
  267. package/dist/tabs/collapsible-tabs.js +161 -94
  268. package/dist/tabs/custom-item.js +2 -4
  269. package/dist/tabs/dumb-tabs.js +122 -75
  270. package/dist/tabs/smart-tabs.js +75 -29
  271. package/dist/tabs/tab-link.js +29 -19
  272. package/dist/tabs/tab.js +33 -19
  273. package/dist/tabs/tabs.js +35 -0
  274. package/dist/tabs-ng/tabs-ng.js +38 -24
  275. package/dist/tabs-ng/tabs-ng__template.js +1 -38
  276. package/dist/tag/tag.js +170 -133
  277. package/dist/tags-input/tags-input.js +428 -327
  278. package/dist/tags-input-ng/tags-input-ng.js +37 -1
  279. package/dist/tags-list/tags-list.js +80 -56
  280. package/dist/template-ng/template-ng.js +50 -39
  281. package/dist/text/text.js +38 -28
  282. package/dist/title-ng/title-ng.js +28 -23
  283. package/dist/toggle/toggle.js +72 -56
  284. package/dist/toggle-ng/toggle-ng.js +14 -1
  285. package/dist/tooltip/tooltip.js +192 -146
  286. package/dist/tooltip-ng/tooltip-ng.js +51 -25
  287. package/dist/user-agreement/service.js +374 -227
  288. package/dist/user-agreement/toolbox.eula.js +1 -160
  289. package/dist/user-agreement/user-agreement.js +128 -86
  290. package/dist/user-card/card.js +32 -0
  291. package/dist/user-card/smart-user-card-tooltip.js +116 -51
  292. package/dist/user-card/tooltip.js +90 -48
  293. package/dist/user-card/user-card.js +32 -0
  294. package/dist/user-card-ng/user-card-ng.js +34 -2
  295. package/package.json +2 -2
@@ -1,3 +1,9 @@
1
+ import { _ as _createClass, b as _classCallCheck, c as _defineProperty, e as _asyncToGenerator, a as _objectSpread2, f as _regeneratorRuntime, l as _slicedToArray } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.iterator.js';
3
+ import 'core-js/modules/es.object.to-string.js';
4
+ import 'core-js/modules/es.promise.js';
5
+ import 'core-js/modules/es.string.iterator.js';
6
+ import 'core-js/modules/web.dom-collections.iterator.js';
1
7
  import React from 'react';
2
8
  import { render, unmountComponentAtNode } from '../global/react-render-adapter.js';
3
9
  import ActualStorage from '../storage/storage.js';
@@ -7,10 +13,15 @@ import Alert from '../alert/alert.js';
7
13
  import Group from '../group/group.js';
8
14
  import { ControlsHeightContext, getGlobalControlsHeight } from '../global/controls-height.js';
9
15
  import UserAgreement from './user-agreement.js';
16
+ import 'core-js/modules/es.weak-map.js';
10
17
  import 'react-dom';
11
18
  import '../storage/storage__local.js';
12
- import '../_helpers/_rollupPluginBabelHelpers.js';
19
+ import 'core-js/modules/es.array.map.js';
20
+ import 'core-js/modules/es.array.filter.js';
21
+ import 'core-js/modules/es.array.concat.js';
13
22
  import '../global/get-uid.js';
23
+ import 'core-js/modules/es.regexp.to-string.js';
24
+ import 'core-js/modules/es.object.values.js';
14
25
  import 'classnames';
15
26
  import 'prop-types';
16
27
  import '@jetbrains/icons/exception';
@@ -22,11 +33,22 @@ import 'util-deprecate';
22
33
  import '../icon/icon__constants.js';
23
34
  import '../_helpers/icon.js';
24
35
  import '../icon/icon__svg.js';
36
+ import 'core-js/modules/es.regexp.exec.js';
37
+ import 'core-js/modules/es.string.replace.js';
38
+ import 'core-js/modules/es.string.starts-with.js';
25
39
  import '../global/memoize.js';
40
+ import 'core-js/modules/es.map.js';
26
41
  import '../loader-inline/loader-inline.js';
27
42
  import '../global/data-tests.js';
43
+ import 'core-js/modules/es.array.reduce.js';
44
+ import 'core-js/modules/es.object.entries.js';
28
45
  import '../_helpers/loader-inline.js';
29
46
  import '../global/dom.js';
47
+ import 'core-js/modules/es.object.assign.js';
48
+ import 'core-js/modules/web.dom-collections.for-each.js';
49
+ import 'core-js/modules/es.string.split.js';
50
+ import 'core-js/modules/es.object.keys.js';
51
+ import 'core-js/modules/es.set.js';
30
52
  import '../button/button.js';
31
53
  import '@jetbrains/icons/chevron-10px';
32
54
  import '../link/clickableLink.js';
@@ -37,14 +59,23 @@ import '../popup/popup.js';
37
59
  import '../global/schedule-raf.js';
38
60
  import '../shortcuts/shortcuts.js';
39
61
  import '../shortcuts/core.js';
62
+ import 'core-js/modules/es.array.includes.js';
63
+ import 'core-js/modules/es.string.includes.js';
64
+ import 'core-js/modules/es.array.slice.js';
65
+ import 'core-js/modules/es.array.splice.js';
66
+ import 'core-js/modules/es.string.match.js';
67
+ import 'core-js/modules/es.array.find-index.js';
40
68
  import 'combokeys';
41
69
  import '../global/sniffer.js';
42
70
  import 'sniffr';
43
71
  import '../tab-trap/tab-trap.js';
44
72
  import '../popup/position.js';
73
+ import 'core-js/modules/es.array.sort.js';
45
74
  import '../popup/popup.consts.js';
46
75
  import '../alert/container.js';
47
76
  import '../storage/storage__fallback.js';
77
+ import 'core-js/modules/es.reflect.delete-property.js';
78
+ import 'core-js/modules/es.array.index-of.js';
48
79
  import 'deep-equal';
49
80
  import '../_helpers/link.js';
50
81
  import '../_helpers/group.js';
@@ -65,8 +96,10 @@ import 'react-markdown';
65
96
  import 'remark-breaks';
66
97
  import 'remark-gfm';
67
98
  import '../global/normalize-indent.js';
99
+ import 'core-js/modules/es.array.reverse.js';
68
100
  import '../global/trivial-template-tag.js';
69
101
  import '../markdown/code.js';
102
+ import 'core-js/modules/es.array.find.js';
70
103
  import '../code/code.js';
71
104
  import 'highlight.js/lib/core';
72
105
  import '../markdown/link.js';
@@ -75,285 +108,399 @@ import '../heading/heading.js';
75
108
  import '../i18n/i18n-context.js';
76
109
  import '../i18n/i18n.js';
77
110
 
78
- const GUEST_SESSION_KEY = 'end-user-agreement-consent';
79
- const ONE_HOUR = 60 * 60 * 1000; // eslint-disable-line @typescript-eslint/no-magic-numbers
80
- const storageKey = 'userAgreementKey';
81
- const showMessage = 'userAgreementShow';
82
- const hideMessage = 'userAgreementHide';
83
- const DEFAULT_CONSENT = {
111
+ var GUEST_SESSION_KEY = 'end-user-agreement-consent';
112
+ var ONE_HOUR = 60 * 60 * 1000; // eslint-disable-line @typescript-eslint/no-magic-numbers
113
+ var storageKey = 'userAgreementKey';
114
+ var showMessage = 'userAgreementShow';
115
+ var hideMessage = 'userAgreementHide';
116
+ var DEFAULT_CONSENT = {
84
117
  accepted: false,
85
118
  majorVersion: 0,
86
119
  minorVersion: 0
87
120
  };
88
- const DEFAULT_AGREEMENT = {
121
+ var DEFAULT_AGREEMENT = {
89
122
  enabled: false,
90
123
  majorVersion: 0,
91
124
  minorVersion: 0,
92
125
  requiredForREST: false,
93
126
  text: ''
94
127
  };
95
- class UserAgreementService {
96
- config;
97
- constructor(config) {
98
- if (!config) {
99
- throw new Error('Please pass a config to UserAgreementService');
100
- }
101
- if (!config.getUserAgreement) {
102
- throw new Error('Please pass a "getUserAgreement" option to UserAgreementService');
103
- }
104
- if (!config.getUserConsent) {
105
- throw new Error('Please pass a "getUserConsent" option to UserAgreementService');
106
- }
107
- if (!config.setUserConsent) {
108
- throw new Error('Please pass a "setUserConsent" option to UserAgreementService');
109
- }
110
- this.config = config;
111
- this.interval = config.interval || this.interval;
112
- }
113
- _dialogPromise = null;
114
- _alertPromise = null;
115
- tabId = Math.random();
116
- interval = ONE_HOUR;
117
- container = document.createElement('div');
118
- storage = new ActualStorage();
119
- checkingPromise = null;
120
- guest = false;
121
- userAgreement = DEFAULT_AGREEMENT;
122
- userConsent = DEFAULT_CONSENT;
123
- intervalId;
124
- startChecking = () => {
125
- this.intervalId = window.setInterval(this.checkConsentAndShowDialog, this.interval);
126
- window.addEventListener('storage', this.onStorageEvent);
127
- this.checkConsentAndShowDialog();
128
- };
129
- stopChecking = () => {
130
- clearInterval(this.intervalId);
131
- window.removeEventListener('storage', this.onStorageEvent);
132
- this.hideDialog();
133
- };
134
- onStorageEvent = event => {
128
+ var UserAgreementService = /*#__PURE__*/_createClass(function UserAgreementService(config) {
129
+ var _this = this;
130
+ _classCallCheck(this, UserAgreementService);
131
+ _defineProperty(this, "config", void 0);
132
+ _defineProperty(this, "_dialogPromise", null);
133
+ _defineProperty(this, "_alertPromise", null);
134
+ _defineProperty(this, "tabId", Math.random());
135
+ _defineProperty(this, "interval", ONE_HOUR);
136
+ _defineProperty(this, "container", document.createElement('div'));
137
+ _defineProperty(this, "storage", new ActualStorage());
138
+ _defineProperty(this, "checkingPromise", null);
139
+ _defineProperty(this, "guest", false);
140
+ _defineProperty(this, "userAgreement", DEFAULT_AGREEMENT);
141
+ _defineProperty(this, "userConsent", DEFAULT_CONSENT);
142
+ _defineProperty(this, "intervalId", void 0);
143
+ _defineProperty(this, "startChecking", function () {
144
+ _this.intervalId = window.setInterval(_this.checkConsentAndShowDialog, _this.interval);
145
+ window.addEventListener('storage', _this.onStorageEvent);
146
+ _this.checkConsentAndShowDialog();
147
+ });
148
+ _defineProperty(this, "stopChecking", function () {
149
+ clearInterval(_this.intervalId);
150
+ window.removeEventListener('storage', _this.onStorageEvent);
151
+ _this.hideDialog();
152
+ });
153
+ _defineProperty(this, "onStorageEvent", function (event) {
135
154
  if (event.key === storageKey && event.newValue != null) {
136
- const {
137
- tabId,
138
- command
139
- } = JSON.parse(event.newValue);
140
- if (tabId !== this.tabId) {
155
+ var _JSON$parse = JSON.parse(event.newValue),
156
+ tabId = _JSON$parse.tabId,
157
+ command = _JSON$parse.command;
158
+ if (tabId !== _this.tabId) {
141
159
  if (command === showMessage) {
142
- this.checkConsentAndShowDialog(true);
160
+ _this.checkConsentAndShowDialog(true);
143
161
  } else if (command === hideMessage) {
144
- this.hideDialogAndAlert(true);
162
+ _this.hideDialogAndAlert(true);
145
163
  }
146
164
  }
147
165
  }
148
- };
149
- _notifyAboutShowing = () => {
166
+ });
167
+ _defineProperty(this, "_notifyAboutShowing", function () {
150
168
  localStorage.setItem(storageKey, JSON.stringify({
151
169
  command: showMessage,
152
- tabId: this.tabId
170
+ tabId: _this.tabId
153
171
  }));
154
- };
155
- _notifyAboutHiding = () => {
172
+ });
173
+ _defineProperty(this, "_notifyAboutHiding", function () {
156
174
  localStorage.setItem(storageKey, JSON.stringify({
157
175
  command: hideMessage,
158
- tabId: this.tabId
176
+ tabId: _this.tabId
159
177
  }));
160
- };
161
- getUserAgreement = async () => {
162
- this.userAgreement = (await this.config.getUserAgreement()) || DEFAULT_AGREEMENT;
163
- return this.userAgreement;
164
- };
165
- getUserConsent = async () => {
166
- const {
167
- guest,
168
- endUserAgreementConsent
169
- } = await this.config.getUserConsent();
170
- this.guest = guest;
171
- if (guest) {
172
- this.userConsent = (await this.storage.get(GUEST_SESSION_KEY)) || this.userConsent;
173
- } else {
174
- this.userConsent = endUserAgreementConsent || this.userConsent;
175
- }
176
- return this.userConsent;
177
- };
178
- checkConsentAndShowDialog = async withoutNotifications => {
179
- if (await this.checkConsent()) {
180
- return this.hideDialogAndAlert(withoutNotifications);
181
- } else {
182
- return this.showDialogOrAlert(withoutNotifications);
183
- }
184
- };
185
- checkConsent = async () => {
186
- if (!this.checkingPromise) {
187
- this.checkingPromise = Promise.all([this.getUserAgreement(), this.getUserConsent()]);
188
- }
189
- const [userAgreement, userConsent] = await this.checkingPromise;
190
- this.checkingPromise = null;
191
- const {
192
- enabled,
193
- majorVersion: actualVersion
194
- } = userAgreement;
195
- const {
196
- accepted,
197
- majorVersion: acceptedVersion
198
- } = userConsent;
199
- return !enabled || accepted && actualVersion === acceptedVersion;
200
- };
201
- alertKey;
202
- showAlert = withoutNotifications => {
203
- if (this._alertPromise) {
204
- return this._alertPromise;
178
+ });
179
+ _defineProperty(this, "getUserAgreement", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
180
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
181
+ while (1) switch (_context.prev = _context.next) {
182
+ case 0:
183
+ _context.next = 2;
184
+ return _this.config.getUserAgreement();
185
+ case 2:
186
+ _context.t0 = _context.sent;
187
+ if (_context.t0) {
188
+ _context.next = 5;
189
+ break;
190
+ }
191
+ _context.t0 = DEFAULT_AGREEMENT;
192
+ case 5:
193
+ _this.userAgreement = _context.t0;
194
+ return _context.abrupt("return", _this.userAgreement);
195
+ case 7:
196
+ case "end":
197
+ return _context.stop();
198
+ }
199
+ }, _callee);
200
+ })));
201
+ _defineProperty(this, "getUserConsent", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
202
+ var _yield$_this$config$g, guest, endUserAgreementConsent;
203
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
204
+ while (1) switch (_context2.prev = _context2.next) {
205
+ case 0:
206
+ _context2.next = 2;
207
+ return _this.config.getUserConsent();
208
+ case 2:
209
+ _yield$_this$config$g = _context2.sent;
210
+ guest = _yield$_this$config$g.guest;
211
+ endUserAgreementConsent = _yield$_this$config$g.endUserAgreementConsent;
212
+ _this.guest = guest;
213
+ if (!guest) {
214
+ _context2.next = 15;
215
+ break;
216
+ }
217
+ _context2.next = 9;
218
+ return _this.storage.get(GUEST_SESSION_KEY);
219
+ case 9:
220
+ _context2.t0 = _context2.sent;
221
+ if (_context2.t0) {
222
+ _context2.next = 12;
223
+ break;
224
+ }
225
+ _context2.t0 = _this.userConsent;
226
+ case 12:
227
+ _this.userConsent = _context2.t0;
228
+ _context2.next = 16;
229
+ break;
230
+ case 15:
231
+ _this.userConsent = endUserAgreementConsent || _this.userConsent;
232
+ case 16:
233
+ return _context2.abrupt("return", _this.userConsent);
234
+ case 17:
235
+ case "end":
236
+ return _context2.stop();
237
+ }
238
+ }, _callee2);
239
+ })));
240
+ _defineProperty(this, "checkConsentAndShowDialog", /*#__PURE__*/function () {
241
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(withoutNotifications) {
242
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
243
+ while (1) switch (_context3.prev = _context3.next) {
244
+ case 0:
245
+ _context3.next = 2;
246
+ return _this.checkConsent();
247
+ case 2:
248
+ if (!_context3.sent) {
249
+ _context3.next = 6;
250
+ break;
251
+ }
252
+ return _context3.abrupt("return", _this.hideDialogAndAlert(withoutNotifications));
253
+ case 6:
254
+ return _context3.abrupt("return", _this.showDialogOrAlert(withoutNotifications));
255
+ case 7:
256
+ case "end":
257
+ return _context3.stop();
258
+ }
259
+ }, _callee3);
260
+ }));
261
+ return function (_x) {
262
+ return _ref3.apply(this, arguments);
263
+ };
264
+ }());
265
+ _defineProperty(this, "checkConsent", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
266
+ var _yield$_this$checking, _yield$_this$checking2, userAgreement, userConsent, enabled, actualVersion, accepted, acceptedVersion;
267
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
268
+ while (1) switch (_context4.prev = _context4.next) {
269
+ case 0:
270
+ if (!_this.checkingPromise) {
271
+ _this.checkingPromise = Promise.all([_this.getUserAgreement(), _this.getUserConsent()]);
272
+ }
273
+ _context4.next = 3;
274
+ return _this.checkingPromise;
275
+ case 3:
276
+ _yield$_this$checking = _context4.sent;
277
+ _yield$_this$checking2 = _slicedToArray(_yield$_this$checking, 2);
278
+ userAgreement = _yield$_this$checking2[0];
279
+ userConsent = _yield$_this$checking2[1];
280
+ _this.checkingPromise = null;
281
+ enabled = userAgreement.enabled, actualVersion = userAgreement.majorVersion;
282
+ accepted = userConsent.accepted, acceptedVersion = userConsent.majorVersion;
283
+ return _context4.abrupt("return", !enabled || accepted && actualVersion === acceptedVersion);
284
+ case 11:
285
+ case "end":
286
+ return _context4.stop();
287
+ }
288
+ }, _callee4);
289
+ })));
290
+ _defineProperty(this, "alertKey", void 0);
291
+ _defineProperty(this, "showAlert", function (withoutNotifications) {
292
+ if (_this._alertPromise) {
293
+ return _this._alertPromise;
205
294
  }
206
- this._alertPromise = new Promise((resolve, reject) => {
207
- const {
208
- userAgreement,
209
- reviewNow,
210
- remindLater
211
- } = this.config.translations || {};
212
- const onRemind = () => {
213
- this.hideDialogAndAlert(withoutNotifications);
295
+ _this._alertPromise = new Promise(function (resolve, reject) {
296
+ var _ref5 = _this.config.translations || {},
297
+ userAgreement = _ref5.userAgreement,
298
+ reviewNow = _ref5.reviewNow,
299
+ remindLater = _ref5.remindLater;
300
+ var onRemind = function onRemind() {
301
+ _this.hideDialogAndAlert(withoutNotifications);
214
302
  reject('Postponed');
215
303
  };
216
- const onReview = async () => {
217
- await this.showDialog(true, false, {
218
- onRemindLater: onRemind
219
- });
220
- this.hideAlert(withoutNotifications);
221
- resolve();
222
- };
223
- const message = /*#__PURE__*/React.createElement(Group, null, /*#__PURE__*/React.createElement("span", null, userAgreement || 'User Agreement'), /*#__PURE__*/React.createElement(Link, {
304
+ var onReview = /*#__PURE__*/function () {
305
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
306
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
307
+ while (1) switch (_context5.prev = _context5.next) {
308
+ case 0:
309
+ _context5.next = 2;
310
+ return _this.showDialog(true, false, {
311
+ onRemindLater: onRemind
312
+ });
313
+ case 2:
314
+ _this.hideAlert(withoutNotifications);
315
+ resolve();
316
+ case 4:
317
+ case "end":
318
+ return _context5.stop();
319
+ }
320
+ }, _callee5);
321
+ }));
322
+ return function onReview() {
323
+ return _ref6.apply(this, arguments);
324
+ };
325
+ }();
326
+ var message = /*#__PURE__*/React.createElement(Group, null, /*#__PURE__*/React.createElement("span", null, userAgreement || 'User Agreement'), /*#__PURE__*/React.createElement(Link, {
224
327
  onClick: onReview,
225
328
  "data-test": "review"
226
329
  }, reviewNow || 'Review now'), /*#__PURE__*/React.createElement(Link, {
227
330
  onClick: onRemind,
228
331
  "data-test": "later"
229
332
  }, remindLater || 'Remind me later'));
230
- this.alertKey = alertService.addAlert(message, Alert.Type.WARNING, 0, {
333
+ _this.alertKey = alertService.addAlert(message, Alert.Type.WARNING, 0, {
231
334
  closeable: false
232
335
  });
233
336
  });
234
337
  if (!withoutNotifications) {
235
- this._notifyAboutShowing();
338
+ _this._notifyAboutShowing();
236
339
  }
237
- return this._alertPromise;
238
- };
239
- hideAlert = withoutNotifications => {
240
- const {
241
- onRemindLater
242
- } = this.config;
243
- alertService.remove(this.alertKey);
244
- this.alertKey = null;
245
- this._alertPromise = null;
340
+ return _this._alertPromise;
341
+ });
342
+ _defineProperty(this, "hideAlert", function (withoutNotifications) {
343
+ var onRemindLater = _this.config.onRemindLater;
344
+ alertService.remove(_this.alertKey);
345
+ _this.alertKey = null;
346
+ _this._alertPromise = null;
246
347
  if (onRemindLater) {
247
348
  onRemindLater();
248
349
  }
249
350
  if (!withoutNotifications) {
250
- this._notifyAboutHiding();
351
+ _this._notifyAboutHiding();
251
352
  }
252
- };
253
- showDialog = (() => {
254
- var _this = this;
255
- return function (withoutNotifications) {
256
- let preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
257
- let restOptions = arguments.length > 2 ? arguments[2] : undefined;
258
- const {
259
- translations,
260
- onDialogShow
261
- } = _this.config;
262
- const {
263
- text
264
- } = _this.userAgreement;
265
- const show = true;
266
- if (!_this._dialogPromise) {
267
- _this._dialogPromise = new Promise((resolve, reject) => {
268
- const onAccept = async () => {
269
- await _this.onAccept();
270
- resolve();
271
- };
272
- const onDecline = async () => {
273
- await _this.onDecline();
274
- reject();
353
+ });
354
+ _defineProperty(this, "showDialog", function (withoutNotifications) {
355
+ var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
356
+ var restOptions = arguments.length > 2 ? arguments[2] : undefined;
357
+ var _this$config = _this.config,
358
+ translations = _this$config.translations,
359
+ onDialogShow = _this$config.onDialogShow;
360
+ var text = _this.userAgreement.text;
361
+ var show = true;
362
+ if (!_this._dialogPromise) {
363
+ _this._dialogPromise = new Promise(function (resolve, reject) {
364
+ var onAccept = /*#__PURE__*/function () {
365
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
366
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
367
+ while (1) switch (_context6.prev = _context6.next) {
368
+ case 0:
369
+ _context6.next = 2;
370
+ return _this.onAccept();
371
+ case 2:
372
+ resolve();
373
+ case 3:
374
+ case "end":
375
+ return _context6.stop();
376
+ }
377
+ }, _callee6);
378
+ }));
379
+ return function onAccept() {
380
+ return _ref7.apply(this, arguments);
275
381
  };
276
- const onClose = _this.hideDialogAndAlert;
277
- const props = {
278
- text,
279
- show,
280
- onAccept,
281
- onDecline,
282
- onClose,
283
- translations,
284
- preview,
285
- ...restOptions
382
+ }();
383
+ var onDecline = /*#__PURE__*/function () {
384
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
385
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
386
+ while (1) switch (_context7.prev = _context7.next) {
387
+ case 0:
388
+ _context7.next = 2;
389
+ return _this.onDecline();
390
+ case 2:
391
+ reject();
392
+ case 3:
393
+ case "end":
394
+ return _context7.stop();
395
+ }
396
+ }, _callee7);
397
+ }));
398
+ return function onDecline() {
399
+ return _ref8.apply(this, arguments);
286
400
  };
287
- render( /*#__PURE__*/React.createElement(ControlsHeightContext.Provider, {
288
- value: getGlobalControlsHeight()
289
- }, /*#__PURE__*/React.createElement(UserAgreement, props)), _this.container);
290
- if (onDialogShow) {
291
- onDialogShow();
292
- }
293
- });
294
- if (!withoutNotifications) {
295
- _this._notifyAboutShowing();
401
+ }();
402
+ var onClose = _this.hideDialogAndAlert;
403
+ var props = _objectSpread2({
404
+ text: text,
405
+ show: show,
406
+ onAccept: onAccept,
407
+ onDecline: onDecline,
408
+ onClose: onClose,
409
+ translations: translations,
410
+ preview: preview
411
+ }, restOptions);
412
+ render( /*#__PURE__*/React.createElement(ControlsHeightContext.Provider, {
413
+ value: getGlobalControlsHeight()
414
+ }, /*#__PURE__*/React.createElement(UserAgreement, props)), _this.container);
415
+ if (onDialogShow) {
416
+ onDialogShow();
296
417
  }
418
+ });
419
+ if (!withoutNotifications) {
420
+ _this._notifyAboutShowing();
297
421
  }
298
- return _this._dialogPromise;
299
- };
300
- })();
301
- hideDialog = withoutNotifications => {
302
- const {
303
- onDialogHide
304
- } = this.config;
305
- unmountComponentAtNode(this.container);
422
+ }
423
+ return _this._dialogPromise;
424
+ });
425
+ _defineProperty(this, "hideDialog", function (withoutNotifications) {
426
+ var onDialogHide = _this.config.onDialogHide;
427
+ unmountComponentAtNode(_this.container);
306
428
  if (onDialogHide) {
307
429
  onDialogHide();
308
- this._dialogPromise = null;
430
+ _this._dialogPromise = null;
309
431
  if (!withoutNotifications) {
310
- this._notifyAboutHiding();
432
+ _this._notifyAboutHiding();
311
433
  }
312
434
  }
313
- };
314
- showDialogOrAlert = (withoutNotifications, preview, restOptions) => {
315
- if (this.guest && !this.userAgreement.requiredForREST) {
316
- return this.showAlert(withoutNotifications);
317
- }
318
- return this.showDialog(withoutNotifications, preview, restOptions);
319
- };
320
- hideDialogAndAlert = withoutNotifications => {
321
- this.hideAlert(withoutNotifications);
322
- this.hideDialog(withoutNotifications);
323
- };
324
- onAccept = async () => {
325
- const {
326
- setUserConsent,
327
- onAccept
328
- } = this.config;
329
- if (this.guest) {
330
- const {
331
- majorVersion,
332
- minorVersion
333
- } = this.userAgreement;
334
- this.userConsent = {
335
- majorVersion,
336
- minorVersion,
337
- accepted: true
338
- };
339
- await this.storage.set(GUEST_SESSION_KEY, this.userConsent);
340
- } else {
341
- this.userConsent = await setUserConsent();
342
- }
343
- this.hideDialog();
344
- if (onAccept) {
345
- onAccept();
435
+ });
436
+ _defineProperty(this, "showDialogOrAlert", function (withoutNotifications, preview, restOptions) {
437
+ if (_this.guest && !_this.userAgreement.requiredForREST) {
438
+ return _this.showAlert(withoutNotifications);
346
439
  }
347
- };
348
- onDecline = () => {
349
- const {
350
- onDecline
351
- } = this.config;
352
- this.hideDialog();
440
+ return _this.showDialog(withoutNotifications, preview, restOptions);
441
+ });
442
+ _defineProperty(this, "hideDialogAndAlert", function (withoutNotifications) {
443
+ _this.hideAlert(withoutNotifications);
444
+ _this.hideDialog(withoutNotifications);
445
+ });
446
+ _defineProperty(this, "onAccept", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
447
+ var _this$config2, setUserConsent, onAccept, _this$userAgreement, majorVersion, minorVersion;
448
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
449
+ while (1) switch (_context8.prev = _context8.next) {
450
+ case 0:
451
+ _this$config2 = _this.config, setUserConsent = _this$config2.setUserConsent, onAccept = _this$config2.onAccept;
452
+ if (!_this.guest) {
453
+ _context8.next = 8;
454
+ break;
455
+ }
456
+ _this$userAgreement = _this.userAgreement, majorVersion = _this$userAgreement.majorVersion, minorVersion = _this$userAgreement.minorVersion;
457
+ _this.userConsent = {
458
+ majorVersion: majorVersion,
459
+ minorVersion: minorVersion,
460
+ accepted: true
461
+ };
462
+ _context8.next = 6;
463
+ return _this.storage.set(GUEST_SESSION_KEY, _this.userConsent);
464
+ case 6:
465
+ _context8.next = 11;
466
+ break;
467
+ case 8:
468
+ _context8.next = 10;
469
+ return setUserConsent();
470
+ case 10:
471
+ _this.userConsent = _context8.sent;
472
+ case 11:
473
+ _this.hideDialog();
474
+ if (onAccept) {
475
+ onAccept();
476
+ }
477
+ case 13:
478
+ case "end":
479
+ return _context8.stop();
480
+ }
481
+ }, _callee8);
482
+ })));
483
+ _defineProperty(this, "onDecline", function () {
484
+ var onDecline = _this.config.onDecline;
485
+ _this.hideDialog();
353
486
  if (onDecline) {
354
487
  onDecline();
355
488
  }
356
- };
357
- }
489
+ });
490
+ if (!config) {
491
+ throw new Error('Please pass a config to UserAgreementService');
492
+ }
493
+ if (!config.getUserAgreement) {
494
+ throw new Error('Please pass a "getUserAgreement" option to UserAgreementService');
495
+ }
496
+ if (!config.getUserConsent) {
497
+ throw new Error('Please pass a "getUserConsent" option to UserAgreementService');
498
+ }
499
+ if (!config.setUserConsent) {
500
+ throw new Error('Please pass a "setUserConsent" option to UserAgreementService');
501
+ }
502
+ this.config = config;
503
+ this.interval = config.interval || this.interval;
504
+ });
358
505
 
359
506
  export { UserAgreementService as default, hideMessage, showMessage };