@jetbrains/ring-ui-built 7.0.66 → 7.0.70

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 (231) hide show
  1. package/components/_helpers/anchor.js +12 -17
  2. package/components/_helpers/avatar-info.js +4 -5
  3. package/components/_helpers/button.classes.js +20 -21
  4. package/components/_helpers/caption.js +3 -3
  5. package/components/_helpers/card.js +26 -32
  6. package/components/_helpers/dialog-body-scroll-preventer.js +1 -2
  7. package/components/_helpers/icon-svg.js +9 -12
  8. package/components/_helpers/input.js +78 -86
  9. package/components/_helpers/loader-core.js +260 -0
  10. package/components/_helpers/query-assist-suggestions.js +0 -1
  11. package/components/_helpers/select-filter.js +19 -26
  12. package/components/_helpers/services-link.js +9 -12
  13. package/components/_helpers/sidebar.js +36 -44
  14. package/components/_helpers/tab-link.js +9 -11
  15. package/components/_helpers/theme.js +20 -24
  16. package/components/_helpers/title.js +12 -17
  17. package/components/alert/alert.js +41 -49
  18. package/components/alert/container.js +9 -12
  19. package/components/alert-service/alert-service.js +23 -32
  20. package/components/analytics/analytics-custom-plugin.js +12 -17
  21. package/components/analytics/analytics.js +1 -3
  22. package/components/auth/auth-core.js +128 -170
  23. package/components/auth/auth.js +3 -10
  24. package/components/auth/background-flow.js +5 -8
  25. package/components/auth/down-notification.js +9 -17
  26. package/components/auth/iframe-flow.js +13 -19
  27. package/components/auth/request-builder.js +4 -9
  28. package/components/auth/response-parser.js +9 -12
  29. package/components/auth/storage.js +12 -18
  30. package/components/auth/token-validator.js +19 -30
  31. package/components/auth/window-flow.js +22 -27
  32. package/components/auth-dialog/auth-dialog.js +40 -48
  33. package/components/auth-dialog-service/auth-dialog-service.js +10 -13
  34. package/components/avatar/avatar.figma.js +6 -6
  35. package/components/avatar/avatar.js +58 -59
  36. package/components/avatar/fallback-avatar.js +8 -11
  37. package/components/avatar-stack/avatar-stack.figma.js +10 -11
  38. package/components/avatar-stack/avatar-stack.js +25 -31
  39. package/components/banner/banner.js +0 -6
  40. package/components/breadcrumbs/breadcrumbs.figma.js +8 -6
  41. package/components/breadcrumbs/breadcrumbs.js +4 -5
  42. package/components/button/button.figma.js +15 -10
  43. package/components/button/button.js +59 -64
  44. package/components/button-group/button-group.js +11 -15
  45. package/components/button-group/caption.js +0 -1
  46. package/components/button-set/button-set.js +9 -12
  47. package/components/button-toolbar/button-toolbar.js +8 -11
  48. package/components/caret/caret.js +20 -28
  49. package/components/checkbox/checkbox-group.figma.js +8 -10
  50. package/components/checkbox/checkbox.figma.js +5 -5
  51. package/components/checkbox/checkbox.js +27 -35
  52. package/components/clipboard/clipboard-fallback.js +3 -3
  53. package/components/clipboard/clipboard.js +3 -16
  54. package/components/code/code.js +8 -14
  55. package/components/collapse/collapse-content.js +10 -15
  56. package/components/collapse/collapse-control.js +5 -7
  57. package/components/collapse/collapse.js +9 -11
  58. package/components/collapse/utils.js +1 -1
  59. package/components/confirm/confirm.js +17 -26
  60. package/components/confirm-service/confirm-service.js +30 -31
  61. package/components/content-layout/content-layout.js +21 -28
  62. package/components/content-layout/sidebar.js +0 -2
  63. package/components/contenteditable/contenteditable.js +23 -28
  64. package/components/control-help/control-help.js +8 -10
  65. package/components/control-label/control-label.js +12 -17
  66. package/components/data-list/data-list.js +57 -65
  67. package/components/data-list/data-list.mock.js +0 -4
  68. package/components/data-list/item.js +65 -72
  69. package/components/data-list/selection.js +11 -19
  70. package/components/data-list/title.js +0 -4
  71. package/components/date-picker/consts.js +3 -4
  72. package/components/date-picker/date-input.js +25 -33
  73. package/components/date-picker/date-picker.js +179 -193
  74. package/components/date-picker/date-popup.js +135 -127
  75. package/components/date-picker/day.d.ts +1 -1
  76. package/components/date-picker/day.js +24 -30
  77. package/components/date-picker/month-names.js +7 -12
  78. package/components/date-picker/month-slider.js +16 -22
  79. package/components/date-picker/month.js +3 -5
  80. package/components/date-picker/months.js +6 -6
  81. package/components/date-picker/weekdays.js +0 -1
  82. package/components/date-picker/years.js +20 -26
  83. package/components/dialog/dialog-body-scroll-preventer.js +0 -1
  84. package/components/dialog/dialog.js +73 -83
  85. package/components/dropdown/anchor.js +0 -4
  86. package/components/dropdown/dropdown.js +98 -114
  87. package/components/dropdown-menu/dropdown-menu.js +80 -79
  88. package/components/editable-heading/editable-heading.js +48 -54
  89. package/components/error-bubble/error-bubble.figma.js +4 -4
  90. package/components/error-bubble/error-bubble.js +9 -13
  91. package/components/error-message/error-message.js +1 -6
  92. package/components/footer/footer.js +11 -15
  93. package/components/global/compose-refs.js +1 -4
  94. package/components/global/compose.js +1 -4
  95. package/components/global/configuration.js +3 -3
  96. package/components/global/controls-height.js +0 -1
  97. package/components/global/create-stateful-context.js +10 -14
  98. package/components/global/data-tests.js +2 -10
  99. package/components/global/dom.js +6 -19
  100. package/components/global/focus-sensor-hoc.js +74 -87
  101. package/components/global/fuzzy-highlight.js +3 -8
  102. package/components/global/get-uid.js +1 -1
  103. package/components/global/inject-styles.js +5 -6
  104. package/components/global/listeners.js +2 -11
  105. package/components/global/memoize.js +0 -2
  106. package/components/global/normalize-indent.js +2 -6
  107. package/components/global/promise-with-timeout.js +4 -5
  108. package/components/global/react-dom-renderer.js +4 -9
  109. package/components/global/rerender-hoc.js +8 -11
  110. package/components/global/schedule-raf.js +1 -2
  111. package/components/global/theme.js +0 -5
  112. package/components/global/trivial-template-tag.js +1 -6
  113. package/components/global/url.js +2 -6
  114. package/components/global/use-event-callback.js +2 -3
  115. package/components/grid/col.js +7 -18
  116. package/components/grid/grid.js +9 -14
  117. package/components/grid/row.js +7 -11
  118. package/components/group/group.js +9 -12
  119. package/components/header/header-icon.js +8 -13
  120. package/components/header/header.js +16 -27
  121. package/components/header/links.js +7 -10
  122. package/components/header/logo.js +12 -16
  123. package/components/header/profile.js +73 -83
  124. package/components/header/services-link.js +0 -2
  125. package/components/header/services.js +32 -43
  126. package/components/header/smart-profile.js +44 -59
  127. package/components/header/smart-services.js +33 -45
  128. package/components/header/tray.js +8 -10
  129. package/components/heading/heading.js +27 -27
  130. package/components/http/http.js +120 -125
  131. package/components/http/http.mock.js +6 -10
  132. package/components/hub-source/hub-source-user.js +6 -13
  133. package/components/hub-source/hub-source-users-groups.js +8 -12
  134. package/components/hub-source/hub-source.js +8 -10
  135. package/components/i18n/i18n-context.js +4 -7
  136. package/components/i18n/i18n.js +5 -5
  137. package/components/icon/icon-svg.js +0 -4
  138. package/components/icon/icon.js +28 -32
  139. package/components/icon/index.js +0 -4
  140. package/components/input/input.figma.js +8 -8
  141. package/components/input/input.js +0 -4
  142. package/components/island/adaptive-island-hoc.js +19 -23
  143. package/components/island/content.js +70 -75
  144. package/components/island/header.js +21 -21
  145. package/components/island/island.js +11 -14
  146. package/components/link/clickable-link.js +30 -37
  147. package/components/link/link.js +27 -29
  148. package/components/list/list-custom.js +6 -11
  149. package/components/list/list-item.js +49 -56
  150. package/components/list/list-separator.js +0 -1
  151. package/components/list/list-title.js +0 -1
  152. package/components/list/list-users-groups-source.js +14 -22
  153. package/components/list/list.classes.js +8 -9
  154. package/components/list/list.js +387 -404
  155. package/components/loader/loader-core.js +2 -265
  156. package/components/loader/loader.d.ts +8 -0
  157. package/components/loader/loader.js +43 -29
  158. package/components/loader-inline/loader-inline.js +9 -12
  159. package/components/loader-screen/loader-screen.js +10 -14
  160. package/components/login-dialog/login-dialog.js +46 -54
  161. package/components/login-dialog/service.js +13 -15
  162. package/components/message/message.js +65 -79
  163. package/components/old-browsers-message/old-browsers-message-stop.js +0 -3
  164. package/components/old-browsers-message/old-browsers-message.js +1 -4
  165. package/components/old-browsers-message/white-list.js +5 -7
  166. package/components/pager/pager.js +73 -88
  167. package/components/panel/panel.js +9 -12
  168. package/components/permissions/permissions-cache.js +6 -8
  169. package/components/permissions/permissions.js +19 -21
  170. package/components/popup/popup.js +136 -145
  171. package/components/popup/popup.target.js +8 -10
  172. package/components/popup/position-css.js +19 -27
  173. package/components/popup/position.js +22 -28
  174. package/components/popup-menu/popup-menu.js +27 -37
  175. package/components/progress-bar/progress-bar.js +26 -32
  176. package/components/query-assist/query-assist-suggestions.js +0 -6
  177. package/components/query-assist/query-assist.js +432 -468
  178. package/components/radio/radio-item.js +30 -40
  179. package/components/radio/radio.js +6 -10
  180. package/components/scrollable-section/scrollable-section.js +7 -10
  181. package/components/select/select-filter.js +0 -6
  182. package/components/select/select-popup.js +155 -174
  183. package/components/select/select.js +464 -479
  184. package/components/shortcuts/core.js +40 -45
  185. package/components/shortcuts/shortcut-title.js +0 -1
  186. package/components/shortcuts/shortcuts-hoc.js +9 -15
  187. package/components/shortcuts/shortcuts.js +3 -5
  188. package/components/slider/slider.js +53 -66
  189. package/components/slider/slider.utils.js +1 -4
  190. package/components/storage/storage-local.js +2 -8
  191. package/components/storage/storage.js +0 -5
  192. package/components/style.css +1 -1
  193. package/components/tab-trap/tab-trap.js +21 -30
  194. package/components/table/cell.js +3 -4
  195. package/components/table/disable-hover-hoc.js +24 -28
  196. package/components/table/header-cell.js +30 -38
  197. package/components/table/header.js +20 -28
  198. package/components/table/multitable.js +81 -101
  199. package/components/table/row-with-focus-sensor.js +17 -28
  200. package/components/table/row.js +89 -99
  201. package/components/table/selection-adapter.js +0 -2
  202. package/components/table/selection-shortcuts-hoc.js +159 -161
  203. package/components/table/selection.js +23 -31
  204. package/components/table/simple-table.js +16 -22
  205. package/components/table/smart-table.js +19 -26
  206. package/components/table/table.js +137 -146
  207. package/components/tabs/collapsible-more.js +34 -47
  208. package/components/tabs/collapsible-tab.js +28 -33
  209. package/components/tabs/collapsible-tabs.js +16 -24
  210. package/components/tabs/custom-item.js +3 -6
  211. package/components/tabs/dumb-tabs.js +48 -64
  212. package/components/tabs/smart-tabs.js +14 -23
  213. package/components/tabs/tab-link.js +0 -2
  214. package/components/tabs/tab.js +0 -1
  215. package/components/tabs/tabs.js +0 -7
  216. package/components/tag/tag.js +30 -35
  217. package/components/tags-input/tags-input.js +192 -218
  218. package/components/tags-list/tags-list.js +26 -31
  219. package/components/text/text.js +16 -19
  220. package/components/toggle/toggle.js +19 -23
  221. package/components/tooltip/tooltip.js +110 -121
  222. package/components/upload/upload.js +19 -28
  223. package/components/user-agreement/service.js +247 -252
  224. package/components/user-agreement/toolbox.eula.js +160 -1
  225. package/components/user-agreement/user-agreement.js +23 -32
  226. package/components/user-card/card.js +0 -5
  227. package/components/user-card/smart-user-card-tooltip.js +41 -50
  228. package/components/user-card/tooltip.js +32 -38
  229. package/components/user-card/user-card.js +0 -5
  230. package/package.json +9 -3
  231. package/components/_helpers/_rollupPluginBabelHelpers.js +0 -72
@@ -1,5 +1,3 @@
1
- import { _ as _defineProperty, a as _objectWithoutProperties, b as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/web.dom-collections.iterator.js';
3
1
  import { jsxs, jsx } from 'react/jsx-runtime';
4
2
  import { PureComponent } from 'react';
5
3
  import classNames from 'classnames';
@@ -20,8 +18,6 @@ import '../icon/icon.js';
20
18
  import 'util-deprecate';
21
19
  import '../icon/icon.constants.js';
22
20
  import '../_helpers/icon-svg.js';
23
- import 'core-js/modules/es.regexp.exec.js';
24
- import 'core-js/modules/es.string.replace.js';
25
21
  import '../global/memoize.js';
26
22
  import '../control-help/control-help.js';
27
23
  import '@jetbrains/icons/chevron-12px-down';
@@ -40,19 +36,16 @@ import '../global/sniffer.js';
40
36
  import 'sniffr';
41
37
  import '../tab-trap/tab-trap.js';
42
38
  import '../popup/position.js';
43
- import 'core-js/modules/es.array.sort.js';
44
39
  import '../popup/popup.consts.js';
45
40
  import '../popup/popup.target.js';
46
41
  import '../popup/position-css.js';
47
42
  import '../_helpers/theme.js';
48
43
  import 'memoize-one';
49
44
 
50
- const _excluded = ["item", "columns", "selectable", "selected", "showFocus", "draggable", "alwaysShowDragHandle", "dragHandleTitle", "level", "collapsible", "parentCollapsible", "collapsed", "onCollapse", "onExpand", "showDisabledSelection", "onSelect", "checkboxTooltip", "innerRef", "focused", "autofocus", "onFocusReset", "onFocusRestore", "onHover", "className", "metaColumnClassName", "data-test"];
51
- const DragHandle = _ref => {
52
- let {
53
- alwaysShowDragHandle,
54
- dragHandleTitle = 'Drag to reorder'
55
- } = _ref;
45
+ const DragHandle = ({
46
+ alwaysShowDragHandle,
47
+ dragHandleTitle = 'Drag to reorder'
48
+ }) => {
56
49
  const classes = classNames(style.dragHandle, {
57
50
  [style.visibleDragHandle]: alwaysShowDragHandle
58
51
  });
@@ -64,43 +57,46 @@ const DragHandle = _ref => {
64
57
  });
65
58
  };
66
59
  class Row extends PureComponent {
67
- constructor() {
68
- super(...arguments);
69
- _defineProperty(this, "id", getUID('table-row-'));
70
- _defineProperty(this, "onMouseEnter", e => {
71
- const {
72
- item,
73
- onHover
74
- } = this.props;
75
- onHover(item, e);
76
- });
77
- _defineProperty(this, "onClick", e => {
78
- const {
79
- item
80
- } = this.props;
81
- this.props.onClick(item, e);
82
- if (e.shiftKey) {
83
- this.toggleSelection();
84
- }
85
- });
86
- _defineProperty(this, "onCheckboxFocus", () => {
87
- this.props.onFocusRestore();
88
- });
89
- _defineProperty(this, "onCheckboxChange", () => {
60
+ static defaultProps = {
61
+ selectable: true,
62
+ showFocus: false,
63
+ draggable: false,
64
+ alwaysShowDragHandle: false,
65
+ selected: false,
66
+ onHover: () => {},
67
+ onSelect: () => {},
68
+ onDoubleClick: () => {},
69
+ onClick: () => {},
70
+ level: 0,
71
+ collapsible: false,
72
+ parentCollapsible: false,
73
+ collapsed: false,
74
+ onCollapse: () => {},
75
+ onExpand: () => {}
76
+ };
77
+ id = getUID('table-row-');
78
+ onMouseEnter = e => {
79
+ const {
80
+ item,
81
+ onHover
82
+ } = this.props;
83
+ onHover(item, e);
84
+ };
85
+ onClick = e => {
86
+ const {
87
+ item
88
+ } = this.props;
89
+ this.props.onClick(item, e);
90
+ if (e.shiftKey) {
90
91
  this.toggleSelection();
91
- });
92
- _defineProperty(this, "onDoubleClick", () => {
93
- const {
94
- item
95
- } = this.props;
96
- this.props.onDoubleClick(item);
97
- });
98
- _defineProperty(this, "row", void 0);
99
- _defineProperty(this, "rowRef", el => {
100
- this.row = el;
101
- });
102
- _defineProperty(this, "composedRowRef", createComposedRef());
103
- }
92
+ }
93
+ };
94
+ onCheckboxFocus = () => {
95
+ this.props.onFocusRestore();
96
+ };
97
+ onCheckboxChange = () => {
98
+ this.toggleSelection();
99
+ };
104
100
  toggleSelection() {
105
101
  const {
106
102
  selectable,
@@ -112,37 +108,47 @@ class Row extends PureComponent {
112
108
  onSelect(item, !selected);
113
109
  }
114
110
  }
111
+ onDoubleClick = () => {
112
+ const {
113
+ item
114
+ } = this.props;
115
+ this.props.onDoubleClick(item);
116
+ };
117
+ row;
118
+ rowRef = el => {
119
+ this.row = el;
120
+ };
121
+ composedRowRef = createComposedRef();
115
122
  render() {
116
- const _this$props = this.props,
117
- {
118
- item,
119
- columns: columnProps,
120
- selectable,
121
- selected,
122
- showFocus,
123
- draggable,
124
- alwaysShowDragHandle,
125
- dragHandleTitle,
126
- level,
127
- collapsible,
128
- parentCollapsible,
129
- collapsed,
130
- onCollapse,
131
- onExpand,
132
- showDisabledSelection,
133
- onSelect,
134
- checkboxTooltip,
135
- innerRef,
136
- focused,
137
- autofocus,
138
- onFocusReset,
139
- onFocusRestore,
140
- onHover,
141
- className,
142
- metaColumnClassName,
143
- 'data-test': dataTest
144
- } = _this$props,
145
- restProps = _objectWithoutProperties(_this$props, _excluded);
123
+ const {
124
+ item,
125
+ columns: columnProps,
126
+ selectable,
127
+ selected,
128
+ showFocus,
129
+ draggable,
130
+ alwaysShowDragHandle,
131
+ dragHandleTitle,
132
+ level,
133
+ collapsible,
134
+ parentCollapsible,
135
+ collapsed,
136
+ onCollapse,
137
+ onExpand,
138
+ showDisabledSelection,
139
+ onSelect,
140
+ checkboxTooltip,
141
+ innerRef,
142
+ focused,
143
+ autofocus,
144
+ onFocusReset,
145
+ onFocusRestore,
146
+ onHover,
147
+ className,
148
+ metaColumnClassName,
149
+ 'data-test': dataTest,
150
+ ...restProps
151
+ } = this.props;
146
152
  const classes = classNames(className, {
147
153
  [style.row]: true,
148
154
  [style.rowFocused]: showFocus,
@@ -157,7 +163,7 @@ class Row extends PureComponent {
157
163
  const COLLAPSIBLE_PARENT_OFFSET = 20;
158
164
  const gap = level * SUBITEM_OFFSET + (parentCollapsible ? COLLAPSIBLE_PARENT_OFFSET : 0);
159
165
  const metaColumnStyle = {
160
- paddingLeft: "".concat(gap, "px")
166
+ paddingLeft: `${gap}px`
161
167
  };
162
168
  const metaColumn = jsxs("div", {
163
169
  className: metaColumnClasses,
@@ -208,36 +214,20 @@ class Row extends PureComponent {
208
214
  children: [index === 0 && showMetaColumn && metaColumn, value]
209
215
  }, column.id);
210
216
  });
211
- return jsx("tr", _objectSpread2(_objectSpread2(_objectSpread2({
217
+ return jsx("tr", {
212
218
  id: this.id,
213
219
  ref: this.composedRowRef(this.rowRef, innerRef),
214
220
  className: classes,
215
221
  tabIndex: 0,
216
- "data-test": joinDataTestAttributes('ring-table-row', dataTest)
217
- }, testAttrs), restProps), {}, {
222
+ "data-test": joinDataTestAttributes('ring-table-row', dataTest),
223
+ ...testAttrs,
224
+ ...restProps,
218
225
  onMouseMove: this.onMouseEnter,
219
226
  onClick: this.onClick,
220
227
  onDoubleClick: this.onDoubleClick,
221
228
  children: cells
222
- }));
229
+ });
223
230
  }
224
231
  }
225
- _defineProperty(Row, "defaultProps", {
226
- selectable: true,
227
- showFocus: false,
228
- draggable: false,
229
- alwaysShowDragHandle: false,
230
- selected: false,
231
- onHover: () => {},
232
- onSelect: () => {},
233
- onDoubleClick: () => {},
234
- onClick: () => {},
235
- level: 0,
236
- collapsible: false,
237
- parentCollapsible: false,
238
- collapsed: false,
239
- onCollapse: () => {},
240
- onExpand: () => {}
241
- });
242
232
 
243
233
  export { Row as default };
@@ -1,5 +1,3 @@
1
- import 'core-js/modules/web.dom-collections.iterator.js';
2
-
3
1
  function selectionAdapter(getSelection) {
4
2
  return {
5
3
  get size() {
@@ -1,178 +1,176 @@
1
- import { b as _objectSpread2, _ as _defineProperty, a as _objectWithoutProperties } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/web.dom-collections.iterator.js';
3
1
  import { jsx } from 'react/jsx-runtime';
4
2
  import { PureComponent } from 'react';
5
3
 
6
- const _excluded = ["selection", "selectable", "onSelect", "shortcuts"];
7
4
  function selectionShortcutsHOC(ComposedComponent) {
8
5
  class SelectionShortcuts extends PureComponent {
9
- constructor() {
10
- super(...arguments);
11
- _defineProperty(this, "onUpPress", () => {
12
- const {
13
- selection,
14
- onSelect
15
- } = this.props;
16
- const newSelection = selection.moveUp();
17
- if (newSelection) {
18
- onSelect === null || onSelect === void 0 || onSelect(newSelection);
19
- }
20
- return false;
21
- });
22
- _defineProperty(this, "onDownPress", () => {
23
- const {
24
- selection,
25
- onSelect
26
- } = this.props;
27
- const newSelection = selection.moveDown();
28
- if (newSelection) {
29
- onSelect === null || onSelect === void 0 || onSelect(newSelection);
30
- }
31
- return false;
32
- });
33
- _defineProperty(this, "shiftSelectionMode", void 0);
34
- _defineProperty(this, "onShiftKeyDown", () => {
35
- const {
36
- selection
37
- } = this.props;
38
- if (selection.isSelected(selection.getFocused())) {
39
- this.shiftSelectionMode = 'deletion';
40
- } else {
41
- this.shiftSelectionMode = 'addition';
42
- }
43
- });
44
- _defineProperty(this, "shiftSelect", selection => {
45
- if (this.shiftSelectionMode === 'addition') {
46
- return selection.select();
47
- }
48
- return selection.deselect();
49
- });
50
- _defineProperty(this, "onShiftUpPress", e => {
51
- e.preventDefault();
52
- const {
53
- selectable,
54
- selection,
55
- onSelect
56
- } = this.props;
57
- if (!selectable) {
58
- return;
59
- }
60
- const newSelection = this.shiftSelect(selection);
61
- const newMovedSelection = newSelection.moveUp();
62
- if (newMovedSelection) {
63
- onSelect === null || onSelect === void 0 || onSelect(newMovedSelection);
64
- } else {
65
- onSelect === null || onSelect === void 0 || onSelect(newSelection);
66
- }
67
- });
68
- _defineProperty(this, "onShiftDownPress", e => {
69
- e.preventDefault();
70
- const {
71
- selectable,
72
- selection,
73
- onSelect
74
- } = this.props;
75
- if (!selectable) {
76
- return;
77
- }
78
- const newSelection = this.shiftSelect(selection);
79
- const newMovedSelection = newSelection.moveDown();
80
- if (newMovedSelection) {
81
- onSelect === null || onSelect === void 0 || onSelect(newMovedSelection);
82
- } else {
83
- onSelect === null || onSelect === void 0 || onSelect(newSelection);
84
- }
85
- });
86
- _defineProperty(this, "onHomePress", () => {
87
- const {
88
- selection,
89
- onSelect
90
- } = this.props;
91
- const newSelection = selection.moveStart();
92
- if (newSelection) {
93
- onSelect === null || onSelect === void 0 || onSelect(newSelection);
94
- }
95
- return false;
96
- });
97
- _defineProperty(this, "onEndPress", () => {
98
- const {
99
- selection,
100
- onSelect
101
- } = this.props;
102
- const newSelection = selection.moveEnd();
103
- if (newSelection) {
104
- onSelect === null || onSelect === void 0 || onSelect(newSelection);
105
- }
106
- return false;
107
- });
108
- _defineProperty(this, "onSpacePress", () => {
109
- const {
110
- selectable,
111
- selection,
112
- onSelect
113
- } = this.props;
114
- if (!selectable) {
115
- return true;
116
- }
117
- onSelect === null || onSelect === void 0 || onSelect(selection.toggleSelection());
118
- return false;
119
- });
120
- _defineProperty(this, "onEscPress", () => {
121
- const {
122
- selection,
123
- onSelect
124
- } = this.props;
125
- onSelect === null || onSelect === void 0 || onSelect(selection.reset());
126
- //this.restoreFocusWithoutScroll();
127
- });
128
- _defineProperty(this, "onCmdAPress", () => {
129
- const {
130
- selectable,
131
- selection,
132
- onSelect
133
- } = this.props;
134
- if (!selectable) {
135
- return true;
136
- }
137
- onSelect === null || onSelect === void 0 || onSelect(selection.selectAll());
138
- return false;
139
- });
140
- _defineProperty(this, "shortcutsMap", {
141
- up: this.onUpPress,
142
- down: this.onDownPress,
143
- shift: this.onShiftKeyDown,
144
- 'shift+up': this.onShiftUpPress,
145
- 'shift+down': this.onShiftDownPress,
146
- home: this.onHomePress,
147
- end: this.onEndPress,
148
- space: this.onSpacePress,
149
- esc: this.onEscPress,
150
- 'command+a': this.onCmdAPress,
151
- 'ctrl+a': this.onCmdAPress
152
- });
153
- }
6
+ onUpPress = () => {
7
+ const {
8
+ selection,
9
+ onSelect
10
+ } = this.props;
11
+ const newSelection = selection.moveUp();
12
+ if (newSelection) {
13
+ onSelect?.(newSelection);
14
+ }
15
+ return false;
16
+ };
17
+ onDownPress = () => {
18
+ const {
19
+ selection,
20
+ onSelect
21
+ } = this.props;
22
+ const newSelection = selection.moveDown();
23
+ if (newSelection) {
24
+ onSelect?.(newSelection);
25
+ }
26
+ return false;
27
+ };
28
+ shiftSelectionMode;
29
+ onShiftKeyDown = () => {
30
+ const {
31
+ selection
32
+ } = this.props;
33
+ if (selection.isSelected(selection.getFocused())) {
34
+ this.shiftSelectionMode = 'deletion';
35
+ } else {
36
+ this.shiftSelectionMode = 'addition';
37
+ }
38
+ };
39
+ shiftSelect = selection => {
40
+ if (this.shiftSelectionMode === 'addition') {
41
+ return selection.select();
42
+ }
43
+ return selection.deselect();
44
+ };
45
+ onShiftUpPress = e => {
46
+ e.preventDefault();
47
+ const {
48
+ selectable,
49
+ selection,
50
+ onSelect
51
+ } = this.props;
52
+ if (!selectable) {
53
+ return;
54
+ }
55
+ const newSelection = this.shiftSelect(selection);
56
+ const newMovedSelection = newSelection.moveUp();
57
+ if (newMovedSelection) {
58
+ onSelect?.(newMovedSelection);
59
+ } else {
60
+ onSelect?.(newSelection);
61
+ }
62
+ };
63
+ onShiftDownPress = e => {
64
+ e.preventDefault();
65
+ const {
66
+ selectable,
67
+ selection,
68
+ onSelect
69
+ } = this.props;
70
+ if (!selectable) {
71
+ return;
72
+ }
73
+ const newSelection = this.shiftSelect(selection);
74
+ const newMovedSelection = newSelection.moveDown();
75
+ if (newMovedSelection) {
76
+ onSelect?.(newMovedSelection);
77
+ } else {
78
+ onSelect?.(newSelection);
79
+ }
80
+ };
81
+ onHomePress = () => {
82
+ const {
83
+ selection,
84
+ onSelect
85
+ } = this.props;
86
+ const newSelection = selection.moveStart();
87
+ if (newSelection) {
88
+ onSelect?.(newSelection);
89
+ }
90
+ return false;
91
+ };
92
+ onEndPress = () => {
93
+ const {
94
+ selection,
95
+ onSelect
96
+ } = this.props;
97
+ const newSelection = selection.moveEnd();
98
+ if (newSelection) {
99
+ onSelect?.(newSelection);
100
+ }
101
+ return false;
102
+ };
103
+ onSpacePress = () => {
104
+ const {
105
+ selectable,
106
+ selection,
107
+ onSelect
108
+ } = this.props;
109
+ if (!selectable) {
110
+ return true;
111
+ }
112
+ onSelect?.(selection.toggleSelection());
113
+ return false;
114
+ };
115
+ onEscPress = () => {
116
+ const {
117
+ selection,
118
+ onSelect
119
+ } = this.props;
120
+ onSelect?.(selection.reset());
121
+ //this.restoreFocusWithoutScroll();
122
+ };
123
+ onCmdAPress = () => {
124
+ const {
125
+ selectable,
126
+ selection,
127
+ onSelect
128
+ } = this.props;
129
+ if (!selectable) {
130
+ return true;
131
+ }
132
+ onSelect?.(selection.selectAll());
133
+ return false;
134
+ };
135
+ shortcutsMap = {
136
+ up: this.onUpPress,
137
+ down: this.onDownPress,
138
+ shift: this.onShiftKeyDown,
139
+ 'shift+up': this.onShiftUpPress,
140
+ 'shift+down': this.onShiftDownPress,
141
+ home: this.onHomePress,
142
+ end: this.onEndPress,
143
+ space: this.onSpacePress,
144
+ esc: this.onEscPress,
145
+ 'command+a': this.onCmdAPress,
146
+ 'ctrl+a': this.onCmdAPress
147
+ };
154
148
  render() {
155
- const _this$props = this.props,
156
- {
157
- selection,
158
- selectable,
159
- onSelect,
160
- shortcuts
161
- } = _this$props,
162
- restProps = _objectWithoutProperties(_this$props, _excluded);
163
- return jsx(ComposedComponent, _objectSpread2(_objectSpread2({}, restProps), {}, {
149
+ const {
150
+ selection,
151
+ selectable,
152
+ onSelect,
153
+ shortcuts,
154
+ ...restProps
155
+ } = this.props;
156
+ return jsx(ComposedComponent, {
157
+ ...restProps,
164
158
  selection: selection,
165
159
  selectable: selectable,
166
160
  onSelect: onSelect,
167
- shortcutsMap: _objectSpread2(_objectSpread2({}, this.shortcutsMap), this.props.shortcuts)
168
- }));
161
+ shortcutsMap: {
162
+ ...this.shortcutsMap,
163
+ ...this.props.shortcuts
164
+ }
165
+ });
169
166
  }
170
167
  }
171
- SelectionShortcuts.defaultProps = _objectSpread2(_objectSpread2({}, ComposedComponent.defaultProps), {}, {
168
+ SelectionShortcuts.defaultProps = {
169
+ ...ComposedComponent.defaultProps,
172
170
  selectable: true,
173
171
  onSelect: () => {},
174
172
  shortcuts: {}
175
- });
173
+ };
176
174
  return SelectionShortcuts;
177
175
  }
178
176