@jetbrains/ring-ui-built 6.0.32 → 6.0.34

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 +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 +176 -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.d.ts +1 -2
  124. package/components/http/http.js +345 -203
  125. package/components/http/http.mock.d.ts +1 -5
  126. package/components/http/http.mock.js +101 -49
  127. package/components/hub-source/hub-source.js +190 -83
  128. package/components/hub-source/hub-source__user.js +44 -11
  129. package/components/hub-source/hub-source__users-groups.js +65 -37
  130. package/components/i18n/i18n-context.js +10 -7
  131. package/components/i18n/i18n.js +10 -7
  132. package/components/icon/icon.js +93 -76
  133. package/components/icon/icon__svg.js +8 -0
  134. package/components/icon/index.js +8 -0
  135. package/components/input/input.js +13 -0
  136. package/components/island/adaptive-island-hoc.js +43 -30
  137. package/components/island/content.js +132 -115
  138. package/components/island/header.js +70 -57
  139. package/components/island/island.js +40 -28
  140. package/components/island-legacy/content-legacy.js +25 -17
  141. package/components/island-legacy/header-legacy.js +27 -19
  142. package/components/island-legacy/island-legacy.js +25 -17
  143. package/components/link/clickableLink.js +59 -44
  144. package/components/link/link.js +68 -57
  145. package/components/list/consts.js +2 -2
  146. package/components/list/list.js +698 -611
  147. package/components/list/list__custom.js +62 -44
  148. package/components/list/list__hint.js +19 -10
  149. package/components/list/list__item.js +174 -133
  150. package/components/list/list__link.js +50 -37
  151. package/components/list/list__separator.js +24 -14
  152. package/components/list/list__title.js +32 -22
  153. package/components/list/list__users-groups-source.js +126 -54
  154. package/components/loader/loader.js +74 -43
  155. package/components/loader/loader__core.js +263 -198
  156. package/components/loader-inline/loader-inline.js +35 -23
  157. package/components/loader-screen/loader-screen.js +46 -25
  158. package/components/login-dialog/login-dialog.js +158 -111
  159. package/components/login-dialog/service.js +34 -8
  160. package/components/markdown/markdown.js +23 -15
  161. package/components/message/message.js +203 -161
  162. package/components/old-browsers-message/old-browsers-message.js +18 -11
  163. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  164. package/components/old-browsers-message/white-list.js +17 -9
  165. package/components/pager/pager.js +271 -212
  166. package/components/panel/panel.js +25 -17
  167. package/components/permissions/permissions.js +172 -127
  168. package/components/permissions/permissions__cache.js +224 -194
  169. package/components/popup/popup.consts.js +1 -1
  170. package/components/popup/popup.js +343 -284
  171. package/components/popup/popup.target.js +8 -9
  172. package/components/popup/position.js +106 -96
  173. package/components/popup-menu/popup-menu.js +81 -44
  174. package/components/progress-bar/progress-bar.js +104 -87
  175. package/components/query-assist/query-assist.js +916 -838
  176. package/components/query-assist/query-assist__suggestions.js +30 -1
  177. package/components/radio/radio.js +34 -19
  178. package/components/radio/radio__item.js +69 -52
  179. package/components/select/select.js +957 -852
  180. package/components/select/select__filter.js +30 -0
  181. package/components/select/select__popup.js +487 -373
  182. package/components/shortcuts/core.js +217 -166
  183. package/components/shortcuts/shortcut-title.js +11 -6
  184. package/components/shortcuts/shortcuts-hoc.js +45 -19
  185. package/components/shortcuts/shortcuts.js +75 -50
  186. package/components/slider/slider.js +122 -99
  187. package/components/slider/slider.utils.js +24 -14
  188. package/components/storage/storage.js +33 -4
  189. package/components/storage/storage__fallback.js +224 -149
  190. package/components/storage/storage__local.js +153 -90
  191. package/components/tab-trap/tab-trap.js +153 -122
  192. package/components/table/cell.js +26 -14
  193. package/components/table/disable-hover-hoc.js +51 -33
  194. package/components/table/header-cell.js +89 -64
  195. package/components/table/header.js +132 -104
  196. package/components/table/multitable.js +125 -107
  197. package/components/table/row-with-focus-sensor.js +69 -25
  198. package/components/table/row.js +216 -175
  199. package/components/table/selection-adapter.js +3 -1
  200. package/components/table/selection-shortcuts-hoc.js +181 -180
  201. package/components/table/selection.js +226 -156
  202. package/components/table/smart-table.js +88 -50
  203. package/components/table/table.js +358 -289
  204. package/components/tabs/collapsible-more.js +79 -46
  205. package/components/tabs/collapsible-tab.js +38 -31
  206. package/components/tabs/collapsible-tabs.js +153 -88
  207. package/components/tabs/custom-item.js +2 -4
  208. package/components/tabs/dumb-tabs.js +117 -74
  209. package/components/tabs/smart-tabs.js +69 -29
  210. package/components/tabs/tab-link.js +5 -1
  211. package/components/tabs/tab.js +31 -19
  212. package/components/tabs/tabs.js +31 -0
  213. package/components/tag/tag.js +173 -133
  214. package/components/tags-input/tags-input.js +427 -329
  215. package/components/tags-list/tags-list.js +78 -57
  216. package/components/text/text.js +39 -28
  217. package/components/toggle/toggle.js +70 -56
  218. package/components/tooltip/tooltip.js +190 -146
  219. package/components/user-agreement/service.js +371 -228
  220. package/components/user-agreement/toolbox.eula.js +1 -160
  221. package/components/user-agreement/user-agreement.js +120 -85
  222. package/components/user-card/card.js +29 -0
  223. package/components/user-card/smart-user-card-tooltip.js +111 -51
  224. package/components/user-card/tooltip.js +84 -47
  225. package/components/user-card/user-card.js +29 -0
  226. package/package.json +1 -2
@@ -1,4 +1,8 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
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';
2
6
  import React, { PureComponent } from 'react';
3
7
  import PropTypes from 'prop-types';
4
8
  import classNames from 'classnames';
@@ -19,8 +23,25 @@ import '../_helpers/button__classes.js';
19
23
  import '../icon/icon__constants.js';
20
24
  import 'util-deprecate';
21
25
  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';
22
34
  import '../global/data-tests.js';
35
+ import 'core-js/modules/es.array.reduce.js';
36
+ import 'core-js/modules/es.object.entries.js';
23
37
  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';
24
45
  import '@jetbrains/icons/chevron-down';
25
46
  import '@jetbrains/icons/close-12px';
26
47
  import 'deep-equal';
@@ -29,22 +50,33 @@ import '../global/typescript-utils.js';
29
50
  import '../_helpers/anchor.js';
30
51
  import '../avatar/avatar.js';
31
52
  import '../global/url.js';
53
+ import 'core-js/modules/es.string.match.js';
32
54
  import '../global/dom.js';
55
+ import 'core-js/modules/es.set.js';
33
56
  import '../avatar/fallback-avatar.js';
57
+ import 'core-js/modules/es.array.from.js';
34
58
  import '../global/get-uid.js';
59
+ import 'core-js/modules/es.regexp.to-string.js';
35
60
  import '../popup/popup.js';
36
61
  import 'react-dom';
37
62
  import '../global/schedule-raf.js';
38
63
  import '../shortcuts/shortcuts.js';
39
64
  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';
40
69
  import 'combokeys';
41
70
  import '../global/sniffer.js';
42
71
  import 'sniffr';
43
72
  import '../tab-trap/tab-trap.js';
44
73
  import '../popup/position.js';
74
+ import 'core-js/modules/es.array.sort.js';
45
75
  import '../popup/popup.consts.js';
46
76
  import '../popup/popup.target.js';
47
77
  import '../list/list.js';
78
+ import 'core-js/modules/es.symbol.js';
79
+ import 'core-js/modules/es.symbol.description.js';
48
80
  import 'react-virtualized/dist/es/List';
49
81
  import 'react-virtualized/dist/es/AutoSizer';
50
82
  import 'react-virtualized/dist/es/WindowScroller';
@@ -83,230 +115,257 @@ import '../i18n/i18n.js';
83
115
 
84
116
  var modules_1a5f0d42 = {"light":"light_rui_2ac4","pager":"pager_rui_ad65","links":"links_rui_ad65","link":"link_rui_ad65","linkDisabled":"linkDisabled_rui_ad65"};
85
117
 
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;
112
- return {
113
- key: size,
114
- label: `${size} ${(_this$props$translati = this.props.translations?.perPage) !== null && _this$props$translati !== void 0 ? _this$props$translati : translate('perPage')}`
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);
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];
133
124
  }
134
- };
135
- handlePrevClick = () => {
136
- const {
137
- currentPage
138
- } = this.props;
139
- if (currentPage !== 1) {
140
- const prevPage = currentPage - 1;
141
- this.props.onPageChange?.(prevPage);
142
- }
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);
155
- }
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
- };
187
- }
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'
125
+ _this = _callSuper(this, Pager, [].concat(args));
126
+ _defineProperty(_this, "handlePageSizeChange", function (item) {
127
+ if (item != null) {
128
+ _this.props.onPageSizeChange(item.key);
195
129
  }
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
130
  });
215
- const prevIcon = /*#__PURE__*/React.createElement(Icon, {
216
- glyph: chevronLeftIcon,
217
- key: "icon"
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
+ }
218
138
  });
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
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
+ }
232
151
  });
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));
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;
250
164
  }
251
- generateHref(page) {
252
- if (this.props.hrefFunc === undefined) {
253
- return undefined;
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
+ });
184
+ return {
185
+ selected,
186
+ data
187
+ };
254
188
  }
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);
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);
270
207
  }
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;
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
+ };
282
224
  }
283
- if (end > totalPages) {
284
- const tail = end - totalPages;
285
- start -= tail;
286
- end -= tail;
225
+ }
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
+ }));
242
+ }
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));
289
+ }
290
+ }, {
291
+ key: "generateHref",
292
+ value: function generateHref(page) {
293
+ if (this.props.hrefFunc === undefined) {
294
+ return undefined;
295
+ }
296
+ var pageSize = this.props.disablePageSizeSelector ? undefined : this.props.pageSize;
297
+ return this.props.hrefFunc(page, pageSize);
298
+ }
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);
311
+ }
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
+ }
287
332
  }
288
- if (start < 1) {
289
- start += 1 - start;
333
+ var buttons = [];
334
+ for (var i = start; i <= end; i++) {
335
+ buttons.push(this.getButton(i, i, i, i === currentPage));
290
336
  }
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());
291
342
  }
292
- const buttons = [];
293
- for (let i = start; i <= end; i++) {
294
- buttons.push(this.getButton(i, i, i, i === currentPage));
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());
295
351
  }
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
- }
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);
310
369
  Pager.propTypes = {
311
370
  total: PropTypes.number.isRequired,
312
371
  currentPage: PropTypes.number,
@@ -1,29 +1,37 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
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';
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"];
8
9
  /**
9
10
  * @name Panel
10
11
  */
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);
12
+ var Panel = /*#__PURE__*/function (_PureComponent) {
13
+ function Panel() {
14
+ _classCallCheck(this, Panel);
15
+ return _callSuper(this, Panel, arguments);
26
16
  }
27
- }
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
+ });
28
36
 
29
37
  export { Panel as default };