@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,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 };