@jetbrains/ring-ui-built 6.0.32 → 6.0.33
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 +567 -1
- package/components/_helpers/anchor.js +6 -7
- package/components/_helpers/button__classes.js +14 -16
- package/components/_helpers/caption.js +20 -14
- package/components/_helpers/card.js +105 -95
- package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
- package/components/_helpers/icon__svg.js +25 -22
- package/components/_helpers/input.js +177 -146
- package/components/_helpers/query-assist__suggestions.js +90 -74
- package/components/_helpers/select__filter.js +69 -48
- package/components/_helpers/services-link.js +37 -29
- package/components/_helpers/sidebar.js +107 -99
- package/components/_helpers/tab-link.js +7 -7
- package/components/_helpers/theme.js +40 -31
- package/components/_helpers/title.js +72 -57
- package/components/alert/alert.js +202 -150
- package/components/alert/container.js +41 -32
- package/components/alert-service/alert-service.js +170 -105
- package/components/analytics/analytics.js +22 -12
- package/components/analytics/analytics__custom-plugin.js +75 -54
- package/components/auth/auth.js +36 -4
- package/components/auth/auth__core.js +1471 -746
- package/components/auth/background-flow.js +127 -87
- package/components/auth/down-notification.js +73 -30
- package/components/auth/iframe-flow.js +133 -75
- package/components/auth/request-builder.js +82 -46
- package/components/auth/response-parser.js +116 -86
- package/components/auth/storage.js +334 -171
- package/components/auth/token-validator.js +242 -137
- package/components/auth/window-flow.js +134 -92
- package/components/auth-dialog/auth-dialog.js +172 -114
- package/components/auth-dialog-service/auth-dialog-service.js +31 -8
- package/components/avatar/avatar-example-datauri.js +1 -23
- package/components/avatar/avatar.js +152 -119
- package/components/avatar/fallback-avatar.js +38 -22
- package/components/badge/badge.js +45 -35
- package/components/button/button.js +107 -86
- package/components/button-group/button-group.js +33 -19
- package/components/button-set/button-set.js +32 -20
- package/components/button-toolbar/button-toolbar.js +31 -19
- package/components/caret/caret.js +220 -186
- package/components/checkbox/checkbox.js +101 -76
- package/components/clipboard/clipboard-fallback.js +10 -10
- package/components/clipboard/clipboard.js +132 -35
- package/components/code/code.js +166 -92
- package/components/collapse/collapse-content.js +64 -42
- package/components/collapse/collapse-context.js +2 -2
- package/components/collapse/collapse-control.js +14 -12
- package/components/collapse/collapse.js +17 -11
- package/components/collapse/consts.js +4 -4
- package/components/collapse/utils.js +3 -1
- package/components/confirm/confirm.js +104 -66
- package/components/confirm-service/confirm-service.js +59 -37
- package/components/content-layout/content-layout.js +64 -43
- package/components/content-layout/sidebar.js +1 -0
- package/components/contenteditable/contenteditable.js +59 -50
- package/components/control-label/control-label.js +9 -9
- package/components/data-list/data-list.js +182 -129
- package/components/data-list/data-list.mock.js +6 -2
- package/components/data-list/item.js +170 -143
- package/components/data-list/selection.js +136 -76
- package/components/data-list/title.js +12 -1
- package/components/date-picker/consts.js +26 -19
- package/components/date-picker/date-input.js +144 -113
- package/components/date-picker/date-picker.js +282 -227
- package/components/date-picker/date-popup.js +395 -350
- package/components/date-picker/day.js +116 -87
- package/components/date-picker/month-names.js +66 -43
- package/components/date-picker/month-slider.js +76 -51
- package/components/date-picker/month.js +25 -16
- package/components/date-picker/months.js +50 -43
- package/components/date-picker/weekdays.js +22 -12
- package/components/date-picker/years.js +110 -83
- package/components/dialog/dialog.js +190 -142
- package/components/dialog/dialog__body-scroll-preventer.js +4 -0
- package/components/dropdown/anchor.js +9 -0
- package/components/dropdown/dropdown.js +213 -182
- package/components/dropdown-menu/dropdown-menu.js +97 -71
- package/components/editable-heading/editable-heading.js +127 -75
- package/components/error-bubble/error-bubble.js +60 -31
- package/components/error-message/error-message.js +59 -39
- package/components/footer/footer.js +30 -27
- package/components/global/compose.js +10 -1
- package/components/global/composeRefs.js +12 -7
- package/components/global/controls-height.js +2 -2
- package/components/global/create-stateful-context.js +15 -15
- package/components/global/data-tests.js +14 -6
- package/components/global/dom.js +86 -47
- package/components/global/focus-sensor-hoc.js +132 -122
- package/components/global/fuzzy-highlight.js +36 -22
- package/components/global/get-event-key.js +8 -8
- package/components/global/get-uid.js +8 -4
- package/components/global/inject-styles.js +15 -10
- package/components/global/listeners.js +51 -27
- package/components/global/memoize.js +12 -6
- package/components/global/normalize-indent.js +50 -19
- package/components/global/promise-with-timeout.js +8 -6
- package/components/global/prop-types.js +5 -3
- package/components/global/react-dom-renderer.js +44 -28
- package/components/global/react-render-adapter.js +1 -1
- package/components/global/rerender-hoc.js +30 -12
- package/components/global/schedule-raf.js +6 -5
- package/components/global/sniffer.js +1 -1
- package/components/global/theme.js +22 -0
- package/components/global/trivial-template-tag.js +10 -3
- package/components/global/typescript-utils.js +6 -2
- package/components/global/url.js +26 -20
- package/components/global/use-event-callback.js +4 -6
- package/components/grid/col.js +52 -35
- package/components/grid/grid.js +31 -17
- package/components/grid/row.js +47 -35
- package/components/group/group.js +25 -17
- package/components/header/header.js +78 -33
- package/components/header/logo.js +36 -20
- package/components/header/profile.js +199 -166
- package/components/header/services-link.js +4 -0
- package/components/header/services.js +116 -73
- package/components/header/smart-profile.js +203 -111
- package/components/header/smart-services.js +113 -62
- package/components/header/tray-icon.js +37 -21
- package/components/header/tray.js +32 -21
- package/components/heading/heading.js +25 -24
- package/components/http/http.js +353 -203
- package/components/http/http.mock.js +101 -49
- package/components/hub-source/hub-source.js +190 -83
- package/components/hub-source/hub-source__user.js +44 -11
- package/components/hub-source/hub-source__users-groups.js +65 -37
- package/components/i18n/i18n-context.js +10 -7
- package/components/i18n/i18n.js +10 -7
- package/components/icon/icon.js +93 -76
- package/components/icon/icon__svg.js +8 -0
- package/components/icon/index.js +8 -0
- package/components/input/input.js +13 -0
- package/components/island/adaptive-island-hoc.js +43 -30
- package/components/island/content.js +132 -115
- package/components/island/header.js +70 -57
- package/components/island/island.js +40 -28
- package/components/island-legacy/content-legacy.js +25 -17
- package/components/island-legacy/header-legacy.js +27 -19
- package/components/island-legacy/island-legacy.js +25 -17
- package/components/link/clickableLink.js +59 -44
- package/components/link/link.js +68 -57
- package/components/list/consts.js +2 -2
- package/components/list/list.js +698 -611
- package/components/list/list__custom.js +62 -44
- package/components/list/list__hint.js +19 -10
- package/components/list/list__item.js +174 -133
- package/components/list/list__link.js +50 -37
- package/components/list/list__separator.js +24 -14
- package/components/list/list__title.js +32 -22
- package/components/list/list__users-groups-source.js +126 -54
- package/components/loader/loader.js +74 -43
- package/components/loader/loader__core.js +263 -198
- package/components/loader-inline/loader-inline.js +35 -23
- package/components/loader-screen/loader-screen.js +46 -25
- package/components/login-dialog/login-dialog.js +158 -111
- package/components/login-dialog/service.js +34 -8
- package/components/markdown/markdown.js +23 -15
- package/components/message/message.js +203 -161
- package/components/old-browsers-message/old-browsers-message.js +18 -11
- package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
- package/components/old-browsers-message/white-list.js +16 -8
- package/components/pager/pager.js +271 -212
- package/components/panel/panel.js +25 -17
- package/components/permissions/permissions.js +172 -127
- package/components/permissions/permissions__cache.js +224 -194
- package/components/popup/popup.consts.js +1 -1
- package/components/popup/popup.js +343 -284
- package/components/popup/popup.target.js +8 -9
- package/components/popup/position.js +106 -96
- package/components/popup-menu/popup-menu.js +81 -44
- package/components/progress-bar/progress-bar.js +104 -87
- package/components/query-assist/query-assist.js +916 -838
- package/components/query-assist/query-assist__suggestions.js +30 -1
- package/components/radio/radio.js +34 -19
- package/components/radio/radio__item.js +69 -52
- package/components/select/select.js +957 -852
- package/components/select/select__filter.js +30 -0
- package/components/select/select__popup.js +487 -373
- package/components/shortcuts/core.js +217 -166
- package/components/shortcuts/shortcut-title.js +11 -6
- package/components/shortcuts/shortcuts-hoc.js +45 -19
- package/components/shortcuts/shortcuts.js +75 -50
- package/components/slider/slider.js +122 -99
- package/components/slider/slider.utils.js +24 -14
- package/components/storage/storage.js +33 -4
- package/components/storage/storage__fallback.js +224 -149
- package/components/storage/storage__local.js +153 -90
- package/components/tab-trap/tab-trap.js +153 -122
- package/components/table/cell.js +26 -14
- package/components/table/disable-hover-hoc.js +51 -33
- package/components/table/header-cell.js +89 -64
- package/components/table/header.js +132 -104
- package/components/table/multitable.js +125 -107
- package/components/table/row-with-focus-sensor.js +69 -25
- package/components/table/row.js +216 -175
- package/components/table/selection-adapter.js +3 -1
- package/components/table/selection-shortcuts-hoc.js +181 -180
- package/components/table/selection.js +226 -156
- package/components/table/smart-table.js +88 -50
- package/components/table/table.js +358 -289
- package/components/tabs/collapsible-more.js +79 -46
- package/components/tabs/collapsible-tab.js +38 -31
- package/components/tabs/collapsible-tabs.js +153 -88
- package/components/tabs/custom-item.js +2 -4
- package/components/tabs/dumb-tabs.js +117 -74
- package/components/tabs/smart-tabs.js +69 -29
- package/components/tabs/tab-link.js +5 -1
- package/components/tabs/tab.js +31 -19
- package/components/tabs/tabs.js +31 -0
- package/components/tag/tag.js +173 -133
- package/components/tags-input/tags-input.js +427 -329
- package/components/tags-list/tags-list.js +78 -57
- package/components/text/text.js +39 -28
- package/components/toggle/toggle.js +70 -56
- package/components/tooltip/tooltip.js +190 -146
- package/components/user-agreement/service.js +371 -228
- package/components/user-agreement/toolbox.eula.js +1 -160
- package/components/user-agreement/user-agreement.js +120 -85
- package/components/user-card/card.js +29 -0
- package/components/user-card/smart-user-card-tooltip.js +111 -51
- package/components/user-card/tooltip.js +84 -47
- package/components/user-card/user-card.js +29 -0
- package/package.json +1 -1
@@ -1,4 +1,10 @@
|
|
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';
|
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
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
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,160 @@ class Permissions {
|
|
49
61
|
this._subscribed = false;
|
50
62
|
this._permissionCache = new PermissionCache(null, this.namesConverter);
|
51
63
|
}
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
64
|
+
return _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
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
}
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
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
|
-
|
109
|
-
|
110
|
-
|
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
|
-
|
113
|
-
|
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
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
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
|
209
|
+
return services.map(function (service) {
|
210
|
+
return "service:{".concat(service, "}");
|
211
|
+
}).join(' or ');
|
123
212
|
}
|
124
|
-
}
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
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
|
+
}();
|
215
|
+
/**
|
216
|
+
* @const {string}
|
217
|
+
*/
|
218
|
+
_defineProperty(Permissions, "API_PERMISSION_CACHE_PATH", 'permissions/cache');
|
174
219
|
|
175
220
|
export { Permissions as default };
|