@jetbrains/ring-ui-built 6.0.32 → 6.0.34

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 (226) 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 +176 -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.d.ts +1 -2
  124. package/components/http/http.js +345 -203
  125. package/components/http/http.mock.d.ts +1 -5
  126. package/components/http/http.mock.js +101 -49
  127. package/components/hub-source/hub-source.js +190 -83
  128. package/components/hub-source/hub-source__user.js +44 -11
  129. package/components/hub-source/hub-source__users-groups.js +65 -37
  130. package/components/i18n/i18n-context.js +10 -7
  131. package/components/i18n/i18n.js +10 -7
  132. package/components/icon/icon.js +93 -76
  133. package/components/icon/icon__svg.js +8 -0
  134. package/components/icon/index.js +8 -0
  135. package/components/input/input.js +13 -0
  136. package/components/island/adaptive-island-hoc.js +43 -30
  137. package/components/island/content.js +132 -115
  138. package/components/island/header.js +70 -57
  139. package/components/island/island.js +40 -28
  140. package/components/island-legacy/content-legacy.js +25 -17
  141. package/components/island-legacy/header-legacy.js +27 -19
  142. package/components/island-legacy/island-legacy.js +25 -17
  143. package/components/link/clickableLink.js +59 -44
  144. package/components/link/link.js +68 -57
  145. package/components/list/consts.js +2 -2
  146. package/components/list/list.js +698 -611
  147. package/components/list/list__custom.js +62 -44
  148. package/components/list/list__hint.js +19 -10
  149. package/components/list/list__item.js +174 -133
  150. package/components/list/list__link.js +50 -37
  151. package/components/list/list__separator.js +24 -14
  152. package/components/list/list__title.js +32 -22
  153. package/components/list/list__users-groups-source.js +126 -54
  154. package/components/loader/loader.js +74 -43
  155. package/components/loader/loader__core.js +263 -198
  156. package/components/loader-inline/loader-inline.js +35 -23
  157. package/components/loader-screen/loader-screen.js +46 -25
  158. package/components/login-dialog/login-dialog.js +158 -111
  159. package/components/login-dialog/service.js +34 -8
  160. package/components/markdown/markdown.js +23 -15
  161. package/components/message/message.js +203 -161
  162. package/components/old-browsers-message/old-browsers-message.js +18 -11
  163. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  164. package/components/old-browsers-message/white-list.js +17 -9
  165. package/components/pager/pager.js +271 -212
  166. package/components/panel/panel.js +25 -17
  167. package/components/permissions/permissions.js +172 -127
  168. package/components/permissions/permissions__cache.js +224 -194
  169. package/components/popup/popup.consts.js +1 -1
  170. package/components/popup/popup.js +343 -284
  171. package/components/popup/popup.target.js +8 -9
  172. package/components/popup/position.js +106 -96
  173. package/components/popup-menu/popup-menu.js +81 -44
  174. package/components/progress-bar/progress-bar.js +104 -87
  175. package/components/query-assist/query-assist.js +916 -838
  176. package/components/query-assist/query-assist__suggestions.js +30 -1
  177. package/components/radio/radio.js +34 -19
  178. package/components/radio/radio__item.js +69 -52
  179. package/components/select/select.js +957 -852
  180. package/components/select/select__filter.js +30 -0
  181. package/components/select/select__popup.js +487 -373
  182. package/components/shortcuts/core.js +217 -166
  183. package/components/shortcuts/shortcut-title.js +11 -6
  184. package/components/shortcuts/shortcuts-hoc.js +45 -19
  185. package/components/shortcuts/shortcuts.js +75 -50
  186. package/components/slider/slider.js +122 -99
  187. package/components/slider/slider.utils.js +24 -14
  188. package/components/storage/storage.js +33 -4
  189. package/components/storage/storage__fallback.js +224 -149
  190. package/components/storage/storage__local.js +153 -90
  191. package/components/tab-trap/tab-trap.js +153 -122
  192. package/components/table/cell.js +26 -14
  193. package/components/table/disable-hover-hoc.js +51 -33
  194. package/components/table/header-cell.js +89 -64
  195. package/components/table/header.js +132 -104
  196. package/components/table/multitable.js +125 -107
  197. package/components/table/row-with-focus-sensor.js +69 -25
  198. package/components/table/row.js +216 -175
  199. package/components/table/selection-adapter.js +3 -1
  200. package/components/table/selection-shortcuts-hoc.js +181 -180
  201. package/components/table/selection.js +226 -156
  202. package/components/table/smart-table.js +88 -50
  203. package/components/table/table.js +358 -289
  204. package/components/tabs/collapsible-more.js +79 -46
  205. package/components/tabs/collapsible-tab.js +38 -31
  206. package/components/tabs/collapsible-tabs.js +153 -88
  207. package/components/tabs/custom-item.js +2 -4
  208. package/components/tabs/dumb-tabs.js +117 -74
  209. package/components/tabs/smart-tabs.js +69 -29
  210. package/components/tabs/tab-link.js +5 -1
  211. package/components/tabs/tab.js +31 -19
  212. package/components/tabs/tabs.js +31 -0
  213. package/components/tag/tag.js +173 -133
  214. package/components/tags-input/tags-input.js +427 -329
  215. package/components/tags-list/tags-list.js +78 -57
  216. package/components/text/text.js +39 -28
  217. package/components/toggle/toggle.js +70 -56
  218. package/components/tooltip/tooltip.js +190 -146
  219. package/components/user-agreement/service.js +371 -228
  220. package/components/user-agreement/toolbox.eula.js +1 -160
  221. package/components/user-agreement/user-agreement.js +120 -85
  222. package/components/user-card/card.js +29 -0
  223. package/components/user-card/smart-user-card-tooltip.js +111 -51
  224. package/components/user-card/tooltip.js +84 -47
  225. package/components/user-card/user-card.js +29 -0
  226. package/package.json +1 -2
@@ -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 };