- Add showFilterGroupPreviewPopover method in _preview.js - Make toggle-count badges clickable with data attributes - Add event binding for .toggle-count.clickable in _events.js - Add hover/active/loading styles for clickable toggle-count - Requires previewFilterGroupProducts AJAX handler in PHP backend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3 lines
158 KiB
JavaScript
3 lines
158 KiB
JavaScript
!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,""").replace(/'/g,"'")},escapeAttr:function(e){return null==e?"":String(e).replace(/&/g,"&").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("<div>",{class:"trait-validation-error",html:'<i class="icon-warning"></i> '+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('<option value="'+t.escapeAttr(e)+'">'+t.escapeHtml(i)+"</option>")})}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('<option value="'+t.escapeAttr(e)+'">'+t.escapeHtml(i)+"</option>")})}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('<input type="text" class="pattern-tag-edit">').val(a),r=e('<button type="button" class="btn-pattern-save" title="Save"><i class="icon-check"></i></button>'),n=e('<button type="button" class="btn-pattern-cancel" title="Cancel"><i class="icon-times"></i></button>'),o=e('<span class="pattern-edit-actions"></span>').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("<div>",{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&&f<u)return void t.showRangeInputError(o,t.config.trans.min_value_error||"Minimum value is "+u);if(null!==v&&v<u)return void t.showRangeInputError(l,t.config.trans.min_value_error||"Minimum value is "+u)}if(null!==f&&null!==v&&f>v)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("<span>",{class:"range-chip","data-min":c,"data-max":d});b.append(e("<span>",{class:"range-chip-text",text:m})),b.append(e("<button>",{type:"button",class:"btn-remove-range",html:'<i class="icon-times"></i>'})),n.append(b),o.val(""),l.val(""),t.serializeAllBlocks(s)}}}),this.$wrapper.on("click",".btn-remove-range",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".range-chip"),s=a.closest(".group-include, .exclude-row");a.remove(),t.serializeAllBlocks(s)}),this.$wrapper.on("keydown",".multi-range-container .range-min-input, .multi-range-container .range-max-input",function(t){13===t.keyCode&&(t.preventDefault(),e(this).closest(".multi-range-container").find(".btn-add-range").click())}),this.$wrapper.on("click",".tile-option",function(i){i.preventDefault();var a=e(this),s=a.closest(".multi-select-tiles"),r=a.closest(".group-include, .exclude-row");"true"===s.attr("data-exclusive")?a.hasClass("selected")?a.removeClass("selected"):(s.find(".tile-option").removeClass("selected"),a.addClass("selected")):a.toggleClass("selected"),t.serializeAllBlocks(r)}),this.$wrapper.on("click",".comb-attr-value",function(i){i.preventDefault();var a=e(this),s=a.closest(".group-include, .exclude-row"),r=a.closest(".value-picker");a.toggleClass("selected"),t.updateCombinationData(r),t.serializeAllBlocks(s)}),this.$wrapper.on("change",".comb-mode-radio",function(){var i=e(this).closest(".value-picker"),a=e(this).closest(".group-include, .exclude-row");t.updateCombinationData(i),t.serializeAllBlocks(a)}),this.$wrapper.on("click",".comb-select-all",function(i){i.preventDefault();var a=e(this).closest(".comb-attr-group"),s=e(this).closest(".value-picker"),r=e(this).closest(".group-include, .exclude-row");a.find(".comb-attr-value:visible").addClass("selected"),t.updateCombinationData(s),t.serializeAllBlocks(r)}),this.$wrapper.on("click",".comb-select-none",function(i){i.preventDefault();var a=e(this).closest(".comb-attr-group"),s=e(this).closest(".value-picker"),r=e(this).closest(".group-include, .exclude-row");a.find(".comb-attr-value").removeClass("selected"),t.updateCombinationData(s),t.serializeAllBlocks(r)}),this.$wrapper.on("input",".comb-attr-search",function(){var t=e(this).val().toLowerCase().trim();e(this).closest(".comb-attr-group").find(".comb-attr-value").each(function(){var i=e(this).data("name")||"";t&&-1===i.indexOf(t)?e(this).hide():e(this).show()})}),this.$wrapper.on("click",".btn-toggle-modifiers",function(t){t.preventDefault();var i=e(this).closest(".group-modifiers"),a=i.find(".group-modifiers-content");a.slideToggle(150,function(){i.toggleClass("expanded",a.is(":visible"))})}),this.$wrapper.on("change input",".group-modifier-limit",function(){var i=e(this).closest(".selection-group"),a=e(this),s=parseInt(a.val(),10),r=i.find(".group-header .group-count-badge").data("finalCount")||0,n=i.find(".group-preview-badge .preview-count");if(n.length&&r>0){var o=s>0&&s<r?s:r;n.text(o)}t.updateModifierButtonState(i),t.serializeAllBlocks(),t.refreshGroupPreviewIfOpen(i)}),this.$wrapper.on("change",".group-modifier-sort",function(){var i=e(this).closest(".selection-group");t.serializeAllBlocks(),t.refreshGroupPreviewIfOpen(i)}),this.$wrapper.on("click",".group-modifiers .btn-sort-dir",function(i){i.preventDefault();var a=e(this),s=a.closest(".selection-group"),r="DESC"===(a.data("dir")||"DESC")?"ASC":"DESC";a.data("dir",r),a.attr("data-dir",r);var n=a.find("i");"ASC"===r?n.removeClass("icon-sort-amount-desc").addClass("icon-sort-amount-asc"):n.removeClass("icon-sort-amount-asc").addClass("icon-sort-amount-desc"),t.serializeAllBlocks(),t.refreshGroupPreviewIfOpen(s)}),this.$wrapper.on("click",".group-preview-badge.clickable",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.closest(".selection-group"),r=a.closest(".target-block").data("blockType");a.hasClass("popover-open")?t.hidePreviewPopover():t.showGroupPreviewPopover(a,s,r)}),this.$wrapper.on("focus",".entity-search-input",function(){var i=e(this).closest(".value-picker"),a=e(this).closest(".selection-group"),s=e(this).closest(".target-block").data("blockType"),r=parseInt(a.data("groupIndex"),10),n=i.hasClass("include-picker")?"include":"exclude",o=i.attr("data-search-entity")||s,l=null;if("exclude"===n){var c=e(this).closest(".exclude-row");c.length&&(l=parseInt(c.data("excludeIndex"),10))}t.activeGroup&&t.activeGroup.searchEntity!==o&&(t.searchResults=[],t.searchOffset=0,t.searchQuery="",t.viewMode="list",t.resetFiltersWithoutSearch(),t.$dropdown.find(".dropdown-results").empty(),t.$dropdown.find(".filter-panel").removeClass("show"),t.$dropdown.find(".btn-toggle-filters").removeClass("active")),t.activeGroup={blockType:s,groupIndex:r,section:n,excludeIndex:l,searchEntity:o},t.searchOffset=0,t.searchQuery=e(this).val().trim(),t.updateFilterPanelForEntity(o),"products"===o&&t.loadFilterableData(),t.positionDropdown(e(this)),"tree"!==t.viewMode&&t.performSearch()}),this.$wrapper.on("input",".entity-search-input",function(){var i=e(this).val().trim();t.searchQuery=i,t.searchOffset=0,"tree"!==t.viewMode?(clearTimeout(t.searchTimeout),t.searchTimeout=setTimeout(function(){t.performSearch()},300)):t.filterCategoryTree(i)}),this.$dropdown.on("click",".history-item",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).data("query");if(a&&t.activeGroup){var s=t.$wrapper.find(".entity-search-input:focus");s.length||(s=t.$wrapper.find('.target-block[data-block-type="'+t.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+t.activeGroup.groupIndex+'"]').find(".entity-search-input").first()),s.val(a),t.searchQuery=a,t.searchOffset=0,t.performSearch()}}),this.$dropdown.on("click",".history-item .btn-delete-history",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".history-item"),s=a.data("query");s&&t.activeGroup&&(t.removeFromSearchHistory(t.activeGroup.searchEntity,s),a.fadeOut(150,function(){e(this).remove(),t.$dropdown.find(".history-item").length||t.performSearch()}))}),this.$dropdown.on("click",".dropdown-item",function(i){i.preventDefault();var a=e(this),s=a.data("id"),r=a.data("name"),n=a.hasClass("selected");if(t.activeGroup){var o,l,c=t.$wrapper.find('.target-block[data-block-type="'+t.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+t.activeGroup.groupIndex+'"]');if("include"===t.activeGroup.section)o=c.find(".include-picker"),l=c.find(".group-include");else{var d=c.find('.exclude-row[data-exclude-index="'+t.activeGroup.excludeIndex+'"]');o=d.find(".exclude-picker"),l=d}if(n)t.removeSelection(o,s),a.toggleClass("selected"),t.serializeAllBlocks(l);else{var p=t.getCurrentSingleSelection();if(p){var u=t.activeGroup.blockType;t.showReplaceConfirmation(p,{name:r,entityType:u},function(){t.addSelection(o,s,r,a.data()),a.addClass("selected"),t.serializeAllBlocks(l)})}else t.addSelection(o,s,r,a.data()),a.toggleClass("selected"),t.serializeAllBlocks(l)}}}),this.$wrapper.on("click",".chip-remove",function(i){i.stopPropagation();var a=e(this).closest(".entity-chip"),s=e(this).closest(".value-picker"),r=e(this).closest(".group-include, .exclude-row"),n=a.data("id");t.removeSelection(s,n),t.serializeAllBlocks(r),t.$dropdown&&t.$dropdown.hasClass("show")&&t.$dropdown.find('.dropdown-item[data-id="'+n+'"]').removeClass("selected")}),this.$wrapper.on("click",".chips-show-more-toggle",function(i){i.stopPropagation();var a=e(this).closest(".entity-chips");a.hasClass("chips-expanded")?a.removeClass("chips-expanded").addClass("chips-collapsed"):a.addClass("chips-expanded").removeClass("chips-collapsed"),t.updateChipsVisibility(a)}),this.$dropdown.on("click",".btn-select-all",function(i){if(i.preventDefault(),t.activeGroup){var a,s,r=t.$wrapper.find('.target-block[data-block-type="'+t.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+t.activeGroup.groupIndex+'"]');if("include"===t.activeGroup.section)a=r.find(".include-picker"),s=r.find(".group-include");else{var n=r.find('.exclude-row[data-exclude-index="'+t.activeGroup.excludeIndex+'"]');a=n.find(".exclude-picker"),s=n}t.$dropdown.find(".dropdown-item:visible").each(function(){if(!e(this).hasClass("selected")){var i=e(this).data("id"),s=e(this).data("name");t.addSelectionNoUpdate(a,i,s,e(this).data()),e(this).addClass("selected")}});var o=a.find(".entity-chips");t.updateChipsVisibility(o),t.serializeAllBlocks(s)}}),this.$dropdown.on("click",".btn-clear-selection",function(e){if(e.preventDefault(),t.activeGroup){var i,a,s=t.$wrapper.find('.target-block[data-block-type="'+t.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+t.activeGroup.groupIndex+'"]');if("include"===t.activeGroup.section)i=s.find(".include-picker"),a=s.find(".group-include");else{var r=s.find('.exclude-row[data-exclude-index="'+t.activeGroup.excludeIndex+'"]');i=r.find(".exclude-picker"),a=r}i.find(".entity-chips").empty().removeClass("chips-expanded chips-collapsed"),t.$dropdown.find(".dropdown-item").removeClass("selected"),t.serializeAllBlocks(a)}}),this.$dropdown.on("click",".btn-confirm-dropdown",function(e){e.preventDefault(),t.hideDropdown()}),this.$dropdown.on("click",".btn-cancel-dropdown",function(e){e.preventDefault(),t.hideDropdown()}),this.$dropdown.on("click",".btn-load-more",function(e){if(e.preventDefault(),!t.isLoading){var i=parseInt(t.$dropdown.find(".load-more-select").val(),10)||20;t.searchOffset=t.searchResults.length,t.loadMoreCount=i,t.performSearch(!0)}}),this.$dropdown.on("change",".sort-field-select",function(){t.currentSort.field=e(this).val(),t.refreshSearch()}),this.$dropdown.on("click",".btn-sort-dir",function(i){i.preventDefault();var a=e(this),s="ASC"===a.data("dir")?"DESC":"ASC";a.data("dir",s),a.find("i").attr("class","ASC"===s?"icon-sort-alpha-asc":"icon-sort-alpha-desc"),t.currentSort.dir=s,t.refreshSearch()}),this.$dropdown.on("change",".view-mode-select",function(){var i=e(this).val();t.viewMode=i,t.$dropdown.removeClass("view-list view-tree view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8"),t.$dropdown.addClass("view-"+i);var a=t.activeGroup?t.activeGroup.searchEntity:"";"tree"!==i||"categories"!==a&&"cms_categories"!==a?"tree"!==i&&t.performSearch():t.loadCategoryTree()}),this.$dropdown.on("click",".category-tree .tree-toggle",function(i){i.stopPropagation();var a=e(this).closest(".tree-item"),s=t.$dropdown.find(".tree-item");a.toggleClass("collapsed");var r=a.hasClass("collapsed");e(this).find("i").toggleClass("icon-caret-down",!r).toggleClass("icon-caret-right",r);for(var n=t.findTreeDescendants(a,s),o=0;o<n.length;o++)e(n[o]).toggle(!r)}),this.$dropdown.on("click",".category-tree .tree-item",function(i){if(!e(i.target).closest(".tree-toggle, .btn-select-children").length){var a=e(this),s=a.data("id"),r=a.data("name"),n=a.hasClass("selected");if(t.activeGroup){var o,l,c=t.$wrapper.find('.target-block[data-block-type="'+t.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+t.activeGroup.groupIndex+'"]');if("include"===t.activeGroup.section)o=c.find(".include-picker"),l=c.find(".group-include");else{var d=c.find('.exclude-row[data-exclude-index="'+t.activeGroup.excludeIndex+'"]');o=d.find(".exclude-picker"),l=d}var p=t.$dropdown.find(".tree-item"),u=function(){var e=t.$dropdown.find(".tree-item.selected").length,i=t.$dropdown.find(".tree-item").length,a="cms_categories"===(t.$dropdown.find(".category-tree").data("entity-type")||"categories")?"CMS categories":"categories";t.$dropdown.find(".results-count").text(i+" "+a+(e>0?" ("+e+" selected)":"")),t.updateSelectChildrenButtons(p)};if(n)t.removeSelection(o,s),a.toggleClass("selected"),t.serializeAllBlocks(l),u();else{var h=t.getCurrentSingleSelection();if(h){var f=t.activeGroup.blockType;t.showReplaceConfirmation(h,{name:r,entityType:f},function(){t.$dropdown.find(".tree-item.selected").removeClass("selected"),t.addSelection(o,s,r,a.data()),a.addClass("selected"),t.serializeAllBlocks(l),u()})}else t.addSelection(o,s,r,a.data()),a.toggleClass("selected"),t.serializeAllBlocks(l),u()}}}}),this.$dropdown.on("click",".category-tree .btn-select-children",function(i){i.stopPropagation();var a=e(this),s=a.closest(".tree-item"),r=t.$dropdown.find(".tree-item");if(t.activeGroup){var n,o,l=t.$wrapper.find('.target-block[data-block-type="'+t.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+t.activeGroup.groupIndex+'"]');if("include"===t.activeGroup.section)n=l.find(".include-picker"),o=l.find(".group-include");else{var c=l.find('.exclude-row[data-exclude-index="'+t.activeGroup.excludeIndex+'"]');n=c.find(".exclude-picker"),o=c}for(var d=t.findTreeDescendants(s,r),p=s.hasClass("selected"),u=0;u<d.length&&p;u++)e(d[u]).hasClass("selected")||(p=!1);var h=t.config.trans||{};if(p){t.removeSelection(n,s.data("id")),s.removeClass("selected");for(var f=0;f<d.length;f++){var v=e(d[f]);t.removeSelection(n,v.data("id")),v.removeClass("selected")}a.find("i").removeClass("icon-minus-square").addClass("icon-plus-square"),a.attr("title",h.select_with_children||"Select with all children")}else{s.hasClass("selected")||(t.addSelectionNoUpdate(n,s.data("id"),s.data("name"),s.data()),s.addClass("selected"));for(var m=0;m<d.length;m++){var g=e(d[m]);g.hasClass("selected")||(t.addSelectionNoUpdate(n,g.data("id"),g.data("name"),g.data()),g.addClass("selected"))}a.find("i").removeClass("icon-plus-square").addClass("icon-minus-square"),a.attr("title",h.deselect_with_children||"Deselect with all children")}var b=n.find(".entity-chips");t.updateChipsVisibility(b),t.serializeAllBlocks(o),t.updateSelectChildrenButtons(r);var w=t.$dropdown.find(".tree-item.selected").length,y=t.$dropdown.find(".tree-item").length,x="cms_categories"===(t.$dropdown.find(".category-tree").data("entity-type")||"categories")?"CMS categories":"categories";t.$dropdown.find(".results-count").text(y+" "+x+(w>0?" ("+w+" selected)":""))}}),this.$dropdown.on("click",".category-tree .btn-expand-all",function(e){e.preventDefault(),t.$dropdown.find(".tree-item").removeClass("collapsed").show(),t.$dropdown.find(".tree-toggle i").removeClass("icon-caret-right").addClass("icon-caret-down")}),this.$dropdown.on("click",".category-tree .btn-collapse-all",function(i){i.preventDefault();var a=1/0;t.$dropdown.find(".tree-item").each(function(){var t=parseInt(e(this).data("level"),10);t<a&&(a=t)}),t.$dropdown.find(".tree-item").each(function(){var t=e(this),i=parseInt(t.data("level"),10),s=t.hasClass("has-children");i===a?(s&&(t.addClass("collapsed"),t.find(".tree-toggle i").removeClass("icon-caret-down").addClass("icon-caret-right")),t.show()):t.hide()})}),this.$dropdown.on("keyup",".refine-input",function(){var i=e(this).val().trim();t.refineQuery=i,t.$dropdown.find(".btn-clear-refine").toggle(i.length>0),clearTimeout(t.refineTimeout),t.refineTimeout=setTimeout(function(){t.refreshSearch()},300)}),this.$dropdown.on("click",".btn-clear-refine",function(i){i.preventDefault(),t.refineQuery="",t.$dropdown.find(".refine-input").val(""),e(this).hide(),t.refreshSearch()}),this.$dropdown.on("click",".btn-refine-negate",function(i){i.preventDefault(),t.refineNegate=!t.refineNegate,e(this).toggleClass("active",t.refineNegate);var a=t.config.trans||{},s=t.refineNegate?a.refine_exclude||"Exclude...":a.refine_short||"Refine...";t.$dropdown.find(".refine-input").attr("placeholder",s),t.refineQuery&&t.refreshSearch()}),this.$dropdown.on("click",".btn-toggle-filters",function(i){i.preventDefault();var a=t.$dropdown.find(".filter-panel");a.toggleClass("show"),e(this).toggleClass("active",a.hasClass("show")),a.hasClass("show")&&t.activeGroup&&t.updateFilterPanelForEntity(t.activeGroup.searchEntity)}),this.$dropdown.on("click",".btn-show-history",function(i){i.preventDefault(),e(this).toggleClass("active"),e(this).hasClass("active")&&t.activeGroup?t.showSearchHistory(t.activeGroup.searchEntity):t.performSearch()}),this.$dropdown.on("change",".filter-in-stock",function(){t.filters.inStock=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-discounted",function(){t.filters.discounted=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-price-min, .filter-price-max",function(){var e=t.$dropdown.find(".filter-panel");t.filters.priceMin=e.find(".filter-price-min").val()||null,t.filters.priceMax=e.find(".filter-price-max").val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-product-count-min, .filter-product-count-max",function(){var i=e(this).closest(".filter-row");t.filters.productCountMin=i.find(".filter-product-count-min").val()||null,t.filters.productCountMax=i.find(".filter-product-count-max").val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-sales-min, .filter-sales-max",function(){var i=e(this).closest(".filter-row");t.filters.salesMin=i.find(".filter-sales-min").val()||null,t.filters.salesMax=i.find(".filter-sales-max").val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-turnover-min, .filter-turnover-max",function(){var i=e(this).closest(".filter-row");t.filters.turnoverMin=i.find(".filter-turnover-min").val()||null,t.filters.turnoverMax=i.find(".filter-turnover-max").val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-date-add-from, .filter-date-add-to",function(){var i=e(this).closest(".filter-row");t.filters.dateAddFrom=i.find(".filter-date-add-from").val()||null,t.filters.dateAddTo=i.find(".filter-date-add-to").val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-last-product-from, .filter-last-product-to",function(){var i=e(this).closest(".filter-row");t.filters.lastProductFrom=i.find(".filter-last-product-from").val()||null,t.filters.lastProductTo=i.find(".filter-last-product-to").val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-depth-select",function(){t.filters.depth=e(this).val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-has-products",function(){t.filters.hasProducts=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-has-description",function(){t.filters.hasDescription=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-has-image",function(){t.filters.hasImage=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-active-only",function(){t.filters.activeOnly=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-attribute-group-select",function(){t.filters.attributeGroup=e(this).val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-feature-group-select",function(){t.filters.featureGroup=e(this).val()||null,t.refreshSearch()}),this.$dropdown.on("change",".filter-is-color",function(){t.filters.isColor=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-is-custom",function(){t.filters.isCustom=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("change",".filter-indexable",function(){t.filters.indexable=e(this).is(":checked"),t.refreshSearch()}),this.$dropdown.on("click",".filter-row-entity-categories .btn-clear-filters, .filter-row-entity-manufacturers .btn-clear-filters, .filter-row-entity-suppliers .btn-clear-filters, .filter-row-entity-attributes .btn-clear-filters, .filter-row-entity-features .btn-clear-filters, .filter-row-entity-cms .btn-clear-filters, .filter-row-entity-cms-categories .btn-clear-filters",function(i){i.preventDefault();var a=e(this).closest(".filter-row");a.find('input[type="number"]').val(""),a.find('input[type="date"]').val(""),a.find("select").val(""),a.find('input[type="checkbox"]').prop("checked",!1),a.find(".filter-active-only").prop("checked",!0),t.filters.productCountMin=null,t.filters.productCountMax=null,t.filters.salesMin=null,t.filters.salesMax=null,t.filters.turnoverMin=null,t.filters.turnoverMax=null,t.filters.depth=null,t.filters.hasProducts=!1,t.filters.hasDescription=!1,t.filters.hasImage=!1,t.filters.activeOnly=!0,t.filters.attributeGroup=null,t.filters.featureGroup=null,t.filters.isColor=!1,t.filters.isCustom=!1,t.filters.indexable=!1,t.filters.dateAddFrom=null,t.filters.dateAddTo=null,t.filters.lastProductFrom=null,t.filters.lastProductTo=null,t.refreshSearch()}),this.$dropdown.on("click",".filter-group-toggle",function(i){i.preventDefault();var a=e(this),s=a.data("group-id"),r=a.data("type"),n=a.hasClass("active");t.$dropdown.find(".filter-group-toggle").removeClass("active"),n?t.hideFilterGroupValues():(a.addClass("active"),t.showFilterGroupValues(s,r))}),this.$dropdown.on("click",".btn-close-values",function(e){e.preventDefault(),e.stopPropagation(),t.hideFilterGroupValues()}),this.$dropdown.on("click",".filter-chip",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=parseInt(a.data("id"),10),r=a.hasClass("filter-attr-chip")?t.filters.attributes:t.filters.features,n=r.indexOf(s);-1===n?(r.push(s),a.addClass("active")):(r.splice(n,1),a.removeClass("active")),t.updateFilterToggleStates(),t.refreshSearch()}),this.$dropdown.on("click",".filter-row-quick .btn-clear-filters",function(e){e.preventDefault(),t.clearFilters()}),e(document).on("click",function(i){e(i.target).closest(".value-picker").length||e(i.target).closest(".target-search-dropdown").length||t.hideDropdown()}),e(document).on("keydown",function(e){if(t.$dropdown&&t.$dropdown.hasClass("show"))return(e.ctrlKey||e.metaKey)&&65===e.keyCode?(e.preventDefault(),e.stopPropagation(),t.$dropdown.find(".btn-select-all").trigger("click"),!1):(e.ctrlKey||e.metaKey)&&68===e.keyCode?(e.preventDefault(),e.stopPropagation(),t.$dropdown.find(".btn-clear-selection").trigger("click"),!1):void(("Escape"===e.key||"Enter"===e.key)&&(e.preventDefault(),t.hideDropdown()))})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.dropdown={createDropdown:function(){this.$wrapper.find(".target-search-dropdown").remove();var t=this.config.trans||{},i='<div class="target-search-dropdown view-list">';i+='<div class="dropdown-header">',i+='<span class="results-count">0 results</span>',i+='<div class="dropdown-actions">',i+='<button type="button" class="btn-select-all" title="'+(t.select_all||"Select all visible")+'">',i+='<i class="icon-check-square-o"></i> '+(t.all||"All")+" <kbd>Ctrl+A</kbd>",i+="</button>",i+='<button type="button" class="btn-clear-selection" title="'+(t.clear_selection||"Clear selection")+'">',i+='<i class="icon-square-o"></i> '+(t.clear||"Clear")+" <kbd>Ctrl+D</kbd>",i+="</button>",i+='<div class="sort-controls">',i+='<select class="sort-field-select" title="Sort by">',i+='<option value="name">'+(t.sort_name||"Name")+"</option>",i+='<option value="id">'+(t.sort_id||"ID")+"</option>",i+='<option value="position">'+(t.sort_position||"Position")+"</option>",i+='<option value="popularity">'+(t.sort_popularity||"Popularity")+"</option>",i+='<option value="selected">'+(t.sort_selected||"Selected")+"</option>",i+="</select>",i+='<button type="button" class="btn-sort-dir" data-dir="ASC" title="Sort direction">',i+='<i class="icon-sort-alpha-asc"></i>',i+="</button>",i+='<select class="view-mode-select" title="View mode">',i+='<option value="list">'+(t.view_list||"List")+"</option>",i+='<option value="tree" class="tree-view-option" disabled hidden>'+(t.view_tree||"Tree")+"</option>",i+='<option value="cols-2">2 '+(t.cols||"cols")+"</option>",i+='<option value="cols-3">3 '+(t.cols||"cols")+"</option>",i+='<option value="cols-4">4 '+(t.cols||"cols")+"</option>",i+='<option value="cols-5">5 '+(t.cols||"cols")+"</option>",i+='<option value="cols-6">6 '+(t.cols||"cols")+"</option>",i+='<option value="cols-7">7 '+(t.cols||"cols")+"</option>",i+='<option value="cols-8">8 '+(t.cols||"cols")+"</option>",i+="</select>",i+="</div>",i+='<div class="refine-compact">',i+='<button type="button" class="btn-refine-negate" title="'+(t.exclude_matches||"Exclude matches (NOT contains)")+'"><i class="icon-ban"></i></button>',i+='<input type="text" class="refine-input" placeholder="'+(t.refine_short||"Refine...")+'">',i+='<button type="button" class="btn-clear-refine" style="display:none;"><i class="icon-times"></i></button>',i+="</div>",i+='<button type="button" class="btn-toggle-filters" title="'+(t.toggle_filters||"Filters")+'">',i+='<i class="icon-filter"></i>',i+="</button>",i+='<button type="button" class="btn-show-history" title="'+(t.recent_searches||"Recent searches")+'">',i+='<i class="icon-clock-o"></i>',i+="</button>",i+="</div>",i+="</div>",i+='<div class="filter-panel">',i+='<div class="filter-row filter-row-quick" data-entity="products">',i+='<label class="filter-label"><input type="checkbox" class="filter-in-stock"> '+(t.in_stock||"In stock")+"</label>",i+='<label class="filter-label"><input type="checkbox" class="filter-discounted"> '+(t.discounted||"On sale")+"</label>",i+='<div class="filter-price-range">',i+='<span class="filter-price-label">'+(t.price||"Price")+":</span>",i+='<input type="number" class="filter-price-min" placeholder="'+(t.min||"Min")+'" min="0" step="0.01">',i+='<span class="filter-price-sep">-</span>',i+='<input type="number" class="filter-price-max" placeholder="'+(t.max||"Max")+'" min="0" step="0.01">',i+="</div>",i+='<button type="button" class="btn-clear-filters" title="'+(t.clear_filters||"Clear filters")+'">',i+='<i class="icon-times"></i>',i+="</button>",i+="</div>",i+='<div class="filter-row filter-row-attributes" data-entity="products" style="display:none;">',i+='<span class="filter-row-label"><i class="icon-tags"></i> '+(t.attributes||"Attributes")+":</span>",i+='<div class="filter-attributes-container"></div>',i+="</div>",i+='<div class="filter-row filter-row-values filter-row-attr-values" data-type="attribute" style="display:none;">',i+='<div class="filter-values-container"></div>',i+="</div>",i+='<div class="filter-row filter-row-features" data-entity="products" style="display:none;">',i+='<span class="filter-row-label"><i class="icon-list-ul"></i> '+(t.features||"Features")+":</span>",i+='<div class="filter-features-container"></div>',i+="</div>",i+='<div class="filter-row filter-row-values filter-row-feat-values" data-type="feature" style="display:none;">',i+='<div class="filter-values-container"></div>',i+="</div>",i+='<div class="filter-row filter-row-entity-categories filter-row-multi" data-entity="categories" style="display:none;">',i+='<div class="filter-subrow">',i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-cubes"></i> '+(t.product_count||"Products")+":</span>",i+='<input type="number" class="filter-product-count-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-product-count-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-shopping-cart"></i> '+(t.total_sales||"Sales")+":</span>",i+='<input type="number" class="filter-sales-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-sales-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-money"></i> '+(t.turnover||"Revenue")+":</span>",i+='<input type="number" class="filter-turnover-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-turnover-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<label class="filter-label"><input type="checkbox" class="filter-active-only" checked> '+(t.active_only||"Active only")+"</label>",i+="</div>",i+='<div class="filter-subrow">',i+='<div class="filter-select-group">',i+='<span class="filter-select-label"><i class="icon-sitemap"></i> '+(t.depth||"Depth")+":</span>",i+='<select class="filter-depth-select">',i+='<option value="">'+(t.all_levels||"All levels")+"</option>",i+='<option value="1">'+(t.level||"Level")+" 1 ("+(t.root||"Root")+")</option>",i+='<option value="2">'+(t.level||"Level")+" 2</option>",i+='<option value="3">'+(t.level||"Level")+" 3</option>",i+='<option value="4">'+(t.level||"Level")+" 4+</option>",i+="</select>",i+="</div>",i+='<label class="filter-label"><input type="checkbox" class="filter-has-products"> '+(t.has_products||"Has products")+"</label>",i+='<label class="filter-label"><input type="checkbox" class="filter-has-description"> '+(t.has_description||"Has description")+"</label>",i+='<label class="filter-label"><input type="checkbox" class="filter-has-image"> '+(t.has_image||"Has image")+"</label>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+="</div>",i+='<div class="filter-row filter-row-entity-manufacturers filter-row-multi" data-entity="manufacturers" style="display:none;">',i+='<div class="filter-subrow">',i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-cubes"></i> '+(t.product_count||"Products")+":</span>",i+='<input type="number" class="filter-product-count-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-product-count-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-shopping-cart"></i> '+(t.total_sales||"Sales")+":</span>",i+='<input type="number" class="filter-sales-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-sales-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-money"></i> '+(t.turnover||"Revenue")+":</span>",i+='<input type="number" class="filter-turnover-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-turnover-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<label class="filter-label"><input type="checkbox" class="filter-active-only" checked> '+(t.active_only||"Active only")+"</label>",i+="</div>",i+='<div class="filter-subrow">',i+='<div class="filter-date-group">',i+='<span class="filter-date-label"><i class="icon-calendar"></i> '+(t.date_added||"Added")+":</span>",i+='<input type="date" class="filter-date-add-from" title="'+(t.from||"From")+'">',i+='<span class="filter-range-sep">-</span>',i+='<input type="date" class="filter-date-add-to" title="'+(t.to||"To")+'">',i+="</div>",i+='<div class="filter-date-group">',i+='<span class="filter-date-label"><i class="icon-clock-o"></i> '+(t.last_product||"Last product")+":</span>",i+='<input type="date" class="filter-last-product-from" title="'+(t.from||"From")+'">',i+='<span class="filter-range-sep">-</span>',i+='<input type="date" class="filter-last-product-to" title="'+(t.to||"To")+'">',i+="</div>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+="</div>",i+='<div class="filter-row filter-row-entity-suppliers filter-row-multi" data-entity="suppliers" style="display:none;">',i+='<div class="filter-subrow">',i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-cubes"></i> '+(t.product_count||"Products")+":</span>",i+='<input type="number" class="filter-product-count-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-product-count-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-shopping-cart"></i> '+(t.total_sales||"Sales")+":</span>",i+='<input type="number" class="filter-sales-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-sales-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-money"></i> '+(t.turnover||"Revenue")+":</span>",i+='<input type="number" class="filter-turnover-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-turnover-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<label class="filter-label"><input type="checkbox" class="filter-active-only" checked> '+(t.active_only||"Active only")+"</label>",i+="</div>",i+='<div class="filter-subrow">',i+='<div class="filter-date-group">',i+='<span class="filter-date-label"><i class="icon-calendar"></i> '+(t.date_added||"Added")+":</span>",i+='<input type="date" class="filter-date-add-from" title="'+(t.from||"From")+'">',i+='<span class="filter-range-sep">-</span>',i+='<input type="date" class="filter-date-add-to" title="'+(t.to||"To")+'">',i+="</div>",i+='<div class="filter-date-group">',i+='<span class="filter-date-label"><i class="icon-clock-o"></i> '+(t.last_product||"Last product")+":</span>",i+='<input type="date" class="filter-last-product-from" title="'+(t.from||"From")+'">',i+='<span class="filter-range-sep">-</span>',i+='<input type="date" class="filter-last-product-to" title="'+(t.to||"To")+'">',i+="</div>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+="</div>",i+='<div class="filter-row filter-row-entity-attributes filter-row-multi" data-entity="attributes" style="display:none;">',i+='<div class="filter-subrow">',i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-cubes"></i> '+(t.product_count||"Products")+":</span>",i+='<input type="number" class="filter-product-count-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-product-count-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-shopping-cart"></i> '+(t.total_sales||"Sales")+":</span>",i+='<input type="number" class="filter-sales-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-sales-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-money"></i> '+(t.turnover||"Revenue")+":</span>",i+='<input type="number" class="filter-turnover-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-turnover-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+="</div>",i+='<div class="filter-subrow">',i+='<div class="filter-select-group">',i+='<span class="filter-select-label"><i class="icon-tags"></i> '+(t.attribute_group||"Group")+":</span>",i+='<select class="filter-attribute-group-select">',i+='<option value="">'+(t.all_groups||"All groups")+"</option>",i+="</select>",i+="</div>",i+='<label class="filter-label"><input type="checkbox" class="filter-is-color"> '+(t.color_only||"Color attributes")+"</label>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+="</div>",i+='<div class="filter-row filter-row-entity-features filter-row-multi" data-entity="features" style="display:none;">',i+='<div class="filter-subrow">',i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-cubes"></i> '+(t.product_count||"Products")+":</span>",i+='<input type="number" class="filter-product-count-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-product-count-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-shopping-cart"></i> '+(t.total_sales||"Sales")+":</span>",i+='<input type="number" class="filter-sales-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-sales-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+='<div class="filter-range-group">',i+='<span class="filter-range-label"><i class="icon-money"></i> '+(t.turnover||"Revenue")+":</span>",i+='<input type="number" class="filter-turnover-min" placeholder="'+(t.min||"Min")+'" min="0" step="1">',i+='<span class="filter-range-sep">-</span>',i+='<input type="number" class="filter-turnover-max" placeholder="'+(t.max||"Max")+'" min="0" step="1">',i+="</div>",i+="</div>",i+='<div class="filter-subrow">',i+='<div class="filter-select-group">',i+='<span class="filter-select-label"><i class="icon-list-ul"></i> '+(t.feature_group||"Group")+":</span>",i+='<select class="filter-feature-group-select">',i+='<option value="">'+(t.all_groups||"All groups")+"</option>",i+="</select>",i+="</div>",i+='<label class="filter-label"><input type="checkbox" class="filter-is-custom"> '+(t.custom_only||"Custom values")+"</label>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+="</div>",i+='<div class="filter-row filter-row-entity-cms" data-entity="cms" style="display:none;">',i+='<label class="filter-label"><input type="checkbox" class="filter-active-only" checked> '+(t.active_only||"Active only")+"</label>",i+='<label class="filter-label"><input type="checkbox" class="filter-indexable"> '+(t.indexable||"Indexable")+"</label>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+='<div class="filter-row filter-row-entity-cms-categories" data-entity="cms_categories" style="display:none;">',i+='<label class="filter-label"><input type="checkbox" class="filter-active-only" checked> '+(t.active_only||"Active only")+"</label>",i+='<button type="button" class="btn-clear-filters"><i class="icon-times"></i></button>',i+="</div>",i+="</div>",i+='<div class="results-header">',i+='<span class="header-spacer"></span>',i+='<span class="header-col header-col-name">'+(t.product||"Product")+"</span>",i+='<span class="header-col header-col-price">'+(t.price||"Price")+"</span>",i+='<span class="header-col header-col-sale">'+(t.sale||"Sale")+"</span>",i+='<span class="header-col header-col-stock">'+(t.stock||"Stock")+"</span>",i+='<span class="header-col header-col-sales">'+(t.sold||"Sold")+"</span>",i+="</div>",i+='<div class="dropdown-results"></div>',i+='<div class="dropdown-footer">',i+='<div class="load-more-controls" style="display:none;">',i+='<span class="load-more-label">'+(t.load||"Load")+"</span>",i+='<select class="load-more-select">',i+='<option value="10">10</option>',i+='<option value="20" selected>20</option>',i+='<option value="50">50</option>',i+='<option value="100">100</option>',i+="</select>",i+='<span class="load-more-of">'+(t.of||"of")+' <span class="remaining-count">0</span> '+(t.remaining||"remaining")+"</span>",i+='<button type="button" class="btn-load-more"><i class="icon-plus"></i></button>',i+="</div>",i+='<div class="dropdown-footer-actions">',i+='<button type="button" class="btn-cancel-dropdown">'+(t.cancel||"Cancel")+" <kbd>Esc</kbd></button>",i+='<button type="button" class="btn-confirm-dropdown"><i class="icon-check"></i> '+(t.done||"Done")+" <kbd>⏎</kbd></button>",i+="</div>",i+="</div>",i+="</div>",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+='<div class="'+t+'" ',v+='data-id="'+i.escapeAttr(e.id)+'" ',v+='data-name="'+i.escapeAttr(e.name)+'"',e.image&&(v+=' data-image="'+i.escapeAttr(e.image)+'"'),e.subtitle&&(v+=' data-subtitle="'+i.escapeAttr(e.subtitle)+'"'),v+=">",v+='<span class="result-checkbox"><i class="icon-check"></i></span>',e.image)v+='<div class="result-image"><img src="'+i.escapeAttr(e.image)+'" alt=""></div>';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+='<div class="result-icon"><i class="'+a+'"></i></div>'}if(v+='<div class="result-info">',v+='<div class="result-name">'+i.escapeHtml(e.name)+"</div>",e.subtitle){var n=e.subtitle.split("\n");v+='<div class="result-subtitle">',n.forEach(function(e,t){v+='<div class="'+(0===t?"subtitle-line subtitle-line-primary":"subtitle-line subtitle-line-secondary")+'">'+i.escapeHtml(e)+"</div>"}),v+="</div>"}if(v+="</div>","product"===e.type&&p){v+='<div class="result-col result-col-price">',v+='<span class="col-value">'+(e.regular_price_formatted||e.price_formatted||"")+"</span>",v+="</div>",e.has_discount?(v+='<div class="result-col result-col-sale">',v+='<span class="col-value">'+(e.price_formatted||"")+"</span>",v+="</div>"):v+='<div class="result-col result-col-sale"></div>';var o="out_of_stock"===e.stock_status?"stock-out":"low_stock"===e.stock_status?"stock-low":"stock-ok";v+='<div class="result-col result-col-stock">',v+='<span class="col-value '+o+'">'+(void 0!==e.stock_qty?e.stock_qty:"")+"</span>",v+="</div>",v+='<div class="result-col result-col-sales">',v+='<span class="col-value">'+(void 0!==e.sales_qty?e.sales_qty:"0")+"</span>",v+="</div>"}v+="</div>"}):v='<div class="no-results"><i class="icon-search"></i> '+(a.no_results||"No results found")+"</div>",t?s.append(v):s.html(v);var m=this.searchResults.length<this.searchTotal,g=this.$dropdown.find(".load-more-controls");if(g.toggle(m),m){var b=this.searchTotal-this.searchResults.length;g.find(".remaining-count").text(b);var w=g.find(".load-more-select"),y=w.find('option[data-all="true"]');y.length?y.val(b).text((a.all||"All")+" ("+b+")"):w.find("option:last").after('<option value="'+b+'" data-all="true">'+(a.all||"All")+" ("+b+")</option>")}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('<div class="tree-loading"><i class="icon-spinner icon-spin"></i> Loading category tree...</div>');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('<div class="no-results"><i class="icon-warning"></i> Failed to load category tree</div>')},error:function(e,t,a){i.html('<div class="no-results"><i class="icon-warning"></i> Error loading category tree</div>')}})},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='<div class="category-tree" data-entity-type="'+this.escapeAttr(i)+'">';d+='<div class="tree-container">';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+='<div class="tree-item'+(t?" selected":"")+(r?" has-children":"")+'" ',d+='data-id="'+e.id+'" ',d+='data-parent-id="'+e.parent_id+'" ',d+='data-level="'+e.level+'" ',d+='data-nleft="'+e.nleft+'" ',d+='data-nright="'+e.nright+'" ',d+='data-name="'+a.escapeAttr(e.name)+'" ',d+='data-subtitle="'+a.escapeAttr(e.subtitle)+'" ',d+='style="padding-left: '+(i+8)+'px;">',d+=r?'<span class="tree-toggle"><i class="icon-caret-down"></i></span>':'<span class="tree-toggle-placeholder"></span>';var o="single"===a.config.mode;r&&!o?(d+='<button type="button" class="btn-select-children" title="'+(s.select_with_children||"Select with all children")+'">',d+='<i class="icon-plus-square"></i>',d+="</button>"):o||(d+='<span class="btn-select-children-placeholder"></span>'),d+='<span class="tree-checkbox"><i class="icon-check"></i></span>',d+='<span class="tree-icon"><i class="'+(n?"icon-file-text-o":"icon-folder"+(r?"":"-o"))+'"></i></span>',d+='<div class="tree-info">',d+='<span class="tree-name">'+a.escapeHtml(e.name)+"</span>",d+='<span class="tree-subtitle">'+a.escapeHtml(e.subtitle)+"</span>",d+="</div>",d+="</div>"}),d+="</div>",d+="</div>",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;l<o.length;l++)n.push(e(o[l]).data("id"))}}),s.each(function(){var t=e(this),i=t.data("id");-1!==r.indexOf(i)||-1!==n.indexOf(i)?(t.show().removeClass("collapsed"),t.find(".tree-toggle i").removeClass("icon-caret-right").addClass("icon-caret-down")):t.hide()});var o=s.filter(":visible").length,l=s.filter(".selected").length,c="cms_categories"===(a.data("entity-type")||"categories")?"CMS categories":"categories";this.$dropdown.find(".results-count").text(o+" "+c+(l>0?" ("+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&&r<s&&n.push(t)});else for(var o=[r],l={};o.length>0;){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);i<a&&n>s&&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;l<n.length&&o;l++)e(n[l]).hasClass("selected")||(o=!1);o&&n.length>0?(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='<div class="search-history-list">',r=0;r<t.length;r++){var n=t[r];s+='<div class="history-item" data-query="'+this.escapeAttr(n)+'">',s+='<i class="icon-clock-o"></i>',s+='<span class="history-query">'+this.escapeHtml(n)+"</span>",s+='<button type="button" class="btn-delete-history" title="'+(i.remove||"Remove")+'">',s+='<i class="icon-times"></i>',s+="</button>",s+="</div>"}s+="</div>",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('<option value="'+a.id+'">'+t.escapeHtml(a.name)+" ("+a.count+")</option>")})}})},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('<option value="'+a.id+'">'+t.escapeHtml(a.name)+" ("+a.count+")</option>")})}})}}}(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='<button type="button" class="filter-group-toggle" data-group-id="'+i.id+'" data-type="attribute" data-group-name="'+e.escapeAttr(i.name)+'">';a+='<span class="toggle-name">'+i.name+"</span>",void 0!==i.count&&(a+='<span class="toggle-count clickable" data-group-id="'+i.id+'" data-type="attribute" data-group-name="'+e.escapeAttr(i.name)+'"><i class="icon-eye"></i> '+i.count+"</span>"),a+="</button>",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='<button type="button" class="filter-group-toggle" data-group-id="'+t.id+'" data-type="feature" data-group-name="'+e.escapeAttr(t.name)+'">';a+='<span class="toggle-name">'+t.name+"</span>",void 0!==t.count&&(a+='<span class="toggle-count clickable" data-group-id="'+t.id+'" data-type="feature" data-group-name="'+e.escapeAttr(t.name)+'"><i class="icon-eye"></i> '+t.count+"</span>"),a+="</button>",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='<span class="filter-values-label">'+a.name+":</span>";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+='<button type="button" class="filter-chip '+r+s+l+'" data-id="'+a.id+'" data-group-id="'+e+'"'+n+">",a.color&&(o+='<span class="chip-color-dot"></span>'),o+='<span class="chip-name">'+a.name+"</span>",void 0!==a.count&&(o+='<span class="chip-count">('+a.count+")</span>"),o+="</button>"}),n.html(o),r.find(".btn-close-values").remove(),r.append('<button type="button" class="btn-close-values"><i class="icon-times"></i></button>'),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='<span class="entity-chip" data-id="'+this.escapeAttr(t)+'">';a&&a.image&&(n+='<span class="chip-icon"><img src="'+this.escapeAttr(a.image)+'" alt=""></span>'),n+='<span class="chip-name">'+this.escapeHtml(i)+"</span>",n+='<button type="button" class="chip-remove" title="Remove"><i class="icon-times"></i></button>',n+="</span>",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('<span class="chips-show-more-toggle chips-collapse-toggle"><i class="icon-chevron-up"></i> '+c+"</span>")}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('<span class="chips-show-more-toggle chips-expand-toggle"><i class="icon-chevron-down"></i> '+d+"</span>")}},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='<span class="entity-chip" data-id="'+t.escapeAttr(r.id)+'">';r.image&&(o+='<span class="chip-icon"><img src="'+t.escapeAttr(r.image)+'" alt=""></span>'),o+='<span class="chip-name">'+t.escapeHtml(r.name)+"</span>",o+='<button type="button" class="chip-remove" title="Remove"><i class="icon-times"></i></button>',o+="</span>",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='<span class="entity-chip entity-chip-loading" data-id="'+s.escapeAttr(e)+'">';t+='<span class="chip-icon"><i class="'+p+' icon-spin-pulse"></i></span>',t+='<span class="chip-name">Loading...</span>',t+="</span>",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("<span>",{class:"range-chip","data-min":null!==t.min?t.min:"","data-max":null!==t.max?t.max:""});a.append(e("<span>",{class:"range-chip-text",text:i})),a.append(e("<button>",{type:"button",class:"btn-remove-range",html:'<i class="icon-times"></i>'})),u.append(a)}})}}}},loadPickerValues:function(t,i){if(t.length){var a=this,s=t.find(".include-values-data, .exclude-values-data");if(s.length){var r=t.attr("data-value-type"),n=[];try{n=JSON.parse(s.val()||"[]")}catch(e){return}if("multi_numeric_range"!==r)if("multi_select_tiles"!==r){if("combination_attributes"===r)return"object"!=typeof n||null===n||0===Object.keys(n).length||s.val(JSON.stringify(n)),void a.loadCombinationAttributeGroups(t);if(n.length)if("pattern"!==r){var o=t.attr("data-search-entity")||i;e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getTargetEntitiesByIds",trait:"EntitySelector",entity_type:o,ids:JSON.stringify(n)},success:function(e){if(e.success&&e.entities){var i=[];e.entities.forEach(function(e){a.addSelectionNoUpdate(t,e.id,e.name,e),i.push(e.id)});var r=t.find(".entity-chips");a.updateChipsVisibility(r),i.length!==n.length&&(s.val(JSON.stringify(i)),a.serializeAllBlocks()),a.updateBlockStatus(t.closest(".target-block"))}}})}else n.forEach(function(e){"string"==typeof e&&e?a.addPatternTag(t,e,!1):e&&e.pattern&&a.addPatternTag(t,e.pattern,!0===e.caseSensitive)})}else{if(!Array.isArray(n)||0===n.length)return;n.forEach(function(e){t.find('.tile-option[data-value="'+e+'"]').addClass("selected")})}else{if(!Array.isArray(n)||0===n.length)return;var l=t.find(".multi-range-chips");n.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("<span>",{class:"range-chip","data-min":null!==t.min?t.min:"","data-max":null!==t.max?t.max:""});a.append(e("<span>",{class:"range-chip-text",text:i})),a.append(e("<button>",{type:"button",class:"btn-remove-range",html:'<i class="icon-times"></i>'})),l.append(a)}})}}}},addPatternTag:function(e,t,i){var a=this.config.trans||{},s=e.find(".pattern-chips"),r=!0===i,n=r?a.case_sensitive||"Case sensitive - click to toggle":a.case_insensitive||"Case insensitive - click to toggle",o='<div class="pattern-tag'+(r?" case-sensitive":"")+'" data-pattern="'+this.escapeAttr(t)+'" data-case-sensitive="'+(r?"1":"0")+'">';o+='<button type="button" class="btn-toggle-case" title="'+this.escapeAttr(n)+'">',o+='<span class="case-icon">'+(r?"Aa":"aa")+"</span>",o+="</button>",o+='<span class="pattern-tag-text">'+this.escapeHtml(t)+"</span>",o+='<button type="button" class="btn-remove-pattern" title="'+this.escapeAttr(a.remove_pattern||"Remove pattern")+'"><i class="icon-trash"></i></button>',o+="</div>",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('<i class="icon-spinner icon-spin"></i>'),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('<i class="icon-spinner icon-spin"></i>'),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('<i class="icon-spinner icon-spin"></i>'),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 class="icon-spinner icon-spin"></i>'),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('<i class="icon-spinner icon-spin"></i>').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='<i class="icon-eye"></i> '+n;o>0&&(l+=' <span class="exclude-info">(-'+o+")</span>"),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<n?d:n;c.text(p)}}else a.hide().removeClass("clickable"),s.attr("placeholder","–")},error:function(){a.hide(),s.attr("placeholder","–")}})},updateAllConditionCounts:function(){var t=this;this.$wrapper.find(".target-block.active .selection-group").each(function(){t.updateGroupCounts(e(this))})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.groups={addGroup:function(t,i){var a=t.find(".groups-container"),s=this.config.trans||{},r=(this.config.blocks[i]||{}).selection_methods||{};a.find(".groups-empty-state").remove();var n=-1;a.find(".selection-group").each(function(){var t=parseInt(e(this).data("groupIndex"),10);t>n&&(n=t)});var o=n+1,l=this.buildMethodOptions(r,!1),c=(this.buildMethodOptions(r,!0),'<div class="selection-group" data-group-index="'+o+'" data-group-name="">');c+='<div class="group-header">',c+='<span class="group-collapse-toggle"><i class="icon-chevron-up"></i></span>',c+='<span class="group-name-wrapper">',c+='<input type="text" class="group-name-input" value="" placeholder="'+(s.group||"Group")+" "+(o+1)+'" title="'+(s.click_to_name||"Click to name this group")+'">',c+='<span class="group-count-badge" style="display:none;"><i class="icon-spinner icon-spin"></i></span>',c+="</span>",c+='<button type="button" class="btn-remove-group" title="'+(s.remove_group||"Remove group")+'">',c+='<i class="icon-trash"></i>',c+="</button>",c+="</div>",c+='<div class="group-body">',c+='<div class="group-include">',c+='<div class="section-row">',c+='<div class="method-selector-wrapper">',c+='<select class="include-method-select">'+l+"</select>",c+='<span class="condition-match-count no-matches"><i class="icon-eye"></i> <span class="preview-count">0</span></span>',c+='<span class="method-info-placeholder"></span>',c+="</div>",c+='<div class="value-picker include-picker" style="display:none;" data-search-entity="'+i+'">',c+='<div class="entity-chips include-chips" data-placeholder="'+(s.no_items_selected||"No items selected - use search below")+'"></div>',c+='<div class="entity-search-box">',c+='<i class="icon-search entity-search-icon"></i>',c+='<input type="text" class="entity-search-input" placeholder="'+(s.search_placeholder||"Search by name, reference, ID...")+'" autocomplete="off">',c+='<span class="search-loading" style="display:none;"><i class="icon-spinner icon-spin"></i></span>',c+="</div>",c+='<input type="hidden" class="include-values-data" value="[]">',c+="</div>",c+="</div>",c+="</div>",c+='<div class="group-excludes">',c+='<button type="button" class="btn-add-exclude">',c+='<i class="icon-plus"></i> '+(s.add_exceptions||"Add exceptions"),c+="</button>",c+="</div>",c+='<div class="group-modifiers">',c+='<span class="modifier-inline modifier-limit">',c+='<span class="modifier-label">'+(s.limit||"Limit")+"</span>",c+='<input type="number" class="group-modifier-limit" placeholder="–" min="1" step="1" title="'+(s.limit_tooltip||"Max items to return (empty = all)")+'">',c+="</span>",c+='<span class="modifier-inline modifier-sort">',c+='<span class="modifier-label">'+(s.sort||"Sort")+"</span>",c+='<select class="group-modifier-sort">',c+='<option value="sales" selected>'+(s.sort_bestsellers||"Best sellers")+"</option>",c+='<option value="date_add">'+(s.sort_newest||"Newest")+"</option>",c+='<option value="price">'+(s.sort_price||"Price")+"</option>",c+='<option value="name">'+(s.sort_name||"Name")+"</option>",c+='<option value="position">'+(s.sort_position||"Position")+"</option>",c+='<option value="quantity">'+(s.sort_stock||"Stock quantity")+"</option>",c+='<option value="random">'+(s.sort_random||"Random")+"</option>",c+="</select>",c+='<button type="button" class="btn-sort-dir" data-dir="DESC" title="'+(s.sort_direction||"Sort direction")+'">',c+='<i class="icon-sort-amount-desc"></i>',c+="</button>",c+="</span>",c+='<span class="group-preview-badge clickable" title="'+(s.preview_results||"Preview results")+'">',c+='<i class="icon-eye"></i> <span class="preview-count"></span>',c+="</span>",c+="</div>",c+="</div>",c+="</div>",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='<div class="groups-empty-state">';a+='<span class="empty-state-text">'+this.getEmptyStateText(t)+"</span>",a+="</div>",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='<div class="groups-empty-state">';s+='<span class="empty-state-text">'+t.getEmptyStateText(i)+"</span>",s+="</div>",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 class="icon-spinner icon-spin"></i>'):i.append('<span class="tab-badge loading"><i class="icon-spinner icon-spin"></i></span>'),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('<i class="icon-spinner icon-spin"></i>'):(l=e('<span class="tab-badge loading"><i class="icon-spinner icon-spin"></i></span>'),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('<i class="icon-eye"></i> '+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 class="icon-spinner icon-spin"></i>'),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('<i class="icon-spinner icon-spin"></i>').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='<i class="icon-eye"></i> '+n;o>0&&(l+=' <span class="exclude-info">(-'+o+")</span>"),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<n?d:n;c.text(p)}}else a.hide().removeClass("clickable"),s.attr("placeholder","–")},error:function(){a.hide(),s.attr("placeholder","–")}})},addFirstExcludeRow:function(e,t){var i=e.find(".group-excludes"),a=this.config.trans||{},s='<div class="except-separator">';s+='<span class="except-label"><i class="icon-ban"></i> '+(a.except||"EXCEPT")+"</span>",s+="</div>",s+='<div class="exclude-rows-container">',s+=this.buildExcludeRowHtml(t,0),s+="</div>",s+='<button type="button" class="btn-add-another-exclude">',s+='<i class="icon-plus"></i> '+(a.add_another_exception||"Add another exception"),s+="</button>",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='<div class="exclude-row" data-exclude-index="'+i+'">';return c+='<div class="exclude-header-row">',c+='<div class="method-selector-wrapper">',c+='<select class="exclude-method-select">'+n+"</select>",c+='<span class="condition-match-count no-matches"><i class="icon-eye"></i> <span class="preview-count">0</span></span>',c+='<span class="method-info-placeholder"></span>',c+="</div>",c+='<button type="button" class="btn-remove-exclude-row" title="'+(r.remove_this_exception||"Remove this exception")+'">',c+='<i class="icon-trash"></i>',c+="</button>",c+="</div>",(c+=this.buildValuePickerHtml("exclude",l,o,s))+"</div>"},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('<button type="button" class="btn-add-exclude"><i class="icon-plus"></i> '+(s.add_exceptions||"Add exceptions")+"</button>"),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+='<optgroup label="'+a.escapeAttr(s)+'">',e.each(i,function(e,t){r+=a.buildMethodOption(e,t)}),r+="</optgroup>"}),r},buildMethodOption:function(e,t){var i='<option value="'+this.escapeAttr(e)+'"';return i+=' data-value-type="'+this.escapeAttr(t.value_type||"none")+'"',t.icon&&(i+=' data-icon="'+this.escapeAttr(t.icon)+'"'),t.search_entity&&(i+=' data-search-entity="'+this.escapeAttr(t.search_entity)+'"'),t.options&&(i+=' data-options="'+this.escapeAttr(JSON.stringify(t.options))+'"'),t.exclusive&&(i+=' data-exclusive="true"'),void 0!==t.step&&(i+=' data-step="'+this.escapeAttr(t.step)+'"'),void 0!==t.min&&(i+=' data-min="'+this.escapeAttr(t.min)+'"'),i+">"+this.escapeHtml(t.label)+"</option>"},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='<div class="value-picker '+r+'" style="display:none;" data-search-entity="" data-value-type="none">',(l+='<input type="hidden" class="'+o+'" value="[]">')+"</div>";switch(l='<div class="value-picker '+r+'" data-search-entity="'+this.escapeAttr(i)+'" data-value-type="'+this.escapeAttr(t)+'">',t){case"entity_search":var c=s.no_items_selected||"No items selected - use search below";l+='<div class="entity-chips '+n+'" data-placeholder="'+this.escapeAttr(c)+'"></div>',l+='<div class="entity-search-box">',l+='<i class="icon-search entity-search-icon"></i>',l+='<input type="text" class="entity-search-input" placeholder="'+this.escapeAttr(s.search_placeholder||"Search by name, reference, ID...")+'" autocomplete="off">',l+='<span class="search-loading" style="display:none;"><i class="icon-spinner icon-spin"></i></span>',l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"pattern":var d="<strong>"+this.escapeHtml(s.pattern_help_title||"Pattern Syntax")+"</strong>";d+='<div class="pattern-help-content">',d+='<div class="pattern-help-item"><code>*</code> <span>'+this.escapeHtml(s.pattern_help_wildcard||"any text (wildcard)")+"</span></div>",d+='<div class="pattern-help-item"><code>{number}</code> <span>'+this.escapeHtml(s.pattern_help_number||"any number (e.g. 100, 250)")+"</span></div>",d+='<div class="pattern-help-item"><code>{letter}</code> <span>'+this.escapeHtml(s.pattern_help_letter||"single letter (A-Z)")+"</span></div>",d+="</div>",d+='<div class="pattern-help-examples">',d+="<strong>"+this.escapeHtml(s.pattern_help_examples||"Examples:")+"</strong>",d+='<div class="pattern-example"><code>*cotton*</code> <span>'+this.escapeHtml(s.pattern_example_1||'contains "cotton"')+"</span></div>",d+='<div class="pattern-example"><code>iPhone {number} Pro*</code> <span>'+this.escapeHtml(s.pattern_example_2||'matches "iPhone 15 Pro Max"')+"</span></div>",d+='<div class="pattern-example"><code>Size {letter}</code> <span>'+this.escapeHtml(s.pattern_example_3||'matches "Size M", "Size L"')+"</span></div>",d+="</div>";var p=s.no_patterns||"No patterns - press Enter to add";l+='<div class="entity-chips pattern-chips" data-placeholder="'+this.escapeAttr(p)+'"></div>',l+='<div class="pattern-input-row">',l+='<div class="pattern-tag draft-tag" data-case-sensitive="0">',l+='<button type="button" class="btn-toggle-case" title="'+this.escapeAttr(s.case_insensitive||"Case insensitive - click to toggle")+'"><span class="case-icon">aa</span></button>',l+='<input type="text" class="pattern-input" value="" placeholder="'+this.escapeAttr(s.enter_pattern||"e.g. *cotton*")+'">',l+='<span class="pattern-match-count" title="'+this.escapeAttr(s.click_to_preview||"Click to preview matches")+'"><i class="icon-eye"></i> <span class="count-value"></span></span>',l+='<button type="button" class="btn-add-pattern" title="'+this.escapeAttr(s.add_pattern||"Add pattern (Enter)")+'"><i class="icon-plus"></i></button>',l+="</div>",l+='<span class="mpr-info-wrapper" data-details="'+this.escapeAttr(d)+'">',l+='<span class="mpr-icon icon-info link"></span>',l+="</span>",l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"numeric_range":l+='<div class="numeric-range-box">',l+='<input type="number" class="range-min-input" value="" placeholder="'+this.escapeAttr(s.min||"Min")+'" step="0.01">',l+='<span class="range-separator">-</span>',l+='<input type="number" class="range-max-input" value="" placeholder="'+this.escapeAttr(s.max||"Max")+'" step="0.01">',l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"multi_numeric_range":l+='<div class="multi-range-container">',l+='<div class="multi-range-chips"></div>',l+='<div class="multi-range-input-row">',l+='<input type="number" class="range-min-input" value="" placeholder="'+this.escapeAttr(s.min||"Min")+'" step="0.01">',l+='<span class="range-separator">-</span>',l+='<input type="number" class="range-max-input" value="" placeholder="'+this.escapeAttr(s.max||"Max")+'" step="0.01">',l+='<button type="button" class="btn-add-range" title="'+this.escapeAttr(s.add_range||"Add range")+'"><i class="icon-plus"></i></button>',l+="</div>",l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"multi_select_tiles":l+='<div class="multi-select-tiles">',l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"date_range":l+='<div class="date-range-box">',l+='<input type="date" class="date-from-input" value="">',l+='<span class="range-separator">-</span>',l+='<input type="date" class="date-to-input" value="">',l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"select":l+='<div class="select-input-box">',l+='<select class="select-value-input"></select>',l+="</div>",l+='<input type="hidden" class="'+o+'" value="[]">';break;case"boolean":l+='<div class="boolean-input-box">',l+='<span class="boolean-label">'+this.escapeHtml(s.yes||"Yes")+"</span>",l+="</div>",l+='<input type="hidden" class="'+o+'" value="[true]">';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+='<div class="combination-attributes-picker" data-combination-mode="'+this.escapeAttr(u)+'">',h&&(l+='<div class="combination-mode-toggle">',l+='<label class="combination-mode-option">',l+='<input type="radio" name="'+this.escapeAttr(e)+"_comb_mode_"+Date.now()+'" class="comb-mode-radio" value="products" checked>',l+='<span class="mode-label">'+this.escapeHtml(s.comb_mode_products||"Products with these combinations")+"</span>",l+="</label>",l+='<label class="combination-mode-option">',l+='<input type="radio" name="'+this.escapeAttr(e)+"_comb_mode_"+Date.now()+'" class="comb-mode-radio" value="combinations">',l+='<span class="mode-label">'+this.escapeHtml(s.comb_mode_combinations||"Only these exact combinations")+"</span>",l+="</label>",l+="</div>"),l+='<div class="combination-groups-container">',l+='<span class="combination-loading"><i class="icon-spinner icon-spin"></i> '+this.escapeHtml(s.loading||"Loading...")+"</span>",l+="</div>",l+="</div>",l+='<input type="hidden" class="'+o+'" value=\'{"mode":"'+f+'","attributes":{}}\'>';break;default:l+='<input type="hidden" class="'+o+'" value="[]">'}return l+"</div>"},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;c<r.length;c++)if(r[c].value===n){l=c;break}"DESC"===o?(i=n,a="ASC"):(i=r[(l+1)%r.length].value,a="DESC");for(var d=0;d<r.length;d++)if(r[d].value===i){s=r[d].label;break}e.data("sort",i),e.data("dir",a),e.attr("data-sort",i),e.attr("data-dir",a),e.attr("title",s+" "+("DESC"===a?"↓":"↑")),e.find("i").attr("class",this.getSortIconClass(i,a))},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("<div>",{class:"trait-validation-error",html:'<i class="icon-warning"></i> '+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='<div class="method-dropdown-trigger">';n+='<i class="'+this.escapeAttr(s)+' method-trigger-icon"></i>',n+='<span class="method-trigger-label">'+this.escapeHtml(r)+"</span>",n+='<i class="icon-caret-down method-trigger-caret"></i>';var o=e(n+="</div>");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='<div class="method-dropdown-menu">';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+='<div class="method-dropdown-item'+(o?" selected":"")+'" data-value="'+i.escapeAttr(n)+'">',a+='<i class="'+i.escapeAttr(s)+' method-item-icon"></i>',a+='<span class="method-item-label">'+i.escapeHtml(r)+"</span>",o&&(a+='<i class="icon-check method-item-check"></i>'),a+="</div>"}),t.children("optgroup").each(function(){var t=e(this),s=t.attr("label")||"";a+='<div class="method-dropdown-optgroup">',a+='<div class="method-optgroup-label">'+i.escapeHtml(s)+"</div>",a+='<div class="method-optgroup-items">',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+='<div class="method-dropdown-item'+(o?" selected":"")+'" data-value="'+i.escapeAttr(n)+'">',a+='<i class="'+i.escapeAttr(s)+' method-item-icon"></i>',a+='<span class="method-item-label">'+i.escapeHtml(r)+"</span>",o&&(a+='<i class="icon-check method-item-check"></i>'),a+="</div>"}),a+="</div>",a+="</div>"}),a+="</div>"},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("<button>",{type:"button",class:o,"data-value":t});r&&l.append(e("<i>",{class:r})),l.append(e("<span>",{class:"tile-label",text:a})),s.append(l)})},applyRangeInputConstraints:function(e,t,i){var a=e.find(".range-min-input, .range-max-input");null!=t?a.attr("step",t):a.attr("step","any"),null!=i?a.attr("min",i):a.removeAttr("min")},showRangeInputError:function(t,i){var a=t.closest(".multi-range-input-row");a.find(".range-input-error").remove(),a.find(".range-min-input, .range-max-input").removeClass("has-error"),t.addClass("has-error");var s=e("<span>",{class:"range-input-error",text:i});a.append(s),setTimeout(function(){t.removeClass("has-error"),s.fadeOut(200,function(){e(this).remove()})},3e3)},loadCombinationAttributeGroups:function(t){var i=this,a=this.config.trans||{},s=t.find(".combination-groups-container");e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getAttributeGroups",trait:"TargetConditions"},success:function(r){s.empty(),r.success&&r.groups&&0!==r.groups.length?r.groups.forEach(function(r){var n=e("<div>",{class:"comb-attr-group","data-group-id":r.id}),o=e("<div>",{class:"comb-attr-group-header"});o.append(e("<span>",{class:"comb-attr-group-name",text:r.name})),o.append(e("<span>",{class:"comb-attr-group-count",text:"0"}));var l=e("<div>",{class:"comb-attr-toolbar"});l.append(e("<button>",{type:"button",class:"comb-toolbar-btn comb-select-all",title:a.select_all||"Select all",html:'<i class="icon-check-square-o"></i>'})),l.append(e("<button>",{type:"button",class:"comb-toolbar-btn comb-select-none",title:a.clear||"Clear",html:'<i class="icon-square-o"></i>'})),l.append(e("<input>",{type:"text",class:"comb-attr-search",placeholder:a.filter_results||"Filter..."}));var c=e("<div>",{class:"comb-attr-values","data-loaded":"false"});c.append(e("<span>",{class:"comb-attr-loading",html:'<i class="icon-spinner icon-spin"></i>'})),n.append(o),n.append(l),n.append(c),s.append(n),i.loadCombinationAttributeValues(t,r.id,c)}):s.html('<span class="combination-empty">'+i.escapeHtml(a.no_attribute_groups||"No attribute groups found")+"</span>")},error:function(){s.html('<span class="combination-error">'+i.escapeHtml(a.error_loading||"Error loading attribute groups")+"</span>")}})},loadCombinationAttributeValues:function(t,i,a){var s=this,r=this.config.trans||{};e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getAttributeValues",trait:"TargetConditions",id_attribute_group:i},success:function(n){a.empty(),a.attr("data-loaded","true"),n.success&&n.values&&0!==n.values.length?(n.values.forEach(function(t){var s=parseInt(t.product_count)||0,r=e("<button>",{type:"button",class:"comb-attr-value","data-value-id":t.id,"data-group-id":i,"data-name":t.name.toLowerCase()});r.append(e("<span>",{class:"comb-attr-value-name",text:t.name})),s>0&&r.append(e("<span>",{class:"comb-attr-value-count",text:s})),a.append(r)}),s.restoreCombinationSelections(t)):a.html('<span class="comb-attr-empty">'+s.escapeHtml(r.no_values||"No values")+"</span>")},error:function(){a.html('<span class="comb-attr-error">'+s.escapeHtml(r.error_loading||"Error")+"</span>")}})},restoreCombinationSelections:function(t){var i,a=t.find(".include-values-data, .exclude-values-data").first().val()||"{}";try{i=JSON.parse(a)}catch(e){return}var s=i.attributes||i,r=i.mode||"products";t.find('.comb-mode-radio[value="'+r+'"]').prop("checked",!0),e.each(s,function(e,i){Array.isArray(i)&&i.forEach(function(i){t.find('.comb-attr-value[data-group-id="'+e+'"][data-value-id="'+i+'"]').addClass("selected")})}),this.updateCombinationGroupCounts(t)},updateCombinationData:function(t){var i={};t.find(".comb-attr-value.selected").each(function(){var t=e(this).data("groupId").toString(),a=e(this).data("valueId");i[t]||(i[t]=[]),i[t].push(a)});var a=t.find(".combination-attributes-picker").data("combinationMode")||this.config.combinationMode||"products",s={mode:"toggle"===a?t.find(".comb-mode-radio:checked").val()||"products":a,attributes:i};t.find(".include-values-data, .exclude-values-data").first().val(JSON.stringify(s)),this.updateCombinationGroupCounts(t)},updateCombinationGroupCounts:function(t){t.find(".comb-attr-group").each(function(){var t=e(this),i=t.find(".comb-attr-value.selected").length;t.find(".comb-attr-group-count").text(i),i>0?t.addClass("has-selections"):t.removeClass("has-selections")})},updateMethodInfoPlaceholder:function(t,i,a){var s=t.find(".method-info-placeholder");if(s.length){s.empty();var r=this.config.methodHelp||{},n=(r[a]||r.products||{})[i]||this.getBuiltInMethodHelp(i);if(n){var o=e("<span>",{class:"mpr-info-wrapper","data-details":n});o.append(e("<span>",{class:"mpr-icon icon-info link"})),s.append(o)}}},getBuiltInMethodHelp:function(e){var t=this.config.trans||{},i="";switch(e){case"all":i="<strong>"+this.escapeHtml(t.help_all_title||"All Items")+"</strong>",i+="<p>"+this.escapeHtml(t.help_all_desc||"Selects all items without any filtering.")+"</p>";break;case"specific":i="<strong>"+this.escapeHtml(t.help_specific_title||"Specific Items")+"</strong>",i+="<p>"+this.escapeHtml(t.help_specific_desc||"Search and select individual items by name, reference, or ID.")+"</p>";break;case"by_category":i="<strong>"+this.escapeHtml(t.help_category_title||"By Category")+"</strong>",i+="<p>"+this.escapeHtml(t.help_category_desc||"Select items belonging to specific categories. Includes subcategories.")+"</p>";break;case"by_manufacturer":i="<strong>"+this.escapeHtml(t.help_manufacturer_title||"By Manufacturer")+"</strong>",i+="<p>"+this.escapeHtml(t.help_manufacturer_desc||"Select items from specific manufacturers/brands.")+"</p>";break;case"by_supplier":i="<strong>"+this.escapeHtml(t.help_supplier_title||"By Supplier")+"</strong>",i+="<p>"+this.escapeHtml(t.help_supplier_desc||"Select items from specific suppliers.")+"</p>";break;case"by_tag":i="<strong>"+this.escapeHtml(t.help_tag_title||"By Tag")+"</strong>",i+="<p>"+this.escapeHtml(t.help_tag_desc||"Select items with specific tags assigned.")+"</p>";break;case"by_attribute":i="<strong>"+this.escapeHtml(t.help_attribute_title||"By Attribute")+"</strong>",i+="<p>"+this.escapeHtml(t.help_attribute_desc||"Select items with specific attribute values (e.g., Color: Red).")+"</p>";break;case"by_feature":i="<strong>"+this.escapeHtml(t.help_feature_title||"By Feature")+"</strong>",i+="<p>"+this.escapeHtml(t.help_feature_desc||"Select items with specific feature values (e.g., Material: Cotton).")+"</p>";break;case"by_combination":i="<strong>"+this.escapeHtml(t.help_combination_title||"Combination Targeting")+"</strong>",i+="<p>"+this.escapeHtml(t.help_combination_desc||"Select items by combination attributes.")+"</p>",i+="<p><strong>"+this.escapeHtml(t.help_combination_logic||"Logic:")+"</strong></p>",i+="<ul>",i+="<li>"+this.escapeHtml(t.help_combination_within||"Within group: OR (Red OR Blue)")+"</li>",i+="<li>"+this.escapeHtml(t.help_combination_between||"Between groups: AND (Color AND Size)")+"</li>",i+="</ul>";break;case"by_carrier":i="<strong>"+this.escapeHtml(t.help_carrier_title||"By Carrier")+"</strong>",i+="<p>"+this.escapeHtml(t.help_carrier_desc||"Select items available with specific carriers.")+"</p>";break;case"by_condition":i="<strong>"+this.escapeHtml(t.help_condition_title||"By Condition")+"</strong>",i+="<p>"+this.escapeHtml(t.help_condition_desc||"Filter by product condition: New, Used, or Refurbished.")+"</p>";break;case"by_visibility":i="<strong>"+this.escapeHtml(t.help_visibility_title||"By Visibility")+"</strong>",i+="<p>"+this.escapeHtml(t.help_visibility_desc||"Filter by where products are visible in the store.")+"</p>";break;case"by_active_status":i="<strong>"+this.escapeHtml(t.help_active_title||"By Active Status")+"</strong>",i+="<p>"+this.escapeHtml(t.help_active_desc||"Filter by whether products are enabled or disabled.")+"</p>";break;case"by_stock_status":i="<strong>"+this.escapeHtml(t.help_stock_title||"By Stock Status")+"</strong>",i+="<p>"+this.escapeHtml(t.help_stock_desc||"Filter by stock availability: In stock, Out of stock, or Low stock.")+"</p>";break;case"by_on_sale":case"by_has_specific_price":case"by_is_virtual":case"by_is_pack":case"by_has_combinations":case"by_available_for_order":case"by_online_only":case"by_has_related":case"by_has_customization":case"by_has_attachments":case"by_has_additional_shipping":i="<strong>"+this.escapeHtml(t.help_boolean_title||"Yes/No Filter")+"</strong>",i+="<p>"+this.escapeHtml(t.help_boolean_desc||"Filter products by this property.")+"</p>";break;case"by_name_pattern":case"by_reference_pattern":case"by_description_pattern":case"by_long_description_pattern":case"by_ean13_pattern":case"by_upc_pattern":case"by_isbn_pattern":case"by_mpn_pattern":case"by_meta_title_pattern":case"by_meta_description_pattern":i="<strong>"+this.escapeHtml(t.help_pattern_title||"Pattern Matching")+"</strong>",i+="<p>"+this.escapeHtml(t.help_pattern_desc||"Match text using patterns with wildcards.")+"</p>",i+="<div><code>*</code> "+this.escapeHtml(t.help_pattern_wildcard||"any text")+"</div>",i+="<div><code>{number}</code> "+this.escapeHtml(t.help_pattern_number||"any number")+"</div>",i+="<div><code>{letter}</code> "+this.escapeHtml(t.help_pattern_letter||"single letter A-Z")+"</div>";break;case"by_id_range":case"by_price_range":case"by_weight_range":case"by_quantity_range":case"by_position_range":i="<strong>"+this.escapeHtml(t.help_range_title||"Numeric Range")+"</strong>",i+="<p>"+this.escapeHtml(t.help_range_desc||"Filter by numeric values within specified ranges.")+"</p>",i+="<p>"+this.escapeHtml(t.help_range_tip||"Leave min or max empty for open-ended ranges.")+"</p>";break;case"by_date_added":case"by_date_updated":i="<strong>"+this.escapeHtml(t.help_date_title||"Date Range")+"</strong>",i+="<p>"+this.escapeHtml(t.help_date_desc||"Filter by date within a specific period.")+"</p>"}return i},buildSortOptions:function(e){var t=[];switch(e){case"products":t=[{value:"sales",label:"Best sellers"},{value:"date_add",label:"Newest"},{value:"price",label:"Price"},{value:"name",label:"Name"},{value:"position",label:"Position"},{value:"quantity",label:"Stock quantity"},{value:"random",label:"Random"}];break;case"categories":t=[{value:"name",label:"Name"},{value:"position",label:"Position"},{value:"product_count",label:"Product count"},{value:"total_sales",label:"Best sellers"},{value:"newest_products",label:"Newest products"},{value:"date_add",label:"Creation date"},{value:"random",label:"Random"}];break;case"manufacturers":case"suppliers":t=[{value:"name",label:"Name"},{value:"product_count",label:"Product count"},{value:"total_sales",label:"Best sellers"},{value:"newest_products",label:"Newest products"},{value:"random",label:"Random"}];break;case"cms":case"cms_categories":t=[{value:"name",label:"Name"},{value:"position",label:"Position"},{value:"random",label:"Random"}];break;default:t=[{value:"name",label:"Name"},{value:"random",label:"Random"}]}for(var i="",a=0;a<t.length;a++)i+='<option value="'+this.escapeAttr(t[a].value)+'">'+this.escapeHtml(t[a].label)+"</option>";return i},updateModifierButtonState:function(t){var i=t.find(".group-modifier-limit").val(),a=t.find(".group-modifier-sort").val(),s=t.find(".group-modifiers"),r=t.find(".btn-toggle-modifiers"),n=this.config.trans||{};if(r.find(".modifier-summary").remove(),i||a){s.addClass("has-values");var o=[];if(i&&o.push((n.top||"Top")+" "+i),a){var l=t.find(".group-modifier-sort option:selected").text();o.push(l)}var c=r.find(".toggle-arrow");e('<span class="modifier-summary">'+this.escapeHtml(o.join(", "))+"</span>").insertBefore(c)}else s.removeClass("has-values")},updateMethodSelectorLock:function(e,t){var i=e.find(".include-method-select"),a=i.closest(".method-selector-wrapper"),s=this.config.trans||{};if(t){if(i.prop("disabled",!0),a.length||(i.wrap('<div class="method-selector-wrapper"></div>'),a=i.parent(".method-selector-wrapper")),a.addClass("selector-locked"),!a.find(".mpr-info-wrapper").length){var r='<span class="mpr-info-wrapper lock-indicator"><i class="icon-lock"></i><span class="mpr-tooltip">'+(s.remove_excludes_first||"Remove all exceptions to change selection type")+"</span></span>",n=a.find(".condition-match-count");n.length?n.before(r):a.append(r)}}else i.prop("disabled",!1),a.length?(a.removeClass("selector-locked"),a.find(".mpr-info-wrapper.lock-indicator").remove()):i.siblings(".mpr-info-wrapper.lock-indicator").remove()}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.preview={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)}},showPreviewPopover:function(t){var i=t.data("previewData");if(i){this.hidePreviewPopover();var a=t.find(".tab-badge");a.addClass("popover-open"),this.$activeBadge=a;var s=i.items||i.products||[];this.previewLoadedCount=s.length,this.previewBlockType=t.data("blockType");var r=this.previewBlockType,n=(this.config.blocks&&this.config.blocks[r]?this.config.blocks[r]:{}).entity_label_plural||"items",o=this.config.trans||{},l='<div class="target-preview-popover">';if(l+='<div class="preview-header">',l+='<span class="preview-count">'+i.count+" "+n+" "+(o.items_matched||"matched")+"</span>",l+='<button type="button" class="preview-close"><i class="icon-times"></i></button>',l+="</div>",l+='<div class="preview-filter">',l+='<input type="text" class="preview-filter-input" placeholder="'+(o.filter_results||"Filter results...")+'">',l+="</div>",s.length>0){if(l+='<div class="preview-list">',l+=this.renderPreviewItems(s),l+="</div>",i.hasMore){var c=i.count-s.length;l+='<div class="preview-footer">',l+='<div class="load-more-controls">',l+='<span class="load-more-label">'+(o.load||"Load")+"</span>",l+='<select class="load-more-select">',l+='<option value="10">10</option>',l+='<option value="20" selected>20</option>',l+='<option value="50">50</option>',l+='<option value="100">100</option>',l+='<option value="'+c+'">'+(o.all||"All")+" ("+c+")</option>",l+="</select>",l+='<span class="load-more-of">'+(o.of||"of")+' <span class="remaining-count">'+c+"</span> "+(o.remaining||"remaining")+"</span>",l+='<button type="button" class="btn-load-more-preview"><i class="icon-plus"></i></button>',l+="</div>",l+="</div>"}}else l+='<div class="preview-empty">'+(o.no_preview||"No items to preview")+"</div>";var d=e(l+="</div>");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+='<div class="'+a+'" data-name="'+(t.name||"").toLowerCase()+'" data-ref="'+(t.reference||"").toLowerCase()+'" data-attrs="'+s+'">',t.image?i+='<img src="'+t.image+'" alt="" class="preview-image">':i+='<span class="preview-image-placeholder"><i class="icon-picture-o"></i></span>',i+='<div class="preview-info">',i+='<span class="preview-name">'+t.name+"</span>",t.attributes&&(i+='<span class="preview-attributes">'+t.attributes+"</span>"),t.reference&&(i+='<span class="preview-ref">'+t.reference+"</span>"),i+="</div>",i+="</div>"}),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='<div class="pattern-preview-modal-overlay">';d+='<div class="pattern-preview-modal">',d+='<div class="pattern-preview-header">',d+='<span class="pattern-preview-title">',d+='<i class="icon-eye"></i> '+(n.preview||"Preview")+": <code>"+this.escapeHtml(t)+"</code>",d+="</span>",d+='<span class="pattern-preview-count">'+s+" "+(1===s?c:l)+"</span>",d+='<button type="button" class="pattern-preview-close"><i class="icon-times"></i></button>',d+="</div>",d+='<div class="pattern-preview-content">',d+='<div class="pattern-preview-loading"><i class="icon-spinner icon-spin"></i> '+(n.loading||"Loading...")+"</div>",d+="</div>",d+="</div>";var p=e(d+="</div>");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='<div class="pattern-preview-list">';if(0===t.length)i+='<div class="pattern-preview-empty">'+(n.no_matches||"No matches found")+"</div>";else{for(var a=0;a<t.length;a++){var o=t[a];i+='<div class="pattern-preview-item">',o.image&&(i+='<img src="'+r.escapeAttr(o.image)+'" alt="" class="preview-item-image">'),i+='<span class="preview-item-name">'+r.escapeHtml(o.name)+"</span>",o.id&&(i+='<span class="preview-item-id">#'+o.id+"</span>"),i+="</div>"}s>t.length&&(i+='<div class="pattern-preview-more">... '+(n.and||"and")+" "+(s-t.length)+" "+(n.more||"more")+"</div>")}i+="</div>",p.find(".pattern-preview-content").html(i)}else p.find(".pattern-preview-content").html('<div class="pattern-preview-error">'+(n.error_loading||"Error loading preview")+"</div>")},error:function(){p.find(".pattern-preview-content").html('<div class="pattern-preview-error">'+(n.error_loading||"Error loading preview")+"</div>")}})},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='<div class="target-preview-popover preview-type-'+o+'">';d+='<div class="preview-header">',d+='<span class="preview-count">'+a+" "+r+"</span>",d+='<button type="button" class="preview-close"><i class="icon-times"></i></button>',d+="</div>",i.length>0?(d+='<div class="preview-list">',d+=this.renderPreviewItems(i),d+="</div>",s&&(d+='<div class="preview-footer">',d+='<span class="preview-more-info">+ '+(a-i.length)+" "+(c.more||"more")+"</span>",d+="</div>")):d+='<div class="preview-empty">'+(c.no_preview||"No items to preview")+"</div>";var p=e(d+="</div>");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<e.length;i++){var a=e[i];t+='<div class="preview-item">',a.image?t+='<img src="'+this.escapeHtml(a.image)+'" class="preview-item-image" alt="">':t+='<div class="preview-item-icon"><i class="material-icons">inventory_2</i></div>',t+='<div class="preview-item-info">',t+='<div class="preview-item-name">'+this.escapeHtml(a.name||"Unnamed")+"</div>";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+='<div class="preview-item-meta">'+this.escapeHtml(s.join(" • "))+"</div>"),t+="</div>",void 0!==a.price&&(t+='<div class="preview-item-price">'+this.formatPrice(a.price)+"</div>"),void 0===a.active||a.active||(t+='<span class="preview-item-badge">Inactive</span>'),t+="</div>"}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,'<div class="target-preview-popover preview-type-filter-group">');d+='<div class="preview-header">',d+='<span class="preview-count">'+a+" "+r+"</span>",d+='<button type="button" class="preview-close"><i class="icon-times"></i></button>',d+="</div>",i.length>0?(d+='<div class="preview-list">',d+=this.renderPreviewItems(i),d+="</div>",s&&(d+='<div class="preview-footer">',d+='<span class="preview-more-info">+ '+(a-i.length)+" "+(c.more||"more")+"</span>",d+="</div>")):d+='<div class="preview-empty">'+(c.no_preview||"No items to preview")+"</div>";var p=e(d+="</div>");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;t<this.instances.length;t++)this.instances[t].validate()||(e=!1);return e}};window.TargetConditions=t,e(document).ready(function(){e("[data-entity-selector-id]").each(function(){var i=e(this).data("config");i&&t.create(i)}),e(document).on("click",".target-tips-box .tips-header",function(t){t.preventDefault(),e(this).closest(".target-tips-box").toggleClass("expanded")}),e(document).on("submit","form",function(i){if(e(this).find(".target-conditions-trait[data-required]").length>0&&!t.validateAll())return i.preventDefault(),!1})})}(jQuery);
|
||
//# sourceMappingURL=entity-selector.min.js.map
|