@tellescope/react-components 1.238.0 → 1.239.1
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/lib/cjs/Forms/forms.d.ts.map +1 -1
- package/lib/cjs/Forms/forms.js +29 -27
- package/lib/cjs/Forms/forms.js.map +1 -1
- package/lib/cjs/Forms/forms.v2.d.ts.map +1 -1
- package/lib/cjs/Forms/forms.v2.js +29 -27
- package/lib/cjs/Forms/forms.v2.js.map +1 -1
- package/lib/cjs/Forms/hooks.d.ts +25 -1
- package/lib/cjs/Forms/hooks.d.ts.map +1 -1
- package/lib/cjs/Forms/hooks.js +40 -2
- package/lib/cjs/Forms/hooks.js.map +1 -1
- package/lib/cjs/Forms/inputs.d.ts +6 -2
- package/lib/cjs/Forms/inputs.d.ts.map +1 -1
- package/lib/cjs/Forms/inputs.js +109 -11
- package/lib/cjs/Forms/inputs.js.map +1 -1
- package/lib/cjs/Forms/inputs.v2.d.ts +2 -1
- package/lib/cjs/Forms/inputs.v2.d.ts.map +1 -1
- package/lib/cjs/Forms/inputs.v2.js +26 -9
- package/lib/cjs/Forms/inputs.v2.js.map +1 -1
- package/lib/cjs/Forms/localization.d.ts.map +1 -1
- package/lib/cjs/Forms/localization.js +7 -0
- package/lib/cjs/Forms/localization.js.map +1 -1
- package/lib/cjs/inputs_shared.d.ts +6 -2
- package/lib/cjs/inputs_shared.d.ts.map +1 -1
- package/lib/cjs/inputs_shared.js +4 -3
- package/lib/cjs/inputs_shared.js.map +1 -1
- package/lib/esm/Forms/forms.d.ts.map +1 -1
- package/lib/esm/Forms/forms.js +30 -28
- package/lib/esm/Forms/forms.js.map +1 -1
- package/lib/esm/Forms/forms.v2.d.ts.map +1 -1
- package/lib/esm/Forms/forms.v2.js +30 -28
- package/lib/esm/Forms/forms.v2.js.map +1 -1
- package/lib/esm/Forms/hooks.d.ts +25 -1
- package/lib/esm/Forms/hooks.d.ts.map +1 -1
- package/lib/esm/Forms/hooks.js +38 -1
- package/lib/esm/Forms/hooks.js.map +1 -1
- package/lib/esm/Forms/inputs.d.ts +6 -2
- package/lib/esm/Forms/inputs.d.ts.map +1 -1
- package/lib/esm/Forms/inputs.js +107 -10
- package/lib/esm/Forms/inputs.js.map +1 -1
- package/lib/esm/Forms/inputs.v2.d.ts +2 -1
- package/lib/esm/Forms/inputs.v2.d.ts.map +1 -1
- package/lib/esm/Forms/inputs.v2.js +25 -9
- package/lib/esm/Forms/inputs.v2.js.map +1 -1
- package/lib/esm/Forms/localization.d.ts.map +1 -1
- package/lib/esm/Forms/localization.js +7 -0
- package/lib/esm/Forms/localization.js.map +1 -1
- package/lib/esm/inputs_shared.d.ts +6 -2
- package/lib/esm/inputs_shared.d.ts.map +1 -1
- package/lib/esm/inputs_shared.js +4 -3
- package/lib/esm/inputs_shared.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/Forms/forms.tsx +9 -2
- package/src/Forms/forms.v2.tsx +9 -2
- package/src/Forms/hooks.tsx +57 -2
- package/src/Forms/inputs.tsx +223 -9
- package/src/Forms/inputs.v2.tsx +29 -11
- package/src/Forms/localization.ts +8 -0
- package/src/inputs_shared.tsx +6 -5
package/lib/esm/Forms/inputs.js
CHANGED
|
@@ -93,6 +93,7 @@ import { Elements, PaymentElement, useStripe, useElements, EmbeddedCheckout, Emb
|
|
|
93
93
|
import { loadStripe } from '@stripe/stripe-js';
|
|
94
94
|
import { CheckCircleOutline, Delete, Edit, ExpandMore } from "@mui/icons-material";
|
|
95
95
|
import { WYSIWYG } from "./wysiwyg";
|
|
96
|
+
import { useConditionalChoices } from "./hooks";
|
|
96
97
|
// Bridge Eligibility - shared variable for storing most recent eligibility userIds
|
|
97
98
|
var bridgeEligibilityResult = {
|
|
98
99
|
userIds: [],
|
|
@@ -831,6 +832,91 @@ export var BridgeEligibilityInput = function (_a) {
|
|
|
831
832
|
// User/admin interface (non-enduser sessions)
|
|
832
833
|
return (_jsxs(Grid, __assign({ container: true, spacing: 2, direction: "column" }, { children: [_jsxs(Grid, __assign({ item: true }, { children: [_jsxs(Typography, __assign({ variant: "body2", color: "textSecondary" }, { children: ["Eligibility Type: ", eligibilityType] })), _jsxs(Typography, __assign({ variant: "body2", color: "textSecondary" }, { children: ["Service Type IDs: ", ((_e = (_d = field.options) === null || _d === void 0 ? void 0 : _d.bridgeServiceTypeIds) === null || _e === void 0 ? void 0 : _e.join(', ')) || 'Not configured'] })), state && _jsxs(Typography, __assign({ variant: "body2", color: "textSecondary" }, { children: ["State: ", state] })), payerId && _jsxs(Typography, __assign({ variant: "body2", color: "textSecondary" }, { children: ["Payer ID: ", payerId] })), memberId && _jsxs(Typography, __assign({ variant: "body2", color: "textSecondary" }, { children: ["Member ID: ", memberId] }))] })), error && (_jsx(Grid, __assign({ item: true }, { children: _jsx(Typography, __assign({ variant: "body2", color: "error" }, { children: error })) }))), polling && (_jsx(Grid, __assign({ item: true }, { children: _jsx(Typography, __assign({ variant: "body2", color: "primary" }, { children: form_display_text_for_language(form, "Polling for results... (this may take 15-30 seconds)") })) }))), _jsxs(Grid, __assign({ item: true, container: true, spacing: 2 }, { children: [_jsx(Grid, __assign({ item: true }, { children: _jsx(LoadingButton, { variant: "outlined", onClick: checkProviderEligibility, submitText: form_display_text_for_language(form, "Check Provider Eligibility (Free)"), submittingText: form_display_text_for_language(form, "Checking..."), submitting: loading && !polling, disabled: !((_g = (_f = field.options) === null || _f === void 0 ? void 0 : _f.bridgeServiceTypeIds) === null || _g === void 0 ? void 0 : _g.length) || loading || polling }) })), _jsx(Grid, __assign({ item: true }, { children: _jsx(LoadingButton, { variant: "outlined", onClick: checkServiceEligibility, submitText: form_display_text_for_language(form, "Check Service Eligibility (Paid)"), submittingText: polling ? form_display_text_for_language(form, "Polling...") : form_display_text_for_language(form, "Initiating..."), submitting: loading || polling, disabled: !((_j = (_h = field.options) === null || _h === void 0 ? void 0 : _h.bridgeServiceTypeIds) === null || _j === void 0 ? void 0 : _j.length) || loading || polling }) }))] })), value && (_jsxs(Grid, __assign({ item: true }, { children: [_jsx(Typography, __assign({ variant: "caption", color: "textSecondary" }, { children: "Current Answer:" })), _jsx("pre", __assign({ style: { fontSize: 11, whiteSpace: 'pre-wrap', wordBreak: 'break-word' } }, { children: JSON.stringify(value, null, 2) }))] })))] })));
|
|
833
834
|
};
|
|
835
|
+
export var PharmacySearchInput = function (_a) {
|
|
836
|
+
var field = _a.field, rawValue = _a.value, onChange = _a.onChange, responses = _a.responses, enduser = _a.enduser, form = _a.form, props = __rest(_a, ["field", "value", "onChange", "responses", "enduser", "form"]);
|
|
837
|
+
var value = rawValue;
|
|
838
|
+
var session = useResolvedSession();
|
|
839
|
+
// Get initial ZIP code from responses or enduser data
|
|
840
|
+
var getInitialZipCode = function () {
|
|
841
|
+
var _a;
|
|
842
|
+
// Check Address field responses first
|
|
843
|
+
var addressResponse = responses === null || responses === void 0 ? void 0 : responses.find(function (r) { var _a, _b, _d; return ((_a = r.answer) === null || _a === void 0 ? void 0 : _a.type) === 'Address' && ((_d = (_b = r.answer) === null || _b === void 0 ? void 0 : _b.value) === null || _d === void 0 ? void 0 : _d.zipCode); });
|
|
844
|
+
if (((_a = addressResponse === null || addressResponse === void 0 ? void 0 : addressResponse.answer) === null || _a === void 0 ? void 0 : _a.type) === 'Address') {
|
|
845
|
+
var addressValue = addressResponse.answer.value;
|
|
846
|
+
if (addressValue === null || addressValue === void 0 ? void 0 : addressValue.zipCode) {
|
|
847
|
+
return addressValue.zipCode;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
// Fall back to enduser.zipCode
|
|
851
|
+
return (enduser === null || enduser === void 0 ? void 0 : enduser.zipCode) || '';
|
|
852
|
+
};
|
|
853
|
+
var _b = useState(getInitialZipCode()), zipCode = _b[0], setZipCode = _b[1];
|
|
854
|
+
var _d = useState(false), loading = _d[0], setLoading = _d[1];
|
|
855
|
+
var _e = useState(), error = _e[0], setError = _e[1];
|
|
856
|
+
var _f = useState([]), pharmacies = _f[0], setPharmacies = _f[1];
|
|
857
|
+
var _g = useState(false), hasSearched = _g[0], setHasSearched = _g[1];
|
|
858
|
+
var searchPharmacies = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
859
|
+
var data, err_6;
|
|
860
|
+
return __generator(this, function (_a) {
|
|
861
|
+
switch (_a.label) {
|
|
862
|
+
case 0:
|
|
863
|
+
if (!zipCode || zipCode.length !== 5) {
|
|
864
|
+
setError(form_display_text_for_language(form, 'Please enter a valid 5-digit ZIP code'));
|
|
865
|
+
return [2 /*return*/];
|
|
866
|
+
}
|
|
867
|
+
setLoading(true);
|
|
868
|
+
setError(undefined);
|
|
869
|
+
setHasSearched(true);
|
|
870
|
+
_a.label = 1;
|
|
871
|
+
case 1:
|
|
872
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
873
|
+
return [4 /*yield*/, session.api.integrations.proxy_read({
|
|
874
|
+
integration: 'ScriptSure',
|
|
875
|
+
type: 'pharmacy-search',
|
|
876
|
+
query: JSON.stringify({ zipCode: zipCode }),
|
|
877
|
+
})];
|
|
878
|
+
case 2:
|
|
879
|
+
data = (_a.sent()).data;
|
|
880
|
+
setPharmacies(data || []);
|
|
881
|
+
if (!(data === null || data === void 0 ? void 0 : data.length)) {
|
|
882
|
+
setError(form_display_text_for_language(form, 'No pharmacies found for this ZIP code'));
|
|
883
|
+
}
|
|
884
|
+
return [3 /*break*/, 5];
|
|
885
|
+
case 3:
|
|
886
|
+
err_6 = _a.sent();
|
|
887
|
+
setError((err_6 === null || err_6 === void 0 ? void 0 : err_6.message) || form_display_text_for_language(form, 'Failed to search pharmacies'));
|
|
888
|
+
setPharmacies([]);
|
|
889
|
+
return [3 /*break*/, 5];
|
|
890
|
+
case 4:
|
|
891
|
+
setLoading(false);
|
|
892
|
+
return [7 /*endfinally*/];
|
|
893
|
+
case 5: return [2 /*return*/];
|
|
894
|
+
}
|
|
895
|
+
});
|
|
896
|
+
}); }, [session, zipCode, form]);
|
|
897
|
+
var handleSelectPharmacy = function (pharmacy) {
|
|
898
|
+
onChange({
|
|
899
|
+
npi: pharmacy.npi,
|
|
900
|
+
ncpdpId: pharmacy.ncpdpId,
|
|
901
|
+
businessName: pharmacy.businessName,
|
|
902
|
+
primaryTelephone: pharmacy.primaryTelephone || '',
|
|
903
|
+
addressLine1: pharmacy.addressLine1,
|
|
904
|
+
city: pharmacy.city,
|
|
905
|
+
stateProvince: pharmacy.stateProvince,
|
|
906
|
+
postalCode: pharmacy.postalCode,
|
|
907
|
+
}, field.id);
|
|
908
|
+
};
|
|
909
|
+
var formatPharmacyAddress = function (p) {
|
|
910
|
+
var parts = [p.addressLine1, p.city, p.stateProvince, p.postalCode].filter(Boolean);
|
|
911
|
+
return parts.join(', ');
|
|
912
|
+
};
|
|
913
|
+
return (_jsxs(Grid, __assign({ container: true, direction: "column", spacing: 2 }, { children: [_jsx(Grid, __assign({ item: true }, { children: _jsxs(Grid, __assign({ container: true, spacing: 2, alignItems: "flex-end" }, { children: [_jsx(Grid, __assign({ item: true, xs: 8, sm: 6 }, { children: _jsx(TextField, { fullWidth: true, size: "small", label: form_display_text_for_language(form, "ZIP Code"), value: zipCode, onChange: function (e) { return setZipCode(e.target.value.replace(/\D/g, '').slice(0, 5)); }, InputProps: defaultInputProps, placeholder: "12345", required: !field.isOptional }) })), _jsx(Grid, __assign({ item: true, xs: 4, sm: 6 }, { children: _jsx(LoadingButton, { variant: "contained", onClick: searchPharmacies, submitText: form_display_text_for_language(form, "Search"), submittingText: form_display_text_for_language(form, "Searching..."), submitting: loading, disabled: zipCode.length !== 5 || loading, style: { width: '100%', marginTop: 0 } }) }))] })) })), error && (_jsx(Grid, __assign({ item: true }, { children: _jsx(Typography, __assign({ color: "error", sx: { fontSize: 14 } }, { children: error })) }))), value && (_jsx(Grid, __assign({ item: true }, { children: _jsx(Paper, __assign({ elevation: 2, sx: { p: 2, backgroundColor: '#e8f5e9' } }, { children: _jsxs(Grid, __assign({ container: true, alignItems: "center", justifyContent: "space-between" }, { children: [_jsxs(Grid, __assign({ item: true, xs: true }, { children: [_jsxs(Typography, __assign({ variant: "subtitle1", fontWeight: "bold" }, { children: [_jsx(CheckCircleOutline, { sx: { color: 'success.main', mr: 1, verticalAlign: 'middle' } }), value.businessName] })), _jsx(Typography, __assign({ variant: "body2", color: "text.secondary" }, { children: formatPharmacyAddress(value) })), value.primaryTelephone && (_jsx(Typography, __assign({ variant: "body2", color: "text.secondary" }, { children: value.primaryTelephone })))] })), _jsx(Grid, __assign({ item: true }, { children: _jsx(MuiIconButton, __assign({ onClick: function () { return onChange(undefined, field.id); }, size: "small" }, { children: _jsx(CancelIcon, {}) })) }))] })) })) }))), !value && hasSearched && pharmacies.length > 0 && (_jsxs(Grid, __assign({ item: true }, { children: [_jsxs(Typography, __assign({ variant: "subtitle2", sx: { mb: 1 } }, { children: [pharmacies.length, " ", form_display_text_for_language(form, pharmacies.length === 1 ? 'pharmacy found' : 'pharmacies found')] })), _jsx(Box, __assign({ sx: { maxHeight: 300, overflow: 'auto' } }, { children: pharmacies.map(function (pharmacy, index) { return (_jsxs(Paper, __assign({ elevation: 1, sx: {
|
|
914
|
+
p: 1.5,
|
|
915
|
+
mb: 1,
|
|
916
|
+
cursor: 'pointer',
|
|
917
|
+
'&:hover': { backgroundColor: '#f5f5f5' },
|
|
918
|
+
}, onClick: function () { return handleSelectPharmacy(pharmacy); } }, { children: [_jsx(Typography, __assign({ variant: "subtitle2", fontWeight: "medium" }, { children: pharmacy.businessName })), _jsx(Typography, __assign({ variant: "body2", color: "text.secondary" }, { children: formatPharmacyAddress(pharmacy) })), pharmacy.primaryTelephone && (_jsx(Typography, __assign({ variant: "caption", color: "text.secondary" }, { children: pharmacy.primaryTelephone })))] }), "".concat(pharmacy.ncpdpId, "-").concat(index))); }) }))] }))), loading && (_jsx(Grid, __assign({ item: true }, { children: _jsx(LinearProgress, {}) })))] })));
|
|
919
|
+
};
|
|
834
920
|
var HourSelector = function (props) { return (_jsx(StringSelector, __assign({}, props, { options: Array(12).fill('').map(function (_, i) { return (i + 1) <= 9 ? "0".concat(i + 1) : (i + 1).toString(); }) }))); };
|
|
835
921
|
var MinuteSelector = function (props) { return (_jsx(StringSelector, __assign({}, props, { options: Array(60).fill('').map(function (_, i) { return i <= 9 ? "0".concat(i) : i.toString(); }) }))); };
|
|
836
922
|
var AmPmSelector = function (props) { return (_jsx(StringSelector, __assign({}, props, { options: ['AM', 'PM'] }))); };
|
|
@@ -1128,13 +1214,24 @@ var multipleChoiceItemSx = {
|
|
|
1128
1214
|
};
|
|
1129
1215
|
export var MultipleChoiceInput = function (_a) {
|
|
1130
1216
|
var _b;
|
|
1131
|
-
var field = _a.field, form = _a.form, _value = _a.value, onChange = _a.onChange;
|
|
1217
|
+
var field = _a.field, form = _a.form, _value = _a.value, onChange = _a.onChange, responses = _a.responses, enduser = _a.enduser;
|
|
1132
1218
|
var value = typeof _value === 'string' ? [_value] : _value; // if loading existingResponses, allows them to be a string
|
|
1133
1219
|
var _d = field.options, choices = _d.choices, radio = _d.radio, other = _d.other, optionDetails = _d.optionDetails;
|
|
1134
1220
|
var _e = useState({}), expandedDescriptions = _e[0], setExpandedDescriptions = _e[1];
|
|
1135
1221
|
// current other string
|
|
1136
1222
|
var enteringOtherStringRef = React.useRef(''); // if typing otherString as prefix of a checkbox value, don't auto-select
|
|
1137
1223
|
var otherString = (_b = value === null || value === void 0 ? void 0 : value.find(function (v) { var _a; return v === enteringOtherStringRef.current || !((_a = (choices !== null && choices !== void 0 ? choices : [])) === null || _a === void 0 ? void 0 : _a.find(function (c) { return c === v; })); })) !== null && _b !== void 0 ? _b : '';
|
|
1224
|
+
// Conditional visibility for choices
|
|
1225
|
+
var _f = useConditionalChoices({
|
|
1226
|
+
choices: choices,
|
|
1227
|
+
optionDetails: optionDetails,
|
|
1228
|
+
responses: responses,
|
|
1229
|
+
enduser: enduser,
|
|
1230
|
+
form: form,
|
|
1231
|
+
onChange: onChange,
|
|
1232
|
+
fieldId: field.id,
|
|
1233
|
+
otherString: otherString,
|
|
1234
|
+
}), visibleChoices = _f.visibleChoices, handleChange = _f.handleChange;
|
|
1138
1235
|
var getDescriptionForChoice = useCallback(function (choice) {
|
|
1139
1236
|
var _a;
|
|
1140
1237
|
return (_a = optionDetails === null || optionDetails === void 0 ? void 0 : optionDetails.find(function (detail) { return detail.option === choice; })) === null || _a === void 0 ? void 0 : _a.description;
|
|
@@ -1146,11 +1243,11 @@ export var MultipleChoiceInput = function (_a) {
|
|
|
1146
1243
|
});
|
|
1147
1244
|
}, []);
|
|
1148
1245
|
return (_jsxs(Grid, __assign({ container: true, alignItems: "center" }, { children: [radio
|
|
1149
|
-
? (_jsxs(FormControl, __assign({ fullWidth: true }, { children: [_jsx(FormLabel, __assign({ id: "radio-group-".concat(field.id, "-label") }, { children: form_display_text_for_language(form, "Select One") })), _jsx(RadioGroup, __assign({ "aria-labelledby": "radio-group-".concat(field.id, "-label"), defaultValue: "female", name: "radio-group-".concat(field.id) }, { children:
|
|
1246
|
+
? (_jsxs(FormControl, __assign({ fullWidth: true }, { children: [_jsx(FormLabel, __assign({ id: "radio-group-".concat(field.id, "-label") }, { children: form_display_text_for_language(form, "Select One") })), _jsx(RadioGroup, __assign({ "aria-labelledby": "radio-group-".concat(field.id, "-label"), defaultValue: "female", name: "radio-group-".concat(field.id) }, { children: visibleChoices.map(function (c, i) {
|
|
1150
1247
|
var description = getDescriptionForChoice(c);
|
|
1151
1248
|
var hasDescription = !!description;
|
|
1152
1249
|
var isExpanded = expandedDescriptions[i];
|
|
1153
|
-
return (_jsxs(Box, __assign({ sx: { width: '100%' } }, { children: [_jsx(Box, __assign({ sx: { display: 'flex', alignItems: 'center', width: '100%' } }, { children: _jsx(FormControlLabel, { sx: __assign(__assign({}, multipleChoiceItemSx), { flex: 1, marginLeft: '0px' }), checked: !!(value === null || value === void 0 ? void 0 : value.includes(c)) && c !== otherString, control: _jsx(Radio, { onClick: function () { return
|
|
1250
|
+
return (_jsxs(Box, __assign({ sx: { width: '100%' } }, { children: [_jsx(Box, __assign({ sx: { display: 'flex', alignItems: 'center', width: '100%' } }, { children: _jsx(FormControlLabel, { sx: __assign(__assign({}, multipleChoiceItemSx), { flex: 1, marginLeft: '0px' }), checked: !!(value === null || value === void 0 ? void 0 : value.includes(c)) && c !== otherString, control: _jsx(Radio, { onClick: function () { return handleChange((value === null || value === void 0 ? void 0 : value.includes(c)) ? [] : [c], field.id); } }), label: _jsxs(Box, __assign({ sx: { display: 'flex', alignItems: 'center', width: '100%' } }, { children: [_jsx(Typography, __assign({ component: "span", sx: { flex: 1 } }, { children: c })), hasDescription && (_jsx(MuiIconButton, __assign({ size: "small", onClick: function (e) {
|
|
1154
1251
|
e.stopPropagation();
|
|
1155
1252
|
toggleDescription(i);
|
|
1156
1253
|
}, sx: {
|
|
@@ -1158,7 +1255,7 @@ export var MultipleChoiceInput = function (_a) {
|
|
|
1158
1255
|
transition: 'transform 0.2s',
|
|
1159
1256
|
ml: 1
|
|
1160
1257
|
} }, { children: _jsx(ExpandMore, { fontSize: "small" }) })))] })) }) })), hasDescription && (_jsx(Collapse, __assign({ in: isExpanded }, { children: _jsx(Box, __assign({ sx: { pl: '42px', pr: 2, pb: 1 } }, { children: _jsx(Typography, __assign({ variant: "body2", color: "text.secondary" }, { children: description })) })) })))] }), i));
|
|
1161
|
-
}) }))] }))) : (
|
|
1258
|
+
}) }))] }))) : (visibleChoices.map(function (c, i) {
|
|
1162
1259
|
var description = getDescriptionForChoice(c);
|
|
1163
1260
|
var hasDescription = !!description;
|
|
1164
1261
|
var isExpanded = expandedDescriptions[i];
|
|
@@ -1168,7 +1265,7 @@ export var MultipleChoiceInput = function (_a) {
|
|
|
1168
1265
|
if (e.target.closest('.expand-button')) {
|
|
1169
1266
|
return;
|
|
1170
1267
|
}
|
|
1171
|
-
|
|
1268
|
+
handleChange(((value === null || value === void 0 ? void 0 : value.includes(c))
|
|
1172
1269
|
? ((radio || ((_b = (_a = field.options) === null || _a === void 0 ? void 0 : _a.radioChoices) === null || _b === void 0 ? void 0 : _b.includes(c)))
|
|
1173
1270
|
? []
|
|
1174
1271
|
: value.filter(function (v) { return v !== c; }))
|
|
@@ -1189,13 +1286,13 @@ export var MultipleChoiceInput = function (_a) {
|
|
|
1189
1286
|
// onClick={() => !otherChecked && handleOtherChecked()} // allow click to enable when disabled
|
|
1190
1287
|
onChange: function (e) {
|
|
1191
1288
|
enteringOtherStringRef.current = e.target.value;
|
|
1192
|
-
|
|
1289
|
+
handleChange((radio
|
|
1193
1290
|
? (e.target.value.trim()
|
|
1194
1291
|
? [e.target.value]
|
|
1195
1292
|
: [])
|
|
1196
1293
|
: (e.target.value.trim()
|
|
1197
1294
|
// remove existing other string (if exists) and append new one
|
|
1198
|
-
? __spreadArray(__spreadArray([], (value !== null && value !== void 0 ? value : []).filter(function (v) { return v !== otherString; }), true), [e.target.value], false) : value
|
|
1295
|
+
? __spreadArray(__spreadArray([], (value !== null && value !== void 0 ? value : []).filter(function (v) { return v !== otherString; }), true), [e.target.value], false) : (value !== null && value !== void 0 ? value : []).filter(function (v) { return v !== otherString; }))), field.id);
|
|
1199
1296
|
} }) }))] })));
|
|
1200
1297
|
};
|
|
1201
1298
|
// Helper to emit GTM purchase event for Stripe payments (single source of truth)
|
|
@@ -2232,7 +2329,7 @@ export var AppointmentBookingInput = function (_a) {
|
|
|
2232
2329
|
var _s = useState(false), confirming = _s[0], setConfirming = _s[1];
|
|
2233
2330
|
var bookingPageId = (_b = field === null || field === void 0 ? void 0 : field.options) === null || _b === void 0 ? void 0 : _b.bookingPageId;
|
|
2234
2331
|
var downloadICS = useCallback(function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2235
|
-
var _a,
|
|
2332
|
+
var _a, err_7;
|
|
2236
2333
|
return __generator(this, function (_b) {
|
|
2237
2334
|
switch (_b.label) {
|
|
2238
2335
|
case 0:
|
|
@@ -2244,8 +2341,8 @@ export var AppointmentBookingInput = function (_a) {
|
|
|
2244
2341
|
{ name: "event.ics", dataIsURL: true, type: 'text/calendar' }]);
|
|
2245
2342
|
return [3 /*break*/, 3];
|
|
2246
2343
|
case 2:
|
|
2247
|
-
|
|
2248
|
-
console.error(
|
|
2344
|
+
err_7 = _b.sent();
|
|
2345
|
+
console.error(err_7);
|
|
2249
2346
|
return [3 /*break*/, 3];
|
|
2250
2347
|
case 3: return [2 /*return*/];
|
|
2251
2348
|
}
|