@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.
Files changed (224) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +567 -1
  2. package/components/_helpers/anchor.js +6 -7
  3. package/components/_helpers/button__classes.js +14 -16
  4. package/components/_helpers/caption.js +20 -14
  5. package/components/_helpers/card.js +105 -95
  6. package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
  7. package/components/_helpers/icon__svg.js +25 -22
  8. package/components/_helpers/input.js +177 -146
  9. package/components/_helpers/query-assist__suggestions.js +90 -74
  10. package/components/_helpers/select__filter.js +69 -48
  11. package/components/_helpers/services-link.js +37 -29
  12. package/components/_helpers/sidebar.js +107 -99
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +40 -31
  15. package/components/_helpers/title.js +72 -57
  16. package/components/alert/alert.js +202 -150
  17. package/components/alert/container.js +41 -32
  18. package/components/alert-service/alert-service.js +170 -105
  19. package/components/analytics/analytics.js +22 -12
  20. package/components/analytics/analytics__custom-plugin.js +75 -54
  21. package/components/auth/auth.js +36 -4
  22. package/components/auth/auth__core.js +1471 -746
  23. package/components/auth/background-flow.js +127 -87
  24. package/components/auth/down-notification.js +73 -30
  25. package/components/auth/iframe-flow.js +133 -75
  26. package/components/auth/request-builder.js +82 -46
  27. package/components/auth/response-parser.js +116 -86
  28. package/components/auth/storage.js +334 -171
  29. package/components/auth/token-validator.js +242 -137
  30. package/components/auth/window-flow.js +134 -92
  31. package/components/auth-dialog/auth-dialog.js +172 -114
  32. package/components/auth-dialog-service/auth-dialog-service.js +31 -8
  33. package/components/avatar/avatar-example-datauri.js +1 -23
  34. package/components/avatar/avatar.js +152 -119
  35. package/components/avatar/fallback-avatar.js +38 -22
  36. package/components/badge/badge.js +45 -35
  37. package/components/button/button.js +107 -86
  38. package/components/button-group/button-group.js +33 -19
  39. package/components/button-set/button-set.js +32 -20
  40. package/components/button-toolbar/button-toolbar.js +31 -19
  41. package/components/caret/caret.js +220 -186
  42. package/components/checkbox/checkbox.js +101 -76
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +132 -35
  45. package/components/code/code.js +166 -92
  46. package/components/collapse/collapse-content.js +64 -42
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +14 -12
  49. package/components/collapse/collapse.js +17 -11
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +3 -1
  52. package/components/confirm/confirm.js +104 -66
  53. package/components/confirm-service/confirm-service.js +59 -37
  54. package/components/content-layout/content-layout.js +64 -43
  55. package/components/content-layout/sidebar.js +1 -0
  56. package/components/contenteditable/contenteditable.js +59 -50
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +182 -129
  59. package/components/data-list/data-list.mock.js +6 -2
  60. package/components/data-list/item.js +170 -143
  61. package/components/data-list/selection.js +136 -76
  62. package/components/data-list/title.js +12 -1
  63. package/components/date-picker/consts.js +26 -19
  64. package/components/date-picker/date-input.js +144 -113
  65. package/components/date-picker/date-picker.js +282 -227
  66. package/components/date-picker/date-popup.js +395 -350
  67. package/components/date-picker/day.js +116 -87
  68. package/components/date-picker/month-names.js +66 -43
  69. package/components/date-picker/month-slider.js +76 -51
  70. package/components/date-picker/month.js +25 -16
  71. package/components/date-picker/months.js +50 -43
  72. package/components/date-picker/weekdays.js +22 -12
  73. package/components/date-picker/years.js +110 -83
  74. package/components/dialog/dialog.js +190 -142
  75. package/components/dialog/dialog__body-scroll-preventer.js +4 -0
  76. package/components/dropdown/anchor.js +9 -0
  77. package/components/dropdown/dropdown.js +213 -182
  78. package/components/dropdown-menu/dropdown-menu.js +97 -71
  79. package/components/editable-heading/editable-heading.js +127 -75
  80. package/components/error-bubble/error-bubble.js +60 -31
  81. package/components/error-message/error-message.js +59 -39
  82. package/components/footer/footer.js +30 -27
  83. package/components/global/compose.js +10 -1
  84. package/components/global/composeRefs.js +12 -7
  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 +14 -6
  88. package/components/global/dom.js +86 -47
  89. package/components/global/focus-sensor-hoc.js +132 -122
  90. package/components/global/fuzzy-highlight.js +36 -22
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +8 -4
  93. package/components/global/inject-styles.js +15 -10
  94. package/components/global/listeners.js +51 -27
  95. package/components/global/memoize.js +12 -6
  96. package/components/global/normalize-indent.js +50 -19
  97. package/components/global/promise-with-timeout.js +8 -6
  98. package/components/global/prop-types.js +5 -3
  99. package/components/global/react-dom-renderer.js +44 -28
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +30 -12
  102. package/components/global/schedule-raf.js +6 -5
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +22 -0
  105. package/components/global/trivial-template-tag.js +10 -3
  106. package/components/global/typescript-utils.js +6 -2
  107. package/components/global/url.js +26 -20
  108. package/components/global/use-event-callback.js +4 -6
  109. package/components/grid/col.js +52 -35
  110. package/components/grid/grid.js +31 -17
  111. package/components/grid/row.js +47 -35
  112. package/components/group/group.js +25 -17
  113. package/components/header/header.js +78 -33
  114. package/components/header/logo.js +36 -20
  115. package/components/header/profile.js +199 -166
  116. package/components/header/services-link.js +4 -0
  117. package/components/header/services.js +116 -73
  118. package/components/header/smart-profile.js +203 -111
  119. package/components/header/smart-services.js +113 -62
  120. package/components/header/tray-icon.js +37 -21
  121. package/components/header/tray.js +32 -21
  122. package/components/heading/heading.js +25 -24
  123. package/components/http/http.js +353 -203
  124. package/components/http/http.mock.js +101 -49
  125. package/components/hub-source/hub-source.js +190 -83
  126. package/components/hub-source/hub-source__user.js +44 -11
  127. package/components/hub-source/hub-source__users-groups.js +65 -37
  128. package/components/i18n/i18n-context.js +10 -7
  129. package/components/i18n/i18n.js +10 -7
  130. package/components/icon/icon.js +93 -76
  131. package/components/icon/icon__svg.js +8 -0
  132. package/components/icon/index.js +8 -0
  133. package/components/input/input.js +13 -0
  134. package/components/island/adaptive-island-hoc.js +43 -30
  135. package/components/island/content.js +132 -115
  136. package/components/island/header.js +70 -57
  137. package/components/island/island.js +40 -28
  138. package/components/island-legacy/content-legacy.js +25 -17
  139. package/components/island-legacy/header-legacy.js +27 -19
  140. package/components/island-legacy/island-legacy.js +25 -17
  141. package/components/link/clickableLink.js +59 -44
  142. package/components/link/link.js +68 -57
  143. package/components/list/consts.js +2 -2
  144. package/components/list/list.js +698 -611
  145. package/components/list/list__custom.js +62 -44
  146. package/components/list/list__hint.js +19 -10
  147. package/components/list/list__item.js +174 -133
  148. package/components/list/list__link.js +50 -37
  149. package/components/list/list__separator.js +24 -14
  150. package/components/list/list__title.js +32 -22
  151. package/components/list/list__users-groups-source.js +126 -54
  152. package/components/loader/loader.js +74 -43
  153. package/components/loader/loader__core.js +263 -198
  154. package/components/loader-inline/loader-inline.js +35 -23
  155. package/components/loader-screen/loader-screen.js +46 -25
  156. package/components/login-dialog/login-dialog.js +158 -111
  157. package/components/login-dialog/service.js +34 -8
  158. package/components/markdown/markdown.js +23 -15
  159. package/components/message/message.js +203 -161
  160. package/components/old-browsers-message/old-browsers-message.js +18 -11
  161. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  162. package/components/old-browsers-message/white-list.js +16 -8
  163. package/components/pager/pager.js +271 -212
  164. package/components/panel/panel.js +25 -17
  165. package/components/permissions/permissions.js +172 -127
  166. package/components/permissions/permissions__cache.js +224 -194
  167. package/components/popup/popup.consts.js +1 -1
  168. package/components/popup/popup.js +343 -284
  169. package/components/popup/popup.target.js +8 -9
  170. package/components/popup/position.js +106 -96
  171. package/components/popup-menu/popup-menu.js +81 -44
  172. package/components/progress-bar/progress-bar.js +104 -87
  173. package/components/query-assist/query-assist.js +916 -838
  174. package/components/query-assist/query-assist__suggestions.js +30 -1
  175. package/components/radio/radio.js +34 -19
  176. package/components/radio/radio__item.js +69 -52
  177. package/components/select/select.js +957 -852
  178. package/components/select/select__filter.js +30 -0
  179. package/components/select/select__popup.js +487 -373
  180. package/components/shortcuts/core.js +217 -166
  181. package/components/shortcuts/shortcut-title.js +11 -6
  182. package/components/shortcuts/shortcuts-hoc.js +45 -19
  183. package/components/shortcuts/shortcuts.js +75 -50
  184. package/components/slider/slider.js +122 -99
  185. package/components/slider/slider.utils.js +24 -14
  186. package/components/storage/storage.js +33 -4
  187. package/components/storage/storage__fallback.js +224 -149
  188. package/components/storage/storage__local.js +153 -90
  189. package/components/tab-trap/tab-trap.js +153 -122
  190. package/components/table/cell.js +26 -14
  191. package/components/table/disable-hover-hoc.js +51 -33
  192. package/components/table/header-cell.js +89 -64
  193. package/components/table/header.js +132 -104
  194. package/components/table/multitable.js +125 -107
  195. package/components/table/row-with-focus-sensor.js +69 -25
  196. package/components/table/row.js +216 -175
  197. package/components/table/selection-adapter.js +3 -1
  198. package/components/table/selection-shortcuts-hoc.js +181 -180
  199. package/components/table/selection.js +226 -156
  200. package/components/table/smart-table.js +88 -50
  201. package/components/table/table.js +358 -289
  202. package/components/tabs/collapsible-more.js +79 -46
  203. package/components/tabs/collapsible-tab.js +38 -31
  204. package/components/tabs/collapsible-tabs.js +153 -88
  205. package/components/tabs/custom-item.js +2 -4
  206. package/components/tabs/dumb-tabs.js +117 -74
  207. package/components/tabs/smart-tabs.js +69 -29
  208. package/components/tabs/tab-link.js +5 -1
  209. package/components/tabs/tab.js +31 -19
  210. package/components/tabs/tabs.js +31 -0
  211. package/components/tag/tag.js +173 -133
  212. package/components/tags-input/tags-input.js +427 -329
  213. package/components/tags-list/tags-list.js +78 -57
  214. package/components/text/text.js +39 -28
  215. package/components/toggle/toggle.js +70 -56
  216. package/components/tooltip/tooltip.js +190 -146
  217. package/components/user-agreement/service.js +371 -228
  218. package/components/user-agreement/toolbox.eula.js +1 -160
  219. package/components/user-agreement/user-agreement.js +120 -85
  220. package/components/user-card/card.js +29 -0
  221. package/components/user-card/smart-user-card-tooltip.js +111 -51
  222. package/components/user-card/tooltip.js +84 -47
  223. package/components/user-card/user-card.js +29 -0
  224. package/package.json +1 -1
@@ -1,13 +1,15 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import React, { Component, PureComponent } from 'react';
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';
3
5
  import PropTypes from 'prop-types';
4
6
  import classNames from 'classnames';
5
- import { arrayMove, List } from 'react-movable';
7
+ import { List, arrayMove } from 'react-movable';
6
8
  import focusSensorHOC from '../global/focus-sensor-hoc.js';
7
9
  import getUID from '../global/get-uid.js';
8
10
  import Shortcuts from '../shortcuts/shortcuts.js';
9
11
  import Loader from '../loader/loader.js';
10
- import Selection$1 from './selection.js';
12
+ import Selection from './selection.js';
11
13
  import Header from './header.js';
12
14
  import { m as modules_1db4bbca } from '../_helpers/table.js';
13
15
  import selectionShortcutsHOC from './selection-shortcuts-hoc.js';
@@ -15,13 +17,33 @@ import disableHoverHOC from './disable-hover-hoc.js';
15
17
  import RowWithFocusSensorCallbacks from './row-with-focus-sensor.js';
16
18
  import '../global/prop-types.js';
17
19
  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';
18
23
  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';
19
32
  import 'combokeys';
20
33
  import '../global/sniffer.js';
21
34
  import 'sniffr';
22
35
  import '../global/data-tests.js';
36
+ import 'core-js/modules/es.array.reduce.js';
37
+ import 'core-js/modules/es.object.entries.js';
23
38
  import '../loader/loader__core.js';
39
+ import 'core-js/modules/es.array.fill.js';
40
+ import 'core-js/modules/es.array.filter.js';
24
41
  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';
25
47
  import '../checkbox/checkbox.js';
26
48
  import '@jetbrains/icons/checkmark-12px';
27
49
  import '@jetbrains/icons/remove-12px';
@@ -29,7 +51,11 @@ import '../icon/icon.js';
29
51
  import 'util-deprecate';
30
52
  import '../icon/icon__constants.js';
31
53
  import '../_helpers/icon__svg.js';
54
+ import 'core-js/modules/es.string.replace.js';
55
+ import 'core-js/modules/es.string.starts-with.js';
32
56
  import '../global/memoize.js';
57
+ import 'core-js/modules/es.map.js';
58
+ import 'core-js/modules/es.weak-map.js';
33
59
  import './header-cell.js';
34
60
  import '@jetbrains/icons/unsorted-10px';
35
61
  import '@jetbrains/icons/chevron-10px';
@@ -47,296 +73,324 @@ import 'react-dom';
47
73
  import '../global/schedule-raf.js';
48
74
  import '../tab-trap/tab-trap.js';
49
75
  import '../popup/position.js';
76
+ import 'core-js/modules/es.array.sort.js';
50
77
  import '../popup/popup.consts.js';
51
78
  import '../popup/popup.target.js';
52
79
  import './cell.js';
53
80
 
81
+ var _excluded = ["ref"];
54
82
  /**
55
83
  * Interactive table with selection and keyboard navigation support.
56
84
  */
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);
90
- }
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
- }));
103
- }
104
- if (!this.props.selectable && this.props.selectable !== selectable) {
105
- onSelect(selection.resetSelection());
106
- }
107
- }
108
- componentWillUnmount() {
109
- document.removeEventListener('mouseup', this.onMouseUp);
110
- }
111
- onMouseDown = e => {
112
- if (e.shiftKey) {
113
- this.setState({
114
- userSelectNone: true
115
- });
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];
116
91
  }
117
- };
118
- onMouseUp = () => {
119
- if (this.state.userSelectNone) {
120
- this.setState({
121
- userSelectNone: false
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
122
135
  });
123
- }
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
136
  });
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
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();
235
148
  });
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
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);
241
155
  });
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;
156
+ return _this;
157
+ }
158
+ _inherits(Table, _PureComponent);
159
+ return _createClass(Table, [{
160
+ key: "componentDidMount",
161
+ value: function componentDidMount() {
162
+ document.addEventListener('mouseup', this.onMouseUp);
163
+ }
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());
268
179
  }
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
- })));
180
+ }
181
+ }, {
182
+ key: "componentWillUnmount",
183
+ value: function componentWillUnmount() {
184
+ document.removeEventListener('mouseup', this.onMouseUp);
185
+ }
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
245
+ });
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
251
+ });
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
+ }
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;
338
392
  }
339
- }
393
+ });
340
394
  Table.propTypes = {
341
395
  className: PropTypes.string,
342
396
  loaderClassName: PropTypes.string,
@@ -372,7 +426,7 @@ Table.propTypes = {
372
426
  onFocusRestore: PropTypes.func,
373
427
  innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),
374
428
  // selectionShortcutsHOC
375
- selection: PropTypes.instanceOf(Selection$1).isRequired,
429
+ selection: PropTypes.instanceOf(Selection).isRequired,
376
430
  selectable: PropTypes.bool,
377
431
  onSelect: PropTypes.func,
378
432
  shortcutsMap: PropTypes.object,
@@ -381,15 +435,30 @@ Table.propTypes = {
381
435
  remoteSelection: PropTypes.bool,
382
436
  renderEmpty: PropTypes.func
383
437
  };
384
- const getContainer = () => disableHoverHOC(selectionShortcutsHOC(focusSensorHOC(Table)));
438
+ var getContainer = function getContainer() {
439
+ return disableHoverHOC(selectionShortcutsHOC(focusSensorHOC(Table)));
440
+ };
385
441
  // eslint-disable-next-line react/no-multi-comp
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);
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;
392
452
  }
393
- }
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);
394
463
 
395
464
  export { Table, TableContainer as default };