1440 lines
76 KiB
JavaScript
1440 lines
76 KiB
JavaScript
var wpforms = window.wpforms || ( (s, d, p) => {
|
|
let a = "wpforms-field-readonly";
|
|
function e(e, t="") {
|
|
return d?.wpforms_settings?.[e] ?? t
|
|
}
|
|
let m = {
|
|
cache: {},
|
|
isUpdatingToken: !1,
|
|
init() {
|
|
p(m.ready),
|
|
p(d).on("load", function() {
|
|
"function" == typeof p.ready.then ? p.ready.then(m.load) : m.load()
|
|
}),
|
|
m.bindUIActions(),
|
|
m.bindOptinMonster()
|
|
},
|
|
ready() {
|
|
m.clearUrlQuery(),
|
|
m.setUserIdentifier(),
|
|
m.loadValidation(),
|
|
m.loadHoneypot(),
|
|
m.loadDatePicker(),
|
|
m.loadTimePicker(),
|
|
m.loadInputMask(),
|
|
setTimeout(function() {
|
|
m.loadPayments()
|
|
}, 50),
|
|
m.loadMailcheck(),
|
|
m.loadChoicesJS(),
|
|
m.initTokenUpdater(),
|
|
m.restoreSubmitButtonOnEventPersisted(),
|
|
m.bindChoicesJS(),
|
|
m.readOnlyFieldsInit(),
|
|
p(".wpforms-randomize").each(function() {
|
|
for (var e = p(this), t = e.children(); t.length; )
|
|
e.append(t.splice(Math.floor(Math.random() * t.length), 1)[0])
|
|
}),
|
|
p(".wpforms-page-button").prop("disabled", !1),
|
|
m.initFormsStartTime(),
|
|
p(s).trigger("wpformsReady")
|
|
},
|
|
load() {},
|
|
clearUrlQuery() {
|
|
var e = d.location;
|
|
let t = e.search;
|
|
-1 !== t.indexOf("wpforms_form_id=") && (t = t.replace(/([&?]wpforms_form_id=[0-9]*$|wpforms_form_id=[0-9]*&|[?&]wpforms_form_id=[0-9]*(?=#))/, ""),
|
|
history.replaceState({}, null, e.origin + e.pathname + t))
|
|
},
|
|
loadHoneypot() {
|
|
p(".wpforms-form").each(function() {
|
|
let e = p(this)
|
|
, t = e.data("formid")
|
|
, r = []
|
|
, a = [];
|
|
var o, i, s, n;
|
|
void 0 !== wpforms_settings.hn_data[t] && (p(`#wpforms-form-${t} .wpforms-field`).each(function() {
|
|
var e = p(this);
|
|
r.push(e.data("field-id")),
|
|
a.push(e.find(".wpforms-field-label").text())
|
|
}),
|
|
o = m.getHoneypotRandomLabel(a.join(" ").split(" ")),
|
|
i = m.getHoneypotFieldId(r),
|
|
n = r[Math.floor(Math.random() * r.length)],
|
|
s = `wpforms-${t}-field_` + i,
|
|
p(`#wpforms-${t}-field_${n}-container`, e).before(`
|
|
<div id="${s}-container" class="wpforms-field wpforms-field-text" data-field-type="text" data-field-id="${i}" style="position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important;">
|
|
<label class="wpforms-field-label" for="${s}" aria-hidden="true" style="counter-increment: none;"></label>
|
|
<input type="text" id="${s}" class="wpforms-field-medium" name="wpforms[fields][${i}]" aria-hidden="true" style="visibility: hidden;" tabindex="-1">
|
|
</div>`),
|
|
(n = p(`#wpforms-${t}-field_${wpforms_settings.hn_data[t]}-container`, e)).find("input").attr({
|
|
tabindex: "-1",
|
|
"aria-hidden": "true"
|
|
}),
|
|
n.find("label").text(o).attr("aria-hidden", "true"))
|
|
})
|
|
},
|
|
getHoneypotRandomLabel(t) {
|
|
let r = "";
|
|
for (let e = 0; e < 3; e++)
|
|
r += t[Math.floor(Math.random() * t.length)] + " ";
|
|
return r.trim()
|
|
},
|
|
getHoneypotFieldId(t) {
|
|
var r = Math.max(...t);
|
|
let a = 0;
|
|
for (let e = 1; e < r; e++)
|
|
if (!t.includes(e)) {
|
|
a = e;
|
|
break
|
|
}
|
|
return a = a || r + 1
|
|
},
|
|
loadValidation() {
|
|
void 0 === p.fn.validate ? d.location.hash && "#wpformsdebug" === d.location.hash && console.log("jQuery Validation library not found.") : (p(".wpforms-input-temp-name").each(function(e, t) {
|
|
var r = Math.floor(9999 * Math.random()) + 1;
|
|
p(this).attr("name", "wpf-temp-" + r)
|
|
}),
|
|
p(s).on("change", ".wpforms-validate input[type=url]", function() {
|
|
var e = p(this).val();
|
|
if (!e)
|
|
return !1;
|
|
"http://" !== e.substr(0, 7) && "https://" !== e.substr(0, 8) && p(this).val("https://" + e)
|
|
}),
|
|
p.validator.messages.required = wpforms_settings.val_required,
|
|
p.validator.messages.url = wpforms_settings.val_url,
|
|
p.validator.messages.email = wpforms_settings.val_email,
|
|
p.validator.messages.number = wpforms_settings.val_number,
|
|
p.validator.messages.min = e("val_min", "Please enter a value greater than or equal to {0}").replace("{value}", "{0}"),
|
|
p.validator.messages.max = e("val_max", "Please enter a value less than or equal to {0}").replace("{value}", "{0}"),
|
|
void 0 !== p.fn.payment && p.validator.addMethod("creditcard", function(e, t) {
|
|
e = p.payment.validateCardNumber(e);
|
|
return this.optional(t) || e
|
|
}, wpforms_settings.val_creditcard),
|
|
p.validator.addMethod("extension", function(e, t, r) {
|
|
return r = "string" == typeof r ? r.replace(/,/g, "|") : "png|jpe?g|gif",
|
|
this.optional(t) || e.match(new RegExp("\\.(" + r + ")$","i"))
|
|
}, wpforms_settings.val_fileextension),
|
|
p.validator.addMethod("maxsize", function(e, t, r) {
|
|
var a = r
|
|
, r = this.optional(t);
|
|
let o, i;
|
|
if (r)
|
|
return r;
|
|
if (t.files && t.files.length)
|
|
for (o = 0,
|
|
i = t.files.length; o < i; o++)
|
|
if (t.files[o].size > a)
|
|
return !1;
|
|
return !0
|
|
}, wpforms_settings.val_filesize),
|
|
p.validator.addMethod("camera-required", function(e, t) {
|
|
var r = p(t).closest(".wpforms-field-camera");
|
|
return !r.length || !(t.hasAttribute("required") || r.hasClass("wpforms-field-required")) || t.files && 0 < t.files.length || 0 < r.find(".wpforms-camera-selected-file.wpforms-camera-selected-file-active").length
|
|
}, wpforms_settings.val_required),
|
|
p.validator.addMethod("step", function(e, t, r) {
|
|
i = r;
|
|
let a = Math.floor(i) !== i && i.toString().split(".")[1].length || 0;
|
|
function o(e) {
|
|
return Math.round(e * Math.pow(10, a))
|
|
}
|
|
var i = o(p(t).attr("min"));
|
|
return e = o(e) - i,
|
|
this.optional(t) || o(e) % o(r) == 0
|
|
}),
|
|
p.validator.methods.email = function(e, t) {
|
|
return this.optional(t) || (e => {
|
|
if ("string" != typeof e)
|
|
return !1;
|
|
var t = e.indexOf("@", 1);
|
|
if (e.length < 6 || 254 < e.length || -1 === t)
|
|
return !1;
|
|
if (-1 !== e.indexOf("@", t + 1))
|
|
return !1;
|
|
var [t,e] = e.split("@");
|
|
if (!t || !e)
|
|
return !1;
|
|
if (!/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+$/.test(t) || 63 < t.length)
|
|
return !1;
|
|
if (/\.{2,}/.test(e) || e.trim(" \t\n\r\0\v.") !== e)
|
|
return !1;
|
|
if ((t = e.split(".")).length < 2)
|
|
return !1;
|
|
var r, a = /^[a-z0-9-]+$/i;
|
|
for (r of t)
|
|
if (63 < r.length || r.trim(" \t\n\r\0\v-") !== r || !a.test(r))
|
|
return !1;
|
|
return !0
|
|
}
|
|
)(e)
|
|
}
|
|
,
|
|
p.validator.addMethod("restricted-email", function(e, t) {
|
|
var r = p(t);
|
|
return !r.val().length || (r = r.closest(".wpforms-form").data("formid"),
|
|
Object.prototype.hasOwnProperty.call(m.cache, r) && Object.prototype.hasOwnProperty.call(m.cache[r], "restrictedEmailValidation") && Object.prototype.hasOwnProperty.call(m.cache[r].restrictedEmailValidation, e) ? m.cache[r].restrictedEmailValidation[e] : (m.restrictedEmailRequest(t, e),
|
|
"pending"))
|
|
}, wpforms_settings.val_email_restricted),
|
|
p.validator.addMethod("confirm", function(e, t, r) {
|
|
t = p(t).closest(".wpforms-field");
|
|
return p(t.find("input")[0]).val() === p(t.find("input")[1]).val()
|
|
}, wpforms_settings.val_confirm),
|
|
p.validator.addMethod("required-payment", function(e, t) {
|
|
return 0 < m.amountSanitize(e)
|
|
}, wpforms_settings.val_requiredpayment),
|
|
p.validator.addMethod("time12h", function(e, t) {
|
|
return this.optional(t) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(e)
|
|
}, wpforms_settings.val_time12h),
|
|
p.validator.addMethod("time24h", function(e, t) {
|
|
return this.optional(t) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(\ ?[AP]M)?$/i.test(e)
|
|
}, wpforms_settings.val_time24h),
|
|
p.validator.addMethod("turnstile", function(e) {
|
|
return e
|
|
}, wpforms_settings.val_turnstile_fail_msg),
|
|
p.validator.addMethod("time-limit", function(e, t) {
|
|
var t = p(t)
|
|
, r = t.data("min-time");
|
|
return void 0 === r || !(t.prop("required") || !m.empty(e)) || (t = t.data("max-time"),
|
|
m.compareTimesGreaterThan(t, r) ? m.compareTimesGreaterThan(e, r) && m.compareTimesGreaterThan(t, e) : m.compareTimesGreaterThan(e, r) && m.compareTimesGreaterThan(e, t) || m.compareTimesGreaterThan(r, e) && m.compareTimesGreaterThan(t, e))
|
|
}, function(e, t) {
|
|
t = p(t);
|
|
let r = t.data("min-time")
|
|
, a = t.data("max-time");
|
|
return r = r.replace(/^00:([0-9]{2})pm$/, "12:$1pm"),
|
|
a = a.replace(/^00:([0-9]{2})pm$/, "12:$1pm"),
|
|
r = r.replace(/(am|pm)/g, " $1").toUpperCase(),
|
|
a = a.replace(/(am|pm)/g, " $1").toUpperCase(),
|
|
wpforms_settings.val_time_limit.replace("{minTime}", r).replace("{maxTime}", a)
|
|
}),
|
|
p.validator.addMethod("check-limit", function(e, t) {
|
|
var t = p(t).closest("ul")
|
|
, r = parseInt(t.attr("data-choice-limit") || 0, 10);
|
|
return 0 === r || t.find('input[type="checkbox"]:checked').length <= r
|
|
}, function(e, t) {
|
|
t = parseInt(p(t).closest("ul").attr("data-choice-limit") || 0, 10);
|
|
return wpforms_settings.val_checklimit.replace("{#}", t)
|
|
}),
|
|
p.validator.addMethod("inputmask-incomplete", function(e, t) {
|
|
return 0 === e.length || void 0 === p.fn.inputmask || p(t).inputmask("isComplete")
|
|
}, wpforms_settings.val_inputmask_incomplete),
|
|
p.validator.addMethod("required-positive-number", function(e, t) {
|
|
return 0 < m.amountSanitize(e)
|
|
}, wpforms_settings.val_number_positive),
|
|
p.validator.addMethod("required-minimum-price", function(e, t, r) {
|
|
t = p(t);
|
|
return "" === e && !t.hasClass("wpforms-field-required") || Number(m.amountSanitize(m.amountFormat(r))) <= Number(m.amountSanitize(e))
|
|
}, wpforms_settings.val_minimum_price),
|
|
p.validator.addMethod("password-strength", function(e, t) {
|
|
var r = p(t)
|
|
, t = WPFormsPasswordField.passwordStrength(e, t);
|
|
return "" === e && !r.hasClass("wpforms-field-required") || t >= Number(r.data("password-strength-level"))
|
|
}, wpforms_settings.val_password_strength),
|
|
p(".wpforms-validate").each(function() {
|
|
var e = p(this)
|
|
, t = e.data("formid");
|
|
let r;
|
|
r = void 0 !== d["wpforms_" + t] && d["wpforms_" + t].hasOwnProperty("validate") ? d["wpforms_" + t].validate : "undefined" != typeof wpforms_validate ? wpforms_validate : {
|
|
errorElement: m.isModernMarkupEnabled() ? "em" : "label",
|
|
errorClass: "wpforms-error",
|
|
validClass: "wpforms-valid",
|
|
ignore: ":hidden:not(textarea.wp-editor-area):not(.wpforms-field-camera input), .wpforms-conditional-hide textarea.wp-editor-area",
|
|
ignoreTitle: !0,
|
|
errorPlacement(e, t) {
|
|
m.isLikertScaleField(t) ? (t.closest("table").hasClass("single-row") ? t.closest(".wpforms-field") : t.closest("tr").find("th")).append(e) : m.isWrappedField(t) ? t.closest(".wpforms-field").append(e) : m.isDateTimeField(t) ? m.dateTimeErrorPlacement(t, e) : m.isFieldInColumn(t) || m.isFieldHasHint(t) ? t.parent().append(e) : m.isLeadFormsSelect(t) ? t.parent().parent().append(e) : t.hasClass("wp-editor-area") ? t.parent().parent().parent().append(e) : m.isClassicFileUploadWithCamera(t) ? e.insertAfter(t.parent().find("p.wpforms-file-upload-capture-camera-classic")) : e.insertAfter(t),
|
|
m.isModernMarkupEnabled() && e.attr({
|
|
role: "alert",
|
|
"aria-label": wpforms_settings.errorMessagePrefix,
|
|
for: ""
|
|
})
|
|
},
|
|
highlight(e, t, r) {
|
|
var a = p(e)
|
|
, o = a.closest(".wpforms-field")
|
|
, i = a.attr("name");
|
|
("radio" === a.attr("type") || "checkbox" === a.attr("type") ? o.find('input[name="' + i + '"]') : a).addClass(t).removeClass(r),
|
|
"password" === a.attr("type") && "" === a.val().trim() && d.WPFormsPasswordField && a.data("rule-password-strength") && a.hasClass("wpforms-field-required") && WPFormsPasswordField.passwordStrength("", e),
|
|
o.addClass("wpforms-has-error")
|
|
},
|
|
unhighlight(e, t, r) {
|
|
var e = p(e)
|
|
, a = e.closest(".wpforms-field")
|
|
, o = e.attr("name");
|
|
("radio" === e.attr("type") || "checkbox" === e.attr("type") ? a.find('input[name="' + o + '"]') : e).addClass(r).removeClass(t),
|
|
a.find(":input.wpforms-error,[data-dz-errormessage]:not(:empty)").length || a.removeClass("wpforms-has-error"),
|
|
m.isModernMarkupEnabled() && e.parent().find("em.wpforms-error").remove()
|
|
},
|
|
submitHandler(s) {
|
|
function n(e, t) {
|
|
let r = "label"
|
|
, a = "";
|
|
m.isModernMarkupEnabled() && (r = "em",
|
|
a = 'role="alert"');
|
|
var o = `<${r} id="wpforms-field_recaptcha-error" class="wpforms-error" ${a}> ${wpforms_settings.val_recaptcha_fail_msg}</${r}>`;
|
|
e.find(".wpforms-recaptcha-container").append(o),
|
|
m.restoreSubmitButton(e, t)
|
|
}
|
|
function l(e) {
|
|
var t = e.find(".wpforms-submit");
|
|
t.prop("disabled", !0),
|
|
WPFormsUtils.triggerEvent(e, "wpformsFormSubmitButtonDisable", [e, t])
|
|
}
|
|
function e() {
|
|
let e = p(s)
|
|
, t = e.closest(".wpforms-container")
|
|
, r = e.find(".wpforms-submit")
|
|
, a = r.data("captchaInvalid")
|
|
, o = r.data("alt-text")
|
|
, i = r.get(0).recaptchaID;
|
|
return e.data("token") && 0 === p(".wpforms-token", e).length && p('<input type="hidden" class="wpforms-token" name="wpforms[token]" />').val(e.data("token")).appendTo(e),
|
|
e.find("#wpforms-field_recaptcha-error").remove(),
|
|
l(e),
|
|
o && r.text(o),
|
|
a ? n(e, t) : m.empty(i) && 0 !== i ? (p(".wpforms-input-temp-name").removeAttr("name"),
|
|
void m.formSubmit(e)) : (grecaptcha.execute(i).then(null, function() {
|
|
grecaptcha.getResponse() || n(e, t)
|
|
}),
|
|
!1)
|
|
}
|
|
return "function" == typeof wpformsRecaptchaV3Execute ? (l(p(s)),
|
|
wpformsRecaptchaV3Execute(e)) : e()
|
|
},
|
|
invalidHandler(e, t) {
|
|
void 0 !== t.errorList[0] && m.scrollToError(p(t.errorList[0].element))
|
|
},
|
|
onkeyup: WPFormsUtils.debounce(function(e, t) {
|
|
p(e).hasClass("wpforms-novalidate-onkeyup") || 9 === t.which && "" === this.elementValue(e) || -1 !== p.inArray(t.keyCode, [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]) || (e.name in this.submitted || e.name in this.invalid) && this.element(e)
|
|
}, 1e3),
|
|
onfocusout: function(e) {
|
|
let t = !1;
|
|
p(e).hasClass("wpforms-novalidate-onkeyup") && !e.value && (t = !0),
|
|
this.checkable(e) || !(e.name in this.submitted) && this.optional(e) || (t = !0),
|
|
(t = p(e).data("server-error") ? !1 : t) && this.element(e)
|
|
},
|
|
onclick(e) {
|
|
let t = !1;
|
|
var r = (e || {}).type;
|
|
let a = p(e);
|
|
-1 < ["checkbox", "radio"].indexOf(r) && ((a = a.hasClass("wpforms-likert-scale-option") ? a.closest("tr") : a.closest(".wpforms-field")).find("label.wpforms-error, em.wpforms-error").remove(),
|
|
t = !0),
|
|
t && this.element(e)
|
|
}
|
|
},
|
|
e.validate(r),
|
|
m.loadValidationGroups(e),
|
|
e.find('.wpforms-field-camera input[ type="file" ], .wpforms-field-camera .dropzone-input').each(function() {
|
|
var e = p(this);
|
|
(e.closest(".wpforms-field-camera").hasClass("wpforms-field-required") || e.attr("required")) && e.rules("add", {
|
|
"camera-required": !0
|
|
})
|
|
})
|
|
}))
|
|
},
|
|
restrictedEmailRequest(r, a) {
|
|
var e = p(r)
|
|
, t = e.closest("form");
|
|
let o = t.data("validator")
|
|
, i = t.data("formid");
|
|
t = e.closest(".wpforms-field").data("field-id");
|
|
m.cache[i] = m.cache[i] || {},
|
|
o.startRequest(r),
|
|
p.post({
|
|
url: wpforms_settings.ajaxurl,
|
|
type: "post",
|
|
data: {
|
|
action: "wpforms_restricted_email",
|
|
form_id: i,
|
|
field_id: t,
|
|
email: a
|
|
},
|
|
dataType: "json",
|
|
success(e) {
|
|
var t = {}
|
|
, e = e.success && e.data;
|
|
e || (t[r.name] = wpforms_settings.val_email_restricted,
|
|
o.showErrors(t)),
|
|
m.cache[i].restrictedEmailValidation = m.cache[i].restrictedEmailValidation || [],
|
|
Object.prototype.hasOwnProperty.call(m.cache[i].restrictedEmailValidation, a) || (m.cache[i].restrictedEmailValidation[a] = e),
|
|
o.stopRequest(r, e)
|
|
}
|
|
})
|
|
},
|
|
isFieldInColumn(e) {
|
|
return e.parent().hasClass("wpforms-one-half") || e.parent().hasClass("wpforms-two-fifths") || e.parent().hasClass("wpforms-one-fifth")
|
|
},
|
|
isFieldHasHint(e) {
|
|
return 0 < e.nextAll(".wpforms-field-sublabel, .wpforms-field-description, .wpforms-field-limit-text, .wpforms-pass-strength-result").length
|
|
},
|
|
isDateTimeField(e) {
|
|
return e.hasClass("wpforms-timepicker") || e.hasClass("wpforms-datepicker") || e.is("select") && e.attr("class").match(/date-month|date-day|date-year/)
|
|
},
|
|
isWrappedField(e) {
|
|
return "checkbox" === e.attr("type") || "radio" === e.attr("type") || "range" === e.attr("type") || "select" === e.is("select") || 1 === e.data("is-wrapped-field") || e.parent().hasClass("iti") || e.hasClass("wpforms-validation-group-member") || e.hasClass("choicesjs-select") || e.hasClass("wpforms-net-promoter-score-option") || e.hasClass("wpforms-field-payment-coupon-input")
|
|
},
|
|
isLikertScaleField(e) {
|
|
return e.hasClass("wpforms-likert-scale-option")
|
|
},
|
|
isClassicFileUploadWithCamera(e) {
|
|
return 0 < e.parent().find("p.wpforms-file-upload-capture-camera-classic").length
|
|
},
|
|
isLeadFormsSelect(e) {
|
|
return e.parent().hasClass("wpforms-lead-forms-select")
|
|
},
|
|
isCoupon(e) {
|
|
return console.warn('WARNING! Function "wpforms.isCoupon( element )" has been deprecated'),
|
|
e.closest(".wpforms-field").hasClass("wpforms-field-payment-coupon")
|
|
},
|
|
dateTimeErrorPlacement(e, t) {
|
|
var r = e.closest(".wpforms-field-row-block, .wpforms-field-date-time");
|
|
r.length ? r.find("label.wpforms-error, em.wpforms-error").length || r.append(t) : e.closest(".wpforms-field").append(t)
|
|
},
|
|
loadDatePicker(e) {
|
|
void 0 !== p.fn.flatpickr && (e = e?.length ? e : p(s)).find(".wpforms-datepicker-wrap").each(function() {
|
|
let a = p(this), e = a.find("input"), t = a.closest(".wpforms-form"), r = t.data("formid"), o = a.closest(".wpforms-field").data("field-id"), i;
|
|
var s;
|
|
!(i = void 0 !== d["wpforms_" + r + "_" + o] && d["wpforms_" + r + "_" + o].hasOwnProperty("datepicker") ? d["wpforms_" + r + "_" + o].datepicker : void 0 !== d["wpforms_" + r] && d["wpforms_" + r].hasOwnProperty("datepicker") ? d["wpforms_" + r].datepicker : "undefined" != typeof wpforms_datepicker ? wpforms_datepicker : {
|
|
disableMobile: !0
|
|
}).hasOwnProperty("locale") && "undefined" != typeof wpforms_settings && wpforms_settings.hasOwnProperty("locale") && (i.locale = wpforms_settings.locale),
|
|
i.wrap = !0,
|
|
i.dateFormat = e.data("date-format"),
|
|
1 === e.data("disable-past-dates") && (i.minDate = "today",
|
|
1 === e.data("disable-todays-date")) && (s = new Date,
|
|
i.minDate = s.setDate(s.getDate() + 1));
|
|
let n = e.data("limit-days")
|
|
, l = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
|
|
n && "" !== n && (n = n.split(","),
|
|
i.disable = [function(e) {
|
|
for (var t in n)
|
|
if (l.indexOf(n[t]) === e.getDay())
|
|
return !1;
|
|
return !0
|
|
}
|
|
]),
|
|
i.onChange = function(e, t, r) {
|
|
a.find(".wpforms-datepicker-clear").css("display", "" === t ? "none" : "block")
|
|
}
|
|
,
|
|
i.onReady = function(e, t, r) {
|
|
a.find(".wpforms-datepicker-clear").on("keydown", function(e) {
|
|
"Enter" !== e.key && " " !== e.key || (e.preventDefault(),
|
|
r.clear())
|
|
}),
|
|
a.find(".wpforms-datepicker-clear").on("click", function(e) {
|
|
e.preventDefault(),
|
|
r.clear()
|
|
})
|
|
}
|
|
,
|
|
a.flatpickr(i)
|
|
})
|
|
},
|
|
loadTimePicker(e) {
|
|
void 0 !== p.fn.timepicker && (e = e?.length ? e : p(s)).find(".wpforms-timepicker").each(function() {
|
|
var e = p(this)
|
|
, t = e.closest(".wpforms-form").data("formid")
|
|
, r = e.closest(".wpforms-field").data("field-id");
|
|
let a;
|
|
a = void 0 !== d["wpforms_" + t + "_" + r] && d["wpforms_" + t + "_" + r].hasOwnProperty("timepicker") ? d["wpforms_" + t + "_" + r].timepicker : void 0 !== d["wpforms_" + t] && d["wpforms_" + t].hasOwnProperty("timepicker") ? d["wpforms_" + t].timepicker : "undefined" != typeof wpforms_timepicker ? wpforms_timepicker : {
|
|
scrollDefault: "now",
|
|
forceRoundTime: !0
|
|
};
|
|
r = e.val();
|
|
e.timepicker(a),
|
|
r && (e.val(r),
|
|
e.trigger("changeTime"))
|
|
})
|
|
},
|
|
loadInputMask(e) {
|
|
void 0 !== p.fn.inputmask && (e = e?.length ? e : p(s)).find(".wpforms-masked-input").inputmask({
|
|
rightAlign: !1
|
|
})
|
|
},
|
|
fixPhoneFieldSnippets(t) {
|
|
console.warn("WARNING! Obsolete function called. Function wpforms.fixPhoneFieldSnippets( $field ) has been deprecated, please use the wpforms.repairSmartPhoneHiddenField( $field ) function instead!"),
|
|
t.siblings('input[type="hidden"]').each(function() {
|
|
var e;
|
|
p(this).attr("name").includes("function") && (e = (e = t.data("plugin_intlTelInput")).d || e.options) && ((d.intlTelInput?.getInstance(t[0]))?.destroy(),
|
|
e.initialCountry = e.initialCountry.toLowerCase(),
|
|
e.onlyCountries = e.onlyCountries.map(e => e.toLowerCase()),
|
|
e.preferredCountries = e.preferredCountries.map(e => e.toLowerCase()),
|
|
d.intlTelInput(t[0], e),
|
|
t.siblings('input[type="hidden"]').each(function() {
|
|
var e = p(this);
|
|
e.attr("name", e.attr("name").replace("wpf-temp-", ""))
|
|
}))
|
|
})
|
|
},
|
|
repairSmartPhoneHiddenField(e) {
|
|
console.warn('WARNING! Function "wpforms.repairSmartPhoneHiddenField()" has been deprecated, please use the new "WPFormsPhoneField.repairSmartHiddenField()" function instead!'),
|
|
WPFormsPhoneField?.repairSmartHiddenField?.(e)
|
|
},
|
|
getDefaultSmartPhoneFieldOptions() {
|
|
return console.warn('WARNING! Function "wpforms.getDefaultSmartPhoneFieldOptions()" has been deprecated, please use the new "WPFormsPhoneField.getDefaultSmartFieldOptions()" function instead!'),
|
|
WPFormsPhoneField?.getDefaultSmartFieldOptions?.()
|
|
},
|
|
loadSmartPhoneField(e) {
|
|
console.warn('WARNING! Function "wpforms.loadSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.loadSmartField()" function instead!'),
|
|
WPFormsPhoneField?.loadSmartField?.(e)
|
|
},
|
|
loadJqueryIntlTelInput() {
|
|
console.warn('WARNING! Function "wpforms.loadJqueryIntlTelInput()" has been deprecated, please use the new "WPFormsPhoneField.loadJqueryIntlTelInput()" function instead!'),
|
|
WPFormsPhoneField?.loadJqueryIntlTelInput?.()
|
|
},
|
|
initSmartPhoneField(e, t) {
|
|
console.warn('WARNING! Function "wpforms.initSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.initSmartField()" function instead!'),
|
|
WPFormsPhoneField?.initSmartField?.(e, t)
|
|
},
|
|
bindSmartPhoneField() {
|
|
console.warn('WARNING! Function "wpforms.bindSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.bindSmartField()" function instead!'),
|
|
WPFormsPhoneField?.bindSmartField?.()
|
|
},
|
|
loadPayments() {
|
|
p("input.wpforms-payment-total").each(function(e, t) {
|
|
m.amountTotal(this)
|
|
}),
|
|
void 0 !== p.fn.payment && (p(".wpforms-field-credit-card-cardnumber").payment("formatCardNumber"),
|
|
p(".wpforms-field-credit-card-cardcvc").payment("formatCardCVC"))
|
|
},
|
|
loadMailcheck() {
|
|
wpforms_settings.mailcheck_enabled && void 0 !== p.fn.mailcheck && (0 < wpforms_settings.mailcheck_domains.length && (Mailcheck.defaultDomains = Mailcheck.defaultDomains.concat(wpforms_settings.mailcheck_domains)),
|
|
0 < wpforms_settings.mailcheck_toplevel_domains.length && (Mailcheck.defaultTopLevelDomains = Mailcheck.defaultTopLevelDomains.concat(wpforms_settings.mailcheck_toplevel_domains)),
|
|
p(s).on("blur", ".wpforms-field-email input", function() {
|
|
var e = p(this);
|
|
if (1 !== e.data("disable-suggestions")) {
|
|
let o = e.attr("id");
|
|
e.mailcheck({
|
|
suggested(e, t) {
|
|
t.full = t.full.replace(/%(?![0-9][0-9a-fA-F]+)/g, "%25"),
|
|
t.address = t.address.replace(/%(?![0-9][0-9a-fA-F]+)/g, "%25"),
|
|
t.domain = t.domain.replace(/%(?![0-9][0-9a-fA-F]+)/g, "%25"),
|
|
t.address.match(/^xn--/) && (t.full = punycode.toUnicode(decodeURI(t.full)),
|
|
r = t.full.split("@"),
|
|
t.address = r[0],
|
|
t.domain = r[1]),
|
|
t.domain.match(/^xn--/) && (t.domain = punycode.toUnicode(decodeURI(t.domain)));
|
|
var r = decodeURI(t.address).replaceAll(/[<>'"()/\\|:;=@%&\s]/gi, "").substr(0, 64)
|
|
, a = decodeURI(t.domain).replaceAll(/[<>'"()/\\|:;=@%&+_\s]/gi, "");
|
|
t = '<a href="#" class="mailcheck-suggestion" data-id="' + o + '" title="' + wpforms_settings.val_email_suggestion_title + '">' + r + "@" + a + "</a>",
|
|
t = wpforms_settings.val_email_suggestion.replace("{suggestion}", t),
|
|
e.closest(".wpforms-field").find("#" + o + "_suggestion").remove(),
|
|
e.parent().append('<label class="wpforms-error mailcheck-error" id="' + o + '_suggestion">' + t + "</label>")
|
|
},
|
|
empty() {
|
|
p("#" + o + "_suggestion").remove()
|
|
}
|
|
})
|
|
}
|
|
}),
|
|
p(s).on("click", ".wpforms-field-email .mailcheck-suggestion", function(e) {
|
|
var t = p(this)
|
|
, r = t.closest(".wpforms-field")
|
|
, a = t.data("id");
|
|
e.preventDefault(),
|
|
r.find("#" + a).val(t.text()),
|
|
t.parent().remove()
|
|
}))
|
|
},
|
|
loadChoicesJS(i) {
|
|
"function" == typeof d.Choices && (i = i?.length ? i : p(s)).find(".wpforms-field-select-style-modern .choicesjs-select, .wpforms-field-payment-select .choicesjs-select").each(function(e, t) {
|
|
var r, a, o;
|
|
p(t).data("choicesjs") || WPFormsUtils.triggerEvent(i, "wpformsBeforeLoadElementChoices", [t]).isDefaultPrevented() || (r = d.wpforms_choicesjs_config || {},
|
|
a = p(t).data("search-enabled"),
|
|
o = p(t).data("remove-items-enabled"),
|
|
r.searchEnabled = void 0 === a || a,
|
|
r.removeItems = void 0 === o || o,
|
|
r.removeItemButton = r.removeItems,
|
|
r.allowHTML = !0,
|
|
r.callbackOnInit = function() {
|
|
let t = this
|
|
, r = p(t.passedElement.element)
|
|
, e = t.input?.element
|
|
, a = p(e)
|
|
, o = r.data("size-class")
|
|
, i = r.attr("id")
|
|
, s = this.dropdown.element.querySelector('[role="listbox"]')
|
|
, n = this.passedElement.element.multiple;
|
|
var l;
|
|
t.containerOuter && t.containerOuter.element && i && n && (t.containerOuter.element.setAttribute("aria-haspopup", "listbox"),
|
|
t.containerOuter.element.setAttribute("aria-labelledby", i)),
|
|
e && s && (l = "choices-listbox-" + this.passedElement.element.id,
|
|
s.id = l,
|
|
e.setAttribute("aria-controls", l),
|
|
e.setAttribute("aria-owns", l)),
|
|
t.passedElement.element.addEventListener("showDropdown", () => {
|
|
e && n && e.focus()
|
|
}
|
|
),
|
|
r.removeAttr("hidden").addClass(t.config.classNames.input + "--hidden"),
|
|
o && p(t.containerOuter.element).addClass(o),
|
|
r.prop("multiple") && (a.data("placeholder", a.attr("placeholder")).css("width", "auto"),
|
|
t.getValue(!0).length && a.removeAttr("placeholder"),
|
|
a.css("width", "1ch")),
|
|
r.on("change", function() {
|
|
r.prop("multiple") && (t.getValue(!0).length ? a.removeAttr("placeholder") : a.attr("placeholder", a.data("placeholder")).css("width", "auto"));
|
|
var e = r.closest("form").data("validator");
|
|
e && e.element(r)
|
|
})
|
|
}
|
|
,
|
|
r.callbackOnCreateTemplates = function() {
|
|
let r = p(this.passedElement.element);
|
|
return {
|
|
option(e) {
|
|
var t = Choices.defaults.templates.option.call(this, e);
|
|
return void 0 !== e.placeholder && !0 === e.placeholder && t.classList.add("placeholder"),
|
|
r.hasClass("wpforms-payment-price") && null != e.customProperties && (t.dataset.amount = e.customProperties),
|
|
t
|
|
}
|
|
}
|
|
}
|
|
,
|
|
p(t).data("choicesjs", new Choices(t,r)))
|
|
})
|
|
},
|
|
bindChoicesJS() {
|
|
p(s).on("click", ".choices", function(e) {
|
|
var t = p(this)
|
|
, r = t.find("select").data("choicesjs");
|
|
r && t.hasClass("is-open") && (e.target.classList.contains("choices__inner") || e.target.classList.contains("choices__arrow")) && r.hideDropdown()
|
|
})
|
|
},
|
|
bindUIActions() {
|
|
var e = p(s);
|
|
e.on("click", ".wpforms-page-button", function(e) {
|
|
e.preventDefault(),
|
|
m.pagebreakNav(this)
|
|
});
|
|
let t;
|
|
e.on("change input", ".wpforms-payment-price", function() {
|
|
clearTimeout(t),
|
|
t = setTimeout( () => {
|
|
m.amountTotal(this, !0)
|
|
}
|
|
, 0)
|
|
});
|
|
let r;
|
|
e.on("change", "select.wpforms-payment-quantity", function() {
|
|
clearTimeout(r),
|
|
r = setTimeout( () => {
|
|
m.amountTotal(this, !0),
|
|
m.updateOrderSummaryItemQuantity(p(this))
|
|
}
|
|
, 0)
|
|
}),
|
|
e.on("input", ".wpforms-payment-user-input", function() {
|
|
var e = p(this)
|
|
, t = e.val();
|
|
e.val(t.replace(/[^0-9.,]/g, ""))
|
|
}),
|
|
e.on("focusout", ".wpforms-payment-user-input", function() {
|
|
var e = p(this)
|
|
, t = e.val();
|
|
if (!t)
|
|
return t;
|
|
t = m.amountSanitize(t),
|
|
t = m.amountFormat(t);
|
|
e.val(t)
|
|
});
|
|
let a;
|
|
e.on("wpformsProcessConditionals", function(e, t) {
|
|
clearTimeout(a),
|
|
a = setTimeout( () => {
|
|
m.amountTotal(t, !0)
|
|
}
|
|
, 0)
|
|
}),
|
|
e.on("mouseenter", ".wpforms-field-rating-item", function() {
|
|
p(this).parent().find(".wpforms-field-rating-item").removeClass("selected hover"),
|
|
p(this).prevAll().addBack().addClass("hover")
|
|
}).on("mouseleave", ".wpforms-field-rating-item", function() {
|
|
p(this).parent().find(".wpforms-field-rating-item").removeClass("selected hover"),
|
|
p(this).parent().find("input:checked").parent().prevAll().addBack().addClass("selected")
|
|
}),
|
|
p(s).on("change", ".wpforms-field-rating-item input", function() {
|
|
var e = p(this)
|
|
, t = e.closest(".wpforms-field-rating-items").find(".wpforms-field-rating-item");
|
|
e.focus(),
|
|
t.removeClass("hover selected"),
|
|
e.parent().prevAll().addBack().addClass("selected")
|
|
}),
|
|
p(function() {
|
|
p(".wpforms-field-rating-item input:checked").trigger("change")
|
|
}),
|
|
e.on("keydown", ".wpforms-image-choices-item label", function(e) {
|
|
var t = p(this);
|
|
if (t.closest(".wpforms-field").hasClass("wpforms-conditional-hide"))
|
|
return e.preventDefault(),
|
|
!1;
|
|
32 === e.keyCode && (t.find("input").trigger("click"),
|
|
e.preventDefault())
|
|
}),
|
|
d.document.documentMode && e.on("click", ".wpforms-image-choices-item img", function() {
|
|
p(this).closest("label").find("input").trigger("click")
|
|
}),
|
|
e.on("change", ".wpforms-field-checkbox input, .wpforms-field-radio input, .wpforms-field-payment-multiple input, .wpforms-field-payment-checkbox input, .wpforms-field-gdpr-checkbox input", function(e) {
|
|
var t = p(this);
|
|
if (t.closest(".wpforms-field").hasClass("wpforms-conditional-hide"))
|
|
return e.preventDefault(),
|
|
!1;
|
|
switch (t.attr("type")) {
|
|
case "radio":
|
|
t.closest("ul").find("li").removeClass("wpforms-selected").find("input[type=radio]").removeProp("checked"),
|
|
t.prop("checked", !0).closest("li").addClass("wpforms-selected");
|
|
break;
|
|
case "checkbox":
|
|
t.is(":checked") ? (t.closest("li").addClass("wpforms-selected"),
|
|
t.prop("checked", !0)) : (t.closest("li").removeClass("wpforms-selected"),
|
|
t.prop("checked", !1))
|
|
}
|
|
}),
|
|
e.on("input", ".wpforms-field-file-upload", function() {
|
|
var e = p(this)
|
|
, t = e.closest("form.wpforms-form").find('.wpforms-field-file-upload input:not(".dropzone-input")');
|
|
let a = 0
|
|
, r = Number(wpforms_settings.post_max_size)
|
|
, o = '<div class="wpforms-error-container-post_max_size">' + wpforms_settings.val_post_max_size + "</div>";
|
|
e = e.closest("form.wpforms-form").find(".wpforms-submit-container");
|
|
let i = e.find("button.wpforms-submit")
|
|
, s = e.prev();
|
|
var n = i.closest("form")
|
|
, l = n.find(".wpforms-page-next:visible");
|
|
0 !== n.find(".wpforms-page-indicator").length && 0 !== l.length && (i = l),
|
|
t.each(function() {
|
|
var e = p(this);
|
|
let t = 0;
|
|
for (var r = e[0].files.length; t < r; t++)
|
|
a += e[0].files[t].size
|
|
}),
|
|
a < r ? (s.find(".wpforms-error-container-post_max_size").remove(),
|
|
i.prop("disabled", !1),
|
|
WPFormsUtils.triggerEvent(n, "wpformsFormSubmitButtonRestore", [n, i]),
|
|
WPFormsUtils.triggerEvent(n, "wpformsCombinedUploadsSizeOk", [n, s])) : (a = Number((a / 1048576).toFixed(3)),
|
|
r = Number((r / 1048576).toFixed(3)),
|
|
o = o.replace(/{totalSize}/, a).replace(/{maxSize}/, r),
|
|
s.hasClass("wpforms-error-container") ? (s.find(".wpforms-error-container-post_max_size").remove(),
|
|
s.append(o)) : (e.before('<div class="wpforms-error-container">{errorMsg}</div>'.replace(/{errorMsg}/, o)),
|
|
s = e.prev()),
|
|
i.prop("disabled", !0),
|
|
WPFormsUtils.triggerEvent(n, "wpformsFormSubmitButtonDisable", [n, i]),
|
|
WPFormsUtils.triggerEvent(n, "wpformsCombinedUploadsSizeError", [n, s]))
|
|
}),
|
|
e.on("change input", ".wpforms-field-number-slider input[type=range]", function(e) {
|
|
var t = p(e.target).siblings(".wpforms-field-number-slider-hint");
|
|
t.html(t.data("hint").replaceAll("{value}", "<b>" + e.target.value + "</b>"))
|
|
}),
|
|
e.on("keydown", ".wpforms-form input", function(e) {
|
|
var t, r;
|
|
13 !== e.keyCode || 0 === (r = (t = p(this)).closest(".wpforms-page")).length || ["text", "tel", "number", "email", "url", "radio", "checkbox"].indexOf(t.attr("type")) < 0 || (t.hasClass("wpforms-datepicker") && t.flatpickr("close"),
|
|
e.preventDefault(),
|
|
(r.hasClass("last") ? r.closest(".wpforms-form").find(".wpforms-submit") : r.find(".wpforms-page-next")).trigger("click"))
|
|
}),
|
|
e.on("keypress", ".wpforms-field-number input", function(e) {
|
|
return /^[-0-9.]+$/.test(String.fromCharCode(e.keyCode || e.which))
|
|
}),
|
|
e.one("input", ".wpforms-field input, .wpforms-field textarea, .wpforms-field select", m.formChanged).one("change", ".wpforms-field-select-style-modern, .wpforms-timepicker", m.formChanged).one("focus", ".dropzone-input", m.formChanged).one("click touchstart", ".wpforms-signature-canvas", m.formChanged).one("wpformsRichTextContentChange", m.richTextContentChanged),
|
|
p("form.wpforms-form").on("wpformsBeforePageChange", m.skipEmptyPages)
|
|
},
|
|
skipEmptyPages(e, t, r, a) {
|
|
var o = m.findNonEmptyPage(t, r, a);
|
|
o !== t && (e.preventDefault(),
|
|
1 === o && "prev" === a ? (e = r.find(".wpforms-page-2"),
|
|
a = r.find(".wpforms-page-" + t),
|
|
t = (e.find(".wpforms-page-prev").length ? e : a).find(".wpforms-page-prev"),
|
|
wpforms.navigateToPage(t, "prev", 2, r, e)) : (t = r.find(".wpforms-page-" + (a = o - 1)),
|
|
wpforms.navigateToPage(t.find(".wpforms-page-next"), "next", a, r, t)))
|
|
},
|
|
findNonEmptyPage(e, t, r) {
|
|
let a = e;
|
|
for (; m.isEmptyPage(t, a); )
|
|
"prev" === r ? a-- : a++;
|
|
return a
|
|
},
|
|
isEmptyPage(e, t) {
|
|
return 1 !== t && !(e = e.find(".wpforms-page-" + t)).hasClass("last") && (t = e.find(".wpforms-field:not(.wpforms-field-pagebreak):not(.wpforms-field-hidden)"),
|
|
e.find(".wpforms-conditional-hide").length === t.length)
|
|
},
|
|
formChanged(e) {
|
|
var t = p(this).closest(".wpforms-form");
|
|
m.maybeSetStartTime(t)
|
|
},
|
|
richTextContentChanged(e, t, r) {
|
|
r = r.getContainer(),
|
|
r = p(r).closest(".wpforms-form");
|
|
m.maybeSetStartTime(r)
|
|
},
|
|
initFormsStartTime() {
|
|
p(".wpforms-form").each(function() {
|
|
m.maybeSetStartTime(p(this))
|
|
})
|
|
},
|
|
maybeSetStartTime(e) {
|
|
m.getStartTimestampData(e) || e.data("start_timestamp", m.getTimestampSec())
|
|
},
|
|
getStartTimestampData(e) {
|
|
return e.hasClass("wpforms-form") && 0 < (e = parseInt(e.data("start_timestamp"), 10) || 0) ? e : 0
|
|
},
|
|
entryPreviewFieldPageChange(e, t, r) {
|
|
console.warn("WARNING! Obsolete function called. Function wpforms.entryPreviewFieldPageChange has been deprecated, please use the WPFormsEntryPreview.pageChange function instead!"),
|
|
WPFormsEntryPreview.pageChange(e, t, r)
|
|
},
|
|
entryPreviewFieldUpdate(e, t) {
|
|
console.warn("WARNING! Obsolete function called. Function wpforms.entryPreviewFieldUpdate has been deprecated, please use the WPFormsEntryPreview.update function instead!"),
|
|
WPFormsEntryPreview.update(e, t)
|
|
},
|
|
scrollToError(e) {
|
|
if (0 !== e.length) {
|
|
let t = e.find(".wpforms-field.wpforms-has-error");
|
|
0 !== (t = 0 === t.length ? e.closest(".wpforms-field") : t).length && void 0 !== (e = t.offset()) && m.animateScrollTop(e.top - 75, 750).done(function() {
|
|
var e = t.find(".wpforms-error").first();
|
|
"function" == typeof e.focus && e.trigger("focus")
|
|
})
|
|
}
|
|
},
|
|
pagebreakNav(e) {
|
|
let t = p(e)
|
|
, r = t.data("action")
|
|
, a = t.data("page")
|
|
, o = t.closest(".wpforms-form")
|
|
, i = o.find(".wpforms-page-" + a);
|
|
m.saveTinyMCE(),
|
|
"next" === r && void 0 !== p.fn.validate ? m.checkForInvalidFields(o, i, function() {
|
|
m.navigateToPage(t, r, a, o, i)
|
|
}) : "prev" !== r && "next" !== r || m.navigateToPage(t, r, a, o, i)
|
|
},
|
|
checkForInvalidFields(e, t, r) {
|
|
var o = e.data("validator");
|
|
if (o) {
|
|
let a = !0;
|
|
t.find(":input").each(function(e, t) {
|
|
var r = p(t);
|
|
!r.attr("name") || r.hasClass("wpforms-field-skip-validation") || p(t).valid() || (a = !1)
|
|
}),
|
|
0 < o.pendingRequest ? setTimeout(function() {
|
|
m.checkForInvalidFields(e, t, r)
|
|
}, 800) : a ? r() : m.scrollToError(t)
|
|
}
|
|
},
|
|
navigateToPage(t, r, a, o, e) {
|
|
if (!t.hasClass("wpforms-disabled")) {
|
|
let e = a;
|
|
"next" === r ? e += 1 : "prev" === r && --e,
|
|
WPFormsUtils.triggerEvent(t, "wpformsBeforePageChange", [e, o, r]).isDefaultPrevented() || (o.find(".wpforms-page").hide(),
|
|
(a = o.find(".wpforms-page-" + e)).show(),
|
|
m.toggleReCaptchaAndSubmitDisplay(o, r, a),
|
|
m.checkTurnstileVisibility(o),
|
|
(a = m.getPageScroll(o)) && m.animateScrollTop(o.offset().top - a, 750, null),
|
|
t.trigger("wpformsPageChange", [e, o, r]),
|
|
m.manipulateIndicator(e, o))
|
|
}
|
|
},
|
|
toggleReCaptchaAndSubmitDisplay(e, t, r) {
|
|
var a = e.find(".wpforms-submit-container")
|
|
, e = e.find(".wpforms-recaptcha-container");
|
|
"next" === t && r.hasClass("last") ? (e.show(),
|
|
a.show()) : "prev" === t && (e.hide(),
|
|
a.hide())
|
|
},
|
|
checkTurnstileVisibility(e) {
|
|
var t, e = e.find(".wpforms-recaptcha-container");
|
|
e.hasClass("wpforms-is-turnstile") && (t = e.find(".g-recaptcha").height(),
|
|
0 === parseInt(t, 10) ? e.addClass("wpforms-is-turnstile-invisible") : e.removeClass("wpforms-is-turnstile-invisible"))
|
|
},
|
|
getPageScroll(e) {
|
|
return !1 !== d.wpforms_pageScroll && (m.empty(d.wpform_pageScroll) ? 0 !== e.find(".wpforms-page-indicator").data("scroll") && 75 : d.wpform_pageScroll)
|
|
},
|
|
manipulateIndicator(e, t) {
|
|
var r, a = t.find(".wpforms-page-indicator");
|
|
a && ("connector" === (r = a.data("indicator")) || "circles" === r ? m.manipulateConnectorAndCirclesIndicator(a, r, e) : "progress" === r && m.manipulateProgressIndicator(a, t, e))
|
|
},
|
|
manipulateConnectorAndCirclesIndicator(e, t, r) {
|
|
var a = e.data("indicator-color");
|
|
e.find(".wpforms-page-indicator-page").removeClass("active"),
|
|
e.find(".wpforms-page-indicator-page-" + r).addClass("active"),
|
|
e.find(".wpforms-page-indicator-page-number").removeAttr("style"),
|
|
e.find(".active .wpforms-page-indicator-page-number").css("background-color", a),
|
|
"connector" === t && (e.find(".wpforms-page-indicator-page-triangle").removeAttr("style"),
|
|
e.find(".active .wpforms-page-indicator-page-triangle").css("border-top-color", a))
|
|
},
|
|
manipulateProgressIndicator(e, t, r) {
|
|
var a = e.find(".wpforms-page-indicator-page-title")
|
|
, o = e.find(".wpforms-page-indicator-page-title-sep")
|
|
, t = r / t.find(".wpforms-page").length * 100;
|
|
e.find(".wpforms-page-indicator-page-progress").css("width", t + "%"),
|
|
e.find(".wpforms-page-indicator-steps-current").text(r),
|
|
a.data("page-" + r + "-title") ? (a.css("display", "inline").text(a.data("page-" + r + "-title")),
|
|
o.css("display", "inline")) : (a.css("display", "none"),
|
|
o.css("display", "none"))
|
|
},
|
|
bindOptinMonster() {
|
|
s.addEventListener("om.Campaign.load", function(e) {
|
|
m.ready(),
|
|
m.optinMonsterRecaptchaReset(e.detail.Campaign.data.id)
|
|
}),
|
|
s.addEventListener("om.Campaign.afterShow", function(e) {
|
|
"undefined" != typeof WPFormsRepeaterField && WPFormsRepeaterField.ready()
|
|
}),
|
|
p(s).on("OptinMonsterOnShow", function(e, t, r) {
|
|
m.ready(),
|
|
m.optinMonsterRecaptchaReset(t.optin),
|
|
"undefined" != typeof WPFormsRepeaterField && WPFormsRepeaterField.ready()
|
|
})
|
|
},
|
|
optinMonsterRecaptchaReset(e) {
|
|
var e = p("#om-" + e).find(".wpforms-form")
|
|
, a = e.find(".wpforms-recaptcha-container")
|
|
, o = e.find(".g-recaptcha");
|
|
if (e.length && o.length) {
|
|
let e = o.attr("data-sitekey")
|
|
, t = "recaptcha-" + Date.now()
|
|
, r = a.hasClass("wpforms-is-hcaptcha") ? hcaptcha : grecaptcha;
|
|
o.remove(),
|
|
a.prepend('<div class="g-recaptcha" id="' + t + '" data-sitekey="' + e + '"></div>'),
|
|
r.render(t, {
|
|
sitekey: e,
|
|
callback() {
|
|
wpformsRecaptchaCallback(p("#" + t))
|
|
}
|
|
})
|
|
}
|
|
},
|
|
amountTotal(e, t) {
|
|
t = t || !1;
|
|
let r = p(e)
|
|
, a = r.closest(".wpforms-form")
|
|
, o = m.amountTotalCalc(a);
|
|
if (m.allowAmountTotalCalc(a, r, o)) {
|
|
let e = m.amountFormatSymbol(o);
|
|
a.find(".wpforms-payment-total").each(function() {
|
|
"hidden" === p(this).attr("type") || "text" === p(this).attr("type") ? (p(this).val(e),
|
|
"text" === p(this).attr("type") && t && a.data("validator") && p(this).valid()) : p(this).text(e)
|
|
}),
|
|
m.updateOrderSummaryItems(a, r, e)
|
|
}
|
|
},
|
|
allowAmountTotalCalc(e, t, r) {
|
|
var e = e.data("formid");
|
|
return m.getCache(e, "amountTotal") !== r ? (m.updateCache(e, "amountTotal", r),
|
|
!0) : "radio" === (e = t.prop("type")) || "select-one" === e || "checkbox" === e
|
|
},
|
|
updateOrderSummaryItems(e, t, r) {
|
|
var a = e.find(".wpforms-order-summary-preview");
|
|
if (0 !== a.length) {
|
|
let o = e.find(".wpforms-payment-price");
|
|
a.each(function() {
|
|
let a = p(this)
|
|
, e = ("" !== r && a.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text(r),
|
|
t => {
|
|
let r = Math.min(t + 10, o.length);
|
|
for (let e = t; e < r; e++)
|
|
m.updateOrderSummaryItem(p(o[e]), a);
|
|
r < o.length && setTimeout( () => e(r), 0)
|
|
}
|
|
);
|
|
e(0)
|
|
})
|
|
}
|
|
},
|
|
updateCache(e, t, r) {
|
|
m.cache[e] = m.cache[e] || {},
|
|
m.cache[e][t] = r
|
|
},
|
|
getCache(e, t) {
|
|
return !(!Object.prototype.hasOwnProperty.call(m.cache, e) || !Object.prototype.hasOwnProperty.call(m.cache[e], t)) && m.cache[e][t]
|
|
},
|
|
updateOrderSummaryItem(o, i) {
|
|
if (o.hasClass("wpforms-payment-price")) {
|
|
let t = o.closest(".wpforms-field")
|
|
, e = t.data("field-id")
|
|
, r = o.prop("type")
|
|
, a = "block" === t.css("display");
|
|
var s, n;
|
|
"checkbox" === r || "radio" === r || "select-one" === r ? i.find(`tr[data-field="${e}"]`).each(function() {
|
|
var e = p(this).data("choice")
|
|
, e = "select-one" === r ? e === parseInt(t.find("select").val(), 10) : t.find(`input[value="${e}"]`).is(":checked");
|
|
p(this).toggle(a && e)
|
|
}) : (s = i.find(`tr[data-field="${e}"]`),
|
|
n = o.val(),
|
|
s.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(m.amountSanitize(n))),
|
|
s.toggle(a)),
|
|
t.hasClass("wpforms-payment-quantities-enabled") ? m.updateOrderSummaryItemQuantity(o) : (m.updateSummaryPriceWidth(i),
|
|
m.toggleSummaryPlaceholder(i))
|
|
}
|
|
},
|
|
updateOrderSummaryItemQuantity(e) {
|
|
let t = e.closest(".wpforms-field")
|
|
, a = t.find("input.wpforms-payment-price, select.wpforms-payment-price")
|
|
, r = e.closest(".wpforms-form")
|
|
, o = t.data("field-id")
|
|
, i = m.getPaymentFieldQuantity(a)
|
|
, s = m.getPaymentFieldAmount(a)
|
|
, n = a.prop("type");
|
|
r.find(".wpforms-order-summary-preview").each(function() {
|
|
var e, t = p(this);
|
|
let r;
|
|
(r = "checkbox" === n || "radio" === n || "select-one" === n ? (e = a.val(),
|
|
t.find(`tr[data-field="${o}"][data-choice="${e}"]`)) : t.find(`tr[data-field="${o}"]`)).toggle(0 < i),
|
|
r.find(".wpforms-order-summary-item-quantity").text(i),
|
|
r.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(s * i)),
|
|
m.updateSummaryPriceWidth(t),
|
|
m.toggleSummaryPlaceholder(t)
|
|
})
|
|
},
|
|
updateSummaryPriceWidth(e) {
|
|
var t = Math.max(e.find(".wpforms-order-summary-preview-coupon-total .wpforms-order-summary-item-price").text().length, e.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text().length + 3);
|
|
e.find(".wpforms-order-summary-item-price").css("width", t + "ch")
|
|
},
|
|
toggleSummaryPlaceholder(e) {
|
|
var t = e.find(".wpforms-order-summary-placeholder");
|
|
let r = !0;
|
|
e.find(".wpforms-order-summary-field").each(function() {
|
|
if ("none" !== p(this).css("display"))
|
|
return r = !1
|
|
}),
|
|
t.toggle(r)
|
|
},
|
|
amountTotalCalc(e) {
|
|
let r = 0;
|
|
p(".wpforms-payment-price", e).each(function() {
|
|
var e, t = p(this);
|
|
t.closest(".wpforms-field-payment-single").hasClass("wpforms-conditional-hide") || (e = m.getPaymentFieldAmount(t)) && (r = Number(r) + e * m.getPaymentFieldQuantity(t))
|
|
});
|
|
var t = p(s)
|
|
, a = WPFormsUtils.triggerEvent(t, "wpformsAmountTotalCalculate", [e, r]);
|
|
return r = void 0 !== a.result && 0 <= a.result ? a.result : r,
|
|
WPFormsUtils.triggerEvent(t, "wpformsAmountTotalCalculated", [e, r]),
|
|
r
|
|
},
|
|
getPaymentFieldAmount(e) {
|
|
var t = e.attr("type");
|
|
return "text" === t || "hidden" === t ? Number(m.amountSanitize(e.val())) : "radio" !== t && "checkbox" !== t || !e.is(":checked") ? e.is("select") && 0 < e.find("option:selected").length && e.find("option:selected").data("amount") ? Number(m.amountSanitize(e.find("option:selected").data("amount"))) : 0 : Number(m.amountSanitize(e.data("amount")))
|
|
},
|
|
getPaymentFieldQuantity(e) {
|
|
e = e.attr("id"),
|
|
e = p(`#${e}-quantity`);
|
|
return e.length ? Number(e.val()) : 1
|
|
},
|
|
amountSanitize(e) {
|
|
var t = m.getCurrency();
|
|
return e = e.toString().replace(t.symbol, "").replace(/[^0-9.,]/g, ""),
|
|
"," === t.decimal_sep ? ("." === t.thousands_sep && -1 !== e.indexOf(t.thousands_sep) ? e = e.replace(new RegExp("\\" + t.thousands_sep,"g"), "") : "" === t.thousands_sep && -1 !== e.indexOf(".") && (e = e.replace(/\./g, "")),
|
|
e = e.replace(t.decimal_sep, ".")) : "," === t.thousands_sep && -1 !== e.indexOf(t.thousands_sep) && (e = e.replace(new RegExp("\\" + t.thousands_sep,"g"), "")),
|
|
m.numberFormat(e, t.decimals, ".", "")
|
|
},
|
|
amountFormat(e) {
|
|
var t, r = m.getCurrency();
|
|
return e = String(e),
|
|
"," === r.decimal_sep && -1 !== e.indexOf(r.decimal_sep) && (t = e.indexOf(r.decimal_sep),
|
|
e = e.substr(0, t) + "." + e.substr(t + 1, e.length - 1)),
|
|
"," === r.thousands_sep && -1 !== e.indexOf(r.thousands_sep) && (e = e.replace(/,/g, "")),
|
|
m.empty(e) && (e = 0),
|
|
m.numberFormat(e, r.decimals, r.decimal_sep, r.thousands_sep)
|
|
},
|
|
amountFormatSymbol(e) {
|
|
var t = m.getCurrency()
|
|
, e = m.amountFormat(e);
|
|
return "left" === t.symbol_pos ? t.symbol + e : e + " " + t.symbol
|
|
},
|
|
getCurrency() {
|
|
var e = {
|
|
code: "USD",
|
|
thousands_sep: ",",
|
|
decimals: 2,
|
|
decimal_sep: ".",
|
|
symbol: "$",
|
|
symbol_pos: "left"
|
|
};
|
|
return void 0 !== wpforms_settings.currency_code && (e.code = wpforms_settings.currency_code),
|
|
void 0 !== wpforms_settings.currency_thousands && (e.thousands_sep = wpforms_settings.currency_thousands),
|
|
void 0 !== wpforms_settings.currency_decimals && (e.decimals = wpforms_settings.currency_decimals),
|
|
void 0 !== wpforms_settings.currency_decimal && (e.decimal_sep = wpforms_settings.currency_decimal),
|
|
void 0 !== wpforms_settings.currency_symbol && (e.symbol = wpforms_settings.currency_symbol),
|
|
void 0 !== wpforms_settings.currency_symbol_pos && (e.symbol_pos = wpforms_settings.currency_symbol_pos),
|
|
e
|
|
},
|
|
numberFormat(e, t, r, a) {
|
|
e = (e + "").replace(/[^0-9+\-Ee.]/g, "");
|
|
var o, i, e = isFinite(+e) ? +e : 0, t = isFinite(+t) ? Math.abs(t) : 0, a = void 0 === a ? "," : a, r = void 0 === r ? "." : r, s = (t ? (s = e,
|
|
o = t,
|
|
i = Math.pow(10, o),
|
|
"" + (Math.round(s * i) / i).toFixed(o)) : "" + Math.round(e)).split(".");
|
|
return 3 < s[0].length && (s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, a)),
|
|
(s[1] || "").length < t && (s[1] = s[1] || "",
|
|
s[1] += new Array(t - s[1].length + 1).join("0")),
|
|
s.join(r)
|
|
},
|
|
empty(e) {
|
|
var t;
|
|
let r, a;
|
|
var o = [void 0, null, !1, 0, "", "0"];
|
|
for (a = 0,
|
|
t = o.length; a < t; a++)
|
|
if (e === o[a])
|
|
return !0;
|
|
if ("object" != typeof e)
|
|
return !1;
|
|
for (r in e)
|
|
if (e.hasOwnProperty(r))
|
|
return !1;
|
|
return !0
|
|
},
|
|
setUserIdentifier() {
|
|
if ((!d.hasRequiredConsent && "undefined" != typeof wpforms_settings && wpforms_settings.uuid_cookie || d.hasRequiredConsent && d.hasRequiredConsent()) && !m.getCookie("_wpfuuid")) {
|
|
var t = new Array(36)
|
|
, r = "0123456789abcdef";
|
|
for (let e = 0; e < 36; e++)
|
|
t[e] = r.substr(Math.floor(16 * Math.random()), 1);
|
|
t[14] = "4",
|
|
t[19] = r.substr(3 & t[19] | 8, 1),
|
|
t[8] = t[13] = t[18] = t[23] = "-";
|
|
var e = t.join("");
|
|
m.createCookie("_wpfuuid", e, 3999)
|
|
}
|
|
},
|
|
createCookie(e, t, r) {
|
|
let a = ""
|
|
, o = "";
|
|
var i;
|
|
wpforms_settings.is_ssl && (o = ";secure"),
|
|
a = r ? -1 === r ? "" : ((i = new Date).setTime(i.getTime() + 24 * r * 60 * 60 * 1e3),
|
|
";expires=" + i.toGMTString()) : ";expires=Thu, 01 Jan 1970 00:00:01 GMT",
|
|
s.cookie = e + "=" + t + a + ";path=/;samesite=strict" + o
|
|
},
|
|
getCookie(e) {
|
|
var r = e + "="
|
|
, a = s.cookie.split(";");
|
|
for (let t = 0; t < a.length; t++) {
|
|
let e = a[t];
|
|
for (; " " === e.charAt(0); )
|
|
e = e.substring(1, e.length);
|
|
if (0 === e.indexOf(r))
|
|
return e.substring(r.length, e.length)
|
|
}
|
|
return null
|
|
},
|
|
removeCookie(e) {
|
|
m.createCookie(e, "", -1)
|
|
},
|
|
getFirstBrowserLanguage() {
|
|
return console.warn('WARNING! Function "wpforms.getFirstBrowserLanguage()" has been deprecated, please use the new "WPFormsPhoneField.getFirstBrowserLanguage()" function instead!'),
|
|
WPFormsPhoneField?.getFirstBrowserLanguage?.()
|
|
},
|
|
mapLanguageToIso(e) {
|
|
return console.warn('WARNING! Function "wpforms.mapLanguageToIso()" has been deprecated, please use the new "WPFormsPhoneField.mapLanguageToIso()" function instead!'),
|
|
WPFormsPhoneField?.mapLanguageToIso?.(e)
|
|
},
|
|
currentIpToCountry(e) {
|
|
console.warn('WARNING! Function "wpforms.currentIpToCountry()" has been deprecated, please use the new "WPFormsPhoneField.currentIpToCountry()" function instead!'),
|
|
WPFormsPhoneField?.currentIpToCountry?.(e)
|
|
},
|
|
formSubmit(e) {
|
|
e instanceof jQuery || (e = p(e)),
|
|
m.saveTinyMCE(),
|
|
WPFormsUtils.triggerEvent(e, "wpformsBeforeFormSubmit", [e]).isDefaultPrevented() ? m.restoreSubmitButton(e, e.closest(".wpforms-container")) : e.hasClass("wpforms-ajax-form") && "undefined" != typeof FormData ? m.formSubmitAjax(e) : m.formSubmitNormal(e)
|
|
},
|
|
restoreSubmitButton(e, t) {
|
|
var r = e.find(".wpforms-submit")
|
|
, a = r.data("submit-text");
|
|
a && r.text(a),
|
|
r.prop("disabled", !1),
|
|
WPFormsUtils.triggerEvent(e, "wpformsFormSubmitButtonRestore", [e, r]),
|
|
t.css("opacity", ""),
|
|
e.find(".wpforms-submit-spinner").hide()
|
|
},
|
|
formSubmitNormal(e) {
|
|
var t, r;
|
|
e.length && (r = (t = e.find(".wpforms-submit")).get(0).recaptchaID,
|
|
m.empty(r) && 0 !== r || (t.get(0).recaptchaID = !1),
|
|
e.append('<input type="hidden" name="start_timestamp" value="' + m.getStartTimestampData(e) + '">'),
|
|
e.append('<input type="hidden" name="end_timestamp" value="' + m.getTimestampSec() + '">'),
|
|
e.get(0).submit())
|
|
},
|
|
formHasCaptcha(e) {
|
|
return !(!e || !e.length || "undefined" == typeof hcaptcha && "undefined" == typeof grecaptcha && "undefined" == typeof turnstile) && (e = e.find(".wpforms-recaptcha-container"),
|
|
Boolean(e.length))
|
|
},
|
|
resetFormRecaptcha(r) {
|
|
if (m.formHasCaptcha(r)) {
|
|
var a = r.find(".wpforms-recaptcha-container");
|
|
let e, t;
|
|
e = a.hasClass("wpforms-is-hcaptcha") ? hcaptcha : a.hasClass("wpforms-is-turnstile") ? turnstile : grecaptcha,
|
|
t = r.find(".wpforms-submit").get(0).recaptchaID,
|
|
m.empty(t) && 0 !== t && (t = r.find(".g-recaptcha").data("recaptcha-id")),
|
|
m.empty(t) && 0 !== t || e.reset(t)
|
|
}
|
|
},
|
|
consoleLogAjaxError(e) {
|
|
e ? console.error("WPForms AJAX submit error:\n%s", e) : console.error("WPForms AJAX submit error")
|
|
},
|
|
displayFormAjaxErrors(e, t) {
|
|
"string" == typeof t ? m.displayFormAjaxGeneralErrors(e, t) : (t = t && "errors"in t ? t.errors : null,
|
|
m.empty(t) || m.empty(t.general) && m.empty(t.field) ? m.consoleLogAjaxError() : (m.empty(t.general) || m.displayFormAjaxGeneralErrors(e, t.general),
|
|
m.empty(t.field) || m.displayFormAjaxFieldErrors(e, t.field)))
|
|
},
|
|
displayFormAjaxGeneralErrors(e, t) {
|
|
var r, a;
|
|
e && e.length && (m.empty(t) || (m.isModernMarkupEnabled() && e.attr({
|
|
"aria-invalid": "true",
|
|
"aria-errormessage": ""
|
|
}),
|
|
"string" == typeof t ? (a = m.isModernMarkupEnabled() ? ' role="alert"' : "",
|
|
r = m.isModernMarkupEnabled() ? `<span class="wpforms-hidden">${wpforms_settings.formErrorMessagePrefix}</span>` : "",
|
|
e.find(".wpforms-submit-container").before(`<div class="wpforms-error-container"${a}>${r}${t}</div>`),
|
|
m.setCurrentPage(e, {})) : (a = e.data("formid"),
|
|
m.printGeneralErrors(e, t, a))))
|
|
},
|
|
printGeneralErrors(o, e, i) {
|
|
p.each(e, function(e, t) {
|
|
switch (e) {
|
|
case "header":
|
|
case "header_styled":
|
|
o.prepend(t);
|
|
break;
|
|
case "footer":
|
|
case "footer_styled":
|
|
r = t,
|
|
0 === o.find(".wpforms-page-indicator").length ? o.find(".wpforms-submit-container").before(r) : o.find(".wpforms-page-1").append(r);
|
|
break;
|
|
case "recaptcha":
|
|
r = t,
|
|
o.find(".wpforms-recaptcha-container").append(r)
|
|
}
|
|
var r, a;
|
|
m.isModernMarkupEnabled() && (a = o.attr("aria-errormessage") || "",
|
|
o.attr("aria-errormessage", a + ` wpforms-${i}-${e}-error`))
|
|
}),
|
|
o.find(".wpforms-error-container").length && m.animateScrollTop(o.find(".wpforms-error-container").first().offset().top - 100)
|
|
},
|
|
clearFormAjaxGeneralErrors(e) {
|
|
e.find(".wpforms-error-container").remove(),
|
|
e.find("#wpforms-field_recaptcha-error").remove(),
|
|
m.isModernMarkupEnabled() && e.attr({
|
|
"aria-invalid": "false",
|
|
"aria-errormessage": ""
|
|
})
|
|
},
|
|
displayFormAjaxFieldErrors(a, o) {
|
|
var e;
|
|
a && a.length && (m.empty(o) || (e = a.data("validator")) && (o = m.splitFieldErrors(o),
|
|
p.each(o, function(e, t) {
|
|
var r = p('[name="' + e + '"]', a);
|
|
r.length ? r.attr("data-server-error", t) : delete o[e]
|
|
}),
|
|
e.showErrors(o),
|
|
m.formHasCaptcha(a) || e.focusInvalid()))
|
|
},
|
|
splitFieldErrors: i => (p.each(i, function(o, e) {
|
|
"string" != typeof e && p.each(e, function(e, t) {
|
|
var r = o.split("[").pop().replace("]", "")
|
|
, a = o.replace("[" + r + "]", "");
|
|
r === e ? i[o] = t : "string" == typeof e && isNaN(e) && (i[a + "[" + e + "]"] = t)
|
|
})
|
|
}),
|
|
i),
|
|
formSubmitAjax: a => {
|
|
if (!a.length)
|
|
return p.Deferred().reject();
|
|
let r = a.closest(".wpforms-container"), e = a.find(".wpforms-submit-spinner"), o;
|
|
r.css("opacity", .6),
|
|
e.show(),
|
|
m.clearFormAjaxGeneralErrors(a);
|
|
var t = new FormData(a.get(0))
|
|
, t = (t.append("action", "wpforms_submit"),
|
|
t.append("start_timestamp", m.getStartTimestampData(a)),
|
|
t.append("end_timestamp", m.getTimestampSec()),
|
|
{
|
|
type: "post",
|
|
dataType: "json",
|
|
url: wpforms_settings.ajaxurl,
|
|
data: t,
|
|
cache: !1,
|
|
contentType: !1,
|
|
processData: !1
|
|
});
|
|
return t.success = function(e) {
|
|
var t;
|
|
if (e)
|
|
if (e.data && e.data.action_required)
|
|
a.trigger("wpformsAjaxSubmitActionRequired", e);
|
|
else if (e.success) {
|
|
if (a.trigger("wpformsAjaxSubmitSuccess", e),
|
|
e.data)
|
|
return e.data.redirect_url ? (t = e.data.new_tab || !1,
|
|
a.trigger("wpformsAjaxSubmitBeforeRedirect", e),
|
|
t ? (d.open(e.data.redirect_url, "_blank"),
|
|
void location.reload()) : void (d.location = e.data.redirect_url)) : void (e.data.confirmation && (r.html(e.data.confirmation),
|
|
o = r.find("div.wpforms-confirmation-scroll"),
|
|
r.trigger("wpformsAjaxSubmitSuccessConfirmation", e),
|
|
o.length) && m.animateScrollTop(o.offset().top - 100))
|
|
} else
|
|
m.resetFormRecaptcha(a),
|
|
m.displayFormAjaxErrors(a, e.data),
|
|
a.trigger("wpformsAjaxSubmitFailed", e),
|
|
m.setCurrentPage(a, e.data);
|
|
else
|
|
m.consoleLogAjaxError()
|
|
}
|
|
,
|
|
t.error = function(e, t, r) {
|
|
m.consoleLogAjaxError(r),
|
|
a.trigger("wpformsAjaxSubmitError", [e, t, r])
|
|
}
|
|
,
|
|
t.complete = function(e, t) {
|
|
e.responseJSON && e.responseJSON.data && (e.responseJSON.data.action_required || "success" === t && e.responseJSON.data.redirect_url) || (m.restoreSubmitButton(a, r),
|
|
a.trigger("wpformsAjaxSubmitCompleted", [e, t]))
|
|
}
|
|
,
|
|
WPFormsUtils.triggerEvent(a, "wpformsAjaxBeforeSubmit", [a]).isDefaultPrevented() ? (m.restoreSubmitButton(a, r),
|
|
p.Deferred().reject()) : p.ajax(t)
|
|
}
|
|
,
|
|
setCurrentPage(a, o) {
|
|
if (0 !== a.find(".wpforms-page-indicator").length) {
|
|
let r = [];
|
|
if (a.find(".wpforms-page").each(function(e, t) {
|
|
if (1 <= p(t).find(".wpforms-has-error").length)
|
|
return r.push(p(t))
|
|
}),
|
|
0 !== r.length || void 0 === o.errors || void 0 === o.errors.general || void 0 !== o.errors.general.footer || void 0 === o.errors.general.recaptcha) {
|
|
var i = 0 < r.length ? r[0] : a.find(".wpforms-page-1");
|
|
let e, t = "prev";
|
|
1 === i.data("page") || void 0 !== o.errors && void 0 !== o.errors.general.footer ? e = a.find(".wpforms-page-1").next() : (e = 0 !== i.next().length ? i.next() : i.prev(),
|
|
t = 0 !== i.next().length ? "prev" : "next");
|
|
o = e.find(".wpforms-page-next"),
|
|
i = e.data("page");
|
|
m.navigateToPage(o, t, i, a, p(".wpforms-page-" + i))
|
|
}
|
|
}
|
|
},
|
|
animateScrollTop(e, t, r) {
|
|
return t = t || 1e3,
|
|
r = "function" == typeof r ? r : function() {}
|
|
,
|
|
p("html, body").animate({
|
|
scrollTop: parseInt(e, 10)
|
|
}, {
|
|
duration: t,
|
|
complete: r
|
|
}).promise()
|
|
},
|
|
saveTinyMCE() {
|
|
"undefined" != typeof tinyMCE && tinyMCE.triggerSave()
|
|
},
|
|
isFunction(e) {
|
|
return !!(e && e.constructor && e.call && e.apply)
|
|
},
|
|
compareTimesGreaterThan(e, t) {
|
|
e = e.replace(/(am|pm)/g, " $1").toUpperCase(),
|
|
t = t.replace(/(am|pm)/g, " $1").toUpperCase();
|
|
e = Date.parse("01 Jan 2021 " + e);
|
|
return Date.parse("01 Jan 2021 " + t) <= e
|
|
},
|
|
isModernMarkupEnabled() {
|
|
return !!wpforms_settings.isModernMarkupEnabled
|
|
},
|
|
initTokenUpdater() {
|
|
p(".wpforms-form").on("focusin", function(e) {
|
|
var t = p(e.target.closest("form"))
|
|
, r = Date.now();
|
|
this.needsTokenUpdate(r, t) && this.updateToken(r, t, e)
|
|
}
|
|
.bind(this))
|
|
},
|
|
needsTokenUpdate(e, t) {
|
|
return e - 1e3 * (t.attr("data-token-time") || 0) >= 1e3 * wpforms_settings.token_cache_lifetime && !this.isUpdatingToken
|
|
},
|
|
updateToken(t, r, a) {
|
|
var e = r.data("formid");
|
|
let o = r.find(".wpforms-submit");
|
|
this.isUpdatingToken = !0,
|
|
o.prop("disabled", !0),
|
|
p.post(wpforms_settings.ajaxurl, {
|
|
action: "wpforms_get_token",
|
|
formId: e
|
|
}).done(function(e) {
|
|
e.success ? (r.attr("data-token-time", t),
|
|
r.attr("data-token", e.data.token),
|
|
o.prop("disabled", !1),
|
|
a.target === o[0] && o.trigger("click")) : console.error("Failed to update token: ", e)
|
|
}).fail(function(e, t, r) {
|
|
console.error("AJAX request failed: ", t, r)
|
|
}).always(function() {
|
|
this.isUpdatingToken = !1,
|
|
o.prop("disabled", !1)
|
|
}
|
|
.bind(this))
|
|
},
|
|
restoreSubmitButtonOnEventPersisted() {
|
|
d.onpageshow = function(e) {
|
|
e.persisted && p(".wpforms-form").each(function() {
|
|
var e = p(this);
|
|
m.restoreSubmitButton(e, e.closest(".wpforms-container"))
|
|
})
|
|
}
|
|
},
|
|
loadValidationGroups(e) {
|
|
var t = e.closest(".wpforms-form").data("validator");
|
|
t && p.extend(t.groups, m.getDateTimeValidationGroups(e))
|
|
},
|
|
getDateTimeValidationGroups(e) {
|
|
let a = {};
|
|
return e.find(".wpforms-field.wpforms-field-date-time").each(function() {
|
|
var e = p(this);
|
|
if (e.find(".wpforms-field-date-dropdown-wrap").length) {
|
|
let r = e.attr("id").replace("-container", "");
|
|
p.each(["month", "day", "year"], function(e, t) {
|
|
t = p(`#${r}-` + t).attr("name");
|
|
a[t] = r
|
|
})
|
|
}
|
|
}),
|
|
a
|
|
},
|
|
getTimestampSec() {
|
|
return Math.floor(Date.now() / 1e3)
|
|
},
|
|
lockField(e) {
|
|
var t = e.data("field-type");
|
|
(wpforms_settings.readOnlyDisallowedFields ?? []).includes(t) || (e.addClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly", !0).attr("tabindex", "-1"),
|
|
e.hasClass("wpforms-field-select-style-modern") ? e.find("select").data("choicesjs")?.disable() : e.hasClass("wpforms-field-richtext") && d.WPFormsRichTextField?.lockField(e))
|
|
},
|
|
unlockField(e) {
|
|
e.removeClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly", !1).attr("tabindex", null),
|
|
e.hasClass("wpforms-field-select-style-modern") ? e.find("select").data("choicesjs")?.enable() : e.hasClass("wpforms-field-richtext") && d.WPFormsRichTextField?.unlockField(e)
|
|
},
|
|
readOnlyFieldsInit() {
|
|
p(".wpforms-field." + a).each(function() {
|
|
m.lockField(p(this))
|
|
})
|
|
},
|
|
field: {
|
|
lock(e, t) {
|
|
m.lockField(p(`#wpforms-${e}-field_${t}-container`))
|
|
},
|
|
unlock(e, t) {
|
|
m.unlockField(p(`#wpforms-${e}-field_${t}-container`))
|
|
},
|
|
toggle(e, t, r="auto") {
|
|
e = p(`#wpforms-${e}-field_${t}-container`),
|
|
t = e.hasClass(a);
|
|
("auto" === r ? !t : r) ? m.lockField(e) : m.unlockField(e)
|
|
},
|
|
isLocked(e, t) {
|
|
return p(`#wpforms-${e}-field_${t}-container`).hasClass(a)
|
|
},
|
|
lockAll(e) {
|
|
p(`#wpforms-${e} .wpforms-field`).each(function() {
|
|
m.lockField(p(this))
|
|
})
|
|
},
|
|
unlockAll(e) {
|
|
p("#wpforms-" + e).find(".wpforms-field").each(function() {
|
|
m.unlockField(p(this))
|
|
})
|
|
}
|
|
}
|
|
};
|
|
return m
|
|
}
|
|
)(document, window, jQuery);
|
|
wpforms.init();
|