@jetbrains/ring-ui-built 6.0.31 → 6.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +1 -567
  2. package/components/_helpers/anchor.js +7 -6
  3. package/components/_helpers/button__classes.js +16 -14
  4. package/components/_helpers/caption.js +14 -20
  5. package/components/_helpers/card.js +95 -105
  6. package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
  7. package/components/_helpers/icon__svg.js +22 -25
  8. package/components/_helpers/input.js +146 -177
  9. package/components/_helpers/query-assist__suggestions.js +74 -90
  10. package/components/_helpers/select__filter.js +48 -69
  11. package/components/_helpers/services-link.js +29 -37
  12. package/components/_helpers/sidebar.js +99 -107
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +31 -40
  15. package/components/_helpers/title.js +57 -72
  16. package/components/alert/alert.js +150 -202
  17. package/components/alert/container.js +32 -41
  18. package/components/alert-service/alert-service.js +105 -170
  19. package/components/analytics/analytics.js +12 -22
  20. package/components/analytics/analytics__custom-plugin.js +54 -75
  21. package/components/auth/auth.js +4 -36
  22. package/components/auth/auth__core.js +746 -1471
  23. package/components/auth/background-flow.js +87 -127
  24. package/components/auth/down-notification.js +30 -73
  25. package/components/auth/iframe-flow.js +75 -133
  26. package/components/auth/request-builder.js +46 -82
  27. package/components/auth/response-parser.js +86 -116
  28. package/components/auth/storage.js +171 -334
  29. package/components/auth/token-validator.js +137 -242
  30. package/components/auth/window-flow.js +92 -134
  31. package/components/auth-dialog/auth-dialog.js +114 -172
  32. package/components/auth-dialog-service/auth-dialog-service.js +8 -31
  33. package/components/avatar/avatar-example-datauri.js +23 -1
  34. package/components/avatar/avatar.js +119 -152
  35. package/components/avatar/fallback-avatar.js +22 -38
  36. package/components/badge/badge.js +35 -45
  37. package/components/button/button.js +86 -107
  38. package/components/button-group/button-group.js +19 -33
  39. package/components/button-set/button-set.js +20 -32
  40. package/components/button-toolbar/button-toolbar.js +19 -31
  41. package/components/caret/caret.js +186 -220
  42. package/components/checkbox/checkbox.js +76 -101
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +35 -132
  45. package/components/code/code.js +92 -166
  46. package/components/collapse/collapse-content.js +42 -64
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +12 -14
  49. package/components/collapse/collapse.js +11 -17
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +1 -3
  52. package/components/confirm/confirm.js +66 -104
  53. package/components/confirm-service/confirm-service.js +37 -59
  54. package/components/content-layout/content-layout.js +43 -64
  55. package/components/content-layout/sidebar.js +0 -1
  56. package/components/contenteditable/contenteditable.js +50 -59
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +129 -182
  59. package/components/data-list/data-list.mock.js +2 -6
  60. package/components/data-list/item.js +143 -170
  61. package/components/data-list/selection.js +76 -136
  62. package/components/data-list/title.js +1 -12
  63. package/components/date-picker/consts.js +19 -26
  64. package/components/date-picker/date-input.js +113 -144
  65. package/components/date-picker/date-picker.js +227 -282
  66. package/components/date-picker/date-popup.js +350 -395
  67. package/components/date-picker/day.js +87 -116
  68. package/components/date-picker/month-names.js +43 -66
  69. package/components/date-picker/month-slider.js +51 -76
  70. package/components/date-picker/month.js +16 -25
  71. package/components/date-picker/months.js +43 -50
  72. package/components/date-picker/weekdays.js +12 -22
  73. package/components/date-picker/years.js +83 -110
  74. package/components/dialog/dialog.js +142 -190
  75. package/components/dialog/dialog__body-scroll-preventer.js +0 -4
  76. package/components/dropdown/anchor.js +0 -9
  77. package/components/dropdown/dropdown.js +182 -213
  78. package/components/dropdown-menu/dropdown-menu.js +71 -97
  79. package/components/editable-heading/editable-heading.js +75 -127
  80. package/components/error-bubble/error-bubble.js +31 -60
  81. package/components/error-message/error-message.js +39 -59
  82. package/components/footer/footer.js +27 -30
  83. package/components/global/compose.js +1 -10
  84. package/components/global/composeRefs.js +7 -12
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +6 -14
  88. package/components/global/dom.js +47 -86
  89. package/components/global/focus-sensor-hoc.js +122 -132
  90. package/components/global/fuzzy-highlight.js +22 -36
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +4 -8
  93. package/components/global/inject-styles.js +10 -15
  94. package/components/global/listeners.js +27 -51
  95. package/components/global/memoize.js +6 -12
  96. package/components/global/normalize-indent.js +19 -50
  97. package/components/global/promise-with-timeout.js +6 -8
  98. package/components/global/prop-types.js +3 -5
  99. package/components/global/react-dom-renderer.js +28 -44
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +12 -30
  102. package/components/global/schedule-raf.js +5 -6
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +0 -22
  105. package/components/global/trivial-template-tag.js +3 -10
  106. package/components/global/typescript-utils.js +2 -6
  107. package/components/global/url.js +20 -26
  108. package/components/global/use-event-callback.js +6 -4
  109. package/components/grid/col.js +35 -52
  110. package/components/grid/grid.js +17 -31
  111. package/components/grid/row.js +35 -47
  112. package/components/group/group.js +17 -25
  113. package/components/header/header.js +33 -78
  114. package/components/header/logo.js +20 -36
  115. package/components/header/profile.js +166 -199
  116. package/components/header/services-link.js +0 -4
  117. package/components/header/services.js +73 -116
  118. package/components/header/smart-profile.js +111 -203
  119. package/components/header/smart-services.js +62 -113
  120. package/components/header/tray-icon.js +21 -37
  121. package/components/header/tray.js +21 -32
  122. package/components/heading/heading.js +24 -25
  123. package/components/http/http.d.ts +1 -3
  124. package/components/http/http.js +203 -353
  125. package/components/http/http.mock.js +49 -101
  126. package/components/hub-source/hub-source.js +83 -190
  127. package/components/hub-source/hub-source__user.js +11 -44
  128. package/components/hub-source/hub-source__users-groups.js +37 -65
  129. package/components/i18n/i18n-context.js +7 -10
  130. package/components/i18n/i18n.js +7 -10
  131. package/components/icon/icon.js +76 -93
  132. package/components/icon/icon__svg.js +0 -8
  133. package/components/icon/index.js +0 -8
  134. package/components/input/input.js +0 -13
  135. package/components/island/adaptive-island-hoc.js +30 -43
  136. package/components/island/content.js +115 -132
  137. package/components/island/header.js +57 -70
  138. package/components/island/island.js +28 -40
  139. package/components/island-legacy/content-legacy.js +17 -25
  140. package/components/island-legacy/header-legacy.js +19 -27
  141. package/components/island-legacy/island-legacy.js +17 -25
  142. package/components/link/clickableLink.js +44 -59
  143. package/components/link/link.js +57 -68
  144. package/components/list/consts.js +2 -2
  145. package/components/list/list.js +611 -698
  146. package/components/list/list__custom.js +44 -62
  147. package/components/list/list__hint.js +10 -19
  148. package/components/list/list__item.js +133 -174
  149. package/components/list/list__link.js +37 -50
  150. package/components/list/list__separator.js +14 -24
  151. package/components/list/list__title.js +22 -32
  152. package/components/list/list__users-groups-source.js +54 -126
  153. package/components/loader/loader.js +43 -74
  154. package/components/loader/loader__core.js +198 -263
  155. package/components/loader-inline/loader-inline.js +23 -35
  156. package/components/loader-screen/loader-screen.js +25 -46
  157. package/components/login-dialog/login-dialog.js +111 -158
  158. package/components/login-dialog/service.js +8 -34
  159. package/components/markdown/markdown.js +15 -23
  160. package/components/message/message.js +161 -203
  161. package/components/old-browsers-message/old-browsers-message.js +11 -18
  162. package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
  163. package/components/old-browsers-message/white-list.js +8 -16
  164. package/components/pager/pager.js +212 -271
  165. package/components/panel/panel.js +17 -25
  166. package/components/permissions/permissions.js +127 -172
  167. package/components/permissions/permissions__cache.js +194 -224
  168. package/components/popup/popup.consts.js +1 -1
  169. package/components/popup/popup.js +284 -343
  170. package/components/popup/popup.target.js +9 -8
  171. package/components/popup/position.js +96 -106
  172. package/components/popup-menu/popup-menu.js +44 -80
  173. package/components/progress-bar/progress-bar.js +87 -104
  174. package/components/query-assist/query-assist.js +838 -916
  175. package/components/query-assist/query-assist__suggestions.js +1 -30
  176. package/components/radio/radio.js +19 -34
  177. package/components/radio/radio__item.js +52 -69
  178. package/components/select/select.js +852 -957
  179. package/components/select/select__filter.js +0 -30
  180. package/components/select/select__popup.js +373 -487
  181. package/components/shortcuts/core.js +166 -217
  182. package/components/shortcuts/shortcut-title.js +6 -11
  183. package/components/shortcuts/shortcuts-hoc.js +19 -45
  184. package/components/shortcuts/shortcuts.js +50 -75
  185. package/components/slider/slider.js +99 -122
  186. package/components/slider/slider.utils.js +14 -24
  187. package/components/storage/storage.js +4 -33
  188. package/components/storage/storage__fallback.js +149 -224
  189. package/components/storage/storage__local.js +90 -153
  190. package/components/tab-trap/tab-trap.js +122 -153
  191. package/components/table/cell.js +14 -26
  192. package/components/table/disable-hover-hoc.js +33 -51
  193. package/components/table/header-cell.js +64 -89
  194. package/components/table/header.js +104 -132
  195. package/components/table/multitable.js +107 -125
  196. package/components/table/row-with-focus-sensor.js +25 -69
  197. package/components/table/row.js +175 -216
  198. package/components/table/selection-adapter.js +1 -3
  199. package/components/table/selection-shortcuts-hoc.js +180 -181
  200. package/components/table/selection.js +156 -226
  201. package/components/table/smart-table.js +50 -88
  202. package/components/table/table.js +289 -358
  203. package/components/tabs/collapsible-more.js +46 -79
  204. package/components/tabs/collapsible-tab.js +31 -38
  205. package/components/tabs/collapsible-tabs.js +88 -153
  206. package/components/tabs/custom-item.js +4 -2
  207. package/components/tabs/dumb-tabs.js +74 -117
  208. package/components/tabs/smart-tabs.js +29 -69
  209. package/components/tabs/tab-link.js +1 -5
  210. package/components/tabs/tab.js +19 -31
  211. package/components/tabs/tabs.js +0 -31
  212. package/components/tag/tag.js +133 -173
  213. package/components/tags-input/tags-input.js +329 -427
  214. package/components/tags-list/tags-list.js +57 -78
  215. package/components/text/text.js +28 -39
  216. package/components/toggle/toggle.js +56 -70
  217. package/components/tooltip/tooltip.js +146 -190
  218. package/components/user-agreement/service.js +228 -371
  219. package/components/user-agreement/toolbox.eula.js +160 -1
  220. package/components/user-agreement/user-agreement.js +85 -120
  221. package/components/user-card/card.js +0 -29
  222. package/components/user-card/smart-user-card-tooltip.js +51 -111
  223. package/components/user-card/tooltip.js +47 -84
  224. package/components/user-card/user-card.js +0 -29
  225. package/package.json +1 -1
@@ -1,15 +1,13 @@
1
- import { _ as _defineProperty, a as _inherits, b as _createClass, f as _classCallCheck, g as _callSuper, e as _extends, c as _objectWithoutProperties, d as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.array.concat.js';
3
- import 'core-js/modules/es.array.map.js';
4
- import React, { PureComponent, Component } from 'react';
1
+ import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { Component, PureComponent } from 'react';
5
3
  import PropTypes from 'prop-types';
6
4
  import classNames from 'classnames';
7
- import { List, arrayMove } from 'react-movable';
5
+ import { arrayMove, List } from 'react-movable';
8
6
  import focusSensorHOC from '../global/focus-sensor-hoc.js';
9
7
  import getUID from '../global/get-uid.js';
10
8
  import Shortcuts from '../shortcuts/shortcuts.js';
11
9
  import Loader from '../loader/loader.js';
12
- import Selection from './selection.js';
10
+ import Selection$1 from './selection.js';
13
11
  import Header from './header.js';
14
12
  import { m as modules_1db4bbca } from '../_helpers/table.js';
15
13
  import selectionShortcutsHOC from './selection-shortcuts-hoc.js';
@@ -17,33 +15,13 @@ import disableHoverHOC from './disable-hover-hoc.js';
17
15
  import RowWithFocusSensorCallbacks from './row-with-focus-sensor.js';
18
16
  import '../global/prop-types.js';
19
17
  import '../global/composeRefs.js';
20
- import 'core-js/modules/es.object.to-string.js';
21
- import 'core-js/modules/web.dom-collections.for-each.js';
22
- import 'core-js/modules/es.regexp.to-string.js';
23
18
  import '../shortcuts/core.js';
24
- import 'core-js/modules/es.array.find-index.js';
25
- import 'core-js/modules/es.array.includes.js';
26
- import 'core-js/modules/es.array.slice.js';
27
- import 'core-js/modules/es.array.splice.js';
28
- import 'core-js/modules/es.object.assign.js';
29
- import 'core-js/modules/es.regexp.exec.js';
30
- import 'core-js/modules/es.string.includes.js';
31
- import 'core-js/modules/es.string.match.js';
32
19
  import 'combokeys';
33
20
  import '../global/sniffer.js';
34
21
  import 'sniffr';
35
22
  import '../global/data-tests.js';
36
- import 'core-js/modules/es.array.reduce.js';
37
- import 'core-js/modules/es.object.entries.js';
38
23
  import '../loader/loader__core.js';
39
- import 'core-js/modules/es.array.fill.js';
40
- import 'core-js/modules/es.array.filter.js';
41
24
  import '../global/dom.js';
42
- import 'core-js/modules/es.array.iterator.js';
43
- import 'core-js/modules/es.set.js';
44
- import 'core-js/modules/es.string.split.js';
45
- import 'core-js/modules/web.dom-collections.iterator.js';
46
- import 'core-js/modules/es.array.index-of.js';
47
25
  import '../checkbox/checkbox.js';
48
26
  import '@jetbrains/icons/checkmark-12px';
49
27
  import '@jetbrains/icons/remove-12px';
@@ -51,11 +29,7 @@ import '../icon/icon.js';
51
29
  import 'util-deprecate';
52
30
  import '../icon/icon__constants.js';
53
31
  import '../_helpers/icon__svg.js';
54
- import 'core-js/modules/es.string.replace.js';
55
- import 'core-js/modules/es.string.starts-with.js';
56
32
  import '../global/memoize.js';
57
- import 'core-js/modules/es.map.js';
58
- import 'core-js/modules/es.weak-map.js';
59
33
  import './header-cell.js';
60
34
  import '@jetbrains/icons/unsorted-10px';
61
35
  import '@jetbrains/icons/chevron-10px';
@@ -73,324 +47,296 @@ import 'react-dom';
73
47
  import '../global/schedule-raf.js';
74
48
  import '../tab-trap/tab-trap.js';
75
49
  import '../popup/position.js';
76
- import 'core-js/modules/es.array.sort.js';
77
50
  import '../popup/popup.consts.js';
78
51
  import '../popup/popup.target.js';
79
52
  import './cell.js';
80
53
 
81
- var _excluded = ["ref"];
82
54
  /**
83
55
  * Interactive table with selection and keyboard navigation support.
84
56
  */
85
- var Table = /*#__PURE__*/function (_PureComponent) {
86
- function Table() {
87
- var _this;
88
- _classCallCheck(this, Table);
89
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
90
- args[_key] = arguments[_key];
91
- }
92
- _this = _callSuper(this, Table, [].concat(args));
93
- _defineProperty(_this, "state", {
94
- shortcutsScope: getUID('ring-table-'),
95
- userSelectNone: false
96
- });
97
- _defineProperty(_this, "onMouseDown", function (e) {
98
- if (e.shiftKey) {
99
- _this.setState({
100
- userSelectNone: true
101
- });
102
- }
103
- });
104
- _defineProperty(_this, "onMouseUp", function () {
105
- if (_this.state.userSelectNone) {
106
- _this.setState({
107
- userSelectNone: false
108
- });
109
- }
110
- });
111
- _defineProperty(_this, "onRowFocus", function (row) {
112
- var _this$props = _this.props,
113
- selection = _this$props.selection,
114
- onSelect = _this$props.onSelect;
115
- onSelect(selection.focus(row));
116
- });
117
- _defineProperty(_this, "onRowSelect", function (row, selected) {
118
- var _this$props2 = _this.props,
119
- selection = _this$props2.selection,
120
- onSelect = _this$props2.onSelect;
121
- if (selected) {
122
- onSelect(selection.select(row));
123
- } else {
124
- onSelect(selection.deselect(row));
125
- }
126
- });
127
- _defineProperty(_this, "onSortEnd", function (_ref) {
128
- var oldIndex = _ref.oldIndex,
129
- newIndex = _ref.newIndex;
130
- var data = arrayMove(_this.props.data, oldIndex, newIndex);
131
- _this.props.onReorder({
132
- data,
133
- oldIndex,
134
- newIndex
135
- });
136
- });
137
- _defineProperty(_this, "onCheckboxChange", function (e) {
138
- var checked = e.currentTarget.checked;
139
- var _this$props3 = _this.props,
140
- selection = _this$props3.selection,
141
- onSelect = _this$props3.onSelect;
142
- if (checked) {
143
- onSelect(selection.selectAll());
144
- } else {
145
- onSelect(selection.reset());
146
- }
147
- _this.restoreFocusWithoutScroll();
148
- });
149
- _defineProperty(_this, "restoreFocusWithoutScroll", function () {
150
- var _window = window,
151
- scrollX = _window.scrollX,
152
- scrollY = _window.scrollY;
153
- _this.props.onFocusRestore();
154
- window.scrollTo(scrollX, scrollY);
155
- });
156
- return _this;
57
+ class Table extends PureComponent {
58
+ static defaultProps = {
59
+ isItemSelectable: () => true,
60
+ loading: false,
61
+ onSort: () => {},
62
+ onReorder: () => {},
63
+ getItemKey: item => item.id,
64
+ sortKey: 'id',
65
+ sortOrder: true,
66
+ draggable: false,
67
+ alwaysShowDragHandle: false,
68
+ stickyHeader: true,
69
+ getItemLevel: () => 0,
70
+ getItemClassName: () => null,
71
+ getMetaColumnClassName: () => null,
72
+ getItemDataTest: () => null,
73
+ isItemCollapsible: () => false,
74
+ isParentCollapsible: () => false,
75
+ isItemCollapsed: () => false,
76
+ onItemCollapse: () => {},
77
+ onItemExpand: () => {},
78
+ onItemDoubleClick: () => {},
79
+ onItemClick: () => {},
80
+ remoteSelection: false,
81
+ isDisabledSelectionVisible: () => false,
82
+ getCheckboxTooltip: () => undefined
83
+ };
84
+ state = {
85
+ shortcutsScope: getUID('ring-table-'),
86
+ userSelectNone: false
87
+ };
88
+ componentDidMount() {
89
+ document.addEventListener('mouseup', this.onMouseUp);
157
90
  }
158
- _inherits(Table, _PureComponent);
159
- return _createClass(Table, [{
160
- key: "componentDidMount",
161
- value: function componentDidMount() {
162
- document.addEventListener('mouseup', this.onMouseUp);
91
+ componentDidUpdate(_ref) {
92
+ let {
93
+ data,
94
+ selection,
95
+ onSelect,
96
+ selectable,
97
+ remoteSelection
98
+ } = _ref;
99
+ if (data !== this.props.data && remoteSelection) {
100
+ onSelect(selection.cloneWith({
101
+ data: this.props.data
102
+ }));
163
103
  }
164
- }, {
165
- key: "componentDidUpdate",
166
- value: function componentDidUpdate(_ref2) {
167
- var data = _ref2.data,
168
- selection = _ref2.selection,
169
- onSelect = _ref2.onSelect,
170
- selectable = _ref2.selectable,
171
- remoteSelection = _ref2.remoteSelection;
172
- if (data !== this.props.data && remoteSelection) {
173
- onSelect(selection.cloneWith({
174
- data: this.props.data
175
- }));
176
- }
177
- if (!this.props.selectable && this.props.selectable !== selectable) {
178
- onSelect(selection.resetSelection());
179
- }
180
- }
181
- }, {
182
- key: "componentWillUnmount",
183
- value: function componentWillUnmount() {
184
- document.removeEventListener('mouseup', this.onMouseUp);
104
+ if (!this.props.selectable && this.props.selectable !== selectable) {
105
+ onSelect(selection.resetSelection());
185
106
  }
186
- }, {
187
- key: "render",
188
- value: function render() {
189
- var _this2 = this;
190
- var _this$props4 = this.props,
191
- data = _this$props4.data,
192
- selection = _this$props4.selection,
193
- columns = _this$props4.columns,
194
- caption = _this$props4.caption,
195
- getItemKey = _this$props4.getItemKey,
196
- selectable = _this$props4.selectable,
197
- focused = _this$props4.focused,
198
- isItemSelectable = _this$props4.isItemSelectable,
199
- getItemLevel = _this$props4.getItemLevel,
200
- getItemClassName = _this$props4.getItemClassName,
201
- getMetaColumnClassName = _this$props4.getMetaColumnClassName,
202
- getItemDataTest = _this$props4.getItemDataTest,
203
- draggable = _this$props4.draggable,
204
- alwaysShowDragHandle = _this$props4.alwaysShowDragHandle,
205
- dragHandleTitle = _this$props4.dragHandleTitle,
206
- loading = _this$props4.loading,
207
- onSort = _this$props4.onSort,
208
- sortKey = _this$props4.sortKey,
209
- sortOrder = _this$props4.sortOrder,
210
- loaderClassName = _this$props4.loaderClassName,
211
- stickyHeader = _this$props4.stickyHeader,
212
- stickyHeaderOffset = _this$props4.stickyHeaderOffset,
213
- isItemCollapsible = _this$props4.isItemCollapsible,
214
- isParentCollapsible = _this$props4.isParentCollapsible,
215
- isItemCollapsed = _this$props4.isItemCollapsed,
216
- onItemCollapse = _this$props4.onItemCollapse,
217
- onItemExpand = _this$props4.onItemExpand,
218
- isDisabledSelectionVisible = _this$props4.isDisabledSelectionVisible,
219
- getCheckboxTooltip = _this$props4.getCheckboxTooltip,
220
- onItemDoubleClick = _this$props4.onItemDoubleClick,
221
- onItemClick = _this$props4.onItemClick,
222
- renderEmpty = _this$props4.renderEmpty,
223
- maxColSpan = _this$props4.maxColSpan;
224
- // NOTE: Do not construct new object per render because it causes all rows rerendering
225
- var headerProps = {
226
- caption,
227
- selectable,
228
- draggable,
229
- columns: typeof columns === 'function' ? columns(null) : columns,
230
- onSort,
231
- sortKey,
232
- sortOrder,
233
- sticky: stickyHeader,
234
- topStickOffset: stickyHeaderOffset,
235
- maxColSpan: this.props.maxColSpan
236
- };
237
- var selectedSize = selection.getSelected().size;
238
- var allSelectedSize = selection.selectAll().getSelected().size;
239
- headerProps.checked = selectedSize > 0 && selectedSize === allSelectedSize;
240
- headerProps.onCheckboxChange = this.onCheckboxChange;
241
- headerProps.checkboxDisabled = this.props.data.length === 0;
242
- var wrapperClasses = classNames({
243
- [modules_1db4bbca.tableWrapper]: true,
244
- [modules_1db4bbca.loading]: loading
107
+ }
108
+ componentWillUnmount() {
109
+ document.removeEventListener('mouseup', this.onMouseUp);
110
+ }
111
+ onMouseDown = e => {
112
+ if (e.shiftKey) {
113
+ this.setState({
114
+ userSelectNone: true
245
115
  });
246
- var classes = classNames(this.props.className, {
247
- [modules_1db4bbca.table]: true,
248
- [modules_1db4bbca.multiSelection]: selection.getSelected().size > 0,
249
- [modules_1db4bbca.userSelectNone]: this.state.userSelectNone,
250
- [modules_1db4bbca.disabledHover]: this.props.disabledHover
116
+ }
117
+ };
118
+ onMouseUp = () => {
119
+ if (this.state.userSelectNone) {
120
+ this.setState({
121
+ userSelectNone: false
251
122
  });
252
- var renderList = function renderList(_ref3) {
253
- var children = _ref3.children,
254
- props = _ref3.props;
255
- var empty = /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
256
- colSpan: _this2.props.columns.length || 1,
257
- className: modules_1db4bbca.tableMessage
258
- }, renderEmpty ? renderEmpty() : null));
259
- var tbody = Array.isArray(children) && children.length > 0 ? children : empty;
260
- return /*#__PURE__*/React.createElement("table", {
261
- className: classes,
262
- "data-test": "ring-table"
263
- }, /*#__PURE__*/React.createElement(Header, headerProps), /*#__PURE__*/React.createElement("tbody", _extends({}, props, {
264
- "data-test": "ring-table-body"
265
- }), tbody));
266
- };
267
- var renderItem = function renderItem(_ref4) {
268
- var _restProps$key;
269
- var value = _ref4.value,
270
- _ref4$props = _ref4.props,
271
- props = _ref4$props === void 0 ? {} : _ref4$props,
272
- isDragged = _ref4.isDragged;
273
- if (value == null) {
274
- return null;
275
- }
276
- var ref = props.ref,
277
- restProps = _objectWithoutProperties(props, _excluded);
278
- var row = /*#__PURE__*/React.createElement(RowWithFocusSensorCallbacks, _extends({
279
- innerRef: ref,
280
- level: getItemLevel(value),
281
- item: value,
282
- showFocus: selection.isFocused(value),
283
- autofocus: selection.isFocused(value),
284
- focused: focused && selection.isFocused(value),
285
- selectable: selectable && isItemSelectable(value),
286
- selected: selectable && selection.isSelected(value),
287
- onFocus: _this2.onRowFocus,
288
- onSelect: _this2.onRowSelect,
289
- onDoubleClick: onItemDoubleClick,
290
- onClick: onItemClick,
291
- collapsible: isItemCollapsible(value),
292
- parentCollapsible: isParentCollapsible(value),
293
- collapsed: isItemCollapsed(value),
294
- onCollapse: onItemCollapse,
295
- onExpand: onItemExpand,
296
- showDisabledSelection: isDisabledSelectionVisible(value),
297
- checkboxTooltip: getCheckboxTooltip(value),
298
- className: classNames(getItemClassName(value), {
299
- [modules_1db4bbca.draggingRow]: isDragged
300
- }),
301
- metaColumnClassName: getMetaColumnClassName(value),
302
- draggable: draggable,
303
- alwaysShowDragHandle: alwaysShowDragHandle,
304
- dragHandleTitle: dragHandleTitle,
305
- columns: columns,
306
- "data-test": getItemDataTest(value),
307
- maxColSpan: maxColSpan
308
- }, restProps, {
309
- key: (_restProps$key = restProps.key) !== null && _restProps$key !== void 0 ? _restProps$key : getItemKey(value)
310
- }));
311
- return isDragged ? /*#__PURE__*/React.createElement("table", {
312
- style: _objectSpread2({}, props.style),
313
- className: modules_1db4bbca.draggingTable
314
- }, /*#__PURE__*/React.createElement("tbody", null, row)) : row;
315
- };
316
- return /*#__PURE__*/React.createElement("div", {
317
- className: wrapperClasses,
318
- "data-test": "ring-table-wrapper",
319
- ref: this.props.innerRef
320
- }, focused && /*#__PURE__*/React.createElement(Shortcuts, {
321
- map: this.props.shortcutsMap,
322
- scope: this.state.shortcutsScope
323
- }), /*#__PURE__*/React.createElement("div", {
324
- role: "presentation",
325
- onMouseDown: this.onMouseDown
326
- }, draggable ? /*#__PURE__*/React.createElement(List, {
327
- values: data,
328
- renderList: renderList,
329
- renderItem: renderItem,
330
- onChange: this.onSortEnd
331
- }) : renderList({
332
- children: data.map(function (value, index) {
333
- return renderItem({
334
- value,
335
- index
336
- });
337
- })
338
- })), loading && /*#__PURE__*/React.createElement("div", {
339
- className: modules_1db4bbca.loadingOverlay
340
- }, /*#__PURE__*/React.createElement(Loader, {
341
- className: loaderClassName
342
- })));
343
123
  }
344
- }]);
345
- }(PureComponent);
346
- _defineProperty(Table, "defaultProps", {
347
- isItemSelectable: function isItemSelectable() {
348
- return true;
349
- },
350
- loading: false,
351
- onSort: function onSort() {},
352
- onReorder: function onReorder() {},
353
- getItemKey: function getItemKey(item) {
354
- return item.id;
355
- },
356
- sortKey: 'id',
357
- sortOrder: true,
358
- draggable: false,
359
- alwaysShowDragHandle: false,
360
- stickyHeader: true,
361
- getItemLevel: function getItemLevel() {
362
- return 0;
363
- },
364
- getItemClassName: function getItemClassName() {
365
- return null;
366
- },
367
- getMetaColumnClassName: function getMetaColumnClassName() {
368
- return null;
369
- },
370
- getItemDataTest: function getItemDataTest() {
371
- return null;
372
- },
373
- isItemCollapsible: function isItemCollapsible() {
374
- return false;
375
- },
376
- isParentCollapsible: function isParentCollapsible() {
377
- return false;
378
- },
379
- isItemCollapsed: function isItemCollapsed() {
380
- return false;
381
- },
382
- onItemCollapse: function onItemCollapse() {},
383
- onItemExpand: function onItemExpand() {},
384
- onItemDoubleClick: function onItemDoubleClick() {},
385
- onItemClick: function onItemClick() {},
386
- remoteSelection: false,
387
- isDisabledSelectionVisible: function isDisabledSelectionVisible() {
388
- return false;
389
- },
390
- getCheckboxTooltip: function getCheckboxTooltip() {
391
- return undefined;
124
+ };
125
+ onRowFocus = row => {
126
+ const {
127
+ selection,
128
+ onSelect
129
+ } = this.props;
130
+ onSelect(selection.focus(row));
131
+ };
132
+ onRowSelect = (row, selected) => {
133
+ const {
134
+ selection,
135
+ onSelect
136
+ } = this.props;
137
+ if (selected) {
138
+ onSelect(selection.select(row));
139
+ } else {
140
+ onSelect(selection.deselect(row));
141
+ }
142
+ };
143
+ onSortEnd = _ref2 => {
144
+ let {
145
+ oldIndex,
146
+ newIndex
147
+ } = _ref2;
148
+ const data = arrayMove(this.props.data, oldIndex, newIndex);
149
+ this.props.onReorder({
150
+ data,
151
+ oldIndex,
152
+ newIndex
153
+ });
154
+ };
155
+ onCheckboxChange = e => {
156
+ const {
157
+ checked
158
+ } = e.currentTarget;
159
+ const {
160
+ selection,
161
+ onSelect
162
+ } = this.props;
163
+ if (checked) {
164
+ onSelect(selection.selectAll());
165
+ } else {
166
+ onSelect(selection.reset());
167
+ }
168
+ this.restoreFocusWithoutScroll();
169
+ };
170
+ restoreFocusWithoutScroll = () => {
171
+ const {
172
+ scrollX,
173
+ scrollY
174
+ } = window;
175
+ this.props.onFocusRestore();
176
+ window.scrollTo(scrollX, scrollY);
177
+ };
178
+ render() {
179
+ const {
180
+ data,
181
+ selection,
182
+ columns,
183
+ caption,
184
+ getItemKey,
185
+ selectable,
186
+ focused,
187
+ isItemSelectable,
188
+ getItemLevel,
189
+ getItemClassName,
190
+ getMetaColumnClassName,
191
+ getItemDataTest,
192
+ draggable,
193
+ alwaysShowDragHandle,
194
+ dragHandleTitle,
195
+ loading,
196
+ onSort,
197
+ sortKey,
198
+ sortOrder,
199
+ loaderClassName,
200
+ stickyHeader,
201
+ stickyHeaderOffset,
202
+ isItemCollapsible,
203
+ isParentCollapsible,
204
+ isItemCollapsed,
205
+ onItemCollapse,
206
+ onItemExpand,
207
+ isDisabledSelectionVisible,
208
+ getCheckboxTooltip,
209
+ onItemDoubleClick,
210
+ onItemClick,
211
+ renderEmpty,
212
+ maxColSpan
213
+ } = this.props;
214
+ // NOTE: Do not construct new object per render because it causes all rows rerendering
215
+ const headerProps = {
216
+ caption,
217
+ selectable,
218
+ draggable,
219
+ columns: typeof columns === 'function' ? columns(null) : columns,
220
+ onSort,
221
+ sortKey,
222
+ sortOrder,
223
+ sticky: stickyHeader,
224
+ topStickOffset: stickyHeaderOffset,
225
+ maxColSpan: this.props.maxColSpan
226
+ };
227
+ const selectedSize = selection.getSelected().size;
228
+ const allSelectedSize = selection.selectAll().getSelected().size;
229
+ headerProps.checked = selectedSize > 0 && selectedSize === allSelectedSize;
230
+ headerProps.onCheckboxChange = this.onCheckboxChange;
231
+ headerProps.checkboxDisabled = this.props.data.length === 0;
232
+ const wrapperClasses = classNames({
233
+ [modules_1db4bbca.tableWrapper]: true,
234
+ [modules_1db4bbca.loading]: loading
235
+ });
236
+ const classes = classNames(this.props.className, {
237
+ [modules_1db4bbca.table]: true,
238
+ [modules_1db4bbca.multiSelection]: selection.getSelected().size > 0,
239
+ [modules_1db4bbca.userSelectNone]: this.state.userSelectNone,
240
+ [modules_1db4bbca.disabledHover]: this.props.disabledHover
241
+ });
242
+ const renderList = _ref3 => {
243
+ let {
244
+ children,
245
+ props
246
+ } = _ref3;
247
+ const empty = /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
248
+ colSpan: this.props.columns.length || 1,
249
+ className: modules_1db4bbca.tableMessage
250
+ }, renderEmpty ? renderEmpty() : null));
251
+ const tbody = Array.isArray(children) && children.length > 0 ? children : empty;
252
+ return /*#__PURE__*/React.createElement("table", {
253
+ className: classes,
254
+ "data-test": "ring-table"
255
+ }, /*#__PURE__*/React.createElement(Header, headerProps), /*#__PURE__*/React.createElement("tbody", _extends({}, props, {
256
+ "data-test": "ring-table-body"
257
+ }), tbody));
258
+ };
259
+ const renderItem = _ref4 => {
260
+ var _restProps$key;
261
+ let {
262
+ value,
263
+ props = {},
264
+ isDragged
265
+ } = _ref4;
266
+ if (value == null) {
267
+ return null;
268
+ }
269
+ const {
270
+ ref,
271
+ ...restProps
272
+ } = props;
273
+ const row = /*#__PURE__*/React.createElement(RowWithFocusSensorCallbacks, _extends({
274
+ innerRef: ref,
275
+ level: getItemLevel(value),
276
+ item: value,
277
+ showFocus: selection.isFocused(value),
278
+ autofocus: selection.isFocused(value),
279
+ focused: focused && selection.isFocused(value),
280
+ selectable: selectable && isItemSelectable(value),
281
+ selected: selectable && selection.isSelected(value),
282
+ onFocus: this.onRowFocus,
283
+ onSelect: this.onRowSelect,
284
+ onDoubleClick: onItemDoubleClick,
285
+ onClick: onItemClick,
286
+ collapsible: isItemCollapsible(value),
287
+ parentCollapsible: isParentCollapsible(value),
288
+ collapsed: isItemCollapsed(value),
289
+ onCollapse: onItemCollapse,
290
+ onExpand: onItemExpand,
291
+ showDisabledSelection: isDisabledSelectionVisible(value),
292
+ checkboxTooltip: getCheckboxTooltip(value),
293
+ className: classNames(getItemClassName(value), {
294
+ [modules_1db4bbca.draggingRow]: isDragged
295
+ }),
296
+ metaColumnClassName: getMetaColumnClassName(value),
297
+ draggable: draggable,
298
+ alwaysShowDragHandle: alwaysShowDragHandle,
299
+ dragHandleTitle: dragHandleTitle,
300
+ columns: columns,
301
+ "data-test": getItemDataTest(value),
302
+ maxColSpan: maxColSpan
303
+ }, restProps, {
304
+ key: (_restProps$key = restProps.key) !== null && _restProps$key !== void 0 ? _restProps$key : getItemKey(value)
305
+ }));
306
+ return isDragged ? /*#__PURE__*/React.createElement("table", {
307
+ style: {
308
+ ...props.style
309
+ },
310
+ className: modules_1db4bbca.draggingTable
311
+ }, /*#__PURE__*/React.createElement("tbody", null, row)) : row;
312
+ };
313
+ return /*#__PURE__*/React.createElement("div", {
314
+ className: wrapperClasses,
315
+ "data-test": "ring-table-wrapper",
316
+ ref: this.props.innerRef
317
+ }, focused && /*#__PURE__*/React.createElement(Shortcuts, {
318
+ map: this.props.shortcutsMap,
319
+ scope: this.state.shortcutsScope
320
+ }), /*#__PURE__*/React.createElement("div", {
321
+ role: "presentation",
322
+ onMouseDown: this.onMouseDown
323
+ }, draggable ? /*#__PURE__*/React.createElement(List, {
324
+ values: data,
325
+ renderList: renderList,
326
+ renderItem: renderItem,
327
+ onChange: this.onSortEnd
328
+ }) : renderList({
329
+ children: data.map((value, index) => renderItem({
330
+ value,
331
+ index
332
+ }))
333
+ })), loading && /*#__PURE__*/React.createElement("div", {
334
+ className: modules_1db4bbca.loadingOverlay
335
+ }, /*#__PURE__*/React.createElement(Loader, {
336
+ className: loaderClassName
337
+ })));
392
338
  }
393
- });
339
+ }
394
340
  Table.propTypes = {
395
341
  className: PropTypes.string,
396
342
  loaderClassName: PropTypes.string,
@@ -426,7 +372,7 @@ Table.propTypes = {
426
372
  onFocusRestore: PropTypes.func,
427
373
  innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),
428
374
  // selectionShortcutsHOC
429
- selection: PropTypes.instanceOf(Selection).isRequired,
375
+ selection: PropTypes.instanceOf(Selection$1).isRequired,
430
376
  selectable: PropTypes.bool,
431
377
  onSelect: PropTypes.func,
432
378
  shortcutsMap: PropTypes.object,
@@ -435,30 +381,15 @@ Table.propTypes = {
435
381
  remoteSelection: PropTypes.bool,
436
382
  renderEmpty: PropTypes.func
437
383
  };
438
- var getContainer = function getContainer() {
439
- return disableHoverHOC(selectionShortcutsHOC(focusSensorHOC(Table)));
440
- };
384
+ const getContainer = () => disableHoverHOC(selectionShortcutsHOC(focusSensorHOC(Table)));
441
385
  // eslint-disable-next-line react/no-multi-comp
442
- var TableContainer = /*#__PURE__*/function (_Component) {
443
- function TableContainer() {
444
- var _this3;
445
- _classCallCheck(this, TableContainer);
446
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
447
- args[_key2] = arguments[_key2];
448
- }
449
- _this3 = _callSuper(this, TableContainer, [].concat(args));
450
- _defineProperty(_this3, "Table", getContainer());
451
- return _this3;
386
+ class TableContainer extends Component {
387
+ // https://stackoverflow.com/a/53882322/6304152
388
+ static propTypes = getContainer().propTypes;
389
+ Table = getContainer();
390
+ render() {
391
+ return /*#__PURE__*/React.createElement(this.Table, this.props);
452
392
  }
453
- _inherits(TableContainer, _Component);
454
- return _createClass(TableContainer, [{
455
- key: "render",
456
- value: function render() {
457
- return /*#__PURE__*/React.createElement(this.Table, this.props);
458
- }
459
- }]);
460
- }(Component);
461
- // https://stackoverflow.com/a/53882322/6304152
462
- _defineProperty(TableContainer, "propTypes", getContainer().propTypes);
393
+ }
463
394
 
464
395
  export { Table, TableContainer as default };