@plesk/ui-library 3.35.4 → 3.35.6

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 (40) hide show
  1. package/cjs/components/List/List.js +1 -1
  2. package/cjs/components/Pagination/Pagination.js +3 -3
  3. package/cjs/components/Progress/Progress.js +7 -0
  4. package/cjs/components/ProgressDialog/ProgressDialog.js +10 -2
  5. package/cjs/components/SegmentedControl/SegmentedControl.js +23 -82
  6. package/cjs/components/SegmentedControl/index.js +9 -2
  7. package/cjs/components/index.js +15 -1
  8. package/cjs/index.js +1 -1
  9. package/dist/plesk-ui-library-rtl.css +1 -1
  10. package/dist/plesk-ui-library-rtl.css.map +1 -1
  11. package/dist/plesk-ui-library.css +1 -1
  12. package/dist/plesk-ui-library.css.map +1 -1
  13. package/dist/plesk-ui-library.js +80 -103
  14. package/dist/plesk-ui-library.js.map +1 -1
  15. package/dist/plesk-ui-library.min.js +5 -5
  16. package/dist/plesk-ui-library.min.js.map +1 -1
  17. package/esm/components/List/List.js +1 -1
  18. package/esm/components/Pagination/Pagination.js +3 -3
  19. package/esm/components/Progress/Progress.js +8 -1
  20. package/esm/components/ProgressDialog/ProgressDialog.js +11 -3
  21. package/esm/components/SegmentedControl/SegmentedControl.js +22 -81
  22. package/esm/components/SegmentedControl/index.js +2 -1
  23. package/esm/components/index.js +2 -1
  24. package/esm/index.js +1 -1
  25. package/package.json +5 -6
  26. package/styleguide/build/bundle.8a07b2dd.js +2 -0
  27. package/styleguide/index.html +2 -2
  28. package/types/src/components/Card/PreviewPanel.d.ts +2 -1
  29. package/types/src/components/List/ListAction.d.ts +3 -3
  30. package/types/src/components/List/ListActions.d.ts +1 -1
  31. package/types/src/components/List/ListOperation.d.ts +1 -1
  32. package/types/src/components/List/ListOperationContext.d.ts +2 -2
  33. package/types/src/components/PageHeader/PageHeader.d.ts +2 -1
  34. package/types/src/components/ProgressDialog/ProgressDialog.d.ts +2 -0
  35. package/types/src/components/SegmentedControl/SegmentedControl.d.ts +112 -0
  36. package/types/src/components/SegmentedControl/index.d.ts +3 -0
  37. package/types/src/components/Toolbar/ToolbarMenu.d.ts +1 -1
  38. package/types/src/components/index.d.ts +3 -1
  39. package/styleguide/build/bundle.17ad5082.js +0 -2
  40. /package/styleguide/build/{bundle.17ad5082.js.LICENSE.txt → bundle.8a07b2dd.js.LICENSE.txt} +0 -0
@@ -870,7 +870,7 @@ class List extends _react.Component {
870
870
  allRowsSelected,
871
871
  translators: locale
872
872
  })
873
- }), ` `, /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
873
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
874
874
  className: `${baseClassName}__header-buttons`,
875
875
  children: [this.renderSelectAllButton(), this.renderDeselectAllButton()]
876
876
  })]
@@ -7,13 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = exports.ITEMS_PER_PAGE_OPTIONS = void 0;
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _constants = require("../../constants");
10
+ var _ContentLoader = _interopRequireDefault(require("../ContentLoader"));
10
11
  var _InputNumber = _interopRequireDefault(require("../InputNumber"));
11
- var _Translate = _interopRequireDefault(require("../Translate"));
12
12
  var _Link = _interopRequireDefault(require("../Link"));
13
- var _Text = _interopRequireDefault(require("../Text"));
14
13
  var _Popover = _interopRequireDefault(require("../Popover"));
15
14
  var _SegmentedControl = _interopRequireDefault(require("../SegmentedControl"));
16
- var _ContentLoader = _interopRequireDefault(require("../ContentLoader"));
15
+ var _Text = _interopRequireDefault(require("../Text"));
16
+ var _Translate = _interopRequireDefault(require("../Translate"));
17
17
  var _utils = require("../utils");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
19
  // Copyright 1999-2023. Plesk International GmbH. All rights reserved.
@@ -31,12 +31,14 @@ class Progress extends _react.Component {
31
31
  } = _ref;
32
32
  let isNotStarted = true;
33
33
  let isFinished = true;
34
+ let isFinishedWithWarnings = true;
34
35
  let isFailed = false;
35
36
  if (children) {
36
37
  _react.Children.forEach(children, child => {
37
38
  if ( /*#__PURE__*/(0, _react.isValidElement)(child) && child.props.status) {
38
39
  isNotStarted = isNotStarted && child.props.status === _ProgressStep.STATUS_NOT_STARTED;
39
40
  isFinished = isFinished && child.props.status === _ProgressStep.STATUS_DONE;
41
+ isFinishedWithWarnings = isFinishedWithWarnings && [_ProgressStep.STATUS_DONE, _ProgressStep.STATUS_WARNING].includes(child.props.status);
40
42
  isFailed = isFailed || child.props.status === _ProgressStep.STATUS_ERROR;
41
43
  }
42
44
  });
@@ -46,6 +48,11 @@ class Progress extends _react.Component {
46
48
  status: _ProgressStep.STATUS_DONE
47
49
  };
48
50
  }
51
+ if (isFinishedWithWarnings) {
52
+ return {
53
+ status: _ProgressStep.STATUS_WARNING
54
+ };
55
+ }
49
56
  if (isNotStarted) {
50
57
  return {
51
58
  status: _ProgressStep.STATUS_NOT_STARTED
@@ -27,12 +27,14 @@ class ProgressDialog extends _react.Component {
27
27
  (0, _defineProperty2.default)(this, "state", {
28
28
  isOpen: false,
29
29
  isFinished: false,
30
+ isFinishedWithWarnings: false,
30
31
  isFailed: false
31
32
  });
32
33
  (0, _defineProperty2.default)(this, "closeTimeout", null);
33
34
  (0, _defineProperty2.default)(this, "handleStatusChange", status => {
34
35
  this.setState({
35
36
  isFinished: status === _ProgressStep.STATUS_DONE,
37
+ isFinishedWithWarnings: status === _ProgressStep.STATUS_WARNING,
36
38
  isFailed: status === _ProgressStep.STATUS_ERROR
37
39
  });
38
40
  });
@@ -47,6 +49,7 @@ class ProgressDialog extends _react.Component {
47
49
  const {
48
50
  isOpen,
49
51
  isFinished,
52
+ isFinishedWithWarnings,
50
53
  isFailed
51
54
  } = this.state;
52
55
  this.clearCloseTimeout();
@@ -55,6 +58,8 @@ class ProgressDialog extends _react.Component {
55
58
  }
56
59
  if (isFinished) {
57
60
  (0, _utils.safeInvoke)(onFinish);
61
+ } else if (isFinishedWithWarnings) {
62
+ // TODO: Call onFinish on major update or create onFinishWithWarnings
58
63
  } else if (isFailed) {
59
64
  (0, _utils.safeInvoke)(onFail);
60
65
  } else if (cancelable) {
@@ -80,8 +85,10 @@ class ProgressDialog extends _react.Component {
80
85
  const {
81
86
  autoCloseTimeout
82
87
  } = this.props;
83
- if (prevState.isFinished === false && isFinished === true) {
88
+ if (prevState.isFinished !== isFinished) {
84
89
  this.clearCloseTimeout();
90
+ }
91
+ if (prevState.isFinished === false && isFinished === true) {
85
92
  if (autoCloseTimeout) {
86
93
  this.closeTimeout = setTimeout(this.handleClose, autoCloseTimeout);
87
94
  }
@@ -113,9 +120,10 @@ class ProgressDialog extends _react.Component {
113
120
  const {
114
121
  isOpen,
115
122
  isFinished,
123
+ isFinishedWithWarnings,
116
124
  isFailed
117
125
  } = this.state;
118
- const canClose = isFinished || isFailed;
126
+ const canClose = isFinished || isFinishedWithWarnings || isFailed;
119
127
  const canCancel = cancelable && !canClose;
120
128
  const cancelTitle = canClose ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Translate.default, {
121
129
  content: "ProgressDialog.closeButton",
@@ -4,24 +4,24 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.default = exports.SEGMENTED_CONTROL_BASE_CLASS_NAME = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _react = require("react");
12
11
  var _constants = require("../../constants");
13
- var _ButtonGroup = _interopRequireDefault(require("../ButtonGroup"));
14
12
  var _Button = _interopRequireDefault(require("../Button"));
13
+ var _ButtonGroup = _interopRequireDefault(require("../ButtonGroup"));
15
14
  var _Dropdown = _interopRequireDefault(require("../Dropdown"));
16
15
  var _Menu = _interopRequireWildcard(require("../Menu"));
17
- var _Squeezer = _interopRequireDefault(require("../Squeezer"));
18
16
  var _ResponsiveContext = _interopRequireDefault(require("../ResponsiveContext"));
17
+ var _Squeezer = _interopRequireDefault(require("../Squeezer"));
19
18
  var _jsxRuntime = require("react/jsx-runtime");
20
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
21
  // Copyright 1999-2023. Plesk International GmbH. All rights reserved.
23
22
 
24
23
  const alphaSort = (a, b) => a > b ? 1 : -1;
24
+ const SEGMENTED_CONTROL_BASE_CLASS_NAME = exports.SEGMENTED_CONTROL_BASE_CLASS_NAME = `${_constants.CLS_PREFIX}segmented-control`;
25
25
 
26
26
  /**
27
27
  * `Segmented Control` is a group of several [Buttons](#!/Button)
@@ -44,7 +44,7 @@ class SegmentedControl extends _react.Component {
44
44
  } = this.props;
45
45
  if (monospaced) {
46
46
  let monoWidth = 0;
47
- this.rootRef.current.querySelectorAll(`.${baseClassName}__button`).forEach(el => {
47
+ this.rootRef.current?.querySelectorAll(`.${baseClassName}__button`).forEach(el => {
48
48
  monoWidth = Math.max(monoWidth, el.getBoundingClientRect().width);
49
49
  });
50
50
  if (monoWidth !== this.state.monoWidth) {
@@ -64,24 +64,24 @@ class SegmentedControl extends _react.Component {
64
64
  } = this.state;
65
65
  let newSelected;
66
66
  if (multiple) {
67
- newSelected = selected ? selected.slice() : [];
67
+ newSelected = selected && Array.isArray(selected) ? selected.slice() : [];
68
68
  if (!selected || !(selected instanceof Array) || selected.indexOf(value) === -1) {
69
69
  newSelected.push(value);
70
70
  } else {
71
71
  newSelected.splice(selected.indexOf(value), 1);
72
72
  }
73
73
  newSelected.sort(alphaSort);
74
- } else {
75
- newSelected = value;
76
- }
77
- if (selected instanceof Array) {
78
- selected.sort(alphaSort);
79
- }
80
- if (JSON.stringify(newSelected) !== JSON.stringify(selected)) {
81
74
  this.setState({
82
75
  selected: newSelected
83
76
  });
84
- onChange(newSelected);
77
+ if (JSON.stringify(newSelected) !== JSON.stringify(selected)) {
78
+ onChange?.(newSelected);
79
+ }
80
+ } else {
81
+ newSelected = value;
82
+ if (JSON.stringify(newSelected) !== JSON.stringify(selected)) {
83
+ onChange?.(newSelected);
84
+ }
85
85
  }
86
86
  });
87
87
  (0, _defineProperty2.default)(this, "compact", () => {
@@ -155,7 +155,7 @@ class SegmentedControl extends _react.Component {
155
155
  selected
156
156
  } = this.state;
157
157
  const {
158
- title
158
+ title = ''
159
159
  } = buttons.find(button => button.value === selected) || {};
160
160
  const menu = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Menu.default, {
161
161
  children: buttons.map(_ref2 => {
@@ -172,7 +172,7 @@ class SegmentedControl extends _react.Component {
172
172
  ...buttonProps,
173
173
  ...menuItemProps,
174
174
  children: title
175
- }, value);
175
+ }, `${value}`);
176
176
  })
177
177
  });
178
178
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default, {
@@ -226,7 +226,7 @@ class SegmentedControl extends _react.Component {
226
226
  ...handler,
227
227
  ...buttonProps,
228
228
  children: title
229
- }, value);
229
+ }, `${value}`);
230
230
  })
231
231
  });
232
232
  }
@@ -252,6 +252,7 @@ class SegmentedControl extends _react.Component {
252
252
  compact: this.compact,
253
253
  uncompact: this.uncompact,
254
254
  innerRef: el => {
255
+ // @ts-ignore
255
256
  this.rootRef.current = el;
256
257
  },
257
258
  children: _ref4 => {
@@ -276,67 +277,7 @@ class SegmentedControl extends _react.Component {
276
277
  });
277
278
  }
278
279
  }
279
- SegmentedControl.propTypes = {
280
- /**
281
- * Label
282
- * @since 0.0.68
283
- */
284
- label: _propTypes.default.node,
285
- /**
286
- * Where to place label
287
- * @since 0.0.68
288
- */
289
- labelPlacement: _propTypes.default.oneOf(['top', 'left']),
290
- /**
291
- * Array of buttons to display (every array item must contain an unique "value" property)
292
- * @since 0.0.68
293
- */
294
- buttons: _propTypes.default.arrayOf(_propTypes.default.shape({
295
- value: _propTypes.default.any.isRequired,
296
- title: _propTypes.default.node
297
- })).isRequired,
298
- /**
299
- * Monospaced version of buttons (all button would have the same width).
300
- * Attention: using it with buttons dynamic update may cause to wrong behavior!
301
- * @since 0.0.68
302
- */
303
- monospaced: _propTypes.default.bool,
304
- /**
305
- * Multiple selected options version (any number of buttons can be selected)
306
- * @since 0.0.68
307
- */
308
- multiple: _propTypes.default.bool,
309
- /**
310
- * Selected value or an array of values (for multiple version).
311
- * Used in controlled version or as default value in uncontrolled version (with onChange property)
312
- * @since 0.0.68
313
- */
314
- selected: _propTypes.default.oneOfType([_propTypes.default.any, _propTypes.default.arrayOf(_propTypes.default.any)]).isRequired,
315
- /**
316
- * On change selection callback for uncontrolled mode.
317
- * @since 0.0.68
318
- */
319
- onChange: _propTypes.default.func,
320
- /**
321
- * Should component displays as inline element?
322
- * @since 0.0.68
323
- */
324
- inline: _propTypes.default.bool,
325
- /**
326
- * Use buttons with transparent background (ghost buttons)
327
- * @since 2.3.0
328
- */
329
- ghost: _propTypes.default.bool,
330
- /**
331
- * @ignore
332
- */
333
- className: _propTypes.default.string,
334
- /**
335
- * @ignore
336
- */
337
- baseClassName: _propTypes.default.string
338
- };
339
- SegmentedControl.defaultProps = {
280
+ (0, _defineProperty2.default)(SegmentedControl, "defaultProps", {
340
281
  label: null,
341
282
  labelPlacement: 'top',
342
283
  monospaced: false,
@@ -345,7 +286,7 @@ SegmentedControl.defaultProps = {
345
286
  inline: false,
346
287
  ghost: false,
347
288
  className: null,
348
- baseClassName: `${_constants.CLS_PREFIX}segmented-control`
349
- };
350
- SegmentedControl.contextType = _ResponsiveContext.default;
289
+ baseClassName: SEGMENTED_CONTROL_BASE_CLASS_NAME
290
+ });
291
+ (0, _defineProperty2.default)(SegmentedControl, "contextType", _ResponsiveContext.default);
351
292
  var _default = exports.default = SegmentedControl;
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
6
+ Object.defineProperty(exports, "SEGMENTED_CONTROL_BASE_CLASS_NAME", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _SegmentedControl.SEGMENTED_CONTROL_BASE_CLASS_NAME;
10
+ }
11
+ });
7
12
  Object.defineProperty(exports, "default", {
8
13
  enumerable: true,
9
14
  get: function () {
10
15
  return _SegmentedControl.default;
11
16
  }
12
17
  });
13
- var _SegmentedControl = _interopRequireDefault(require("./SegmentedControl"));
18
+ var _SegmentedControl = _interopRequireWildcard(require("./SegmentedControl"));
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -63,6 +63,7 @@ var _exportNames = {
63
63
  MenuHeader: true,
64
64
  MenuItem: true,
65
65
  MenuSelectableItem: true,
66
+ MenuBaseItem: true,
66
67
  Overlay: true,
67
68
  PageHeader: true,
68
69
  Pagination: true,
@@ -78,6 +79,7 @@ var _exportNames = {
78
79
  Rating: true,
79
80
  Section: true,
80
81
  SegmentedControl: true,
82
+ SEGMENTED_CONTROL_BASE_CLASS_NAME: true,
81
83
  Spot: true,
82
84
  SplitButton: true,
83
85
  Status: true,
@@ -414,6 +416,12 @@ Object.defineProperty(exports, "Menu", {
414
416
  return _Menu.default;
415
417
  }
416
418
  });
419
+ Object.defineProperty(exports, "MenuBaseItem", {
420
+ enumerable: true,
421
+ get: function () {
422
+ return _Menu.MenuBaseItem;
423
+ }
424
+ });
417
425
  Object.defineProperty(exports, "MenuDivider", {
418
426
  enumerable: true,
419
427
  get: function () {
@@ -528,6 +536,12 @@ Object.defineProperty(exports, "Rating", {
528
536
  return _Rating.default;
529
537
  }
530
538
  });
539
+ Object.defineProperty(exports, "SEGMENTED_CONTROL_BASE_CLASS_NAME", {
540
+ enumerable: true,
541
+ get: function () {
542
+ return _SegmentedControl.SEGMENTED_CONTROL_BASE_CLASS_NAME;
543
+ }
544
+ });
531
545
  Object.defineProperty(exports, "Section", {
532
546
  enumerable: true,
533
547
  get: function () {
@@ -843,7 +857,7 @@ Object.keys(_Section).forEach(function (key) {
843
857
  }
844
858
  });
845
859
  });
846
- var _SegmentedControl = _interopRequireDefault(require("./SegmentedControl"));
860
+ var _SegmentedControl = _interopRequireWildcard(require("./SegmentedControl"));
847
861
  var _Spot = _interopRequireDefault(require("./Spot"));
848
862
  var _SplitButton = _interopRequireDefault(require("./SplitButton"));
849
863
  var _Status = _interopRequireDefault(require("./Status"));
package/cjs/index.js CHANGED
@@ -46,5 +46,5 @@ Object.keys(_components).forEach(function (key) {
46
46
  });
47
47
  });
48
48
  // Copyright 1999-2023. Plesk International GmbH. All rights reserved.
49
- const version = exports.version = "3.35.4";
49
+ const version = exports.version = "3.35.6";
50
50
  (0, _svg4everybody.default)();