"use strict";var WPFormsOfflineForms=window.WPFormsOfflineForms||function(i,e,s){var r={isOffline:!1,alreadyNotified:!1,forms:[],formsData:{},storage:{local:store.namespace("wpforms").namespace("offline"),expire:86400,set:function(e,t){e=this.local.namespace(parseInt(e,10));e.set(e.size()+1,t,this.expire)},get(e){e=parseInt(e,10);var t=this.getAll(e);return t.length?(t=t.shift(),this.local.namespace(e).remove(t.entry_id),t):{}},getAll(e){e=this.local.namespace(parseInt(e,10));if(!e||"function"!=typeof e.getAll)return[];var t=e.getAll(),i=[];let o;for(o in t)t.hasOwnProperty(o)&&!s.isEmptyObject(t[o])&&i.push({entry_id:o,entry:t[o]});return i},clearAll:function(e){this.local.namespace(parseInt(e,10)).clearAll()}},notifications:{$_form:!1,_actions:[],setForm:function(e){return this.$_form=e,this._clearActions(),this},setActions:function(e){if(e)for(var t in e)e.hasOwnProperty(t)&&this._actions.push({key:t,label:e[t]});else this._clearActions();return this},_clearActions:function(){this._actions=[]},_getNotificationTemplate:function(){return s('<div class="wpforms-notice wpforms-info"></div>')},_getActionsTemplate:function(){return s('<div class="wpforms-notice-actions"></div>')},_getActionTemplate:function(){return s('<a class="wpforms-notice-action"></a>')},display:function(e,t){var i="non-dismissible",t=(t&&(i=""),this._getNotificationTemplate().addClass(i).html(e));if(this._actions.length){var o,n=this._getActionsTemplate();for(o in this._actions)n.append(this._getActionTemplate().attr("href","#"+encodeURIComponent(this._actions[o].key)).text(this._actions[o].label));t.append(n)}s(".wpforms-field-container",this.$_form).before(t);i=this.$_form;r.alreadyNotified||(s("html, body").animate({scrollTop:i.offset().top-100},750),r.alreadyNotified=!0)},hide:function(){s(".wpforms-notice",this.$_form).not(".non-dismissible").remove()},hideAll:function(){s(".wpforms-notice",this.$_form).remove()}},init:function(){r.populateForms(),e.addEventListener("online",r.connectionEvent),e.addEventListener("offline",r.connectionEvent),s(i).on("wpformsReady",r.checkConnectivityLoop),s(i).on("wpformsReady",r.checkOfflineRecords),s(i).on("wpformsReady",r.saveFormDefaults),r.bindUIActions()},populateForms:function(){s.each(wpforms_offline_forms.offline_form_ids,function(e,t){r.forms.push(s("#wpforms-"+t))})},checkConnectivityLoop:function(){var e=parseInt(wpforms_offline_forms.check_connection_interval,10);r._isNaturalNumber(e)&&setInterval(function(){r.processConnectivityAjaxCheck(null)},1e3*e)},processConnectivityAjaxCheck:function(i){var e=parseInt(wpforms_offline_forms.check_connection_timeout,10);r._isNaturalNumber(e)&&s.ajax({method:"HEAD",url:wpforms_offline_forms.check_connection_url,cache:!1,timeout:1e3*e,complete:function(e,t){0!==e.status&&"timeout"!==t?(r.isOffline=!1,r.notificationOfflineHide()):(r.isOffline=!0,r.notificationOfflineDisplay()),"function"==typeof i&&i()}})},checkOfflineRecords:function(){s.each(r.forms,function(e,t){var i=r.storage.getAll(t.find("form").data("formid")),t=r.notifications.setForm(t);t.hideAll(),i.length&&(1===i.length?(r.isOffline||t.setActions({offline_restore:wpforms_offline_forms.text_restore_btn,offline_clear:wpforms_offline_forms.text_clear_btn}),t.display(wpforms_offline_forms.text_restore_single)):(r.isOffline||t.setActions({offline_restore:wpforms_offline_forms.text_restore_btn,offline_clear:wpforms_offline_forms.text_clear_all_btn}),t.display(wpforms_offline_forms.text_restore_plural)))})},saveFormDefaults:function(){s.each(wpforms_offline_forms.offline_form_ids,function(e,t){r.formsData[t]=s("#wpforms-"+t).find("form").serializeArray()})},processRestoreFormDefault:function(e){var t,i=s("#wpforms-"+e);void 0!==r.formsData[e]&&i.length&&(i.find("form").deserialize(r.formsData[e],{change:r.deserializeChangeCallback}),i.find(".wpforms-page-indicator").length&&(i.find('.wpforms-page-prev[data-page="2"]').length?(i.find(".wpforms-page").hide(),i.find('.wpforms-page-prev[data-page="2"]').trigger("click")):((t=s('<button class="wpforms-page-button wpforms-page-prev"></button>')).css("visibility","hidden").data("action","prev").data("page","2").data("formid",e),i.find(".wpforms-page").hide(),i.find(".wpforms-field-pagebreak").first().append(t),t.trigger("click"),t.remove())),0<(e=i.find(".wpforms-field-select-style-modern")).length&&e.each(function(){var e=s(this).find(".choicesjs-select"),t=e.data("choicesjs");t.destroy(),t.init(),s(this).hasClass("wpforms-conditional-trigger")&&e.trigger("change")}),this.checkOfflineRecords())},deserializeChangeCallback:function(e){var t=s(this),i=t.closest(".wpforms-field");i.hasClass("wpforms-field-phone")&&void 0!==s.fn.intlTelInput&&0<(i=i.find(".wpforms-smart-phone-field")).length&&i.intlTelInput("setNumber",e),t.trigger("change")},setModernDropdownFields:function(o,n){o.find(".choicesjs-select").each(function(){var t=s(this).attr("name"),i=s(this).data("choicesjs"),e=i.getValue(!0);e.length&&i.removeActiveItems(e),n.forEach(function(e){e.name===t&&i.setChoiceByValue(e.value)}),o.hasClass("wpforms-conditional-trigger")&&s(this).trigger("change")})},bindUIActions:function(){var n=this;s.each(r.forms,function(e,t){n.processFormSave(t.find("form"))}),s.each(r.forms,function(e,t){s(i).on("click","#"+t.attr("id")+' .wpforms-submit-container button[type="submit"]',function(e){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation();var t=s(this),e=t.data("alt-text"),i=s(this).closest("form"),o=t.text();t.prop("disabled")||(t.prop("disabled",!0),e&&t.text(e),n.processConnectivityAjaxCheck(function(){t.prop("disabled",!1),t.text(o),i.submit()}))})}),s(i).on("click",'.wpforms-notice-action[href="#offline_restore"]',function(e){e.preventDefault(),n.processRestore(s(this).closest("form"))}),s(i).on("click",'.wpforms-notice-action[href="#offline_clear"]',function(e){e.preventDefault(),n.processClearAll(s(this).closest("form"))})},processFormSave:function(i){i.submit(function(e){if(!r.isOffline)return!0;e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation();var e=parseInt(i.data("formid"),10),t=(s(".wpforms-field",i).each(function(e,t){(s(t).hasClass("wpforms-field-password")||s(t).hasClass("wpforms-field-credit-card")||s(t).hasClass("wpforms-field-signature"))&&s(t).find("input, select").attr("disabled","disabled")}),i.serializeArray());s(".wpforms-field",i).each(function(e,t){(s(t).hasClass("wpforms-field-password")||s(t).hasClass("wpforms-field-credit-card")||s(t).hasClass("wpforms-field-signature"))&&s(t).find("input, select").prop("disabled",!1)}),r.storage.set(e,t),r.processRestoreFormDefault(e)})},processRestore:function(e){var t=this.storage.get(e.data("formid")),e=(e.deserialize(t.entry,{change:r.deserializeChangeCallback}),e.find(".wpforms-field-select-style-modern"));0<e.length&&r.setModernDropdownFields(e,t.entry),this.checkOfflineRecords()},processClearAll:function(e){this.storage.clearAll(e.data("formid")),this.notifications.setForm(e).hideAll()},connectionEvent:function(){r.connectionUpdateStatus()},connectionUpdateStatus:function(){void 0!==navigator.onLine&&(r.isOffline=!navigator.onLine,s("body").toggleClass("wpforms-is-offline",r.isOffline),r.isOffline?r.notificationOfflineDisplay():r.notificationOfflineHide())},notificationOfflineDisplay:function(){s.each(r.forms,function(e,t){t=r.notifications.setForm(t);t.hideAll(),t.display(wpforms_offline_forms.text_offline,!0)})},notificationOfflineHide:function(e){this.notifications.setForm(e).hide(),this.checkOfflineRecords(),r.alreadyNotified=!1},_isNaturalNumber:function(e){return 0<=e&&Math.floor(e)===+e}};return r}(document,window,jQuery);WPFormsOfflineForms.init();