@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.
Files changed (225) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +1 -567
  2. package/components/_helpers/anchor.js +7 -6
  3. package/components/_helpers/button__classes.js +16 -14
  4. package/components/_helpers/caption.js +14 -20
  5. package/components/_helpers/card.js +95 -105
  6. package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
  7. package/components/_helpers/icon__svg.js +22 -25
  8. package/components/_helpers/input.js +146 -177
  9. package/components/_helpers/query-assist__suggestions.js +74 -90
  10. package/components/_helpers/select__filter.js +48 -69
  11. package/components/_helpers/services-link.js +29 -37
  12. package/components/_helpers/sidebar.js +99 -107
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +31 -40
  15. package/components/_helpers/title.js +57 -72
  16. package/components/alert/alert.js +150 -202
  17. package/components/alert/container.js +32 -41
  18. package/components/alert-service/alert-service.js +105 -170
  19. package/components/analytics/analytics.js +12 -22
  20. package/components/analytics/analytics__custom-plugin.js +54 -75
  21. package/components/auth/auth.js +4 -36
  22. package/components/auth/auth__core.js +746 -1471
  23. package/components/auth/background-flow.js +87 -127
  24. package/components/auth/down-notification.js +30 -73
  25. package/components/auth/iframe-flow.js +75 -133
  26. package/components/auth/request-builder.js +46 -82
  27. package/components/auth/response-parser.js +86 -116
  28. package/components/auth/storage.js +171 -334
  29. package/components/auth/token-validator.js +137 -242
  30. package/components/auth/window-flow.js +92 -134
  31. package/components/auth-dialog/auth-dialog.js +114 -172
  32. package/components/auth-dialog-service/auth-dialog-service.js +8 -31
  33. package/components/avatar/avatar-example-datauri.js +23 -1
  34. package/components/avatar/avatar.js +119 -152
  35. package/components/avatar/fallback-avatar.js +22 -38
  36. package/components/badge/badge.js +35 -45
  37. package/components/button/button.js +86 -107
  38. package/components/button-group/button-group.js +19 -33
  39. package/components/button-set/button-set.js +20 -32
  40. package/components/button-toolbar/button-toolbar.js +19 -31
  41. package/components/caret/caret.js +186 -220
  42. package/components/checkbox/checkbox.js +76 -101
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +35 -132
  45. package/components/code/code.js +92 -166
  46. package/components/collapse/collapse-content.js +42 -64
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +12 -14
  49. package/components/collapse/collapse.js +11 -17
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +1 -3
  52. package/components/confirm/confirm.js +66 -104
  53. package/components/confirm-service/confirm-service.js +37 -59
  54. package/components/content-layout/content-layout.js +43 -64
  55. package/components/content-layout/sidebar.js +0 -1
  56. package/components/contenteditable/contenteditable.js +50 -59
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +129 -182
  59. package/components/data-list/data-list.mock.js +2 -6
  60. package/components/data-list/item.js +143 -170
  61. package/components/data-list/selection.js +76 -136
  62. package/components/data-list/title.js +1 -12
  63. package/components/date-picker/consts.js +19 -26
  64. package/components/date-picker/date-input.js +113 -144
  65. package/components/date-picker/date-picker.js +227 -282
  66. package/components/date-picker/date-popup.js +350 -395
  67. package/components/date-picker/day.js +87 -116
  68. package/components/date-picker/month-names.js +43 -66
  69. package/components/date-picker/month-slider.js +51 -76
  70. package/components/date-picker/month.js +16 -25
  71. package/components/date-picker/months.js +43 -50
  72. package/components/date-picker/weekdays.js +12 -22
  73. package/components/date-picker/years.js +83 -110
  74. package/components/dialog/dialog.js +142 -190
  75. package/components/dialog/dialog__body-scroll-preventer.js +0 -4
  76. package/components/dropdown/anchor.js +0 -9
  77. package/components/dropdown/dropdown.js +182 -213
  78. package/components/dropdown-menu/dropdown-menu.js +71 -97
  79. package/components/editable-heading/editable-heading.js +75 -127
  80. package/components/error-bubble/error-bubble.js +31 -60
  81. package/components/error-message/error-message.js +39 -59
  82. package/components/footer/footer.js +27 -30
  83. package/components/global/compose.js +1 -10
  84. package/components/global/composeRefs.js +7 -12
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +6 -14
  88. package/components/global/dom.js +47 -86
  89. package/components/global/focus-sensor-hoc.js +122 -132
  90. package/components/global/fuzzy-highlight.js +22 -36
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +4 -8
  93. package/components/global/inject-styles.js +10 -15
  94. package/components/global/listeners.js +27 -51
  95. package/components/global/memoize.js +6 -12
  96. package/components/global/normalize-indent.js +19 -50
  97. package/components/global/promise-with-timeout.js +6 -8
  98. package/components/global/prop-types.js +3 -5
  99. package/components/global/react-dom-renderer.js +28 -44
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +12 -30
  102. package/components/global/schedule-raf.js +5 -6
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +0 -22
  105. package/components/global/trivial-template-tag.js +3 -10
  106. package/components/global/typescript-utils.js +2 -6
  107. package/components/global/url.js +20 -26
  108. package/components/global/use-event-callback.js +6 -4
  109. package/components/grid/col.js +35 -52
  110. package/components/grid/grid.js +17 -31
  111. package/components/grid/row.js +35 -47
  112. package/components/group/group.js +17 -25
  113. package/components/header/header.js +33 -78
  114. package/components/header/logo.js +20 -36
  115. package/components/header/profile.js +166 -199
  116. package/components/header/services-link.js +0 -4
  117. package/components/header/services.js +73 -116
  118. package/components/header/smart-profile.js +111 -203
  119. package/components/header/smart-services.js +62 -113
  120. package/components/header/tray-icon.js +21 -37
  121. package/components/header/tray.js +21 -32
  122. package/components/heading/heading.js +24 -25
  123. package/components/http/http.d.ts +1 -3
  124. package/components/http/http.js +203 -353
  125. package/components/http/http.mock.js +49 -101
  126. package/components/hub-source/hub-source.js +83 -190
  127. package/components/hub-source/hub-source__user.js +11 -44
  128. package/components/hub-source/hub-source__users-groups.js +37 -65
  129. package/components/i18n/i18n-context.js +7 -10
  130. package/components/i18n/i18n.js +7 -10
  131. package/components/icon/icon.js +76 -93
  132. package/components/icon/icon__svg.js +0 -8
  133. package/components/icon/index.js +0 -8
  134. package/components/input/input.js +0 -13
  135. package/components/island/adaptive-island-hoc.js +30 -43
  136. package/components/island/content.js +115 -132
  137. package/components/island/header.js +57 -70
  138. package/components/island/island.js +28 -40
  139. package/components/island-legacy/content-legacy.js +17 -25
  140. package/components/island-legacy/header-legacy.js +19 -27
  141. package/components/island-legacy/island-legacy.js +17 -25
  142. package/components/link/clickableLink.js +44 -59
  143. package/components/link/link.js +57 -68
  144. package/components/list/consts.js +2 -2
  145. package/components/list/list.js +611 -698
  146. package/components/list/list__custom.js +44 -62
  147. package/components/list/list__hint.js +10 -19
  148. package/components/list/list__item.js +133 -174
  149. package/components/list/list__link.js +37 -50
  150. package/components/list/list__separator.js +14 -24
  151. package/components/list/list__title.js +22 -32
  152. package/components/list/list__users-groups-source.js +54 -126
  153. package/components/loader/loader.js +43 -74
  154. package/components/loader/loader__core.js +198 -263
  155. package/components/loader-inline/loader-inline.js +23 -35
  156. package/components/loader-screen/loader-screen.js +25 -46
  157. package/components/login-dialog/login-dialog.js +111 -158
  158. package/components/login-dialog/service.js +8 -34
  159. package/components/markdown/markdown.js +15 -23
  160. package/components/message/message.js +161 -203
  161. package/components/old-browsers-message/old-browsers-message.js +11 -18
  162. package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
  163. package/components/old-browsers-message/white-list.js +8 -16
  164. package/components/pager/pager.js +212 -271
  165. package/components/panel/panel.js +17 -25
  166. package/components/permissions/permissions.js +127 -172
  167. package/components/permissions/permissions__cache.js +194 -224
  168. package/components/popup/popup.consts.js +1 -1
  169. package/components/popup/popup.js +284 -343
  170. package/components/popup/popup.target.js +9 -8
  171. package/components/popup/position.js +96 -106
  172. package/components/popup-menu/popup-menu.js +44 -80
  173. package/components/progress-bar/progress-bar.js +87 -104
  174. package/components/query-assist/query-assist.js +838 -916
  175. package/components/query-assist/query-assist__suggestions.js +1 -30
  176. package/components/radio/radio.js +19 -34
  177. package/components/radio/radio__item.js +52 -69
  178. package/components/select/select.js +852 -957
  179. package/components/select/select__filter.js +0 -30
  180. package/components/select/select__popup.js +373 -487
  181. package/components/shortcuts/core.js +166 -217
  182. package/components/shortcuts/shortcut-title.js +6 -11
  183. package/components/shortcuts/shortcuts-hoc.js +19 -45
  184. package/components/shortcuts/shortcuts.js +50 -75
  185. package/components/slider/slider.js +99 -122
  186. package/components/slider/slider.utils.js +14 -24
  187. package/components/storage/storage.js +4 -33
  188. package/components/storage/storage__fallback.js +149 -224
  189. package/components/storage/storage__local.js +90 -153
  190. package/components/tab-trap/tab-trap.js +122 -153
  191. package/components/table/cell.js +14 -26
  192. package/components/table/disable-hover-hoc.js +33 -51
  193. package/components/table/header-cell.js +64 -89
  194. package/components/table/header.js +104 -132
  195. package/components/table/multitable.js +107 -125
  196. package/components/table/row-with-focus-sensor.js +25 -69
  197. package/components/table/row.js +175 -216
  198. package/components/table/selection-adapter.js +1 -3
  199. package/components/table/selection-shortcuts-hoc.js +180 -181
  200. package/components/table/selection.js +156 -226
  201. package/components/table/smart-table.js +50 -88
  202. package/components/table/table.js +289 -358
  203. package/components/tabs/collapsible-more.js +46 -79
  204. package/components/tabs/collapsible-tab.js +31 -38
  205. package/components/tabs/collapsible-tabs.js +88 -153
  206. package/components/tabs/custom-item.js +4 -2
  207. package/components/tabs/dumb-tabs.js +74 -117
  208. package/components/tabs/smart-tabs.js +29 -69
  209. package/components/tabs/tab-link.js +1 -5
  210. package/components/tabs/tab.js +19 -31
  211. package/components/tabs/tabs.js +0 -31
  212. package/components/tag/tag.js +133 -173
  213. package/components/tags-input/tags-input.js +329 -427
  214. package/components/tags-list/tags-list.js +57 -78
  215. package/components/text/text.js +28 -39
  216. package/components/toggle/toggle.js +56 -70
  217. package/components/tooltip/tooltip.js +146 -190
  218. package/components/user-agreement/service.js +228 -371
  219. package/components/user-agreement/toolbox.eula.js +160 -1
  220. package/components/user-agreement/user-agreement.js +85 -120
  221. package/components/user-card/card.js +0 -29
  222. package/components/user-card/smart-user-card-tooltip.js +51 -111
  223. package/components/user-card/tooltip.js +47 -84
  224. package/components/user-card/user-card.js +0 -29
  225. package/package.json +1 -1
@@ -1,248 +1,197 @@
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';
12
1
  import Combokeys from 'combokeys';
13
2
  import sniffr from '../global/sniffer.js';
14
3
  import 'sniffr';
15
4
 
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
- });
5
+ class Shortcuts {
6
+ ALLOW_SHORTCUTS_SELECTOR = '.ring-js-shortcuts';
7
+ ROOT_SCOPE = {
8
+ scopeId: 'ROOT',
9
+ options: {}
10
+ };
11
+ _scopes = {};
12
+ _scopeChain = [];
13
+ combokeys = new Combokeys(document.documentElement);
14
+ trigger = combo => this.combokeys.trigger(combo);
15
+ constructor() {
57
16
  this.setFilter();
58
17
  this.setScope();
59
18
  }
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
- }));
19
+ _dispatcher = (e, key) => {
20
+ let currentScope;
21
+ for (let i = this._scopeChain.length - 1; i >= 0; i--) {
22
+ const scopeInChain = this._scopeChain[i];
23
+ currentScope = this._scopes[scopeInChain.scopeId];
24
+ if (currentScope && key != null && currentScope[key]) {
25
+ const ret = currentScope[key](e, key, scopeInChain.scopeId);
26
+ // Fall down in chain when returning true
27
+ if (ret !== true) {
28
+ return ret;
83
29
  }
84
- return;
85
- }
86
- if (typeof params.key !== 'string') {
87
- throw new Error('Shortcut key should exist');
88
30
  }
89
- var scope = this._scopes[params.scope];
90
- if (!scope) {
91
- scope = this._scopes[params.scope] = {};
31
+ if (scopeInChain.options.modal) {
32
+ return true;
92
33
  }
93
- scope[params.key] = params.handler;
94
- this.combokeys.bind(params.key, this._dispatcher, this._getKeyboardEventType(params));
95
34
  }
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
- }
35
+ return undefined;
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
+ }));
116
57
  }
58
+ return;
117
59
  }
118
- }, {
119
- key: "unbindScope",
120
- value: function unbindScope(scope) {
121
- this._scopes[scope] = null;
60
+ if (typeof params.key !== 'string') {
61
+ throw new Error('Shortcut key should exist');
122
62
  }
123
- }, {
124
- key: "getScope",
125
- value: function getScope() {
126
- return this._scopeChain.slice(1);
63
+ let scope = this._scopes[params.scope];
64
+ if (!scope) {
65
+ scope = this._scopes[params.scope] = {};
127
66
  }
128
- }, {
129
- key: "hasScope",
130
- value: function hasScope(scopeId) {
131
- return this.indexOfScope(scopeId) !== -1;
67
+ scope[params.key] = params.handler;
68
+ this.combokeys.bind(params.key, this._dispatcher, this._getKeyboardEventType(params));
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');
132
80
  }
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));
81
+ for (const key in map) {
82
+ if (map.hasOwnProperty(key)) {
83
+ this.bind(Object.assign({}, options || {}, {
84
+ key,
85
+ handler: map[key]
86
+ }));
150
87
  }
151
88
  }
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
- }
89
+ }
90
+ unbindScope(scope) {
91
+ this._scopes[scope] = null;
92
+ }
93
+ getScope() {
94
+ return this._scopeChain.slice(1);
95
+ }
96
+ hasScope(scopeId) {
97
+ return this.indexOfScope(scopeId) !== -1;
98
+ }
99
+ /**
100
+ * Adds a scope to the chain
101
+ * @param scopeId id of scope to add
102
+ * @param options options for pushing scope
103
+ * @param options.modal whether keys should fall through this scope or not.
104
+ * Useful for modals or overlays
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);
160
112
  }
161
- return undefined;
113
+ this._scopeChain.push(this.wrapScope(scopeId, options));
162
114
  }
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
- }
115
+ }
116
+ popScope(scopeId) {
117
+ if (scopeId) {
118
+ const position = this.indexOfScope(scopeId);
119
+ if (position !== -1) {
120
+ return this._scopeChain.splice(position, this._scopeChain.length - 1);
171
121
  }
172
122
  }
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);
192
- } else {
193
- this._scopeChain = [this.ROOT_SCOPE];
123
+ return undefined;
124
+ }
125
+ spliceScope(scopeId) {
126
+ if (scopeId) {
127
+ const position = this.indexOfScope(scopeId);
128
+ if (position !== -1) {
129
+ this._scopeChain.splice(position, 1);
194
130
  }
195
131
  }
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
- };
204
- }
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
- }
132
+ }
133
+ setScope(scope) {
134
+ if (scope) {
135
+ let scopeChain;
136
+ if (typeof scope === 'string' || !Array.isArray(scope) && typeof scope === 'object' && scope !== null) {
137
+ scopeChain = [scope];
138
+ } else {
139
+ scopeChain = scope;
222
140
  }
223
- return params.type;
224
- }
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;
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;
235
147
  });
148
+ this._scopeChain = [this.ROOT_SCOPE].concat(scopes);
149
+ } else {
150
+ this._scopeChain = [this.ROOT_SCOPE];
151
+ }
152
+ }
153
+ wrapScope(scopeId) {
154
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
155
+ return {
156
+ scopeId,
157
+ options
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;
236
167
  }
237
- }, {
238
- key: "reset",
239
- value: function reset() {
240
- this._scopes = {};
241
- this.setScope();
242
- this.combokeys.reset();
168
+ // stop for input, select, and textarea
169
+ return element.matches('input:not([type=checkbox]),select,textarea') || element.contentEditable === 'true';
170
+ };
171
+ _getKeyboardEventType(params) {
172
+ if (!params.type && sniffr.os.name === 'windows') {
173
+ const isSystemShortcut = typeof params.key === 'string' && params.key.match(/ctrl/i) && params.key.match(/shift/i) && params.key.match(/[0-9]/);
174
+ /**
175
+ * Windows system shortcuts (ctrl+shift+[0-9] are caught by the OS on 'keydown', so let's use 'keyup'
176
+ */
177
+ if (isSystemShortcut) {
178
+ return 'keyup';
179
+ }
243
180
  }
244
- }]);
245
- }();
181
+ return params.type;
182
+ }
183
+ setFilter(fn) {
184
+ this.combokeys.stopCallback = typeof fn === 'function' ? fn : this._defaultFilter;
185
+ }
186
+ indexOfScope(scopeId) {
187
+ return this._scopeChain.findIndex(scope => scope.scopeId === scopeId);
188
+ }
189
+ reset() {
190
+ this._scopes = {};
191
+ this.setScope();
192
+ this.combokeys.reset();
193
+ }
194
+ }
246
195
  var shortcuts = new Shortcuts();
247
196
 
248
197
  export { shortcuts as default };
@@ -1,10 +1,7 @@
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';
4
1
  import sniffr from '../global/sniffer.js';
5
2
  import 'sniffr';
6
3
 
7
- var macSymbolsMap = {
4
+ const macSymbolsMap = {
8
5
  enter: '⏎',
9
6
  shift: '⇧',
10
7
  meta: '⌘',
@@ -24,7 +21,7 @@ var macSymbolsMap = {
24
21
  right: '→',
25
22
  down: '↓'
26
23
  };
27
- var winSymbolsMap = {
24
+ const winSymbolsMap = {
28
25
  enter: 'Enter',
29
26
  shift: 'Shift',
30
27
  meta: 'Ctrl',
@@ -45,12 +42,10 @@ var winSymbolsMap = {
45
42
  down: '↓'
46
43
  };
47
44
  function getShortcutTitle(shortcut) {
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);
45
+ const MAC_OS = sniffr.os.name === 'macos';
46
+ const KEY_SEPARATOR = MAC_OS ? '' : '+';
47
+ const symbolsMap = MAC_OS ? macSymbolsMap : winSymbolsMap;
48
+ return shortcut.split(/\+/g).map(symbol => symbolsMap[symbol] || symbol.toUpperCase()).join(KEY_SEPARATOR);
54
49
  }
55
50
 
56
51
  export { getShortcutTitle };
@@ -1,59 +1,33 @@
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';
3
1
  import React from 'react';
4
2
  import PropTypes from 'prop-types';
5
3
  import getUID from '../global/get-uid.js';
6
4
  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';
10
5
  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';
19
6
  import 'combokeys';
20
7
  import '../global/sniffer.js';
21
8
  import 'sniffr';
22
9
 
23
- var _excluded = ["rgShortcutsOptions", "rgShortcutsMap"];
24
10
  function shortcutsHOC(ComposedComponent) {
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;
11
+ return class WithShortcuts extends React.Component {
12
+ static propTypes = {
13
+ rgShortcutsOptions: PropTypes.object,
14
+ rgShortcutsMap: PropTypes.object
15
+ };
16
+ _shortcutsScopeUid = getUID('rg-shortcuts-');
17
+ render() {
18
+ const {
19
+ rgShortcutsOptions,
20
+ rgShortcutsMap,
21
+ ...props
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));
36
29
  }
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;
30
+ };
57
31
  }
58
32
 
59
33
  export { shortcutsHOC as default };