@jetbrains/ring-ui-built 6.0.30 → 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 (226) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +7 -629
  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/style.css +1 -1
  191. package/components/tab-trap/tab-trap.js +122 -153
  192. package/components/table/cell.js +14 -26
  193. package/components/table/disable-hover-hoc.js +33 -51
  194. package/components/table/header-cell.js +64 -89
  195. package/components/table/header.js +104 -132
  196. package/components/table/multitable.js +107 -125
  197. package/components/table/row-with-focus-sensor.js +25 -69
  198. package/components/table/row.js +175 -216
  199. package/components/table/selection-adapter.js +1 -3
  200. package/components/table/selection-shortcuts-hoc.js +180 -181
  201. package/components/table/selection.js +156 -226
  202. package/components/table/smart-table.js +50 -88
  203. package/components/table/table.js +289 -358
  204. package/components/tabs/collapsible-more.js +46 -79
  205. package/components/tabs/collapsible-tab.js +31 -38
  206. package/components/tabs/collapsible-tabs.js +88 -153
  207. package/components/tabs/custom-item.js +4 -2
  208. package/components/tabs/dumb-tabs.js +74 -117
  209. package/components/tabs/smart-tabs.js +29 -69
  210. package/components/tabs/tab-link.js +1 -5
  211. package/components/tabs/tab.js +19 -31
  212. package/components/tabs/tabs.js +0 -31
  213. package/components/tag/tag.js +133 -173
  214. package/components/tags-input/tags-input.js +329 -427
  215. package/components/tags-list/tags-list.js +57 -78
  216. package/components/text/text.js +28 -39
  217. package/components/toggle/toggle.js +56 -70
  218. package/components/tooltip/tooltip.js +146 -190
  219. package/components/user-agreement/service.js +228 -371
  220. package/components/user-agreement/toolbox.eula.js +160 -1
  221. package/components/user-agreement/user-agreement.js +85 -120
  222. package/components/user-card/card.js +0 -29
  223. package/components/user-card/smart-user-card-tooltip.js +51 -111
  224. package/components/user-card/tooltip.js +47 -84
  225. package/components/user-card/user-card.js +0 -29
  226. package/package.json +1 -1
@@ -1,8 +1,4 @@
1
- import { _ as _defineProperty, a as _inherits, b as _createClass, e as _extends, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.array.concat.js';
3
- import 'core-js/modules/es.array.find.js';
4
- import 'core-js/modules/es.array.map.js';
5
- import 'core-js/modules/es.object.to-string.js';
1
+ import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
6
2
  import React, { PureComponent } from 'react';
7
3
  import PropTypes from 'prop-types';
8
4
  import classNames from 'classnames';
@@ -23,25 +19,8 @@ import '../_helpers/button__classes.js';
23
19
  import '../icon/icon__constants.js';
24
20
  import 'util-deprecate';
25
21
  import '../_helpers/icon__svg.js';
26
- import 'core-js/modules/es.regexp.exec.js';
27
- import 'core-js/modules/es.string.replace.js';
28
- import 'core-js/modules/es.string.starts-with.js';
29
- import 'core-js/modules/es.array.iterator.js';
30
- import 'core-js/modules/es.map.js';
31
- import 'core-js/modules/es.weak-map.js';
32
- import 'core-js/modules/web.dom-collections.iterator.js';
33
- import 'core-js/modules/es.string.split.js';
34
22
  import '../global/data-tests.js';
35
- import 'core-js/modules/es.array.reduce.js';
36
- import 'core-js/modules/es.object.entries.js';
37
23
  import '../_helpers/caption.js';
38
- import 'core-js/modules/es.array.filter.js';
39
- import 'core-js/modules/es.array.index-of.js';
40
- import 'core-js/modules/es.array.slice.js';
41
- import 'core-js/modules/es.object.assign.js';
42
- import 'core-js/modules/es.object.values.js';
43
- import 'core-js/modules/es.string.trim.js';
44
- import 'core-js/modules/web.dom-collections.for-each.js';
45
24
  import '@jetbrains/icons/chevron-down';
46
25
  import '@jetbrains/icons/close-12px';
47
26
  import 'deep-equal';
@@ -50,33 +29,22 @@ import '../global/typescript-utils.js';
50
29
  import '../_helpers/anchor.js';
51
30
  import '../avatar/avatar.js';
52
31
  import '../global/url.js';
53
- import 'core-js/modules/es.string.match.js';
54
32
  import '../global/dom.js';
55
- import 'core-js/modules/es.set.js';
56
33
  import '../avatar/fallback-avatar.js';
57
- import 'core-js/modules/es.array.from.js';
58
34
  import '../global/get-uid.js';
59
- import 'core-js/modules/es.regexp.to-string.js';
60
35
  import '../popup/popup.js';
61
36
  import 'react-dom';
62
37
  import '../global/schedule-raf.js';
63
38
  import '../shortcuts/shortcuts.js';
64
39
  import '../shortcuts/core.js';
65
- import 'core-js/modules/es.array.find-index.js';
66
- import 'core-js/modules/es.array.includes.js';
67
- import 'core-js/modules/es.array.splice.js';
68
- import 'core-js/modules/es.string.includes.js';
69
40
  import 'combokeys';
70
41
  import '../global/sniffer.js';
71
42
  import 'sniffr';
72
43
  import '../tab-trap/tab-trap.js';
73
44
  import '../popup/position.js';
74
- import 'core-js/modules/es.array.sort.js';
75
45
  import '../popup/popup.consts.js';
76
46
  import '../popup/popup.target.js';
77
47
  import '../list/list.js';
78
- import 'core-js/modules/es.symbol.js';
79
- import 'core-js/modules/es.symbol.description.js';
80
48
  import 'react-virtualized/dist/es/List';
81
49
  import 'react-virtualized/dist/es/AutoSizer';
82
50
  import 'react-virtualized/dist/es/WindowScroller';
@@ -115,257 +83,230 @@ import '../i18n/i18n.js';
115
83
 
116
84
  var modules_1a5f0d42 = {"light":"light_rui_2ac4","pager":"pager_rui_ad65","links":"links_rui_ad65","link":"link_rui_ad65","linkDisabled":"linkDisabled_rui_ad65"};
117
85
 
118
- var Pager = /*#__PURE__*/function (_PureComponent) {
119
- function Pager() {
120
- var _this;
121
- _classCallCheck(this, Pager);
122
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
123
- args[_key] = arguments[_key];
124
- }
125
- _this = _callSuper(this, Pager, [].concat(args));
126
- _defineProperty(_this, "handlePageSizeChange", function (item) {
127
- if (item != null) {
128
- _this.props.onPageSizeChange(item.key);
129
- }
130
- });
131
- _defineProperty(_this, "handlePrevClick", function () {
132
- var currentPage = _this.props.currentPage;
133
- if (currentPage !== 1) {
134
- var _this$props$onPageCha, _this$props;
135
- var prevPage = currentPage - 1;
136
- (_this$props$onPageCha = (_this$props = _this.props).onPageChange) === null || _this$props$onPageCha === void 0 || _this$props$onPageCha.call(_this$props, prevPage);
137
- }
138
- });
139
- _defineProperty(_this, "handleNextClick", function () {
140
- var _this$props2 = _this.props,
141
- currentPage = _this$props2.currentPage,
142
- onLoadPage = _this$props2.onLoadPage;
143
- var nextPage = currentPage + 1;
144
- var total = _this.getTotalPages();
145
- if (currentPage !== total) {
146
- var _this$props$onPageCha2, _this$props3;
147
- (_this$props$onPageCha2 = (_this$props3 = _this.props).onPageChange) === null || _this$props$onPageCha2 === void 0 || _this$props$onPageCha2.call(_this$props3, nextPage);
148
- } else if (_this.props.openTotal) {
149
- onLoadPage(nextPage);
150
- }
151
- });
152
- _defineProperty(_this, "handlePageChange", memoize(function (i) {
153
- return function (event) {
154
- var _this$props$onPageCha3, _this$props4;
155
- (_this$props$onPageCha3 = (_this$props4 = _this.props).onPageChange) === null || _this$props$onPageCha3 === void 0 || _this$props$onPageCha3.call(_this$props4, i, event);
156
- };
157
- }));
158
- _defineProperty(_this, "handleLoadMore", memoize(function (i) {
159
- return function () {
160
- _this.props.onLoadPage(i);
161
- };
162
- }));
163
- return _this;
164
- }
165
- _inherits(Pager, _PureComponent);
166
- return _createClass(Pager, [{
167
- key: "getSelectOptions",
168
- value: function getSelectOptions() {
169
- var _this2 = this;
170
- var _this$props5 = this.props,
171
- pageSize = _this$props5.pageSize,
172
- pageSizes = _this$props5.pageSizes;
173
- var translate = this.context.translate;
174
- var data = pageSizes.map(function (size) {
175
- var _this2$props$translat, _this2$props$translat2;
176
- return {
177
- key: size,
178
- label: "".concat(size, " ").concat((_this2$props$translat = (_this2$props$translat2 = _this2.props.translations) === null || _this2$props$translat2 === void 0 ? void 0 : _this2$props$translat2.perPage) !== null && _this2$props$translat !== void 0 ? _this2$props$translat : translate('perPage'))
179
- };
180
- });
181
- var selected = data.find(function (it) {
182
- return it.key === pageSize;
183
- });
86
+ class Pager extends PureComponent {
87
+ static defaultProps = {
88
+ currentPage: 1,
89
+ pageSize: 50,
90
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
91
+ pageSizes: [20, 50, 100],
92
+ visiblePagesLimit: 7,
93
+ disablePageSizeSelector: false,
94
+ openTotal: false,
95
+ canLoadLastPageWithOpenTotal: false,
96
+ loader: false,
97
+ loaderNavigation: false,
98
+ onPageSizeChange: () => {},
99
+ onLoadPage: () => {}
100
+ };
101
+ static contextType = I18nContext;
102
+ getSelectOptions() {
103
+ const {
104
+ pageSize,
105
+ pageSizes
106
+ } = this.props;
107
+ const {
108
+ translate
109
+ } = this.context;
110
+ const data = pageSizes.map(size => {
111
+ var _this$props$translati;
184
112
  return {
185
- selected,
186
- data
113
+ key: size,
114
+ label: `${size} ${(_this$props$translati = this.props.translations?.perPage) !== null && _this$props$translati !== void 0 ? _this$props$translati : translate('perPage')}`
187
115
  };
116
+ });
117
+ const selected = data.find(it => it.key === pageSize);
118
+ return {
119
+ selected,
120
+ data
121
+ };
122
+ }
123
+ getTotalPages() {
124
+ const {
125
+ total,
126
+ pageSize
127
+ } = this.props;
128
+ return Math.ceil(total / pageSize);
129
+ }
130
+ handlePageSizeChange = item => {
131
+ if (item != null) {
132
+ this.props.onPageSizeChange(item.key);
188
133
  }
189
- }, {
190
- key: "getTotalPages",
191
- value: function getTotalPages() {
192
- var _this$props6 = this.props,
193
- total = _this$props6.total,
194
- pageSize = _this$props6.pageSize;
195
- return Math.ceil(total / pageSize);
196
- }
197
- }, {
198
- key: "getButton",
199
- value: function getButton(page, content, key, active) {
200
- return /*#__PURE__*/React.createElement(Button, _extends({
201
- href: this.generateHref(page),
202
- key: key,
203
- active: active,
204
- disabled: this.props.loader && !active && !this.props.loaderNavigation,
205
- loader: this.props.loader && active
206
- }, this.getClickProps(this.handlePageChange(page))), content);
207
- }
208
- }, {
209
- key: "getClickProps",
210
- value: function getClickProps(onClick) {
211
- var _this$props7 = this.props,
212
- hrefFunc = _this$props7.hrefFunc,
213
- onPageChange = _this$props7.onPageChange;
214
- if (!onPageChange) {
215
- return {};
216
- } else if (hrefFunc) {
217
- return {
218
- onPlainLeftClick: onClick
219
- };
220
- } else {
221
- return {
222
- onClick
223
- };
224
- }
134
+ };
135
+ handlePrevClick = () => {
136
+ const {
137
+ currentPage
138
+ } = this.props;
139
+ if (currentPage !== 1) {
140
+ const prevPage = currentPage - 1;
141
+ this.props.onPageChange?.(prevPage);
225
142
  }
226
- }, {
227
- key: "getPageSizeSelector",
228
- value: function getPageSizeSelector() {
229
- var selectOptions = this.getSelectOptions();
230
- return !this.props.disablePageSizeSelector && /*#__PURE__*/React.createElement("div", {
231
- "data-test": "ring-pager-page-size-selector",
232
- style: {
233
- float: 'right'
234
- }
235
- }, /*#__PURE__*/React.createElement(Select, {
236
- data: selectOptions.data,
237
- selected: selectOptions.selected,
238
- onSelect: this.handlePageSizeChange,
239
- type: Select.Type.INLINE,
240
- disabled: this.props.loader
241
- }));
143
+ };
144
+ handleNextClick = () => {
145
+ const {
146
+ currentPage,
147
+ onLoadPage
148
+ } = this.props;
149
+ const nextPage = currentPage + 1;
150
+ const total = this.getTotalPages();
151
+ if (currentPage !== total) {
152
+ this.props.onPageChange?.(nextPage);
153
+ } else if (this.props.openTotal) {
154
+ onLoadPage(nextPage);
242
155
  }
243
- }, {
244
- key: "getPagerLinks",
245
- value: function getPagerLinks() {
246
- var _this$props$translati, _this$props$translati2, _this$props$translati3, _this$props$translati4;
247
- var translate = this.context.translate;
248
- var prevLinkAvailable = this.props.currentPage !== 1;
249
- var nextLinkAvailable = this.props.openTotal || this.props.currentPage !== this.getTotalPages();
250
- var nextIcon = /*#__PURE__*/React.createElement(Icon, {
251
- glyph: chevronRightIcon,
252
- key: "icon"
253
- });
254
- var prevIcon = /*#__PURE__*/React.createElement(Icon, {
255
- glyph: chevronLeftIcon,
256
- key: "icon"
257
- });
258
- var prevText = (_this$props$translati = (_this$props$translati2 = this.props.translations) === null || _this$props$translati2 === void 0 ? void 0 : _this$props$translati2.previousPage) !== null && _this$props$translati !== void 0 ? _this$props$translati : translate('previousPage');
259
- var nextText = (_this$props$translati3 = (_this$props$translati4 = this.props.translations) === null || _this$props$translati4 === void 0 ? void 0 : _this$props$translati4.nextPage) !== null && _this$props$translati3 !== void 0 ? _this$props$translati3 : translate('nextPage');
260
- var nextLinkContent = [/*#__PURE__*/React.createElement("span", {
261
- key: "text"
262
- }, nextText), nextIcon];
263
- var prevLinkContent = [prevIcon, /*#__PURE__*/React.createElement("span", {
264
- key: "text"
265
- }, prevText)];
266
- var prevLinkHref = this.generateHref(this.props.currentPage - 1);
267
- var nextLinkHref = this.generateHref(this.props.currentPage + 1);
268
- var disabledLinkClasses = classNames({
269
- [modules_1a5f0d42.link]: true,
270
- [modules_1a5f0d42.linkDisabled]: true
271
- });
272
- return /*#__PURE__*/React.createElement("div", {
273
- className: modules_1a5f0d42.links
274
- }, prevLinkAvailable && (!this.props.loader || this.props.loaderNavigation) ? /*#__PURE__*/React.createElement(Link, _extends({
275
- href: prevLinkHref,
276
- className: modules_1a5f0d42.link
277
- }, this.getClickProps(this.handlePrevClick)), prevLinkContent) : /*#__PURE__*/React.createElement("span", {
278
- className: disabledLinkClasses
279
- }, prevIcon, /*#__PURE__*/React.createElement("span", {
280
- key: "text"
281
- }, prevText)), nextLinkAvailable && (!this.props.loader || this.props.loaderNavigation) ? /*#__PURE__*/React.createElement(Link, _extends({
282
- href: nextLinkHref,
283
- className: modules_1a5f0d42.link
284
- }, this.getClickProps(this.handleNextClick)), nextLinkContent) : /*#__PURE__*/React.createElement("span", {
285
- className: disabledLinkClasses
286
- }, /*#__PURE__*/React.createElement("span", {
287
- key: "text"
288
- }, nextText), nextIcon));
156
+ };
157
+ handlePageChange = memoize(i => event => {
158
+ this.props.onPageChange?.(i, event);
159
+ });
160
+ handleLoadMore = memoize(i => () => {
161
+ this.props.onLoadPage(i);
162
+ });
163
+ getButton(page, content, key, active) {
164
+ return /*#__PURE__*/React.createElement(Button, _extends({
165
+ href: this.generateHref(page),
166
+ key: key,
167
+ active: active,
168
+ disabled: this.props.loader && !active && !this.props.loaderNavigation,
169
+ loader: this.props.loader && active
170
+ }, this.getClickProps(this.handlePageChange(page))), content);
171
+ }
172
+ getClickProps(onClick) {
173
+ const {
174
+ hrefFunc,
175
+ onPageChange
176
+ } = this.props;
177
+ if (!onPageChange) {
178
+ return {};
179
+ } else if (hrefFunc) {
180
+ return {
181
+ onPlainLeftClick: onClick
182
+ };
183
+ } else {
184
+ return {
185
+ onClick
186
+ };
289
187
  }
290
- }, {
291
- key: "generateHref",
292
- value: function generateHref(page) {
293
- if (this.props.hrefFunc === undefined) {
294
- return undefined;
188
+ }
189
+ getPageSizeSelector() {
190
+ const selectOptions = this.getSelectOptions();
191
+ return !this.props.disablePageSizeSelector && /*#__PURE__*/React.createElement("div", {
192
+ "data-test": "ring-pager-page-size-selector",
193
+ style: {
194
+ float: 'right'
295
195
  }
296
- var pageSize = this.props.disablePageSizeSelector ? undefined : this.props.pageSize;
297
- return this.props.hrefFunc(page, pageSize);
196
+ }, /*#__PURE__*/React.createElement(Select, {
197
+ data: selectOptions.data,
198
+ selected: selectOptions.selected,
199
+ onSelect: this.handlePageSizeChange,
200
+ type: Select.Type.INLINE,
201
+ disabled: this.props.loader
202
+ }));
203
+ }
204
+ getPagerLinks() {
205
+ var _this$props$translati2, _this$props$translati3;
206
+ const {
207
+ translate
208
+ } = this.context;
209
+ const prevLinkAvailable = this.props.currentPage !== 1;
210
+ const nextLinkAvailable = this.props.openTotal || this.props.currentPage !== this.getTotalPages();
211
+ const nextIcon = /*#__PURE__*/React.createElement(Icon, {
212
+ glyph: chevronRightIcon,
213
+ key: "icon"
214
+ });
215
+ const prevIcon = /*#__PURE__*/React.createElement(Icon, {
216
+ glyph: chevronLeftIcon,
217
+ key: "icon"
218
+ });
219
+ const prevText = (_this$props$translati2 = this.props.translations?.previousPage) !== null && _this$props$translati2 !== void 0 ? _this$props$translati2 : translate('previousPage');
220
+ const nextText = (_this$props$translati3 = this.props.translations?.nextPage) !== null && _this$props$translati3 !== void 0 ? _this$props$translati3 : translate('nextPage');
221
+ const nextLinkContent = [/*#__PURE__*/React.createElement("span", {
222
+ key: "text"
223
+ }, nextText), nextIcon];
224
+ const prevLinkContent = [prevIcon, /*#__PURE__*/React.createElement("span", {
225
+ key: "text"
226
+ }, prevText)];
227
+ const prevLinkHref = this.generateHref(this.props.currentPage - 1);
228
+ const nextLinkHref = this.generateHref(this.props.currentPage + 1);
229
+ const disabledLinkClasses = classNames({
230
+ [modules_1a5f0d42.link]: true,
231
+ [modules_1a5f0d42.linkDisabled]: true
232
+ });
233
+ return /*#__PURE__*/React.createElement("div", {
234
+ className: modules_1a5f0d42.links
235
+ }, prevLinkAvailable && (!this.props.loader || this.props.loaderNavigation) ? /*#__PURE__*/React.createElement(Link, _extends({
236
+ href: prevLinkHref,
237
+ className: modules_1a5f0d42.link
238
+ }, this.getClickProps(this.handlePrevClick)), prevLinkContent) : /*#__PURE__*/React.createElement("span", {
239
+ className: disabledLinkClasses
240
+ }, prevIcon, /*#__PURE__*/React.createElement("span", {
241
+ key: "text"
242
+ }, prevText)), nextLinkAvailable && (!this.props.loader || this.props.loaderNavigation) ? /*#__PURE__*/React.createElement(Link, _extends({
243
+ href: nextLinkHref,
244
+ className: modules_1a5f0d42.link
245
+ }, this.getClickProps(this.handleNextClick)), nextLinkContent) : /*#__PURE__*/React.createElement("span", {
246
+ className: disabledLinkClasses
247
+ }, /*#__PURE__*/React.createElement("span", {
248
+ key: "text"
249
+ }, nextText), nextIcon));
250
+ }
251
+ generateHref(page) {
252
+ if (this.props.hrefFunc === undefined) {
253
+ return undefined;
298
254
  }
299
- }, {
300
- key: "getPagerContent",
301
- value: function getPagerContent() {
302
- var _this$props$translati5, _this$props$translati6, _this$props$translati7, _this$props$translati8;
303
- var _this$props8 = this.props,
304
- currentPage = _this$props8.currentPage,
305
- visiblePagesLimit = _this$props8.visiblePagesLimit;
306
- var totalPages = this.getTotalPages();
307
- var translate = this.context.translate;
308
- if (totalPages < this.props.currentPage) {
309
- var _this$props$onPageCha4, _this$props9;
310
- (_this$props$onPageCha4 = (_this$props9 = this.props).onPageChange) === null || _this$props$onPageCha4 === void 0 || _this$props$onPageCha4.call(_this$props9, totalPages);
255
+ const pageSize = this.props.disablePageSizeSelector ? undefined : this.props.pageSize;
256
+ return this.props.hrefFunc(page, pageSize);
257
+ }
258
+ getPagerContent() {
259
+ var _this$props$translati4, _this$props$translati5;
260
+ const {
261
+ currentPage,
262
+ visiblePagesLimit
263
+ } = this.props;
264
+ const totalPages = this.getTotalPages();
265
+ const {
266
+ translate
267
+ } = this.context;
268
+ if (totalPages < this.props.currentPage) {
269
+ this.props.onPageChange?.(totalPages);
270
+ }
271
+ let start = 1;
272
+ let end = totalPages;
273
+ if (totalPages >= visiblePagesLimit) {
274
+ const leftHalfFrameSize = Math.ceil(visiblePagesLimit / 2) - 1;
275
+ const rightHalfFrameSize = visiblePagesLimit - leftHalfFrameSize - 1;
276
+ start = currentPage - leftHalfFrameSize;
277
+ end = currentPage + rightHalfFrameSize;
278
+ if (start < 1) {
279
+ const tail = 1 - start;
280
+ start += tail;
281
+ end += tail;
311
282
  }
312
- var start = 1;
313
- var end = totalPages;
314
- if (totalPages >= visiblePagesLimit) {
315
- var leftHalfFrameSize = Math.ceil(visiblePagesLimit / 2) - 1;
316
- var rightHalfFrameSize = visiblePagesLimit - leftHalfFrameSize - 1;
317
- start = currentPage - leftHalfFrameSize;
318
- end = currentPage + rightHalfFrameSize;
319
- if (start < 1) {
320
- var tail = 1 - start;
321
- start += tail;
322
- end += tail;
323
- }
324
- if (end > totalPages) {
325
- var _tail = end - totalPages;
326
- start -= _tail;
327
- end -= _tail;
328
- }
329
- if (start < 1) {
330
- start += 1 - start;
331
- }
283
+ if (end > totalPages) {
284
+ const tail = end - totalPages;
285
+ start -= tail;
286
+ end -= tail;
332
287
  }
333
- var buttons = [];
334
- for (var i = start; i <= end; i++) {
335
- buttons.push(this.getButton(i, i, i, i === currentPage));
288
+ if (start < 1) {
289
+ start += 1 - start;
336
290
  }
337
- var lastPageButtonAvailable = end < totalPages && !this.props.openTotal || this.props.openTotal && this.props.canLoadLastPageWithOpenTotal;
338
- return /*#__PURE__*/React.createElement("div", null, this.getPagerLinks(), /*#__PURE__*/React.createElement(ButtonToolbar, null, start > 1 && this.getButton(1, (_this$props$translati5 = (_this$props$translati6 = this.props.translations) === null || _this$props$translati6 === void 0 ? void 0 : _this$props$translati6.firstPage) !== null && _this$props$translati5 !== void 0 ? _this$props$translati5 : translate('firstPage')), /*#__PURE__*/React.createElement(ButtonGroup, null, start > 1 && this.getButton(start - 1, '...'), buttons, end < totalPages && this.getButton(end + 1, '...'), end === totalPages && this.props.openTotal && /*#__PURE__*/React.createElement(Button, _extends({
339
- href: this.generateHref(end + 1),
340
- disabled: this.props.loader
341
- }, this.getClickProps(this.handleLoadMore(end + 1))), '...')), lastPageButtonAvailable && this.getButton(this.props.openTotal ? -1 : totalPages, (_this$props$translati7 = (_this$props$translati8 = this.props.translations) === null || _this$props$translati8 === void 0 ? void 0 : _this$props$translati8.lastPage) !== null && _this$props$translati7 !== void 0 ? _this$props$translati7 : translate('lastPage'))), this.getPageSizeSelector());
342
291
  }
343
- }, {
344
- key: "render",
345
- value: function render() {
346
- var classes = classNames(modules_1a5f0d42.pager, this.props.className);
347
- return /*#__PURE__*/React.createElement("div", {
348
- "data-test": "ring-pager",
349
- className: classes
350
- }, this.getTotalPages() > 1 || this.props.openTotal ? this.getPagerContent() : this.getPageSizeSelector());
292
+ const buttons = [];
293
+ for (let i = start; i <= end; i++) {
294
+ buttons.push(this.getButton(i, i, i, i === currentPage));
351
295
  }
352
- }]);
353
- }(PureComponent);
354
- _defineProperty(Pager, "defaultProps", {
355
- currentPage: 1,
356
- pageSize: 50,
357
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
358
- pageSizes: [20, 50, 100],
359
- visiblePagesLimit: 7,
360
- disablePageSizeSelector: false,
361
- openTotal: false,
362
- canLoadLastPageWithOpenTotal: false,
363
- loader: false,
364
- loaderNavigation: false,
365
- onPageSizeChange: function onPageSizeChange() {},
366
- onLoadPage: function onLoadPage() {}
367
- });
368
- _defineProperty(Pager, "contextType", I18nContext);
296
+ const lastPageButtonAvailable = end < totalPages && !this.props.openTotal || this.props.openTotal && this.props.canLoadLastPageWithOpenTotal;
297
+ return /*#__PURE__*/React.createElement("div", null, this.getPagerLinks(), /*#__PURE__*/React.createElement(ButtonToolbar, null, start > 1 && this.getButton(1, (_this$props$translati4 = this.props.translations?.firstPage) !== null && _this$props$translati4 !== void 0 ? _this$props$translati4 : translate('firstPage')), /*#__PURE__*/React.createElement(ButtonGroup, null, start > 1 && this.getButton(start - 1, '...'), buttons, end < totalPages && this.getButton(end + 1, '...'), end === totalPages && this.props.openTotal && /*#__PURE__*/React.createElement(Button, _extends({
298
+ href: this.generateHref(end + 1),
299
+ disabled: this.props.loader
300
+ }, this.getClickProps(this.handleLoadMore(end + 1))), '...')), lastPageButtonAvailable && this.getButton(this.props.openTotal ? -1 : totalPages, (_this$props$translati5 = this.props.translations?.lastPage) !== null && _this$props$translati5 !== void 0 ? _this$props$translati5 : translate('lastPage'))), this.getPageSizeSelector());
301
+ }
302
+ render() {
303
+ const classes = classNames(modules_1a5f0d42.pager, this.props.className);
304
+ return /*#__PURE__*/React.createElement("div", {
305
+ "data-test": "ring-pager",
306
+ className: classes
307
+ }, this.getTotalPages() > 1 || this.props.openTotal ? this.getPagerContent() : this.getPageSizeSelector());
308
+ }
309
+ }
369
310
  Pager.propTypes = {
370
311
  total: PropTypes.number.isRequired,
371
312
  currentPage: PropTypes.number,
@@ -1,37 +1,29 @@
1
- import { _ as _defineProperty, a as _inherits, b as _createClass, c as _objectWithoutProperties, e as _extends, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { PureComponent } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
5
 
6
6
  var modules_cf670408 = {"light":"light_rui_2ac4","panel":"panel_rui_e32c panel_rui_027b"};
7
7
 
8
- var _excluded = ["className", "children"];
9
8
  /**
10
9
  * @name Panel
11
10
  */
12
- var Panel = /*#__PURE__*/function (_PureComponent) {
13
- function Panel() {
14
- _classCallCheck(this, Panel);
15
- return _callSuper(this, Panel, arguments);
11
+ class Panel extends PureComponent {
12
+ static propTypes = {
13
+ className: PropTypes.string,
14
+ children: PropTypes.node
15
+ };
16
+ render() {
17
+ const {
18
+ className,
19
+ children,
20
+ ...props
21
+ } = this.props;
22
+ const classes = classNames(modules_cf670408.panel, className);
23
+ return /*#__PURE__*/React.createElement("div", _extends({}, props, {
24
+ className: classes
25
+ }), children);
16
26
  }
17
- _inherits(Panel, _PureComponent);
18
- return _createClass(Panel, [{
19
- key: "render",
20
- value: function render() {
21
- var _this$props = this.props,
22
- className = _this$props.className,
23
- children = _this$props.children,
24
- props = _objectWithoutProperties(_this$props, _excluded);
25
- var classes = classNames(modules_cf670408.panel, className);
26
- return /*#__PURE__*/React.createElement("div", _extends({}, props, {
27
- className: classes
28
- }), children);
29
- }
30
- }]);
31
- }(PureComponent);
32
- _defineProperty(Panel, "propTypes", {
33
- className: PropTypes.string,
34
- children: PropTypes.node
35
- });
27
+ }
36
28
 
37
29
  export { Panel as default };