@jetbrains/ring-ui-built 6.0.31 → 6.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +1 -567
  2. package/components/_helpers/anchor.js +7 -6
  3. package/components/_helpers/button__classes.js +16 -14
  4. package/components/_helpers/caption.js +14 -20
  5. package/components/_helpers/card.js +95 -105
  6. package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
  7. package/components/_helpers/icon__svg.js +22 -25
  8. package/components/_helpers/input.js +146 -177
  9. package/components/_helpers/query-assist__suggestions.js +74 -90
  10. package/components/_helpers/select__filter.js +48 -69
  11. package/components/_helpers/services-link.js +29 -37
  12. package/components/_helpers/sidebar.js +99 -107
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +31 -40
  15. package/components/_helpers/title.js +57 -72
  16. package/components/alert/alert.js +150 -202
  17. package/components/alert/container.js +32 -41
  18. package/components/alert-service/alert-service.js +105 -170
  19. package/components/analytics/analytics.js +12 -22
  20. package/components/analytics/analytics__custom-plugin.js +54 -75
  21. package/components/auth/auth.js +4 -36
  22. package/components/auth/auth__core.js +746 -1471
  23. package/components/auth/background-flow.js +87 -127
  24. package/components/auth/down-notification.js +30 -73
  25. package/components/auth/iframe-flow.js +75 -133
  26. package/components/auth/request-builder.js +46 -82
  27. package/components/auth/response-parser.js +86 -116
  28. package/components/auth/storage.js +171 -334
  29. package/components/auth/token-validator.js +137 -242
  30. package/components/auth/window-flow.js +92 -134
  31. package/components/auth-dialog/auth-dialog.js +114 -172
  32. package/components/auth-dialog-service/auth-dialog-service.js +8 -31
  33. package/components/avatar/avatar-example-datauri.js +23 -1
  34. package/components/avatar/avatar.js +119 -152
  35. package/components/avatar/fallback-avatar.js +22 -38
  36. package/components/badge/badge.js +35 -45
  37. package/components/button/button.js +86 -107
  38. package/components/button-group/button-group.js +19 -33
  39. package/components/button-set/button-set.js +20 -32
  40. package/components/button-toolbar/button-toolbar.js +19 -31
  41. package/components/caret/caret.js +186 -220
  42. package/components/checkbox/checkbox.js +76 -101
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +35 -132
  45. package/components/code/code.js +92 -166
  46. package/components/collapse/collapse-content.js +42 -64
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +12 -14
  49. package/components/collapse/collapse.js +11 -17
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +1 -3
  52. package/components/confirm/confirm.js +66 -104
  53. package/components/confirm-service/confirm-service.js +37 -59
  54. package/components/content-layout/content-layout.js +43 -64
  55. package/components/content-layout/sidebar.js +0 -1
  56. package/components/contenteditable/contenteditable.js +50 -59
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +129 -182
  59. package/components/data-list/data-list.mock.js +2 -6
  60. package/components/data-list/item.js +143 -170
  61. package/components/data-list/selection.js +76 -136
  62. package/components/data-list/title.js +1 -12
  63. package/components/date-picker/consts.js +19 -26
  64. package/components/date-picker/date-input.js +113 -144
  65. package/components/date-picker/date-picker.js +227 -282
  66. package/components/date-picker/date-popup.js +350 -395
  67. package/components/date-picker/day.js +87 -116
  68. package/components/date-picker/month-names.js +43 -66
  69. package/components/date-picker/month-slider.js +51 -76
  70. package/components/date-picker/month.js +16 -25
  71. package/components/date-picker/months.js +43 -50
  72. package/components/date-picker/weekdays.js +12 -22
  73. package/components/date-picker/years.js +83 -110
  74. package/components/dialog/dialog.js +142 -190
  75. package/components/dialog/dialog__body-scroll-preventer.js +0 -4
  76. package/components/dropdown/anchor.js +0 -9
  77. package/components/dropdown/dropdown.js +182 -213
  78. package/components/dropdown-menu/dropdown-menu.js +71 -97
  79. package/components/editable-heading/editable-heading.js +75 -127
  80. package/components/error-bubble/error-bubble.js +31 -60
  81. package/components/error-message/error-message.js +39 -59
  82. package/components/footer/footer.js +27 -30
  83. package/components/global/compose.js +1 -10
  84. package/components/global/composeRefs.js +7 -12
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +6 -14
  88. package/components/global/dom.js +47 -86
  89. package/components/global/focus-sensor-hoc.js +122 -132
  90. package/components/global/fuzzy-highlight.js +22 -36
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +4 -8
  93. package/components/global/inject-styles.js +10 -15
  94. package/components/global/listeners.js +27 -51
  95. package/components/global/memoize.js +6 -12
  96. package/components/global/normalize-indent.js +19 -50
  97. package/components/global/promise-with-timeout.js +6 -8
  98. package/components/global/prop-types.js +3 -5
  99. package/components/global/react-dom-renderer.js +28 -44
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +12 -30
  102. package/components/global/schedule-raf.js +5 -6
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +0 -22
  105. package/components/global/trivial-template-tag.js +3 -10
  106. package/components/global/typescript-utils.js +2 -6
  107. package/components/global/url.js +20 -26
  108. package/components/global/use-event-callback.js +6 -4
  109. package/components/grid/col.js +35 -52
  110. package/components/grid/grid.js +17 -31
  111. package/components/grid/row.js +35 -47
  112. package/components/group/group.js +17 -25
  113. package/components/header/header.js +33 -78
  114. package/components/header/logo.js +20 -36
  115. package/components/header/profile.js +166 -199
  116. package/components/header/services-link.js +0 -4
  117. package/components/header/services.js +73 -116
  118. package/components/header/smart-profile.js +111 -203
  119. package/components/header/smart-services.js +62 -113
  120. package/components/header/tray-icon.js +21 -37
  121. package/components/header/tray.js +21 -32
  122. package/components/heading/heading.js +24 -25
  123. package/components/http/http.d.ts +1 -3
  124. package/components/http/http.js +203 -353
  125. package/components/http/http.mock.js +49 -101
  126. package/components/hub-source/hub-source.js +83 -190
  127. package/components/hub-source/hub-source__user.js +11 -44
  128. package/components/hub-source/hub-source__users-groups.js +37 -65
  129. package/components/i18n/i18n-context.js +7 -10
  130. package/components/i18n/i18n.js +7 -10
  131. package/components/icon/icon.js +76 -93
  132. package/components/icon/icon__svg.js +0 -8
  133. package/components/icon/index.js +0 -8
  134. package/components/input/input.js +0 -13
  135. package/components/island/adaptive-island-hoc.js +30 -43
  136. package/components/island/content.js +115 -132
  137. package/components/island/header.js +57 -70
  138. package/components/island/island.js +28 -40
  139. package/components/island-legacy/content-legacy.js +17 -25
  140. package/components/island-legacy/header-legacy.js +19 -27
  141. package/components/island-legacy/island-legacy.js +17 -25
  142. package/components/link/clickableLink.js +44 -59
  143. package/components/link/link.js +57 -68
  144. package/components/list/consts.js +2 -2
  145. package/components/list/list.js +611 -698
  146. package/components/list/list__custom.js +44 -62
  147. package/components/list/list__hint.js +10 -19
  148. package/components/list/list__item.js +133 -174
  149. package/components/list/list__link.js +37 -50
  150. package/components/list/list__separator.js +14 -24
  151. package/components/list/list__title.js +22 -32
  152. package/components/list/list__users-groups-source.js +54 -126
  153. package/components/loader/loader.js +43 -74
  154. package/components/loader/loader__core.js +198 -263
  155. package/components/loader-inline/loader-inline.js +23 -35
  156. package/components/loader-screen/loader-screen.js +25 -46
  157. package/components/login-dialog/login-dialog.js +111 -158
  158. package/components/login-dialog/service.js +8 -34
  159. package/components/markdown/markdown.js +15 -23
  160. package/components/message/message.js +161 -203
  161. package/components/old-browsers-message/old-browsers-message.js +11 -18
  162. package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
  163. package/components/old-browsers-message/white-list.js +8 -16
  164. package/components/pager/pager.js +212 -271
  165. package/components/panel/panel.js +17 -25
  166. package/components/permissions/permissions.js +127 -172
  167. package/components/permissions/permissions__cache.js +194 -224
  168. package/components/popup/popup.consts.js +1 -1
  169. package/components/popup/popup.js +284 -343
  170. package/components/popup/popup.target.js +9 -8
  171. package/components/popup/position.js +96 -106
  172. package/components/popup-menu/popup-menu.js +44 -80
  173. package/components/progress-bar/progress-bar.js +87 -104
  174. package/components/query-assist/query-assist.js +838 -916
  175. package/components/query-assist/query-assist__suggestions.js +1 -30
  176. package/components/radio/radio.js +19 -34
  177. package/components/radio/radio__item.js +52 -69
  178. package/components/select/select.js +852 -957
  179. package/components/select/select__filter.js +0 -30
  180. package/components/select/select__popup.js +373 -487
  181. package/components/shortcuts/core.js +166 -217
  182. package/components/shortcuts/shortcut-title.js +6 -11
  183. package/components/shortcuts/shortcuts-hoc.js +19 -45
  184. package/components/shortcuts/shortcuts.js +50 -75
  185. package/components/slider/slider.js +99 -122
  186. package/components/slider/slider.utils.js +14 -24
  187. package/components/storage/storage.js +4 -33
  188. package/components/storage/storage__fallback.js +149 -224
  189. package/components/storage/storage__local.js +90 -153
  190. package/components/tab-trap/tab-trap.js +122 -153
  191. package/components/table/cell.js +14 -26
  192. package/components/table/disable-hover-hoc.js +33 -51
  193. package/components/table/header-cell.js +64 -89
  194. package/components/table/header.js +104 -132
  195. package/components/table/multitable.js +107 -125
  196. package/components/table/row-with-focus-sensor.js +25 -69
  197. package/components/table/row.js +175 -216
  198. package/components/table/selection-adapter.js +1 -3
  199. package/components/table/selection-shortcuts-hoc.js +180 -181
  200. package/components/table/selection.js +156 -226
  201. package/components/table/smart-table.js +50 -88
  202. package/components/table/table.js +289 -358
  203. package/components/tabs/collapsible-more.js +46 -79
  204. package/components/tabs/collapsible-tab.js +31 -38
  205. package/components/tabs/collapsible-tabs.js +88 -153
  206. package/components/tabs/custom-item.js +4 -2
  207. package/components/tabs/dumb-tabs.js +74 -117
  208. package/components/tabs/smart-tabs.js +29 -69
  209. package/components/tabs/tab-link.js +1 -5
  210. package/components/tabs/tab.js +19 -31
  211. package/components/tabs/tabs.js +0 -31
  212. package/components/tag/tag.js +133 -173
  213. package/components/tags-input/tags-input.js +329 -427
  214. package/components/tags-list/tags-list.js +57 -78
  215. package/components/text/text.js +28 -39
  216. package/components/toggle/toggle.js +56 -70
  217. package/components/tooltip/tooltip.js +146 -190
  218. package/components/user-agreement/service.js +228 -371
  219. package/components/user-agreement/toolbox.eula.js +160 -1
  220. package/components/user-agreement/user-agreement.js +85 -120
  221. package/components/user-card/card.js +0 -29
  222. package/components/user-card/smart-user-card-tooltip.js +51 -111
  223. package/components/user-card/tooltip.js +47 -84
  224. package/components/user-card/user-card.js +0 -29
  225. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
1
  function copyTextToClipboard(str) {
2
- var el = document.createElement('textarea');
2
+ const el = document.createElement('textarea');
3
3
  el.value = str;
4
4
  el.setAttribute('readonly', '');
5
5
  el.style.position = 'absolute';
6
6
  el.style.left = '-9999px';
7
7
  document.body.appendChild(el);
8
- var selection = document.getSelection();
8
+ const selection = document.getSelection();
9
9
  // Should restore previous selection
10
- var selected = selection && selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
10
+ const selected = selection && selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
11
11
  el.select();
12
12
  document.execCommand('copy');
13
13
  document.body.removeChild(el);
@@ -17,21 +17,21 @@ function copyTextToClipboard(str) {
17
17
  }
18
18
  }
19
19
  function copyHTMLToClipboard(str) {
20
- var el = document.createElement('div');
20
+ const el = document.createElement('div');
21
21
  el.innerHTML = str;
22
22
  el.setAttribute('readonly', '');
23
23
  el.style.position = 'absolute';
24
24
  el.style.left = '-9999px';
25
25
  document.body.appendChild(el);
26
- var selection = document.getSelection();
26
+ const selection = document.getSelection();
27
27
  // Should restore previous selection
28
- var selected = selection && selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
29
- selection === null || selection === void 0 || selection.removeAllRanges();
30
- var range = document.createRange();
28
+ const selected = selection && selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
29
+ selection?.removeAllRanges();
30
+ const range = document.createRange();
31
31
  range.selectNode(el);
32
- selection === null || selection === void 0 || selection.addRange(range);
32
+ selection?.addRange(range);
33
33
  document.execCommand('copy');
34
- selection === null || selection === void 0 || selection.removeAllRanges();
34
+ selection?.removeAllRanges();
35
35
  document.execCommand('copy');
36
36
  document.body.removeChild(el);
37
37
  if (selected && selection) {
@@ -1,17 +1,10 @@
1
- import { h as _asyncToGenerator, i as _regeneratorRuntime } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.object.to-string.js';
3
- import 'core-js/modules/es.promise.js';
4
1
  import alertService from '../alert-service/alert-service.js';
5
2
  import { copyTextToClipboard, copyHTMLToClipboard } from './clipboard-fallback.js';
6
- import 'core-js/modules/es.array.concat.js';
7
- import 'core-js/modules/es.array.filter.js';
8
- import 'core-js/modules/es.array.map.js';
3
+ import '../_helpers/_rollupPluginBabelHelpers.js';
9
4
  import 'react';
10
5
  import 'react-dom/client';
11
6
  import '../global/get-uid.js';
12
- import 'core-js/modules/es.regexp.to-string.js';
13
7
  import '../alert/alert.js';
14
- import 'core-js/modules/es.object.values.js';
15
8
  import 'classnames';
16
9
  import 'prop-types';
17
10
  import '@jetbrains/icons/exception';
@@ -22,23 +15,10 @@ import '../icon/icon.js';
22
15
  import 'util-deprecate';
23
16
  import '../icon/icon__constants.js';
24
17
  import '../_helpers/icon__svg.js';
25
- import 'core-js/modules/es.regexp.exec.js';
26
- import 'core-js/modules/es.string.replace.js';
27
- import 'core-js/modules/es.string.starts-with.js';
28
18
  import '../global/memoize.js';
29
- import 'core-js/modules/es.array.iterator.js';
30
- import 'core-js/modules/es.map.js';
31
- import 'core-js/modules/es.weak-map.js';
32
- import 'core-js/modules/web.dom-collections.iterator.js';
33
19
  import '../loader-inline/loader-inline.js';
34
20
  import '../global/data-tests.js';
35
- import 'core-js/modules/es.array.reduce.js';
36
- import 'core-js/modules/es.object.entries.js';
37
21
  import '../global/dom.js';
38
- import 'core-js/modules/es.object.assign.js';
39
- import 'core-js/modules/es.set.js';
40
- import 'core-js/modules/es.string.split.js';
41
- import 'core-js/modules/web.dom-collections.for-each.js';
42
22
  import '../button/button.js';
43
23
  import '@jetbrains/icons/chevron-10px';
44
24
  import '../link/clickableLink.js';
@@ -51,135 +31,58 @@ import '../popup/popup.js';
51
31
  import '../global/schedule-raf.js';
52
32
  import '../shortcuts/shortcuts.js';
53
33
  import '../shortcuts/core.js';
54
- import 'core-js/modules/es.array.find-index.js';
55
- import 'core-js/modules/es.array.includes.js';
56
- import 'core-js/modules/es.array.slice.js';
57
- import 'core-js/modules/es.array.splice.js';
58
- import 'core-js/modules/es.string.includes.js';
59
- import 'core-js/modules/es.string.match.js';
60
34
  import 'combokeys';
61
35
  import '../global/sniffer.js';
62
36
  import 'sniffr';
63
37
  import '../tab-trap/tab-trap.js';
64
38
  import '../popup/position.js';
65
- import 'core-js/modules/es.array.sort.js';
66
39
  import '../popup/popup.consts.js';
67
40
  import '../alert/container.js';
68
41
 
69
- var ALERT_DELAY = 1000;
42
+ const ALERT_DELAY = 1000;
70
43
  function getClipboardImplementation() {
71
44
  if (navigator.clipboard && !window.isSecureContext) {
72
45
  return {
73
- copy: function copy(text) {
74
- return navigator.clipboard.writeText(text);
75
- },
76
- copyHTML: function copyHTML(html) {
77
- return navigator.clipboard.write([new ClipboardItem({
78
- ['text/html']: new Blob([html], {
79
- type: 'text/html'
80
- })
81
- })]);
82
- }
46
+ copy: text => navigator.clipboard.writeText(text),
47
+ copyHTML: html => navigator.clipboard.write([new ClipboardItem({
48
+ ['text/html']: new Blob([html], {
49
+ type: 'text/html'
50
+ })
51
+ })])
83
52
  };
84
53
  }
85
54
  return {
86
- copy: function copy(str) {
87
- return Promise.resolve(copyTextToClipboard(str));
88
- },
89
- copyHTML: function copyHTML(html) {
90
- return Promise.resolve(copyHTMLToClipboard(html));
91
- }
55
+ copy: str => Promise.resolve(copyTextToClipboard(str)),
56
+ copyHTML: html => Promise.resolve(copyHTMLToClipboard(html))
92
57
  };
93
58
  }
94
- function copy(_x, _x2, _x3) {
95
- return _copy.apply(this, arguments);
96
- }
97
- function _copy() {
98
- _copy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(text, successMessage, errorMessage) {
99
- var delay,
100
- isHtml,
101
- clipboardImpl,
102
- copyMethod,
103
- _args3 = arguments;
104
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
105
- while (1) switch (_context3.prev = _context3.next) {
106
- case 0:
107
- delay = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : ALERT_DELAY;
108
- isHtml = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : false;
109
- _context3.prev = 2;
110
- clipboardImpl = getClipboardImplementation();
111
- copyMethod = isHtml ? clipboardImpl.copyHTML : clipboardImpl.copy;
112
- _context3.next = 7;
113
- return copyMethod(text);
114
- case 7:
115
- if (successMessage) {
116
- alertService.successMessage(successMessage, delay);
117
- }
118
- _context3.next = 14;
119
- break;
120
- case 10:
121
- _context3.prev = 10;
122
- _context3.t0 = _context3["catch"](2);
123
- if (errorMessage) {
124
- alertService.error(errorMessage, delay);
125
- }
126
- // eslint-disable-next-line no-console
127
- console.error(_context3.t0);
128
- case 14:
129
- case "end":
130
- return _context3.stop();
131
- }
132
- }, _callee3, null, [[2, 10]]);
133
- }));
134
- return _copy.apply(this, arguments);
135
- }
136
- var clipboard = {
137
- copyText: function () {
138
- var _copyText = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(text, successMessage, errorMessage) {
139
- var delay,
140
- _args = arguments;
141
- return _regeneratorRuntime().wrap(function _callee$(_context) {
142
- while (1) switch (_context.prev = _context.next) {
143
- case 0:
144
- delay = _args.length > 3 && _args[3] !== undefined ? _args[3] : ALERT_DELAY;
145
- _context.next = 3;
146
- return copy(text, successMessage, errorMessage, delay);
147
- case 3:
148
- return _context.abrupt("return", _context.sent);
149
- case 4:
150
- case "end":
151
- return _context.stop();
152
- }
153
- }, _callee);
154
- }));
155
- function copyText(_x4, _x5, _x6) {
156
- return _copyText.apply(this, arguments);
59
+ async function copy(text, successMessage, errorMessage) {
60
+ let delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ALERT_DELAY;
61
+ let isHtml = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
62
+ try {
63
+ const clipboardImpl = getClipboardImplementation();
64
+ const copyMethod = isHtml ? clipboardImpl.copyHTML : clipboardImpl.copy;
65
+ await copyMethod(text);
66
+ if (successMessage) {
67
+ alertService.successMessage(successMessage, delay);
157
68
  }
158
- return copyText;
159
- }(),
160
- copyHTML: function () {
161
- var _copyHTML = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(html, successMessage, errorMessage) {
162
- var delay,
163
- _args2 = arguments;
164
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
165
- while (1) switch (_context2.prev = _context2.next) {
166
- case 0:
167
- delay = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : ALERT_DELAY;
168
- _context2.next = 3;
169
- return copy(html, successMessage, errorMessage, delay, true);
170
- case 3:
171
- return _context2.abrupt("return", _context2.sent);
172
- case 4:
173
- case "end":
174
- return _context2.stop();
175
- }
176
- }, _callee2);
177
- }));
178
- function copyHTML(_x7, _x8, _x9) {
179
- return _copyHTML.apply(this, arguments);
69
+ } catch (e) {
70
+ if (errorMessage) {
71
+ alertService.error(errorMessage, delay);
180
72
  }
181
- return copyHTML;
182
- }()
73
+ // eslint-disable-next-line no-console
74
+ console.error(e);
75
+ }
76
+ }
77
+ const clipboard = {
78
+ copyText: async function (text, successMessage, errorMessage) {
79
+ let delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ALERT_DELAY;
80
+ return await copy(text, successMessage, errorMessage, delay);
81
+ },
82
+ copyHTML: async function (html, successMessage, errorMessage) {
83
+ let delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ALERT_DELAY;
84
+ return await copy(html, successMessage, errorMessage, delay, true);
85
+ }
183
86
  };
184
87
 
185
88
  export { clipboard as default };
@@ -1,189 +1,115 @@
1
- import { _ as _defineProperty, a as _inherits, b as _createClass, f as _classCallCheck, g as _callSuper, h as _asyncToGenerator, i as _regeneratorRuntime } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.array.concat.js';
3
- import 'core-js/modules/es.object.to-string.js';
4
- import 'core-js/modules/es.promise.js';
5
1
  import React, { PureComponent } from 'react';
6
2
  import PropTypes from 'prop-types';
7
3
  import classNames from 'classnames';
8
- import _highlight from 'highlight.js/lib/core';
4
+ import highlight from 'highlight.js/lib/core';
9
5
  export { default as highlight } from 'highlight.js/lib/core';
10
6
  import normalizeIndent from '../global/normalize-indent.js';
11
7
  import trivialTemplateTag from '../global/trivial-template-tag.js';
12
8
  import memoize from '../global/memoize.js';
13
- import 'core-js/modules/es.array.filter.js';
14
- import 'core-js/modules/es.array.map.js';
15
- import 'core-js/modules/es.array.slice.js';
16
- import 'core-js/modules/es.regexp.exec.js';
17
- import 'core-js/modules/es.string.match.js';
18
- import 'core-js/modules/es.string.split.js';
19
- import 'core-js/modules/es.array.splice.js';
20
- import 'core-js/modules/web.dom-collections.for-each.js';
21
- import 'core-js/modules/es.array.iterator.js';
22
- import 'core-js/modules/es.map.js';
23
- import 'core-js/modules/es.weak-map.js';
24
- import 'core-js/modules/web.dom-collections.iterator.js';
25
9
 
26
10
  var modules_66c414ea = {"light":"light_rui_2ac4","code":"code_rui_1c82","inline":"inline_rui_1c82","softWrap":"softWrap_rui_1c82"};
27
11
 
28
12
  var modules_39cf09e8 = {"highlightContainer":"highlightContainer_rui_1a79"};
29
13
 
30
14
  function noop() {}
31
- var registerLanguage = memoize( /*#__PURE__*/function () {
32
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(language) {
33
- var languageExports;
34
- return _regeneratorRuntime().wrap(function _callee$(_context) {
35
- while (1) switch (_context.prev = _context.next) {
36
- case 0:
37
- _context.next = 2;
38
- return import( /* webpackChunkName: "highlight-[request]" */"highlight.js/lib/languages/".concat(language));
39
- case 2:
40
- languageExports = _context.sent;
41
- _highlight.registerLanguage(language, languageExports.default);
42
- case 4:
43
- case "end":
44
- return _context.stop();
45
- }
46
- }, _callee);
47
- }));
48
- return function (_x) {
49
- return _ref.apply(this, arguments);
50
- };
51
- }());
15
+ const registerLanguage = memoize(async language => {
16
+ const languageExports = await import( /* webpackChunkName: "highlight-[request]" */
17
+ `highlight.js/lib/languages/${language}`);
18
+ highlight.registerLanguage(language, languageExports.default);
19
+ });
52
20
  /**
53
21
  * @name Code
54
22
  */
55
- var Code = /*#__PURE__*/function (_PureComponent) {
56
- function Code() {
57
- var _this;
58
- _classCallCheck(this, Code);
59
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
60
- args[_key] = arguments[_key];
61
- }
62
- _this = _callSuper(this, Code, [].concat(args));
63
- _defineProperty(_this, "code", void 0);
64
- return _this;
23
+ class Code extends PureComponent {
24
+ static propTypes = {
25
+ className: PropTypes.string,
26
+ code: PropTypes.string.isRequired,
27
+ inline: PropTypes.bool,
28
+ softWrap: PropTypes.bool,
29
+ language: PropTypes.string,
30
+ replacer: PropTypes.func,
31
+ codeRef: PropTypes.oneOfType([PropTypes.shape({
32
+ current: PropTypes.instanceOf(Element)
33
+ }), PropTypes.func])
34
+ };
35
+ static defaultProps = {
36
+ inline: false,
37
+ softWrap: false,
38
+ replacer: noop
39
+ };
40
+ componentDidMount() {
41
+ this.highlight();
65
42
  }
66
- _inherits(Code, _PureComponent);
67
- return _createClass(Code, [{
68
- key: "componentDidMount",
69
- value: function componentDidMount() {
70
- this.highlight();
71
- }
72
- }, {
73
- key: "componentDidUpdate",
74
- value: function componentDidUpdate() {
75
- this.highlight();
76
- }
77
- }, {
78
- key: "highlight",
79
- value: function () {
80
- var _highlight2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
81
- var codeRef, _this$props, language, inline, replacer;
82
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
83
- while (1) switch (_context2.prev = _context2.next) {
84
- case 0:
85
- codeRef = this.codeRef;
86
- if (!(codeRef == null)) {
87
- _context2.next = 3;
88
- break;
89
- }
90
- return _context2.abrupt("return");
91
- case 3:
92
- _this$props = this.props, language = _this$props.language, inline = _this$props.inline, replacer = _this$props.replacer;
93
- if (inline) {
94
- _context2.next = 9;
95
- break;
96
- }
97
- if (!(language != null && _highlight.getLanguage(language) == null)) {
98
- _context2.next = 8;
99
- break;
100
- }
101
- _context2.next = 8;
102
- return registerLanguage(language);
103
- case 8:
104
- // @ts-expect-error https://github.com/highlightjs/highlight.js/issues/2945
105
- _highlight.highlightElement(codeRef);
106
- case 9:
107
- replacer(codeRef);
108
- case 10:
109
- case "end":
110
- return _context2.stop();
111
- }
112
- }, _callee2, this);
113
- }));
114
- function highlight() {
115
- return _highlight2.apply(this, arguments);
116
- }
117
- return highlight;
118
- }()
119
- }, {
120
- key: "codeRef",
121
- get: function get() {
122
- var codeRef = this.props.codeRef;
123
- return !codeRef || typeof codeRef === 'function' ? this.code : codeRef.current;
43
+ componentDidUpdate() {
44
+ this.highlight();
45
+ }
46
+ code;
47
+ async highlight() {
48
+ const codeRef = this.codeRef;
49
+ if (codeRef == null) {
50
+ return;
124
51
  }
125
- }, {
126
- key: "initCodeRef",
127
- get: function get() {
128
- var _this2 = this;
129
- var codeRef = this.props.codeRef;
130
- var isFunctionCodeRef = typeof codeRef === 'function';
131
- if (codeRef && !isFunctionCodeRef) {
132
- return codeRef;
52
+ const {
53
+ language,
54
+ inline,
55
+ replacer
56
+ } = this.props;
57
+ if (!inline) {
58
+ if (language != null && highlight.getLanguage(language) == null) {
59
+ await registerLanguage(language);
133
60
  }
134
- return function (ref) {
135
- _this2.code = ref;
136
- if (isFunctionCodeRef) {
137
- codeRef(_this2.code);
138
- }
139
- };
61
+ // @ts-expect-error https://github.com/highlightjs/highlight.js/issues/2945
62
+ highlight.highlightElement(codeRef);
140
63
  }
141
- }, {
142
- key: "render",
143
- value: function render() {
144
- var _this$props2 = this.props,
145
- code = _this$props2.code,
146
- className = _this$props2.className,
147
- inline = _this$props2.inline,
148
- softWrap = _this$props2.softWrap,
149
- language = _this$props2.language;
150
- var Tag = inline ? 'span' : 'pre';
151
- var classes = classNames(modules_66c414ea.code, className, language, {
152
- [modules_66c414ea.inline]: inline,
153
- [modules_66c414ea.softWrap]: softWrap
154
- });
155
- return /*#__PURE__*/React.createElement(Tag, {
156
- className: classes,
157
- "data-test": "ring-code"
158
- }, /*#__PURE__*/React.createElement("code", {
159
- // should be focusable because it can be scrollable
160
- tabIndex: inline ? -1 : 0,
161
- ref: this.initCodeRef,
162
- className: modules_39cf09e8.highlightContainer
163
- }, normalizeIndent(code)));
64
+ replacer(codeRef);
65
+ }
66
+ get codeRef() {
67
+ const {
68
+ codeRef
69
+ } = this.props;
70
+ return !codeRef || typeof codeRef === 'function' ? this.code : codeRef.current;
71
+ }
72
+ get initCodeRef() {
73
+ const {
74
+ codeRef
75
+ } = this.props;
76
+ const isFunctionCodeRef = typeof codeRef === 'function';
77
+ if (codeRef && !isFunctionCodeRef) {
78
+ return codeRef;
164
79
  }
165
- }]);
166
- }(PureComponent);
167
- _defineProperty(Code, "propTypes", {
168
- className: PropTypes.string,
169
- code: PropTypes.string.isRequired,
170
- inline: PropTypes.bool,
171
- softWrap: PropTypes.bool,
172
- language: PropTypes.string,
173
- replacer: PropTypes.func,
174
- codeRef: PropTypes.oneOfType([PropTypes.shape({
175
- current: PropTypes.instanceOf(Element)
176
- }), PropTypes.func])
177
- });
178
- _defineProperty(Code, "defaultProps", {
179
- inline: false,
180
- softWrap: false,
181
- replacer: noop
182
- });
183
- var code = trivialTemplateTag(function (source) {
184
- return /*#__PURE__*/React.createElement(Code, {
185
- code: source
186
- });
187
- });
80
+ return ref => {
81
+ this.code = ref;
82
+ if (isFunctionCodeRef) {
83
+ codeRef(this.code);
84
+ }
85
+ };
86
+ }
87
+ render() {
88
+ const {
89
+ code,
90
+ className,
91
+ inline,
92
+ softWrap,
93
+ language
94
+ } = this.props;
95
+ const Tag = inline ? 'span' : 'pre';
96
+ const classes = classNames(modules_66c414ea.code, className, language, {
97
+ [modules_66c414ea.inline]: inline,
98
+ [modules_66c414ea.softWrap]: softWrap
99
+ });
100
+ return /*#__PURE__*/React.createElement(Tag, {
101
+ className: classes,
102
+ "data-test": "ring-code"
103
+ }, /*#__PURE__*/React.createElement("code", {
104
+ // should be focusable because it can be scrollable
105
+ tabIndex: inline ? -1 : 0,
106
+ ref: this.initCodeRef,
107
+ className: modules_39cf09e8.highlightContainer
108
+ }, normalizeIndent(code)));
109
+ }
110
+ }
111
+ const code = trivialTemplateTag(source => /*#__PURE__*/React.createElement(Code, {
112
+ code: source
113
+ }));
188
114
 
189
115
  export { code, Code as default };