var PC=PC||{};PC.fe=PC.fe||{},PC.fe.views=PC.fe.views||{},PC.options=PC.options||{},((n,_)=>{PC.fe.views.add_to_cart_modal=Backbone.View.extend({tagName:"div",className:"adding-to-cart--modal",template:wp.template("mkl-pc-configurator-add-to-cart--modal"),initialize:function(e){this.render(),n(document.body).on("adding_to_cart",this.on_adding.bind(this)),n(document.body).on("added_to_cart",this.on_added.bind(this)),n(document.body).on("added_to_cart_with_redirection",this.on_added_with_redirection.bind(this)),n(document.body).on("not_added_to_cart_with_error",this.on_not_added_to_cart.bind(this))},events:{"click button.continue-shopping":"close"},render:function(){this.$el.empty().append(this.template()),PC.fe.inline?this.$el.appendTo(n("body")):this.$el.appendTo(PC.fe.modal.$main_window)},close:function(){n(document.body).removeClass("show-add-to-cart-modal")},on_adding:function(){n(document.body).addClass("show-add-to-cart-modal"),this.show_message("adding")},on_added:function(e,t,i,s,a){this.show_message("added",a.messages)},on_added_with_redirection:function(e,t){this.show_message("added-redirect",t.messages)},on_not_added_to_cart:function(e,t){this.show_message("not-added",t.messages)},show_message:function(e,t){this.$el.empty().append(wp.template("mkl-pc-atc-"+e)({messages:t||""}))}}),PC.fe.views.angles=Backbone.View.extend({tagName:"div",className:"angles-select",template:wp.template("mkl-pc-configurator-angles-list"),initialize:function(e){return this.col=PC.fe.angles,this},events:{"click .change-angle--trigger":"on_selector_click"},render:function(){return this.$el.append(this.template()),this.$list=this.$el.find("ul"),this.$el.attr("aria-hidden","true"),this.add_all(),this.$el},add_all:function(){this.col.each(this.add_one,this),this.col.first().set("active",!0)},add_one:function(e){e=new PC.fe.views.angle({model:e});this.$list.append(e.$el)},on_selector_click:function(e){e.preventDefault()}}),PC.fe.views.angle=Backbone.View.extend({tagName:"li",className:"angle",template:wp.template("mkl-pc-configurator-angle-item"),initialize:function(e){return this.options=e||{},this.render(),this.listenTo(this.model,"change active",this.activate),wp.hooks.doAction("PC.fe.angle_view.init",this),this},events:{"click a":"change_angle"},render:function(){return this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name")),this.$el.append(this.template(wp.hooks.applyFilters("PC.fe.configurator.angle_data",this.model.attributes))),this.$el},change_angle:function(e){e.preventDefault(),this.model.collection.each(function(e){e.set("active",!1)}),this.model.set("active",!0)},activate:function(){this.model.get("active")?(this.$el.addClass("active"),this.$("a").attr("aria-pressed","true")):(this.$("a").attr("aria-pressed","false"),this.$el.removeClass("active")),this.model.get("class_name")&&PC.fe.modal.$el.toggleClass(this.model.get("class_name"),this.model.get("active"))}}),PC.fe.views.choice=Backbone.View.extend({tagName:"li",className:"choice",template:wp.template("mkl-pc-configurator-choice-item"),update_tippy_on_price_update:!1,initialize:function(e){this.options=e||{},this.listenTo(this.model,"change:active",this.activate),wp.hooks.doAction("PC.fe.choice.init",this),wp.hooks.addAction("PC.fe.extra_price.after.get_tax_rates","mkl/pc",this.on_price_update.bind(this)),wp.hooks.addAction("PC.fe.extra_price.after.update_price","mkl/pc",this.on_price_update.bind(this))},events:{"mousedown > .choice-item":"set_choice","keydown > .choice-item":"set_choice","mouseenter > .choice-item":"preload_image","focus > .choice-item":"preload_image","click > button.choice-group-label":"toggle_group","keydown > button.choice-group-label":"toggle_group_with_keyboard"},render:function(){wp.hooks.doAction("PC.fe.configurator.choice-item.before.render",this);var e=_.extend({thumbnail:this.model.get_image("thumbnail"),disable_selection:!this.model.get("available")&&!PC.fe.config.enable_selection_when_outofstock},wp.hooks.applyFilters("PC.fe.configurator.choice_data",this.model.attributes)),t=(this.$el.html(this.template(wp.hooks.applyFilters("PC.fe.configurator.template_choice_data",e))),this.$("> .choice-item").attr("aria-disabled",e.disable_selection?"true":"false"),wp.hooks.doAction("PC.fe.configurator.choice-item.render.after-template",this),this.$(".out-of-stock").length&&this.$el.addClass("out-of-stock"),"colors"==this.model.collection.layer.get("display_mode")&&this.$(".out-of-stock").length&&n("#tmpl-mkl-pc-configurator-color-out-of-stock").length&&this.$(".mkl-pc-thumbnail").append(n("#tmpl-mkl-pc-configurator-color-out-of-stock").html()),this.$("> .choice-item")),i=this.get_description(),s=this.get_description(!1);return this.set_choice_sr_text(s),window.tippy&&(s=wp.hooks.applyFilters("PC.fe.tooltip.options",{interactive:!1,content:i,allowHTML:!0,placement:"top",zIndex:100001,appendTo:"parent",trigger:"mouseenter focus",onCreate:function(e){e&&e.popper&&e.popper.setAttribute("aria-hidden","true")}},this),(s=wp.hooks.applyFilters("PC.fe.choice.tooltip.options",s,this)).content)&&s.content.length&&t.length&&tippy(t[0],s),this.model.get("is_group")&&this.$el.addClass("is-group"),this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name")),(e.thumbnail||this.model.get("color"))&&this.$el.addClass("has-thumbnail"),this.activate(),this.$el.data("view",this),wp.hooks.doAction("PC.fe.configurator.choice-item.render",this),this.$el},on_price_update:function(){var e;this.update_tippy_on_price_update&&!this.model.get("is_group")&&(e=this.$(".choice-item")).length&&e[0]&&e[0]._tippy&&e[0]._tippy.setContent(this.get_description())},get_description:function(e=!0){var t=[];return wp.hooks.applyFilters("PC.fe.tooltip.add_all_text","colors"==this.model.collection.layer.get("display_mode")&&!this.model.get("is_group"))?(this.update_tippy_on_price_update=!0,this.$(".choice-text").length?t.push(e?this.$(".choice-text").html():this.$(".choice-text").text()):this.$(".choice-name").length&&t.push(e?this.$(".choice-name").html():this.$(".choice-name").text()),this.$(".choice-price").length&&(t.push(e?this.$(".choice-price").html():this.$(".choice-price").text()),this.$(".choice-price").hide()),this.$(".description").length&&(t.push(e?this.$(".description").html():this.$(".description").text()),this.$(".description").hide()),this.$(".out-of-stock").length&&t.push(e?this.$(".out-of-stock")[0].outerHTML:this.$(".out-of-stock")[0].outerText)):PC.fe.config.choice_description_no_tooltip||t.push(e?this.$(".description").html():this.$(".description").text()),t.join(e?" ":", ")},set_choice_sr_text:function(e){var t,i=this.$("> .choice-item");i.length&&(t="",t=e?e.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").trim():t)&&i.attr("aria-label",t)},set_choice:function(e){if(!this.model.get("is_group")){if("keydown"==e.type){if(37<=e.keyCode&&e.keyCode<=40)return e.preventDefault(),void this.navigate_choices(e.keyCode);if(13!=e.keyCode&&32!=e.keyCode)return}var t,i;"mousedown"==e.type&&e.button||n(e.currentTarget).prop("disabled")||(this.model.collection.selectChoice(this.model.id),i=(e=PC.fe.layers.get(this.model.get("layerId"))).get("auto_close"),t=PC.fe.config.close_choices_when_selecting_choice&&(n("body").is(".is-mobile")||PC.utils._isMobile())||PC.fe.config.close_choices_when_selecting_choice_desktop||"dropdown"==e.get("display_mode")||"full-screen"==e.get("display_mode")&&"simple"==e.get("type")||"yes"===i,"no"===i&&(t=!1),e&&(wp.hooks.applyFilters("PC.fe.close_choices_after_selection",t,this.model)?e.set("active",!1):e.get("active")||((i=e.collection.filter(function(e){return e.get("active")&&!1!==e.get("cshow")&&"group"!=e.get("type")})).length&&i[0].set("active",!1),e.set("active",!0))),PC.fe.last_clicked=this,wp.hooks.doAction("PC.fe.choice.set_choice",this.model,this))}},preload_image:function(){this.model.trigger("preload-image")},activate:function(){this.set_choice_a11y_attrs(),!0===this.model.get("active")?(this.$el.addClass("active"),this.$("> button.choice-item").attr("aria-checked","true"),wp.hooks.doAction("PC.fe.choice.activate",this)):(this.$el.removeClass("active"),this.$("> button.choice-item").attr("aria-checked","false"),wp.hooks.doAction("PC.fe.choice.deactivate",this)),this.options.parent&&this.options.parent.update_roving_tabindex&&this.options.parent.update_roving_tabindex()},toggle_group:function(){this.$el.toggleClass("show-group-content"),this.$("> .choice-group-label").attr("aria-expanded",this.$el.is(".show-group-content")?"true":"false")},toggle_group_with_keyboard:function(e){13!==e.keyCode&&32!==e.keyCode||(e.preventDefault(),this.toggle_group())},get_layer_type:function(){return this.model.collection&&this.model.collection.layer&&this.model.collection.layer.get("type")||"simple"},set_choice_a11y_attrs:function(){var e,t=this.$("> button.choice-item");t.length&&(e="multiple"===this.get_layer_type()?"checkbox":"radio",t.attr("role",e))},navigate_choices:function(e){var t,i;this.options.parent&&this.options.parent.$list&&(i=PC.fe.a11y.filter_focusable(this.options.parent.$list.find(".choice-item"))).length&&-1!==(t=i.index(this.$("> .choice-item")))&&(t=(t+(37===e||38===e?-1:1)+i.length)%i.length,(e=i.eq(t)).length)&&(PC.fe.a11y.focus_without_scroll(e),"multiple"!==this.get_layer_type())&&(i=e.closest("li.choice").data("view"))&&i.model&&i.model.collection.selectChoice(i.model.id,!0)}}),PC.fe.views.choiceGroup=PC.fe.views.choice.extend({template:wp.template("mkl-pc-configurator-choice-group")}),PC.fe.views.choices=Backbone.View.extend({tagName:"ul",className:"layer_choices",template:wp.template("mkl-pc-configurator-choices"),initialize:function(e){return this.options=e||{},this.render()},events:{"click .choices-close":"close_choices"},render:function(){var e;return this.$el.append(this.template(wp.hooks.applyFilters("PC.fe.configurator.layer_data",this.model.attributes))),this.$el.addClass(this.model.get("type")),this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name")),this.model.get("parent")&&this.$el.addClass("is-child-layer"),"compact-list"!=this.model.get("display_mode")&&this.model.get("columns")&&this.$el.addClass("columns-"+this.model.get("columns")),this.model.get("color_swatch_size")&&this.$el.addClass("swatches-size--"+this.model.get("color_swatch_size")),this.$list=this.$el.find(".choices-list ul"),this.set_a11y_attributes(),this.add_all(this.options.content),!this.options.content||this.model.get("default_selection")&&"select_first"!=this.model.get("default_selection")||this.options.content.findWhere({active:!0})||!this.options.content.findWhere({available:!0})||(e=this.options.content.findWhere({available:!0}))&&e.set("active",!0),this.update_roving_tabindex(),this.$el},update_roving_tabindex:function(){var e,t;this.$list&&this.$list.length&&"simple"===(this.model.get("type")||"simple")&&(e=PC.fe.a11y.filter_focusable(this.$list.find(".choice-item"))).length&&(e.attr("tabindex","-1"),((t=e.filter('[aria-checked="true"]').first()).length?t:e.first()).attr("tabindex","0"))},set_a11y_attributes:function(){var e,t,i;this.$list&&this.$list.length&&(e=this.model.get("name")||"",t=this.model.get("type")||"simple",i="mkl-pc-choice-list-"+this.model.id,this.$list.attr("id",i),"simple"===t?this.$list.attr({role:"radiogroup","aria-label":e}):"multiple"===t&&this.$list.attr({role:"group","aria-label":e}))},add_all:function(e){"group"!=this.model.get("type")&&e.each(this.add_one,this)},add_one:function(e){var t;wp.hooks.applyFilters("PC.fe.choices.add_one",!0,e)&&(t=new(e.get("is_group")?PC.fe.views.choiceGroup:PC.fe.views.choice)({model:e,multiple:!1,parent:this}),(e.get("parent")&&this.$("ul[data-item-id="+e.get("parent")+"]").length?this.$("ul[data-item-id="+e.get("parent")+"]"):this.$list).append(t.render()),wp.hooks.doAction("PC.fe.choices.add_one.after",this,t))},close_choices:function(e){e.preventDefault(),this.model.set("active",!1);e=n("#config-layer-"+this.model.id);e.length&&PC.fe.a11y.focus_without_scroll(e)}}),PC.fe.views.configurator=Backbone.View.extend({tagName:"div",className:"mkl_pc",template:wp.template("mkl-pc-configurator"),initialize:function(e){this.options=e,this.product_id=e.product_id,this.parent_id=e.parent_id,wp.hooks.doAction("PC.fe.init.modal",this),this.parent_id&&"async"!==PC.fe.config.data_mode?this.options=PC.productData["prod_"+this.parent_id].product_info:this.options=PC.productData["prod_"+this.product_id].product_info;try{this.render()}catch(e){console.log("There was an error when rendering the configurator: ",e)}return this},events:{"content-is-loaded":"start","click .close-mkl-pc":"close"},focusable_selector:'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])',render:function(){var e;return PC.fe.a11y.modal_focusable_selector&&(this.focusable_selector=PC.fe.a11y.modal_focusable_selector),1==PC.fe.inline&&0<n(PC.fe.inlineTarget).length?n(PC.fe.inlineTarget).empty().append(this.$el):1==PC.fe.config.inline&&0<n(PC.fe.config.inlineTarget).length?(n(PC.fe.config.inlineTarget).append(this.$el),PC.fe.inline=!0):(n("body").append(this.$el),PC.fe.inline=!1),PC.fe.config.choice_description_no_tooltip&&this.$el.addClass("no-tooltip"),this.$el.append(this.template({bg_image:wp.hooks.applyFilters("PC.fe.config.bg_image",PC.fe.config.bg_image,this)})),this.$main_window=this.$el.find(".mkl_pc_container"),PC.fe.inline?(e="undefined"!=typeof PC_config&&PC_config.lang&&PC_config.lang.inline_region_aria_label?PC_config.lang.inline_region_aria_label:"Product configurator",this.$main_window.attr({role:"region","aria-label":e}),this.$main_window.removeAttr("aria-modal aria-labelledby")):(this.$main_window.attr({role:"dialog","aria-modal":"true"}),this.$main_window.removeAttr("aria-label")),this.$main_window.find(".mkl-pc-live-region").length||this.$main_window.append('<div class="mkl-pc-live-region screen-reader-text" aria-live="polite" aria-atomic="true"></div>'),this.$el},open:function(){this.$el.show(),setTimeout(_.bind(this.$el.addClass,this.$el,"opened"),10),this.previously_focused_el=document.activeElement,this.trigger_el=PC.fe.trigger_el,wp.hooks.applyFilters("PC.fe.setup_keyboard_navigation",!0)&&(n(document).on("keydown.mkl-pc-modal",this.handle_configurator_keydown.bind(this)),PC.fe.inline||(this.apply_initial_focus(),setTimeout(this.apply_initial_focus.bind(this),500))),wp.hooks.doAction("PC.fe.open",this)},close:function(){PC.fe.opened=!1,this.$el.removeClass("opened"),n("body").removeClass("configurator_is_opened"),PC.fe.config.close_configurator_on_add_to_cart||n("input[name=pc_configurator_data]").val(""),n(document).off("keydown.mkl-pc-modal"),wp.hooks.doAction("PC.fe.close",this),setTimeout(_.bind(this.$el.hide,this.$el),500),PC.fe.inline||this.restore_focus()},start:function(e,t){this.toolbar&&this.toolbar.remove(),this.viewer&&this.viewer.remove(),this.footer&&this.footer.remove();var i=wp.hooks.applyFilters("PC.fe.viewer.main_view",PC.fe.views.viewer);this.viewer=new i({parent:this}),this.$main_window.append(this.viewer.render()),PC.fe.angles.length&&PC.fe.layers.length&&PC.fe.contents.content.length?("no-content"==t?(this.toolbar=new PC.fe.views.empty_viewer,this.viewer.$el.append(this.toolbar.render())):(this.toolbar=new PC.fe.views.toolbar({parent:this}),this.footer=new PC.fe.views.footer({parent:this}),this.$main_window.append(this.toolbar.render()),this.$main_window.append(this.footer.render())),this.refresh_main_window_accessibility(),this.viewer.$el.find("img"),n(PC.fe).trigger("start",this),wp.hooks.doAction("PC.fe.start",this),this.open()):(i=n('<div class="error configurator-error" />').text("The product configuration seems incomplete. Please make sure Layers, angles and content are set."),PC.fe.config.inline?n(PC.fe.trigger_el).append(i):(n(PC.fe.trigger_el).after(i),this.close(),PC.fe.active_product=!1))},resetConfig:function(){PC.fe.contents.content.resetConfig(),PC.fe.initial_preset&&PC.fe.setConfig(PC.fe.initial_preset),1<PC.fe.angles.length&&(PC.fe.angles.each(function(e){e.set("active",!1)}),PC.fe.angles.first().set("active",!0)),wp.hooks.doAction("PC.fe.reset_configurator")},refresh_main_window_accessibility:function(){var e;this.$main_window&&this.$main_window.length&&(e=this.$el.find(".mkl_pc_toolbar header .product-name, .product-name").first()).length&&(e.attr("id")||e.attr("id","mkl-pc-dialog-title-"+this.product_id),this.$main_window.attr("aria-labelledby",e.attr("id")),(e=this.$el.find(".mkl_pc_toolbar #mkl-pc-dialog-instructions-"+this.product_id).first()).length?this.$main_window.attr("aria-describedby",e.attr("id")):this.$main_window.removeAttr("aria-describedby"),PC.fe.inline||this.$main_window.removeAttr("aria-label"))},restore_focus:function(){this.trigger_el&&n(this.trigger_el).length?PC.fe.a11y.focus_without_scroll(n(this.trigger_el)):this.previously_focused_el&&document.contains(this.previously_focused_el)&&PC.fe.a11y.focus_without_scroll(n(this.previously_focused_el))},get_initial_focus_target:function(){var e=this.$main_window&&this.$main_window.length?this.$main_window:this.$el;if(!e||!e.length)return n();var t=e.find(".mkl_pc_toolbar > header").first();if(t.length&&t.is(":visible"))return t;t=e.find(".layers .layers-list-item:visible:not(.hide_in_configurator)").first();if(t.length){var i=t.find("> button.layer-item:visible:not(:disabled)").first();if(i.length&&PC.fe.a11y.is_focusable_enabled(i))return i;i=t.attr("data-layer");if(i){var i=e.find("#mkl-pc-layer-choices-"+i),s=PC.fe.a11y.filter_focusable(i.find(".choice-item-input")).first();if(s.length)return s;s=PC.fe.a11y.filter_focusable(i.find(".choice-item")).first();if(s.length)return s}i=t.find("button.layer-item:visible:not(:disabled)").first();if(i.length&&PC.fe.a11y.is_focusable_enabled(i))return i}var s=e.find(".layers .layers-list-item:visible:not(.hide_in_configurator) > button.layer-item:visible:not(:disabled)").first();return s.length&&PC.fe.a11y.is_focusable_enabled(s)?s:(t=PC.fe.a11y.filter_focusable(e.find(".layer_choices:visible .choice-item-input")).first()).length?t:(i=PC.fe.a11y.filter_focusable(e.find(".layer_choices:visible .choice-item")).first()).length?i:(s=PC.fe.a11y.filter_focusable(e.find(this.focusable_selector)).first()).length?s:this.$main_window&&this.$main_window.length?this.$main_window:n()},apply_initial_focus:function(){var e;PC.fe.inline||(e=this.get_initial_focus_target())&&e.length&&PC.fe.a11y.focus_without_scroll(e)},filter_modal_focusable:function(e){return PC.fe.a11y.filter_focusable(e)},get_drawer_choices_tab_cycle:function(e){var t=this.filter_modal_focusable(e.find(".choices-list").first().find(this.focusable_selector)),e=e.find(".choices-close").filter(":visible"),i=[];return t.each(function(){i.push(this)}),e.length&&i.push(e[0]),i},handle_configurator_keydown:function(e){if(this.$el.is(":visible")){if("Escape"===e.key){if(n("body").hasClass("syd-modal-opened")||n("body").hasClass("syd-share-modal-opened"))return;if(n("body").hasClass("mkl-pc-showing-advanced-description")||n(".mkl-pc-advanced-description--container").length)return;var t=this.$main_window.find(".layers .layers-list-item.active:visible:not(.hide_in_configurator)").first();if(t.length){var i,t=t.data("view");if(t&&t.choices_location&&"in"!==t.choices_location)return(i=t.$("> button.layer-item:visible:not(:disabled)").first()).length||(i=this.$main_window),t.show_choices(null),e.preventDefault(),void setTimeout(function(){PC.fe.a11y.focus_without_scroll(i)},0)}return PC.fe.inline?void 0:(e.preventDefault(),void this.close())}if("Tab"===e.key){var t=document.activeElement,s=n(t).closest(".layer_choices.active");if(s.length){var a=(s.attr("id")||"").match(/^mkl-pc-layer-choices-(.+)$/),o=null;if((o=a?this.$main_window.find('.layers .layers-list-item[data-layer="'+a[1]+'"]').first().data("view"):o)&&o.choices_location&&"in"!==o.choices_location){var a=this.get_drawer_choices_tab_cycle(s);if(a.length){var o=a.indexOf(t);if(-1!==o)return e.preventDefault(),s=e.shiftKey?0===o?a[a.length-1]:a[o-1]:o===a.length-1?a[0]:a[o+1],void PC.fe.a11y.focus_without_scroll(n(s))}}}PC.fe.inline||(t=PC.fe.a11y.filter_focusable(this.$main_window.find(this.focusable_selector))).length&&(a=t[0],o=t[t.length-1],e.shiftKey&&document.activeElement===a?(e.preventDefault(),PC.fe.a11y.focus_without_scroll(n(o))):e.shiftKey||document.activeElement!==o||(e.preventDefault(),PC.fe.a11y.focus_without_scroll(n(a))))}}}}),PC.fe.views.empty_viewer=Backbone.View.extend({tagName:"div",className:"nothing-selected",template:wp.template("mkl-pc-configurator-empty-viewer"),initialize:function(e){return this},render:function(){return this.$el.append(this.template()),this.$el}}),PC.fe.views.footer=Backbone.View.extend({tagName:"footer",className:"mkl_pc_footer",template:wp.template("mkl-pc-configurator-footer"),initialize:function(e){return this.parent=e.parent||PC.fe,this},events:{"click .reset-configuration":"reset_configurator"},render:function(){return this.$el.append(this.template({name:PC.fe.currentProductData.product_info.title,show_form:parseInt(PC.fe.config.show_form)||!n("form.cart").length||PC.fe.currentProductData.product_info.force_form,is_in_stock:parseInt(PC.fe.currentProductData.product_info.is_in_stock),product_id:parseInt(PC.fe.active_product),show_qty:parseInt(PC.fe.currentProductData.product_info.show_qty),formated_price:this.get_price(),formated_regular_price:!(!PC.fe.currentProductData.product_info.is_on_sale||!PC.fe.currentProductData.product_info.regular_price)&&PC.utils.formatMoney(parseFloat(PC.fe.currentProductData.product_info.regular_price))})),this.form=new PC.fe.views.form({el:this.$(".form")}),this.$el},reset_configurator:function(e){PC.fe.modal.resetConfig(),PC.fe.save_data.reset_errors()},get_price:function(){return!!PC.fe.currentProductData.product_info.price&&PC.utils.formatMoney(parseFloat(PC.fe.currentProductData.product_info.price))}}),PC.fe.views.form=Backbone.View.extend({initialize:function(e){return this.parent=e.parent||PC.fe,n(document.body).on("added_to_cart",this.on_added_to_cart.bind(this)),this.render(),this},events:{"click .configurator-add-to-cart":"add_to_cart","click .add-to-quote":"add_to_quote","change input.qty":"qty_change"},render:function(){PC.fe.config.cart_item_key?(PC.fe.config.cart_item_key,this.$(".edit-cart-item").length&&this.$el.addClass("edit-cart-item-is-displayed")):this.$(".edit-cart-item").hide(),("variable"===PC.fe.product_type||"variation"===PC.fe.product_type)&&(e=n("[name=variation_id][value="+PC.fe.active_product+"]")).length||(e=n("[name=add-to-cart][value="+PC.fe.active_product+"]"));var e,t=this.$("input[name=pc_configurator_data]");if(t.length||e.length)return this.$input=(t.length?t:e.closest("form.cart").find("input[name=pc_configurator_data]")).first(),this.$cart=this.$input.closest("form.cart"),this.$cart.find("[name=add-to-cart]").length||this.$(".configurator-add-to-cart").remove(),this.$cart.find(".afrfqbt_single_page").length||n(".add-request-quote-button").length||this.$(".add-to-quote").remove(),this.$cart.find(".afrfqbt_single_page").length||this.$(".add-to-quote").html(this.$cart.find(".afrfqbt_single_page").html()),n(".add-request-quote-button").length&&PC_config.config.ywraq_hide_add_to_cart&&this.$(".configurator-add-to-cart").remove(),this.$("input.qty").length&&(this.$("input.qty")!=this.$cart.find(".qty")&&this.$("input.qty").val(this.$cart.find(".qty").val()),void 0!==PC.fe.currentProductData.product_info.qty_min_value&&this.$("input.qty").prop("min",PC.fe.currentProductData.product_info.qty_min_value),void 0!==PC.fe.currentProductData.product_info.qty_max_value)&&this.$("input.qty").prop("max",PC.fe.currentProductData.product_info.qty_max_value),wp.hooks.doAction("PC.fe.render_form",this),this.$el},validate_configuration:async function(){var e=await PC.fe.save_data.getSaveDataAsync(),t=wp.hooks.applyFilters("PC.fe.validate_configuration",PC.fe.errors);return t.length?(PC.fe.show_validation_errors&&PC.fe.show_validation_errors(t),!1):(PC.fe.clear_validation_errors&&PC.fe.clear_validation_errors(),e)},populate_form_input:function(e,t){PC.fe.config.cart_item_key&&n(t.currentTarget).is(".edit-cart-item")&&(t=this.$cart.find("input[name=pc_cart_item_key]"))&&t.val(PC.fe.config.cart_item_key),n("input[name=pc_configurator_data]").val(e)},add_to_cart:async function(e){var t,i,s=await this.validate_configuration();if(s)if(this.populate_form_input(s,e),PC.fe.debug_configurator_data&&console.log("debug_configurator_data",s),wp.hooks.doAction("PC.fe.add_to_cart.before",this),PC.fe.debug_configurator_data)console.log("debug_configurator_data after",s);else{if(wp.hooks.applyFilters("PC.fe.trigger_add_to_cart",!0,this.$cart)){if(n(e.currentTarget).addClass("adding-to-cart"),this.$cart?.find("button[name=add-to-cart]").length?t=this.$cart.find("button[name=add-to-cart]"):this.$cart?.find(".single_add_to_cart_button").length&&(t=this.$cart.find(".single_add_to_cart_button")),PC_config.config.enable_configurator_ajax_add_to_cart)return PC.fe.add_to_cart_modal||(PC.fe.add_to_cart_modal=new PC.fe.views.add_to_cart_modal),(i=new FormData(this.$cart[0])).delete("add-to-cart"),s={product_id:PC.fe.active_product,mkl_pc_ajax:1},t&&(n.each(t.data(),function(e,t){s[e]=t}),n.each(t[0].dataset,function(e,t){s[e]=t})),n(document.body).trigger("adding_to_cart",[t,s]),n.each(s,function(e,t){i.has(e)||i.append(e,t)}),wp.hooks.doAction("PC.fe.add_to_cart.append_ajax_request_body",i,this),void fetch(wc_add_to_cart_params.ajax_url+"?action=pc_add_to_cart",{method:"POST",body:i}).then(e=>e.json()).then(e=>{if(e.error)return e.product_url?void(window.location=e.product_url):void n(document.body).trigger("not_added_to_cart_with_error",[e]);"yes"===wp.hooks.applyFilters("PC.fe.cart_redirect_after_add",wc_add_to_cart_params.cart_redirect_after_add)?(n(document.body).trigger("added_to_cart_with_redirection",[e]),window.location=wp.hooks.applyFilters("PC.fe.cart_redirect_url",wc_add_to_cart_params.cart_url)):(n(document.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t,e]),PC.fe.config.close_configurator_on_add_to_cart&&!PC.fe.inline&&PC.fe.modal.close())}).catch(e=>{console.error("Configurator: Error in form submission"),console.error(e)}).finally(()=>{wp.hooks.doAction("PC.fe.add_to_cart.ajax_request_finally",this)});n(document.body).one("adding_to_cart",this.on_adding_to_cart),t?(t.is(".ajax_add_to_cart")&&(t.data("pc_configurator_data",s),t.is(".edit-cart-item"))&&t.data("pc_cart_item_key",PC.fe.config.cart_item_key),t.trigger("click")):this.$cart.trigger("submit")}PC.fe.config.close_configurator_on_add_to_cart&&!PC.fe.inline&&PC.fe.modal.close()}},reset_after_ajax_add_to_cart:function(){var e;wp.hooks.applyFilters("PC.fe.reset.on.ajax_add_to_cart",PC.fe.config.reset_configurator_on_ajax_add_to_cart,this)&&(PC.fe.modal&&(PC.fe.modal.resetConfig(),PC.fe.save_data.reset_errors()),n("input[name=pc_configurator_data]").val(""),e=PC.fe.currentProductData?.product_info?.qty_min_value||1,n("form.cart input[name=quantity], .mkl_pc .form input[name=quantity]").val(e),PC.fe.currentProductData?.product_info&&(PC.fe.currentProductData.product_info.qty=e),wp.hooks.doAction("PC.fe.qty_changed",e),wp.hooks.doAction("PC.fe.reset_after_ajax_add_to_cart",this))},on_adding_to_cart:function(e,t,i){PC.fe.modal.$el.addClass("adding-to-cart"),"object"!=typeof i||i.pc_configurator_data||(i.pc_configurator_data=n("input[name=pc_configurator_data]").val()),"string"==typeof i&&-1==i.search("pc_configurator_data")&&n("input[name=pc_configurator_data]").val()},on_added_to_cart:function(e,t,i,s){PC.fe.modal.$el.removeClass("adding-to-cart"),this.reset_after_ajax_add_to_cart()},add_to_quote:async function(e){var t=await this.validate_configuration();t&&(this.populate_form_input(t,e),wp.hooks.doAction("PC.fe.add_to_quote.before",this),PC.fe.debug_configurator_data?console.log("debug_configurator_data",t):(n(".afrfqbt_single_page").length&&(n(".afrfqbt_single_page").trigger("click"),PC.fe.config.close_configurator_on_add_to_cart)&&!PC.fe.inline&&PC.fe.modal.close(),n(e.currentTarget).is(".yith-raq")&&(n(".add-request-quote-button").trigger("click"),PC.fe.inline||PC.fe.modal.close(),PC_config.config.ywraq_hide_add_to_cart)&&"button"===PC.fe.trigger_el[0].type&&n(PC.fe.trigger_el[0]).remove()))},qty_change:function(e){PC.fe.currentProductData.product_info.qty=n(e.target).val(),"undefined"==typeof pc_get_extra_price&&PC.fe.currentProductData.product_info?.price_tiers&&(n(".pc-total-price").html(PC.utils.formatMoney(PC.fe.get_product_price())),PC.fe.currentProductData.product_info.regular_price)&&PC.fe.currentProductData.product_info.is_on_sale&&n(".pc-total--regular-price").length&&n(".pc-total--regular-price").html(PC.utils.formatMoney(parseFloat(PC.fe.currentProductData.product_info.regular_price))),wp.hooks.doAction("PC.fe.qty_changed",PC.fe.currentProductData.product_info.qty)}}),PC.fe.views.layers_list_item_selection=Backbone.View.extend({tagName:"span",className:"selected-choice",initialize:function(){this._last_announced_summary=null,this.choices=PC.fe.getLayerContent(this.model.id),!this.choices&&"group"!==this.model.get("type")||(this.listenTo(this.model,"change:cshow",this.render),this.listenTo(this.choices,"change:active change:cshow",this.render),"group"==this.model.get("type")&&PC.fe.layers&&(this.children_layers=PC.fe.layers.where({parent:this.model.id}),this.children_layers.length)&&_.each(this.children_layers,function(e){var t=PC.fe.getLayerContent(e.id);this.listenTo(t,"change:active change:cshow",this.render),this.listenTo(e,"change:cshow",this.render)}.bind(this)),this.render())},render:function(e){var s=[],t=(this.choices&&(t=this.choices.where({active:!0}),_.each(t,function(e){var t,i=e.get_name();e.get("parent")&&e.collection.get(e.get("parent"))&&(t=e.collection.get(e.get("parent"))).get("show_group_label_in_cart")&&(i=t.get_name()+" - "+i),this.should_display(e)&&s.push(wp.hooks.applyFilters("PC.fe.selected_choice.name",i,e))}.bind(this))),this.children_layers&&this.children_layers.length&&_.each(this.children_layers,function(e){var e=PC.fe.getLayerContent(e.id);e&&(e=e.where({active:!0}),_.each(e,function(e){var t,i=e.get_name();e.get("parent")&&e.collection.get(e.get("parent"))&&(t=e.collection.get(e.get("parent"))).get("show_group_label_in_cart")&&(i=t.get_name()+" - "+i),this.should_display(e)&&s.push(wp.hooks.applyFilters("PC.fe.selected_choice.name",i,e))}.bind(this)))}.bind(this)),s.join(", ")),i=PC_config.lang.selected_prefix||"Selected: %s",a=PC_config.lang.selected_none||"Selected: none",i=s.length?i.replace("%s",t):a;this.$el.attr("role","status").attr("aria-live","polite").attr("aria-atomic","true"),this.$el.html('<span aria-hidden="true">'+t+'</span><span class="screen-reader-text">'+i+"</span>"),wp.hooks.doAction("PC.fe.set.selected_choice",s,this)},should_display:function(e){return!(PC.hasOwnProperty("conditionalLogic")&&PC.conditionalLogic.item_is_hidden&&PC.conditionalLogic.item_is_hidden(e))}}),PC.fe.views.layers_list_item_selection_image=Backbone.View.extend({tagName:"i",className:"selected-choice-image",initialize:function(e){this.choices=PC.fe.getLayerContent(this.model.id),this.parent=e.parent,this.choices&&(this.listenTo(this.choices,"change:active",this.render),this.has_thumbnail=this.parent.$el.is(".has-thumbnail"),this.render())},render:function(e,t){var i=this.choices.where({active:!0}),s="";_.each(i,function(e){e=e.get_image("thumbnail");e&&(s+='<img src="'+e+'" alt="" aria-hidden="true">')}),this.has_thumbnail||this.parent.$el.toggleClass("has-thumbnail",!!s),this.$el.html(s)}}),PC.fe.views.layers_list_item=Backbone.View.extend({tagName:"li",className:"layers-list-item",template:wp.template("mkl-pc-configurator-layer-item"),initialize:function(e){this.options=e||{},this.layer_type=this.model.get("type"),this.listenTo(this.options.model,"change:active",this.activate),this.listenTo(this.options.model,"activate_layer",this.on_activate_layer),this.listenTo(this.options.model,"change:hide_in_configurator",this.hide_in_configurator),wp.hooks.doAction("PC.fe.layers_list_item.init",this)},events:{"click > button.layer-item":"on_click_layer"},render:function(){if(this.$el.attr("data-layer",this.model.id),this.$el.data("view",this),this.model.get("not_a_choice")&&this.model.get("custom_html")){var i=this.model.get("custom_html");this.$el.addClass("not-a-choice custom");let t;try{t=n(i)}catch(e){console.log("custom_html not formatted correctly, attempting to wrap it");try{t=n("<div>"+i+"</div>")}catch(e){console.log("custom_html not formatted correctly, wrapping did not work")}}t.length&&this.$el.append(t),this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name")),wp.hooks.doAction("PC.fe.layer.render",this),wp.hooks.doAction("PC.fe.html_layer.render",this)}else{var e,i=this.model.attributes,t=this.model.get("image"),i=(this.$el.append(this.template(wp.hooks.applyFilters("PC.fe.configurator.layer_data",i))),"config-layer-name-"+this.model.id);this.$(".layer-item .layer-name").first().attr("id",i),this.$el.attr("aria-describedby","config-layer-"+this.model.id),this.$("> button.layer-item").attr({"aria-labelledby":i,"aria-expanded":"false"}),PC.fe.config.show_active_choice_in_layer&&!this.model.get("is_step")&&(e=new PC.fe.views.layers_list_item_selection({model:this.options.model}),this.$(".layer-item .layer-name").after(e.$el),i="config-layer-selected-"+this.model.id,e.$el.attr("id",i),this.$("> button.layer-item").attr("aria-describedby",i)),this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name")),this.model.get("display_mode")&&this.$el.addClass("display-mode-"+this.model.get("display_mode")),this.layer_type&&this.$el.addClass("type-"+this.layer_type),this.model.get("is_step")&&this.$el.addClass("type-step"),t&&t.url&&this.$el.addClass("has-thumbnail"),PC.fe.config.show_active_choice_image_in_layer&&!this.model.get("is_step")&&(e=new PC.fe.views.layers_list_item_selection_image({model:this.options.model,parent:this}),this.$(".layer-item").prepend(e.$el)),this.hide_in_configurator(this.model,this.model.get("hide_in_configurator")),this.model.get("html_id")&&(this.el.id=this.model.get("html_id")),"dropdown"==this.model.get("display_mode")&&this.model.get("class_name")&&-1!==this.model.get("class_name").search("dropdown-move-label-outside")&&this.$(".layer-name").prependTo(this.$el),this.set_accessibility_context(),wp.hooks.doAction("PC.fe.layer.beforeRenderChoices",this),this.add_choices(),"in"===this.choices_location&&(this.$el.attr("aria-role","group"),this.$el.attr("aria-labelledby","config-layer-name-"+this.model.id)),wp.hooks.doAction("PC.fe.layer.render",this),this.choices&&this.choices.$el&&this.model.get("display_mode")&&this.choices.$el.addClass("display-mode-"+this.model.get("display_mode"))}return this.$el},set_accessibility_context:function(){var e,t,i=this.$("> button.layer-item");i.length&&(e=["config-layer-name-"+this.model.id],this.model.get("parent")&&(t="config-layer-"+this.model.get("parent"),this.$el.closest(".mkl_pc").find("#"+t).length)&&e.unshift(t),i.attr("aria-labelledby",e.join(" ")))},add_choices:function(){var e,t;this.layer_type&&"simple"!=this.layer_type&&"group"!=this.layer_type||(this.choices=new PC.fe.views.choices({content:PC.fe.getLayerContent(this.model.id),model:this.model})),this.choices?(e=PC.fe.config.where,this.model.get("parent")&&(t=this.model.collection.get(this.model.get("parent")))&&"group"===t.get("type")&&!t.get("is_step")&&(e="in"),this.model.get("is_step")&&(e="in"),(e=wp.hooks.applyFilters("PC.fe.choices.where",e,this))&&"out"!=e?"in"==e?this.$el.append(this.choices.$el):n(e).length&&this.choices.$el.appendTo(n(e)):this.options.parent.after(this.choices.$el),this.choices_location=e,wp.hooks.doAction("PC.fe.add.choices",this.choices.$el,this),t="mkl-pc-layer-choices-"+this.model.id,this.choices.$el.attr("id",t),this.$("> button.layer-item").attr("aria-controls",t)):console.log("Product Configurator: No choice view was rendered.")},on_click_layer(e){if(e){if(e.target.tagName&&"A"==e.target.tagName||n(e.target).closest("a").length)return;e.stopPropagation(),e.preventDefault()}this.show_choices(e)},on_activate_layer(e){this.show_choices(null,e)},show_choices:function(e,t){var i;1==this.model.get("active")?(wp.hooks.doAction("PC.fe.layer.hide",this),wp.hooks.applyFilters("PC.fe.layer.self_hide",!0,this)&&this.model.set("active",!1)):(!this.model.get("parent")||this.model.get("parent")&&this.model.collection.get(this.model.get("parent"))&&"group"!==this.model.collection.get(this.model.get("parent")).get("type")?this.model.collection.each(function(e){e.set("active",!1)}):(i=this.model.collection.get(this.model.get("parent")),(PC_config.config.auto_close_siblings_in_groups||i&&i.get("is_step"))&&_.each(this.model.collection.where({parent:this.model.get("parent")}),function(e){e.set("active",!1)}),_.each(this.model.collection.where({display_mode:"dropdown"}),function(e){e.set("active",!1)})),e&&"dropdown"===this.model.get("display_mode")&&"group"!==this.model.get("type")&&n(document).on("click.mkl-pc",this.dropdown_click_outside.bind(this)),this.model.set("active",!0),PC.fe.current_layer=this.model,wp.hooks.doAction("PC.fe.layer.show",this))},dropdown_click_outside:function(e){!n(e.target).closest(".display-mode-dropdown.active").length&&this.model.get("active")&&this.show_choices()},activate:function(){var e,t,i;this.model.get("active")?(this.$el.addClass("active"),this.choices&&(this.choices.$el.addClass("active"),!this.model.get("is_step"))&&PC.fe.keyboard_navigation&&(e=this.choices.$el)&&e.length&&(t=this,PC.fe.a11y.focus_after_panel_transition(e,function(){t.model.get("active")&&PC.fe.a11y.focus_first_in_scope(e)},{namespace:"mklPcFocus"})),this.$("> button.layer-item").attr("aria-expanded","true"),wp.hooks.doAction("PC.fe.layer.activate",this)):(i=document.activeElement,i=!!(this.choices&&this.choices.el&&i&&this.choices.el.contains(i)),this.$el.removeClass("active"),this.choices&&this.choices.$el.removeClass("active"),n(document).off("click.mkl-pc"),this.$("> button.layer-item").attr("aria-expanded","false"),i&&setTimeout(()=>{var e=this.$("> button.layer-item:visible:not(:disabled)").first();e.length?PC.fe.a11y.focus_without_scroll(e):PC.fe.modal&&PC.fe.modal.$main_window&&PC.fe.modal.$main_window.length&&PC.fe.a11y.focus_without_scroll(PC.fe.modal.$main_window)},0),wp.hooks.doAction("PC.fe.layer.deactivate",this))},hide_in_configurator:function(e,t){this.$el.toggleClass("hide_in_configurator",!!t)}}),PC.fe.views.layers_list=Backbone.View.extend({tagName:"ul",className:"layers",initialize:function(e){this.options=e||{},this.render(),this.listenTo(PC.fe.layers,"change active",this.activate)},events:{},render:function(){return this.options.parent.$selection.append(this.$el),PC_config.lang.layers_aria_label&&this.$el.attr("aria-label",PC_config.lang.layers_aria_label),this.add_all(PC.fe.layers),this.$el},add_all:function(e){this.$el.empty(),this.items=[],e.orderBy="order",e.sort(),PC_config.config.use_steps&&PC.fe.steps.setup_steps(),e.each(this.add_one,this),wp.hooks.doAction("PC.fe.layers_list.layers.added",this)},add_one:function(e){var t,i;"summary"==e.get("type")?t=new PC.fe.views.summary({model:e,parent:this.$el}):e.attributes.not_a_choice?e.get("custom_html")&&(t=new PC.fe.views.layers_list_item({model:e,parent:this.$el})):!PC.fe.getLayerContent(e.id).length&&"group"!=e.get("type")||(t=new PC.fe.views.layers_list_item({model:e,parent:this.$el})),t&&(((i=!!e.get("parent")&&e.collection.get(e.get("parent")))&&"group"==i.get("type")&&this.options.parent.$("ul[data-layer-id="+e.get("parent")+"]").length?this.options.parent.$("ul[data-layer-id="+e.get("parent")+"]"):this.$el).append(t.render()),this.items.push(t))},activate:function(e){0!=e.get("active")||e.collection.findWhere({active:!0})?(this.$el.addClass("opened"),wp.hooks.doAction("PC.fe.layers_list.open",this,e)):(this.$el.removeClass("opened"),wp.hooks.doAction("PC.fe.layers_list.close",this,e))}}),PC.fe.validation=PC.fe.validation||{},PC.fe.validation.errors=PC.fe.validation.errors||[],PC.fe.errors=PC.fe.validation.errors,PC.fe.save_data={choices:[],save:function(e){return!1!==e&&this.reset_errors(),this.choices=[],PC.fe.layers.each(this.parse_choices,this),this.choices=wp.hooks.applyFilters("PC.fe.save_data.choices",this.choices),JSON.stringify(this.choices)},getSaveDataAsync:async function(e){var t=wp.hooks.applyFilters("PC.fe.save_data.before_save.promises",[]);return await Promise.all(t),this.save(e)},get_choices:function(e){return this.save(e),this.choices},reset_errors:function(){var e=PC.fe.validation.errors,e=(e.length&&_.each(e,function(e){e.choice&&e.choice.get("has_error")&&e.choice.set("has_error",!1),e.layer&&e.layer.get("has_error")&&e.layer.set("has_error",!1)}),e.length=0,n(".mkl-pc-validation-summary").first());e.length&&e.empty().attr("hidden","hidden"),PC.fe.validation.detach_live_sync&&PC.fe.validation.detach_live_sync()},is_layer_valid:function(e){return this.reset_errors(),this.validate_layer(e),!PC.fe.validation.errors.length},validate_layer:function(e){var t;"group"==e.get("type")?(t=e.collection.where({parent:e.id}),_.each(t,this.validate_layer.bind(this))):this.parse_choices(e)},collect_errors_for_layer:function(e){if(!e||!e.get)return[];var t=PC.fe.validation.errors,i=[];PC.fe.validation.errors=i,PC.fe.errors=i;try{return this.validate_layer(e),i.slice()}finally{PC.fe.validation.errors=t,PC.fe.errors=t}},collect_errors_for_choice:function(e){return e&&e.get&&PC.fe.layers&&(e=PC.fe.layers.get(e.get("layerId")))?this.collect_errors_for_layer(e):[]},count_selected_choices_in_group:function(t){var e=PC.fe.layers.filter(function(e){return t==e.get("parent")&&!1!==e.get("cshow")}),a=0;return _.each(e,function(e){var t,i,s=e.get("type");"group"===s?a+=this.count_selected_choices_in_group(e.id):(t=PC.fe.getLayerContent(e.id))&&("simple"!==s&&"multiple"!==s||(i=t.filter(function(e){return e.get("active")&&!1!==e.get("cshow")}),a+=i.length),"form"===s)&&(i=PC.fe.getLayerContent(e.id).filter(function(e){return!1!==e.get("cshow")&&!e.get("is_group")}),a+=i.length)}.bind(this)),a},parse_choices:function(i){var s=parseInt(i.get("required")),a=i.get("default_selection")||"select_first",o=i.get("type");if(!1!==i.get("cshow")){"form"!=o&&"group"!=o||(s=!1),e=(e=PC.fe.config.angles.save_current?PC.fe.angles.findWhere("active",!0):PC.fe.angles.findWhere("use_in_cart",!0))||PC.fe.angles.first();var n=wp.hooks.applyFilters("PC.fe.configurator.layer_data",i.attributes),r=wp.hooks.applyFilters("PC.fe.save_data.parse_choices.angle_id",e.id);if("group"==o)return this.count_selected_choices_in_group(i.id)?void(wp.hooks.applyFilters("PC.fe.save_data.parse_choices.add_layer_group",!0,i)&&this.choices.push(wp.hooks.applyFilters("PC.fe.save_data.parse_choices.added_group_layer",{is_choice:!1,layer_id:i.id,choice_id:0,angle_id:r,layer_name:n.name,image:0,name:""},i))):void 0;var l=!1,e=PC.fe.getLayerContent(i.id);if(e&&!(PC.hasOwnProperty("conditionalLogic")&&PC.conditionalLogic.parent_is_hidden&&PC.conditionalLogic.parent_is_hidden(i))){var c=e.first().id;if(i.attributes.not_a_choice){var t,d=(t=e.first()).get_image("image","id");wp.hooks.applyFilters("PC.fe.save_data.parse_choices.add_choice",!0,t)&&this.choices.push(wp.hooks.applyFilters("PC.fe.save_data.parse_choices.added_choice",{is_choice:!1,layer_id:i.id,choice_id:t.id,angle_id:r,image:d,name:t.get_name()}))}else if(1<e.length||"multiple"==o){var h=e.where({active:!0});s&&!h.length&&(l=!0),s||h.length||"simple"!=o||"select_first"!=a||i.get("can_deselect")||(l=!0),_.each(h,function(e){var t;!1===e.get("cshow")||PC.hasOwnProperty("conditionalLogic")&&PC.conditionalLogic.parent_is_hidden&&PC.conditionalLogic.parent_is_hidden(e)||("select_first"==a&&s&&"simple"==o&&c==e.id&&(l=!0),!1===e.get("available")&&(t=PC_config.lang&&PC_config.lang.validation_separator_in?PC_config.lang.validation_separator_in:", ",PC.fe.validation.errors.push({choice:e,message:PC_config.lang.out_of_stock_error_message.replace("%s",n.name+t+e.get_name())})),t=e.get_image("image","id"),t={is_choice:!0,layer_id:i.id,choice_id:e.id,angle_id:r,layer_name:n.name,image:t,name:e.get_name()},e.get("sku")&&(t.sku=e.get("sku")),wp.hooks.applyFilters("PC.fe.save_data.parse_choices.add_choice",!0,e)&&this.choices.push(wp.hooks.applyFilters("PC.fe.save_data.parse_choices.added_choice",t,e)))},this)}else if((t=e.first()).get("active")||"simple"!=i.get("type")&&"multiple"!=i.get("type")&&"form"!=i.get("type")){if(!1===t.get("cshow"))return;var d=t.get_image("image","id"),h={is_choice:!0,layer_id:i.id,choice_id:t.id,angle_id:r,image:d,layer_name:n.name,name:t.get_name()};wp.hooks.applyFilters("PC.fe.save_data.parse_choices.add_choice",!0,t)&&this.choices.push(wp.hooks.applyFilters("PC.fe.save_data.parse_choices.added_choice",h,t)),!1===t.get("available")&&(e=PC_config.lang&&PC_config.lang.validation_separator_in?PC_config.lang.validation_separator_in:", ",PC.fe.validation.errors.push({choice:t,message:PC_config.lang.out_of_stock_error_message.replace("%s",n.name+e+t.get_name())}))}else s&&(l=!0);l&&PC.fe.validation.errors.push({choice:!1,layer:i,message:PC_config.lang.required_error_message.replace("%s",n.name)}),wp.hooks.doAction("PC.fe.save_data.parse_choices.after",i,this)}}},ajax_add_to_cart:function(){}},PC.fe.views.stepsProgress=Backbone.View.extend({className:"steps-progress--container",tagName:"nav",initialize:function(){return this.render(),this},events:{},render:function(){this.$ol=n('<ol class="steps-progress" />'),PC.fe.steps.steps.each(this.add_step.bind(this)),wp.hooks.applyFilters("PC.fe.steps.display_marker",!0)&&(this.$marker=n('<li class="steps-progress--item steps-progress--active-marker" />'),this.$ol.append(this.$marker)),this.$ol.appendTo(this.$el)},add_step:function(e){new PC.fe.views.stepsProgressItem({model:e}).$el.appendTo(this.$ol)}}),PC.fe.views.stepsProgressItem=Backbone.View.extend({className:"steps-progress--item",tagName:"li",template:wp.template("mkl-pc-configurator-steps-progress--item"),initialize:function(){return this.listenTo(this.model,"change:active change:cshow",this.render),this.render(),this},events:{"click a.step-link":"on_click"},render:function(){this.$el.toggleClass("active",this.model.get("active")),this.$el.toggleClass("hidden",!1===this.model.get("cshow")),this.$el.html(this.template(this.model.attributes)),this.model.get("active")&&setTimeout(function(){var e=this.$el,t=e.closest(".steps-progress"),i=t.outerWidth(),i=t.scrollLeft()+e.position().left-i/2+e.outerWidth()/2;t.animate({scrollLeft:i},320),t.css({"--mkl_pc-steps-marker-width":e.width()+"px","--mkl_pc-steps-marker-pos":e.get(0).offsetLeft+"px"})}.bind(this),10)},on_click:function(e){e.preventDefault(),!this.model.get("active")&&(e=PC.fe.steps.get_index(PC.fe.steps.current_step),PC.fe.steps.get_index(this.model)<e||PC.fe.config.steps_progress_enable_click_all)&&PC.fe.steps.display_step(PC.fe.steps.get_index(this.model))}}),PC.fe.steps={current_step:null,initiated:!1,previous_button:null,next_button:null,steps:null,$nav:null,initialized:!1,setup_steps:function(){this.steps_possible()?(PC.fe.use_steps=!0,this.clean_existing_steps(),this.get_steps(),PC.fe.modal.$el.addClass("has-steps"),this.initialized||(wp.hooks.addAction("PC.fe.start","mkl/product_configurator/steps",function(e){PC.fe.use_steps&&this.steps&&(this.current_step=this.get_steps()[0],this.current_step.set("active",!0),this.previous_button=new this.view_prev,this.next_button=new this.view_next,this.$nav=n('<nav class="mkl-pc--steps" />'),this.$nav.append(this.previous_button.$el),this.$nav.append(this.next_button.$el),wp.hooks.applyFilters("PC.fe.steps_position",null,this.$nav)||e.footer.$(".pc_configurator_form").before(this.$nav),wp.hooks.applyFilters("PC.fe.steps.display_breadcrumb",!0)&&(this.breadcrumb=new PC.fe.views.stepsProgress,wp.hooks.applyFilters("PC.fe.breadcrumb_position",null,this.breadcrumb)||e.toolbar.$("section.choices").before(this.breadcrumb.$el)),this.$live=n('<div class="mkl-pc-current-step-name screen-reader-text" aria-live="polite" aria-atomic="true"></div>'),e.toolbar.$("section.choices").before(this.$live),this.display_step())}.bind(this),20),wp.hooks.addAction("PC.fe.reset_configurator","mkl/product_configurator/steps",function(){this.display_step(0)}.bind(this)),this.initialized=!0)):(PC.fe.use_steps=!1,this.clean_existing_steps())},update_live_region:function(){var e,t,i;this.current_step&&(i=this.get_index(this.current_step),e=PC.fe.steps.steps.length,i=i+1,t=this.current_step.get("name"),i=PC_config.lang.steps_progress_current_step.replace("%1$s",i).replace("%2$s",e).replace("%3$s",t),this.$live.text(i))},clean_existing_steps:function(){this.steps&&(this.steps=null),PC.fe.modal.$el.removeClass("has-steps"),PC.fe.modal.$el.removeClass("last-step"),PC.fe.modal.$el.removeClass("first-step"),this.previous_button&&(this.$nav.remove(),this.$nav=null,this.previous_button.remove(),this.previous_button=null,this.next_button.remove(),this.next_button=null),this.breadcrumb&&(this.breadcrumb.remove(),this.breadcrumb=null)},steps_possible:function(){var e=PC.fe.layers.filter(function(e){return"group"==e.get("type")&&(!e.get("parent")||e.get("parent")&&!PC.fe.layers.get(e.get("parent")))}),t=PC.fe.layers.filter(function(e){return!e.get("parent")||e.get("parent")&&!PC.fe.layers.get(e.get("parent"))});return e.length&&e.length==t.length},previous_step:function(){var e=this.get_index(this.current_step);0!==e&&(this.get_steps(),this.display_step(e-1))},next_step:function(){var e=this.get_steps(),t=this.get_index(this.current_step);if(t!=e.length-1){var e=new URLSearchParams(location.search).has("pc-presets-admin"),i=(PC.fe.clear_validation_errors(),PC.fe.save_data.is_layer_valid(this.current_step)),s=wp.hooks.applyFilters("PC.fe.validate_configuration",PC.fe.errors),i=i&&!s.length;if(!e&&!i&&s.length)return PC.fe.show_validation_errors&&PC.fe.show_validation_errors(s),!1;this.display_step(t+1)}},display_step:function(e){PC.fe.save_data.reset_errors();var t=this.get_steps(),i=this.get_index(this.current_step);void 0!==e&&i!=e&&t[e]&&(this.deactivate_all_layers(),this.current_step=t[e],this.current_step.set("active",!0),i=e),PC.fe.modal.$el.toggleClass("last-step",!(i!=t.length-1)),PC.fe.modal.$el.toggleClass("first-step",0==i),PC_config.config.open_first_layer&&PC.fe.modal.$el.is(".float, .wsb")&&setTimeout(function(){var e=PC.fe.modal.$(".type-step.active button.layer-item:visible").first();e.parent().is(".display-mode-dropdown")||e.trigger("click")},50),this.update_live_region(),wp.hooks.doAction("PC.fe.steps.display_step",this)},get_steps:function(){var e;return this.steps||(e=Backbone.Collection.extend({model:PC.layer}),this.steps=new e,PC.fe.layers.each(function(e){"group"!=e.get("type")||e.get("parent")&&(!e.get("parent")||PC.fe.layers.get(e.get("parent")))||(e.set("is_step",!0),this.steps.add(e))}.bind(this))),this.steps.filter(function(e){return!(!1===e.get("cshow"))})},get_index:function(e){return _.indexOf(this.get_steps(),e)},deactivate_all_layers:function(){PC.fe.layers.each(function(e){e.set("active",!1)})},view_prev:Backbone.View.extend({template:wp.template("mkl-pc-configurator-step--previous"),className:"step-container--previous",events:{"click button.step-previous ":"previous"},initialize:function(){wp.hooks.addAction("PC.fe.steps.display_step","mkl/pc/steps",this.render.bind(this)),"undefiled"!=typeof PC.conditionalLogic&&this.listenTo(PC.fe.steps.steps,"change:cshow",this.render),this.render()},render:function(){this.$("button.step-previous").length||this.$el.html(this.template({})),0==PC.fe.steps.get_index(PC.fe.steps.current_step)?this.$("button.step-previous").prop("disabled",!0):this.$("button.step-previous").prop("disabled",!1)},previous:function(e){e.preventDefault(),PC.fe.steps.previous_step()}}),view_next:Backbone.View.extend({template:wp.template("mkl-pc-configurator-step--next"),className:"step-container--next",events:{"click button.step-next ":"next"},initialize:function(){wp.hooks.addAction("PC.fe.steps.display_step","mkl/pc/steps",this.render.bind(this)),"undefiled"!=typeof PC.conditionalLogic&&this.listenTo(PC.fe.steps.steps,"change:cshow",this.render),this.render()},render:function(){this.$("button.step-next").length||this.$el.html(this.template({label:""}));var e,t,i="";(i=PC.fe.config.steps_use_layer_name&&(t=PC.fe.steps.get_steps(),(e=PC.fe.steps.get_index(PC.fe.steps.current_step))<t.length-1)?(t=t[e+1]).get("next_step_button_label")||t.get("name"):i)&&this.$("button.step-next > span:not(.screen-reader-text)").first().text(i)},next:function(e){e.preventDefault(),PC.fe.steps.next_step()}})},PC.fe.views.summary=Backbone.View.extend({tagName:"li",className:"layers-list-item mkl_pc_summary type-summary",template:wp.template("mkl-pc-configurator-summary"),layers:[],initialize:function(){return this.render(),PC.conditionalLogic&&wp.hooks.addAction("mkl_checked_conditions","mkl/pc/summary",this.render.bind(this),1e3),wp.hooks.addAction("PC.fe.choice.set_choice","mkl/pc/summary",this.render.bind(this),1e3),wp.hooks.addAction("PC.fe.form.item.change","mkl/pc/summary",this.render.bind(this),1e3),wp.hooks.addAction("PC.fe.text_overlay.item.change","mkl/pc/summary",this.render.bind(this),1e3),this},render:function(){this.clear(),this.$el.append(this.template(this?.model?.attributes||{}));const s=this.$(".mkl-pc-summary--content");s.length||(s=this.$el);var e=PC.fe.save_data.get_choices(!1);return _.each(e,function(e){var t=PC.fe.layers.get(e.layer_id),i=PC.fe.get_choice_model(e.layer_id,e.choice_id);!t||"simple"==t.get("type")&&t.get("not_a_choice")||t.get("hide_in_summary")||(this.layers[e.layer_id]||(this.layers[e.layer_id]=new PC.fe.views.summary_item_group({model:t}),t.get("parent")&&this.$('[data-layer_id="'+t.get("parent")+'"]').length?this.layers[e.layer_id].$el.appendTo(this.$('[data-layer_id="'+t.get("parent")+'"]')):this.layers[e.layer_id].$el.appendTo(s)),i&&"calculation"!=i.get("text_field_type")&&("form"!=t.get("type")||void 0!==i.get("field_value")&&""!==i.get("field_value"))&&(t=new PC.fe.views.summary_item({model:i}),this.layers[e.layer_id].$el.append(t.$el)))}.bind(this)),this.$(".mkl_pc_summary_item_group.group").each(function(e,t){n(t).find(".mkl_pc_summary_item_group").length||n(t).remove()}),wp.hooks.doAction("PC.fe.configurator.summary.render",this),this.$el},clear:function(){this.layers.length&&(_.each(this.layers,function(e,t){e&&e.remove()}),this.layers=[]),this.$el.empty()}}),PC.fe.views.summary_item_group=Backbone.View.extend({tagName:"div",className:"mkl_pc_summary_item_group",template:wp.template("mkl-pc-configurator-summary--item-group"),initialize:function(){return this.render(),this},render:function(){this.$el.html(this.template(wp.hooks.applyFilters("PC.fe.configurator.layer_data",this.model.attributes))),this.$el.attr("data-layer_id",this.model.id),this.$el.addClass(this.model.get("type")),this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name"))}}),PC.fe.views.summary_item=Backbone.View.extend({tagName:"div",className:"mkl_pc_summary_item",template:wp.template("mkl-pc-configurator-summary--item"),initialize:function(){return this.render(),this},render:function(){var e,t=JSON.parse(JSON.stringify(wp.hooks.applyFilters("PC.fe.configurator.choice_data",this.model.attributes)));this.model.get("parent")&&(e=this.model.collection.get(this.model.get("parent")))&&e.get("show_group_label_in_cart")&&(t.parent_name=e.get_name()),t=wp.hooks.applyFilters("PC.fe.summary_item.attributes",t,this.model),this.$el.html(this.template(t,this.model)),this.model.get("class_name")&&this.$el.addClass(this.model.get("class_name")),("form"==this.model.collection.layer_type||this.model.get("has_text_field"))&&(this.$el.addClass("has-form-field field-"+this.model.get("text_field_type")),this.model.get("text_field_id"))&&this.$el.attr("data-field-id",this.model.get("text_field_id")),wp.hooks.doAction("PC.fe.configurator.summary-item.render.after-template",this)}}),PC.fe.views.toolbar=Backbone.View.extend({tagName:"div",className:"mkl_pc_toolbar",template:wp.template("mkl-pc-configurator-toolbar"),initialize:function(e){return this.parent=e.parent||PC.fe,this},events:{"click .cancel":"close_configurator"},render:function(){return this.$el.append(this.template({name:this.parent.options.title,ID:PC.fe.active_product})),this.$selection=this.$el.find(".choices"),this.layers=new PC.fe.views.layers_list({parent:this}),this.$el},close_configurator:function(e){this.parent.close()}}),PC.fe.views.viewer_static_layer=Backbone.View.extend({tagName:wp.hooks.applyFilters("PC.fe.viewer.item.tag","img"),events:{load:"loaded",error:"loaded",abort:"loaded",stalled:"loaded"},initialize:function(e){return this.listenTo(PC.fe.angles,"change active",this.render),this.parent=e.parent||PC.fe,wp.hooks.doAction("PC.fe.choice-img.init",this),this.render(),this},loaded:function(e){this.$el.removeClass("loading"),wp.hooks.doAction("PC.fe.viewer.layer.preload.complete",this),this.parent.imagesLoading--,0==this.parent.imagesLoading&&(this.parent.$el.removeClass("is-loading-image"),wp.hooks.doAction("PC.fe.viewer.layers.preload.complete",this))},render:function(){var e=(e=this.model.get_image())||"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",t=(wp.hooks.doAction("PC.fe.viewer.static_layer.render",this),["active","static","loading"]),i=(t.push(this.model.collection.getType()),PC.fe.layers.get(this.model.get("layerId")).get("class_name"));return i&&t.push(i),this.model.get("class_name")&&t.push(this.model.get("class_name")),this.$el.attr("aria-hidden","true"),t=wp.hooks.applyFilters("PC.fe.viewer.static_layer.classes",t,this),this.$el.addClass(t.join(" ")),e&&(this.el.src=e,this.parent.imagesLoading++,this.parent.$el.addClass("is-loading-image")),this.$el.data("dimensions",this.model.get_image("image","dimensions")),wp.hooks.doAction("PC.fe.viewer.layer.render.after",this),this.$el}}),PC.fe.views.viewer_layer=Backbone.View.extend({tagName:"img",events:{load:"img_loaded",error:"img_loaded",abort:"img_loaded",stalled:"img_loaded"},initialize:function(e){return this.empty_img="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",this.parent=e.parent||PC.fe,this.layer=PC.fe.layers.get(this.model.get("layerId")),this.is_loaded=!1,this.listenTo(this.model,"change:active",this.change_layer),this.listenTo(this.model,"preload-image",this.preload_image),this.listenTo(PC.fe.layers,"change:active",this.toggle_current_layer_class),this.listenTo(PC.fe.angles,"change:active",this.change_angle),wp.hooks.doAction("PC.fe.choice-img.init",this),this.render(),this},render:function(e){var t=this.model.get("active"),i=this.model.get_image(),s=PC.fe.modal.$el.outerWidth(),s=(s&&PC.fe.config.mobile_image_breakpoint&&s<PC.fe.config.mobile_image_breakpoint&&this.model.get_image("image","url_mobile")&&(i=this.model.get_image("image","url_mobile")),s&&PC.fe.config.large_image_breakpoint&&s>=PC.fe.config.large_image_breakpoint&&this.model.get_image("image","url_large")&&(i=this.model.get_image("image","url_large")),[]),a=(s.push(this.model.collection.getType()),this.layer.get("class_name"));return a&&s.push(a),this.model.get("class_name")&&s.push(this.model.get("class_name")),s=wp.hooks.applyFilters("PC.fe.viewer.layer.classes",s,this),this.$el.addClass(s.join(" ")),i=i||this.empty_img,wp.hooks.doAction("PC.fe.viewer.layer.render",this),t?(this.is_loaded||(this.parent.imagesLoading++,this.parent.$el.addClass("is-loading-image"),this.$el.addClass("loading"),this.el.src=i),this.$el.addClass("active")):(this.is_loaded||(this.$el.addClass("loading"),"lazy"!=PC.fe.config.image_loading_mode||e?this.el.src=i:this.el.src=this.empty_img),this.$el.removeClass("active")),this.$el.data("dimensions",this.model.get_image("image","dimensions")),this.$el.attr("data-layer")||(this.$el.attr("aria-hidden","true"),this.$el.attr("data-layer",this.layer.get("admin_label")||this.layer.get("name")),this.$el.attr("data-choice",this.model.get("admin_label")||this.model.get("name")),this.$el.attr("data-layer_id",this.layer.id),this.$el.attr("data-choice_id",this.model.id)),wp.hooks.doAction("PC.fe.viewer.layer.render.after",this),this.$el},change_layer:function(e){this.render()},change_angle:function(e){e.get("active")&&(this.is_loaded=!1,this.render())},img_loaded:function(e){this.$el.removeClass("loading"),this.empty_img!=this.$el.prop("src")&&(this.is_loaded=!0,"load"==e.type&&wp.hooks.doAction("PC.fe.viewer.layer.preload.complete",this),this.parent.imagesLoading--,0==this.parent.imagesLoading)&&(this.parent.$el.removeClass("is-loading-image"),wp.hooks.doAction("PC.fe.viewer.layers.preload.complete",this))},toggle_current_layer_class:function(e,t){e.id===this.model.get("layerId")&&this.$el.toggleClass("current_layer",e.id==this.model.get("layerId")&&t)},preload_image:function(e){this.model.get("active")||this.model.get_image()&&this.el.src!=this.model.get_image()&&this.render(!0)}}),PC.fe.views.viewer_layer_html=Backbone.View.extend({tagName:"div",className:"custom-html",initialize:function(e){return this.parent=e.parent||PC.fe,this.layer=PC.fe.layers.get(this.model.get("layerId")),this.listenTo(this.model,"change:active",this.change_layer),this.listenTo(this.model,"change:cshow",this.conditional_display),this.listenTo(this.layer,"change:cshow",this.conditional_display),this.listenTo(PC.fe.layers,"change:active",this.toggle_current_layer_class),wp.hooks.doAction("PC.fe.choice-custom-html.init",this),this.render(),this},render:function(){var e=this.model.get("active"),t=[],i=(t.push(this.model.collection.getType()),this.layer.get("class_name"));return i&&t.push(i),this.model.get("class_name")&&t.push(this.model.get("class_name")),t=wp.hooks.applyFilters("PC.fe.viewer.layer.classes",t,this),this.$el.addClass(t.join(" ")),wp.hooks.doAction("PC.fe.viewer.layer.render",this),e?this.$el.addClass("active"):this.$el.removeClass("active"),this.$el.html(this.model.get("custom_html")),this.$el},change_layer:function(e){this.$el.toggleClass("active",this.model.get("active")),this.conditional_display()},toggle_current_layer_class:function(e,t){e.id===this.model.get("layerId")&&this.$el.toggleClass("current_layer",e.id==this.model.get("layerId")&&t)},conditional_display:function(){var e=!1!==this.model.get("cshow"),t=!1!==this.layer.get("cshow");this.$el.toggle(this.model.get("active")&&e&&t)}}),PC.fe.views.viewer=Backbone.View.extend({tagName:"div",className:"mkl_pc_viewer",template:wp.template("mkl-pc-configurator-viewer"),imagesLoading:0,initialize:function(e){return this.parent=e.parent||PC.fe,this.imagesLoading=0,this},events:{change_layer:"change_layer"},render:function(){if(wp.hooks.doAction("PC.fe.viewer.render.before",this),this.$el.append(this.template()),PC.fe.contents){if(1<PC.fe.angles.length)this.angles_selector=new PC.fe.views.angles({parent:this}),this.$el.append(this.angles_selector.render());else{if(!PC.fe.angles.length)return void console.error("Product configurator: there are no angles set. Please complete the product setup.");PC.fe.angles.first().set("active",!0)}this.$layers=this.$el.find(".mkl_pc_layers"),this.layers=[],this.add_layers(),this.add_loader()}else console.log("no content to show.");return wp.hooks.doAction("PC.fe.viewer.render",this),this.$el},add_loader:function(){this.$layers.append(n('<div class="images-loading" />'))},add_layers:function(){var e=PC.fe.layers.pluck("image_order");e.length&&_.max(e)&&(PC.fe.layers.orderBy="image_order",PC.fe.layers.sort()),PC.fe.layers.each(this.add_choices,this)},add_choices:function(t){var e=PC.fe.getLayerContent(t.id);if(e)if(t.get("not_a_choice")){var i,t=e.first(),s=new PC.fe.views.viewer_static_layer({model:t,parent:this});if(this.$layers.append(s.$el),t.get("custom_html")){try{i=n(t.get("custom_html"))}catch(e){(i=n('<div class="mkl-custom-html--container" />')).html(t.get("custom_html"))}this.$layers.append(i)}}else e.each(this.add_single_choice,this)},add_single_choice:function(e){var t,i;e.has_image()||wp.hooks.applyFilters("PC.fe.viewer.item.render.empty.images",!1,e)?(t=new(wp.hooks.applyFilters("PC.fe.viewer.item.view",PC.fe.views.viewer_layer,e,this))({model:e,parent:this}),this.$layers.append(t.$el)):t=!1,wp.hooks.doAction("PC.fe.viewer.item.added",t,this),e.get("custom_html")&&(i=new PC.fe.views.viewer_layer_html({model:e,layer:t,parent:this}),this.$layers.append(i.$el),wp.hooks.doAction("PC.fe.viewer.html_item.added",i,this)),this.layers[e.id]=t}})})(jQuery,PC._us||window._);