@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,197 +1,248 @@
|
|
1
|
+
import { b as _createClass, f as _classCallCheck, _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
+
import 'core-js/modules/es.array.concat.js';
|
3
|
+
import 'core-js/modules/es.array.find-index.js';
|
4
|
+
import 'core-js/modules/es.array.includes.js';
|
5
|
+
import 'core-js/modules/es.array.map.js';
|
6
|
+
import 'core-js/modules/es.array.slice.js';
|
7
|
+
import 'core-js/modules/es.array.splice.js';
|
8
|
+
import 'core-js/modules/es.object.assign.js';
|
9
|
+
import 'core-js/modules/es.regexp.exec.js';
|
10
|
+
import 'core-js/modules/es.string.includes.js';
|
11
|
+
import 'core-js/modules/es.string.match.js';
|
1
12
|
import Combokeys from 'combokeys';
|
2
13
|
import sniffr from '../global/sniffer.js';
|
3
14
|
import 'sniffr';
|
4
15
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
var Shortcuts = /*#__PURE__*/function () {
|
17
|
+
function Shortcuts() {
|
18
|
+
var _this = this;
|
19
|
+
_classCallCheck(this, Shortcuts);
|
20
|
+
_defineProperty(this, "ALLOW_SHORTCUTS_SELECTOR", '.ring-js-shortcuts');
|
21
|
+
_defineProperty(this, "ROOT_SCOPE", {
|
22
|
+
scopeId: 'ROOT',
|
23
|
+
options: {}
|
24
|
+
});
|
25
|
+
_defineProperty(this, "_scopes", {});
|
26
|
+
_defineProperty(this, "_scopeChain", []);
|
27
|
+
_defineProperty(this, "combokeys", new Combokeys(document.documentElement));
|
28
|
+
_defineProperty(this, "trigger", function (combo) {
|
29
|
+
return _this.combokeys.trigger(combo);
|
30
|
+
});
|
31
|
+
_defineProperty(this, "_dispatcher", function (e, key) {
|
32
|
+
var currentScope;
|
33
|
+
for (var i = _this._scopeChain.length - 1; i >= 0; i--) {
|
34
|
+
var scopeInChain = _this._scopeChain[i];
|
35
|
+
currentScope = _this._scopes[scopeInChain.scopeId];
|
36
|
+
if (currentScope && key != null && currentScope[key]) {
|
37
|
+
var ret = currentScope[key](e, key, scopeInChain.scopeId);
|
38
|
+
// Fall down in chain when returning true
|
39
|
+
if (ret !== true) {
|
40
|
+
return ret;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
if (scopeInChain.options.modal) {
|
44
|
+
return true;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
return undefined;
|
48
|
+
});
|
49
|
+
_defineProperty(this, "_defaultFilter", function (e, element, key) {
|
50
|
+
// if the element or its parents have the class "ring-js-shortcuts" then no need to stop
|
51
|
+
if (element === document || !(element instanceof HTMLElement) || key == null || element.matches(_this.ALLOW_SHORTCUTS_SELECTOR) || (element.dataset.enabledShortcuts != null ? element.dataset.enabledShortcuts.split(',').includes(key) : element.closest(_this.ALLOW_SHORTCUTS_SELECTOR) != null)) {
|
52
|
+
return false;
|
53
|
+
}
|
54
|
+
// stop for input, select, and textarea
|
55
|
+
return element.matches('input:not([type=checkbox]),select,textarea') || element.contentEditable === 'true';
|
56
|
+
});
|
16
57
|
this.setFilter();
|
17
58
|
this.setScope();
|
18
59
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
60
|
+
return _createClass(Shortcuts, [{
|
61
|
+
key: "bind",
|
62
|
+
value:
|
63
|
+
/**
|
64
|
+
* Binds a handler to a shortcut
|
65
|
+
*
|
66
|
+
* @param params.key {string | Array.<string>) Keys to bind
|
67
|
+
* @param params.handler {Function} Events handle
|
68
|
+
* @param params.scope {string} Scope (optional)
|
69
|
+
* @param params.type {string} Event type, will be passed to Combokeys (optional)
|
70
|
+
*/
|
71
|
+
function bind(params) {
|
72
|
+
if (!(params instanceof Object) || typeof params.handler !== 'function') {
|
73
|
+
throw new Error('Shortcut handler should exist');
|
74
|
+
}
|
75
|
+
if (!params.scope) {
|
76
|
+
params.scope = this.ROOT_SCOPE.scopeId;
|
77
|
+
}
|
78
|
+
if (Array.isArray(params.key)) {
|
79
|
+
for (var i = 0; i < params.key.length; i++) {
|
80
|
+
this.bind(Object.assign({}, params, {
|
81
|
+
key: params.key[i]
|
82
|
+
}));
|
29
83
|
}
|
84
|
+
return;
|
30
85
|
}
|
31
|
-
if (
|
32
|
-
|
86
|
+
if (typeof params.key !== 'string') {
|
87
|
+
throw new Error('Shortcut key should exist');
|
33
88
|
}
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
/**
|
38
|
-
* Binds a handler to a shortcut
|
39
|
-
*
|
40
|
-
* @param params.key {string | Array.<string>) Keys to bind
|
41
|
-
* @param params.handler {Function} Events handle
|
42
|
-
* @param params.scope {string} Scope (optional)
|
43
|
-
* @param params.type {string} Event type, will be passed to Combokeys (optional)
|
44
|
-
*/
|
45
|
-
bind(params) {
|
46
|
-
if (!(params instanceof Object) || typeof params.handler !== 'function') {
|
47
|
-
throw new Error('Shortcut handler should exist');
|
48
|
-
}
|
49
|
-
if (!params.scope) {
|
50
|
-
params.scope = this.ROOT_SCOPE.scopeId;
|
51
|
-
}
|
52
|
-
if (Array.isArray(params.key)) {
|
53
|
-
for (let i = 0; i < params.key.length; i++) {
|
54
|
-
this.bind(Object.assign({}, params, {
|
55
|
-
key: params.key[i]
|
56
|
-
}));
|
89
|
+
var scope = this._scopes[params.scope];
|
90
|
+
if (!scope) {
|
91
|
+
scope = this._scopes[params.scope] = {};
|
57
92
|
}
|
58
|
-
|
93
|
+
scope[params.key] = params.handler;
|
94
|
+
this.combokeys.bind(params.key, this._dispatcher, this._getKeyboardEventType(params));
|
59
95
|
}
|
60
|
-
|
61
|
-
|
96
|
+
/**
|
97
|
+
* Binds a map of shortcuts to handlers with common options
|
98
|
+
*
|
99
|
+
* @map {Object) Keys to handlers map
|
100
|
+
* @options.scope {string} Scope (optional)
|
101
|
+
* @options.type {string} Event type, will be passed to Combokeys (optional)
|
102
|
+
*/
|
103
|
+
}, {
|
104
|
+
key: "bindMap",
|
105
|
+
value: function bindMap(map, options) {
|
106
|
+
if (!(map instanceof Object)) {
|
107
|
+
throw new Error('Shortcuts map shouldn\'t be empty');
|
108
|
+
}
|
109
|
+
for (var key in map) {
|
110
|
+
if (map.hasOwnProperty(key)) {
|
111
|
+
this.bind(Object.assign({}, options || {}, {
|
112
|
+
key,
|
113
|
+
handler: map[key]
|
114
|
+
}));
|
115
|
+
}
|
116
|
+
}
|
62
117
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
118
|
+
}, {
|
119
|
+
key: "unbindScope",
|
120
|
+
value: function unbindScope(scope) {
|
121
|
+
this._scopes[scope] = null;
|
66
122
|
}
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
* Binds a map of shortcuts to handlers with common options
|
72
|
-
*
|
73
|
-
* @map {Object) Keys to handlers map
|
74
|
-
* @options.scope {string} Scope (optional)
|
75
|
-
* @options.type {string} Event type, will be passed to Combokeys (optional)
|
76
|
-
*/
|
77
|
-
bindMap(map, options) {
|
78
|
-
if (!(map instanceof Object)) {
|
79
|
-
throw new Error('Shortcuts map shouldn\'t be empty');
|
123
|
+
}, {
|
124
|
+
key: "getScope",
|
125
|
+
value: function getScope() {
|
126
|
+
return this._scopeChain.slice(1);
|
80
127
|
}
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
handler: map[key]
|
86
|
-
}));
|
87
|
-
}
|
128
|
+
}, {
|
129
|
+
key: "hasScope",
|
130
|
+
value: function hasScope(scopeId) {
|
131
|
+
return this.indexOfScope(scopeId) !== -1;
|
88
132
|
}
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
pushScope(scopeId) {
|
107
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
108
|
-
if (scopeId) {
|
109
|
-
const position = this.indexOfScope(scopeId);
|
110
|
-
if (position !== -1) {
|
111
|
-
this._scopeChain.splice(position, 1);
|
133
|
+
/**
|
134
|
+
* Adds a scope to the chain
|
135
|
+
* @param scopeId id of scope to add
|
136
|
+
* @param options options for pushing scope
|
137
|
+
* @param options.modal whether keys should fall through this scope or not.
|
138
|
+
* Useful for modals or overlays
|
139
|
+
*/
|
140
|
+
}, {
|
141
|
+
key: "pushScope",
|
142
|
+
value: function pushScope(scopeId) {
|
143
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
144
|
+
if (scopeId) {
|
145
|
+
var position = this.indexOfScope(scopeId);
|
146
|
+
if (position !== -1) {
|
147
|
+
this._scopeChain.splice(position, 1);
|
148
|
+
}
|
149
|
+
this._scopeChain.push(this.wrapScope(scopeId, options));
|
112
150
|
}
|
113
|
-
this._scopeChain.push(this.wrapScope(scopeId, options));
|
114
151
|
}
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
152
|
+
}, {
|
153
|
+
key: "popScope",
|
154
|
+
value: function popScope(scopeId) {
|
155
|
+
if (scopeId) {
|
156
|
+
var position = this.indexOfScope(scopeId);
|
157
|
+
if (position !== -1) {
|
158
|
+
return this._scopeChain.splice(position, this._scopeChain.length - 1);
|
159
|
+
}
|
121
160
|
}
|
161
|
+
return undefined;
|
122
162
|
}
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
163
|
+
}, {
|
164
|
+
key: "spliceScope",
|
165
|
+
value: function spliceScope(scopeId) {
|
166
|
+
if (scopeId) {
|
167
|
+
var position = this.indexOfScope(scopeId);
|
168
|
+
if (position !== -1) {
|
169
|
+
this._scopeChain.splice(position, 1);
|
170
|
+
}
|
130
171
|
}
|
131
172
|
}
|
132
|
-
}
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
if (
|
137
|
-
scopeChain
|
173
|
+
}, {
|
174
|
+
key: "setScope",
|
175
|
+
value: function setScope(scope) {
|
176
|
+
var _this2 = this;
|
177
|
+
if (scope) {
|
178
|
+
var scopeChain;
|
179
|
+
if (typeof scope === 'string' || !Array.isArray(scope) && typeof scope === 'object' && scope !== null) {
|
180
|
+
scopeChain = [scope];
|
181
|
+
} else {
|
182
|
+
scopeChain = scope;
|
183
|
+
}
|
184
|
+
if (!Array.isArray(scopeChain)) {
|
185
|
+
return;
|
186
|
+
}
|
187
|
+
var scopes = scopeChain.map(function (scopeItem) {
|
188
|
+
var isScopeId = typeof scopeItem === 'string';
|
189
|
+
return isScopeId ? _this2.wrapScope(scopeItem) : scopeItem;
|
190
|
+
});
|
191
|
+
this._scopeChain = [this.ROOT_SCOPE].concat(scopes);
|
138
192
|
} else {
|
139
|
-
|
193
|
+
this._scopeChain = [this.ROOT_SCOPE];
|
140
194
|
}
|
141
|
-
if (!Array.isArray(scopeChain)) {
|
142
|
-
return;
|
143
|
-
}
|
144
|
-
const scopes = scopeChain.map(scopeItem => {
|
145
|
-
const isScopeId = typeof scopeItem === 'string';
|
146
|
-
return isScopeId ? this.wrapScope(scopeItem) : scopeItem;
|
147
|
-
});
|
148
|
-
this._scopeChain = [this.ROOT_SCOPE].concat(scopes);
|
149
|
-
} else {
|
150
|
-
this._scopeChain = [this.ROOT_SCOPE];
|
151
195
|
}
|
152
|
-
}
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
hasKey(key, scope) {
|
161
|
-
return !!this._scopes[scope]?.[key];
|
162
|
-
}
|
163
|
-
_defaultFilter = (e, element, key) => {
|
164
|
-
// if the element or its parents have the class "ring-js-shortcuts" then no need to stop
|
165
|
-
if (element === document || !(element instanceof HTMLElement) || key == null || element.matches(this.ALLOW_SHORTCUTS_SELECTOR) || (element.dataset.enabledShortcuts != null ? element.dataset.enabledShortcuts.split(',').includes(key) : element.closest(this.ALLOW_SHORTCUTS_SELECTOR) != null)) {
|
166
|
-
return false;
|
196
|
+
}, {
|
197
|
+
key: "wrapScope",
|
198
|
+
value: function wrapScope(scopeId) {
|
199
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
200
|
+
return {
|
201
|
+
scopeId,
|
202
|
+
options
|
203
|
+
};
|
167
204
|
}
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
if (
|
178
|
-
|
205
|
+
}, {
|
206
|
+
key: "hasKey",
|
207
|
+
value: function hasKey(key, scope) {
|
208
|
+
var _this$_scopes$scope;
|
209
|
+
return !!((_this$_scopes$scope = this._scopes[scope]) !== null && _this$_scopes$scope !== void 0 && _this$_scopes$scope[key]);
|
210
|
+
}
|
211
|
+
}, {
|
212
|
+
key: "_getKeyboardEventType",
|
213
|
+
value: function _getKeyboardEventType(params) {
|
214
|
+
if (!params.type && sniffr.os.name === 'windows') {
|
215
|
+
var isSystemShortcut = typeof params.key === 'string' && params.key.match(/ctrl/i) && params.key.match(/shift/i) && params.key.match(/[0-9]/);
|
216
|
+
/**
|
217
|
+
* Windows system shortcuts (ctrl+shift+[0-9] are caught by the OS on 'keydown', so let's use 'keyup'
|
218
|
+
*/
|
219
|
+
if (isSystemShortcut) {
|
220
|
+
return 'keyup';
|
221
|
+
}
|
179
222
|
}
|
223
|
+
return params.type;
|
180
224
|
}
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
}
|
194
|
-
|
225
|
+
}, {
|
226
|
+
key: "setFilter",
|
227
|
+
value: function setFilter(fn) {
|
228
|
+
this.combokeys.stopCallback = typeof fn === 'function' ? fn : this._defaultFilter;
|
229
|
+
}
|
230
|
+
}, {
|
231
|
+
key: "indexOfScope",
|
232
|
+
value: function indexOfScope(scopeId) {
|
233
|
+
return this._scopeChain.findIndex(function (scope) {
|
234
|
+
return scope.scopeId === scopeId;
|
235
|
+
});
|
236
|
+
}
|
237
|
+
}, {
|
238
|
+
key: "reset",
|
239
|
+
value: function reset() {
|
240
|
+
this._scopes = {};
|
241
|
+
this.setScope();
|
242
|
+
this.combokeys.reset();
|
243
|
+
}
|
244
|
+
}]);
|
245
|
+
}();
|
195
246
|
var shortcuts = new Shortcuts();
|
196
247
|
|
197
248
|
export { shortcuts as default };
|
@@ -1,7 +1,10 @@
|
|
1
|
+
import 'core-js/modules/es.array.map.js';
|
2
|
+
import 'core-js/modules/es.regexp.exec.js';
|
3
|
+
import 'core-js/modules/es.string.split.js';
|
1
4
|
import sniffr from '../global/sniffer.js';
|
2
5
|
import 'sniffr';
|
3
6
|
|
4
|
-
|
7
|
+
var macSymbolsMap = {
|
5
8
|
enter: '⏎',
|
6
9
|
shift: '⇧',
|
7
10
|
meta: '⌘',
|
@@ -21,7 +24,7 @@ const macSymbolsMap = {
|
|
21
24
|
right: '→',
|
22
25
|
down: '↓'
|
23
26
|
};
|
24
|
-
|
27
|
+
var winSymbolsMap = {
|
25
28
|
enter: 'Enter',
|
26
29
|
shift: 'Shift',
|
27
30
|
meta: 'Ctrl',
|
@@ -42,10 +45,12 @@ const winSymbolsMap = {
|
|
42
45
|
down: '↓'
|
43
46
|
};
|
44
47
|
function getShortcutTitle(shortcut) {
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
return shortcut.split(/\+/g).map(
|
48
|
+
var MAC_OS = sniffr.os.name === 'macos';
|
49
|
+
var KEY_SEPARATOR = MAC_OS ? '' : '+';
|
50
|
+
var symbolsMap = MAC_OS ? macSymbolsMap : winSymbolsMap;
|
51
|
+
return shortcut.split(/\+/g).map(function (symbol) {
|
52
|
+
return symbolsMap[symbol] || symbol.toUpperCase();
|
53
|
+
}).join(KEY_SEPARATOR);
|
49
54
|
}
|
50
55
|
|
51
56
|
export { getShortcutTitle };
|
@@ -1,33 +1,59 @@
|
|
1
|
+
import { a as _inherits, b as _createClass, _ as _defineProperty, c as _objectWithoutProperties, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
+
import 'core-js/modules/es.array.concat.js';
|
1
3
|
import React from 'react';
|
2
4
|
import PropTypes from 'prop-types';
|
3
5
|
import getUID from '../global/get-uid.js';
|
4
6
|
import Shortcuts from './shortcuts.js';
|
7
|
+
import 'core-js/modules/es.object.to-string.js';
|
8
|
+
import 'core-js/modules/es.regexp.to-string.js';
|
9
|
+
import 'core-js/modules/es.array.map.js';
|
5
10
|
import './core.js';
|
11
|
+
import 'core-js/modules/es.array.find-index.js';
|
12
|
+
import 'core-js/modules/es.array.includes.js';
|
13
|
+
import 'core-js/modules/es.array.slice.js';
|
14
|
+
import 'core-js/modules/es.array.splice.js';
|
15
|
+
import 'core-js/modules/es.object.assign.js';
|
16
|
+
import 'core-js/modules/es.regexp.exec.js';
|
17
|
+
import 'core-js/modules/es.string.includes.js';
|
18
|
+
import 'core-js/modules/es.string.match.js';
|
6
19
|
import 'combokeys';
|
7
20
|
import '../global/sniffer.js';
|
8
21
|
import 'sniffr';
|
9
22
|
|
23
|
+
var _excluded = ["rgShortcutsOptions", "rgShortcutsMap"];
|
10
24
|
function shortcutsHOC(ComposedComponent) {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
} = this.props;
|
23
|
-
return /*#__PURE__*/React.createElement(Shortcuts, {
|
24
|
-
scope: this._shortcutsScopeUid,
|
25
|
-
map: rgShortcutsMap,
|
26
|
-
options: rgShortcutsOptions,
|
27
|
-
disabled: rgShortcutsOptions.disabled
|
28
|
-
}, /*#__PURE__*/React.createElement(ComposedComponent, props));
|
25
|
+
var _WithShortcuts;
|
26
|
+
return _WithShortcuts = /*#__PURE__*/function (_React$Component) {
|
27
|
+
function WithShortcuts() {
|
28
|
+
var _this;
|
29
|
+
_classCallCheck(this, WithShortcuts);
|
30
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
31
|
+
args[_key] = arguments[_key];
|
32
|
+
}
|
33
|
+
_this = _callSuper(this, WithShortcuts, [].concat(args));
|
34
|
+
_defineProperty(_this, "_shortcutsScopeUid", getUID('rg-shortcuts-'));
|
35
|
+
return _this;
|
29
36
|
}
|
30
|
-
|
37
|
+
_inherits(WithShortcuts, _React$Component);
|
38
|
+
return _createClass(WithShortcuts, [{
|
39
|
+
key: "render",
|
40
|
+
value: function render() {
|
41
|
+
var _this$props = this.props,
|
42
|
+
rgShortcutsOptions = _this$props.rgShortcutsOptions,
|
43
|
+
rgShortcutsMap = _this$props.rgShortcutsMap,
|
44
|
+
props = _objectWithoutProperties(_this$props, _excluded);
|
45
|
+
return /*#__PURE__*/React.createElement(Shortcuts, {
|
46
|
+
scope: this._shortcutsScopeUid,
|
47
|
+
map: rgShortcutsMap,
|
48
|
+
options: rgShortcutsOptions,
|
49
|
+
disabled: rgShortcutsOptions.disabled
|
50
|
+
}, /*#__PURE__*/React.createElement(ComposedComponent, props));
|
51
|
+
}
|
52
|
+
}]);
|
53
|
+
}(React.Component), _defineProperty(_WithShortcuts, "propTypes", {
|
54
|
+
rgShortcutsOptions: PropTypes.object,
|
55
|
+
rgShortcutsMap: PropTypes.object
|
56
|
+
}), _WithShortcuts;
|
31
57
|
}
|
32
58
|
|
33
59
|
export { shortcutsHOC as default };
|
@@ -1,65 +1,90 @@
|
|
1
|
+
import { _ as _defineProperty, a as _inherits, b as _createClass, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
+
import 'core-js/modules/es.array.map.js';
|
1
3
|
import { PureComponent } from 'react';
|
2
4
|
import PropTypes from 'prop-types';
|
3
5
|
import shortcuts from './core.js';
|
6
|
+
import 'core-js/modules/es.array.concat.js';
|
7
|
+
import 'core-js/modules/es.array.find-index.js';
|
8
|
+
import 'core-js/modules/es.array.includes.js';
|
9
|
+
import 'core-js/modules/es.array.slice.js';
|
10
|
+
import 'core-js/modules/es.array.splice.js';
|
11
|
+
import 'core-js/modules/es.object.assign.js';
|
12
|
+
import 'core-js/modules/es.regexp.exec.js';
|
13
|
+
import 'core-js/modules/es.string.includes.js';
|
14
|
+
import 'core-js/modules/es.string.match.js';
|
4
15
|
import 'combokeys';
|
5
16
|
import '../global/sniffer.js';
|
6
17
|
import 'sniffr';
|
7
18
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
options: PropTypes.object,
|
13
|
-
disabled: PropTypes.bool,
|
14
|
-
children: PropTypes.node
|
15
|
-
};
|
16
|
-
static defaultProps = {
|
17
|
-
options: {}
|
18
|
-
};
|
19
|
-
componentDidMount() {
|
20
|
-
if (!this.props.disabled) {
|
21
|
-
this.turnShorcutsOn();
|
22
|
-
}
|
19
|
+
var Shortcuts = /*#__PURE__*/function (_PureComponent) {
|
20
|
+
function Shortcuts() {
|
21
|
+
_classCallCheck(this, Shortcuts);
|
22
|
+
return _callSuper(this, Shortcuts, arguments);
|
23
23
|
}
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
24
|
+
_inherits(Shortcuts, _PureComponent);
|
25
|
+
return _createClass(Shortcuts, [{
|
26
|
+
key: "componentDidMount",
|
27
|
+
value: function componentDidMount() {
|
28
|
+
if (!this.props.disabled) {
|
29
|
+
this.turnShorcutsOn();
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}, {
|
33
|
+
key: "componentDidUpdate",
|
34
|
+
value: function componentDidUpdate(prevProps) {
|
35
|
+
var _this$props = this.props,
|
36
|
+
disabled = _this$props.disabled,
|
37
|
+
map = _this$props.map;
|
38
|
+
if (!prevProps.disabled && disabled) {
|
39
|
+
this.turnShorcutsOff();
|
40
|
+
}
|
41
|
+
if (prevProps.disabled && !disabled) {
|
42
|
+
this.turnShorcutsOn();
|
43
|
+
}
|
44
|
+
if (prevProps.map !== map) {
|
45
|
+
shortcuts.bindMap(map, this.props);
|
46
|
+
}
|
31
47
|
}
|
32
|
-
|
33
|
-
|
48
|
+
}, {
|
49
|
+
key: "componentWillUnmount",
|
50
|
+
value: function componentWillUnmount() {
|
51
|
+
if (!this.props.disabled) {
|
52
|
+
this.turnShorcutsOff();
|
53
|
+
}
|
34
54
|
}
|
35
|
-
|
55
|
+
}, {
|
56
|
+
key: "turnShorcutsOn",
|
57
|
+
value: function turnShorcutsOn() {
|
58
|
+
var _this$props2 = this.props,
|
59
|
+
map = _this$props2.map,
|
60
|
+
scope = _this$props2.scope,
|
61
|
+
options = _this$props2.options;
|
36
62
|
shortcuts.bindMap(map, this.props);
|
63
|
+
shortcuts.pushScope(scope, options);
|
37
64
|
}
|
38
|
-
}
|
39
|
-
|
40
|
-
|
41
|
-
this.
|
65
|
+
}, {
|
66
|
+
key: "turnShorcutsOff",
|
67
|
+
value: function turnShorcutsOff() {
|
68
|
+
var scope = this.props.scope;
|
69
|
+
shortcuts.unbindScope(scope);
|
70
|
+
shortcuts.spliceScope(scope);
|
42
71
|
}
|
43
|
-
}
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
render() {
|
61
|
-
return this.props.children || null;
|
62
|
-
}
|
63
|
-
}
|
72
|
+
}, {
|
73
|
+
key: "render",
|
74
|
+
value: function render() {
|
75
|
+
return this.props.children || null;
|
76
|
+
}
|
77
|
+
}]);
|
78
|
+
}(PureComponent);
|
79
|
+
_defineProperty(Shortcuts, "propTypes", {
|
80
|
+
map: PropTypes.object.isRequired,
|
81
|
+
scope: PropTypes.string.isRequired,
|
82
|
+
options: PropTypes.object,
|
83
|
+
disabled: PropTypes.bool,
|
84
|
+
children: PropTypes.node
|
85
|
+
});
|
86
|
+
_defineProperty(Shortcuts, "defaultProps", {
|
87
|
+
options: {}
|
88
|
+
});
|
64
89
|
|
65
90
|
export { Shortcuts as default };
|