@servicetitan/dte-pdf-editor 1.52.0 → 1.54.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.
Files changed (75) hide show
  1. package/README.md +67 -51
  2. package/dist/components/display-conditions/condition-row.d.ts.map +1 -1
  3. package/dist/components/display-conditions/condition-row.js +35 -29
  4. package/dist/components/display-conditions/condition-row.js.map +1 -1
  5. package/dist/components/display-conditions/condition-value-control.d.ts +9 -0
  6. package/dist/components/display-conditions/condition-value-control.d.ts.map +1 -0
  7. package/dist/components/display-conditions/condition-value-control.js +33 -0
  8. package/dist/components/display-conditions/condition-value-control.js.map +1 -0
  9. package/dist/components/field-config-panel/field-config-panel-overlay.d.ts +1 -0
  10. package/dist/components/field-config-panel/field-config-panel-overlay.d.ts.map +1 -1
  11. package/dist/components/field-config-panel/field-config-panel-overlay.js +2 -2
  12. package/dist/components/field-config-panel/field-config-panel-overlay.js.map +1 -1
  13. package/dist/components/field-config-panel/field-config-panel.d.ts +1 -0
  14. package/dist/components/field-config-panel/field-config-panel.d.ts.map +1 -1
  15. package/dist/components/field-config-panel/field-config-panel.js +38 -15
  16. package/dist/components/field-config-panel/field-config-panel.js.map +1 -1
  17. package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
  18. package/dist/components/pdf-editor/pdf-editor.js +1 -1
  19. package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
  20. package/dist/components/pdf-view/pdf-view-fillable.d.ts +2 -0
  21. package/dist/components/pdf-view/pdf-view-fillable.d.ts.map +1 -1
  22. package/dist/components/pdf-view/pdf-view-fillable.js +14 -10
  23. package/dist/components/pdf-view/pdf-view-fillable.js.map +1 -1
  24. package/dist/components/pdf-view/pdf-view.d.ts +11 -0
  25. package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
  26. package/dist/components/pdf-view/pdf-view.js +2 -2
  27. package/dist/components/pdf-view/pdf-view.js.map +1 -1
  28. package/dist/hooks/index.d.ts +1 -0
  29. package/dist/hooks/index.d.ts.map +1 -1
  30. package/dist/hooks/index.js +1 -0
  31. package/dist/hooks/index.js.map +1 -1
  32. package/dist/hooks/useLookupOptions.d.ts +23 -0
  33. package/dist/hooks/useLookupOptions.d.ts.map +1 -0
  34. package/dist/hooks/useLookupOptions.js +60 -0
  35. package/dist/hooks/useLookupOptions.js.map +1 -0
  36. package/dist/hooks/usePdfFieldDnD.d.ts.map +1 -1
  37. package/dist/hooks/usePdfFieldDnD.js +5 -0
  38. package/dist/hooks/usePdfFieldDnD.js.map +1 -1
  39. package/dist/hooks/usePdfFieldSelection.d.ts +1 -0
  40. package/dist/hooks/usePdfFieldSelection.d.ts.map +1 -1
  41. package/dist/hooks/usePdfFieldSelection.js +4 -0
  42. package/dist/hooks/usePdfFieldSelection.js.map +1 -1
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/interface/host-events.d.ts +65 -0
  48. package/dist/interface/host-events.d.ts.map +1 -0
  49. package/dist/interface/host-events.js +75 -0
  50. package/dist/interface/host-events.js.map +1 -0
  51. package/dist/interface/types.d.ts +16 -0
  52. package/dist/interface/types.d.ts.map +1 -1
  53. package/dist/interface/types.js +5 -0
  54. package/dist/interface/types.js.map +1 -1
  55. package/dist/utils/conditions/schema-data-points.utils.d.ts +1 -0
  56. package/dist/utils/conditions/schema-data-points.utils.d.ts.map +1 -1
  57. package/dist/utils/conditions/schema-data-points.utils.js +30 -6
  58. package/dist/utils/conditions/schema-data-points.utils.js.map +1 -1
  59. package/package.json +1 -1
  60. package/src/components/display-conditions/condition-row.tsx +79 -41
  61. package/src/components/display-conditions/condition-value-control.tsx +90 -0
  62. package/src/components/field-config-panel/field-config-panel-overlay.tsx +6 -0
  63. package/src/components/field-config-panel/field-config-panel.tsx +61 -12
  64. package/src/components/pdf-editor/pdf-editor.tsx +1 -0
  65. package/src/components/pdf-view/pdf-view-fillable.tsx +18 -3
  66. package/src/components/pdf-view/pdf-view.tsx +8 -1
  67. package/src/hooks/index.ts +1 -0
  68. package/src/hooks/useLookupOptions.ts +86 -0
  69. package/src/hooks/usePdfFieldDnD.ts +5 -0
  70. package/src/hooks/usePdfFieldSelection.ts +8 -0
  71. package/src/index.ts +1 -0
  72. package/src/interface/host-events.ts +118 -0
  73. package/src/interface/types.ts +15 -0
  74. package/src/utils/conditions/__tests__/schema-data-points.utils.test.ts +35 -0
  75. package/src/utils/conditions/schema-data-points.utils.ts +38 -6
package/README.md CHANGED
@@ -18,33 +18,14 @@ formulas.
18
18
  - 📋 **Generic Fields**: Custom table and text blocks with configurable rows/cells and inline editing in view mode
19
19
  - 👥 **Multi-Recipient Support**: Assign fields to different recipients with color-coded visualization
20
20
  - ⚙️ **Field Configuration**: Configure field properties including position, size, label, recipient assignment,
21
- formula/format for calculated fields, and table structure (header/body rows and cells) for generic table fields
21
+ **radio group name** (shared across options in the same group), formula/format for calculated fields, and table
22
+ structure (header/body rows and cells) for generic table fields
23
+ - 🔀 **Display Conditions**: Show/hide rules with merge tags, fillable fields, and form submission fields; **radio
24
+ groups** appear as a single data point with equal/not-equal operators and a value picker for group options
22
25
  - 👁️ **View Mode**: Display PDFs with filled data in a read-only or interactive view mode (including generic fields via
23
26
  `PdfViewGeneric`)
24
27
 
25
- ### Recent changes (vs `master`) — feature/DTE-3867 (forms & submission fields)
26
-
27
- - **`FieldTypeEnum.forms`**: New canvas field type bound to a job form field. Paths use the same convention as Unlayer
28
- tools: `__submission_fields.{formId}.{normalizedFieldId}` (hyphens stripped from the field UUID in the path segment).
29
- - **`PdfEditor`**: Optional `forms` (`FormInfo[]`) and optional **`onFormSelect`**. When both are provided, the host
30
- loads field metadata for one or more form IDs and calls `sendFormFields` with a `FormFieldsByFormIdI` map
31
- (`Record<number, FormFieldInfo[]>`). The editor preloads forms referenced in existing calculated formulas and hydrates
32
- the formula builder as definitions arrive. Omit `onFormSelect` when not using job forms (no TypeScript requirement on
33
- existing consumers).
34
- - **`FormulaFieldFormSnapshot`**: Shared snapshot (`formId`, `fieldId`, `formName`, `fieldName`, `fieldType`) attached
35
- to **`PdfField.formSnapshot`** (forms fields), **`FieldTypeOption.formSnapshot`** (drag payloads), and optional
36
- **`formSnapshot`** on structured-formula **`field`** tokens when `parseExpression` can resolve the path against
37
- `forms` + `formFieldsByFormId`.
38
- - **Formula builder UI**: Slide-out “Forms” list in the sidebar; pick a form, load fields on demand, insert only
39
- **number**/**date** form fields into formulas (aligned with calculated-field operand types). `formulaLoadingFormId`
40
- surfaces loading state for async field fetches.
41
- - **Exports / utilities**: `buildFormFieldKey`, `parseFormFieldKey`, `normalizeFormFieldIdForPath`,
42
- `buildFormFieldSnapshot`, `tryBuildFormFieldFormulaSnapshot`, `SUBMISSION_FIELDS_PATH_PREFIX`, and
43
- **`ParseExpressionFormContext`** for integrators reusing path logic outside the editor.
44
-
45
- Earlier milestones still reflected elsewhere in this README: **date-aware formulas** (day-based `+` / `-`, disabled
46
- `*` / `/` with dates, `fieldType` on field tokens), **generic table/text fields**, and **Table configs** in the field
47
- panel.
28
+ ### Recent changes fix/DTE-4360 (radio groups) [RELEASE_NOTES.md](./RELEASE_NOTES.md).
48
29
 
49
30
  ## Installation
50
31
 
@@ -119,22 +100,22 @@ The main component for editing PDF documents and placing fields.
119
100
 
120
101
  #### Props
121
102
 
122
- | Prop | Type | Required | Description |
123
- |------------------------|--------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------------------------------------------|
124
- | `pdfUrl` | `string` | Yes | URL or path to the PDF file |
125
- | `fields` | `PdfField[]` | No | Array of fields placed on the PDF |
126
- | `onFieldsChange` | `(fields: PdfField[]) => void` | Yes | Callback when fields are added, modified, or deleted |
103
+ | Prop | Type | Required | Description |
104
+ |------------------------|--------------------------------------------------------------------------------------------------|----------|-------------------------------------------------------------------------------------------------------------------------|
105
+ | `pdfUrl` | `string` | Yes | URL or path to the PDF file |
106
+ | `fields` | `PdfField[]` | No | Array of fields placed on the PDF |
107
+ | `onFieldsChange` | `(fields: PdfField[]) => void` | Yes | Callback when fields are added, modified, or deleted |
127
108
  | `onFormSelect` | `(formIds: number[], sendFormFields: (formFieldsByFormId: FormFieldsByFormIdI) => void) => void` | No | With `forms`, host supplies `FormFieldInfo[]` per form id for sidebar, formulas, and preload; omit when not using forms |
128
- | `dataModel` | `SchemaObject` | No | JSON Schema object defining available data model fields |
129
- | `recipients` | `RecipientInfo[]` | No | Array of recipients that can be assigned to fields |
130
- | `forms` | `FormInfo[]` | No | Job forms shown in the sidebar and formula builder; omit to hide the Forms field group |
131
- | `hideFields` | `FieldTypeEnum[]` | No | Field menu groups to hide (e.g. omit `forms` when not supported) |
132
- | `hideConditionalLogic` | `boolean` | No | When true, hides display-condition UI in the field config panel |
133
- | `loading` | `boolean` | No | Whether the PDF is currently loading |
134
- | `loadingPlaceholder` | `ReactNode` | No | Custom component to display while PDF is loading |
135
- | `errorPlaceholder` | `ReactNode` | No | Custom component to display if PDF fails to load |
136
- | `onLoadSuccess` | `(numPages: number) => void` | No | Called when the PDF document loads successfully |
137
- | `errors` | `Record<string, string>` | No | Map of field id → validation message rendered on the canvas |
109
+ | `dataModel` | `SchemaObject` | No | JSON Schema object defining available data model fields |
110
+ | `recipients` | `RecipientInfo[]` | No | Array of recipients that can be assigned to fields |
111
+ | `forms` | `FormInfo[]` | No | Job forms shown in the sidebar and formula builder; omit to hide the Forms field group |
112
+ | `hideFields` | `FieldTypeEnum[]` | No | Field menu groups to hide (e.g. omit `forms` when not supported) |
113
+ | `hideConditionalLogic` | `boolean` | No | When true, hides display-condition UI in the field config panel |
114
+ | `loading` | `boolean` | No | Whether the PDF is currently loading |
115
+ | `loadingPlaceholder` | `ReactNode` | No | Custom component to display while PDF is loading |
116
+ | `errorPlaceholder` | `ReactNode` | No | Custom component to display if PDF fails to load |
117
+ | `onLoadSuccess` | `(numPages: number) => void` | No | Called when the PDF document loads successfully |
118
+ | `errors` | `Record<string, string>` | No | Map of field id → validation message rendered on the canvas |
138
119
 
139
120
  #### Example
140
121
 
@@ -157,18 +138,19 @@ Component for displaying PDFs with filled data in view mode.
157
138
 
158
139
  #### Props
159
140
 
160
- | Prop | Type | Required | Description |
161
- |----------------------|----------------------------------------------------------------|----------|----------------------------------------------------------|
162
- | `pdfUrl` | `string` | Yes | URL or path to the PDF file |
163
- | `fields` | `PdfField[]` | Yes | Array of fields to display on the PDF |
164
- | `data` | `DataModelValues` | No | Data object containing values for data model fields |
165
- | `recipients` | `RecipientInfo[]` | No | Array of recipients for field assignment |
166
- | `fillingBy` | `string[]` | No | Array of recipient names that are allowed to fill fields |
141
+ | Prop | Type | Required | Description |
142
+ |----------------------|----------------------------------------------------------------|----------|---------------------------------------------------------------------------------------------------------------------------------|
143
+ | `pdfUrl` | `string` | Yes | URL or path to the PDF file |
144
+ | `fields` | `PdfField[]` | Yes | Array of fields to display on the PDF |
145
+ | `data` | `DataModelValues` | No | Data object containing values for data model fields |
146
+ | `recipients` | `RecipientInfo[]` | No | Array of recipients for field assignment |
147
+ | `fillingBy` | `string[]` | No | Array of recipient names that are allowed to fill fields |
167
148
  | `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. |
168
- | `onDataChange` | `(changedData: { [path: string]: string \| boolean }) => void` | No | Callback when fillable field data changes |
169
- | `loading` | `boolean` | No | Whether the PDF is currently loading |
170
- | `loadingPlaceholder` | `ReactNode` | No | Custom component to display while PDF is loading |
171
- | `errorPlaceholder` | `ReactNode` | No | Custom component to display if PDF fails to load |
149
+ | `makeFillableFieldsReadonly` | `boolean` | No | When `true`, all fillable fields are non-editable (default `false`). See [Read-only fillable fields](#read-only-fillable-fields) below. |
150
+ | `onDataChange` | `(changedData: { [path: string]: string \| boolean }) => void` | No | Callback when fillable field data changes |
151
+ | `loading` | `boolean` | No | Whether the PDF is currently loading |
152
+ | `loadingPlaceholder` | `ReactNode` | No | Custom component to display while PDF is loading |
153
+ | `errorPlaceholder` | `ReactNode` | No | Custom component to display if PDF fails to load |
172
154
 
173
155
  #### View modes
174
156
 
@@ -184,6 +166,18 @@ The `viewMode` prop controls who is interacting with the PDF and how:
184
166
  `fillingBy` are editable for the current user; other recipients' fields are read-only. `onDataChange` is invoked for
185
167
  every edit so the caller can persist the value.
186
168
 
169
+ #### Read-only fillable fields
170
+
171
+ Set **`makeFillableFieldsReadonly={true}`** on `PdfView` to block edits on every fillable field while still showing
172
+ current values — useful for a non-interactive preview of a partially or fully filled form.
173
+
174
+ - **Text, number, date, textarea**: uses the native `readOnly` attribute (value visible, not editable).
175
+ - **Checkbox and radio**: use `disabled` instead — HTML does not support `readOnly` on these input types. Checked
176
+ state is still shown; controls cannot be toggled and `onDataChange` is not called.
177
+
178
+ This prop applies on top of `viewMode` / `fillingBy` scoping (e.g. in `'preview'` mode, fillable fields are normally
179
+ interactive unless `makeFillableFieldsReadonly` is set).
180
+
187
181
  #### Example
188
182
 
189
183
  ```tsx
@@ -193,6 +187,7 @@ The `viewMode` prop controls who is interacting with the PDF and how:
193
187
  data={data}
194
188
  recipients={recipients}
195
189
  fillingBy={['technician']}
190
+ makeFillableFieldsReadonly={false}
196
191
  onDataChange={(changedData) => {
197
192
  setData({ ...data, ...changedData });
198
193
  }}
@@ -214,6 +209,7 @@ interface PdfField {
214
209
  y: number;
215
210
  page: number;
216
211
  label: string;
212
+ groupName?: string; // fillable radio — shared name for all options with the same path
217
213
  width: number;
218
214
  height: number;
219
215
  required?: boolean;
@@ -230,6 +226,9 @@ interface PdfField {
230
226
 
231
227
  `DisplayConditionState` and related types model optional show/hide rule groups for a field (exported from this package).
232
228
 
229
+ For **radio groups**, `getDocumentFieldsDataPointOptions` exposes one entry per shared `path` (`isRadioGroup: true`,
230
+ `radioOptions` for the value picker). Condition values use the chosen radio’s `id`.
231
+
233
232
  ### FieldTypeEnum
234
233
 
235
234
  Enumeration of field types:
@@ -264,7 +263,11 @@ Types of fillable fields:
264
263
  - `number`: Number input
265
264
  - `date`: Date picker
266
265
  - `checkbox`: Checkbox
267
- - `radio`: Radio button
266
+ - `radio`: Radio button (use **+** on the canvas to add options; set **Radio Group Name** and per-option **Label** in
267
+ the config panel)
268
+
269
+ Radio groups store the selected option’s **`id`** at the shared **`path`** in fill/preview data. Use
270
+ `groupName` to identify the group in the UI and in display-condition data points.
268
271
 
269
272
  ### GenericFieldType
270
273
 
@@ -474,6 +477,8 @@ Fields are added by dragging from the sidebar onto the PDF canvas. The sidebar d
474
477
  Click on a field to open the configuration panel where you can:
475
478
 
476
479
  - Change the label
480
+ - For **radio** fillable fields: set **Radio Group Name** (applies to all options with the same path) and **Label**
481
+ per option
477
482
  - Adjust position and size
478
483
  - Assign a recipient
479
484
  - Set the required status (fillable fields, except checkbox)
@@ -485,6 +490,17 @@ Click on a field to open the configuration panel where you can:
485
490
  placement
486
491
  - For **generic table fields**: configure header visibility, header/body row heights, and cell values via Table configs;
487
492
  generic text fields support inline editing in the overlay
493
+ - **Display conditions** (when not hidden): rules can reference merge tags, fillable fields, and form fields; radio
494
+ groups appear once by `groupName` with equal/not-equal operators and a combobox value for the selected option’s `id`
495
+
496
+ ### Radio groups (fillable)
497
+
498
+ 1. Drag **Radio** onto the PDF.
499
+ 2. Open the config panel: set **Radio Group Name** and the **Label** for the first option.
500
+ 3. Click **+** on the radio overlay to add more options in the same group (shared `path` and `groupName`, unique `id`
501
+ and `label` per option).
502
+ 4. In **display conditions**, pick the group under **Fillable field** → **Data point**; choose **Is equal to** or
503
+ **Is not equal to** and select an option in **Value**.
488
504
 
489
505
  ### Moving and Resizing
490
506
 
@@ -1 +1 @@
1
- {"version":3,"file":"condition-row.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-row.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,eAAe,EACf,sBAAsB,EAEtB,mBAAmB,EACnB,QAAQ,EAIX,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,sBAAsB,CAAC;IAClC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AA0CD,wBAAgB,YAAY,CAAC,EACzB,SAAS,EACT,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,mBAAmB,GACtB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAsX7B"}
1
+ {"version":3,"file":"condition-row.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-row.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,eAAe,EACf,sBAAsB,EAEtB,mBAAmB,EACnB,QAAQ,EAMX,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,sBAAsB,CAAC;IAClC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AA4BD,wBAAgB,YAAY,CAAC,EACzB,SAAS,EACT,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,mBAAmB,GACtB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAua7B"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Chip, Combobox, Flex, Text, TextField } from '@servicetitan/anvil2';
2
+ import { Button, Chip, Combobox, Flex, Text } from '@servicetitan/anvil2';
3
3
  import TrashIcon from '@servicetitan/anvil2/assets/icons/material/round/delete.svg';
4
4
  import { useEffect, useMemo, useState } from 'react';
5
- import { FieldTypeEnum, NUMBER_OPERATORS, STRING_OPERATORS, VALUE_LESS_OPERATORS, } from '../../interface/types';
5
+ import { FieldTypeEnum, NUMBER_OPERATORS, RADIO_OPERATORS, STRING_OPERATORS, VALUE_LESS_OPERATORS, } from '../../interface/types';
6
6
  import { formFieldToDisplayConditionDataPointOption, getDisplayConditionFieldTypeForKey, inferDisplayConditionSourceKind, parseFormFieldKey, } from '../../utils';
7
+ import { ConditionValueControl } from './condition-value-control';
7
8
  const SOURCE_KIND_ORDER = [
8
9
  FieldTypeEnum.dataModel,
9
10
  FieldTypeEnum.fillable,
@@ -14,19 +15,6 @@ const SOURCE_KIND_LABELS = {
14
15
  [FieldTypeEnum.fillable]: 'Fillable field',
15
16
  [FieldTypeEnum.forms]: 'Form',
16
17
  };
17
- function sanitizeNumericInput(raw) {
18
- let value = raw.replaceAll(/[^0-9.-]/g, '');
19
- const isNegative = value.startsWith('-');
20
- value = value.replaceAll('-', '');
21
- if (isNegative) {
22
- value = `-${value}`;
23
- }
24
- const firstDot = value.indexOf('.');
25
- if (firstDot >= 0) {
26
- value = `${value.slice(0, firstDot + 1)}${value.slice(firstDot + 1).replaceAll('.', '')}`;
27
- }
28
- return value;
29
- }
30
18
  const pickDefaultSourceKind = (options) => {
31
19
  var _a, _b;
32
20
  return (_b = (_a = options[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : FieldTypeEnum.dataModel;
@@ -110,32 +98,44 @@ export function ConditionRow({ canRemove, condition, fillableOptions, formFields
110
98
  const fieldType = getDisplayConditionFieldTypeForKey(condition.dataPointKey, mergeTagOptions, fillableOptions, formFieldsByFormId !== null && formFieldsByFormId !== void 0 ? formFieldsByFormId : {});
111
99
  const selectedSourceKindOption = (_c = (_b = sourceKindOptions.find(o => o.value === sourceKind)) !== null && _b !== void 0 ? _b : sourceKindOptions[0]) !== null && _c !== void 0 ? _c : null;
112
100
  const selectedDataPoint = useMemo(() => { var _a; return (_a = dataPointItems.find(opt => opt.fullKey === condition.dataPointKey)) !== null && _a !== void 0 ? _a : null; }, [dataPointItems, condition.dataPointKey]);
113
- const operatorItems = useMemo(() => fieldType === 'number'
114
- ? [...NUMBER_OPERATORS]
115
- : [...STRING_OPERATORS], [fieldType]);
101
+ const isRadioGroup = (selectedDataPoint === null || selectedDataPoint === void 0 ? void 0 : selectedDataPoint.isRadioGroup) === true;
102
+ const operatorItems = useMemo(() => {
103
+ if (isRadioGroup) {
104
+ return [...RADIO_OPERATORS];
105
+ }
106
+ return fieldType === 'number'
107
+ ? [...NUMBER_OPERATORS]
108
+ : [...STRING_OPERATORS];
109
+ }, [fieldType, isRadioGroup]);
110
+ const radioValueOptions = useMemo(() => { var _a; return (_a = selectedDataPoint === null || selectedDataPoint === void 0 ? void 0 : selectedDataPoint.radioOptions) !== null && _a !== void 0 ? _a : []; }, [selectedDataPoint]);
111
+ const selectedRadioValue = useMemo(() => { var _a; return (_a = radioValueOptions.find(option => option.id === condition.value)) !== null && _a !== void 0 ? _a : null; }, [radioValueOptions, condition.value]);
116
112
  const selectedOperator = useMemo(() => { var _a; return (_a = operatorItems.find(op => op.value === condition.operator)) !== null && _a !== void 0 ? _a : null; }, [operatorItems, condition.operator]);
117
113
  const isValueLess = VALUE_LESS_OPERATORS.includes(condition.operator);
118
- const handleValueChange = (raw) => {
119
- const value = fieldType === 'number' ? sanitizeNumericInput(raw) : raw;
120
- onChange({ ...condition, value });
121
- };
122
- const resetOperatorForFieldType = (nextFieldType) => {
123
- const nextOperatorItems = nextFieldType === 'number' ? NUMBER_OPERATORS : STRING_OPERATORS;
114
+ const resetOperatorForFieldType = (nextFieldType, nextIsRadioGroup) => {
115
+ const nextOperatorItems = nextIsRadioGroup
116
+ ? RADIO_OPERATORS
117
+ : nextFieldType === 'number'
118
+ ? NUMBER_OPERATORS
119
+ : STRING_OPERATORS;
124
120
  return !nextOperatorItems.some(op => op.value === condition.operator);
125
121
  };
126
122
  const handleDataPointChange = (item) => {
127
123
  var _a, _b;
128
124
  const nextFieldType = (_a = item === null || item === void 0 ? void 0 : item.fieldType) !== null && _a !== void 0 ? _a : 'string';
129
- const operatorReset = resetOperatorForFieldType(nextFieldType);
125
+ const nextIsRadioGroup = (item === null || item === void 0 ? void 0 : item.isRadioGroup) === true;
126
+ const operatorReset = resetOperatorForFieldType(nextFieldType, nextIsRadioGroup);
130
127
  onChange({
131
128
  ...condition,
132
129
  dataPointKey: (_b = item === null || item === void 0 ? void 0 : item.fullKey) !== null && _b !== void 0 ? _b : '',
133
130
  formSnapshot: item === null || item === void 0 ? void 0 : item.formSnapshot,
134
131
  operator: operatorReset
135
- ? nextFieldType === 'number'
136
- ? 'num_eq'
137
- : 'is_equal_to'
132
+ ? nextIsRadioGroup
133
+ ? 'is_equal_to'
134
+ : nextFieldType === 'number'
135
+ ? 'num_eq'
136
+ : 'is_equal_to'
138
137
  : condition.operator,
138
+ value: '',
139
139
  });
140
140
  };
141
141
  const handleSourceKindChange = (item) => {
@@ -185,7 +185,13 @@ export function ConditionRow({ canRemove, condition, fillableOptions, formFields
185
185
  ...condition,
186
186
  operator: ((_a = item === null || item === void 0 ? void 0 : item.value) !== null && _a !== void 0 ? _a : 'is_equal_to'),
187
187
  });
188
- }, filterOptions: { keys: ['label'] }, children: [_jsx(Combobox.SelectTrigger, { label: "Condition", placeholder: "Select..." }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { index: i, item: item, children: item.label }, item.value))) })) })] }) }), !isValueLess && (_jsx(Flex, { flex: 1, style: { minWidth: 120 }, children: _jsx(TextField, { label: "Value", flex: 1, value: condition.value, onChange: e => handleValueChange(e.target.value), placeholder: fieldType === 'number' ? 'e.g. 1.5' : 'Enter value...', "aria-label": "Value", ...(fieldType === 'number' && { inputMode: 'decimal' }) }) })), canRemove && (_jsx(Flex, { alignItems: "flex-end", style: {
188
+ }, filterOptions: { keys: ['label'] }, children: [_jsx(Combobox.SelectTrigger, { label: "Condition", placeholder: "Select..." }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { index: i, item: item, children: item.label }, item.value))) })) })] }) }), !isValueLess && (_jsx(Flex, { flex: 1, style: { minWidth: 120 }, children: isRadioGroup ? (_jsxs(Combobox, { flex: 1, itemToKey: item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.id) !== null && _a !== void 0 ? _a : ''; }, itemToString: item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.label) !== null && _a !== void 0 ? _a : ''; }, items: radioValueOptions, selectedItem: selectedRadioValue, onChange: (item) => {
189
+ var _a;
190
+ return onChange({
191
+ ...condition,
192
+ value: (_a = item === null || item === void 0 ? void 0 : item.id) !== null && _a !== void 0 ? _a : '',
193
+ });
194
+ }, filterOptions: { keys: ['label'] }, children: [_jsx(Combobox.SelectTrigger, { label: "Value", placeholder: "Select radio option..." }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { index: i, item: item, children: item.label }, item.id))) })) })] })) : (_jsx(ConditionValueControl, { value: condition.value, fieldType: fieldType, lookupSource: selectedDataPoint === null || selectedDataPoint === void 0 ? void 0 : selectedDataPoint.lookupSource, onChange: value => onChange({ ...condition, value }) })) })), canRemove && (_jsx(Flex, { alignItems: "flex-end", style: {
189
195
  padding: '6px 12px',
190
196
  }, children: _jsx(Button, { appearance: "secondary", "aria-label": "Remove condition", icon: { before: TrashIcon }, onClick: onRemove }) }))] })] }));
191
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"condition-row.js","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-row.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"condition-row.js","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-row.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface ConditionValueControlProps {
2
+ value: string;
3
+ fieldType: 'number' | 'string';
4
+ /** The selected data point's `options.fieldLookupSource`; empty -> free-text input. */
5
+ lookupSource?: string;
6
+ onChange: (value: string) => void;
7
+ }
8
+ export declare function ConditionValueControl({ fieldType, lookupSource, onChange, value, }: Readonly<ConditionValueControlProps>): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=condition-value-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition-value-control.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-value-control.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAgBD,wBAAgB,qBAAqB,CAAC,EAClC,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,GACR,EAAE,QAAQ,CAAC,0BAA0B,CAAC,2CAyDtC"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Combobox, TextField } from '@servicetitan/anvil2';
3
+ import { useMemo } from 'react';
4
+ import { useLookupOptions } from '../../hooks';
5
+ const sanitizeNumericInput = (raw) => {
6
+ let value = raw.replaceAll(/[^0-9.-]/g, '');
7
+ const isNegative = value.startsWith('-');
8
+ value = value.replaceAll('-', '');
9
+ if (isNegative) {
10
+ value = `-${value}`;
11
+ }
12
+ const firstDot = value.indexOf('.');
13
+ if (firstDot >= 0) {
14
+ value = `${value.slice(0, firstDot + 1)}${value.slice(firstDot + 1).replaceAll('.', '')}`;
15
+ }
16
+ return value;
17
+ };
18
+ export function ConditionValueControl({ fieldType, lookupSource, onChange, value, }) {
19
+ const { options, status } = useLookupOptions(lookupSource);
20
+ const selectedOption = useMemo(() => { var _a; return (_a = options.find(option => option.key === value)) !== null && _a !== void 0 ? _a : null; }, [options, value]);
21
+ if (status === 'loading') {
22
+ return (_jsx(TextField, { label: "Value", flex: 1, disabled: true, value: "", placeholder: "", "aria-label": "Value" }));
23
+ }
24
+ // idle / fallback (no source, searchable source, empty, error, or timeout) -> free text.
25
+ if (status !== 'ready') {
26
+ const handleTextChange = (raw) => {
27
+ onChange(fieldType === 'number' ? sanitizeNumericInput(raw) : raw);
28
+ };
29
+ return (_jsx(TextField, { label: "Value", flex: 1, value: value, onChange: e => handleTextChange(e.target.value), placeholder: fieldType === 'number' ? 'e.g. 1.5' : 'Enter value...', "aria-label": "Value", ...(fieldType === 'number' && { inputMode: 'decimal' }) }));
30
+ }
31
+ return (_jsxs(Combobox, { flex: 1, items: options, selectedItem: selectedOption, itemToKey: (item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.key) !== null && _a !== void 0 ? _a : ''; }, itemToString: (item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.label) !== null && _a !== void 0 ? _a : ''; }, onChange: (item) => { var _a; return onChange((_a = item === null || item === void 0 ? void 0 : item.key) !== null && _a !== void 0 ? _a : ''); }, filterOptions: { keys: ['label'] }, children: [_jsx(Combobox.SelectTrigger, { label: "Value", placeholder: "Select value..." }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { index: i, item: item, children: item.label }, item.key))) })) })] }));
32
+ }
33
+ //# sourceMappingURL=condition-value-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition-value-control.js","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-value-control.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAW/C,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,UAAU,EAAE,CAAC;QACb,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChB,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,EAClC,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,GAC8B;IACnC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAE3D,MAAM,cAAc,GAAG,OAAO,CAC1B,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,mCAAI,IAAI,CAAA,EAAA,EAC1D,CAAC,OAAO,EAAE,KAAK,CAAC,CACnB,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CACH,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,QAAC,KAAK,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,gBAAY,OAAO,GAAG,CAC3F,CAAC;IACN,CAAC;IAED,yFAAyF;IACzF,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;YACrC,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC;QAEF,OAAO,CACH,KAAC,SAAS,IACN,KAAK,EAAC,OAAO,EACb,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,gBACxD,OAAO,KACd,CAAC,SAAS,KAAK,QAAQ,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAC1D,CACL,CAAC;IACN,CAAC;IAED,OAAO,CACH,MAAC,QAAQ,IACL,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,CAAC,IAAyB,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,mCAAI,EAAE,CAAA,EAAA,EACzD,YAAY,EAAE,CAAC,IAAyB,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,EAAE,CAAA,EAAA,EAC9D,QAAQ,EAAE,CAAC,IAAyB,EAAE,EAAE,WAAC,OAAA,QAAQ,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,mCAAI,EAAE,CAAC,CAAA,EAAA,EAClE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,aAElC,KAAC,QAAQ,CAAC,aAAa,IAAC,KAAK,EAAC,OAAO,EAAC,WAAW,EAAC,iBAAiB,GAAG,EACtE,KAAC,QAAQ,CAAC,OAAO,cACZ,CAAC,EAAE,KAAK,EAA6B,EAAE,EAAE,CAAC,CACvC,KAAC,QAAQ,CAAC,IAAI,cACT,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,YAC9B,IAAI,CAAC,KAAK,IAD2B,IAAI,CAAC,GAAG,CAElC,CACnB,CAAC,GACU,CACnB,GACc,IACZ,CACd,CAAC;AACN,CAAC"}
@@ -10,6 +10,7 @@ interface FieldConfigPanelOverlayProps {
10
10
  recipients?: RecipientInfo[];
11
11
  hideConditionalLogic?: boolean;
12
12
  onFieldConfigChange(updates: Partial<PdfField>): void;
13
+ onMatchingFieldsConfigChange?(predicate: (field: PdfField) => boolean, updates: Partial<PdfField>): void;
13
14
  onDeleteField(): void;
14
15
  onDeselectField?(): void;
15
16
  onRequestFormFields(formId: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"field-config-panel-overlay.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-config-panel-overlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EACH,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,YAAY,EACf,MAAM,uBAAuB,CAAC;AAG/B,UAAU,4BAA4B;IAClC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,QAAQ,CAAC;IACxB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,aAAa,IAAI,IAAI,CAAC;IACtB,eAAe,CAAC,IAAI,IAAI,CAAC;IACzB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAiDpE,CAAC"}
1
+ {"version":3,"file":"field-config-panel-overlay.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-config-panel-overlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EACH,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,YAAY,EACf,MAAM,uBAAuB,CAAC;AAG/B,UAAU,4BAA4B;IAClC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,QAAQ,CAAC;IACxB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,4BAA4B,CAAC,CACzB,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,EACvC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAC3B,IAAI,CAAC;IACR,aAAa,IAAI,IAAI,CAAC;IACtB,eAAe,CAAC,IAAI,IAAI,CAAC;IACzB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAmDpE,CAAC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button, Flex, Text } from '@servicetitan/anvil2';
3
3
  import IconClose from '@servicetitan/anvil2/assets/icons/material/round/close.svg';
4
4
  import { FieldConfigPanel } from './field-config-panel';
5
- export const FieldConfigPanelOverlay = ({ dataModel, documentFields = [], formFieldsByFormId, forms, formulaLoadingFormId, hideConditionalLogic, onDeleteField, onDeselectField, onFieldConfigChange, onRequestFormFields, recipients, selectedField, }) => {
6
- return (_jsxs(Flex, { className: "dte-field-config-panel-overlay", onClick: e => e.stopPropagation(), children: [_jsxs(Flex, { className: "dte-field-config-panel-header", alignItems: "center", justifyContent: "space-between", children: [_jsx(Text, { variant: "headline", el: "h6", size: "small", children: "Field Configuration" }), _jsx(Button, { appearance: "ghost", size: "small", onClick: onDeselectField, "aria-label": "Close", icon: IconClose })] }), _jsx("div", { className: "dte-field-config-panel-content", children: _jsx(FieldConfigPanel, { dataModel: dataModel, documentFields: documentFields, field: selectedField, formFieldsByFormId: formFieldsByFormId, forms: forms, formulaLoadingFormId: formulaLoadingFormId, recipients: recipients, onFieldConfigChange: onFieldConfigChange, onDeleteField: onDeleteField, hideConditionalLogic: hideConditionalLogic, onRequestFormFields: onRequestFormFields }) })] }));
5
+ export const FieldConfigPanelOverlay = ({ dataModel, documentFields = [], formFieldsByFormId, forms, formulaLoadingFormId, hideConditionalLogic, onDeleteField, onDeselectField, onFieldConfigChange, onMatchingFieldsConfigChange, onRequestFormFields, recipients, selectedField, }) => {
6
+ return (_jsxs(Flex, { className: "dte-field-config-panel-overlay", onClick: e => e.stopPropagation(), children: [_jsxs(Flex, { className: "dte-field-config-panel-header", alignItems: "center", justifyContent: "space-between", children: [_jsx(Text, { variant: "headline", el: "h6", size: "small", children: "Field Configuration" }), _jsx(Button, { appearance: "ghost", size: "small", onClick: onDeselectField, "aria-label": "Close", icon: IconClose })] }), _jsx("div", { className: "dte-field-config-panel-content", children: _jsx(FieldConfigPanel, { dataModel: dataModel, documentFields: documentFields, field: selectedField, formFieldsByFormId: formFieldsByFormId, forms: forms, formulaLoadingFormId: formulaLoadingFormId, recipients: recipients, onFieldConfigChange: onFieldConfigChange, onMatchingFieldsConfigChange: onMatchingFieldsConfigChange, onDeleteField: onDeleteField, hideConditionalLogic: hideConditionalLogic, onRequestFormFields: onRequestFormFields }) })] }));
7
7
  };
8
8
  //# sourceMappingURL=field-config-panel-overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-config-panel-overlay.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-config-panel-overlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,SAAS,MAAM,4DAA4D,CAAC;AASnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAiBxD,MAAM,CAAC,MAAM,uBAAuB,GAAqC,CAAC,EACtE,SAAS,EACT,cAAc,GAAG,EAAE,EACnB,kBAAkB,EAClB,KAAK,EACL,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,aAAa,GAChB,EAAE,EAAE;IACD,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,gCAAgC,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aAC9E,MAAC,IAAI,IACD,SAAS,EAAC,+BAA+B,EACzC,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe,aAE9B,KAAC,IAAI,IAAC,OAAO,EAAC,UAAU,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,oCAEtC,EACP,KAAC,MAAM,IACH,UAAU,EAAC,OAAO,EAClB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,eAAe,gBACb,OAAO,EAClB,IAAI,EAAE,SAAS,GACjB,IACC,EACP,cAAK,SAAS,EAAC,gCAAgC,YAC3C,KAAC,gBAAgB,IACb,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,aAAa,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,KAAK,EACZ,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,GAC1C,GACA,IACH,CACV,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"field-config-panel-overlay.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-config-panel-overlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,SAAS,MAAM,4DAA4D,CAAC;AASnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAqBxD,MAAM,CAAC,MAAM,uBAAuB,GAAqC,CAAC,EACtE,SAAS,EACT,cAAc,GAAG,EAAE,EACnB,kBAAkB,EAClB,KAAK,EACL,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,UAAU,EACV,aAAa,GAChB,EAAE,EAAE;IACD,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,gCAAgC,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aAC9E,MAAC,IAAI,IACD,SAAS,EAAC,+BAA+B,EACzC,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe,aAE9B,KAAC,IAAI,IAAC,OAAO,EAAC,UAAU,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,oCAEtC,EACP,KAAC,MAAM,IACH,UAAU,EAAC,OAAO,EAClB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,eAAe,gBACb,OAAO,EAClB,IAAI,EAAE,SAAS,GACjB,IACC,EACP,cAAK,SAAS,EAAC,gCAAgC,YAC3C,KAAC,gBAAgB,IACb,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,aAAa,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,KAAK,EACZ,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,4BAA4B,EAAE,4BAA4B,EAC1D,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,GAC1C,GACA,IACH,CACV,CAAC;AACN,CAAC,CAAC"}
@@ -11,6 +11,7 @@ interface FieldConfigPanelProps {
11
11
  hideConditionalLogic?: boolean;
12
12
  onDeleteField(): void;
13
13
  onFieldConfigChange(updates: Partial<PdfField>): void;
14
+ onMatchingFieldsConfigChange?(predicate: (field: PdfField) => boolean, updates: Partial<PdfField>): void;
14
15
  onRequestFormFields(formId: number): void;
15
16
  }
16
17
  export declare const FieldConfigPanel: FC<FieldConfigPanelProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"field-config-panel.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-config-panel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEpC,OAAO,EAGH,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,YAAY,EACf,MAAM,uBAAuB,CAAC;AAW/B,UAAU,qBAAqB;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,IAAI,IAAI,CAAC;IACtB,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAsOtD,CAAC"}
1
+ {"version":3,"file":"field-config-panel.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-config-panel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEpC,OAAO,EAGH,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,YAAY,EACf,MAAM,uBAAuB,CAAC;AAY/B,UAAU,qBAAqB;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,IAAI,IAAI,CAAC;IACtB,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,4BAA4B,CAAC,CACzB,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,EACvC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAC3B,IAAI,CAAC;IACR,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAkRtD,CAAC"}
@@ -3,31 +3,44 @@ import { Button, Checkbox, Combobox, Flex, Textarea, TextField } from '@servicet
3
3
  import { useMemo } from 'react';
4
4
  import { E_SIGN_FIELD_TYPE_OPTIONS, FIELD_FONT_SIZE_OPTIONS } from '../../constants';
5
5
  import { FieldTypeEnum, } from '../../interface/types';
6
- import { generateESignPath, generateFillablePath, getFieldFontSize, supportsFieldFontSize, } from '../../utils';
6
+ import { generateESignPath, generateFillablePath, getFieldFontSize, parseFillablePathName, supportsFieldFontSize, } from '../../utils';
7
7
  import { DisplayCondition } from '../display-conditions/display-condition';
8
8
  import { FormulaGenerator } from './formula-generator';
9
9
  import { TableConfigs } from './table-configs';
10
- export const FieldConfigPanel = ({ dataModel, documentFields = [], field, formFieldsByFormId, forms, formulaLoadingFormId, hideConditionalLogic = false, onDeleteField, onFieldConfigChange, onRequestFormFields, recipients = [], }) => {
10
+ export const FieldConfigPanel = ({ dataModel, documentFields = [], field, formFieldsByFormId, forms, formulaLoadingFormId, hideConditionalLogic = false, onDeleteField, onFieldConfigChange, onMatchingFieldsConfigChange, onRequestFormFields, recipients = [], }) => {
11
11
  var _a, _b;
12
12
  const recipientOptions = useMemo(() => recipients.map(recipient => ({
13
13
  id: recipient.name,
14
14
  name: recipient.displayName,
15
15
  })), [recipients]);
16
16
  const selectedRecipient = useMemo(() => { var _a; return (_a = recipientOptions.find(option => option.id === field.recipient)) !== null && _a !== void 0 ? _a : null; }, [recipientOptions, field.recipient]);
17
+ const isRadioGroupSibling = (documentField) => documentField.subType === 'radio' && documentField.path === field.path;
17
18
  const handleRecipientChange = (item) => {
18
- if (item) {
19
- let path = field.path;
20
- if (field.type === FieldTypeEnum.eSign) {
21
- path = generateESignPath(item.id, field.subType);
22
- }
23
- if (field.type === FieldTypeEnum.fillable) {
24
- path = generateFillablePath(item.id, field.id);
25
- }
26
- onFieldConfigChange({
27
- recipient: item.id,
28
- path,
29
- });
19
+ if (!item) {
20
+ return;
21
+ }
22
+ let path = field.path;
23
+ if (field.type === FieldTypeEnum.eSign) {
24
+ path = generateESignPath(item.id, field.subType);
25
+ }
26
+ if (field.type === FieldTypeEnum.fillable) {
27
+ const pathName = field.subType === 'radio' && field.path
28
+ ? parseFillablePathName(field.path)
29
+ : field.id;
30
+ path = generateFillablePath(item.id, pathName);
30
31
  }
32
+ const updates = {
33
+ recipient: item.id,
34
+ path,
35
+ };
36
+ if (field.type === FieldTypeEnum.fillable &&
37
+ field.subType === 'radio' &&
38
+ field.path &&
39
+ onMatchingFieldsConfigChange) {
40
+ onMatchingFieldsConfigChange(isRadioGroupSibling, updates);
41
+ return;
42
+ }
43
+ onFieldConfigChange(updates);
31
44
  };
32
45
  const selectedESignFieldType = useMemo(() => { var _a; return (_a = E_SIGN_FIELD_TYPE_OPTIONS.find(option => option.id === field.subType)) !== null && _a !== void 0 ? _a : null; }, [field]);
33
46
  const handleESignFieldTypeChange = (item) => {
@@ -49,6 +62,16 @@ export const FieldConfigPanel = ({ dataModel, documentFields = [], field, formFi
49
62
  });
50
63
  }
51
64
  };
65
+ const handleRadioGroupNameChange = (groupName) => {
66
+ if (!field.path) {
67
+ return;
68
+ }
69
+ if (onMatchingFieldsConfigChange) {
70
+ onMatchingFieldsConfigChange(isRadioGroupSibling, { groupName });
71
+ return;
72
+ }
73
+ onFieldConfigChange({ groupName });
74
+ };
52
75
  return (_jsxs(Flex, { direction: "column", gap: "4", children: [[
53
76
  FieldTypeEnum.fillable,
54
77
  FieldTypeEnum.eSign,
@@ -56,7 +79,7 @@ export const FieldConfigPanel = ({ dataModel, documentFields = [], field, formFi
56
79
  FieldTypeEnum.forms,
57
80
  ].includes(field.type) && (_jsx(TextField, { required: field.type === FieldTypeEnum.fillable, label: "Label", value: field.label, onChange: e => onFieldConfigChange({
58
81
  label: e.target.value,
59
- }) })), (field.type === FieldTypeEnum.fillable || field.type === FieldTypeEnum.eSign) && (_jsxs(Combobox, { items: recipientOptions, itemToString: item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.name) !== null && _a !== void 0 ? _a : ''; }, onChange: handleRecipientChange, selectedItem: selectedRecipient, filterOptions: { keys: ['name'] }, children: [_jsx(Combobox.SearchField, { placeholder: "", label: "Recipient" }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { item: item, index: i, children: item.name }, item.id))) })) })] })), field.type === FieldTypeEnum.eSign && (_jsxs(Combobox, { items: E_SIGN_FIELD_TYPE_OPTIONS, itemToString: item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.name) !== null && _a !== void 0 ? _a : ''; }, onChange: handleESignFieldTypeChange, selectedItem: selectedESignFieldType, children: [_jsx(Combobox.SearchField, { label: "Field Type" }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { item: item, index: i, children: item.name }, item.id))) })) })] })), field.type !== FieldTypeEnum.generic && (_jsx(TextField, { label: "Data Path", value: field.path, disabled: true })), field.type === FieldTypeEnum.fillable && (_jsx(Checkbox, { label: "Required", checked: field.required, onChange: () => onFieldConfigChange({
82
+ }) })), field.type === FieldTypeEnum.fillable && field.subType === 'radio' && (_jsx(TextField, { required: true, label: "Radio Group Name", value: field.groupName, onChange: e => handleRadioGroupNameChange(e.target.value) })), (field.type === FieldTypeEnum.fillable || field.type === FieldTypeEnum.eSign) && (_jsxs(Combobox, { items: recipientOptions, itemToString: item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.name) !== null && _a !== void 0 ? _a : ''; }, onChange: handleRecipientChange, selectedItem: selectedRecipient, filterOptions: { keys: ['name'] }, children: [_jsx(Combobox.SearchField, { placeholder: "", label: "Recipient" }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { item: item, index: i, children: item.name }, item.id))) })) })] })), field.type === FieldTypeEnum.eSign && (_jsxs(Combobox, { items: E_SIGN_FIELD_TYPE_OPTIONS, itemToString: item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.name) !== null && _a !== void 0 ? _a : ''; }, onChange: handleESignFieldTypeChange, selectedItem: selectedESignFieldType, children: [_jsx(Combobox.SearchField, { label: "Field Type" }), _jsx(Combobox.Content, { children: ({ items }) => (_jsx(Combobox.List, { children: items.map((item, i) => (_jsx(Combobox.Item, { item: item, index: i, children: item.name }, item.id))) })) })] })), field.type !== FieldTypeEnum.generic && (_jsx(TextField, { label: "Data Path", value: field.path, disabled: true })), field.type === FieldTypeEnum.fillable && (_jsx(Checkbox, { label: "Required", checked: field.required, onChange: () => onFieldConfigChange({
60
83
  required: !field.required,
61
84
  }) })), field.type === FieldTypeEnum.fillable && field.subType === 'text' && (_jsx(Checkbox, { label: "Multi-line", checked: (_a = field.multiline) !== null && _a !== void 0 ? _a : false, onChange: () => onFieldConfigChange({
62
85
  multiline: !field.multiline,