@jetbrains/ring-ui-built 6.0.31 → 6.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/_helpers/_rollupPluginBabelHelpers.js +1 -567
- package/components/_helpers/anchor.js +7 -6
- package/components/_helpers/button__classes.js +16 -14
- package/components/_helpers/caption.js +14 -20
- package/components/_helpers/card.js +95 -105
- package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
- package/components/_helpers/icon__svg.js +22 -25
- package/components/_helpers/input.js +146 -177
- package/components/_helpers/query-assist__suggestions.js +74 -90
- package/components/_helpers/select__filter.js +48 -69
- package/components/_helpers/services-link.js +29 -37
- package/components/_helpers/sidebar.js +99 -107
- package/components/_helpers/tab-link.js +7 -7
- package/components/_helpers/theme.js +31 -40
- package/components/_helpers/title.js +57 -72
- package/components/alert/alert.js +150 -202
- package/components/alert/container.js +32 -41
- package/components/alert-service/alert-service.js +105 -170
- package/components/analytics/analytics.js +12 -22
- package/components/analytics/analytics__custom-plugin.js +54 -75
- package/components/auth/auth.js +4 -36
- package/components/auth/auth__core.js +746 -1471
- package/components/auth/background-flow.js +87 -127
- package/components/auth/down-notification.js +30 -73
- package/components/auth/iframe-flow.js +75 -133
- package/components/auth/request-builder.js +46 -82
- package/components/auth/response-parser.js +86 -116
- package/components/auth/storage.js +171 -334
- package/components/auth/token-validator.js +137 -242
- package/components/auth/window-flow.js +92 -134
- package/components/auth-dialog/auth-dialog.js +114 -172
- package/components/auth-dialog-service/auth-dialog-service.js +8 -31
- package/components/avatar/avatar-example-datauri.js +23 -1
- package/components/avatar/avatar.js +119 -152
- package/components/avatar/fallback-avatar.js +22 -38
- package/components/badge/badge.js +35 -45
- package/components/button/button.js +86 -107
- package/components/button-group/button-group.js +19 -33
- package/components/button-set/button-set.js +20 -32
- package/components/button-toolbar/button-toolbar.js +19 -31
- package/components/caret/caret.js +186 -220
- package/components/checkbox/checkbox.js +76 -101
- package/components/clipboard/clipboard-fallback.js +10 -10
- package/components/clipboard/clipboard.js +35 -132
- package/components/code/code.js +92 -166
- package/components/collapse/collapse-content.js +42 -64
- package/components/collapse/collapse-context.js +2 -2
- package/components/collapse/collapse-control.js +12 -14
- package/components/collapse/collapse.js +11 -17
- package/components/collapse/consts.js +4 -4
- package/components/collapse/utils.js +1 -3
- package/components/confirm/confirm.js +66 -104
- package/components/confirm-service/confirm-service.js +37 -59
- package/components/content-layout/content-layout.js +43 -64
- package/components/content-layout/sidebar.js +0 -1
- package/components/contenteditable/contenteditable.js +50 -59
- package/components/control-label/control-label.js +9 -9
- package/components/data-list/data-list.js +129 -182
- package/components/data-list/data-list.mock.js +2 -6
- package/components/data-list/item.js +143 -170
- package/components/data-list/selection.js +76 -136
- package/components/data-list/title.js +1 -12
- package/components/date-picker/consts.js +19 -26
- package/components/date-picker/date-input.js +113 -144
- package/components/date-picker/date-picker.js +227 -282
- package/components/date-picker/date-popup.js +350 -395
- package/components/date-picker/day.js +87 -116
- package/components/date-picker/month-names.js +43 -66
- package/components/date-picker/month-slider.js +51 -76
- package/components/date-picker/month.js +16 -25
- package/components/date-picker/months.js +43 -50
- package/components/date-picker/weekdays.js +12 -22
- package/components/date-picker/years.js +83 -110
- package/components/dialog/dialog.js +142 -190
- package/components/dialog/dialog__body-scroll-preventer.js +0 -4
- package/components/dropdown/anchor.js +0 -9
- package/components/dropdown/dropdown.js +182 -213
- package/components/dropdown-menu/dropdown-menu.js +71 -97
- package/components/editable-heading/editable-heading.js +75 -127
- package/components/error-bubble/error-bubble.js +31 -60
- package/components/error-message/error-message.js +39 -59
- package/components/footer/footer.js +27 -30
- package/components/global/compose.js +1 -10
- package/components/global/composeRefs.js +7 -12
- package/components/global/controls-height.js +2 -2
- package/components/global/create-stateful-context.js +15 -15
- package/components/global/data-tests.js +6 -14
- package/components/global/dom.js +47 -86
- package/components/global/focus-sensor-hoc.js +122 -132
- package/components/global/fuzzy-highlight.js +22 -36
- package/components/global/get-event-key.js +8 -8
- package/components/global/get-uid.js +4 -8
- package/components/global/inject-styles.js +10 -15
- package/components/global/listeners.js +27 -51
- package/components/global/memoize.js +6 -12
- package/components/global/normalize-indent.js +19 -50
- package/components/global/promise-with-timeout.js +6 -8
- package/components/global/prop-types.js +3 -5
- package/components/global/react-dom-renderer.js +28 -44
- package/components/global/react-render-adapter.js +1 -1
- package/components/global/rerender-hoc.js +12 -30
- package/components/global/schedule-raf.js +5 -6
- package/components/global/sniffer.js +1 -1
- package/components/global/theme.js +0 -22
- package/components/global/trivial-template-tag.js +3 -10
- package/components/global/typescript-utils.js +2 -6
- package/components/global/url.js +20 -26
- package/components/global/use-event-callback.js +6 -4
- package/components/grid/col.js +35 -52
- package/components/grid/grid.js +17 -31
- package/components/grid/row.js +35 -47
- package/components/group/group.js +17 -25
- package/components/header/header.js +33 -78
- package/components/header/logo.js +20 -36
- package/components/header/profile.js +166 -199
- package/components/header/services-link.js +0 -4
- package/components/header/services.js +73 -116
- package/components/header/smart-profile.js +111 -203
- package/components/header/smart-services.js +62 -113
- package/components/header/tray-icon.js +21 -37
- package/components/header/tray.js +21 -32
- package/components/heading/heading.js +24 -25
- package/components/http/http.d.ts +1 -3
- package/components/http/http.js +203 -353
- package/components/http/http.mock.js +49 -101
- package/components/hub-source/hub-source.js +83 -190
- package/components/hub-source/hub-source__user.js +11 -44
- package/components/hub-source/hub-source__users-groups.js +37 -65
- package/components/i18n/i18n-context.js +7 -10
- package/components/i18n/i18n.js +7 -10
- package/components/icon/icon.js +76 -93
- package/components/icon/icon__svg.js +0 -8
- package/components/icon/index.js +0 -8
- package/components/input/input.js +0 -13
- package/components/island/adaptive-island-hoc.js +30 -43
- package/components/island/content.js +115 -132
- package/components/island/header.js +57 -70
- package/components/island/island.js +28 -40
- package/components/island-legacy/content-legacy.js +17 -25
- package/components/island-legacy/header-legacy.js +19 -27
- package/components/island-legacy/island-legacy.js +17 -25
- package/components/link/clickableLink.js +44 -59
- package/components/link/link.js +57 -68
- package/components/list/consts.js +2 -2
- package/components/list/list.js +611 -698
- package/components/list/list__custom.js +44 -62
- package/components/list/list__hint.js +10 -19
- package/components/list/list__item.js +133 -174
- package/components/list/list__link.js +37 -50
- package/components/list/list__separator.js +14 -24
- package/components/list/list__title.js +22 -32
- package/components/list/list__users-groups-source.js +54 -126
- package/components/loader/loader.js +43 -74
- package/components/loader/loader__core.js +198 -263
- package/components/loader-inline/loader-inline.js +23 -35
- package/components/loader-screen/loader-screen.js +25 -46
- package/components/login-dialog/login-dialog.js +111 -158
- package/components/login-dialog/service.js +8 -34
- package/components/markdown/markdown.js +15 -23
- package/components/message/message.js +161 -203
- package/components/old-browsers-message/old-browsers-message.js +11 -18
- package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
- package/components/old-browsers-message/white-list.js +8 -16
- package/components/pager/pager.js +212 -271
- package/components/panel/panel.js +17 -25
- package/components/permissions/permissions.js +127 -172
- package/components/permissions/permissions__cache.js +194 -224
- package/components/popup/popup.consts.js +1 -1
- package/components/popup/popup.js +284 -343
- package/components/popup/popup.target.js +9 -8
- package/components/popup/position.js +96 -106
- package/components/popup-menu/popup-menu.js +44 -80
- package/components/progress-bar/progress-bar.js +87 -104
- package/components/query-assist/query-assist.js +838 -916
- package/components/query-assist/query-assist__suggestions.js +1 -30
- package/components/radio/radio.js +19 -34
- package/components/radio/radio__item.js +52 -69
- package/components/select/select.js +852 -957
- package/components/select/select__filter.js +0 -30
- package/components/select/select__popup.js +373 -487
- package/components/shortcuts/core.js +166 -217
- package/components/shortcuts/shortcut-title.js +6 -11
- package/components/shortcuts/shortcuts-hoc.js +19 -45
- package/components/shortcuts/shortcuts.js +50 -75
- package/components/slider/slider.js +99 -122
- package/components/slider/slider.utils.js +14 -24
- package/components/storage/storage.js +4 -33
- package/components/storage/storage__fallback.js +149 -224
- package/components/storage/storage__local.js +90 -153
- package/components/tab-trap/tab-trap.js +122 -153
- package/components/table/cell.js +14 -26
- package/components/table/disable-hover-hoc.js +33 -51
- package/components/table/header-cell.js +64 -89
- package/components/table/header.js +104 -132
- package/components/table/multitable.js +107 -125
- package/components/table/row-with-focus-sensor.js +25 -69
- package/components/table/row.js +175 -216
- package/components/table/selection-adapter.js +1 -3
- package/components/table/selection-shortcuts-hoc.js +180 -181
- package/components/table/selection.js +156 -226
- package/components/table/smart-table.js +50 -88
- package/components/table/table.js +289 -358
- package/components/tabs/collapsible-more.js +46 -79
- package/components/tabs/collapsible-tab.js +31 -38
- package/components/tabs/collapsible-tabs.js +88 -153
- package/components/tabs/custom-item.js +4 -2
- package/components/tabs/dumb-tabs.js +74 -117
- package/components/tabs/smart-tabs.js +29 -69
- package/components/tabs/tab-link.js +1 -5
- package/components/tabs/tab.js +19 -31
- package/components/tabs/tabs.js +0 -31
- package/components/tag/tag.js +133 -173
- package/components/tags-input/tags-input.js +329 -427
- package/components/tags-list/tags-list.js +57 -78
- package/components/text/text.js +28 -39
- package/components/toggle/toggle.js +56 -70
- package/components/tooltip/tooltip.js +146 -190
- package/components/user-agreement/service.js +228 -371
- package/components/user-agreement/toolbox.eula.js +160 -1
- package/components/user-agreement/user-agreement.js +85 -120
- package/components/user-card/card.js +0 -29
- package/components/user-card/smart-user-card-tooltip.js +51 -111
- package/components/user-card/tooltip.js +47 -84
- package/components/user-card/user-card.js +0 -29
- package/package.json +1 -1
@@ -1,10 +1,4 @@
|
|
1
|
-
import { _ as _defineProperty, b as _createClass, f as _classCallCheck } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
-
import 'core-js/modules/es.array.index-of.js';
|
3
|
-
import 'core-js/modules/es.array.map.js';
|
4
|
-
import 'core-js/modules/es.object.to-string.js';
|
5
|
-
import 'core-js/modules/es.promise.js';
|
6
1
|
import PermissionCache from './permissions__cache.js';
|
7
|
-
import 'core-js/modules/es.array.reduce.js';
|
8
2
|
|
9
3
|
/**
|
10
4
|
* <code>
|
@@ -30,26 +24,20 @@ import 'core-js/modules/es.array.reduce.js';
|
|
30
24
|
* <code>serviceId</code> if provided then permissions only for the service are loaded.
|
31
25
|
* @constructor
|
32
26
|
*/
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
query: {
|
48
|
-
fields: 'permission/key,global,projects(id)',
|
49
|
-
query
|
50
|
-
}
|
51
|
-
});
|
52
|
-
});
|
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] : {};
|
53
41
|
this.query = Permissions.getPermissionQuery(config.services);
|
54
42
|
this.namesConverter = config.prefix ? Permissions.getDefaultNamesConverter(config.prefix) : config.namesConverter;
|
55
43
|
if (!auth) {
|
@@ -61,160 +49,127 @@ var Permissions = /*#__PURE__*/function () {
|
|
61
49
|
this._subscribed = false;
|
62
50
|
this._permissionCache = new PermissionCache(null, this.namesConverter);
|
63
51
|
}
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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;
|
52
|
+
_defaultDatasource = query => this._auth.http.get(Permissions.API_PERMISSION_CACHE_PATH, {
|
53
|
+
query: {
|
54
|
+
fields: 'permission/key,global,projects(id)',
|
55
|
+
query
|
80
56
|
}
|
81
|
-
}
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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;
|
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);
|
109
70
|
}
|
110
|
-
|
111
|
-
|
112
|
-
|
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;
|
125
|
-
}
|
126
|
-
}
|
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();
|
71
|
+
};
|
72
|
+
}
|
73
|
+
static getPermissionQuery(services) {
|
74
|
+
if (!services || !services.length) {
|
75
|
+
return undefined;
|
141
76
|
}
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
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();
|
157
105
|
});
|
106
|
+
this._subscribed = true;
|
158
107
|
}
|
159
|
-
|
160
|
-
|
161
|
-
|
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
|
-
});
|
108
|
+
const cache = this._getCache();
|
109
|
+
if (!hasCacheControl('NO_CACHE', options) && cache) {
|
110
|
+
return cache;
|
184
111
|
}
|
185
|
-
|
186
|
-
|
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
|
-
};
|
112
|
+
if (hasCacheControl('NO_STORE', options)) {
|
113
|
+
return this._loadPermissions().then(cachedPermissions => new PermissionCache(cachedPermissions, this.namesConverter));
|
202
114
|
}
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
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];
|
208
121
|
}
|
209
|
-
return
|
210
|
-
return "service:{".concat(service, "}");
|
211
|
-
}).join(' or ');
|
122
|
+
return false;
|
212
123
|
}
|
213
|
-
}
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
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
|
+
}
|
219
174
|
|
220
175
|
export { Permissions as default };
|