@jetbrains/ring-ui-built 6.0.32 → 6.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/_helpers/_rollupPluginBabelHelpers.js +567 -1
- package/components/_helpers/anchor.js +6 -7
- package/components/_helpers/button__classes.js +14 -16
- package/components/_helpers/caption.js +20 -14
- package/components/_helpers/card.js +105 -95
- package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
- package/components/_helpers/icon__svg.js +25 -22
- package/components/_helpers/input.js +177 -146
- package/components/_helpers/query-assist__suggestions.js +90 -74
- package/components/_helpers/select__filter.js +69 -48
- package/components/_helpers/services-link.js +37 -29
- package/components/_helpers/sidebar.js +107 -99
- package/components/_helpers/tab-link.js +7 -7
- package/components/_helpers/theme.js +40 -31
- package/components/_helpers/title.js +72 -57
- package/components/alert/alert.js +202 -150
- package/components/alert/container.js +41 -32
- package/components/alert-service/alert-service.js +170 -105
- package/components/analytics/analytics.js +22 -12
- package/components/analytics/analytics__custom-plugin.js +75 -54
- package/components/auth/auth.js +36 -4
- package/components/auth/auth__core.js +1471 -746
- package/components/auth/background-flow.js +127 -87
- package/components/auth/down-notification.js +73 -30
- package/components/auth/iframe-flow.js +133 -75
- package/components/auth/request-builder.js +82 -46
- package/components/auth/response-parser.js +116 -86
- package/components/auth/storage.js +334 -171
- package/components/auth/token-validator.js +242 -137
- package/components/auth/window-flow.js +134 -92
- package/components/auth-dialog/auth-dialog.js +172 -114
- package/components/auth-dialog-service/auth-dialog-service.js +31 -8
- package/components/avatar/avatar-example-datauri.js +1 -23
- package/components/avatar/avatar.js +152 -119
- package/components/avatar/fallback-avatar.js +38 -22
- package/components/badge/badge.js +45 -35
- package/components/button/button.js +107 -86
- package/components/button-group/button-group.js +33 -19
- package/components/button-set/button-set.js +32 -20
- package/components/button-toolbar/button-toolbar.js +31 -19
- package/components/caret/caret.js +220 -186
- package/components/checkbox/checkbox.js +101 -76
- package/components/clipboard/clipboard-fallback.js +10 -10
- package/components/clipboard/clipboard.js +132 -35
- package/components/code/code.js +166 -92
- package/components/collapse/collapse-content.js +64 -42
- package/components/collapse/collapse-context.js +2 -2
- package/components/collapse/collapse-control.js +14 -12
- package/components/collapse/collapse.js +17 -11
- package/components/collapse/consts.js +4 -4
- package/components/collapse/utils.js +3 -1
- package/components/confirm/confirm.js +104 -66
- package/components/confirm-service/confirm-service.js +59 -37
- package/components/content-layout/content-layout.js +64 -43
- package/components/content-layout/sidebar.js +1 -0
- package/components/contenteditable/contenteditable.js +59 -50
- package/components/control-label/control-label.js +9 -9
- package/components/data-list/data-list.js +182 -129
- package/components/data-list/data-list.mock.js +6 -2
- package/components/data-list/item.js +170 -143
- package/components/data-list/selection.js +136 -76
- package/components/data-list/title.js +12 -1
- package/components/date-picker/consts.js +26 -19
- package/components/date-picker/date-input.js +144 -113
- package/components/date-picker/date-picker.js +282 -227
- package/components/date-picker/date-popup.js +395 -350
- package/components/date-picker/day.js +116 -87
- package/components/date-picker/month-names.js +66 -43
- package/components/date-picker/month-slider.js +76 -51
- package/components/date-picker/month.js +25 -16
- package/components/date-picker/months.js +50 -43
- package/components/date-picker/weekdays.js +22 -12
- package/components/date-picker/years.js +110 -83
- package/components/dialog/dialog.js +190 -142
- package/components/dialog/dialog__body-scroll-preventer.js +4 -0
- package/components/dropdown/anchor.js +9 -0
- package/components/dropdown/dropdown.js +213 -182
- package/components/dropdown-menu/dropdown-menu.js +97 -71
- package/components/editable-heading/editable-heading.js +127 -75
- package/components/error-bubble/error-bubble.js +60 -31
- package/components/error-message/error-message.js +59 -39
- package/components/footer/footer.js +30 -27
- package/components/global/compose.js +10 -1
- package/components/global/composeRefs.js +12 -7
- package/components/global/controls-height.js +2 -2
- package/components/global/create-stateful-context.js +15 -15
- package/components/global/data-tests.js +14 -6
- package/components/global/dom.js +86 -47
- package/components/global/focus-sensor-hoc.js +132 -122
- package/components/global/fuzzy-highlight.js +36 -22
- package/components/global/get-event-key.js +8 -8
- package/components/global/get-uid.js +8 -4
- package/components/global/inject-styles.js +15 -10
- package/components/global/listeners.js +51 -27
- package/components/global/memoize.js +12 -6
- package/components/global/normalize-indent.js +50 -19
- package/components/global/promise-with-timeout.js +8 -6
- package/components/global/prop-types.js +5 -3
- package/components/global/react-dom-renderer.js +44 -28
- package/components/global/react-render-adapter.js +1 -1
- package/components/global/rerender-hoc.js +30 -12
- package/components/global/schedule-raf.js +6 -5
- package/components/global/sniffer.js +1 -1
- package/components/global/theme.js +22 -0
- package/components/global/trivial-template-tag.js +10 -3
- package/components/global/typescript-utils.js +6 -2
- package/components/global/url.js +26 -20
- package/components/global/use-event-callback.js +4 -6
- package/components/grid/col.js +52 -35
- package/components/grid/grid.js +31 -17
- package/components/grid/row.js +47 -35
- package/components/group/group.js +25 -17
- package/components/header/header.js +78 -33
- package/components/header/logo.js +36 -20
- package/components/header/profile.js +199 -166
- package/components/header/services-link.js +4 -0
- package/components/header/services.js +116 -73
- package/components/header/smart-profile.js +203 -111
- package/components/header/smart-services.js +113 -62
- package/components/header/tray-icon.js +37 -21
- package/components/header/tray.js +32 -21
- package/components/heading/heading.js +25 -24
- package/components/http/http.js +353 -203
- package/components/http/http.mock.js +101 -49
- package/components/hub-source/hub-source.js +190 -83
- package/components/hub-source/hub-source__user.js +44 -11
- package/components/hub-source/hub-source__users-groups.js +65 -37
- package/components/i18n/i18n-context.js +10 -7
- package/components/i18n/i18n.js +10 -7
- package/components/icon/icon.js +93 -76
- package/components/icon/icon__svg.js +8 -0
- package/components/icon/index.js +8 -0
- package/components/input/input.js +13 -0
- package/components/island/adaptive-island-hoc.js +43 -30
- package/components/island/content.js +132 -115
- package/components/island/header.js +70 -57
- package/components/island/island.js +40 -28
- package/components/island-legacy/content-legacy.js +25 -17
- package/components/island-legacy/header-legacy.js +27 -19
- package/components/island-legacy/island-legacy.js +25 -17
- package/components/link/clickableLink.js +59 -44
- package/components/link/link.js +68 -57
- package/components/list/consts.js +2 -2
- package/components/list/list.js +698 -611
- package/components/list/list__custom.js +62 -44
- package/components/list/list__hint.js +19 -10
- package/components/list/list__item.js +174 -133
- package/components/list/list__link.js +50 -37
- package/components/list/list__separator.js +24 -14
- package/components/list/list__title.js +32 -22
- package/components/list/list__users-groups-source.js +126 -54
- package/components/loader/loader.js +74 -43
- package/components/loader/loader__core.js +263 -198
- package/components/loader-inline/loader-inline.js +35 -23
- package/components/loader-screen/loader-screen.js +46 -25
- package/components/login-dialog/login-dialog.js +158 -111
- package/components/login-dialog/service.js +34 -8
- package/components/markdown/markdown.js +23 -15
- package/components/message/message.js +203 -161
- package/components/old-browsers-message/old-browsers-message.js +18 -11
- package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
- package/components/old-browsers-message/white-list.js +16 -8
- package/components/pager/pager.js +271 -212
- package/components/panel/panel.js +25 -17
- package/components/permissions/permissions.js +172 -127
- package/components/permissions/permissions__cache.js +224 -194
- package/components/popup/popup.consts.js +1 -1
- package/components/popup/popup.js +343 -284
- package/components/popup/popup.target.js +8 -9
- package/components/popup/position.js +106 -96
- package/components/popup-menu/popup-menu.js +81 -44
- package/components/progress-bar/progress-bar.js +104 -87
- package/components/query-assist/query-assist.js +916 -838
- package/components/query-assist/query-assist__suggestions.js +30 -1
- package/components/radio/radio.js +34 -19
- package/components/radio/radio__item.js +69 -52
- package/components/select/select.js +957 -852
- package/components/select/select__filter.js +30 -0
- package/components/select/select__popup.js +487 -373
- package/components/shortcuts/core.js +217 -166
- package/components/shortcuts/shortcut-title.js +11 -6
- package/components/shortcuts/shortcuts-hoc.js +45 -19
- package/components/shortcuts/shortcuts.js +75 -50
- package/components/slider/slider.js +122 -99
- package/components/slider/slider.utils.js +24 -14
- package/components/storage/storage.js +33 -4
- package/components/storage/storage__fallback.js +224 -149
- package/components/storage/storage__local.js +153 -90
- package/components/tab-trap/tab-trap.js +153 -122
- package/components/table/cell.js +26 -14
- package/components/table/disable-hover-hoc.js +51 -33
- package/components/table/header-cell.js +89 -64
- package/components/table/header.js +132 -104
- package/components/table/multitable.js +125 -107
- package/components/table/row-with-focus-sensor.js +69 -25
- package/components/table/row.js +216 -175
- package/components/table/selection-adapter.js +3 -1
- package/components/table/selection-shortcuts-hoc.js +181 -180
- package/components/table/selection.js +226 -156
- package/components/table/smart-table.js +88 -50
- package/components/table/table.js +358 -289
- package/components/tabs/collapsible-more.js +79 -46
- package/components/tabs/collapsible-tab.js +38 -31
- package/components/tabs/collapsible-tabs.js +153 -88
- package/components/tabs/custom-item.js +2 -4
- package/components/tabs/dumb-tabs.js +117 -74
- package/components/tabs/smart-tabs.js +69 -29
- package/components/tabs/tab-link.js +5 -1
- package/components/tabs/tab.js +31 -19
- package/components/tabs/tabs.js +31 -0
- package/components/tag/tag.js +173 -133
- package/components/tags-input/tags-input.js +427 -329
- package/components/tags-list/tags-list.js +78 -57
- package/components/text/text.js +39 -28
- package/components/toggle/toggle.js +70 -56
- package/components/tooltip/tooltip.js +190 -146
- package/components/user-agreement/service.js +371 -228
- package/components/user-agreement/toolbox.eula.js +1 -160
- package/components/user-agreement/user-agreement.js +120 -85
- package/components/user-card/card.js +29 -0
- package/components/user-card/smart-user-card-tooltip.js +111 -51
- package/components/user-card/tooltip.js +84 -47
- package/components/user-card/user-card.js +29 -0
- package/package.json +1 -1
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { c as _objectWithoutProperties, d as _objectSpread2, e 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';
|
@@ -7,6 +8,15 @@ import PopupMenu from '../popup-menu/popup-menu.js';
|
|
7
8
|
import getUID from '../global/get-uid.js';
|
8
9
|
import { A as Anchor } from '../_helpers/anchor.js';
|
9
10
|
import { isArray } from '../global/typescript-utils.js';
|
11
|
+
import 'core-js/modules/es.symbol.js';
|
12
|
+
import 'core-js/modules/es.symbol.description.js';
|
13
|
+
import 'core-js/modules/es.array.concat.js';
|
14
|
+
import 'core-js/modules/es.array.find.js';
|
15
|
+
import 'core-js/modules/es.array.find-index.js';
|
16
|
+
import 'core-js/modules/es.array.includes.js';
|
17
|
+
import 'core-js/modules/es.array.map.js';
|
18
|
+
import 'core-js/modules/es.object.to-string.js';
|
19
|
+
import 'core-js/modules/es.string.includes.js';
|
10
20
|
import 'classnames';
|
11
21
|
import 'react-virtualized/dist/es/List';
|
12
22
|
import 'react-virtualized/dist/es/AutoSizer';
|
@@ -15,11 +25,25 @@ import 'react-virtualized/dist/es/CellMeasurer';
|
|
15
25
|
import 'util-deprecate';
|
16
26
|
import 'memoize-one';
|
17
27
|
import '../global/data-tests.js';
|
28
|
+
import 'core-js/modules/es.array.reduce.js';
|
29
|
+
import 'core-js/modules/es.object.entries.js';
|
18
30
|
import '../global/schedule-raf.js';
|
19
31
|
import '../global/memoize.js';
|
32
|
+
import 'core-js/modules/es.array.iterator.js';
|
33
|
+
import 'core-js/modules/es.map.js';
|
34
|
+
import 'core-js/modules/es.weak-map.js';
|
35
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
20
36
|
import '../global/dom.js';
|
37
|
+
import 'core-js/modules/es.array.filter.js';
|
38
|
+
import 'core-js/modules/es.regexp.exec.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';
|
21
42
|
import '../shortcuts/shortcuts.js';
|
22
43
|
import '../shortcuts/core.js';
|
44
|
+
import 'core-js/modules/es.array.slice.js';
|
45
|
+
import 'core-js/modules/es.array.splice.js';
|
46
|
+
import 'core-js/modules/es.string.match.js';
|
23
47
|
import 'combokeys';
|
24
48
|
import '../global/sniffer.js';
|
25
49
|
import 'sniffr';
|
@@ -30,15 +54,20 @@ import '../link/clickableLink.js';
|
|
30
54
|
import '../_helpers/link.js';
|
31
55
|
import '../_helpers/list.js';
|
32
56
|
import '../list/list__item.js';
|
57
|
+
import 'core-js/modules/es.array.index-of.js';
|
33
58
|
import '../avatar/avatar.js';
|
34
59
|
import '../global/url.js';
|
60
|
+
import 'core-js/modules/es.string.replace.js';
|
35
61
|
import '../avatar/fallback-avatar.js';
|
62
|
+
import 'core-js/modules/es.array.from.js';
|
63
|
+
import 'core-js/modules/es.regexp.to-string.js';
|
36
64
|
import '../checkbox/checkbox.js';
|
37
65
|
import '@jetbrains/icons/checkmark-12px';
|
38
66
|
import '@jetbrains/icons/remove-12px';
|
39
67
|
import '../icon/icon.js';
|
40
68
|
import '../icon/icon__constants.js';
|
41
69
|
import '../_helpers/icon__svg.js';
|
70
|
+
import 'core-js/modules/es.string.starts-with.js';
|
42
71
|
import '../global/prop-types.js';
|
43
72
|
import '../global/composeRefs.js';
|
44
73
|
import '../list/list__custom.js';
|
@@ -55,60 +84,58 @@ import '../popup/popup.js';
|
|
55
84
|
import 'react-dom';
|
56
85
|
import '../tab-trap/tab-trap.js';
|
57
86
|
import '../popup/position.js';
|
87
|
+
import 'core-js/modules/es.array.sort.js';
|
58
88
|
import '../popup/popup.consts.js';
|
59
89
|
import '../popup/popup.target.js';
|
60
90
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
pinned,
|
76
|
-
active,
|
77
|
-
activeListItemId,
|
78
|
-
listId,
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
...(listId ? {
|
91
|
+
var _excluded = ["anchor", "pinned", "active", "activeListItemId", "listId"],
|
92
|
+
_excluded2 = ["id", "anchor", "ariaLabel", "data", "onSelect", "menuProps"],
|
93
|
+
_excluded3 = ["pinned", "active"];
|
94
|
+
var _ref = Dropdown.propTypes || {};
|
95
|
+
_ref.children;
|
96
|
+
var dropdownPropTypes = _objectWithoutProperties(_ref, ["children"]);
|
97
|
+
var _ref2 = PopupMenu.propTypes || {},
|
98
|
+
idPropType = _ref2.id,
|
99
|
+
dataPropType = _ref2.data,
|
100
|
+
ariaLabelPropType = _ref2.ariaLabel,
|
101
|
+
onSelectPropType = _ref2.onSelect;
|
102
|
+
var defaultAriaLabel = 'Dropdown menu';
|
103
|
+
function DropdownAnchorWrapper(_ref3) {
|
104
|
+
var anchor = _ref3.anchor,
|
105
|
+
pinned = _ref3.pinned,
|
106
|
+
active = _ref3.active,
|
107
|
+
activeListItemId = _ref3.activeListItemId,
|
108
|
+
listId = _ref3.listId,
|
109
|
+
restProps = _objectWithoutProperties(_ref3, _excluded);
|
110
|
+
var anchorAriaProps = useMemo(function () {
|
111
|
+
return _objectSpread2(_objectSpread2(_objectSpread2({}, listId ? {
|
83
112
|
'aria-haspopup': true
|
84
|
-
} : {}),
|
85
|
-
...(activeListItemId ? {
|
113
|
+
} : {}), activeListItemId ? {
|
86
114
|
'aria-activedescendant': activeListItemId,
|
87
115
|
'aria-owns': listId
|
88
|
-
} : {}),
|
89
|
-
...(active ? {
|
116
|
+
} : {}), active ? {
|
90
117
|
'aria-expanded': true
|
91
|
-
} : {})
|
92
|
-
}
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
118
|
+
} : {});
|
119
|
+
}, [active, activeListItemId, listId]);
|
120
|
+
var anchorProps = useMemo(function () {
|
121
|
+
return _objectSpread2(_objectSpread2({
|
122
|
+
active,
|
123
|
+
pinned
|
124
|
+
}, restProps), anchorAriaProps);
|
125
|
+
}, [pinned, active, restProps, anchorAriaProps]);
|
126
|
+
var anchorComponentProps = useMemo(function () {
|
127
|
+
return _objectSpread2(_objectSpread2({}, anchorProps), {}, {
|
128
|
+
pinned: "".concat(anchorProps.pinned)
|
129
|
+
});
|
130
|
+
}, [anchorProps]);
|
103
131
|
if (typeof anchor === 'string') {
|
104
132
|
return /*#__PURE__*/React.createElement(Anchor, anchorComponentProps, anchor);
|
105
133
|
}
|
106
134
|
if (typeof anchor === 'function') {
|
107
|
-
return anchor({
|
135
|
+
return anchor(_objectSpread2({
|
108
136
|
active,
|
109
|
-
pinned
|
110
|
-
|
111
|
-
}, anchorAriaProps);
|
137
|
+
pinned
|
138
|
+
}, restProps), anchorAriaProps);
|
112
139
|
}
|
113
140
|
if (!isArray(anchor)) {
|
114
141
|
return /*#__PURE__*/cloneElement(anchor, typeof anchor.type === 'string' ? anchorAriaProps : anchorComponentProps);
|
@@ -122,31 +149,31 @@ DropdownAnchorWrapper.propTypes = {
|
|
122
149
|
activeListItemId: PropTypes.string,
|
123
150
|
listId: PropTypes.string
|
124
151
|
};
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
152
|
+
var DropdownMenu = /*#__PURE__*/React.forwardRef(function DropdownMenu(_ref4, forwardedRef) {
|
153
|
+
var id = _ref4.id,
|
154
|
+
_anchor = _ref4.anchor,
|
155
|
+
ariaLabel = _ref4.ariaLabel,
|
156
|
+
data = _ref4.data,
|
157
|
+
onSelect = _ref4.onSelect,
|
158
|
+
menuProps = _ref4.menuProps,
|
159
|
+
restDropdownProps = _objectWithoutProperties(_ref4, _excluded2);
|
160
|
+
var listId = useMemo(function () {
|
161
|
+
return id || getUID('dropdown-menu-list');
|
162
|
+
}, [id]);
|
136
163
|
return /*#__PURE__*/React.createElement(ActiveItemContext.Provider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({
|
137
|
-
anchor:
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
}
|
164
|
+
anchor: function anchor(_ref5) {
|
165
|
+
var pinned = _ref5.pinned,
|
166
|
+
active = _ref5.active,
|
167
|
+
restAnchorProps = _objectWithoutProperties(_ref5, _excluded3);
|
168
|
+
return /*#__PURE__*/React.createElement(ActiveItemContext.ValueContext.Consumer, null, function (activeItemId) {
|
169
|
+
return /*#__PURE__*/React.createElement(DropdownAnchorWrapper, _extends({
|
170
|
+
anchor: _anchor,
|
171
|
+
pinned: pinned,
|
172
|
+
active: active,
|
173
|
+
activeListItemId: activeItemId,
|
174
|
+
listId: listId
|
175
|
+
}, restAnchorProps));
|
176
|
+
});
|
150
177
|
}
|
151
178
|
}, restDropdownProps), /*#__PURE__*/React.createElement(PopupMenu, _extends({
|
152
179
|
ref: forwardedRef,
|
@@ -158,14 +185,13 @@ const DropdownMenu = /*#__PURE__*/React.forwardRef(function DropdownMenu(_ref2,
|
|
158
185
|
onSelect: onSelect
|
159
186
|
}, menuProps))));
|
160
187
|
});
|
161
|
-
DropdownMenu.propTypes = {
|
188
|
+
DropdownMenu.propTypes = _objectSpread2({
|
162
189
|
id: idPropType,
|
163
190
|
data: dataPropType,
|
164
191
|
ariaLabel: ariaLabelPropType,
|
165
192
|
onSelect: onSelectPropType,
|
166
|
-
menuProps: PropTypes.object
|
167
|
-
|
168
|
-
};
|
193
|
+
menuProps: PropTypes.object
|
194
|
+
}, dropdownPropTypes);
|
169
195
|
var DropdownMenu$1 = Object.assign(DropdownMenu, {
|
170
196
|
ListProps: List.ListProps
|
171
197
|
});
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { c as _objectWithoutProperties, j as _slicedToArray, e as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
+
import 'core-js/modules/es.string.trim.js';
|
2
3
|
import React, { useCallback, useEffect } from 'react';
|
3
4
|
import classNames from 'classnames';
|
4
5
|
import Heading, { Levels } from '../heading/heading.js';
|
@@ -9,73 +10,125 @@ import Shortcuts from '../shortcuts/shortcuts.js';
|
|
9
10
|
import 'prop-types';
|
10
11
|
import 'util-deprecate';
|
11
12
|
import '../_helpers/heading.js';
|
13
|
+
import 'core-js/modules/es.array.concat.js';
|
12
14
|
import '@jetbrains/icons/chevron-10px';
|
13
15
|
import '../icon/icon.js';
|
14
16
|
import '../icon/icon__constants.js';
|
15
17
|
import '../_helpers/icon__svg.js';
|
18
|
+
import 'core-js/modules/es.regexp.exec.js';
|
19
|
+
import 'core-js/modules/es.string.replace.js';
|
20
|
+
import 'core-js/modules/es.string.starts-with.js';
|
16
21
|
import '../global/memoize.js';
|
22
|
+
import 'core-js/modules/es.array.iterator.js';
|
23
|
+
import 'core-js/modules/es.map.js';
|
24
|
+
import 'core-js/modules/es.object.to-string.js';
|
25
|
+
import 'core-js/modules/es.weak-map.js';
|
26
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
17
27
|
import '../link/clickableLink.js';
|
18
28
|
import '../global/controls-height.js';
|
19
29
|
import '../_helpers/button__classes.js';
|
30
|
+
import 'core-js/modules/es.object.values.js';
|
20
31
|
import '@jetbrains/icons/close-12px';
|
21
32
|
import '../global/prop-types.js';
|
22
33
|
import '../i18n/i18n-context.js';
|
23
34
|
import '../i18n/i18n.js';
|
35
|
+
import 'core-js/modules/es.set.js';
|
24
36
|
import '../global/composeRefs.js';
|
37
|
+
import 'core-js/modules/web.dom-collections.for-each.js';
|
25
38
|
import '../control-label/control-label.js';
|
39
|
+
import 'core-js/modules/es.regexp.to-string.js';
|
40
|
+
import 'core-js/modules/es.array.map.js';
|
26
41
|
import '../shortcuts/core.js';
|
42
|
+
import 'core-js/modules/es.array.find-index.js';
|
43
|
+
import 'core-js/modules/es.array.includes.js';
|
44
|
+
import 'core-js/modules/es.array.slice.js';
|
45
|
+
import 'core-js/modules/es.array.splice.js';
|
46
|
+
import 'core-js/modules/es.object.assign.js';
|
47
|
+
import 'core-js/modules/es.string.includes.js';
|
48
|
+
import 'core-js/modules/es.string.match.js';
|
27
49
|
import 'combokeys';
|
28
50
|
import '../global/sniffer.js';
|
29
51
|
import 'sniffr';
|
30
52
|
|
31
53
|
var modules_6e69b0fe = {"editableHeading":"editableHeading_rui_0f5a","fullSize":"fullSize_rui_0f5a","isEditing":"isEditing_rui_0f5a","headingWrapperButton":"headingWrapperButton_rui_0f5a","disabled":"disabled_rui_0f5a","selectionMode":"selectionMode_rui_0f5a","heading":"heading_rui_0f5a","multiline":"multiline_rui_0f5a","input":"input_rui_0f5a","error":"error_rui_0f5a","textarea":"textarea_rui_0f5a","textareaNotOverflow":"textareaNotOverflow_rui_0f5a","textareaFade":"textareaFade_rui_0f5a","textareaWrapper":"textareaWrapper_rui_0f5a","button":"button_rui_0f5a","errorText":"errorText_rui_0f5a","level1":"level1_rui_0f5a","level2":"level2_rui_0f5a","level3":"level3_rui_0f5a","sizeS":"sizeS_rui_0f5a","sizeM":"sizeM_rui_0f5a","sizeL":"sizeL_rui_0f5a","sizeFULL":"sizeFULL_rui_0f5a"};
|
32
54
|
|
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"];
|
33
56
|
function noop() {}
|
34
|
-
|
35
|
-
|
36
|
-
level = Levels.H1,
|
37
|
-
className,
|
38
|
-
headingClassName,
|
39
|
-
inputClassName,
|
40
|
-
children,
|
41
|
-
isEditing =
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
var EditableHeading = function EditableHeading(props) {
|
58
|
+
var _props$level = props.level,
|
59
|
+
level = _props$level === void 0 ? Levels.H1 : _props$level,
|
60
|
+
className = props.className,
|
61
|
+
headingClassName = props.headingClassName,
|
62
|
+
inputClassName = props.inputClassName,
|
63
|
+
children = props.children,
|
64
|
+
_props$isEditing = props.isEditing,
|
65
|
+
isEditing = _props$isEditing === void 0 ? false : _props$isEditing,
|
66
|
+
_props$isSavingPossib = props.isSavingPossible,
|
67
|
+
isSavingPossible = _props$isSavingPossib === void 0 ? false : _props$isSavingPossib,
|
68
|
+
_props$isSaving = props.isSaving,
|
69
|
+
isSaving = _props$isSaving === void 0 ? false : _props$isSaving,
|
70
|
+
_props$embedded = props.embedded,
|
71
|
+
embedded = _props$embedded === void 0 ? false : _props$embedded,
|
72
|
+
_props$size = props.size,
|
73
|
+
size = _props$size === void 0 ? Size.L : _props$size,
|
74
|
+
_props$onEdit = props.onEdit,
|
75
|
+
onEdit = _props$onEdit === void 0 ? noop : _props$onEdit,
|
76
|
+
_props$onSave = props.onSave,
|
77
|
+
onSave = _props$onSave === void 0 ? noop : _props$onSave,
|
78
|
+
_props$onCancel = props.onCancel,
|
79
|
+
onCancel = _props$onCancel === void 0 ? noop : _props$onCancel,
|
80
|
+
_props$autoFocus = props.autoFocus,
|
81
|
+
autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,
|
82
|
+
dataTest = props['data-test'],
|
83
|
+
error = props.error,
|
84
|
+
disabled = props.disabled,
|
85
|
+
_props$multiline = props.multiline,
|
86
|
+
multiline = _props$multiline === void 0 ? false : _props$multiline,
|
87
|
+
_props$renderMenu = props.renderMenu,
|
88
|
+
renderMenu = _props$renderMenu === void 0 ? function () {
|
89
|
+
return null;
|
90
|
+
} : _props$renderMenu,
|
91
|
+
onFocus = props.onFocus,
|
92
|
+
onBlur = props.onBlur,
|
93
|
+
onChange = props.onChange,
|
94
|
+
onScroll = props.onScroll,
|
95
|
+
maxInputRows = props.maxInputRows,
|
96
|
+
_props$translations = props.translations,
|
97
|
+
translations = _props$translations === void 0 ? {
|
61
98
|
save: 'Save',
|
62
99
|
cancel: 'Cancel'
|
63
|
-
},
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
100
|
+
} : _props$translations,
|
101
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
102
|
+
var _React$useState = React.useState(getUID('ring-editable-heading-')),
|
103
|
+
_React$useState2 = _slicedToArray(_React$useState, 1),
|
104
|
+
shortcutsScope = _React$useState2[0];
|
105
|
+
var _React$useState3 = React.useState(false),
|
106
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
107
|
+
isInFocus = _React$useState4[0],
|
108
|
+
setIsInFocus = _React$useState4[1];
|
109
|
+
var _React$useState5 = React.useState(false),
|
110
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
111
|
+
isMouseDown = _React$useState6[0],
|
112
|
+
setIsMouseDown = _React$useState6[1];
|
113
|
+
var _React$useState7 = React.useState(false),
|
114
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
115
|
+
isInSelectionMode = _React$useState8[0],
|
116
|
+
setIsInSelectionMode = _React$useState8[1];
|
117
|
+
var textAreaRef = 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];
|
126
|
+
var hasError = error !== undefined;
|
127
|
+
var isSaveDisabled = !isSavingPossible || !children || children.trim() === '' || hasError || isSaving;
|
128
|
+
var isCancelDisabled = isSaving;
|
129
|
+
var isShortcutsDisabled = !isInFocus || isSaving;
|
130
|
+
var shortcutsMap = React.useMemo(function () {
|
131
|
+
var map = {};
|
79
132
|
if (!isSaveDisabled) {
|
80
133
|
map.enter = onSave;
|
81
134
|
}
|
@@ -84,7 +137,7 @@ const EditableHeading = props => {
|
|
84
137
|
}
|
85
138
|
return map;
|
86
139
|
}, [isSaveDisabled, isCancelDisabled, onSave, onCancel]);
|
87
|
-
|
140
|
+
var classes = classNames(modules_6e69b0fe.editableHeading, className, {
|
88
141
|
[modules_6e69b0fe.fullSize]: isEditing && size === Size.FULL,
|
89
142
|
[modules_6e69b0fe.isEditing]: isEditing,
|
90
143
|
[modules_6e69b0fe.error]: hasError,
|
@@ -92,72 +145,71 @@ const EditableHeading = props => {
|
|
92
145
|
[modules_6e69b0fe.multiline]: multiline,
|
93
146
|
[modules_6e69b0fe.selectionMode]: isInSelectionMode
|
94
147
|
});
|
95
|
-
|
96
|
-
|
148
|
+
var headingClasses = classNames(modules_6e69b0fe.heading, headingClassName, modules_6e69b0fe["size".concat(size)]);
|
149
|
+
var inputClasses = classNames('ring-js-shortcuts', modules_6e69b0fe.input, modules_6e69b0fe.textarea, {
|
97
150
|
[modules_6e69b0fe.textareaNotOverflow]: !isOverflow
|
98
|
-
}, modules_88cfaf40[
|
99
|
-
|
151
|
+
}, modules_88cfaf40["size".concat(size)], modules_6e69b0fe["level".concat(level)], inputClassName);
|
152
|
+
var stretch = useCallback(function (el) {
|
100
153
|
if (!el || !el.style) {
|
101
154
|
return;
|
102
155
|
}
|
103
156
|
el.style.height = '0';
|
104
|
-
|
105
|
-
paddingTop,
|
106
|
-
paddingBottom
|
107
|
-
|
108
|
-
el.style.height = `${el.scrollHeight - parseFloat(paddingTop) - parseFloat(paddingBottom)}px`;
|
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");
|
109
161
|
}, []);
|
110
|
-
|
162
|
+
var checkValue = useCallback(function (el) {
|
111
163
|
if (multiline && el != null && el.scrollHeight >= el.clientHeight) {
|
112
164
|
stretch(el);
|
113
165
|
}
|
114
166
|
}, [stretch, multiline]);
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
167
|
+
var checkOverflow = useCallback(function (el) {
|
168
|
+
var scrollHeight = el.scrollHeight || 0;
|
169
|
+
var clientHeight = el.clientHeight || 0;
|
170
|
+
var scrollTop = el.scrollTop || 0;
|
119
171
|
setIsScrolledToBottom(scrollHeight - clientHeight <= scrollTop);
|
120
172
|
setIsOverflow(scrollHeight > clientHeight);
|
121
173
|
}, [setIsScrolledToBottom]);
|
122
|
-
|
174
|
+
var onHeadingMouseDown = React.useCallback(function () {
|
123
175
|
setIsMouseDown(true);
|
124
176
|
}, []);
|
125
|
-
|
177
|
+
var onMouseMove = React.useCallback(function () {
|
126
178
|
if (!isMouseDown) {
|
127
179
|
return;
|
128
180
|
}
|
129
181
|
setIsInSelectionMode(true);
|
130
182
|
}, [isMouseDown]);
|
131
|
-
|
183
|
+
var onMouseUp = React.useCallback(function () {
|
132
184
|
if (isMouseDown && !isInSelectionMode && !disabled) {
|
133
185
|
onEdit();
|
134
186
|
}
|
135
187
|
setIsMouseDown(false);
|
136
188
|
setIsInSelectionMode(false);
|
137
189
|
}, [isMouseDown, isInSelectionMode, disabled, onEdit]);
|
138
|
-
|
190
|
+
var onInputFocus = React.useCallback(function (e) {
|
139
191
|
setIsInFocus(true);
|
140
192
|
checkValue(e.target);
|
141
193
|
checkOverflow(e.target);
|
142
|
-
onFocus
|
194
|
+
onFocus === null || onFocus === void 0 || onFocus(e);
|
143
195
|
}, [onFocus, checkOverflow, checkValue]);
|
144
|
-
|
196
|
+
var onInputChange = React.useCallback(function (e) {
|
145
197
|
checkValue(e.target);
|
146
198
|
checkOverflow(e.target);
|
147
|
-
onChange
|
199
|
+
onChange === null || onChange === void 0 || onChange(e);
|
148
200
|
}, [onChange, checkOverflow, checkValue]);
|
149
|
-
|
201
|
+
var onInputScroll = React.useCallback(function (e) {
|
150
202
|
checkOverflow(e.target);
|
151
|
-
onScroll
|
203
|
+
onScroll === null || onScroll === void 0 || onScroll(e);
|
152
204
|
}, [onScroll, checkOverflow]);
|
153
|
-
|
205
|
+
var onInputBlur = React.useCallback(function (e) {
|
154
206
|
setIsInFocus(false);
|
155
|
-
onBlur
|
207
|
+
onBlur === null || onBlur === void 0 || onBlur(e);
|
156
208
|
}, [onBlur]);
|
157
|
-
useEffect(()
|
209
|
+
useEffect(function () {
|
158
210
|
window.addEventListener('mousemove', onMouseMove);
|
159
211
|
window.addEventListener('mouseup', onMouseUp);
|
160
|
-
return ()
|
212
|
+
return function () {
|
161
213
|
window.removeEventListener('mousemove', onMouseMove);
|
162
214
|
window.removeEventListener('mouseup', onMouseUp);
|
163
215
|
};
|
@@ -179,7 +231,7 @@ const EditableHeading = props => {
|
|
179
231
|
onFocus: onInputFocus,
|
180
232
|
onBlur: onInputBlur
|
181
233
|
})) : /*#__PURE__*/React.createElement("div", {
|
182
|
-
className: classNames(modules_6e69b0fe.textareaWrapper, modules_88cfaf40[
|
234
|
+
className: classNames(modules_6e69b0fe.textareaWrapper, modules_88cfaf40["size".concat(size)])
|
183
235
|
}, /*#__PURE__*/React.createElement("textarea", _extends({
|
184
236
|
ref: textAreaRef,
|
185
237
|
className: inputClasses,
|
@@ -193,7 +245,7 @@ const EditableHeading = props => {
|
|
193
245
|
onBlur: onInputBlur,
|
194
246
|
onScroll: onInputScroll,
|
195
247
|
style: {
|
196
|
-
maxHeight: maxInputRows ?
|
248
|
+
maxHeight: maxInputRows ? "".concat(maxInputRows, "lh") : ''
|
197
249
|
}
|
198
250
|
})), !isScrolledToBottom && /*#__PURE__*/React.createElement("div", {
|
199
251
|
className: modules_6e69b0fe.textareaFade
|
@@ -216,7 +268,7 @@ const EditableHeading = props => {
|
|
216
268
|
disabled: isCancelDisabled,
|
217
269
|
onClick: onCancel
|
218
270
|
}, translations.cancel))), isEditing && error && /*#__PURE__*/React.createElement("div", {
|
219
|
-
className: classNames(modules_6e69b0fe.errorText, modules_88cfaf40[
|
271
|
+
className: classNames(modules_6e69b0fe.errorText, modules_88cfaf40["size".concat(size)])
|
220
272
|
}, error));
|
221
273
|
};
|
222
274
|
var editableHeading = /*#__PURE__*/React.memo(EditableHeading);
|