!function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.utils={escapeHtml:function(e){return null==e?"":String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},escapeAttr:function(e){return null==e?"":String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},getEntityTypeIcon:function(e){return{products:"icon-shopping-cart",categories:"icon-folder-open",manufacturers:"icon-building",suppliers:"icon-truck",attributes:"icon-list-alt",features:"icon-tags",cms:"icon-file-text",cms_categories:"icon-folder"}[e]||"icon-cube"},getEntityTypeLabel:function(e){var t=this.config.trans||{};return{products:t.product||"Product",categories:t.category||"Category",manufacturers:t.manufacturer||"Manufacturer",suppliers:t.supplier||"Supplier",attributes:t.attribute||"Attribute",features:t.feature||"Feature",cms:t.cms_page||"CMS Page",cms_categories:t.cms_category||"CMS Category"}[e]||e},validate:function(){if(1!==this.$wrapper.data("required")&&"1"!==this.$wrapper.data("required"))return!0;var t=!1;return this.$wrapper.find(".target-block").each(function(){if(e(this).find(".selection-group").length>0)return t=!0,!1}),t?(this.clearValidationError(),!0):(this.showValidationError(),!1)},showValidationError:function(){this.$wrapper.addClass("has-validation-error");var t=this.$wrapper.data("required-message")||"Please select at least one item";this.$wrapper.find(".trait-validation-error").remove();var i=e("
",{class:"trait-validation-error",html:' '+t});this.$wrapper.find(".condition-trait-header").after(i),e("html, body").animate({scrollTop:this.$wrapper.offset().top-100},300),this.$wrapper.find(".condition-trait-body").is(":visible")||(this.$wrapper.find(".condition-trait-body").slideDown(200),this.$wrapper.removeClass("collapsed"))},clearValidationError:function(){this.$wrapper.removeClass("has-validation-error"),this.$wrapper.find(".trait-validation-error").remove()},getBlockMode:function(e){var t=this.config.blocks[e];return t&&t.mode?t.mode:"multi"},isBlockSingleMode:function(e){return"single"===this.getBlockMode(e)},getCurrentSingleSelection:function(){if("single"!==(this.config.mode||"multi"))return null;var e=this.$wrapper.find(".entity-chips .entity-chip").first();if(e.length){var t=e.closest(".target-block");return{name:e.find(".chip-name").text()||e.data("id"),entityType:t.data("block-type")||"item"}}return null}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.events={bindEvents:function(){var t=this;this.$wrapper.on("click",".target-block-tab",function(i){i.preventDefault();var a=e(this).data("blockType");t.switchToBlock(a)}),this.$wrapper.on("click",".target-block-tab .tab-badge",function(i){i.stopPropagation(),i.preventDefault();var a=e(this).closest(".target-block-tab");e(this).hasClass("popover-open")?t.hidePreviewPopover():t.showPreviewPopover(a)}),this.$wrapper.on("click",".condition-match-count.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showConditionPreviewPopover(a)}),this.$wrapper.on("click",".group-count-badge.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showGroupPreviewPopover(a)}),e(document).on("click",".filter-group-toggle .toggle-count.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this),s=a.data("groupId"),r=a.data("type"),n=a.data("groupName");a.hasClass("popover-open")?t.hidePreviewPopover():t.showFilterGroupPreviewPopover(a,s,r,n)}),e(document).on("click",function(i){e(i.target).closest(".target-preview-popover").length||e(i.target).closest(".tab-badge").length||e(i.target).closest(".condition-match-count").length||e(i.target).closest(".group-count-badge").length||e(i.target).closest(".group-modifiers").length||e(i.target).closest(".group-preview-badge").length||e(i.target).closest(".toggle-count.clickable").length||t.hidePreviewPopover()}),this.$wrapper.on("click",".condition-trait-header",function(i){if(!(e(i.target).closest(".target-block-tabs").length||e(i.target).closest(".trait-header-actions").length||e(i.target).closest(".prestashop-switch").length)){var a=t.$wrapper.find(".condition-trait-body");a.stop(!0,!0),a.is(":visible")?(a.slideUp(200),t.$wrapper.addClass("collapsed")):(a.slideDown(200),t.$wrapper.removeClass("collapsed"))}}),this.$wrapper.on("click",".group-header",function(i){e(i.target).closest(".btn-remove-group, .group-name-input").length||"single"!==t.$wrapper.data("mode")&&e(this).closest(".selection-group").toggleClass("collapsed")}),this.$wrapper.on("click",".trait-header-actions .btn-toggle-groups",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.attr("data-state")||"collapsed",r=t.config.trans||{};"collapsed"===s?(t.$wrapper.find(".selection-group").removeClass("collapsed"),a.attr("data-state","expanded"),a.attr("title",r.collapse_all||"Collapse all groups"),a.find("i").removeClass("icon-expand").addClass("icon-compress")):(t.$wrapper.find(".selection-group").addClass("collapsed"),a.attr("data-state","collapsed"),a.attr("title",r.expand_all||"Expand all groups"),a.find("i").removeClass("icon-compress").addClass("icon-expand"))}),this.$wrapper.on("change",".trait-show-all-toggle .show-all-checkbox",function(i){i.stopPropagation(),e(this).prop("checked")&&t.clearAllConditions()}),this.$wrapper.on("change",".target-switch-toggle",function(i){i.stopPropagation(),"1"===e(this).val()?(t.clearAllConditions(),t.$wrapper.find(".condition-trait-body").slideUp(200),t.$wrapper.addClass("collapsed")):(t.$wrapper.find(".condition-trait-body").slideDown(200),t.$wrapper.removeClass("collapsed"))}),this.$wrapper.on("click",".btn-add-group",function(i){i.preventDefault();var a=e(this).closest(".target-block"),s=a.data("blockType");t.addGroup(a,s)}),this.$wrapper.on("click",".btn-remove-group",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.removeGroup(a,s)}),this.$wrapper.on("click focus",".group-name-input",function(e){e.stopPropagation()}),this.$wrapper.on("change blur",".group-name-input",function(){var i=e(this),a=i.closest(".selection-group"),s=e.trim(i.val());a.attr("data-group-name",s),t.serializeAllBlocks()}),this.$wrapper.on("click",".btn-add-exclude",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.addFirstExcludeRow(a,s)}),this.$wrapper.on("click",".btn-add-another-exclude",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.addExcludeRow(a,s)}),this.$wrapper.on("click",".btn-remove-exclude-row",function(i){i.preventDefault();var a=e(this).closest(".exclude-row"),s=e(this).closest(".selection-group"),r=e(this).closest(".target-block");t.removeExcludeRow(a,s,r)}),this.$wrapper.on("change",".include-method-select",function(){t.hideDropdown();var i=e(this).closest(".selection-group"),a=e(this).closest(".target-block"),s=i.find(".group-include"),r=a.data("blockType"),n=(t.config.blocks[r]||{}).selection_methods||{},o=e(this).find("option:selected"),l=o.data("valueType")||"none",c=o.data("searchEntity")||"",d=o.data("options")||null,p=i.find(".include-picker"),u=t.buildValuePickerHtml("include",l,c,n);if(p.replaceWith(u),"select"===l&&d){var h=(f=i.find(".include-picker")).find(".select-value-input");h.empty(),e.each(d,function(e,i){h.append('")})}if("multi_select_tiles"===l&&d){var f=i.find(".include-picker"),v=!0===o.data("exclusive");t.populateTiles(f,d,v)}if("multi_numeric_range"===l){f=i.find(".include-picker");var m=o.data("step"),g=o.data("min");t.applyRangeInputConstraints(f,m,g)}"combination_attributes"===l&&(f=i.find(".include-picker"),t.loadCombinationAttributeGroups(f));var b=e(this).val();t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),b,r),t.updateBlockStatus(a),t.serializeAllBlocks(s)}),this.$wrapper.on("change",".exclude-method-select",function(){t.hideDropdown();var i=e(this).closest(".exclude-row"),a=(e(this).closest(".selection-group"),e(this).closest(".target-block").data("blockType")),s=(t.config.blocks[a]||{}).selection_methods||{},r=e(this).find("option:selected"),n=r.data("valueType")||"entity_search",o=r.data("searchEntity")||a,l=r.data("options")||null,c=i.find(".exclude-picker"),d=t.buildValuePickerHtml("exclude",n,o,s);if(c.replaceWith(d),"select"===n&&l){var p=(u=i.find(".exclude-picker")).find(".select-value-input");p.empty(),e.each(l,function(e,i){p.append('")})}if("multi_select_tiles"===n&&l){var u=i.find(".exclude-picker"),h=!0===r.data("exclusive");t.populateTiles(u,l,h)}if("multi_numeric_range"===n){u=i.find(".exclude-picker");var f=r.data("step"),v=r.data("min");t.applyRangeInputConstraints(u,f,v)}"combination_attributes"===n&&(u=i.find(".exclude-picker"),t.loadCombinationAttributeGroups(u));var m=e(this).val();t.updateMethodInfoPlaceholder(i.find(".exclude-header-row"),m,a),t.serializeAllBlocks(i)}),this.$wrapper.on("keydown",".pattern-input",function(t){13===t.keyCode&&(t.preventDefault(),e(this).closest(".draft-tag").find(".btn-add-pattern").click())}),this.$wrapper.on("click",".draft-tag .btn-add-pattern",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".draft-tag"),s=a.closest(".value-picker"),r=a.closest(".group-include, .exclude-row"),n=a.find(".pattern-input"),o=e.trim(n.val());if(o){var l="1"===a.attr("data-case-sensitive");t.addPatternTag(s,o,l),n.val("").focus(),a.find(".pattern-match-count").removeClass("count-found count-zero").hide(),a.find(".pattern-match-count .count-value").text(""),t.serializeAllBlocks(r)}}),this.$wrapper.on("input",".pattern-input",function(){var i=e(this),a=i.closest(".draft-tag");if(a.length){var s=e.trim(i.val());i.data("countTimeout")&&clearTimeout(i.data("countTimeout"));var r=a.find(".pattern-match-count");if(s){var n=setTimeout(function(){var e="1"===a.attr("data-case-sensitive");t.updateDraftTagCount(a,s,e)},300);i.data("countTimeout",n)}else{r.removeClass("count-found count-zero").hide(),r.find(".count-value").text("");var o=a.closest(".selection-group");o.length&&t.updateGroupTotalCount(o)}}}),this.$wrapper.on("click",".pattern-tag .btn-remove-pattern",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".group-include, .exclude-row");e(this).closest(".pattern-tag").remove(),t.serializeAllBlocks(a)}),this.$wrapper.on("click",".pattern-tag .btn-toggle-case",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".pattern-tag"),s=e(this),r=t.config.trans||{},n=a.hasClass("draft-tag"),o=!(1===a.data("caseSensitive")||"1"===a.data("caseSensitive")||"1"===a.attr("data-case-sensitive"));a.data("caseSensitive",o?1:0),a.attr("data-case-sensitive",o?"1":"0"),a.toggleClass("case-sensitive",o),s.find(".case-icon").text(o?"Aa":"aa");var l=o?r.case_sensitive||"Case sensitive - click to toggle":r.case_insensitive||"Case insensitive - click to toggle";if(s.attr("title",l),n){var c=e.trim(a.find(".pattern-input").val());c&&t.updateDraftTagCount(a,c,o)}else{var d=a.closest(".group-include, .exclude-row");t.serializeAllBlocks(d)}}),this.$wrapper.on("click",".pattern-match-count",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.data("count"),r=a.data("pattern"),n=a.data("entityType"),o=a.data("caseSensitive");!s||s<=0||!r||t.showPatternPreviewModal(r,n,o,s)}),this.$wrapper.on("click",".pattern-tag .pattern-tag-text",function(t){t.preventDefault();var i=e(this).closest(".pattern-tag");if(!i.hasClass("editing")){var a=i.data("pattern"),s=e('').val(a),r=e(''),n=e(''),o=e('').append(r,n);i.addClass("editing").find(".pattern-tag-text").hide(),i.find(".btn-remove-pattern").hide(),i.prepend(o).prepend(s),s.focus().select(),s.on("keydown",function(e){13===e.keyCode?(e.preventDefault(),r.click()):27===e.keyCode&&(e.preventDefault(),n.click())})}}),this.$wrapper.on("click",".pattern-tag .btn-pattern-save",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".pattern-tag"),s=a.find(".pattern-tag-edit"),r=a.data("pattern"),n=e.trim(s.val());n&&n!==r&&(a.data("pattern",n),a.find(".pattern-tag-text").text(n)),s.remove(),a.find(".pattern-edit-actions").remove(),a.removeClass("editing").find(".pattern-tag-text, .btn-remove-pattern").show();var o=a.closest(".group-include, .exclude-row");t.serializeAllBlocks(o)}),this.$wrapper.on("click",".pattern-tag .btn-pattern-cancel",function(t){t.preventDefault(),t.stopPropagation();var i=e(this).closest(".pattern-tag");i.find(".pattern-tag-edit").remove(),i.find(".pattern-edit-actions").remove(),i.removeClass("editing").find(".pattern-tag-text, .btn-remove-pattern").show()}),this.$wrapper.on("mouseenter",".mpr-info-wrapper[data-details]",function(){var t=e(this);if(!t.data("tooltip-active")){var i=t.attr("data-details"),a=t.attr("data-tooltip-class")||"",s=e("
",{class:"mpr-tooltip mpr-tooltip-fixed "+a,html:i});e("body").append(s),t.data("tooltip-active",!0);var r=t.offset(),n=t.outerWidth(),o=s.outerWidth(),l=s.outerHeight(),c=r.left+n/2-o/2,d=r.top-l-10;c<10&&(c=10),c+o>e(window).width()-10&&(c=e(window).width()-o-10),s.css({position:"fixed",left:c+"px",top:d-e(window).scrollTop()+"px"}),t.data("tooltip-el",s)}}),this.$wrapper.on("mouseleave",".mpr-info-wrapper[data-details]",function(){var t=e(this),i=t.data("tooltip-el");i&&i.remove(),t.data("tooltip-active",!1),t.data("tooltip-el",null)}),this.$wrapper.on("change",".range-min-input, .range-max-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("change",".date-from-input, .date-to-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("change",".select-value-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("click",".btn-add-range",function(i){i.preventDefault();var a=e(this).closest(".value-picker"),s=e(this).closest(".group-include, .exclude-row"),r=a.find(".multi-range-container"),n=r.find(".multi-range-chips"),o=r.find(".range-min-input"),l=r.find(".range-max-input"),c=o.val().trim(),d=l.val().trim();if(""!==c||""!==d){var p=parseFloat(o.attr("step"))||.01,u=o.attr("min"),h=void 0!==u&&""!==u;u=h?parseFloat(u):null;var f=""!==c?parseFloat(c):null,v=""!==d?parseFloat(d):null;if(h){if(null!==f&&fv)t.showRangeInputError(o,t.config.trans.min_greater_than_max||"Min cannot be greater than max");else{var m,g=p<1?String(p).split(".")[1].length:0;null!==f&&(f=p>=1?Math.round(f):parseFloat(f.toFixed(g)),c=String(f)),null!==v&&(v=p>=1?Math.round(v):parseFloat(v.toFixed(g)),d=String(v)),m=""!==c&&""!==d?c+" - "+d:""!==c?"≥ "+c:"≤ "+d;var b=e("",{class:"range-chip","data-min":c,"data-max":d});b.append(e("",{class:"range-chip-text",text:m})),b.append(e("",i+='",i+='
',i+='",i+='",i+='",i+="
",i+='
',i+='',i+='',i+='',i+="
",i+='",i+='",i+="
",i+="
",i+='
',i+='
',i+='",i+='",i+='
',i+=''+(t.price||"Price")+":",i+='',i+='-',i+='',i+="
",i+='",i+="
",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+="
",i+='
',i+='',i+=''+(t.product||"Product")+"",i+=''+(t.price||"Price")+"",i+=''+(t.sale||"Sale")+"",i+=''+(t.stock||"Stock")+"",i+=''+(t.sold||"Sold")+"",i+="
",i+='',i+='",i+="",this.$dropdown=e(i),e("body").append(this.$dropdown)},hideDropdown:function(){this.$dropdown&&this.$dropdown.removeClass("show"),this.activeGroup=null},positionDropdown:function(t){if(this.$dropdown){var i=t.closest(".value-picker"),a=t.closest(".entity-search-box"),s=a.offset(),r=a.outerHeight(),n=i.offset(),o=i.outerWidth(),l=s.top+r+4,c=n.left,d=Math.max(o,400),p=e(window).width();c+d>p-10&&(d=p-c-10);var u=e(window).height()-(l-e(window).scrollTop())-20;u=Math.max(u,400),this.$dropdown.css({position:"absolute",top:l,left:c,width:d,maxHeight:u,zIndex:1e4})}}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.search={categoryTreeCache:null,performSearch:function(t){var i=this;if(this.activeGroup){this.isLoading=!0;var a=this.activeGroup.searchEntity,s=t&&this.loadMoreCount?this.loadMoreCount:20,r={ajax:1,action:"searchTargetEntities",trait:"EntitySelector",entity_type:a,q:this.searchQuery,limit:s,offset:t?this.searchOffset:0,sort_by:this.currentSort?this.currentSort.field:"name",sort_dir:this.currentSort?this.currentSort.dir:"ASC"};this.refineQuery&&(r.refine=this.refineQuery,this.refineNegate&&(r.refine_negate=1)),"products"===a&&this.filters&&(this.filters.inStock&&(r.filter_in_stock=1),this.filters.discounted&&(r.filter_discounted=1),null!==this.filters.priceMin&&""!==this.filters.priceMin&&(r.filter_price_min=this.filters.priceMin),null!==this.filters.priceMax&&""!==this.filters.priceMax&&(r.filter_price_max=this.filters.priceMax),this.filters.attributes&&this.filters.attributes.length>0&&(r.filter_attributes=JSON.stringify(this.filters.attributes)),this.filters.features&&this.filters.features.length>0&&(r.filter_features=JSON.stringify(this.filters.features))),"products"!==a&&this.filters&&(null!==this.filters.productCountMin&&""!==this.filters.productCountMin&&(r.filter_product_count_min=this.filters.productCountMin),null!==this.filters.productCountMax&&""!==this.filters.productCountMax&&(r.filter_product_count_max=this.filters.productCountMax),"categories"===a&&(this.filters.depth&&(r.filter_depth=this.filters.depth),this.filters.hasProducts&&(r.filter_has_products=1),this.filters.hasDescription&&(r.filter_has_description=1),this.filters.hasImage&&(r.filter_has_image=1),null!==this.filters.salesMin&&""!==this.filters.salesMin&&(r.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(r.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(r.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(r.filter_turnover_max=this.filters.turnoverMax),this.filters.activeOnly&&(r.filter_active=1)),"manufacturers"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(r.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(r.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(r.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(r.filter_turnover_max=this.filters.turnoverMax),this.filters.dateAddFrom&&(r.filter_date_add_from=this.filters.dateAddFrom),this.filters.dateAddTo&&(r.filter_date_add_to=this.filters.dateAddTo),this.filters.lastProductFrom&&(r.filter_last_product_from=this.filters.lastProductFrom),this.filters.lastProductTo&&(r.filter_last_product_to=this.filters.lastProductTo),this.filters.activeOnly&&(r.filter_active=1)),"suppliers"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(r.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(r.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(r.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(r.filter_turnover_max=this.filters.turnoverMax),this.filters.dateAddFrom&&(r.filter_date_add_from=this.filters.dateAddFrom),this.filters.dateAddTo&&(r.filter_date_add_to=this.filters.dateAddTo),this.filters.lastProductFrom&&(r.filter_last_product_from=this.filters.lastProductFrom),this.filters.lastProductTo&&(r.filter_last_product_to=this.filters.lastProductTo),this.filters.activeOnly&&(r.filter_active=1)),"attributes"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(r.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(r.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(r.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(r.filter_turnover_max=this.filters.turnoverMax),this.filters.attributeGroup&&(r.filter_attribute_group=this.filters.attributeGroup),this.filters.isColor&&(r.filter_is_color=1)),"features"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(r.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(r.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(r.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(r.filter_turnover_max=this.filters.turnoverMax),this.filters.featureGroup&&(r.filter_feature_group=this.filters.featureGroup),this.filters.isCustom&&(r.filter_is_custom=1)),"cms"===a&&(this.filters.activeOnly&&(r.filter_active=1),this.filters.indexable&&(r.filter_indexable=1)),"cms_categories"===a&&this.filters.activeOnly&&(r.filter_active=1)),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:r,success:function(e){i.isLoading=!1,e.success&&(i.searchQuery&&i.searchQuery.length>=2&&e.total>0&&i.addToSearchHistory(a,i.searchQuery),i.searchResults=t?i.searchResults.concat(e.results||[]):e.results||[],i.searchTotal=e.total||0,i.searchOffset=t?i.searchOffset+(e.results||[]).length:(e.results||[]).length,i.renderSearchResults(t),i.$dropdown.addClass("show"))},error:function(){i.isLoading=!1}})}},renderSearchResults:function(t){var i=this,a=this.config.trans||{},s=this.$dropdown.find(".dropdown-results"),r=[],n=[];if(this.activeGroup){var o=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]'),l=this.activeGroup.searchEntity,c=this.activeGroup.excludeIndex;"include"===this.activeGroup.section?o.find(".include-picker").find(".entity-chip").each(function(){r.push(String(e(this).data("id")))}):(o.find('.exclude-row[data-exclude-index="'+c+'"]').find(".exclude-picker").find(".entity-chip").each(function(){r.push(String(e(this).data("id")))}),o.find(".exclude-row").each(function(){var t=e(this);if(parseInt(t.data("excludeIndex"),10)!==c){var a=t.find(".exclude-picker");(a.attr("data-search-entity")||i.activeGroup.blockType)===l&&a.find(".entity-chip").each(function(){n.push(String(e(this).data("id")))})}}))}var d=this.activeGroup&&"products"===this.activeGroup.searchEntity,p="list"===this.viewMode;this.$dropdown.find(".results-header").toggle(d&&p);var u=this.searchResults.filter(function(e){return-1===n.indexOf(String(e.id))}),h=this.searchResults.length-u.length,f=u.length+" / "+this.searchTotal+" results";h>0&&(f+=" ("+h+" hidden)"),this.$dropdown.find(".results-count").text(f);var v="";0!==u.length||t?u.forEach(function(e){var t="dropdown-item"+(-1!==r.indexOf(String(e.id))?" selected":"");if("product"===e.type&&(t+=" result-item-product"),v+='
';else{var a="icon-cube",s=i.activeGroup?i.activeGroup.searchEntity:null;"categories"===s?a="icon-folder":"manufacturers"===s?a="icon-building":"suppliers"===s?a="icon-truck":"attributes"===s?a="icon-paint-brush":"features"===s?a="icon-list-ul":"cms"===s?a="icon-file-text-o":"cms_categories"===s&&(a="icon-folder-o"),v+='
'}if(v+='
',v+='
'+i.escapeHtml(e.name)+"
",e.subtitle){var n=e.subtitle.split("\n");v+='
',n.forEach(function(e,t){v+='
'+i.escapeHtml(e)+"
"}),v+="
"}if(v+="
","product"===e.type&&p){v+='
',v+=''+(e.regular_price_formatted||e.price_formatted||"")+"",v+="
",e.has_discount?(v+='
',v+=''+(e.price_formatted||"")+"",v+="
"):v+='
';var o="out_of_stock"===e.stock_status?"stock-out":"low_stock"===e.stock_status?"stock-low":"stock-ok";v+='
',v+=''+(void 0!==e.stock_qty?e.stock_qty:"")+"",v+="
",v+='
',v+=''+(void 0!==e.sales_qty?e.sales_qty:"0")+"",v+="
"}v+=""}):v='
'+(a.no_results||"No results found")+"
",t?s.append(v):s.html(v);var m=this.searchResults.length'+(a.all||"All")+" ("+b+")")}this.$dropdown.find(".dropdown-actions").show(),this.$dropdown.find(".btn-show-history").removeClass("active");var x=this.activeGroup?this.activeGroup.searchEntity:null,_=x&&this.getSearchHistory(x).length>0;this.$dropdown.find(".btn-show-history").prop("disabled",!_)},loadCategoryTree:function(){var t=this,i=this.$dropdown.find(".dropdown-results"),a=this.activeGroup?this.activeGroup.searchEntity:"categories";this.$dropdown.addClass("show"),i.html('
Loading category tree...
');var s=a+"TreeCache";this[s]?this.renderCategoryTree(this[s],a):e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getCategoryTree",trait:"EntitySelector",entity_type:a},success:function(e){e.success&&e.categories?(t[s]=e.categories,t.renderCategoryTree(e.categories,a)):i.html('
Failed to load category tree
')},error:function(e,t,a){i.html('
Error loading category tree
')}})},renderCategoryTree:function(t,i){var a=this,s=this.config.trans||{},r=this.$dropdown.find(".dropdown-results"),n="cms_categories"===i,o=n?"CMS categories":"categories",l=[];if(this.activeGroup){var c=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]');"include"===this.activeGroup.section?c.find(".include-picker").find(".entity-chip").each(function(){l.push(parseInt(e(this).data("id"),10))}):c.find('.exclude-row[data-exclude-index="'+this.activeGroup.excludeIndex+'"]').find(".exclude-picker").find(".entity-chip").each(function(){l.push(parseInt(e(this).data("id"),10))})}var d='
';d+='
';var p=t.length>0?t[0].level:1;t.forEach(function(e){var t=-1!==l.indexOf(e.id),i=20*(e.level-p),r=e.has_children;d+='
',d+=r?'':'';var o="single"===a.config.mode;r&&!o?(d+='"):o||(d+=''),d+='',d+='',d+='
',d+=''+a.escapeHtml(e.name)+"",d+=''+a.escapeHtml(e.subtitle)+"",d+="
",d+="
"}),d+="
",d+="
",r.html(d);var u=r.find(".tree-item.selected").length;this.$dropdown.find(".results-count").text(t.length+" "+o+(u>0?" ("+u+" selected)":""));var h=r.find(".tree-item");this.updateSelectChildrenButtons(h),this.$dropdown.find(".load-more-controls").hide()},filterCategoryTree:function(t){var i=this,a=this.$dropdown.find(".category-tree");if(a.length){var s=a.find(".tree-item");if(!(t=t.toLowerCase().trim()))return s.show().removeClass("collapsed"),void a.find(".tree-toggle i").removeClass("icon-caret-right").addClass("icon-caret-down");var r=[],n=[];s.each(function(){var a=e(this);if(-1!==(a.data("name")||"").toLowerCase().indexOf(t)){r.push(a.data("id"));for(var o=i.findTreeAncestors(a,s),l=0;l0?" ("+l+" selected)":""))}},findTreeDescendants:function(t,i){var a=parseInt(t.data("nleft"),10),s=parseInt(t.data("nright"),10),r=parseInt(t.data("id"),10),n=[];if(a>0&&s>0&&s>a)i.each(function(){var t=e(this),i=parseInt(t.data("nleft"),10),r=parseInt(t.data("nright"),10);i>a&&r0;){var c=o.shift();l[c]||(l[c]=!0,i.each(function(){var t=e(this),i=parseInt(t.data("parent-id"),10),a=parseInt(t.data("id"),10);i!==c||l[a]||(n.push(t),o.push(a))}))}return n},findTreeAncestors:function(t,i){var a=parseInt(t.data("nleft"),10),s=parseInt(t.data("nright"),10),r=[];if(a>0&&s>0)i.each(function(){var t=e(this),i=parseInt(t.data("nleft"),10),n=parseInt(t.data("nright"),10);is&&r.push(t)});else for(var n=parseInt(t.data("parent-id"),10),o={};n>0&&!o[n];)o[n]=!0,i.each(function(){var t=e(this);if(parseInt(t.data("id"),10)===n)return r.push(t),n=parseInt(t.data("parent-id"),10),!1});return r},updateSelectChildrenButtons:function(t){var i=this,a=this.config.trans||{};t.filter(".has-children").each(function(){var s=e(this),r=s.find(".btn-select-children");if(r.length){for(var n=i.findTreeDescendants(s,t),o=s.hasClass("selected"),l=0;l0?(r.find("i").removeClass("icon-plus-square").addClass("icon-minus-square"),r.attr("title",a.deselect_with_children||"Deselect with all children")):(r.find("i").removeClass("icon-minus-square").addClass("icon-plus-square"),r.attr("title",a.select_with_children||"Select with all children"))}})},loadSearchHistory:function(){try{var e=localStorage.getItem(this.searchHistoryKey);this.searchHistory=e?JSON.parse(e):{}}catch(e){this.searchHistory={}}},saveSearchHistory:function(){try{localStorage.setItem(this.searchHistoryKey,JSON.stringify(this.searchHistory))}catch(e){}},addToSearchHistory:function(e,t){if(t&&!(t.length<2)){this.searchHistory[e]||(this.searchHistory[e]=[]);var i=this.searchHistory[e],a=i.indexOf(t);-1!==a&&i.splice(a,1),i.unshift(t),i.length>this.searchHistoryMax&&(i=i.slice(0,this.searchHistoryMax)),this.searchHistory[e]=i,this.saveSearchHistory()}},removeFromSearchHistory:function(e,t){if(this.searchHistory[e]){var i=this.searchHistory[e].indexOf(t);-1!==i&&(this.searchHistory[e].splice(i,1),this.saveSearchHistory())}},getSearchHistory:function(e){return this.searchHistory[e]||[]},showSearchHistory:function(e){var t=this.getSearchHistory(e),i=this.config.trans||{},a=this.$dropdown.find(".dropdown-results");if(this.$dropdown.find(".results-count").text(i.recent_searches||"Recent searches"),this.$dropdown.find(".dropdown-actions").hide(),this.$dropdown.find(".filter-panel").removeClass("show"),this.$dropdown.find(".btn-toggle-filters").removeClass("active"),this.$dropdown.find(".results-header").hide(),t.length){for(var s='
',r=0;r',s+='',s+=''+this.escapeHtml(n)+"",s+='",s+="
"}s+="",a.html(s),this.$dropdown.addClass("show")}else this.performSearch()},refreshSearch:function(){"tree"!==this.viewMode?(this.searchOffset=0,this.loadMoreCount=20,this.$dropdown&&(this.$dropdown.find(".load-more-select").val("20"),this.$dropdown.find('.load-more-select option[data-all="true"]').remove()),this.performSearch(!1)):this.filterCategoryTree(this.searchQuery||"")},clearFilters:function(){if(this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown){var e=this.config.trans||{};this.$dropdown.find(".refine-input").val("").attr("placeholder",e.refine_short||"Refine..."),this.$dropdown.find(".btn-clear-refine").hide(),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min").val(""),this.$dropdown.find(".filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip").removeClass("active"),this.$dropdown.find(".filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-group-toggle").removeClass("active has-selection"),this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-turnover-min, .filter-turnover-max").val(""),this.$dropdown.find(".filter-date-add-from, .filter-date-add-to").val(""),this.$dropdown.find(".filter-last-product-from, .filter-last-product-to").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-has-description").prop("checked",!1),this.$dropdown.find(".filter-has-image").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0),this.$dropdown.find(".filter-attribute-group-select, .filter-feature-group-select").val("")}this.refreshSearch()},resetFiltersWithoutSearch:function(){if(this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown){var e=this.config.trans||{};this.$dropdown.find(".refine-input").val("").attr("placeholder",e.refine_short||"Refine..."),this.$dropdown.find(".btn-clear-refine").hide(),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min").val(""),this.$dropdown.find(".filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip").removeClass("active"),this.$dropdown.find(".filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-group-toggle").removeClass("active has-selection"),this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-turnover-min, .filter-turnover-max").val(""),this.$dropdown.find(".filter-date-add-from, .filter-date-add-to").val(""),this.$dropdown.find(".filter-last-product-from, .filter-last-product-to").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-has-description").prop("checked",!1),this.$dropdown.find(".filter-has-image").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0),this.$dropdown.find(".filter-attribute-group-select, .filter-feature-group-select").val("")}},updateFilterPanelForEntity:function(e){if(this.$dropdown){var t=this.$dropdown.find(".filter-panel");t.find(".filter-row").hide();var i=this.$dropdown.find(".view-mode-select option.tree-view-option");"categories"===e||"cms_categories"===e?(i.prop("disabled",!1).prop("hidden",!1),"tree"!==this.viewMode?(this.viewMode="tree",this.$dropdown.find(".view-mode-select").val("tree"),this.$dropdown.removeClass("view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-tree"),this.loadCategoryTree()):this.loadCategoryTree()):(i.prop("disabled",!0).prop("hidden",!0),"tree"===this.viewMode&&(this.viewMode="list",this.$dropdown.find(".view-mode-select").val("list"),this.$dropdown.removeClass("view-tree").addClass("view-list"))),"products"===e?(t.find(".filter-row-quick").show(),this.filterableData&&(this.filterableData.attributes&&this.filterableData.attributes.length>0&&this.$dropdown.find(".filter-row-attributes").show(),this.filterableData.features&&this.filterableData.features.length>0&&this.$dropdown.find(".filter-row-features").show())):"categories"===e?t.find(".filter-row-entity-categories").show():"manufacturers"===e?t.find(".filter-row-entity-manufacturers").show():"suppliers"===e?t.find(".filter-row-entity-suppliers").show():"attributes"===e?(t.find(".filter-row-entity-attributes").show(),this.loadAttributeGroups()):"features"===e?t.find(".filter-row-entity-features").show():"cms"===e?t.find(".filter-row-entity-cms").show():"cms_categories"===e&&t.find(".filter-row-entity-cms-categories").show()}},loadAttributeGroups:function(){var t=this,i=this.$dropdown.find(".filter-attribute-group-select");i.find("option").length>1||e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getAttributeGroups",trait:"EntitySelector"},success:function(a){a.success&&a.groups&&e.each(a.groups,function(e,a){i.append('")})}})},loadFeatureGroups:function(){var t=this,i=this.$dropdown.find(".filter-feature-group-select");i.find("option").length>1||e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getFeatureGroups",trait:"EntitySelector"},success:function(a){a.success&&a.groups&&e.each(a.groups,function(e,a){i.append('")})}})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.filters={clearFilters:function(){this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown&&(this.config.trans,this.$dropdown.find(".refine-input").val(""),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min, .filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip, .filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0)),this.refreshSearch()},resetFiltersWithoutSearch:function(){this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null}},updateFilterPanelForEntity:function(e){if(this.$dropdown){var t=this.$dropdown.find(".filter-panel");t.find(".filter-row").hide(),t.find('.filter-row[data-entity="'+e+'"]').show(),t.find(".filter-row-entity-"+e.replace("_","-")).show();var i=this.$dropdown.find(".tree-view-option");"categories"===e||"cms_categories"===e?i.prop("disabled",!1).show():i.prop("disabled",!0).hide()}},loadFilterableData:function(){var t=this;this.filterableData?this.renderFilterDropdowns():e.ajax({url:this.config.ajaxUrl,type:"POST",data:{ajax:1,action:"getTargetFilterableAttributes",trait:"EntitySelector"},dataType:"json",success:function(e){e.success&&e.data&&(t.filterableData=e.data,t.renderFilterDropdowns())}})},renderFilterDropdowns:function(){if(this.$dropdown&&this.filterableData){var e=this,t=this.$dropdown.find(".filter-attributes-container");t.empty(),this.filterableData.attributes&&this.filterableData.attributes.length>0&&(this.filterableData.attributes.forEach(function(i){var a='",t.append(a)}),this.$dropdown.find(".filter-row-attributes").show());var i=this.$dropdown.find(".filter-features-container");i.empty(),this.filterableData.features&&this.filterableData.features.length>0&&(this.filterableData.features.forEach(function(t){var a='",i.append(a)}),this.$dropdown.find(".filter-row-features").show())}},showFilterGroupValues:function(e,t){if(this.filterableData){var i=this,a=("attribute"===t?this.filterableData.attributes:this.filterableData.features).find(function(t){return t.id==e});if(a){this.$dropdown.find(".filter-row-values").hide();var s="attribute"===t?".filter-row-attr-values":".filter-row-feat-values",r=this.$dropdown.find(s),n=r.find(".filter-values-container");n.empty();var o=''+a.name+":";a.values.forEach(function(a){var s=("attribute"===t?-1!==i.filters.attributes.indexOf(a.id):-1!==i.filters.features.indexOf(a.id))?" active":"",r="attribute"===t?"filter-attr-chip":"filter-feat-chip",n=a.color?' style="--chip-color: '+a.color+'"':"",l=a.color?" has-color":"";o+='"}),n.html(o),r.find(".btn-close-values").remove(),r.append(''),r.show();var l=r[0];l&&l.scrollIntoView({behavior:"smooth",block:"nearest"})}}},hideFilterGroupValues:function(){this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-group-toggle").removeClass("active")},updateFilterToggleStates:function(){if(this.$dropdown&&this.filterableData){var e=this;this.filterableData.attributes&&this.filterableData.attributes.forEach(function(t){var i=e.$dropdown.find('.filter-group-toggle[data-group-id="'+t.id+'"][data-type="attribute"]'),a=t.values.some(function(t){return-1!==e.filters.attributes.indexOf(t.id)});i.toggleClass("has-selection",a)}),this.filterableData.features&&this.filterableData.features.forEach(function(t){var i=e.$dropdown.find('.filter-group-toggle[data-group-id="'+t.id+'"][data-type="feature"]'),a=t.values.some(function(t){return-1!==e.filters.features.indexOf(t.id)});i.toggleClass("has-selection",a)})}}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.chips={addSelection:function(e,t,i,a){this.addSelectionNoUpdate(e,t,i,a);var s=e.find(".entity-chips");this.updateChipsVisibility(s)},addSelectionNoUpdate:function(e,t,i,a){var s=e.find(".entity-chips"),r=e.closest(".target-block");if("single"===(this.config.mode||"multi")?(this.$wrapper.find(".entity-chips .entity-chip").remove(),this.$dropdown&&this.$dropdown.find(".dropdown-item.selected, .tree-item.selected").removeClass("selected"),this.$wrapper.find(".target-block-tab .tab-badge").remove(),this.$wrapper.find(".target-block-tab").removeClass("has-data")):"single"===(r.data("mode")||"multi")&&(s.find(".entity-chip").remove(),this.$dropdown&&this.$dropdown.find(".dropdown-item.selected, .tree-item.selected").removeClass("selected")),!s.find('.entity-chip[data-id="'+t+'"]').length){var n='';a&&a.image&&(n+=''),n+=''+this.escapeHtml(i)+"",n+='',n+="",s.append(n)}},removeSelection:function(e,t){var i=e.find(".entity-chips");e.find('.entity-chip[data-id="'+t+'"]').remove(),this.updateChipsVisibility(i)},updateChipsVisibility:function(t){var i=this,a=t.find(".entity-chip"),s=a.length,r=t.find(".chips-show-more-toggle"),n=t.hasClass("chips-expanded"),o=this.config.trans||{};if(r.remove(),s<=this.maxVisibleChips)return a.removeClass("chip-hidden"),void t.removeClass("chips-expanded chips-collapsed");var l=s-this.maxVisibleChips;if(n){a.removeClass("chip-hidden");var c=o.show_less||"Show less";t.append(' '+c+"")}else{a.each(function(t){t>=i.maxVisibleChips?e(this).addClass("chip-hidden"):e(this).removeClass("chip-hidden")});var d=(o.show_more||"Show {count} more").replace("{count}",l);t.addClass("chips-collapsed").removeClass("chips-expanded"),t.append(' '+d+"")}},loadExistingSelections:function(){var t=this,i={};this.$wrapper.find(".selection-group").each(function(){var a=e(this),s=a.closest(".target-block").data("blockType"),r=a.find(".include-picker");t.collectPickerEntities(r,s,i),t.enhanceMethodSelect(a.find(".include-method-select")),a.find(".exclude-row").each(function(){var a=e(this);t.collectPickerEntities(a.find(".exclude-picker"),s,i),t.enhanceMethodSelect(a.find(".exclude-method-select"))}),a.find(".group-excludes.has-excludes").length>0&&t.updateMethodSelectorLock(a,!0)}),Object.keys(i).forEach(function(a){var s=i[a];if(0!==s.ids.length){var r=s.ids.filter(function(e,t,i){return i.indexOf(e)===t});e.ajax({url:t.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getTargetEntitiesByIds",trait:"EntitySelector",entity_type:a,ids:JSON.stringify(r)},success:function(e){if(e.success&&e.entities){var i={};e.entities.forEach(function(e){i[e.id]=e}),s.pickers.forEach(function(e){var a=e.$picker,s=a.find(".entity-chips"),r=a.find(".include-values-data, .exclude-values-data"),n=[];e.ids.forEach(function(e){var a=s.find('.entity-chip-loading[data-id="'+e+'"]');if(i[e]){var r=i[e];n.push(r.id);var o='';r.image&&(o+=''),o+=''+t.escapeHtml(r.name)+"",o+='',o+="",a.replaceWith(o)}else a.remove()}),t.updateChipsVisibility(s),n.length!==e.ids.length&&(r.val(JSON.stringify(n)),t.serializeAllBlocks()),t.updateBlockStatus(a.closest(".target-block"))})}}})}})},collectPickerEntities:function(t,i,a){if(t.length){var s=this,r=t.find(".include-values-data, .exclude-values-data");if(r.length){var n=t.attr("data-value-type"),o=r.val()||"[]",l=[];try{l=JSON.parse(o)}catch(e){return}if("multi_numeric_range"!==n)if("multi_select_tiles"!==n){if("combination_attributes"===n)return"object"!=typeof l||null===l||0===Object.keys(l).length||r.val(JSON.stringify(l)),void s.loadCombinationAttributeGroups(t);if(l.length)if("pattern"!==n){var c=t.attr("data-search-entity")||i,d=t.find(".entity-chips"),p=this.getEntityTypeIcon(c);l.forEach(function(e){var t='';t+='',t+='Loading...',t+="",d.append(t)}),a[c]||(a[c]={ids:[],pickers:[]}),a[c].ids=a[c].ids.concat(l),a[c].pickers.push({$picker:t,ids:l})}else l.forEach(function(e){"string"==typeof e&&e?s.addPatternTag(t,e,!1):e&&e.pattern&&s.addPatternTag(t,e.pattern,!0===e.caseSensitive)})}else{if(!Array.isArray(l)||0===l.length)return;l.forEach(function(e){t.find('.tile-option[data-value="'+e+'"]').addClass("selected")})}else{if(!Array.isArray(l)||0===l.length)return;var u=t.find(".multi-range-chips");l.forEach(function(t){if(t&&(null!==t.min||null!==t.max)){var i;i=null!==t.min&&null!==t.max?t.min+" - "+t.max:null!==t.min?"≥ "+t.min:"≤ "+t.max;var a=e("",{class:"range-chip","data-min":null!==t.min?t.min:"","data-max":null!==t.max?t.max:""});a.append(e("",{class:"range-chip-text",text:i})),a.append(e("",o+=''+this.escapeHtml(t)+"",o+='',o+="",s.append(o)},getPatternTags:function(t){var i=[];return t.find(".pattern-tag:not(.draft-tag)").each(function(){var t=e(this).data("pattern"),a=1===e(this).data("caseSensitive")||"1"===e(this).data("caseSensitive");t&&i.push({pattern:t,caseSensitive:a})}),i},updateDraftTagCount:function(t,i,a){var s=this,r=t.find(".pattern-match-count"),n=r.find(".count-value"),o=t.closest(".target-block").data("blockType")||"products";n.html(''),r.show(),r.data("pattern",i),r.data("caseSensitive",a),r.data("entityType",o),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countPatternMatches",trait:"EntitySelector",pattern:i,field:"name",entity_type:o,case_sensitive:a?1:0},success:function(e){if(e.success){var i=parseInt(e.count,10)||0;n.text(i),r.show(),r.removeClass("count-zero count-found"),r.addClass(0===i?"count-zero":"count-found"),r.data("count",i);var a=t.closest(".selection-group");a.length&&s.updateGroupTotalCount(a)}else n.text("?"),r.show()},error:function(){n.text("?"),r.show()}})},updateConditionCountWithPendingPattern:function(t,i){this.config.trans;var a=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count").first();if(a.length){var s=t.hasClass("exclude-row"),r=(s?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(r){var n=s?t.find(".exclude-picker"):t.find(".include-picker");if("pattern"===(n.data("valueType")||"none")){var o=this.getPatternTags(n);if(i&&o.push({pattern:i,caseSensitive:!1}),0!==o.length){var l=t.closest(".target-block").data("blockType")||"products";a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),a.data("conditionData",{method:r,values:o,blockType:l,isExclude:s}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:r,values:JSON.stringify(o),block_type:l},success:function(e){if(e&&e.success){var t=e.count||0;a.removeClass("no-matches clickable"),0===t?(a.find(".preview-count").text(t),a.addClass("no-matches").show()):(a.find(".preview-count").text(t),a.addClass("clickable").show())}else a.hide().removeClass("clickable")},error:function(){a.hide().removeClass("clickable")}})}else a.hide()}}else a.hide()}},fetchPatternMatchCount:function(t,i,a){var s=t.closest(".exclude-row"),r=-1!==((s.length?s.find(".exclude-method-select"):t.closest(".selection-group").find(".include-method-select")).val()||"").indexOf("reference")?"reference":"name",n=t.closest(".target-block").data("blockType")||"products";a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countPatternMatches",trait:"EntitySelector",pattern:i,field:r,entity_type:n,case_sensitive:0},success:function(e){if(e&&e.success){var t=e.count||0;a.find(".preview-count").text(t),a.removeClass("no-matches clickable").show(),0===t?a.addClass("no-matches"):a.addClass("clickable")}else a.hide()},error:function(){a.hide()}})},getPickerValues:function(t,i){switch(i){case"entity_search":var a=[];return t.find(".entity-chip").each(function(){var t=e(this).data("id");t&&a.push(t)}),a;case"pattern":var s=this.getPatternTags(t),r=t.find(".draft-tag .pattern-input"),n=e.trim(r.val());if(n){var o="1"===r.closest(".draft-tag").attr("data-case-sensitive");s.push({pattern:n,caseSensitive:o})}return s;case"numeric_range":return{min:t.find(".range-min-input").val()||null,max:t.find(".range-max-input").val()||null};case"date_range":return{from:t.find(".date-from-input").val()||null,to:t.find(".date-to-input").val()||null};case"select":return[t.find(".select-value-input").val()];case"boolean":return[!0];default:return[]}},updateConditionCount:function(t){this.config.trans;var i=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count").first();if(i.length){var a=t.hasClass("exclude-row"),s=(a?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(s){var r=a?t.find(".exclude-picker"):t.find(".include-picker"),n=r.data("valueType")||"none",o=this.getPickerValues(r,n),l=!o||Array.isArray(o)&&0===o.length||"object"==typeof o&&!Array.isArray(o)&&("combination_attributes"===n&&void 0!==o.attributes&&0===Object.keys(o.attributes).length||"combination_attributes"!==n&&0===Object.keys(o).length);if("none"!==n&&"boolean"!==n&&l)i.hide();else{var c=t.closest(".target-block").data("blockType")||"products";i.find(".preview-count").html(''),i.removeClass("clickable no-matches").show(),i.data("conditionData",{method:s,values:o,blockType:c,isExclude:a}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:s,values:JSON.stringify(o),block_type:c},success:function(e){if(e&&e.success){var t=e.count||0;i.removeClass("no-matches clickable"),0===t?(i.find(".preview-count").text(t),i.addClass("no-matches").show()):(i.find(".preview-count").text(t),i.addClass("clickable").show())}else i.hide().removeClass("clickable")},error:function(){i.hide().removeClass("clickable")}})}}else i.hide()}},updateGroupCounts:function(t){var i=this,a=t.find(".group-include");a.length&&this.updateConditionCount(a),t.find(".exclude-row").each(function(){i.updateConditionCount(e(this))}),this.updateGroupTotalCount(t)},updateGroupTotalCount:function(t){var i=t.closest(".target-block").data("blockType")||"products",a=t.find(".group-header .group-count-badge"),s=t.find(".group-modifier-limit"),r=this.serializeGroup(t,i);if(!r.include||!r.include.method)return a.hide(),void s.attr("placeholder","–");a.html('').show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countGroupItems",trait:"EntitySelector",group_data:JSON.stringify(r),block_type:i},success:function(e){if(e&&e.success){var n=e.final_count||0,o=e.exclude_count||0,l=' '+n;o>0&&(l+=' (-'+o+")"),a.html(l),a.addClass("clickable").show(),a.data("groupData",r),a.data("blockType",i),a.data("finalCount",n),s.attr("placeholder",n);var c=t.find(".group-preview-badge .preview-count");if(c.length){var d=parseInt(s.val(),10),p=d>0&&dn&&(n=t)});var o=n+1,l=this.buildMethodOptions(r,!1),c=(this.buildMethodOptions(r,!0),'
');c+='
',c+='',c+='',c+='',c+='',c+="",c+='",c+="
",c+='
',c+='
',c+='
',c+='
',c+='",c+=' 0',c+='',c+="
",c+='",c+="
",c+="
",c+='
',c+='",c+="
",c+='
',c+='',c+=''+(s.limit||"Limit")+"",c+='',c+="",c+='',c+=''+(s.sort||"Sort")+"",c+='",c+='",c+="",c+='',c+=' ',c+="",c+="
",c+="
",c+="
",a.append(c);var d=a.find('.selection-group[data-group-index="'+o+'"]');this.enhanceMethodSelect(d.find(".include-method-select")),d.find(".include-method-select").val("all").trigger("change"),this.updateBlockStatus(t),this.serializeAllBlocks()},removeGroup:function(e,t){e.remove();var i=t.find(".groups-container");if(0===i.find(".selection-group").length){var a='
';a+=''+this.getEmptyStateText(t)+"",a+="
",i.html(a)}this.updateBlockStatus(t),this.serializeAllBlocks(),this.updateTabBadges()},clearAllConditions:function(){var t=this;this.$wrapper.find(".target-block").each(function(){var i=e(this),a=i.find(".groups-container");a.find(".selection-group").remove();var s='
';s+=''+t.getEmptyStateText(i)+"",s+="
",a.html(s),t.updateBlockStatus(i)}),this.serializeAllBlocks(),this.updateTabBadges(),this.updateHeaderTotalCount()},switchToBlock:function(e){this.$wrapper.find(".target-block-tab").removeClass("active"),this.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').addClass("active"),this.$wrapper.find(".target-block").removeClass("active").hide(),this.$wrapper.find('.target-block[data-block-type="'+e+'"]').addClass("active").show(),this.hideDropdown()},updateTabBadges:function(){var t=this;this.$wrapper.find(".target-block-tab").each(function(){var i=e(this),a=i.data("blockType"),s=t.$wrapper.find('.target-block[data-block-type="'+a+'"]').find(".selection-group").length,r=i.find(".tab-badge");s>0?(r.length?r.addClass("loading").html(''):i.append(''),i.addClass("has-data"),t.fetchProductCount(a,i)):(r.remove(),i.removeClass("has-data"))}),this.updateTargetSwitchState()},updateTargetSwitchState:function(){var t=this.$wrapper.find(".prestashop-switch");if(t.length){var i=!1;this.$wrapper.find(".target-block").each(function(){if(e(this).find(".selection-group").length>0)return i=!0,!1}),i?t.find('input[value="0"]').prop("checked",!0):t.find('input[value="1"]').prop("checked",!0)}},fetchProductCount:function(t,i){var a=this,s={},r=this.$wrapper.find('input[name="'+this.config.name+'"]'),n={};try{n=JSON.parse(r.val()||"{}")}catch(e){n={}}var o=n[t]&&n[t].groups?n[t].groups:[];if(0===o.length)return i.find(".tab-badge").remove(),i.removeClass("has-data"),void i.removeData("previewData");var l=i.find(".tab-badge");l.length?l.addClass("loading").html(''):(l=e(''),i.append(l)),i.addClass("has-data"),s[t]={groups:o},e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewEntitySelector",trait:"EntitySelector",conditions:JSON.stringify(s),block_type:t,limit:10},success:function(e){e.success?(i.find(".tab-badge").removeClass("loading").html(' '+e.count),i.data("previewData",e),a.updateHeaderTotalCount()):i.find(".tab-badge").remove()},error:function(){i.find(".tab-badge").remove(),a.updateHeaderTotalCount()}})},updateHeaderTotalCount:function(){var t=0;this.$wrapper.find(".target-block-tab .tab-badge").each(function(){var i=e(this);if(!i.hasClass("loading")){var a=parseInt(i.text(),10);isNaN(a)||(t+=a)}});var i=this.$wrapper.find(".trait-total-count");t>0?i.text(t).show():i.hide(),this.updateShowAllToggle()},updateShowAllToggle:function(){var e=this.$wrapper.find(".trait-show-all-toggle");if(e.length){var t=e.find(".show-all-checkbox"),i=this.$wrapper.find(".target-block-tab.has-data").length>0;t.prop("checked",!i)}},updateBlockStatus:function(e){var t=e.find(".block-status"),i=e.data("blockType"),a=this.config.blocks[i]||{},s=this.config.trans||{},r=this.getBlockGroups(e);0===r.length?!1!==this.config.emptyMeansAll?t.text((s.all||"All")+" "+(a.entity_label_plural||"items")):t.text(s.nothing_selected||"Nothing selected"):t.text(r.length+" "+(1===r.length?s.group||"group":s.groups||"groups"))},getEmptyStateText:function(e){var t=e.data("blockType"),i=e.data("mode")||"multi",a=this.config.blocks[t]||{},s=this.config.trans||{},r=!1!==this.config.emptyMeansAll;return"single"===i?s.no_item_selected||"No item selected":r?(s.all||"All")+" "+(a.entity_label_plural||"items")+" "+(s.included||"included"):s.nothing_selected||"Nothing selected"},serializeGroup:function(t,i){var a=this,s=t.find(".include-method-select").val()||"all",r=t.find(".include-picker"),n=this.getPickerValues(r),o=[];t.find(".group-excludes.has-excludes").length&&t.find(".exclude-row").each(function(){var t=e(this),i=t.find(".exclude-method-select").val()||null,s=t.find(".exclude-picker"),r=a.getPickerValues(s);i&&r&&(!Array.isArray(r)||r.length>0)&&o.push({method:i,values:r})});var l={include:{method:s,values:n}};o.length>0&&(l.excludes=o);var c=this.getGroupModifiers(t);return(c.limit||c.sort_by)&&(l.modifiers=c),l},serializeAllBlocks:function(t){var i=this,a={};this.$wrapper.find(".target-block").each(function(){var t=e(this),s=t.data("blockType"),r=i.getBlockGroups(t);r.length>0&&(a[s]={groups:r}),i.updateBlockStatus(t)}),this.$wrapper.find('input[name="'+this.config.name+'"]').val(JSON.stringify(a)),this.updateTabBadges(),this.countUpdateTimeout&&clearTimeout(this.countUpdateTimeout),this.countUpdateTimeout=setTimeout(function(){if(t&&t.length){i.updateConditionCount(t);var e=t.closest(".selection-group");e.length&&i.updateGroupTotalCount(e)}else i.updateAllConditionCounts()},500)},getBlockGroups:function(t){var i=this,a=[];return t.find(".selection-group").each(function(){var t=e(this),s=t.find(".include-method-select").val()||"all",r=t.find(".include-picker"),n=i.getPickerValues(r);if(!i.isConditionValid(s,n,r))return!0;var o=[];t.find(".group-excludes.has-excludes").length&&t.find(".exclude-row").each(function(){var t=e(this),a=t.find(".exclude-method-select").val()||null,s=t.find(".exclude-picker"),r=i.getPickerValues(s);a&&i.isConditionValid(a,r,s)&&o.push({method:a,values:r})});var l={include:{method:s,values:n}},c=e.trim(t.attr("data-group-name")||"");c&&(l.name=c),o.length>0&&(l.excludes=o);var d=i.getGroupModifiers(t);(d.limit||d.sort_by)&&(l.modifiers=d),a.push(l)}),a},getGroupModifiers:function(e){var t=e.find(".group-modifier-limit").val(),i=e.find(".group-modifier-sort").val()||"sales",a=e.find(".group-modifiers .btn-sort-dir").data("dir")||"DESC";return{limit:t?parseInt(t,10):null,sort_by:i||null,sort_dir:a||"DESC"}},getPickerValues:function(t){var i=t.attr("data-value-type")||"entity_search",a=[];switch(i){case"entity_search":t.find(".entity-chip").each(function(){var t=e(this).data("id");a.push(isNaN(t)?t:Number(t))});break;case"pattern":a=this.getPatternTags(t);var s=t.find(".draft-tag .pattern-input"),r=e.trim(s.val());if(r){var n="1"===s.closest(".draft-tag").attr("data-case-sensitive");a.push({pattern:r,caseSensitive:n})}break;case"numeric_range":var o=t.find(".range-min-input").val(),l=t.find(".range-max-input").val();""===o&&""===l||(a={min:""!==o?parseFloat(o):null,max:""!==l?parseFloat(l):null});break;case"date_range":var c=t.find(".date-from-input").val(),d=t.find(".date-to-input").val();(c||d)&&(a={from:c||null,to:d||null});break;case"select":var p=t.find(".select-value-input").val();p&&(a=[p]);break;case"boolean":a=[!0];break;case"multi_numeric_range":var u=[];t.find(".range-chip").each(function(){var t=e(this),i=t.data("min"),a=t.data("max");u.push({min:""!==i&&void 0!==i?parseFloat(i):null,max:""!==a&&void 0!==a?parseFloat(a):null})}),u.length>0&&(a=u);break;case"multi_select_tiles":t.find(".tile-option.selected").each(function(){a.push(e(this).data("value"))});break;case"combination_attributes":var h={};if(t.find(".comb-attr-value.selected").each(function(){var t=e(this).data("groupId").toString(),i=e(this).data("valueId");h[t]||(h[t]=[]),h[t].push(i)}),Object.keys(h).length>0){var f,v=t.find(".combination-attributes-picker").data("combinationMode")||this.config.combinationMode||"products";f="toggle"===v?t.find(".comb-mode-radio:checked").val()||"products":v,a={mode:f,attributes:h}}}return a},isConditionValid:function(e,t,i){if("all"===e)return!0;var a=i.attr("data-value-type")||"entity_search";return"boolean"===a||(Array.isArray(t)?t.length>0:"object"==typeof t&&null!==t&&("combination_attributes"===a&&void 0!==t.attributes?Object.keys(t.attributes).length>0:Object.keys(t).some(function(e){return null!==t[e]&&""!==t[e]})))},updateAllConditionCounts:function(){var t=this;this.$wrapper.find(".target-block.active .selection-group").each(function(){t.updateGroupCounts(e(this))})},updateGroupCounts:function(t){var i=this,a=t.find(".group-include");a.length&&this.updateConditionCount(a),t.find(".exclude-row").each(function(){i.updateConditionCount(e(this))}),this.updateGroupTotalCount(t)},updateConditionCount:function(t){this.config.trans;var i=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count").first();if(i.length){var a=t.hasClass("exclude-row"),s=(a?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(s){var r=a?t.find(".exclude-picker"):t.find(".include-picker"),n=r.data("valueType")||"none",o=this.getPickerValues(r,n),l=!o||Array.isArray(o)&&0===o.length||"object"==typeof o&&!Array.isArray(o)&&("combination_attributes"===n&&void 0!==o.attributes&&0===Object.keys(o.attributes).length||"combination_attributes"!==n&&0===Object.keys(o).length);if("none"!==n&&"boolean"!==n&&l)i.hide();else{var c=t.closest(".target-block").data("blockType")||"products";i.find(".preview-count").html(''),i.removeClass("clickable no-matches").show(),i.data("conditionData",{method:s,values:o,blockType:c,isExclude:a}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:s,values:JSON.stringify(o),block_type:c},success:function(e){if(e&&e.success){var t=e.count||0;i.removeClass("no-matches clickable"),0===t?(i.find(".preview-count").text(t),i.addClass("no-matches").show()):(i.find(".preview-count").text(t),i.addClass("clickable").show())}else i.hide().removeClass("clickable")},error:function(){i.hide().removeClass("clickable")}})}}else i.hide()}},updateGroupTotalCount:function(t){var i=t.closest(".target-block").data("blockType")||"products",a=t.find(".group-header .group-count-badge"),s=t.find(".group-modifier-limit"),r=this.serializeGroup(t,i);if(!r.include||!r.include.method)return a.hide(),void s.attr("placeholder","–");a.html('').show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countGroupItems",trait:"EntitySelector",group_data:JSON.stringify(r),block_type:i},success:function(e){if(e&&e.success){var n=e.final_count||0,o=e.exclude_count||0,l=' '+n;o>0&&(l+=' (-'+o+")"),a.html(l),a.addClass("clickable").show(),a.data("groupData",r),a.data("blockType",i),a.data("finalCount",n),s.attr("placeholder",n);var c=t.find(".group-preview-badge .preview-count");if(c.length){var d=parseInt(s.val(),10),p=d>0&&d';s+=' '+(a.except||"EXCEPT")+"",s+="",s+='
',s+=this.buildExcludeRowHtml(t,0),s+="
",s+='",i.addClass("has-excludes").html(s),this.updateMethodSelectorLock(e,!0),this.serializeAllBlocks()},addExcludeRow:function(t,i){var a=t.find(".exclude-rows-container"),s=-1;a.find(".exclude-row").each(function(){var t=parseInt(e(this).data("excludeIndex"),10);t>s&&(s=t)});var r=s+1,n=this.buildExcludeRowHtml(i,r);a.append(n);var o=a.find('.exclude-row[data-exclude-index="'+r+'"]');this.enhanceMethodSelect(o.find(".exclude-method-select")),this.serializeAllBlocks()},buildExcludeRowHtml:function(t,i){var a=t.data("blockType"),s=(this.config.blocks[a]||{}).selection_methods||{},r=this.config.trans||{},n=this.buildMethodOptions(s,!0),o=a,l="entity_search";e.each(s,function(e,t){return"all"===e||(o=t.search_entity||a,l=t.value_type||"entity_search",!1)});var c='
';return c+='
',c+='
',c+='",c+=' 0',c+='',c+="
",c+='",c+="
",(c+=this.buildValuePickerHtml("exclude",l,o,s))+"
"},removeExcludeRow:function(e,t,i){var a=t.find(".exclude-rows-container"),s=this.config.trans||{};e.remove(),0===a.find(".exclude-row").length&&(t.find(".group-excludes").removeClass("has-excludes").html('"),this.updateMethodSelectorLock(t,!1)),this.serializeAllBlocks()},buildMethodOptions:function(t,i){var a=this,s=this.config.trans||{},r="",n={select_by:s.select_by||"Select by...",filter_by:s.filter_by||"Filter by..."},o={},l={};return e.each(t,function(e,t){if(i&&"all"===e)return!0;var a=t.group||"";a?(o[a]||(o[a]={}),o[a][e]=t):l[e]=t}),e.each(l,function(e,t){r+=a.buildMethodOption(e,t)}),e.each(o,function(t,i){var s=n[t]||t.replace(/_/g," ");r+='',e.each(i,function(e,t){r+=a.buildMethodOption(e,t)}),r+=""}),r},buildMethodOption:function(e,t){var i='"},buildValuePickerHtml:function(e,t,i,a){var s=this.config.trans||{},r=e+"-picker",n=e+"-chips",o=e+"-values-data",l="";if("none"===t)return l='";switch(l='
',t){case"entity_search":var c=s.no_items_selected||"No items selected - use search below";l+='
',l+='",l+='';break;case"pattern":var d=""+this.escapeHtml(s.pattern_help_title||"Pattern Syntax")+"";d+='
',d+='
* '+this.escapeHtml(s.pattern_help_wildcard||"any text (wildcard)")+"
",d+='
{number} '+this.escapeHtml(s.pattern_help_number||"any number (e.g. 100, 250)")+"
",d+='
{letter} '+this.escapeHtml(s.pattern_help_letter||"single letter (A-Z)")+"
",d+="
",d+='
',d+=""+this.escapeHtml(s.pattern_help_examples||"Examples:")+"",d+='
*cotton* '+this.escapeHtml(s.pattern_example_1||'contains "cotton"')+"
",d+='
iPhone {number} Pro* '+this.escapeHtml(s.pattern_example_2||'matches "iPhone 15 Pro Max"')+"
",d+='
Size {letter} '+this.escapeHtml(s.pattern_example_3||'matches "Size M", "Size L"')+"
",d+="
";var p=s.no_patterns||"No patterns - press Enter to add";l+='
',l+='
',l+='
',l+='',l+='',l+=' ',l+='',l+="
",l+='',l+='',l+="",l+="
",l+='';break;case"numeric_range":l+='
',l+='',l+='-',l+='',l+="
",l+='';break;case"multi_numeric_range":l+='
',l+='
',l+='
',l+='',l+='-',l+='',l+='',l+="
",l+="
",l+='';break;case"multi_select_tiles":l+='
',l+="
",l+='';break;case"date_range":l+='
',l+='',l+='-',l+='',l+="
",l+='';break;case"select":l+='
',l+='',l+="
",l+='';break;case"boolean":l+='
',l+=''+this.escapeHtml(s.yes||"Yes")+"",l+="
",l+='';break;case"combination_attributes":this.escapeHtml(s.combination_help_title||"Combination Targeting"),this.escapeHtml(s.combination_help_desc||"Select attributes to target specific product combinations."),this.escapeHtml(s.combination_help_logic||"Logic:"),this.escapeHtml(s.combination_help_within||"Within group: OR (Red OR Blue)"),this.escapeHtml(s.combination_help_between||"Between groups: AND (Color AND Size)");var u=this.config.combinationMode||"products",h="toggle"===u,f=h?"products":u;l+='
',h&&(l+='
',l+='",l+='",l+="
"),l+='
',l+=' '+this.escapeHtml(s.loading||"Loading...")+"",l+="
",l+="
",l+='';break;default:l+=''}return l+"
"},getSortOptionsArray:function(e){var t=this.config.trans||{};switch(e){case"products":return[{value:"sales",label:t.sort_bestsellers||"Best sellers"},{value:"date_add",label:t.sort_newest||"Newest"},{value:"price",label:t.sort_price||"Price"},{value:"name",label:t.sort_name||"Name"},{value:"position",label:t.sort_position||"Position"},{value:"quantity",label:t.sort_stock||"Stock quantity"},{value:"random",label:t.sort_random||"Random"}];case"categories":return[{value:"name",label:t.sort_name||"Name"},{value:"position",label:t.sort_position||"Position"},{value:"product_count",label:t.sort_products||"Products count"},{value:"date_add",label:t.sort_newest||"Newest"}];default:return[{value:"name",label:t.sort_name||"Name"},{value:"date_add",label:t.sort_newest||"Newest"}]}},getSortIconClass:function(e,t){var i="ASC"===t;switch(e){case"name":return i?"icon-sort-alpha-asc":"icon-sort-alpha-desc";case"price":case"quantity":case"product_count":case"date_add":case"newest_products":case"position":return i?"icon-sort-numeric-asc":"icon-sort-numeric-desc";case"sales":case"total_sales":default:return i?"icon-sort-amount-asc":"icon-sort-amount-desc";case"random":return"icon-random"}},cycleSortOption:function(e,t){for(var i,a,s,r=this.getSortOptionsArray(t),n=e.data("sort")||"sales",o=e.data("dir")||"DESC",l=-1,c=0;c0)return t=!0,!1}),t?(this.clearValidationError(),!0):(this.showValidationError(),!1)},showValidationError:function(){this.$wrapper.addClass("has-validation-error");var t=this.$wrapper.data("required-message")||"Please select at least one item";this.$wrapper.find(".trait-validation-error").remove();var i=e("
",{class:"trait-validation-error",html:' '+t});this.$wrapper.find(".condition-trait-header").after(i),e("html, body").animate({scrollTop:this.$wrapper.offset().top-100},300),this.$wrapper.find(".condition-trait-body").is(":visible")||(this.$wrapper.find(".condition-trait-body").slideDown(200),this.$wrapper.removeClass("collapsed"))},clearValidationError:function(){this.$wrapper.removeClass("has-validation-error"),this.$wrapper.find(".trait-validation-error").remove()}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.methods={initMethodDropdowns:function(){var t=this;this.$wrapper.find(".include-method-select").each(function(){t.enhanceMethodSelect(e(this))}),this.$wrapper.find(".exclude-method-select").each(function(){t.enhanceMethodSelect(e(this))}),this.initMethodInfoPlaceholders()},initMethodInfoPlaceholders:function(){var t=this;this.$wrapper.find(".selection-group").each(function(){var i=e(this),a=i.closest(".target-block").data("blockType")||"products",s=i.find(".include-method-select").val()||"all";t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),s,a),i.find(".exclude-row").each(function(){var i=e(this),s=i.find(".exclude-method-select").val();s&&t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),s,a)})})},enhanceMethodSelect:function(t){var i=this;if(t.length&&!t.data("methodDropdownInit")){t.data("methodDropdownInit",!0),t.addClass("method-select-hidden");var a=t.find("option:selected"),s=a.data("icon")||"icon-caret-down",r=a.text(),n='
';n+='',n+=''+this.escapeHtml(r)+"",n+='';var o=e(n+="
");t.after(o),o.on("click",function(e){e.preventDefault(),e.stopPropagation(),t.closest(".method-selector-wrapper").hasClass("selector-locked")||i.showMethodDropdownMenu(t,o)}),t.on("change.methodDropdown",function(){i.updateMethodTrigger(t,o)})}},updateMethodTrigger:function(e,t){var i=e.find("option:selected"),a=i.data("icon")||"icon-caret-down",s=i.text();t.find(".method-trigger-icon").attr("class",a+" method-trigger-icon"),t.find(".method-trigger-label").text(s)},showMethodDropdownMenu:function(t,i){var a=this;this.closeMethodDropdownMenu();var s=this.buildMethodDropdownMenuHtml(t),r=e(s),n=i.offset(),o=i.outerWidth(),l=i.outerHeight();r.css({position:"absolute",top:n.top+l+2,left:n.left,minWidth:o,zIndex:10001}),e("body").append(r),this.$methodDropdownMenu=r,this.$methodDropdownSelect=t,this.$methodDropdownTrigger=i,r.on("click",".method-dropdown-item",function(i){i.preventDefault(),i.stopPropagation();var s=e(this).data("value");t.val(s).trigger("change"),a.closeMethodDropdownMenu()}),e(document).on("click.methodDropdown",function(t){e(t.target).closest(".method-dropdown-menu, .method-dropdown-trigger").length||a.closeMethodDropdownMenu()}),e(document).on("keydown.methodDropdown",function(e){27===e.keyCode&&a.closeMethodDropdownMenu()})},buildMethodDropdownMenuHtml:function(t){var i=this,a='
';return t.children("option").each(function(){var t=e(this),s=t.data("icon")||"icon-asterisk",r=t.text(),n=t.val(),o=t.is(":selected");a+='
',a+='',a+=''+i.escapeHtml(r)+"",o&&(a+=''),a+="
"}),t.children("optgroup").each(function(){var t=e(this),s=t.attr("label")||"";a+='
',a+='
'+i.escapeHtml(s)+"
",a+='
',t.children("option").each(function(){var t=e(this),s=t.data("icon")||"icon-cog",r=t.text(),n=t.val(),o=t.is(":selected");a+='
',a+='',a+=''+i.escapeHtml(r)+"",o&&(a+=''),a+="
"}),a+="
",a+="
"}),a+="
"},closeMethodDropdownMenu:function(){this.$methodDropdownMenu&&(this.$methodDropdownMenu.remove(),this.$methodDropdownMenu=null),this.$methodDropdownSelect=null,this.$methodDropdownTrigger=null,e(document).off("click.methodDropdown keydown.methodDropdown")},populateTiles:function(t,i,a){var s=t.find(".multi-select-tiles");s.empty(),a?s.attr("data-exclusive","true"):s.removeAttr("data-exclusive"),e.each(i,function(t,i){var a="object"==typeof i?i.label:i,r="object"==typeof i&&i.icon?i.icon:null,n="object"==typeof i&&i.color?i.color:null,o="tile-option";n&&(o+=" tile-color-"+n);var l=e("',l+="
",l+='
',l+='',l+="
",s.length>0){if(l+='
',l+=this.renderPreviewItems(s),l+="
",i.hasMore){var c=i.count-s.length;l+='"}}else l+='
'+(o.no_preview||"No items to preview")+"
";var d=e(l+="");e("body").append(d),this.$previewList=d.find(".preview-list"),this.allPreviewData=i;var p=this;d.find(".preview-close").on("click",function(){p.hidePreviewPopover()}),d.find(".preview-filter-input").on("input",function(){var t=e(this).val().toLowerCase().trim();p.filterPreviewItems(t)}),d.find(".btn-load-more-preview").on("click",function(){p.loadMorePreviewItems(t,e(this))});var u=a.offset(),h=a.outerHeight(),f=a.outerWidth(),v=d.outerWidth(),m=u.left+f/2-v/2,g=e(window).width()-v-10;m=Math.max(10,Math.min(m,g)),d.css({position:"absolute",top:u.top+h+8,left:m,zIndex:1e4}),d.addClass("show"),this.$previewPopover=d}},renderPreviewItems:function(t){var i="";return e.each(t,function(e,t){var a="preview-item"+(t.isCombination?" is-combination":""),s=(t.attributes||"").toLowerCase();i+='
',t.image?i+='':i+='',i+='
',i+=''+t.name+"",t.attributes&&(i+=''+t.attributes+""),t.reference&&(i+=''+t.reference+""),i+="
",i+="
"}),i},filterPreviewItems:function(t){if(this.$previewList){var i=this.$previewList.find(".preview-item");t?i.each(function(){var i=e(this),a=i.data("name")||"",s=i.data("ref")||"",r=i.data("attrs")||"";-1!==a.indexOf(t)||-1!==s.indexOf(t)||-1!==r.indexOf(t)?i.show():i.hide()}):i.show()}},loadMorePreviewItems:function(t,i){var a=this,s=this.previewBlockType,r=i.closest(".preview-footer"),n=r.find(".load-more-select"),o=parseInt(n.val(),10)||20,l=this.$wrapper.find('input[name="'+this.config.name+'"]'),c={};try{c=JSON.parse(l.val()||"{}")}catch(e){return}var d=c[s]&&c[s].groups?c[s].groups:[];if(0!==d.length){var p={};p[s]={groups:d},i.prop("disabled",!0).find("i").removeClass("icon-plus").addClass("icon-spinner icon-spin"),n.prop("disabled",!0),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewTargetConditions",trait:"TargetConditions",conditions:JSON.stringify(p),block_type:s,limit:a.previewLoadedCount+o,offset:0},success:function(e){var s=e.items||e.products||[];if(e.success&&s.length>0){if(a.$previewList.html(a.renderPreviewItems(s)),a.previewLoadedCount=s.length,e.hasMore){var o=e.count-s.length;r.find(".remaining-count").text(o);var l=n.find("option:last");"10"!==l.val()&&"20"!==l.val()&&"50"!==l.val()&&"100"!==l.val()&&l.val(o).text(a.config.trans.all+" ("+o+")"),i.prop("disabled",!1).find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),n.prop("disabled",!1)}else r.remove();t.data("previewData",e),a.allPreviewData=e;var c=a.$previewPopover.find(".preview-filter-input").val();c&&a.filterPreviewItems(c.toLowerCase().trim())}},error:function(){i.prop("disabled",!1).find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),n.prop("disabled",!1)}})}},hidePreviewPopover:function(){this.$activeBadge&&(this.$activeBadge.removeClass("popover-open"),this.$activeBadge=null),this.$previewPopover&&(this.$previewPopover.remove(),this.$previewPopover=null)},showPatternPreviewModal:function(t,i,a,s){var r=this,n=this.config.trans||{},o=this.config.blocks&&this.config.blocks[i]?this.config.blocks[i]:{},l=o.entity_label_plural||"items",c=o.entity_label||"item",d='
';d+='
',d+='
',d+='',d+=' '+(n.preview||"Preview")+": "+this.escapeHtml(t)+"",d+="",d+=''+s+" "+(1===s?c:l)+"",d+='',d+="
",d+='
',d+='
'+(n.loading||"Loading...")+"
",d+="
",d+="
";var p=e(d+="
");e("body").append(p),p.find(".pattern-preview-close").on("click",function(){p.remove()}),p.on("click",function(t){e(t.target).hasClass("pattern-preview-modal-overlay")&&p.remove()}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewPatternMatches",trait:"TargetConditions",pattern:t,entity_type:i,case_sensitive:a?1:0,limit:50},success:function(e){if(e.success&&e.items){var t=e.items,i='
';if(0===t.length)i+='
'+(n.no_matches||"No matches found")+"
";else{for(var a=0;a',o.image&&(i+=''),i+=''+r.escapeHtml(o.name)+"",o.id&&(i+='#'+o.id+""),i+="
"}s>t.length&&(i+='
... '+(n.and||"and")+" "+(s-t.length)+" "+(n.more||"more")+"
")}i+="",p.find(".pattern-preview-content").html(i)}else p.find(".pattern-preview-content").html('
'+(n.error_loading||"Error loading preview")+"
")},error:function(){p.find(".pattern-preview-content").html('
'+(n.error_loading||"Error loading preview")+"
")}})},refreshGroupPreviewIfOpen:function(e){this.$activeBadge&&this.$previewPopover},showConditionPreviewPopover:function(t){var i=this,a=t.data("conditionData");if(a){this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t,this.config.trans;var s=a.blockType||"products",r=(this.config.blocks&&this.config.blocks[s]?this.config.blocks[s]:{}).entity_label_plural||"items";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.method,values:JSON.stringify(a.values),block_type:s,limit:10},success:function(e){if(t.removeClass("loading"),e.success){var a=e.items||[];i.showItemsPopover(t,a,e.count,e.hasMore,r,s,"condition")}},error:function(){t.removeClass("loading popover-open"),i.$activeBadge=null}})}},showGroupPreviewPopover:function(t,i,a){var s=this;if(i||(i=t.closest(".selection-group")),!a){var r=t.closest(".target-block");a=r.data("blockType")||"products"}var n=t.data("groupData");if(n||(n=this.serializeGroup(i,a)),n&&n.include){this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t,this.config.trans;var o=(this.config.blocks&&this.config.blocks[a]?this.config.blocks[a]:{}).entity_label_plural||"items";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(n),block_type:a,limit:10},success:function(e){if(t.removeClass("loading"),e.success){var i=e.items||[];s.showItemsPopover(t,i,e.count,e.hasMore,o,a,"group")}else t.removeClass("popover-open"),s.$activeBadge=null},error:function(){t.removeClass("loading popover-open"),s.$activeBadge=null}})}},showItemsPopover:function(t,i,a,s,r,n,o){var l=this,c=this.config.trans||{},d='
';d+='
',d+=''+a+" "+r+"",d+='',d+="
",i.length>0?(d+='
',d+=this.renderPreviewItems(i),d+="
",s&&(d+='")):d+='
'+(c.no_preview||"No items to preview")+"
";var p=e(d+="
");e("body").append(p),p.find(".preview-close").on("click",function(){l.hidePreviewPopover()});var u=t.offset(),h=t.outerHeight(),f=t.outerWidth(),v=p.outerWidth(),m=u.left+f/2-v/2,g=e(window).width()-v-10;m=Math.max(10,Math.min(m,g));var b=u.top+h+8;p.css({position:"absolute",top:b,left:m,zIndex:1e4}),p.addClass("show"),this.$previewPopover=p},renderPreviewItems:function(e){for(var t="",i=0;i',a.image?t+='':t+='
inventory_2
',t+='
',t+='
'+this.escapeHtml(a.name||"Unnamed")+"
";var s=[];a.reference&&s.push("Ref: "+a.reference),a.manufacturer&&s.push(a.manufacturer),a.category&&s.push(a.category),a.attributes&&s.push(a.attributes),s.length>0&&(t+='
'+this.escapeHtml(s.join(" • "))+"
"),t+="
",void 0!==a.price&&(t+='
'+this.formatPrice(a.price)+"
"),void 0===a.active||a.active||(t+='Inactive'),t+=""}return t},formatPrice:function(e){return"number"!=typeof e&&(e=parseFloat(e)||0),e.toFixed(2)+" €"},showFilterGroupPreviewPopover:function(t,i,a,s){var r=this;this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t,this.config.trans,e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:i,group_type:a,limit:10},success:function(e){if(t.removeClass("loading"),e.success){var i=e.items||[],n=e.count||0,o=e.hasMore||!1;r.showFilterGroupItemsPopover(t,i,n,o,"products",s,a)}else t.removeClass("popover-open"),r.$activeBadge=null},error:function(){t.removeClass("loading popover-open"),r.$activeBadge=null}})},showFilterGroupItemsPopover:function(t,i,a,s,r,n,o){var l=this,c=this.config.trans||{},d=("attribute"===o?c.attribute:c.feature,'
');d+='
',d+=''+a+" "+r+"",d+='',d+="
",i.length>0?(d+='
',d+=this.renderPreviewItems(i),d+="
",s&&(d+='")):d+='
'+(c.no_preview||"No items to preview")+"
";var p=e(d+="
");e("body").append(p),p.find(".preview-close").on("click",function(){l.hidePreviewPopover()});var u=t.offset(),h=t.outerHeight(),f=t.outerWidth(),v=p.outerWidth(),m=u.left+f/2-v/2,g=e(window).width()-v-10;m=Math.max(10,Math.min(m,g));var b=u.top+h+8;p.css({position:"absolute",top:b,left:m,zIndex:1e4}),p.addClass("show"),this.$previewPopover=p}}}(jQuery),function(e){"use strict";var t={instances:[],create:function(t){var i=function(){var t={config:{},$wrapper:null,$dropdown:null,activeGroup:null,searchTimeout:null,searchResults:[],searchTotal:0,searchOffset:0,searchQuery:"",isLoading:!1,loadMoreCount:20,viewMode:"list",currentSort:{field:"name",dir:"ASC"},refineQuery:"",refineNegate:!1,filters:{inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[]},filterableData:null,searchHistory:{},searchHistoryMax:10,searchHistoryKey:"targetConditionsSearchHistory",maxVisibleChips:20,$methodDropdownMenu:null,$methodDropdownSelect:null,$methodDropdownTrigger:null,$previewPopover:null,$activeBadge:null,$previewList:null,previewLoadedCount:0,previewBlockType:null,allPreviewData:null,countUpdateTimeout:null,init:function(t){if(this.config=e.extend({id:"target-conditions",name:"target_conditions",namePrefix:"target_",mode:"multi",blocks:{},ajaxUrl:"",trans:{}},t),this.$wrapper=e('[data-entity-selector-id="'+this.config.id+'"]'),this.$wrapper.length){"single"===this.config.mode&&(this.$wrapper.find(".btn-add-group").hide(),this.$wrapper.find(".group-excludes").hide(),this.$wrapper.find(".group-modifiers").hide());var i=this.$wrapper.closest(".form-group");i.addClass("condition-trait-fullwidth"),i.find(".col-lg-offset-3").removeClass("col-lg-offset-3"),this.createDropdown(),this.bindEvents(),this.loadExistingSelections(),this.loadSearchHistory(),this.initMethodDropdowns(),this.observeNewSelects();var a=this;setTimeout(function(){a.updateTabBadges(),a.updateAllConditionCounts()},100)}},observeNewSelects:function(){var t=this;"undefined"!=typeof MutationObserver&&new MutationObserver(function(i){i.forEach(function(i){i.addedNodes.length&&e(i.addedNodes).find(".include-method-select, .exclude-method-select").each(function(){t.enhanceMethodSelect(e(this))})})}).observe(this.$wrapper[0],{childList:!0,subtree:!0})},loadExistingSelections:function(){}},i=window._EntitySelectorMixins||{};return i.utils&&e.extend(t,i.utils),i.events&&e.extend(t,i.events),i.dropdown&&e.extend(t,i.dropdown),i.search&&e.extend(t,i.search),i.filters&&e.extend(t,i.filters),i.chips&&e.extend(t,i.chips),i.groups&&e.extend(t,i.groups),i.methods&&e.extend(t,i.methods),i.preview&&e.extend(t,i.preview),t}();return i.init(t),this.instances.push(i),i},init:function(e){return this.create(e)},validateAll:function(){for(var e=!0,t=0;t0&&!t.validateAll())return i.preventDefault(),!1})})}(jQuery); //# sourceMappingURL=entity-selector.min.js.map