/*! * Product Filter v2.0.0 */ ko.bindingHandlers.rangeSlider={update:function(e,t,i,o,r){$(e).ionRangeSlider({keyboard:!0,min:o.minimum,max:o.maximum,from:o.minimumValue(),to:o.maximumValue(),type:"double",step:100,postfix:"",prettify_separator:",",values_separator:" — ",prettify_enabled:!0,force_edges:!0,onFinish:function(e){o.minimumValue(e.from),o.maximumValue(e.to)}})}},ko.bindingHandlers.checkList={update:function(e,t,i,o,r){}},ko.bindingHandlers.openDropdown={update:function(e){$(e).hasClass("selectedType")&&"block"!==$(e).parent("ul").css("display")&&!$(e).closest(".optionsContainer").hasClass("dropDownOptionList-btn")?$(e).parent("ul").slideDown():$(e).closest(".optionsContainer").hasClass("dropDownOptionList-btn")&&""===$(e).closest(".optionsContainer").find(".selectedOption").html()&&$(e).closest(".optionsContainer").find(".selectedOption").text($(e).parent("ul").find("li").eq(2).children().text())}},ko.bindingHandlers.RadioBehave={update:function(e,t,i,o){if($(e).closest(".optionsContainer").hasClass("dropDownOptionList-btn")&&$(e).hasClass("selectedType")){$(e).closest(".dropDownOptionList-btn").find("input[type='checkbox']").prop("checked",!1),$(e).find('input[type="checkbox"]').prop("checked",!0);var r=i().RadioBehave;r&&r.onChange&&r.onChange(e,o)}}},ko.bindingHandlers.popover={update:function(e){var t=$.fn.popover.Constructor.prototype.leave;$.fn.popover.Constructor.prototype.leave=function(e){var i,o,r=e instanceof this.constructor?e:$(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);t.call(this,e),e.currentTarget&&(i=$(e.currentTarget).siblings(".popover"),o=r.timeout,i.one("mouseenter",function(){clearTimeout(o),i.one("mouseleave",function(){$.fn.popover.Constructor.prototype.leave.call(r,r)})}))},$(e).popover({trigger:"click hover",html:!0,placement:function(e,t){return 768>$(window).width()?"bottom":($(window).width(),"left")},content:function(){return $("#"+$(e).attr("rel")).html()},delay:{show:20,hide:100}})}},function(){var e,t=function(e){var t=this;t.value=e.value,t.splitedValue=ko.pureComputed(function(){return t.value.split("|")}),t.displayOrder=e.displayOrder,t.cssClass=e.cssClass};function i(e,t){return e.displayOrder-t.displayOrder}var o=function(o){var r=this;r.id=o.id,r.title=o.title,r.englishTitle=o.englishTitle,r.categoryTitle=o.categoryTitle,r.cover=e.prefixImageAddress+o.cover,r.slug=o.slug,r.price=o.price,r.overviewDescription=o.overviewDescription,r.url=e.productUrlPattern+o.slug+"/",r.overallScore=o.overallScore,r.lowestPrice=o.lowestPrice,r.priceToDisplay=toDigits(o.lowestPrice),r.currencyTitle=o.currencyTitle,r.specifications=ko.observableArray(ko.utils.arrayMap(o.specifications.sort(i),function(e){return new t(e)}))},r=function(e){var t=this;t.options=$.extend({onLoadCompleted:function(){}},e.options),t.products=ko.observableArray([]),t.totalCount=ko.observable(0),t.compareList=ko.observableArray([]);var i=function(e){t.options.onLoadCompleted&&"function"==typeof t.options.onLoadCompleted&&t.options.onLoadCompleted(e)};t.loadResult=function(e,r){t.products(ko.utils.arrayMap(e.products,function(e){return new o(e)})),t.totalCount(e.totalCount),i(r)},t.addCompareList=function(e){t.compareList(e)},t.hasCompareListExists=function(e){return t.compareList().some(t=>t.id===e)}};this.ProductsFilter=function(t){var i,o=this,n=!0;o.options=$.extend({productUrlPattern:"",rootProductSlug:"",rootProductTitle:"",isAutoFilter:!0,requestFilterUrl:"",sortOptions:[],pageSizes:[],selectedSortOption:null,selectedPageSize:null,onLoadCompleted:function(){},onError:function(e){}},t),e=o.options,o.title=ko.observable(""),o.pageNumber=ko.observable(t.pageNumber>1?t.pageNumber:1),o.pageSize=ko.observable(t.selectedPageSize?t.selectedPageSize:20),o.isLoadCompleted=ko.observable(!1),o.sortOptions=ko.observableArray([]),o.pageSizes=ko.observableArray([]),o.parameters=ko.observable(o.options.parameters),o.pagination=new PaginationViewModel(o.pageNumber()),o.pagination.initialize({onPageChanged:function(e,t){o.pageNumber(e),o.pageSize(t),o.sendFilterRequest()}}),o.filterViewModel=new AdvancedFilter({sortOptions:o.options.sortOptions,selectedSortOption:o.options.selectedSortOption,pageSizes:o.options.pageSizes,selectedPageSize:o.options.selectedPageSize,pageNumber:o.pageNumber,onFilterChanged:function(){(("function"==typeof o.options.isAutoFilter?o.options.isAutoFilter():o.options.isAutoFilter)||o.options.isChangeSortOption())&&u()}}),o.result=new r({prodcuts:[],totalCount:0,options:{onLoadCompleted:o.options.onLoadCompleted}});var s=function(e){o.options.onError&&"function"==typeof o.options.onError&&o.options.onError(e)},l=function(){var e=o.filterViewModel.getFilterData();return e.rootProductSlug=o.options.rootProductSlug,e.pageSize=o.getPageSize(),e.pageNumber=o.pageNumber(),e.sortOption=o.selectedSortOption&&o.selectedSortOption()?o.selectedSortOption().value:null,JSON.parse(ko.toJSON(e))},a=function(){for(var e=0;e0?o.options.seoTitles.filter(e=>"default-category"==e.key)[0].value:o.options.seoTitles.filter(e=>"default"==e.key)[0].value},p=function(){var e=[],t=0,i=o.filterViewModel.getFilterData().filterItems;if(i)for(var r=0;r0&&(o.options.seoKey+="-category");var p=a(),u="";if(p){var c,d="",g="",f=e.filter(e=>"نوع حافظه"===e.fieldName),m=e.filter(e=>"CATEGORY"===e.fieldName);d="",g="";var h="";if(1===f.length)d+=f[0].persianTitle,g+=f[0].englishTitle;else if(f.length>1){for(c=0;c1){for(c=0;c1){for(c=0;c-1&&(u=u.replace("بازی سونی","پلی استیشن").replace("بازی مایکروسافت","ایکس باکس").replace("سونی","پلی استیشن").replace("مایکروسافت","ایکس باکس")),e.findIndex(e=>"نوع حافظه"===e.fieldName)>-1&&(u=(u=u.replace("حافظه ذخیره سازی","")).replace("حافظه های ذخیره سازی",""))}"گوشی های"==u.trim()&&(u="قیمت گوشی موبایل"),o.title(u.trim())},u=function(){n=!0,o.pageNumber(1),o.sendFilterRequest()},c=function(e,t,i){if(e&&e.length>0)for(var o=0;o0&&c(r.children,t,r.title)}},d=function(e,t){if(e&&e.length>0)for(var i=0;i0&&d(r.children,t)}},g=function(){var e={url:o.parameters()};if(e.url)return e.isParameterUrl=!0,o.parameters(""),e;var t=l(),i=[],r=[];if(t.filterItems&&t.filterItems.length>0&&d(t.filterItems,r),r.length>0&&i.push({value:r.join("/")}),t.sortOptions&&t.sortOptions.length>0)for(var n=0;n0)for(var a=0;a1&&i.push({name:"page",value:t.pageNumber});var u="";return $(i).each(function(){this.name&&(u+=this.name+"/"),u+=this.value+"/"}),{url:u,isParameterUrl:!1}};o.changeSortOption=function(e){return o.selectedSortOption(e),o.sendFilterRequest(),!1},o.getPageSize=function(){return o.filterViewModel.selectedPageSize&&o.filterViewModel.selectedPageSize()?o.filterViewModel.selectedPageSize().id:21},o.sendFilterRequest=function(e){i&&i.abort(),o.isLoadCompleted(!1);var t=g();i=$.post(o.options.requestFilterUrl,"params="+t.url).done(function(i){i?i.isSucceed?i.filters.filter(e=>"HasPrice"==e.fieldName)[0].children[0].isSelected&&0==i.result.products.length?(0==o.filterViewModel.filterItems().length&&o.filterViewModel.loadFilters(i.filters),o.filterViewModel.filterItems().filter(e=>"HasPrice"==e.fieldName)[0].children()[0].isSelected(!1),o.sendFilterRequest()):(o.filterViewModel.loadFilters(i.filters),"true"!=e&&($(".serverResult").length>0&&$(".serverResult").remove(),$(".modelTemplateClass").removeClass("modelTemplateClass"),o.result.loadResult(i.result,t)),n&&(o.pagination.configs.pageSize(o.getPageSize()),o.pagination.reset(i.result.totalCount,o.pageNumber()),n=!1)):(showAlert(i.messages),s(i.messages)):s()}).fail(function(e,t){s(t)}).always(function(){p(),o.isLoadCompleted(!0)})},o.prepareFilterRequest=function(e){var t=getParameterWithSlashFormat(e,"pagesize");o.parameters(e),o.pagination.changePageNumber(getParameterWithSlashFormat(e,"page")),o.filterViewModel.selectedSortOptionId(getParameterWithSlashFormat(e,"sort")),o.filterViewModel.selectedPageSizeId(t),t&&o.pagination.configs.pageSize(t)},o.manualFilter=function(){u()}}}();