@widergy/utilitygo-smart-bill-web 1.11.0 → 1.12.0

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 (28) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Indicator/index.js +8 -11
  3. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Indicator/styles.module.scss +1 -4
  4. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Indicator/utils.js +4 -49
  5. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Legend/index.js +50 -0
  6. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Legend/styles.module.scss +34 -0
  7. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Stages/index.js +65 -0
  8. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Stages/styles.module.scss +88 -0
  9. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/constants.js +6 -37
  10. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/index.js +20 -5
  11. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/styles.module.scss +4 -1
  12. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/utils.js +68 -31
  13. package/dist/components/RatesDefinition/components/CategoryByConsumption/constants.js +42 -0
  14. package/dist/components/RatesDefinition/components/CategoryByConsumption/index.js +3 -12
  15. package/dist/components/RatesDefinition/components/CategoryByConsumption/utils.js +16 -0
  16. package/dist/shared/types/rateStagesTypes.js +1 -1
  17. package/package.json +1 -1
  18. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/components/LimitsLine/index.js +0 -23
  19. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/components/LimitsLine/styles.module.scss +0 -15
  20. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/components/SubStage/index.js +0 -63
  21. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/components/SubStage/styles.module.scss +0 -5
  22. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/components/SubStage/utils.js +0 -14
  23. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/index.js +0 -68
  24. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/components/Stage/styles.module.scss +0 -32
  25. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/index.js +0 -59
  26. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/Bars/styles.module.scss +0 -3
  27. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/LegendItem/index.js +0 -80
  28. package/dist/components/RatesDefinition/components/CategoryByConsumption/components/RateStagesGraph/components/LegendItem/styles.module.scss +0 -57
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [1.12.0](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v1.11.0...v1.12.0) (2022-01-17)
2
+
3
+
4
+ ### Features
5
+
6
+ * rate stages step redesign and refactor ([#24](https://github.com/widergy/UtilityGO-Smart-Bill-Web/issues/24)) ([3ac585b](https://github.com/widergy/UtilityGO-Smart-Bill-Web/commit/3ac585b57ce1e426979cac80bcf4980978399339))
7
+
1
8
  # [1.11.0](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v1.10.2...v1.11.0) (2022-01-04)
2
9
 
3
10
 
@@ -15,6 +15,8 @@ var _WithContextApi = _interopRequireDefault(require("../../../../../../../WithC
15
15
 
16
16
  var _smartBillTypes = require("../../../../../../../../shared/types/smartBillTypes");
17
17
 
18
+ var _constants = require("../../../../constants");
19
+
18
20
  var _IndicatorLabel = _interopRequireDefault(require("./components/IndicatorLabel"));
19
21
 
20
22
  var _utils = require("./utils");
@@ -24,22 +26,17 @@ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
27
 
26
28
  var Indicator = function Indicator(_ref) {
27
- var value = _ref.value,
29
+ var indicatorPosition = _ref.indicatorPosition,
30
+ value = _ref.value,
28
31
  unit = _ref.unit,
29
32
  rateStages = _ref.rateStages,
30
- isDesktop = _ref.isDesktop,
31
33
  contextApiInfo = _ref.contextApiInfo;
32
34
  var primary = contextApiInfo.config.colors.primary;
33
-
34
- var _getIndicatorPosition = (0, _utils.getIndicatorPosition)(value, rateStages, isDesktop),
35
- containerLeft = _getIndicatorPosition.containerLeft,
36
- labelOffset = _getIndicatorPosition.labelOffset;
37
-
38
35
  return /*#__PURE__*/_react.default.createElement("div", {
39
36
  className: _stylesModule.default.container
40
37
  }, /*#__PURE__*/_react.default.createElement("div", {
41
38
  style: {
42
- left: containerLeft
39
+ left: "calc(".concat(indicatorPosition * 100, "% + ").concat(_constants.INITIAL_INDICATOR_POSITION, ")")
43
40
  },
44
41
  className: _stylesModule.default.indicator
45
42
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -50,16 +47,16 @@ var Indicator = function Indicator(_ref) {
50
47
  }), /*#__PURE__*/_react.default.createElement(_IndicatorLabel.default, {
51
48
  value: value,
52
49
  unit: unit,
53
- labelOffset: labelOffset
50
+ labelOffset: (0, _utils.getLabelOffset)(value, rateStages)
54
51
  })));
55
52
  };
56
53
 
57
54
  Indicator.propTypes = {
58
55
  value: _propTypes.number,
56
+ indicatorPosition: _propTypes.number,
59
57
  unit: _propTypes.string,
60
58
  contextApiInfo: _smartBillTypes.contextApiInfoTypes,
61
- rateStages: _rateStagesTypes.rateStagesTypes,
62
- isDesktop: _propTypes.bool
59
+ rateStages: _rateStagesTypes.rateStagesTypes
63
60
  };
64
61
 
65
62
  var _default = (0, _WithContextApi.default)()(Indicator);
@@ -1,12 +1,9 @@
1
- @import '../../../../../../../../scss/variables/_colorsExport.scss';
2
- @import '../../../../../../../../scss/variables/_mediaQueries';
3
- @import '../../../../../../../../scss/variables/_sizes.scss';
4
-
5
1
  $arrow-width: 12px;
6
2
  $arrow-height: 8px;
7
3
 
8
4
  .container {
9
5
  display: flex;
6
+ padding-top: 0 !important;
10
7
  width: 100%;
11
8
  }
12
9
 
@@ -3,35 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getIndicatorPosition = void 0;
6
+ exports.getLabelOffset = void 0;
7
7
 
8
- var _constants = require("../../constants");
8
+ var _constants = require("../../../../constants");
9
9
 
10
- var _utils = require("../../utils");
11
-
12
- var getStageWidth = function getStageWidth(totalStages, isDesktop) {
13
- var barsMargin = isDesktop ? _constants.BARS_MARGIN_DESKTOP : _constants.BARS_MARGIN_MOBILE;
14
- var stageMargin = isDesktop ? _constants.STAGE_MARGIN_DESKTOP : _constants.STAGE_MARGIN_MOBILE;
15
- return "(100% - 2 * ".concat(barsMargin, " - ").concat(totalStages - 1, " * ").concat(stageMargin, ") / ").concat(totalStages);
16
- };
17
-
18
- var stagePosition = function stagePosition(value, rateStages, isDesktop) {
19
- var stageMargin = isDesktop ? _constants.STAGE_MARGIN_DESKTOP : _constants.STAGE_MARGIN_MOBILE;
20
- var exceededStages = rateStages.filter(function (stage) {
21
- return stage.range[_constants.MAX_VALUE] !== _constants.INFINITE && stage.range[_constants.MAX_VALUE] < value;
22
- }).length;
23
- var totalStages = rateStages.length;
24
- var marginsCorrection = "".concat(exceededStages, " * ").concat(stageMargin);
25
- return "".concat(getStageWidth(totalStages, isDesktop), " * ").concat(exceededStages, " + ").concat(marginsCorrection);
26
- };
27
-
28
- var subStagePosition = function subStagePosition(value, rateStages, isDesktop) {
29
- var totalStages = rateStages.length;
30
- var currentStage = (0, _utils.getCurrentStage)(value, rateStages);
31
- var currentStageRangeWidth = (0, _utils.getStageRangeWidth)(currentStage);
32
- var deltaFromStageInit = value - currentStage.range[_constants.MIN_VALUE] <= currentStageRangeWidth ? value - currentStage.range[_constants.MIN_VALUE] : currentStageRangeWidth;
33
- return "".concat(getStageWidth(totalStages, isDesktop), " * ").concat(deltaFromStageInit, " / ").concat(currentStageRangeWidth);
34
- };
10
+ var _utils = require("../../../../utils");
35
11
 
36
12
  var relativePorcentageValue = function relativePorcentageValue(value, rateStages) {
37
13
  var globalLastSubRate = rateStages.at(-1).sub_rate_stages.at(-1).range;
@@ -50,25 +26,4 @@ var getLabelOffset = function getLabelOffset(value, rateStages) {
50
26
  return isLastRate ? "calc(-".concat(baseOffset, " + ").concat(_constants.INDICATOR_LABEL_LAST_OFFSET, ")") : isFirstRate ? "calc(-".concat(baseOffset, " - ").concat(_constants.INDICATOR_LABEL_FIRST_OFFSET, ")") : _constants.INDICATOR_LABEL_DEFAULT_OFFSET;
51
27
  };
52
28
 
53
- var subStagePositionRounded = function subStagePositionRounded(value, rateStages) {
54
- var roundedVal = Math.round(value);
55
- var currentStage = (0, _utils.getCurrentStage)(value, rateStages);
56
-
57
- var findRange = function findRange(_ref) {
58
- var range = _ref.range;
59
- return roundedVal >= range[0] && (!range[1] || roundedVal <= range[1]);
60
- };
61
-
62
- var currentSubstageIndex = currentStage.sub_rate_stages.findIndex(findRange);
63
- var stageWidth = getStageWidth(rateStages.length, false);
64
- return "".concat(stageWidth, " * ").concat((currentSubstageIndex + 0.5) / currentStage.sub_rate_stages.length);
65
- };
66
-
67
- var getIndicatorPosition = function getIndicatorPosition(value, rateStages, isDesktop) {
68
- return {
69
- containerLeft: "calc(".concat(isDesktop ? _constants.INITIAL_INDICATOR_POSITION_DESKTOP : _constants.INITIAL_INDICATOR_POSITION_MOBILE, " + ").concat(stagePosition(value, rateStages, isDesktop), " + ").concat(isDesktop ? subStagePosition(value, rateStages, isDesktop) : subStagePositionRounded(value, rateStages), ")"),
70
- labelOffset: getLabelOffset(value, rateStages)
71
- };
72
- };
73
-
74
- exports.getIndicatorPosition = getIndicatorPosition;
29
+ exports.getLabelOffset = getLabelOffset;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _WithContextApi = _interopRequireDefault(require("../../../../../../../WithContextApi"));
13
+
14
+ var _smartBillTypes = require("../../../../../../../../shared/types/smartBillTypes");
15
+
16
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ var Legend = function Legend(_ref) {
21
+ var stagesFormattedData = _ref.stagesFormattedData,
22
+ contextApiInfo = _ref.contextApiInfo;
23
+ var Label = contextApiInfo.Label,
24
+ config = contextApiInfo.config;
25
+ var texts = config.texts;
26
+ return /*#__PURE__*/_react.default.createElement("div", {
27
+ className: _stylesModule.default.legendContainer
28
+ }, stagesFormattedData.map(function (stage) {
29
+ return stage.sub_rate_stages.map(function (substage) {
30
+ return /*#__PURE__*/_react.default.createElement("div", {
31
+ className: _stylesModule.default.legendLine
32
+ }, /*#__PURE__*/_react.default.createElement("div", {
33
+ className: _stylesModule.default.leftLabels
34
+ }, /*#__PURE__*/_react.default.createElement(Label, {
35
+ className: _stylesModule.default.name
36
+ }, substage.name), /*#__PURE__*/_react.default.createElement(Label, null, substage.i === 0 ? texts.ratesDefinition.consumptionUpToDesktop : texts.ratesDefinition.consumptionMoreThanDesktop)), /*#__PURE__*/_react.default.createElement(Label, {
37
+ className: _stylesModule.default.legendValue
38
+ }, substage.legend));
39
+ });
40
+ }));
41
+ };
42
+
43
+ Legend.propTypes = {
44
+ contextApiInfo: _smartBillTypes.contextApiInfoTypes,
45
+ stagesFormattedData: (0, _propTypes.arrayOf)(_propTypes.any)
46
+ };
47
+
48
+ var _default = (0, _WithContextApi.default)()(Legend);
49
+
50
+ exports.default = _default;
@@ -0,0 +1,34 @@
1
+ @import '../../../../../../../../scss/variables/_colorsExport.scss';
2
+ @import '../../../../../../../../scss/variables/_mediaQueries';
3
+
4
+ .legendContainer {
5
+ display: flex;
6
+ flex-direction: column;
7
+ border-top: 1px solid $borders-gray;
8
+
9
+ :last-child {
10
+ margin-bottom: 0;
11
+ }
12
+ }
13
+
14
+ .legendLine {
15
+ display: flex;
16
+ justify-content: space-between;
17
+ margin-bottom: 16px;
18
+ }
19
+
20
+ .leftLabels {
21
+ display: flex;
22
+
23
+ :first-child {
24
+ margin-right: 4px;
25
+ }
26
+ }
27
+
28
+ .name {
29
+ font-weight: 500;
30
+ }
31
+
32
+ .legendValue {
33
+ font-weight: 500;
34
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _WithContextApi = _interopRequireDefault(require("../../../../../../../WithContextApi"));
13
+
14
+ var _smartBillTypes = require("../../../../../../../../shared/types/smartBillTypes");
15
+
16
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ var Stages = function Stages(_ref) {
21
+ var stagesFormattedData = _ref.stagesFormattedData,
22
+ contextApiInfo = _ref.contextApiInfo;
23
+ var Label = contextApiInfo.Label;
24
+
25
+ var toFinalWidth = function toFinalWidth(val) {
26
+ return {
27
+ width: "".concat(val * 100, "%")
28
+ };
29
+ };
30
+
31
+ return /*#__PURE__*/_react.default.createElement("div", {
32
+ className: _stylesModule.default.stagesContainer
33
+ }, stagesFormattedData.map(function (stage) {
34
+ return /*#__PURE__*/_react.default.createElement("div", {
35
+ className: _stylesModule.default.stage,
36
+ style: toFinalWidth(stage.width, 0.2)
37
+ }, /*#__PURE__*/_react.default.createElement(Label, {
38
+ className: _stylesModule.default.group
39
+ }, stage.group), /*#__PURE__*/_react.default.createElement("div", {
40
+ className: _stylesModule.default.substagesContainer
41
+ }, stage.sub_rate_stages.map(function (substage) {
42
+ return /*#__PURE__*/_react.default.createElement("div", {
43
+ className: _stylesModule.default.substage,
44
+ style: toFinalWidth(substage.width)
45
+ }, substage.label && /*#__PURE__*/_react.default.createElement(Label, {
46
+ withoutMarkdown: true,
47
+ className: _stylesModule.default.substageValue
48
+ }, substage.label), /*#__PURE__*/_react.default.createElement("div", {
49
+ className: _stylesModule.default.substageName,
50
+ style: {
51
+ backgroundColor: substage.color
52
+ }
53
+ }, /*#__PURE__*/_react.default.createElement(Label, null, substage.name)));
54
+ })));
55
+ }));
56
+ };
57
+
58
+ Stages.propTypes = {
59
+ contextApiInfo: _smartBillTypes.contextApiInfoTypes,
60
+ stagesFormattedData: (0, _propTypes.arrayOf)(_propTypes.any)
61
+ };
62
+
63
+ var _default = (0, _WithContextApi.default)()(Stages);
64
+
65
+ exports.default = _default;
@@ -0,0 +1,88 @@
1
+ @import '../../../../../../../../scss/variables/_colorsExport.scss';
2
+ @import '../../../../../../../../scss/variables/_mediaQueries';
3
+
4
+ $substage-spacing: 4px;
5
+ $substage-spacing-responsive: 2px;
6
+
7
+ .stage {
8
+ padding-right: $substage-spacing;
9
+
10
+ @media #{$tablet-mobile} {
11
+ padding-right: $substage-spacing-responsive;
12
+ }
13
+ }
14
+
15
+ .group {
16
+ background-color: $light-gray;
17
+ font-weight: 500;
18
+ margin-bottom: 8px;
19
+ padding: 8px;
20
+ text-align: center;
21
+ white-space: nowrap;
22
+
23
+ @media #{$mobile} {
24
+ font-size: 12px;
25
+ }
26
+
27
+ @media #{$desktop} {
28
+ margin-bottom: 0;
29
+ }
30
+ }
31
+
32
+ .stagesContainer {
33
+ display: flex;
34
+ flex-direction: row;
35
+ padding-bottom: 32px;
36
+
37
+ > :last-child {
38
+ padding-right: 0;
39
+ }
40
+
41
+ @media #{$mobile} {
42
+ padding-bottom: 16px !important;
43
+ }
44
+ }
45
+
46
+ .substagesContainer {
47
+ align-items: flex-end;
48
+ display: flex;
49
+
50
+ :last-child {
51
+ margin-right: 0;
52
+ }
53
+ }
54
+
55
+ .substage {
56
+ margin-right: $substage-spacing;
57
+
58
+ @media #{$tablet-mobile} {
59
+ margin-right: $substage-spacing-responsive;
60
+ }
61
+ }
62
+
63
+ .substageValue {
64
+ color: $gray;
65
+ display: flex;
66
+ font-family: 'Swiss';
67
+ font-size: 13px;
68
+ font-weight: 500;
69
+ justify-content: center;
70
+ padding: 12px 0;
71
+ text-align: center;
72
+ width: 100%;
73
+ }
74
+
75
+ .substageName {
76
+ align-items: center;
77
+ display: flex;
78
+ height: 32px;
79
+ justify-content: center;
80
+
81
+ :first-child {
82
+ font-weight: 500;
83
+
84
+ @media #{$mobile} {
85
+ font-size: 13px;
86
+ }
87
+ }
88
+ }
@@ -3,40 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SUB_STAGE_MARGIN_MOBILE = exports.SUB_STAGE_MARGIN_DESKTOP = exports.STAGE_MARGIN_MOBILE = exports.STAGE_MARGIN_DESKTOP = exports.MIN_VALUE = exports.MAX_VALUE = exports.MAX_RANGE_LIMIT = exports.LAST_SUB_STAGE_MARGIN = exports.LAST_STAGE_MARGIN = exports.INITIAL_INDICATOR_POSITION_MOBILE = exports.INITIAL_INDICATOR_POSITION_DESKTOP = exports.INFINITE = exports.INDICATOR_LABEL_LAST_OFFSET = exports.INDICATOR_LABEL_FIRST_OFFSET = exports.INDICATOR_LABEL_DEFAULT_OFFSET = exports.DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH = exports.BARS_MARGIN_MOBILE = exports.BARS_MARGIN_DESKTOP = void 0;
7
- var INFINITE = null;
8
- exports.INFINITE = INFINITE;
9
- var MAX_VALUE = 1;
10
- exports.MAX_VALUE = MAX_VALUE;
11
- var MIN_VALUE = 0;
12
- exports.MIN_VALUE = MIN_VALUE;
13
- var MAX_RANGE_LIMIT = 9999999;
14
- exports.MAX_RANGE_LIMIT = MAX_RANGE_LIMIT;
15
- var DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH = 200;
16
- exports.DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH = DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH;
17
- var INITIAL_INDICATOR_POSITION_DESKTOP = '-4px';
18
- exports.INITIAL_INDICATOR_POSITION_DESKTOP = INITIAL_INDICATOR_POSITION_DESKTOP;
19
- var INITIAL_INDICATOR_POSITION_MOBILE = '-4px';
20
- exports.INITIAL_INDICATOR_POSITION_MOBILE = INITIAL_INDICATOR_POSITION_MOBILE;
21
- var BARS_MARGIN_DESKTOP = '0px';
22
- exports.BARS_MARGIN_DESKTOP = BARS_MARGIN_DESKTOP;
23
- var BARS_MARGIN_MOBILE = '0px';
24
- exports.BARS_MARGIN_MOBILE = BARS_MARGIN_MOBILE;
25
- var LAST_STAGE_MARGIN = '0px';
26
- exports.LAST_STAGE_MARGIN = LAST_STAGE_MARGIN;
27
- var STAGE_MARGIN_DESKTOP = '4px';
28
- exports.STAGE_MARGIN_DESKTOP = STAGE_MARGIN_DESKTOP;
29
- var STAGE_MARGIN_MOBILE = '2px';
30
- exports.STAGE_MARGIN_MOBILE = STAGE_MARGIN_MOBILE;
31
- var SUB_STAGE_MARGIN_DESKTOP = '4px';
32
- exports.SUB_STAGE_MARGIN_DESKTOP = SUB_STAGE_MARGIN_DESKTOP;
33
- var SUB_STAGE_MARGIN_MOBILE = '2px';
34
- exports.SUB_STAGE_MARGIN_MOBILE = SUB_STAGE_MARGIN_MOBILE;
35
- var LAST_SUB_STAGE_MARGIN = '0px';
36
- exports.LAST_SUB_STAGE_MARGIN = LAST_SUB_STAGE_MARGIN;
37
- var INDICATOR_LABEL_FIRST_OFFSET = '0px';
38
- exports.INDICATOR_LABEL_FIRST_OFFSET = INDICATOR_LABEL_FIRST_OFFSET;
39
- var INDICATOR_LABEL_LAST_OFFSET = '16px';
40
- exports.INDICATOR_LABEL_LAST_OFFSET = INDICATOR_LABEL_LAST_OFFSET;
41
- var INDICATOR_LABEL_DEFAULT_OFFSET = '-48px';
42
- exports.INDICATOR_LABEL_DEFAULT_OFFSET = INDICATOR_LABEL_DEFAULT_OFFSET;
6
+ exports.MIN_STAGE_WIDTH = exports.DEFAULT_LAST_INFINITE_RANGE = void 0;
7
+ var DEFAULT_LAST_INFINITE_RANGE = 200; // kWh
8
+
9
+ exports.DEFAULT_LAST_INFINITE_RANGE = DEFAULT_LAST_INFINITE_RANGE;
10
+ var MIN_STAGE_WIDTH = 0.2;
11
+ exports.MIN_STAGE_WIDTH = MIN_STAGE_WIDTH;
@@ -17,12 +17,16 @@ var _rateStagesTypes = require("../../../../../../shared/types/rateStagesTypes")
17
17
 
18
18
  var _deviceSizes = require("../../../../../../constants/deviceSizes");
19
19
 
20
- var _Bars = _interopRequireDefault(require("./components/Bars"));
20
+ var _Stages = _interopRequireDefault(require("./components/Stages"));
21
21
 
22
22
  var _Indicator = _interopRequireDefault(require("./components/Indicator"));
23
23
 
24
24
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
25
25
 
26
+ var _utils = require("./utils");
27
+
28
+ var _Legend = _interopRequireDefault(require("./components/Legend"));
29
+
26
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
31
 
28
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -44,7 +48,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
44
48
  var RateStagesGraph = function RateStagesGraph(_ref) {
45
49
  var value = _ref.value,
46
50
  unit = _ref.unit,
47
- rateStages = _ref.rateStages;
51
+ rateStages = _ref.rateStages,
52
+ getStageColor = _ref.getStageColor;
48
53
 
49
54
  var _useState = (0, _react.useState)((0, _browser.isDesktop)(_deviceSizes.TabletBreakpoint)),
50
55
  _useState2 = _slicedToArray(_useState, 2),
@@ -62,22 +67,32 @@ var RateStagesGraph = function RateStagesGraph(_ref) {
62
67
  return window.removeEventListener(_browser.RESIZE_EVENT, handleResizeScreen);
63
68
  };
64
69
  }, []);
70
+
71
+ var _useMemo = (0, _react.useMemo)(function () {
72
+ return (0, _utils.getStagesFormattedData)(value, rateStages, getStageColor, isDesktopSize);
73
+ }, [isDesktopSize, value, rateStages, getStageColor]),
74
+ stagesFormattedData = _useMemo.stagesFormattedData,
75
+ indicatorPosition = _useMemo.indicatorPosition;
76
+
65
77
  return /*#__PURE__*/_react.default.createElement("div", {
66
78
  className: _stylesModule.default.container
67
- }, /*#__PURE__*/_react.default.createElement(_Bars.default, {
68
- rateStages: rateStages,
69
- isDesktop: isDesktopSize
79
+ }, /*#__PURE__*/_react.default.createElement(_Stages.default, {
80
+ stagesFormattedData: stagesFormattedData
70
81
  }), /*#__PURE__*/_react.default.createElement(_Indicator.default, {
82
+ indicatorPosition: indicatorPosition,
71
83
  value: value,
72
84
  unit: unit,
73
85
  rateStages: rateStages,
74
86
  isDesktop: isDesktopSize
87
+ }), !isDesktopSize && /*#__PURE__*/_react.default.createElement(_Legend.default, {
88
+ stagesFormattedData: stagesFormattedData
75
89
  }));
76
90
  };
77
91
 
78
92
  RateStagesGraph.propTypes = {
79
93
  value: _propTypes.number,
80
94
  unit: _propTypes.string,
95
+ getStageColor: _propTypes.func,
81
96
  rateStages: _rateStagesTypes.rateStagesTypes
82
97
  };
83
98
  var _default = RateStagesGraph;
@@ -6,7 +6,10 @@
6
6
  display: flex;
7
7
  flex-flow: column;
8
8
  width: 100%;
9
- padding: $default-container-padding;
9
+
10
+ > * {
11
+ padding: $default-container-padding;
12
+ }
10
13
 
11
14
  @media #{$tablet-mobile} {
12
15
  width: 100%;
@@ -3,47 +3,84 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getSubStageRangeWidth = exports.getStageRangeWidth = exports.getCurrentStage = void 0;
6
+ exports.getStagesFormattedData = void 0;
7
+
8
+ var _lodash = _interopRequireDefault(require("lodash"));
7
9
 
8
10
  var _constants = require("./constants");
9
11
 
10
- var normalizeRange = function normalizeRange(range) {
11
- return range.map(function (val) {
12
- return typeof val === 'string' ? parseInt(val, 10) : val;
13
- });
14
- };
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
 
16
- var isInfinite = function isInfinite(range) {
17
- return range[_constants.MAX_VALUE] === _constants.INFINITE || range[_constants.MAX_VALUE] >= _constants.MAX_RANGE_LIMIT;
18
- };
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
15
 
20
- var getCurrentStage = function getCurrentStage(value, rateStages) {
21
- return rateStages.find(function (stage) {
22
- return stage.range[_constants.MIN_VALUE] <= value && (value <= stage.range[_constants.MAX_VALUE] || stage.range[_constants.MAX_VALUE] === _constants.INFINITE);
23
- });
24
- };
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
17
 
26
- exports.getCurrentStage = getCurrentStage;
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
19
 
28
- var getSubStageRangeWidth = function getSubStageRangeWidth(subStage) {
29
- var range = subStage.range;
30
- range = normalizeRange(range);
31
- return isInfinite(range) || !range[_constants.MAX_VALUE] ? _constants.DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH : range[_constants.MAX_VALUE] - range[_constants.MIN_VALUE];
32
- };
20
+ var getResponsiveStageWidth = function getResponsiveStageWidth(rateStages, stage, totalSubStages) {
21
+ var totalWidth = 1; // if we have only one rate, then return max width.
22
+
23
+ if (rateStages.length === 1) {
24
+ return totalWidth;
25
+ } // We sort the stages based in sub stages in cases that former stages are larger than later ones.
33
26
 
34
- exports.getSubStageRangeWidth = getSubStageRangeWidth;
35
27
 
36
- var getStageRangeWidth = function getStageRangeWidth(stage) {
37
- var range = stage.range;
38
- range = normalizeRange(range);
28
+ var sortedRateStages = _lodash.default.sortBy(rateStages, function (_stage) {
29
+ return _stage.sub_rate_stages.length;
30
+ }); // Iterate over the sorted array until finished.
39
31
 
40
- if (isInfinite(range) || !range[_constants.MAX_VALUE]) {
41
- return stage.sub_rate_stages.reduce(function (totalWidth, subStage) {
42
- return totalWidth + getSubStageRangeWidth(subStage);
43
- }, 0);
44
- }
45
32
 
46
- return range[_constants.MAX_VALUE] - range[_constants.MIN_VALUE];
33
+ for (var index = 0; index < sortedRateStages.length; index += 1) {
34
+ // If we reached our stage then we break, we need to know the space former ones ocuppy and not the laters.
35
+ if (sortedRateStages[index].group === stage.group) {
36
+ break;
37
+ }
38
+
39
+ var currentSubStages = sortedRateStages[index].sub_rate_stages.length; // Maximum a stage can ocuppy (since minimum is MIN_STAGE_WIDTH), is MIN_STAGE_WIDTH times the other stages.
40
+
41
+ var width = Math.min(Math.max(currentSubStages / totalSubStages, _constants.MIN_STAGE_WIDTH), _constants.MIN_STAGE_WIDTH * rateStages.length);
42
+ totalWidth -= width;
43
+ } // Final width will be the minimum value between the calculated width and the total width left.
44
+
45
+
46
+ return Math.min(Math.max(stage.sub_rate_stages.length / totalSubStages, _constants.MIN_STAGE_WIDTH), totalWidth);
47
+ };
48
+
49
+ var getStagesFormattedData = function getStagesFormattedData(value, rateStages, getStageColor, isDesktop) {
50
+ var totalSubstagesCount = rateStages.reduce(function (count, stage) {
51
+ return count += stage.sub_rate_stages.length;
52
+ }, 0);
53
+ var i = -1;
54
+ var stagesFormattedData = rateStages.map(function (stage) {
55
+ return _objectSpread(_objectSpread({}, stage), {}, {
56
+ width: isDesktop ? stage.sub_rate_stages.length / totalSubstagesCount : getResponsiveStageWidth(rateStages, stage, totalSubstagesCount),
57
+ sub_rate_stages: stage.sub_rate_stages.map(function (substage) {
58
+ i += 1;
59
+ var labelValue = "".concat(substage.range[i === 0 ? 1 : 0], " ").concat(stage.unit);
60
+ return _objectSpread(_objectSpread({}, substage), {}, {
61
+ i: i,
62
+ width: 1 / stage.sub_rate_stages.length,
63
+ color: substage.color || getStageColor && getStageColor(i, totalSubstagesCount),
64
+ label: isDesktop && "".concat(i === 0 ? '< ' : i === 1 ? '> ' : '').concat(labelValue),
65
+ legend: !isDesktop && labelValue
66
+ });
67
+ })
68
+ });
69
+ });
70
+ var indicatorPosition = 0;
71
+ stagesFormattedData.find(function (stage) {
72
+ return stage.sub_rate_stages.find(function (substage) {
73
+ var isCurrentStage = substage.range[1] >= value;
74
+ var currentWidth = substage.width * stage.width;
75
+ var currentDeltaWidth = value - substage.range[0];
76
+ if (!isCurrentStage && substage.i === totalSubstagesCount - 1) indicatorPosition += Math.min(currentDeltaWidth / _constants.DEFAULT_LAST_INFINITE_RANGE * currentWidth, currentWidth);else if (!isCurrentStage) indicatorPosition += currentWidth;else indicatorPosition += currentDeltaWidth / (substage.range[1] - substage.range[0]) * currentWidth;
77
+ return isCurrentStage;
78
+ });
79
+ });
80
+ return {
81
+ stagesFormattedData: stagesFormattedData,
82
+ indicatorPosition: indicatorPosition
83
+ };
47
84
  };
48
85
 
49
- exports.getStageRangeWidth = getStageRangeWidth;
86
+ exports.getStagesFormattedData = getStagesFormattedData;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.THIGT_RANGE_BREAKPOINT_RATIO = exports.SUB_STAGE_MARGIN_MOBILE = exports.SUB_STAGE_MARGIN_DESKTOP = exports.STAGE_MARGIN_MOBILE = exports.STAGE_MARGIN_DESKTOP = exports.MIN_VALUE = exports.MAX_VALUE = exports.MAX_RANGE_LIMIT = exports.LAST_SUB_STAGE_MARGIN = exports.LAST_STAGE_MARGIN = exports.INITIAL_INDICATOR_POSITION = exports.INFINITE = exports.INDICATOR_LABEL_LAST_OFFSET = exports.INDICATOR_LABEL_FIRST_OFFSET = exports.INDICATOR_LABEL_DEFAULT_OFFSET = exports.DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH = exports.BARS_MARGIN_MOBILE = exports.BARS_MARGIN_DESKTOP = void 0;
7
+ var INFINITE = null;
8
+ exports.INFINITE = INFINITE;
9
+ var MAX_VALUE = 1;
10
+ exports.MAX_VALUE = MAX_VALUE;
11
+ var MIN_VALUE = 0;
12
+ exports.MIN_VALUE = MIN_VALUE;
13
+ var MAX_RANGE_LIMIT = 9999999;
14
+ exports.MAX_RANGE_LIMIT = MAX_RANGE_LIMIT;
15
+ var DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH = 200;
16
+ exports.DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH = DEFAULT_INFINITE_SUB_STAGE_RANGE_WIDTH;
17
+ var INITIAL_INDICATOR_POSITION = '-6px';
18
+ exports.INITIAL_INDICATOR_POSITION = INITIAL_INDICATOR_POSITION;
19
+ var BARS_MARGIN_DESKTOP = '0px';
20
+ exports.BARS_MARGIN_DESKTOP = BARS_MARGIN_DESKTOP;
21
+ var BARS_MARGIN_MOBILE = '0px';
22
+ exports.BARS_MARGIN_MOBILE = BARS_MARGIN_MOBILE;
23
+ var LAST_STAGE_MARGIN = '0px';
24
+ exports.LAST_STAGE_MARGIN = LAST_STAGE_MARGIN;
25
+ var STAGE_MARGIN_DESKTOP = '4px';
26
+ exports.STAGE_MARGIN_DESKTOP = STAGE_MARGIN_DESKTOP;
27
+ var STAGE_MARGIN_MOBILE = '2px';
28
+ exports.STAGE_MARGIN_MOBILE = STAGE_MARGIN_MOBILE;
29
+ var SUB_STAGE_MARGIN_DESKTOP = '4px';
30
+ exports.SUB_STAGE_MARGIN_DESKTOP = SUB_STAGE_MARGIN_DESKTOP;
31
+ var SUB_STAGE_MARGIN_MOBILE = '2px';
32
+ exports.SUB_STAGE_MARGIN_MOBILE = SUB_STAGE_MARGIN_MOBILE;
33
+ var LAST_SUB_STAGE_MARGIN = '0px';
34
+ exports.LAST_SUB_STAGE_MARGIN = LAST_SUB_STAGE_MARGIN;
35
+ var INDICATOR_LABEL_FIRST_OFFSET = '0px';
36
+ exports.INDICATOR_LABEL_FIRST_OFFSET = INDICATOR_LABEL_FIRST_OFFSET;
37
+ var INDICATOR_LABEL_LAST_OFFSET = '-8px';
38
+ exports.INDICATOR_LABEL_LAST_OFFSET = INDICATOR_LABEL_LAST_OFFSET;
39
+ var INDICATOR_LABEL_DEFAULT_OFFSET = '-48px';
40
+ exports.INDICATOR_LABEL_DEFAULT_OFFSET = INDICATOR_LABEL_DEFAULT_OFFSET;
41
+ var THIGT_RANGE_BREAKPOINT_RATIO = 0.1;
42
+ exports.THIGT_RANGE_BREAKPOINT_RATIO = THIGT_RANGE_BREAKPOINT_RATIO;
@@ -27,8 +27,6 @@ var _Category = _interopRequireDefault(require("./components/Category"));
27
27
 
28
28
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
29
29
 
30
- var _LegendItem = _interopRequireDefault(require("./components/RateStagesGraph/components/LegendItem"));
31
-
32
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
31
 
34
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -55,7 +53,8 @@ var CategoryByConsumption = function CategoryByConsumption(_ref) {
55
53
  var config = contextApiInfo.config,
56
54
  Label = contextApiInfo.Label;
57
55
  var rateStages = config.rateStages,
58
- texts = config.texts;
56
+ texts = config.texts,
57
+ getStageColor = config.getStageColor;
59
58
 
60
59
  var _useState = (0, _react.useState)((0, _browser.isDesktop)(_deviceSizes.TabletBreakpoint)),
61
60
  _useState2 = _slicedToArray(_useState, 2),
@@ -88,18 +87,10 @@ var CategoryByConsumption = function CategoryByConsumption(_ref) {
88
87
  category: category,
89
88
  wrap: true
90
89
  }), (valueCorrected === 0 || valueCorrected) && /*#__PURE__*/_react.default.createElement(_RateStagesGraph.default, {
90
+ getStageColor: getStageColor,
91
91
  value: valueCorrected,
92
92
  unit: unit,
93
93
  rateStages: rateStages
94
- })), !isDesktopSize && /*#__PURE__*/_react.default.createElement("div", {
95
- className: _stylesModule.default.ratesLegend
96
- }, rateStages.map(function (rateStage, index) {
97
- return /*#__PURE__*/_react.default.createElement(_LegendItem.default, {
98
- legendNumber: index + 1,
99
- showNumber: true,
100
- stagesLength: rateStages.length,
101
- stage: rateStage
102
- });
103
94
  })));
104
95
  };
105
96
 
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCurrentStage = void 0;
7
+
8
+ var _constants = require("./constants");
9
+
10
+ var getCurrentStage = function getCurrentStage(value, rateStages) {
11
+ return rateStages.find(function (stage) {
12
+ return stage.range[_constants.MIN_VALUE] <= value && (value <= stage.range[_constants.MAX_VALUE] || stage.range[_constants.MAX_VALUE] === _constants.INFINITE);
13
+ });
14
+ };
15
+
16
+ exports.getCurrentStage = getCurrentStage;
@@ -15,7 +15,7 @@ var subStageType = (0, _propTypes.shape)({
15
15
  });
16
16
  exports.subStageType = subStageType;
17
17
  var stageType = (0, _propTypes.shape)({
18
- group: _propTypes.number,
18
+ group: (0, _propTypes.oneOfType)([_propTypes.number, _propTypes.string]),
19
19
  range: (0, _propTypes.arrayOf)(_propTypes.number),
20
20
  unit: _propTypes.string,
21
21
  sub_rate_stages: (0, _propTypes.arrayOf)(subStageType)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/utilitygo-smart-bill-web",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "UtilityGO SmartBill Web",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- var LimitsLine = function LimitsLine() {
15
- return /*#__PURE__*/_react.default.createElement("div", {
16
- className: _stylesModule.default.lateralLines
17
- }, /*#__PURE__*/_react.default.createElement("div", {
18
- className: _stylesModule.default.middleLine
19
- }));
20
- };
21
-
22
- var _default = LimitsLine;
23
- exports.default = _default;
@@ -1,15 +0,0 @@
1
- @import '../../../../../../../../../../../../scss/variables/_colorsExport.scss';
2
-
3
- $lines-color: $black;
4
-
5
- .lateralLines {
6
- border-left: 1px solid $lines-color;
7
- border-right: 1px solid $lines-color;
8
- min-height: 8px;
9
- width: 100%;
10
- }
11
-
12
- .middleLine {
13
- border-bottom: 1px solid $lines-color;
14
- height: 50%;
15
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _propTypes = require("prop-types");
11
-
12
- var _smartBillTypes = require("../../../../../../../../../../../../shared/types/smartBillTypes");
13
-
14
- var _rateStagesTypes = require("../../../../../../../../../../../../shared/types/rateStagesTypes");
15
-
16
- var _WithContextApi = _interopRequireDefault(require("../../../../../../../../../../../WithContextApi"));
17
-
18
- var _constants = require("../../../../../../constants");
19
-
20
- var _aliases = require("../../../../../../../../../../../../shared/constants/aliases");
21
-
22
- var _utils = require("./utils");
23
-
24
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
25
-
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
- var SubStage = function SubStage(_ref) {
29
- var contextApiInfo = _ref.contextApiInfo,
30
- stage = _ref.stage,
31
- subStage = _ref.subStage,
32
- isLast = _ref.isLast,
33
- isDesktop = _ref.isDesktop,
34
- index = _ref.index,
35
- totalSubStages = _ref.totalSubStages;
36
- var Label = contextApiInfo.Label;
37
- var getStageColor = contextApiInfo.config.getStageColor;
38
- var width = isDesktop ? "calc(".concat((0, _utils.getSubStageWidth)(stage, subStage), "%)") : "calc(100% / ".concat(stage.sub_rate_stages.length || 1, ")");
39
- return /*#__PURE__*/_react.default.createElement("div", {
40
- style: {
41
- marginRight: isLast ? _constants.LAST_SUB_STAGE_MARGIN : isDesktop ? _constants.SUB_STAGE_MARGIN_DESKTOP : _constants.SUB_STAGE_MARGIN_MOBILE,
42
- backgroundColor: subStage.color || getStageColor && getStageColor(index, totalSubStages),
43
- width: width
44
- },
45
- className: _stylesModule.default.container
46
- }, /*#__PURE__*/_react.default.createElement(Label, {
47
- alias: _aliases.SUBSTAGE
48
- }, subStage.name));
49
- };
50
-
51
- SubStage.propTypes = {
52
- contextApiInfo: _smartBillTypes.contextApiInfoTypes,
53
- stage: _rateStagesTypes.stageType,
54
- totalSubStages: _propTypes.number,
55
- index: _propTypes.number,
56
- subStage: _rateStagesTypes.subStageType,
57
- isLast: _propTypes.bool,
58
- isDesktop: _propTypes.bool
59
- };
60
-
61
- var _default = (0, _WithContextApi.default)()(SubStage);
62
-
63
- exports.default = _default;
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getSubStageWidth = void 0;
7
-
8
- var _utils = require("../../../../../../utils");
9
-
10
- var getSubStageWidth = function getSubStageWidth(stage, subStage) {
11
- return (0, _utils.getSubStageRangeWidth)(subStage) / (0, _utils.getStageRangeWidth)(stage) * 100;
12
- };
13
-
14
- exports.getSubStageWidth = getSubStageWidth;
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _propTypes = require("prop-types");
11
-
12
- var _rateStagesTypes = require("../../../../../../../../../../shared/types/rateStagesTypes");
13
-
14
- var _constants = require("../../../../constants");
15
-
16
- var _LegendItem = _interopRequireDefault(require("../../../LegendItem"));
17
-
18
- var _LimitsLine = _interopRequireDefault(require("./components/LimitsLine"));
19
-
20
- var _SubStage = _interopRequireDefault(require("./components/SubStage"));
21
-
22
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- var Stage = function Stage(_ref) {
27
- var stage = _ref.stage,
28
- isLast = _ref.isLast,
29
- totalStages = _ref.totalStages,
30
- totalSubStages = _ref.totalSubStages,
31
- legendNumber = _ref.legendNumber,
32
- isDesktop = _ref.isDesktop;
33
- return /*#__PURE__*/_react.default.createElement("div", {
34
- style: {
35
- marginRight: isLast ? _constants.LAST_STAGE_MARGIN : isDesktop ? _constants.STAGE_MARGIN_DESKTOP : _constants.STAGE_MARGIN_MOBILE,
36
- width: "calc(".concat(100 / totalStages, "%)")
37
- },
38
- className: _stylesModule.default.container
39
- }, totalStages !== 1 && /*#__PURE__*/_react.default.createElement(_LegendItem.default, {
40
- stage: isDesktop && stage,
41
- stagesLength: totalStages,
42
- legendNumber: legendNumber,
43
- showNumber: !isDesktop
44
- }), /*#__PURE__*/_react.default.createElement(_LimitsLine.default, null), /*#__PURE__*/_react.default.createElement("div", {
45
- className: _stylesModule.default.bars
46
- }, stage.sub_rate_stages.map(function (subStage, index) {
47
- return /*#__PURE__*/_react.default.createElement(_SubStage.default, {
48
- key: subStage.category,
49
- index: subStage.category,
50
- stage: stage,
51
- totalSubStages: totalSubStages,
52
- subStage: subStage,
53
- isLast: index === stage.sub_rate_stages.length - 1,
54
- isDesktop: isDesktop
55
- });
56
- })));
57
- };
58
-
59
- Stage.propTypes = {
60
- stage: _rateStagesTypes.stageType,
61
- legendNumber: _propTypes.number,
62
- isLast: _propTypes.bool,
63
- totalStages: _propTypes.number,
64
- totalSubStages: _propTypes.number,
65
- isDesktop: _propTypes.bool
66
- };
67
- var _default = Stage;
68
- exports.default = _default;
@@ -1,32 +0,0 @@
1
- @import '../../../../../../../../../../scss/variables/_mediaQueries';
2
- @import '../../../../../../../../../../scss/variables/_colors';
3
-
4
- $icon-size: 21px;
5
-
6
- .container {
7
- align-items: center;
8
- display: flex;
9
- flex-flow: column;
10
- width: 100%;
11
- }
12
-
13
- .header {
14
- display: flex;
15
- white-space: nowrap;
16
- }
17
-
18
- .bars {
19
- display: flex;
20
- margin: 24px 0;
21
- min-height: 33px;
22
- width: 100%;
23
- }
24
-
25
- .icon {
26
- height: $icon-size;
27
- width: $icon-size;
28
-
29
- > g {
30
- fill: $black;
31
- }
32
- }
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _propTypes = require("prop-types");
11
-
12
- var _rateStagesTypes = require("../../../../../../../../shared/types/rateStagesTypes");
13
-
14
- var _constants = require("../../constants");
15
-
16
- var _Stage = _interopRequireDefault(require("./components/Stage"));
17
-
18
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- var Bars = function Bars(_ref) {
23
- var rateStages = _ref.rateStages,
24
- isDesktop = _ref.isDesktop;
25
- var barsMargin = isDesktop ? _constants.BARS_MARGIN_DESKTOP : _constants.BARS_MARGIN_MOBILE;
26
-
27
- var accumSubStages = function accumSubStages(count, currStage) {
28
- var _currStage$sub_rate_s;
29
-
30
- return count + ((_currStage$sub_rate_s = currStage.sub_rate_stages) === null || _currStage$sub_rate_s === void 0 ? void 0 : _currStage$sub_rate_s.length) || 1;
31
- };
32
-
33
- var totalSubStages = rateStages.reduce(accumSubStages, 0);
34
- return /*#__PURE__*/_react.default.createElement("div", {
35
- style: {
36
- margin: "0 ".concat(barsMargin),
37
- width: "calc(100% - 2 * ".concat(barsMargin, ")")
38
- },
39
- className: _stylesModule.default.container
40
- }, rateStages.map(function (stage, index) {
41
- return /*#__PURE__*/_react.default.createElement(_Stage.default, {
42
- key: stage.group,
43
- stage: stage,
44
- isFirst: index === 0,
45
- legendNumber: index + 1,
46
- isLast: index === rateStages.length - 1,
47
- totalStages: rateStages.length,
48
- totalSubStages: totalSubStages,
49
- isDesktop: isDesktop
50
- });
51
- }));
52
- };
53
-
54
- Bars.propTypes = {
55
- rateStages: _rateStagesTypes.rateStagesTypes,
56
- isDesktop: _propTypes.bool
57
- };
58
- var _default = Bars;
59
- exports.default = _default;
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _propTypes = require("prop-types");
11
-
12
- var _WithContextApi = _interopRequireDefault(require("../../../../../../../WithContextApi"));
13
-
14
- var _smartBillTypes = require("../../../../../../../../shared/types/smartBillTypes");
15
-
16
- var _Magnitude = _interopRequireDefault(require("../../../../../../../Magnitude"));
17
-
18
- var _aliases = require("../../../../../../../../shared/constants/aliases");
19
-
20
- var _rateStagesTypes = require("../../../../../../../../shared/types/rateStagesTypes");
21
-
22
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- var LegendItem = function LegendItem(_ref) {
27
- var contextApiInfo = _ref.contextApiInfo,
28
- legendNumber = _ref.legendNumber,
29
- stage = _ref.stage,
30
- showNumber = _ref.showNumber,
31
- stagesLength = _ref.stagesLength;
32
- var Label = contextApiInfo.Label,
33
- config = contextApiInfo.config,
34
- assets = contextApiInfo.assets;
35
- var texts = config.texts;
36
- var _texts$ratesDefinitio = texts.ratesDefinition,
37
- consumptionUpToDesktop = _texts$ratesDefinitio.consumptionUpToDesktop,
38
- consumptionMoreThanDesktop = _texts$ratesDefinitio.consumptionMoreThanDesktop,
39
- consumptionStartingFormDesktop = _texts$ratesDefinitio.consumptionStartingFormDesktop;
40
-
41
- var format = function format(text) {
42
- return text.toUpperCase();
43
- };
44
-
45
- return /*#__PURE__*/_react.default.createElement("div", {
46
- className: stage ? _stylesModule.default.legendItemContainer : _stylesModule.default.numberItemContainer
47
- }, showNumber && /*#__PURE__*/_react.default.createElement("div", {
48
- className: _stylesModule.default.stageNumber
49
- }, /*#__PURE__*/_react.default.createElement(Label, null, legendNumber)), stage && /*#__PURE__*/_react.default.createElement("div", {
50
- className: showNumber ? _stylesModule.default.stageDataContainer : _stylesModule.default.noNumberStageDataContainer
51
- }, /*#__PURE__*/_react.default.createElement(Label, {
52
- alias: _aliases.STAGE_DETAIL,
53
- className: _stylesModule.default.header
54
- }, format(legendNumber === 1 ? consumptionUpToDesktop : legendNumber === stagesLength ? consumptionMoreThanDesktop : consumptionStartingFormDesktop)), /*#__PURE__*/_react.default.createElement(_Magnitude.default, {
55
- numberAlias: _aliases.RATE_STAGE_MAGNITUDE,
56
- unitAlias: _aliases.RATE_STAGE_MAGNITUDE,
57
- value: legendNumber === 1 ? stage.range.at(-1) : stage.range.at(0),
58
- unit: stage.unit,
59
- Icon: function Icon() {
60
- return /*#__PURE__*/_react.default.createElement(assets.EnergyIcon, {
61
- className: _stylesModule.default.rateStagesEnergyIcon
62
- });
63
- },
64
- classes: {
65
- container: _stylesModule.default.magnitudeContainer
66
- }
67
- })));
68
- };
69
-
70
- LegendItem.propTypes = {
71
- stage: _rateStagesTypes.stageType,
72
- showNumber: true,
73
- stagesLength: _propTypes.number,
74
- contextApiInfo: _smartBillTypes.contextApiInfoTypes,
75
- legendNumber: _propTypes.number
76
- };
77
-
78
- var _default = (0, _WithContextApi.default)()(LegendItem);
79
-
80
- exports.default = _default;
@@ -1,57 +0,0 @@
1
- @import '../../../../../../../../scss/variables/_colors';
2
-
3
- $bubble-number-size: 24px;
4
-
5
- .legendItemContainer {
6
- align-items: center;
7
- display: flex;
8
- gap: 8px;
9
- justify-content: space-between;
10
- width: 100%;
11
- }
12
-
13
- .numberItemContainer {
14
- display: flex;
15
- justify-content: center;
16
- padding-bottom: 8px;
17
- }
18
-
19
- .stageDataContainer {
20
- align-items: center;
21
- display: flex;
22
- gap: 16px;
23
- justify-content: space-between;
24
- width: 100%;
25
- }
26
-
27
- .noNumberStageDataContainer {
28
- align-items: center;
29
- display: flex;
30
- flex-direction: column;
31
- gap: 24px;
32
- padding-bottom: 16px;
33
- width: 100%;
34
- }
35
-
36
- .magnitudeContainer {
37
- gap: 8px;
38
- }
39
-
40
- .stageNumber {
41
- align-items: center;
42
- background-color: $black;
43
- border-radius: 500px;
44
- display: flex;
45
- justify-content: center;
46
- min-width: $bubble-number-size;
47
- height: $bubble-number-size;
48
- width: $bubble-number-size;
49
-
50
- * {
51
- color: $white;
52
- }
53
- }
54
-
55
- .rateStagesEnergyIcon {
56
- height: 18px;
57
- }