@widergy/energy-ui 3.21.2 → 3.22.1

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [3.22.1](https://github.com/widergy/energy-ui/compare/v3.22.0...v3.22.1) (2024-09-25)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * shape prop fixed action card ([#496](https://github.com/widergy/energy-ui/issues/496)) ([10478e0](https://github.com/widergy/energy-ui/commit/10478e0caa4fa88893e5ad161033c90696d8f6a1))
7
+
8
+ # [3.22.0](https://github.com/widergy/energy-ui/compare/v3.21.2...v3.22.0) (2024-09-24)
9
+
10
+
11
+ ### Features
12
+
13
+ * utpanel v1 ([#491](https://github.com/widergy/energy-ui/issues/491)) ([353d235](https://github.com/widergy/energy-ui/commit/353d2355f923d56e2ab667312e074dc809c6e2c7))
14
+
1
15
  ## [3.21.2](https://github.com/widergy/energy-ui/compare/v3.21.1...v3.21.2) (2024-09-23)
2
16
 
3
17
 
@@ -3,23 +3,23 @@
3
3
  ## Props
4
4
 
5
5
 
6
- | Name | Type | Default | Description |
7
- | :----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------ |
8
- | `additionalMessage` | `shape({ Icon: elementType, iconProps: shape({ colorTheme: string, size: string }), labelProps: shape({ colorTheme: string, variant: string }), message: string })` | | Additional message information, including icons and labels. |
9
- | `adornment` | `shape({ alignment: oneOf(['center', 'end', 'start']), position: string, props: object, type: string })` | | Adornment object to customize alignment, position, and type. |
10
- | `BackgroundImage` | `elementType` | | A React component for the background image. |
11
- | `bottomActions` | `arrayOf(shape({ colorTheme: string, disabled: bool, Icon: elementType, label: string, loading: bool, onClick: func }))` | | Defines the list of actions to be displayed at the bottom of the card. |
12
- | `bottomActionsVariant` | `oneOf(['default', 'redirection'])` | | Sets the style variant for bottom actions. |
13
- | `classNames` | `objectOf(string)` | | Css classes |
14
- | `description` | `string` | | Description text to be displayed. |
15
- | `descriptionProps` | `shape({ colorTheme: string, variant: string })` | | Props to customize the description's style. |
16
- | `headerActions` | `arrayOf(shape({ Icon: oneOfType([elementType, string]), iconProps: string, id: oneOfType([number, string]), label: string, loading: bool, onClick: func }))` | | List of actions available in the header section. |
17
- | `headerActionsProps` | `shape({ alignment: oneOf(['center', 'end', 'start']), buttonGroupProps: shape({ colorTheme: string, type: string }), maxNumberOfPrimaryActions: number, variant: oneOf(['default', 'buttonGroup']) })` | | Props to configure header actions alignment, button group, etc. |
18
- | `mainAction` | `func` | | Main action function for the card. |
19
- | `size` | `oneOf(['medium', 'small'])` | `'medium'` | Size of the card, either small or medium. |
20
- | `status` | `string` | | Status text to be displayed. |
21
- | `statusLabel` | `string` | | Status label for additional status info. |
22
- | `statusAlignment` | `oneOf(['center', 'end', 'start'])` | | Alignment of the status element. |
23
- | `title` | `string.isRequired` | | The title of the card, required. |
24
- | `titleProps` | `shape({ variant: string, weight: string })` | | Props to configure the title style. |
25
- | `withBodyPadding` | `bool` | `false` | Adds padding to the card body if`true`. |
6
+ | Name | Type | Default | Description |
7
+ | :----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------ |
8
+ | `additionalMessage` | `shape({ Icon: elementType, iconProps: shape({ colorTheme: string, size: string }), labelProps: shape({ colorTheme: string, variant: string }), message: string })` | | Additional message information, including icons and labels. |
9
+ | `adornment` | `shape({ alignment: oneOf(['center', 'end', 'start']), position: string, props: object, type: string })` | | Adornment object to customize alignment, position, and type. |
10
+ | `BackgroundImage` | `elementType` | | A React component for the background image. |
11
+ | `bottomActions` | `arrayOf(shape({ colorTheme: string, disabled: bool, Icon: elementType, label: string, loading: bool, onClick: func }))` | | Defines the list of actions to be displayed at the bottom of the card. |
12
+ | `bottomActionsVariant` | `oneOf(['default', 'redirection'])` | | Sets the style variant for bottom actions. |
13
+ | `classNames` | `objectOf(string)` | | Css classes |
14
+ | `description` | `string` | | Description text to be displayed. |
15
+ | `descriptionProps` | `shape({ colorTheme: string, variant: string })` | | Props to customize the description's style. |
16
+ | `headerActions` | `arrayOf(shape({ Icon: oneOfType([elementType, string]), iconProps: string, id: oneOfType([number, string]), label: string, loading: bool, onClick: func }))` | | List of actions available in the header section. |
17
+ | `headerActionsProps` | `shape({ alignment: oneOf(['center', 'end', 'start']), buttonGroupProps: shape({ colorTheme: string, shape: string }), maxNumberOfPrimaryActions: number, variant: oneOf(['default', 'buttonGroup']) })` | | Props to configure header actions alignment, button group, etc. |
18
+ | `mainAction` | `func` | | Main action function for the card. |
19
+ | `size` | `oneOf(['medium', 'small'])` | `'medium'` | Size of the card, either small or medium. |
20
+ | `status` | `string` | | Status text to be displayed. |
21
+ | `statusLabel` | `string` | | Status label for additional status info. |
22
+ | `statusAlignment` | `oneOf(['center', 'end', 'start'])` | | Alignment of the status element. |
23
+ | `title` | `string.isRequired` | | The title of the card, required. |
24
+ | `titleProps` | `shape({ variant: string, weight: string })` | | Props to configure the title style. |
25
+ | `withBodyPadding` | `bool` | `false` | Adds padding to the card body if`true`. |
@@ -54,8 +54,7 @@ BottomActions.propTypes = {
54
54
  Icon: (0, _propTypes.oneOfType)([_propTypes.elementType, _propTypes.string]),
55
55
  label: _propTypes.string,
56
56
  loading: _propTypes.bool,
57
- onClick: _propTypes.func,
58
- type: (0, _propTypes.oneOf)([_constants.ACTION_TYPES.DEFAULT, _constants.ACTION_TYPES.REDIRECTION])
57
+ onClick: _propTypes.func
59
58
  })),
60
59
  bottomActionsVariant: _propTypes.string
61
60
  };
@@ -72,7 +72,7 @@ Header.propTypes = {
72
72
  alignment: (0, _propTypes.oneOf)([_constants.PLACE_SELF_TYPES.CENTER, _constants.PLACE_SELF_TYPES.END, _constants.PLACE_SELF_TYPES.START]),
73
73
  buttonGroupProps: (0, _propTypes.shape)({
74
74
  colorTheme: _propTypes.string,
75
- type: _propTypes.string
75
+ shape: _propTypes.string
76
76
  }),
77
77
  maxNumberOfPrimaryActions: _propTypes.number,
78
78
  variant: (0, _propTypes.oneOf)([_constants.HEADER_ACTIONS_VARIANTS.DEFAULT, _constants.HEADER_ACTIONS_VARIANTS.BUTTON_GROUP])
@@ -8,6 +8,7 @@
8
8
  display: flex;
9
9
  flex-direction: column;
10
10
  margin-right: auto;
11
+ overflow-wrap: anywhere;
11
12
  }
12
13
 
13
14
  .medium {
@@ -29,7 +29,7 @@ const HeaderActions = _ref => {
29
29
  const showButtonGroup = headerActionsProps.variant === _constants.HEADER_ACTIONS_VARIANTS.BUTTON_GROUP;
30
30
  const {
31
31
  colorTheme: buttonGroupColorTheme = 'secondary',
32
- type: buttonGroupType
32
+ shape: buttonGroupShape
33
33
  } = headerActionsProps?.buttonGroupProps || {};
34
34
  const maxNumberOfPrimaryActions = headerActionsProps?.maxNumberOfPrimaryActions || _constants2.DEFAULT_MAX_NUMBER_OF_PRIMARY_ACTIONS;
35
35
  const handleSetMainActionHoverVisible = () => setMainActionHoverVisible(true);
@@ -85,7 +85,7 @@ const HeaderActions = _ref => {
85
85
  })),
86
86
  colorTheme: buttonGroupColorTheme,
87
87
  selected: selectedAction || secondaryActions[0]?.id,
88
- type: buttonGroupType
88
+ shape: buttonGroupShape
89
89
  })));
90
90
  };
91
91
  HeaderActions.propTypes = {
@@ -101,7 +101,7 @@ HeaderActions.propTypes = {
101
101
  alignment: (0, _propTypes.oneOf)([_constants.PLACE_SELF_TYPES.CENTER, _constants.PLACE_SELF_TYPES.END, _constants.PLACE_SELF_TYPES.START]),
102
102
  buttonGroupProps: (0, _propTypes.shape)({
103
103
  colorTheme: _propTypes.string,
104
- type: _propTypes.string
104
+ shape: _propTypes.string
105
105
  }),
106
106
  maxNumberOfPrimaryActions: _propTypes.number,
107
107
  variant: (0, _propTypes.oneOf)([_constants.HEADER_ACTIONS_VARIANTS.DEFAULT, _constants.HEADER_ACTIONS_VARIANTS.BUTTON_GROUP])
@@ -125,7 +125,7 @@ UTActionCard.propTypes = {
125
125
  alignment: (0, _propTypes.oneOf)([_constants.PLACE_SELF_TYPES.CENTER, _constants.PLACE_SELF_TYPES.END, _constants.PLACE_SELF_TYPES.START]),
126
126
  buttonGroupProps: (0, _propTypes.shape)({
127
127
  colorTheme: _propTypes.string,
128
- type: _propTypes.string
128
+ shape: _propTypes.string
129
129
  }),
130
130
  maxNumberOfPrimaryActions: _propTypes.number,
131
131
  variant: (0, _propTypes.oneOf)([_constants.HEADER_ACTIONS_VARIANTS.DEFAULT, _constants.HEADER_ACTIONS_VARIANTS.BUTTON_GROUP])
@@ -5,100 +5,22 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
- var _SwipeableDrawer = _interopRequireDefault(require("@material-ui/core/SwipeableDrawer"));
9
- require("react-perfect-scrollbar/dist/css/styles.css");
10
- var _reactPerfectScrollbar = _interopRequireDefault(require("react-perfect-scrollbar"));
11
- var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
12
8
  var _propTypes = require("prop-types");
13
- var _UTButton = _interopRequireDefault(require("../UTButton"));
14
- var _UTLabel = _interopRequireDefault(require("../UTLabel"));
15
- var _commonTypes = require("../../types/commonTypes");
16
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
9
+ var _V = _interopRequireDefault(require("./versions/V0"));
10
+ var _V2 = _interopRequireDefault(require("./versions/V1"));
17
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19
12
  const UTPanel = _ref => {
20
13
  let {
21
- children,
22
- classes = {},
23
- containerRef,
24
- disableScrollbar = false,
25
- modalProps,
26
- onClose,
27
- onEndReachedCallback,
28
- onOpen = () => {},
29
- open,
30
- panelSide,
31
- perfectScrollbarOptions,
32
- title,
33
- TitleComponent,
34
- TitleIcon,
14
+ version = 'V0',
35
15
  ...props
36
16
  } = _ref;
37
- const {
38
- title: titleClass,
39
- titleIcon: titleIconClass,
40
- titleContainer: titleContainerClass,
41
- perfectScrollbar: perfectScrollbarClass,
42
- closeButton: closeButtonClass,
43
- iconClose: iconCloseClass,
44
- ...drawerClasses
45
- } = classes;
46
- return /*#__PURE__*/_react.default.createElement(_SwipeableDrawer.default, _extends({
47
- anchor: panelSide,
48
- open: open,
49
- onOpen: onOpen,
50
- onClose: onClose,
51
- disableSwipeToOpen: true,
52
- swipeAreaWidth: 0,
53
- ModalProps: {
54
- container: containerRef,
55
- keepMounted: !!containerRef,
56
- ...modalProps
57
- },
58
- classes: {
59
- ...drawerClasses,
60
- paper: `${_stylesModule.default.paper} ${drawerClasses.paper}`,
61
- root: `${containerRef && _stylesModule.default.root} ${drawerClasses.root}`
62
- }
63
- }, props), /*#__PURE__*/_react.default.createElement("div", {
64
- className: `${_stylesModule.default.titleContainer} ${titleContainerClass}`
65
- }, TitleComponent || /*#__PURE__*/_react.default.createElement("div", {
66
- className: _stylesModule.default.iconTitleContainer
67
- }, TitleIcon && /*#__PURE__*/_react.default.createElement(TitleIcon, {
68
- className: `${_stylesModule.default.titleIcon} ${titleIconClass}`
69
- }), /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
70
- weight: "semibold",
71
- className: classes.title
72
- }, title)), /*#__PURE__*/_react.default.createElement(_UTButton.default, {
73
- classNames: {
74
- icon: iconCloseClass,
75
- root: closeButtonClass
76
- },
77
- Icon: _Close.default,
78
- onClick: onClose,
79
- variant: "text"
80
- })), disableScrollbar ? children : /*#__PURE__*/_react.default.createElement(_reactPerfectScrollbar.default, {
81
- onYReachEnd: onEndReachedCallback,
82
- className: `${_stylesModule.default.perfectScrollbar} ${perfectScrollbarClass}`,
83
- options: {
84
- suppressScrollX: true,
85
- ...perfectScrollbarOptions
86
- }
87
- }, children));
17
+ const Component = {
18
+ V0: _V.default,
19
+ V1: _V2.default
20
+ }[version];
21
+ return /*#__PURE__*/_react.default.createElement(Component, props);
88
22
  };
89
23
  UTPanel.propTypes = {
90
- classes: (0, _propTypes.objectOf)(_propTypes.string),
91
- containerRef: _commonTypes.refType,
92
- disableScrollbar: _propTypes.bool,
93
- modalProps: _propTypes.object,
94
- onClose: _propTypes.func,
95
- onEndReachedCallback: _propTypes.func,
96
- onOpen: _propTypes.func,
97
- open: _propTypes.bool,
98
- panelSide: _propTypes.string,
99
- perfectScrollbarOptions: _propTypes.object,
100
- title: _propTypes.string,
101
- TitleComponent: (0, _propTypes.oneOfType)([_propTypes.element, _propTypes.elementType]),
102
- TitleIcon: _propTypes.elementType
24
+ version: _propTypes.string
103
25
  };
104
26
  var _default = exports.default = UTPanel;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _SwipeableDrawer = _interopRequireDefault(require("@material-ui/core/SwipeableDrawer"));
9
+ require("react-perfect-scrollbar/dist/css/styles.css");
10
+ var _reactPerfectScrollbar = _interopRequireDefault(require("react-perfect-scrollbar"));
11
+ var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
12
+ var _propTypes = require("prop-types");
13
+ var _UTButton = _interopRequireDefault(require("../../../UTButton"));
14
+ var _UTLabel = _interopRequireDefault(require("../../../UTLabel"));
15
+ var _commonTypes = require("../../../../types/commonTypes");
16
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19
+ const UTPanel = _ref => {
20
+ let {
21
+ children,
22
+ classes = {},
23
+ containerRef,
24
+ disableScrollbar = false,
25
+ modalProps,
26
+ onClose,
27
+ onEndReachedCallback,
28
+ onOpen = () => {},
29
+ open,
30
+ panelSide,
31
+ perfectScrollbarOptions,
32
+ title,
33
+ TitleComponent,
34
+ TitleIcon,
35
+ ...props
36
+ } = _ref;
37
+ const {
38
+ title: titleClass,
39
+ titleIcon: titleIconClass,
40
+ titleContainer: titleContainerClass,
41
+ perfectScrollbar: perfectScrollbarClass,
42
+ closeButton: closeButtonClass,
43
+ iconClose: iconCloseClass,
44
+ ...drawerClasses
45
+ } = classes;
46
+ return /*#__PURE__*/_react.default.createElement(_SwipeableDrawer.default, _extends({
47
+ anchor: panelSide,
48
+ open: open,
49
+ onOpen: onOpen,
50
+ onClose: onClose,
51
+ disableSwipeToOpen: true,
52
+ swipeAreaWidth: 0,
53
+ ModalProps: {
54
+ container: containerRef,
55
+ keepMounted: !!containerRef,
56
+ ...modalProps
57
+ },
58
+ classes: {
59
+ ...drawerClasses,
60
+ paper: `${_stylesModule.default.paper} ${drawerClasses.paper}`,
61
+ root: `${containerRef && _stylesModule.default.root} ${drawerClasses.root}`
62
+ }
63
+ }, props), /*#__PURE__*/_react.default.createElement("div", {
64
+ className: `${_stylesModule.default.titleContainer} ${titleContainerClass}`
65
+ }, TitleComponent || /*#__PURE__*/_react.default.createElement("div", {
66
+ className: _stylesModule.default.iconTitleContainer
67
+ }, TitleIcon && /*#__PURE__*/_react.default.createElement(TitleIcon, {
68
+ className: `${_stylesModule.default.titleIcon} ${titleIconClass}`
69
+ }), /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
70
+ weight: "semibold",
71
+ className: classes.title
72
+ }, title)), /*#__PURE__*/_react.default.createElement(_UTButton.default, {
73
+ classNames: {
74
+ icon: iconCloseClass,
75
+ root: closeButtonClass
76
+ },
77
+ Icon: _Close.default,
78
+ onClick: onClose,
79
+ variant: "text"
80
+ })), disableScrollbar ? children : /*#__PURE__*/_react.default.createElement(_reactPerfectScrollbar.default, {
81
+ onYReachEnd: onEndReachedCallback,
82
+ className: `${_stylesModule.default.perfectScrollbar} ${perfectScrollbarClass}`,
83
+ options: {
84
+ suppressScrollX: true,
85
+ ...perfectScrollbarOptions
86
+ }
87
+ }, children));
88
+ };
89
+ UTPanel.propTypes = {
90
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
91
+ containerRef: _commonTypes.refType,
92
+ disableScrollbar: _propTypes.bool,
93
+ modalProps: _propTypes.object,
94
+ onClose: _propTypes.func,
95
+ onEndReachedCallback: _propTypes.func,
96
+ onOpen: _propTypes.func,
97
+ open: _propTypes.bool,
98
+ panelSide: _propTypes.string,
99
+ perfectScrollbarOptions: _propTypes.object,
100
+ title: _propTypes.string,
101
+ TitleComponent: (0, _propTypes.oneOfType)([_propTypes.element, _propTypes.elementType]),
102
+ TitleIcon: _propTypes.elementType
103
+ };
104
+ var _default = exports.default = UTPanel;
@@ -0,0 +1,36 @@
1
+ # UTPanel
2
+
3
+ Component used for displaying a side panel.
4
+
5
+ ## Props
6
+
7
+ | Name | Type | Default | Description |
8
+ | :-------------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9
+ | children | node | | Component content |
10
+ | classes | object | | Classes returned by UTPanel own[theme](./theme.js#L40) `retrieveStyle` and classes received from props. |
11
+ | classNames | object | | Overrides the default panel theme. |
12
+ | collapsableHeader | bool | true | Indicates if "header items" section is collapsible. |
13
+ | currentStep | number | 1 | Workflow step number used to show the current progress in the UTProgressBar |
14
+ | disableScrollbar | bool | false | Render the children without scrollbar |
15
+ | HeaderComponent | node | | Custom header to render. |
16
+ | headerItems | array | | Array of items (object) to show in "header items" section. Each item should have: "title" - String, "icon" - String, "value" - String |
17
+ | headerMainActionButton | object | | Object with header main button details: "callBack" - func // "colorTheme" - string - deafult: 'primary' // "text" - string // "variant" - string - default: 'semitransparent' |
18
+ | headerSecondaryActionButton | object | | Object with header secondary button details:<br /> "callBack" - func // "colorTheme" - string - default: "success" // "text" - string // "variant" - string - ddefault: "filled" |
19
+ | hideCloseButton | bool | false | Indicates whether the close button is hide or not |
20
+ | hideHeader | bool | false | Indicates whether the entire header is hide or not |
21
+ | hideMainButton | bool | false | Indicates whether the main (bottom) button is hide or not |
22
+ | isWorkflow | bool | false | Indicates if the panel children's content a workflow. This prop activates the progress bar. |
23
+ | mainButton | object | | [UTButton props](https://github.com/widergy/Energy-UI/tree/master/src/lib/components/UTButton) |
24
+ | modalProps | object | | Material UI[modal props](https://v4.mui.com/api/modal/) |
25
+ | onClose | func | | Callback to execute when closing panel. |
26
+ | onEndReachedCallback | func | | Callback to execute when reaching the end of the vertical scroll |
27
+ | onOpen | func | () => {} | Callback to execute when opening panel. |
28
+ | open | bool | | Indicates whether the panel is open or not |
29
+ | panelSide | string | | Indicates panel side. |
30
+ | perfectScrollbarOptions | object | | [Perfect scrollbar](https://www.npmjs.com/package/react-perfect-scrollbar) props |
31
+ | singleHeaderItemsColumn | bool | false | Indicates whether the header items are shown in a single column or not |
32
+ | size | string | 'M' | Indicates the size of panel. Currently we have two options:<br /> L -> 800px<br /> M -> 450px |
33
+ | stepsCount | Number | | Indicates the total steps in case of workflow |
34
+ | subtitle | string | | Subtitle to show |
35
+ | title | string | | Title to show |
36
+ | titleProps | object | {} | UTLabel props for title. Default props: variant="title2" weight="medium" |
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SIZES = void 0;
7
+ const SIZES = exports.SIZES = {
8
+ L: 'large',
9
+ M: 'medium'
10
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ var _UTIcon = _interopRequireDefault(require("../../../../../UTIcon"));
10
+ var _UTLabel = _interopRequireDefault(require("../../../../../UTLabel"));
11
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
12
+ var _constants = require("./constants");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const DataItem = _ref => {
15
+ let {
16
+ size = 'M',
17
+ value,
18
+ icon,
19
+ title
20
+ } = _ref;
21
+ return /*#__PURE__*/_react.default.createElement("div", {
22
+ className: `${_stylesModule.default.container} ${_stylesModule.default[_constants.SIZES[size]]}`
23
+ }, /*#__PURE__*/_react.default.createElement(_UTIcon.default, {
24
+ className: _stylesModule.default.icon,
25
+ colorTheme: "gray",
26
+ name: icon
27
+ }), /*#__PURE__*/_react.default.createElement("div", {
28
+ className: _stylesModule.default.textContainer
29
+ }, /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
30
+ colorTheme: "gray",
31
+ weight: "medium"
32
+ }, title), /*#__PURE__*/_react.default.createElement(_UTLabel.default, null, value)));
33
+ };
34
+ DataItem.propTypes = {
35
+ icon: _propTypes.string,
36
+ size: _propTypes.string,
37
+ title: _propTypes.string,
38
+ value: _propTypes.string
39
+ };
40
+ var _default = exports.default = DataItem;
@@ -0,0 +1,20 @@
1
+ .container {
2
+ align-items: center;
3
+ display: flex;
4
+ flex: 50%;
5
+ }
6
+
7
+ .textContainer {
8
+ display: flex;
9
+ grid-gap: 8px;
10
+ }
11
+
12
+ .large {
13
+ grid-gap: 16px;
14
+ padding: 16px 0;
15
+ }
16
+
17
+ .medium {
18
+ grid-gap: 8px;
19
+ padding: 8px 0;
20
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SIZES = exports.ACCEPT_BUTTON_TEXT = void 0;
7
+ const SIZES = exports.SIZES = {
8
+ L: 'large',
9
+ M: 'medium'
10
+ };
11
+ const ACCEPT_BUTTON_TEXT = exports.ACCEPT_BUTTON_TEXT = 'Aceptar';
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _SwipeableDrawer = _interopRequireDefault(require("@material-ui/core/SwipeableDrawer"));
9
+ require("react-perfect-scrollbar/dist/css/styles.css");
10
+ var _reactPerfectScrollbar = _interopRequireDefault(require("react-perfect-scrollbar"));
11
+ var _propTypes = require("prop-types");
12
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
13
+ var _UTButton = _interopRequireDefault(require("../../../UTButton"));
14
+ var _UTLabel = _interopRequireDefault(require("../../../UTLabel"));
15
+ var _index = _interopRequireDefault(require("../../../UTProgressBar/index.js"));
16
+ var _classesUtils = require("../../../../utils/classesUtils.js");
17
+ var _index2 = _interopRequireDefault(require("../../../WithTheme/index.js"));
18
+ var _DataItem = _interopRequireDefault(require("./components/DataItem"));
19
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
20
+ var _constants = require("./constants.js");
21
+ var _theme = require("./theme");
22
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
26
+ const UTPanel = _ref => {
27
+ let {
28
+ children,
29
+ classes: theme,
30
+ classNames,
31
+ collapsableHeader = true,
32
+ currentStep = 1,
33
+ disableScrollbar = false,
34
+ HeaderComponent,
35
+ headerItems,
36
+ headerMainActionButton = {},
37
+ headerSecondaryActionButton = {},
38
+ hideCloseButton = false,
39
+ hideHeader = false,
40
+ hideMainButton = false,
41
+ isWorkflow = false,
42
+ mainButton = {},
43
+ modalProps,
44
+ onClose,
45
+ onEndReachedCallback,
46
+ onOpen = () => {},
47
+ open,
48
+ panelSide,
49
+ perfectScrollbarOptions,
50
+ singleHeaderItemsColumn = false,
51
+ size = 'M',
52
+ stepsCount,
53
+ subtitle = '',
54
+ title = '',
55
+ titleProps = {},
56
+ ...props
57
+ } = _ref;
58
+ const classes = (0, _react.useMemo)(() => (0, _classesUtils.mergeClasses)(theme, classNames), [classNames, theme]);
59
+ const [collapseHeader, setCollapseHeader] = (0, _react.useState)(true);
60
+ const {
61
+ closeButton: closeButtonClass,
62
+ headerContainer: headerContainerClass,
63
+ iconClose: iconCloseClass,
64
+ perfectScrollbar: perfectScrollbarClass,
65
+ title: titleClass,
66
+ ...drawerClasses
67
+ } = classes;
68
+ return /*#__PURE__*/_react.default.createElement(_SwipeableDrawer.default, _extends({
69
+ anchor: panelSide,
70
+ classes: {
71
+ ...drawerClasses,
72
+ paper: `${_stylesModule.default.paper} ${drawerClasses.paper} ${_stylesModule.default[_constants.SIZES[size]]}`,
73
+ root: drawerClasses.root
74
+ },
75
+ disableSwipeToOpen: true,
76
+ ModalProps: {
77
+ ...modalProps
78
+ },
79
+ onClose: onClose,
80
+ onOpen: onOpen,
81
+ open: open,
82
+ swipeAreaWidth: 0
83
+ }, props), /*#__PURE__*/_react.default.createElement("div", {
84
+ className: _stylesModule.default.controlAreaContainer
85
+ }, /*#__PURE__*/_react.default.createElement("div", {
86
+ className: _stylesModule.default.controlAreaBar
87
+ }, !hideCloseButton && /*#__PURE__*/_react.default.createElement(_UTButton.default, {
88
+ classNames: {
89
+ icon: iconCloseClass,
90
+ root: closeButtonClass
91
+ },
92
+ Icon: "IconX",
93
+ onClick: onClose,
94
+ variant: "text"
95
+ })), isWorkflow && /*#__PURE__*/_react.default.createElement(_index.default, {
96
+ classNames: {
97
+ barColorPrimary: classes.barColorPrimary,
98
+ container: _stylesModule.default.progressBarContainer,
99
+ colorPrimary: classes.colorPrimary
100
+ },
101
+ value: currentStep * 100 / stepsCount
102
+ })), !hideHeader && /*#__PURE__*/_react.default.createElement("div", {
103
+ className: `${_stylesModule.default.headerContainer} ${headerContainerClass}`
104
+ }, HeaderComponent || /*#__PURE__*/_react.default.createElement("div", {
105
+ className: _stylesModule.default.headerArea
106
+ }, /*#__PURE__*/_react.default.createElement("div", {
107
+ className: _stylesModule.default.headerLeftArea
108
+ }, /*#__PURE__*/_react.default.createElement("div", {
109
+ className: _stylesModule.default.titleArea
110
+ }, /*#__PURE__*/_react.default.createElement(_UTLabel.default, _extends({
111
+ className: classes.title,
112
+ variant: "title2",
113
+ weight: "medium"
114
+ }, titleProps), title), collapsableHeader && /*#__PURE__*/_react.default.createElement(_UTButton.default, {
115
+ Icon: collapseHeader ? 'IconChevronUp' : 'IconChevronDown',
116
+ onClick: () => setCollapseHeader(!collapseHeader),
117
+ size: "small",
118
+ variant: "text"
119
+ })), subtitle && /*#__PURE__*/_react.default.createElement("div", {
120
+ className: _stylesModule.default.subtitleArea
121
+ }, /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
122
+ colorTheme: "gray"
123
+ }, subtitle))), /*#__PURE__*/_react.default.createElement("div", {
124
+ className: _stylesModule.default.headerRightArea
125
+ }, !(0, _isEmpty.default)(headerSecondaryActionButton) && /*#__PURE__*/_react.default.createElement(_UTButton.default, {
126
+ colorTheme: headerSecondaryActionButton.colorTheme || 'primary',
127
+ onClick: headerSecondaryActionButton.callBack,
128
+ variant: headerSecondaryActionButton.variant || 'semitransparent'
129
+ }, headerSecondaryActionButton.text), !(0, _isEmpty.default)(headerMainActionButton) && /*#__PURE__*/_react.default.createElement(_UTButton.default, {
130
+ colorTheme: headerMainActionButton.colorTheme || 'success',
131
+ onClick: headerMainActionButton.callBack,
132
+ variant: headerMainActionButton.variant || 'filled'
133
+ }, headerMainActionButton.text)))), !(0, _isEmpty.default)(headerItems) && /*#__PURE__*/_react.default.createElement("div", {
134
+ className: `${_stylesModule.default.headerItemsContainer}
135
+ ${collapseHeader ? _stylesModule.default.expandedContainer : _stylesModule.default.collapsedContainer}
136
+ ${singleHeaderItemsColumn && _stylesModule.default.singleHeaderItemsColumn || ''}`
137
+ }, headerItems.map(_DataItem.default)), /*#__PURE__*/_react.default.createElement("div", {
138
+ className: `${_stylesModule.default.bodyContainer} ${classes.bodyContainer}`
139
+ }, disableScrollbar ? children : /*#__PURE__*/_react.default.createElement(_reactPerfectScrollbar.default, {
140
+ className: `${_stylesModule.default.perfectScrollbar} ${perfectScrollbarClass}`,
141
+ onYReachEnd: onEndReachedCallback,
142
+ options: {
143
+ suppressScrollX: true,
144
+ ...perfectScrollbarOptions
145
+ }
146
+ }, children)), !hideMainButton && /*#__PURE__*/_react.default.createElement(_UTButton.default, _extends({
147
+ classNames: {
148
+ root: _stylesModule.default.mainButton
149
+ },
150
+ size: "large"
151
+ }, mainButton), mainButton?.text || _constants.ACCEPT_BUTTON_TEXT));
152
+ };
153
+ UTPanel.propTypes = {
154
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
155
+ classNames: _propTypes.object,
156
+ collapsableHeader: _propTypes.bool,
157
+ currentStep: _propTypes.number,
158
+ disableScrollbar: _propTypes.bool,
159
+ HeaderComponent: (0, _propTypes.oneOfType)([_propTypes.element, _propTypes.elementType]),
160
+ headerItems: (0, _propTypes.arrayOf)((0, _propTypes.shape)({
161
+ title: _propTypes.string,
162
+ icon: _propTypes.string,
163
+ value: _propTypes.string
164
+ })),
165
+ headerMainActionButton: (0, _propTypes.shape)({
166
+ callBack: _propTypes.func,
167
+ colorTheme: _propTypes.string,
168
+ text: _propTypes.string,
169
+ variant: _propTypes.string
170
+ }),
171
+ headerSecondaryActionButton: (0, _propTypes.shape)({
172
+ callBack: _propTypes.func,
173
+ colorTheme: _propTypes.string,
174
+ text: _propTypes.string,
175
+ variant: _propTypes.string
176
+ }),
177
+ isWorkflow: _propTypes.bool,
178
+ mainButton: _propTypes.object,
179
+ modalProps: _propTypes.object,
180
+ onClose: _propTypes.func,
181
+ onEndReachedCallback: _propTypes.func,
182
+ onOpen: _propTypes.func,
183
+ open: _propTypes.bool,
184
+ panelSide: _propTypes.string,
185
+ perfectScrollbarOptions: _propTypes.object,
186
+ hideCloseButton: _propTypes.bool,
187
+ hideMainButton: _propTypes.bool,
188
+ hideHeader: _propTypes.bool,
189
+ singleHeaderItemsColumn: _propTypes.bool,
190
+ size: _propTypes.string,
191
+ stepsCount: _propTypes.number,
192
+ subtitle: _propTypes.string,
193
+ title: _propTypes.string,
194
+ titleProps: _propTypes.object
195
+ };
196
+ var _default = exports.default = (0, _index2.default)(_theme.retrieveStyle)(UTPanel);
@@ -0,0 +1,113 @@
1
+ $large-panel-size: 600px;
2
+ $medium-panel-size: 450px;
3
+
4
+ .paper {
5
+ display: flex;
6
+ height: calc(100% - 20px);
7
+ position: absolute;
8
+ }
9
+
10
+ .controlAreaBar {
11
+ display: flex;
12
+ justify-content: flex-end;
13
+ padding: 8px;
14
+ }
15
+
16
+ .controlAreaContainer {
17
+ display: flex;
18
+ flex-direction: column;
19
+ }
20
+
21
+ .headerContainer {
22
+ padding: 8px 24px;
23
+ }
24
+
25
+ .headerArea {
26
+ align-items: center;
27
+ display: flex;
28
+ justify-content: space-between;
29
+ }
30
+
31
+ .headerLeftArea {
32
+ display: flex;
33
+ flex-direction: column;
34
+ grid-gap: 8px;
35
+ }
36
+
37
+ .headerRightArea {
38
+ display: flex;
39
+ grid-gap: 8px;
40
+ }
41
+
42
+ .titleArea {
43
+ align-items: center;
44
+ display: flex;
45
+ grid-gap: 12px;
46
+ }
47
+
48
+ .subtitleArea {
49
+ display: flex;
50
+ }
51
+
52
+ .singleHeaderItemsColumn {
53
+ display: block !important;
54
+ }
55
+
56
+ .headerItemsContainer {
57
+ display: flex;
58
+ flex-wrap: wrap;
59
+ padding: 0 24px;
60
+ transition:
61
+ max-height 0.08s ease,
62
+ opacity 0.08s ease,
63
+ margin-top 0.08s ease;
64
+
65
+ max-height: 100%;
66
+ margin-top: 0;
67
+ }
68
+
69
+ .expandedContainer {
70
+ opacity: 1;
71
+ max-height: 100%;
72
+ }
73
+
74
+ .collapsedContainer {
75
+ opacity: 0;
76
+ max-height: 0;
77
+ margin-top: -16px;
78
+ }
79
+
80
+ .large {
81
+ width: $large-panel-size;
82
+ }
83
+
84
+ .medium {
85
+ width: $medium-panel-size;
86
+ }
87
+
88
+ .progressBar {
89
+ height: 8px;
90
+ }
91
+
92
+ .bodyContainer {
93
+ padding: 24px;
94
+ }
95
+
96
+ .perfectScrollbar {
97
+ margin: 10px 0;
98
+ }
99
+
100
+ .root {
101
+ position: absolute !important;
102
+ }
103
+
104
+ .progressBarContainer {
105
+ margin-bottom: 16px;
106
+ }
107
+
108
+ .mainButton {
109
+ border-radius: 0 !important;
110
+ bottom: 0;
111
+ position: absolute;
112
+ width: 100%;
113
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.retrieveStyle = void 0;
7
+ var _seamlessImmutable = require("seamless-immutable");
8
+ const retrieveStyle = _ref => {
9
+ let {
10
+ theme
11
+ } = _ref;
12
+ return {
13
+ barColorPrimary: {
14
+ background: (0, _seamlessImmutable.getIn)(theme, ['UTPanel', 'progressBar', 'barColorPrimary', 'background'], 'linear-gradient(90deg, #25E0A6 0%, #20BBFC 100%) !important')
15
+ },
16
+ colorPrimary: {
17
+ backgroundColor: (0, _seamlessImmutable.getIn)(theme, ['UTPanel', 'progressBar', 'colorPrimary', 'backgroundColor'], `${theme.Palette.light['04']} !important`)
18
+ }
19
+ };
20
+ };
21
+ exports.retrieveStyle = retrieveStyle;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/energy-ui",
3
- "version": "3.21.2",
3
+ "version": "3.22.1",
4
4
  "description": "Widergy Web Components",
5
5
  "author": "widergy",
6
6
  "license": "MIT",