@widergy/utilitygo-smart-bill-web 3.12.0 → 3.13.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.13.1](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v3.13.0...v3.13.1) (2025-09-30)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * [UGDESA-2719] visual fixes ([#64](https://github.com/widergy/UtilityGO-Smart-Bill-Web/issues/64)) ([2f8f778](https://github.com/widergy/UtilityGO-Smart-Bill-Web/commit/2f8f7780cf474c0859dd9ff6a5c50c2ab8bb75aa))
7
+
8
+ # [3.13.0](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v3.12.0...v3.13.0) (2025-09-29)
9
+
10
+
11
+ ### Features
12
+
13
+ * [CX-1171] widi fav smartbill ([#63](https://github.com/widergy/UtilityGO-Smart-Bill-Web/issues/63)) ([e1cc5ce](https://github.com/widergy/UtilityGO-Smart-Bill-Web/commit/e1cc5ceb238a6d5ef236fbeacd46ae2d8093e93c))
14
+
1
15
  # [3.12.0](https://github.com/widergy/UtilityGO-Smart-Bill-Web/compare/v3.11.0...v3.12.0) (2025-08-27)
2
16
 
3
17
 
@@ -18,6 +18,7 @@ const AIPanel = _ref => {
18
18
  aiQuestionsListError,
19
19
  aiQuestionsListLoading,
20
20
  answer,
21
+ colors = {},
21
22
  error,
22
23
  getAnswer,
23
24
  handlers = {},
@@ -92,7 +93,10 @@ const AIPanel = _ref => {
92
93
  key: id,
93
94
  onClick: () => toggleCard(id, question)
94
95
  }, renderAnswer ? /*#__PURE__*/_react.default.createElement("div", {
95
- className: `${_stylesModule.default.answer} ${errorContent && !isLoading ? notEnoughBills ? _stylesModule.default.notEnoughBillsContainer : _stylesModule.default.errorAnswer : ''}`
96
+ className: `${_stylesModule.default.answer} ${errorContent && !isLoading ? notEnoughBills ? _stylesModule.default.notEnoughBillsContainer : _stylesModule.default.errorAnswer : ''}`,
97
+ style: {
98
+ background: colors?.widyAnswerColorBg
99
+ }
96
100
  }, isLoading ? /*#__PURE__*/_react.default.createElement("section", null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
97
101
  containerClassName: _stylesModule.default.skeletonContainer,
98
102
  count: 3,
@@ -135,6 +139,7 @@ AIPanel.propTypes = {
135
139
  aiQuestionsListLoading: _propTypes.bool,
136
140
  aiQuestionsListError: _propTypes.bool,
137
141
  answer: _propTypes.object,
142
+ colors: _propTypes.object,
138
143
  error: _propTypes.object,
139
144
  getAnswer: _propTypes.func,
140
145
  handlers: _propTypes.object,
@@ -23,8 +23,9 @@ const SmartBillSummary = _ref => {
23
23
  annex,
24
24
  assets,
25
25
  billingLayout,
26
- constants,
26
+ colors,
27
27
  components,
28
+ constants,
28
29
  handlers,
29
30
  loading,
30
31
  showOnboarding = false,
@@ -60,6 +61,16 @@ const SmartBillSummary = _ref => {
60
61
  trackAIFloatingButtonClick,
61
62
  trackTabChange
62
63
  } = handlers;
64
+ const {
65
+ AIPanel: {
66
+ widyTooltipContent = ''
67
+ } = {}
68
+ } = translations || {};
69
+ const {
70
+ AIPanel: {
71
+ widyFab
72
+ } = {}
73
+ } = assets || {};
63
74
  const {
64
75
  tabs,
65
76
  onboardingSteps: filteredOnboardingSteps
@@ -130,6 +141,7 @@ const SmartBillSummary = _ref => {
130
141
  annex,
131
142
  UtilityLogo: assets.billingTab.UtilityLogo,
132
143
  billNumber: smartBill.bill_number,
144
+ billType: smartBill.bill_type,
133
145
  billTypeHelpText: translations.billingTab.header.billTypeHelpText,
134
146
  issuedOnDate: (0, _utils2.getFormattedDate)((0, _utils2.getCurrentPeriod)(smartBill)?.settlements?.current?.issued_on),
135
147
  billIssueDate: translations.billingTab.header.billIssueDate,
@@ -153,18 +165,25 @@ const SmartBillSummary = _ref => {
153
165
  smartBill,
154
166
  translations,
155
167
  utils
156
- })), aiQuestionsPanelEnabled && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_energyUi.UTTouchableWithoutFeedback, {
157
- className: `${_stylesModule.default.AIFloatButton} smartbill-ai-float-button`,
158
- onClick: openAIPanel,
159
- withRipple: true
160
- }, /*#__PURE__*/_react.default.createElement(_energyUi.UTIcon, {
161
- colorTheme: "negative",
162
- name: "EnergyIconChatSparkFilled"
163
- })), /*#__PURE__*/_react.default.createElement(_AIPanel.default, {
168
+ })), aiQuestionsPanelEnabled && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_energyUi.UTTooltip, {
169
+ arrow: false,
170
+ content: isDesktopSize ? widyTooltipContent : '',
171
+ tippyProps: {
172
+ placement: 'left'
173
+ }
174
+ }, /*#__PURE__*/_react.default.createElement("div", {
175
+ className: `${_stylesModule.default.AIFloatButton} smartbill-ai-float-button`
176
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTTouchableWithoutFeedback, {
177
+ onClick: openAIPanel
178
+ }, /*#__PURE__*/_react.default.createElement("img", {
179
+ alt: "widy",
180
+ src: widyFab
181
+ })))), /*#__PURE__*/_react.default.createElement(_AIPanel.default, {
164
182
  aiQuestionsList: aiQuestionsList,
165
183
  aiQuestionsListError: aiQuestionsListError,
166
184
  aiQuestionsListLoading: aiQuestionsListLoading,
167
185
  answer: smartBillAIAnswer,
186
+ colors: colors,
168
187
  error: smartBillAIAnswerError,
169
188
  getAnswer: getSmartBillAIAnswer,
170
189
  handlers: handlers,
@@ -185,10 +204,11 @@ SmartBillSummary.propTypes = {
185
204
  annex: _propTypes.bool,
186
205
  assets: _propTypes.object,
187
206
  billingLayout: (0, _propTypes.arrayOf)(_propTypes.object),
188
- constants: _propTypes.object,
207
+ colors: _propTypes.object,
189
208
  components: (0, _propTypes.shape)({
190
209
  [_propTypes.string]: _propTypes.elementType
191
210
  }),
211
+ constants: _propTypes.object,
192
212
  handlers: (0, _propTypes.shape)({
193
213
  [_propTypes.string]: _propTypes.func
194
214
  }),
@@ -13,8 +13,8 @@ $tab-height: 48px;
13
13
  }
14
14
 
15
15
  .tabs {
16
- width: 96%;
17
16
  margin: 0 auto;
17
+ width: 96%;
18
18
  }
19
19
 
20
20
  .contentContainer {
@@ -54,12 +54,17 @@ $tab-height: 48px;
54
54
 
55
55
  .AIFloatButton {
56
56
  align-items: center;
57
- background-color: var(--actionAccent04);
58
- border-radius: 100px;
59
- bottom: 32px;
57
+ bottom: 20px;
60
58
  display: flex;
59
+ height: 78px;
61
60
  justify-content: center;
62
- padding: 16px;
63
61
  position: fixed;
64
- right: 32px;
62
+ right: 20px;
63
+ width: 78px;
64
+
65
+ img {
66
+ height: 78px;
67
+ object-fit: contain;
68
+ width: 78px;
69
+ }
65
70
  }
@@ -0,0 +1,50 @@
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 _energyUi = require("@widergy/energy-ui");
9
+ var _propTypes = require("prop-types");
10
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const AccountCard = _ref => {
13
+ let {
14
+ accountCardTitle,
15
+ meterNumber,
16
+ readingType,
17
+ meterNumberHelpText,
18
+ readingTypeHelpText
19
+ } = _ref;
20
+ return /*#__PURE__*/_react.default.createElement("div", {
21
+ className: _stylesModule.default.accountCard
22
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
23
+ variant: "title2",
24
+ weight: "medium"
25
+ }, accountCardTitle), /*#__PURE__*/_react.default.createElement("div", {
26
+ className: _stylesModule.default.content
27
+ }, meterNumber && /*#__PURE__*/_react.default.createElement("div", {
28
+ className: _stylesModule.default.data
29
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
30
+ className: _stylesModule.default.dataTitle,
31
+ weight: "bold"
32
+ }, meterNumber), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
33
+ colorTheme: "gray"
34
+ }, meterNumberHelpText)), readingType && /*#__PURE__*/_react.default.createElement("div", {
35
+ className: _stylesModule.default.data
36
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
37
+ className: _stylesModule.default.dataTitle,
38
+ weight: "bold"
39
+ }, readingType), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
40
+ colorTheme: "gray"
41
+ }, readingTypeHelpText))));
42
+ };
43
+ AccountCard.propTypes = {
44
+ accountCardTitle: _propTypes.string,
45
+ meterNumber: _propTypes.string,
46
+ readingType: _propTypes.string,
47
+ meterNumberHelpText: _propTypes.string,
48
+ readingTypeHelpText: _propTypes.string
49
+ };
50
+ var _default = exports.default = AccountCard;
@@ -0,0 +1,25 @@
1
+ .accountCard {
2
+ background-color: var(--light01);
3
+ border-radius: 8px;
4
+ box-shadow: var(--shadowGrayBottom1);
5
+ display: flex;
6
+ flex-direction: column;
7
+ grid-gap: 24px;
8
+ padding: 24px;
9
+ }
10
+
11
+ .content {
12
+ display: flex;
13
+ }
14
+
15
+ .data {
16
+ display: flex;
17
+ flex: 1;
18
+ flex-direction: column;
19
+ grid-gap: 8px;
20
+ padding: 12px 0;
21
+ }
22
+
23
+ .dataTitle {
24
+ padding: 4px 0;
25
+ }
@@ -27,7 +27,8 @@ const ActionCards = _ref => {
27
27
  onClick,
28
28
  rightIcon,
29
29
  showStatus,
30
- title
30
+ title,
31
+ subtitle
31
32
  } = _ref2;
32
33
  return /*#__PURE__*/_react.default.createElement(_energyUi.UTTouchableWithoutFeedback, {
33
34
  className: `${_stylesModule.default.cardContainer} ${!onClick && _stylesModule.default.unclickableCardContainer}`,
@@ -38,11 +39,14 @@ const ActionCards = _ref => {
38
39
  }, isDesktopSize && /*#__PURE__*/_react.default.createElement(_energyUi.UTIcon, _extends({
39
40
  colorTheme: "gray",
40
41
  name: leftIcon
41
- }, leftIconProps)), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
42
- className: _stylesModule.default.cardTitle,
42
+ }, leftIconProps)), /*#__PURE__*/_react.default.createElement("div", {
43
+ className: _stylesModule.default.cardContent
44
+ }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
43
45
  variant: "subtitle1",
44
46
  weight: "medium"
45
- }, title), showStatus && /*#__PURE__*/_react.default.createElement(_energyUi.UTStatus, {
47
+ }, title), subtitle && /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
48
+ colorTheme: "gray"
49
+ }, subtitle)), showStatus && /*#__PURE__*/_react.default.createElement(_energyUi.UTStatus, {
46
50
  type: "light",
47
51
  variant: isAdhered ? 'success' : 'unassigned',
48
52
  withoutIcon: !isAdhered
@@ -12,12 +12,15 @@
12
12
  transition: all 0.2s;
13
13
  }
14
14
 
15
- .unclickableCardContainer {
16
- cursor: default;
15
+ .cardContent {
16
+ display: flex;
17
+ flex-direction: column;
18
+ grid-gap: 4px;
19
+ flex: 1;
17
20
  }
18
21
 
19
- .cardTitle {
20
- flex: 1;
22
+ .unclickableCardContainer {
23
+ cursor: default;
21
24
  }
22
25
 
23
26
  .cardIconContainer {
@@ -7,20 +7,22 @@ exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _energyUi = require("@widergy/energy-ui");
9
9
  var _propTypes = require("prop-types");
10
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
10
11
  var _DebtStatusLabel = _interopRequireDefault(require("../DebtStatusLabel"));
11
12
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  const BillHeader = _ref => {
14
15
  let {
15
16
  annex,
16
- UtilityLogo,
17
+ billIssueDate,
17
18
  billNumber,
19
+ billType,
18
20
  billTypeHelpText,
19
- issuedOnDate,
20
- billIssueDate,
21
- debtStatusValidation,
22
21
  debtStatusLabel,
23
- smartBill
22
+ debtStatusValidation,
23
+ issuedOnDate,
24
+ smartBill,
25
+ UtilityLogo
24
26
  } = _ref;
25
27
  return /*#__PURE__*/_react.default.createElement("div", {
26
28
  className: _stylesModule.default.billHeader
@@ -30,9 +32,14 @@ const BillHeader = _ref => {
30
32
  className: _stylesModule.default.logo
31
33
  }), /*#__PURE__*/_react.default.createElement("div", {
32
34
  className: _stylesModule.default.valueAndHelpText
33
- }, /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
35
+ }, /*#__PURE__*/_react.default.createElement("div", {
36
+ className: _stylesModule.default.billTypeAndNumberContainer
37
+ }, !(0, _isEmpty.default)(billType) && /*#__PURE__*/_react.default.createElement(_energyUi.UTStatus, {
38
+ variant: "unassigned",
39
+ withoutIcon: true
40
+ }, billType), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
34
41
  variant: "small"
35
- }, billNumber), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
42
+ }, billNumber)), /*#__PURE__*/_react.default.createElement(_energyUi.UTLabel, {
36
43
  colorTheme: "gray",
37
44
  variant: "small"
38
45
  }, billTypeHelpText)), /*#__PURE__*/_react.default.createElement("div", {
@@ -52,13 +59,14 @@ const BillHeader = _ref => {
52
59
  };
53
60
  BillHeader.propTypes = {
54
61
  annex: _propTypes.bool,
55
- UtilityLogo: _propTypes.elementType,
62
+ billIssueDate: _propTypes.string,
56
63
  billNumber: _propTypes.string,
64
+ billType: _propTypes.string,
57
65
  billTypeHelpText: _propTypes.string,
58
- issuedOnDate: _propTypes.string,
59
- billIssueDate: _propTypes.string,
60
- debtStatusValidation: _propTypes.bool,
61
66
  debtStatusLabel: _propTypes.string,
62
- smartBill: _propTypes.object
67
+ debtStatusValidation: _propTypes.bool,
68
+ issuedOnDate: _propTypes.string,
69
+ smartBill: _propTypes.object,
70
+ UtilityLogo: _propTypes.elementType
63
71
  };
64
72
  var _default = exports.default = BillHeader;
@@ -41,3 +41,9 @@
41
41
  flex-direction: column;
42
42
  grid-gap: 4px;
43
43
  }
44
+
45
+ .billTypeAndNumberContainer {
46
+ align-items: center;
47
+ display: flex;
48
+ grid-gap: 4px;
49
+ }
@@ -8,10 +8,12 @@ var _ActionCards = _interopRequireDefault(require("../ActionCards"));
8
8
  var _TitularCard = _interopRequireDefault(require("../TitularCard"));
9
9
  var _TotalCard = _interopRequireDefault(require("../TotalCard"));
10
10
  var _RateCard = _interopRequireDefault(require("../RateCard"));
11
+ var _AccountCard = _interopRequireDefault(require("../AccountCard"));
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
13
  const COMPONENTS = exports.COMPONENTS = {
13
14
  ActionCards: _ActionCards.default,
14
15
  TitularCard: _TitularCard.default,
15
16
  TotalCard: _TotalCard.default,
16
- RateCard: _RateCard.default
17
+ RateCard: _RateCard.default,
18
+ AccountCard: _AccountCard.default
17
19
  };
@@ -52,7 +52,8 @@ const Billing = _ref => {
52
52
  ratesTableLink,
53
53
  titularCard = {},
54
54
  totalAmountLabel,
55
- totalCard = {}
55
+ totalCard = {},
56
+ accountCard = {}
56
57
  } = translations;
57
58
  const {
58
59
  title: digitalBillTitle
@@ -70,6 +71,11 @@ const Billing = _ref => {
70
71
  clientNumberHelpText,
71
72
  ivaConditionHelpText
72
73
  } = titularCard;
74
+ const {
75
+ title: accountCardTitle,
76
+ meterNumberHelpText,
77
+ readingTypeHelpText
78
+ } = accountCard;
73
79
  const {
74
80
  firstExpiration,
75
81
  secondExpiration
@@ -77,10 +83,14 @@ const Billing = _ref => {
77
83
  const {
78
84
  client,
79
85
  detail,
80
- expirations
86
+ expirations,
87
+ meter_number: meterNumber,
88
+ reading_periods: readingPeriods
81
89
  } = smartBill;
90
+ const readingType = readingPeriods?.[0]?.type;
82
91
  const currentPeriod = (0, _utils.getCurrentPeriod)(smartBill);
83
92
  const isAdheredToDigitalBill = client?.adherence_to_digital_bill;
93
+ const emailDigitalBill = client?.email_digital_bill;
84
94
  const {
85
95
  account_address: accountAddress,
86
96
  client_number: clientNumber = '',
@@ -105,7 +115,8 @@ const Billing = _ref => {
105
115
  leftIcon: 'IconReceipt',
106
116
  onClick: !isAdheredToDigitalBill && handleGoToDigitalBill,
107
117
  showStatus: true,
108
- title: digitalBillTitle
118
+ title: digitalBillTitle,
119
+ subtitle: emailDigitalBill
109
120
  }, {
110
121
  isAdhered: isAdheredToAutomaticDebit,
111
122
  leftIcon: 'IconCreditCard',
@@ -141,6 +152,11 @@ const Billing = _ref => {
141
152
  firstExpirationDate,
142
153
  secondExpiration,
143
154
  secondExpirationDate,
155
+ accountCardTitle,
156
+ meterNumber,
157
+ readingType,
158
+ meterNumberHelpText,
159
+ readingTypeHelpText,
144
160
  consumptionLevels,
145
161
  components,
146
162
  currentPeriod,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/utilitygo-smart-bill-web",
3
- "version": "3.12.0",
3
+ "version": "3.13.1",
4
4
  "description": "UtilityGO SmartBill Web",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",