@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,9 +1,18 @@
1
+ import { b as _createClass, f as _classCallCheck, _ as _defineProperty, h as _asyncToGenerator, i as _regeneratorRuntime } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.iterator.js';
3
+ import 'core-js/modules/es.object.to-string.js';
4
+ import 'core-js/modules/es.promise.js';
5
+ import 'core-js/modules/web.dom-collections.iterator.js';
1
6
  import alertService from '../alert-service/alert-service.js';
2
- import '../_helpers/_rollupPluginBabelHelpers.js';
7
+ import 'core-js/modules/es.array.concat.js';
8
+ import 'core-js/modules/es.array.filter.js';
9
+ import 'core-js/modules/es.array.map.js';
3
10
  import 'react';
4
11
  import 'react-dom/client';
5
12
  import '../global/get-uid.js';
13
+ import 'core-js/modules/es.regexp.to-string.js';
6
14
  import '../alert/alert.js';
15
+ import 'core-js/modules/es.object.values.js';
7
16
  import 'classnames';
8
17
  import 'prop-types';
9
18
  import '@jetbrains/icons/exception';
@@ -14,10 +23,21 @@ import '../icon/icon.js';
14
23
  import 'util-deprecate';
15
24
  import '../icon/icon__constants.js';
16
25
  import '../_helpers/icon__svg.js';
26
+ import 'core-js/modules/es.regexp.exec.js';
27
+ import 'core-js/modules/es.string.replace.js';
28
+ import 'core-js/modules/es.string.starts-with.js';
17
29
  import '../global/memoize.js';
30
+ import 'core-js/modules/es.map.js';
31
+ import 'core-js/modules/es.weak-map.js';
18
32
  import '../loader-inline/loader-inline.js';
19
33
  import '../global/data-tests.js';
34
+ import 'core-js/modules/es.array.reduce.js';
35
+ import 'core-js/modules/es.object.entries.js';
20
36
  import '../global/dom.js';
37
+ import 'core-js/modules/es.object.assign.js';
38
+ import 'core-js/modules/es.set.js';
39
+ import 'core-js/modules/es.string.split.js';
40
+ import 'core-js/modules/web.dom-collections.for-each.js';
21
41
  import '../button/button.js';
22
42
  import '@jetbrains/icons/chevron-10px';
23
43
  import '../link/clickableLink.js';
@@ -30,11 +50,18 @@ import '../popup/popup.js';
30
50
  import '../global/schedule-raf.js';
31
51
  import '../shortcuts/shortcuts.js';
32
52
  import '../shortcuts/core.js';
53
+ import 'core-js/modules/es.array.find-index.js';
54
+ import 'core-js/modules/es.array.includes.js';
55
+ import 'core-js/modules/es.array.slice.js';
56
+ import 'core-js/modules/es.array.splice.js';
57
+ import 'core-js/modules/es.string.includes.js';
58
+ import 'core-js/modules/es.string.match.js';
33
59
  import 'combokeys';
34
60
  import '../global/sniffer.js';
35
61
  import 'sniffr';
36
62
  import '../tab-trap/tab-trap.js';
37
63
  import '../popup/position.js';
64
+ import 'core-js/modules/es.array.sort.js';
38
65
  import '../popup/popup.consts.js';
39
66
  import '../alert/container.js';
40
67
 
@@ -43,111 +70,147 @@ import '../alert/container.js';
43
70
  * @param {{type: string}} config Set to "session" to use sessionStorage
44
71
  * @constructor
45
72
  */
46
- class LocalStorage {
47
- static async safePromise(resolver) {
48
- try {
49
- return await new Promise(resolver);
50
- } catch (e) {
51
- if (e instanceof Error && e.name === 'NS_ERROR_FILE_CORRUPTED') {
52
- alertService.error('Sorry, it looks like your browser storage is corrupted. ' + 'Please clear your storage by going to Tools -> Clear Recent History -> Cookies' + ' and setting time range to "Everything". This will remove the corrupted browser storage across all sites.');
53
- }
54
- throw e;
55
- }
56
- }
57
- storageType;
58
- constructor() {
59
- let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
73
+ var LocalStorage = /*#__PURE__*/function () {
74
+ function LocalStorage() {
75
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
76
+ _classCallCheck(this, LocalStorage);
77
+ _defineProperty(this, "storageType", void 0);
60
78
  this.storageType = config.type === 'session' ? 'sessionStorage' : 'localStorage';
61
79
  }
62
80
  /**
63
81
  * @param {string} name
64
82
  * @return {Promise}
65
83
  */
66
- get(name) {
67
- return LocalStorage.safePromise(resolve => {
68
- const value = window[this.storageType].getItem(name);
69
- if (value != null) {
70
- try {
71
- resolve(JSON.parse(value));
72
- } catch (e) {
84
+ return _createClass(LocalStorage, [{
85
+ key: "get",
86
+ value: function get(name) {
87
+ var _this = this;
88
+ return LocalStorage.safePromise(function (resolve) {
89
+ var value = window[_this.storageType].getItem(name);
90
+ if (value != null) {
91
+ try {
92
+ resolve(JSON.parse(value));
93
+ } catch (e) {
94
+ resolve(value);
95
+ }
96
+ } else {
73
97
  resolve(value);
74
98
  }
75
- } else {
99
+ });
100
+ }
101
+ /**
102
+ * @param {string} name
103
+ * @param {object} value
104
+ * @return {Promise}
105
+ */
106
+ }, {
107
+ key: "set",
108
+ value: function set(name, value) {
109
+ var _this2 = this;
110
+ return LocalStorage.safePromise(function (resolve) {
111
+ window[_this2.storageType].setItem(name, JSON.stringify(value));
76
112
  resolve(value);
77
- }
78
- });
79
- }
80
- /**
81
- * @param {string} name
82
- * @param {object} value
83
- * @return {Promise}
84
- */
85
- set(name, value) {
86
- return LocalStorage.safePromise(resolve => {
87
- window[this.storageType].setItem(name, JSON.stringify(value));
88
- resolve(value);
89
- });
90
- }
91
- /**
92
- * @param {string} name
93
- * @return {Promise}
94
- */
95
- remove(name) {
96
- const storageType = this.storageType;
97
- return LocalStorage.safePromise(resolve => {
98
- if (window[storageType].hasOwnProperty(name)) {
99
- window[storageType].removeItem(name);
100
- }
101
- resolve();
102
- });
103
- }
104
- /**
105
- * @param callback
106
- * @return {Promise}s
107
- */
108
- each(callback) {
109
- const storageType = this.storageType;
110
- return LocalStorage.safePromise(resolve => {
111
- const promises = [];
112
- for (const item in window[storageType]) {
113
- if (window[storageType].hasOwnProperty(item)) {
114
- const value = window[storageType].getItem(item);
115
- let resolvedValue = null;
116
- if (value != null) {
117
- try {
118
- resolvedValue = JSON.parse(value);
119
- } catch (e) {
120
- resolvedValue = value;
113
+ });
114
+ }
115
+ /**
116
+ * @param {string} name
117
+ * @return {Promise}
118
+ */
119
+ }, {
120
+ key: "remove",
121
+ value: function remove(name) {
122
+ var storageType = this.storageType;
123
+ return LocalStorage.safePromise(function (resolve) {
124
+ if (window[storageType].hasOwnProperty(name)) {
125
+ window[storageType].removeItem(name);
126
+ }
127
+ resolve();
128
+ });
129
+ }
130
+ /**
131
+ * @param callback
132
+ * @return {Promise}s
133
+ */
134
+ }, {
135
+ key: "each",
136
+ value: function each(callback) {
137
+ var storageType = this.storageType;
138
+ return LocalStorage.safePromise(function (resolve) {
139
+ var promises = [];
140
+ for (var item in window[storageType]) {
141
+ if (window[storageType].hasOwnProperty(item)) {
142
+ var value = window[storageType].getItem(item);
143
+ var resolvedValue = null;
144
+ if (value != null) {
145
+ try {
146
+ resolvedValue = JSON.parse(value);
147
+ } catch (e) {
148
+ resolvedValue = value;
149
+ }
121
150
  }
151
+ promises.push(Promise.resolve(callback(item, resolvedValue)));
122
152
  }
123
- promises.push(Promise.resolve(callback(item, resolvedValue)));
124
153
  }
125
- }
126
- resolve(Promise.all(promises));
127
- });
128
- }
129
- /**
130
- * @param {string} name
131
- * @param {Function} callback
132
- * @return {Function}
133
- */
134
- on(name, callback) {
135
- function handleStorage(e) {
136
- if (e.key === name) {
137
- if (e.newValue != null) {
138
- try {
139
- callback(JSON.parse(e.newValue));
140
- } catch (err) {
154
+ resolve(Promise.all(promises));
155
+ });
156
+ }
157
+ /**
158
+ * @param {string} name
159
+ * @param {Function} callback
160
+ * @return {Function}
161
+ */
162
+ }, {
163
+ key: "on",
164
+ value: function on(name, callback) {
165
+ function handleStorage(e) {
166
+ if (e.key === name) {
167
+ if (e.newValue != null) {
168
+ try {
169
+ callback(JSON.parse(e.newValue));
170
+ } catch (err) {
171
+ callback(e.newValue);
172
+ }
173
+ } else {
141
174
  callback(e.newValue);
142
175
  }
143
- } else {
144
- callback(e.newValue);
145
176
  }
146
177
  }
178
+ window.addEventListener('storage', handleStorage, false);
179
+ return function () {
180
+ return window.removeEventListener('storage', handleStorage, false);
181
+ };
147
182
  }
148
- window.addEventListener('storage', handleStorage, false);
149
- return () => window.removeEventListener('storage', handleStorage, false);
150
- }
151
- }
183
+ }], [{
184
+ key: "safePromise",
185
+ value: function () {
186
+ var _safePromise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolver) {
187
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
188
+ while (1) switch (_context.prev = _context.next) {
189
+ case 0:
190
+ _context.prev = 0;
191
+ _context.next = 3;
192
+ return new Promise(resolver);
193
+ case 3:
194
+ return _context.abrupt("return", _context.sent);
195
+ case 6:
196
+ _context.prev = 6;
197
+ _context.t0 = _context["catch"](0);
198
+ if (_context.t0 instanceof Error && _context.t0.name === 'NS_ERROR_FILE_CORRUPTED') {
199
+ alertService.error('Sorry, it looks like your browser storage is corrupted. ' + 'Please clear your storage by going to Tools -> Clear Recent History -> Cookies' + ' and setting time range to "Everything". This will remove the corrupted browser storage across all sites.');
200
+ }
201
+ throw _context.t0;
202
+ case 10:
203
+ case "end":
204
+ return _context.stop();
205
+ }
206
+ }, _callee, null, [[0, 6]]);
207
+ }));
208
+ function safePromise(_x) {
209
+ return _safePromise.apply(this, arguments);
210
+ }
211
+ return safePromise;
212
+ }()
213
+ }]);
214
+ }();
152
215
 
153
216
  export { LocalStorage as default };
@@ -1,147 +1,178 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _inherits, b as _createClass, c as _objectWithoutProperties, e as _extends, f as _classCallCheck, g as _callSuper, k as _toConsumableArray } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.concat.js';
3
+ import 'core-js/modules/es.array.filter.js';
4
+ import 'core-js/modules/es.object.to-string.js';
2
5
  import React, { Component } from 'react';
3
6
  import PropTypes from 'prop-types';
4
7
  import { isNodeInVisiblePartOfPage } from '../global/dom.js';
8
+ import 'core-js/modules/es.array.iterator.js';
9
+ import 'core-js/modules/es.object.assign.js';
10
+ import 'core-js/modules/es.object.entries.js';
11
+ import 'core-js/modules/es.regexp.exec.js';
12
+ import 'core-js/modules/es.set.js';
13
+ import 'core-js/modules/es.string.split.js';
14
+ import 'core-js/modules/web.dom-collections.for-each.js';
15
+ import 'core-js/modules/web.dom-collections.iterator.js';
5
16
 
6
17
  var modules_6dce58ae = {"light":"light_rui_2ac4","trapButton":"trapButton_rui_11f0"};
7
18
 
8
- const FOCUSABLE_ELEMENTS = 'input, button, select, textarea, a[href], *[tabindex]:not([data-trap-button]):not([data-scrollable-container])';
19
+ var _excluded = ["children", "trapDisabled", "autoFocusFirst", "focusBackOnClose", "focusBackOnExit"];
20
+ var FOCUSABLE_ELEMENTS = 'input, button, select, textarea, a[href], *[tabindex]:not([data-trap-button]):not([data-scrollable-container])';
9
21
  /**
10
22
  * @name TabTrap
11
23
  */
12
- class TabTrap extends Component {
13
- static propTypes = {
14
- children: PropTypes.node.isRequired,
15
- trapDisabled: PropTypes.bool,
16
- autoFocusFirst: PropTypes.bool,
17
- focusBackOnClose: PropTypes.bool,
18
- focusBackOnExit: PropTypes.bool
19
- };
20
- static defaultProps = {
21
- trapDisabled: false,
22
- autoFocusFirst: true,
23
- focusBackOnClose: true,
24
- focusBackOnExit: false
25
- };
26
- componentDidMount() {
27
- this.previousFocusedNode = document.activeElement;
28
- if (this.props.autoFocusFirst) {
29
- this.focusFirst();
30
- } else if (!this.props.trapDisabled && (!this.node || !this.node.contains(this.previousFocusedNode))) {
31
- this.trapWithoutFocus = true;
32
- this.trapButtonNode?.focus();
24
+ var TabTrap = /*#__PURE__*/function (_Component) {
25
+ function TabTrap() {
26
+ var _this;
27
+ _classCallCheck(this, TabTrap);
28
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
+ args[_key] = arguments[_key];
33
30
  }
34
- }
35
- componentWillUnmount() {
36
- if (this.props.focusBackOnClose) {
37
- this.restoreFocus();
38
- }
39
- }
40
- previousFocusedNode;
41
- trapWithoutFocus;
42
- restoreFocus = () => {
43
- const {
44
- previousFocusedNode
45
- } = this;
46
- if (previousFocusedNode instanceof HTMLElement && previousFocusedNode.focus && isNodeInVisiblePartOfPage(previousFocusedNode)) {
47
- previousFocusedNode.focus({
48
- preventScroll: true
49
- });
50
- }
51
- };
52
- node;
53
- containerRef = node => {
54
- if (!node) {
55
- return;
56
- }
57
- this.node = node;
58
- };
59
- focusElement = (() => {
60
- var _this = this;
61
- return function () {
62
- let first = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
63
- const {
64
- node
65
- } = _this;
31
+ _this = _callSuper(this, TabTrap, [].concat(args));
32
+ _defineProperty(_this, "previousFocusedNode", void 0);
33
+ _defineProperty(_this, "trapWithoutFocus", void 0);
34
+ _defineProperty(_this, "restoreFocus", function () {
35
+ var _this2 = _this,
36
+ previousFocusedNode = _this2.previousFocusedNode;
37
+ if (previousFocusedNode instanceof HTMLElement && previousFocusedNode.focus && isNodeInVisiblePartOfPage(previousFocusedNode)) {
38
+ previousFocusedNode.focus({
39
+ preventScroll: true
40
+ });
41
+ }
42
+ });
43
+ _defineProperty(_this, "node", void 0);
44
+ _defineProperty(_this, "containerRef", function (node) {
45
+ if (!node) {
46
+ return;
47
+ }
48
+ _this.node = node;
49
+ });
50
+ _defineProperty(_this, "focusElement", function () {
51
+ var first = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
52
+ var _this3 = _this,
53
+ node = _this3.node;
66
54
  if (!node) {
67
55
  return;
68
56
  }
69
- const tabables = [...node.querySelectorAll(FOCUSABLE_ELEMENTS)].filter(item => item.tabIndex >= 0);
70
- const toBeFocused = first ? tabables[0] : tabables[tabables.length - 1];
57
+ var tabables = _toConsumableArray(node.querySelectorAll(FOCUSABLE_ELEMENTS)).filter(function (item) {
58
+ return item.tabIndex >= 0;
59
+ });
60
+ var toBeFocused = first ? tabables[0] : tabables[tabables.length - 1];
71
61
  if (toBeFocused) {
72
62
  toBeFocused.focus();
73
63
  }
74
- };
75
- })();
76
- focusFirst = () => this.focusElement(true);
77
- focusLast = () => this.focusElement(false);
78
- focusLastIfEnabled = event => {
79
- if (this.trapWithoutFocus) {
80
- return;
64
+ });
65
+ _defineProperty(_this, "focusFirst", function () {
66
+ return _this.focusElement(true);
67
+ });
68
+ _defineProperty(_this, "focusLast", function () {
69
+ return _this.focusElement(false);
70
+ });
71
+ _defineProperty(_this, "focusLastIfEnabled", function (event) {
72
+ if (_this.trapWithoutFocus) {
73
+ return;
74
+ }
75
+ if (_this.props.focusBackOnExit) {
76
+ var prevFocused = event.nativeEvent.relatedTarget;
77
+ if (prevFocused != null && _this.node != null && prevFocused instanceof Element && _this.node.contains(prevFocused)) {
78
+ _this.restoreFocus();
79
+ }
80
+ } else {
81
+ _this.focusLast();
82
+ }
83
+ });
84
+ _defineProperty(_this, "handleBlurIfWithoutFocus", function (event) {
85
+ var _this$node;
86
+ if (!_this.trapWithoutFocus) {
87
+ return;
88
+ }
89
+ _this.trapWithoutFocus = false;
90
+ var newFocused = event.nativeEvent.relatedTarget;
91
+ if (!newFocused) {
92
+ return;
93
+ }
94
+ if (newFocused instanceof Element && (_this$node = _this.node) !== null && _this$node !== void 0 && _this$node.contains(newFocused)) {
95
+ return;
96
+ }
97
+ _this.focusLast();
98
+ });
99
+ _defineProperty(_this, "trapButtonNode", void 0);
100
+ _defineProperty(_this, "trapButtonRef", function (node) {
101
+ if (!node) {
102
+ return;
103
+ }
104
+ _this.trapButtonNode = node;
105
+ });
106
+ return _this;
107
+ }
108
+ _inherits(TabTrap, _Component);
109
+ return _createClass(TabTrap, [{
110
+ key: "componentDidMount",
111
+ value: function componentDidMount() {
112
+ this.previousFocusedNode = document.activeElement;
113
+ if (this.props.autoFocusFirst) {
114
+ this.focusFirst();
115
+ } else if (!this.props.trapDisabled && (!this.node || !this.node.contains(this.previousFocusedNode))) {
116
+ var _this$trapButtonNode;
117
+ this.trapWithoutFocus = true;
118
+ (_this$trapButtonNode = this.trapButtonNode) === null || _this$trapButtonNode === void 0 || _this$trapButtonNode.focus();
119
+ }
81
120
  }
82
- if (this.props.focusBackOnExit) {
83
- const prevFocused = event.nativeEvent.relatedTarget;
84
- if (prevFocused != null && this.node != null && prevFocused instanceof Element && this.node.contains(prevFocused)) {
121
+ }, {
122
+ key: "componentWillUnmount",
123
+ value: function componentWillUnmount() {
124
+ if (this.props.focusBackOnClose) {
85
125
  this.restoreFocus();
86
126
  }
87
- } else {
88
- this.focusLast();
89
- }
90
- };
91
- handleBlurIfWithoutFocus = event => {
92
- if (!this.trapWithoutFocus) {
93
- return;
94
- }
95
- this.trapWithoutFocus = false;
96
- const newFocused = event.nativeEvent.relatedTarget;
97
- if (!newFocused) {
98
- return;
99
- }
100
- if (newFocused instanceof Element && this.node?.contains(newFocused)) {
101
- return;
102
127
  }
103
- this.focusLast();
104
- };
105
- trapButtonNode;
106
- trapButtonRef = node => {
107
- if (!node) {
108
- return;
109
- }
110
- this.trapButtonNode = node;
111
- };
112
- render() {
113
- const {
114
- children,
115
- trapDisabled,
116
- autoFocusFirst,
117
- focusBackOnClose,
118
- focusBackOnExit,
119
- ...restProps
120
- } = this.props;
121
- if (trapDisabled) {
128
+ }, {
129
+ key: "render",
130
+ value: function render() {
131
+ var _this$props = this.props,
132
+ children = _this$props.children,
133
+ trapDisabled = _this$props.trapDisabled;
134
+ _this$props.autoFocusFirst;
135
+ _this$props.focusBackOnClose;
136
+ var focusBackOnExit = _this$props.focusBackOnExit,
137
+ restProps = _objectWithoutProperties(_this$props, _excluded);
138
+ if (trapDisabled) {
139
+ return /*#__PURE__*/React.createElement("div", _extends({
140
+ ref: this.containerRef
141
+ }, restProps), children);
142
+ }
122
143
  return /*#__PURE__*/React.createElement("div", _extends({
123
144
  ref: this.containerRef
124
- }, restProps), children);
145
+ }, restProps), /*#__PURE__*/React.createElement("div", {
146
+ // It never actually stays focused
147
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
148
+ tabIndex: 0,
149
+ ref: this.trapButtonRef,
150
+ className: modules_6dce58ae.trapButton,
151
+ onFocus: this.focusLastIfEnabled,
152
+ onBlur: this.handleBlurIfWithoutFocus,
153
+ "data-trap-button": true
154
+ }), children, /*#__PURE__*/React.createElement("div", {
155
+ // It never actually stays focused
156
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
157
+ tabIndex: 0,
158
+ onFocus: focusBackOnExit ? this.restoreFocus : this.focusFirst,
159
+ "data-trap-button": true
160
+ }));
125
161
  }
126
- return /*#__PURE__*/React.createElement("div", _extends({
127
- ref: this.containerRef
128
- }, restProps), /*#__PURE__*/React.createElement("div", {
129
- // It never actually stays focused
130
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
131
- tabIndex: 0,
132
- ref: this.trapButtonRef,
133
- className: modules_6dce58ae.trapButton,
134
- onFocus: this.focusLastIfEnabled,
135
- onBlur: this.handleBlurIfWithoutFocus,
136
- "data-trap-button": true
137
- }), children, /*#__PURE__*/React.createElement("div", {
138
- // It never actually stays focused
139
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
140
- tabIndex: 0,
141
- onFocus: focusBackOnExit ? this.restoreFocus : this.focusFirst,
142
- "data-trap-button": true
143
- }));
144
- }
145
- }
162
+ }]);
163
+ }(Component);
164
+ _defineProperty(TabTrap, "propTypes", {
165
+ children: PropTypes.node.isRequired,
166
+ trapDisabled: PropTypes.bool,
167
+ autoFocusFirst: PropTypes.bool,
168
+ focusBackOnClose: PropTypes.bool,
169
+ focusBackOnExit: PropTypes.bool
170
+ });
171
+ _defineProperty(TabTrap, "defaultProps", {
172
+ trapDisabled: false,
173
+ autoFocusFirst: true,
174
+ focusBackOnClose: true,
175
+ focusBackOnExit: false
176
+ });
146
177
 
147
178
  export { FOCUSABLE_ELEMENTS, TabTrap as default };
@@ -1,23 +1,35 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _inherits, b as _createClass, e as _extends, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { PureComponent } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
5
  import joinDataTestAttributes from '../global/data-tests.js';
6
6
  import { m as modules_1db4bbca } from '../_helpers/table.js';
7
+ import 'core-js/modules/es.array.concat.js';
8
+ import 'core-js/modules/es.array.reduce.js';
9
+ import 'core-js/modules/es.object.entries.js';
10
+ import 'core-js/modules/es.object.to-string.js';
7
11
 
8
- class Cell extends PureComponent {
9
- static propTypes = {
10
- children: PropTypes.any,
11
- className: PropTypes.string,
12
- 'data-test': PropTypes.string
13
- };
14
- render() {
15
- const classes = classNames(modules_1db4bbca.cell, this.props.className);
16
- return /*#__PURE__*/React.createElement("td", _extends({}, this.props, {
17
- className: classes,
18
- "data-test": joinDataTestAttributes('ring-table-cell', this.props['data-test'])
19
- }), this.props.children);
12
+ var Cell = /*#__PURE__*/function (_PureComponent) {
13
+ function Cell() {
14
+ _classCallCheck(this, Cell);
15
+ return _callSuper(this, Cell, arguments);
20
16
  }
21
- }
17
+ _inherits(Cell, _PureComponent);
18
+ return _createClass(Cell, [{
19
+ key: "render",
20
+ value: function render() {
21
+ var classes = classNames(modules_1db4bbca.cell, this.props.className);
22
+ return /*#__PURE__*/React.createElement("td", _extends({}, this.props, {
23
+ className: classes,
24
+ "data-test": joinDataTestAttributes('ring-table-cell', this.props['data-test'])
25
+ }), this.props.children);
26
+ }
27
+ }]);
28
+ }(PureComponent);
29
+ _defineProperty(Cell, "propTypes", {
30
+ children: PropTypes.any,
31
+ className: PropTypes.string,
32
+ 'data-test': PropTypes.string
33
+ });
22
34
 
23
35
  export { Cell as default };