@widergy/utilitygo-smart-bill-web 3.7.1 → 3.9.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [3.9.0](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v3.8.0...v3.9.0) (2025-07-10)
2
+
3
+
4
+ ### Features
5
+
6
+ * [UGEE-309] smart bill projection ([#57](https://github.com/widergy/UtilityGO-Smart-Bill-Web/issues/57)) ([bae9bcd](https://github.com/widergy/UtilityGO-Smart-Bill-Web/commit/bae9bcda49f30f82ee6e2dc6bb5f620fd5a27fec))
7
+
8
+ # [3.8.0](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v3.7.1...v3.8.0) (2025-06-27)
9
+
10
+
11
+ ### Features
12
+
13
+ * [CX-833, CX-851] smartbill analytics ([#55](https://github.com/widergy/UtilityGO-Smart-Bill-Web/issues/55)) ([312e83b](https://github.com/widergy/UtilityGO-Smart-Bill-Web/commit/312e83b9ffe4c350164667f2628ae10f0b2eab7e))
14
+
1
15
  ## [3.7.1](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v3.7.0...v3.7.1) (2025-06-18)
2
16
 
3
17
 
@@ -20,6 +20,7 @@ const AIPanel = _ref => {
20
20
  answer,
21
21
  error,
22
22
  getAnswer,
23
+ handlers = {},
23
24
  isOpen,
24
25
  loading,
25
26
  notEnoughBillsErrorType,
@@ -30,12 +31,19 @@ const AIPanel = _ref => {
30
31
  generatedByLabel,
31
32
  title: panelTitle
32
33
  } = translations?.AIPanel || {};
34
+ const {
35
+ trackOpenAIQuestion
36
+ } = handlers;
33
37
  const [openCards, setOpenCards] = (0, _react.useState)([]);
34
- const toggleCard = id => {
38
+ const toggleCard = (id, question) => {
35
39
  if (!answer?.[id] && !openCards.includes(id)) {
36
40
  getAnswer(id);
37
41
  }
38
- setOpenCards(prevOpenCards => prevOpenCards.includes(id) ? prevOpenCards.filter(openId => openId !== id) : [...prevOpenCards, id]);
42
+ setOpenCards(prevOpenCards => {
43
+ if (prevOpenCards.includes(id)) return prevOpenCards.filter(openId => openId !== id);
44
+ trackOpenAIQuestion?.(question);
45
+ return [...prevOpenCards, id];
46
+ });
39
47
  };
40
48
  const handleClose = () => {
41
49
  onClose?.();
@@ -82,7 +90,7 @@ const AIPanel = _ref => {
82
90
  isCollapsible: true,
83
91
  isOpen: openCards.includes(id),
84
92
  key: id,
85
- onClick: () => toggleCard(id)
93
+ onClick: () => toggleCard(id, question)
86
94
  }, renderAnswer ? /*#__PURE__*/_react.default.createElement("div", {
87
95
  className: `${_stylesModule.default.answer} ${errorContent && !isLoading ? notEnoughBills ? _stylesModule.default.notEnoughBillsContainer : _stylesModule.default.errorAnswer : ''}`
88
96
  }, isLoading ? /*#__PURE__*/_react.default.createElement("section", null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
@@ -129,6 +137,7 @@ AIPanel.propTypes = {
129
137
  answer: _propTypes.object,
130
138
  error: _propTypes.object,
131
139
  getAnswer: _propTypes.func,
140
+ handlers: _propTypes.object,
132
141
  isOpen: _propTypes.bool,
133
142
  loading: _propTypes.object,
134
143
  notEnoughBillsErrorType: _propTypes.string,
@@ -48,7 +48,9 @@ const SmartBillSummary = _ref => {
48
48
  getGlossaryData,
49
49
  getSmartBillAIAnswer,
50
50
  getSmartBillAIQuestions,
51
- resetSmartBillAIAnswers
51
+ resetSmartBillAIAnswers,
52
+ trackAIFloatingButtonClick,
53
+ trackTabChange
52
54
  } = handlers;
53
55
  const filteredTabOptions = loading ? [] : (0, _utils.getTabOptions)(isDesktopSize, tabOptions, smartBill);
54
56
  const defaultCurrentTab = (0, _utils.getDefaultCurrentTab)(filteredTabOptions);
@@ -56,6 +58,7 @@ const SmartBillSummary = _ref => {
56
58
  const [aiPanelIsOpen, setAiPanelIsOpen] = (0, _react.useState)(false);
57
59
  const changeCurrentTab = newTab => setCurrentTab(newTab);
58
60
  const openAIPanel = () => {
61
+ trackAIFloatingButtonClick();
59
62
  if ((0, _isEmpty.default)(aiQuestionsList)) getSmartBillAIQuestions();
60
63
  setAiPanelIsOpen(true);
61
64
  };
@@ -80,7 +83,10 @@ const SmartBillSummary = _ref => {
80
83
  baseSelected: _stylesModule.default.baseSelected,
81
84
  flexContainer: _stylesModule.default.tabsContainer
82
85
  },
83
- onChange: changeCurrentTab,
86
+ onChange: newTab => {
87
+ trackTabChange(newTab);
88
+ changeCurrentTab(newTab);
89
+ },
84
90
  options: filteredTabOptions,
85
91
  tabsProps: {
86
92
  orientation: 'horizontal',
@@ -118,6 +124,7 @@ const SmartBillSummary = _ref => {
118
124
  answer: smartBillAIAnswer,
119
125
  error: smartBillAIAnswerError,
120
126
  getAnswer: getSmartBillAIAnswer,
127
+ handlers: handlers,
121
128
  isOpen: aiPanelIsOpen,
122
129
  loading: smartBillAIAnswerLoading,
123
130
  notEnoughBillsErrorType: notEnoughBillsErrorType,
@@ -4,15 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _energyUi = require("@widergy/energy-ui");
9
9
  var _propTypes = require("prop-types");
10
+ var _numeral = _interopRequireDefault(require("numeral"));
10
11
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
12
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
11
13
  var _utils = require("../../../Consumptions/components/CurrentConsumption/utils");
14
+ var _testIds = require("../../../../../../constants/testIds");
12
15
  var _utils2 = require("./utils");
13
16
  var _ProgressBar = _interopRequireDefault(require("./components/ProgressBar"));
14
17
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
15
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ 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); }
20
+ 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; }
21
+ const {
22
+ smartBill: smartBillTestIds
23
+ } = _testIds.TEST_IDS;
16
24
  const RateCard = _ref => {
17
25
  let {
18
26
  components,
@@ -22,24 +30,32 @@ const RateCard = _ref => {
22
30
  normalizedRate = '',
23
31
  rateCardTranslations = {},
24
32
  ratesTableLink,
33
+ seeFooter = true,
34
+ smallTitle = false,
25
35
  smartBill = {},
26
36
  subsidy = '',
27
- subsidyLevels
37
+ subsidyLevels,
38
+ trackRedirectionToExternalLink
28
39
  } = _ref;
29
40
  const {
41
+ banner = {},
30
42
  helpText,
31
43
  limitRateValueLabel,
32
44
  seeRatesTable,
45
+ seeBill,
33
46
  startRateValueLabel,
34
47
  title,
35
48
  tooltipContent,
49
+ tooltipText,
36
50
  unit,
37
51
  yourConsumption,
38
52
  yourRate
39
53
  } = rateCardTranslations;
40
54
  const {
41
55
  client,
42
- periods
56
+ periods,
57
+ levelValue: limitSubsidyValue = 0,
58
+ levelNumber
43
59
  } = smartBill;
44
60
  const purchasedRate = client?.rate?.purchased || '';
45
61
  const periodsToCompare = (0, _utils.getConsumptionPeriodsToCompare)(periods);
@@ -74,18 +90,43 @@ const RateCard = _ref => {
74
90
  const limitRateValue = Array.isArray(currentRate?.range) && currentRate.range.length > 0 && currentRate.range[currentRate.range.length - 1];
75
91
  const charges = client?.rate?.charges || [];
76
92
  const isT1 = purchasedRate.includes('T1');
93
+ const diff = limitSubsidyValue !== 0 ? (0, _numeral.default)(totalConsumption - limitSubsidyValue).format('0,0.[00]') : 0;
77
94
  const noLevels = (0, _isEmpty.default)(consumptionLevels);
78
95
  const showRateLabel = !isT1 || startRateValue === false || limitRateValue === false;
96
+ const debouncedTrackRedirection = (0, _react.useMemo)(() => (0, _debounce.default)(link => {
97
+ trackRedirectionToExternalLink(link);
98
+ }, 300), [trackRedirectionToExternalLink]);
99
+ (0, _react.useEffect)(() => {
100
+ return () => {
101
+ debouncedTrackRedirection.cancel();
102
+ };
103
+ }, [debouncedTrackRedirection]);
104
+ const handleClickButton = () => {
105
+ debouncedTrackRedirection(ratesTableLink);
106
+ if (ratesTableLink) window.open(ratesTableLink, '_blank');
107
+ };
79
108
  return /*#__PURE__*/_react.default.createElement("div", {
80
109
  className: _stylesModule.default.container
81
110
  }, /*#__PURE__*/_react.default.createElement("div", {
82
111
  className: _stylesModule.default.headerTitles
83
112
  }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
84
- variant: "title2",
85
- weight: "medium"
113
+ colorTheme: smallTitle ? 'gray' : '',
114
+ dataTestId: smartBillTestIds.rateCard.title,
115
+ variant: smallTitle ? 'small' : 'title3'
86
116
  }, title), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
87
- colorTheme: "gray"
88
- }, helpText)), !noLevels && /*#__PURE__*/_react.default.createElement(_ProgressBar.default, {
117
+ colorTheme: "gray",
118
+ dataTestId: smartBillTestIds.rateCard.helpText
119
+ }, helpText), banner && limitSubsidyValue !== 0 && totalConsumption > limitSubsidyValue && /*#__PURE__*/_react.default.createElement("div", {
120
+ className: _stylesModule.default.bannerDetail,
121
+ "data-testid": smartBillTestIds.rateCard.banner
122
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTIcon, {
123
+ colorTheme: "error",
124
+ name: "IconCircleX"
125
+ }), /*#__PURE__*/_react.default.createElement("div", {
126
+ className: _stylesModule.default.bannerDetailText
127
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
128
+ dataTestId: smartBillTestIds.rateCard.bannerLabel
129
+ }, banner.label?.(limitSubsidyValue, diff))))), !noLevels && /*#__PURE__*/_react.default.createElement(_ProgressBar.default, {
89
130
  components: components,
90
131
  currentPeriod: currentPeriod,
91
132
  data: rates,
@@ -100,48 +141,76 @@ const RateCard = _ref => {
100
141
  }, /*#__PURE__*/_react.default.createElement("div", {
101
142
  className: _stylesModule.default.consumptionContent
102
143
  }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
144
+ dataTestId: smartBillTestIds.rateCard.yourRate,
103
145
  variant: "title3",
104
146
  weight: "medium"
105
147
  }, (0, _utils2.getCurrentRate)(purchasedRate, currentRate)), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
106
148
  colorTheme: "gray",
149
+ dataTestId: smartBillTestIds.rateCard.yourRateLabel,
107
150
  variant: "small"
108
151
  }, showRateLabel ? yourRate : limitRateValue === 'Infinity' ? startRateValueLabel?.(startRateValue) : limitRateValueLabel?.(limitRateValue))), /*#__PURE__*/_react.default.createElement("div", {
109
152
  className: _stylesModule.default.consumptionContent
110
153
  }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
154
+ dataTestId: smartBillTestIds.rateCard.totalConsumption,
111
155
  variant: "title3",
112
156
  weight: "medium"
113
157
  }, totalConsumptionFormatted, " ", unit), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
114
158
  colorTheme: "gray",
159
+ dataTestId: smartBillTestIds.rateCard.yourConsumption,
115
160
  variant: "small"
116
- }, yourConsumption))), /*#__PURE__*/_react.default.createElement("div", {
161
+ }, yourConsumption))), levelNumber && /*#__PURE__*/_react.default.createElement("div", {
162
+ className: _stylesModule.default.levelNumber,
163
+ "data-testid": smartBillTestIds.rateCard.level
164
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
165
+ dataTestId: smartBillTestIds.rateCard.levelLabel,
166
+ variant: "subtitle1"
167
+ }, banner.level?.(levelNumber)), /*#__PURE__*/_react.default.createElement(_energyUi.UTTooltip, {
168
+ content: tooltipText,
169
+ dataTestId: smartBillTestIds.rateCard.levelTooltip
170
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_energyUi.UTIcon, {
171
+ name: "IconHelp"
172
+ })))), /*#__PURE__*/_react.default.createElement("div", {
117
173
  className: _stylesModule.default.footer
118
- }, charges.map(_ref5 => {
174
+ }, seeFooter && charges.map((_ref5, i) => {
119
175
  let {
120
176
  concept,
121
177
  amount
122
178
  } = _ref5;
123
179
  return /*#__PURE__*/_react.default.createElement("div", {
124
180
  className: _stylesModule.default.detail,
181
+ "data-testid": `${smartBillTestIds.rateCard.detail}.${i}`,
125
182
  key: concept
126
183
  }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
184
+ dataTestId: `${smartBillTestIds.rateCard.detailLabel}.${i}`,
127
185
  weight: "medium"
128
186
  }, concept), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
187
+ dataTestId: `${smartBillTestIds.rateCard.detailAmount}.${i}`,
129
188
  variant: "subtitle1",
130
189
  weight: "medium"
131
190
  }, formatAmount?.(amount)));
132
- }), /*#__PURE__*/_react.default.createElement("a", {
133
- className: _stylesModule.default.footerAction,
134
- href: ratesTableLink,
135
- rel: "noopener noreferrer",
136
- target: "_blank"
137
- }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
138
- colorTheme: "neutral",
139
- weight: "medium"
140
- }, seeRatesTable), /*#__PURE__*/_react.default.createElement(_energyUi.UTIcon, {
141
- colorTheme: "neutral",
142
- name: "IconChevronRight",
143
- size: 20
144
- }))));
191
+ }), /*#__PURE__*/_react.default.createElement(_energyUi.UTButton, {
192
+ classNames: {
193
+ childrenContainer: _stylesModule.default.footerActionChildren,
194
+ root: _stylesModule.default.footerAction
195
+ },
196
+ colorTheme: "secondary",
197
+ dataTestId: smartBillTestIds.rateCard.seeRatesTable,
198
+ Icon: "IconChevronRight",
199
+ iconPlacement: "right",
200
+ onClick: handleClickButton,
201
+ variant: "text"
202
+ }, seeRatesTable), !(0, _isEmpty.default)(seeBill) && /*#__PURE__*/_react.default.createElement(_energyUi.UTButton, {
203
+ classNames: {
204
+ childrenContainer: _stylesModule.default.footerActionChildren,
205
+ root: _stylesModule.default.footerAction
206
+ },
207
+ colorTheme: "secondary",
208
+ dataTestId: smartBillTestIds.rateCard.seeBill,
209
+ Icon: "IconChevronRight",
210
+ iconPlacement: "right",
211
+ onClick: handleClickButton,
212
+ variant: "text"
213
+ }, seeBill)));
145
214
  };
146
215
  RateCard.propTypes = {
147
216
  components: _propTypes.object,
@@ -151,8 +220,11 @@ RateCard.propTypes = {
151
220
  normalizedRate: _propTypes.string,
152
221
  rateCardTranslations: _propTypes.object,
153
222
  ratesTableLink: _propTypes.string,
223
+ seeFooter: _propTypes.bool,
224
+ smallTitle: _propTypes.bool,
154
225
  smartBill: _propTypes.object,
155
226
  subsidy: _propTypes.string,
156
- subsidyLevels: (0, _propTypes.objectOf)(_propTypes.string)
227
+ subsidyLevels: (0, _propTypes.objectOf)(_propTypes.string),
228
+ trackRedirectionToExternalLink: _propTypes.func
157
229
  };
158
230
  var _default = exports.default = RateCard;
@@ -38,20 +38,19 @@
38
38
  align-items: center;
39
39
  background-color: transparent;
40
40
  border-top: 1px solid var(--light04);
41
+ border-top-left-radius: 0;
42
+ border-top-right-radius: 0;
41
43
  display: flex;
42
44
  grid-gap: 8px;
43
45
  justify-content: space-between;
44
46
  padding: 16px;
45
47
  text-decoration: none;
46
- transition: all 0.2s ease;
47
-
48
- &:hover {
49
- background-color: var(--light03);
50
- }
48
+ width: 100%;
49
+ }
51
50
 
52
- &:active {
53
- background-color: var(--light04);
54
- }
51
+ .footerActionChildren {
52
+ flex: 1;
53
+ justify-content: space-between;
55
54
  }
56
55
 
57
56
  .detail {
@@ -62,3 +61,30 @@
62
61
  justify-content: space-between;
63
62
  padding: 16px;
64
63
  }
64
+
65
+ .bannerDetail {
66
+ align-items: flex-start;
67
+ background-color: var(--semanticError01);
68
+ border-radius: 8px;
69
+ display: flex;
70
+ flex-direction: row;
71
+ justify-content: space-between;
72
+ padding: 8px 16px;
73
+ }
74
+
75
+ .bannerDetailText {
76
+ display: flex;
77
+ flex-direction: column;
78
+ margin-left: 8px;
79
+ }
80
+
81
+ .levelNumber {
82
+ align-items: center;
83
+ background-color: var(--light03);
84
+ border-radius: 8px;
85
+ display: flex;
86
+ grid-gap: 8px;
87
+ justify-content: space-between;
88
+ margin: 0px 16px;
89
+ padding: 24px;
90
+ }
@@ -44,7 +44,8 @@ const Billing = _ref => {
44
44
  const {
45
45
  handleAutomaticDebitAdherence = () => {},
46
46
  handleDownloadBill = () => {},
47
- handleGoToDigitalBill = () => {}
47
+ handleGoToDigitalBill = () => {},
48
+ trackRedirectionToExternalLink = () => {}
48
49
  } = handlers;
49
50
  const {
50
51
  adhered,
@@ -255,6 +256,7 @@ const Billing = _ref => {
255
256
  smartBill,
256
257
  subsidy,
257
258
  subsidyLevels,
259
+ trackRedirectionToExternalLink,
258
260
  translations
259
261
  }))));
260
262
  };
@@ -16,6 +16,7 @@ const Glossary = _ref => {
16
16
  getGlossaryData,
17
17
  glossaryData,
18
18
  glossaryLoading,
19
+ handlers,
19
20
  translations
20
21
  } = _ref;
21
22
  const {
@@ -32,15 +33,17 @@ const Glossary = _ref => {
32
33
  size: 80,
33
34
  thickness: 5
34
35
  })) : /*#__PURE__*/_react.default.createElement(_energyUi.UTDocumentWizard, {
36
+ handlers: handlers,
37
+ labels: translations,
35
38
  pages: pages,
36
- sections: sections,
37
- labels: translations
39
+ sections: sections
38
40
  });
39
41
  };
40
42
  Glossary.propTypes = {
41
43
  getGlossaryData: _propTypes.func,
42
44
  glossaryData: undefined || _propTypes.object,
43
45
  glossaryLoading: _propTypes.bool,
46
+ handlers: _propTypes.object,
44
47
  translations: _propTypes.object
45
48
  };
46
49
  var _default = exports.default = Glossary;
@@ -22,6 +22,7 @@ const ID_CONSTANTS = {
22
22
  ICON_AND_DETAILS: 'iconAndDetails',
23
23
  MAIN_BILL_DATA: 'mainBillData',
24
24
  PERIOD: 'period',
25
+ RATE_CARD: 'rateCard',
25
26
  RATE_AND_CATEGORY: 'rateAndCategory',
26
27
  REDING_DETAILS: 'readingDetails',
27
28
  REMAINING_CONSUMPTION: 'remainingConsumption',
@@ -134,6 +135,24 @@ const TEST_IDS = exports.TEST_IDS = {
134
135
  category: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_AND_CATEGORY}.category`,
135
136
  rate: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_AND_CATEGORY}.rate`,
136
137
  title: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_AND_CATEGORY}.${ID_CONSTANTS.TITLE}`
138
+ },
139
+ rateCard: {
140
+ banner: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.banner`,
141
+ title: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.title`,
142
+ level: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.level`,
143
+ detail: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.detail`,
144
+ seeBill: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.seeBill`,
145
+ helpText: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.helpText`,
146
+ bannerLabel: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.bannerLabel`,
147
+ levelLabel: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.levelLabel`,
148
+ levelTooltip: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.levelTooltip`,
149
+ detailLabel: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.detailLabel`,
150
+ detailAmount: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.detailAmount`,
151
+ seeRatesTable: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.seeRatesTable`,
152
+ totalConsumption: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.totalConsumption`,
153
+ yourConsumption: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.yourConsumption`,
154
+ yourRate: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.yourRate`,
155
+ yourRateLabel: `${ID_CONSTANTS.SMART_BILL}.${ID_CONSTANTS.RATE_CARD}.yourRateLabel`
137
156
  }
138
157
  }
139
158
  };
package/dist/index.js CHANGED
@@ -16,6 +16,12 @@ Object.defineProperty(exports, "BillSummary", {
16
16
  return _BillSummary.default;
17
17
  }
18
18
  });
19
+ Object.defineProperty(exports, "Billing", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _Billing.default;
23
+ }
24
+ });
19
25
  Object.defineProperty(exports, "ColorAliases", {
20
26
  enumerable: true,
21
27
  get: function () {
@@ -53,6 +59,12 @@ Object.defineProperty(exports, "MainBillData", {
53
59
  return _MainBillData.default;
54
60
  }
55
61
  });
62
+ Object.defineProperty(exports, "RateCard", {
63
+ enumerable: true,
64
+ get: function () {
65
+ return _RateCard.default;
66
+ }
67
+ });
56
68
  Object.defineProperty(exports, "RatesDefinition", {
57
69
  enumerable: true,
58
70
  get: function () {
@@ -106,6 +118,8 @@ exports.Aliases = _aliases;
106
118
  var _billDataTypes = require("./shared/types/billDataTypes");
107
119
  var _rateStagesTypes = require("./shared/types/rateStagesTypes");
108
120
  var _tabs = require("./shared/constants/tabs");
121
+ var _Billing = _interopRequireDefault(require("./components/SmartBillSummary/tabs/Consumptions/components/Billing"));
122
+ var _RateCard = _interopRequireDefault(require("./components/SmartBillSummary/tabs/Billing/components/RateCard"));
109
123
  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); }
110
124
  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; }
111
125
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/utilitygo-smart-bill-web",
3
- "version": "3.7.1",
3
+ "version": "3.9.0",
4
4
  "description": "UtilityGO SmartBill Web",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",