gemcap-be-common 1.1.2 → 1.1.4

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 (40) hide show
  1. package/helpers/column-desciptions.d.ts +6 -0
  2. package/helpers/column-desciptions.js +282 -0
  3. package/helpers/column-desciptions.ts +281 -0
  4. package/helpers/common.helper.d.ts +1 -0
  5. package/helpers/common.helper.js +12 -0
  6. package/helpers/common.helper.ts +6 -0
  7. package/helpers/date.helper.d.ts +10 -0
  8. package/helpers/date.helper.js +71 -0
  9. package/helpers/date.helper.ts +67 -0
  10. package/helpers/enums.helper.d.ts +3 -0
  11. package/helpers/enums.helper.js +8 -0
  12. package/helpers/enums.helper.ts +4 -0
  13. package/helpers/exec.d.ts +1 -0
  14. package/helpers/exec.js +16 -0
  15. package/helpers/exec.ts +13 -0
  16. package/helpers/index.d.ts +7 -0
  17. package/helpers/index.js +23 -0
  18. package/helpers/index.ts +7 -0
  19. package/helpers/mongo.helper.d.ts +4 -0
  20. package/helpers/mongo.helper.js +88 -0
  21. package/helpers/mongo.helper.ts +68 -0
  22. package/helpers/paginator.helper.d.ts +2 -0
  23. package/helpers/paginator.helper.js +26 -0
  24. package/helpers/paginator.helper.ts +12 -0
  25. package/interfaces/collaterals.interface.d.ts +3 -3
  26. package/interfaces/collaterals.interface.ts +3 -3
  27. package/interfaces/custom-row.interface.d.ts +1 -2
  28. package/interfaces/custom-row.interface.ts +1 -2
  29. package/interfaces/email-addresses.interface.d.ts +1 -1
  30. package/interfaces/email-addresses.interface.ts +1 -1
  31. package/interfaces/query.interface.d.ts +1 -1
  32. package/interfaces/query.interface.ts +1 -1
  33. package/models/AccountPayableItem.model.d.ts +1 -1
  34. package/models/AccountPayableItem.model.ts +1 -1
  35. package/models/InventoryItem.model.d.ts +1 -1
  36. package/models/InventoryItem.model.ts +1 -1
  37. package/models/ReceiavableItem.model.d.ts +1 -1
  38. package/models/ReceiavableItem.model.ts +1 -1
  39. package/package.json +4 -1
  40. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,6 @@
1
+ import { ICustomRow } from '../interfaces';
2
+ import { ECollaterals } from '../enums';
3
+ export declare const COLLATERALS: {
4
+ [key: string]: ICustomRow[];
5
+ };
6
+ export declare const convertIntoDates: (item: any, collateralType: ECollaterals) => any;
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.convertIntoDates = exports.COLLATERALS = void 0;
5
+ var enums_1 = require("../enums");
6
+ exports.COLLATERALS = (_a = {},
7
+ _a[enums_1.ECollaterals.INVENTORY] = [
8
+ {
9
+ db_title: 'bbcDate',
10
+ title: 'BBC date',
11
+ required: false,
12
+ items: [],
13
+ hidden: true,
14
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_DATE],
15
+ dataType: enums_1.EDataTypes.DATE,
16
+ },
17
+ {
18
+ db_title: 'skuDate',
19
+ title: 'SKU date',
20
+ required: false,
21
+ items: [],
22
+ validators: [enums_1.EValidators.IS_DATE],
23
+ isDate: true,
24
+ dataType: enums_1.EDataTypes.DATE,
25
+ },
26
+ {
27
+ db_title: 'sku',
28
+ title: 'SKU',
29
+ required: true,
30
+ items: [],
31
+ validators: [enums_1.EValidators.NOT_EMPTY],
32
+ dataType: enums_1.EDataTypes.STRING,
33
+ },
34
+ { db_title: 'lotNumber', title: '#LOT', required: false, items: [], dataType: enums_1.EDataTypes.STRING },
35
+ { db_title: 'category', title: 'Category', required: false, items: [], dataType: enums_1.EDataTypes.STRING },
36
+ {
37
+ db_title: 'qty',
38
+ title: 'Qty',
39
+ required: false,
40
+ items: [],
41
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_NUMBER],
42
+ dataType: enums_1.EDataTypes.NUMBER,
43
+ },
44
+ {
45
+ db_title: 'unitCost',
46
+ title: 'Unit cost',
47
+ required: false,
48
+ items: [],
49
+ validators: [enums_1.EValidators.IS_NUMBER],
50
+ dataType: enums_1.EDataTypes.NUMBER,
51
+ },
52
+ {
53
+ db_title: 'value',
54
+ title: 'Value',
55
+ required: true,
56
+ items: [],
57
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_NUMBER],
58
+ dataType: enums_1.EDataTypes.NUMBER,
59
+ },
60
+ {
61
+ db_title: 'expiryDate',
62
+ title: 'Expiry date',
63
+ required: false,
64
+ items: [],
65
+ validators: [enums_1.EValidators.IS_DATE],
66
+ isDate: true,
67
+ dataType: enums_1.EDataTypes.DATE,
68
+ },
69
+ { db_title: 'location', title: 'Location', required: false, items: [], dataType: enums_1.EDataTypes.STRING },
70
+ {
71
+ db_title: 'skuDescription1',
72
+ title: 'SKU Description 1',
73
+ required: false,
74
+ items: [],
75
+ dataType: enums_1.EDataTypes.STRING,
76
+ },
77
+ {
78
+ db_title: 'skuDescription2',
79
+ title: 'SKU Description 2',
80
+ required: false,
81
+ items: [],
82
+ dataType: enums_1.EDataTypes.STRING,
83
+ },
84
+ {
85
+ db_title: 'skuDescription3',
86
+ title: 'SKU Description 3',
87
+ required: false,
88
+ items: [],
89
+ dataType: enums_1.EDataTypes.STRING,
90
+ },
91
+ {
92
+ db_title: 'detail1',
93
+ title: 'Detail 1',
94
+ required: false,
95
+ items: [],
96
+ dataType: enums_1.EDataTypes.STRING,
97
+ },
98
+ {
99
+ db_title: 'detail2',
100
+ title: 'Detail 2',
101
+ required: false,
102
+ items: [],
103
+ dataType: enums_1.EDataTypes.STRING,
104
+ },
105
+ {
106
+ db_title: 'detail3',
107
+ title: 'Detail 3',
108
+ required: false,
109
+ items: [],
110
+ dataType: enums_1.EDataTypes.STRING,
111
+ },
112
+ ],
113
+ _a[enums_1.ECollaterals.RECEIVABLE] = [
114
+ {
115
+ db_title: 'bbcDate',
116
+ title: 'BBC date',
117
+ required: false,
118
+ items: [],
119
+ hidden: true,
120
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_DATE],
121
+ },
122
+ {
123
+ db_title: 'invoiceNumber',
124
+ title: 'Invoice number',
125
+ required: true,
126
+ items: [],
127
+ validators: [enums_1.EValidators.NOT_EMPTY],
128
+ },
129
+ {
130
+ db_title: 'invoiceDate',
131
+ title: 'Invoice date',
132
+ required: true,
133
+ items: [],
134
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_DATE],
135
+ isDate: true,
136
+ },
137
+ {
138
+ db_title: 'customerTitle',
139
+ title: 'Customer title',
140
+ required: true,
141
+ items: [],
142
+ validators: [enums_1.EValidators.NOT_EMPTY],
143
+ },
144
+ {
145
+ db_title: 'invoiceAmount',
146
+ title: 'Invoice amount',
147
+ required: true,
148
+ items: [],
149
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_NUMBER],
150
+ },
151
+ {
152
+ db_title: 'originalAmount',
153
+ title: 'Original amount',
154
+ required: false,
155
+ items: [],
156
+ validators: [enums_1.EValidators.IS_NUMBER],
157
+ },
158
+ { db_title: 'dueDate', title: 'Due date', required: false, items: [], isDate: true },
159
+ {
160
+ db_title: 'invoiceDetail1',
161
+ title: 'Invoice detail 1',
162
+ required: false,
163
+ items: [],
164
+ },
165
+ {
166
+ db_title: 'invoiceDetail2',
167
+ title: 'Invoice detail 2',
168
+ required: false,
169
+ items: [],
170
+ },
171
+ {
172
+ db_title: 'invoiceDetail3',
173
+ title: 'Invoice detail 3',
174
+ required: false,
175
+ items: [],
176
+ },
177
+ ],
178
+ _a[enums_1.ECollaterals.ACCOUNT_PAYABLE] = [
179
+ {
180
+ db_title: 'bbcDate',
181
+ title: 'BBC date',
182
+ required: false,
183
+ items: [],
184
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_DATE],
185
+ },
186
+ {
187
+ db_title: 'apDate',
188
+ title: 'AP date',
189
+ required: false,
190
+ items: [],
191
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_DATE],
192
+ isDate: true,
193
+ },
194
+ { db_title: 'poNumber', title: 'PO number', required: false, items: [] },
195
+ { db_title: 'customerName', title: 'Customer name', required: false, items: [] },
196
+ {
197
+ db_title: 'amount',
198
+ title: 'Amount',
199
+ required: true,
200
+ items: [],
201
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_NUMBER, enums_1.EValidators.NUMBER_GT_NULL],
202
+ },
203
+ { db_title: 'otherInformation1', title: 'Other Information 1', required: false, items: [] },
204
+ { db_title: 'otherInformation2', title: 'Other Information 2', required: false, items: [] },
205
+ { db_title: 'otherInformation3', title: 'Other Information 3', required: false, items: [] },
206
+ ],
207
+ _a['BANKS'] = [
208
+ {
209
+ db_title: 'date',
210
+ title: 'Transaction date',
211
+ required: true,
212
+ items: [],
213
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_DATE],
214
+ isDate: true,
215
+ },
216
+ {
217
+ db_title: 'ledgerAccountCode',
218
+ title: 'Ledger account code',
219
+ required: true,
220
+ items: [],
221
+ validators: [enums_1.EValidators.NOT_EMPTY],
222
+ },
223
+ {
224
+ db_title: 'amount',
225
+ title: 'Amount',
226
+ required: true,
227
+ items: [],
228
+ validators: [enums_1.EValidators.NOT_EMPTY, enums_1.EValidators.IS_NUMBER],
229
+ },
230
+ {
231
+ db_title: 'description',
232
+ title: 'Description',
233
+ required: true,
234
+ items: [],
235
+ validators: [enums_1.EValidators.NOT_EMPTY],
236
+ },
237
+ {
238
+ db_title: 'reference',
239
+ title: 'Reference',
240
+ required: true,
241
+ items: [],
242
+ validators: [enums_1.EValidators.NOT_EMPTY],
243
+ },
244
+ {
245
+ db_title: 'customerId',
246
+ title: 'Customer ID',
247
+ required: false,
248
+ items: [],
249
+ validators: [],
250
+ },
251
+ {
252
+ db_title: 'bankAccountNumber',
253
+ title: 'Bank account number',
254
+ required: true,
255
+ items: [],
256
+ validators: [enums_1.EValidators.NOT_EMPTY],
257
+ },
258
+ {
259
+ db_title: 'transactionType',
260
+ title: 'Transaction type',
261
+ required: false,
262
+ items: [],
263
+ validators: [enums_1.EValidators.NOT_EMPTY],
264
+ hidden: true,
265
+ },
266
+ ],
267
+ _a);
268
+ var convertIntoDates = function (item, collateralType) {
269
+ return Object.keys(item).reduce(function (acc, key) {
270
+ var foundColumn = exports.COLLATERALS[collateralType].find(function (c) { return c.db_title === key; });
271
+ if (!!foundColumn && !!foundColumn.validators && foundColumn.validators.includes(enums_1.EValidators.IS_DATE)) {
272
+ if (!!item[key]) {
273
+ var newDate = new Date(item[key]);
274
+ if (newDate instanceof Date && !isNaN(newDate.valueOf())) {
275
+ item[key] = newDate;
276
+ }
277
+ }
278
+ }
279
+ return item;
280
+ }, item);
281
+ };
282
+ exports.convertIntoDates = convertIntoDates;
@@ -0,0 +1,281 @@
1
+ import { ICustomRow } from '../interfaces';
2
+ import { ECollaterals, EDataTypes, EValidators } from '../enums';
3
+
4
+ export const COLLATERALS: { [key: string]: ICustomRow[] } = {
5
+ [ECollaterals.INVENTORY]: [
6
+ {
7
+ db_title: 'bbcDate',
8
+ title: 'BBC date',
9
+ required: false,
10
+ items: [],
11
+ hidden: true,
12
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
13
+ dataType: EDataTypes.DATE,
14
+ },
15
+ {
16
+ db_title: 'skuDate',
17
+ title: 'SKU date',
18
+ required: false,
19
+ items: [],
20
+ validators: [EValidators.IS_DATE],
21
+ isDate: true,
22
+ dataType: EDataTypes.DATE,
23
+ },
24
+ {
25
+ db_title: 'sku',
26
+ title: 'SKU',
27
+ required: true,
28
+ items: [],
29
+ validators: [EValidators.NOT_EMPTY],
30
+ dataType: EDataTypes.STRING,
31
+ },
32
+ { db_title: 'lotNumber', title: '#LOT', required: false, items: [], dataType: EDataTypes.STRING },
33
+ { db_title: 'category', title: 'Category', required: false, items: [], dataType: EDataTypes.STRING },
34
+ {
35
+ db_title: 'qty',
36
+ title: 'Qty',
37
+ required: false,
38
+ items: [],
39
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_NUMBER],
40
+ dataType: EDataTypes.NUMBER,
41
+ },
42
+ {
43
+ db_title: 'unitCost',
44
+ title: 'Unit cost',
45
+ required: false,
46
+ items: [],
47
+ validators: [EValidators.IS_NUMBER],
48
+ dataType: EDataTypes.NUMBER,
49
+ },
50
+ {
51
+ db_title: 'value',
52
+ title: 'Value',
53
+ required: true,
54
+ items: [],
55
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_NUMBER],
56
+ dataType: EDataTypes.NUMBER,
57
+ },
58
+ {
59
+ db_title: 'expiryDate',
60
+ title: 'Expiry date',
61
+ required: false,
62
+ items: [],
63
+ validators: [EValidators.IS_DATE],
64
+ isDate: true,
65
+ dataType: EDataTypes.DATE,
66
+ },
67
+ { db_title: 'location', title: 'Location', required: false, items: [], dataType: EDataTypes.STRING },
68
+ {
69
+ db_title: 'skuDescription1',
70
+ title: 'SKU Description 1',
71
+ required: false,
72
+ items: [],
73
+ dataType: EDataTypes.STRING,
74
+ },
75
+ {
76
+ db_title: 'skuDescription2',
77
+ title: 'SKU Description 2',
78
+ required: false,
79
+ items: [],
80
+ dataType: EDataTypes.STRING,
81
+ },
82
+ {
83
+ db_title: 'skuDescription3',
84
+ title: 'SKU Description 3',
85
+ required: false,
86
+ items: [],
87
+ dataType: EDataTypes.STRING,
88
+ },
89
+ {
90
+ db_title: 'detail1',
91
+ title: 'Detail 1',
92
+ required: false,
93
+ items: [],
94
+ dataType: EDataTypes.STRING,
95
+ },
96
+ {
97
+ db_title: 'detail2',
98
+ title: 'Detail 2',
99
+ required: false,
100
+ items: [],
101
+ dataType: EDataTypes.STRING,
102
+ },
103
+ {
104
+ db_title: 'detail3',
105
+ title: 'Detail 3',
106
+ required: false,
107
+ items: [],
108
+ dataType: EDataTypes.STRING,
109
+ },
110
+ ],
111
+ [ECollaterals.RECEIVABLE]: [
112
+ {
113
+ db_title: 'bbcDate',
114
+ title: 'BBC date',
115
+ required: false,
116
+ items: [],
117
+ hidden: true,
118
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
119
+ },
120
+ {
121
+ db_title: 'invoiceNumber',
122
+ title: 'Invoice number',
123
+ required: true,
124
+ items: [],
125
+ validators: [EValidators.NOT_EMPTY],
126
+ },
127
+ {
128
+ db_title: 'invoiceDate',
129
+ title: 'Invoice date',
130
+ required: true,
131
+ items: [],
132
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
133
+ isDate: true,
134
+ },
135
+ {
136
+ db_title: 'customerTitle',
137
+ title: 'Customer title',
138
+ required: true,
139
+ items: [],
140
+ validators: [EValidators.NOT_EMPTY],
141
+ },
142
+ {
143
+ db_title: 'invoiceAmount',
144
+ title: 'Invoice amount',
145
+ required: true,
146
+ items: [],
147
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_NUMBER],
148
+ },
149
+ {
150
+ db_title: 'originalAmount',
151
+ title: 'Original amount',
152
+ required: false,
153
+ items: [],
154
+ validators: [EValidators.IS_NUMBER],
155
+ },
156
+ { db_title: 'dueDate', title: 'Due date', required: false, items: [], isDate: true },
157
+ {
158
+ db_title: 'invoiceDetail1',
159
+ title: 'Invoice detail 1',
160
+ required: false,
161
+ items: [],
162
+ },
163
+ {
164
+ db_title: 'invoiceDetail2',
165
+ title: 'Invoice detail 2',
166
+ required: false,
167
+ items: [],
168
+ },
169
+ {
170
+ db_title: 'invoiceDetail3',
171
+ title: 'Invoice detail 3',
172
+ required: false,
173
+ items: [],
174
+ },
175
+ ],
176
+ [ECollaterals.ACCOUNT_PAYABLE]: [
177
+ {
178
+ db_title: 'bbcDate',
179
+ title: 'BBC date',
180
+ required: false,
181
+ items: [],
182
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
183
+ },
184
+ {
185
+ db_title: 'apDate',
186
+ title: 'AP date',
187
+ required: false,
188
+ items: [],
189
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
190
+ isDate: true,
191
+ },
192
+ { db_title: 'poNumber', title: 'PO number', required: false, items: [] },
193
+ { db_title: 'customerName', title: 'Customer name', required: false, items: [] },
194
+ {
195
+ db_title: 'amount',
196
+ title: 'Amount',
197
+ required: true,
198
+ items: [],
199
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_NUMBER, EValidators.NUMBER_GT_NULL],
200
+ },
201
+ { db_title: 'otherInformation1', title: 'Other Information 1', required: false, items: [] },
202
+ { db_title: 'otherInformation2', title: 'Other Information 2', required: false, items: [] },
203
+ { db_title: 'otherInformation3', title: 'Other Information 3', required: false, items: [] },
204
+ ],
205
+ 'BANKS': [
206
+ {
207
+ db_title: 'date',
208
+ title: 'Transaction date',
209
+ required: true,
210
+ items: [],
211
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
212
+ isDate: true,
213
+ },
214
+
215
+ {
216
+ db_title: 'ledgerAccountCode',
217
+ title: 'Ledger account code',
218
+ required: true,
219
+ items: [],
220
+ validators: [EValidators.NOT_EMPTY],
221
+ },
222
+ {
223
+ db_title: 'amount',
224
+ title: 'Amount',
225
+ required: true,
226
+ items: [],
227
+ validators: [EValidators.NOT_EMPTY, EValidators.IS_NUMBER],
228
+ },
229
+ {
230
+ db_title: 'description',
231
+ title: 'Description',
232
+ required: true,
233
+ items: [],
234
+ validators: [EValidators.NOT_EMPTY],
235
+ },
236
+ {
237
+ db_title: 'reference',
238
+ title: 'Reference',
239
+ required: true,
240
+ items: [],
241
+ validators: [EValidators.NOT_EMPTY],
242
+ },
243
+ {
244
+ db_title: 'customerId',
245
+ title: 'Customer ID',
246
+ required: false,
247
+ items: [],
248
+ validators: [],
249
+ },
250
+ {
251
+ db_title: 'bankAccountNumber',
252
+ title: 'Bank account number',
253
+ required: true,
254
+ items: [],
255
+ validators: [EValidators.NOT_EMPTY],
256
+ },
257
+ {
258
+ db_title: 'transactionType',
259
+ title: 'Transaction type',
260
+ required: false,
261
+ items: [],
262
+ validators: [EValidators.NOT_EMPTY],
263
+ hidden: true,
264
+ },
265
+ ],
266
+ };
267
+
268
+ export const convertIntoDates = (item, collateralType: ECollaterals) => {
269
+ return Object.keys(item).reduce((acc, key) => {
270
+ const foundColumn = COLLATERALS[collateralType].find((c) => c.db_title === key);
271
+ if (!!foundColumn && !!foundColumn.validators && foundColumn.validators.includes(EValidators.IS_DATE)) {
272
+ if (!!item[key]) {
273
+ const newDate = new Date(item[key]);
274
+ if (newDate instanceof Date && !isNaN(newDate.valueOf())) {
275
+ item[key] = newDate;
276
+ }
277
+ }
278
+ }
279
+ return item;
280
+ }, item);
281
+ };
@@ -0,0 +1 @@
1
+ export declare const createFilteredObject: <T>(originalObject: Object, inclusionList: string[]) => T;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createFilteredObject = void 0;
7
+ var lodash_1 = __importDefault(require("lodash"));
8
+ var createFilteredObject = function (originalObject, inclusionList) {
9
+ var filteredObject = lodash_1.default.pick(originalObject, inclusionList);
10
+ return filteredObject;
11
+ };
12
+ exports.createFilteredObject = createFilteredObject;
@@ -0,0 +1,6 @@
1
+ import _ from 'lodash';
2
+
3
+ export const createFilteredObject = <T>(originalObject: Object, inclusionList: string[]): T => {
4
+ const filteredObject = _.pick(originalObject, inclusionList);
5
+ return filteredObject as T;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { OpUnitType, QUnitType } from 'dayjs';
2
+ export declare const defaultDateFormat = "MM-DD-YYYY";
3
+ export declare const normalizeDate: (date: Date, type: 'start' | 'end') => Date;
4
+ export declare const convertAnyToDate: (date: any) => Date | null;
5
+ export declare const dateLessThan: (date: Date, compare: number, unit: QUnitType | OpUnitType) => boolean;
6
+ export declare const formatDate: (date: Date) => string;
7
+ export declare const calculateTimeZone: (date: Date) => Date;
8
+ export declare const convertToDefaultFormat: (date: Date) => string;
9
+ export declare const excelDateToJSDate: (serial: number) => Date;
10
+ export declare const convertToFormat: (date: Date, format: string) => string;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertToFormat = exports.excelDateToJSDate = exports.convertToDefaultFormat = exports.calculateTimeZone = exports.formatDate = exports.dateLessThan = exports.convertAnyToDate = exports.normalizeDate = exports.defaultDateFormat = void 0;
7
+ var dayjs_1 = __importDefault(require("dayjs"));
8
+ var utc_1 = __importDefault(require("dayjs/plugin/utc"));
9
+ var timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
10
+ dayjs_1.default.extend(utc_1.default);
11
+ dayjs_1.default.extend(timezone_1.default);
12
+ exports.defaultDateFormat = 'MM-DD-YYYY';
13
+ var normalizeDate = function (date, type) {
14
+ return type === 'start'
15
+ ? (0, dayjs_1.default)(date).utc().startOf('day').toDate()
16
+ : (0, dayjs_1.default)(date).utc().endOf('day').toDate();
17
+ };
18
+ exports.normalizeDate = normalizeDate;
19
+ var convertAnyToDate = function (date) {
20
+ var result = null;
21
+ if (!date) {
22
+ result = null;
23
+ }
24
+ if (date instanceof Date) {
25
+ result = date;
26
+ }
27
+ if (date.toString().match(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/)) {
28
+ result = new Date(date.slice(0, -1));
29
+ }
30
+ return result;
31
+ };
32
+ exports.convertAnyToDate = convertAnyToDate;
33
+ var dateLessThan = function (date, compare, unit) {
34
+ var currentDate = (0, dayjs_1.default)();
35
+ var nextDate = (0, dayjs_1.default)(new Date(date));
36
+ var difference = currentDate.diff(nextDate, unit);
37
+ return difference < compare;
38
+ };
39
+ exports.dateLessThan = dateLessThan;
40
+ var formatDate = function (date) {
41
+ return (0, dayjs_1.default)(date).format(exports.defaultDateFormat);
42
+ };
43
+ exports.formatDate = formatDate;
44
+ var calculateTimeZone = function (date) {
45
+ if (date instanceof Date) {
46
+ return (0, dayjs_1.default)(date).subtract(date.getTimezoneOffset(), 'minute').toDate();
47
+ }
48
+ return date;
49
+ };
50
+ exports.calculateTimeZone = calculateTimeZone;
51
+ var convertToDefaultFormat = function (date) {
52
+ return (0, dayjs_1.default)(date).format(exports.defaultDateFormat);
53
+ };
54
+ exports.convertToDefaultFormat = convertToDefaultFormat;
55
+ var excelDateToJSDate = function (serial) {
56
+ var utcDays = Math.floor(serial - 25569);
57
+ var utcValue = utcDays * 86400;
58
+ var dateInfo = new Date(utcValue * 1000);
59
+ var fractionalDay = serial - Math.floor(serial) + 0.0000001;
60
+ var totalSeconds = Math.floor(86400 * fractionalDay);
61
+ var seconds = totalSeconds % 60;
62
+ totalSeconds -= seconds;
63
+ var hours = Math.floor(totalSeconds / (60 * 60));
64
+ var minutes = Math.floor(totalSeconds / 60) % 60;
65
+ return new Date(dateInfo.getFullYear(), dateInfo.getMonth(), dateInfo.getDate(), hours, minutes, seconds);
66
+ };
67
+ exports.excelDateToJSDate = excelDateToJSDate;
68
+ var convertToFormat = function (date, format) {
69
+ return (0, dayjs_1.default)(date).format(format);
70
+ };
71
+ exports.convertToFormat = convertToFormat;