@tellescope/react-components 1.168.0 → 1.169.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.js +1 -1
- package/lib/cjs/Forms/form_responses.js.map +1 -1
- package/lib/cjs/Forms/forms.d.ts +9 -2
- package/lib/cjs/Forms/forms.d.ts.map +1 -1
- package/lib/cjs/Forms/forms.js +50 -42
- package/lib/cjs/Forms/forms.js.map +1 -1
- package/lib/cjs/Forms/hooks.d.ts +7 -0
- package/lib/cjs/Forms/hooks.d.ts.map +1 -1
- package/lib/cjs/Forms/hooks.js +96 -68
- package/lib/cjs/Forms/hooks.js.map +1 -1
- package/lib/cjs/Forms/inputs.d.ts +3 -2
- package/lib/cjs/Forms/inputs.d.ts.map +1 -1
- package/lib/cjs/Forms/inputs.js +70 -24
- package/lib/cjs/Forms/inputs.js.map +1 -1
- package/lib/cjs/Forms/types.d.ts +7 -0
- package/lib/cjs/Forms/types.d.ts.map +1 -1
- package/lib/cjs/Forms/wysiwyg.d.ts +12 -0
- package/lib/cjs/Forms/wysiwyg.d.ts.map +1 -0
- package/lib/cjs/Forms/wysiwyg.js +225 -0
- package/lib/cjs/Forms/wysiwyg.js.map +1 -0
- package/lib/cjs/inputs.d.ts +1 -1
- package/lib/cjs/inputs.d.ts.map +1 -1
- package/lib/cjs/state.d.ts.map +1 -1
- package/lib/cjs/state.js +4 -0
- package/lib/cjs/state.js.map +1 -1
- package/lib/cjs/table.js +1 -1
- package/lib/cjs/table.js.map +1 -1
- package/lib/esm/Forms/form_responses.js +1 -1
- package/lib/esm/Forms/form_responses.js.map +1 -1
- package/lib/esm/Forms/forms.d.ts +10 -3
- package/lib/esm/Forms/forms.d.ts.map +1 -1
- package/lib/esm/Forms/forms.js +51 -43
- package/lib/esm/Forms/forms.js.map +1 -1
- package/lib/esm/Forms/hooks.d.ts +7 -0
- package/lib/esm/Forms/hooks.d.ts.map +1 -1
- package/lib/esm/Forms/hooks.js +96 -68
- package/lib/esm/Forms/hooks.js.map +1 -1
- package/lib/esm/Forms/inputs.d.ts +4 -3
- package/lib/esm/Forms/inputs.d.ts.map +1 -1
- package/lib/esm/Forms/inputs.js +68 -23
- package/lib/esm/Forms/inputs.js.map +1 -1
- package/lib/esm/Forms/inputs.native.d.ts +0 -1
- package/lib/esm/Forms/inputs.native.d.ts.map +1 -1
- package/lib/esm/Forms/types.d.ts +7 -0
- package/lib/esm/Forms/types.d.ts.map +1 -1
- package/lib/esm/Forms/wysiwyg.d.ts +12 -0
- package/lib/esm/Forms/wysiwyg.d.ts.map +1 -0
- package/lib/esm/Forms/wysiwyg.js +218 -0
- package/lib/esm/Forms/wysiwyg.js.map +1 -0
- package/lib/esm/controls.d.ts +2 -2
- package/lib/esm/inputs.d.ts +1 -1
- package/lib/esm/inputs.d.ts.map +1 -1
- package/lib/esm/inputs.native.d.ts +0 -1
- package/lib/esm/inputs.native.d.ts.map +1 -1
- package/lib/esm/state.d.ts.map +1 -1
- package/lib/esm/state.js +4 -0
- package/lib/esm/state.js.map +1 -1
- package/lib/esm/table.js +1 -1
- package/lib/esm/table.js.map +1 -1
- package/lib/esm/theme.native.d.ts +0 -1
- package/lib/esm/theme.native.d.ts.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -9
- package/src/Forms/form_responses.tsx +1 -1
- package/src/Forms/forms.tsx +20 -2
- package/src/Forms/hooks.tsx +43 -26
- package/src/Forms/inputs.tsx +32 -7
- package/src/Forms/types.ts +4 -0
- package/src/Forms/wysiwyg.tsx +234 -0
- package/src/inputs.tsx +1 -1
- package/src/state.tsx +1 -0
- package/src/table.tsx +1 -1
package/lib/cjs/Forms/hooks.js
CHANGED
|
@@ -490,8 +490,9 @@ var useTellescopeForm = function (_a) {
|
|
|
490
490
|
var _k = (0, react_1.useState)(undefined), submittingStatus = _k[0], setSubmittingStatus = _k[1];
|
|
491
491
|
var _l = (0, react_1.useState)(''), submitErrorMessage = _l[0], setSubmitErrorMessage = _l[1];
|
|
492
492
|
var _m = (0, react_1.useState)(0), currentPageIndex = _m[0], setCurrentPageIndex = _m[1];
|
|
493
|
+
var _o = (0, react_1.useState)([]), uploadingFiles = _o[0], setUploadingFiles = _o[1];
|
|
493
494
|
var prevFieldStackRef = (0, react_1.useRef)([]);
|
|
494
|
-
var
|
|
495
|
+
var _p = (0, react_1.useState)({}), repeats = _p[0], setRepeats = _p[1];
|
|
495
496
|
var gaEventRef = (0, react_1.useRef)({});
|
|
496
497
|
var goBackURL = '';
|
|
497
498
|
try {
|
|
@@ -584,7 +585,7 @@ var useTellescopeForm = function (_a) {
|
|
|
584
585
|
field: f,
|
|
585
586
|
});
|
|
586
587
|
})); }, [fields, existingResponses]);
|
|
587
|
-
var
|
|
588
|
+
var _q = (0, react_1.useState)(initializeFields()), responses = _q[0], setResponses = _q[1];
|
|
588
589
|
(0, react_1.useEffect)(function () {
|
|
589
590
|
// Be very careful about refreshing data to avoid losing progress -- only in the case the selected form has changed
|
|
590
591
|
if (fieldInitRef.current === formId)
|
|
@@ -600,7 +601,7 @@ var useTellescopeForm = function (_a) {
|
|
|
600
601
|
externalId: f.externalId,
|
|
601
602
|
blob: undefined,
|
|
602
603
|
}); })); }, [fields]);
|
|
603
|
-
var
|
|
604
|
+
var _t = (0, react_1.useState)(initializeFiles()), selectedFiles = _t[0], setSelectedFiles = _t[1];
|
|
604
605
|
(0, react_1.useEffect)(function () {
|
|
605
606
|
// Be very careful about refreshing data to avoid losing progress -- only in the case the selected form has changed
|
|
606
607
|
if (fileInitRef.current === formId)
|
|
@@ -699,7 +700,7 @@ var useTellescopeForm = function (_a) {
|
|
|
699
700
|
updateInclusion(true);
|
|
700
701
|
}, [updateInclusion, currentValue]);
|
|
701
702
|
var validateBasicField = (0, react_1.useCallback)(function (field) {
|
|
702
|
-
var _a, _b, _c, _d, _e, _g, _h, _j, _k, _l, _m, _o, _p, _q, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36;
|
|
703
|
+
var _a, _b, _c, _d, _e, _g, _h, _j, _k, _l, _m, _o, _p, _q, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39;
|
|
703
704
|
var value = responses.find(function (r) { return r.fieldId === field.id; });
|
|
704
705
|
var file = selectedFiles.find(function (r) { return r.fieldId === field.id; });
|
|
705
706
|
if (!value)
|
|
@@ -712,34 +713,37 @@ var useTellescopeForm = function (_a) {
|
|
|
712
713
|
&& !(0, utilities_1.responses_satisfy_conditions)(responses, field.groupShowCondition, logicOptions)) {
|
|
713
714
|
return null;
|
|
714
715
|
}
|
|
716
|
+
if (((_a = value.answer) === null || _a === void 0 ? void 0 : _a.type) === 'Rich Text' && ((_c = (_b = value.answer) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.trim()) === '<p></p>' && !field.isOptional) {
|
|
717
|
+
return "Answer is required";
|
|
718
|
+
}
|
|
715
719
|
if (value.answer.type === 'Insurance') {
|
|
716
|
-
if (((
|
|
720
|
+
if (((_e = (_d = value.answer.value) === null || _d === void 0 ? void 0 : _d.relationshipDetails) === null || _e === void 0 ? void 0 : _e.dateOfBirth) && !(0, exports.isDateString)(value.answer.value.relationshipDetails.dateOfBirth)) {
|
|
717
721
|
return "Enter date of birth in MM-DD-YYYY format";
|
|
718
722
|
}
|
|
719
723
|
if (field.isOptional)
|
|
720
724
|
return null;
|
|
721
|
-
if (!((
|
|
725
|
+
if (!((_g = value.answer.value) === null || _g === void 0 ? void 0 : _g.payerName)) {
|
|
722
726
|
return "Insurer is required";
|
|
723
727
|
}
|
|
724
|
-
if (!((
|
|
728
|
+
if (!((_h = value.answer.value) === null || _h === void 0 ? void 0 : _h.memberId)) {
|
|
725
729
|
return "Member ID is required";
|
|
726
730
|
}
|
|
727
731
|
// assumes Self by default when left blank
|
|
728
|
-
if (((
|
|
732
|
+
if (((_j = value.answer.value) === null || _j === void 0 ? void 0 : _j.relationship) && ((_k = value.answer.value) === null || _k === void 0 ? void 0 : _k.relationship) !== 'Self' && !((_m = (_l = value.answer.value) === null || _l === void 0 ? void 0 : _l.relationshipDetails) === null || _m === void 0 ? void 0 : _m.fname)) {
|
|
729
733
|
return "First name is required";
|
|
730
734
|
}
|
|
731
|
-
if (((
|
|
735
|
+
if (((_o = value.answer.value) === null || _o === void 0 ? void 0 : _o.relationship) && ((_p = value.answer.value) === null || _p === void 0 ? void 0 : _p.relationship) !== 'Self' && !((_t = (_q = value.answer.value) === null || _q === void 0 ? void 0 : _q.relationshipDetails) === null || _t === void 0 ? void 0 : _t.lname)) {
|
|
732
736
|
return "Last name is required";
|
|
733
737
|
}
|
|
734
|
-
if (((
|
|
738
|
+
if (((_u = value.answer.value) === null || _u === void 0 ? void 0 : _u.relationship) && ((_v = value.answer.value) === null || _v === void 0 ? void 0 : _v.relationship) !== 'Self' && !((_x = (_w = value.answer.value) === null || _w === void 0 ? void 0 : _w.relationshipDetails) === null || _x === void 0 ? void 0 : _x.gender)) {
|
|
735
739
|
return "Gender is required";
|
|
736
740
|
}
|
|
737
|
-
if (((
|
|
741
|
+
if (((_y = value.answer.value) === null || _y === void 0 ? void 0 : _y.relationship) && ((_z = value.answer.value) === null || _z === void 0 ? void 0 : _z.relationship) !== 'Self' && !((_1 = (_0 = value.answer.value) === null || _0 === void 0 ? void 0 : _0.relationshipDetails) === null || _1 === void 0 ? void 0 : _1.dateOfBirth)) {
|
|
738
742
|
return "Date of birth is required";
|
|
739
743
|
}
|
|
740
744
|
}
|
|
741
745
|
// even when optional, name is required when signed is checked
|
|
742
|
-
if (value.answer.type === 'signature' && ((
|
|
746
|
+
if (value.answer.type === 'signature' && ((_2 = value.answer.value) === null || _2 === void 0 ? void 0 : _2.signed) && !value.answer.value.fullName) {
|
|
743
747
|
return "Please enter your full name";
|
|
744
748
|
}
|
|
745
749
|
// event when optional, phone should be valid phone number if partially entered
|
|
@@ -750,58 +754,58 @@ var useTellescopeForm = function (_a) {
|
|
|
750
754
|
validation_1.phoneValidator.validate()(value.answer.value);
|
|
751
755
|
}
|
|
752
756
|
catch (err) {
|
|
753
|
-
return (
|
|
757
|
+
return (_3 = err === null || err === void 0 ? void 0 : err.message) !== null && _3 !== void 0 ? _3 : "Enter a valid phone number";
|
|
754
758
|
}
|
|
755
759
|
}
|
|
756
760
|
if (field.type === 'description')
|
|
757
761
|
return null;
|
|
758
762
|
if (field.type === 'string' || field.type === 'stringLong' || field.type === 'number') {
|
|
759
|
-
if (((
|
|
760
|
-
if (((
|
|
763
|
+
if (((_4 = field.options) === null || _4 === void 0 ? void 0 : _4.maxLength) && field.options.maxLength !== -1) {
|
|
764
|
+
if (((_5 = value.answer.value) !== null && _5 !== void 0 ? _5 : '').toString().length > field.options.maxLength) {
|
|
761
765
|
return "Answer must be no more than ".concat(field.options.maxLength, " characters");
|
|
762
766
|
}
|
|
763
767
|
}
|
|
764
|
-
if (((
|
|
768
|
+
if (((_6 = field.options) === null || _6 === void 0 ? void 0 : _6.minLength) && field.options.minLength !== -1) {
|
|
765
769
|
// allow optional when min length is greater than 0, only show error when value is entered
|
|
766
770
|
if (field.isOptional && !value.answer.value)
|
|
767
771
|
return null;
|
|
768
|
-
if (((
|
|
772
|
+
if (((_7 = value.answer.value) !== null && _7 !== void 0 ? _7 : '').toString().length < field.options.minLength) {
|
|
769
773
|
return "Answer must be at least ".concat(field.options.minLength, " characters");
|
|
770
774
|
}
|
|
771
775
|
}
|
|
772
|
-
if (((
|
|
776
|
+
if (((_8 = field.options) === null || _8 === void 0 ? void 0 : _8.repeat) && (!field.isOptional || value.answer.value || repeats[field.id])) {
|
|
773
777
|
if (value.answer.value !== repeats[field.id]) {
|
|
774
778
|
return "Answers must match";
|
|
775
779
|
}
|
|
776
780
|
}
|
|
777
781
|
if (value.answer.type === 'string' && (value.answer.value || '').length >= 5000) {
|
|
778
|
-
return "Must be under 5000 characters, got ".concat((
|
|
782
|
+
return "Must be under 5000 characters, got ".concat((_9 = value.answer.value) === null || _9 === void 0 ? void 0 : _9.length);
|
|
779
783
|
}
|
|
780
784
|
if (value.answer.type === 'stringLong' && (value.answer.value || '').length >= 20000) {
|
|
781
|
-
return "Must be under 20000 characters, got ".concat((
|
|
785
|
+
return "Must be under 20000 characters, got ".concat((_10 = value.answer.value) === null || _10 === void 0 ? void 0 : _10.length);
|
|
782
786
|
}
|
|
783
787
|
}
|
|
784
788
|
if (value.answer.type === 'number' && value.answer.value) {
|
|
785
|
-
if (((
|
|
786
|
-
return "Must be greater than ".concat((
|
|
789
|
+
if (((_12 = (_11 = field.options) === null || _11 === void 0 ? void 0 : _11.min) !== null && _12 !== void 0 ? _12 : -Infinity) >= value.answer.value) {
|
|
790
|
+
return "Must be greater than ".concat((_13 = field.options) === null || _13 === void 0 ? void 0 : _13.min);
|
|
787
791
|
}
|
|
788
|
-
if (((
|
|
789
|
-
return "Must be less than ".concat((
|
|
792
|
+
if (((_15 = (_14 = field.options) === null || _14 === void 0 ? void 0 : _14.max) !== null && _15 !== void 0 ? _15 : Infinity) <= value.answer.value) {
|
|
793
|
+
return "Must be less than ".concat((_16 = field.options) === null || _16 === void 0 ? void 0 : _16.max);
|
|
790
794
|
}
|
|
791
795
|
}
|
|
792
796
|
if (field.isOptional || (sessionType === 'user' && field.type === 'Appointment Booking' && !enduserId)) {
|
|
793
797
|
return null;
|
|
794
798
|
}
|
|
795
799
|
if (value.answer.type === 'Height') {
|
|
796
|
-
if (typeof ((
|
|
800
|
+
if (typeof ((_17 = value.answer.value) === null || _17 === void 0 ? void 0 : _17.feet) !== 'number' || isNaN((_18 = value.answer.value) === null || _18 === void 0 ? void 0 : _18.feet)) {
|
|
797
801
|
return "Feet must be provided";
|
|
798
802
|
}
|
|
799
|
-
if (typeof ((
|
|
803
|
+
if (typeof ((_19 = value.answer.value) === null || _19 === void 0 ? void 0 : _19.inches) !== 'number' || isNaN((_20 = value.answer.value) === null || _20 === void 0 ? void 0 : _20.inches)) {
|
|
800
804
|
return "Inches must be provided (enter 0 for no inches)";
|
|
801
805
|
}
|
|
802
806
|
}
|
|
803
807
|
if (value.answer.type === 'Related Contacts') {
|
|
804
|
-
for (var i = 0; i < ((
|
|
808
|
+
for (var i = 0; i < ((_21 = value.answer.value) !== null && _21 !== void 0 ? _21 : []).length; i++) {
|
|
805
809
|
var contact = value.answer.value[i];
|
|
806
810
|
var errorMessage = (0, index_1.contact_is_valid)(contact);
|
|
807
811
|
if (errorMessage) {
|
|
@@ -810,11 +814,11 @@ var useTellescopeForm = function (_a) {
|
|
|
810
814
|
}
|
|
811
815
|
}
|
|
812
816
|
if (value.answer.type === 'Medications') {
|
|
813
|
-
if (!((
|
|
817
|
+
if (!((_23 = (_22 = value.answer) === null || _22 === void 0 ? void 0 : _22.value) === null || _23 === void 0 ? void 0 : _23.length)) {
|
|
814
818
|
return "At least one medication is required";
|
|
815
819
|
}
|
|
816
|
-
for (var _i = 0,
|
|
817
|
-
var m =
|
|
820
|
+
for (var _i = 0, _40 = (_24 = value.answer.value) !== null && _24 !== void 0 ? _24 : []; _i < _40.length; _i++) {
|
|
821
|
+
var m = _40[_i];
|
|
818
822
|
if (!(m.drugName || m.otherDrug)) {
|
|
819
823
|
return "A drug selection is required for each medication";
|
|
820
824
|
}
|
|
@@ -822,14 +826,14 @@ var useTellescopeForm = function (_a) {
|
|
|
822
826
|
}
|
|
823
827
|
// remaining are required, non-empty
|
|
824
828
|
if (field.type === 'file' || field.type === 'files') {
|
|
825
|
-
if (!((
|
|
829
|
+
if (!((_25 = file.blobs) === null || _25 === void 0 ? void 0 : _25.length)) {
|
|
826
830
|
return "A file is required";
|
|
827
831
|
}
|
|
828
|
-
if (typeof ((
|
|
829
|
-
return "At least ".concat((
|
|
832
|
+
if (typeof ((_26 = field.options) === null || _26 === void 0 ? void 0 : _26.min) === 'number' && file.blobs.length < field.options.min) {
|
|
833
|
+
return "At least ".concat((_27 = field.options) === null || _27 === void 0 ? void 0 : _27.min, " file(s) are required");
|
|
830
834
|
}
|
|
831
|
-
if (typeof ((
|
|
832
|
-
return "At most ".concat((
|
|
835
|
+
if (typeof ((_28 = field.options) === null || _28 === void 0 ? void 0 : _28.max) === 'number' && file.blobs.length > field.options.max) {
|
|
836
|
+
return "At most ".concat((_29 = field.options) === null || _29 === void 0 ? void 0 : _29.max, " file(s) are allowed");
|
|
833
837
|
}
|
|
834
838
|
return null; // no need to check against other stuff
|
|
835
839
|
}
|
|
@@ -846,7 +850,7 @@ var useTellescopeForm = function (_a) {
|
|
|
846
850
|
}
|
|
847
851
|
// remaining values exist and need to be validated by type
|
|
848
852
|
if (value.answer.type === 'Address') {
|
|
849
|
-
var stateOnly = (
|
|
853
|
+
var stateOnly = (_31 = (_30 = field.options) === null || _30 === void 0 ? void 0 : _30.addressFields) === null || _31 === void 0 ? void 0 : _31.includes('state');
|
|
850
854
|
if (!value.answer.value.addressLineOne && !stateOnly) {
|
|
851
855
|
return "Address Line 1 is required";
|
|
852
856
|
}
|
|
@@ -859,14 +863,14 @@ var useTellescopeForm = function (_a) {
|
|
|
859
863
|
if (!value.answer.value.zipCode && !stateOnly) {
|
|
860
864
|
return "ZIP code is required";
|
|
861
865
|
}
|
|
862
|
-
if (!isZIPString((
|
|
866
|
+
if (!isZIPString((_32 = value.answer.value) === null || _32 === void 0 ? void 0 : _32.zipCode) && !stateOnly) {
|
|
863
867
|
return "Enter a valid ZIP code";
|
|
864
868
|
}
|
|
865
|
-
if (!((
|
|
869
|
+
if (!((_33 = value.answer.value) === null || _33 === void 0 ? void 0 : _33.zipPlusFour) && field.fullZIP && !stateOnly) {
|
|
866
870
|
return "ZIP+4 is required";
|
|
867
871
|
}
|
|
868
|
-
if (((
|
|
869
|
-
var zipPlus4 = ((
|
|
872
|
+
if (((_34 = value.answer.value) === null || _34 === void 0 ? void 0 : _34.zipPlusFour) && !stateOnly) {
|
|
873
|
+
var zipPlus4 = ((_35 = value.answer.value) === null || _35 === void 0 ? void 0 : _35.zipPlusFour) || '';
|
|
870
874
|
if (zipPlus4.length !== 4 || !/\d{4}$/.test(zipPlus4)) {
|
|
871
875
|
return "ZIP+4 must be 4 digits";
|
|
872
876
|
}
|
|
@@ -880,11 +884,11 @@ var useTellescopeForm = function (_a) {
|
|
|
880
884
|
}
|
|
881
885
|
else if (value.answer.type === 'Table Input') {
|
|
882
886
|
var rowNumber = 0;
|
|
883
|
-
for (var
|
|
884
|
-
var row =
|
|
887
|
+
for (var _41 = 0, _42 = value.answer.value || []; _41 < _42.length; _41++) {
|
|
888
|
+
var row = _42[_41];
|
|
885
889
|
rowNumber++;
|
|
886
|
-
for (var
|
|
887
|
-
var cell = row_1[
|
|
890
|
+
for (var _43 = 0, row_1 = row; _43 < row_1.length; _43++) {
|
|
891
|
+
var cell = row_1[_43];
|
|
888
892
|
if (!cell.entry) {
|
|
889
893
|
return "Enter a value for ".concat(cell.label, " in row ").concat(rowNumber);
|
|
890
894
|
}
|
|
@@ -907,9 +911,9 @@ var useTellescopeForm = function (_a) {
|
|
|
907
911
|
}
|
|
908
912
|
}
|
|
909
913
|
else if (value.answer.type === 'rating') {
|
|
910
|
-
if ((((
|
|
911
|
-
|| ((
|
|
912
|
-
return "Please enter a number between ".concat((
|
|
914
|
+
if ((((_36 = field === null || field === void 0 ? void 0 : field.options) === null || _36 === void 0 ? void 0 : _36.from) && value.answer.value < field.options.from)
|
|
915
|
+
|| ((_37 = field === null || field === void 0 ? void 0 : field.options) === null || _37 === void 0 ? void 0 : _37.to) && value.answer.value > field.options.to) {
|
|
916
|
+
return "Please enter a number between ".concat((_38 = field === null || field === void 0 ? void 0 : field.options) === null || _38 === void 0 ? void 0 : _38.from, " and ").concat((_39 = field === null || field === void 0 ? void 0 : field.options) === null || _39 === void 0 ? void 0 : _39.to);
|
|
913
917
|
}
|
|
914
918
|
}
|
|
915
919
|
else if (value.answer.type === 'signature') {
|
|
@@ -998,6 +1002,35 @@ var useTellescopeForm = function (_a) {
|
|
|
998
1002
|
}
|
|
999
1003
|
return responsesToSubmit;
|
|
1000
1004
|
}, [responses]);
|
|
1005
|
+
var handleFileUpload = (0, react_1.useCallback)(function (blob, fieldId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1006
|
+
var responseIndex, result, secureName;
|
|
1007
|
+
var _a, _b;
|
|
1008
|
+
return __generator(this, function (_c) {
|
|
1009
|
+
switch (_c.label) {
|
|
1010
|
+
case 0:
|
|
1011
|
+
responseIndex = responses.findIndex(function (f) { return f.fieldId === fieldId; });
|
|
1012
|
+
result = { name: blob.name, secureName: '' };
|
|
1013
|
+
return [4 /*yield*/, handleUpload({
|
|
1014
|
+
name: blob.name,
|
|
1015
|
+
size: blob.size,
|
|
1016
|
+
type: blob.type,
|
|
1017
|
+
enduserId: enduserId,
|
|
1018
|
+
}, blob)];
|
|
1019
|
+
case 1:
|
|
1020
|
+
secureName = (_c.sent()).secureName;
|
|
1021
|
+
if (responses[responseIndex].answer.type === 'files') {
|
|
1022
|
+
if (!responses[responseIndex].answer.value) {
|
|
1023
|
+
responses[responseIndex].answer.value = [];
|
|
1024
|
+
}
|
|
1025
|
+
responses[responseIndex].answer.value.push(__assign(__assign({}, result), { type: blob.type, secureName: secureName, name: (_a = result.name) !== null && _a !== void 0 ? _a : '' }));
|
|
1026
|
+
}
|
|
1027
|
+
else {
|
|
1028
|
+
responses[responseIndex].answer.value = __assign(__assign({}, result), { type: blob.type, secureName: secureName, name: (_b = result.name) !== null && _b !== void 0 ? _b : '' });
|
|
1029
|
+
}
|
|
1030
|
+
return [2 /*return*/];
|
|
1031
|
+
}
|
|
1032
|
+
});
|
|
1033
|
+
}); }, [responses, handleUpload]);
|
|
1001
1034
|
var submit = (0, react_1.useCallback)(function (options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1002
1035
|
var hasFile, _loop_9, _i, selectedFiles_1, blobInfo, err_1, responsesToSubmit_3, _a, responsesToSubmit_2, r, _loop_10, _b, _c, f, errors, _d, _e, eId, _g, formResponse, nextFormGroupPublicURL, _h, _j, _k, err_2, err_3;
|
|
1003
1036
|
var _l;
|
|
@@ -1013,37 +1046,26 @@ var useTellescopeForm = function (_a) {
|
|
|
1013
1046
|
case 1:
|
|
1014
1047
|
_4.trys.push([1, 6, 7, 8]);
|
|
1015
1048
|
_loop_9 = function (blobInfo) {
|
|
1016
|
-
var blobs, fieldId,
|
|
1049
|
+
var blobs, fieldId, responseIndex, response, _5, blobs_1, blob;
|
|
1017
1050
|
return __generator(this, function (_6) {
|
|
1018
1051
|
switch (_6.label) {
|
|
1019
1052
|
case 0:
|
|
1020
1053
|
blobs = blobInfo.blobs, fieldId = blobInfo.fieldId;
|
|
1021
1054
|
if (!blobs)
|
|
1022
1055
|
return [2 /*return*/, "continue"];
|
|
1056
|
+
responseIndex = responses.findIndex(function (f) { return f.fieldId === fieldId; });
|
|
1057
|
+
response = responses[responseIndex];
|
|
1058
|
+
if ((_o = (_m = response.field) === null || _m === void 0 ? void 0 : _m.options) === null || _o === void 0 ? void 0 : _o.autoUploadFiles) {
|
|
1059
|
+
return [2 /*return*/, "continue"];
|
|
1060
|
+
} // must have uploaded prior to submission
|
|
1023
1061
|
_5 = 0, blobs_1 = blobs;
|
|
1024
1062
|
_6.label = 1;
|
|
1025
1063
|
case 1:
|
|
1026
1064
|
if (!(_5 < blobs_1.length)) return [3 /*break*/, 4];
|
|
1027
1065
|
blob = blobs_1[_5];
|
|
1028
|
-
|
|
1029
|
-
return [4 /*yield*/, handleUpload({
|
|
1030
|
-
name: blob.name,
|
|
1031
|
-
size: blob.size,
|
|
1032
|
-
type: blob.type,
|
|
1033
|
-
enduserId: enduserId,
|
|
1034
|
-
}, blob)];
|
|
1066
|
+
return [4 /*yield*/, handleFileUpload(blob, fieldId)];
|
|
1035
1067
|
case 2:
|
|
1036
|
-
|
|
1037
|
-
responseIndex = responses.findIndex(function (f) { return f.fieldId === fieldId; });
|
|
1038
|
-
if (responses[responseIndex].answer.type === 'files') {
|
|
1039
|
-
if (!responses[responseIndex].answer.value) {
|
|
1040
|
-
responses[responseIndex].answer.value = [];
|
|
1041
|
-
}
|
|
1042
|
-
responses[responseIndex].answer.value.push(__assign(__assign({}, result), { type: blob.type, secureName: secureName, name: (_m = result.name) !== null && _m !== void 0 ? _m : '' }));
|
|
1043
|
-
}
|
|
1044
|
-
else {
|
|
1045
|
-
responses[responseIndex].answer.value = __assign(__assign({}, result), { type: blob.type, secureName: secureName, name: (_o = result.name) !== null && _o !== void 0 ? _o : '' });
|
|
1046
|
-
}
|
|
1068
|
+
_6.sent();
|
|
1047
1069
|
_6.label = 3;
|
|
1048
1070
|
case 3:
|
|
1049
1071
|
_5++;
|
|
@@ -1205,8 +1227,11 @@ var useTellescopeForm = function (_a) {
|
|
|
1205
1227
|
case 20: return [2 /*return*/];
|
|
1206
1228
|
}
|
|
1207
1229
|
});
|
|
1208
|
-
}); }, [accessCode, automationStepId, enduserId, responses, selectedFiles, session, handleUpload, existingResponses, ga4measurementId, rootResponseId, parentResponseId, calendarEventId, goBackURL, logicOptions]);
|
|
1230
|
+
}); }, [accessCode, automationStepId, enduserId, responses, selectedFiles, session, handleUpload, existingResponses, ga4measurementId, rootResponseId, parentResponseId, calendarEventId, goBackURL, logicOptions, handleFileUpload]);
|
|
1209
1231
|
var isNextDisabled = (0, react_1.useCallback)(function () {
|
|
1232
|
+
if (uploadingFiles.length) {
|
|
1233
|
+
return true;
|
|
1234
|
+
}
|
|
1210
1235
|
if (activeField.children.length === 0) {
|
|
1211
1236
|
return true;
|
|
1212
1237
|
}
|
|
@@ -1214,7 +1239,7 @@ var useTellescopeForm = function (_a) {
|
|
|
1214
1239
|
return true;
|
|
1215
1240
|
}
|
|
1216
1241
|
return false;
|
|
1217
|
-
}, [activeField, validateField]);
|
|
1242
|
+
}, [activeField, validateField, uploadingFiles]);
|
|
1218
1243
|
var autoAdvanceRef = (0, react_1.useRef)(false);
|
|
1219
1244
|
var goToNextField = (0, react_1.useCallback)(function () {
|
|
1220
1245
|
var _a, _b, _c;
|
|
@@ -1372,6 +1397,9 @@ var useTellescopeForm = function (_a) {
|
|
|
1372
1397
|
customization: customization,
|
|
1373
1398
|
handleDatabaseSelect: handleDatabaseSelect,
|
|
1374
1399
|
logicOptions: logicOptions,
|
|
1400
|
+
uploadingFiles: uploadingFiles,
|
|
1401
|
+
setUploadingFiles: setUploadingFiles,
|
|
1402
|
+
handleFileUpload: handleFileUpload,
|
|
1375
1403
|
};
|
|
1376
1404
|
};
|
|
1377
1405
|
exports.useTellescopeForm = useTellescopeForm;
|