@sprig-technologies/sprig-bundled 2.45.0 → 2.46.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/dist/{conversational-styles-Cw5d-ccF.js → conversational-styles-B-bImmUK.js} +1 -1
- package/dist/{conversational-styles-41oiRRxR.cjs → conversational-styles-vDq05r1U.cjs} +1 -1
- package/dist/{conversational-ui-D0rSLvkp.js → conversational-ui-BZDC1buu.js} +162 -159
- package/dist/conversational-ui-DqQZMJkq.cjs +658 -0
- package/dist/conversational-v2-styles-DeqT460S.js +4 -0
- package/dist/conversational-v2-styles-DkN3ff79.cjs +1 -0
- package/dist/{getAttributedUrl-DCoAixJz.cjs → getAttributedUrl-BuO50-dW.cjs} +1 -1
- package/dist/{getAttributedUrl-Dq1b-gQL.js → getAttributedUrl-BvS4nPJR.js} +2 -2
- package/dist/index-BCIAxJWJ.cjs +66 -0
- package/dist/{index-Czvv7meW.js → index-D2UpkOdR.js} +855 -855
- package/dist/index-DiPr4x-u.cjs +1 -0
- package/dist/index-fcbxeQg3.js +734 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/view-5-qQQKtl.js +1789 -0
- package/dist/view-D8rc4Fhu.cjs +1 -0
- package/package.json +1 -1
- package/dist/conversational-ui-5FRYaGa1.cjs +0 -658
- package/dist/conversational-v2-styles-BuQiqTAN.js +0 -4
- package/dist/conversational-v2-styles-C-AtgFtc.cjs +0 -1
- package/dist/index-BH4S1tUz.js +0 -723
- package/dist/index-BzAnV7nc.cjs +0 -66
- package/dist/index-zTKRoMdd.cjs +0 -1
- package/dist/view-Cu4weTLz.js +0 -1789
- package/dist/view-K_OZdlXf.cjs +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import { v as Pn, E as
|
|
3
|
-
import { B as oe, M as ie, b as de, O as
|
|
4
|
-
const pe = "https://cdn.sprig.com", I = { document: void 0, videojs: void 0 },
|
|
1
|
+
import { u as z, a as n, h as Z, c as A, b as K, e as re, g as Oe, p as ae, F as ye, _ as se, T as be, A as kn, M as ke, d as Ce, f as wn, P as En, m as jn, n as In, o as _n, S as Tn, D as Re, x as tn, w as Dn, v as Sn } from "./view-5-qQQKtl.js";
|
|
2
|
+
import { v as Pn, E as Te, h as rn, A as Ae, j as Nn, i as on } from "./index-D2UpkOdR.js";
|
|
3
|
+
import { B as oe, M as ie, b as de, O as $e, Q as ce, S as Ln, L as Rn, u as Mn, a as xe, H as He, g as Bn, c as qn } from "./getAttributedUrl-BvS4nPJR.js";
|
|
4
|
+
const pe = "https://cdn.sprig.com", I = { document: void 0, videojs: void 0 }, Ve = (e) => e + "-loading-spiner", W = "hidden", Qe = ".m3u8", De = "questionId", Se = "ul-video-recorder-camera-off-button", Pe = "ul-recording-in-session", Un = [{ type: "link", content: `${pe}/dependencies/videojs-record-4.5.0.min.css` }, { type: "script", content: `${pe}/dependencies/RecordRTC-5.6.2.js` }, { type: "script", content: `${pe}/dependencies/adapter.8.0.0.min.js` }, { type: "script", content: `${pe}/dependencies/videojs-record-4.5.0.min.js` }, { type: "script", content: `${pe}/userleap-web-upchunk-v2.2.2.js` }], sn = [{ type: "link", content: `${pe}/dependencies/video-js-7.18.0.min.css` }, { type: "script", content: `${pe}/dependencies/video-js-7.18.0.min.js` }, { type: "style", content: `/* progress control styles */
|
|
5
5
|
.video-js .vjs-control {
|
|
6
6
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
|
7
7
|
}
|
|
@@ -658,8 +658,8 @@ span.ul-button-text {
|
|
|
658
658
|
.vjs-poster {
|
|
659
659
|
background-size: cover;
|
|
660
660
|
}
|
|
661
|
-
` }], an = "-video-player",
|
|
662
|
-
let ne,
|
|
661
|
+
` }], an = "-video-player", Ze = "-secondary-video-player", Ye = "-video-recorder";
|
|
662
|
+
let ne, We;
|
|
663
663
|
const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, metadata: s }) => {
|
|
664
664
|
const d = I.document.documentElement;
|
|
665
665
|
if (!r || !i) return;
|
|
@@ -683,14 +683,14 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
683
683
|
}).catch(function(t) {
|
|
684
684
|
console.log(t + " failed to load");
|
|
685
685
|
});
|
|
686
|
-
},
|
|
686
|
+
}, Ke = (e, o, t) => {
|
|
687
687
|
if (o === "start" && (e.style.visibility = "visible"), o === "none") e.style.visibility = W;
|
|
688
688
|
else if (o === "success") e.style.visibility = W, e.innerHTML = "Upload succeeded!";
|
|
689
689
|
else {
|
|
690
690
|
const r = Math.round(parseFloat(t));
|
|
691
691
|
e.innerHTML = `Uploading <span class="ul-upload-progress-label__time">${r}%</span>`, e.style.background = `linear-gradient(to right, #E0E0EB 0%, #E0E0EB ${r}%, #FCFCFD ${r}%, #FCFCFD 100%)`;
|
|
692
692
|
}
|
|
693
|
-
},
|
|
693
|
+
}, Ne = (e, o) => {
|
|
694
694
|
const t = I.videojs(e.id());
|
|
695
695
|
return t == null ? void 0 : t.payload[o];
|
|
696
696
|
}, dn = (e, o) => {
|
|
@@ -701,11 +701,11 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
701
701
|
}, On = (e) => {
|
|
702
702
|
e.children().forEach((o) => {
|
|
703
703
|
if (X[o.name_]) {
|
|
704
|
-
const t =
|
|
704
|
+
const t = we(X[o.name_], `ul-${X[o.name_]}`);
|
|
705
705
|
o.el_.appendChild(t);
|
|
706
706
|
}
|
|
707
707
|
});
|
|
708
|
-
},
|
|
708
|
+
}, we = (e, o = "") => {
|
|
709
709
|
const t = I.document.createElement("span");
|
|
710
710
|
return t.className = "ul-button-text", t.innerHTML = e, t.id = o, t;
|
|
711
711
|
}, cn = (e, o, t, r, i = !1, s) => {
|
|
@@ -723,17 +723,17 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
723
723
|
s == null || s.playbackRate(e.playbackRate());
|
|
724
724
|
}), e.addChild(e.audioPlayerPlaceholder, {}, 1), d.addChild(o), e.addChild(d), r && r(e);
|
|
725
725
|
}, An = (e, o, t, r, i, s, d, u = !1) => {
|
|
726
|
-
|
|
727
|
-
const a =
|
|
726
|
+
We = Date.now();
|
|
727
|
+
const a = Ee(o, { controls: !1, bigPlayButton: !1, fluid: !1, width: 1280, height: 720, playsinline: !0, plugins: { record: { audio: !0, video: { mandatory: { minWidth: 1280, minHeight: 720 } }, frameWidth: 1280, frameHeight: 720, maxLength: 600, autoMuteDevice: !0 } } });
|
|
728
728
|
if (!a) return;
|
|
729
729
|
a.payload = t;
|
|
730
730
|
const { surveyId: v, questionId: y, responseGroupUid: c, visitorId: g, envId: w } = t;
|
|
731
731
|
let C;
|
|
732
732
|
const b = (l) => {
|
|
733
733
|
const p = Se, x = Se + "-audio-only";
|
|
734
|
-
|
|
734
|
+
Ke(a.uploadProgressLabel, "none"), ne && ne.startTime >= We && ne.abort();
|
|
735
735
|
const S = I.document.getElementById("ul-camera-button");
|
|
736
|
-
l ? (a.children()[0].classList.add("vjs-hidden"),
|
|
736
|
+
l ? (a.children()[0].classList.add("vjs-hidden"), L.removeClass(p), L.addClass(x), S.innerHTML = X.TurnOnCamera, a.audioPlayerPlaceholder.removeClass("vjs-hidden"), C == null || C.getTracks().forEach((j) => {
|
|
737
737
|
j.stop();
|
|
738
738
|
}), window.navigator.mediaDevices.getUserMedia({ video: !0, audio: !0 }).then((j) => {
|
|
739
739
|
C = j, j.getVideoTracks().forEach((M) => {
|
|
@@ -741,36 +741,36 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
741
741
|
}), a.record().onDeviceReady(j);
|
|
742
742
|
}).catch(a.record().onDeviceError.bind(a.record()))) : (C == null || C.getVideoTracks().forEach((j) => {
|
|
743
743
|
j.enabled = !0;
|
|
744
|
-
}), a.children()[0].classList.remove("vjs-hidden"), a.record().getDevice(),
|
|
744
|
+
}), a.children()[0].classList.remove("vjs-hidden"), a.record().getDevice(), L.removeClass(x), L.addClass(p), S.innerHTML = X.TurnOffCamera, a.audioPlayerPlaceholder.addClass("vjs-hidden"));
|
|
745
745
|
}, f = new (I.videojs.getComponent("Button"))(a, { clickHandler: () => {
|
|
746
|
-
f.hasClass(W) || (ue({ event: "Video Delete Button Clicked", apiBase: r, headers: d, visitorId: g, envId: w, metadata: { questionId: y, responseGroupUid: c, surveyId: v } }), b(a.cameraOff), i(
|
|
746
|
+
f.hasClass(W) || (ue({ event: "Video Delete Button Clicked", apiBase: r, headers: d, visitorId: g, envId: w, metadata: { questionId: y, responseGroupUid: c, surveyId: v } }), b(a.cameraOff), i(N.DELETE, {}), L.removeClass(W), f.addClass(W));
|
|
747
747
|
} });
|
|
748
|
-
f.addClass("ul-video-recorder-delete-button"), f.el_.appendChild(
|
|
748
|
+
f.addClass("ul-video-recorder-delete-button"), f.el_.appendChild(we(X.DeleteButton, "ul-delete-button"));
|
|
749
749
|
const _ = I.document.getElementById(o), R = () => {
|
|
750
750
|
_.classList.contains("vjs-fullscreen") && a.cameraOff ? _.style.display = "table" : _.style.display = "flex";
|
|
751
751
|
};
|
|
752
752
|
R();
|
|
753
|
-
const
|
|
754
|
-
a.record().isRecording() || (a.cameraOff = !a.cameraOff, ue({ event: "Video Camera Button Clicked", apiBase: r, headers: d, visitorId: t.visitorId, envId: t.envId, metadata: { questionId: y, responseGroupUid: c, surveyId: v, cameraOff: a.cameraOff } }), b(a.cameraOff), !f.hasClass(W) && f.addClass(W), i(
|
|
753
|
+
const L = new (I.videojs.getComponent("Button"))(a, { clickHandler: () => {
|
|
754
|
+
a.record().isRecording() || (a.cameraOff = !a.cameraOff, ue({ event: "Video Camera Button Clicked", apiBase: r, headers: d, visitorId: t.visitorId, envId: t.envId, metadata: { questionId: y, responseGroupUid: c, surveyId: v, cameraOff: a.cameraOff } }), b(a.cameraOff), !f.hasClass(W) && f.addClass(W), i(N.DELETE, {}), R());
|
|
755
755
|
} });
|
|
756
|
-
|
|
756
|
+
L.addClass(Se), L.el_.appendChild(we(X.TurnOffCamera, "ul-camera-button"));
|
|
757
757
|
const T = new (I.videojs.getComponent("Button"))(a, { clickHandler: () => {
|
|
758
758
|
const l = I.document.getElementById("ul-recorder-toggle");
|
|
759
759
|
if (a.record().isRecording()) a.record().stop(), l && (l.innerHTML = X.RecordButton), T.removeClass(Pe), f.removeClass(W);
|
|
760
760
|
else {
|
|
761
761
|
const p = I.document.getElementById("ul-recording-countdown-screen");
|
|
762
|
-
if (p) p.remove(), l && (l.innerHTML = X.RecordButton), b(a.cameraOff), i(
|
|
762
|
+
if (p) p.remove(), l && (l.innerHTML = X.RecordButton), b(a.cameraOff), i(N.DELETE, {}), L.removeClass(W), f.addClass(W), T.removeClass(Pe), m.show();
|
|
763
763
|
else {
|
|
764
|
-
T.addClass(Pe), m.hide(),
|
|
764
|
+
T.addClass(Pe), m.hide(), L.addClass(W), f.addClass(W), l && (l.innerHTML = X.StopButton);
|
|
765
765
|
const x = I.document.createElement("div");
|
|
766
766
|
x.id = "ul-recording-countdown-screen", _.insertBefore(x, _.children[1]), x.style.height = `${_.offsetHeight}px`, un(a, 3);
|
|
767
767
|
}
|
|
768
768
|
}
|
|
769
769
|
} });
|
|
770
|
-
T.addClass("ul-video-recorder-toggle-button"), T.el_.appendChild(
|
|
770
|
+
T.addClass("ul-video-recorder-toggle-button"), T.el_.appendChild(we(X.RecordButton, "ul-recorder-toggle"));
|
|
771
771
|
const H = I.document.createElement("p");
|
|
772
772
|
H.style.visibility = "hidden", H.className = "ul-upload-progress-label", e.appendChild(H), a.uploadProgressLabel = H;
|
|
773
|
-
const $ = dn(a, [f,
|
|
773
|
+
const $ = dn(a, [f, L, "PlayToggle", T, "FullscreenToggle"]), m = $.children().find((l) => l.name_ === "FullscreenToggle");
|
|
774
774
|
m.hasClass("vjs-disabled") && m.hide();
|
|
775
775
|
const h = $.children().find((l) => l.name_ === "PlayToggle");
|
|
776
776
|
h.hide(), f.addClass(W), cn(a, $, s, !1, u), a.on("stopRecord", () => {
|
|
@@ -780,20 +780,20 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
780
780
|
}), ((l, p, x, S, j) => {
|
|
781
781
|
const { surveyId: M, responseGroupUid: O, visitorId: B, envId: q } = l.payload;
|
|
782
782
|
l.on("deviceError", function() {
|
|
783
|
-
console.warn("device error: ", l.deviceErrorCode), l.deviceErrorCode.message === "Permission denied" ? (l.deviceButton.addClass("permission-denied"), x && x(
|
|
783
|
+
console.warn("device error: ", l.deviceErrorCode), l.deviceErrorCode.message === "Permission denied" ? (l.deviceButton.addClass("permission-denied"), x && x(N.ERROR, { type: N.PERMISSION_DENIED }), ue({ event: "Video Permission Denied", apiBase: p, headers: j, visitorId: B, envId: q, metadata: { questionId: Ne(l, De), responseGroupUid: O, surveyId: M } })) : (x && x(N.ERROR, { type: N.OTHER }), le(new Error(l.deviceErrorCode.message), "recorderDeviceError", p, j, B, q));
|
|
784
784
|
}), l.on("error", function(Q, Y) {
|
|
785
785
|
le(Y || l.error(), "recorderError", p, j, B, q);
|
|
786
786
|
}), l.on("startRecord", function(Q, Y) {
|
|
787
|
-
S(l.uploadProgressLabel, "none"), ue({ event: "Video Record Start", apiBase: p, headers: j, visitorId: B, envId: q, metadata: { questionId:
|
|
787
|
+
S(l.uploadProgressLabel, "none"), ue({ event: "Video Record Start", apiBase: p, headers: j, visitorId: B, envId: q, metadata: { questionId: Ne(l, De), responseGroupUid: O, surveyId: M } });
|
|
788
788
|
}), l.on("finishRecord", async function() {
|
|
789
789
|
S(l.uploadProgressLabel, "start", 0);
|
|
790
|
-
const Q =
|
|
790
|
+
const Q = Ne(l, De);
|
|
791
791
|
if (!M) {
|
|
792
792
|
const D = "internal error: missing fields in payload";
|
|
793
|
-
return x && x(
|
|
793
|
+
return x && x(N.ERROR, { type: N.OTHER }), le(new Error(D), "finishRecord", p, j, B, q), null;
|
|
794
794
|
}
|
|
795
795
|
l.record().stopDevice();
|
|
796
|
-
const Y = l.cameraOff ?
|
|
796
|
+
const Y = l.cameraOff ? N.MEDIA_TYPE_AUDIO : N.MEDIA_TYPE_VIDEO, ee = Pn();
|
|
797
797
|
ue({ event: "Video Record Finish", apiBase: p, headers: j, visitorId: B, envId: q, metadata: { mediaRecordingUid: ee, questionId: Q, responseGroupUid: O, surveyId: M, mediaType: Y } });
|
|
798
798
|
const ve = { surveyId: M, updatedAt: (/* @__PURE__ */ new Date()).toISOString(), mediaType: Y, mediaRecordingUid: ee };
|
|
799
799
|
Q && (ve.questionId = Q), O && (ve.responseGroupUid = O), B && (ve.visitorId = B);
|
|
@@ -801,19 +801,19 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
801
801
|
const D = await fetch(`${p}/2/environments/integrations/upload`, { method: "POST", cache: "no-cache", headers: { "Content-Type": "application/json" }, body: JSON.stringify(ve) });
|
|
802
802
|
if (D.ok) {
|
|
803
803
|
const U = await D.json();
|
|
804
|
-
return x && x(
|
|
804
|
+
return x && x(N.UPLOAD_STARTED, { [N.UPLOAD_ID]: U.upload.id, [N.MEDIA_TYPE]: Y, [N.MEDIA_RECORDING_UID]: ee }), U.upload.url;
|
|
805
805
|
}
|
|
806
|
-
return x && x(
|
|
806
|
+
return x && x(N.ERROR, { type: N.OTHER, response: D }), le(new Error("failed to get upload response with url"), "finishRecord", p, j, B, q), null;
|
|
807
807
|
})();
|
|
808
808
|
E && (ne = I.document.defaultView.UpChunk.createUpload({ endpoint: E, file: new I.document.defaultView.File([l.recordedData], `recording ${Y} ${Date.now()}`), chunkSize: 5120 }), ne.startTime = Date.now(), ue({ event: "Video Upload Start", apiBase: p, headers: j, visitorId: B, envId: q, metadata: { mediaRecordingUid: ee, questionId: Q, responseGroupUid: O, surveyId: M, mediaType: Y, url: E } }), ne.on("error", (D) => {
|
|
809
|
-
S(l.uploadProgressLabel, "none"), x && x(
|
|
809
|
+
S(l.uploadProgressLabel, "none"), x && x(N.UPLOAD_FINISHED, { [N.MEDIA_RECORDING_UID]: ee }), le(D, "finishRecord", p, j, B, q);
|
|
810
810
|
}), ne.on("progress", (D) => {
|
|
811
|
-
x && x(
|
|
811
|
+
x && x(N.UPLOAD_PROGRESS, { [N.MEDIA_RECORDING_UID]: ee, [N.UPLOAD_PROGRESS_PCT]: D.detail }), S(l.uploadProgressLabel, "progress", D.detail);
|
|
812
812
|
}), ne.on("success", () => {
|
|
813
|
-
S(l.uploadProgressLabel, "success"), x && x(
|
|
813
|
+
S(l.uploadProgressLabel, "success"), x && x(N.UPLOAD_FINISHED, { [N.MEDIA_RECORDING_UID]: ee }), ue({ event: "Video Upload Success", apiBase: p, headers: j, visitorId: B, envId: q, metadata: { mediaRecordingUid: ee, questionId: Q, responseGroupUid: O, surveyId: M, mediaType: Y, url: E, elapsedMs: ne.startTime && Date.now() - ne.startTime } });
|
|
814
814
|
}));
|
|
815
815
|
});
|
|
816
|
-
})(a, r, i,
|
|
816
|
+
})(a, r, i, Ke, d);
|
|
817
817
|
const k = [{ name: "microphone" }];
|
|
818
818
|
!a.cameraOff && k.push({ name: "camera" }), Promise.all(k.map((l) => {
|
|
819
819
|
var p;
|
|
@@ -831,7 +831,7 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
831
831
|
const o = I.document.createElement("div");
|
|
832
832
|
return o.className = "ul-video-container", o.appendChild(((t) => {
|
|
833
833
|
const r = I.document.createElement("div");
|
|
834
|
-
return r.className = "ul-video-player-loading", r.id =
|
|
834
|
+
return r.className = "ul-video-player-loading", r.id = Ve(t), ["first", "second", "third", "fourth"].map((i) => {
|
|
835
835
|
const s = I.document.createElement("div");
|
|
836
836
|
s.className = i, r.appendChild(s);
|
|
837
837
|
}), r;
|
|
@@ -845,23 +845,23 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
845
845
|
return i.href = "https://videojs.com/html5-video-support/", i.target = "_blank", i.innerHTML = "supports HTML5 video", r.appendChild(i), t.appendChild(r), o.appendChild(t), o;
|
|
846
846
|
}, $n = (e, o) => {
|
|
847
847
|
e.children()[0].classList.remove("vjs-hidden"), e.audioPlayerPlaceholder.hide(), I.document.getElementById(`${e.id()}_html5_api`).style.height = "100%";
|
|
848
|
-
},
|
|
848
|
+
}, Ee = (e, o) => I.document.getElementById(e) ? o ? I.videojs(e, o) : I.videojs(e) : (console.error(`Error in finding player element with ID, ${e}`), null), Hn = (e, o, t, r = !1, i = "https://api.sprig.com", s = document, d = null, u = null) => {
|
|
849
849
|
I.document = s;
|
|
850
850
|
const a = e + an, v = pn(a);
|
|
851
851
|
return I.document.addEventListener("securitypolicyviolation", (y) => {
|
|
852
852
|
le(new Error(`Voice & Video feature violates ${y.violatedDirective} web page CSP policies for the question player.`), "playerDeviceError", i, {});
|
|
853
853
|
}), ln(sn, () => {
|
|
854
|
-
I.document.getElementById(
|
|
854
|
+
I.document.getElementById(Ve(a)).remove(), Me(a, v);
|
|
855
855
|
const y = { playsinline: !0, playbackRates: [0.5, 1, 1.5, 2], fill: !0 };
|
|
856
856
|
try {
|
|
857
|
-
const c = e +
|
|
857
|
+
const c = e + Ze;
|
|
858
858
|
Me(c, v);
|
|
859
|
-
const g =
|
|
859
|
+
const g = Ee(a, y), w = Ee(c, { muted: !0, ...y });
|
|
860
860
|
if (!g || !w) return;
|
|
861
861
|
((f, _, R) => {
|
|
862
|
-
f.addClass(`ul${
|
|
863
|
-
const
|
|
864
|
-
_ && f.src(_), f.addChild(
|
|
862
|
+
f.addClass(`ul${Ze}`);
|
|
863
|
+
const L = new (I.videojs.getComponent("Component"))(f);
|
|
864
|
+
_ && f.src(_), f.addChild(L), R && R(f);
|
|
865
865
|
})(w, d, u), d || w.addClass(W);
|
|
866
866
|
const C = dn(g, ["PlaybackRateMenuButton", "PlayToggle", "FullscreenToggle"]), b = C.children().find((f) => f.name_ === "FullscreenToggle");
|
|
867
867
|
b.hasClass("vjs-disabled") && b.hide(), cn(g, C, o, t, r, w);
|
|
@@ -873,17 +873,17 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
873
873
|
if (!e) return null;
|
|
874
874
|
const o = e.match(/https:\/\/stream.mux.com\/(.*)/);
|
|
875
875
|
let t = o ? o[1] : null;
|
|
876
|
-
return t.includes(
|
|
877
|
-
},
|
|
878
|
-
const r = `ul-card-video__question_player-q${t}`, { apiURL: i, viewDocument: s } =
|
|
876
|
+
return t.includes(Qe) && (t = t.replace(Qe, "")), t ? `https://image.mux.com/${t}/thumbnail.jpg?time=0` : null;
|
|
877
|
+
}, N = { UPLOAD_STARTED: "upload.started", UPLOAD_PROGRESS: "upload.progress", UPLOAD_FINISHED: "upload.finished", DELETE: "delete", ERROR: "error", MEDIA_TYPE: "media.type", PERMISSION_DENIED: "permission_denied", OTHER: "other", UPLOAD_ID: "upload.id", UPLOAD_PROGRESS_PCT: "upload.progress.pct", MEDIA_RECORDING_UID: "media.recording.uid", MEDIA_TYPE_VIDEO: "video", MEDIA_TYPE_AUDIO: "audio" }, X = { PlaybackRateMenuButton: "Speed", PlayToggle: "Play", FullscreenToggle: "Expand", TurnOnCamera: "Turn on", TurnOffCamera: "Turn off", DeleteButton: "Delete", RecordButton: "Record", StopButton: "Stop", PauseButton: "Pause" }, Fn = ({ properties: e, surveyVideoUrl: o, questionId: t }) => {
|
|
878
|
+
const r = `ul-card-video__question_player-q${t}`, { apiURL: i, viewDocument: s } = z((d) => ({ apiURL: d.apiURL, viewDocument: d.viewDocument }));
|
|
879
879
|
return n("div", { id: r, ref: (d) => {
|
|
880
880
|
if (d && d.children.length === 0 && !e.properties.hideRecordedPrompt) {
|
|
881
|
-
const u = Hn(r, { src: o, type: "application/x-mpegURL" }, void 0, e.properties.mediaType ===
|
|
881
|
+
const u = Hn(r, { src: o, type: "application/x-mpegURL" }, void 0, e.properties.mediaType === N.MEDIA_TYPE_AUDIO, i, s);
|
|
882
882
|
d.appendChild(u);
|
|
883
883
|
}
|
|
884
884
|
} });
|
|
885
885
|
}, me = ({ isDisabled: e, onClick: o, children: t }) => n(oe, { className: "ul-card__button-checkmark", disabled: e, onClick: o, type: "button", children: [n("svg", { fill: "none", height: "10", viewBox: "0 0 13 10", width: "13", xmlns: "http://www.w3.org/2000/svg", children: n("path", { d: "M11.5 1.5L4.5 8.5L1 5", stroke: "#ffffff", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }) }), t || "Ok"] }), zn = ({ className: e, next: o, properties: t, questionId: r, type: i }) => {
|
|
886
|
-
const { useMobileStyling: s, border: d } =
|
|
886
|
+
const { useMobileStyling: s, border: d } = z((T) => ({ useMobileStyling: T.useMobileStyling, border: T.border })), [u, a] = Z(!1), [v, y] = Z(""), [c, g] = Z(!1), w = t == null ? void 0 : t.collectName, C = (t == null ? void 0 : t.nameLabelText) || "Full Name", b = (t == null ? void 0 : t.consentText) || "I agree to the stated conditions", f = (t == null ? void 0 : t.submitButtonText) || "Submit", _ = !!v.trim(), R = u && (!w || _), L = (T, H = !1) => {
|
|
887
887
|
T.preventDefault(), T.stopPropagation();
|
|
888
888
|
let $ = null;
|
|
889
889
|
if (!H) {
|
|
@@ -892,30 +892,30 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
892
892
|
}
|
|
893
893
|
o({ value: $, questionId: r, type: i }, !!H || R);
|
|
894
894
|
};
|
|
895
|
-
return n("div", { className: A(e, "ul-card__consent-legal", "fade-in-transition"), children: n(ie, { embeddedType: "pdf", properties: t, children: n(de, { children: [n("div", { className: "sprig-stretch", children: [n(
|
|
895
|
+
return n("div", { className: A(e, "ul-card__consent-legal", "fade-in-transition"), children: n(ie, { embeddedType: "pdf", properties: t, children: n(de, { children: [n("div", { className: "sprig-stretch", children: [n($e, { allowTextEntry: !1, border: d, error: c && !u, id: "consent", isRadio: !1, isSelected: u, label: b, onUserInputChanged: ({ selected: T }) => {
|
|
896
896
|
T !== u && a(!u);
|
|
897
897
|
}, useMobileStyling: s }), w && n("input", { "aria-label": C, "aria-placeholder": C, className: A(K("ul-consent-legal__name-input", s)), "data-gramm": "false", maxLength: 250, name: "name", onBlur: (T) => {
|
|
898
|
-
T.currentTarget.style.borderColor = c && !_ ?
|
|
898
|
+
T.currentTarget.style.borderColor = c && !_ ? Te : rn;
|
|
899
899
|
}, onFocus: (T) => {
|
|
900
|
-
T.currentTarget.style.borderColor = c && !_ ?
|
|
900
|
+
T.currentTarget.style.borderColor = c && !_ ? Te : d;
|
|
901
901
|
}, onInput: (T) => {
|
|
902
902
|
T.preventDefault(), T.stopPropagation(), y(T.currentTarget.value);
|
|
903
|
-
}, placeholder: C, style: c && !_ ? { borderColor:
|
|
903
|
+
}, placeholder: C, style: c && !_ ? { borderColor: Te } : {}, tabIndex: 0, value: v })] }), n("div", { className: "ul-card__button-wrapper ul-card-vertical__button-wrapper", children: [n(me, { isDisabled: !R, onClick: (T) => L(new SubmitEvent(T.type)), children: re({ buttonText: f }) }), t.required === !1 && n("button", { className: "ul-card-skip__button", onClick: (T) => L(new SubmitEvent(T.type), !0), children: Oe(t) })] })] }) }) }, r);
|
|
904
904
|
}, Gn = () => {
|
|
905
|
-
const { destroy: e, forceBrandedLogo: o } =
|
|
905
|
+
const { destroy: e, forceBrandedLogo: o } = z((t) => ({ destroy: t.destroy, forceBrandedLogo: t.forceBrandedLogo }));
|
|
906
906
|
return ae(() => {
|
|
907
907
|
setTimeout(() => {
|
|
908
|
-
e(
|
|
908
|
+
e(Ae);
|
|
909
909
|
}, o ? 4e3 : 2e3);
|
|
910
910
|
}, [e, o]), n("div", { className: "end-of-survey-text", children: "End of survey" });
|
|
911
911
|
}, Qn = ({ activeValue: e, border: o, icon: t, enableCspTrustedTypes: r, isPressed: i, range: s, scaleLabelType: d, selectedValue: u, setSelectedValue: a, setActiveValue: v, setIsPressed: y, useMobileStyling: c, value: g, viewDocument: w }) => {
|
|
912
|
-
const C = `option-${g}`, b = d === "number", f = d === "star", _ = d === "smiley", R = b && g === e || g === u, [
|
|
912
|
+
const C = `option-${g}`, b = d === "number", f = d === "star", _ = d === "smiley", R = b && g === e || g === u, [L, T] = (() => {
|
|
913
913
|
const m = f && u !== null && g <= u;
|
|
914
914
|
return f && g <= e || _ && g === e || m || g === e || g === u ? [o, i || m || g === u ? 1 : 0.3] : ["", 1];
|
|
915
915
|
})(), H = ye(() => {
|
|
916
|
-
const m = { borderColor: R ?
|
|
917
|
-
return b ? { ...m, backgroundColor: u === g ?
|
|
918
|
-
}, [R,
|
|
916
|
+
const m = { borderColor: R ? L : "", fillOpacity: R ? "" : T, zIndex: R ? 3 : "auto", color: u === g ? "#fff" : "" };
|
|
917
|
+
return b ? { ...m, backgroundColor: u === g ? L : "" } : { ...m, color: f || _ || u === g ? L : "" };
|
|
918
|
+
}, [R, L, T, u, g, b, f, _]), $ = ye(() => Nn((({ icon: m, scaleLabelType: h, value: k, selectedValue: l }) => {
|
|
919
919
|
if (h === "smiley" && k === l) {
|
|
920
920
|
let p = 0;
|
|
921
921
|
return m.replace(/black/g, () => ++p == 1 ? "black" : "white");
|
|
@@ -941,10 +941,10 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
941
941
|
v(-1), y(!1);
|
|
942
942
|
}, style: H, tabIndex: 0 });
|
|
943
943
|
}, Zn = ({ className: e, labels: o, next: t, properties: r, questionId: i, type: s }) => {
|
|
944
|
-
const { border: d, useMobileStyling: u, viewDocument: a, enableCspTrustedTypes: v } =
|
|
944
|
+
const { border: d, useMobileStyling: u, viewDocument: a, enableCspTrustedTypes: v } = z((h) => ({ border: h.border, useMobileStyling: h.useMobileStyling, viewDocument: h.viewDocument, enableCspTrustedTypes: h.enableCspTrustedTypes })), [y, c] = Z(-1), [g, w] = Z(!1), [C, b] = Z(null), f = o && o.left, _ = o && o.right;
|
|
945
945
|
let R;
|
|
946
|
-
const { range:
|
|
947
|
-
|
|
946
|
+
const { range: L, scaleLabelType: T, ratingIcons: H } = r;
|
|
947
|
+
L && (R = Number(L));
|
|
948
948
|
const $ = R || 5, m = (h) => {
|
|
949
949
|
var k, l;
|
|
950
950
|
switch (T) {
|
|
@@ -959,9 +959,9 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
959
959
|
return n("form", { className: A(e, "ul-card--likert", "fade-in-transition"), children: n(ie, { properties: r, children: [n(ce, { children: [n("div", { "aria-label": `Rating (1 - ${$})`, className: "ul-card--likert__numbers", role: "radiogroup", children: [...Array($)].map((h, k) => {
|
|
960
960
|
const l = k + 1;
|
|
961
961
|
return n(Qn, { activeValue: y, border: d, enableCspTrustedTypes: v, icon: m(k), isPressed: g, range: $, scaleLabelType: T, selectedValue: C, setActiveValue: c, setIsPressed: w, setSelectedValue: b, useMobileStyling: u, value: l, viewDocument: a }, k);
|
|
962
|
-
}) }), n("div", { className: "ul-card--likert__labels", children: [n("span", { children: f }), n("span", { children: _ })] })] }), n(de, { children: n(me, { isDisabled: C === null && r.required, onClick: () => t({ value: C, questionId: i, type: s }, !0), children: re(r) }) })] }) }, i);
|
|
962
|
+
}) }), (f || _) && n("div", { className: "ul-card--likert__labels", children: [n("span", { children: f }), n("span", { children: _ })] })] }), n(de, { children: n(me, { isDisabled: C === null && r.required, onClick: () => t({ value: C, questionId: i, type: s }, !0), children: re(r) }) })] }) }, i);
|
|
963
963
|
}, Yn = ({ columns: e, onSelect: o, options: t, selectedOptions: r }) => {
|
|
964
|
-
const i = se([]), { border: s, useMobileStyling: d } =
|
|
964
|
+
const i = se([]), { border: s, useMobileStyling: d } = z((g) => ({ border: g.border, useMobileStyling: g.useMobileStyling })), u = t.findIndex((g) => r[g.id] === null), [a, v] = Z(u), y = be((g, w) => {
|
|
965
965
|
o(g, w);
|
|
966
966
|
const C = a + 1, b = t[C];
|
|
967
967
|
b && r[b.id] === null && v(C);
|
|
@@ -972,7 +972,7 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
972
972
|
return v(C && !((b = window.UserLeap) != null && b.isMobileSDK) ? -1 : g);
|
|
973
973
|
}, ref: (b) => {
|
|
974
974
|
b && (i.current[g] = b);
|
|
975
|
-
}, showHeaderCheck: r[w.id] !== null, children: n("div", { style: { paddingTop: "12px" }, children: e.map((b) => n(
|
|
975
|
+
}, showHeaderCheck: r[w.id] !== null, children: n("div", { style: { paddingTop: "12px" }, children: e.map((b) => n($e, { allowTextEntry: !1, ariaLabel: `${w.label}-${b.label}`, border: s, error: !1, id: `${w.id}-${b.value}`, isRadio: !0, isSelected: r[w.id] === b.value, label: b.label, onUserInputChanged: () => y(w.id, b.value), useMobileStyling: d }, b.label)) }) }, w.id);
|
|
976
976
|
}, [s, e, a, y, r, d]);
|
|
977
977
|
return n("div", { children: t.map((g, w) => c(w, g)) });
|
|
978
978
|
}, Wn = ({ className: e, next: o, options: t, properties: r, questionId: i, type: s, onSubmitButtonClick: d }) => {
|
|
@@ -984,19 +984,19 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
984
984
|
}, options: t, selectedOptions: c }) }), n(de, { children: n(me, { isDisabled: (w = c, a && Object.values(w).every((C) => C == null)), onClick: () => v(new SubmitEvent("submit")), children: re(r) }) })] }) }, i);
|
|
985
985
|
var w;
|
|
986
986
|
}, mn = ({ className: e, onSubmit: o, options: t = [], properties: r, questionId: i, type: s, showIndividualSubmit: d = !1, onSubmitButtonClick: u }) => {
|
|
987
|
-
const { border: a, useMobileStyling: v } =
|
|
987
|
+
const { border: a, useMobileStyling: v } = z((l) => ({ border: l.border, useMobileStyling: l.useMobileStyling })), y = t.reduce((l, p) => (l[p.id] = { isSelected: !1 }, l), {}), [c, g] = Z(y), w = s === "multiplechoice", C = r.required, b = t.find((l) => {
|
|
988
988
|
var p;
|
|
989
989
|
return (p = l.optionProperties) == null ? void 0 : p.noneOfTheAbove;
|
|
990
990
|
}), f = (l) => Object.entries(l).some(([p, x]) => {
|
|
991
991
|
var M;
|
|
992
992
|
const S = t.find((O) => `${O.id}` === p), j = x.userText === void 0 || x.userText.trim() === "";
|
|
993
993
|
return ((M = S == null ? void 0 : S.optionProperties) == null ? void 0 : M.allowsTextEntry) && j && x.isSelected;
|
|
994
|
-
}), _ = (l) => Object.values(l).filter((p) => p.isSelected).length, R = r.minSelect && r.minSelect > 0 && r.maxSelectMode ===
|
|
994
|
+
}), _ = (l) => Object.values(l).filter((p) => p.isSelected).length, R = r.minSelect && r.minSelect > 0 && r.maxSelectMode === ke.Range && _(c) < r.minSelect && (C || _(c) > 0), L = (l) => f(l) || C && !_(l) || !((p) => {
|
|
995
995
|
const { minSelect: x = 0, maxSelect: S = 1 / 0, maxSelectMode: j } = r, M = _(p);
|
|
996
996
|
switch (j) {
|
|
997
|
-
case
|
|
997
|
+
case ke.Maximum:
|
|
998
998
|
return M <= S;
|
|
999
|
-
case
|
|
999
|
+
case ke.Range:
|
|
1000
1000
|
return M === 0 || M >= x;
|
|
1001
1001
|
default:
|
|
1002
1002
|
return !0;
|
|
@@ -1008,7 +1008,7 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
1008
1008
|
k(l.id, l.selected, l.userText, l.noneOfTheAbove);
|
|
1009
1009
|
}, m = (l) => {
|
|
1010
1010
|
var p;
|
|
1011
|
-
return (r == null ? void 0 : r.maxSelectMode) !==
|
|
1011
|
+
return (r == null ? void 0 : r.maxSelectMode) !== ke.Unlimited && _(c) === (r == null ? void 0 : r.maxSelect) && !((p = c[l]) != null && p.isSelected);
|
|
1012
1012
|
}, h = () => {
|
|
1013
1013
|
o(c, !0), u && u();
|
|
1014
1014
|
}, k = (l, p, x, S) => {
|
|
@@ -1017,16 +1017,16 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
1017
1017
|
else b && !S && c[b.id].isSelected && (j[b.id].isSelected = !1);
|
|
1018
1018
|
j[l] = { isSelected: p, userText: x }, g(j);
|
|
1019
1019
|
};
|
|
1020
|
-
return n("form", { className: A(e, "ul-card--multiple", "fade-in-transition"), id: "text-form", onSubmit: h, children: n(ie, { properties: r, children: [n(ce, { children: [r.isDropdown ? n(
|
|
1020
|
+
return n("form", { className: A(e, "ul-card--multiple", "fade-in-transition"), id: "text-form", onSubmit: h, children: n(ie, { properties: r, children: [n(ce, { children: [r.isDropdown ? n(Ln, { disabledOptions: t.filter((l) => m(l.id)), dropdownFooter: R ? n("div", { className: "ul-card__min-select-counter", style: { marginLeft: "16px" }, children: [_(c), "/", r.minSelect] }) : void 0, isMultiSelect: !w, multiselectText: r.dropdownMultiselectedText ?? "choices selected", onChange: (l) => {
|
|
1021
1021
|
const p = { ...c };
|
|
1022
1022
|
for (const x of t) l.includes(x) ? p[x.id].isSelected = !0 : p[x.id].isSelected = !1;
|
|
1023
1023
|
g(p);
|
|
1024
1024
|
}, options: t, placeholderText: r.dropdownPlaceholderText ?? (w ? "Select choice" : "Select choice(s)"), value: t.filter((l) => c[l.id].isSelected) }) : n("div", { className: A(K("ul-card__choices", v)), role: w ? "radiogroup" : "group", children: [t.map(({ id: l, label: p, value: x, optionProperties: S }) => {
|
|
1025
1025
|
var q, Q;
|
|
1026
1026
|
const j = `${l}`, { allowsTextEntry: M, noneOfTheAbove: O } = { allowsTextEntry: !1, noneOfTheAbove: !1, ...S };
|
|
1027
|
-
return n(
|
|
1027
|
+
return n($e, { allowTextEntry: M, border: a, disabled: m(j), error: (B = c, f(B)), id: j, isRadio: w, isSelected: !!((q = c[j]) != null && q.isSelected), label: p, noneOfTheAbove: O, onUserInputChanged: $, promptText: (S == null ? void 0 : S.otherOptionPlaceholder) || "Please specify", text: (Q = c[l]) == null ? void 0 : Q.userText, useMobileStyling: v, value: x }, j);
|
|
1028
1028
|
var B;
|
|
1029
|
-
}), !!R && n("div", { className: "ul-card__min-select-counter", children: [_(c), "/", r.minSelect] })] }), H && n(Rn, { handleSubmit: h, isSubmitDisabled:
|
|
1029
|
+
}), !!R && n("div", { className: "ul-card__min-select-counter", children: [_(c), "/", r.minSelect] })] }), H && n(Rn, { handleSubmit: h, isSubmitDisabled: L(c) })] }), n(de, { children: n(me, { isDisabled: L(c), onClick: h, children: re(r) }) })] }) }, i);
|
|
1030
1030
|
}, Kn = (e) => {
|
|
1031
1031
|
const { questionId: o, type: t, next: r, options: i } = e;
|
|
1032
1032
|
return n(mn, { ...e, onSubmit: (s, d) => {
|
|
@@ -1044,7 +1044,7 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
1044
1044
|
r({ value: d, secondaryValue: u, questionId: o, type: t }, s);
|
|
1045
1045
|
} });
|
|
1046
1046
|
}, Xn = ({ className: e, labels: o, properties: t, next: r, questionId: i, type: s }) => {
|
|
1047
|
-
const [d, u] = Z(null), { border: a, useMobileStyling: v, viewDocument: y } =
|
|
1047
|
+
const [d, u] = Z(null), { border: a, useMobileStyling: v, viewDocument: y } = z((w) => ({ border: w.border, useMobileStyling: w.useMobileStyling, viewDocument: w.viewDocument })), c = o && o.left, g = o && o.right;
|
|
1048
1048
|
return n("form", { className: A(e, "ul-card--nps", "fade-in-transition"), children: n(ie, { properties: t, children: [n(ce, { children: [n("div", { className: "ul-card--nps__numbers", children: [...Array(11)].map((w, C) => n("button", { className: A(K("nps-number", v), K(`nps-number-${C}`, v)), id: `option-${C}`, onClick: (b) => {
|
|
1049
1049
|
b.preventDefault(), b.stopPropagation(), u(C);
|
|
1050
1050
|
}, onKeyDown: (b) => {
|
|
@@ -1052,36 +1052,36 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
1052
1052
|
const f = y.querySelectorAll("button.nps-number");
|
|
1053
1053
|
b.key === "ArrowRight" ? (_ = f[C + 1]) == null || _.focus() : b.key === "ArrowLeft" ? (R = f[C - 1]) == null || R.focus() : b.key !== "Enter" && b.key !== " " || (b.preventDefault(), b.stopPropagation(), u(C));
|
|
1054
1054
|
}, onPointerDown: (b) => {
|
|
1055
|
-
b.currentTarget.style.zIndex = "2"
|
|
1055
|
+
b.currentTarget.style.zIndex = "2";
|
|
1056
1056
|
}, onPointerLeave: (b) => {
|
|
1057
|
-
b.currentTarget.style.zIndex = "auto"
|
|
1057
|
+
b.currentTarget.style.zIndex = "auto";
|
|
1058
1058
|
}, style: d === C ? { backgroundColor: a, color: "#fff" } : void 0, tabIndex: 0, children: C }, C)) }), n("div", { className: "ul-card--nps__labels", children: [n("span", { children: c }), n("span", { children: g })] })] }), n(de, { children: n(me, { isDisabled: d === null && t.required, onClick: () => r({ value: d, questionId: i, type: s }, !0), children: re(t) }) })] }) }, i);
|
|
1059
1059
|
}, et = ({ className: e, next: o, properties: t, questionId: r, type: i, onSubmitButtonClick: s }) => {
|
|
1060
|
-
const { border: d, useMobileStyling: u, update: a } =
|
|
1060
|
+
const { border: d, useMobileStyling: u, update: a } = z((f) => ({ border: f.border, useMobileStyling: f.useMobileStyling, update: f.update })), [v, y] = Z(""), c = se(null), g = v.trim(), w = t.required === !0 && !g, C = Mn(c, () => a()), b = t && t.openTextPlaceholder ? t.openTextPlaceholder : "";
|
|
1061
1061
|
return n("form", { className: A(e, "ul-card-text", "fade-in-transition"), id: "text-form", children: n(ie, { properties: t, children: n("div", { className: "ul-card-text", children: [n(ce, { children: [n("div", { className: "ul-card-text__container", children: n("textarea", { "aria-describedby": "ul-caption", "aria-labelledby": "ul-question", "aria-multiline": "true", "aria-placeholder": b, className: A(K("ul-card-text__input", u)), "data-gramm": "false", maxLength: 5e3, name: "text", onBlur: (f) => {
|
|
1062
|
-
f.currentTarget.style.borderColor =
|
|
1062
|
+
f.currentTarget.style.borderColor = rn;
|
|
1063
1063
|
}, onChange: (f) => {
|
|
1064
1064
|
const { value: _ } = f.currentTarget;
|
|
1065
1065
|
C(), f.preventDefault(), f.stopPropagation(), y(_);
|
|
1066
1066
|
}, onFocus: (f) => {
|
|
1067
1067
|
f.currentTarget.style.borderColor = d;
|
|
1068
|
-
}, placeholder: b, ref: c, role: "textbox", tabIndex: 0 }) }), t.footerHtml && n(
|
|
1068
|
+
}, placeholder: b, ref: c, role: "textbox", tabIndex: 0 }) }), t.footerHtml && n(xe, { className: "footer", html: t.footerHtml })] }), n(de, { children: n(me, { isDisabled: w, onClick: (f) => {
|
|
1069
1069
|
f.preventDefault(), f.stopPropagation();
|
|
1070
1070
|
const _ = t.required !== !0 || g.length > 0;
|
|
1071
1071
|
o({ value: v, questionId: r, type: i }, _), s && s();
|
|
1072
1072
|
}, children: re(t) }) })] }) }) }, r);
|
|
1073
1073
|
}, nt = ({ className: e, labels: o, next: t, properties: r, questionId: i, type: s, onSubmitButtonClick: d, options: u }) => {
|
|
1074
|
-
const a = se(null), v = se(0), y = se(0), c = se(null), g = se(!1), w = se([]), [C, b] = Z(() => (r == null ? void 0 : r.required) === !0), [f, _] = Z(() => u.map((E) => ({ ...E, rank: null }))), R = ye(() => Array.from({ length: u.length }, (E, D) => D + 1), [u.length]), { useMobileStyling:
|
|
1074
|
+
const a = se(null), v = se(0), y = se(0), c = se(null), g = se(!1), w = se([]), [C, b] = Z(() => (r == null ? void 0 : r.required) === !0), [f, _] = Z(() => u.map((E) => ({ ...E, rank: null }))), R = ye(() => Array.from({ length: u.length }, (E, D) => D + 1), [u.length]), { useMobileStyling: L, isPreview: T, headers: H } = z((E) => ({ useMobileStyling: E.useMobileStyling, isPreview: E.isPreview, headers: E.headers })), $ = (H == null ? void 0 : H["userleap-platform"]) === "android", m = L && !T && !$, h = !m && !$, k = (E, D) => {
|
|
1075
1075
|
_((U) => {
|
|
1076
1076
|
const P = parseInt(D), F = U.map((V) => ({ ...V }));
|
|
1077
1077
|
F.some((V) => V.rank == null) && F.forEach((V, he) => V.rank = he + 1);
|
|
1078
1078
|
const J = F.findIndex((V) => V.id === E);
|
|
1079
1079
|
if (J === -1) return U;
|
|
1080
|
-
const
|
|
1081
|
-
return P <
|
|
1082
|
-
V.id !== E && V.rank >= P && V.rank <
|
|
1083
|
-
}) : P >
|
|
1084
|
-
V.id !== E && V.rank >
|
|
1080
|
+
const G = F[J].rank;
|
|
1081
|
+
return P < G ? F.forEach((V) => {
|
|
1082
|
+
V.id !== E && V.rank >= P && V.rank < G && (V.rank = V.rank + 1);
|
|
1083
|
+
}) : P > G && F.forEach((V) => {
|
|
1084
|
+
V.id !== E && V.rank > G && V.rank <= P && (V.rank = V.rank - 1);
|
|
1085
1085
|
}), F[J].rank = P, F.sort((V, he) => V.rank - he.rank), O(), F;
|
|
1086
1086
|
});
|
|
1087
1087
|
}, l = (E, D) => {
|
|
@@ -1120,8 +1120,8 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
1120
1120
|
}, j = (E, D) => {
|
|
1121
1121
|
_((U) => {
|
|
1122
1122
|
const P = U.map((J) => ({ ...J })), [F] = P.splice(E, 1);
|
|
1123
|
-
return P.splice(D, 0, F), P.forEach((J,
|
|
1124
|
-
J.rank =
|
|
1123
|
+
return P.splice(D, 0, F), P.forEach((J, G) => {
|
|
1124
|
+
J.rank = G + 1;
|
|
1125
1125
|
}), O(), P;
|
|
1126
1126
|
});
|
|
1127
1127
|
}, M = (E) => {
|
|
@@ -1138,27 +1138,27 @@ const ue = async ({ event: e, apiBase: o, headers: t, visitorId: r, envId: i, me
|
|
|
1138
1138
|
};
|
|
1139
1139
|
return n("form", { className: A(e, "ul-card-rank", "fade-in-transition"), onSubmit: (E) => {
|
|
1140
1140
|
E.preventDefault(), M(f), d && d();
|
|
1141
|
-
}, children: n(ie, { properties: r, children: n(
|
|
1141
|
+
}, children: n(ie, { properties: r, children: n(Ce, $ ? { children: [n(ce, { children: n("div", { className: "ul-card--rank__question-inner-container", children: [n("div", { className: "ul-card-rank__labels", children: n("span", { children: ["1 - ", B] }) }), n("ol", { className: "ul-card-rank__list", children: f.map(({ id: E, label: D, rank: U }) => n("li", { className: "ul-card-rank__option", children: [n("select", { "aria-label": `Rank for ${D}`, className: A("ul-card-rank__select", U == null && "ul-card-rank__select--placeholder"), name: `rank[${E}]`, onChange: (P) => k(E, P.currentTarget.value), value: U ?? "", children: [U == null && n("option", { className: "ul-card-rank__select-option", disabled: !0, value: "", children: "-" }), R.map((P) => n("option", { className: "ul-card-rank__select-option", value: P, children: P }, `${P}-${i}`))] }), n("span", { children: D })] }, E)) }), n("div", { className: "ul-card-rank__labels", children: n("span", { children: [Q, " - ", q] }) })] }) }), n(de, { children: n("div", { className: "ul-card__button-wrapper", children: n(oe, { disabled: C, children: re(r) }) }) })] } : { children: [n(ce, { children: n("div", { className: "ul-card--rank__question-inner-container", children: [n("div", { className: "ul-card-rank__labels", children: n("span", { children: ["1 - ", B] }) }), n("ol", { className: "ul-card-rank__list", onDragOver: $ ? void 0 : (E) => {
|
|
1142
1142
|
E.preventDefault(), E.dataTransfer && (E.dataTransfer.dropEffect = "move");
|
|
1143
1143
|
}, children: f.map(({ id: E, label: D, rank: U }, P) => {
|
|
1144
|
-
return n("li", { className: "ul-card-rank__option", draggable: !!h || void 0, onDragEnd: h ? ve : void 0, onDragEnter: h ? Y : void 0, onDragLeave: h ? ee : void 0, onDragStart: h ? (J = P, (
|
|
1145
|
-
a.current = J,
|
|
1146
|
-
}) : void 0, onDrop: h ? (F = P, (
|
|
1147
|
-
var he,
|
|
1148
|
-
|
|
1144
|
+
return n("li", { className: "ul-card-rank__option", draggable: !!h || void 0, onDragEnd: h ? ve : void 0, onDragEnter: h ? Y : void 0, onDragLeave: h ? ee : void 0, onDragStart: h ? (J = P, (G) => {
|
|
1145
|
+
a.current = J, G.dataTransfer && (G.dataTransfer.effectAllowed = "move", G.dataTransfer.setData("text/plain", String(J)), G.currentTarget.classList.add("is-dragging"));
|
|
1146
|
+
}) : void 0, onDrop: h ? (F = P, (G) => {
|
|
1147
|
+
var he, Ge;
|
|
1148
|
+
G.preventDefault(), G.currentTarget.classList.remove("is-drop-target");
|
|
1149
1149
|
const V = a.current;
|
|
1150
|
-
a.current = null, (
|
|
1151
|
-
}) : void 0, ref: (
|
|
1150
|
+
a.current = null, (Ge = (he = G.currentTarget.closest(".ul-card-rank__list")) == null ? void 0 : he.querySelector(".is-dragging")) == null || Ge.classList.remove("is-dragging"), V != null && V !== F && j(V, F);
|
|
1151
|
+
}) : void 0, ref: (G) => w.current[P] = G, children: [n("select", { "aria-label": `Rank for ${D}`, className: A("ul-card-rank__select", U == null && "ul-card-rank__select--placeholder"), name: `rank[${E}]`, onChange: (G) => k(E, G.currentTarget.value), value: U ?? "", children: [U == null && n("option", { className: "ul-card-rank__select-option", disabled: !0, value: "", children: "-" }), R.map((G) => n("option", { className: "ul-card-rank__select-option", value: G, children: G }, G))] }), n("span", { children: D }), !$ && n("button", { "aria-label": `Drag ${D} to reorder`, className: "ul-card-rank__drag-btn", onTouchEnd: m ? S : void 0, onTouchMove: m ? x : void 0, onTouchStart: m ? p(P) : void 0, title: "Drag to reorder", type: "button", children: n("svg", { fill: "none", height: "17", viewBox: "0 0 16 17", width: "16", xmlns: "http://www.w3.org/2000/svg", children: n("path", { d: "M5.75 11.625C6.37132 11.625 6.875 12.1287 6.875 12.75C6.875 13.3713 6.37132 13.875 5.75 13.875C5.12868 13.875 4.625 13.3713 4.625 12.75C4.625 12.1287 5.12868 11.625 5.75 11.625ZM10.25 11.625C10.8713 11.625 11.375 12.1287 11.375 12.75C11.375 13.3713 10.8713 13.875 10.25 13.875C9.62868 13.875 9.125 13.3713 9.125 12.75C9.125 12.1287 9.62868 11.625 10.25 11.625ZM5.75 7.375C6.37132 7.375 6.875 7.87868 6.875 8.5C6.875 9.12132 6.37132 9.625 5.75 9.625C5.12868 9.625 4.625 9.12132 4.625 8.5C4.625 7.87868 5.12868 7.375 5.75 7.375ZM10.25 7.375C10.8713 7.375 11.375 7.87868 11.375 8.5C11.375 9.12132 10.8713 9.625 10.25 9.625C9.62868 9.625 9.125 9.12132 9.125 8.5C9.125 7.87868 9.62868 7.375 10.25 7.375ZM5.75 3.125C6.37132 3.125 6.875 3.62868 6.875 4.25C6.875 4.87132 6.37132 5.375 5.75 5.375C5.12868 5.375 4.625 4.87132 4.625 4.25C4.625 3.62868 5.12868 3.125 5.75 3.125ZM10.25 3.125C10.8713 3.125 11.375 3.62868 11.375 4.25C11.375 4.87132 10.8713 5.375 10.25 5.375C9.62868 5.375 9.125 4.87132 9.125 4.25C9.125 3.62868 9.62868 3.125 10.25 3.125Z", fill: "currentColor" }) }) })] }, E);
|
|
1152
1152
|
var F, J;
|
|
1153
1153
|
}) }), n("div", { className: "ul-card-rank__labels", children: n("span", { children: [Q, " - ", q] }) })] }) }), n(de, { children: n("div", { className: "ul-card__button-wrapper", children: n(oe, { disabled: C, children: re(r) }) }) })] }) }) }, i);
|
|
1154
|
-
}, Be = 1, vn = 2, hn = 3,
|
|
1155
|
-
}, passthroughData: void 0, recordingMediaTypes: void 0, screenPermissionRequested: !1, type: void 0 }, te = wn((e) => ({ ...
|
|
1156
|
-
e(
|
|
1154
|
+
}, Be = 1, vn = 2, hn = 3, je = (e) => e.type === "av_permission", Je = (e) => e.type === "screen_permission", gn = (e, o) => e === void 0 ? Be : e ? ((t, r) => !(je(r) ? r.permissionDescriptors : []).includes("camera") || t.getVideoTracks().length > 0)(e, o) ? hn : Be : vn, Xe = { avStream: null, currentPage: null, mediaRecordingUids: null, nextQuestion: () => {
|
|
1155
|
+
}, passthroughData: void 0, recordingMediaTypes: void 0, screenPermissionRequested: !1, type: void 0 }, te = wn((e) => ({ ...Xe, reset: () => {
|
|
1156
|
+
e(Xe);
|
|
1157
1157
|
}, updatePage: (o) => {
|
|
1158
1158
|
e(o);
|
|
1159
1159
|
} }));
|
|
1160
1160
|
function qe({ currentPage: e, pages: o }) {
|
|
1161
|
-
const { avStream: t, recordingMediaTypes: r, updatePage: i } = te.getState(), { recorderEventEmitter: s } =
|
|
1161
|
+
const { avStream: t, recordingMediaTypes: r, updatePage: i } = te.getState(), { recorderEventEmitter: s } = z.getState();
|
|
1162
1162
|
s.emit("av.permission", { "permission.descriptors": e.permissionDescriptors, "stream.ready": (d, u) => {
|
|
1163
1163
|
if (t === d) return;
|
|
1164
1164
|
let a = e;
|
|
@@ -1170,7 +1170,7 @@ function qe({ currentPage: e, pages: o }) {
|
|
|
1170
1170
|
} });
|
|
1171
1171
|
}
|
|
1172
1172
|
function Ue({ status: e }) {
|
|
1173
|
-
const { nextQuestion: o, passthroughData: t, mediaRecordingUids: r, reset: i } = te.getState(), { recorderEventEmitter: s, handleUploadUpdate: d, index: u } =
|
|
1173
|
+
const { nextQuestion: o, passthroughData: t, mediaRecordingUids: r, reset: i } = te.getState(), { recorderEventEmitter: s, handleUploadUpdate: d, index: u } = z.getState(), a = { value: { taskStatus: e }, type: "recordedtask", questionId: (t == null ? void 0 : t.questionId) || 1 };
|
|
1174
1174
|
t && s.emit("finish.task", { "begin.callback": (v) => {
|
|
1175
1175
|
d({ mediaRecordingUid: v, isSubmitted: !0, progressPct: 0, isComplete: !1 });
|
|
1176
1176
|
}, "progress.callback": (v, y) => {
|
|
@@ -1181,8 +1181,8 @@ function Ue({ status: e }) {
|
|
|
1181
1181
|
a.value.taskDurationMillisecond = v, r && (a.value.mediaRecordingUids = r), i(), o(a);
|
|
1182
1182
|
} });
|
|
1183
1183
|
}
|
|
1184
|
-
function
|
|
1185
|
-
const { recorderEventEmitter: t, eventEmitFn: r } =
|
|
1184
|
+
function Fe({ pages: e, setIsRequestingPermission: o }) {
|
|
1185
|
+
const { recorderEventEmitter: t, eventEmitFn: r } = z.getState(), { updatePage: i, currentPage: s, recordingMediaTypes: d, screenPermissionRequested: u } = te.getState();
|
|
1186
1186
|
if (!s) return;
|
|
1187
1187
|
const a = e.indexOf(s);
|
|
1188
1188
|
switch (s.type) {
|
|
@@ -1205,7 +1205,7 @@ function ze({ pages: e, setIsRequestingPermission: o }) {
|
|
|
1205
1205
|
return;
|
|
1206
1206
|
}
|
|
1207
1207
|
}
|
|
1208
|
-
const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A(bn, "ul_recorded-task-inset-spacing"), Ie = A("ul-horizontal-button-container", "ul-horizontal-button-container-left"), Cn = ({ richTextBody: e }) => n(
|
|
1208
|
+
const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A(bn, "ul_recorded-task-inset-spacing"), Ie = A("ul-horizontal-button-container", "ul-horizontal-button-container-left"), Cn = ({ richTextBody: e }) => n(xe, { className: "ul-rich-text-body", html: e, id: "ul-task-detail-container" }), _e = ({ required: e, skipButtonText: o, bottom: t = !1 }) => e ? null : n(oe, { className: A(t && "ul-skip-button-below", "ul-button-inactive"), onClick: Ue.bind(null, { status: "abandoned" }), children: o || "Skip" }), ze = (e) => {
|
|
1209
1209
|
const { avStream: o, captureStream: t, recordingMediaTypes: r, updatePage: i } = te.getState(), s = (r == null ? void 0 : r.includes("audio")) || (r == null ? void 0 : r.includes("video"));
|
|
1210
1210
|
ae(() => {
|
|
1211
1211
|
const d = setInterval(() => {
|
|
@@ -1215,26 +1215,26 @@ const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A
|
|
|
1215
1215
|
}, [o, t, s, e, r, i]);
|
|
1216
1216
|
}, tt = ({ content: e, pages: o, required: t }) => {
|
|
1217
1217
|
const { buttonText: r, skipButtonText: i, taskDetail: s } = e;
|
|
1218
|
-
return
|
|
1218
|
+
return ze(o), n("div", { className: "ul-task-page", children: [s && n(Cn, { richTextBody: s }), n("div", { className: Ie, children: [n(oe, { onClick: Fe.bind(null, { pages: o }), children: r }), n(_e, { required: t, skipButtonText: i })] })] }, "start-task");
|
|
1219
1219
|
}, rt = ({ content: e, pages: o, properties: t }) => {
|
|
1220
1220
|
const { buttonText: r, skipButtonText: i } = e;
|
|
1221
|
-
return
|
|
1221
|
+
return ze(o), n("div", { className: "ul-task-page", children: [e.taskDetail && n(Cn, { richTextBody: e.taskDetail }), n(ie, { properties: t, children: n("div", { className: Ie, children: [n(oe, { className: "ul-complete-task-button", onClick: Ue.bind(null, { status: "completed" }), children: r }), n(oe, { className: A("ul-button-inactive"), onClick: Ue.bind(null, { status: "given.up" }), children: i })] }) })] }, "complete-task");
|
|
1222
1222
|
}, ot = ({ content: e, pages: o, required: t }) => {
|
|
1223
|
-
const { buttonText: r, skipButtonText: i } = e, [s] =
|
|
1224
|
-
return n("div", { children: [n("div", { className: yn, children: [n("p", { style: { marginTop: "auto" }, children: e.selectTabText }), n("div", { className: "ul-select-tab-container", children: n("p", { className: fn, children: s }) })] }), n("div", { className: t ? "" : Ie, children: [n(oe, { disabled: d, onClick:
|
|
1225
|
-
}, it = ({ content: e }) => n(
|
|
1226
|
-
const { permissionDeniedHeadline: r, permissionDeniedBody: i, skipButtonText: s, tryAgainButtonText: d } = e, u =
|
|
1223
|
+
const { buttonText: r, skipButtonText: i } = e, [s] = z((a) => [a.tabTitle]), [d, u] = Z(!1);
|
|
1224
|
+
return n("div", { children: [n("div", { className: yn, children: [n("p", { style: { marginTop: "auto" }, children: e.selectTabText }), n("div", { className: "ul-select-tab-container", children: n("p", { className: fn, children: s }) })] }), n("div", { className: t ? "" : Ie, children: [n(oe, { disabled: d, onClick: Fe.bind(null, { pages: o, setIsRequestingPermission: u }), children: r }), n(_e, { required: t, skipButtonText: i })] })] });
|
|
1225
|
+
}, it = ({ content: e }) => n(xe, { className: A(bn, "ul_permission_svg_container", "ul_recorded-task-inset-spacing", "ul-center-horizontally"), html: e.svg }, "ul-permission-request-graphic"), st = ({ content: e, pages: o, required: t }) => {
|
|
1226
|
+
const { permissionDeniedHeadline: r, permissionDeniedBody: i, skipButtonText: s, tryAgainButtonText: d } = e, u = je(o[0]) ? o[0] : null;
|
|
1227
1227
|
return ae(() => {
|
|
1228
1228
|
const a = setInterval(() => {
|
|
1229
1229
|
u !== null && qe({ currentPage: u, pages: o });
|
|
1230
1230
|
}, 1e3);
|
|
1231
1231
|
return () => clearInterval(a);
|
|
1232
|
-
}, [u, o]), u ? n("div", { children: [n("div", { className: yn, children: n("p", { className: "ul-av-permission-denied-paragraph", children: [n("span", { className: "ul-av-permission-denied-headline", children: r }), n("span", { className: fn, children: i })] }) }), n("div", { className: Ie, children: [n(oe, { onClick: qe.bind(null, { currentPage: u, pages: o }), children: d }), n(
|
|
1232
|
+
}, [u, o]), u ? n("div", { children: [n("div", { className: yn, children: n("p", { className: "ul-av-permission-denied-paragraph", children: [n("span", { className: "ul-av-permission-denied-headline", children: r }), n("span", { className: fn, children: i })] }) }), n("div", { className: Ie, children: [n(oe, { onClick: qe.bind(null, { currentPage: u, pages: o }), children: d }), n(_e, { required: t, skipButtonText: s })] })] }) : null;
|
|
1233
1233
|
}, at = ({ stream: e }) => n("video", { autoPlay: !0, className: A("ul_recorded-task-inset-spacing"), id: "ul-record-task-video-preview", muted: !0, ref: (o) => {
|
|
1234
1234
|
o && (o.srcObject = e || null);
|
|
1235
1235
|
} }), lt = ({ content: e, pages: o, required: t }) => {
|
|
1236
1236
|
const { skipButtonText: r } = e, { avStream: i } = te.getState();
|
|
1237
|
-
return
|
|
1237
|
+
return ze(o), n("div", { children: [n(at, { stream: i }), n("div", { className: "ul-vertical-button-container-center", children: [n(oe, { onClick: Fe.bind(null, { pages: o }), children: e.buttonText }), n(_e, { bottom: !0, required: t, skipButtonText: r })] })] });
|
|
1238
1238
|
}, dt = ({ properties: e }) => {
|
|
1239
1239
|
const { pages: o, required: t } = e, { avStream: r, currentPage: i } = te.getState();
|
|
1240
1240
|
if (i === void 0) return null;
|
|
@@ -1253,18 +1253,18 @@ const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A
|
|
|
1253
1253
|
return null;
|
|
1254
1254
|
}
|
|
1255
1255
|
}, ct = ({ className: e, properties: o, next: t, questionId: r }) => {
|
|
1256
|
-
const i =
|
|
1256
|
+
const i = z(), { surveyId: s, responseGroupUid: d, userId: u } = i, a = te(), { screenPermissionRequested: v } = a, y = te((b) => b.avStream);
|
|
1257
1257
|
let c = te((b) => b.currentPage);
|
|
1258
|
-
c || (c = function({ pages: b, userId: f, responseGroupUid: _, surveyId: R, questionId:
|
|
1259
|
-
const { updatePage: H } = te.getState(), { eventEmitFn: $, recorderEventEmitter: m } =
|
|
1258
|
+
c || (c = function({ pages: b, userId: f, responseGroupUid: _, surveyId: R, questionId: L, next: T }) {
|
|
1259
|
+
const { updatePage: H } = te.getState(), { eventEmitFn: $, recorderEventEmitter: m } = z.getState(), h = { questionId: L, surveyId: R, visitorId: f, responseGroupUid: _ };
|
|
1260
1260
|
let k = 0;
|
|
1261
1261
|
m.emit("recorded.task.permission.screen"), $("recorded.task.permission.screen"), m.emit("permission.status", { "permission.status.callback": (p, x, S, j) => {
|
|
1262
1262
|
const M = b[k], { type: O } = M, B = ["screen"];
|
|
1263
|
-
if (
|
|
1263
|
+
if (je(M)) {
|
|
1264
1264
|
const { permissionDescriptors: q } = M, Q = q == null ? void 0 : q.includes("microphone"), Y = q == null ? void 0 : q.includes("camera");
|
|
1265
1265
|
Q && B.push("audio"), Y && B.push("video"), (p != null && p.active && !Y || p != null && p.active && x) && k++;
|
|
1266
1266
|
}
|
|
1267
|
-
|
|
1267
|
+
Je(b[k]) && S && (k++, m.emit("begin.recording", { "recording.media.types": B, "start.recording.callback": (q) => H({ mediaRecordingUids: q }) })), H({ currentPage: b[k], avStream: p, screenPermissionRequested: S, nextQuestion: T, type: O, passthroughData: h, recordingMediaTypes: B, captureStream: j });
|
|
1268
1268
|
} });
|
|
1269
1269
|
const l = b[k];
|
|
1270
1270
|
return l.type === "av_permission" && qe({ currentPage: l, pages: b }), l;
|
|
@@ -1273,35 +1273,35 @@ const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A
|
|
|
1273
1273
|
}, pages: o.pages, responseGroupUid: d, userId: u }));
|
|
1274
1274
|
let g = c.headline, w = c.captionText;
|
|
1275
1275
|
const C = gn(y, c);
|
|
1276
|
-
return
|
|
1276
|
+
return Je(c) && v && (g = c.permissionDeniedHeadline, w = c.permissionDeniedCaptionText), je(c) && C === hn && (g = c.permissionGrantedHeadline, w = c.permissionGrantedCaptionText), n("div", { className: A(e, "ul-center-horizontally", "fade-in-transition"), children: [n(He, { isRequired: o == null ? void 0 : o.required, message: g, properties: { captionText: w } }), n(ce, { children: n(dt, { properties: o }) })] });
|
|
1277
1277
|
}, ut = ({ className: e, next: o, properties: t, questionId: r, type: i }) => {
|
|
1278
|
-
const { visitorAttributes: s, isLongFormSurvey: d } =
|
|
1278
|
+
const { visitorAttributes: s, isLongFormSurvey: d } = z((y) => ({ visitorAttributes: y.visitorAttributes, isLongFormSurvey: on(y.studyType) })), u = (y, c = !1) => {
|
|
1279
1279
|
o({ value: c ? { skipped: !0 } : void 0, questionId: r, type: i }, !0);
|
|
1280
1280
|
}, a = Bn(t && t.buttonUrl, s), v = d && t.promptActionType === En.NO_BUTTON;
|
|
1281
1281
|
return n("div", { className: A(e, "ul-card__text-url-prompt", "fade-in-transition"), children: n(ie, { properties: t, children: !v && n("div", { children: n("div", { className: "ul-card-button-group", children: [n("a", { className: "ul-card-text__button ul-card__text-url-prompt-button", href: a, id: "ul-card-text__button", onClick: u, onKeyPress: (y) => {
|
|
1282
1282
|
y.key !== "Enter" && y.key !== " " || o({ value: void 0, questionId: r, type: i }, !0);
|
|
1283
1283
|
}, rel: "noreferrer", role: a ? "link" : "button", tabIndex: 0, target: "_blank", children: re(t) }), t.required === !1 && n("button", { className: "ul-card-skip__button", onClick: (y) => u(0, !0), children: Oe(t) })] }) }) }) }, r);
|
|
1284
1284
|
}, pt = ({ className: e, questionId: o }) => {
|
|
1285
|
-
const { border: t, destroy: r, endCard: i, forceBrandedLogo: s } =
|
|
1285
|
+
const { border: t, destroy: r, endCard: i, forceBrandedLogo: s } = z((a) => ({ border: a.border, destroy: a.destroy, endCard: a.endCard, forceBrandedLogo: a.forceBrandedLogo }));
|
|
1286
1286
|
ae(() => {
|
|
1287
1287
|
setTimeout(() => {
|
|
1288
|
-
r(
|
|
1288
|
+
r(Ae);
|
|
1289
1289
|
}, s ? 4e3 : 2e3);
|
|
1290
1290
|
}, [r, s]);
|
|
1291
1291
|
const d = i && i.subheader ? n("p", { className: "ul-caption", children: i.subheader }) : null, u = i && i.headline ? i.headline : "";
|
|
1292
|
-
return n("div", { className: A(e, "ul-card--thanks", "fade-in-transition"), children: n("div", { children: n("div", { className: "ul-card--thanks-content", children: [n("div", { className: "ul-thanks-check", children: n("svg", { "aria-labelledby": "title", fill: "none", height: "99", viewBox: "0 0 81 99", width: "81", xmlns: "http://www.w3.org/2000/svg", children: [n("path", { clipRule: "evenodd", d: "M40.5 77C60.9345 77 77.5 60.4345 77.5 40C77.5 19.5655 60.9345 3 40.5 3C20.0655 3 3.5 19.5655 3.5 40C3.5 60.4345 20.0655 77 40.5 77ZM80.5 40C80.5 62.0914 62.5914 80 40.5 80C18.4086 80 0.5 62.0914 0.5 40C0.5 17.9086 18.4086 0 40.5 0C62.5914 0 80.5 17.9086 80.5 40Z", fill: t, fillRule: "evenodd" }), n("path", { clipRule: "evenodd", d: "M55.025 22.9046C55.6299 23.4705 55.6616 24.4198 55.0956 25.0247C54.8724 25.2634 54.6109 25.5285 54.3157 25.8277C52.2547 27.9168 48.5549 31.667 44.8135 39.6658C43.2818 42.9406 42.0864 45.8386 41.0823 48.2729C40.6539 49.3116 40.2603 50.2659 39.8902 51.129C39.287 52.5359 38.7248 53.7508 38.1744 54.625C37.8997 55.0613 37.5806 55.4905 37.2017 55.8245C36.8201 56.1607 36.2613 56.5 35.5457 56.5C34.6742 56.5 34.0892 55.9692 33.7774 55.6083C33.4502 55.2296 33.1752 54.7511 32.9396 54.301C32.7305 53.9013 32.5088 53.4367 32.2797 52.9565C32.2429 52.8794 32.2059 52.8019 32.1688 52.7243C31.8942 52.1499 31.5959 51.534 31.2537 50.8868C29.8886 48.305 27.8539 45.2878 24.2343 43.1382C23.522 42.7152 23.2875 41.7949 23.7105 41.0826C24.1335 40.3703 25.0539 40.1358 25.7662 40.5588C30.0556 43.1062 32.4149 46.6647 33.9058 49.4845C34.2776 50.1876 34.5973 50.8487 34.8753 51.4302C34.9147 51.5124 34.9529 51.5926 34.9902 51.6707C35.2222 52.1567 35.4164 52.5637 35.5978 52.9102C35.6151 52.9434 35.6321 52.9754 35.6485 53.0061C36.0565 52.3531 36.5341 51.3434 37.133 49.9468C37.4781 49.1418 37.8572 48.2229 38.2761 47.2074C39.2886 44.7532 40.5339 41.7347 42.0961 38.3948C46.0591 29.9221 50.0641 25.8648 52.1535 23.7482C52.4423 23.4556 52.6944 23.2002 52.9048 22.9753C53.4708 22.3703 54.42 22.3387 55.025 22.9046ZM35.1994 53.5892C35.1994 53.5892 35.2 53.5888 35.2012 53.5879C35.2 53.5889 35.1994 53.5893 35.1994 53.5892ZM36.0666 53.6682C36.0732 53.674 36.0765 53.6775 36.0765 53.6777C36.0765 53.678 36.0732 53.6751 36.0666 53.6682Z", fill: t, fillRule: "evenodd" }), n("path", { d: "M69.5 97C69.5 98.1046 56.2924 99 40 99C23.7076 99 10.5 98.1046 10.5 97C10.5 95.8954 23.7076 95 40 95C56.2924 95 69.5 95.8954 69.5 97Z", fill: "black", fillOpacity: "0.2" })] }) }), n(
|
|
1292
|
+
return n("div", { className: A(e, "ul-card--thanks", "fade-in-transition"), children: n("div", { children: n("div", { className: "ul-card--thanks-content", children: [n("div", { className: "ul-thanks-check", children: n("svg", { "aria-labelledby": "title", fill: "none", height: "99", viewBox: "0 0 81 99", width: "81", xmlns: "http://www.w3.org/2000/svg", children: [n("path", { clipRule: "evenodd", d: "M40.5 77C60.9345 77 77.5 60.4345 77.5 40C77.5 19.5655 60.9345 3 40.5 3C20.0655 3 3.5 19.5655 3.5 40C3.5 60.4345 20.0655 77 40.5 77ZM80.5 40C80.5 62.0914 62.5914 80 40.5 80C18.4086 80 0.5 62.0914 0.5 40C0.5 17.9086 18.4086 0 40.5 0C62.5914 0 80.5 17.9086 80.5 40Z", fill: t, fillRule: "evenodd" }), n("path", { clipRule: "evenodd", d: "M55.025 22.9046C55.6299 23.4705 55.6616 24.4198 55.0956 25.0247C54.8724 25.2634 54.6109 25.5285 54.3157 25.8277C52.2547 27.9168 48.5549 31.667 44.8135 39.6658C43.2818 42.9406 42.0864 45.8386 41.0823 48.2729C40.6539 49.3116 40.2603 50.2659 39.8902 51.129C39.287 52.5359 38.7248 53.7508 38.1744 54.625C37.8997 55.0613 37.5806 55.4905 37.2017 55.8245C36.8201 56.1607 36.2613 56.5 35.5457 56.5C34.6742 56.5 34.0892 55.9692 33.7774 55.6083C33.4502 55.2296 33.1752 54.7511 32.9396 54.301C32.7305 53.9013 32.5088 53.4367 32.2797 52.9565C32.2429 52.8794 32.2059 52.8019 32.1688 52.7243C31.8942 52.1499 31.5959 51.534 31.2537 50.8868C29.8886 48.305 27.8539 45.2878 24.2343 43.1382C23.522 42.7152 23.2875 41.7949 23.7105 41.0826C24.1335 40.3703 25.0539 40.1358 25.7662 40.5588C30.0556 43.1062 32.4149 46.6647 33.9058 49.4845C34.2776 50.1876 34.5973 50.8487 34.8753 51.4302C34.9147 51.5124 34.9529 51.5926 34.9902 51.6707C35.2222 52.1567 35.4164 52.5637 35.5978 52.9102C35.6151 52.9434 35.6321 52.9754 35.6485 53.0061C36.0565 52.3531 36.5341 51.3434 37.133 49.9468C37.4781 49.1418 37.8572 48.2229 38.2761 47.2074C39.2886 44.7532 40.5339 41.7347 42.0961 38.3948C46.0591 29.9221 50.0641 25.8648 52.1535 23.7482C52.4423 23.4556 52.6944 23.2002 52.9048 22.9753C53.4708 22.3703 54.42 22.3387 55.025 22.9046ZM35.1994 53.5892C35.1994 53.5892 35.2 53.5888 35.2012 53.5879C35.2 53.5889 35.1994 53.5893 35.1994 53.5892ZM36.0666 53.6682C36.0732 53.674 36.0765 53.6775 36.0765 53.6777C36.0765 53.678 36.0732 53.6751 36.0666 53.6682Z", fill: t, fillRule: "evenodd" }), n("path", { d: "M69.5 97C69.5 98.1046 56.2924 99 40 99C23.7076 99 10.5 98.1046 10.5 97C10.5 95.8954 23.7076 95 40 95C56.2924 95 69.5 95.8954 69.5 97Z", fill: "black", fillOpacity: "0.2" })] }) }), n(He, { message: u }), d] }) }) }, o);
|
|
1293
1293
|
}, mt = () => n("div", { className: "thinking-dots-container", children: n("div", { className: "thinking-dot" }) }), vt = ({ className: e }) => {
|
|
1294
|
-
const { uploadProgress: o } =
|
|
1294
|
+
const { uploadProgress: o } = z((s) => ({ uploadProgress: s.uploadProgress }));
|
|
1295
1295
|
let t, r;
|
|
1296
1296
|
Object.values(o).filter((s) => s.isSubmitted).length > 1 ? (t = "Your responses are processing", r = "Please keep this tab open until your responses are fully processed.") : (t = "Your response is processing", r = "Please keep this tab open until your response is fully processed.");
|
|
1297
1297
|
const i = Math.round(Math.min(99, ...Object.values(o).filter((s) => s.isSubmitted).map((s) => s.progressPct || 0)));
|
|
1298
|
-
return n("div", { className: A(e, "ul-card--uploading", "fade-in-transition"), children: [n("div", { "aria-busy": "true", "aria-label": "Processing...", "aria-live": "polite", className: "ul-loading-spinner-container", role: "progressbar", children: n("div", { className: "ul-loading-spinner", children: [n("div", { className: "first" }), n("div", { className: "second" }), n("div", { className: "third" }), n("div", { className: "fourth" })] }) }), n(
|
|
1299
|
-
},
|
|
1300
|
-
const s = `ul-card-video__player_recorder-q${r}`, { apiURL: d, envId: u, handleUploadUpdate: a, headers: v, responseGroupUid: y, surveyId: c, viewDocument: g, visitorId: w } =
|
|
1301
|
-
h ===
|
|
1298
|
+
return n("div", { className: A(e, "ul-card--uploading", "fade-in-transition"), children: [n("div", { "aria-busy": "true", "aria-label": "Processing...", "aria-live": "polite", className: "ul-loading-spinner-container", role: "progressbar", children: n("div", { className: "ul-loading-spinner", children: [n("div", { className: "first" }), n("div", { className: "second" }), n("div", { className: "third" }), n("div", { className: "fourth" })] }) }), n(He, { message: `${t} (${i}% complete)` }), n("p", { className: "ul-caption", children: r })] });
|
|
1299
|
+
}, en = 0, nn = 1, ht = ({ className: e, next: o, properties: t, questionId: r, type: i }) => {
|
|
1300
|
+
const s = `ul-card-video__player_recorder-q${r}`, { apiURL: d, envId: u, handleUploadUpdate: a, headers: v, responseGroupUid: y, surveyId: c, viewDocument: g, visitorId: w } = z((h) => ({ apiURL: h.apiURL, envId: h.envId, handleUploadUpdate: h.handleUploadUpdate, headers: h.headers, responseGroupUid: h.responseGroupUid, surveyId: h.surveyId, viewDocument: h.viewDocument, visitorId: h.userId })), [C, b] = Z(!1), [f, _] = Z(null), [R, L] = Z(null), [T, H] = Z(en), $ = (h, k) => {
|
|
1301
|
+
h === N.UPLOAD_STARTED ? (_(k[N.UPLOAD_ID]), L(k[N.MEDIA_RECORDING_UID]), b(!0)) : h === N.DELETE ? (_(null), L(null), b(!1)) : h === N.UPLOAD_PROGRESS ? isNaN(k[N.UPLOAD_PROGRESS_PCT]) ? a({ mediaRecordingUid: k[N.MEDIA_RECORDING_UID], isComplete: !0 }) : a({ mediaRecordingUid: k[N.MEDIA_RECORDING_UID], progressPct: k[N.UPLOAD_PROGRESS_PCT] }) : h === N.UPLOAD_FINISHED && a({ mediaRecordingUid: k[N.MEDIA_RECORDING_UID], isComplete: !0 });
|
|
1302
1302
|
}, m = (h) => {
|
|
1303
1303
|
h.preventDefault(), h.stopPropagation(), document.getElementById(s) && ((k) => {
|
|
1304
|
-
const l = k +
|
|
1304
|
+
const l = k + Ye;
|
|
1305
1305
|
if (I.document.getElementById(l) && I.videojs) {
|
|
1306
1306
|
try {
|
|
1307
1307
|
if (!I.videojs(l).record().stream) return;
|
|
@@ -1312,36 +1312,36 @@ const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A
|
|
|
1312
1312
|
}
|
|
1313
1313
|
})(s), f && R ? (a({ mediaRecordingUid: R, isSubmitted: !0 }), o({ value: { mediaRecordingUid: R }, questionId: r, type: i }, !0)) : o({ value: null, questionId: r, type: i }, !0);
|
|
1314
1314
|
};
|
|
1315
|
-
return n("form", { className: A(e, "ul-card--video", "fade-in-transition"), id: "ul-video-interview-form", children: [n(ce, { children: [n("div", { id: "ul-question-player-container", style: { display: T ===
|
|
1315
|
+
return n("form", { className: A(e, "ul-card--video", "fade-in-transition"), id: "ul-video-interview-form", children: [n(ce, { children: [n("div", { id: "ul-question-player-container", style: { display: T === en ? "" : "none" }, children: n(ie, { properties: t, children: n("button", { className: "ul-video-btn ul-record-response-btn", onClick: (h) => {
|
|
1316
1316
|
h.preventDefault(), h.stopPropagation(), document.getElementById(s) && ((k) => {
|
|
1317
|
-
const l =
|
|
1317
|
+
const l = Ee(k + an);
|
|
1318
1318
|
l == null || l.pause();
|
|
1319
|
-
})(s), H(
|
|
1320
|
-
} }) }) }), n("div", { style: { display: T ===
|
|
1319
|
+
})(s), H(nn);
|
|
1320
|
+
} }) }) }), n("div", { style: { display: T === nn ? "block" : "none" }, children: n("div", { id: "ul-recorder-player-container", ref: (h) => {
|
|
1321
1321
|
if (h && h.children.length === 0) {
|
|
1322
1322
|
const k = ((l, p = {}, x = "https://api.userleap.com", S, j, M, O = !1, B = document) => {
|
|
1323
1323
|
I.document = B;
|
|
1324
|
-
const q = l +
|
|
1324
|
+
const q = l + Ye, Q = pn(q);
|
|
1325
1325
|
return I.document.addEventListener("securitypolicyviolation", (Y) => {
|
|
1326
1326
|
le(new Error(`Voice & Video feature violates ${Y.violatedDirective} web page CSP policies for the recorder player.`), "recorderDeviceError", x, M, p.visitorId, p.envId);
|
|
1327
1327
|
}), ln(sn.concat(Un), () => {
|
|
1328
|
-
Me(q, Q), I.document.getElementById(
|
|
1328
|
+
Me(q, Q), I.document.getElementById(Ve(q)).remove();
|
|
1329
1329
|
try {
|
|
1330
1330
|
An(Q, q, p, x, S, j, M, O);
|
|
1331
1331
|
} catch (Y) {
|
|
1332
1332
|
return void le(new Error(`Error when creating video recorder player object ${Y}`), "recorderDeviceError", x, M, p.visitorId, p.envId);
|
|
1333
1333
|
}
|
|
1334
1334
|
}), Q;
|
|
1335
|
-
})(s, { surveyId: c, responseGroupUid: y, questionId: r, visitorId: w, envId: u }, d, $, void 0, { ...v, "x-ul-video-recorder-origin": "sdk" }, t.mediaType ===
|
|
1335
|
+
})(s, { surveyId: c, responseGroupUid: y, questionId: r, visitorId: w, envId: u }, d, $, void 0, { ...v, "x-ul-video-recorder-origin": "sdk" }, t.mediaType === N.MEDIA_TYPE_AUDIO, g);
|
|
1336
1336
|
h.appendChild(k);
|
|
1337
1337
|
}
|
|
1338
1338
|
} }) })] }), n(de, { children: [n(me, { isDisabled: !!t.required && !C, onClick: m, children: re(t) }), n("button", { className: "ul-card-text__button ul-button-inactive ul-card-skip__button", id: "ul-card-video__skip_button", onClick: m, style: { ...t.required ? { display: "none" } : {}, ...C ? { display: "none" } : {} }, children: Oe(t) })] })] });
|
|
1339
|
-
}, fe = (e) => e.type === "aidynamicfollowup" || e.type === "aidynamicstandalone",
|
|
1339
|
+
}, fe = (e) => e.type === "aidynamicfollowup" || e.type === "aidynamicstandalone", Le = (e) => {
|
|
1340
1340
|
var o;
|
|
1341
1341
|
return fe(e) && ((o = e.props) == null ? void 0 : o.loading) === Re.inFlight;
|
|
1342
1342
|
}, xn = (e) => e.type === "thanks" || e.type === "uploading", gt = ({ card: e, avatars: o, isThinking: t, isCurrentQuestion: r, currentQuestionBubbleRef: i }) => {
|
|
1343
1343
|
const s = ((d) => "properties" in d.props && d.props.properties && "questionHtml" in d.props.properties && d.props.properties.questionHtml ? { content: d.props.properties.questionHtml, isHtml: !0 } : "message" in d.props ? { content: d.props.message, isHtml: !1 } : { content: "Question", isHtml: !1 })(e);
|
|
1344
|
-
return n(ge, { avatars: o, isLeft: !0, message: { id: `question-${e.name}`, type: "question", content: s.content }, ref: r ? i : null, children: t ? n(mt, {}) : n(
|
|
1344
|
+
return n(ge, { avatars: o, isLeft: !0, message: { id: `question-${e.name}`, type: "question", content: s.content }, ref: r ? i : null, children: t ? n(mt, {}) : n(Ce, { children: [s.isHtml ? n(xe, { className: "chat-message-text", html: s.content }) : n("div", { className: "chat-message-text", children: s.content }), e.type === "videovoice" && n(Fn, { properties: e.props, questionId: e.name, surveyVideoUrl: e.props.properties.videoUrl })] }) });
|
|
1345
1345
|
}, bt = ({ card: e, avatars: o }) => {
|
|
1346
1346
|
const t = ((r) => {
|
|
1347
1347
|
if (!("properties" in r.props) || !r.props.properties || typeof r.props.properties != "object") return null;
|
|
@@ -1357,34 +1357,37 @@ const bn = "ul-permission-graphics-container", fn = "ul-permission-body", yn = A
|
|
|
1357
1357
|
}
|
|
1358
1358
|
return null;
|
|
1359
1359
|
})(e);
|
|
1360
|
-
return t ? n(ge, { avatars: o, hideAvatar: !0, isLeft: !0, message: { id: `caption-${e.name}`, type: "question", content: t.content }, children: t.isHtml ? n(
|
|
1361
|
-
}, ft = (
|
|
1360
|
+
return t ? n(ge, { avatars: o, hideAvatar: !0, isLeft: !0, message: { id: `caption-${e.name}`, type: "question", content: t.content }, children: t.isHtml ? n(xe, { className: "chat-message-text", html: t.content }) : n("div", { className: "chat-message-text", children: t.content }) }) : null;
|
|
1361
|
+
}, ft = () => {
|
|
1362
|
+
const { providerPersona: e, showProviderPersona: o, experimentFlags: t } = z((i) => ({ providerPersona: i.providerPersona, showProviderPersona: i.showProviderPersona, experimentFlags: i.experimentFlags }));
|
|
1363
|
+
return (t == null ? void 0 : t["sdk-new-convo-ui"]) && o && e ? n("div", { className: "chat-persona-label", children: e }) : null;
|
|
1364
|
+
}, yt = ({ card: e, userResponse: o, avatars: t }) => {
|
|
1362
1365
|
const r = ((i, s) => {
|
|
1363
1366
|
if ((i.type === "open" || i.type === "aidynamicfollowup" || i.type === "aidynamicstandalone") && s && typeof s == "object" && "value" in s) return s.value;
|
|
1364
1367
|
})(e, o);
|
|
1365
1368
|
return n("div", { className: "chat-bubble-container chat-right", children: [n("div", { className: "chat-bubble chat-bubble-right chat-bubble-text-only", children: n("div", { className: "chat-message-text", children: r || n("div", { className: "chat-message-no-response", children: "No response" }) }) }), n("img", { alt: "User Avatar", className: "chat-avatar chat-avatar-right", srcSet: `${t.respondentAvatar["1x"]} 1x, ${t.respondentAvatar["2x"]} 2x` })] });
|
|
1366
|
-
},
|
|
1367
|
-
const { endCard: i } =
|
|
1368
|
-
return n(
|
|
1369
|
-
},
|
|
1369
|
+
}, Ct = ({ card: e, avatars: o, isCurrentQuestion: t, currentQuestionBubbleRef: r }) => {
|
|
1370
|
+
const { endCard: i } = z((s) => ({ endCard: s.endCard }));
|
|
1371
|
+
return n(Ce, { children: [n(ge, { avatars: o, isLeft: !0, message: { id: `thanks-${e.name}`, type: "question", content: (i == null ? void 0 : i.headline) ?? "Great! Thank you for your participation." }, ref: t ? r : null }), (i == null ? void 0 : i.subheader) && n(ge, { avatars: o, hideAvatar: !0, isLeft: !0, message: { id: `caption-${e.name}`, type: "question", content: i.subheader } }), n(Gn, {})] });
|
|
1372
|
+
}, xt = ({ card: e, cardIndex: o, index: t, avatars: r, cardResponses: i, questionThinkingStates: s, startingQuestionIdx: d, currentQuestionBubbleRef: u, handleCardResponse: a }) => {
|
|
1370
1373
|
const v = o === t, y = o < t, c = xn(e);
|
|
1371
|
-
if (c) return n(
|
|
1374
|
+
if (c) return n(Ct, { avatars: r, card: e, currentQuestionBubbleRef: u, isCurrentQuestion: v });
|
|
1372
1375
|
const g = `${e.name}`, w = i.get(g), C = e.type === "open" || e.type === "aidynamicfollowup" || e.type === "aidynamicstandalone", b = s.get(g);
|
|
1373
|
-
if (e.type === "aidynamicfollowup" && (e.props.loading === Re.failure || e.props.loading === void 0) || e.type === "aidynamicstandalone" && e.props.loading === Re.failure) return n(
|
|
1376
|
+
if (e.type === "aidynamicfollowup" && (e.props.loading === Re.failure || e.props.loading === void 0) || e.type === "aidynamicstandalone" && e.props.loading === Re.failure) return n(Ce, {});
|
|
1374
1377
|
const f = (o > (d ?? 0) || fe(e)) && e.type !== "thanks" && e.type !== "uploading" && (b === !0 || b === void 0);
|
|
1375
|
-
return n(
|
|
1378
|
+
return n(tn.Fragment, { children: [n(gt, { avatars: r, card: e, currentQuestionBubbleRef: u, isCurrentQuestion: v, isThinking: f }), !f && n(Ce, { children: [n(bt, { avatars: r, card: e }), n(ft, {})] }), y && C ? n(yt, { avatars: r, card: e, userResponse: w }) : (!y || !C) && !f && n(ge, { avatars: r, isLeft: !1, message: { id: `card-${e.name}`, type: "card", content: "" }, children: n("div", { className: "chat-card-container", children: n(wt, { card: e, className: c ? "chat-thanks-card" : "chat-card", isAnswered: y, next: v ? a : () => {
|
|
1376
1379
|
} }) }) })] }, `question-card-${e.name}`);
|
|
1377
|
-
}, ge =
|
|
1380
|
+
}, ge = tn.forwardRef(({ message: e, isLeft: o = !1, children: t, avatars: r, hideAvatar: i = !1 }, s) => {
|
|
1378
1381
|
const d = o ? "chat-bubble-left" : "chat-bubble-right";
|
|
1379
1382
|
return n("div", { className: `chat-bubble-container ${o ? "chat-left" : "chat-right"}${o && i ? " chat-no-avatar" : ""}`, ref: s, children: [o && !i && n("img", { alt: "AI Avatar", className: "chat-avatar chat-avatar-left", srcSet: `${r.agentAvatar["1x"]} 1x, ${r.agentAvatar["2x"]} 2x` }), n("div", { className: `chat-bubble ${d}`, children: t || n("div", { className: "chat-message-text", children: e.content }) }), !o && !i && n("img", { alt: "User Avatar", className: "chat-avatar chat-avatar-right", srcSet: `${r.respondentAvatar["1x"]} 1x, ${r.respondentAvatar["2x"]} 2x` })] });
|
|
1380
1383
|
});
|
|
1381
1384
|
ge.displayName = "ChatBubble";
|
|
1382
|
-
const
|
|
1383
|
-
const e =
|
|
1385
|
+
const kt = () => {
|
|
1386
|
+
const e = z((t) => t.close), o = ye(() => () => e(Ae), [e]);
|
|
1384
1387
|
return n("div", { "aria-label": "Close button", className: "conversational-close-btn", onClick: o, onKeyPress: (t) => {
|
|
1385
1388
|
t.key === "Enter" && o();
|
|
1386
1389
|
}, role: "button", tabIndex: 0, children: n("svg", { fill: "none", height: "16px", viewBox: "0 0 13 13", width: "16px", xmlns: "http://www.w3.org/2000/svg", children: n("path", { d: "M2.54964 1.78369L1.78369 2.54964L5.73405 6.5L1.78369 10.4504L2.54964 11.2163L6.5 7.26595L10.4504 11.2163L11.2163 10.4504L7.26595 6.5L11.2163 2.54964L10.4504 1.78369L6.5 5.73405L2.54964 1.78369Z", fill: "#262136" }) }) });
|
|
1387
|
-
},
|
|
1390
|
+
}, wt = ({ card: e, next: o, className: t = "", isAnswered: r = !1 }) => {
|
|
1388
1391
|
const i = { className: r ? `${t} answered-card` : t, next: r ? () => {
|
|
1389
1392
|
} : o, questionId: e.name, type: e.type, isAnswered: r };
|
|
1390
1393
|
switch (e.type) {
|
|
@@ -1419,13 +1422,13 @@ const xt = () => {
|
|
|
1419
1422
|
default:
|
|
1420
1423
|
return null;
|
|
1421
1424
|
}
|
|
1422
|
-
},
|
|
1425
|
+
}, _t = ({ cards: e, next: o, previousResponses: t }) => {
|
|
1423
1426
|
const { cardResponses: r, setCardResponse: i } = (() => {
|
|
1424
1427
|
const [m, h] = Z(/* @__PURE__ */ new Map());
|
|
1425
1428
|
return { cardResponses: m, setCardResponse: be((k, l) => {
|
|
1426
1429
|
h((p) => new Map(p).set(k, l));
|
|
1427
1430
|
}, []) };
|
|
1428
|
-
})(), { index: s, isLongFormSurvey: d, avatars: u, showSurveyBrand: a, forceBrandedLogo: v, marketingUrlLink: y, startingQuestionIdx: c, viewDocument: g, createDynamicFollowupQuestion: w, update: C } =
|
|
1431
|
+
})(), { index: s, isLongFormSurvey: d, avatars: u, showSurveyBrand: a, forceBrandedLogo: v, marketingUrlLink: y, startingQuestionIdx: c, viewDocument: g, createDynamicFollowupQuestion: w, update: C } = z((m) => ({ index: m.index, isLongFormSurvey: on(m.studyType), avatars: m.avatars, forceBrandedLogo: m.forceBrandedLogo, startingQuestionIdx: m.startingQuestionIdx, showSurveyBrand: m.showSurveyBrand, marketingUrlLink: jn({ marketingUrl: m.marketingUrl, slugName: m.slugName, surveyId: m.surveyId, forceBrandedLogo: m.forceBrandedLogo }), viewDocument: m.viewDocument, createDynamicFollowupQuestion: m.createDynamicFollowupQuestion, update: m.update })), { currentQuestionBubbleRef: b, scrollToCurrentQuestion: f } = (({ viewDocument: m }) => {
|
|
1429
1432
|
const h = se(null), k = be(() => {
|
|
1430
1433
|
const l = m.querySelector(".ul-card-main-content");
|
|
1431
1434
|
if (h.current && l && l instanceof HTMLElement) {
|
|
@@ -1442,7 +1445,7 @@ const xt = () => {
|
|
|
1442
1445
|
if (h > 0) {
|
|
1443
1446
|
const B = m[h - 1];
|
|
1444
1447
|
if (fe(B)) {
|
|
1445
|
-
const q = `${B.name}`, Q =
|
|
1448
|
+
const q = `${B.name}`, Q = Le(B);
|
|
1446
1449
|
if (O.get(q) !== Q) return new Map(O).set(q, Q);
|
|
1447
1450
|
}
|
|
1448
1451
|
}
|
|
@@ -1450,12 +1453,12 @@ const xt = () => {
|
|
|
1450
1453
|
};
|
|
1451
1454
|
if ((h <= (k ?? 0) || xn(x)) && (x == null ? void 0 : x.type) !== "aidynamicstandalone") return p((O) => j(new Map(O).set(S, !1)));
|
|
1452
1455
|
p((O) => {
|
|
1453
|
-
const B = !fe(x) ||
|
|
1456
|
+
const B = !fe(x) || Le(x);
|
|
1454
1457
|
return j(new Map(O).set(S, B));
|
|
1455
1458
|
});
|
|
1456
1459
|
const M = setTimeout(() => {
|
|
1457
1460
|
p((O) => {
|
|
1458
|
-
const B = !!fe(x) &&
|
|
1461
|
+
const B = !!fe(x) && Le(x);
|
|
1459
1462
|
return j(new Map(O).set(S, B));
|
|
1460
1463
|
});
|
|
1461
1464
|
}, 1e3);
|
|
@@ -1464,7 +1467,7 @@ const xt = () => {
|
|
|
1464
1467
|
}, [h, m, k]), l;
|
|
1465
1468
|
})(e, s, c);
|
|
1466
1469
|
((m, h) => {
|
|
1467
|
-
const { createDynamicStandaloneQuestion: k } =
|
|
1470
|
+
const { createDynamicStandaloneQuestion: k } = z((x) => ({ createDynamicStandaloneQuestion: x.createDynamicStandaloneQuestion })), l = m[h], p = (l == null ? void 0 : l.type) === "aidynamicstandalone" && l.props.loading === void 0 ? l.name : null;
|
|
1468
1471
|
ae(() => {
|
|
1469
1472
|
p !== null && k({ questionId: p });
|
|
1470
1473
|
}, [p, k]);
|
|
@@ -1481,12 +1484,12 @@ const xt = () => {
|
|
|
1481
1484
|
return S;
|
|
1482
1485
|
});
|
|
1483
1486
|
}, [h]), k;
|
|
1484
|
-
})(s, c),
|
|
1487
|
+
})(s, c), L = ye(() => ({ ...t, ...In(e.map((m, h) => {
|
|
1485
1488
|
var k, l;
|
|
1486
1489
|
return { ...m, value: h < s ? ((k = r.get(`${m.name}`)) == null ? void 0 : k.value) ?? null : null, secondaryValue: h < s ? ((l = r.get(`${m.name}`)) == null ? void 0 : l.secondaryValue) ?? null : null };
|
|
1487
1490
|
})) }), [t, r, e, s]);
|
|
1488
|
-
qn(
|
|
1489
|
-
const T =
|
|
1491
|
+
qn(L);
|
|
1492
|
+
const T = _n(e, L);
|
|
1490
1493
|
ae(() => {
|
|
1491
1494
|
requestAnimationFrame(() => {
|
|
1492
1495
|
f();
|
|
@@ -1501,8 +1504,8 @@ const xt = () => {
|
|
|
1501
1504
|
const p = { ...m, questionText: Dn(k) };
|
|
1502
1505
|
k.childId && (p == null ? void 0 : p.value) != null && Sn({ displayCard: k, response: p, createDynamicFollowupQuestion: w }), o([p]);
|
|
1503
1506
|
}, [T, s, o, i]), $ = T.map((m, h) => ({ card: m, cardIndex: h })).filter(({ cardIndex: m }) => R.has(m));
|
|
1504
|
-
return n("div", { className: "conversational-ui ul-conversational-ui", "data-testid": "ui-container", children: [!d && n(
|
|
1507
|
+
return n("div", { className: "conversational-ui ul-conversational-ui", "data-testid": "ui-container", children: [!d && n(kt, {}), n("div", { className: "chat-container", children: n("div", { className: "chat-messages", children: $.map(({ card: m, cardIndex: h }) => n(xt, { avatars: u, card: m, cardIndex: h, cardResponses: r, currentQuestionBubbleRef: b, handleCardResponse: H, index: s, questionThinkingStates: _, startingQuestionIdx: c }, `question-card-${m.name}`)) }) }), d && n("div", { className: "long-form-question-footer-container-logo", children: a && n(Tn, { forceBrandedLogo: v, marketingUrlLink: y }) })] });
|
|
1505
1508
|
};
|
|
1506
1509
|
export {
|
|
1507
|
-
|
|
1510
|
+
_t as default
|
|
1508
1511
|
};
|