@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,28 +1,38 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { c as _defineProperty, j as _inherits, k as _createSuper, b as _classCallCheck, _ as _createClass, h as _objectWithoutProperties, i as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { PureComponent } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
5
  import { m as modules_cf670408 } from '../_helpers/panel.js';
6
6
 
7
+ var _excluded = ["className", "children"];
7
8
  /**
8
9
  * @name Panel
9
10
  */
10
- class Panel extends PureComponent {
11
- static propTypes = {
12
- className: PropTypes.string,
13
- children: PropTypes.node
14
- };
15
- render() {
16
- const {
17
- className,
18
- children,
19
- ...props
20
- } = this.props;
21
- const classes = classNames(modules_cf670408.panel, className);
22
- return /*#__PURE__*/React.createElement("div", _extends({}, props, {
23
- className: classes
24
- }), children);
11
+ var Panel = /*#__PURE__*/function (_PureComponent) {
12
+ _inherits(Panel, _PureComponent);
13
+ var _super = _createSuper(Panel);
14
+ function Panel() {
15
+ _classCallCheck(this, Panel);
16
+ return _super.apply(this, arguments);
25
17
  }
26
- }
18
+ _createClass(Panel, [{
19
+ key: "render",
20
+ value: function render() {
21
+ var _this$props = this.props,
22
+ className = _this$props.className,
23
+ children = _this$props.children,
24
+ props = _objectWithoutProperties(_this$props, _excluded);
25
+ var classes = classNames(modules_cf670408.panel, className);
26
+ return /*#__PURE__*/React.createElement("div", _extends({}, props, {
27
+ className: classes
28
+ }), children);
29
+ }
30
+ }]);
31
+ return Panel;
32
+ }(PureComponent);
33
+ _defineProperty(Panel, "propTypes", {
34
+ className: PropTypes.string,
35
+ children: PropTypes.node
36
+ });
27
37
 
28
38
  export { Panel as default };
@@ -1,8 +1,21 @@
1
1
  import angular from 'angular';
2
2
  import { m as modules_cf670408 } from '../_helpers/panel.js';
3
3
  import { addClasses } from '../global/dom.js';
4
+ import '../_helpers/_rollupPluginBabelHelpers.js';
5
+ import 'core-js/modules/es.object.assign.js';
6
+ import 'core-js/modules/es.object.to-string.js';
7
+ import 'core-js/modules/web.dom-collections.for-each.js';
8
+ import 'core-js/modules/es.array.filter.js';
9
+ import 'core-js/modules/es.regexp.exec.js';
10
+ import 'core-js/modules/es.string.split.js';
11
+ import 'core-js/modules/es.object.entries.js';
12
+ import 'core-js/modules/es.object.keys.js';
13
+ import 'core-js/modules/es.array.iterator.js';
14
+ import 'core-js/modules/es.set.js';
15
+ import 'core-js/modules/es.string.iterator.js';
16
+ import 'core-js/modules/web.dom-collections.iterator.js';
4
17
 
5
- const angularModule = angular.module('Ring.panel', []);
18
+ var angularModule = angular.module('Ring.panel', []);
6
19
  angularModule.directive('rgPanel', function rgEqualValueDirective() {
7
20
  return {
8
21
  link: function link(scope, iElement) {
@@ -1,4 +1,10 @@
1
+ import { c as _defineProperty, _ as _createClass, b as _classCallCheck } 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.array.index-of.js';
5
+ import 'core-js/modules/es.array.map.js';
1
6
  import PermissionCache from './permissions__cache.js';
7
+ import 'core-js/modules/es.array.reduce.js';
2
8
 
3
9
  /**
4
10
  * <code>
@@ -24,20 +30,26 @@ import PermissionCache from './permissions__cache.js';
24
30
  * <code>serviceId</code> if provided then permissions only for the service are loaded.
25
31
  * @constructor
26
32
  */
27
- class Permissions {
28
- /**
29
- * @const {string}
30
- */
31
- static API_PERMISSION_CACHE_PATH = 'permissions/cache';
32
- query;
33
- namesConverter;
34
- _auth;
35
- _datasource;
36
- _promise;
37
- _subscribed;
38
- _permissionCache;
39
- constructor(auth) {
40
- let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
33
+ var Permissions = /*#__PURE__*/function () {
34
+ function Permissions(auth) {
35
+ var _this = this;
36
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
37
+ _classCallCheck(this, Permissions);
38
+ _defineProperty(this, "query", void 0);
39
+ _defineProperty(this, "namesConverter", void 0);
40
+ _defineProperty(this, "_auth", void 0);
41
+ _defineProperty(this, "_datasource", void 0);
42
+ _defineProperty(this, "_promise", void 0);
43
+ _defineProperty(this, "_subscribed", void 0);
44
+ _defineProperty(this, "_permissionCache", void 0);
45
+ _defineProperty(this, "_defaultDatasource", function (query) {
46
+ return _this._auth.http.get(Permissions.API_PERMISSION_CACHE_PATH, {
47
+ query: {
48
+ fields: 'permission/key,global,projects(id)',
49
+ query: query
50
+ }
51
+ });
52
+ });
41
53
  this.query = Permissions.getPermissionQuery(config.services);
42
54
  this.namesConverter = config.prefix ? Permissions.getDefaultNamesConverter(config.prefix) : config.namesConverter;
43
55
  if (!auth) {
@@ -49,127 +61,161 @@ class Permissions {
49
61
  this._subscribed = false;
50
62
  this._permissionCache = new PermissionCache(null, this.namesConverter);
51
63
  }
52
- _defaultDatasource = query => this._auth.http.get(Permissions.API_PERMISSION_CACHE_PATH, {
53
- query: {
54
- fields: 'permission/key,global,projects(id)',
55
- query
64
+ _createClass(Permissions, [{
65
+ key: "set",
66
+ value: function set(cachedPermissions) {
67
+ this._permissionCache.set(cachedPermissions);
68
+ this._setCache(Promise.resolve(this._permissionCache));
69
+ return this._permissionCache;
70
+ }
71
+ }, {
72
+ key: "get",
73
+ value: function get() {
74
+ return this._permissionCache.get();
75
+ }
76
+ }, {
77
+ key: "_setCache",
78
+ value: function _setCache(value) {
79
+ this._promise = value;
56
80
  }
57
- });
58
- /**
59
- * Returns function, which cuts off prefix from server-side permission name
60
- *
61
- * @param {string} prefix
62
- * @returns {Function}
63
- */
64
- static getDefaultNamesConverter(prefix) {
65
- return storedName => {
66
- if (storedName.indexOf(prefix) !== 0) {
67
- return storedName;
68
- } else {
69
- return storedName.substr(prefix.length);
81
+ }, {
82
+ key: "_getCache",
83
+ value: function _getCache() {
84
+ return this._promise;
85
+ }
86
+ }, {
87
+ key: "_resetCache",
88
+ value: function _resetCache() {
89
+ this._setCache(null);
90
+ }
91
+ /**
92
+ * Loads logged-in user permissions.
93
+ * @param {object?} options
94
+ * @return {Promise.<Permissions>} promise that is resolved when the permissions are loaded
95
+ */
96
+ }, {
97
+ key: "load",
98
+ value: function load(options) {
99
+ var _this2 = this;
100
+ if (this._subscribed === false) {
101
+ this._auth.addListener('userChange', function () {
102
+ _this2.reload();
103
+ });
104
+ this._subscribed = true;
105
+ }
106
+ var cache = this._getCache();
107
+ if (!hasCacheControl('NO_CACHE', options) && cache) {
108
+ return cache;
109
+ }
110
+ if (hasCacheControl('NO_STORE', options)) {
111
+ return this._loadPermissions().then(function (cachedPermissions) {
112
+ return new PermissionCache(cachedPermissions, _this2.namesConverter);
113
+ });
114
+ }
115
+ var permissions = this._loadPermissions().then(function (cachedPermissions) {
116
+ return _this2.set(cachedPermissions);
117
+ });
118
+ this._setCache(permissions);
119
+ return permissions;
120
+ function hasCacheControl(value, _options) {
121
+ if (_options && _options.cacheControl) {
122
+ return _options.cacheControl[value];
123
+ }
124
+ return false;
70
125
  }
71
- };
72
- }
73
- static getPermissionQuery(services) {
74
- if (!services || !services.length) {
75
- return undefined;
76
126
  }
77
- return services.map(service => `service:{${service}}`).join(' or ');
78
- }
79
- set(cachedPermissions) {
80
- this._permissionCache.set(cachedPermissions);
81
- this._setCache(Promise.resolve(this._permissionCache));
82
- return this._permissionCache;
83
- }
84
- get() {
85
- return this._permissionCache.get();
86
- }
87
- _setCache(value) {
88
- this._promise = value;
89
- }
90
- _getCache() {
91
- return this._promise;
92
- }
93
- _resetCache() {
94
- this._setCache(null);
95
- }
96
- /**
97
- * Loads logged-in user permissions.
98
- * @param {object?} options
99
- * @return {Promise.<Permissions>} promise that is resolved when the permissions are loaded
100
- */
101
- load(options) {
102
- if (this._subscribed === false) {
103
- this._auth.addListener('userChange', () => {
104
- this.reload();
127
+ }, {
128
+ key: "_loadPermissions",
129
+ value: function _loadPermissions() {
130
+ return this._datasource(this.query);
131
+ }
132
+ /**
133
+ * Reloads permission cache from server
134
+ * @returns {Promise.<Permissions>} promise that is resolved when the permissions are reloaded
135
+ */
136
+ }, {
137
+ key: "reload",
138
+ value: function reload() {
139
+ this._resetCache();
140
+ return this.load();
141
+ }
142
+ /**
143
+ * Waits till the permission cache is loaded then checks if the current user has the
144
+ * given permissions in the project with the given id.
145
+ *
146
+ * @param {string} permissions space separated list of permissions
147
+ * @param {string=} projectId optional projectId. If absent the method checks
148
+ * if the given permission is granted in any project.
149
+ *
150
+ * @return {Promise.<boolean>}
151
+ */
152
+ }, {
153
+ key: "check",
154
+ value: function check(permissions, projectId) {
155
+ return this.load().then(function (permissionCache) {
156
+ return permissionCache.has(permissions, projectId);
105
157
  });
106
- this._subscribed = true;
107
158
  }
108
- const cache = this._getCache();
109
- if (!hasCacheControl('NO_CACHE', options) && cache) {
110
- return cache;
159
+ /**
160
+ * Binds a property with the name <code>propertyName</code> of the <code>object</code>
161
+ * to a boolean value that is true if user has the permissions and false if she doesn't.
162
+ *
163
+ * @example
164
+ * <code>
165
+ * userPermissions.bindVariable($scope, 'canReadRole', 'role-read')
166
+ * </code>
167
+ *
168
+ * @param {object} object an object which property should be bound
169
+ * @param {string} propertyName a name of a property to bind
170
+ * @param {string} permissions space separated list of permissions
171
+ * @param {string=} projectId optional projectId. If absent the method checks
172
+ * if the given permissions are granted in any project.
173
+ *
174
+ * @return {Promise.<boolean>}
175
+ */
176
+ }, {
177
+ key: "bindVariable",
178
+ value: function bindVariable(object, propertyName, permissions, projectId) {
179
+ object[propertyName] = false;
180
+ return this.check(permissions, projectId).then(function (permitted) {
181
+ object[propertyName] = permitted;
182
+ return permitted;
183
+ });
111
184
  }
112
- if (hasCacheControl('NO_STORE', options)) {
113
- return this._loadPermissions().then(cachedPermissions => new PermissionCache(cachedPermissions, this.namesConverter));
185
+ }], [{
186
+ key: "getDefaultNamesConverter",
187
+ value:
188
+ /**
189
+ * Returns function, which cuts off prefix from server-side permission name
190
+ *
191
+ * @param {string} prefix
192
+ * @returns {Function}
193
+ */
194
+ function getDefaultNamesConverter(prefix) {
195
+ return function (storedName) {
196
+ if (storedName.indexOf(prefix) !== 0) {
197
+ return storedName;
198
+ } else {
199
+ return storedName.substr(prefix.length);
200
+ }
201
+ };
114
202
  }
115
- const permissions = this._loadPermissions().then(cachedPermissions => this.set(cachedPermissions));
116
- this._setCache(permissions);
117
- return permissions;
118
- function hasCacheControl(value, _options) {
119
- if (_options && _options.cacheControl) {
120
- return _options.cacheControl[value];
203
+ }, {
204
+ key: "getPermissionQuery",
205
+ value: function getPermissionQuery(services) {
206
+ if (!services || !services.length) {
207
+ return undefined;
121
208
  }
122
- return false;
209
+ return services.map(function (service) {
210
+ return "service:{".concat(service, "}");
211
+ }).join(' or ');
123
212
  }
124
- }
125
- _loadPermissions() {
126
- return this._datasource(this.query);
127
- }
128
- /**
129
- * Reloads permission cache from server
130
- * @returns {Promise.<Permissions>} promise that is resolved when the permissions are reloaded
131
- */
132
- reload() {
133
- this._resetCache();
134
- return this.load();
135
- }
136
- /**
137
- * Waits till the permission cache is loaded then checks if the current user has the
138
- * given permissions in the project with the given id.
139
- *
140
- * @param {string} permissions space separated list of permissions
141
- * @param {string=} projectId optional projectId. If absent the method checks
142
- * if the given permission is granted in any project.
143
- *
144
- * @return {Promise.<boolean>}
145
- */
146
- check(permissions, projectId) {
147
- return this.load().then(permissionCache => permissionCache.has(permissions, projectId));
148
- }
149
- /**
150
- * Binds a property with the name <code>propertyName</code> of the <code>object</code>
151
- * to a boolean value that is true if user has the permissions and false if she doesn't.
152
- *
153
- * @example
154
- * <code>
155
- * userPermissions.bindVariable($scope, 'canReadRole', 'role-read')
156
- * </code>
157
- *
158
- * @param {object} object an object which property should be bound
159
- * @param {string} propertyName a name of a property to bind
160
- * @param {string} permissions space separated list of permissions
161
- * @param {string=} projectId optional projectId. If absent the method checks
162
- * if the given permissions are granted in any project.
163
- *
164
- * @return {Promise.<boolean>}
165
- */
166
- bindVariable(object, propertyName, permissions, projectId) {
167
- object[propertyName] = false;
168
- return this.check(permissions, projectId).then(permitted => {
169
- object[propertyName] = permitted;
170
- return permitted;
171
- });
172
- }
173
- }
213
+ }]);
214
+ return Permissions;
215
+ }();
216
+ /**
217
+ * @const {string}
218
+ */
219
+ _defineProperty(Permissions, "API_PERMISSION_CACHE_PATH", 'permissions/cache');
174
220
 
175
221
  export { Permissions as default };