@servicetitan/dte-pdf-editor 1.55.0 → 1.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/display-conditions/condition-row.d.ts.map +1 -1
- package/dist/components/display-conditions/condition-row.js +5 -1
- package/dist/components/display-conditions/condition-row.js.map +1 -1
- package/dist/components/display-conditions/condition-value-control.d.ts +14 -2
- package/dist/components/display-conditions/condition-value-control.d.ts.map +1 -1
- package/dist/components/display-conditions/condition-value-control.js +84 -13
- package/dist/components/display-conditions/condition-value-control.js.map +1 -1
- package/dist/hooks/useLookupOptions.d.ts +24 -8
- package/dist/hooks/useLookupOptions.d.ts.map +1 -1
- package/dist/hooks/useLookupOptions.js +47 -9
- package/dist/hooks/useLookupOptions.js.map +1 -1
- package/dist/interface/host-events.d.ts +27 -10
- package/dist/interface/host-events.d.ts.map +1 -1
- package/dist/interface/host-events.js +10 -10
- package/dist/interface/host-events.js.map +1 -1
- package/dist/interface/types.d.ts +6 -0
- package/dist/interface/types.d.ts.map +1 -1
- package/dist/interface/types.js.map +1 -1
- package/package.json +1 -1
- package/src/components/display-conditions/condition-row.tsx +8 -1
- package/src/components/display-conditions/condition-value-control.tsx +126 -39
- package/src/hooks/useLookupOptions.ts +76 -14
- package/src/interface/host-events.ts +27 -15
- package/src/interface/types.ts +6 -0
|
@@ -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,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,
|
|
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,2CA8a7B"}
|
|
@@ -136,6 +136,7 @@ export function ConditionRow({ canRemove, condition, fillableOptions, formFields
|
|
|
136
136
|
: 'is_equal_to'
|
|
137
137
|
: condition.operator,
|
|
138
138
|
value: '',
|
|
139
|
+
valueLabel: undefined,
|
|
139
140
|
});
|
|
140
141
|
};
|
|
141
142
|
const handleSourceKindChange = (item) => {
|
|
@@ -151,6 +152,7 @@ export function ConditionRow({ canRemove, condition, fillableOptions, formFields
|
|
|
151
152
|
formSnapshot: undefined,
|
|
152
153
|
operator: 'is_equal_to',
|
|
153
154
|
value: '',
|
|
155
|
+
valueLabel: undefined,
|
|
154
156
|
});
|
|
155
157
|
};
|
|
156
158
|
const handlePickerFormChange = (form) => {
|
|
@@ -161,6 +163,7 @@ export function ConditionRow({ canRemove, condition, fillableOptions, formFields
|
|
|
161
163
|
formSnapshot: undefined,
|
|
162
164
|
operator: 'is_equal_to',
|
|
163
165
|
value: '',
|
|
166
|
+
valueLabel: undefined,
|
|
164
167
|
});
|
|
165
168
|
if (form) {
|
|
166
169
|
onRequestFormFields === null || onRequestFormFields === void 0 ? void 0 : onRequestFormFields(form.id);
|
|
@@ -190,8 +193,9 @@ export function ConditionRow({ canRemove, condition, fillableOptions, formFields
|
|
|
190
193
|
return onChange({
|
|
191
194
|
...condition,
|
|
192
195
|
value: (_a = item === null || item === void 0 ? void 0 : item.id) !== null && _a !== void 0 ? _a : '',
|
|
196
|
+
valueLabel: undefined,
|
|
193
197
|
});
|
|
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: {
|
|
198
|
+
}, 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, valueLabel: condition.valueLabel, fieldType: fieldType, lookupSource: selectedDataPoint === null || selectedDataPoint === void 0 ? void 0 : selectedDataPoint.lookupSource, onChange: (value, valueLabel) => onChange({ ...condition, value, valueLabel }) })) })), canRemove && (_jsx(Flex, { alignItems: "flex-end", style: {
|
|
195
199
|
padding: '6px 12px',
|
|
196
200
|
}, children: _jsx(Button, { appearance: "secondary", "aria-label": "Remove condition", icon: { before: TrashIcon }, onClick: onRemove }) }))] })] }));
|
|
197
201
|
}
|
|
@@ -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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"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
export interface ConditionValueControlProps {
|
|
2
2
|
value: string;
|
|
3
|
+
/** Stored label for `value` when it came from a searchable source (for rehydration display). */
|
|
4
|
+
valueLabel?: string;
|
|
3
5
|
fieldType: 'number' | 'string';
|
|
4
6
|
/** The selected data point's `options.fieldLookupSource`; empty -> free-text input. */
|
|
5
7
|
lookupSource?: string;
|
|
6
|
-
|
|
8
|
+
/** `valueLabel` is provided when the value was picked from a lookup dropdown. */
|
|
9
|
+
onChange: (value: string, valueLabel?: string) => void;
|
|
7
10
|
}
|
|
8
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Renders the value control for a single condition based on the field's lookup source:
|
|
13
|
+
* - `static` -> full list returned by the host, filtered locally (`SelectFieldSync`).
|
|
14
|
+
* - `searchable` -> host searches per typed query (`SelectField` + `loadOptions`).
|
|
15
|
+
* - `idle`/`fallback`/`loading` -> free-text input (never block the user).
|
|
16
|
+
*
|
|
17
|
+
* The selected option's label is reported back via `onChange` so the parent can persist it
|
|
18
|
+
* (`DisplayConditionSingle.valueLabel`) and re-display it on reopen.
|
|
19
|
+
*/
|
|
20
|
+
export declare function ConditionValueControl({ fieldType, lookupSource, onChange, value, valueLabel, }: Readonly<ConditionValueControlProps>): import("react/jsx-runtime").JSX.Element;
|
|
9
21
|
//# sourceMappingURL=condition-value-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-value-control.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-value-control.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"condition-value-control.d.ts","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-value-control.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,GACb,EAAE,QAAQ,CAAC,0BAA0B,CAAC,2CA6HtC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { TextField } from '@servicetitan/anvil2';
|
|
3
|
+
import { SelectField, SelectFieldSync } from '@servicetitan/anvil2/beta';
|
|
4
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
5
|
import { useLookupOptions } from '../../hooks';
|
|
6
|
+
const toOption = (option) => ({
|
|
7
|
+
id: option.key,
|
|
8
|
+
label: option.label,
|
|
9
|
+
});
|
|
5
10
|
const sanitizeNumericInput = (raw) => {
|
|
6
11
|
let value = raw.replaceAll(/[^0-9.-]/g, '');
|
|
7
12
|
const isNegative = value.startsWith('-');
|
|
@@ -15,19 +20,85 @@ const sanitizeNumericInput = (raw) => {
|
|
|
15
20
|
}
|
|
16
21
|
return value;
|
|
17
22
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Renders the value control for a single condition based on the field's lookup source:
|
|
25
|
+
* - `static` -> full list returned by the host, filtered locally (`SelectFieldSync`).
|
|
26
|
+
* - `searchable` -> host searches per typed query (`SelectField` + `loadOptions`).
|
|
27
|
+
* - `idle`/`fallback`/`loading` -> free-text input (never block the user).
|
|
28
|
+
*
|
|
29
|
+
* The selected option's label is reported back via `onChange` so the parent can persist it
|
|
30
|
+
* (`DisplayConditionSingle.valueLabel`) and re-display it on reopen.
|
|
31
|
+
*/
|
|
32
|
+
export function ConditionValueControl({ fieldType, lookupSource, onChange, value, valueLabel, }) {
|
|
33
|
+
const { loadOptions, options, resolveOptions, status } = useLookupOptions(lookupSource);
|
|
34
|
+
const staticSelected = useMemo(() => { var _a; return (_a = options.filter(option => option.key === value).map(toOption)[0]) !== null && _a !== void 0 ? _a : null; }, [options, value]);
|
|
35
|
+
const [searchableSelected, setSearchableSelected] = useState(value ? { id: value, label: valueLabel !== null && valueLabel !== void 0 ? valueLabel : value } : null);
|
|
36
|
+
// Tracks the key we've already turned into a human-readable label so we don't re-resolve it.
|
|
37
|
+
const resolvedKeyRef = useRef(value && valueLabel ? value : null);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
setSearchableSelected(prev => {
|
|
40
|
+
if (!value) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if ((prev === null || prev === void 0 ? void 0 : prev.id) === value) {
|
|
44
|
+
return prev;
|
|
45
|
+
}
|
|
46
|
+
return { id: value, label: valueLabel !== null && valueLabel !== void 0 ? valueLabel : value };
|
|
47
|
+
});
|
|
48
|
+
}, [value, valueLabel]);
|
|
49
|
+
/*
|
|
50
|
+
* On open, resolve key -> label for a saved searchable value that has no persisted label yet,
|
|
51
|
+
* then persist the resolved label so subsequent opens are instant.
|
|
52
|
+
*/
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (status !== 'searchable' || !value) {
|
|
55
|
+
resolvedKeyRef.current = null;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (valueLabel) {
|
|
59
|
+
resolvedKeyRef.current = value;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (resolvedKeyRef.current === value) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
let cancelled = false;
|
|
66
|
+
resolveOptions([value]).then(result => {
|
|
67
|
+
if (cancelled) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const match = result.find(option => option.key === value);
|
|
71
|
+
if (match) {
|
|
72
|
+
resolvedKeyRef.current = value;
|
|
73
|
+
setSearchableSelected({ id: match.key, label: match.label });
|
|
74
|
+
onChange(value, match.label);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return () => {
|
|
78
|
+
cancelled = true;
|
|
79
|
+
};
|
|
80
|
+
}, [status, value, valueLabel, resolveOptions, onChange]);
|
|
81
|
+
const handleLoadOptions = useCallback(async (query) => {
|
|
82
|
+
const result = await loadOptions(query);
|
|
83
|
+
return result.map(toOption);
|
|
84
|
+
}, [loadOptions]);
|
|
21
85
|
if (status === 'loading') {
|
|
22
86
|
return (_jsx(TextField, { label: "Value", flex: 1, disabled: true, value: "", placeholder: "", "aria-label": "Value" }));
|
|
23
87
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
88
|
+
if (status === 'static') {
|
|
89
|
+
return (_jsx(SelectFieldSync, { flex: 1, label: "Value", placeholder: "Search value...", options: options.map(toOption), value: staticSelected, onSelectedOptionChange: option => onChange(option ? String(option.id) : '', option === null || option === void 0 ? void 0 : option.label) }));
|
|
90
|
+
}
|
|
91
|
+
if (status === 'searchable') {
|
|
92
|
+
return (_jsx(SelectField, { flex: 1, label: "Value", placeholder: "Type to search...", initialLoad: "open", loadOptions: handleLoadOptions, value: searchableSelected, onSelectedOptionChange: option => {
|
|
93
|
+
resolvedKeyRef.current = option ? String(option.id) : null;
|
|
94
|
+
setSearchableSelected(option);
|
|
95
|
+
onChange(option ? String(option.id) : '', option === null || option === void 0 ? void 0 : option.label);
|
|
96
|
+
} }));
|
|
30
97
|
}
|
|
31
|
-
|
|
98
|
+
// idle / fallback (no source, empty, error, or timeout) -> free text.
|
|
99
|
+
const handleTextChange = (raw) => {
|
|
100
|
+
onChange(fieldType === 'number' ? sanitizeNumericInput(raw) : raw);
|
|
101
|
+
};
|
|
102
|
+
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' }) }));
|
|
32
103
|
}
|
|
33
104
|
//# sourceMappingURL=condition-value-control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-value-control.js","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-value-control.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"condition-value-control.js","sourceRoot":"","sources":["../../../src/components/display-conditions/condition-value-control.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
import { type LookupOption } from '../interface/host-events';
|
|
2
2
|
/**
|
|
3
|
-
* - `idle`
|
|
4
|
-
* - `loading`
|
|
5
|
-
* - `
|
|
6
|
-
* - `
|
|
3
|
+
* - `idle` -> no lookup source: use free-text input.
|
|
4
|
+
* - `loading` -> initial request in flight: show a disabled/loading value control.
|
|
5
|
+
* - `static` -> host returned a full list: render a locally-filtered dropdown.
|
|
6
|
+
* - `searchable` -> host wants per-query search: render an async dropdown driven by `loadOptions`.
|
|
7
|
+
* - `fallback` -> empty/error/timeout: fall back to free-text so the user is never blocked.
|
|
7
8
|
*/
|
|
8
|
-
export type LookupOptionsStatus = 'idle' | 'loading' | '
|
|
9
|
+
export type LookupOptionsStatus = 'idle' | 'loading' | 'static' | 'searchable' | 'fallback';
|
|
9
10
|
interface UseLookupOptionsResult {
|
|
10
11
|
status: LookupOptionsStatus;
|
|
12
|
+
/** Full option list for `static` sources; empty for `searchable`/`idle`/`fallback`. */
|
|
11
13
|
options: LookupOption[];
|
|
14
|
+
/**
|
|
15
|
+
* Per-query resolver for `searchable` sources. Emits a request with the typed `query` and
|
|
16
|
+
* resolves with the host's fresh list (or `[]` on timeout). Wire this into an async dropdown
|
|
17
|
+
* (e.g. Anvil2 `SelectField`'s `loadOptions`).
|
|
18
|
+
*/
|
|
19
|
+
loadOptions: (query: string) => Promise<LookupOption[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the option(s) for already-stored keys (exact match, not a text search). Used on open
|
|
22
|
+
* to turn a saved searchable value back into its human-readable label. Resolves with `[]` on
|
|
23
|
+
* timeout.
|
|
24
|
+
*/
|
|
25
|
+
resolveOptions: (keys: string[]) => Promise<LookupOption[]>;
|
|
12
26
|
}
|
|
13
27
|
/**
|
|
14
28
|
* Requests host-resolved dropdown options for a field's `fieldLookupSource` and exposes the
|
|
15
29
|
* resulting render state.
|
|
16
30
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
31
|
+
* Fires a single query-less request whenever `sourceKey` changes. The host's response decides the
|
|
32
|
+
* mode: a full list (`static`, filtered locally) or a searchable source (`searchable`, driven by
|
|
33
|
+
* `loadOptions` per keystroke). Ignores stale responses whose `requestId` does not match the latest
|
|
34
|
+
* request, and tears down its listener/timeout on unmount or source change. Falls back to free text
|
|
35
|
+
* on empty/error/timeout so the user is never blocked.
|
|
20
36
|
*/
|
|
21
37
|
export declare const useLookupOptions: (sourceKey: string | undefined) => UseLookupOptionsResult;
|
|
22
38
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLookupOptions.d.ts","sourceRoot":"","sources":["../../src/hooks/useLookupOptions.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"useLookupOptions.d.ts","sourceRoot":"","sources":["../../src/hooks/useLookupOptions.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,KAAK,YAAY,EAEpB,MAAM,0BAA0B,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAK5F,UAAU,sBAAsB;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,uFAAuF;IACvF,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC/D;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,GAAG,SAAS,KAAG,sBAmGhE,CAAC"}
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { createLookupRequestId, emitLookupOptionsRequest,
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { createLookupRequestId, emitLookupOptionsRequest, onLookupOptionsResponse, } from '../interface/host-events';
|
|
3
3
|
/** Time to wait for the host before falling back to free-text input. */
|
|
4
4
|
const LOOKUP_OPTIONS_TIMEOUT_MS = 10000;
|
|
5
5
|
/**
|
|
6
6
|
* Requests host-resolved dropdown options for a field's `fieldLookupSource` and exposes the
|
|
7
7
|
* resulting render state.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* Fires a single query-less request whenever `sourceKey` changes. The host's response decides the
|
|
10
|
+
* mode: a full list (`static`, filtered locally) or a searchable source (`searchable`, driven by
|
|
11
|
+
* `loadOptions` per keystroke). Ignores stale responses whose `requestId` does not match the latest
|
|
12
|
+
* request, and tears down its listener/timeout on unmount or source change. Falls back to free text
|
|
13
|
+
* on empty/error/timeout so the user is never blocked.
|
|
12
14
|
*/
|
|
13
15
|
export const useLookupOptions = (sourceKey) => {
|
|
14
16
|
const [status, setStatus] = useState('idle');
|
|
15
17
|
const [options, setOptions] = useState([]);
|
|
16
18
|
const latestRequestIdRef = useRef(null);
|
|
19
|
+
const sourceKeyRef = useRef(sourceKey);
|
|
17
20
|
useEffect(() => {
|
|
21
|
+
sourceKeyRef.current = sourceKey;
|
|
18
22
|
const normalizedSourceKey = sourceKey === null || sourceKey === void 0 ? void 0 : sourceKey.trim();
|
|
19
|
-
|
|
20
|
-
if (!normalizedSourceKey || isSearchableLookupSource(normalizedSourceKey)) {
|
|
23
|
+
if (!normalizedSourceKey) {
|
|
21
24
|
latestRequestIdRef.current = null;
|
|
22
25
|
setStatus('idle');
|
|
23
26
|
setOptions([]);
|
|
@@ -40,9 +43,14 @@ export const useLookupOptions = (sourceKey) => {
|
|
|
40
43
|
return;
|
|
41
44
|
}
|
|
42
45
|
clearTimeout(timeoutId);
|
|
46
|
+
if (response.searchable) {
|
|
47
|
+
setOptions([]);
|
|
48
|
+
setStatus('searchable');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
43
51
|
if (response.options.length > 0) {
|
|
44
52
|
setOptions(response.options);
|
|
45
|
-
setStatus('
|
|
53
|
+
setStatus('static');
|
|
46
54
|
}
|
|
47
55
|
else {
|
|
48
56
|
setOptions([]);
|
|
@@ -55,6 +63,36 @@ export const useLookupOptions = (sourceKey) => {
|
|
|
55
63
|
unsubscribe();
|
|
56
64
|
};
|
|
57
65
|
}, [sourceKey]);
|
|
58
|
-
|
|
66
|
+
const requestOptions = useCallback((payload) => {
|
|
67
|
+
var _a;
|
|
68
|
+
const normalizedSourceKey = (_a = sourceKeyRef.current) === null || _a === void 0 ? void 0 : _a.trim();
|
|
69
|
+
if (!normalizedSourceKey) {
|
|
70
|
+
return Promise.resolve([]);
|
|
71
|
+
}
|
|
72
|
+
return new Promise(resolve => {
|
|
73
|
+
const requestId = createLookupRequestId();
|
|
74
|
+
let settled = false;
|
|
75
|
+
const finish = (result) => {
|
|
76
|
+
if (settled) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
settled = true;
|
|
80
|
+
clearTimeout(timeoutId);
|
|
81
|
+
unsubscribe();
|
|
82
|
+
resolve(result);
|
|
83
|
+
};
|
|
84
|
+
const timeoutId = setTimeout(() => finish([]), LOOKUP_OPTIONS_TIMEOUT_MS);
|
|
85
|
+
const unsubscribe = onLookupOptionsResponse(response => {
|
|
86
|
+
if (response.requestId !== requestId) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
finish(response.options);
|
|
90
|
+
});
|
|
91
|
+
emitLookupOptionsRequest({ requestId, sourceKey: normalizedSourceKey, ...payload });
|
|
92
|
+
});
|
|
93
|
+
}, []);
|
|
94
|
+
const loadOptions = useCallback((query) => requestOptions({ query }), [requestOptions]);
|
|
95
|
+
const resolveOptions = useCallback((keys) => requestOptions({ keys }), [requestOptions]);
|
|
96
|
+
return { status, options, loadOptions, resolveOptions };
|
|
59
97
|
};
|
|
60
98
|
//# sourceMappingURL=useLookupOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLookupOptions.js","sourceRoot":"","sources":["../../src/hooks/useLookupOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useLookupOptions.js","sourceRoot":"","sources":["../../src/hooks/useLookupOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* data — it asks the HOST for it over the EventTarget bus below and renders whatever the host
|
|
7
7
|
* returns.
|
|
8
8
|
*
|
|
9
|
+
* Two host-driven modes are supported (the host decides, the editor adapts):
|
|
10
|
+
* 1. Full-list source (e.g. "state", "jobType"): the host returns every option on the first
|
|
11
|
+
* request and omits `searchable`. The editor caches that list and filters it LOCALLY as the
|
|
12
|
+
* user types — no further requests are sent.
|
|
13
|
+
* 2. Searchable source (e.g. "city"): the list is too large to send at once. The host returns
|
|
14
|
+
* `searchable: true` (typically with an empty list on the first, query-less request). The
|
|
15
|
+
* editor then re-requests with the typed `query` on each keystroke and the host returns a
|
|
16
|
+
* fresh, server-filtered list per query.
|
|
17
|
+
*
|
|
9
18
|
* Transport mirrors the unlayer `displayConditionController` / `lookupOptionsController` pattern: a
|
|
10
19
|
* module-scoped `EventTarget` shared by every consumer of this package (no global `window`
|
|
11
20
|
* pollution, no cross-instance leakage). The host imports `onLookupOptionsRequest` /
|
|
@@ -16,7 +25,7 @@
|
|
|
16
25
|
* - "dte-byod-client-mfe:lookup-options-response" (host -> editor)
|
|
17
26
|
*
|
|
18
27
|
* The host-side resolver is implemented separately (it wires these events to the app's data
|
|
19
|
-
* providers, e.g. job types / states).
|
|
28
|
+
* providers, e.g. job types / states / cities).
|
|
20
29
|
*/
|
|
21
30
|
/** A single selectable option for a lookup-backed condition value. */
|
|
22
31
|
export interface LookupOption {
|
|
@@ -31,27 +40,35 @@ export interface LookupOptionsRequest {
|
|
|
31
40
|
requestId: string;
|
|
32
41
|
/** The field's `options.fieldLookupSource` value. */
|
|
33
42
|
sourceKey: string;
|
|
34
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* The text the user has typed. Sent on each (debounced) keystroke once the host has declared
|
|
45
|
+
* the source `searchable`. Empty/omitted on the first request, where the host decides whether
|
|
46
|
+
* the source is searchable.
|
|
47
|
+
*/
|
|
35
48
|
query?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Resolve mode: the editor is asking the host to return the option(s) for these EXACT stored
|
|
51
|
+
* keys (not a text search). Used on open to turn a saved searchable value (a bare key) back into
|
|
52
|
+
* a human-readable label. When present the host should match by key and ignore `query`.
|
|
53
|
+
*/
|
|
54
|
+
keys?: string[];
|
|
36
55
|
}
|
|
37
56
|
/** host -> editor: the resolved options for a previously emitted request. */
|
|
38
57
|
export interface LookupOptionsResponse {
|
|
39
58
|
/** Echoes {@link LookupOptionsRequest.requestId}; responses with a stale id are ignored. */
|
|
40
59
|
requestId: string;
|
|
41
60
|
options: LookupOption[];
|
|
61
|
+
/**
|
|
62
|
+
* Set to `true` by the host when the source must be searched per query (server-side). When
|
|
63
|
+
* omitted/false the editor treats `options` as the complete list and switches to local
|
|
64
|
+
* filtering. Only read from the first (query-less) response for a given source.
|
|
65
|
+
*/
|
|
66
|
+
searchable?: boolean;
|
|
42
67
|
}
|
|
43
68
|
/** editor -> host event name. */
|
|
44
69
|
export declare const LOOKUP_OPTIONS_REQUEST_EVENT = "dte-byod-client-mfe:lookup-options-request";
|
|
45
70
|
/** host -> editor event name. */
|
|
46
71
|
export declare const LOOKUP_OPTIONS_RESPONSE_EVENT = "dte-byod-client-mfe:lookup-options-response";
|
|
47
|
-
/**
|
|
48
|
-
* Lookup sources that require the host to search an API per typed query. These keep the free-text
|
|
49
|
-
* input for now (the editor only handles full-list, load-once sources).
|
|
50
|
-
*/
|
|
51
|
-
export declare const SEARCHABLE_LOOKUP_SOURCES: readonly ["city"];
|
|
52
|
-
export type SearchableLookupSource = (typeof SEARCHABLE_LOOKUP_SOURCES)[number];
|
|
53
|
-
/** True when a lookup source is searchable (host-side per-query search) rather than a full list. */
|
|
54
|
-
export declare const isSearchableLookupSource: (sourceKey: string | undefined) => boolean;
|
|
55
72
|
/** Generate a unique request id for correlating request/response pairs. */
|
|
56
73
|
export declare const createLookupRequestId: () => string;
|
|
57
74
|
/** editor -> host: ask the host to resolve options for a lookup source. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-events.d.ts","sourceRoot":"","sources":["../../src/interface/host-events.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-events.d.ts","sourceRoot":"","sources":["../../src/interface/host-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,sEAAsE;AACtE,MAAM,WAAW,YAAY;IACzB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;CACf;AAED,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACjC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IAClC,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,iCAAiC;AACjC,eAAO,MAAM,4BAA4B,+CAA+C,CAAC;AACzF,iCAAiC;AACjC,eAAO,MAAM,6BAA6B,gDAAgD,CAAC;AAE3F,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,QAAO,MAExC,CAAC;AAIF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,SAAS,oBAAoB,SAIrE,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,GAAI,UAAU,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,eAcvF,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,GAAI,UAAU,qBAAqB,SAIxE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,GAAI,UAAU,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,eAc1F,CAAC"}
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* data — it asks the HOST for it over the EventTarget bus below and renders whatever the host
|
|
7
7
|
* returns.
|
|
8
8
|
*
|
|
9
|
+
* Two host-driven modes are supported (the host decides, the editor adapts):
|
|
10
|
+
* 1. Full-list source (e.g. "state", "jobType"): the host returns every option on the first
|
|
11
|
+
* request and omits `searchable`. The editor caches that list and filters it LOCALLY as the
|
|
12
|
+
* user types — no further requests are sent.
|
|
13
|
+
* 2. Searchable source (e.g. "city"): the list is too large to send at once. The host returns
|
|
14
|
+
* `searchable: true` (typically with an empty list on the first, query-less request). The
|
|
15
|
+
* editor then re-requests with the typed `query` on each keystroke and the host returns a
|
|
16
|
+
* fresh, server-filtered list per query.
|
|
17
|
+
*
|
|
9
18
|
* Transport mirrors the unlayer `displayConditionController` / `lookupOptionsController` pattern: a
|
|
10
19
|
* module-scoped `EventTarget` shared by every consumer of this package (no global `window`
|
|
11
20
|
* pollution, no cross-instance leakage). The host imports `onLookupOptionsRequest` /
|
|
@@ -16,21 +25,12 @@
|
|
|
16
25
|
* - "dte-byod-client-mfe:lookup-options-response" (host -> editor)
|
|
17
26
|
*
|
|
18
27
|
* The host-side resolver is implemented separately (it wires these events to the app's data
|
|
19
|
-
* providers, e.g. job types / states).
|
|
28
|
+
* providers, e.g. job types / states / cities).
|
|
20
29
|
*/
|
|
21
30
|
/** editor -> host event name. */
|
|
22
31
|
export const LOOKUP_OPTIONS_REQUEST_EVENT = 'dte-byod-client-mfe:lookup-options-request';
|
|
23
32
|
/** host -> editor event name. */
|
|
24
33
|
export const LOOKUP_OPTIONS_RESPONSE_EVENT = 'dte-byod-client-mfe:lookup-options-response';
|
|
25
|
-
/**
|
|
26
|
-
* Lookup sources that require the host to search an API per typed query. These keep the free-text
|
|
27
|
-
* input for now (the editor only handles full-list, load-once sources).
|
|
28
|
-
*/
|
|
29
|
-
export const SEARCHABLE_LOOKUP_SOURCES = ['city'];
|
|
30
|
-
/** True when a lookup source is searchable (host-side per-query search) rather than a full list. */
|
|
31
|
-
export const isSearchableLookupSource = (sourceKey) => {
|
|
32
|
-
return !!sourceKey && SEARCHABLE_LOOKUP_SOURCES.includes(sourceKey);
|
|
33
|
-
};
|
|
34
34
|
/** Generate a unique request id for correlating request/response pairs. */
|
|
35
35
|
export const createLookupRequestId = () => {
|
|
36
36
|
return `lookup-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-events.js","sourceRoot":"","sources":["../../src/interface/host-events.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-events.js","sourceRoot":"","sources":["../../src/interface/host-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA2CH,iCAAiC;AACjC,MAAM,CAAC,MAAM,4BAA4B,GAAG,4CAA4C,CAAC;AACzF,iCAAiC;AACjC,MAAM,CAAC,MAAM,6BAA6B,GAAG,6CAA6C,CAAC;AAE3F,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE;IAC9C,OAAO,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,IAAI,WAAW,EAAE,CAAC;AAE9C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAA6B,EAAE,EAAE;IACtE,mBAAmB,CAAC,aAAa,CAC7B,IAAI,WAAW,CAAuB,4BAA4B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAC3F,CAAC;AACN,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAiD,EAAE,EAAE;IACxF,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAI,KAA2C,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,mBAAmB,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IAE5E,OAAO,GAAG,EAAE;QACR,mBAAmB,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAA+B,EAAE,EAAE;IACzE,mBAAmB,CAAC,aAAa,CAC7B,IAAI,WAAW,CAAwB,6BAA6B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAC9F,CAAC;AACN,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAmD,EAAE,EAAE;IAC3F,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAI,KAA4C,CAAC,MAAM,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,mBAAmB,CAAC,gBAAgB,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IAE7E,OAAO,GAAG,EAAE;QACR,mBAAmB,CAAC,mBAAmB,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -59,6 +59,12 @@ export interface DisplayConditionGroup {
|
|
|
59
59
|
export interface DisplayConditionSingle {
|
|
60
60
|
id: string;
|
|
61
61
|
value: string;
|
|
62
|
+
/**
|
|
63
|
+
* Human-readable label for `value` when it came from a searchable lookup source. Persisted so a
|
|
64
|
+
* saved condition can render the selected option's label on reopen (the searched list is empty
|
|
65
|
+
* until the user types). Display-only — never used in condition evaluation.
|
|
66
|
+
*/
|
|
67
|
+
valueLabel?: string;
|
|
62
68
|
operator: string;
|
|
63
69
|
dataPointKey: string;
|
|
64
70
|
logicalOperator?: 'and' | 'or';
|
|
@@ -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;
|
|
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;AAoHD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAiItD;;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,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAChD,CAAC;AAEX,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -244,6 +244,7 @@ export function ConditionRow({
|
|
|
244
244
|
: 'is_equal_to'
|
|
245
245
|
: condition.operator,
|
|
246
246
|
value: '',
|
|
247
|
+
valueLabel: undefined,
|
|
247
248
|
});
|
|
248
249
|
};
|
|
249
250
|
|
|
@@ -260,6 +261,7 @@ export function ConditionRow({
|
|
|
260
261
|
formSnapshot: undefined,
|
|
261
262
|
operator: 'is_equal_to',
|
|
262
263
|
value: '',
|
|
264
|
+
valueLabel: undefined,
|
|
263
265
|
});
|
|
264
266
|
};
|
|
265
267
|
|
|
@@ -271,6 +273,7 @@ export function ConditionRow({
|
|
|
271
273
|
formSnapshot: undefined,
|
|
272
274
|
operator: 'is_equal_to',
|
|
273
275
|
value: '',
|
|
276
|
+
valueLabel: undefined,
|
|
274
277
|
});
|
|
275
278
|
if (form) {
|
|
276
279
|
onRequestFormFields?.(form.id);
|
|
@@ -448,6 +451,7 @@ export function ConditionRow({
|
|
|
448
451
|
onChange({
|
|
449
452
|
...condition,
|
|
450
453
|
value: item?.id ?? '',
|
|
454
|
+
valueLabel: undefined,
|
|
451
455
|
})
|
|
452
456
|
}
|
|
453
457
|
filterOptions={{ keys: ['label'] }}
|
|
@@ -471,9 +475,12 @@ export function ConditionRow({
|
|
|
471
475
|
) : (
|
|
472
476
|
<ConditionValueControl
|
|
473
477
|
value={condition.value}
|
|
478
|
+
valueLabel={condition.valueLabel}
|
|
474
479
|
fieldType={fieldType}
|
|
475
480
|
lookupSource={selectedDataPoint?.lookupSource}
|
|
476
|
-
onChange={value
|
|
481
|
+
onChange={(value, valueLabel) =>
|
|
482
|
+
onChange({ ...condition, value, valueLabel })
|
|
483
|
+
}
|
|
477
484
|
/>
|
|
478
485
|
)}
|
|
479
486
|
</Flex>
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { TextField } from '@servicetitan/anvil2';
|
|
2
|
+
import { SelectField, SelectFieldOption, SelectFieldSync } from '@servicetitan/anvil2/beta';
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
4
|
import { useLookupOptions } from '../../hooks';
|
|
4
5
|
import type { LookupOption } from '../../interface/host-events';
|
|
5
6
|
|
|
6
7
|
export interface ConditionValueControlProps {
|
|
7
8
|
value: string;
|
|
9
|
+
/** Stored label for `value` when it came from a searchable source (for rehydration display). */
|
|
10
|
+
valueLabel?: string;
|
|
8
11
|
fieldType: 'number' | 'string';
|
|
9
12
|
/** The selected data point's `options.fieldLookupSource`; empty -> free-text input. */
|
|
10
13
|
lookupSource?: string;
|
|
11
|
-
|
|
14
|
+
/** `valueLabel` is provided when the value was picked from a lookup dropdown. */
|
|
15
|
+
onChange: (value: string, valueLabel?: string) => void;
|
|
12
16
|
}
|
|
13
17
|
|
|
18
|
+
const toOption = (option: LookupOption): SelectFieldOption => ({
|
|
19
|
+
id: option.key,
|
|
20
|
+
label: option.label,
|
|
21
|
+
});
|
|
22
|
+
|
|
14
23
|
const sanitizeNumericInput = (raw: string): string => {
|
|
15
24
|
let value = raw.replaceAll(/[^0-9.-]/g, '');
|
|
16
25
|
const isNegative = value.startsWith('-');
|
|
@@ -25,66 +34,144 @@ const sanitizeNumericInput = (raw: string): string => {
|
|
|
25
34
|
return value;
|
|
26
35
|
};
|
|
27
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Renders the value control for a single condition based on the field's lookup source:
|
|
39
|
+
* - `static` -> full list returned by the host, filtered locally (`SelectFieldSync`).
|
|
40
|
+
* - `searchable` -> host searches per typed query (`SelectField` + `loadOptions`).
|
|
41
|
+
* - `idle`/`fallback`/`loading` -> free-text input (never block the user).
|
|
42
|
+
*
|
|
43
|
+
* The selected option's label is reported back via `onChange` so the parent can persist it
|
|
44
|
+
* (`DisplayConditionSingle.valueLabel`) and re-display it on reopen.
|
|
45
|
+
*/
|
|
28
46
|
export function ConditionValueControl({
|
|
29
47
|
fieldType,
|
|
30
48
|
lookupSource,
|
|
31
49
|
onChange,
|
|
32
50
|
value,
|
|
51
|
+
valueLabel,
|
|
33
52
|
}: Readonly<ConditionValueControlProps>) {
|
|
34
|
-
const { options, status } = useLookupOptions(lookupSource);
|
|
53
|
+
const { loadOptions, options, resolveOptions, status } = useLookupOptions(lookupSource);
|
|
35
54
|
|
|
36
|
-
const
|
|
37
|
-
() => options.
|
|
55
|
+
const staticSelected = useMemo<SelectFieldOption | null>(
|
|
56
|
+
() => options.filter(option => option.key === value).map(toOption)[0] ?? null,
|
|
38
57
|
[options, value],
|
|
39
58
|
);
|
|
40
59
|
|
|
60
|
+
const [searchableSelected, setSearchableSelected] = useState<SelectFieldOption | null>(
|
|
61
|
+
value ? { id: value, label: valueLabel ?? value } : null,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
// Tracks the key we've already turned into a human-readable label so we don't re-resolve it.
|
|
65
|
+
const resolvedKeyRef = useRef<string | null>(value && valueLabel ? value : null);
|
|
66
|
+
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
setSearchableSelected(prev => {
|
|
69
|
+
if (!value) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
if (prev?.id === value) {
|
|
73
|
+
return prev;
|
|
74
|
+
}
|
|
75
|
+
return { id: value, label: valueLabel ?? value };
|
|
76
|
+
});
|
|
77
|
+
}, [value, valueLabel]);
|
|
78
|
+
|
|
79
|
+
/*
|
|
80
|
+
* On open, resolve key -> label for a saved searchable value that has no persisted label yet,
|
|
81
|
+
* then persist the resolved label so subsequent opens are instant.
|
|
82
|
+
*/
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (status !== 'searchable' || !value) {
|
|
85
|
+
resolvedKeyRef.current = null;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (valueLabel) {
|
|
89
|
+
resolvedKeyRef.current = value;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (resolvedKeyRef.current === value) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
let cancelled = false;
|
|
97
|
+
resolveOptions([value]).then(result => {
|
|
98
|
+
if (cancelled) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const match = result.find(option => option.key === value);
|
|
102
|
+
if (match) {
|
|
103
|
+
resolvedKeyRef.current = value;
|
|
104
|
+
setSearchableSelected({ id: match.key, label: match.label });
|
|
105
|
+
onChange(value, match.label);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
return () => {
|
|
110
|
+
cancelled = true;
|
|
111
|
+
};
|
|
112
|
+
}, [status, value, valueLabel, resolveOptions, onChange]);
|
|
113
|
+
|
|
114
|
+
const handleLoadOptions = useCallback(
|
|
115
|
+
async (query: string) => {
|
|
116
|
+
const result = await loadOptions(query);
|
|
117
|
+
return result.map(toOption);
|
|
118
|
+
},
|
|
119
|
+
[loadOptions],
|
|
120
|
+
);
|
|
121
|
+
|
|
41
122
|
if (status === 'loading') {
|
|
42
123
|
return (
|
|
43
124
|
<TextField label="Value" flex={1} disabled value="" placeholder="" aria-label="Value" />
|
|
44
125
|
);
|
|
45
126
|
}
|
|
46
127
|
|
|
47
|
-
|
|
48
|
-
if (status !== 'ready') {
|
|
49
|
-
const handleTextChange = (raw: string) => {
|
|
50
|
-
onChange(fieldType === 'number' ? sanitizeNumericInput(raw) : raw);
|
|
51
|
-
};
|
|
52
|
-
|
|
128
|
+
if (status === 'static') {
|
|
53
129
|
return (
|
|
54
|
-
<
|
|
130
|
+
<SelectFieldSync
|
|
131
|
+
flex={1}
|
|
55
132
|
label="Value"
|
|
133
|
+
placeholder="Search value..."
|
|
134
|
+
options={options.map(toOption)}
|
|
135
|
+
value={staticSelected}
|
|
136
|
+
onSelectedOptionChange={option =>
|
|
137
|
+
onChange(option ? String(option.id) : '', option?.label)
|
|
138
|
+
}
|
|
139
|
+
/>
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (status === 'searchable') {
|
|
144
|
+
return (
|
|
145
|
+
<SelectField
|
|
56
146
|
flex={1}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{
|
|
147
|
+
label="Value"
|
|
148
|
+
placeholder="Type to search..."
|
|
149
|
+
initialLoad="open"
|
|
150
|
+
loadOptions={handleLoadOptions}
|
|
151
|
+
value={searchableSelected}
|
|
152
|
+
onSelectedOptionChange={option => {
|
|
153
|
+
resolvedKeyRef.current = option ? String(option.id) : null;
|
|
154
|
+
setSearchableSelected(option);
|
|
155
|
+
onChange(option ? String(option.id) : '', option?.label);
|
|
156
|
+
}}
|
|
62
157
|
/>
|
|
63
158
|
);
|
|
64
159
|
}
|
|
65
160
|
|
|
161
|
+
// idle / fallback (no source, empty, error, or timeout) -> free text.
|
|
162
|
+
const handleTextChange = (raw: string) => {
|
|
163
|
+
onChange(fieldType === 'number' ? sanitizeNumericInput(raw) : raw);
|
|
164
|
+
};
|
|
165
|
+
|
|
66
166
|
return (
|
|
67
|
-
<
|
|
167
|
+
<TextField
|
|
168
|
+
label="Value"
|
|
68
169
|
flex={1}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
>
|
|
76
|
-
<Combobox.SearchField label="Value" placeholder="Search value..." />
|
|
77
|
-
<Combobox.Content>
|
|
78
|
-
{({ items }: { items: LookupOption[] }) => (
|
|
79
|
-
<Combobox.List>
|
|
80
|
-
{items.map((item, i) => (
|
|
81
|
-
<Combobox.Item index={i} item={item} key={item.key}>
|
|
82
|
-
{item.label}
|
|
83
|
-
</Combobox.Item>
|
|
84
|
-
))}
|
|
85
|
-
</Combobox.List>
|
|
86
|
-
)}
|
|
87
|
-
</Combobox.Content>
|
|
88
|
-
</Combobox>
|
|
170
|
+
value={value}
|
|
171
|
+
onChange={e => handleTextChange(e.target.value)}
|
|
172
|
+
placeholder={fieldType === 'number' ? 'e.g. 1.5' : 'Enter value...'}
|
|
173
|
+
aria-label="Value"
|
|
174
|
+
{...(fieldType === 'number' && { inputMode: 'decimal' })}
|
|
175
|
+
/>
|
|
89
176
|
);
|
|
90
177
|
}
|
|
@@ -1,45 +1,62 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
createLookupRequestId,
|
|
4
4
|
emitLookupOptionsRequest,
|
|
5
|
-
isSearchableLookupSource,
|
|
6
5
|
type LookupOption,
|
|
7
6
|
onLookupOptionsResponse,
|
|
8
7
|
} from '../interface/host-events';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
|
-
* - `idle`
|
|
12
|
-
* - `loading`
|
|
13
|
-
* - `
|
|
14
|
-
* - `
|
|
10
|
+
* - `idle` -> no lookup source: use free-text input.
|
|
11
|
+
* - `loading` -> initial request in flight: show a disabled/loading value control.
|
|
12
|
+
* - `static` -> host returned a full list: render a locally-filtered dropdown.
|
|
13
|
+
* - `searchable` -> host wants per-query search: render an async dropdown driven by `loadOptions`.
|
|
14
|
+
* - `fallback` -> empty/error/timeout: fall back to free-text so the user is never blocked.
|
|
15
15
|
*/
|
|
16
|
-
export type LookupOptionsStatus = 'idle' | 'loading' | '
|
|
16
|
+
export type LookupOptionsStatus = 'idle' | 'loading' | 'static' | 'searchable' | 'fallback';
|
|
17
17
|
|
|
18
18
|
/** Time to wait for the host before falling back to free-text input. */
|
|
19
19
|
const LOOKUP_OPTIONS_TIMEOUT_MS = 10_000;
|
|
20
20
|
|
|
21
21
|
interface UseLookupOptionsResult {
|
|
22
22
|
status: LookupOptionsStatus;
|
|
23
|
+
/** Full option list for `static` sources; empty for `searchable`/`idle`/`fallback`. */
|
|
23
24
|
options: LookupOption[];
|
|
25
|
+
/**
|
|
26
|
+
* Per-query resolver for `searchable` sources. Emits a request with the typed `query` and
|
|
27
|
+
* resolves with the host's fresh list (or `[]` on timeout). Wire this into an async dropdown
|
|
28
|
+
* (e.g. Anvil2 `SelectField`'s `loadOptions`).
|
|
29
|
+
*/
|
|
30
|
+
loadOptions: (query: string) => Promise<LookupOption[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the option(s) for already-stored keys (exact match, not a text search). Used on open
|
|
33
|
+
* to turn a saved searchable value back into its human-readable label. Resolves with `[]` on
|
|
34
|
+
* timeout.
|
|
35
|
+
*/
|
|
36
|
+
resolveOptions: (keys: string[]) => Promise<LookupOption[]>;
|
|
24
37
|
}
|
|
25
38
|
|
|
26
39
|
/**
|
|
27
40
|
* Requests host-resolved dropdown options for a field's `fieldLookupSource` and exposes the
|
|
28
41
|
* resulting render state.
|
|
29
42
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
43
|
+
* Fires a single query-less request whenever `sourceKey` changes. The host's response decides the
|
|
44
|
+
* mode: a full list (`static`, filtered locally) or a searchable source (`searchable`, driven by
|
|
45
|
+
* `loadOptions` per keystroke). Ignores stale responses whose `requestId` does not match the latest
|
|
46
|
+
* request, and tears down its listener/timeout on unmount or source change. Falls back to free text
|
|
47
|
+
* on empty/error/timeout so the user is never blocked.
|
|
33
48
|
*/
|
|
34
49
|
export const useLookupOptions = (sourceKey: string | undefined): UseLookupOptionsResult => {
|
|
35
50
|
const [status, setStatus] = useState<LookupOptionsStatus>('idle');
|
|
36
51
|
const [options, setOptions] = useState<LookupOption[]>([]);
|
|
37
52
|
const latestRequestIdRef = useRef<string | null>(null);
|
|
53
|
+
const sourceKeyRef = useRef<string | undefined>(sourceKey);
|
|
38
54
|
|
|
39
55
|
useEffect(() => {
|
|
56
|
+
sourceKeyRef.current = sourceKey;
|
|
40
57
|
const normalizedSourceKey = sourceKey?.trim();
|
|
41
|
-
|
|
42
|
-
if (!normalizedSourceKey
|
|
58
|
+
|
|
59
|
+
if (!normalizedSourceKey) {
|
|
43
60
|
latestRequestIdRef.current = null;
|
|
44
61
|
setStatus('idle');
|
|
45
62
|
setOptions([]);
|
|
@@ -65,9 +82,14 @@ export const useLookupOptions = (sourceKey: string | undefined): UseLookupOption
|
|
|
65
82
|
return;
|
|
66
83
|
}
|
|
67
84
|
clearTimeout(timeoutId);
|
|
85
|
+
if (response.searchable) {
|
|
86
|
+
setOptions([]);
|
|
87
|
+
setStatus('searchable');
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
68
90
|
if (response.options.length > 0) {
|
|
69
91
|
setOptions(response.options);
|
|
70
|
-
setStatus('
|
|
92
|
+
setStatus('static');
|
|
71
93
|
} else {
|
|
72
94
|
setOptions([]);
|
|
73
95
|
setStatus('fallback');
|
|
@@ -82,5 +104,45 @@ export const useLookupOptions = (sourceKey: string | undefined): UseLookupOption
|
|
|
82
104
|
};
|
|
83
105
|
}, [sourceKey]);
|
|
84
106
|
|
|
85
|
-
|
|
107
|
+
const requestOptions = useCallback((payload: { query?: string; keys?: string[] }) => {
|
|
108
|
+
const normalizedSourceKey = sourceKeyRef.current?.trim();
|
|
109
|
+
if (!normalizedSourceKey) {
|
|
110
|
+
return Promise.resolve<LookupOption[]>([]);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return new Promise<LookupOption[]>(resolve => {
|
|
114
|
+
const requestId = createLookupRequestId();
|
|
115
|
+
let settled = false;
|
|
116
|
+
|
|
117
|
+
const finish = (result: LookupOption[]) => {
|
|
118
|
+
if (settled) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
settled = true;
|
|
122
|
+
clearTimeout(timeoutId);
|
|
123
|
+
unsubscribe();
|
|
124
|
+
resolve(result);
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const timeoutId = setTimeout(() => finish([]), LOOKUP_OPTIONS_TIMEOUT_MS);
|
|
128
|
+
|
|
129
|
+
const unsubscribe = onLookupOptionsResponse(response => {
|
|
130
|
+
if (response.requestId !== requestId) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
finish(response.options);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
emitLookupOptionsRequest({ requestId, sourceKey: normalizedSourceKey, ...payload });
|
|
137
|
+
});
|
|
138
|
+
}, []);
|
|
139
|
+
|
|
140
|
+
const loadOptions = useCallback((query: string) => requestOptions({ query }), [requestOptions]);
|
|
141
|
+
|
|
142
|
+
const resolveOptions = useCallback(
|
|
143
|
+
(keys: string[]) => requestOptions({ keys }),
|
|
144
|
+
[requestOptions],
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
return { status, options, loadOptions, resolveOptions };
|
|
86
148
|
};
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* data — it asks the HOST for it over the EventTarget bus below and renders whatever the host
|
|
7
7
|
* returns.
|
|
8
8
|
*
|
|
9
|
+
* Two host-driven modes are supported (the host decides, the editor adapts):
|
|
10
|
+
* 1. Full-list source (e.g. "state", "jobType"): the host returns every option on the first
|
|
11
|
+
* request and omits `searchable`. The editor caches that list and filters it LOCALLY as the
|
|
12
|
+
* user types — no further requests are sent.
|
|
13
|
+
* 2. Searchable source (e.g. "city"): the list is too large to send at once. The host returns
|
|
14
|
+
* `searchable: true` (typically with an empty list on the first, query-less request). The
|
|
15
|
+
* editor then re-requests with the typed `query` on each keystroke and the host returns a
|
|
16
|
+
* fresh, server-filtered list per query.
|
|
17
|
+
*
|
|
9
18
|
* Transport mirrors the unlayer `displayConditionController` / `lookupOptionsController` pattern: a
|
|
10
19
|
* module-scoped `EventTarget` shared by every consumer of this package (no global `window`
|
|
11
20
|
* pollution, no cross-instance leakage). The host imports `onLookupOptionsRequest` /
|
|
@@ -16,7 +25,7 @@
|
|
|
16
25
|
* - "dte-byod-client-mfe:lookup-options-response" (host -> editor)
|
|
17
26
|
*
|
|
18
27
|
* The host-side resolver is implemented separately (it wires these events to the app's data
|
|
19
|
-
* providers, e.g. job types / states).
|
|
28
|
+
* providers, e.g. job types / states / cities).
|
|
20
29
|
*/
|
|
21
30
|
|
|
22
31
|
/** A single selectable option for a lookup-backed condition value. */
|
|
@@ -33,8 +42,18 @@ export interface LookupOptionsRequest {
|
|
|
33
42
|
requestId: string;
|
|
34
43
|
/** The field's `options.fieldLookupSource` value. */
|
|
35
44
|
sourceKey: string;
|
|
36
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The text the user has typed. Sent on each (debounced) keystroke once the host has declared
|
|
47
|
+
* the source `searchable`. Empty/omitted on the first request, where the host decides whether
|
|
48
|
+
* the source is searchable.
|
|
49
|
+
*/
|
|
37
50
|
query?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Resolve mode: the editor is asking the host to return the option(s) for these EXACT stored
|
|
53
|
+
* keys (not a text search). Used on open to turn a saved searchable value (a bare key) back into
|
|
54
|
+
* a human-readable label. When present the host should match by key and ignore `query`.
|
|
55
|
+
*/
|
|
56
|
+
keys?: string[];
|
|
38
57
|
}
|
|
39
58
|
|
|
40
59
|
/** host -> editor: the resolved options for a previously emitted request. */
|
|
@@ -42,6 +61,12 @@ export interface LookupOptionsResponse {
|
|
|
42
61
|
/** Echoes {@link LookupOptionsRequest.requestId}; responses with a stale id are ignored. */
|
|
43
62
|
requestId: string;
|
|
44
63
|
options: LookupOption[];
|
|
64
|
+
/**
|
|
65
|
+
* Set to `true` by the host when the source must be searched per query (server-side). When
|
|
66
|
+
* omitted/false the editor treats `options` as the complete list and switches to local
|
|
67
|
+
* filtering. Only read from the first (query-less) response for a given source.
|
|
68
|
+
*/
|
|
69
|
+
searchable?: boolean;
|
|
45
70
|
}
|
|
46
71
|
|
|
47
72
|
/** editor -> host event name. */
|
|
@@ -49,19 +74,6 @@ export const LOOKUP_OPTIONS_REQUEST_EVENT = 'dte-byod-client-mfe:lookup-options-
|
|
|
49
74
|
/** host -> editor event name. */
|
|
50
75
|
export const LOOKUP_OPTIONS_RESPONSE_EVENT = 'dte-byod-client-mfe:lookup-options-response';
|
|
51
76
|
|
|
52
|
-
/**
|
|
53
|
-
* Lookup sources that require the host to search an API per typed query. These keep the free-text
|
|
54
|
-
* input for now (the editor only handles full-list, load-once sources).
|
|
55
|
-
*/
|
|
56
|
-
export const SEARCHABLE_LOOKUP_SOURCES = ['city'] as const;
|
|
57
|
-
|
|
58
|
-
export type SearchableLookupSource = (typeof SEARCHABLE_LOOKUP_SOURCES)[number];
|
|
59
|
-
|
|
60
|
-
/** True when a lookup source is searchable (host-side per-query search) rather than a full list. */
|
|
61
|
-
export const isSearchableLookupSource = (sourceKey: string | undefined): boolean => {
|
|
62
|
-
return !!sourceKey && (SEARCHABLE_LOOKUP_SOURCES as readonly string[]).includes(sourceKey);
|
|
63
|
-
};
|
|
64
|
-
|
|
65
77
|
/** Generate a unique request id for correlating request/response pairs. */
|
|
66
78
|
export const createLookupRequestId = (): string => {
|
|
67
79
|
return `lookup-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
package/src/interface/types.ts
CHANGED
|
@@ -71,6 +71,12 @@ export interface DisplayConditionGroup {
|
|
|
71
71
|
export interface DisplayConditionSingle {
|
|
72
72
|
id: string;
|
|
73
73
|
value: string;
|
|
74
|
+
/**
|
|
75
|
+
* Human-readable label for `value` when it came from a searchable lookup source. Persisted so a
|
|
76
|
+
* saved condition can render the selected option's label on reopen (the searched list is empty
|
|
77
|
+
* until the user types). Display-only — never used in condition evaluation.
|
|
78
|
+
*/
|
|
79
|
+
valueLabel?: string;
|
|
74
80
|
operator: string;
|
|
75
81
|
dataPointKey: string;
|
|
76
82
|
logicalOperator?: 'and' | 'or';
|