@servicetitan/dte-pdf-editor 1.37.0 → 1.39.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/README.md +7 -4
- package/dist/components/field-config-panel/advanced-settings.d.ts.map +1 -1
- package/dist/components/field-config-panel/advanced-settings.js +6 -12
- package/dist/components/field-config-panel/advanced-settings.js.map +1 -1
- package/dist/components/field-config-panel/formula-modal.d.ts.map +1 -1
- package/dist/components/field-config-panel/formula-modal.js +20 -36
- package/dist/components/field-config-panel/formula-modal.js.map +1 -1
- package/dist/components/field-config-panel/formula-workspace.d.ts.map +1 -1
- package/dist/components/field-config-panel/formula-workspace.js +4 -4
- package/dist/components/field-config-panel/formula-workspace.js.map +1 -1
- package/dist/components/field-config-panel/result-type-selector.d.ts.map +1 -1
- package/dist/components/field-config-panel/result-type-selector.js +4 -1
- package/dist/components/field-config-panel/result-type-selector.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-calculated.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-calculated.js +2 -16
- package/dist/components/pdf-view/pdf-view-calculated.js.map +1 -1
- package/dist/constants/field.constants.d.ts +7 -1
- package/dist/constants/field.constants.d.ts.map +1 -1
- package/dist/constants/field.constants.js +20 -0
- package/dist/constants/field.constants.js.map +1 -1
- package/dist/interface/types.d.ts +11 -7
- package/dist/interface/types.d.ts.map +1 -1
- package/dist/interface/types.js.map +1 -1
- package/dist/utils/formula/evaluate-formula.utils.d.ts +5 -4
- package/dist/utils/formula/evaluate-formula.utils.d.ts.map +1 -1
- package/dist/utils/formula/evaluate-formula.utils.js +20 -9
- package/dist/utils/formula/evaluate-formula.utils.js.map +1 -1
- package/dist/utils/formula/expression.utils.d.ts +1 -1
- package/dist/utils/formula/expression.utils.d.ts.map +1 -1
- package/dist/utils/formula/expression.utils.js +10 -4
- package/dist/utils/formula/expression.utils.js.map +1 -1
- package/dist/utils/formula/format-calculated-result.utils.d.ts.map +1 -1
- package/dist/utils/formula/format-calculated-result.utils.js.map +1 -1
- package/package.json +1 -1
- package/src/components/field-config-panel/advanced-settings.tsx +84 -78
- package/src/components/field-config-panel/formula-modal.tsx +24 -37
- package/src/components/field-config-panel/formula-workspace.tsx +24 -22
- package/src/components/field-config-panel/result-type-selector.tsx +26 -16
- package/src/components/pdf-view/pdf-view-calculated.tsx +2 -15
- package/src/constants/field.constants.ts +28 -0
- package/src/interface/types.ts +15 -8
- package/src/utils/formula/evaluate-formula.utils.ts +25 -14
- package/src/utils/formula/expression.utils.ts +15 -7
- package/src/utils/formula/format-calculated-result.utils.ts +2 -2
package/README.md
CHANGED
|
@@ -27,8 +27,9 @@ integration, e-signature support, fillable form fields, and calculated fields wi
|
|
|
27
27
|
- **Date result type**: New `date` option in the result type selector. When the formula contains date fields, the result
|
|
28
28
|
type is automatically set to `date`. Advanced settings show a customizable date format (tokens: `YYYY`, `YY`, `MMMM`,
|
|
29
29
|
`MMM`, `MM`, `M`, `DD`, `D`) instead of numeric rounding/separator controls.
|
|
30
|
-
- **CalculatedFieldFormat**: Extended with `dateFormat?: string` (custom format pattern)
|
|
31
|
-
|
|
30
|
+
- **CalculatedFieldFormat**: Extended with `dateFormat?: string` (custom format pattern).
|
|
31
|
+
- **FormulaToken**: Field tokens now carry `fieldType?: 'date' | 'number'` to indicate whether a field is date- or
|
|
32
|
+
number-typed, replacing the previously separate `dateFieldPaths` array on `CalculatedFieldFormat`.
|
|
32
33
|
- **SchemaFieldType**: New `fieldType` on `FieldTypeOption` tracks whether a schema field is `'number'` or `'date'`.
|
|
33
34
|
- **Validation**: Date formulas are restricted to `+`, `-`, and parentheses only. Numeric literals are capped at
|
|
34
35
|
365 days.
|
|
@@ -186,7 +187,7 @@ interface PdfField {
|
|
|
186
187
|
description?: string;
|
|
187
188
|
data?: FieldDataType; // for generic fields (table/text)
|
|
188
189
|
formula?: StructuredFormula; // for calculated fields
|
|
189
|
-
formulaFormat?: CalculatedFieldFormat; // for calculated fields (includes dateFormat
|
|
190
|
+
formulaFormat?: CalculatedFieldFormat; // for calculated fields (includes dateFormat)
|
|
190
191
|
}
|
|
191
192
|
```
|
|
192
193
|
|
|
@@ -246,7 +247,9 @@ Calculated fields use a structured formula and optional display format:
|
|
|
246
247
|
and safe editing.
|
|
247
248
|
- **CalculatedFieldFormat**: Controls result display: `resultType` (`number` | `currency` | `percent` | `date`),
|
|
248
249
|
rounding mode, decimal places, thousands/decimal separators, prefix/postfix text, `dateFormat` (custom pattern using
|
|
249
|
-
`YYYY`, `MM`, `DD`, etc.)
|
|
250
|
+
`YYYY`, `MM`, `DD`, etc.).
|
|
251
|
+
- **FormulaToken (field)**: Field tokens carry `fieldType?: 'date' | 'number'` to support date-aware evaluation
|
|
252
|
+
directly from the formula structure.
|
|
250
253
|
|
|
251
254
|
Date fields in formulas use day-based arithmetic: `date + number` adds days, `date - date` yields a day count. Only `+`,
|
|
252
255
|
`-`, and parentheses are allowed when date fields are present.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-settings.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/advanced-settings.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"advanced-settings.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/advanced-settings.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAA6B,MAAM,uBAAuB,CAAC;AAEzF,UAAU,qBAAqB;IAC3B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC;CAC9D;AAqBD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA+GtD,CAAC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex, SegmentedControl, Switch, Text } from '@servicetitan/anvil2';
|
|
3
|
-
import { DEFAULT_DATE_FORMAT } from '../../constants';
|
|
4
|
-
const ROUNDING_OPTIONS = [
|
|
5
|
-
{ label: 'Round', value: 'round' },
|
|
6
|
-
{ label: 'Floor', value: 'floor' },
|
|
7
|
-
{ label: 'Ceil', value: 'ceil' },
|
|
8
|
-
];
|
|
3
|
+
import { DEFAULT_DATE_FORMAT, ROUNDING_OPTIONS } from '../../constants';
|
|
9
4
|
const DateFormatSettings = ({ format, setFormat }) => {
|
|
10
5
|
var _a;
|
|
11
6
|
return (_jsxs("div", { className: "dte-formula-advanced", children: [_jsx(Text, { variant: "body", size: "small", children: "Date format" }), _jsx("input", { type: "text", className: "dte-formula-advanced-input", style: { width: '100%' }, value: (_a = format.dateFormat) !== null && _a !== void 0 ? _a : DEFAULT_DATE_FORMAT, placeholder: DEFAULT_DATE_FORMAT, onChange: e => setFormat(prev => ({ ...prev, dateFormat: e.target.value })) }), _jsx(Text, { variant: "body", size: "small", color: "tertiary", children: "Tokens: YYYY, YY, MMMM, MMM, MM, M, DD, D" })] }));
|
|
@@ -14,16 +9,15 @@ export const AdvancedSettings = ({ format, setFormat }) => {
|
|
|
14
9
|
if (format.resultType === 'date') {
|
|
15
10
|
return _jsx(DateFormatSettings, { format: format, setFormat: setFormat });
|
|
16
11
|
}
|
|
17
|
-
return (_jsxs("div", { className: "dte-formula-advanced", children: [_jsx(Text, { variant: "body", size: "small", children: "Rounding mode" }), _jsx(SegmentedControl, {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
return (_jsxs("div", { className: "dte-formula-advanced", children: [_jsxs(Flex, { direction: "column", children: [_jsx(Text, { variant: "body", size: "small", children: "Rounding mode" }), _jsx(SegmentedControl, { selected: format.roundingMode, onChange: (roundingMode) => setFormat(prev => ({ ...prev, roundingMode })), fill: true, children: ROUNDING_OPTIONS.map(opt => (_jsx(SegmentedControl.Segment, { value: opt.value, children: opt.label }, opt.value))) })] }), _jsxs(Flex, { direction: "column", flex: 1, children: [_jsxs(Flex, { alignItems: "center", justifyContent: "space-between", children: [_jsx(Text, { variant: "body", size: "small", children: "Decimal places" }), _jsx(Text, { variant: "body", size: "small", className: "dte-formula-advanced-value", children: format.decimals })] }), _jsx("input", { type: "range", min: 0, max: 10, value: format.decimals, onChange: e => setFormat(prev => ({
|
|
13
|
+
...prev,
|
|
14
|
+
decimals: Number(e.target.value),
|
|
15
|
+
})) })] }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { variant: "body", size: "small", children: "Decimal Separator" }), _jsx(SegmentedControl, { size: "small", fill: true, selected: format.decimalSeparator, onChange: (decimalSeparator) => setFormat(prev => ({ ...prev, decimalSeparator })), children: ['.', ','].map(decimalSeparator => (_jsx(SegmentedControl.Segment, { value: decimalSeparator, children: decimalSeparator }, decimalSeparator))) })] }), _jsx(Switch, { checked: format.thousandsSeparator, onChange: (_e, { checked }) => {
|
|
21
16
|
setFormat(prev => ({
|
|
22
17
|
...prev,
|
|
23
18
|
thousandsSeparator: checked,
|
|
24
19
|
decimalSeparatorEnabled: checked,
|
|
25
|
-
decimalSeparator: checked ? prev.decimalSeparator : '.',
|
|
26
20
|
}));
|
|
27
|
-
}, label: "Thousands separator", value: "switch-example" }),
|
|
21
|
+
}, label: "Thousands separator", value: "switch-example" }), _jsxs(Flex, { direction: "column", children: [_jsx(Text, { variant: "body", size: "small", children: "Result affixes" }), _jsxs(Flex, { gap: "2", alignItems: "center", children: [_jsx(Text, { variant: "body", size: "small", children: "Prefix" }), _jsx("input", { disabled: format.resultType === 'currency', type: "text", className: "dte-formula-advanced-input", value: format.prefixText, onChange: e => setFormat(prev => ({ ...prev, prefixText: e.target.value })) }), _jsx(Text, { variant: "body", size: "small", children: "Postfix" }), _jsx("input", { type: "text", disabled: format.resultType === 'percent', className: "dte-formula-advanced-input", value: format.postfixText, onChange: e => setFormat(prev => ({ ...prev, postfixText: e.target.value })) })] })] })] }));
|
|
28
22
|
};
|
|
29
23
|
//# sourceMappingURL=advanced-settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-settings.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/advanced-settings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"advanced-settings.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/advanced-settings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-modal.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"formula-modal.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;AAOtE,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AA8B/B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC9C,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,0BAA0B,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC3E;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA4L9C,CAAC"}
|
|
@@ -3,21 +3,11 @@ import { Button, Dialog, Divider, Flex } from '@servicetitan/anvil2';
|
|
|
3
3
|
import IconRedo from '@servicetitan/anvil2/assets/icons/material/round/redo.svg';
|
|
4
4
|
import IconUndo from '@servicetitan/anvil2/assets/icons/material/round/undo.svg';
|
|
5
5
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
|
-
import {
|
|
6
|
+
import { DEFAULT_DATE_CALCULATED_FORMAT, DEFAULT_NUMBER_FORMAT, MODAL_CONTENT_MAX_HEIGHT, } from '../../constants';
|
|
7
7
|
import { useFormulaEditor } from '../../hooks';
|
|
8
8
|
import { parseExpression, tokenizeExpression, tokensToExpression, validateFormula, } from '../../utils';
|
|
9
9
|
import { FieldSidebar } from './field-sidebar';
|
|
10
10
|
import { FormulaWorkspace } from './formula-workspace';
|
|
11
|
-
const DEFAULT_CALCULATED_FIELD_FORMAT = {
|
|
12
|
-
resultType: 'number',
|
|
13
|
-
thousandsSeparator: false,
|
|
14
|
-
decimals: 2,
|
|
15
|
-
roundingMode: 'round',
|
|
16
|
-
decimalSeparatorEnabled: false,
|
|
17
|
-
decimalSeparator: '.',
|
|
18
|
-
prefixText: '',
|
|
19
|
-
postfixText: '',
|
|
20
|
-
};
|
|
21
11
|
function getAllFields(groups) {
|
|
22
12
|
const list = [];
|
|
23
13
|
for (const g of groups) {
|
|
@@ -79,7 +69,7 @@ export const FormulaModal = ({ dataModelGroups, fillableFieldsFromDocument = [],
|
|
|
79
69
|
}, [allFields, fillableFieldsFromDocument]);
|
|
80
70
|
const currentExpression = useMemo(() => tokensToExpression(initialFormula), [initialFormula]);
|
|
81
71
|
const [highlightElementPath, setHighlightElementPath] = useState('');
|
|
82
|
-
const [format, setFormat] = useState(() => initialFormat !== null && initialFormat !== void 0 ? initialFormat :
|
|
72
|
+
const [format, setFormat] = useState(() => initialFormat !== null && initialFormat !== void 0 ? initialFormat : DEFAULT_NUMBER_FORMAT);
|
|
83
73
|
const [advancedOpen, setAdvancedOpen] = useState(false);
|
|
84
74
|
const formulaEditor = useFormulaEditor({
|
|
85
75
|
currentExpression,
|
|
@@ -89,24 +79,13 @@ export const FormulaModal = ({ dataModelGroups, fillableFieldsFromDocument = [],
|
|
|
89
79
|
});
|
|
90
80
|
useEffect(() => {
|
|
91
81
|
if (formulaEditor.expressionHasDateFields && format.resultType !== 'date') {
|
|
92
|
-
setFormat(
|
|
93
|
-
var _a;
|
|
94
|
-
return ({
|
|
95
|
-
...prev,
|
|
96
|
-
resultType: 'date',
|
|
97
|
-
dateFormat: (_a = prev.dateFormat) !== null && _a !== void 0 ? _a : DEFAULT_DATE_FORMAT,
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
setAdvancedOpen(true);
|
|
82
|
+
setFormat(DEFAULT_DATE_CALCULATED_FORMAT);
|
|
101
83
|
}
|
|
102
84
|
else if (!formulaEditor.expressionHasDateFields && format.resultType === 'date') {
|
|
103
|
-
setFormat(
|
|
104
|
-
...prev,
|
|
105
|
-
resultType: 'number',
|
|
106
|
-
}));
|
|
85
|
+
setFormat(DEFAULT_NUMBER_FORMAT);
|
|
107
86
|
}
|
|
108
87
|
}, [formulaEditor.expressionHasDateFields, format.resultType]);
|
|
109
|
-
const parsedTokens = useMemo(() => parseExpression(formulaEditor.draftExpression, validPaths), [formulaEditor.draftExpression, validPaths]);
|
|
88
|
+
const parsedTokens = useMemo(() => parseExpression(formulaEditor.draftExpression, validPaths, knownDateFields), [formulaEditor.draftExpression, validPaths, knownDateFields]);
|
|
110
89
|
const formulaValidation = useMemo(() => validateFormula({ tokens: parsedTokens }, validPaths, knownDateFields, pathToLabel), [parsedTokens, validPaths, knownDateFields, pathToLabel]);
|
|
111
90
|
const unknownFieldErrors = useMemo(() => {
|
|
112
91
|
const parts = tokenizeExpression(formulaEditor.draftExpression);
|
|
@@ -122,22 +101,27 @@ export const FormulaModal = ({ dataModelGroups, fillableFieldsFromDocument = [],
|
|
|
122
101
|
onClose();
|
|
123
102
|
}, [onClose]);
|
|
124
103
|
const handleSave = useCallback(() => {
|
|
125
|
-
|
|
126
|
-
.filter(t => t.type === 'field' && knownDateFields.has(t.path))
|
|
127
|
-
.map(t => t.path);
|
|
128
|
-
const savedFormat = {
|
|
129
|
-
...format,
|
|
130
|
-
dateFieldPaths: usedDatePaths.length > 0 ? [...new Set(usedDatePaths)] : undefined,
|
|
131
|
-
};
|
|
132
|
-
onSave({ tokens: parsedTokens }, savedFormat);
|
|
104
|
+
onSave({ tokens: parsedTokens }, format);
|
|
133
105
|
onClose();
|
|
134
|
-
}, [format,
|
|
106
|
+
}, [format, onClose, onSave, parsedTokens]);
|
|
135
107
|
const validationError = (_b = (_a = unknownFieldErrors[0]) !== null && _a !== void 0 ? _a : formulaValidation.errors[0]) !== null && _b !== void 0 ? _b : '';
|
|
136
108
|
const isInvalid = !formulaValidation.valid || unknownFieldErrors.length > 0;
|
|
137
109
|
const canSave = formulaValidation.valid && unknownFieldErrors.length === 0 && parsedTokens.length > 0;
|
|
138
110
|
return (_jsxs(Dialog, { open: true, onClose: handleClose, size: "xlarge", children: [_jsx(Dialog.Header, { children: "Formula Builder" }), _jsx(Divider, {}), _jsx(Dialog.Content, { children: _jsxs(Flex, { flex: 1, alignItems: "stretch", gap: 2, style: {
|
|
139
111
|
height: MODAL_CONTENT_MAX_HEIGHT,
|
|
140
112
|
overflowY: 'auto',
|
|
141
|
-
}, children: [_jsx(FieldSidebar, { fillableOptions: fillableFieldsFromDocument, mergeTagOptions: allFields, highlightElementPath: highlightElementPath, onHover: setHighlightElementPath, onSelect: formulaEditor.insertField, selectedPaths: formulaEditor.selectedFieldPaths }), _jsx(FormulaWorkspace, { disabledOperators: formulaEditor.disabledOperators, editorRef: formulaEditor.editorRef, isInvalid: isInvalid && formulaEditor.isDirty, validationError: validationError, format: format, onResultTypeChange: nextType =>
|
|
113
|
+
}, children: [_jsx(FieldSidebar, { fillableOptions: fillableFieldsFromDocument, mergeTagOptions: allFields, highlightElementPath: highlightElementPath, onHover: setHighlightElementPath, onSelect: formulaEditor.insertField, selectedPaths: formulaEditor.selectedFieldPaths }), _jsx(FormulaWorkspace, { disabledOperators: formulaEditor.disabledOperators, editorRef: formulaEditor.editorRef, isInvalid: isInvalid && formulaEditor.isDirty, validationError: validationError, format: format, onResultTypeChange: nextType => {
|
|
114
|
+
if (nextType === 'date') {
|
|
115
|
+
setFormat(DEFAULT_DATE_CALCULATED_FORMAT);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
setFormat({
|
|
119
|
+
...DEFAULT_NUMBER_FORMAT,
|
|
120
|
+
resultType: nextType,
|
|
121
|
+
prefixText: nextType === 'currency' ? '$' : '',
|
|
122
|
+
postfixText: nextType === 'percent' ? '%' : '',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}, advancedOpen: advancedOpen, onToggleAdvanced: () => setAdvancedOpen(prev => !prev), setFormat: setFormat, onInput: formulaEditor.handleEditorInput, onKeyDown: formulaEditor.handleKeyDown, onClick: () => { }, onMouseUp: formulaEditor.handleEditorInput, onPaste: formulaEditor.handlePaste, onOperatorSelect: formulaEditor.insertOperator, onRemoveField: formulaEditor.removeFieldAtIndex, actions: _jsxs(Flex, { gap: "1", alignItems: "center", children: [_jsx(Button, { appearance: "ghost", size: "small", onClick: formulaEditor.undo, disabled: !formulaEditor.canUndo, "aria-label": "Undo", icon: IconUndo }), _jsx(Button, { appearance: "ghost", size: "small", onClick: formulaEditor.redo, disabled: !formulaEditor.canRedo, "aria-label": "Redo", icon: IconRedo })] }) })] }) }), _jsx(Divider, {}), _jsxs(Dialog.Footer, { sticky: true, children: [_jsx(Dialog.CancelButton, { onClick: handleClose, children: "Cancel" }), _jsx(Button, { onClick: handleSave, appearance: "primary", disabled: !canSave, children: "Save" })] })] }));
|
|
142
126
|
};
|
|
143
127
|
//# sourceMappingURL=formula-modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-modal.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,QAAQ,MAAM,2DAA2D,CAAC;AACjF,OAAO,QAAQ,MAAM,2DAA2D,CAAC;AACjF,OAAO,EAAM,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"formula-modal.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-workspace.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-workspace.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EACR,EAAE,EACF,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EAEjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,UAAU,qBAAqB;IAC3B,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACtD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC5E,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC3D,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"formula-workspace.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-workspace.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EACR,EAAE,EACF,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EAEjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,UAAU,qBAAqB;IAC3B,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACtD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC5E,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC3D,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAgGtD,CAAC"}
|
|
@@ -23,10 +23,10 @@ export const FormulaWorkspace = ({ actions, advancedOpen, disabledOperators, edi
|
|
|
23
23
|
}, [onClick, onRemoveField]);
|
|
24
24
|
return (_jsxs(Flex, { direction: "column", flex: 1, gap: 2, style: { padding: '12px' }, children: [_jsxs(Text, { variant: "body", size: "small", children: ["Click a field on the left to add it. Use +, -,", ' ', (disabledOperators === null || disabledOperators === void 0 ? void 0 : disabledOperators.has('*')) ? '' : '*, /, and ', "parentheses to build formulas.", (disabledOperators === null || disabledOperators === void 0 ? void 0 : disabledOperators.has('*'))
|
|
25
25
|
? ' Multiply and divide are not available with date fields.'
|
|
26
|
-
: ''] }), _jsxs(Flex, { alignItems: "center", justifyContent: "space-between", children: [_jsx(Text, { variant: "body", size: "small", children: "Formula" }), actions] }), _jsx("div", { ref: editorRef, className: `dte-formula-editor ${isInvalid ? 'dte-formula-editor-invalid' : ''}`, role: "textbox", contentEditable: true, suppressContentEditableWarning: true, "data-placeholder": "e.g. order.total + order.tax", onInput: onInput, onKeyDown: onKeyDown, onClick: handleClick, onKeyUp: onInput, onMouseUp: onMouseUp, onPaste: e => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
: ''] }), _jsxs(Flex, { direction: "column", children: [_jsxs(Flex, { alignItems: "center", justifyContent: "space-between", children: [_jsx(Text, { variant: "body", size: "small", children: "Formula" }), actions] }), _jsx("div", { ref: editorRef, className: `dte-formula-editor ${isInvalid ? 'dte-formula-editor-invalid' : ''}`, role: "textbox", contentEditable: true, suppressContentEditableWarning: true, "data-placeholder": "e.g. order.total + order.tax", onInput: onInput, onKeyDown: onKeyDown, onClick: handleClick, onKeyUp: onInput, onMouseUp: onMouseUp, onPaste: e => {
|
|
27
|
+
e.preventDefault();
|
|
28
|
+
onPaste(e.clipboardData.getData('text/plain'));
|
|
29
|
+
} })] }), isInvalid && validationError && _jsx(Alert, { status: "danger", title: validationError }), _jsx(Flex, { gap: 1, children: CALCULATED_OPERATIONS.map(op => {
|
|
30
30
|
var _a;
|
|
31
31
|
const isDisabled = (_a = disabledOperators === null || disabledOperators === void 0 ? void 0 : disabledOperators.has(op)) !== null && _a !== void 0 ? _a : false;
|
|
32
32
|
return (_jsx(Button, { onClick: () => onOperatorSelect(op), size: "small", disabled: isDisabled, title: isDisabled ? 'Not available with date fields' : undefined, children: op }, op));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-workspace.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-workspace.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAQH,WAAW,GACd,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAsB5D,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,eAAe,GAClB,EAAE,EAAE;IACD,MAAM,WAAW,GAAG,WAAW,CAC3B,CAAC,CAA6B,EAAE,EAAE;;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC/D,IAAI,SAAS,EAAE,CAAC;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAuB,CAAC;YAC3E,MAAM,GAAG,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,UAAU,CAAC;YACtC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO;QACX,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,EACD,CAAC,OAAO,EAAE,aAAa,CAAC,CAC3B,CAAC;IAEF,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAChE,MAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,+DACkB,GAAG,EACjD,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,oCAC/C,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAC;wBACxB,CAAC,CAAC,0DAA0D;wBAC5D,CAAC,CAAC,EAAE,IACL,EACP,MAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,aACpD,KAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,wBAE1B,EACN,OAAO,IACL,EACP,cACI,GAAG,EAAE,SAAsC,EAC3C,SAAS,EAAE,sBAAsB,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,EAAE,EAChF,IAAI,EAAC,SAAS,EACd,eAAe,QACf,8BAA8B,4BACb,8BAA8B,EAC/C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"formula-workspace.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/formula-workspace.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-type-selector.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/result-type-selector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,UAAU,uBAAuB;IAC7B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CACrE;AASD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"result-type-selector.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/result-type-selector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,UAAU,uBAAuB;IAC7B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CACrE;AASD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAyB1D,CAAC"}
|
|
@@ -7,5 +7,8 @@ const RESULT_TYPE_OPTIONS = [
|
|
|
7
7
|
{ label: 'Percent', value: 'percent' },
|
|
8
8
|
{ label: 'Date', value: 'date' },
|
|
9
9
|
];
|
|
10
|
-
export const ResultTypeSelector = ({ format, onChange }) =>
|
|
10
|
+
export const ResultTypeSelector = ({ format, onChange }) => {
|
|
11
|
+
const options = RESULT_TYPE_OPTIONS.filter(opt => format.resultType === 'date' ? opt.value === 'date' : opt.value !== 'date');
|
|
12
|
+
return (_jsxs(Fragment, { children: [_jsx(Text, { variant: "body", size: "small", children: "Result type" }), _jsx(Flex, { gap: 2, children: _jsx(SegmentedControl, { size: "medium", selected: format.resultType, onChange: onChange, fill: true, children: options.map(opt => (_jsx(SegmentedControl.Segment, { value: opt.value, children: opt.label }, opt.value))) }) })] }));
|
|
13
|
+
};
|
|
11
14
|
//# sourceMappingURL=result-type-selector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-type-selector.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/result-type-selector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQrC,MAAM,mBAAmB,GAAoE;IACzF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"result-type-selector.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/result-type-selector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQrC,MAAM,mBAAmB,GAAoE;IACzF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7C,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAC7E,CAAC;IACF,OAAO,CACH,MAAC,QAAQ,eACL,KAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,4BAE1B,EACP,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,YACR,KAAC,gBAAgB,IACb,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,MAAM,CAAC,UAAU,EAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,kBAEH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAChB,KAAC,gBAAgB,CAAC,OAAO,IAAiB,KAAK,EAAE,GAAG,CAAC,KAAK,YACrD,GAAG,CAAC,KAAK,IADiB,GAAG,CAAC,KAAK,CAEb,CAC9B,CAAC,GACa,GAChB,IACA,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view-calculated.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-calculated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGlE,UAAU,sBAAsB;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"pdf-view-calculated.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-calculated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGlE,UAAU,sBAAsB;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAgBxD,CAAC"}
|
|
@@ -2,16 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { evaluateFormula, formatCalculatedResult, resolvePdfDataValues } from '../../utils';
|
|
4
4
|
export const PdfViewCalculated = ({ data, field, holidays }) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const dateFieldPaths = useMemo(() => {
|
|
7
|
-
var _a;
|
|
8
|
-
const paths = (_a = field.formulaFormat) === null || _a === void 0 ? void 0 : _a.dateFieldPaths;
|
|
9
|
-
return (paths === null || paths === void 0 ? void 0 : paths.length) ? new Set(paths) : undefined;
|
|
10
|
-
}, [(_a = field.formulaFormat) === null || _a === void 0 ? void 0 : _a.dateFieldPaths]);
|
|
11
5
|
const displayValue = useMemo(() => {
|
|
12
6
|
var _a, _b, _c, _d;
|
|
13
7
|
if ((_b = (_a = field.formula) === null || _a === void 0 ? void 0 : _a.tokens) === null || _b === void 0 ? void 0 : _b.length) {
|
|
14
|
-
const value = evaluateFormula(field.formula, data,
|
|
8
|
+
const value = evaluateFormula(field.formula, data, holidays);
|
|
15
9
|
if (value === null) {
|
|
16
10
|
return '';
|
|
17
11
|
}
|
|
@@ -21,15 +15,7 @@ export const PdfViewCalculated = ({ data, field, holidays }) => {
|
|
|
21
15
|
return (_c = resolvePdfDataValues(data, field.path)) !== null && _c !== void 0 ? _c : '';
|
|
22
16
|
}
|
|
23
17
|
return (_d = field.label) !== null && _d !== void 0 ? _d : '';
|
|
24
|
-
}, [
|
|
25
|
-
data,
|
|
26
|
-
dateFieldPaths,
|
|
27
|
-
field.formula,
|
|
28
|
-
field.formulaFormat,
|
|
29
|
-
field.label,
|
|
30
|
-
field.path,
|
|
31
|
-
holidays,
|
|
32
|
-
]);
|
|
18
|
+
}, [data, field.formula, field.formulaFormat, field.label, field.path, holidays]);
|
|
33
19
|
return _jsx("div", { className: "dte-pdf-field-value", children: displayValue });
|
|
34
20
|
};
|
|
35
21
|
//# sourceMappingURL=pdf-view-calculated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view-calculated.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-calculated.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQ5F,MAAM,CAAC,MAAM,iBAAiB,GAA+B,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"pdf-view-calculated.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-calculated.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQ5F,MAAM,CAAC,MAAM,iBAAiB,GAA+B,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC9B,IAAI,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,MAAM,0CAAE,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,MAAA,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC;IAC7B,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElF,OAAO,cAAK,SAAS,EAAC,qBAAqB,YAAE,YAAY,GAAO,CAAC;AACrE,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ESignFieldType, FieldTypeEnum, FieldTypeOption, PdfFieldSubType } from '../interface/types';
|
|
1
|
+
import { CalculatedFormatForDate, CalculatedFormatForNumber, ESignFieldType, FieldTypeEnum, FieldTypeOption, PdfFieldSubType } from '../interface/types';
|
|
2
2
|
export declare const FIELD_CONSTANTS: {
|
|
3
3
|
readonly defaultWidth: 200;
|
|
4
4
|
readonly defaultHeight: 25;
|
|
@@ -28,4 +28,10 @@ export declare const DISABLE_FIELD_RESIZE: Record<FieldTypeEnum, Partial<Record<
|
|
|
28
28
|
disableHorizontal?: boolean;
|
|
29
29
|
disableVertical?: boolean;
|
|
30
30
|
}>>>;
|
|
31
|
+
export declare const ROUNDING_OPTIONS: {
|
|
32
|
+
label: string;
|
|
33
|
+
value: CalculatedFormatForNumber["roundingMode"];
|
|
34
|
+
}[];
|
|
35
|
+
export declare const DEFAULT_NUMBER_FORMAT: CalculatedFormatForNumber;
|
|
36
|
+
export declare const DEFAULT_DATE_CALCULATED_FORMAT: CalculatedFormatForDate;
|
|
31
37
|
//# sourceMappingURL=field.constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.constants.d.ts","sourceRoot":"","sources":["../../src/constants/field.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAClB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"field.constants.d.ts","sourceRoot":"","sources":["../../src/constants/field.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAEX,eAAO,MAAM,4BAA4B,EAKpC,MAAM,CAAC,eAAe,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,eAAO,MAAM,2BAA2B,EAGnC,MAAM,CAAC,eAAe,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE,eAAO,MAAM,yBAAyB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,cAAc,CAAA;CAAE,EAK3E,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAAe,EAMjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAM/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAKnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAAe,EAWhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAM5B,MAAM,CACP,aAAa,EACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAC/F,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAIxB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAC;CACpD,EAAE,CAAC;AAEJ,eAAO,MAAM,qBAAqB,EAAE,yBASnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,uBAG5C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ESignFieldType, FieldTypeEnum, } from '../interface/types';
|
|
2
|
+
import { DEFAULT_DATE_FORMAT } from './calculated.constants';
|
|
2
3
|
import { BASE_PAGE_WIDTH } from './pdf-editor.constants';
|
|
3
4
|
export const FIELD_CONSTANTS = {
|
|
4
5
|
defaultWidth: 200,
|
|
@@ -64,4 +65,23 @@ export const DISABLE_FIELD_RESIZE = {
|
|
|
64
65
|
},
|
|
65
66
|
},
|
|
66
67
|
};
|
|
68
|
+
export const ROUNDING_OPTIONS = [
|
|
69
|
+
{ label: 'Round', value: 'round' },
|
|
70
|
+
{ label: 'Floor', value: 'floor' },
|
|
71
|
+
{ label: 'Ceil', value: 'ceil' },
|
|
72
|
+
];
|
|
73
|
+
export const DEFAULT_NUMBER_FORMAT = {
|
|
74
|
+
resultType: 'number',
|
|
75
|
+
thousandsSeparator: false,
|
|
76
|
+
decimals: 2,
|
|
77
|
+
roundingMode: 'round',
|
|
78
|
+
decimalSeparatorEnabled: false,
|
|
79
|
+
decimalSeparator: '.',
|
|
80
|
+
prefixText: '',
|
|
81
|
+
postfixText: '',
|
|
82
|
+
};
|
|
83
|
+
export const DEFAULT_DATE_CALCULATED_FORMAT = {
|
|
84
|
+
resultType: 'date',
|
|
85
|
+
dateFormat: DEFAULT_DATE_FORMAT,
|
|
86
|
+
};
|
|
67
87
|
//# sourceMappingURL=field.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.constants.js","sourceRoot":"","sources":["../../src/constants/field.constants.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"field.constants.js","sourceRoot":"","sources":["../../src/constants/field.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,21 +92,20 @@ export type FormulaToken = {
|
|
|
92
92
|
value: FormulaOperator;
|
|
93
93
|
} | {
|
|
94
94
|
type: 'lparen';
|
|
95
|
-
value: '(';
|
|
96
95
|
} | {
|
|
97
96
|
type: 'rparen';
|
|
98
|
-
value: ')';
|
|
99
97
|
} | {
|
|
100
98
|
type: 'field';
|
|
101
99
|
path: string;
|
|
100
|
+
fieldType: SchemaFieldType;
|
|
102
101
|
};
|
|
103
102
|
/** Structured formula representation (AST-like token list) for validation and safe editing */
|
|
104
103
|
export interface StructuredFormula {
|
|
105
104
|
tokens: FormulaToken[];
|
|
106
105
|
}
|
|
107
|
-
/** Format options for a calculated field result (
|
|
108
|
-
export interface
|
|
109
|
-
resultType: 'number' | 'currency' | 'percent'
|
|
106
|
+
/** Format options for a calculated field with a numeric result (number, currency, percent) */
|
|
107
|
+
export interface CalculatedFormatForNumber {
|
|
108
|
+
resultType: 'number' | 'currency' | 'percent';
|
|
110
109
|
thousandsSeparator: boolean;
|
|
111
110
|
decimals: number;
|
|
112
111
|
roundingMode: 'round' | 'floor' | 'ceil';
|
|
@@ -115,9 +114,14 @@ export interface CalculatedFieldFormat {
|
|
|
115
114
|
prefixText: string;
|
|
116
115
|
postfixText: string;
|
|
117
116
|
dateFormat?: string;
|
|
118
|
-
/** Paths of date-typed fields used in the formula, persisted for date-aware evaluation */
|
|
119
|
-
dateFieldPaths?: string[];
|
|
120
117
|
}
|
|
118
|
+
/** Format options for a calculated field with a date result */
|
|
119
|
+
export interface CalculatedFormatForDate {
|
|
120
|
+
resultType: 'date';
|
|
121
|
+
dateFormat: string;
|
|
122
|
+
}
|
|
123
|
+
/** Format options for a calculated field result (display and rounding) */
|
|
124
|
+
export type CalculatedFieldFormat = CalculatedFormatForDate | CalculatedFormatForNumber;
|
|
121
125
|
export interface SchemaFieldBaseOptions {
|
|
122
126
|
placeholder?: any;
|
|
123
127
|
description?: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,OAAO,YAAY;CACtB;AAED,oBAAY,cAAc;IACtB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,QAAQ,aAAa;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEpF,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACH,KAAK,EAAE,MAAM,CAAC;SACjB,EAAE,CAAC;KACP,CAAC;IACF,IAAI,EAAE;QACF,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACH,KAAK,EAAE,MAAM,CAAC;SACjB,EAAE,CAAC;KACP,EAAE,CAAC;CACP;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,yBAAyB,GAAG,wBAAwB,CAAC;AAEjF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,UAAuB,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,yFAAyF;AACzF,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;AACzB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAoFD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;AACzB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAoFD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AA4GtD;;GAEG;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACxD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;CAC1C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE;CACnD,CAAC;AAMX,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -13,9 +13,10 @@ export declare function valueToNumber(raw: unknown): number;
|
|
|
13
13
|
* to null / undefined / empty / non-numeric (non-date) — making the entire
|
|
14
14
|
* calculation blank instead of silently substituting 0.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
* arithmetic follows business-day semantics — weekends and
|
|
18
|
-
* when adding/subtracting days, and date diffs count only
|
|
16
|
+
* Date fields are identified by `fieldType: 'date'` on field tokens. When date
|
|
17
|
+
* fields are present, arithmetic follows business-day semantics — weekends and
|
|
18
|
+
* holidays are skipped when adding/subtracting days, and date diffs count only
|
|
19
|
+
* business days.
|
|
19
20
|
*/
|
|
20
|
-
export declare function evaluateFormula(formula: StructuredFormula | undefined | null, data: DataModelValues | undefined,
|
|
21
|
+
export declare function evaluateFormula(formula: StructuredFormula | undefined | null, data: DataModelValues | undefined, holidays?: string[]): number | null;
|
|
21
22
|
//# sourceMappingURL=evaluate-formula.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate-formula.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/evaluate-formula.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EAGf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBlD;
|
|
1
|
+
{"version":3,"file":"evaluate-formula.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/evaluate-formula.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EAGf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBlD;AAiXD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,EAC7C,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,IAAI,CAoBf"}
|