@servicetitan/dte-pdf-editor 1.39.0 → 1.40.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/dist/constants/calculated.constants.d.ts +1 -0
- package/dist/constants/calculated.constants.d.ts.map +1 -1
- package/dist/constants/calculated.constants.js +1 -0
- package/dist/constants/calculated.constants.js.map +1 -1
- package/dist/utils/formula/format-calculated-result.utils.d.ts +1 -1
- package/dist/utils/formula/format-calculated-result.utils.d.ts.map +1 -1
- package/dist/utils/formula/format-calculated-result.utils.js +24 -9
- package/dist/utils/formula/format-calculated-result.utils.js.map +1 -1
- package/package.json +1 -1
- package/src/constants/calculated.constants.ts +2 -0
- package/src/utils/formula/format-calculated-result.utils.ts +28 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculated.constants.d.ts","sourceRoot":"","sources":["../../src/constants/calculated.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAiC,CAAC;AAEpE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,kBAAkB,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"calculated.constants.d.ts","sourceRoot":"","sources":["../../src/constants/calculated.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAiC,CAAC;AAEpE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculated.constants.js","sourceRoot":"","sources":["../../src/constants/calculated.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC"}
|
|
1
|
+
{"version":3,"file":"calculated.constants.js","sourceRoot":"","sources":["../../src/constants/calculated.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
|
|
@@ -3,5 +3,5 @@ import { CalculatedFieldFormat } from '../../interface/types';
|
|
|
3
3
|
* Format a calculated formula result for display using advanced settings.
|
|
4
4
|
* Applies rounding, decimal places, thousands/decimal separators, result type (number/currency/percent/date), and prefix/postfix.
|
|
5
5
|
*/
|
|
6
|
-
export declare
|
|
6
|
+
export declare const formatCalculatedResult: (value: number, format: CalculatedFieldFormat | undefined) => string;
|
|
7
7
|
//# sourceMappingURL=format-calculated-result.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-calculated-result.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/format-calculated-result.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAA6B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"format-calculated-result.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/format-calculated-result.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAA6B,MAAM,uBAAuB,CAAC;AA2EzF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAC/B,OAAO,MAAM,EACb,QAAQ,qBAAqB,GAAG,SAAS,KAC1C,MAiCF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DEFAULT_DATE_FORMAT } from '../../constants';
|
|
2
|
-
|
|
1
|
+
import { DEFAULT_DATE_FORMAT, MAX_DATE_DISPLAY_RANGE_YEARS } from '../../constants';
|
|
2
|
+
const roundValue = (value, decimals, mode) => {
|
|
3
3
|
const factor = 10 ** decimals;
|
|
4
4
|
const scaled = value * factor;
|
|
5
5
|
switch (mode) {
|
|
@@ -10,8 +10,8 @@ function roundValue(value, decimals, mode) {
|
|
|
10
10
|
default:
|
|
11
11
|
return Math.round(scaled) / factor;
|
|
12
12
|
}
|
|
13
|
-
}
|
|
14
|
-
|
|
13
|
+
};
|
|
14
|
+
const formatIntegerPart = (s, thousandsSeparator, decimalSeparator) => {
|
|
15
15
|
if (!thousandsSeparator) {
|
|
16
16
|
return s;
|
|
17
17
|
}
|
|
@@ -24,7 +24,7 @@ function formatIntegerPart(s, thousandsSeparator, decimalSeparator) {
|
|
|
24
24
|
i = start;
|
|
25
25
|
}
|
|
26
26
|
return parts.join(sep);
|
|
27
|
-
}
|
|
27
|
+
};
|
|
28
28
|
const DATE_FORMAT_TOKENS = {
|
|
29
29
|
YYYY: d => String(d.getFullYear()),
|
|
30
30
|
YY: d => String(d.getFullYear()).slice(-2),
|
|
@@ -36,7 +36,7 @@ const DATE_FORMAT_TOKENS = {
|
|
|
36
36
|
D: d => String(d.getDate()),
|
|
37
37
|
};
|
|
38
38
|
const DATE_TOKEN_PATTERN = new RegExp(Object.keys(DATE_FORMAT_TOKENS).join('|'), 'g');
|
|
39
|
-
|
|
39
|
+
const formatDateValue = (epochMs, dateFormat) => {
|
|
40
40
|
const date = new Date(epochMs);
|
|
41
41
|
if (isNaN(date.getTime())) {
|
|
42
42
|
return '';
|
|
@@ -45,17 +45,32 @@ function formatDateValue(epochMs, dateFormat) {
|
|
|
45
45
|
const fn = DATE_FORMAT_TOKENS[match];
|
|
46
46
|
return fn ? fn(date) : match;
|
|
47
47
|
});
|
|
48
|
-
}
|
|
48
|
+
};
|
|
49
|
+
const isDateWithinDisplayRange = (epochMs, referenceMs = Date.now()) => {
|
|
50
|
+
const date = new Date(epochMs);
|
|
51
|
+
if (isNaN(date.getTime())) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const ref = new Date(referenceMs);
|
|
55
|
+
const min = new Date(ref);
|
|
56
|
+
min.setFullYear(min.getFullYear() - MAX_DATE_DISPLAY_RANGE_YEARS);
|
|
57
|
+
const max = new Date(ref);
|
|
58
|
+
max.setFullYear(max.getFullYear() + MAX_DATE_DISPLAY_RANGE_YEARS);
|
|
59
|
+
return date >= min && date <= max;
|
|
60
|
+
};
|
|
49
61
|
/**
|
|
50
62
|
* Format a calculated formula result for display using advanced settings.
|
|
51
63
|
* Applies rounding, decimal places, thousands/decimal separators, result type (number/currency/percent/date), and prefix/postfix.
|
|
52
64
|
*/
|
|
53
|
-
export
|
|
65
|
+
export const formatCalculatedResult = (value, format) => {
|
|
54
66
|
var _a;
|
|
55
67
|
if (format == null) {
|
|
56
68
|
return String(value);
|
|
57
69
|
}
|
|
58
70
|
if (format.resultType === 'date') {
|
|
71
|
+
if (!isDateWithinDisplayRange(value)) {
|
|
72
|
+
return '';
|
|
73
|
+
}
|
|
59
74
|
return formatDateValue(value, (_a = format.dateFormat) !== null && _a !== void 0 ? _a : DEFAULT_DATE_FORMAT);
|
|
60
75
|
}
|
|
61
76
|
const { decimalSeparator, decimalSeparatorEnabled, decimals, postfixText, prefixText, roundingMode, thousandsSeparator, } = format;
|
|
@@ -67,5 +82,5 @@ export function formatCalculatedResult(value, format) {
|
|
|
67
82
|
const decSuffix = decimals > 0 ? decimalSep + (decPart !== null && decPart !== void 0 ? decPart : '') : '';
|
|
68
83
|
const numberStr = intFormatted + decSuffix;
|
|
69
84
|
return `${prefixText}${numberStr}${postfixText}`;
|
|
70
|
-
}
|
|
85
|
+
};
|
|
71
86
|
//# sourceMappingURL=format-calculated-result.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-calculated-result.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/format-calculated-result.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"format-calculated-result.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/format-calculated-result.utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { DEFAULT_DATE_FORMAT } from '../../constants';
|
|
1
|
+
import { DEFAULT_DATE_FORMAT, MAX_DATE_DISPLAY_RANGE_YEARS } from '../../constants';
|
|
2
2
|
import { CalculatedFieldFormat, CalculatedFormatForNumber } from '../../interface/types';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
const roundValue = (
|
|
5
5
|
value: number,
|
|
6
6
|
decimals: number,
|
|
7
7
|
mode: CalculatedFormatForNumber['roundingMode'],
|
|
8
|
-
): number {
|
|
8
|
+
): number => {
|
|
9
9
|
const factor = 10 ** decimals;
|
|
10
10
|
const scaled = value * factor;
|
|
11
11
|
switch (mode) {
|
|
@@ -16,13 +16,13 @@ function roundValue(
|
|
|
16
16
|
default:
|
|
17
17
|
return Math.round(scaled) / factor;
|
|
18
18
|
}
|
|
19
|
-
}
|
|
19
|
+
};
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
const formatIntegerPart = (
|
|
22
22
|
s: string,
|
|
23
23
|
thousandsSeparator: boolean,
|
|
24
24
|
decimalSeparator: '.' | ',',
|
|
25
|
-
): string {
|
|
25
|
+
): string => {
|
|
26
26
|
if (!thousandsSeparator) {
|
|
27
27
|
return s;
|
|
28
28
|
}
|
|
@@ -35,7 +35,7 @@ function formatIntegerPart(
|
|
|
35
35
|
i = start;
|
|
36
36
|
}
|
|
37
37
|
return parts.join(sep);
|
|
38
|
-
}
|
|
38
|
+
};
|
|
39
39
|
|
|
40
40
|
const DATE_FORMAT_TOKENS: Record<string, (d: Date) => string> = {
|
|
41
41
|
YYYY: d => String(d.getFullYear()),
|
|
@@ -50,7 +50,7 @@ const DATE_FORMAT_TOKENS: Record<string, (d: Date) => string> = {
|
|
|
50
50
|
|
|
51
51
|
const DATE_TOKEN_PATTERN = new RegExp(Object.keys(DATE_FORMAT_TOKENS).join('|'), 'g');
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
const formatDateValue = (epochMs: number, dateFormat: string): string => {
|
|
54
54
|
const date = new Date(epochMs);
|
|
55
55
|
if (isNaN(date.getTime())) {
|
|
56
56
|
return '';
|
|
@@ -59,21 +59,37 @@ function formatDateValue(epochMs: number, dateFormat: string): string {
|
|
|
59
59
|
const fn = DATE_FORMAT_TOKENS[match];
|
|
60
60
|
return fn ? fn(date) : match;
|
|
61
61
|
});
|
|
62
|
-
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const isDateWithinDisplayRange = (epochMs: number, referenceMs: number = Date.now()): boolean => {
|
|
65
|
+
const date = new Date(epochMs);
|
|
66
|
+
if (isNaN(date.getTime())) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const ref = new Date(referenceMs);
|
|
70
|
+
const min = new Date(ref);
|
|
71
|
+
min.setFullYear(min.getFullYear() - MAX_DATE_DISPLAY_RANGE_YEARS);
|
|
72
|
+
const max = new Date(ref);
|
|
73
|
+
max.setFullYear(max.getFullYear() + MAX_DATE_DISPLAY_RANGE_YEARS);
|
|
74
|
+
return date >= min && date <= max;
|
|
75
|
+
};
|
|
63
76
|
|
|
64
77
|
/**
|
|
65
78
|
* Format a calculated formula result for display using advanced settings.
|
|
66
79
|
* Applies rounding, decimal places, thousands/decimal separators, result type (number/currency/percent/date), and prefix/postfix.
|
|
67
80
|
*/
|
|
68
|
-
export
|
|
81
|
+
export const formatCalculatedResult = (
|
|
69
82
|
value: number,
|
|
70
83
|
format: CalculatedFieldFormat | undefined,
|
|
71
|
-
): string {
|
|
84
|
+
): string => {
|
|
72
85
|
if (format == null) {
|
|
73
86
|
return String(value);
|
|
74
87
|
}
|
|
75
88
|
|
|
76
89
|
if (format.resultType === 'date') {
|
|
90
|
+
if (!isDateWithinDisplayRange(value)) {
|
|
91
|
+
return '';
|
|
92
|
+
}
|
|
77
93
|
return formatDateValue(value, format.dateFormat ?? DEFAULT_DATE_FORMAT);
|
|
78
94
|
}
|
|
79
95
|
|
|
@@ -98,4 +114,4 @@ export function formatCalculatedResult(
|
|
|
98
114
|
const numberStr = intFormatted + decSuffix;
|
|
99
115
|
|
|
100
116
|
return `${prefixText}${numberStr}${postfixText}`;
|
|
101
|
-
}
|
|
117
|
+
};
|