@tellescope/react-components 1.204.2 → 1.206.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/lib/cjs/Forms/form_responses.d.ts +6 -2
- package/lib/cjs/Forms/form_responses.d.ts.map +1 -1
- package/lib/cjs/Forms/form_responses.js +8 -7
- package/lib/cjs/Forms/form_responses.js.map +1 -1
- package/lib/cjs/Forms/forms.d.ts +4 -1
- package/lib/cjs/Forms/forms.d.ts.map +1 -1
- package/lib/cjs/Forms/forms.js +6 -6
- package/lib/cjs/Forms/forms.js.map +1 -1
- package/lib/cjs/Forms/hooks.d.ts.map +1 -1
- package/lib/cjs/Forms/hooks.js +10 -2
- package/lib/cjs/Forms/hooks.js.map +1 -1
- package/lib/cjs/Forms/inputs.d.ts +8 -3
- package/lib/cjs/Forms/inputs.d.ts.map +1 -1
- package/lib/cjs/Forms/inputs.js +53 -35
- package/lib/cjs/Forms/inputs.js.map +1 -1
- package/lib/cjs/displays.d.ts +2 -0
- package/lib/cjs/displays.d.ts.map +1 -1
- package/lib/cjs/displays.js.map +1 -1
- package/lib/cjs/layout.d.ts +2 -1
- package/lib/cjs/layout.d.ts.map +1 -1
- package/lib/cjs/layout.js +2 -2
- package/lib/cjs/layout.js.map +1 -1
- package/lib/esm/Forms/form_responses.d.ts +6 -2
- package/lib/esm/Forms/form_responses.d.ts.map +1 -1
- package/lib/esm/Forms/form_responses.js +8 -7
- package/lib/esm/Forms/form_responses.js.map +1 -1
- package/lib/esm/Forms/forms.d.ts +4 -1
- package/lib/esm/Forms/forms.d.ts.map +1 -1
- package/lib/esm/Forms/forms.js +6 -6
- package/lib/esm/Forms/forms.js.map +1 -1
- package/lib/esm/Forms/hooks.d.ts.map +1 -1
- package/lib/esm/Forms/hooks.js +10 -2
- package/lib/esm/Forms/hooks.js.map +1 -1
- package/lib/esm/Forms/inputs.d.ts +8 -3
- package/lib/esm/Forms/inputs.d.ts.map +1 -1
- package/lib/esm/Forms/inputs.js +54 -36
- package/lib/esm/Forms/inputs.js.map +1 -1
- package/lib/esm/displays.d.ts +2 -0
- package/lib/esm/displays.d.ts.map +1 -1
- package/lib/esm/displays.js.map +1 -1
- package/lib/esm/layout.d.ts +2 -1
- package/lib/esm/layout.d.ts.map +1 -1
- package/lib/esm/layout.js +2 -2
- package/lib/esm/layout.js.map +1 -1
- package/lib/esm/state.d.ts +8 -8
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/Forms/form_responses.tsx +9 -8
- package/src/Forms/forms.tsx +9 -1
- package/src/Forms/hooks.tsx +9 -2
- package/src/Forms/inputs.tsx +41 -7
- package/src/displays.tsx +2 -0
- package/src/layout.tsx +3 -2
package/lib/esm/Forms/inputs.js
CHANGED
|
@@ -75,7 +75,7 @@ import axios from "axios";
|
|
|
75
75
|
import { Autocomplete, Box, Button, Checkbox, Chip, Divider, FormControl, FormControlLabel, FormLabel, Grid, InputLabel, MenuItem, Radio, RadioGroup, Select, TextField, Typography } from "@mui/material";
|
|
76
76
|
import { useDropzone } from "react-dropzone";
|
|
77
77
|
import { CANVAS_TITLE, EMOTII_TITLE, INSURANCE_RELATIONSHIPS, INSURANCE_RELATIONSHIPS_CANVAS, PRIMARY_HEX, RELATIONSHIP_TYPES, TELLESCOPE_GENDERS } from "@tellescope/constants";
|
|
78
|
-
import { MM_DD_YYYY_to_YYYY_MM_DD, capture_is_supported, downloadFile, first_letter_capitalized, form_response_value_to_string, getLocalTimezone, getPublicFileURL, mm_dd_yyyy, replace_enduser_template_values, truncate_string, user_display_name } from "@tellescope/utilities";
|
|
78
|
+
import { MM_DD_YYYY_to_YYYY_MM_DD, capture_is_supported, downloadFile, emit_gtm_event, first_letter_capitalized, form_response_value_to_string, getLocalTimezone, getPublicFileURL, mm_dd_yyyy, replace_enduser_template_values, truncate_string, user_display_name } from "@tellescope/utilities";
|
|
79
79
|
import { VALID_STATES, emailValidator, phoneValidator } from "@tellescope/validation";
|
|
80
80
|
import Slider from '@mui/material/Slider';
|
|
81
81
|
import LinearProgress from '@mui/material/LinearProgress';
|
|
@@ -318,7 +318,7 @@ export var NumberInput = function (_a) {
|
|
|
318
318
|
};
|
|
319
319
|
export var InsuranceInput = function (_a) {
|
|
320
320
|
var _b, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
321
|
-
var field = _a.field, value = _a.value, onChange = _a.onChange, form = _a.form, responses = _a.responses, enduser = _a.enduser, props = __rest(_a, ["field", "value", "onChange", "form", "responses", "enduser"]);
|
|
321
|
+
var field = _a.field, onDatabaseSelect = _a.onDatabaseSelect, value = _a.value, onChange = _a.onChange, form = _a.form, responses = _a.responses, enduser = _a.enduser, props = __rest(_a, ["field", "onDatabaseSelect", "value", "onChange", "form", "responses", "enduser"]);
|
|
322
322
|
var session = useResolvedSession();
|
|
323
323
|
var _t = useState([]), payers = _t[0], setPayers = _t[1];
|
|
324
324
|
var _u = useState(''), query = _u[0], setQuery = _u[1];
|
|
@@ -357,6 +357,7 @@ export var InsuranceInput = function (_a) {
|
|
|
357
357
|
name: ((_e = (_d = c.values.find(function (v) { var _a, _b; return ((_b = (_a = v.label) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'name'; })) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.toString()) || '',
|
|
358
358
|
state: ((_g = (_f = c.values.find(function (v) { var _a, _b; return ((_b = (_a = v.label) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'state'; })) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.toString()) || '',
|
|
359
359
|
type: ((_j = (_h = c.values.find(function (v) { var _a, _b; return ((_b = (_a = v.label) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'type'; })) === null || _h === void 0 ? void 0 : _h.value) === null || _j === void 0 ? void 0 : _j.toString()) || '',
|
|
360
|
+
databaseRecord: c,
|
|
360
361
|
});
|
|
361
362
|
})
|
|
362
363
|
.filter(function (c) { return !c.state || !state || (c.state === state); }));
|
|
@@ -401,11 +402,15 @@ export var InsuranceInput = function (_a) {
|
|
|
401
402
|
setQuery(v);
|
|
402
403
|
} }
|
|
403
404
|
: function (e, v) {
|
|
404
|
-
var _a, _b;
|
|
405
|
+
var _a, _b, _d;
|
|
405
406
|
if (v) {
|
|
406
407
|
setQuery(v);
|
|
407
408
|
}
|
|
408
|
-
|
|
409
|
+
var databaseRecord = (_a = payers.find(function (p) { return p.name === v; })) === null || _a === void 0 ? void 0 : _a.databaseRecord;
|
|
410
|
+
if (databaseRecord) {
|
|
411
|
+
onDatabaseSelect === null || onDatabaseSelect === void 0 ? void 0 : onDatabaseSelect([databaseRecord]);
|
|
412
|
+
}
|
|
413
|
+
onChange(__assign(__assign({}, value), { payerName: v || '', payerId: ((_b = payers.find(function (p) { return p.name === v; })) === null || _b === void 0 ? void 0 : _b.id) || '', payerType: ((_d = payers.find(function (p) { return p.name === v; })) === null || _d === void 0 ? void 0 : _d.type) || '' }), field.id);
|
|
409
414
|
}, renderInput: function (params) {
|
|
410
415
|
var _a;
|
|
411
416
|
return (_jsx(TextField, __assign({}, params, { InputProps: __assign(__assign({}, params.InputProps), { sx: defaultInputProps.sx }), required: !field.isOptional, size: "small", label: "Insurer", placeholder: ((_a = field.options) === null || _a === void 0 ? void 0 : _a.dataSource) === CANVAS_TITLE ? "Search insurer..." : "Insurer" })));
|
|
@@ -937,7 +942,17 @@ var useDatabaseChoices = function (_a) {
|
|
|
937
942
|
preventRefetch[databaseId + field.id + lastId] = false;
|
|
938
943
|
});
|
|
939
944
|
}, [session, field, databaseId, renderCount]);
|
|
945
|
+
var addChoice = useCallback(function (record) {
|
|
946
|
+
if (!choicesForDatabase[databaseId]) {
|
|
947
|
+
choicesForDatabase[databaseId] = {
|
|
948
|
+
done: false,
|
|
949
|
+
records: [],
|
|
950
|
+
};
|
|
951
|
+
}
|
|
952
|
+
choicesForDatabase[databaseId].records.push(record);
|
|
953
|
+
}, [choicesForDatabase, databaseId]);
|
|
940
954
|
return {
|
|
955
|
+
addChoice: addChoice,
|
|
941
956
|
doneLoading: (_d = (_b = choicesForDatabase[databaseId]) === null || _b === void 0 ? void 0 : _b.done) !== null && _d !== void 0 ? _d : false,
|
|
942
957
|
choices: __spreadArray(__spreadArray([], (_f = (_e = choicesForDatabase[databaseId]) === null || _e === void 0 ? void 0 : _e.records) !== null && _f !== void 0 ? _f : [], true), (otherAnswers || []).map(function (v) {
|
|
943
958
|
var _a;
|
|
@@ -978,14 +993,14 @@ var get_other_answers = function (_value, typing) {
|
|
|
978
993
|
return [];
|
|
979
994
|
};
|
|
980
995
|
export var DatabaseSelectInput = function (_a) {
|
|
981
|
-
var _b, _d, _e, _f;
|
|
982
|
-
var field = _a.field, _value = _a.value, onChange = _a.onChange, onDatabaseSelect = _a.onDatabaseSelect, responses = _a.responses, size = _a.size, disabled = _a.disabled;
|
|
983
|
-
var
|
|
984
|
-
var
|
|
996
|
+
var _b, _d, _e, _f, _g, _h;
|
|
997
|
+
var AddToDatabase = _a.AddToDatabase, field = _a.field, _value = _a.value, onChange = _a.onChange, onDatabaseSelect = _a.onDatabaseSelect, responses = _a.responses, size = _a.size, disabled = _a.disabled;
|
|
998
|
+
var _j = useState(''), typing = _j[0], setTyping = _j[1];
|
|
999
|
+
var _k = useDatabaseChoices({
|
|
985
1000
|
databaseId: (_b = field.options) === null || _b === void 0 ? void 0 : _b.databaseId,
|
|
986
1001
|
field: field,
|
|
987
1002
|
otherAnswers: get_other_answers(_value, ((_d = field === null || field === void 0 ? void 0 : field.options) === null || _d === void 0 ? void 0 : _d.other) ? typing : undefined),
|
|
988
|
-
}), choices =
|
|
1003
|
+
}), addChoice = _k.addChoice, choices = _k.choices, doneLoading = _k.doneLoading;
|
|
989
1004
|
var value = React.useMemo(function () {
|
|
990
1005
|
var _a, _b;
|
|
991
1006
|
try {
|
|
@@ -1058,32 +1073,34 @@ export var DatabaseSelectInput = function (_a) {
|
|
|
1058
1073
|
}, [field, filteredChoicesWithPotentialDuplicates]);
|
|
1059
1074
|
if (!doneLoading)
|
|
1060
1075
|
return _jsx(LinearProgress, {});
|
|
1061
|
-
return (_jsx(Autocomplete, { id: field.id, freeSolo: false, size: size, componentsProps: { popper: { sx: { wordBreak: "break-word" } } }, options: filteredChoices, multiple: true, getOptionLabel: function (o) { return (Array.isArray(o) // edge case
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1076
|
+
return (_jsxs(_Fragment, { children: [_jsx(Autocomplete, { id: field.id, freeSolo: false, size: size, componentsProps: { popper: { sx: { wordBreak: "break-word" } } }, options: filteredChoices, multiple: true, getOptionLabel: function (o) { return (Array.isArray(o) // edge case
|
|
1077
|
+
? ''
|
|
1078
|
+
: label_for_database_record(field, o)); }, value: value, disabled: disabled, onChange: function (_, v) {
|
|
1079
|
+
var _a, _b, _d, _e, _f;
|
|
1080
|
+
if (v.length && onDatabaseSelect) {
|
|
1081
|
+
onDatabaseSelect(((_a = field.options) === null || _a === void 0 ? void 0 : _a.radio)
|
|
1082
|
+
? [v[v.length - 1]] // if radio, only last selected
|
|
1083
|
+
: v);
|
|
1084
|
+
}
|
|
1085
|
+
return onChange((!((_b = field.options) === null || _b === void 0 ? void 0 : _b.radio)
|
|
1086
|
+
? v.map(function (_v) {
|
|
1087
|
+
var _a;
|
|
1088
|
+
return ({
|
|
1089
|
+
databaseId: (_a = field.options) === null || _a === void 0 ? void 0 : _a.databaseId,
|
|
1090
|
+
recordId: _v.id,
|
|
1091
|
+
text: label_for_database_record(field, _v),
|
|
1092
|
+
});
|
|
1093
|
+
})
|
|
1094
|
+
: [{
|
|
1095
|
+
databaseId: (_d = field.options) === null || _d === void 0 ? void 0 : _d.databaseId,
|
|
1096
|
+
recordId: (_f = (_e = v[v.length - 1]) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : '',
|
|
1097
|
+
text: label_for_database_record(field, v[v.length - 1]),
|
|
1098
|
+
}]), field.id);
|
|
1099
|
+
}, inputValue: typing, onInputChange: function (e, v) { return e && setTyping(v); }, renderInput: function (params) { return _jsx(TextField, __assign({}, params, { InputProps: __assign(__assign({}, params.InputProps), { sx: defaultInputProps.sx }) })); },
|
|
1100
|
+
// use custom Chip to ensure very long entries break properly (whitespace: normal)
|
|
1101
|
+
renderTags: function (value, getTagProps) {
|
|
1102
|
+
return value.map(function (value, index) { return (_jsx(Chip, __assign({ label: _jsx(Typography, __assign({ style: { whiteSpace: 'normal' } }, { children: Array.isArray(value) ? '' : label_for_database_record(field, value) })) }, getTagProps({ index: index }), { sx: { height: "100%", py: 0.5 } }))); });
|
|
1103
|
+
} }), AddToDatabase && ((_g = field === null || field === void 0 ? void 0 : field.options) === null || _g === void 0 ? void 0 : _g.allowAddToDatabase) && (_jsx(AddToDatabase, { databaseId: (_h = field.options) === null || _h === void 0 ? void 0 : _h.databaseId, onAdd: addChoice }))] }));
|
|
1087
1104
|
};
|
|
1088
1105
|
var displayTermsCache = undefined;
|
|
1089
1106
|
var DRUGS_FOR_DISPLAY_TERM = {};
|
|
@@ -1549,6 +1566,7 @@ export var AppointmentBookingInput = function (_a) {
|
|
|
1549
1566
|
&& typeof ((_b = m === null || m === void 0 ? void 0 : m.data) === null || _b === void 0 ? void 0 : _b.bookedEventId) === 'string'
|
|
1550
1567
|
&& (!((_d = m === null || m === void 0 ? void 0 : m.data) === null || _d === void 0 ? void 0 : _d.entropy) || ((_e = m === null || m === void 0 ? void 0 : m.data) === null || _e === void 0 ? void 0 : _e.entropy) === (loaded === null || loaded === void 0 ? void 0 : loaded.entropy))) {
|
|
1551
1568
|
onChange(m.data.bookedEventId, field.id);
|
|
1569
|
+
emit_gtm_event({ event: 'form_progress', fieldId: field.id, formId: field.formId, title: field.title, status: "Appointment Booked" });
|
|
1552
1570
|
}
|
|
1553
1571
|
if (((_f = m === null || m === void 0 ? void 0 : m.data) === null || _f === void 0 ? void 0 : _f.type) === 'CalendarPicker') {
|
|
1554
1572
|
setHeight(750);
|
|
@@ -1565,7 +1583,7 @@ export var AppointmentBookingInput = function (_a) {
|
|
|
1565
1583
|
};
|
|
1566
1584
|
window.addEventListener('message', handleMessage);
|
|
1567
1585
|
return function () { window.removeEventListener('message', handleMessage); };
|
|
1568
|
-
}, [field === null || field === void 0 ? void 0 : field.id, onChange, acknowledgedWarning, value, loaded === null || loaded === void 0 ? void 0 : loaded.entropy]);
|
|
1586
|
+
}, [field === null || field === void 0 ? void 0 : field.id, field === null || field === void 0 ? void 0 : field.formId, field === null || field === void 0 ? void 0 : field.title, onChange, acknowledgedWarning, value, loaded === null || loaded === void 0 ? void 0 : loaded.entropy]);
|
|
1569
1587
|
if (value) {
|
|
1570
1588
|
return (_jsxs(Grid, __assign({ container: true, direction: "column", spacing: 1 }, { children: [_jsx(Grid, __assign({ item: true }, { children: _jsxs(Grid, __assign({ container: true, alignItems: "center", wrap: "nowrap" }, { children: [_jsx(CheckCircleOutline, { color: "success" }), _jsx(Typography, __assign({ sx: { ml: 1, fontSize: 20 } }, { children: "Your appointment has been booked" }))] })) })), _jsx(Grid, __assign({ item: true, sx: { maxWidth: 250 } }, { children: _jsx(LoadingButton, { variant: "contained", style: { maxWidth: 250 }, submitText: "Add to Calendar", submittingText: "Downloading...", onClick: function () { return downloadICS({ id: value }); } }) }))] })));
|
|
1571
1589
|
}
|