hanc-webrtc-widgets 2.9.7 → 2.9.9
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.
|
@@ -46226,7 +46226,7 @@ const f1 = {
|
|
|
46226
46226
|
completed_title: "Done",
|
|
46227
46227
|
completed_body: "Thanks for talking with us!",
|
|
46228
46228
|
close_btn: "Close",
|
|
46229
|
-
email_label: "Want a follow-up? Leave your email
|
|
46229
|
+
email_label: "Want a follow-up? Leave your email.",
|
|
46230
46230
|
email_placeholder: "you@email.com",
|
|
46231
46231
|
email_submit: "Send",
|
|
46232
46232
|
email_sending: "Sending…",
|
|
@@ -46277,7 +46277,7 @@ const f1 = {
|
|
|
46277
46277
|
completed_title: "Fertig",
|
|
46278
46278
|
completed_body: "Vielen Dank für das Gespräch!",
|
|
46279
46279
|
close_btn: "Schließen",
|
|
46280
|
-
email_label: "Rückmeldung gewünscht? E-Mail hinterlassen
|
|
46280
|
+
email_label: "Rückmeldung gewünscht? E-Mail hinterlassen.",
|
|
46281
46281
|
email_placeholder: "sie@email.de",
|
|
46282
46282
|
email_submit: "Senden",
|
|
46283
46283
|
email_sending: "Wird gesendet…",
|
|
@@ -46328,7 +46328,7 @@ const f1 = {
|
|
|
46328
46328
|
completed_title: "Terminé",
|
|
46329
46329
|
completed_body: "Merci pour cet échange !",
|
|
46330
46330
|
close_btn: "Fermer",
|
|
46331
|
-
email_label: "Un suivi ? Laissez votre e-mail
|
|
46331
|
+
email_label: "Un suivi ? Laissez votre e-mail.",
|
|
46332
46332
|
email_placeholder: "vous@email.com",
|
|
46333
46333
|
email_submit: "Envoyer",
|
|
46334
46334
|
email_sending: "Envoi…",
|
|
@@ -46379,7 +46379,7 @@ const f1 = {
|
|
|
46379
46379
|
completed_title: "Listo",
|
|
46380
46380
|
completed_body: "¡Gracias por hablar con nosotros!",
|
|
46381
46381
|
close_btn: "Cerrar",
|
|
46382
|
-
email_label: "¿Quieres seguimiento? Deja tu email
|
|
46382
|
+
email_label: "¿Quieres seguimiento? Deja tu email.",
|
|
46383
46383
|
email_placeholder: "tu@email.com",
|
|
46384
46384
|
email_submit: "Enviar",
|
|
46385
46385
|
email_sending: "Enviando…",
|
|
@@ -46430,7 +46430,7 @@ const f1 = {
|
|
|
46430
46430
|
completed_title: "Fatto",
|
|
46431
46431
|
completed_body: "Grazie per averci parlato!",
|
|
46432
46432
|
close_btn: "Chiudi",
|
|
46433
|
-
email_label: "Vuoi un seguito? Lascia la tua email
|
|
46433
|
+
email_label: "Vuoi un seguito? Lascia la tua email.",
|
|
46434
46434
|
email_placeholder: "tu@email.com",
|
|
46435
46435
|
email_submit: "Invia",
|
|
46436
46436
|
email_sending: "Invio…",
|
|
@@ -46481,7 +46481,7 @@ const f1 = {
|
|
|
46481
46481
|
completed_title: "Concluído",
|
|
46482
46482
|
completed_body: "Obrigado pela conversa!",
|
|
46483
46483
|
close_btn: "Fechar",
|
|
46484
|
-
email_label: "Quer retorno? Deixe o seu email
|
|
46484
|
+
email_label: "Quer retorno? Deixe o seu email.",
|
|
46485
46485
|
email_placeholder: "voce@email.com",
|
|
46486
46486
|
email_submit: "Enviar",
|
|
46487
46487
|
email_sending: "A enviar…",
|
|
@@ -46532,7 +46532,7 @@ const f1 = {
|
|
|
46532
46532
|
completed_title: "Gotowe",
|
|
46533
46533
|
completed_body: "Dziękujemy za rozmowę!",
|
|
46534
46534
|
close_btn: "Zamknij",
|
|
46535
|
-
email_label: "Chcesz kontakt? Zostaw e-mail
|
|
46535
|
+
email_label: "Chcesz kontakt? Zostaw e-mail.",
|
|
46536
46536
|
email_placeholder: "ty@email.com",
|
|
46537
46537
|
email_submit: "Wyślij",
|
|
46538
46538
|
email_sending: "Wysyłanie…",
|
|
@@ -46583,7 +46583,7 @@ const f1 = {
|
|
|
46583
46583
|
completed_title: "Hotovo",
|
|
46584
46584
|
completed_body: "Děkujeme za rozhovor!",
|
|
46585
46585
|
close_btn: "Zavřít",
|
|
46586
|
-
email_label: "Chcete odpověď? Zanechte e-mail
|
|
46586
|
+
email_label: "Chcete odpověď? Zanechte e-mail.",
|
|
46587
46587
|
email_placeholder: "vy@email.com",
|
|
46588
46588
|
email_submit: "Odeslat",
|
|
46589
46589
|
email_sending: "Odesílání…",
|
|
@@ -46634,7 +46634,7 @@ const f1 = {
|
|
|
46634
46634
|
completed_title: "Kész",
|
|
46635
46635
|
completed_body: "Köszönjük a beszélgetést!",
|
|
46636
46636
|
close_btn: "Bezárás",
|
|
46637
|
-
email_label: "Szeretne visszajelzést? Adja meg e-mailjét
|
|
46637
|
+
email_label: "Szeretne visszajelzést? Adja meg e-mailjét.",
|
|
46638
46638
|
email_placeholder: "on@email.com",
|
|
46639
46639
|
email_submit: "Küldés",
|
|
46640
46640
|
email_sending: "Küldés…",
|
|
@@ -46685,7 +46685,7 @@ const f1 = {
|
|
|
46685
46685
|
completed_title: "Tamamlandı",
|
|
46686
46686
|
completed_body: "Konuştuğunuz için teşekkürler!",
|
|
46687
46687
|
close_btn: "Kapat",
|
|
46688
|
-
email_label: "Geri dönüş ister misiniz? E-postanızı bırakın
|
|
46688
|
+
email_label: "Geri dönüş ister misiniz? E-postanızı bırakın.",
|
|
46689
46689
|
email_placeholder: "siz@email.com",
|
|
46690
46690
|
email_submit: "Gönder",
|
|
46691
46691
|
email_sending: "Gönderiliyor…",
|
|
@@ -46736,7 +46736,7 @@ const f1 = {
|
|
|
46736
46736
|
completed_title: "Дайын",
|
|
46737
46737
|
completed_body: "Әңгімелескеніңізге рахмет!",
|
|
46738
46738
|
close_btn: "Жабу",
|
|
46739
|
-
email_label: "Кері байланыс керек пе? Email
|
|
46739
|
+
email_label: "Кері байланыс керек пе? Email қалдырыңыз.",
|
|
46740
46740
|
email_placeholder: "siz@email.com",
|
|
46741
46741
|
email_submit: "Жіберу",
|
|
46742
46742
|
email_sending: "Жіберілуде…",
|
|
@@ -46787,7 +46787,7 @@ const f1 = {
|
|
|
46787
46787
|
completed_title: "完成",
|
|
46788
46788
|
completed_body: "感谢您的来电!",
|
|
46789
46789
|
close_btn: "关闭",
|
|
46790
|
-
email_label: "
|
|
46790
|
+
email_label: "需要回访?留下您的邮箱。",
|
|
46791
46791
|
email_placeholder: "you@email.com",
|
|
46792
46792
|
email_submit: "发送",
|
|
46793
46793
|
email_sending: "发送中…",
|
|
@@ -46838,7 +46838,7 @@ const f1 = {
|
|
|
46838
46838
|
completed_title: "Готово",
|
|
46839
46839
|
completed_body: "Спасибо за разговор!",
|
|
46840
46840
|
close_btn: "Закрыть",
|
|
46841
|
-
email_label: "Нужна обратная связь? Оставьте email
|
|
46841
|
+
email_label: "Нужна обратная связь? Оставьте email.",
|
|
46842
46842
|
email_placeholder: "vy@email.com",
|
|
46843
46843
|
email_submit: "Отправить",
|
|
46844
46844
|
email_sending: "Отправка…",
|
|
@@ -46889,7 +46889,7 @@ const f1 = {
|
|
|
46889
46889
|
completed_title: "Готово",
|
|
46890
46890
|
completed_body: "Дякуємо за розмову!",
|
|
46891
46891
|
close_btn: "Закрити",
|
|
46892
|
-
email_label: "Потрібен зворотний зв'язок? Залиште email
|
|
46892
|
+
email_label: "Потрібен зворотний зв'язок? Залиште email.",
|
|
46893
46893
|
email_placeholder: "vy@email.com",
|
|
46894
46894
|
email_submit: "Надіслати",
|
|
46895
46895
|
email_sending: "Надсилання…",
|
|
@@ -47049,7 +47049,7 @@ const P1 = {
|
|
|
47049
47049
|
};
|
|
47050
47050
|
let Fe = class extends ti {
|
|
47051
47051
|
constructor() {
|
|
47052
|
-
super(...arguments), this.agentId = "", this.apiBaseUrl = oi, this.skipFetch = !1, this.manifestOverride = null, this.theme = "", this.locale = "", this.view = { kind: "loading" }, this.manifest = null, this.selectedCountry = null, this.phoneRaw = "", this.phoneError = "", this.apiError = null, this.pickerOpen = !1, this.pickerSearch = "", this.emailRaw = "", this.emailError = "", this.emailStatus = "idle", this.showEmailCapture = !1, this.emailTimer = null, this.recaptchaToken = null, this.recaptchaWidgetId = null, this.recaptchaRendering = !1, this.recaptchaHost = null, this.postSubmitView = null, this.pollAbort = null, this.pollTimer = null, this.lastFocusedBeforeOpen = null, this.onDocumentKey = (t) => {
|
|
47052
|
+
super(...arguments), this.agentId = "", this.apiBaseUrl = oi, this.skipFetch = !1, this.manifestOverride = null, this.theme = "", this.locale = "", this.view = { kind: "loading" }, this.manifest = null, this.selectedCountry = null, this.phoneRaw = "", this.phoneError = "", this.apiError = null, this.pickerOpen = !1, this.pickerSearch = "", this.emailRaw = "", this.emailError = "", this.emailStatus = "idle", this.showEmailCapture = !1, this.emailTimer = null, this.recaptchaToken = null, this.recaptchaWidgetId = null, this.recaptchaRendering = !1, this.recaptchaHost = null, this.postSubmitView = null, this.activeRequestId = null, this.pollAbort = null, this.pollTimer = null, this.lastFocusedBeforeOpen = null, this.onDocumentKey = (t) => {
|
|
47053
47053
|
t.key === "Escape" && this.view.kind !== "closed" && this.view.kind !== "loading" && this.close();
|
|
47054
47054
|
}, this.open = () => {
|
|
47055
47055
|
if (this.manifest) {
|
|
@@ -47269,7 +47269,7 @@ let Fe = class extends ti {
|
|
|
47269
47269
|
// polling
|
|
47270
47270
|
// ---------------------------------------------------------------------------
|
|
47271
47271
|
startPolling(t) {
|
|
47272
|
-
this.stopPolling(), this.pollAbort = new AbortController();
|
|
47272
|
+
this.stopPolling(), this.activeRequestId = t, this.pollAbort = new AbortController();
|
|
47273
47273
|
const A = async () => {
|
|
47274
47274
|
var e, i, g;
|
|
47275
47275
|
if (!((e = this.pollAbort) != null && e.signal.aborted)) {
|
|
@@ -47326,7 +47326,7 @@ let Fe = class extends ti {
|
|
|
47326
47326
|
return;
|
|
47327
47327
|
case "failed":
|
|
47328
47328
|
case "expired":
|
|
47329
|
-
this.stopPolling(), this.clearEmailTimer(), this.setPostSubmitView({
|
|
47329
|
+
this.stopPolling(), this.clearEmailTimer(), this.showEmailCapture = !0, this.setPostSubmitView({
|
|
47330
47330
|
kind: "failed",
|
|
47331
47331
|
reason: A.failure_reason ?? "unknown",
|
|
47332
47332
|
can_retry: !1
|
|
@@ -47557,7 +47557,7 @@ let Fe = class extends ti {
|
|
|
47557
47557
|
}
|
|
47558
47558
|
async onEmailSubmit(t) {
|
|
47559
47559
|
t.preventDefault();
|
|
47560
|
-
const A = this.
|
|
47560
|
+
const A = this.activeRequestId;
|
|
47561
47561
|
if (!A || this.emailStatus === "sending") return;
|
|
47562
47562
|
const e = this.emailRaw.trim();
|
|
47563
47563
|
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)) {
|
|
@@ -47608,9 +47608,6 @@ let Fe = class extends ti {
|
|
|
47608
47608
|
<h3>${t.completed_title}</h3>
|
|
47609
47609
|
<p>${t.completed_body}</p>
|
|
47610
47610
|
${this.renderEmailCapture()}
|
|
47611
|
-
<button class="link-btn" type="button" @click=${this.close}>
|
|
47612
|
-
${t.close_btn}
|
|
47613
|
-
</button>
|
|
47614
47611
|
</div>
|
|
47615
47612
|
`;
|
|
47616
47613
|
}
|
|
@@ -47626,9 +47623,7 @@ let Fe = class extends ti {
|
|
|
47626
47623
|
<h3>${t.failed_title}</h3>
|
|
47627
47624
|
<p>${A}</p>
|
|
47628
47625
|
<p class="status-hint">${t.reload_to_retry}</p>
|
|
47629
|
-
|
|
47630
|
-
${t.close_btn}
|
|
47631
|
-
</button>
|
|
47626
|
+
${this.renderEmailCapture()}
|
|
47632
47627
|
</div>
|
|
47633
47628
|
`;
|
|
47634
47629
|
}
|
|
@@ -6074,7 +6074,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6074
6074
|
`.concat(JSON.stringify(r,null,2)))}}return a?{partialMatch:!0}:void 0;case"[]":for(var B=ih(A.args),h;!(h=B()).done;){var c=h.value;if(i[0]===c)return i.length===1?{match:!0,matchedChars:i}:e?{overflow:!0}:{match:!0,matchedChars:[c]}}return;default:throw new Error("Unsupported instruction tree: ".concat(A))}}function OC(i){"@babel/helpers - typeof";return OC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},OC(i)}function Ih(i,A){var e=typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(e)return(e=e.call(i)).next.bind(e);if(Array.isArray(i)||(e=qN(i))||A){e&&(i=e);var t=0;return function(){return t>=i.length?{done:!0}:{done:!1,value:i[t++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
6075
6075
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qN(i,A){if(i){if(typeof i=="string")return Ch(i,A);var e={}.toString.call(i).slice(8,-1);return e==="Object"&&i.constructor&&(e=i.constructor.name),e==="Map"||e==="Set"?Array.from(i):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Ch(i,A):void 0}}function Ch(i,A){(A==null||A>i.length)&&(A=i.length);for(var e=0,t=Array(A);e<A;e++)t[e]=i[e];return t}function HN(i,A){if(!(i instanceof A))throw new TypeError("Cannot call a class as a function")}function PN(i,A){for(var e=0;e<A.length;e++){var t=A[e];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(i,VN(t.key),t)}}function ON(i,A,e){return A&&PN(i.prototype,A),Object.defineProperty(i,"prototype",{writable:!1}),i}function VN(i){var A=jN(i,"string");return OC(A)=="symbol"?A:A+""}function jN(i,A){if(OC(i)!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var t=e.call(i,A);if(OC(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(i)}var ur="9",WN=15,XN=Ga(ur,WN),ZN=/[- ]/,zN=function(){return/\[([^\[\]])*\]/g},$N=function(){return/\d(?=[^,}][^,}])/g},Ak=new RegExp("["+ti+"]*\\$1["+ti+"]*(\\$\\d["+ti+"]*)*$"),oh=3,ek=function(){function i(A){A.state;var e=A.metadata;HN(this,i),this.metadata=e,this.resetFormat()}return ON(i,[{key:"resetFormat",value:function(){this.chosenFormat=void 0,this.template=void 0,this.nationalNumberTemplate=void 0,this.populatedNationalNumberTemplate=void 0,this.populatedNationalNumberTemplatePosition=-1}},{key:"reset",value:function(e,t){this.resetFormat(),e?(this.isNANP=e.callingCode()==="1",this.matchingFormats=e.formats(),t.nationalSignificantNumber&&this.narrowDownMatchingFormats(t)):(this.isNANP=void 0,this.matchingFormats=[])}},{key:"format",value:function(e,t){var g=this;if(pN(t.nationalSignificantNumber,t.country,this.metadata))for(var I=Ih(this.matchingFormats),C;!(C=I()).done;){var o=C.value,a=_N(t,o,{metadata:this.metadata,shouldTryNationalPrefixFormattingRule:function(s){return g.shouldTryNationalPrefixFormattingRule(s,{international:t.international,nationalPrefix:t.nationalPrefix})},getSeparatorAfterNationalPrefix:function(s){return g.getSeparatorAfterNationalPrefix(s)}});if(a)return this.resetFormat(),this.chosenFormat=o,this.setNationalNumberTemplate(a.replace(/\d/g,ii),t),this.populatedNationalNumberTemplate=a,this.populatedNationalNumberTemplatePosition=this.template.lastIndexOf(ii),a}return this.formatNationalNumberWithNextDigits(e,t)}},{key:"formatNationalNumberWithNextDigits",value:function(e,t){var g=this.chosenFormat,I=this.chooseFormat(t);if(I)return I===g?this.formatNextNationalNumberDigits(e):this.formatNextNationalNumberDigits(t.getNationalDigits())}},{key:"narrowDownMatchingFormats",value:function(e){var t=this,g=e.nationalSignificantNumber,I=e.nationalPrefix,C=e.international,o=g,a=o.length-oh;a<0&&(a=0),this.matchingFormats=this.matchingFormats.filter(function(n){return t.formatSuits(n,C,I)&&t.formatMatches(n,o,a)}),this.chosenFormat&&this.matchingFormats.indexOf(this.chosenFormat)===-1&&this.resetFormat()}},{key:"formatSuits",value:function(e,t,g){return!(g&&!e.usesNationalPrefix()&&!e.nationalPrefixIsOptionalWhenFormattingInNationalFormat()||!t&&!g&&e.nationalPrefixIsMandatoryWhenFormattingInNationalFormat())}},{key:"formatMatches",value:function(e,t,g){var I=e.leadingDigitsPatterns().length;if(I===0)return!0;g=Math.min(g,I-1);var C=e.leadingDigitsPatterns()[g];if(t.length<oh)try{return new TN(C).match(t,{allowOverflow:!0})!==void 0}catch(o){return console.error(o),!0}return new RegExp("^(".concat(C,")")).test(t)}},{key:"getFormatFormat",value:function(e,t){return t?e.internationalFormat():e.format()}},{key:"chooseFormat",value:function(e){for(var t=this,g=function(){var n=o.value;return t.chosenFormat===n?0:Ak.test(t.getFormatFormat(n,e.international))?t.createTemplateForFormat(n,e)?(t.chosenFormat=n,0):(t.matchingFormats=t.matchingFormats.filter(function(s){return s!==n}),1):1},I,C=Ih(this.matchingFormats.slice()),o;!(o=C()).done&&(I=g(),I!==0););return this.chosenFormat||this.resetFormat(),this.chosenFormat}},{key:"createTemplateForFormat",value:function(e,t){if(!(e.pattern().indexOf("|")>=0)){var g=this.getTemplateForFormat(e,t);if(g)return this.setNationalNumberTemplate(g,t),!0}}},{key:"getSeparatorAfterNationalPrefix",value:function(e){return this.isNANP||e&&e.nationalPrefixFormattingRule()&&ZN.test(e.nationalPrefixFormattingRule())?" ":""}},{key:"getInternationalPrefixBeforeCountryCallingCode",value:function(e,t){var g=e.IDDPrefix,I=e.missingPlus;return g?t&&t.spacing===!1?g:g+" ":I?"":"+"}},{key:"getTemplate",value:function(e){if(this.template){for(var t=-1,g=0,I=e.international?this.getInternationalPrefixBeforeCountryCallingCode(e,{spacing:!1}):"";g<I.length+e.getDigitsWithoutInternationalPrefix().length;)t=this.template.indexOf(ii,t+1),g++;return eh(this.template,t+1)}}},{key:"setNationalNumberTemplate",value:function(e,t){this.nationalNumberTemplate=e,this.populatedNationalNumberTemplate=e,this.populatedNationalNumberTemplatePosition=-1,t.international?this.template=this.getInternationalPrefixBeforeCountryCallingCode(t).replace(/[\d\+]/g,ii)+Ga(ii,t.callingCode.length)+" "+e:this.template=e}},{key:"getTemplateForFormat",value:function(e,t){var g=t.nationalSignificantNumber,I=t.international,C=t.nationalPrefix,o=t.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,a=e.pattern();a=a.replace(zN(),"\\d").replace($N(),"\\d");var n=XN.match(a)[0];if(!(g.length>n.length)){var s=new RegExp("^"+a+"$"),Q=g.replace(/\d/g,ur);s.test(Q)&&(n=Q);var r=this.getFormatFormat(e,I),B;if(this.shouldTryNationalPrefixFormattingRule(e,{international:I,nationalPrefix:C})){var h=r.replace(Rd,e.nationalPrefixFormattingRule());if(Ra(e.nationalPrefixFormattingRule())===(C||"")+Ra("$1")&&(r=h,B=!0,C))for(var c=C.length;c>0;)r=r.replace(/\d/,ii),c--}var d=n.replace(new RegExp(a),r).replace(new RegExp(ur,"g"),ii);return B||(o?d=Ga(ii,o.length)+" "+d:C&&(d=Ga(ii,C.length)+this.getSeparatorAfterNationalPrefix(e)+d)),I&&(d=Sd(d)),d}}},{key:"formatNextNationalNumberDigits",value:function(e){var t=DN(this.populatedNationalNumberTemplate,this.populatedNationalNumberTemplatePosition,e);if(!t){this.resetFormat();return}return this.populatedNationalNumberTemplate=t[0],this.populatedNationalNumberTemplatePosition=t[1],eh(this.populatedNationalNumberTemplate,this.populatedNationalNumberTemplatePosition+1)}},{key:"shouldTryNationalPrefixFormattingRule",value:function(e,t){var g=t.international,I=t.nationalPrefix;if(e.nationalPrefixFormattingRule()){var C=e.usesNationalPrefix();if(C&&I||!C&&!g)return!0}}}])}();function VC(i){"@babel/helpers - typeof";return VC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},VC(i)}function ah(i,A){return Ik(i)||gk(i,A)||ik(i,A)||tk()}function tk(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
6076
6076
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ik(i,A){if(i){if(typeof i=="string")return nh(i,A);var e={}.toString.call(i).slice(8,-1);return e==="Object"&&i.constructor&&(e=i.constructor.name),e==="Map"||e==="Set"?Array.from(i):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?nh(i,A):void 0}}function nh(i,A){(A==null||A>i.length)&&(A=i.length);for(var e=0,t=Array(A);e<A;e++)t[e]=i[e];return t}function gk(i,A){var e=i==null?null:typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(e!=null){var t,g,I,C,o=[],a=!0,n=!1;try{if(I=(e=e.call(i)).next,A!==0)for(;!(a=(t=I.call(e)).done)&&(o.push(t.value),o.length!==A);a=!0);}catch(s){n=!0,g=s}finally{try{if(!a&&e.return!=null&&(C=e.return(),Object(C)!==C))return}finally{if(n)throw g}}return o}}function Ik(i){if(Array.isArray(i))return i}function Ck(i,A){if(!(i instanceof A))throw new TypeError("Cannot call a class as a function")}function ok(i,A){for(var e=0;e<A.length;e++){var t=A[e];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(i,nk(t.key),t)}}function ak(i,A,e){return A&&ok(i.prototype,A),Object.defineProperty(i,"prototype",{writable:!1}),i}function nk(i){var A=sk(i,"string");return VC(A)=="symbol"?A:A+""}function sk(i,A){if(VC(i)!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var t=e.call(i,A);if(VC(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(i)}var Qk="["+ti+rt+"]+",rk=new RegExp("^"+Qk+"$","i"),Bk="(?:["+ka+"]["+ti+rt+"]*|["+ti+rt+"]+)",Ek=new RegExp("[^"+ti+rt+"]+.*$"),ck=/[^\d\[\]]/,dk=function(){function i(A){var e=A.defaultCountry,t=A.defaultCallingCode,g=A.metadata,I=A.onNationalSignificantNumberChange;Ck(this,i),this.defaultCountry=e,this.defaultCallingCode=t,this.metadata=g,this.onNationalSignificantNumberChange=I}return ak(i,[{key:"input",value:function(e,t){var g=xk(e),I=ah(g,2),C=I[0],o=I[1],a=Ra(C),n;return o&&(t.digits||(t.startInternationalNumber(void 0,void 0),a||(n=!0))),a&&this.inputDigits(a,t),{digits:a,justLeadingPlus:n}}},{key:"inputDigits",value:function(e,t){var g=t.digits,I=g.length<3&&g.length+e.length>=3;if(t.appendDigits(e),I&&this.extractIddPrefix(t),this.isWaitingForCountryCallingCode(t)){if(!this.extractCountryCallingCode(t))return}else t.appendNationalSignificantNumberDigits(e);t.international||this.hasExtractedNationalSignificantNumber||this.extractNationalSignificantNumber(t.getNationalDigits(),function(C){return t.update(C)})}},{key:"isWaitingForCountryCallingCode",value:function(e){var t=e.international,g=e.callingCode;return t&&!g}},{key:"extractCountryCallingCode",value:function(e){var t=sr("+"+e.getDigitsWithoutInternationalPrefix(),e.country,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata),g=t.countryCallingCode,I=t.number;if(g)return e.setCallingCode(g),e.update({nationalSignificantNumber:I}),!0}},{key:"reset",value:function(e){if(e){this.hasSelectedNumberingPlan=!0;var t=e._nationalPrefixForParsing();this.couldPossiblyExtractAnotherNationalSignificantNumber=t&&ck.test(t)}else this.hasSelectedNumberingPlan=void 0,this.couldPossiblyExtractAnotherNationalSignificantNumber=void 0}},{key:"extractNationalSignificantNumber",value:function(e,t){if(this.hasSelectedNumberingPlan){var g=or(e,this.metadata),I=g.nationalPrefix,C=g.nationalNumber,o=g.carrierCode;if(C!==e)return this.onExtractedNationalNumber(I,o,C,e,t),!0}}},{key:"extractAnotherNationalSignificantNumber",value:function(e,t,g){if(!this.hasExtractedNationalSignificantNumber)return this.extractNationalSignificantNumber(e,g);if(this.couldPossiblyExtractAnotherNationalSignificantNumber){var I=or(e,this.metadata),C=I.nationalPrefix,o=I.nationalNumber,a=I.carrierCode;if(o!==t)return this.onExtractedNationalNumber(C,a,o,e,g),!0}}},{key:"onExtractedNationalNumber",value:function(e,t,g,I,C){var o=!1,a,n=I.lastIndexOf(g);if(n<0||n!==I.length-g.length)o=!0;else{var s=I.slice(0,n);s&&s!==e&&(a=s)}C({nationalPrefix:e,carrierCode:t,nationalSignificantNumber:g,nationalSignificantNumberIsModified:o,prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix:a}),this.hasExtractedNationalSignificantNumber=!0,this.onNationalSignificantNumberChange()}},{key:"reExtractNationalSignificantNumber",value:function(e){if(this.extractAnotherNationalSignificantNumber(e.getNationalDigits(),e.nationalSignificantNumber,function(t){return e.update(t)}))return!0;if(this.extractIddPrefix(e))return this.extractCallingCodeAndNationalSignificantNumber(e),!0;if(this.fixMissingPlus(e))return this.extractCallingCodeAndNationalSignificantNumber(e),!0}},{key:"extractIddPrefix",value:function(e){var t=e.international,g=e.IDDPrefix,I=e.digits;if(e.nationalSignificantNumber,!(t||g)){var C=yd(I,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata);if(C!==void 0&&C!==I)return e.update({IDDPrefix:I.slice(0,I.length-C.length)}),this.startInternationalNumber(e,{country:void 0,callingCode:void 0}),!0}}},{key:"fixMissingPlus",value:function(e){if(!e.international){var t=kd(e.digits,e.country,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata),g=t.countryCallingCode;if(g)return e.update({missingPlus:!0}),this.startInternationalNumber(e,{country:e.country,callingCode:g}),!0}}},{key:"startInternationalNumber",value:function(e,t){var g=t.country,I=t.callingCode;e.startInternationalNumber(g,I),e.nationalSignificantNumber&&(e.resetNationalSignificantNumber(),this.onNationalSignificantNumberChange(),this.hasExtractedNationalSignificantNumber=void 0)}},{key:"extractCallingCodeAndNationalSignificantNumber",value:function(e){this.extractCountryCallingCode(e)&&this.extractNationalSignificantNumber(e.getNationalDigits(),function(t){return e.update(t)})}}])}();function hk(i){var A=i.search(Bk);if(!(A<0)){i=i.slice(A);var e;return i[0]==="+"&&(e=!0,i=i.slice(1)),i=i.replace(Ek,""),e&&(i="+"+i),i}}function lk(i){var A=hk(i)||"";return A[0]==="+"?[A.slice(1),!0]:[A]}function xk(i){var A=lk(i),e=ah(A,2),t=e[0],g=e[1];return rk.test(t)||(t=""),[t,g]}function jC(i){"@babel/helpers - typeof";return jC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},jC(i)}function uk(i,A){return pk(i)||_k(i,A)||Dk(i,A)||fk()}function fk(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
6077
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dk(i,A){if(i){if(typeof i=="string")return sh(i,A);var e={}.toString.call(i).slice(8,-1);return e==="Object"&&i.constructor&&(e=i.constructor.name),e==="Map"||e==="Set"?Array.from(i):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?sh(i,A):void 0}}function sh(i,A){(A==null||A>i.length)&&(A=i.length);for(var e=0,t=Array(A);e<A;e++)t[e]=i[e];return t}function _k(i,A){var e=i==null?null:typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(e!=null){var t,g,I,C,o=[],a=!0,n=!1;try{if(I=(e=e.call(i)).next,A!==0)for(;!(a=(t=I.call(e)).done)&&(o.push(t.value),o.length!==A);a=!0);}catch(s){n=!0,g=s}finally{try{if(!a&&e.return!=null&&(C=e.return(),Object(C)!==C))return}finally{if(n)throw g}}return o}}function pk(i){if(Array.isArray(i))return i}function wk(i,A){if(!(i instanceof A))throw new TypeError("Cannot call a class as a function")}function mk(i,A){for(var e=0;e<A.length;e++){var t=A[e];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(i,bk(t.key),t)}}function yk(i,A,e){return A&&mk(i.prototype,A),Object.defineProperty(i,"prototype",{writable:!1}),i}function bk(i){var A=Nk(i,"string");return jC(A)=="symbol"?A:A+""}function Nk(i,A){if(jC(i)!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var t=e.call(i,A);if(jC(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(i)}var Qh=function(){function i(A,e){wk(this,i),this.metadata=new ze(e);var t=this.getCountryAndCallingCode(A),g=uk(t,2),I=g[0],C=g[1];this.defaultCountry=I,this.defaultCallingCode=C,this.reset()}return yk(i,[{key:"getCountryAndCallingCode",value:function(e){var t,g;return e&&(Xg(e)?(t=e.defaultCountry,g=e.defaultCallingCode):t=e),t&&!this.metadata.hasCountry(t)&&(t=void 0),[t,g]}},{key:"input",value:function(e){var t=this.parser.input(e,this.state),g=t.digits,I=t.justLeadingPlus;if(I)this.formattedOutput="+";else if(g){this.determineTheCountryIfNeeded(),this.state.nationalSignificantNumber&&this.formatter.narrowDownMatchingFormats(this.state);var C;if(this.metadata.hasSelectedNumberingPlan()&&(C=this.formatter.format(g,this.state)),C===void 0&&this.parser.reExtractNationalSignificantNumber(this.state)){this.determineTheCountryIfNeeded();var o=this.state.getNationalDigits();o&&(C=this.formatter.format(o,this.state))}this.formattedOutput=C?this.getFullNumber(C):this.getNonFormattedNumber()}return this.formattedOutput}},{key:"reset",value:function(){var e=this;return this.state=new lN({onCountryChange:function(g){e.country=g},onCallingCodeChange:function(g,I){e.metadata.selectNumberingPlan(I,g),e.formatter.reset(e.metadata.numberingPlan,e.state),e.parser.reset(e.metadata.numberingPlan)}}),this.formatter=new ek({state:this.state,metadata:this.metadata}),this.parser=new dk({defaultCountry:this.defaultCountry,defaultCallingCode:this.defaultCallingCode,metadata:this.metadata,state:this.state,onNationalSignificantNumberChange:function(){e.determineTheCountryIfNeeded(),e.formatter.reset(e.metadata.numberingPlan,e.state)}}),this.state.reset({country:this.defaultCountry,callingCode:this.defaultCallingCode}),this.formattedOutput="",this}},{key:"isInternational",value:function(){return this.state.international}},{key:"getCallingCode",value:function(){if(this.isInternational())return this.state.callingCode}},{key:"getCountryCallingCode",value:function(){return this.getCallingCode()}},{key:"getCountry",value:function(){var e=this.state.digits;if(e)return this._getCountry()}},{key:"_getCountry",value:function(){var e=this.state.country;return e}},{key:"determineTheCountryIfNeeded",value:function(){(!this.state.country||this.isCountryCallingCodeAmbiguous())&&this.determineTheCountry()}},{key:"getFullNumber",value:function(e){var t=this;if(this.isInternational()){var g=function(o){return t.formatter.getInternationalPrefixBeforeCountryCallingCode(t.state,{spacing:!!o})+o},I=this.state.callingCode;return g(I?e?"".concat(I," ").concat(e):I:"".concat(this.state.getDigitsWithoutInternationalPrefix()))}return e}},{key:"getNonFormattedNationalNumberWithPrefix",value:function(){var e=this.state,t=e.nationalSignificantNumber,g=e.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,I=e.nationalPrefix,C=t,o=g||I;return o&&(C=o+C),C}},{key:"getNonFormattedNumber",value:function(){var e=this.state.nationalSignificantNumberIsModified;return this.getFullNumber(e?this.state.getNationalDigits():this.getNonFormattedNationalNumberWithPrefix())}},{key:"getNonFormattedTemplate",value:function(){var e=this.getNonFormattedNumber();if(e)return e.replace(/[\+\d]/g,ii)}},{key:"isCountryCallingCodeAmbiguous",value:function(){var e=this.state.callingCode,t=this.metadata.getCountryCodesForCallingCode(e);return t&&t.length>1}},{key:"determineTheCountry",value:function(){this.state.setCountry(ar(this.isInternational()?this.state.callingCode:this.defaultCallingCode,{nationalNumber:this.state.nationalSignificantNumber,metadata:this.metadata}))}},{key:"getNumberValue",value:function(){var e=this.state,t=e.digits,g=e.callingCode,I=e.country,C=e.nationalSignificantNumber;if(t){if(this.isInternational())return g?"+"+g+C:"+"+t;if(I||g){var o=I?this.metadata.countryCallingCode():g;return"+"+o+C}}}},{key:"getNumber",value:function(){var e=this.state,t=e.nationalSignificantNumber,g=e.carrierCode,I=e.callingCode,C=this._getCountry();if(t&&!(!C&&!I)){if(C&&C===this.defaultCountry){var o=new ze(this.metadata.metadata);o.selectNumberingPlan(C);var a=o.numberingPlan.callingCode(),n=this.metadata.getCountryCodesForCallingCode(a);if(n.length>1){var s=Nd(t,{countries:n,metadata:this.metadata.metadata});s&&(C=s)}}var Q=new Kd(C||I,t,this.metadata.metadata);return g&&(Q.carrierCode=g),Q}}},{key:"isPossible",value:function(){var e=this.getNumber();return e?e.isPossible():!1}},{key:"isValid",value:function(){var e=this.getNumber();return e?e.isValid():!1}},{key:"getNationalNumber",value:function(){return this.state.nationalSignificantNumber}},{key:"getChars",value:function(){return(this.state.international?"+":"")+this.state.digits}},{key:"getTemplate",value:function(){return this.formatter.getTemplate(this.state)||this.getNonFormattedTemplate()||""}}])}();function rh(){return ny(rN,arguments)}function Ma(i){return Qh.call(this,i,ld)}Ma.prototype=Object.create(Qh.prototype,{}),Ma.prototype.constructor=Ma;class Bh extends Error{constructor(A,e){super(e.message??`HTTP ${A}`),this.status=A,this.body=e}}async function WC(i,A){const e=await fetch(i,{...A,headers:{"Content-Type":"application/json",...(A==null?void 0:A.headers)??{}}});if(!e.ok){let t;try{const g=await e.json();t={error_code:g.error_code??"unknown",message:typeof g.message=="string"?g.message:"Request failed",retry_after_seconds:g.retry_after_seconds}}catch{t={error_code:"unknown",message:`HTTP ${e.status}`}}throw new Bh(e.status,t)}if(e.status!==204)return await e.json()}async function kk(i,A=ei){return WC(`${A}/v1/widget/callback/${i}/manifest`)}async function Sk(i,A,e,t=ei,g,I){return WC(`${t}/v1/widget/callback/${i}/submit`,{method:"POST",body:JSON.stringify({phone:A,country:e,source_metadata:{page_url:window.location.href},...I?{recaptcha_token:I}:{}})})}async function Rk(i,A,e=ei){return WC(`${e}/v1/widget/callback/request/${i}/email`,{method:"POST",body:JSON.stringify({email:A})})}async function Gk(i,A=ei,e){return WC(`${A}/v1/widget/callback/request/${i}/status`,{signal:e})}async function Mk(i,A=ei){await WC(`${A}/v1/widget/callback/request/${i}`,{method:"DELETE"})}const fr={en:{pill_label:"Call me back",dialog_aria_label:"Callback request",form_title:"Request a callback",form_lead:"Leave your number — we'll call you back in a moment.",search_placeholder:"Search country or +code",coming_soon_badge:"coming soon",submit_btn:"Call me back",submitting_btn:"Submitting…",terms_prefix:"By submitting you agree to our",terms_and:"and",terms_label:"terms",privacy_label:"privacy policy",queue_title:"In queue",queue_next:"You're next — we'll dial as soon as the agent is free.",queue_position:"You're #{n} in line.",queue_wait:"Approx. wait: {n} {unit}",queue_minute:"minute",queue_minutes:"minutes",queue_cancel:"Cancel request",dialing_title:"Calling you now",dialing_body:"Your phone should ring in a moment.",completed_title:"Done",completed_body:"Thanks for talking with us!",close_btn:"Close",email_label:"Want a follow-up? Leave your email (optional).",email_placeholder:"you@email.com",email_submit:"Send",email_sending:"Sending…",email_sent:"Thanks — we have your email.",email_invalid:"Please enter a valid email.",email_error:"Couldn't save your email. Please try again.",failed_title:"We couldn't reach you",retry_btn:"Try again",reload_to_retry:"Reload the page to make another callback.",rate_limited_title:"Too many requests",rate_limited_body:"You've already submitted a few callbacks recently. Try again in {n} {unit}.",error_rate_limit_phone:"Too many callback requests for this number. Try again later.",error_queue_full:"Callback queue is full. Try again in a few minutes.",error_callback_disabled:"Callback is not available for this agent.",error_invalid_phone:"That phone number is not valid.",error_country_not_supported:"This country is not supported.",error_blocked_prefix:"This destination is not allowed.",error_no_outbound_number:"This agent has no phone number configured.",error_plan_required:"A paid subscription is required.",error_domain_not_allowed:"The widget is not authorised on this domain.",error_agent_not_found:"Agent not found.",error_token_invalid:"Invalid request.",error_config_disabled:"Callback is currently disabled.",error_insufficient_credits:"Not enough credits to place this call.",error_unknown:"Something went wrong. Please try again."},de:{pill_label:"Rückruf anfordern",dialog_aria_label:"Rückrufanfrage",form_title:"Rückruf anfordern",form_lead:"Hinterlassen Sie Ihre Nummer — wir rufen Sie gleich zurück.",search_placeholder:"Land oder +Code suchen",coming_soon_badge:"demnächst",submit_btn:"Zurückrufen",submitting_btn:"Wird gesendet…",terms_prefix:"Mit dem Absenden stimmen Sie unseren",terms_and:"und der",terms_label:"AGB",privacy_label:"Datenschutzerklärung zu",queue_title:"In der Warteschlange",queue_next:"Sie sind als Nächstes dran — wir wählen, sobald der Agent frei ist.",queue_position:"Sie sind Nummer {n} in der Warteschlange.",queue_wait:"Voraussichtliche Wartezeit: {n} {unit}",queue_minute:"Minute",queue_minutes:"Minuten",queue_cancel:"Anfrage abbrechen",dialing_title:"Wir rufen Sie jetzt an",dialing_body:"Ihr Telefon sollte gleich klingeln.",completed_title:"Fertig",completed_body:"Vielen Dank für das Gespräch!",close_btn:"Schließen",email_label:"Rückmeldung gewünscht? E-Mail hinterlassen (optional).",email_placeholder:"sie@email.de",email_submit:"Senden",email_sending:"Wird gesendet…",email_sent:"Danke — wir haben Ihre E-Mail.",email_invalid:"Bitte geben Sie eine gültige E-Mail ein.",email_error:"E-Mail konnte nicht gespeichert werden. Bitte erneut versuchen.",failed_title:"Wir konnten Sie nicht erreichen",retry_btn:"Erneut versuchen",reload_to_retry:"Laden Sie die Seite neu, um einen weiteren Rückruf anzufordern.",rate_limited_title:"Zu viele Anfragen",rate_limited_body:"Sie haben kürzlich bereits mehrere Rückrufe angefordert. Versuchen Sie es in {n} {unit} erneut.",error_rate_limit_phone:"Zu viele Rückrufanfragen für diese Nummer. Versuchen Sie es später erneut.",error_queue_full:"Die Warteschlange ist voll. Versuchen Sie es in wenigen Minuten erneut.",error_callback_disabled:"Rückruf für diesen Agenten nicht verfügbar.",error_invalid_phone:"Diese Telefonnummer ist ungültig.",error_country_not_supported:"Dieses Land wird nicht unterstützt.",error_blocked_prefix:"Dieses Ziel ist nicht erlaubt.",error_no_outbound_number:"Für diesen Agenten ist keine Nummer konfiguriert.",error_plan_required:"Ein kostenpflichtiges Abonnement ist erforderlich.",error_domain_not_allowed:"Das Widget ist auf dieser Domain nicht zugelassen.",error_agent_not_found:"Agent nicht gefunden.",error_token_invalid:"Ungültige Anfrage.",error_config_disabled:"Rückruf ist derzeit deaktiviert.",error_insufficient_credits:"Nicht genügend Guthaben, um diesen Anruf zu tätigen.",error_unknown:"Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut."},fr:{pill_label:"Être rappelé",dialog_aria_label:"Demande de rappel",form_title:"Demander un rappel",form_lead:"Laissez votre numéro — nous vous rappelons dans un instant.",search_placeholder:"Rechercher un pays ou un +code",coming_soon_badge:"bientôt",submit_btn:"Me rappeler",submitting_btn:"Envoi…",terms_prefix:"En envoyant, vous acceptez nos",terms_and:"et notre",terms_label:"conditions",privacy_label:"politique de confidentialité",queue_title:"Dans la file",queue_next:"Vous êtes le prochain — nous composons dès que l'agent est libre.",queue_position:"Vous êtes en position {n} dans la file.",queue_wait:"Attente estimée : {n} {unit}",queue_minute:"minute",queue_minutes:"minutes",queue_cancel:"Annuler la demande",dialing_title:"Nous vous appelons",dialing_body:"Votre téléphone devrait sonner dans un instant.",completed_title:"Terminé",completed_body:"Merci pour cet échange !",close_btn:"Fermer",email_label:"Un suivi ? Laissez votre e-mail (facultatif).",email_placeholder:"vous@email.com",email_submit:"Envoyer",email_sending:"Envoi…",email_sent:"Merci — nous avons votre e-mail.",email_invalid:"Veuillez saisir un e-mail valide.",email_error:"Impossible d'enregistrer votre e-mail. Réessayez.",failed_title:"Nous n'avons pas pu vous joindre",retry_btn:"Réessayer",reload_to_retry:"Rechargez la page pour demander un nouveau rappel.",rate_limited_title:"Trop de demandes",rate_limited_body:"Vous avez déjà soumis plusieurs rappels récemment. Réessayez dans {n} {unit}.",error_rate_limit_phone:"Trop de demandes de rappel pour ce numéro. Réessayez plus tard.",error_queue_full:"La file de rappels est pleine. Réessayez dans quelques minutes.",error_callback_disabled:"Le rappel n'est pas disponible pour cet agent.",error_invalid_phone:"Ce numéro de téléphone n'est pas valide.",error_country_not_supported:"Ce pays n'est pas pris en charge.",error_blocked_prefix:"Cette destination n'est pas autorisée.",error_no_outbound_number:"Aucun numéro n'est configuré pour cet agent.",error_plan_required:"Un abonnement payant est requis.",error_domain_not_allowed:"Le widget n'est pas autorisé sur ce domaine.",error_agent_not_found:"Agent introuvable.",error_token_invalid:"Requête invalide.",error_config_disabled:"Le rappel est actuellement désactivé.",error_insufficient_credits:"Crédits insuffisants pour passer cet appel.",error_unknown:"Une erreur est survenue. Veuillez réessayer."},es:{pill_label:"Que me llamen",dialog_aria_label:"Solicitud de devolución de llamada",form_title:"Solicitar una llamada",form_lead:"Deja tu número — te llamamos enseguida.",search_placeholder:"Buscar país o +código",coming_soon_badge:"próximamente",submit_btn:"Que me llamen",submitting_btn:"Enviando…",terms_prefix:"Al enviar aceptas nuestros",terms_and:"y la",terms_label:"términos",privacy_label:"política de privacidad",queue_title:"En cola",queue_next:"Eres el siguiente — llamaremos en cuanto el agente esté libre.",queue_position:"Estás en la posición {n} de la cola.",queue_wait:"Espera aprox.: {n} {unit}",queue_minute:"minuto",queue_minutes:"minutos",queue_cancel:"Cancelar solicitud",dialing_title:"Te estamos llamando",dialing_body:"Tu teléfono debería sonar en un momento.",completed_title:"Listo",completed_body:"¡Gracias por hablar con nosotros!",close_btn:"Cerrar",email_label:"¿Quieres seguimiento? Deja tu email (opcional).",email_placeholder:"tu@email.com",email_submit:"Enviar",email_sending:"Enviando…",email_sent:"Gracias — tenemos tu email.",email_invalid:"Introduce un email válido.",email_error:"No se pudo guardar tu email. Inténtalo de nuevo.",failed_title:"No pudimos contactarte",retry_btn:"Reintentar",reload_to_retry:"Recarga la página para solicitar otra llamada.",rate_limited_title:"Demasiadas solicitudes",rate_limited_body:"Has enviado varias solicitudes recientemente. Inténtalo de nuevo en {n} {unit}.",error_rate_limit_phone:"Demasiadas solicitudes para este número. Inténtalo más tarde.",error_queue_full:"La cola está llena. Inténtalo en unos minutos.",error_callback_disabled:"La llamada no está disponible para este agente.",error_invalid_phone:"Ese número de teléfono no es válido.",error_country_not_supported:"Este país no está soportado.",error_blocked_prefix:"Este destino no está permitido.",error_no_outbound_number:"Este agente no tiene número configurado.",error_plan_required:"Se requiere una suscripción de pago.",error_domain_not_allowed:"El widget no está autorizado en este dominio.",error_agent_not_found:"Agente no encontrado.",error_token_invalid:"Solicitud no válida.",error_config_disabled:"La llamada está deshabilitada actualmente.",error_insufficient_credits:"No hay créditos suficientes para esta llamada.",error_unknown:"Algo salió mal. Inténtalo de nuevo."},it:{pill_label:"Richiamami",dialog_aria_label:"Richiesta di richiamata",form_title:"Richiedi una chiamata",form_lead:"Lascia il tuo numero — ti chiamiamo subito.",search_placeholder:"Cerca paese o +prefisso",coming_soon_badge:"in arrivo",submit_btn:"Richiamami",submitting_btn:"Invio…",terms_prefix:"Inviando accetti i nostri",terms_and:"e l'",terms_label:"termini",privacy_label:"informativa sulla privacy",queue_title:"In coda",queue_next:"Sei il prossimo — chiameremo non appena l'agente sarà libero.",queue_position:"Sei in posizione {n} in coda.",queue_wait:"Attesa stimata: {n} {unit}",queue_minute:"minuto",queue_minutes:"minuti",queue_cancel:"Annulla richiesta",dialing_title:"Ti stiamo chiamando",dialing_body:"Il telefono dovrebbe squillare a momenti.",completed_title:"Fatto",completed_body:"Grazie per averci parlato!",close_btn:"Chiudi",email_label:"Vuoi un seguito? Lascia la tua email (facoltativo).",email_placeholder:"tu@email.com",email_submit:"Invia",email_sending:"Invio…",email_sent:"Grazie — abbiamo la tua email.",email_invalid:"Inserisci un'email valida.",email_error:"Impossibile salvare la tua email. Riprova.",failed_title:"Non siamo riusciti a raggiungerti",retry_btn:"Riprova",reload_to_retry:"Ricarica la pagina per richiedere un'altra chiamata.",rate_limited_title:"Troppe richieste",rate_limited_body:"Hai già inviato diverse richieste di recente. Riprova fra {n} {unit}.",error_rate_limit_phone:"Troppe richieste per questo numero. Riprova più tardi.",error_queue_full:"La coda è piena. Riprova fra qualche minuto.",error_callback_disabled:"La richiamata non è disponibile per questo agente.",error_invalid_phone:"Questo numero non è valido.",error_country_not_supported:"Questo paese non è supportato.",error_blocked_prefix:"Questa destinazione non è consentita.",error_no_outbound_number:"Questo agente non ha un numero configurato.",error_plan_required:"È richiesto un abbonamento a pagamento.",error_domain_not_allowed:"Il widget non è autorizzato su questo dominio.",error_agent_not_found:"Agente non trovato.",error_token_invalid:"Richiesta non valida.",error_config_disabled:"La richiamata è attualmente disattivata.",error_insufficient_credits:"Crediti insufficienti per effettuare questa chiamata.",error_unknown:"Qualcosa è andato storto. Riprova."},pt:{pill_label:"Ligue-me de volta",dialog_aria_label:"Pedido de retorno de chamada",form_title:"Pedir uma chamada de retorno",form_lead:"Deixe o seu número — ligamos de volta em instantes.",search_placeholder:"Procurar país ou +código",coming_soon_badge:"em breve",submit_btn:"Ligue-me de volta",submitting_btn:"A enviar…",terms_prefix:"Ao enviar concorda com os nossos",terms_and:"e a",terms_label:"termos",privacy_label:"política de privacidade",queue_title:"Na fila",queue_next:"É o próximo — ligaremos assim que o agente estiver disponível.",queue_position:"Está em #{n} na fila.",queue_wait:"Espera aprox.: {n} {unit}",queue_minute:"minuto",queue_minutes:"minutos",queue_cancel:"Cancelar pedido",dialing_title:"A ligar para si",dialing_body:"O seu telefone deve tocar dentro de momentos.",completed_title:"Concluído",completed_body:"Obrigado pela conversa!",close_btn:"Fechar",email_label:"Quer retorno? Deixe o seu email (opcional).",email_placeholder:"voce@email.com",email_submit:"Enviar",email_sending:"A enviar…",email_sent:"Obrigado — temos o seu email.",email_invalid:"Introduza um email válido.",email_error:"Não foi possível guardar o seu email. Tente novamente.",failed_title:"Não conseguimos contactá-lo",retry_btn:"Tentar de novo",reload_to_retry:"Recarregue a página para pedir outra chamada.",rate_limited_title:"Demasiados pedidos",rate_limited_body:"Já submeteu vários pedidos recentemente. Tente novamente em {n} {unit}.",error_rate_limit_phone:"Demasiados pedidos para este número. Tente mais tarde.",error_queue_full:"A fila está cheia. Tente novamente em alguns minutos.",error_callback_disabled:"A chamada de retorno não está disponível para este agente.",error_invalid_phone:"Este número não é válido.",error_country_not_supported:"Este país não é suportado.",error_blocked_prefix:"Este destino não é permitido.",error_no_outbound_number:"Este agente não tem número configurado.",error_plan_required:"É necessária uma subscrição paga.",error_domain_not_allowed:"O widget não está autorizado neste domínio.",error_agent_not_found:"Agente não encontrado.",error_token_invalid:"Pedido inválido.",error_config_disabled:"A chamada de retorno está atualmente desativada.",error_insufficient_credits:"Créditos insuficientes para esta chamada.",error_unknown:"Algo correu mal. Tente novamente."},pl:{pill_label:"Oddzwoń do mnie",dialog_aria_label:"Prośba o oddzwonienie",form_title:"Poproś o oddzwonienie",form_lead:"Zostaw swój numer — oddzwonimy za chwilę.",search_placeholder:"Szukaj kraju lub +kodu",coming_soon_badge:"wkrótce",submit_btn:"Oddzwoń do mnie",submitting_btn:"Wysyłanie…",terms_prefix:"Wysyłając zgadzasz się z naszymi",terms_and:"oraz",terms_label:"regulaminem",privacy_label:"polityką prywatności",queue_title:"W kolejce",queue_next:"Jesteś następny — zadzwonimy, gdy agent będzie wolny.",queue_position:"Jesteś na pozycji {n} w kolejce.",queue_wait:"Szacowany czas oczekiwania: {n} {unit}",queue_minute:"minuta",queue_minutes:"minut",queue_cancel:"Anuluj prośbę",dialing_title:"Dzwonimy do Ciebie",dialing_body:"Telefon powinien zadzwonić za moment.",completed_title:"Gotowe",completed_body:"Dziękujemy za rozmowę!",close_btn:"Zamknij",email_label:"Chcesz kontakt? Zostaw e-mail (opcjonalnie).",email_placeholder:"ty@email.com",email_submit:"Wyślij",email_sending:"Wysyłanie…",email_sent:"Dziękujemy — mamy Twój e-mail.",email_invalid:"Podaj prawidłowy e-mail.",email_error:"Nie udało się zapisać e-maila. Spróbuj ponownie.",failed_title:"Nie udało nam się do Ciebie dodzwonić",retry_btn:"Spróbuj ponownie",reload_to_retry:"Odśwież stronę, aby zamówić kolejne oddzwonienie.",rate_limited_title:"Zbyt wiele żądań",rate_limited_body:"Wysłałeś już ostatnio kilka próśb. Spróbuj ponownie za {n} {unit}.",error_rate_limit_phone:"Zbyt wiele próśb dla tego numeru. Spróbuj później.",error_queue_full:"Kolejka jest pełna. Spróbuj za kilka minut.",error_callback_disabled:"Oddzwanianie jest niedostępne dla tego agenta.",error_invalid_phone:"Ten numer telefonu jest nieprawidłowy.",error_country_not_supported:"Ten kraj nie jest obsługiwany.",error_blocked_prefix:"Ten cel nie jest dozwolony.",error_no_outbound_number:"Ten agent nie ma skonfigurowanego numeru.",error_plan_required:"Wymagana jest płatna subskrypcja.",error_domain_not_allowed:"Widget nie jest autoryzowany w tej domenie.",error_agent_not_found:"Nie znaleziono agenta.",error_token_invalid:"Nieprawidłowe żądanie.",error_config_disabled:"Oddzwanianie jest obecnie wyłączone.",error_insufficient_credits:"Niewystarczające środki na to połączenie.",error_unknown:"Coś poszło nie tak. Spróbuj ponownie."},cs:{pill_label:"Zavolejte mi zpět",dialog_aria_label:"Žádost o zpětné volání",form_title:"Zažádat o zpětné volání",form_lead:"Zanechte své číslo — zavoláme za chvíli.",search_placeholder:"Hledat zemi nebo +kód",coming_soon_badge:"brzy",submit_btn:"Zavolejte mi zpět",submitting_btn:"Odesílání…",terms_prefix:"Odesláním souhlasíte s našimi",terms_and:"a",terms_label:"podmínkami",privacy_label:"zásadami ochrany osobních údajů",queue_title:"Ve frontě",queue_next:"Jste na řadě — zavoláme, jakmile bude agent volný.",queue_position:"Jste na pozici {n} ve frontě.",queue_wait:"Přibližná doba čekání: {n} {unit}",queue_minute:"minuta",queue_minutes:"minut",queue_cancel:"Zrušit žádost",dialing_title:"Voláme vám",dialing_body:"Telefon by měl za chvíli zvonit.",completed_title:"Hotovo",completed_body:"Děkujeme za rozhovor!",close_btn:"Zavřít",email_label:"Chcete odpověď? Zanechte e-mail (volitelné).",email_placeholder:"vy@email.com",email_submit:"Odeslat",email_sending:"Odesílání…",email_sent:"Děkujeme — máme váš e-mail.",email_invalid:"Zadejte platný e-mail.",email_error:"E-mail se nepodařilo uložit. Zkuste to znovu.",failed_title:"Nepodařilo se nám se s vámi spojit",retry_btn:"Zkusit znovu",reload_to_retry:"Obnovte stránku, abyste si vyžádali další zavolání.",rate_limited_title:"Příliš mnoho požadavků",rate_limited_body:"Nedávno jste již odeslal několik požadavků. Zkuste to za {n} {unit}.",error_rate_limit_phone:"Příliš mnoho požadavků pro toto číslo. Zkuste to později.",error_queue_full:"Fronta je plná. Zkuste to za pár minut.",error_callback_disabled:"Zpětné volání není pro tohoto agenta k dispozici.",error_invalid_phone:"Toto telefonní číslo není platné.",error_country_not_supported:"Tato země není podporována.",error_blocked_prefix:"Tato destinace není povolena.",error_no_outbound_number:"Tento agent nemá nakonfigurované číslo.",error_plan_required:"Vyžaduje se placené předplatné.",error_domain_not_allowed:"Widget není na této doméně autorizován.",error_agent_not_found:"Agent nenalezen.",error_token_invalid:"Neplatný požadavek.",error_config_disabled:"Zpětné volání je momentálně vypnuto.",error_insufficient_credits:"Nedostatek kreditů pro toto volání.",error_unknown:"Něco se pokazilo. Zkuste to prosím znovu."},hu:{pill_label:"Visszahívást kérek",dialog_aria_label:"Visszahívási kérelem",form_title:"Visszahívás kérése",form_lead:"Hagyja meg a számát — egy pillanat múlva visszahívjuk.",search_placeholder:"Ország vagy +kód keresése",coming_soon_badge:"hamarosan",submit_btn:"Visszahívást kérek",submitting_btn:"Küldés…",terms_prefix:"A küldéssel elfogadja",terms_and:"és az",terms_label:"feltételeink",privacy_label:"adatvédelmi szabályzatunk",queue_title:"Sorban",queue_next:"Ön a következő — tárcsázunk, amint az ügynök elérhető.",queue_position:"Ön a(z) {n}. helyen áll a sorban.",queue_wait:"Becsült várakozás: {n} {unit}",queue_minute:"perc",queue_minutes:"perc",queue_cancel:"Kérés visszavonása",dialing_title:"Most hívjuk Önt",dialing_body:"A telefonja egy pillanat múlva csörögni fog.",completed_title:"Kész",completed_body:"Köszönjük a beszélgetést!",close_btn:"Bezárás",email_label:"Szeretne visszajelzést? Adja meg e-mailjét (opcionális).",email_placeholder:"on@email.com",email_submit:"Küldés",email_sending:"Küldés…",email_sent:"Köszönjük — megvan az e-mailje.",email_invalid:"Adjon meg érvényes e-mailt.",email_error:"Nem sikerült menteni az e-mailt. Próbálja újra.",failed_title:"Nem tudtuk elérni Önt",retry_btn:"Újra",reload_to_retry:"Frissítse az oldalt egy újabb visszahívás kéréséhez.",rate_limited_title:"Túl sok kérés",rate_limited_body:"Nemrég már több visszahívást küldött. Próbálja újra {n} {unit} múlva.",error_rate_limit_phone:"Túl sok kérés erre a számra. Próbálja később.",error_queue_full:"A sor megtelt. Próbálja meg pár perc múlva.",error_callback_disabled:"A visszahívás nem érhető el ennél az ügynöknél.",error_invalid_phone:"Ez a telefonszám érvénytelen.",error_country_not_supported:"Ez az ország nem támogatott.",error_blocked_prefix:"Ez a célállomás nem engedélyezett.",error_no_outbound_number:"Ennek az ügynöknek nincs beállított száma.",error_plan_required:"Fizetős előfizetés szükséges.",error_domain_not_allowed:"A widget nem engedélyezett ezen a domainen.",error_agent_not_found:"Az ügynök nem található.",error_token_invalid:"Érvénytelen kérés.",error_config_disabled:"A visszahívás jelenleg ki van kapcsolva.",error_insufficient_credits:"Nincs elég kredit a híváshoz.",error_unknown:"Hiba történt. Próbálja újra."},tr:{pill_label:"Beni geri arayın",dialog_aria_label:"Geri arama isteği",form_title:"Geri arama talep edin",form_lead:"Numaranızı bırakın — birazdan sizi arayacağız.",search_placeholder:"Ülke veya +kod ara",coming_soon_badge:"yakında",submit_btn:"Beni geri arayın",submitting_btn:"Gönderiliyor…",terms_prefix:"Göndererek",terms_and:"ve",terms_label:"şartları",privacy_label:"gizlilik politikamızı kabul edersiniz",queue_title:"Sırada",queue_next:"Sıradakisiniz — agent boşalır boşalmaz arayacağız.",queue_position:"Sırada {n}. konumdasınız.",queue_wait:"Tahmini bekleme: {n} {unit}",queue_minute:"dakika",queue_minutes:"dakika",queue_cancel:"İsteği iptal et",dialing_title:"Şimdi sizi arıyoruz",dialing_body:"Telefonunuz birazdan çalmalı.",completed_title:"Tamamlandı",completed_body:"Konuştuğunuz için teşekkürler!",close_btn:"Kapat",email_label:"Geri dönüş ister misiniz? E-postanızı bırakın (isteğe bağlı).",email_placeholder:"siz@email.com",email_submit:"Gönder",email_sending:"Gönderiliyor…",email_sent:"Teşekkürler — e-postanızı aldık.",email_invalid:"Lütfen geçerli bir e-posta girin.",email_error:"E-postanız kaydedilemedi. Tekrar deneyin.",failed_title:"Size ulaşamadık",retry_btn:"Tekrar dene",reload_to_retry:"Yeni bir geri arama talep etmek için sayfayı yenileyin.",rate_limited_title:"Çok fazla istek",rate_limited_body:"Yakın zamanda birkaç istek gönderdiniz. {n} {unit} sonra tekrar deneyin.",error_rate_limit_phone:"Bu numara için çok fazla istek. Daha sonra deneyin.",error_queue_full:"Kuyruk dolu. Birkaç dakika sonra tekrar deneyin.",error_callback_disabled:"Bu agent için geri arama mevcut değil.",error_invalid_phone:"Bu telefon numarası geçersiz.",error_country_not_supported:"Bu ülke desteklenmiyor.",error_blocked_prefix:"Bu hedefe izin verilmiyor.",error_no_outbound_number:"Bu agent için yapılandırılmış numara yok.",error_plan_required:"Ücretli abonelik gerekli.",error_domain_not_allowed:"Widget bu alan adında yetkili değil.",error_agent_not_found:"Agent bulunamadı.",error_token_invalid:"Geçersiz istek.",error_config_disabled:"Geri arama şu an devre dışı.",error_insufficient_credits:"Bu arama için yeterli kredi yok.",error_unknown:"Bir şeyler ters gitti. Tekrar deneyin."},kk:{pill_label:"Маған кері қоңырау шалыңыз",dialog_aria_label:"Кері қоңырау сұранысы",form_title:"Кері қоңырау сұрау",form_lead:"Нөміріңізді қалдырыңыз — біз сізге сәл кейін қоңырау шаламыз.",search_placeholder:"Ел немесе +код іздеу",coming_soon_badge:"жақында",submit_btn:"Маған кері қоңырау",submitting_btn:"Жіберілуде…",terms_prefix:"Жіберу арқылы біздің",terms_and:"және",terms_label:"шарттарымыз",privacy_label:"құпиялылық саясатымызға келісесіз",queue_title:"Кезекте",queue_next:"Сіз келесісіз — агент бос болғаннан кейін бірден қоңырау шаламыз.",queue_position:"Сіз кезекте {n}-ші орындасыз.",queue_wait:"Шамамен күту: {n} {unit}",queue_minute:"минут",queue_minutes:"минут",queue_cancel:"Сұранысты болдырмау",dialing_title:"Сізге қоңырау шалудамыз",dialing_body:"Телефоныңыз сәл кейін шылдырлайды.",completed_title:"Дайын",completed_body:"Әңгімелескеніңізге рахмет!",close_btn:"Жабу",email_label:"Кері байланыс керек пе? Email қалдырыңыз (міндетті емес).",email_placeholder:"siz@email.com",email_submit:"Жіберу",email_sending:"Жіберілуде…",email_sent:"Рахмет — email алдық.",email_invalid:"Жарамды email енгізіңіз.",email_error:"Email сақталмады. Қайталап көріңіз.",failed_title:"Сізге қол жеткізе алмадық",retry_btn:"Қайталау",reload_to_retry:"Жаңа кері қоңырау сұрату үшін бетті қайта жүктеңіз.",rate_limited_title:"Тым көп сұраныс",rate_limited_body:"Сіз жуырда бірнеше сұраныс жібердіңіз. {n} {unit} кейін қайталаңыз.",error_rate_limit_phone:"Бұл нөмірге сұраныс тым көп. Кейін қайталаңыз.",error_queue_full:"Кезек толы. Бірнеше минут кейін қайталаңыз.",error_callback_disabled:"Бұл агент үшін кері қоңырау қолжетімді емес.",error_invalid_phone:"Бұл телефон нөмірі жарамсыз.",error_country_not_supported:"Бұл ел қолдау көрсетілмейді.",error_blocked_prefix:"Бұл бағытқа рұқсат жоқ.",error_no_outbound_number:"Бұл агентте нөмір конфигурацияланбаған.",error_plan_required:"Ақылы жазылым қажет.",error_domain_not_allowed:"Виджет бұл доменде рұқсат етілмеген.",error_agent_not_found:"Агент табылмады.",error_token_invalid:"Жарамсыз сұраныс.",error_config_disabled:"Кері қоңырау қазір өшірілген.",error_insufficient_credits:"Қоңырауға кредит жетпейді.",error_unknown:"Бірдеңе дұрыс болмады. Қайталап көріңіз."},zh:{pill_label:"请回电",dialog_aria_label:"回电请求",form_title:"申请回电",form_lead:"留下您的号码 — 我们稍后会回电给您。",search_placeholder:"搜索国家或 +代码",coming_soon_badge:"即将推出",submit_btn:"请回电",submitting_btn:"提交中…",terms_prefix:"提交即表示您同意我们的",terms_and:"和",terms_label:"条款",privacy_label:"隐私政策",queue_title:"排队中",queue_next:"您是下一位 — 客服空闲后我们将立即拨号。",queue_position:"您在队列中第 {n} 位。",queue_wait:"预计等待: {n} {unit}",queue_minute:"分钟",queue_minutes:"分钟",queue_cancel:"取消请求",dialing_title:"正在呼叫您",dialing_body:"您的电话很快就会响起。",completed_title:"完成",completed_body:"感谢您的来电!",close_btn:"关闭",email_label:"需要回访?留下您的邮箱(可选)。",email_placeholder:"you@email.com",email_submit:"发送",email_sending:"发送中…",email_sent:"谢谢 — 我们已收到您的邮箱。",email_invalid:"请输入有效的邮箱。",email_error:"无法保存您的邮箱。请重试。",failed_title:"我们无法联系到您",retry_btn:"重试",reload_to_retry:"刷新页面以再次申请回拨。",rate_limited_title:"请求过多",rate_limited_body:"您最近已经提交了几次回电请求。请在 {n} {unit} 后重试。",error_rate_limit_phone:"此号码请求过多。请稍后再试。",error_queue_full:"队列已满。请几分钟后再试。",error_callback_disabled:"此客服不支持回电。",error_invalid_phone:"该电话号码无效。",error_country_not_supported:"不支持此国家/地区。",error_blocked_prefix:"不允许此目的地。",error_no_outbound_number:"此客服未配置电话号码。",error_plan_required:"需要付费订阅。",error_domain_not_allowed:"此域名未授权使用该小部件。",error_agent_not_found:"未找到客服。",error_token_invalid:"无效请求。",error_config_disabled:"回电功能目前已禁用。",error_insufficient_credits:"余额不足以拨打此电话。",error_unknown:"出现错误。请重试。"},ru:{pill_label:"Перезвоните мне",dialog_aria_label:"Запрос обратного звонка",form_title:"Заказать обратный звонок",form_lead:"Оставьте номер — мы перезвоним через мгновение.",search_placeholder:"Поиск страны или +кода",coming_soon_badge:"скоро",submit_btn:"Перезвоните мне",submitting_btn:"Отправка…",terms_prefix:"Отправляя, вы соглашаетесь с нашими",terms_and:"и",terms_label:"условиями",privacy_label:"политикой конфиденциальности",queue_title:"В очереди",queue_next:"Вы следующий — наберём, как только агент освободится.",queue_position:"Вы #{n} в очереди.",queue_wait:"Примерное ожидание: {n} {unit}",queue_minute:"минута",queue_minutes:"минут",queue_cancel:"Отменить запрос",dialing_title:"Звоним вам",dialing_body:"Телефон должен зазвонить через мгновение.",completed_title:"Готово",completed_body:"Спасибо за разговор!",close_btn:"Закрыть",email_label:"Нужна обратная связь? Оставьте email (необязательно).",email_placeholder:"vy@email.com",email_submit:"Отправить",email_sending:"Отправка…",email_sent:"Спасибо — email получили.",email_invalid:"Введите корректный email.",email_error:"Не удалось сохранить email. Попробуйте ещё раз.",failed_title:"Не удалось до вас дозвониться",retry_btn:"Повторить",reload_to_retry:"Перезагрузите страницу, чтобы запросить ещё один звонок.",rate_limited_title:"Слишком много запросов",rate_limited_body:"Вы недавно уже отправляли несколько запросов. Повторите через {n} {unit}.",error_rate_limit_phone:"Слишком много запросов для этого номера. Попробуйте позже.",error_queue_full:"Очередь заполнена. Попробуйте через несколько минут.",error_callback_disabled:"Обратный звонок недоступен для этого агента.",error_invalid_phone:"Этот номер телефона недействителен.",error_country_not_supported:"Эта страна не поддерживается.",error_blocked_prefix:"Это направление не разрешено.",error_no_outbound_number:"У этого агента не настроен номер.",error_plan_required:"Требуется платная подписка.",error_domain_not_allowed:"Виджет не авторизован на этом домене.",error_agent_not_found:"Агент не найден.",error_token_invalid:"Недействительный запрос.",error_config_disabled:"Обратный звонок сейчас отключён.",error_insufficient_credits:"Недостаточно кредитов для этого звонка.",error_unknown:"Что-то пошло не так. Повторите попытку."},uk:{pill_label:"Передзвоніть мені",dialog_aria_label:"Запит зворотного дзвінка",form_title:"Замовити зворотний дзвінок",form_lead:"Залиште номер — ми передзвонимо за мить.",search_placeholder:"Пошук країни або +коду",coming_soon_badge:"скоро",submit_btn:"Передзвоніть мені",submitting_btn:"Надсилання…",terms_prefix:"Надсилаючи, ви погоджуєтесь з нашими",terms_and:"та",terms_label:"умовами",privacy_label:"політикою конфіденційності",queue_title:"У черзі",queue_next:"Ви наступний — наберемо, щойно агент звільниться.",queue_position:"Ви #{n} у черзі.",queue_wait:"Приблизне очікування: {n} {unit}",queue_minute:"хвилина",queue_minutes:"хвилин",queue_cancel:"Скасувати запит",dialing_title:"Дзвонимо вам",dialing_body:"Телефон має задзвонити за мить.",completed_title:"Готово",completed_body:"Дякуємо за розмову!",close_btn:"Закрити",email_label:"Потрібен зворотний зв'язок? Залиште email (необов'язково).",email_placeholder:"vy@email.com",email_submit:"Надіслати",email_sending:"Надсилання…",email_sent:"Дякуємо — email отримали.",email_invalid:"Введіть коректний email.",email_error:"Не вдалося зберегти email. Спробуйте ще раз.",failed_title:"Не вдалося до вас додзвонитися",retry_btn:"Повторити",reload_to_retry:"Перезавантажте сторінку, щоб замовити ще один дзвінок.",rate_limited_title:"Забагато запитів",rate_limited_body:"Ви нещодавно вже надіслали кілька запитів. Спробуйте за {n} {unit}.",error_rate_limit_phone:"Забагато запитів для цього номера. Спробуйте пізніше.",error_queue_full:"Черга заповнена. Спробуйте за кілька хвилин.",error_callback_disabled:"Зворотний дзвінок недоступний для цього агента.",error_invalid_phone:"Цей номер телефону недійсний.",error_country_not_supported:"Ця країна не підтримується.",error_blocked_prefix:"Цей напрямок не дозволено.",error_no_outbound_number:"У цього агента не налаштовано номер.",error_plan_required:"Потрібна платна підписка.",error_domain_not_allowed:"Віджет не авторизований на цьому домені.",error_agent_not_found:"Агента не знайдено.",error_token_invalid:"Недійсний запит.",error_config_disabled:"Зворотний дзвінок зараз вимкнено.",error_insufficient_credits:"Недостатньо кредитів для цього дзвінка.",error_unknown:"Сталася помилка. Спробуйте ще раз."}},Eh="en";function Fk(i){if(!i)return fr[Eh];const A=i.toLowerCase().split(/[-_]/)[0];return fr[A]??fr[Eh]}function Dr(i,A){return i.replace(/\{(\w+)\}/g,(e,t)=>A[t]!==void 0?String(A[t]):`{${t}}`)}const ch="hanc_callback_timestamps",dh=3,Fa=10*60*1e3;function _r(){try{const i=localStorage.getItem(ch);if(!i)return[];const A=JSON.parse(i);return Array.isArray(A)?A.filter(e=>typeof e=="number"):[]}catch{return[]}}function Uk(i){try{localStorage.setItem(ch,JSON.stringify(i))}catch{}}function Lk(){const i=Date.now();return _r().filter(e=>i-e<Fa).length<dh}function vk(){const i=Date.now(),A=_r().filter(e=>i-e<Fa);A.push(i),Uk(A)}function Kk(){const i=Date.now(),A=_r().filter(e=>i-e<Fa).sort();return A.length<dh?0:Math.max(0,Math.ceil((A[0]+Fa-i)/1e3))}const hh={default:"#f97316",purple:"#8b5cf6",blue:"#3b82f6",cyan:"#06b6d4",emerald:"#10b981",amber:"#f59e0b",tangerine:"#f97316",rose:"#f43f5e",ember:"#ff0000",black:"#171717",white:"#ffffff"};function Jk(i){return hh[i]??hh.default}function Yk(i){const A=/^#?([0-9a-f]{6})$/i.exec(i);if(!A)return"#ffffff";const e=parseInt(A[1],16),t=e>>16&255,g=e>>8&255,I=e&255;return .2126*t+.7152*g+.0722*I>165?"#171717":"#ffffff"}var Tk=Object.defineProperty,qk=Object.getOwnPropertyDescriptor,qe=(i,A,e,t)=>{for(var g=t>1?void 0:t?qk(A,e):A,I=i.length-1,C;I>=0;I--)(C=i[I])&&(g=(t?C(A,e,g):C(g))||g);return t&&g&&Tk(A,e,g),g};const lh=5e3;let XC=null;function Hk(){var i;return typeof window>"u"||typeof document>"u"?Promise.reject(new Error("no DOM")):(i=window.grecaptcha)!=null&&i.render?Promise.resolve():XC||(XC=new Promise((A,e)=>{const t=document.createElement("script");t.src="https://www.google.com/recaptcha/api.js?render=explicit",t.async=!0,t.defer=!0,t.onerror=()=>{XC=null,e(new Error("reCAPTCHA script failed to load"))},t.onload=()=>{const g=Date.now(),I=()=>{var C;(C=window.grecaptcha)!=null&&C.render?A():Date.now()-g>1e4?e(new Error("reCAPTCHA not ready")):window.setTimeout(I,50)};I()},document.head.appendChild(t)}),XC)}const Pk={AT:"664 123 4567",DE:"151 2345 6789",CH:"78 123 45 67",FR:"6 12 34 56 78",IT:"312 345 6789",ES:"612 34 56 78",PT:"912 345 678",NL:"6 12345678",BE:"470 12 34 56",PL:"512 345 678",CZ:"601 123 456",RO:"712 345 678",BG:"88 123 4567",GR:"691 234 5678",HR:"91 234 5678",SE:"70 123 45 67",DK:"20 12 34 56",FI:"41 234 5678",EE:"5123 4567",LV:"21 234 567",LT:"612 34567",IE:"85 012 3456",LU:"628 123 456",SK:"912 345 678",MT:"9696 1234",CY:"96 123456",HU:"20 123 4567",GB:"7400 123456",US:"212 555 0123",CA:"416 555 0123"};R.HancAiCallback=class extends Kt{constructor(){super(...arguments),this.agentId="",this.apiBaseUrl=ei,this.skipFetch=!1,this.manifestOverride=null,this.theme="",this.locale="",this.view={kind:"loading"},this.manifest=null,this.selectedCountry=null,this.phoneRaw="",this.phoneError="",this.apiError=null,this.pickerOpen=!1,this.pickerSearch="",this.emailRaw="",this.emailError="",this.emailStatus="idle",this.showEmailCapture=!1,this.emailTimer=null,this.recaptchaToken=null,this.recaptchaWidgetId=null,this.recaptchaRendering=!1,this.recaptchaHost=null,this.postSubmitView=null,this.pollAbort=null,this.pollTimer=null,this.lastFocusedBeforeOpen=null,this.onDocumentKey=A=>{A.key==="Escape"&&this.view.kind!=="closed"&&this.view.kind!=="loading"&&this.close()},this.open=()=>{if(this.manifest){if(this.lastFocusedBeforeOpen=document.activeElement,this.postSubmitView){this.view=this.postSubmitView,(this.postSubmitView.kind==="queued"||this.postSubmitView.kind==="dialing")&&this.startPolling(this.postSubmitView.request_id);return}this.view={kind:"form"},setTimeout(()=>{const A=this.renderRoot.querySelector(".phone-input");A==null||A.focus()},50)}},this.close=()=>{var A,e;this.stopPolling(),this.view={kind:"closed"},this.apiError=null,(e=(A=this.lastFocusedBeforeOpen)==null?void 0:A.focus)==null||e.call(A),this.lastFocusedBeforeOpen=null}}get t(){var A;return Fk(this.locale||((A=this.manifest)==null?void 0:A.widget_locale))}localizeError(A){const t=`error_${A.error_code}`;return this.t[t]??this.t.error_unknown}async connectedCallback(){super.connectedCallback(),await this.loadManifest(),document.addEventListener("keydown",this.onDocumentKey)}disconnectedCallback(){super.disconnectedCallback(),this.stopPolling(),this.clearEmailTimer(),this.teardownRecaptcha(),document.removeEventListener("keydown",this.onDocumentKey)}updated(A){A.has("manifestOverride")&&this.skipFetch&&this.manifestOverride&&this.adoptManifest(this.manifestOverride),this.syncRecaptcha()}syncRecaptcha(){var g;const A=(g=this.manifest)==null?void 0:g.recaptcha_site_key;if(!A)return;if(!(this.view.kind==="form"||this.view.kind==="submitting")){this.teardownRecaptcha();return}this.recaptchaWidgetId!==null||this.recaptchaRendering||!this.renderRoot.querySelector('slot[name="recaptcha"]')||(this.recaptchaRendering=!0,Hk().then(()=>{if(this.recaptchaWidgetId!==null||this.view.kind!=="form"&&this.view.kind!=="submitting")return;const I=document.createElement("div");I.setAttribute("slot","recaptcha"),this.appendChild(I),this.recaptchaHost=I,this.recaptchaWidgetId=window.grecaptcha.render(I,{sitekey:A,callback:C=>{this.recaptchaToken=C},"expired-callback":()=>{this.recaptchaToken=null},"error-callback":()=>{this.recaptchaToken=null}})}).catch(I=>{console.warn("[hanc-callback] reCAPTCHA load failed:",I)}).finally(()=>{this.recaptchaRendering=!1}))}teardownRecaptcha(){this.recaptchaHost&&(this.recaptchaHost.remove(),this.recaptchaHost=null),this.recaptchaWidgetId=null,this.recaptchaToken=null}async loadManifest(){if(this.skipFetch){this.manifestOverride?this.adoptManifest(this.manifestOverride):this.view={kind:"closed"};return}if(!this.agentId){this.view={kind:"manifest_error"};return}try{const A=await kk(this.agentId,this.apiBaseUrl);this.adoptManifest(A)}catch(A){console.warn("[hanc-callback] manifest fetch failed:",A),this.view={kind:"manifest_error"}}}adoptManifest(A){const e={...A,allowed_countries:A.allowed_countries.map(C=>({...C,example:C.example||Pk[C.code]||""}))};this.manifest=e;const t=e.allowed_countries.filter(C=>C.enabled),I=this.detectCountryFromLocale(t)??t.find(C=>C.code==="AT")??t[0];this.selectedCountry=(I==null?void 0:I.code)??null,this.view={kind:"closed"}}detectCountryFromLocale(A){var I;if(typeof navigator>"u")return null;const e=navigator.language||"",t=/[-_]([A-Z]{2})$/i.exec(e),g=(I=t==null?void 0:t[1])==null?void 0:I.toUpperCase();return g?A.find(C=>C.code===g)??null:null}selectCountry(A){this.selectedCountry=A,this.pickerOpen=!1,this.pickerSearch="",this.phoneError="",this.phoneRaw&&this.validatePhoneSoft()}onPhoneInput(A){if(!this.selectedCountry){this.phoneRaw=A;return}const e=new Ma(this.selectedCountry);this.phoneRaw=e.input(A),this.phoneError="",this.apiError=null}validatePhoneSoft(){if(!this.selectedCountry)return!1;const A=rh(this.phoneRaw,this.selectedCountry);return!(A!=null&&A.isValid())||A.country!==this.selectedCountry?(this.phoneError="Enter a valid phone number for this country.",!1):(this.phoneError="",!0)}resetRecaptcha(){var A;if(this.recaptchaWidgetId!==null)try{(A=window.grecaptcha)==null||A.reset(this.recaptchaWidgetId)}catch{}this.recaptchaToken=null}async onSubmit(A){if(A==null||A.preventDefault(),!this.manifest||!this.selectedCountry||!this.validatePhoneSoft()||this.manifest.recaptcha_site_key&&!this.recaptchaToken)return;if(!Lk()){this.view={kind:"rate_limited"};return}const e=rh(this.phoneRaw,this.selectedCountry);if(!(e!=null&&e.isValid()))return;const t=e.format("E.164");this.view={kind:"submitting"},this.apiError=null;try{const g=await Sk(this.manifest.agent_id,t,this.selectedCountry,this.apiBaseUrl,void 0,this.recaptchaToken??void 0);vk(),this.view={kind:"queued",request_id:g.request_id,position:g.position,eta_seconds:g.estimated_wait_seconds},this.postSubmitView=this.view,this.startPolling(g.request_id)}catch(g){this.handleSubmitError(g)}}handleSubmitError(A){this.resetRecaptcha(),A instanceof Bh?(this.apiError=A.body,["callback_disabled","no_outbound_number","insufficient_credits","plan_required","domain_not_allowed","agent_not_found"].includes(A.body.error_code)?this.setPostSubmitView({kind:"failed",reason:A.body.message??"Something went wrong.",can_retry:!1}):this.view={kind:"form"}):(console.error("[hanc-callback] submit error:",A),this.apiError={error_code:"unknown",message:"Network error. Please try again."},this.view={kind:"form"})}async onCancel(){if(this.view.kind!=="queued")return;const A=this.view.request_id;this.stopPolling();try{await Mk(A,this.apiBaseUrl)}catch{}this.postSubmitView=null,this.close()}startPolling(A){this.stopPolling(),this.pollAbort=new AbortController;const e=async()=>{var t,g,I;if(!((t=this.pollAbort)!=null&&t.signal.aborted)){try{const C=await Gk(A,this.apiBaseUrl,(g=this.pollAbort)==null?void 0:g.signal);if((I=this.pollAbort)!=null&&I.signal.aborted)return;this.onPollUpdate(A,C)}catch(C){if((C==null?void 0:C.name)==="AbortError")return;console.warn("[hanc-callback] poll error:",C)}this.pollTimer=window.setTimeout(e,lh)}};this.pollTimer=window.setTimeout(e,lh)}stopPolling(){var A;this.pollTimer&&clearTimeout(this.pollTimer),this.pollTimer=null,(A=this.pollAbort)==null||A.abort(),this.pollAbort=null}startEmailTimer(){this.emailTimer!==null||this.showEmailCapture||(this.emailTimer=window.setTimeout(()=>{this.emailTimer=null,this.showEmailCapture=!0},R.HancAiCallback.EMAIL_CAPTURE_DELAY_MS))}clearEmailTimer(){this.emailTimer!==null&&(clearTimeout(this.emailTimer),this.emailTimer=null)}onPollUpdate(A,e){switch(e.status){case"queued":this.setPostSubmitView({kind:"queued",request_id:A,position:e.position??0,eta_seconds:e.estimated_wait_seconds??0});return;case"dialing":this.startEmailTimer(),this.setPostSubmitView({kind:"dialing",request_id:A});return;case"completed":this.stopPolling(),this.clearEmailTimer(),this.showEmailCapture=!0,this.setPostSubmitView({kind:"completed",request_id:A});return;case"failed":case"expired":this.stopPolling(),this.clearEmailTimer(),this.setPostSubmitView({kind:"failed",reason:e.failure_reason??"unknown",can_retry:!1});return;case"cancelled":this.stopPolling(),this.clearEmailTimer(),this.view={kind:"closed"};return}}setPostSubmitView(A){this.view=A,this.postSubmitView=A}render(){var I;if(this.view.kind==="loading"||this.view.kind==="manifest_error")return ie;const A=this.theme||((I=this.manifest)==null?void 0:I.theme)||"default",e=Jk(A),t=Yk(e),g=`--cb-primary: ${e}; --cb-on-primary: ${t};`;return this.view.kind==="closed"?DA`
|
|
6077
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dk(i,A){if(i){if(typeof i=="string")return sh(i,A);var e={}.toString.call(i).slice(8,-1);return e==="Object"&&i.constructor&&(e=i.constructor.name),e==="Map"||e==="Set"?Array.from(i):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?sh(i,A):void 0}}function sh(i,A){(A==null||A>i.length)&&(A=i.length);for(var e=0,t=Array(A);e<A;e++)t[e]=i[e];return t}function _k(i,A){var e=i==null?null:typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(e!=null){var t,g,I,C,o=[],a=!0,n=!1;try{if(I=(e=e.call(i)).next,A!==0)for(;!(a=(t=I.call(e)).done)&&(o.push(t.value),o.length!==A);a=!0);}catch(s){n=!0,g=s}finally{try{if(!a&&e.return!=null&&(C=e.return(),Object(C)!==C))return}finally{if(n)throw g}}return o}}function pk(i){if(Array.isArray(i))return i}function wk(i,A){if(!(i instanceof A))throw new TypeError("Cannot call a class as a function")}function mk(i,A){for(var e=0;e<A.length;e++){var t=A[e];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(i,bk(t.key),t)}}function yk(i,A,e){return A&&mk(i.prototype,A),Object.defineProperty(i,"prototype",{writable:!1}),i}function bk(i){var A=Nk(i,"string");return jC(A)=="symbol"?A:A+""}function Nk(i,A){if(jC(i)!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var t=e.call(i,A);if(jC(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(i)}var Qh=function(){function i(A,e){wk(this,i),this.metadata=new ze(e);var t=this.getCountryAndCallingCode(A),g=uk(t,2),I=g[0],C=g[1];this.defaultCountry=I,this.defaultCallingCode=C,this.reset()}return yk(i,[{key:"getCountryAndCallingCode",value:function(e){var t,g;return e&&(Xg(e)?(t=e.defaultCountry,g=e.defaultCallingCode):t=e),t&&!this.metadata.hasCountry(t)&&(t=void 0),[t,g]}},{key:"input",value:function(e){var t=this.parser.input(e,this.state),g=t.digits,I=t.justLeadingPlus;if(I)this.formattedOutput="+";else if(g){this.determineTheCountryIfNeeded(),this.state.nationalSignificantNumber&&this.formatter.narrowDownMatchingFormats(this.state);var C;if(this.metadata.hasSelectedNumberingPlan()&&(C=this.formatter.format(g,this.state)),C===void 0&&this.parser.reExtractNationalSignificantNumber(this.state)){this.determineTheCountryIfNeeded();var o=this.state.getNationalDigits();o&&(C=this.formatter.format(o,this.state))}this.formattedOutput=C?this.getFullNumber(C):this.getNonFormattedNumber()}return this.formattedOutput}},{key:"reset",value:function(){var e=this;return this.state=new lN({onCountryChange:function(g){e.country=g},onCallingCodeChange:function(g,I){e.metadata.selectNumberingPlan(I,g),e.formatter.reset(e.metadata.numberingPlan,e.state),e.parser.reset(e.metadata.numberingPlan)}}),this.formatter=new ek({state:this.state,metadata:this.metadata}),this.parser=new dk({defaultCountry:this.defaultCountry,defaultCallingCode:this.defaultCallingCode,metadata:this.metadata,state:this.state,onNationalSignificantNumberChange:function(){e.determineTheCountryIfNeeded(),e.formatter.reset(e.metadata.numberingPlan,e.state)}}),this.state.reset({country:this.defaultCountry,callingCode:this.defaultCallingCode}),this.formattedOutput="",this}},{key:"isInternational",value:function(){return this.state.international}},{key:"getCallingCode",value:function(){if(this.isInternational())return this.state.callingCode}},{key:"getCountryCallingCode",value:function(){return this.getCallingCode()}},{key:"getCountry",value:function(){var e=this.state.digits;if(e)return this._getCountry()}},{key:"_getCountry",value:function(){var e=this.state.country;return e}},{key:"determineTheCountryIfNeeded",value:function(){(!this.state.country||this.isCountryCallingCodeAmbiguous())&&this.determineTheCountry()}},{key:"getFullNumber",value:function(e){var t=this;if(this.isInternational()){var g=function(o){return t.formatter.getInternationalPrefixBeforeCountryCallingCode(t.state,{spacing:!!o})+o},I=this.state.callingCode;return g(I?e?"".concat(I," ").concat(e):I:"".concat(this.state.getDigitsWithoutInternationalPrefix()))}return e}},{key:"getNonFormattedNationalNumberWithPrefix",value:function(){var e=this.state,t=e.nationalSignificantNumber,g=e.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,I=e.nationalPrefix,C=t,o=g||I;return o&&(C=o+C),C}},{key:"getNonFormattedNumber",value:function(){var e=this.state.nationalSignificantNumberIsModified;return this.getFullNumber(e?this.state.getNationalDigits():this.getNonFormattedNationalNumberWithPrefix())}},{key:"getNonFormattedTemplate",value:function(){var e=this.getNonFormattedNumber();if(e)return e.replace(/[\+\d]/g,ii)}},{key:"isCountryCallingCodeAmbiguous",value:function(){var e=this.state.callingCode,t=this.metadata.getCountryCodesForCallingCode(e);return t&&t.length>1}},{key:"determineTheCountry",value:function(){this.state.setCountry(ar(this.isInternational()?this.state.callingCode:this.defaultCallingCode,{nationalNumber:this.state.nationalSignificantNumber,metadata:this.metadata}))}},{key:"getNumberValue",value:function(){var e=this.state,t=e.digits,g=e.callingCode,I=e.country,C=e.nationalSignificantNumber;if(t){if(this.isInternational())return g?"+"+g+C:"+"+t;if(I||g){var o=I?this.metadata.countryCallingCode():g;return"+"+o+C}}}},{key:"getNumber",value:function(){var e=this.state,t=e.nationalSignificantNumber,g=e.carrierCode,I=e.callingCode,C=this._getCountry();if(t&&!(!C&&!I)){if(C&&C===this.defaultCountry){var o=new ze(this.metadata.metadata);o.selectNumberingPlan(C);var a=o.numberingPlan.callingCode(),n=this.metadata.getCountryCodesForCallingCode(a);if(n.length>1){var s=Nd(t,{countries:n,metadata:this.metadata.metadata});s&&(C=s)}}var Q=new Kd(C||I,t,this.metadata.metadata);return g&&(Q.carrierCode=g),Q}}},{key:"isPossible",value:function(){var e=this.getNumber();return e?e.isPossible():!1}},{key:"isValid",value:function(){var e=this.getNumber();return e?e.isValid():!1}},{key:"getNationalNumber",value:function(){return this.state.nationalSignificantNumber}},{key:"getChars",value:function(){return(this.state.international?"+":"")+this.state.digits}},{key:"getTemplate",value:function(){return this.formatter.getTemplate(this.state)||this.getNonFormattedTemplate()||""}}])}();function rh(){return ny(rN,arguments)}function Ma(i){return Qh.call(this,i,ld)}Ma.prototype=Object.create(Qh.prototype,{}),Ma.prototype.constructor=Ma;class Bh extends Error{constructor(A,e){super(e.message??`HTTP ${A}`),this.status=A,this.body=e}}async function WC(i,A){const e=await fetch(i,{...A,headers:{"Content-Type":"application/json",...(A==null?void 0:A.headers)??{}}});if(!e.ok){let t;try{const g=await e.json();t={error_code:g.error_code??"unknown",message:typeof g.message=="string"?g.message:"Request failed",retry_after_seconds:g.retry_after_seconds}}catch{t={error_code:"unknown",message:`HTTP ${e.status}`}}throw new Bh(e.status,t)}if(e.status!==204)return await e.json()}async function kk(i,A=ei){return WC(`${A}/v1/widget/callback/${i}/manifest`)}async function Sk(i,A,e,t=ei,g,I){return WC(`${t}/v1/widget/callback/${i}/submit`,{method:"POST",body:JSON.stringify({phone:A,country:e,source_metadata:{page_url:window.location.href},...I?{recaptcha_token:I}:{}})})}async function Rk(i,A,e=ei){return WC(`${e}/v1/widget/callback/request/${i}/email`,{method:"POST",body:JSON.stringify({email:A})})}async function Gk(i,A=ei,e){return WC(`${A}/v1/widget/callback/request/${i}/status`,{signal:e})}async function Mk(i,A=ei){await WC(`${A}/v1/widget/callback/request/${i}`,{method:"DELETE"})}const fr={en:{pill_label:"Call me back",dialog_aria_label:"Callback request",form_title:"Request a callback",form_lead:"Leave your number — we'll call you back in a moment.",search_placeholder:"Search country or +code",coming_soon_badge:"coming soon",submit_btn:"Call me back",submitting_btn:"Submitting…",terms_prefix:"By submitting you agree to our",terms_and:"and",terms_label:"terms",privacy_label:"privacy policy",queue_title:"In queue",queue_next:"You're next — we'll dial as soon as the agent is free.",queue_position:"You're #{n} in line.",queue_wait:"Approx. wait: {n} {unit}",queue_minute:"minute",queue_minutes:"minutes",queue_cancel:"Cancel request",dialing_title:"Calling you now",dialing_body:"Your phone should ring in a moment.",completed_title:"Done",completed_body:"Thanks for talking with us!",close_btn:"Close",email_label:"Want a follow-up? Leave your email.",email_placeholder:"you@email.com",email_submit:"Send",email_sending:"Sending…",email_sent:"Thanks — we have your email.",email_invalid:"Please enter a valid email.",email_error:"Couldn't save your email. Please try again.",failed_title:"We couldn't reach you",retry_btn:"Try again",reload_to_retry:"Reload the page to make another callback.",rate_limited_title:"Too many requests",rate_limited_body:"You've already submitted a few callbacks recently. Try again in {n} {unit}.",error_rate_limit_phone:"Too many callback requests for this number. Try again later.",error_queue_full:"Callback queue is full. Try again in a few minutes.",error_callback_disabled:"Callback is not available for this agent.",error_invalid_phone:"That phone number is not valid.",error_country_not_supported:"This country is not supported.",error_blocked_prefix:"This destination is not allowed.",error_no_outbound_number:"This agent has no phone number configured.",error_plan_required:"A paid subscription is required.",error_domain_not_allowed:"The widget is not authorised on this domain.",error_agent_not_found:"Agent not found.",error_token_invalid:"Invalid request.",error_config_disabled:"Callback is currently disabled.",error_insufficient_credits:"Not enough credits to place this call.",error_unknown:"Something went wrong. Please try again."},de:{pill_label:"Rückruf anfordern",dialog_aria_label:"Rückrufanfrage",form_title:"Rückruf anfordern",form_lead:"Hinterlassen Sie Ihre Nummer — wir rufen Sie gleich zurück.",search_placeholder:"Land oder +Code suchen",coming_soon_badge:"demnächst",submit_btn:"Zurückrufen",submitting_btn:"Wird gesendet…",terms_prefix:"Mit dem Absenden stimmen Sie unseren",terms_and:"und der",terms_label:"AGB",privacy_label:"Datenschutzerklärung zu",queue_title:"In der Warteschlange",queue_next:"Sie sind als Nächstes dran — wir wählen, sobald der Agent frei ist.",queue_position:"Sie sind Nummer {n} in der Warteschlange.",queue_wait:"Voraussichtliche Wartezeit: {n} {unit}",queue_minute:"Minute",queue_minutes:"Minuten",queue_cancel:"Anfrage abbrechen",dialing_title:"Wir rufen Sie jetzt an",dialing_body:"Ihr Telefon sollte gleich klingeln.",completed_title:"Fertig",completed_body:"Vielen Dank für das Gespräch!",close_btn:"Schließen",email_label:"Rückmeldung gewünscht? E-Mail hinterlassen.",email_placeholder:"sie@email.de",email_submit:"Senden",email_sending:"Wird gesendet…",email_sent:"Danke — wir haben Ihre E-Mail.",email_invalid:"Bitte geben Sie eine gültige E-Mail ein.",email_error:"E-Mail konnte nicht gespeichert werden. Bitte erneut versuchen.",failed_title:"Wir konnten Sie nicht erreichen",retry_btn:"Erneut versuchen",reload_to_retry:"Laden Sie die Seite neu, um einen weiteren Rückruf anzufordern.",rate_limited_title:"Zu viele Anfragen",rate_limited_body:"Sie haben kürzlich bereits mehrere Rückrufe angefordert. Versuchen Sie es in {n} {unit} erneut.",error_rate_limit_phone:"Zu viele Rückrufanfragen für diese Nummer. Versuchen Sie es später erneut.",error_queue_full:"Die Warteschlange ist voll. Versuchen Sie es in wenigen Minuten erneut.",error_callback_disabled:"Rückruf für diesen Agenten nicht verfügbar.",error_invalid_phone:"Diese Telefonnummer ist ungültig.",error_country_not_supported:"Dieses Land wird nicht unterstützt.",error_blocked_prefix:"Dieses Ziel ist nicht erlaubt.",error_no_outbound_number:"Für diesen Agenten ist keine Nummer konfiguriert.",error_plan_required:"Ein kostenpflichtiges Abonnement ist erforderlich.",error_domain_not_allowed:"Das Widget ist auf dieser Domain nicht zugelassen.",error_agent_not_found:"Agent nicht gefunden.",error_token_invalid:"Ungültige Anfrage.",error_config_disabled:"Rückruf ist derzeit deaktiviert.",error_insufficient_credits:"Nicht genügend Guthaben, um diesen Anruf zu tätigen.",error_unknown:"Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut."},fr:{pill_label:"Être rappelé",dialog_aria_label:"Demande de rappel",form_title:"Demander un rappel",form_lead:"Laissez votre numéro — nous vous rappelons dans un instant.",search_placeholder:"Rechercher un pays ou un +code",coming_soon_badge:"bientôt",submit_btn:"Me rappeler",submitting_btn:"Envoi…",terms_prefix:"En envoyant, vous acceptez nos",terms_and:"et notre",terms_label:"conditions",privacy_label:"politique de confidentialité",queue_title:"Dans la file",queue_next:"Vous êtes le prochain — nous composons dès que l'agent est libre.",queue_position:"Vous êtes en position {n} dans la file.",queue_wait:"Attente estimée : {n} {unit}",queue_minute:"minute",queue_minutes:"minutes",queue_cancel:"Annuler la demande",dialing_title:"Nous vous appelons",dialing_body:"Votre téléphone devrait sonner dans un instant.",completed_title:"Terminé",completed_body:"Merci pour cet échange !",close_btn:"Fermer",email_label:"Un suivi ? Laissez votre e-mail.",email_placeholder:"vous@email.com",email_submit:"Envoyer",email_sending:"Envoi…",email_sent:"Merci — nous avons votre e-mail.",email_invalid:"Veuillez saisir un e-mail valide.",email_error:"Impossible d'enregistrer votre e-mail. Réessayez.",failed_title:"Nous n'avons pas pu vous joindre",retry_btn:"Réessayer",reload_to_retry:"Rechargez la page pour demander un nouveau rappel.",rate_limited_title:"Trop de demandes",rate_limited_body:"Vous avez déjà soumis plusieurs rappels récemment. Réessayez dans {n} {unit}.",error_rate_limit_phone:"Trop de demandes de rappel pour ce numéro. Réessayez plus tard.",error_queue_full:"La file de rappels est pleine. Réessayez dans quelques minutes.",error_callback_disabled:"Le rappel n'est pas disponible pour cet agent.",error_invalid_phone:"Ce numéro de téléphone n'est pas valide.",error_country_not_supported:"Ce pays n'est pas pris en charge.",error_blocked_prefix:"Cette destination n'est pas autorisée.",error_no_outbound_number:"Aucun numéro n'est configuré pour cet agent.",error_plan_required:"Un abonnement payant est requis.",error_domain_not_allowed:"Le widget n'est pas autorisé sur ce domaine.",error_agent_not_found:"Agent introuvable.",error_token_invalid:"Requête invalide.",error_config_disabled:"Le rappel est actuellement désactivé.",error_insufficient_credits:"Crédits insuffisants pour passer cet appel.",error_unknown:"Une erreur est survenue. Veuillez réessayer."},es:{pill_label:"Que me llamen",dialog_aria_label:"Solicitud de devolución de llamada",form_title:"Solicitar una llamada",form_lead:"Deja tu número — te llamamos enseguida.",search_placeholder:"Buscar país o +código",coming_soon_badge:"próximamente",submit_btn:"Que me llamen",submitting_btn:"Enviando…",terms_prefix:"Al enviar aceptas nuestros",terms_and:"y la",terms_label:"términos",privacy_label:"política de privacidad",queue_title:"En cola",queue_next:"Eres el siguiente — llamaremos en cuanto el agente esté libre.",queue_position:"Estás en la posición {n} de la cola.",queue_wait:"Espera aprox.: {n} {unit}",queue_minute:"minuto",queue_minutes:"minutos",queue_cancel:"Cancelar solicitud",dialing_title:"Te estamos llamando",dialing_body:"Tu teléfono debería sonar en un momento.",completed_title:"Listo",completed_body:"¡Gracias por hablar con nosotros!",close_btn:"Cerrar",email_label:"¿Quieres seguimiento? Deja tu email.",email_placeholder:"tu@email.com",email_submit:"Enviar",email_sending:"Enviando…",email_sent:"Gracias — tenemos tu email.",email_invalid:"Introduce un email válido.",email_error:"No se pudo guardar tu email. Inténtalo de nuevo.",failed_title:"No pudimos contactarte",retry_btn:"Reintentar",reload_to_retry:"Recarga la página para solicitar otra llamada.",rate_limited_title:"Demasiadas solicitudes",rate_limited_body:"Has enviado varias solicitudes recientemente. Inténtalo de nuevo en {n} {unit}.",error_rate_limit_phone:"Demasiadas solicitudes para este número. Inténtalo más tarde.",error_queue_full:"La cola está llena. Inténtalo en unos minutos.",error_callback_disabled:"La llamada no está disponible para este agente.",error_invalid_phone:"Ese número de teléfono no es válido.",error_country_not_supported:"Este país no está soportado.",error_blocked_prefix:"Este destino no está permitido.",error_no_outbound_number:"Este agente no tiene número configurado.",error_plan_required:"Se requiere una suscripción de pago.",error_domain_not_allowed:"El widget no está autorizado en este dominio.",error_agent_not_found:"Agente no encontrado.",error_token_invalid:"Solicitud no válida.",error_config_disabled:"La llamada está deshabilitada actualmente.",error_insufficient_credits:"No hay créditos suficientes para esta llamada.",error_unknown:"Algo salió mal. Inténtalo de nuevo."},it:{pill_label:"Richiamami",dialog_aria_label:"Richiesta di richiamata",form_title:"Richiedi una chiamata",form_lead:"Lascia il tuo numero — ti chiamiamo subito.",search_placeholder:"Cerca paese o +prefisso",coming_soon_badge:"in arrivo",submit_btn:"Richiamami",submitting_btn:"Invio…",terms_prefix:"Inviando accetti i nostri",terms_and:"e l'",terms_label:"termini",privacy_label:"informativa sulla privacy",queue_title:"In coda",queue_next:"Sei il prossimo — chiameremo non appena l'agente sarà libero.",queue_position:"Sei in posizione {n} in coda.",queue_wait:"Attesa stimata: {n} {unit}",queue_minute:"minuto",queue_minutes:"minuti",queue_cancel:"Annulla richiesta",dialing_title:"Ti stiamo chiamando",dialing_body:"Il telefono dovrebbe squillare a momenti.",completed_title:"Fatto",completed_body:"Grazie per averci parlato!",close_btn:"Chiudi",email_label:"Vuoi un seguito? Lascia la tua email.",email_placeholder:"tu@email.com",email_submit:"Invia",email_sending:"Invio…",email_sent:"Grazie — abbiamo la tua email.",email_invalid:"Inserisci un'email valida.",email_error:"Impossibile salvare la tua email. Riprova.",failed_title:"Non siamo riusciti a raggiungerti",retry_btn:"Riprova",reload_to_retry:"Ricarica la pagina per richiedere un'altra chiamata.",rate_limited_title:"Troppe richieste",rate_limited_body:"Hai già inviato diverse richieste di recente. Riprova fra {n} {unit}.",error_rate_limit_phone:"Troppe richieste per questo numero. Riprova più tardi.",error_queue_full:"La coda è piena. Riprova fra qualche minuto.",error_callback_disabled:"La richiamata non è disponibile per questo agente.",error_invalid_phone:"Questo numero non è valido.",error_country_not_supported:"Questo paese non è supportato.",error_blocked_prefix:"Questa destinazione non è consentita.",error_no_outbound_number:"Questo agente non ha un numero configurato.",error_plan_required:"È richiesto un abbonamento a pagamento.",error_domain_not_allowed:"Il widget non è autorizzato su questo dominio.",error_agent_not_found:"Agente non trovato.",error_token_invalid:"Richiesta non valida.",error_config_disabled:"La richiamata è attualmente disattivata.",error_insufficient_credits:"Crediti insufficienti per effettuare questa chiamata.",error_unknown:"Qualcosa è andato storto. Riprova."},pt:{pill_label:"Ligue-me de volta",dialog_aria_label:"Pedido de retorno de chamada",form_title:"Pedir uma chamada de retorno",form_lead:"Deixe o seu número — ligamos de volta em instantes.",search_placeholder:"Procurar país ou +código",coming_soon_badge:"em breve",submit_btn:"Ligue-me de volta",submitting_btn:"A enviar…",terms_prefix:"Ao enviar concorda com os nossos",terms_and:"e a",terms_label:"termos",privacy_label:"política de privacidade",queue_title:"Na fila",queue_next:"É o próximo — ligaremos assim que o agente estiver disponível.",queue_position:"Está em #{n} na fila.",queue_wait:"Espera aprox.: {n} {unit}",queue_minute:"minuto",queue_minutes:"minutos",queue_cancel:"Cancelar pedido",dialing_title:"A ligar para si",dialing_body:"O seu telefone deve tocar dentro de momentos.",completed_title:"Concluído",completed_body:"Obrigado pela conversa!",close_btn:"Fechar",email_label:"Quer retorno? Deixe o seu email.",email_placeholder:"voce@email.com",email_submit:"Enviar",email_sending:"A enviar…",email_sent:"Obrigado — temos o seu email.",email_invalid:"Introduza um email válido.",email_error:"Não foi possível guardar o seu email. Tente novamente.",failed_title:"Não conseguimos contactá-lo",retry_btn:"Tentar de novo",reload_to_retry:"Recarregue a página para pedir outra chamada.",rate_limited_title:"Demasiados pedidos",rate_limited_body:"Já submeteu vários pedidos recentemente. Tente novamente em {n} {unit}.",error_rate_limit_phone:"Demasiados pedidos para este número. Tente mais tarde.",error_queue_full:"A fila está cheia. Tente novamente em alguns minutos.",error_callback_disabled:"A chamada de retorno não está disponível para este agente.",error_invalid_phone:"Este número não é válido.",error_country_not_supported:"Este país não é suportado.",error_blocked_prefix:"Este destino não é permitido.",error_no_outbound_number:"Este agente não tem número configurado.",error_plan_required:"É necessária uma subscrição paga.",error_domain_not_allowed:"O widget não está autorizado neste domínio.",error_agent_not_found:"Agente não encontrado.",error_token_invalid:"Pedido inválido.",error_config_disabled:"A chamada de retorno está atualmente desativada.",error_insufficient_credits:"Créditos insuficientes para esta chamada.",error_unknown:"Algo correu mal. Tente novamente."},pl:{pill_label:"Oddzwoń do mnie",dialog_aria_label:"Prośba o oddzwonienie",form_title:"Poproś o oddzwonienie",form_lead:"Zostaw swój numer — oddzwonimy za chwilę.",search_placeholder:"Szukaj kraju lub +kodu",coming_soon_badge:"wkrótce",submit_btn:"Oddzwoń do mnie",submitting_btn:"Wysyłanie…",terms_prefix:"Wysyłając zgadzasz się z naszymi",terms_and:"oraz",terms_label:"regulaminem",privacy_label:"polityką prywatności",queue_title:"W kolejce",queue_next:"Jesteś następny — zadzwonimy, gdy agent będzie wolny.",queue_position:"Jesteś na pozycji {n} w kolejce.",queue_wait:"Szacowany czas oczekiwania: {n} {unit}",queue_minute:"minuta",queue_minutes:"minut",queue_cancel:"Anuluj prośbę",dialing_title:"Dzwonimy do Ciebie",dialing_body:"Telefon powinien zadzwonić za moment.",completed_title:"Gotowe",completed_body:"Dziękujemy za rozmowę!",close_btn:"Zamknij",email_label:"Chcesz kontakt? Zostaw e-mail.",email_placeholder:"ty@email.com",email_submit:"Wyślij",email_sending:"Wysyłanie…",email_sent:"Dziękujemy — mamy Twój e-mail.",email_invalid:"Podaj prawidłowy e-mail.",email_error:"Nie udało się zapisać e-maila. Spróbuj ponownie.",failed_title:"Nie udało nam się do Ciebie dodzwonić",retry_btn:"Spróbuj ponownie",reload_to_retry:"Odśwież stronę, aby zamówić kolejne oddzwonienie.",rate_limited_title:"Zbyt wiele żądań",rate_limited_body:"Wysłałeś już ostatnio kilka próśb. Spróbuj ponownie za {n} {unit}.",error_rate_limit_phone:"Zbyt wiele próśb dla tego numeru. Spróbuj później.",error_queue_full:"Kolejka jest pełna. Spróbuj za kilka minut.",error_callback_disabled:"Oddzwanianie jest niedostępne dla tego agenta.",error_invalid_phone:"Ten numer telefonu jest nieprawidłowy.",error_country_not_supported:"Ten kraj nie jest obsługiwany.",error_blocked_prefix:"Ten cel nie jest dozwolony.",error_no_outbound_number:"Ten agent nie ma skonfigurowanego numeru.",error_plan_required:"Wymagana jest płatna subskrypcja.",error_domain_not_allowed:"Widget nie jest autoryzowany w tej domenie.",error_agent_not_found:"Nie znaleziono agenta.",error_token_invalid:"Nieprawidłowe żądanie.",error_config_disabled:"Oddzwanianie jest obecnie wyłączone.",error_insufficient_credits:"Niewystarczające środki na to połączenie.",error_unknown:"Coś poszło nie tak. Spróbuj ponownie."},cs:{pill_label:"Zavolejte mi zpět",dialog_aria_label:"Žádost o zpětné volání",form_title:"Zažádat o zpětné volání",form_lead:"Zanechte své číslo — zavoláme za chvíli.",search_placeholder:"Hledat zemi nebo +kód",coming_soon_badge:"brzy",submit_btn:"Zavolejte mi zpět",submitting_btn:"Odesílání…",terms_prefix:"Odesláním souhlasíte s našimi",terms_and:"a",terms_label:"podmínkami",privacy_label:"zásadami ochrany osobních údajů",queue_title:"Ve frontě",queue_next:"Jste na řadě — zavoláme, jakmile bude agent volný.",queue_position:"Jste na pozici {n} ve frontě.",queue_wait:"Přibližná doba čekání: {n} {unit}",queue_minute:"minuta",queue_minutes:"minut",queue_cancel:"Zrušit žádost",dialing_title:"Voláme vám",dialing_body:"Telefon by měl za chvíli zvonit.",completed_title:"Hotovo",completed_body:"Děkujeme za rozhovor!",close_btn:"Zavřít",email_label:"Chcete odpověď? Zanechte e-mail.",email_placeholder:"vy@email.com",email_submit:"Odeslat",email_sending:"Odesílání…",email_sent:"Děkujeme — máme váš e-mail.",email_invalid:"Zadejte platný e-mail.",email_error:"E-mail se nepodařilo uložit. Zkuste to znovu.",failed_title:"Nepodařilo se nám se s vámi spojit",retry_btn:"Zkusit znovu",reload_to_retry:"Obnovte stránku, abyste si vyžádali další zavolání.",rate_limited_title:"Příliš mnoho požadavků",rate_limited_body:"Nedávno jste již odeslal několik požadavků. Zkuste to za {n} {unit}.",error_rate_limit_phone:"Příliš mnoho požadavků pro toto číslo. Zkuste to později.",error_queue_full:"Fronta je plná. Zkuste to za pár minut.",error_callback_disabled:"Zpětné volání není pro tohoto agenta k dispozici.",error_invalid_phone:"Toto telefonní číslo není platné.",error_country_not_supported:"Tato země není podporována.",error_blocked_prefix:"Tato destinace není povolena.",error_no_outbound_number:"Tento agent nemá nakonfigurované číslo.",error_plan_required:"Vyžaduje se placené předplatné.",error_domain_not_allowed:"Widget není na této doméně autorizován.",error_agent_not_found:"Agent nenalezen.",error_token_invalid:"Neplatný požadavek.",error_config_disabled:"Zpětné volání je momentálně vypnuto.",error_insufficient_credits:"Nedostatek kreditů pro toto volání.",error_unknown:"Něco se pokazilo. Zkuste to prosím znovu."},hu:{pill_label:"Visszahívást kérek",dialog_aria_label:"Visszahívási kérelem",form_title:"Visszahívás kérése",form_lead:"Hagyja meg a számát — egy pillanat múlva visszahívjuk.",search_placeholder:"Ország vagy +kód keresése",coming_soon_badge:"hamarosan",submit_btn:"Visszahívást kérek",submitting_btn:"Küldés…",terms_prefix:"A küldéssel elfogadja",terms_and:"és az",terms_label:"feltételeink",privacy_label:"adatvédelmi szabályzatunk",queue_title:"Sorban",queue_next:"Ön a következő — tárcsázunk, amint az ügynök elérhető.",queue_position:"Ön a(z) {n}. helyen áll a sorban.",queue_wait:"Becsült várakozás: {n} {unit}",queue_minute:"perc",queue_minutes:"perc",queue_cancel:"Kérés visszavonása",dialing_title:"Most hívjuk Önt",dialing_body:"A telefonja egy pillanat múlva csörögni fog.",completed_title:"Kész",completed_body:"Köszönjük a beszélgetést!",close_btn:"Bezárás",email_label:"Szeretne visszajelzést? Adja meg e-mailjét.",email_placeholder:"on@email.com",email_submit:"Küldés",email_sending:"Küldés…",email_sent:"Köszönjük — megvan az e-mailje.",email_invalid:"Adjon meg érvényes e-mailt.",email_error:"Nem sikerült menteni az e-mailt. Próbálja újra.",failed_title:"Nem tudtuk elérni Önt",retry_btn:"Újra",reload_to_retry:"Frissítse az oldalt egy újabb visszahívás kéréséhez.",rate_limited_title:"Túl sok kérés",rate_limited_body:"Nemrég már több visszahívást küldött. Próbálja újra {n} {unit} múlva.",error_rate_limit_phone:"Túl sok kérés erre a számra. Próbálja később.",error_queue_full:"A sor megtelt. Próbálja meg pár perc múlva.",error_callback_disabled:"A visszahívás nem érhető el ennél az ügynöknél.",error_invalid_phone:"Ez a telefonszám érvénytelen.",error_country_not_supported:"Ez az ország nem támogatott.",error_blocked_prefix:"Ez a célállomás nem engedélyezett.",error_no_outbound_number:"Ennek az ügynöknek nincs beállított száma.",error_plan_required:"Fizetős előfizetés szükséges.",error_domain_not_allowed:"A widget nem engedélyezett ezen a domainen.",error_agent_not_found:"Az ügynök nem található.",error_token_invalid:"Érvénytelen kérés.",error_config_disabled:"A visszahívás jelenleg ki van kapcsolva.",error_insufficient_credits:"Nincs elég kredit a híváshoz.",error_unknown:"Hiba történt. Próbálja újra."},tr:{pill_label:"Beni geri arayın",dialog_aria_label:"Geri arama isteği",form_title:"Geri arama talep edin",form_lead:"Numaranızı bırakın — birazdan sizi arayacağız.",search_placeholder:"Ülke veya +kod ara",coming_soon_badge:"yakında",submit_btn:"Beni geri arayın",submitting_btn:"Gönderiliyor…",terms_prefix:"Göndererek",terms_and:"ve",terms_label:"şartları",privacy_label:"gizlilik politikamızı kabul edersiniz",queue_title:"Sırada",queue_next:"Sıradakisiniz — agent boşalır boşalmaz arayacağız.",queue_position:"Sırada {n}. konumdasınız.",queue_wait:"Tahmini bekleme: {n} {unit}",queue_minute:"dakika",queue_minutes:"dakika",queue_cancel:"İsteği iptal et",dialing_title:"Şimdi sizi arıyoruz",dialing_body:"Telefonunuz birazdan çalmalı.",completed_title:"Tamamlandı",completed_body:"Konuştuğunuz için teşekkürler!",close_btn:"Kapat",email_label:"Geri dönüş ister misiniz? E-postanızı bırakın.",email_placeholder:"siz@email.com",email_submit:"Gönder",email_sending:"Gönderiliyor…",email_sent:"Teşekkürler — e-postanızı aldık.",email_invalid:"Lütfen geçerli bir e-posta girin.",email_error:"E-postanız kaydedilemedi. Tekrar deneyin.",failed_title:"Size ulaşamadık",retry_btn:"Tekrar dene",reload_to_retry:"Yeni bir geri arama talep etmek için sayfayı yenileyin.",rate_limited_title:"Çok fazla istek",rate_limited_body:"Yakın zamanda birkaç istek gönderdiniz. {n} {unit} sonra tekrar deneyin.",error_rate_limit_phone:"Bu numara için çok fazla istek. Daha sonra deneyin.",error_queue_full:"Kuyruk dolu. Birkaç dakika sonra tekrar deneyin.",error_callback_disabled:"Bu agent için geri arama mevcut değil.",error_invalid_phone:"Bu telefon numarası geçersiz.",error_country_not_supported:"Bu ülke desteklenmiyor.",error_blocked_prefix:"Bu hedefe izin verilmiyor.",error_no_outbound_number:"Bu agent için yapılandırılmış numara yok.",error_plan_required:"Ücretli abonelik gerekli.",error_domain_not_allowed:"Widget bu alan adında yetkili değil.",error_agent_not_found:"Agent bulunamadı.",error_token_invalid:"Geçersiz istek.",error_config_disabled:"Geri arama şu an devre dışı.",error_insufficient_credits:"Bu arama için yeterli kredi yok.",error_unknown:"Bir şeyler ters gitti. Tekrar deneyin."},kk:{pill_label:"Маған кері қоңырау шалыңыз",dialog_aria_label:"Кері қоңырау сұранысы",form_title:"Кері қоңырау сұрау",form_lead:"Нөміріңізді қалдырыңыз — біз сізге сәл кейін қоңырау шаламыз.",search_placeholder:"Ел немесе +код іздеу",coming_soon_badge:"жақында",submit_btn:"Маған кері қоңырау",submitting_btn:"Жіберілуде…",terms_prefix:"Жіберу арқылы біздің",terms_and:"және",terms_label:"шарттарымыз",privacy_label:"құпиялылық саясатымызға келісесіз",queue_title:"Кезекте",queue_next:"Сіз келесісіз — агент бос болғаннан кейін бірден қоңырау шаламыз.",queue_position:"Сіз кезекте {n}-ші орындасыз.",queue_wait:"Шамамен күту: {n} {unit}",queue_minute:"минут",queue_minutes:"минут",queue_cancel:"Сұранысты болдырмау",dialing_title:"Сізге қоңырау шалудамыз",dialing_body:"Телефоныңыз сәл кейін шылдырлайды.",completed_title:"Дайын",completed_body:"Әңгімелескеніңізге рахмет!",close_btn:"Жабу",email_label:"Кері байланыс керек пе? Email қалдырыңыз.",email_placeholder:"siz@email.com",email_submit:"Жіберу",email_sending:"Жіберілуде…",email_sent:"Рахмет — email алдық.",email_invalid:"Жарамды email енгізіңіз.",email_error:"Email сақталмады. Қайталап көріңіз.",failed_title:"Сізге қол жеткізе алмадық",retry_btn:"Қайталау",reload_to_retry:"Жаңа кері қоңырау сұрату үшін бетті қайта жүктеңіз.",rate_limited_title:"Тым көп сұраныс",rate_limited_body:"Сіз жуырда бірнеше сұраныс жібердіңіз. {n} {unit} кейін қайталаңыз.",error_rate_limit_phone:"Бұл нөмірге сұраныс тым көп. Кейін қайталаңыз.",error_queue_full:"Кезек толы. Бірнеше минут кейін қайталаңыз.",error_callback_disabled:"Бұл агент үшін кері қоңырау қолжетімді емес.",error_invalid_phone:"Бұл телефон нөмірі жарамсыз.",error_country_not_supported:"Бұл ел қолдау көрсетілмейді.",error_blocked_prefix:"Бұл бағытқа рұқсат жоқ.",error_no_outbound_number:"Бұл агентте нөмір конфигурацияланбаған.",error_plan_required:"Ақылы жазылым қажет.",error_domain_not_allowed:"Виджет бұл доменде рұқсат етілмеген.",error_agent_not_found:"Агент табылмады.",error_token_invalid:"Жарамсыз сұраныс.",error_config_disabled:"Кері қоңырау қазір өшірілген.",error_insufficient_credits:"Қоңырауға кредит жетпейді.",error_unknown:"Бірдеңе дұрыс болмады. Қайталап көріңіз."},zh:{pill_label:"请回电",dialog_aria_label:"回电请求",form_title:"申请回电",form_lead:"留下您的号码 — 我们稍后会回电给您。",search_placeholder:"搜索国家或 +代码",coming_soon_badge:"即将推出",submit_btn:"请回电",submitting_btn:"提交中…",terms_prefix:"提交即表示您同意我们的",terms_and:"和",terms_label:"条款",privacy_label:"隐私政策",queue_title:"排队中",queue_next:"您是下一位 — 客服空闲后我们将立即拨号。",queue_position:"您在队列中第 {n} 位。",queue_wait:"预计等待: {n} {unit}",queue_minute:"分钟",queue_minutes:"分钟",queue_cancel:"取消请求",dialing_title:"正在呼叫您",dialing_body:"您的电话很快就会响起。",completed_title:"完成",completed_body:"感谢您的来电!",close_btn:"关闭",email_label:"需要回访?留下您的邮箱。",email_placeholder:"you@email.com",email_submit:"发送",email_sending:"发送中…",email_sent:"谢谢 — 我们已收到您的邮箱。",email_invalid:"请输入有效的邮箱。",email_error:"无法保存您的邮箱。请重试。",failed_title:"我们无法联系到您",retry_btn:"重试",reload_to_retry:"刷新页面以再次申请回拨。",rate_limited_title:"请求过多",rate_limited_body:"您最近已经提交了几次回电请求。请在 {n} {unit} 后重试。",error_rate_limit_phone:"此号码请求过多。请稍后再试。",error_queue_full:"队列已满。请几分钟后再试。",error_callback_disabled:"此客服不支持回电。",error_invalid_phone:"该电话号码无效。",error_country_not_supported:"不支持此国家/地区。",error_blocked_prefix:"不允许此目的地。",error_no_outbound_number:"此客服未配置电话号码。",error_plan_required:"需要付费订阅。",error_domain_not_allowed:"此域名未授权使用该小部件。",error_agent_not_found:"未找到客服。",error_token_invalid:"无效请求。",error_config_disabled:"回电功能目前已禁用。",error_insufficient_credits:"余额不足以拨打此电话。",error_unknown:"出现错误。请重试。"},ru:{pill_label:"Перезвоните мне",dialog_aria_label:"Запрос обратного звонка",form_title:"Заказать обратный звонок",form_lead:"Оставьте номер — мы перезвоним через мгновение.",search_placeholder:"Поиск страны или +кода",coming_soon_badge:"скоро",submit_btn:"Перезвоните мне",submitting_btn:"Отправка…",terms_prefix:"Отправляя, вы соглашаетесь с нашими",terms_and:"и",terms_label:"условиями",privacy_label:"политикой конфиденциальности",queue_title:"В очереди",queue_next:"Вы следующий — наберём, как только агент освободится.",queue_position:"Вы #{n} в очереди.",queue_wait:"Примерное ожидание: {n} {unit}",queue_minute:"минута",queue_minutes:"минут",queue_cancel:"Отменить запрос",dialing_title:"Звоним вам",dialing_body:"Телефон должен зазвонить через мгновение.",completed_title:"Готово",completed_body:"Спасибо за разговор!",close_btn:"Закрыть",email_label:"Нужна обратная связь? Оставьте email.",email_placeholder:"vy@email.com",email_submit:"Отправить",email_sending:"Отправка…",email_sent:"Спасибо — email получили.",email_invalid:"Введите корректный email.",email_error:"Не удалось сохранить email. Попробуйте ещё раз.",failed_title:"Не удалось до вас дозвониться",retry_btn:"Повторить",reload_to_retry:"Перезагрузите страницу, чтобы запросить ещё один звонок.",rate_limited_title:"Слишком много запросов",rate_limited_body:"Вы недавно уже отправляли несколько запросов. Повторите через {n} {unit}.",error_rate_limit_phone:"Слишком много запросов для этого номера. Попробуйте позже.",error_queue_full:"Очередь заполнена. Попробуйте через несколько минут.",error_callback_disabled:"Обратный звонок недоступен для этого агента.",error_invalid_phone:"Этот номер телефона недействителен.",error_country_not_supported:"Эта страна не поддерживается.",error_blocked_prefix:"Это направление не разрешено.",error_no_outbound_number:"У этого агента не настроен номер.",error_plan_required:"Требуется платная подписка.",error_domain_not_allowed:"Виджет не авторизован на этом домене.",error_agent_not_found:"Агент не найден.",error_token_invalid:"Недействительный запрос.",error_config_disabled:"Обратный звонок сейчас отключён.",error_insufficient_credits:"Недостаточно кредитов для этого звонка.",error_unknown:"Что-то пошло не так. Повторите попытку."},uk:{pill_label:"Передзвоніть мені",dialog_aria_label:"Запит зворотного дзвінка",form_title:"Замовити зворотний дзвінок",form_lead:"Залиште номер — ми передзвонимо за мить.",search_placeholder:"Пошук країни або +коду",coming_soon_badge:"скоро",submit_btn:"Передзвоніть мені",submitting_btn:"Надсилання…",terms_prefix:"Надсилаючи, ви погоджуєтесь з нашими",terms_and:"та",terms_label:"умовами",privacy_label:"політикою конфіденційності",queue_title:"У черзі",queue_next:"Ви наступний — наберемо, щойно агент звільниться.",queue_position:"Ви #{n} у черзі.",queue_wait:"Приблизне очікування: {n} {unit}",queue_minute:"хвилина",queue_minutes:"хвилин",queue_cancel:"Скасувати запит",dialing_title:"Дзвонимо вам",dialing_body:"Телефон має задзвонити за мить.",completed_title:"Готово",completed_body:"Дякуємо за розмову!",close_btn:"Закрити",email_label:"Потрібен зворотний зв'язок? Залиште email.",email_placeholder:"vy@email.com",email_submit:"Надіслати",email_sending:"Надсилання…",email_sent:"Дякуємо — email отримали.",email_invalid:"Введіть коректний email.",email_error:"Не вдалося зберегти email. Спробуйте ще раз.",failed_title:"Не вдалося до вас додзвонитися",retry_btn:"Повторити",reload_to_retry:"Перезавантажте сторінку, щоб замовити ще один дзвінок.",rate_limited_title:"Забагато запитів",rate_limited_body:"Ви нещодавно вже надіслали кілька запитів. Спробуйте за {n} {unit}.",error_rate_limit_phone:"Забагато запитів для цього номера. Спробуйте пізніше.",error_queue_full:"Черга заповнена. Спробуйте за кілька хвилин.",error_callback_disabled:"Зворотний дзвінок недоступний для цього агента.",error_invalid_phone:"Цей номер телефону недійсний.",error_country_not_supported:"Ця країна не підтримується.",error_blocked_prefix:"Цей напрямок не дозволено.",error_no_outbound_number:"У цього агента не налаштовано номер.",error_plan_required:"Потрібна платна підписка.",error_domain_not_allowed:"Віджет не авторизований на цьому домені.",error_agent_not_found:"Агента не знайдено.",error_token_invalid:"Недійсний запит.",error_config_disabled:"Зворотний дзвінок зараз вимкнено.",error_insufficient_credits:"Недостатньо кредитів для цього дзвінка.",error_unknown:"Сталася помилка. Спробуйте ще раз."}},Eh="en";function Fk(i){if(!i)return fr[Eh];const A=i.toLowerCase().split(/[-_]/)[0];return fr[A]??fr[Eh]}function Dr(i,A){return i.replace(/\{(\w+)\}/g,(e,t)=>A[t]!==void 0?String(A[t]):`{${t}}`)}const ch="hanc_callback_timestamps",dh=3,Fa=10*60*1e3;function _r(){try{const i=localStorage.getItem(ch);if(!i)return[];const A=JSON.parse(i);return Array.isArray(A)?A.filter(e=>typeof e=="number"):[]}catch{return[]}}function Uk(i){try{localStorage.setItem(ch,JSON.stringify(i))}catch{}}function Lk(){const i=Date.now();return _r().filter(e=>i-e<Fa).length<dh}function vk(){const i=Date.now(),A=_r().filter(e=>i-e<Fa);A.push(i),Uk(A)}function Kk(){const i=Date.now(),A=_r().filter(e=>i-e<Fa).sort();return A.length<dh?0:Math.max(0,Math.ceil((A[0]+Fa-i)/1e3))}const hh={default:"#f97316",purple:"#8b5cf6",blue:"#3b82f6",cyan:"#06b6d4",emerald:"#10b981",amber:"#f59e0b",tangerine:"#f97316",rose:"#f43f5e",ember:"#ff0000",black:"#171717",white:"#ffffff"};function Jk(i){return hh[i]??hh.default}function Yk(i){const A=/^#?([0-9a-f]{6})$/i.exec(i);if(!A)return"#ffffff";const e=parseInt(A[1],16),t=e>>16&255,g=e>>8&255,I=e&255;return .2126*t+.7152*g+.0722*I>165?"#171717":"#ffffff"}var Tk=Object.defineProperty,qk=Object.getOwnPropertyDescriptor,qe=(i,A,e,t)=>{for(var g=t>1?void 0:t?qk(A,e):A,I=i.length-1,C;I>=0;I--)(C=i[I])&&(g=(t?C(A,e,g):C(g))||g);return t&&g&&Tk(A,e,g),g};const lh=5e3;let XC=null;function Hk(){var i;return typeof window>"u"||typeof document>"u"?Promise.reject(new Error("no DOM")):(i=window.grecaptcha)!=null&&i.render?Promise.resolve():XC||(XC=new Promise((A,e)=>{const t=document.createElement("script");t.src="https://www.google.com/recaptcha/api.js?render=explicit",t.async=!0,t.defer=!0,t.onerror=()=>{XC=null,e(new Error("reCAPTCHA script failed to load"))},t.onload=()=>{const g=Date.now(),I=()=>{var C;(C=window.grecaptcha)!=null&&C.render?A():Date.now()-g>1e4?e(new Error("reCAPTCHA not ready")):window.setTimeout(I,50)};I()},document.head.appendChild(t)}),XC)}const Pk={AT:"664 123 4567",DE:"151 2345 6789",CH:"78 123 45 67",FR:"6 12 34 56 78",IT:"312 345 6789",ES:"612 34 56 78",PT:"912 345 678",NL:"6 12345678",BE:"470 12 34 56",PL:"512 345 678",CZ:"601 123 456",RO:"712 345 678",BG:"88 123 4567",GR:"691 234 5678",HR:"91 234 5678",SE:"70 123 45 67",DK:"20 12 34 56",FI:"41 234 5678",EE:"5123 4567",LV:"21 234 567",LT:"612 34567",IE:"85 012 3456",LU:"628 123 456",SK:"912 345 678",MT:"9696 1234",CY:"96 123456",HU:"20 123 4567",GB:"7400 123456",US:"212 555 0123",CA:"416 555 0123"};R.HancAiCallback=class extends Kt{constructor(){super(...arguments),this.agentId="",this.apiBaseUrl=ei,this.skipFetch=!1,this.manifestOverride=null,this.theme="",this.locale="",this.view={kind:"loading"},this.manifest=null,this.selectedCountry=null,this.phoneRaw="",this.phoneError="",this.apiError=null,this.pickerOpen=!1,this.pickerSearch="",this.emailRaw="",this.emailError="",this.emailStatus="idle",this.showEmailCapture=!1,this.emailTimer=null,this.recaptchaToken=null,this.recaptchaWidgetId=null,this.recaptchaRendering=!1,this.recaptchaHost=null,this.postSubmitView=null,this.activeRequestId=null,this.pollAbort=null,this.pollTimer=null,this.lastFocusedBeforeOpen=null,this.onDocumentKey=A=>{A.key==="Escape"&&this.view.kind!=="closed"&&this.view.kind!=="loading"&&this.close()},this.open=()=>{if(this.manifest){if(this.lastFocusedBeforeOpen=document.activeElement,this.postSubmitView){this.view=this.postSubmitView,(this.postSubmitView.kind==="queued"||this.postSubmitView.kind==="dialing")&&this.startPolling(this.postSubmitView.request_id);return}this.view={kind:"form"},setTimeout(()=>{const A=this.renderRoot.querySelector(".phone-input");A==null||A.focus()},50)}},this.close=()=>{var A,e;this.stopPolling(),this.view={kind:"closed"},this.apiError=null,(e=(A=this.lastFocusedBeforeOpen)==null?void 0:A.focus)==null||e.call(A),this.lastFocusedBeforeOpen=null}}get t(){var A;return Fk(this.locale||((A=this.manifest)==null?void 0:A.widget_locale))}localizeError(A){const t=`error_${A.error_code}`;return this.t[t]??this.t.error_unknown}async connectedCallback(){super.connectedCallback(),await this.loadManifest(),document.addEventListener("keydown",this.onDocumentKey)}disconnectedCallback(){super.disconnectedCallback(),this.stopPolling(),this.clearEmailTimer(),this.teardownRecaptcha(),document.removeEventListener("keydown",this.onDocumentKey)}updated(A){A.has("manifestOverride")&&this.skipFetch&&this.manifestOverride&&this.adoptManifest(this.manifestOverride),this.syncRecaptcha()}syncRecaptcha(){var g;const A=(g=this.manifest)==null?void 0:g.recaptcha_site_key;if(!A)return;if(!(this.view.kind==="form"||this.view.kind==="submitting")){this.teardownRecaptcha();return}this.recaptchaWidgetId!==null||this.recaptchaRendering||!this.renderRoot.querySelector('slot[name="recaptcha"]')||(this.recaptchaRendering=!0,Hk().then(()=>{if(this.recaptchaWidgetId!==null||this.view.kind!=="form"&&this.view.kind!=="submitting")return;const I=document.createElement("div");I.setAttribute("slot","recaptcha"),this.appendChild(I),this.recaptchaHost=I,this.recaptchaWidgetId=window.grecaptcha.render(I,{sitekey:A,callback:C=>{this.recaptchaToken=C},"expired-callback":()=>{this.recaptchaToken=null},"error-callback":()=>{this.recaptchaToken=null}})}).catch(I=>{console.warn("[hanc-callback] reCAPTCHA load failed:",I)}).finally(()=>{this.recaptchaRendering=!1}))}teardownRecaptcha(){this.recaptchaHost&&(this.recaptchaHost.remove(),this.recaptchaHost=null),this.recaptchaWidgetId=null,this.recaptchaToken=null}async loadManifest(){if(this.skipFetch){this.manifestOverride?this.adoptManifest(this.manifestOverride):this.view={kind:"closed"};return}if(!this.agentId){this.view={kind:"manifest_error"};return}try{const A=await kk(this.agentId,this.apiBaseUrl);this.adoptManifest(A)}catch(A){console.warn("[hanc-callback] manifest fetch failed:",A),this.view={kind:"manifest_error"}}}adoptManifest(A){const e={...A,allowed_countries:A.allowed_countries.map(C=>({...C,example:C.example||Pk[C.code]||""}))};this.manifest=e;const t=e.allowed_countries.filter(C=>C.enabled),I=this.detectCountryFromLocale(t)??t.find(C=>C.code==="AT")??t[0];this.selectedCountry=(I==null?void 0:I.code)??null,this.view={kind:"closed"}}detectCountryFromLocale(A){var I;if(typeof navigator>"u")return null;const e=navigator.language||"",t=/[-_]([A-Z]{2})$/i.exec(e),g=(I=t==null?void 0:t[1])==null?void 0:I.toUpperCase();return g?A.find(C=>C.code===g)??null:null}selectCountry(A){this.selectedCountry=A,this.pickerOpen=!1,this.pickerSearch="",this.phoneError="",this.phoneRaw&&this.validatePhoneSoft()}onPhoneInput(A){if(!this.selectedCountry){this.phoneRaw=A;return}const e=new Ma(this.selectedCountry);this.phoneRaw=e.input(A),this.phoneError="",this.apiError=null}validatePhoneSoft(){if(!this.selectedCountry)return!1;const A=rh(this.phoneRaw,this.selectedCountry);return!(A!=null&&A.isValid())||A.country!==this.selectedCountry?(this.phoneError="Enter a valid phone number for this country.",!1):(this.phoneError="",!0)}resetRecaptcha(){var A;if(this.recaptchaWidgetId!==null)try{(A=window.grecaptcha)==null||A.reset(this.recaptchaWidgetId)}catch{}this.recaptchaToken=null}async onSubmit(A){if(A==null||A.preventDefault(),!this.manifest||!this.selectedCountry||!this.validatePhoneSoft()||this.manifest.recaptcha_site_key&&!this.recaptchaToken)return;if(!Lk()){this.view={kind:"rate_limited"};return}const e=rh(this.phoneRaw,this.selectedCountry);if(!(e!=null&&e.isValid()))return;const t=e.format("E.164");this.view={kind:"submitting"},this.apiError=null;try{const g=await Sk(this.manifest.agent_id,t,this.selectedCountry,this.apiBaseUrl,void 0,this.recaptchaToken??void 0);vk(),this.view={kind:"queued",request_id:g.request_id,position:g.position,eta_seconds:g.estimated_wait_seconds},this.postSubmitView=this.view,this.startPolling(g.request_id)}catch(g){this.handleSubmitError(g)}}handleSubmitError(A){this.resetRecaptcha(),A instanceof Bh?(this.apiError=A.body,["callback_disabled","no_outbound_number","insufficient_credits","plan_required","domain_not_allowed","agent_not_found"].includes(A.body.error_code)?this.setPostSubmitView({kind:"failed",reason:A.body.message??"Something went wrong.",can_retry:!1}):this.view={kind:"form"}):(console.error("[hanc-callback] submit error:",A),this.apiError={error_code:"unknown",message:"Network error. Please try again."},this.view={kind:"form"})}async onCancel(){if(this.view.kind!=="queued")return;const A=this.view.request_id;this.stopPolling();try{await Mk(A,this.apiBaseUrl)}catch{}this.postSubmitView=null,this.close()}startPolling(A){this.stopPolling(),this.activeRequestId=A,this.pollAbort=new AbortController;const e=async()=>{var t,g,I;if(!((t=this.pollAbort)!=null&&t.signal.aborted)){try{const C=await Gk(A,this.apiBaseUrl,(g=this.pollAbort)==null?void 0:g.signal);if((I=this.pollAbort)!=null&&I.signal.aborted)return;this.onPollUpdate(A,C)}catch(C){if((C==null?void 0:C.name)==="AbortError")return;console.warn("[hanc-callback] poll error:",C)}this.pollTimer=window.setTimeout(e,lh)}};this.pollTimer=window.setTimeout(e,lh)}stopPolling(){var A;this.pollTimer&&clearTimeout(this.pollTimer),this.pollTimer=null,(A=this.pollAbort)==null||A.abort(),this.pollAbort=null}startEmailTimer(){this.emailTimer!==null||this.showEmailCapture||(this.emailTimer=window.setTimeout(()=>{this.emailTimer=null,this.showEmailCapture=!0},R.HancAiCallback.EMAIL_CAPTURE_DELAY_MS))}clearEmailTimer(){this.emailTimer!==null&&(clearTimeout(this.emailTimer),this.emailTimer=null)}onPollUpdate(A,e){switch(e.status){case"queued":this.setPostSubmitView({kind:"queued",request_id:A,position:e.position??0,eta_seconds:e.estimated_wait_seconds??0});return;case"dialing":this.startEmailTimer(),this.setPostSubmitView({kind:"dialing",request_id:A});return;case"completed":this.stopPolling(),this.clearEmailTimer(),this.showEmailCapture=!0,this.setPostSubmitView({kind:"completed",request_id:A});return;case"failed":case"expired":this.stopPolling(),this.clearEmailTimer(),this.showEmailCapture=!0,this.setPostSubmitView({kind:"failed",reason:e.failure_reason??"unknown",can_retry:!1});return;case"cancelled":this.stopPolling(),this.clearEmailTimer(),this.view={kind:"closed"};return}}setPostSubmitView(A){this.view=A,this.postSubmitView=A}render(){var I;if(this.view.kind==="loading"||this.view.kind==="manifest_error")return ie;const A=this.theme||((I=this.manifest)==null?void 0:I.theme)||"default",e=Jk(A),t=Yk(e),g=`--cb-primary: ${e}; --cb-on-primary: ${t};`;return this.view.kind==="closed"?DA`
|
|
6078
6078
|
<div class="root" style=${g}>
|
|
6079
6079
|
${this.renderFab()}
|
|
6080
6080
|
</div>
|
|
@@ -6219,7 +6219,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6219
6219
|
<p>${A.dialing_body}</p>
|
|
6220
6220
|
${this.showEmailCapture?this.renderEmailCapture():ie}
|
|
6221
6221
|
</div>
|
|
6222
|
-
`}async onEmailSubmit(A){A.preventDefault();const e=this.
|
|
6222
|
+
`}async onEmailSubmit(A){A.preventDefault();const e=this.activeRequestId;if(!e||this.emailStatus==="sending")return;const t=this.emailRaw.trim();if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)){this.emailError=this.t.email_invalid;return}this.emailError="",this.emailStatus="sending";try{await Rk(e,t,this.apiBaseUrl),this.emailStatus="sent"}catch{this.emailStatus="idle",this.emailError=this.t.email_error}}renderEmailCapture(){const A=this.t;return this.emailStatus==="sent"?DA`<p class="status-hint">${A.email_sent}</p>`:DA`
|
|
6223
6223
|
<form class="email-form" @submit=${this.onEmailSubmit} novalidate>
|
|
6224
6224
|
<p class="email-label">${A.email_label}</p>
|
|
6225
6225
|
<input
|
|
@@ -6247,9 +6247,6 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6247
6247
|
<h3>${A.completed_title}</h3>
|
|
6248
6248
|
<p>${A.completed_body}</p>
|
|
6249
6249
|
${this.renderEmailCapture()}
|
|
6250
|
-
<button class="link-btn" type="button" @click=${this.close}>
|
|
6251
|
-
${A.close_btn}
|
|
6252
|
-
</button>
|
|
6253
6250
|
</div>
|
|
6254
6251
|
`}renderFailed(){if(this.view.kind!=="failed")return ie;const A=this.t,e=this.localizeError({error_code:this.view.reason||"unknown",message:this.view.reason});return DA`
|
|
6255
6252
|
<div class="status">
|
|
@@ -6257,9 +6254,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6257
6254
|
<h3>${A.failed_title}</h3>
|
|
6258
6255
|
<p>${e}</p>
|
|
6259
6256
|
<p class="status-hint">${A.reload_to_retry}</p>
|
|
6260
|
-
|
|
6261
|
-
${A.close_btn}
|
|
6262
|
-
</button>
|
|
6257
|
+
${this.renderEmailCapture()}
|
|
6263
6258
|
</div>
|
|
6264
6259
|
`}renderRateLimited(){const A=this.t,e=Kk(),t=Math.max(1,Math.ceil(e/60)),g=t===1?A.queue_minute:A.queue_minutes;return DA`
|
|
6265
6260
|
<div class="status">
|
|
@@ -55,6 +55,14 @@ export declare class HancAiCallback extends LitElement {
|
|
|
55
55
|
* design; matches the product call "one callback per page-load".
|
|
56
56
|
*/
|
|
57
57
|
private postSubmitView;
|
|
58
|
+
/**
|
|
59
|
+
* The in-flight callback's request_id, captured at submit and kept for the
|
|
60
|
+
* whole post-submit lifecycle. The email field is mandatory and shown in
|
|
61
|
+
* every terminal view (dialing / completed / failed / expired) — but only
|
|
62
|
+
* `dialing`/`completed` carry the id in their ViewState, so we stash it here
|
|
63
|
+
* to attach the email regardless of how the call ended.
|
|
64
|
+
*/
|
|
65
|
+
private activeRequestId;
|
|
58
66
|
private pollAbort;
|
|
59
67
|
private pollTimer;
|
|
60
68
|
private lastFocusedBeforeOpen;
|