@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.
Files changed (224) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +567 -1
  2. package/components/_helpers/anchor.js +6 -7
  3. package/components/_helpers/button__classes.js +14 -16
  4. package/components/_helpers/caption.js +20 -14
  5. package/components/_helpers/card.js +105 -95
  6. package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
  7. package/components/_helpers/icon__svg.js +25 -22
  8. package/components/_helpers/input.js +177 -146
  9. package/components/_helpers/query-assist__suggestions.js +90 -74
  10. package/components/_helpers/select__filter.js +69 -48
  11. package/components/_helpers/services-link.js +37 -29
  12. package/components/_helpers/sidebar.js +107 -99
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +40 -31
  15. package/components/_helpers/title.js +72 -57
  16. package/components/alert/alert.js +202 -150
  17. package/components/alert/container.js +41 -32
  18. package/components/alert-service/alert-service.js +170 -105
  19. package/components/analytics/analytics.js +22 -12
  20. package/components/analytics/analytics__custom-plugin.js +75 -54
  21. package/components/auth/auth.js +36 -4
  22. package/components/auth/auth__core.js +1471 -746
  23. package/components/auth/background-flow.js +127 -87
  24. package/components/auth/down-notification.js +73 -30
  25. package/components/auth/iframe-flow.js +133 -75
  26. package/components/auth/request-builder.js +82 -46
  27. package/components/auth/response-parser.js +116 -86
  28. package/components/auth/storage.js +334 -171
  29. package/components/auth/token-validator.js +242 -137
  30. package/components/auth/window-flow.js +134 -92
  31. package/components/auth-dialog/auth-dialog.js +172 -114
  32. package/components/auth-dialog-service/auth-dialog-service.js +31 -8
  33. package/components/avatar/avatar-example-datauri.js +1 -23
  34. package/components/avatar/avatar.js +152 -119
  35. package/components/avatar/fallback-avatar.js +38 -22
  36. package/components/badge/badge.js +45 -35
  37. package/components/button/button.js +107 -86
  38. package/components/button-group/button-group.js +33 -19
  39. package/components/button-set/button-set.js +32 -20
  40. package/components/button-toolbar/button-toolbar.js +31 -19
  41. package/components/caret/caret.js +220 -186
  42. package/components/checkbox/checkbox.js +101 -76
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +132 -35
  45. package/components/code/code.js +166 -92
  46. package/components/collapse/collapse-content.js +64 -42
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +14 -12
  49. package/components/collapse/collapse.js +17 -11
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +3 -1
  52. package/components/confirm/confirm.js +104 -66
  53. package/components/confirm-service/confirm-service.js +59 -37
  54. package/components/content-layout/content-layout.js +64 -43
  55. package/components/content-layout/sidebar.js +1 -0
  56. package/components/contenteditable/contenteditable.js +59 -50
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +182 -129
  59. package/components/data-list/data-list.mock.js +6 -2
  60. package/components/data-list/item.js +170 -143
  61. package/components/data-list/selection.js +136 -76
  62. package/components/data-list/title.js +12 -1
  63. package/components/date-picker/consts.js +26 -19
  64. package/components/date-picker/date-input.js +144 -113
  65. package/components/date-picker/date-picker.js +282 -227
  66. package/components/date-picker/date-popup.js +395 -350
  67. package/components/date-picker/day.js +116 -87
  68. package/components/date-picker/month-names.js +66 -43
  69. package/components/date-picker/month-slider.js +76 -51
  70. package/components/date-picker/month.js +25 -16
  71. package/components/date-picker/months.js +50 -43
  72. package/components/date-picker/weekdays.js +22 -12
  73. package/components/date-picker/years.js +110 -83
  74. package/components/dialog/dialog.js +190 -142
  75. package/components/dialog/dialog__body-scroll-preventer.js +4 -0
  76. package/components/dropdown/anchor.js +9 -0
  77. package/components/dropdown/dropdown.js +213 -182
  78. package/components/dropdown-menu/dropdown-menu.js +97 -71
  79. package/components/editable-heading/editable-heading.js +127 -75
  80. package/components/error-bubble/error-bubble.js +60 -31
  81. package/components/error-message/error-message.js +59 -39
  82. package/components/footer/footer.js +30 -27
  83. package/components/global/compose.js +10 -1
  84. package/components/global/composeRefs.js +12 -7
  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 +14 -6
  88. package/components/global/dom.js +86 -47
  89. package/components/global/focus-sensor-hoc.js +132 -122
  90. package/components/global/fuzzy-highlight.js +36 -22
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +8 -4
  93. package/components/global/inject-styles.js +15 -10
  94. package/components/global/listeners.js +51 -27
  95. package/components/global/memoize.js +12 -6
  96. package/components/global/normalize-indent.js +50 -19
  97. package/components/global/promise-with-timeout.js +8 -6
  98. package/components/global/prop-types.js +5 -3
  99. package/components/global/react-dom-renderer.js +44 -28
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +30 -12
  102. package/components/global/schedule-raf.js +6 -5
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +22 -0
  105. package/components/global/trivial-template-tag.js +10 -3
  106. package/components/global/typescript-utils.js +6 -2
  107. package/components/global/url.js +26 -20
  108. package/components/global/use-event-callback.js +4 -6
  109. package/components/grid/col.js +52 -35
  110. package/components/grid/grid.js +31 -17
  111. package/components/grid/row.js +47 -35
  112. package/components/group/group.js +25 -17
  113. package/components/header/header.js +78 -33
  114. package/components/header/logo.js +36 -20
  115. package/components/header/profile.js +199 -166
  116. package/components/header/services-link.js +4 -0
  117. package/components/header/services.js +116 -73
  118. package/components/header/smart-profile.js +203 -111
  119. package/components/header/smart-services.js +113 -62
  120. package/components/header/tray-icon.js +37 -21
  121. package/components/header/tray.js +32 -21
  122. package/components/heading/heading.js +25 -24
  123. package/components/http/http.js +353 -203
  124. package/components/http/http.mock.js +101 -49
  125. package/components/hub-source/hub-source.js +190 -83
  126. package/components/hub-source/hub-source__user.js +44 -11
  127. package/components/hub-source/hub-source__users-groups.js +65 -37
  128. package/components/i18n/i18n-context.js +10 -7
  129. package/components/i18n/i18n.js +10 -7
  130. package/components/icon/icon.js +93 -76
  131. package/components/icon/icon__svg.js +8 -0
  132. package/components/icon/index.js +8 -0
  133. package/components/input/input.js +13 -0
  134. package/components/island/adaptive-island-hoc.js +43 -30
  135. package/components/island/content.js +132 -115
  136. package/components/island/header.js +70 -57
  137. package/components/island/island.js +40 -28
  138. package/components/island-legacy/content-legacy.js +25 -17
  139. package/components/island-legacy/header-legacy.js +27 -19
  140. package/components/island-legacy/island-legacy.js +25 -17
  141. package/components/link/clickableLink.js +59 -44
  142. package/components/link/link.js +68 -57
  143. package/components/list/consts.js +2 -2
  144. package/components/list/list.js +698 -611
  145. package/components/list/list__custom.js +62 -44
  146. package/components/list/list__hint.js +19 -10
  147. package/components/list/list__item.js +174 -133
  148. package/components/list/list__link.js +50 -37
  149. package/components/list/list__separator.js +24 -14
  150. package/components/list/list__title.js +32 -22
  151. package/components/list/list__users-groups-source.js +126 -54
  152. package/components/loader/loader.js +74 -43
  153. package/components/loader/loader__core.js +263 -198
  154. package/components/loader-inline/loader-inline.js +35 -23
  155. package/components/loader-screen/loader-screen.js +46 -25
  156. package/components/login-dialog/login-dialog.js +158 -111
  157. package/components/login-dialog/service.js +34 -8
  158. package/components/markdown/markdown.js +23 -15
  159. package/components/message/message.js +203 -161
  160. package/components/old-browsers-message/old-browsers-message.js +18 -11
  161. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  162. package/components/old-browsers-message/white-list.js +16 -8
  163. package/components/pager/pager.js +271 -212
  164. package/components/panel/panel.js +25 -17
  165. package/components/permissions/permissions.js +172 -127
  166. package/components/permissions/permissions__cache.js +224 -194
  167. package/components/popup/popup.consts.js +1 -1
  168. package/components/popup/popup.js +343 -284
  169. package/components/popup/popup.target.js +8 -9
  170. package/components/popup/position.js +106 -96
  171. package/components/popup-menu/popup-menu.js +81 -44
  172. package/components/progress-bar/progress-bar.js +104 -87
  173. package/components/query-assist/query-assist.js +916 -838
  174. package/components/query-assist/query-assist__suggestions.js +30 -1
  175. package/components/radio/radio.js +34 -19
  176. package/components/radio/radio__item.js +69 -52
  177. package/components/select/select.js +957 -852
  178. package/components/select/select__filter.js +30 -0
  179. package/components/select/select__popup.js +487 -373
  180. package/components/shortcuts/core.js +217 -166
  181. package/components/shortcuts/shortcut-title.js +11 -6
  182. package/components/shortcuts/shortcuts-hoc.js +45 -19
  183. package/components/shortcuts/shortcuts.js +75 -50
  184. package/components/slider/slider.js +122 -99
  185. package/components/slider/slider.utils.js +24 -14
  186. package/components/storage/storage.js +33 -4
  187. package/components/storage/storage__fallback.js +224 -149
  188. package/components/storage/storage__local.js +153 -90
  189. package/components/tab-trap/tab-trap.js +153 -122
  190. package/components/table/cell.js +26 -14
  191. package/components/table/disable-hover-hoc.js +51 -33
  192. package/components/table/header-cell.js +89 -64
  193. package/components/table/header.js +132 -104
  194. package/components/table/multitable.js +125 -107
  195. package/components/table/row-with-focus-sensor.js +69 -25
  196. package/components/table/row.js +216 -175
  197. package/components/table/selection-adapter.js +3 -1
  198. package/components/table/selection-shortcuts-hoc.js +181 -180
  199. package/components/table/selection.js +226 -156
  200. package/components/table/smart-table.js +88 -50
  201. package/components/table/table.js +358 -289
  202. package/components/tabs/collapsible-more.js +79 -46
  203. package/components/tabs/collapsible-tab.js +38 -31
  204. package/components/tabs/collapsible-tabs.js +153 -88
  205. package/components/tabs/custom-item.js +2 -4
  206. package/components/tabs/dumb-tabs.js +117 -74
  207. package/components/tabs/smart-tabs.js +69 -29
  208. package/components/tabs/tab-link.js +5 -1
  209. package/components/tabs/tab.js +31 -19
  210. package/components/tabs/tabs.js +31 -0
  211. package/components/tag/tag.js +173 -133
  212. package/components/tags-input/tags-input.js +427 -329
  213. package/components/tags-list/tags-list.js +78 -57
  214. package/components/text/text.js +39 -28
  215. package/components/toggle/toggle.js +70 -56
  216. package/components/tooltip/tooltip.js +190 -146
  217. package/components/user-agreement/service.js +371 -228
  218. package/components/user-agreement/toolbox.eula.js +1 -160
  219. package/components/user-agreement/user-agreement.js +120 -85
  220. package/components/user-card/card.js +29 -0
  221. package/components/user-card/smart-user-card-tooltip.js +111 -51
  222. package/components/user-card/tooltip.js +84 -47
  223. package/components/user-card/user-card.js +29 -0
  224. 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
- 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() {
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
- _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;
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 (scopeInChain.options.modal) {
32
- return true;
86
+ if (typeof params.key !== 'string') {
87
+ throw new Error('Shortcut key should exist');
33
88
  }
34
- }
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
- }));
89
+ var scope = this._scopes[params.scope];
90
+ if (!scope) {
91
+ scope = this._scopes[params.scope] = {};
57
92
  }
58
- return;
93
+ scope[params.key] = params.handler;
94
+ this.combokeys.bind(params.key, this._dispatcher, this._getKeyboardEventType(params));
59
95
  }
60
- if (typeof params.key !== 'string') {
61
- throw new Error('Shortcut key should exist');
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
- let scope = this._scopes[params.scope];
64
- if (!scope) {
65
- scope = this._scopes[params.scope] = {};
118
+ }, {
119
+ key: "unbindScope",
120
+ value: function unbindScope(scope) {
121
+ this._scopes[scope] = null;
66
122
  }
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');
123
+ }, {
124
+ key: "getScope",
125
+ value: function getScope() {
126
+ return this._scopeChain.slice(1);
80
127
  }
81
- for (const key in map) {
82
- if (map.hasOwnProperty(key)) {
83
- this.bind(Object.assign({}, options || {}, {
84
- key,
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
- 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);
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
- 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);
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
- 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);
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
- setScope(scope) {
134
- if (scope) {
135
- let scopeChain;
136
- if (typeof scope === 'string' || !Array.isArray(scope) && typeof scope === 'object' && scope !== null) {
137
- scopeChain = [scope];
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
- scopeChain = scope;
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
- 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;
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
- // 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';
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
- 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
- }
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
- const macSymbolsMap = {
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
- const winSymbolsMap = {
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
- 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);
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
- 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));
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
- class Shortcuts extends PureComponent {
9
- static propTypes = {
10
- map: PropTypes.object.isRequired,
11
- scope: PropTypes.string.isRequired,
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
- componentDidUpdate(prevProps) {
25
- const {
26
- disabled,
27
- map
28
- } = this.props;
29
- if (!prevProps.disabled && disabled) {
30
- this.turnShorcutsOff();
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
- if (prevProps.disabled && !disabled) {
33
- this.turnShorcutsOn();
48
+ }, {
49
+ key: "componentWillUnmount",
50
+ value: function componentWillUnmount() {
51
+ if (!this.props.disabled) {
52
+ this.turnShorcutsOff();
53
+ }
34
54
  }
35
- if (prevProps.map !== map) {
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
- componentWillUnmount() {
40
- if (!this.props.disabled) {
41
- this.turnShorcutsOff();
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
- turnShorcutsOn() {
45
- const {
46
- map,
47
- scope,
48
- options
49
- } = this.props;
50
- shortcuts.bindMap(map, this.props);
51
- shortcuts.pushScope(scope, options);
52
- }
53
- turnShorcutsOff() {
54
- const {
55
- scope
56
- } = this.props;
57
- shortcuts.unbindScope(scope);
58
- shortcuts.spliceScope(scope);
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 };