@jetbrains/ring-ui-built 6.0.5-beta.0 → 6.0.7-beta.0

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 (119) hide show
  1. package/README.md +10 -6
  2. package/components/_helpers/input.js +2 -2
  3. package/components/_helpers/select__filter.js +1 -1
  4. package/components/alert/alert.js +2 -0
  5. package/components/alert-service/alert-service.js +2 -0
  6. package/components/analytics/analytics__custom-plugin.js +1 -2
  7. package/components/auth/auth.js +3 -0
  8. package/components/auth/auth__core.js +38 -35
  9. package/components/auth/background-flow.js +3 -2
  10. package/components/auth/down-notification.js +2 -0
  11. package/components/auth/iframe-flow.js +7 -3
  12. package/components/auth/request-builder.d.ts +1 -0
  13. package/components/auth/request-builder.js +4 -1
  14. package/components/auth/response-parser.js +1 -0
  15. package/components/auth/storage.js +11 -4
  16. package/components/auth/token-validator.js +5 -3
  17. package/components/auth/window-flow.js +4 -3
  18. package/components/auth-dialog/auth-dialog.js +2 -0
  19. package/components/auth-dialog-service/auth-dialog-service.js +2 -0
  20. package/components/avatar/avatar.js +3 -0
  21. package/components/avatar/fallback-avatar.js +1 -0
  22. package/components/caret/caret.js +5 -4
  23. package/components/clipboard/clipboard-fallback.js +3 -3
  24. package/components/clipboard/clipboard.js +2 -0
  25. package/components/code/code.d.ts +1 -0
  26. package/components/code/code.js +0 -1
  27. package/components/confirm/confirm.js +2 -0
  28. package/components/confirm-service/confirm-service.js +2 -0
  29. package/components/data-list/data-list.js +7 -2
  30. package/components/data-list/item.js +1 -0
  31. package/components/data-list/selection.js +2 -0
  32. package/components/date-picker/date-picker.js +3 -1
  33. package/components/date-picker/date-popup.js +2 -2
  34. package/components/dialog/dialog.js +2 -0
  35. package/components/dropdown/dropdown.js +2 -2
  36. package/components/dropdown-menu/dropdown-menu.js +5 -0
  37. package/components/editable-heading/editable-heading.d.ts +1 -1
  38. package/components/editable-heading/editable-heading.js +68 -37
  39. package/components/error-bubble/error-bubble.js +2 -0
  40. package/components/global/dom.js +1 -0
  41. package/components/global/focus-sensor-hoc.js +6 -6
  42. package/components/global/normalize-indent.js +0 -1
  43. package/components/global/react-dom-renderer.js +1 -0
  44. package/components/global/schedule-raf.js +1 -1
  45. package/components/global/theme.js +2 -0
  46. package/components/global/url.js +1 -0
  47. package/components/grid/col.js +0 -1
  48. package/components/grid/grid.js +0 -1
  49. package/components/grid/row.js +7 -2
  50. package/components/header/header.js +5 -0
  51. package/components/header/profile.js +6 -0
  52. package/components/header/services.js +2 -0
  53. package/components/header/smart-profile.js +5 -0
  54. package/components/header/smart-services.js +5 -2
  55. package/components/http/http.js +1 -0
  56. package/components/http/http.mock.js +1 -0
  57. package/components/hub-source/hub-source.js +2 -0
  58. package/components/hub-source/hub-source__user.js +1 -0
  59. package/components/hub-source/hub-source__users-groups.js +2 -0
  60. package/components/island/content.js +1 -1
  61. package/components/island/header.js +1 -0
  62. package/components/list/list.d.ts +0 -1
  63. package/components/list/list.js +10 -3
  64. package/components/list/list__item.js +3 -0
  65. package/components/list/list__users-groups-source.js +5 -0
  66. package/components/loader/loader.js +3 -1
  67. package/components/loader/loader__core.js +21 -7
  68. package/components/loader-screen/loader-screen.js +2 -0
  69. package/components/login-dialog/login-dialog.js +4 -0
  70. package/components/login-dialog/service.js +4 -0
  71. package/components/message/message.js +2 -0
  72. package/components/old-browsers-message/white-list.js +2 -2
  73. package/components/pager/pager.js +9 -4
  74. package/components/permissions/permissions.js +1 -0
  75. package/components/popup/popup.js +5 -0
  76. package/components/popup/position.js +1 -0
  77. package/components/popup-menu/popup-menu.js +5 -0
  78. package/components/progress-bar/progress-bar.d.ts +6 -0
  79. package/components/progress-bar/progress-bar.js +11 -4
  80. package/components/query-assist/query-assist.js +18 -12
  81. package/components/query-assist/query-assist__suggestions.js +5 -0
  82. package/components/select/select.js +27 -2
  83. package/components/select/select__filter.js +5 -0
  84. package/components/select/select__popup.js +5 -0
  85. package/components/shortcuts/core.js +2 -0
  86. package/components/shortcuts/shortcuts-hoc.js +2 -0
  87. package/components/shortcuts/shortcuts.js +2 -0
  88. package/components/storage/storage.js +3 -0
  89. package/components/storage/storage__fallback.js +5 -2
  90. package/components/storage/storage__local.js +2 -0
  91. package/components/style.css +1 -1
  92. package/components/tab-trap/tab-trap.js +2 -1
  93. package/components/table/multitable.js +8 -7
  94. package/components/table/row-with-focus-sensor.js +6 -4
  95. package/components/table/row.js +2 -0
  96. package/components/table/selection-shortcuts-hoc.js +12 -11
  97. package/components/table/selection.js +1 -0
  98. package/components/table/smart-table.js +4 -0
  99. package/components/table/table.js +4 -0
  100. package/components/tabs/collapsible-more.js +5 -0
  101. package/components/tabs/collapsible-tabs.js +5 -0
  102. package/components/tabs/dumb-tabs.js +5 -0
  103. package/components/tabs/smart-tabs.js +5 -0
  104. package/components/tabs/tabs.js +5 -0
  105. package/components/tag/tag.js +1 -1
  106. package/components/tags-input/tags-input.js +12 -7
  107. package/components/tooltip/tooltip.js +4 -2
  108. package/components/user-agreement/service.js +3 -0
  109. package/components/user-agreement/user-agreement.js +2 -0
  110. package/components/user-card/card.js +4 -0
  111. package/components/user-card/smart-user-card-tooltip.js +4 -0
  112. package/components/user-card/tooltip.js +4 -0
  113. package/components/user-card/user-card.js +4 -0
  114. package/package.json +4 -13
  115. package/typings.d.ts +0 -54
  116. package/babel.config.js +0 -25
  117. package/jslint-xml.js +0 -38
  118. package/postcss.config.js +0 -20
  119. package/webpack.config.js +0 -118
@@ -13,6 +13,7 @@ import 'core-js/modules/es.promise.js';
13
13
  import 'core-js/modules/web.dom-collections.for-each.js';
14
14
  import 'core-js/modules/es.object.entries.js';
15
15
  import 'core-js/modules/es.reflect.delete-property.js';
16
+ import 'core-js/modules/es.array.index-of.js';
16
17
  import '../global/url.js';
17
18
  import 'core-js/modules/es.regexp.exec.js';
18
19
  import 'core-js/modules/es.string.match.js';
@@ -105,7 +106,7 @@ var TokenValidator = /*#__PURE__*/function () {
105
106
  */
106
107
  }, {
107
108
  key: "_validateAgainstUser",
108
- value:
109
+ value: (
109
110
  /**
110
111
  * Check scopes
111
112
  * @param {StoredToken} storedToken
@@ -169,9 +170,10 @@ var TokenValidator = /*#__PURE__*/function () {
169
170
  * have {authRedirect: true}.
170
171
  * @private
171
172
  */
173
+ )
172
174
  }, {
173
175
  key: "_getValidatedToken",
174
- value: function () {
176
+ value: (function () {
175
177
  var _getValidatedToken2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(validators) {
176
178
  var storedToken, i;
177
179
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
@@ -211,7 +213,7 @@ var TokenValidator = /*#__PURE__*/function () {
211
213
  return _getValidatedToken2.apply(this, arguments);
212
214
  }
213
215
  return _getValidatedToken;
214
- }()
216
+ }())
215
217
  }], [{
216
218
  key: "_epoch",
217
219
  value: function _epoch() {
@@ -4,6 +4,7 @@ import 'core-js/modules/es.object.to-string.js';
4
4
  import 'core-js/modules/es.promise.js';
5
5
  import AuthResponseParser from './response-parser.js';
6
6
  import 'core-js/modules/web.dom-collections.for-each.js';
7
+ import 'core-js/modules/es.array.index-of.js';
7
8
  import 'core-js/modules/es.regexp.exec.js';
8
9
  import 'core-js/modules/es.string.replace.js';
9
10
  import 'core-js/modules/es.regexp.to-string.js';
@@ -60,7 +61,7 @@ var WindowFlow = /*#__PURE__*/function () {
60
61
  */
61
62
  }, {
62
63
  key: "_load",
63
- value: function () {
64
+ value: (function () {
64
65
  var _load2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
65
66
  var _this2 = this;
66
67
  var authRequest;
@@ -91,7 +92,7 @@ var WindowFlow = /*#__PURE__*/function () {
91
92
  removeStateListener();
92
93
  removeTokenListener();
93
94
  /* eslint-enable @typescript-eslint/no-use-before-define */
94
- (_this2$_loginWindow = _this2._loginWindow) === null || _this2$_loginWindow === void 0 ? void 0 : _this2$_loginWindow.close();
95
+ (_this2$_loginWindow = _this2._loginWindow) === null || _this2$_loginWindow === void 0 || _this2$_loginWindow.close();
95
96
  clearTimeout(_this2._timeoutId);
96
97
  };
97
98
  var removeTokenListener = _this2._storage.onTokenChange(function (token) {
@@ -123,7 +124,7 @@ var WindowFlow = /*#__PURE__*/function () {
123
124
  return _load2.apply(this, arguments);
124
125
  }
125
126
  return _load;
126
- }()
127
+ }())
127
128
  }, {
128
129
  key: "stop",
129
130
  value: function stop() {
@@ -29,9 +29,11 @@ import 'core-js/modules/es.array.map.js';
29
29
  import '../shortcuts/core.js';
30
30
  import 'core-js/modules/es.array.includes.js';
31
31
  import 'core-js/modules/es.string.includes.js';
32
+ import 'core-js/modules/es.object.assign.js';
32
33
  import 'core-js/modules/es.array.slice.js';
33
34
  import 'core-js/modules/es.array.splice.js';
34
35
  import 'core-js/modules/es.string.match.js';
36
+ import 'core-js/modules/es.array.find-index.js';
35
37
  import 'combokeys';
36
38
  import '../global/sniffer.js';
37
39
  import 'sniffr';
@@ -30,9 +30,11 @@ import 'core-js/modules/es.array.map.js';
30
30
  import '../shortcuts/core.js';
31
31
  import 'core-js/modules/es.array.includes.js';
32
32
  import 'core-js/modules/es.string.includes.js';
33
+ import 'core-js/modules/es.object.assign.js';
33
34
  import 'core-js/modules/es.array.slice.js';
34
35
  import 'core-js/modules/es.array.splice.js';
35
36
  import 'core-js/modules/es.string.match.js';
37
+ import 'core-js/modules/es.array.find-index.js';
36
38
  import 'combokeys';
37
39
  import '../global/sniffer.js';
38
40
  import 'sniffr';
@@ -8,7 +8,9 @@ import { getPixelRatio } from '../global/dom.js';
8
8
  import FallbackAvatar from './fallback-avatar.js';
9
9
  import 'core-js/modules/es.regexp.exec.js';
10
10
  import 'core-js/modules/es.string.match.js';
11
+ import 'core-js/modules/es.array.index-of.js';
11
12
  import 'core-js/modules/es.string.replace.js';
13
+ import 'core-js/modules/es.object.assign.js';
12
14
  import 'core-js/modules/es.object.to-string.js';
13
15
  import 'core-js/modules/web.dom-collections.for-each.js';
14
16
  import 'core-js/modules/es.array.filter.js';
@@ -18,6 +20,7 @@ import 'core-js/modules/es.array.iterator.js';
18
20
  import 'core-js/modules/es.set.js';
19
21
  import 'core-js/modules/web.dom-collections.iterator.js';
20
22
  import 'core-js/modules/es.array.map.js';
23
+ import 'core-js/modules/es.array.from.js';
21
24
  import 'core-js/modules/es.array.slice.js';
22
25
  import '../global/get-uid.js';
23
26
  import 'core-js/modules/es.regexp.to-string.js';
@@ -4,6 +4,7 @@ import 'core-js/modules/es.array.filter.js';
4
4
  import 'core-js/modules/es.object.to-string.js';
5
5
  import 'core-js/modules/es.regexp.exec.js';
6
6
  import 'core-js/modules/es.string.split.js';
7
+ import 'core-js/modules/es.array.from.js';
7
8
  import 'core-js/modules/es.array.slice.js';
8
9
  import 'core-js/modules/es.array.concat.js';
9
10
  import React, { useMemo } from 'react';
@@ -4,6 +4,7 @@ import 'core-js/modules/es.regexp.to-string.js';
4
4
  import 'core-js/modules/es.regexp.exec.js';
5
5
  import 'core-js/modules/es.string.replace.js';
6
6
  import { getRect } from '../global/dom.js';
7
+ import 'core-js/modules/es.object.assign.js';
7
8
  import 'core-js/modules/web.dom-collections.for-each.js';
8
9
  import 'core-js/modules/es.array.filter.js';
9
10
  import 'core-js/modules/es.string.split.js';
@@ -197,11 +198,11 @@ var Caret = /*#__PURE__*/function () {
197
198
  try {
198
199
  if (correctedPosition instanceof Range) {
199
200
  var _window$getSelection, _window$getSelection2;
200
- (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 ? void 0 : _window$getSelection.removeAllRanges();
201
- (_window$getSelection2 = window.getSelection()) === null || _window$getSelection2 === void 0 ? void 0 : _window$getSelection2.addRange(correctedPosition);
201
+ (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 || _window$getSelection.removeAllRanges();
202
+ (_window$getSelection2 = window.getSelection()) === null || _window$getSelection2 === void 0 || _window$getSelection2.addRange(correctedPosition);
202
203
  } else {
203
204
  var _window$getSelection3;
204
- (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : _window$getSelection3.collapse(curNode || this.target, correctedPosition);
205
+ (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 || _window$getSelection3.collapse(curNode || this.target, correctedPosition);
205
206
  }
206
207
  } catch (e) {
207
208
  // Do nothing
@@ -224,7 +225,7 @@ var Caret = /*#__PURE__*/function () {
224
225
  var _window$getSelection4, _range;
225
226
  // Both statements may throw
226
227
  range = (_window$getSelection4 = window.getSelection()) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.getRangeAt(0).cloneRange();
227
- (_range = range) === null || _range === void 0 ? void 0 : _range.setStart(range.startContainer, range.startOffset - 1);
228
+ (_range = range) === null || _range === void 0 || _range.setStart(range.startContainer, range.startOffset - 1);
228
229
  } catch (e) {
229
230
  return offset;
230
231
  }
@@ -26,12 +26,12 @@ function copyHTMLToClipboard(str) {
26
26
  var selection = document.getSelection();
27
27
  // Should restore previous selection
28
28
  var selected = selection && selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
29
- selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();
29
+ selection === null || selection === void 0 || selection.removeAllRanges();
30
30
  var range = document.createRange();
31
31
  range.selectNode(el);
32
- selection === null || selection === void 0 ? void 0 : selection.addRange(range);
32
+ selection === null || selection === void 0 || selection.addRange(range);
33
33
  document.execCommand('copy');
34
- selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();
34
+ selection === null || selection === void 0 || selection.removeAllRanges();
35
35
  document.execCommand('copy');
36
36
  document.body.removeChild(el);
37
37
  if (selected && selection) {
@@ -35,6 +35,7 @@ import '../global/data-tests.js';
35
35
  import 'core-js/modules/es.array.reduce.js';
36
36
  import 'core-js/modules/es.object.entries.js';
37
37
  import '../global/dom.js';
38
+ import 'core-js/modules/es.object.assign.js';
38
39
  import 'core-js/modules/web.dom-collections.for-each.js';
39
40
  import 'core-js/modules/es.string.split.js';
40
41
  import 'core-js/modules/es.set.js';
@@ -55,6 +56,7 @@ import 'core-js/modules/es.string.includes.js';
55
56
  import 'core-js/modules/es.array.slice.js';
56
57
  import 'core-js/modules/es.array.splice.js';
57
58
  import 'core-js/modules/es.string.match.js';
59
+ import 'core-js/modules/es.array.find-index.js';
58
60
  import 'combokeys';
59
61
  import '../global/sniffer.js';
60
62
  import 'sniffr';
@@ -1,3 +1,4 @@
1
+ /// <reference types="highlight.js" />
1
2
  import React, { PureComponent, Ref } from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import highlight from 'highlight.js/lib/core';
@@ -16,7 +16,6 @@ import 'core-js/modules/es.array.map.js';
16
16
  import 'core-js/modules/es.array.filter.js';
17
17
  import 'core-js/modules/es.string.match.js';
18
18
  import 'core-js/modules/es.array.slice.js';
19
- import 'core-js/modules/es.array.reverse.js';
20
19
  import 'core-js/modules/web.dom-collections.for-each.js';
21
20
  import 'core-js/modules/es.array.splice.js';
22
21
  import 'core-js/modules/es.array.iterator.js';
@@ -24,10 +24,12 @@ import 'core-js/modules/es.array.map.js';
24
24
  import '../shortcuts/core.js';
25
25
  import 'core-js/modules/es.array.includes.js';
26
26
  import 'core-js/modules/es.string.includes.js';
27
+ import 'core-js/modules/es.object.assign.js';
27
28
  import 'core-js/modules/es.array.slice.js';
28
29
  import 'core-js/modules/es.array.splice.js';
29
30
  import 'core-js/modules/es.regexp.exec.js';
30
31
  import 'core-js/modules/es.string.match.js';
32
+ import 'core-js/modules/es.array.find-index.js';
31
33
  import 'combokeys';
32
34
  import '../global/sniffer.js';
33
35
  import 'sniffr';
@@ -31,10 +31,12 @@ import 'core-js/modules/es.array.map.js';
31
31
  import '../shortcuts/core.js';
32
32
  import 'core-js/modules/es.array.includes.js';
33
33
  import 'core-js/modules/es.string.includes.js';
34
+ import 'core-js/modules/es.object.assign.js';
34
35
  import 'core-js/modules/es.array.slice.js';
35
36
  import 'core-js/modules/es.array.splice.js';
36
37
  import 'core-js/modules/es.regexp.exec.js';
37
38
  import 'core-js/modules/es.string.match.js';
39
+ import 'core-js/modules/es.array.find-index.js';
38
40
  import 'combokeys';
39
41
  import '../global/sniffer.js';
40
42
  import 'sniffr';
@@ -22,14 +22,17 @@ import 'core-js/modules/es.array.iterator.js';
22
22
  import 'core-js/modules/es.set.js';
23
23
  import 'core-js/modules/web.dom-collections.iterator.js';
24
24
  import 'core-js/modules/es.array.filter.js';
25
+ import 'core-js/modules/es.array.index-of.js';
25
26
  import 'core-js/modules/es.array.includes.js';
26
27
  import 'core-js/modules/es.regexp.to-string.js';
27
28
  import '../shortcuts/core.js';
28
29
  import 'core-js/modules/es.string.includes.js';
30
+ import 'core-js/modules/es.object.assign.js';
29
31
  import 'core-js/modules/es.array.slice.js';
30
32
  import 'core-js/modules/es.array.splice.js';
31
33
  import 'core-js/modules/es.regexp.exec.js';
32
34
  import 'core-js/modules/es.string.match.js';
35
+ import 'core-js/modules/es.array.find-index.js';
33
36
  import 'combokeys';
34
37
  import '../global/sniffer.js';
35
38
  import 'sniffr';
@@ -37,6 +40,7 @@ import '../global/data-tests.js';
37
40
  import 'core-js/modules/es.array.reduce.js';
38
41
  import 'core-js/modules/es.object.entries.js';
39
42
  import '../loader/loader__core.js';
43
+ import 'core-js/modules/es.array.fill.js';
40
44
  import '../global/dom.js';
41
45
  import 'core-js/modules/es.string.split.js';
42
46
  import '@jetbrains/icons/chevron-right';
@@ -62,6 +66,7 @@ import '../_helpers/button__classes.js';
62
66
  import '../checkbox/checkbox.js';
63
67
  import '@jetbrains/icons/checkmark-14px';
64
68
  import '@jetbrains/icons/remove-14px';
69
+ import 'core-js/modules/es.array.find.js';
65
70
 
66
71
  var DataList = /*#__PURE__*/function (_PureComponent) {
67
72
  _inherits(DataList, _PureComponent);
@@ -101,10 +106,10 @@ var DataList = /*#__PURE__*/function (_PureComponent) {
101
106
  var item = itemFormatter(focused);
102
107
  if (item.collapsed) {
103
108
  var _item$onExpand;
104
- (_item$onExpand = item.onExpand) === null || _item$onExpand === void 0 ? void 0 : _item$onExpand.call(item);
109
+ (_item$onExpand = item.onExpand) === null || _item$onExpand === void 0 || _item$onExpand.call(item);
105
110
  } else {
106
111
  var _item$onCollapse;
107
- (_item$onCollapse = item.onCollapse) === null || _item$onCollapse === void 0 ? void 0 : _item$onCollapse.call(item);
112
+ (_item$onCollapse = item.onCollapse) === null || _item$onCollapse === void 0 || _item$onCollapse.call(item);
108
113
  }
109
114
  });
110
115
  _defineProperty(_assertThisInitialized(_this), "shortcutsMap", {
@@ -35,6 +35,7 @@ import '../global/controls-height.js';
35
35
  import '../_helpers/button__classes.js';
36
36
  import 'core-js/modules/es.set.js';
37
37
  import 'core-js/modules/es.array.filter.js';
38
+ import 'core-js/modules/es.array.index-of.js';
38
39
  import '../global/focus-sensor-hoc.js';
39
40
  import '../global/prop-types.js';
40
41
  import '../global/composeRefs.js';
@@ -5,10 +5,12 @@ import 'core-js/modules/es.set.js';
5
5
  import 'core-js/modules/web.dom-collections.iterator.js';
6
6
  import 'core-js/modules/web.dom-collections.for-each.js';
7
7
  import 'core-js/modules/es.array.concat.js';
8
+ import 'core-js/modules/es.array.find.js';
8
9
  import 'core-js/modules/es.array.includes.js';
9
10
  import 'core-js/modules/es.string.includes.js';
10
11
  import 'core-js/modules/es.array.filter.js';
11
12
  import Selection$1 from '../table/selection.js';
13
+ import 'core-js/modules/es.array.index-of.js';
12
14
 
13
15
  var Selection = /*#__PURE__*/function (_TableSelection) {
14
16
  _inherits(Selection, _TableSelection);
@@ -40,6 +40,7 @@ import 'react-dom';
40
40
  import '../global/get-uid.js';
41
41
  import '../global/schedule-raf.js';
42
42
  import '../global/dom.js';
43
+ import 'core-js/modules/es.object.assign.js';
43
44
  import 'core-js/modules/es.array.filter.js';
44
45
  import 'core-js/modules/es.string.split.js';
45
46
  import 'core-js/modules/es.set.js';
@@ -50,6 +51,7 @@ import 'core-js/modules/es.string.includes.js';
50
51
  import 'core-js/modules/es.array.slice.js';
51
52
  import 'core-js/modules/es.array.splice.js';
52
53
  import 'core-js/modules/es.string.match.js';
54
+ import 'core-js/modules/es.array.find-index.js';
53
55
  import 'combokeys';
54
56
  import '../global/sniffer.js';
55
57
  import 'sniffr';
@@ -176,7 +178,7 @@ var DatePicker = /*#__PURE__*/function (_PureComponent) {
176
178
  });
177
179
  _defineProperty(_assertThisInitialized(_this), "closePopup", function () {
178
180
  var _this$popup;
179
- (_this$popup = _this.popup) === null || _this$popup === void 0 ? void 0 : _this$popup._onCloseAttempt();
181
+ (_this$popup = _this.popup) === null || _this$popup === void 0 || _this$popup._onCloseAttempt();
180
182
  });
181
183
  _defineProperty(_assertThisInitialized(_this), "parse", memoize(function (date) {
182
184
  var parseDateInput = _this.props.parseDateInput;
@@ -194,8 +194,8 @@ var DatePopup = /*#__PURE__*/function (_Component) {
194
194
  };
195
195
  }
196
196
  _this.select(changes);
197
- (_this$props$onClear = (_this$props = _this.props).onClear) === null || _this$props$onClear === void 0 ? void 0 : _this$props$onClear.call(_this$props, e);
198
- (_this$componentRef$cu = _this.componentRef.current) === null || _this$componentRef$cu === void 0 || (_this$componentRef$cu = _this$componentRef$cu.querySelector('input')) === null || _this$componentRef$cu === void 0 ? void 0 : _this$componentRef$cu.focus();
197
+ (_this$props$onClear = (_this$props = _this.props).onClear) === null || _this$props$onClear === void 0 || _this$props$onClear.call(_this$props, e);
198
+ (_this$componentRef$cu = _this.componentRef.current) === null || _this$componentRef$cu === void 0 || (_this$componentRef$cu = _this$componentRef$cu.querySelector('input')) === null || _this$componentRef$cu === void 0 || _this$componentRef$cu.focus();
199
199
  });
200
200
  var defaultState = {
201
201
  text: null,
@@ -28,10 +28,12 @@ import 'core-js/modules/es.array.map.js';
28
28
  import '../shortcuts/core.js';
29
29
  import 'core-js/modules/es.array.includes.js';
30
30
  import 'core-js/modules/es.string.includes.js';
31
+ import 'core-js/modules/es.object.assign.js';
31
32
  import 'core-js/modules/es.array.slice.js';
32
33
  import 'core-js/modules/es.array.splice.js';
33
34
  import 'core-js/modules/es.regexp.exec.js';
34
35
  import 'core-js/modules/es.string.match.js';
36
+ import 'core-js/modules/es.array.find-index.js';
35
37
  import 'combokeys';
36
38
  import '../global/sniffer.js';
37
39
  import 'sniffr';
@@ -82,7 +82,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
82
82
  return;
83
83
  }
84
84
  _this._clearTimer();
85
- (_this$props$onMouseEn = (_this$props = _this.props).onMouseEnter) === null || _this$props$onMouseEn === void 0 ? void 0 : _this$props$onMouseEn.call(_this$props, event);
85
+ (_this$props$onMouseEn = (_this$props = _this.props).onMouseEnter) === null || _this$props$onMouseEn === void 0 || _this$props$onMouseEn.call(_this$props, event);
86
86
  _this.hoverTimer = window.setTimeout(function () {
87
87
  if (!_this.state.show) {
88
88
  _this._toggle(true);
@@ -94,7 +94,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
94
94
  if (_this.props.disabled) {
95
95
  return;
96
96
  }
97
- (_this$props$onMouseLe = (_this$props2 = _this.props).onMouseLeave) === null || _this$props$onMouseLe === void 0 ? void 0 : _this$props$onMouseLe.call(_this$props2, event);
97
+ (_this$props$onMouseLe = (_this$props2 = _this.props).onMouseLeave) === null || _this$props$onMouseLe === void 0 || _this$props$onMouseLe.call(_this$props2, event);
98
98
  if (_this.state.pinned) {
99
99
  return;
100
100
  }
@@ -1,4 +1,5 @@
1
1
  import { e as _objectWithoutProperties, g as _objectSpread2, f as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.object.assign.js';
2
3
  import React, { useMemo, cloneElement } from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import List, { ActiveItemContext } from '../list/list.js';
@@ -14,6 +15,8 @@ import 'core-js/modules/es.array.concat.js';
14
15
  import 'core-js/modules/es.symbol.js';
15
16
  import 'core-js/modules/es.symbol.description.js';
16
17
  import 'core-js/modules/es.object.to-string.js';
18
+ import 'core-js/modules/es.array.find-index.js';
19
+ import 'core-js/modules/es.array.find.js';
17
20
  import 'classnames';
18
21
  import 'react-virtualized/dist/es/List';
19
22
  import 'react-virtualized/dist/es/AutoSizer';
@@ -51,10 +54,12 @@ import '../link/clickableLink.js';
51
54
  import '../_helpers/link.js';
52
55
  import '../_helpers/list.js';
53
56
  import '../list/list__item.js';
57
+ import 'core-js/modules/es.array.index-of.js';
54
58
  import '../avatar/avatar.js';
55
59
  import '../global/url.js';
56
60
  import 'core-js/modules/es.string.replace.js';
57
61
  import '../avatar/fallback-avatar.js';
62
+ import 'core-js/modules/es.array.from.js';
58
63
  import 'core-js/modules/es.regexp.to-string.js';
59
64
  import '../checkbox/checkbox.js';
60
65
  import '@jetbrains/icons/checkmark-14px';
@@ -23,7 +23,7 @@ export type EditableHeadingProps = Omit<InputHTMLAttributes<HTMLInputElement | H
23
23
  'data-test'?: string | null;
24
24
  error?: string;
25
25
  multiline?: boolean;
26
- multilineInputRows?: number;
26
+ maxInputRows?: number;
27
27
  renderMenu?: () => React.ReactNode;
28
28
  translations?: EditableHeadingTranslations;
29
29
  };
@@ -41,17 +41,18 @@ import 'core-js/modules/es.array.map.js';
41
41
  import '../shortcuts/core.js';
42
42
  import 'core-js/modules/es.array.includes.js';
43
43
  import 'core-js/modules/es.string.includes.js';
44
+ import 'core-js/modules/es.object.assign.js';
44
45
  import 'core-js/modules/es.array.slice.js';
45
46
  import 'core-js/modules/es.array.splice.js';
46
47
  import 'core-js/modules/es.string.match.js';
48
+ import 'core-js/modules/es.array.find-index.js';
47
49
  import 'combokeys';
48
50
  import '../global/sniffer.js';
49
51
  import 'sniffr';
50
52
 
51
- var modules_6e69b0fe = {"unit":"i__const_unit_0","editableHeading":"editableHeading_rui_0870","fullSize":"fullSize_rui_0870","isEditing":"isEditing_rui_0870","headingWrapperButton":"headingWrapperButton_rui_0870","disabled":"disabled_rui_0870","selectionMode":"selectionMode_rui_0870","heading":"heading_rui_0870","multiline":"multiline_rui_0870","input":"input_rui_0870","error":"error_rui_0870","textarea":"textarea_rui_0870","textareaWrapper":"textareaWrapper_rui_0870","button":"button_rui_0870","errorText":"errorText_rui_0870","level1":"level1_rui_0870","level2":"level2_rui_0870","level3":"level3_rui_0870","sizeS":"sizeS_rui_0870","sizeM":"sizeM_rui_0870","sizeL":"sizeL_rui_0870","sizeFULL":"sizeFULL_rui_0870"};
53
+ var modules_6e69b0fe = {"unit":"i__const_unit_0","editableHeading":"editableHeading_rui_0870","fullSize":"fullSize_rui_0870","isEditing":"isEditing_rui_0870","headingWrapperButton":"headingWrapperButton_rui_0870","disabled":"disabled_rui_0870","selectionMode":"selectionMode_rui_0870","heading":"heading_rui_0870","multiline":"multiline_rui_0870","input":"input_rui_0870","error":"error_rui_0870","textarea":"textarea_rui_0870","textareaNotOverflow":"textareaNotOverflow_rui_0870","textareaFade":"textareaFade_rui_0870","textareaWrapper":"textareaWrapper_rui_0870","button":"button_rui_0870","errorText":"errorText_rui_0870","level1":"level1_rui_0870","level2":"level2_rui_0870","level3":"level3_rui_0870","sizeS":"sizeS_rui_0870","sizeM":"sizeM_rui_0870","sizeL":"sizeL_rui_0870","sizeFULL":"sizeFULL_rui_0870"};
52
54
 
53
- var _excluded = ["level", "className", "headingClassName", "inputClassName", "children", "isEditing", "isSavingPossible", "isSaving", "embedded", "size", "onEdit", "onSave", "onCancel", "autoFocus", "data-test", "error", "disabled", "multiline", "renderMenu", "onFocus", "onBlur", "translations", "multilineInputRows"];
54
- var DEFAULT_MULTILINE_INPUT_ROWS = 3;
55
+ var _excluded = ["level", "className", "headingClassName", "inputClassName", "children", "isEditing", "isSavingPossible", "isSaving", "embedded", "size", "onEdit", "onSave", "onCancel", "autoFocus", "data-test", "error", "disabled", "multiline", "renderMenu", "onFocus", "onBlur", "onChange", "onScroll", "maxInputRows", "translations"];
55
56
  function noop() {}
56
57
  var EditableHeading = function EditableHeading(props) {
57
58
  var _props$level = props.level,
@@ -89,13 +90,14 @@ var EditableHeading = function EditableHeading(props) {
89
90
  } : _props$renderMenu,
90
91
  onFocus = props.onFocus,
91
92
  onBlur = props.onBlur,
93
+ onChange = props.onChange,
94
+ onScroll = props.onScroll,
95
+ maxInputRows = props.maxInputRows,
92
96
  _props$translations = props.translations,
93
97
  translations = _props$translations === void 0 ? {
94
98
  save: 'Save',
95
99
  cancel: 'Cancel'
96
100
  } : _props$translations,
97
- _props$multilineInput = props.multilineInputRows,
98
- multilineInputRows = _props$multilineInput === void 0 ? DEFAULT_MULTILINE_INPUT_ROWS : _props$multilineInput,
99
101
  restProps = _objectWithoutProperties(props, _excluded);
100
102
  var _React$useState = React.useState(getUID('ring-editable-heading-')),
101
103
  _React$useState2 = _slicedToArray(_React$useState, 1),
@@ -113,7 +115,14 @@ var EditableHeading = function EditableHeading(props) {
113
115
  isInSelectionMode = _React$useState8[0],
114
116
  setIsInSelectionMode = _React$useState8[1];
115
117
  var textAreaRef = React.useRef(null);
116
- var textAreaWrapperRef = React.useRef(null);
118
+ var _React$useState9 = React.useState(false),
119
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
120
+ isScrolledToBottom = _React$useState10[0],
121
+ setIsScrolledToBottom = _React$useState10[1];
122
+ var _React$useState11 = React.useState(false),
123
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
124
+ isOverflow = _React$useState12[0],
125
+ setIsOverflow = _React$useState12[1];
117
126
  var hasError = error !== undefined;
118
127
  var isSaveDisabled = !isSavingPossible || !children || children.trim() === '' || hasError || isSaving;
119
128
  var isCancelDisabled = isSaving;
@@ -137,7 +146,31 @@ var EditableHeading = function EditableHeading(props) {
137
146
  [modules_6e69b0fe.selectionMode]: isInSelectionMode
138
147
  });
139
148
  var headingClasses = classNames(modules_6e69b0fe.heading, headingClassName, modules_6e69b0fe["size".concat(size)]);
140
- var inputClasses = classNames('ring-js-shortcuts', modules_6e69b0fe.input, modules_6e69b0fe.textarea, modules_88cfaf40["size".concat(size)], modules_6e69b0fe["level".concat(level)], inputClassName);
149
+ var inputClasses = classNames('ring-js-shortcuts', modules_6e69b0fe.input, modules_6e69b0fe.textarea, {
150
+ [modules_6e69b0fe.textareaNotOverflow]: !isOverflow
151
+ }, modules_88cfaf40["size".concat(size)], modules_6e69b0fe["level".concat(level)], inputClassName);
152
+ var stretch = useCallback(function (el) {
153
+ if (!el || !el.style) {
154
+ return;
155
+ }
156
+ el.style.height = '0';
157
+ var _window$getComputedSt = window.getComputedStyle(el),
158
+ paddingTop = _window$getComputedSt.paddingTop,
159
+ paddingBottom = _window$getComputedSt.paddingBottom;
160
+ el.style.height = "".concat(el.scrollHeight - parseFloat(paddingTop) - parseFloat(paddingBottom), "px");
161
+ }, []);
162
+ var checkValue = useCallback(function (el) {
163
+ if (multiline && el != null && el.scrollHeight >= el.clientHeight) {
164
+ stretch(el);
165
+ }
166
+ }, [stretch, multiline]);
167
+ var checkOverflow = useCallback(function (el) {
168
+ var scrollHeight = el.scrollHeight || 0;
169
+ var clientHeight = el.clientHeight || 0;
170
+ var scrollTop = el.scrollTop || 0;
171
+ setIsScrolledToBottom(scrollHeight - clientHeight <= scrollTop);
172
+ setIsOverflow(scrollHeight > clientHeight);
173
+ }, [setIsScrolledToBottom]);
141
174
  var onHeadingMouseDown = React.useCallback(function () {
142
175
  setIsMouseDown(true);
143
176
  }, []);
@@ -156,39 +189,31 @@ var EditableHeading = function EditableHeading(props) {
156
189
  }, [isMouseDown, isInSelectionMode, disabled, onEdit]);
157
190
  var onInputFocus = React.useCallback(function (e) {
158
191
  setIsInFocus(true);
159
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
160
- }, [onFocus]);
192
+ checkValue(e.target);
193
+ checkOverflow(e.target);
194
+ onFocus === null || onFocus === void 0 || onFocus(e);
195
+ }, [onFocus, checkOverflow, checkValue]);
196
+ var onInputChange = React.useCallback(function (e) {
197
+ checkValue(e.target);
198
+ checkOverflow(e.target);
199
+ onChange === null || onChange === void 0 || onChange(e);
200
+ }, [onChange, checkOverflow, checkValue]);
201
+ var onInputScroll = React.useCallback(function (e) {
202
+ checkOverflow(e.target);
203
+ onScroll === null || onScroll === void 0 || onScroll(e);
204
+ }, [onScroll, checkOverflow]);
161
205
  var onInputBlur = React.useCallback(function (e) {
162
206
  setIsInFocus(false);
163
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
207
+ onBlur === null || onBlur === void 0 || onBlur(e);
164
208
  }, [onBlur]);
165
- var onScroll = useCallback(function () {
166
- var _textAreaRef$current, _textAreaRef$current2, _textAreaRef$current3;
167
- var scrollHeight = (textAreaRef === null || textAreaRef === void 0 || (_textAreaRef$current = textAreaRef.current) === null || _textAreaRef$current === void 0 ? void 0 : _textAreaRef$current.scrollHeight) || 0;
168
- var clientHeight = (textAreaRef === null || textAreaRef === void 0 || (_textAreaRef$current2 = textAreaRef.current) === null || _textAreaRef$current2 === void 0 ? void 0 : _textAreaRef$current2.clientHeight) || 0;
169
- var scrollTop = (textAreaRef === null || textAreaRef === void 0 || (_textAreaRef$current3 = textAreaRef.current) === null || _textAreaRef$current3 === void 0 ? void 0 : _textAreaRef$current3.scrollTop) || 0;
170
- var isScrolledToBottom = scrollHeight - clientHeight <= scrollTop;
171
- if (isScrolledToBottom) {
172
- var _textAreaWrapperRef$c;
173
- textAreaWrapperRef === null || textAreaWrapperRef === void 0 || (_textAreaWrapperRef$c = textAreaWrapperRef.current) === null || _textAreaWrapperRef$c === void 0 ? void 0 : _textAreaWrapperRef$c.classList.remove(modules_6e69b0fe.textareaWrapper);
174
- } else {
175
- var _textAreaWrapperRef$c2;
176
- textAreaWrapperRef === null || textAreaWrapperRef === void 0 || (_textAreaWrapperRef$c2 = textAreaWrapperRef.current) === null || _textAreaWrapperRef$c2 === void 0 ? void 0 : _textAreaWrapperRef$c2.classList.add(modules_6e69b0fe.textareaWrapper);
177
- }
178
- }, []);
179
209
  useEffect(function () {
180
- var textAreaRefCurrent = textAreaRef === null || textAreaRef === void 0 ? void 0 : textAreaRef.current;
181
- textAreaRefCurrent === null || textAreaRefCurrent === void 0 ? void 0 : textAreaRefCurrent.addEventListener('scroll', onScroll);
182
210
  window.addEventListener('mousemove', onMouseMove);
183
211
  window.addEventListener('mouseup', onMouseUp);
184
212
  return function () {
185
213
  window.removeEventListener('mousemove', onMouseMove);
186
214
  window.removeEventListener('mouseup', onMouseUp);
187
- if (textAreaRefCurrent) {
188
- textAreaRefCurrent.removeEventListener('scroll', onScroll);
189
- }
190
215
  };
191
- }, [onMouseMove, onMouseUp, onScroll]);
216
+ }, [onMouseMove, onMouseUp]);
192
217
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
193
218
  className: classes
194
219
  }, !disabled && isEditing ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Shortcuts, {
@@ -200,25 +225,31 @@ var EditableHeading = function EditableHeading(props) {
200
225
  value: children,
201
226
  autoFocus: autoFocus,
202
227
  "data-test": dataTest,
203
- disabled: isSaving
228
+ disabled: isSaving,
229
+ onChange: onChange
204
230
  }, restProps, {
205
231
  onFocus: onInputFocus,
206
232
  onBlur: onInputBlur
207
233
  })) : /*#__PURE__*/React.createElement("div", {
208
- ref: textAreaWrapperRef,
209
- className: modules_6e69b0fe.textareaWrapper
234
+ className: classNames(modules_6e69b0fe.textareaWrapper, modules_88cfaf40["size".concat(size)])
210
235
  }, /*#__PURE__*/React.createElement("textarea", _extends({
211
236
  ref: textAreaRef,
212
237
  className: inputClasses,
213
238
  value: children,
214
239
  autoFocus: autoFocus,
215
- rows: multilineInputRows,
216
240
  "data-test": dataTest,
217
- disabled: isSaving
241
+ disabled: isSaving,
242
+ onChange: onInputChange
218
243
  }, restProps, {
219
244
  onFocus: onInputFocus,
220
- onBlur: onInputBlur
221
- })))) : /*#__PURE__*/React.createElement("button", {
245
+ onBlur: onInputBlur,
246
+ onScroll: onInputScroll,
247
+ style: {
248
+ maxHeight: maxInputRows ? "".concat(maxInputRows, "lh") : ''
249
+ }
250
+ })), !isScrolledToBottom && /*#__PURE__*/React.createElement("div", {
251
+ className: modules_6e69b0fe.textareaFade
252
+ }))) : /*#__PURE__*/React.createElement("button", {
222
253
  type: "button",
223
254
  className: modules_6e69b0fe.headingWrapperButton,
224
255
  onMouseDown: onHeadingMouseDown
@@ -16,6 +16,7 @@ import 'react-dom';
16
16
  import '../global/get-uid.js';
17
17
  import '../global/schedule-raf.js';
18
18
  import '../global/dom.js';
19
+ import 'core-js/modules/es.object.assign.js';
19
20
  import 'core-js/modules/es.array.filter.js';
20
21
  import 'core-js/modules/es.string.split.js';
21
22
  import 'core-js/modules/es.array.iterator.js';
@@ -28,6 +29,7 @@ import 'core-js/modules/es.string.includes.js';
28
29
  import 'core-js/modules/es.array.slice.js';
29
30
  import 'core-js/modules/es.array.splice.js';
30
31
  import 'core-js/modules/es.string.match.js';
32
+ import 'core-js/modules/es.array.find-index.js';
31
33
  import 'combokeys';
32
34
  import '../global/sniffer.js';
33
35
  import 'sniffr';
@@ -1,4 +1,5 @@
1
1
  import { j as _slicedToArray, d as _createClass, c as _classCallCheck, _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.object.assign.js';
2
3
  import 'core-js/modules/es.object.to-string.js';
3
4
  import 'core-js/modules/web.dom-collections.for-each.js';
4
5
  import 'core-js/modules/es.array.filter.js';