@servicetitan/dte-pdf-editor 1.46.0 → 1.48.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 +15 -0
- package/dist/components/display-conditions/display-condition.d.ts.map +1 -1
- package/dist/components/display-conditions/display-condition.js +10 -2
- package/dist/components/display-conditions/display-condition.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js +11 -1
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-calculated.d.ts +1 -0
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-calculated.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-calculated.js +14 -2
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-calculated.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts +1 -0
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.js +2 -2
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-calculated.d.ts +2 -1
- package/dist/components/pdf-view/pdf-view-calculated.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-calculated.js +5 -2
- package/dist/components/pdf-view/pdf-view-calculated.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-fillable.d.ts +2 -2
- package/dist/components/pdf-view/pdf-view-fillable.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-fillable.js +2 -6
- package/dist/components/pdf-view/pdf-view-fillable.js.map +1 -1
- package/dist/components/pdf-view/pdf-view.d.ts +2 -2
- package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view.js +4 -4
- package/dist/components/pdf-view/pdf-view.js.map +1 -1
- package/dist/interface/types.d.ts +1 -1
- package/dist/interface/types.d.ts.map +1 -1
- package/dist/interface/types.js.map +1 -1
- package/dist/utils/formula/expression.utils.d.ts +13 -0
- package/dist/utils/formula/expression.utils.d.ts.map +1 -1
- package/dist/utils/formula/expression.utils.js +42 -0
- package/dist/utils/formula/expression.utils.js.map +1 -1
- package/package.json +1 -1
- package/src/components/display-conditions/display-condition.tsx +42 -9
- package/src/components/pdf-fields-overlay/pdf-fields-overlay.tsx +12 -1
- package/src/components/pdf-fields-overlay/pdf-overlay-field-calculated.tsx +20 -4
- package/src/components/pdf-fields-overlay/pdf-overlay-field.tsx +5 -1
- package/src/components/pdf-view/pdf-view-calculated.tsx +13 -3
- package/src/components/pdf-view/pdf-view-fillable.tsx +4 -8
- package/src/components/pdf-view/pdf-view.tsx +11 -10
- package/src/interface/types.ts +11 -10
- package/src/styles/generic.css +13 -0
- package/src/utils/formula/expression.utils.ts +44 -0
package/README.md
CHANGED
|
@@ -164,11 +164,26 @@ Component for displaying PDFs with filled data in view mode.
|
|
|
164
164
|
| `data` | `DataModelValues` | No | Data object containing values for data model fields |
|
|
165
165
|
| `recipients` | `RecipientInfo[]` | No | Array of recipients for field assignment |
|
|
166
166
|
| `fillingBy` | `string[]` | No | Array of recipient names that are allowed to fill fields |
|
|
167
|
+
| `viewMode` | `PdfViewMode` (`'preview' \| 'fill'`) | No | Controls how the PDF is rendered — see [View modes](#view-modes) below. Defaults to the recipient-fill experience when omitted. |
|
|
167
168
|
| `onDataChange` | `(changedData: { [path: string]: string \| boolean }) => void` | No | Callback when fillable field data changes |
|
|
168
169
|
| `loading` | `boolean` | No | Whether the PDF is currently loading |
|
|
169
170
|
| `loadingPlaceholder` | `ReactNode` | No | Custom component to display while PDF is loading |
|
|
170
171
|
| `errorPlaceholder` | `ReactNode` | No | Custom component to display if PDF fails to load |
|
|
171
172
|
|
|
173
|
+
#### View modes
|
|
174
|
+
|
|
175
|
+
The `viewMode` prop controls who is interacting with the PDF and how:
|
|
176
|
+
|
|
177
|
+
- **`'preview'`** — Author/admin preview. All fields are visible and interactive so the admin can try out the form and
|
|
178
|
+
see its behavior. Data changes update an internal preview buffer and are **not** persisted. Recipient scoping
|
|
179
|
+
(`fillingBy`) is ignored — every field is fillable. Calculated fields with no resolvable value fall back to the field
|
|
180
|
+
label (or `'Calculated Field'`) so the field is still visible.
|
|
181
|
+
- **`'fill'`** — Read-only display. No fields are editable regardless of `fillingBy`. Already-filled values are
|
|
182
|
+
displayed; empty fields render empty.
|
|
183
|
+
- **Omitted (`undefined`)** — Recipient fill experience. Only fields whose `recipient` matches one of the names in
|
|
184
|
+
`fillingBy` are editable for the current user; other recipients' fields are read-only. `onDataChange` is invoked for
|
|
185
|
+
every edit so the caller can persist the value.
|
|
186
|
+
|
|
172
187
|
#### Example
|
|
173
188
|
|
|
174
189
|
```tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-condition.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/display-condition.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"display-condition.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/display-condition.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAsB,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAyB,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE9F,UAAU,qBACN,SAAQ,IAAI,CACR,0BAA0B,EACxB,gBAAgB,GAChB,oBAAoB,GACpB,yBAAyB,GACzB,OAAO,GACP,cAAc,GACd,qBAAqB,GACrB,QAAQ,CACb;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAoEtD,CAAC"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '@servicetitan/anvil2';
|
|
2
|
+
import { Button, Flex, Text } from '@servicetitan/anvil2';
|
|
3
3
|
import PlusIcon from '@servicetitan/anvil2/assets/icons/material/round/add.svg';
|
|
4
|
+
import DeleteIcon from '@servicetitan/anvil2/assets/icons/material/round/delete.svg';
|
|
5
|
+
import EditIcon from '@servicetitan/anvil2/assets/icons/material/round/edit.svg';
|
|
4
6
|
import { Fragment, useState } from 'react';
|
|
5
7
|
import { DisplayConditionModal } from './display-condition-modal';
|
|
6
8
|
export const DisplayCondition = ({ documentFields, formFieldsByFormId, formFieldsLoadingFormId, forms, initialState, onRequestFormFields, onSave, schema, }) => {
|
|
9
|
+
var _a, _b, _c, _d;
|
|
7
10
|
const [open, setOpen] = useState(false);
|
|
8
|
-
|
|
11
|
+
const conditionCount = (_d = (_c = (_b = (_a = initialState === null || initialState === void 0 ? void 0 : initialState.groups) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.conditions) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0;
|
|
12
|
+
return (_jsxs(Fragment, { children: [conditionCount === 0 ? (_jsx(Button, { appearance: "secondary", className: "full-width", icon: PlusIcon, onClick: () => setOpen(true), children: "Add Display Condition" })) : (_jsxs(Flex, { gap: 2, justifyContent: "space-between", alignItems: "center", className: "bordered-paper", children: [_jsxs(Flex, { direction: "column", children: [_jsx(Text, { children: (initialState === null || initialState === void 0 ? void 0 : initialState.behavior) === 'show'
|
|
13
|
+
? 'Show condition configured'
|
|
14
|
+
: 'Hide condition configured' }), _jsx(Text, { size: "small", subdued: true, variant: "body", children: conditionCount === 1
|
|
15
|
+
? '1 condition is currently applied'
|
|
16
|
+
: `${conditionCount} conditions are currently applied` })] }), _jsxs(Flex, { gap: 2, children: [_jsx(Button, { size: "small", icon: EditIcon, onClick: () => setOpen(true) }), _jsx(Button, { size: "small", icon: DeleteIcon, onClick: () => onSave({ displayCondition: undefined }) })] })] })), open && (_jsx(DisplayConditionModal, { onClose: () => setOpen(false), onSave: state => onSave({ displayCondition: state !== null && state !== void 0 ? state : undefined }), documentFields: documentFields, formFieldsByFormId: formFieldsByFormId, formFieldsLoadingFormId: formFieldsLoadingFormId, forms: forms, initialState: initialState, onRequestFormFields: onRequestFormFields, schema: schema }))] }));
|
|
9
17
|
};
|
|
10
18
|
//# sourceMappingURL=display-condition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-condition.js","sourceRoot":"","sources":["../../../src/components/display-conditions/display-condition.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"display-condition.js","sourceRoot":"","sources":["../../../src/components/display-conditions/display-condition.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,QAAQ,MAAM,0DAA0D,CAAC;AAChF,OAAO,UAAU,MAAM,6DAA6D,CAAC;AACrF,OAAO,QAAQ,MAAM,2DAA2D,CAAC;AACjF,OAAO,EAAM,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAA8B,MAAM,2BAA2B,CAAC;AAgB9F,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,MAAM,GACT,EAAE,EAAE;;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,MAAA,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,0CAAG,CAAC,CAAC,0CAAE,UAAU,0CAAE,MAAM,mCAAI,CAAC,CAAC;IAE1E,OAAO,CACH,MAAC,QAAQ,eACJ,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,KAAC,MAAM,IACH,UAAU,EAAC,WAAW,EACtB,SAAS,EAAC,YAAY,EACtB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sCAGvB,CACZ,CAAC,CAAC,CAAC,CACA,MAAC,IAAI,IACD,GAAG,EAAE,CAAC,EACN,cAAc,EAAC,eAAe,EAC9B,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAC,gBAAgB,aAE1B,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACpB,KAAC,IAAI,cACA,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,MAAK,MAAM;oCAC9B,CAAC,CAAC,2BAA2B;oCAC7B,CAAC,CAAC,2BAA2B,GAC9B,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,QAAC,OAAO,EAAC,MAAM,YACpC,cAAc,KAAK,CAAC;oCACjB,CAAC,CAAC,kCAAkC;oCACpC,CAAC,CAAC,GAAG,cAAc,mCAAmC,GACvD,IACJ,EACP,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,aACR,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,EACrE,KAAC,MAAM,IACH,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,GACxD,IACC,IACJ,CACV,EACA,IAAI,IAAI,CACL,KAAC,qBAAqB,IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,SAAS,EAAE,CAAC,EACjE,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,uBAAuB,EAAE,uBAAuB,EAChD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,MAAM,EAAE,MAAM,GAChB,CACL,IACM,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-fields-overlay.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"pdf-fields-overlay.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,UAAU,qBAAqB;IAC3B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA2CtD,CAAC"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
2
3
|
import { PdfOverlayField } from './pdf-overlay-field';
|
|
3
4
|
export const PdfFieldsOverlay = ({ errors, fields, handleAddNewField, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pdfWrapperRef, recipientsColors, selectedField, }) => {
|
|
4
|
-
|
|
5
|
+
const pathToLabel = useMemo(() => {
|
|
6
|
+
const map = new Map();
|
|
7
|
+
for (const f of fields) {
|
|
8
|
+
if (f.path && f.label) {
|
|
9
|
+
map.set(f.path, f.label);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return map;
|
|
13
|
+
}, [fields]);
|
|
14
|
+
return (_jsx("div", { className: "dte-pdf-field-overlay skeleton-item", children: fields.map(field => (_jsx(PdfOverlayField, { field: field, onFieldConfigChange: onFieldConfigChange, error: errors[field.id], handleAddNewField: handleAddNewField, onFieldMove: onFieldMove, onFieldClick: onFieldClick, pdfWrapperRef: pdfWrapperRef, onFieldResize: onFieldResize, isSelected: (selectedField === null || selectedField === void 0 ? void 0 : selectedField.id) === field.id, recipientsColors: recipientsColors, isSameGroup: (selectedField === null || selectedField === void 0 ? void 0 : selectedField.path) === field.path, pathToLabel: pathToLabel }, field.id))) }));
|
|
5
15
|
};
|
|
6
16
|
//# sourceMappingURL=pdf-fields-overlay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-fields-overlay.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"pdf-fields-overlay.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA6B,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAetD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,MAAM,EACN,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,GAChB,EAAE,EAAE;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACH,cAAK,SAAS,EAAC,qCAAqC,YAC/C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACjB,KAAC,eAAe,IAEZ,KAAK,EAAE,KAAK,EACZ,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACvB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,MAAK,KAAK,CAAC,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,KAAK,CAAC,IAAI,EAC/C,WAAW,EAAE,WAAW,IAZnB,KAAK,CAAC,EAAE,CAaf,CACL,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { FC } from 'react';
|
|
|
2
2
|
import { PdfField } from '../../interface/types';
|
|
3
3
|
interface PdfOverlayFieldCalculatedProps {
|
|
4
4
|
field: PdfField;
|
|
5
|
+
pathToLabel?: Map<string, string>;
|
|
5
6
|
}
|
|
6
7
|
export declare const PdfOverlayFieldCalculated: FC<PdfOverlayFieldCalculatedProps>;
|
|
7
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-overlay-field-calculated.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field-calculated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"pdf-overlay-field-calculated.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field-calculated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,UAAU,8BAA8B;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CAqBxE,CAAC"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { formulaToDisplayText } from '../../utils';
|
|
4
|
+
export const PdfOverlayFieldCalculated = ({ field, pathToLabel, }) => {
|
|
5
|
+
const displayText = useMemo(() => {
|
|
6
|
+
const formulaText = formulaToDisplayText(field.formula, pathToLabel);
|
|
7
|
+
if (formulaText) {
|
|
8
|
+
return formulaText;
|
|
9
|
+
}
|
|
10
|
+
if (field.label) {
|
|
11
|
+
return field.label;
|
|
12
|
+
}
|
|
13
|
+
return field.path;
|
|
14
|
+
}, [field.formula, field.label, field.path, pathToLabel]);
|
|
15
|
+
return (_jsxs("span", { className: "ellipsis", title: displayText, children: [displayText, field.required ? '*' : ''] }));
|
|
4
16
|
};
|
|
5
17
|
//# sourceMappingURL=pdf-overlay-field-calculated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-overlay-field-calculated.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field-calculated.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"pdf-overlay-field-calculated.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field-calculated.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOnD,MAAM,CAAC,MAAM,yBAAyB,GAAuC,CAAC,EAC1E,KAAK,EACL,WAAW,GACd,EAAE,EAAE;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1D,OAAO,CACH,gBAAM,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,WAAW,aACxC,WAAW,EACX,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IACvB,CACV,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -7,6 +7,7 @@ interface PdfOverlayFieldProps {
|
|
|
7
7
|
isSameGroup: boolean;
|
|
8
8
|
recipientsColors: Record<string, string>;
|
|
9
9
|
pdfWrapperRef: RefObject<HTMLDivElement>;
|
|
10
|
+
pathToLabel?: Map<string, string>;
|
|
10
11
|
onFieldConfigChange(updates: Partial<PdfField>): void;
|
|
11
12
|
handleAddNewField(field: PdfField): void;
|
|
12
13
|
onFieldClick(fieldId: string, e: MouseEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-overlay-field.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAiB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAShE,UAAU,oBAAoB;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"pdf-overlay-field.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAiB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAShE,UAAU,oBAAoB;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAuEpD,CAAC"}
|
|
@@ -9,7 +9,7 @@ import { PdfOverlayFieldESign } from './pdf-overlay-field-e-sign';
|
|
|
9
9
|
import { PdfOverlayFieldFillable } from './pdf-overlay-field-fillable';
|
|
10
10
|
import { PdfOverlayFieldGeneric } from './pdf-overlay-field-generic';
|
|
11
11
|
import { ResizeHandle } from './resize-handle';
|
|
12
|
-
export const PdfOverlayField = ({ error, field, handleAddNewField, isSameGroup, isSelected, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pdfWrapperRef, recipientsColors, }) => {
|
|
12
|
+
export const PdfOverlayField = ({ error, field, handleAddNewField, isSameGroup, isSelected, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pathToLabel, pdfWrapperRef, recipientsColors, }) => {
|
|
13
13
|
var _a, _b, _c, _d;
|
|
14
14
|
const { dragVisualPosition, handleDrag, handleDragEnd, handleDragStart } = useFieldDrag({
|
|
15
15
|
pdfWrapperRef,
|
|
@@ -33,6 +33,6 @@ export const PdfOverlayField = ({ error, field, handleAddNewField, isSameGroup,
|
|
|
33
33
|
height: field.height,
|
|
34
34
|
backgroundColor: getFieldBackgroundColor(field.recipient, recipientsColors),
|
|
35
35
|
};
|
|
36
|
-
return (_jsxs("div", { title: field.description, onClick: e => onFieldClick(field.id, e), draggable: true, onDragStart: e => handleDragStart(e, field), onDrag: e => handleDrag(e, field), onDragEnd: handleDragEnd, className: `dte-pdf-field ${isSelected ? '--selected' : '--unselected'} ${isDragging ? '--dragging' : ''} ${isSameGroup ? '--colored' : ''} ${error ? '--error' : ''}`, style: style, children: [field.type === FieldTypeEnum.calculated && _jsx(PdfOverlayFieldCalculated, { field: field }), field.type === FieldTypeEnum.eSign && _jsx(PdfOverlayFieldESign, { field: field }), (field.type === FieldTypeEnum.dataModel || field.type === FieldTypeEnum.forms) && (_jsx(PdfOverlayFieldDataModel, { field: field })), field.type === FieldTypeEnum.fillable && (_jsx(PdfOverlayFieldFillable, { field: field, handleAddNewField: handleAddNewField })), field.type === FieldTypeEnum.generic && (_jsx(PdfOverlayFieldGeneric, { field: field, onFieldConfigChange: onFieldConfigChange })), isSelected && !hideResizeHandle && (_jsx(ResizeHandle, { handleResizeStart: e => handleResizeStart(e, field) })), error && _jsx("span", { className: "dte-pdf-field-error-message", children: error })] }));
|
|
36
|
+
return (_jsxs("div", { title: field.description, onClick: e => onFieldClick(field.id, e), draggable: true, onDragStart: e => handleDragStart(e, field), onDrag: e => handleDrag(e, field), onDragEnd: handleDragEnd, className: `dte-pdf-field ${isSelected ? '--selected' : '--unselected'} ${isDragging ? '--dragging' : ''} ${isSameGroup ? '--colored' : ''} ${error ? '--error' : ''}`, style: style, children: [field.type === FieldTypeEnum.calculated && (_jsx(PdfOverlayFieldCalculated, { field: field, pathToLabel: pathToLabel })), field.type === FieldTypeEnum.eSign && _jsx(PdfOverlayFieldESign, { field: field }), (field.type === FieldTypeEnum.dataModel || field.type === FieldTypeEnum.forms) && (_jsx(PdfOverlayFieldDataModel, { field: field })), field.type === FieldTypeEnum.fillable && (_jsx(PdfOverlayFieldFillable, { field: field, handleAddNewField: handleAddNewField })), field.type === FieldTypeEnum.generic && (_jsx(PdfOverlayFieldGeneric, { field: field, onFieldConfigChange: onFieldConfigChange })), isSelected && !hideResizeHandle && (_jsx(ResizeHandle, { handleResizeStart: e => handleResizeStart(e, field) })), error && _jsx("span", { className: "dte-pdf-field-error-message", children: error })] }));
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=pdf-overlay-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-overlay-field.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAY,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-overlay-field.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { DataModelValues, PdfField } from '../../interface/types';
|
|
2
|
+
import { DataModelValues, PdfField, PdfViewMode } from '../../interface/types';
|
|
3
3
|
interface PdfViewCalculatedProps {
|
|
4
4
|
field: PdfField;
|
|
5
5
|
data?: DataModelValues;
|
|
6
6
|
holidays?: string[];
|
|
7
|
+
viewMode?: PdfViewMode;
|
|
7
8
|
}
|
|
8
9
|
export declare const PdfViewCalculated: FC<PdfViewCalculatedProps>;
|
|
9
10
|
export {};
|
|
@@ -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;
|
|
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,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG/E,UAAU,sBAAsB;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAyBxD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { evaluateFormula, formatCalculatedResult, resolvePdfDataValues } from '../../utils';
|
|
4
|
-
export const PdfViewCalculated = ({ data, field, holidays }) => {
|
|
4
|
+
export const PdfViewCalculated = ({ data, field, holidays, viewMode, }) => {
|
|
5
5
|
const displayValue = useMemo(() => {
|
|
6
6
|
var _a, _b, _c, _d;
|
|
7
7
|
if ((_b = (_a = field.formula) === null || _a === void 0 ? void 0 : _a.tokens) === null || _b === void 0 ? void 0 : _b.length) {
|
|
@@ -16,6 +16,9 @@ export const PdfViewCalculated = ({ data, field, holidays }) => {
|
|
|
16
16
|
}
|
|
17
17
|
return (_d = field.label) !== null && _d !== void 0 ? _d : '';
|
|
18
18
|
}, [data, field.formula, field.formulaFormat, field.label, field.path, holidays]);
|
|
19
|
-
|
|
19
|
+
const isPreview = viewMode === 'preview';
|
|
20
|
+
const shouldShowPreviewFallback = isPreview && displayValue === '';
|
|
21
|
+
const content = shouldShowPreviewFallback ? field.label || 'Calculated Field' : displayValue;
|
|
22
|
+
return _jsx("div", { className: "dte-pdf-field-value", children: content });
|
|
20
23
|
};
|
|
21
24
|
//# 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;
|
|
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;AAS5F,MAAM,CAAC,MAAM,iBAAiB,GAA+B,CAAC,EAC1D,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,GACX,EAAE,EAAE;IACD,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,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC;IACzC,MAAM,yBAAyB,GAAG,SAAS,IAAI,YAAY,KAAK,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC;IAE7F,OAAO,cAAK,SAAS,EAAC,qBAAqB,YAAE,OAAO,GAAO,CAAC;AAChE,CAAC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { DataChangePayload, DataModelValues, PdfField,
|
|
2
|
+
import { DataChangePayload, DataModelValues, PdfField, PdfViewMode } from '../../interface/types';
|
|
3
3
|
interface PdfViewFillableProps {
|
|
4
4
|
field: PdfField;
|
|
5
5
|
data?: DataModelValues;
|
|
6
6
|
fillingBy?: string[];
|
|
7
|
-
|
|
7
|
+
viewMode?: PdfViewMode;
|
|
8
8
|
onDataChange?(changedData: DataChangePayload, field: PdfField): void;
|
|
9
9
|
}
|
|
10
10
|
interface FillableTextInputProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view-fillable.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-fillable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGlG,UAAU,oBAAoB;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"pdf-view-fillable.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-fillable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGlG,UAAU,oBAAoB;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,YAAY,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxE;AAED,UAAU,sBAAsB;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AASD,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAkBxD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,sBAAsB,CAiB5D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAiIpD,CAAC"}
|
|
@@ -12,14 +12,10 @@ export const FillableTextInput = ({ disabled, field, onChange, value, }) => {
|
|
|
12
12
|
export const FillableTextareaInput = ({ disabled, field, onChange, value, }) => {
|
|
13
13
|
return (_jsx("textarea", { style: { ...fillableTextStyles, resize: 'none' }, disabled: disabled, id: field.path, name: field.path, value: value, onChange: e => onChange(e.target.value), placeholder: getFieldPlaceholderText(field) }));
|
|
14
14
|
};
|
|
15
|
-
export const PdfViewFillable = ({ data, field, fillingBy, onDataChange,
|
|
15
|
+
export const PdfViewFillable = ({ data, field, fillingBy, onDataChange, viewMode, }) => {
|
|
16
16
|
const resolvedValue = data === null || data === void 0 ? void 0 : data[field.path];
|
|
17
17
|
const isViewByCurrentRecipient = fillingBy === null || fillingBy === void 0 ? void 0 : fillingBy.includes(field.recipient);
|
|
18
|
-
const isFillable =
|
|
19
|
-
? true
|
|
20
|
-
: previewMode === 'view'
|
|
21
|
-
? false
|
|
22
|
-
: isViewByCurrentRecipient;
|
|
18
|
+
const isFillable = viewMode === 'preview' ? true : viewMode === 'fill' ? false : isViewByCurrentRecipient;
|
|
23
19
|
const handleDataChange = (fieldValue) => {
|
|
24
20
|
const changedData = { [field.path]: fieldValue };
|
|
25
21
|
onDataChange === null || onDataChange === void 0 ? void 0 : onDataChange(changedData, field);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view-fillable.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-fillable.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiBvF,MAAM,kBAAkB,GAAG;IACvB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;CAChB,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAA+B,CAAC,EAC1D,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,GACR,EAAE,EAAE;IACD,OAAO,CACH,gBACI,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,KAAK,CAAC,IAAI,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC7C,CACL,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA+B,CAAC,EAC9D,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,GACR,EAAE,EAAE;IACD,OAAO,CACH,mBACI,KAAK,EAAE,EAAE,GAAG,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,EAChD,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,KAAK,CAAC,IAAI,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC7C,CACL,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,EACtD,IAAI,EACJ,KAAK,EACL,SAAS,EACT,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"pdf-view-fillable.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-fillable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { FC, ReactNode } from 'react';
|
|
2
|
-
import { DataChangePayload, DataModelValues, PdfField,
|
|
2
|
+
import { DataChangePayload, DataModelValues, PdfField, PdfViewMode, RecipientInfo } from '../../interface/types';
|
|
3
3
|
export interface PdfViewProps {
|
|
4
4
|
fields: PdfField[];
|
|
5
5
|
errors?: Record<string, string>;
|
|
6
|
-
|
|
6
|
+
viewMode?: PdfViewMode;
|
|
7
7
|
data?: DataModelValues;
|
|
8
8
|
pdfUrl: string;
|
|
9
9
|
loading?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAoB,MAAM,OAAO,CAAC;AAExD,OAAO,EACH,iBAAiB,EACjB,eAAe,EAEf,QAAQ,EACR,WAAW,EACX,aAAa,EAChB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"pdf-view.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAoB,MAAM,OAAO,CAAC;AAExD,OAAO,EACH,iBAAiB,EACjB,eAAe,EAEf,QAAQ,EACR,WAAW,EACX,aAAa,EAChB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAOpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxE;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CA4FpC,CAAC"}
|
|
@@ -11,7 +11,7 @@ import { PdfViewESign } from './pdf-view-e-sign';
|
|
|
11
11
|
import { PdfViewFieldContainer } from './pdf-view-field-container';
|
|
12
12
|
import { PdfViewFillable } from './pdf-view-fillable';
|
|
13
13
|
import { PdfViewGeneric } from './pdf-view-generic';
|
|
14
|
-
export const PdfView = ({ data, errorPlaceholder, errors = {}, fields, fillingBy, holidays, loading = false, loadingPlaceholder, onDataChange, onLoadSuccess, pdfUrl,
|
|
14
|
+
export const PdfView = ({ data, errorPlaceholder, errors = {}, fields, fillingBy, holidays, loading = false, loadingPlaceholder, onDataChange, onLoadSuccess, pdfUrl, recipients, viewMode, }) => {
|
|
15
15
|
const [isPdfLoaded, setIsPdfLoaded] = useState(false);
|
|
16
16
|
const [previewData, setPreviewData] = useState(data !== null && data !== void 0 ? data : {});
|
|
17
17
|
const pdfWrapperRef = useRef(null);
|
|
@@ -20,7 +20,7 @@ export const PdfView = ({ data, errorPlaceholder, errors = {}, fields, fillingBy
|
|
|
20
20
|
onLoadSuccess === null || onLoadSuccess === void 0 ? void 0 : onLoadSuccess(pageNum);
|
|
21
21
|
};
|
|
22
22
|
const handleDataChange = (data, field) => {
|
|
23
|
-
if (
|
|
23
|
+
if (viewMode === 'preview') {
|
|
24
24
|
setPreviewData(prev => ({
|
|
25
25
|
...prev,
|
|
26
26
|
...data,
|
|
@@ -29,7 +29,7 @@ export const PdfView = ({ data, errorPlaceholder, errors = {}, fields, fillingBy
|
|
|
29
29
|
onDataChange === null || onDataChange === void 0 ? void 0 : onDataChange(data, field);
|
|
30
30
|
};
|
|
31
31
|
const recipientsColors = mapColorsToRecipients(recipients);
|
|
32
|
-
return (_jsx(Flex, { flex: 1, className: "dte-pdf-view-container", style: { maxWidth: BASE_PAGE_WIDTH }, children: _jsxs("div", { ref: pdfWrapperRef, className: "dte-pdf-wrapper", children: [_jsx(PdfDocumentRenderer, { pdfUrl: pdfUrl, loading: loading, pageWidth: BASE_PAGE_WIDTH, errorPlaceholder: errorPlaceholder, loadingPlaceholder: loadingPlaceholder, onDocumentLoadSuccess: onDocumentLoadSuccess }), isPdfLoaded && (_jsx("div", { className: "dte-pdf-field-overlay --view-mode", children: fields.map(field => (_jsxs(PdfViewFieldContainer, { field: field, data:
|
|
33
|
-
field.type === FieldTypeEnum.forms) && (_jsx(PdfViewDataModel, { field: field, data: data })), field.type === FieldTypeEnum.eSign && (_jsx(PdfViewESign, { field: field })), field.type === FieldTypeEnum.calculated && (_jsx(PdfViewCalculated, { field: field, data:
|
|
32
|
+
return (_jsx(Flex, { flex: 1, className: "dte-pdf-view-container", style: { maxWidth: BASE_PAGE_WIDTH }, children: _jsxs("div", { ref: pdfWrapperRef, className: "dte-pdf-wrapper", children: [_jsx(PdfDocumentRenderer, { pdfUrl: pdfUrl, loading: loading, pageWidth: BASE_PAGE_WIDTH, errorPlaceholder: errorPlaceholder, loadingPlaceholder: loadingPlaceholder, onDocumentLoadSuccess: onDocumentLoadSuccess }), isPdfLoaded && (_jsx("div", { className: "dte-pdf-field-overlay --view-mode", children: fields.map(field => (_jsxs(PdfViewFieldContainer, { field: field, data: viewMode === 'preview' ? previewData : data, error: errors[field.path] || '', recipientsColors: recipientsColors, pdfWrapperRef: pdfWrapperRef, children: [(field.type === FieldTypeEnum.dataModel ||
|
|
33
|
+
field.type === FieldTypeEnum.forms) && (_jsx(PdfViewDataModel, { field: field, data: data })), field.type === FieldTypeEnum.eSign && (_jsx(PdfViewESign, { field: field })), field.type === FieldTypeEnum.calculated && (_jsx(PdfViewCalculated, { field: field, data: viewMode === 'preview' ? previewData : data, holidays: holidays, viewMode: viewMode })), field.type === FieldTypeEnum.fillable && (_jsx(PdfViewFillable, { data: viewMode === 'preview' ? previewData : data, field: field, fillingBy: fillingBy, viewMode: viewMode, onDataChange: handleDataChange })), field.type === FieldTypeEnum.generic && (_jsx(PdfViewGeneric, { field: field }))] }, field.id))) }))] }) }));
|
|
34
34
|
};
|
|
35
35
|
//# sourceMappingURL=pdf-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAiB,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAGH,aAAa,GAIhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA6BpD,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EACtC,IAAI,EACJ,gBAAgB,EAChB,MAAM,GAAG,EAAE,EACX,MAAM,EACN,SAAS,EACT,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"pdf-view.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -197,7 +197,7 @@ export interface RecipientInfo {
|
|
|
197
197
|
export interface DataChangePayload {
|
|
198
198
|
[fieldId: string]: string | boolean;
|
|
199
199
|
}
|
|
200
|
-
export type
|
|
200
|
+
export type PdfViewMode = 'preview' | 'fill';
|
|
201
201
|
/**
|
|
202
202
|
* Display condition types for the Rules and Conditions modal and evaluation.
|
|
203
203
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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
|
|
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,aAOX;AAPD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;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;AAuGD,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,aAOX;AAPD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;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;AAuGD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAgItD;;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"}
|
|
@@ -4,6 +4,19 @@ import { FormFieldsByFormIdI, FormInfo, FormulaToken, StructuredFormula } from '
|
|
|
4
4
|
* Uses a field path as the identifier, so parsing is unambiguous.
|
|
5
5
|
*/
|
|
6
6
|
export declare function tokensToExpression(formula: StructuredFormula | undefined): string;
|
|
7
|
+
/**
|
|
8
|
+
* Convert StructuredFormula tokens to a human-readable display string.
|
|
9
|
+
*
|
|
10
|
+
* Field token label resolution order:
|
|
11
|
+
* 1. `pathToLabel[path]` — caller-provided override (fillable / data-model labels).
|
|
12
|
+
* 2. `formSnapshot.fieldName` — embedded form-field label carried on the token.
|
|
13
|
+
* 3. raw `path` — last-resort fallback.
|
|
14
|
+
*
|
|
15
|
+
* Use this for read-only UI surfaces where the formula is shown for context
|
|
16
|
+
* (overlays, previews) — NOT for round-tripping through `parseExpression`,
|
|
17
|
+
* which expects paths.
|
|
18
|
+
*/
|
|
19
|
+
export declare function formulaToDisplayText(formula: StructuredFormula | undefined, pathToLabel?: Map<string, string>): string;
|
|
7
20
|
/** Token from tokenizing an expression string (before resolving to FormulaToken) */
|
|
8
21
|
export interface ExpressionPart {
|
|
9
22
|
type: 'field' | 'number' | 'operator' | 'paren' | 'text';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAoBjF;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAgBvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,WAAW,CAAC,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,kBAAkB,EAAE,mBAAmB,CAAC;CAC3C,GACF,YAAY,EAAE,CA8ChB;AAED,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,wBAAwB,CAqC1B"}
|
|
1
|
+
{"version":3,"file":"expression.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAoBjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CA2BR;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAgBvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,WAAW,CAAC,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,kBAAkB,EAAE,mBAAmB,CAAC;CAC3C,GACF,YAAY,EAAE,CA8ChB;AAED,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,wBAAwB,CAqC1B"}
|
|
@@ -25,6 +25,48 @@ export function tokensToExpression(formula) {
|
|
|
25
25
|
.replace(/\s+/g, ' ')
|
|
26
26
|
.trim();
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Convert StructuredFormula tokens to a human-readable display string.
|
|
30
|
+
*
|
|
31
|
+
* Field token label resolution order:
|
|
32
|
+
* 1. `pathToLabel[path]` — caller-provided override (fillable / data-model labels).
|
|
33
|
+
* 2. `formSnapshot.fieldName` — embedded form-field label carried on the token.
|
|
34
|
+
* 3. raw `path` — last-resort fallback.
|
|
35
|
+
*
|
|
36
|
+
* Use this for read-only UI surfaces where the formula is shown for context
|
|
37
|
+
* (overlays, previews) — NOT for round-tripping through `parseExpression`,
|
|
38
|
+
* which expects paths.
|
|
39
|
+
*/
|
|
40
|
+
export function formulaToDisplayText(formula, pathToLabel) {
|
|
41
|
+
var _a;
|
|
42
|
+
if (!((_a = formula === null || formula === void 0 ? void 0 : formula.tokens) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
return formula.tokens
|
|
46
|
+
.map(t => {
|
|
47
|
+
var _a;
|
|
48
|
+
if (t.type === 'field') {
|
|
49
|
+
const overrideLabel = pathToLabel === null || pathToLabel === void 0 ? void 0 : pathToLabel.get(t.path);
|
|
50
|
+
if (overrideLabel) {
|
|
51
|
+
return overrideLabel;
|
|
52
|
+
}
|
|
53
|
+
if ((_a = t.formSnapshot) === null || _a === void 0 ? void 0 : _a.fieldName) {
|
|
54
|
+
return t.formSnapshot.fieldName;
|
|
55
|
+
}
|
|
56
|
+
return t.path;
|
|
57
|
+
}
|
|
58
|
+
if (t.type === 'lparen') {
|
|
59
|
+
return '(';
|
|
60
|
+
}
|
|
61
|
+
if (t.type === 'rparen') {
|
|
62
|
+
return ')';
|
|
63
|
+
}
|
|
64
|
+
return t.value;
|
|
65
|
+
})
|
|
66
|
+
.join(' ')
|
|
67
|
+
.replace(/\s+/g, ' ')
|
|
68
|
+
.trim();
|
|
69
|
+
}
|
|
28
70
|
// Field paths may contain hyphens (e.g., fillable_recipient_uuid with UUIDs)
|
|
29
71
|
const EXPRESSION_REGEX = /[A-Za-z_][A-Za-z0-9_.-]*|\d+(?:\.\d+)?|[()+\-*/]|\s+|./g;
|
|
30
72
|
export function tokenizeExpression(expression) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expression.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/expression.utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { Button } from '@servicetitan/anvil2';
|
|
1
|
+
import { Button, Flex, Text } from '@servicetitan/anvil2';
|
|
2
2
|
import PlusIcon from '@servicetitan/anvil2/assets/icons/material/round/add.svg';
|
|
3
|
+
import DeleteIcon from '@servicetitan/anvil2/assets/icons/material/round/delete.svg';
|
|
4
|
+
import EditIcon from '@servicetitan/anvil2/assets/icons/material/round/edit.svg';
|
|
3
5
|
import { FC, Fragment, useState } from 'react';
|
|
4
6
|
import { PdfField } from '../../interface/types';
|
|
5
7
|
import { DisplayConditionModal, DisplayConditionModalProps } from './display-condition-modal';
|
|
@@ -29,17 +31,48 @@ export const DisplayCondition: FC<DisplayConditionProps> = ({
|
|
|
29
31
|
schema,
|
|
30
32
|
}) => {
|
|
31
33
|
const [open, setOpen] = useState(false);
|
|
34
|
+
const conditionCount = initialState?.groups?.[0]?.conditions?.length ?? 0;
|
|
32
35
|
|
|
33
36
|
return (
|
|
34
37
|
<Fragment>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
{conditionCount === 0 ? (
|
|
39
|
+
<Button
|
|
40
|
+
appearance="secondary"
|
|
41
|
+
className="full-width"
|
|
42
|
+
icon={PlusIcon}
|
|
43
|
+
onClick={() => setOpen(true)}
|
|
44
|
+
>
|
|
45
|
+
Add Display Condition
|
|
46
|
+
</Button>
|
|
47
|
+
) : (
|
|
48
|
+
<Flex
|
|
49
|
+
gap={2}
|
|
50
|
+
justifyContent="space-between"
|
|
51
|
+
alignItems="center"
|
|
52
|
+
className="bordered-paper"
|
|
53
|
+
>
|
|
54
|
+
<Flex direction="column">
|
|
55
|
+
<Text>
|
|
56
|
+
{initialState?.behavior === 'show'
|
|
57
|
+
? 'Show condition configured'
|
|
58
|
+
: 'Hide condition configured'}
|
|
59
|
+
</Text>
|
|
60
|
+
<Text size="small" subdued variant="body">
|
|
61
|
+
{conditionCount === 1
|
|
62
|
+
? '1 condition is currently applied'
|
|
63
|
+
: `${conditionCount} conditions are currently applied`}
|
|
64
|
+
</Text>
|
|
65
|
+
</Flex>
|
|
66
|
+
<Flex gap={2}>
|
|
67
|
+
<Button size="small" icon={EditIcon} onClick={() => setOpen(true)} />
|
|
68
|
+
<Button
|
|
69
|
+
size="small"
|
|
70
|
+
icon={DeleteIcon}
|
|
71
|
+
onClick={() => onSave({ displayCondition: undefined })}
|
|
72
|
+
/>
|
|
73
|
+
</Flex>
|
|
74
|
+
</Flex>
|
|
75
|
+
)}
|
|
43
76
|
{open && (
|
|
44
77
|
<DisplayConditionModal
|
|
45
78
|
onClose={() => setOpen(false)}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FC, MouseEvent, RefObject } from 'react';
|
|
1
|
+
import { FC, MouseEvent, RefObject, useMemo } from 'react';
|
|
2
2
|
import { PdfField } from '../../interface/types';
|
|
3
3
|
import { PdfOverlayField } from './pdf-overlay-field';
|
|
4
4
|
|
|
@@ -27,6 +27,16 @@ export const PdfFieldsOverlay: FC<PdfFieldsOverlayProps> = ({
|
|
|
27
27
|
recipientsColors,
|
|
28
28
|
selectedField,
|
|
29
29
|
}) => {
|
|
30
|
+
const pathToLabel = useMemo(() => {
|
|
31
|
+
const map = new Map<string, string>();
|
|
32
|
+
for (const f of fields) {
|
|
33
|
+
if (f.path && f.label) {
|
|
34
|
+
map.set(f.path, f.label);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return map;
|
|
38
|
+
}, [fields]);
|
|
39
|
+
|
|
30
40
|
return (
|
|
31
41
|
<div className="dte-pdf-field-overlay skeleton-item">
|
|
32
42
|
{fields.map(field => (
|
|
@@ -43,6 +53,7 @@ export const PdfFieldsOverlay: FC<PdfFieldsOverlayProps> = ({
|
|
|
43
53
|
isSelected={selectedField?.id === field.id}
|
|
44
54
|
recipientsColors={recipientsColors}
|
|
45
55
|
isSameGroup={selectedField?.path === field.path}
|
|
56
|
+
pathToLabel={pathToLabel}
|
|
46
57
|
/>
|
|
47
58
|
))}
|
|
48
59
|
</div>
|
|
@@ -1,14 +1,30 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import { FC, useMemo } from 'react';
|
|
2
2
|
import { PdfField } from '../../interface/types';
|
|
3
|
+
import { formulaToDisplayText } from '../../utils';
|
|
3
4
|
|
|
4
5
|
interface PdfOverlayFieldCalculatedProps {
|
|
5
6
|
field: PdfField;
|
|
7
|
+
pathToLabel?: Map<string, string>;
|
|
6
8
|
}
|
|
7
9
|
|
|
8
|
-
export const PdfOverlayFieldCalculated: FC<PdfOverlayFieldCalculatedProps> = ({
|
|
10
|
+
export const PdfOverlayFieldCalculated: FC<PdfOverlayFieldCalculatedProps> = ({
|
|
11
|
+
field,
|
|
12
|
+
pathToLabel,
|
|
13
|
+
}) => {
|
|
14
|
+
const displayText = useMemo(() => {
|
|
15
|
+
const formulaText = formulaToDisplayText(field.formula, pathToLabel);
|
|
16
|
+
if (formulaText) {
|
|
17
|
+
return formulaText;
|
|
18
|
+
}
|
|
19
|
+
if (field.label) {
|
|
20
|
+
return field.label;
|
|
21
|
+
}
|
|
22
|
+
return field.path;
|
|
23
|
+
}, [field.formula, field.label, field.path, pathToLabel]);
|
|
24
|
+
|
|
9
25
|
return (
|
|
10
|
-
<span>
|
|
11
|
-
{
|
|
26
|
+
<span className="ellipsis" title={displayText}>
|
|
27
|
+
{displayText}
|
|
12
28
|
{field.required ? '*' : ''}
|
|
13
29
|
</span>
|
|
14
30
|
);
|
|
@@ -17,6 +17,7 @@ interface PdfOverlayFieldProps {
|
|
|
17
17
|
isSameGroup: boolean;
|
|
18
18
|
recipientsColors: Record<string, string>;
|
|
19
19
|
pdfWrapperRef: RefObject<HTMLDivElement>;
|
|
20
|
+
pathToLabel?: Map<string, string>;
|
|
20
21
|
onFieldConfigChange(updates: Partial<PdfField>): void;
|
|
21
22
|
handleAddNewField(field: PdfField): void;
|
|
22
23
|
onFieldClick(fieldId: string, e: MouseEvent): void;
|
|
@@ -34,6 +35,7 @@ export const PdfOverlayField: FC<PdfOverlayFieldProps> = ({
|
|
|
34
35
|
onFieldConfigChange,
|
|
35
36
|
onFieldMove,
|
|
36
37
|
onFieldResize,
|
|
38
|
+
pathToLabel,
|
|
37
39
|
pdfWrapperRef,
|
|
38
40
|
recipientsColors,
|
|
39
41
|
}) => {
|
|
@@ -75,7 +77,9 @@ export const PdfOverlayField: FC<PdfOverlayFieldProps> = ({
|
|
|
75
77
|
className={`dte-pdf-field ${isSelected ? '--selected' : '--unselected'} ${isDragging ? '--dragging' : ''} ${isSameGroup ? '--colored' : ''} ${error ? '--error' : ''}`}
|
|
76
78
|
style={style}
|
|
77
79
|
>
|
|
78
|
-
{field.type === FieldTypeEnum.calculated &&
|
|
80
|
+
{field.type === FieldTypeEnum.calculated && (
|
|
81
|
+
<PdfOverlayFieldCalculated field={field} pathToLabel={pathToLabel} />
|
|
82
|
+
)}
|
|
79
83
|
{field.type === FieldTypeEnum.eSign && <PdfOverlayFieldESign field={field} />}
|
|
80
84
|
{(field.type === FieldTypeEnum.dataModel || field.type === FieldTypeEnum.forms) && (
|
|
81
85
|
<PdfOverlayFieldDataModel field={field} />
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { FC, useMemo } from 'react';
|
|
2
|
-
import { DataModelValues, PdfField } from '../../interface/types';
|
|
2
|
+
import { DataModelValues, PdfField, PdfViewMode } from '../../interface/types';
|
|
3
3
|
import { evaluateFormula, formatCalculatedResult, resolvePdfDataValues } from '../../utils';
|
|
4
4
|
|
|
5
5
|
interface PdfViewCalculatedProps {
|
|
6
6
|
field: PdfField;
|
|
7
7
|
data?: DataModelValues;
|
|
8
8
|
holidays?: string[];
|
|
9
|
+
viewMode?: PdfViewMode;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
|
-
export const PdfViewCalculated: FC<PdfViewCalculatedProps> = ({
|
|
12
|
+
export const PdfViewCalculated: FC<PdfViewCalculatedProps> = ({
|
|
13
|
+
data,
|
|
14
|
+
field,
|
|
15
|
+
holidays,
|
|
16
|
+
viewMode,
|
|
17
|
+
}) => {
|
|
12
18
|
const displayValue = useMemo(() => {
|
|
13
19
|
if (field.formula?.tokens?.length) {
|
|
14
20
|
const value = evaluateFormula(field.formula, data, holidays);
|
|
@@ -23,5 +29,9 @@ export const PdfViewCalculated: FC<PdfViewCalculatedProps> = ({ data, field, hol
|
|
|
23
29
|
return field.label ?? '';
|
|
24
30
|
}, [data, field.formula, field.formulaFormat, field.label, field.path, holidays]);
|
|
25
31
|
|
|
26
|
-
|
|
32
|
+
const isPreview = viewMode === 'preview';
|
|
33
|
+
const shouldShowPreviewFallback = isPreview && displayValue === '';
|
|
34
|
+
const content = shouldShowPreviewFallback ? field.label || 'Calculated Field' : displayValue;
|
|
35
|
+
|
|
36
|
+
return <div className="dte-pdf-field-value">{content}</div>;
|
|
27
37
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { DataChangePayload, DataModelValues, PdfField,
|
|
2
|
+
import { DataChangePayload, DataModelValues, PdfField, PdfViewMode } from '../../interface/types';
|
|
3
3
|
import { dateToUtcZero, getFieldPlaceholderText, toDateInputValue } from '../../utils';
|
|
4
4
|
|
|
5
5
|
interface PdfViewFillableProps {
|
|
6
6
|
field: PdfField;
|
|
7
7
|
data?: DataModelValues;
|
|
8
8
|
fillingBy?: string[];
|
|
9
|
-
|
|
9
|
+
viewMode?: PdfViewMode;
|
|
10
10
|
onDataChange?(changedData: DataChangePayload, field: PdfField): void;
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -68,16 +68,12 @@ export const PdfViewFillable: FC<PdfViewFillableProps> = ({
|
|
|
68
68
|
field,
|
|
69
69
|
fillingBy,
|
|
70
70
|
onDataChange,
|
|
71
|
-
|
|
71
|
+
viewMode,
|
|
72
72
|
}) => {
|
|
73
73
|
const resolvedValue = data?.[field.path!];
|
|
74
74
|
const isViewByCurrentRecipient = fillingBy?.includes(field.recipient!);
|
|
75
75
|
const isFillable =
|
|
76
|
-
|
|
77
|
-
? true
|
|
78
|
-
: previewMode === 'view'
|
|
79
|
-
? false
|
|
80
|
-
: isViewByCurrentRecipient;
|
|
76
|
+
viewMode === 'preview' ? true : viewMode === 'fill' ? false : isViewByCurrentRecipient;
|
|
81
77
|
|
|
82
78
|
const handleDataChange = (fieldValue: DataChangePayload[string]) => {
|
|
83
79
|
const changedData = { [field.path!]: fieldValue };
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
DataModelValues,
|
|
7
7
|
FieldTypeEnum,
|
|
8
8
|
PdfField,
|
|
9
|
-
|
|
9
|
+
PdfViewMode,
|
|
10
10
|
RecipientInfo,
|
|
11
11
|
} from '../../interface/types';
|
|
12
12
|
import { mapColorsToRecipients } from '../../utils';
|
|
@@ -21,7 +21,7 @@ import { PdfViewGeneric } from './pdf-view-generic';
|
|
|
21
21
|
export interface PdfViewProps {
|
|
22
22
|
fields: PdfField[];
|
|
23
23
|
errors?: Record<string, string>;
|
|
24
|
-
|
|
24
|
+
viewMode?: PdfViewMode;
|
|
25
25
|
data?: DataModelValues;
|
|
26
26
|
pdfUrl: string;
|
|
27
27
|
loading?: boolean;
|
|
@@ -34,8 +34,8 @@ export interface PdfViewProps {
|
|
|
34
34
|
/*
|
|
35
35
|
* fillingBy defines the list of recipient names
|
|
36
36
|
* who are allowed to fill this field.
|
|
37
|
-
* This restriction is enforced only
|
|
38
|
-
*
|
|
37
|
+
* This restriction is enforced only in 'fill' mode
|
|
38
|
+
* (i.e., during actual form filling), not in 'preview' mode.
|
|
39
39
|
*/
|
|
40
40
|
fillingBy?: string[];
|
|
41
41
|
loadingPlaceholder?: ReactNode;
|
|
@@ -57,8 +57,8 @@ export const PdfView: FC<PdfViewProps> = ({
|
|
|
57
57
|
onDataChange,
|
|
58
58
|
onLoadSuccess,
|
|
59
59
|
pdfUrl,
|
|
60
|
-
previewMode,
|
|
61
60
|
recipients,
|
|
61
|
+
viewMode,
|
|
62
62
|
}) => {
|
|
63
63
|
const [isPdfLoaded, setIsPdfLoaded] = useState<boolean>(false);
|
|
64
64
|
const [previewData, setPreviewData] = useState<DataModelValues>(data ?? {});
|
|
@@ -71,7 +71,7 @@ export const PdfView: FC<PdfViewProps> = ({
|
|
|
71
71
|
};
|
|
72
72
|
|
|
73
73
|
const handleDataChange = (data: DataChangePayload, field: PdfField) => {
|
|
74
|
-
if (
|
|
74
|
+
if (viewMode === 'preview') {
|
|
75
75
|
setPreviewData(prev => ({
|
|
76
76
|
...prev,
|
|
77
77
|
...data,
|
|
@@ -98,7 +98,7 @@ export const PdfView: FC<PdfViewProps> = ({
|
|
|
98
98
|
<PdfViewFieldContainer
|
|
99
99
|
key={field.id}
|
|
100
100
|
field={field}
|
|
101
|
-
data={
|
|
101
|
+
data={viewMode === 'preview' ? previewData : data}
|
|
102
102
|
error={errors[field.path!] || ''}
|
|
103
103
|
recipientsColors={recipientsColors}
|
|
104
104
|
pdfWrapperRef={pdfWrapperRef}
|
|
@@ -113,16 +113,17 @@ export const PdfView: FC<PdfViewProps> = ({
|
|
|
113
113
|
{field.type === FieldTypeEnum.calculated && (
|
|
114
114
|
<PdfViewCalculated
|
|
115
115
|
field={field}
|
|
116
|
-
data={
|
|
116
|
+
data={viewMode === 'preview' ? previewData : data}
|
|
117
117
|
holidays={holidays}
|
|
118
|
+
viewMode={viewMode}
|
|
118
119
|
/>
|
|
119
120
|
)}
|
|
120
121
|
{field.type === FieldTypeEnum.fillable && (
|
|
121
122
|
<PdfViewFillable
|
|
122
|
-
data={
|
|
123
|
+
data={viewMode === 'preview' ? previewData : data}
|
|
123
124
|
field={field}
|
|
124
125
|
fillingBy={fillingBy}
|
|
125
|
-
|
|
126
|
+
viewMode={viewMode}
|
|
126
127
|
onDataChange={handleDataChange}
|
|
127
128
|
/>
|
|
128
129
|
)}
|
package/src/interface/types.ts
CHANGED
|
@@ -229,19 +229,20 @@ export interface DataChangePayload {
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
/*
|
|
232
|
-
*
|
|
232
|
+
* PdfViewMode controls who is interacting with the PDF and how:
|
|
233
233
|
*
|
|
234
|
-
* - '
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
234
|
+
* - 'preview':
|
|
235
|
+
* Author/admin preview. All fields are visible and interactive so
|
|
236
|
+
* the admin can try out the form and see its behavior, but data is
|
|
237
|
+
* NOT persisted. Recipient scoping is ignored.
|
|
238
238
|
*
|
|
239
|
-
* - '
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
239
|
+
* - 'fill':
|
|
240
|
+
* Real recipient fill experience. Only the current recipient's own
|
|
241
|
+
* empty fields are editable. Fields owned by other recipients are
|
|
242
|
+
* hidden if empty, or shown read-only if already filled.
|
|
243
|
+
* Already-filled values from any recipient are shown read-only.
|
|
243
244
|
*/
|
|
244
|
-
export type
|
|
245
|
+
export type PdfViewMode = 'preview' | 'fill';
|
|
245
246
|
|
|
246
247
|
/**
|
|
247
248
|
* Display condition types for the Rules and Conditions modal and evaluation.
|
package/src/styles/generic.css
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
.full-width {
|
|
2
2
|
width: 100%;
|
|
3
3
|
}
|
|
4
|
+
|
|
5
|
+
.ellipsis {
|
|
6
|
+
white-space: nowrap;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
text-overflow: ellipsis;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.bordered-paper {
|
|
12
|
+
padding: 12px;
|
|
13
|
+
background-color: var(--color-neutral-0);
|
|
14
|
+
border: 1px solid var(--border-color);
|
|
15
|
+
border-radius: 0.375rem;
|
|
16
|
+
}
|
|
@@ -32,6 +32,50 @@ export function tokensToExpression(formula: StructuredFormula | undefined): stri
|
|
|
32
32
|
.trim();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Convert StructuredFormula tokens to a human-readable display string.
|
|
37
|
+
*
|
|
38
|
+
* Field token label resolution order:
|
|
39
|
+
* 1. `pathToLabel[path]` — caller-provided override (fillable / data-model labels).
|
|
40
|
+
* 2. `formSnapshot.fieldName` — embedded form-field label carried on the token.
|
|
41
|
+
* 3. raw `path` — last-resort fallback.
|
|
42
|
+
*
|
|
43
|
+
* Use this for read-only UI surfaces where the formula is shown for context
|
|
44
|
+
* (overlays, previews) — NOT for round-tripping through `parseExpression`,
|
|
45
|
+
* which expects paths.
|
|
46
|
+
*/
|
|
47
|
+
export function formulaToDisplayText(
|
|
48
|
+
formula: StructuredFormula | undefined,
|
|
49
|
+
pathToLabel?: Map<string, string>,
|
|
50
|
+
): string {
|
|
51
|
+
if (!formula?.tokens?.length) {
|
|
52
|
+
return '';
|
|
53
|
+
}
|
|
54
|
+
return formula.tokens
|
|
55
|
+
.map(t => {
|
|
56
|
+
if (t.type === 'field') {
|
|
57
|
+
const overrideLabel = pathToLabel?.get(t.path);
|
|
58
|
+
if (overrideLabel) {
|
|
59
|
+
return overrideLabel;
|
|
60
|
+
}
|
|
61
|
+
if (t.formSnapshot?.fieldName) {
|
|
62
|
+
return t.formSnapshot.fieldName;
|
|
63
|
+
}
|
|
64
|
+
return t.path;
|
|
65
|
+
}
|
|
66
|
+
if (t.type === 'lparen') {
|
|
67
|
+
return '(';
|
|
68
|
+
}
|
|
69
|
+
if (t.type === 'rparen') {
|
|
70
|
+
return ')';
|
|
71
|
+
}
|
|
72
|
+
return t.value;
|
|
73
|
+
})
|
|
74
|
+
.join(' ')
|
|
75
|
+
.replace(/\s+/g, ' ')
|
|
76
|
+
.trim();
|
|
77
|
+
}
|
|
78
|
+
|
|
35
79
|
/** Token from tokenizing an expression string (before resolving to FormulaToken) */
|
|
36
80
|
export interface ExpressionPart {
|
|
37
81
|
type: 'field' | 'number' | 'operator' | 'paren' | 'text';
|