@zeniai/client-epic-state 4.7.74 → 4.7.75

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 (66) hide show
  1. package/lib/commonStateTypes/workingDayHelper.d.ts +9 -5
  2. package/lib/commonStateTypes/workingDayHelper.js +36 -12
  3. package/lib/entity/billPay/billTransaction/billTransactionPayload.d.ts +3 -0
  4. package/lib/entity/billPay/billTransaction/billTransactionPayload.js +2 -2
  5. package/lib/entity/billPay/billTransaction/billTransactionState.d.ts +3 -0
  6. package/lib/entity/billPay/recurringBills/recurringBillsPayload.d.ts +34 -0
  7. package/lib/entity/billPay/recurringBills/recurringBillsPayload.js +44 -0
  8. package/lib/entity/billPay/recurringBills/recurringBillsReducer.d.ts +6 -0
  9. package/lib/entity/billPay/recurringBills/recurringBillsReducer.js +40 -0
  10. package/lib/entity/billPay/recurringBills/recurringBillsState.d.ts +33 -0
  11. package/lib/entity/billPay/recurringBills/recurringBillsState.js +14 -0
  12. package/lib/entity/chargeCard/chargeCard.d.ts +2 -2
  13. package/lib/entity/entityApprovalStatus/entityApprovalStatusPayload.d.ts +1 -0
  14. package/lib/entity/entityApprovalStatus/entityApprovalStatusPayload.js +1 -0
  15. package/lib/entity/entityApprovalStatus/entityApprovalStatusState.d.ts +1 -0
  16. package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
  17. package/lib/entity/tenant/clearAllEpic.js +2 -0
  18. package/lib/entity/transaction/stateTypes/attachment.js +5 -5
  19. package/lib/index.d.ts +6 -4
  20. package/lib/index.js +10 -4
  21. package/lib/reducer.d.ts +3 -0
  22. package/lib/reducer.js +3 -0
  23. package/lib/view/accountList/accountListReducer.js +2 -1
  24. package/lib/view/accountList/accountListState.d.ts +1 -1
  25. package/lib/view/commonVendorView/vendorView/epics/saveVendorEpic.js +1 -0
  26. package/lib/view/commonVendorView/vendorView/vendorViewSelector.js +2 -2
  27. package/lib/view/spendManagement/billPay/billDetailView/billDetailViewPayload.d.ts +3 -0
  28. package/lib/view/spendManagement/billPay/billDetailView/billDetailViewSelector.d.ts +5 -0
  29. package/lib/view/spendManagement/billPay/billDetailView/billDetailViewSelector.js +13 -2
  30. package/lib/view/spendManagement/billPay/billDetailView/epics/cancelAndDeleteBillEpic.d.ts +2 -1
  31. package/lib/view/spendManagement/billPay/billDetailView/epics/cancelAndDeleteBillEpic.js +19 -8
  32. package/lib/view/spendManagement/billPay/billDetailView/epics/deleteBillEpic.d.ts +2 -1
  33. package/lib/view/spendManagement/billPay/billDetailView/epics/deleteBillEpic.js +14 -4
  34. package/lib/view/spendManagement/billPay/billDetailView/epics/fetchBillDetailEpic.d.ts +2 -1
  35. package/lib/view/spendManagement/billPay/billDetailView/epics/fetchBillDetailEpic.js +5 -2
  36. package/lib/view/spendManagement/billPay/billList/billListPayload.d.ts +2 -0
  37. package/lib/view/spendManagement/billPay/billList/billListSelector.d.ts +3 -0
  38. package/lib/view/spendManagement/billPay/billList/billListSelector.js +10 -2
  39. package/lib/view/spendManagement/billPay/billList/fetchBillListPerTabEpic.d.ts +2 -1
  40. package/lib/view/spendManagement/billPay/billList/fetchBillListPerTabEpic.js +3 -1
  41. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.d.ts +4 -0
  42. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +31 -9
  43. package/lib/view/spendManagement/billPay/editBillView/editBillViewPayload.d.ts +4 -0
  44. package/lib/view/spendManagement/billPay/editBillView/editBillViewReducer.js +17 -0
  45. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +10 -2
  46. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +59 -14
  47. package/lib/view/spendManagement/billPay/editBillView/editBillViewState.d.ts +28 -0
  48. package/lib/view/spendManagement/billPay/editBillView/editBillViewState.js +1 -0
  49. package/lib/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +3 -3
  50. package/lib/view/spendManagement/billPay/editBillView/epics/initializeBillToLocalStoreEpic.js +13 -2
  51. package/lib/view/spendManagement/billPay/editBillView/epics/parseInvoiceToBillEpic.js +3 -2
  52. package/lib/view/spendManagement/billPay/editBillView/epics/saveBillDetailEpic.d.ts +11 -24
  53. package/lib/view/spendManagement/billPay/editBillView/epics/saveBillDetailEpic.js +100 -14
  54. package/lib/view/spendManagement/commonHistoryView/commonHistory.d.ts +1 -0
  55. package/lib/view/spendManagement/commonHistoryView/commonHistoryPayload.d.ts +1 -0
  56. package/lib/view/spendManagement/commonHistoryView/commonHistoryPayload.js +9 -5
  57. package/lib/view/spendManagement/helpers.d.ts +11 -1
  58. package/lib/view/spendManagement/helpers.js +134 -1
  59. package/lib/view/spendManagement/reimbursement/remiDetailView/remiDetailViewSelector.d.ts +1 -0
  60. package/lib/view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigPayload.d.ts +1 -0
  61. package/lib/view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigPayload.js +1 -0
  62. package/lib/view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigReducer.js +3 -1
  63. package/lib/view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigSelector.d.ts +1 -0
  64. package/lib/view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigSelector.js +2 -1
  65. package/lib/view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigState.d.ts +1 -0
  66. package/package.json +5 -4
@@ -1,7 +1,17 @@
1
1
  import { ZeniDate } from '../../zeniDayJS';
2
2
  import { BillActivity } from './billPay/billDetailView/billDetailViewSelector';
3
- import { BusinessVerificationDetails, CompanyOfficersDetails } from './commonSetup/setupViewSelector';
4
3
  import { RemiActivity } from './reimbursement/remiDetailView/remiDetailViewSelector';
4
+ import { BusinessVerificationDetails, CompanyOfficersDetails } from './commonSetup/setupViewSelector';
5
+ import { RecurringBillConfigLocalData, RecurringBillInstance } from './billPay/editBillView/editBillViewState';
6
+ import { RecurringBillConfig, RecurringBillFrequency } from '../../entity/billPay/recurringBills/recurringBillsState';
5
7
  export declare const getLatestApprovalDate: (allActivities: BillActivity[] | RemiActivity[]) => ZeniDate | undefined;
6
8
  export declare function getSpendManagementEffectiveListPeriod(): import("../..").TimePeriod;
7
9
  export declare const getSelectedCompanyOfficer: (verificationDetails: BusinessVerificationDetails) => CompanyOfficersDetails | undefined;
10
+ export declare const getPaymentDateFromVendorReceiveDate: (vendorReceiveDate: ZeniDate, maxPaymentProcessingDays: number) => ZeniDate;
11
+ export declare const updateRecurringBillDetails: (currentRecurringConfig: RecurringBillConfigLocalData, prevRecurringConfig?: RecurringBillConfigLocalData | undefined, currentInstances?: RecurringBillInstance[] | undefined, currentBillAmount?: number | undefined) => {
12
+ recurringConfig: RecurringBillConfigLocalData;
13
+ recurringInstances: RecurringBillInstance[] | undefined;
14
+ };
15
+ export declare const isRecurringConfigChanged: (recurringBillNewConfig: RecurringBillConfigLocalData, originalRecurringBillConfig: Partial<RecurringBillConfig>, checkApprovalChange: boolean) => boolean;
16
+ export declare const getTotalPayments: (startDate: ZeniDate, endDate: ZeniDate, frequency: RecurringBillFrequency, currentInstance?: RecurringBillInstance | undefined) => number;
17
+ export declare const getEndDate: (startDate: ZeniDate, frequency: RecurringBillFrequency, totalPayments: number, currentInstance?: RecurringBillInstance | undefined) => ZeniDate;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSelectedCompanyOfficer = exports.getSpendManagementEffectiveListPeriod = exports.getLatestApprovalDate = void 0;
3
+ exports.getEndDate = exports.getTotalPayments = exports.isRecurringConfigChanged = exports.updateRecurringBillDetails = exports.getPaymentDateFromVendorReceiveDate = exports.getSelectedCompanyOfficer = exports.getSpendManagementEffectiveListPeriod = exports.getLatestApprovalDate = void 0;
4
4
  const timeframeTick_1 = require("../../commonStateTypes/timeframeTick");
5
5
  const workingDayHelper_1 = require("../../commonStateTypes/workingDayHelper");
6
6
  const zeniDayJS_1 = require("../../zeniDayJS");
@@ -45,3 +45,136 @@ const getSelectedCompanyOfficer = (verificationDetails) => {
45
45
  return officer;
46
46
  };
47
47
  exports.getSelectedCompanyOfficer = getSelectedCompanyOfficer;
48
+ const getPaymentDateFromVendorReceiveDate = (vendorReceiveDate, maxPaymentProcessingDays) => {
49
+ let paymentDate = vendorReceiveDate.subtract(maxPaymentProcessingDays, 'day');
50
+ while ((0, workingDayHelper_1.isHoliday)(paymentDate.toDate()) === true) {
51
+ paymentDate = paymentDate.subtract(1, 'day');
52
+ }
53
+ return paymentDate;
54
+ };
55
+ exports.getPaymentDateFromVendorReceiveDate = getPaymentDateFromVendorReceiveDate;
56
+ const updateRecurringBillDetails = (currentRecurringConfig, prevRecurringConfig, currentInstances, currentBillAmount) => {
57
+ var _a;
58
+ let updatedRecurringInstances = [];
59
+ const { startDate, endDate, frequency, totalPaymentCycles, endDateSelectorOptionType, } = currentRecurringConfig;
60
+ if (frequency == null ||
61
+ startDate == null ||
62
+ (totalPaymentCycles === 0 && endDate == null) ||
63
+ (prevRecurringConfig != null &&
64
+ prevRecurringConfig.isActive &&
65
+ !(0, exports.isRecurringConfigChanged)(currentRecurringConfig, prevRecurringConfig, false))) {
66
+ return {
67
+ recurringConfig: currentRecurringConfig,
68
+ recurringInstances: currentInstances,
69
+ };
70
+ }
71
+ let currentEndDate = endDate;
72
+ let currentTotalPayments = totalPaymentCycles;
73
+ const currentInstance = currentInstances === null || currentInstances === void 0 ? void 0 : currentInstances.find((instance) => Boolean(instance.readonly) === false);
74
+ //TBR check if endDate or totalPayments to be preserved for change in frequency/startDate
75
+ if (prevRecurringConfig != null &&
76
+ endDateSelectorOptionType == null &&
77
+ (0, exports.isRecurringConfigChanged)(currentRecurringConfig, prevRecurringConfig, false) &&
78
+ endDate != null &&
79
+ totalPaymentCycles !== 0) {
80
+ currentTotalPayments = (0, exports.getTotalPayments)(startDate, endDate, frequency, currentInstance);
81
+ }
82
+ else if (endDate == null || endDateSelectorOptionType === 'payments') {
83
+ currentEndDate = (0, exports.getEndDate)(startDate, frequency, totalPaymentCycles, currentInstance);
84
+ }
85
+ else if (totalPaymentCycles === 0 || endDateSelectorOptionType === 'date') {
86
+ currentTotalPayments = (0, exports.getTotalPayments)(startDate, endDate, frequency, currentInstance);
87
+ }
88
+ //editRecurringBill
89
+ if (currentRecurringConfig.isActive &&
90
+ currentInstances != null &&
91
+ currentInstances.length !== 0 &&
92
+ currentInstance != null) {
93
+ const pastInstances = currentInstances.filter((bill) => bill.readonly === true);
94
+ const futureTotalPayments = currentTotalPayments - pastInstances.length;
95
+ const billAmountForFutureInstances = (_a = currentInstances[pastInstances.length + 1]) === null || _a === void 0 ? void 0 : _a.amount;
96
+ updatedRecurringInstances = [
97
+ ...pastInstances,
98
+ currentInstance,
99
+ ...getRecurringBillInstances(currentInstances[pastInstances.length].vendorReceiveDate, frequency, futureTotalPayments, pastInstances.length + 1, billAmountForFutureInstances !== null && billAmountForFutureInstances !== void 0 ? billAmountForFutureInstances : currentBillAmount).slice(1),
100
+ ];
101
+ }
102
+ else {
103
+ //createRecurringBill
104
+ updatedRecurringInstances = getRecurringBillInstances(startDate, frequency, currentTotalPayments, 1, currentBillAmount);
105
+ }
106
+ return {
107
+ recurringConfig: Object.assign(Object.assign({}, currentRecurringConfig), { endDate: currentEndDate, totalPaymentCycles: currentTotalPayments }),
108
+ recurringInstances: updatedRecurringInstances,
109
+ };
110
+ };
111
+ exports.updateRecurringBillDetails = updateRecurringBillDetails;
112
+ const isRecurringConfigChanged = (recurringBillNewConfig, originalRecurringBillConfig, checkApprovalChange) => {
113
+ const { isApprovalRequired: isApprovalRequiredNew, endDate: endDateNew, frequency: frequencyNew, totalPaymentCycles: totalPaymentCyclesNew, } = recurringBillNewConfig;
114
+ const { isApprovalRequired, endDate, frequency, totalPaymentCycles } = originalRecurringBillConfig;
115
+ return ((endDateNew === null || endDateNew === void 0 ? void 0 : endDateNew.toString()) !== (endDate === null || endDate === void 0 ? void 0 : endDate.toString()) ||
116
+ frequencyNew !== frequency ||
117
+ totalPaymentCyclesNew !== totalPaymentCycles ||
118
+ (checkApprovalChange ? isApprovalRequiredNew !== isApprovalRequired : false));
119
+ };
120
+ exports.isRecurringConfigChanged = isRecurringConfigChanged;
121
+ const getTotalPayments = (startDate, endDate, frequency, currentInstance) => {
122
+ let currentStartDate = startDate;
123
+ let pastPayments = 0;
124
+ if ((currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.instance) != null && (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.instance) > 1) {
125
+ currentStartDate = currentInstance.vendorReceiveDate;
126
+ pastPayments = currentInstance.instance - 1;
127
+ }
128
+ let totalPayments = 0;
129
+ const offSetValue = getRecurringFrequencyInDays(frequency);
130
+ totalPayments = endDate.diff(currentStartDate, 'day') / offSetValue;
131
+ return Math.floor(totalPayments + pastPayments) + 1; //+1 to include startDate
132
+ };
133
+ exports.getTotalPayments = getTotalPayments;
134
+ const getEndDate = (startDate, frequency, totalPayments, currentInstance) => {
135
+ let currentStartDate = startDate;
136
+ let endDate = currentStartDate;
137
+ let currentTotalPayments = totalPayments;
138
+ if ((currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.instance) != null && (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.instance) > 1) {
139
+ currentStartDate = currentInstance.vendorReceiveDate;
140
+ currentTotalPayments = totalPayments - currentInstance.instance + 1;
141
+ }
142
+ const offSetValue = getRecurringFrequencyInDays(frequency);
143
+ endDate = currentStartDate.add(offSetValue * (currentTotalPayments - 1), 'day');
144
+ return endDate;
145
+ };
146
+ exports.getEndDate = getEndDate;
147
+ function getRecurringBillInstances(startDate, frequency, totalPayments, currentInstance, billAmount) {
148
+ const updatedInstances = [];
149
+ const offSetValue = getRecurringFrequencyInDays(frequency);
150
+ for (let i = 0; i < totalPayments; i++) {
151
+ updatedInstances.push(Object.assign({ instance: currentInstance + i, amount: billAmount }, checkIfHolidayAndGetNextDate(startDate.add(i * offSetValue, 'day'))));
152
+ }
153
+ return updatedInstances;
154
+ }
155
+ function getRecurringFrequencyInDays(frequency) {
156
+ switch (frequency) {
157
+ case 'weekly':
158
+ return 7;
159
+ case 'biweekly':
160
+ return 14;
161
+ case 'monthly':
162
+ return 30;
163
+ case 'quarterly':
164
+ return 90;
165
+ }
166
+ }
167
+ function checkIfHolidayAndGetNextDate(date) {
168
+ const isHolidayMessage = 'is a holiday';
169
+ let newDate = date;
170
+ while ((0, workingDayHelper_1.isHoliday)(newDate.toDate()) === true) {
171
+ newDate = newDate.subtract(1, 'day');
172
+ }
173
+ if (newDate !== date) {
174
+ return {
175
+ vendorReceiveDate: newDate,
176
+ vendorReceiveDateNotes: `${date.format('MMM DD, YYYY')} ${isHolidayMessage}`,
177
+ };
178
+ }
179
+ return { vendorReceiveDate: date, vendorReceiveDateNotes: '' };
180
+ }
@@ -47,6 +47,7 @@ export interface ActorActivityWithUser extends Actor {
47
47
  userId: ID;
48
48
  type: string;
49
49
  subType?: string;
50
+ isRecurringAutoApprove: boolean;
50
51
  }
51
52
  export interface RemiActivity {
52
53
  approvalRuleId?: ID;
@@ -2,6 +2,7 @@ import { AddressPayload } from '../../../../entity/address/addressPayload';
2
2
  import { ZeniAPIResponse } from '../../../../responsePayload';
3
3
  import { ZeniAccountsConfig, DepositProductConfig } from './zeniAccountsConfigState';
4
4
  export interface ZeniAccountsConfigPayload {
5
+ apy: string | null;
5
6
  bank_name: string;
6
7
  deposit_product_config: DepositProductConfigPayload;
7
8
  mailing_address: AddressPayload;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mapDepositProductConfigPayloadToDepositProductConfig = exports.mapZeniAccountsConfigPayloadToZeniAccountsConfigState = void 0;
4
4
  const mapZeniAccountsConfigPayloadToZeniAccountsConfigState = (payload) => ({
5
+ annualPercentageYield: payload.apy != null ? payload.apy : '',
5
6
  bankName: payload.bank_name,
6
7
  mailingAddressId: payload.mailing_address.address_id,
7
8
  bankAddressId: payload.bank_address.address_id,
@@ -6,6 +6,7 @@ const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const zeniAccountsConfigPayload_1 = require("./zeniAccountsConfigPayload");
7
7
  exports.initialState = {
8
8
  zeniAccountsConfig: {
9
+ annualPercentageYield: '',
9
10
  bankName: '',
10
11
  mailingAddressId: '',
11
12
  bankAddressId: '',
@@ -28,8 +29,9 @@ const zeniAccountsConfig = (0, toolkit_1.createSlice)({
28
29
  draft.error = undefined;
29
30
  },
30
31
  updateZeniAccountsConfigSuccess(draft, action) {
31
- const { bankName, mailingAddressId, bankAddressId, depositProductConfig } = (0, zeniAccountsConfigPayload_1.mapZeniAccountsConfigPayloadToZeniAccountsConfigState)(action.payload);
32
+ const { bankName, mailingAddressId, bankAddressId, depositProductConfig, annualPercentageYield, } = (0, zeniAccountsConfigPayload_1.mapZeniAccountsConfigPayloadToZeniAccountsConfigState)(action.payload);
32
33
  draft.zeniAccountsConfig = {
34
+ annualPercentageYield,
33
35
  bankName,
34
36
  mailingAddressId,
35
37
  bankAddressId,
@@ -4,6 +4,7 @@ import { RootState } from '../../../../reducer';
4
4
  import { DepositProductConfig } from './zeniAccountsConfigState';
5
5
  export interface ZeniAccountsConfigSelectorView extends SelectorView {
6
6
  zeniAccountsConfigDetail: {
7
+ annualPercentageYield: string;
7
8
  bankName: string;
8
9
  depositProductConfig: DepositProductConfig;
9
10
  mailingAddress?: Address;
@@ -4,11 +4,12 @@ exports.getZeniAccountsConfigDetail = void 0;
4
4
  const addressSelector_1 = require("../../../../entity/address/addressSelector");
5
5
  const getZeniAccountsConfigDetail = (state) => {
6
6
  const { zeniAccountsConfigState, addressState } = state;
7
- const { bankName, depositProductConfig, bankAddressId, mailingAddressId } = zeniAccountsConfigState.zeniAccountsConfig;
7
+ const { bankName, depositProductConfig, bankAddressId, mailingAddressId, annualPercentageYield, } = zeniAccountsConfigState.zeniAccountsConfig;
8
8
  const mailingAddress = (0, addressSelector_1.getAddressByAddressId)(addressState, mailingAddressId);
9
9
  const bankAddress = (0, addressSelector_1.getAddressByAddressId)(addressState, bankAddressId);
10
10
  return {
11
11
  zeniAccountsConfigDetail: {
12
+ annualPercentageYield,
12
13
  bankName: bankName,
13
14
  depositProductConfig: depositProductConfig,
14
15
  mailingAddress,
@@ -3,6 +3,7 @@ export interface ZeniAccountsConfigState extends FetchedState {
3
3
  zeniAccountsConfig: ZeniAccountsConfig;
4
4
  }
5
5
  export interface ZeniAccountsConfig {
6
+ annualPercentageYield: string;
6
7
  bankName: string;
7
8
  mailingAddressId: ID;
8
9
  bankAddressId: ID;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.7.74",
3
+ "version": "4.7.75",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  "homepage": "https://github.com/zeni-ai/client-epic-state#readme",
27
27
  "devDependencies": {
28
28
  "@types/chai": "^4.2.11",
29
- "@types/jest": "^27.0.1",
29
+ "@types/jest": "^29.4.0",
30
30
  "@types/lodash": "^4.14.178",
31
31
  "@types/node": "^17.0.34",
32
32
  "@types/url-parse": "^1.4.8",
@@ -37,10 +37,10 @@
37
37
  "concurrently": "^6.3.0",
38
38
  "eslint": "^7.9.0",
39
39
  "eslint-config-prettier": "^8.3.0",
40
- "jest": "^27.2.0",
40
+ "jest": "^29.4.3",
41
41
  "prettier": "^2.3.2",
42
42
  "rimraf": "^3.0.2",
43
- "ts-jest": "^27.1.3",
43
+ "ts-jest": "^29.0.5",
44
44
  "ts-prune": "^0.10.3",
45
45
  "ts-unused-exports": "^10.0.1",
46
46
  "typescript": "^4.6.2"
@@ -48,6 +48,7 @@
48
48
  "dependencies": {
49
49
  "@reduxjs/toolkit": "^1.6.2",
50
50
  "cross-fetch": "^3.1.2",
51
+ "date-holidays": "^3.23.8",
51
52
  "dayjs": "^1.10.7",
52
53
  "dayjs-business-time": "^1.0.4",
53
54
  "js-base64": "^3.6.0",