{"version":3,"file":"3343_49ae292c64949ff481eb.bundle.js","mappings":"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","sources":["webpack://tumarket/./js/filter/filter.js","webpack://tumarket/./js/filter/filterCont.js","webpack://tumarket/./js/filter/script.js","webpack://tumarket/./js/global/form.js","webpack://tumarket/./js/global/popover.js","webpack://tumarket/./js/global/url.js","webpack://tumarket/./js/previews/previewsEmbed.js","webpack://tumarket/./js/search/productsList.js"],"sourcesContent":["/* global tumarket */\n\nimport * as $ from \"jquery\";\nimport \"bootstrap/js/dist/tooltip\";\nimport \"bootstrap/js/dist/popover\";\nimport \"bootstrap/js/dist/tab\";\nimport \"bootstrap/js/dist/modal\";\nimport \"jquery-ui\";\nimport \"jquery-ui/ui/widgets/slider.js\";\nimport tumGlobal from \"../global.js\";\nimport filterCont from \"./filterCont.js\";\nimport filter from \"./script.js\";\nimport { closeProgressbar, openProgressbar } from \"../global/progressbar\";\nimport { ajaxSend } from \"../global/fetch\";\nimport { bootstrapAlert } from \"../global/alert\";\nimport { getUrlParameter } from \"../global/url\";\nimport { getCookie, setCookie } from \"../global/cookie\";\nimport \"readmore-js\";\nimport { isCtuIgnoredAdulthood, showAdultWarning } from \"../product/restrictAdult.js\";\nimport { getPrecompiledTemplate, loadPrecompiledTemplates } from \"../global/templates\";\nimport { initTuPopover } from \"../global/popover\";\nimport { addEventDelegate, toggleClass } from \"../global/dom\";\nimport { swapAltHtml } from \"../global/util.js\";\n\nimport \"jquery-ui/dist/themes/base/jquery-ui.min.css\";\nimport { getLocationFromYandex } from \"../global/geo.js\";\n\nvar searchFilter = {\n\toptions: {\n\t\tarr: [],\n\t\tarr_alt: [],\n\t\taskForCoordinates: false\n\t},\n\tcoordinates: null,\n\tradius: 0,\n\telements: {\n\t\tsearch: \".b-aside-xs\",\n\t\tsearchMob: \".mobile-fullsize\",\n\t\tsearchOpen: '.search-open-time'\n\t},\n\tresetPrice: function (el) {\n\t\tif ($(el).attr('data-itemid') == 0 || $(el).attr('id') == 'slider' || $(el).attr('id') == 'slider-mob') {\n\t\t\tvar isMob = window.innerWidth < 768;\n\n\t\t\tvar minPrice = isMob ? $(\"input#minCost-mob\").attr('data-minprice') : $(\"input#minCost\").attr('data-minprice');\n\t\t\tvar maxPrice = isMob ? $(\"input#maxCost-mob\").attr('data-maxprice') : $(\"input#maxCost\").attr('data-maxprice');\n\t\t\t$(!isMob ? \"input#minCost\" : \"input#minCost-mob\").val(minPrice);\n\t\t\t$(!isMob ? \"input#minCost\" : \"input#minCost-mob\").trigger('change');\n\t\t\t$(!isMob ? \"input#maxCost\" : \"input#maxCost-mob\").val(maxPrice);\n\t\t\t$(!isMob ? \"input#maxCost\" : \"input#maxCost-mob\").trigger('change');\n\t\t}\n\t},\n\tresetMetric: function (el) {\n\t\tvar isMob = $(el).closest('.b-aside-modal').hasClass('mobile-fullsize');\n\t\tif (isMob) {\n\t\t\tvar sliders = $(el).closest('.card').find('.f-ch-slider');\n\t\t\t$.each($(sliders), function (i, elm) {\n\t\t\t\tvar sliderID = $(elm).attr('data-sid');\n\t\t\t\tsetSliderTrigger(sliderID);\n\t\t\t});\n\t\t} else {\n\t\t\tvar sliderID = $(el).attr('data-itemid');\n\t\t\tsetSliderTrigger(sliderID);\n\t\t}\n\n\t\tfunction setSliderTrigger(sliderID) {\n\t\t\tvar cont = $('.b-filter-f-ch[data-itemid=' + sliderID + ']');\n\t\t\tvar minInput = $(cont).find('input.minVal' + sliderID);\n\t\t\tvar maxInput = $(cont).find('input.maxVal' + sliderID);\n\t\t\t$(minInput).val($(minInput).attr('data-min-char'));\n\t\t\t$(minInput).trigger('change');\n\t\t\t$(maxInput).val($(maxInput).attr('data-max-char'));\n\t\t\t$(maxInput).trigger('change');\n\t\t}\n\t},\n\tsetFilterPriceAndMetrics: function (slider, sliderID) {\n\n\t\t$('.collapseSummaryClass').removeClass('d-none');\n\t\t$('.tum-filter-clear-all-cont').removeClass('d-none');\n\t\tthis.changeOfferResetFilter();\n\t\tvar filterItems = $('.collapseSummaryClass span');\n\t\tvar priceExist = false;\n\t\tvar isExist = false;\n\n\t\tif ($(slider).hasClass('f-ch-slider')) {\n\t\t\t$.each(filterItems, function (idx, el) {\n\t\t\t\tif ($(el).attr('data-itemid') == sliderID) {\n\t\t\t\t\tisExist = true\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar metricName = ($(slider).slider(\"values\", 0) / $(slider).attr('data-multiply')) + \"-\" + ($(slider).slider(\"values\", 1) / $(slider).attr('data-multiply')) + $(slider).attr('data-siname') + ', ' + $(slider).attr('data-charactName');\n\t\t\tvar isMob = window.innerWidth < 768;\n\t\t\tif (isMob) {\n\t\t\t\tvar txt = '';\n\t\t\t\tvar mName = '';\n\t\t\t\tvar g = 0;\n\t\t\t\tvar sliders = $(slider).closest('.charactItems').find('.f-ch-slider');\n\t\t\t\t$.each($(sliders), function (i, elm) {\n\t\t\t\t\tvar minDef = parseFloat($(elm).attr('data-min-val'));\n\t\t\t\t\tvar maxDef = parseFloat($(elm).attr('data-max-val'));\n\t\t\t\t\tvar valMin = parseFloat($(elm).slider(\"values\", 0) / $(elm).attr('data-multiply'));\n\t\t\t\t\tvar valMax = parseFloat($(elm).slider(\"values\", 1) / $(elm).attr('data-multiply'));\n\t\t\t\t\tif (valMin > minDef || valMax < maxDef) {\n\t\t\t\t\t\tg++;\n\t\t\t\t\t\tmName = (valMin + \"-\" + valMax + $(elm).attr('data-siname') + ', ' + $(elm).attr('data-charactName')).trim();\n\t\t\t\t\t\ttxt += txt.length > 0 ? '; ' + (g > 2 ? ' + ещё ' + (g - 2) : mName) : mName;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$(slider).closest('.card').find('.selected-items i').attr('data-itemid', sliderID);\n\t\t\t\t$(slider).closest('.card').find('.selected-items i').attr('data-slidername', 'metric');\n\t\t\t\t$(slider).closest('.card').find('.selected-items .value').html(txt);\n\n\t\t\t\tif ($(\".card .b-filter-f-ch\").length > 1) {\n\t\t\t\t\tvar values = $(\".card .b-filter-f-ch\").closest('.card').find('.value.item-char');\n\t\t\t\t\t$.each(values, function (i, el) {\n\t\t\t\t\t\tvar txt = $(el).text();\n\t\t\t\t\t\tvar spl = txt.split(';')[i];\n\t\t\t\t\t\t$(el).text(spl);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(\".selected-items\", $(slider).closest('.card')).slideDown();\n\t\t\t} else {\n\t\t\t\tif (!isExist) {\n\t\t\t\t\tvar htmlOut = filterCont.renderFilterSortViewBtn({ id: sliderID, catid: 0, name: metricName, slider: 'metric' });\n\n\t\t\t\t\t$(\".collapseSummaryClass\").append(htmlOut).removeClass('d-none');\n\t\t\t\t\tthis.changeOfferResetFilter();\n\t\t\t\t\tvar filterCount = $('.b-aside-xs .filter-fields-count').text();\n\t\t\t\t\tvar count = parseInt(filterCount) + 1;\n\t\t\t\t\tvar fltrCount = count > 0 ? count : \"\";\n\t\t\t\t\t$('.b-aside-xs .filter-fields-count').html(fltrCount);\n\t\t\t\t\tif (count > 0 && !$('.b-aside-xs .filter-fields-count').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t\t\t$('.b-aside-xs .filter-fields-count').addClass(\"tum-bg-dark-red\");\n\t\t\t\t\t} else if (count == 0) {\n\t\t\t\t\t\t$('.b-aside-xs .filter-fields-count').removeClass(\"tum-bg-dark-red\");\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\t$('.collapseSummaryClass span[data-itemid=' + sliderID + '] a').html(' ' + metricName);\n\n\t\t\t\t}\n\t\t\t\tthis.applyFilters(true);\n\t\t\t}\n\t\t}\n\n\t\tif ($(slider).hasClass('b-filter-price__slider')) {\n\t\t\t$.each(filterItems, function (idx, el) {\n\t\t\t\tif ($(el).attr('data-itemid') == 0) {\n\t\t\t\t\tpriceExist = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlet name = $(slider).slider(\"values\", 0) + \"-\" + $(slider).slider(\"values\", 1) + \" руб\";\n\t\t\tlet filterCount = \"\";\n\t\t\tlet isMob = window.innerWidth < 768;\n\t\t\tif (isMob) {\n\t\t\t\t$(slider).closest('.card').find('.selected-items i').attr('data-itemid', 0);\n\t\t\t\t$(slider).closest('.card').find('.selected-items i').attr('data-slidername', 'price');\n\t\t\t\t$(slider).closest('.card').find('.selected-items .value').text(name);\n\t\t\t\t$(\".selected-items\", $(slider).closest('.card')).slideDown();\n\n\t\t\t\tfilterCount = $('.card .filter-fields-count:visible').text();\n\t\t\t\tlet count = parseInt(filterCount) + 1;\n\t\t\t\tlet fltrCount = count > 0 ? count : \"\";\n\t\t\t\t$('.card .filter-fields-count:visible').html(fltrCount);\n\t\t\t\tif (count > 0 && !$('.card .filter-fields-count:visible').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t\t$('.card .filter-fields-count:visible').addClass(\"tum-bg-dark-red\");\n\t\t\t\t} else if (count == 0) {\n\t\t\t\t\t$('.card .filter-fields-count:visible').removeClass(\"tum-bg-dark-red\");\n\t\t\t\t}\n\n\t\t\t\tif (priceExist) {\n\t\t\t\t\t$('.collapseSummaryClass span[data-itemid=0] a').html(' ' + name);\n\t\t\t\t\t$('.tum-filter-clear-price').removeClass('d-none');\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif (!priceExist) {\n\t\t\t\t\tlet htmlOut = filterCont.renderFilterSortViewBtn({ id: 0, catid: 0, name: name });\n\t\t\t\t\t$(\".collapseSummaryClass\").append(htmlOut).removeClass('d-none');\n\t\t\t\t\tthis.changeOfferResetFilter();\n\n\t\t\t\t\tlet filterCount = $('.b-aside-xs .filter-fields-count').text();\n\t\t\t\t\tlet count = parseInt(filterCount) + 1;\n\t\t\t\t\tlet fltrCount = count > 0 ? count : \"\";\n\t\t\t\t\t$('.b-aside-xs .filter-fields-count').html(fltrCount);\n\t\t\t\t\tif (count > 0 && !$('.b-aside-xs .filter-fields-count').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t\t\t$('.b-aside-xs .filter-fields-count').addClass(\"tum-bg-dark-red\");\n\t\t\t\t\t} else if (count == 0) {\n\t\t\t\t\t\t$('.b-aside-xs .filter-fields-count').removeClass(\"tum-bg-dark-red\");\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\t$('.collapseSummaryClass span[data-itemid=0] a').html(' ' + name);\n\t\t\t\t\t$('.tum-filter-clear-price').removeClass('d-none');\n\n\t\t\t\t}\n\n\t\t\t\tthis.applyFilters(true);\n\t\t\t}\n\t\t}\n\n\t\tfilter.updateCollapseSummaryVisible(false);\n\n\t},\n\tsetFilterAvailable: function (el, isMob) {\n\t\tvar isExist = false;\n\t\t$.each($('.tum-filter-clear-item'), function (idx, element) {\n\t\t\tif ($(el).attr('data-itemid') == $(element).attr('data-itemid')) {\n\t\t\t\tisExist = true\n\t\t\t}\n\t\t});\n\n\t\tvar elemName = $(el).closest('.form-check-label').text();\n\t\tvar searchElement = !isMob ? this.elements.search : this.elements.searchMob;\n\t\tvar filteCount = $(searchElement + ' .filter-fields-count').text();\n\t\tif ($(el).prop('checked')) {\n\t\t\tvar fltrCount = (parseInt(filteCount) + 1) > 0 ? (parseInt(filteCount) + 1) : \"\";\n\t\t\t$(searchElement + ' .filter-fields-count').html(fltrCount);\n\t\t\tif ((parseInt(filteCount) + 1) > 0 && !$(searchElement + ' .filter-fields-count').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t$(searchElement + ' .filter-fields-count').addClass(\"tum-bg-dark-red\");\n\t\t\t} else if ((parseInt(filteCount) + 1) == 0) {\n\t\t\t\t$(searchElement + ' .filter-fields-count').removeClass(\"tum-bg-dark-red\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (parseInt(filteCount) > 0) {\n\t\t\t\tlet fltrCount = (parseInt(filteCount) - 1) > 0 ? (parseInt(filteCount) - 1) : \"\";\n\t\t\t\t$(searchElement + ' .filter-fields-count').html(fltrCount);\n\t\t\t\tif ((parseInt(filteCount) - 1) > 0 && !$(searchElement + ' .filter-fields-count').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t\t$(searchElement + ' .filter-fields-count').addClass(\"tum-bg-dark-red\");\n\t\t\t\t} else if ((parseInt(filteCount) - 1) == 0) {\n\t\t\t\t\t$(searchElement + ' .filter-fields-count').removeClass(\"tum-bg-dark-red\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!isExist) {\n\t\t\tvar htmlOut = filterCont.renderFilterSortViewBtn({ id: $(el).attr('data-itemid'), catid: 0, name: elemName });\n\t\t\t$(\".collapseSummaryClass\").append(htmlOut).removeClass('d-none');\n\t\t\tthis.changeOfferResetFilter();\n\t\t} else {\n\t\t\t$('.collapseSummaryClass span[data-itemid=' + $(el).attr('data-itemid') + ']').remove();\n\t\t}\n\t},\n\tinitCallbacks: function () {\n\t\tlet self = this;\n\t\taddEventDelegate(document, 'click', '.tum-dmv-category a', () => {\n\t\t\t$('.b-aside-wrapper .tum-filter-cats').toggleClass('active');\n\t\t\tif ($('.b-aside-wrapper .tum-filter-cats').hasClass('active')) {\n\t\t\t\t$('.b-aside-wrapper .tum-filter-cats .b-aside-modal-cat').addClass('modalActive');\n\t\t\t} else {\n\t\t\t\t$('.b-aside-wrapper .tum-filter-cats .b-aside-modal-cat').removeClass('modalActive');\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'change', 'input[name=tuSort]', element => {\n\t\t\tfilterCont.filter.sort = $(element).val();\n\t\t});\n\n\t\taddEventDelegate(document, 'change', 'input[name=firmsSort]', element => {\n\t\t\tfilterCont.filter.firmSort = $(element).val();\n\t\t});\n\n\t\t$(document).on('change', self.elements.search + ' .isAvailable', element => {\n\t\t\tself.setFilterAvailable($(element), false);\n\t\t\tself.applyFilters();\n\t\t});\n\n\t\t$(document).on('change', self.elements.searchMob + ' .isAvailable', element => {\n\t\t\tself.setFilterAvailable($(element), true);\n\t\t});\n\n\t\t$(document).on('change', self.elements.search + ' .madeInOurs', element => {\n\t\t\tself.setFilterAvailable($(element), false);\n\t\t\tself.applyFilters();\n\t\t});\n\n\t\t$(document).on('change', self.elements.searchMob + ' .madeInOurs', element => {\n\t\t\tself.setFilterAvailable($(element), true);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.modalActive .mdl-close', () => {\n\t\t\t$('.modalActive .search-by-name').val('');\n\t\t\t$.each($(\".modalActive .b-aside-modal__content .form-check\"), function (i, el) {\n\t\t\t\t$(el).removeClass('hide');\n\t\t\t});\n\t\t\tself.options.arr = [];\n\t\t\tself.options.arr_alt = [];\n\n\t\t\tsearchFilter.toggleCtuModal(false);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-applyFilters, .ctuModal-applyFilters', element => {\n\t\t\tif ($(element).closest('.mobile-fullsize').length) {\n\t\t\t\tvar isAuto = $('.mobile-fullsize .tum-open-auto').prop('checked') == true;\n\t\t\t\tvar isManual = $('.mobile-fullsize .tum-open-manual').prop('checked') == true;\n\t\t\t\tsetCookie('isOpenNow_manual', isManual);\n\n\t\t\t\tvar datetime = filterCont.getDateTimeFilter(searchFilter.isMob());\n\n\t\t\t\tif (!isAuto && !isManual && getUrlParameter('datetime_open') || !(datetime.date && datetime.time)) {\n\t\t\t\t\t$('.mobile-fullsize .tum-open-date').val('');\n\t\t\t\t\t$('.mobile-fullsize .tum-open-time').val('');\n\t\t\t\t\tsetCookie('isOpenNow_manual', false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.applyFilters();\n\t\t});\n\n\t\t$(\".clear-filter, .tum-clear-all-filters\").on(\"click\", function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar isSearch = location.pathname.toLowerCase().indexOf(\"search\") > -1;\n\t\t\tvar url = new URL(location.href);\n\t\t\tif (getUrlParameter(\"query\") && isSearch) {\n\t\t\t\turl.search = \"query=\" + getUrlParameter(\"query\");\n\t\t\t\tlocation.href = url.toString();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlocation.href = location.pathname;\n\t\t\t}\n\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.btn-products-search-inCtu, .btn-firms-search-inCtu', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tfilterCont.filter = filterCont.getFilter(self.elements.search, false);\n\t\t\tvar page = +$(element).attr('data-page');\n\t\t\tif (page == 1) $(element).addClass('d-none');\n\t\t\tvar isPrevItems = false;\n\t\t\tif ($(element).hasClass('btn-products-search-inCtu')) {\n\t\t\t\tif ($(element).hasClass('btn-show-more')) {\n\t\t\t\t\t$(element).attr('data-page', page + 1);\n\t\t\t\t\tself.setURLParameter('page', page);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(element).attr('data-page', page - 1);\n\t\t\t\t\tisPrevItems = true;\n\t\t\t\t}\n\t\t\t\tfilterCont.filter.page = page;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ($(element).hasClass('btn-show-more')) {\n\t\t\t\t\t$(element).attr('data-page', page + 1);\n\t\t\t\t\tself.setURLParameter('firmPage', page);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(element).attr('data-page', page - 1);\n\t\t\t\t\tisPrevItems = true;\n\t\t\t\t}\n\t\t\t\tfilterCont.filter.firmPage = page;\n\t\t\t}\n\t\t\tif ($(element).hasClass('btn-show-more')) {\n\t\t\t\tfilterCont.filter.pageDirection = \"down\";\n\t\t\t}\n\n\t\t\tfilterCont.filter.activeTab = $(element).closest('.b-catalog').find('.nav-link.active').attr('data-href');\n\t\t\tself.searchProducts(1, $(element).hasClass('btn-products-search-inCtu'), isPrevItems);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tu-show-firm-tab', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$('.b-nav-search a[href=\"#firms\"]').tab('show');\n\t\t\tsetTimeout(function () {\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.b-catalog').offset().top\n\t\t\t\t}, 1000);\n\t\t\t}, 100);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tu-show-offers-tab', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$('.b-nav-search a[href=\"#offers\"]').tab('show');\n\t\t\tsetTimeout(function () {\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.b-catalog').offset().top\n\t\t\t\t}, 1000);\n\t\t\t}, 100);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \"button[data-type='rows'],button[data-type='grid']\", () => {\n\t\t\tself.wrapAnnotation();\n\t\t});\n\n\t\t$('.nav-tabs a[href=\"#offers\"]').on('shown.bs.tab', function (e) {\n\t\t\tself.changTabIcon($(this), e);\n\t\t});\n\n\t\t$('.nav-tabs a[href=\"#firms\"]').on('shown.bs.tab', function (e) {\n\t\t\tself.changTabIcon($(this), e);\n\t\t});\n\n\t\t$('.nav-tabs a[href=\"#firmsonmap\"]').on('shown.bs.tab', function (e) {\n\t\t\tself.changTabIcon($(this), e);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.b-nav-search .nav-link', element => {\n\t\t\tvar tabname = $(element).attr('data-href');\n\n\t\t\tvar param = '';\n\t\t\tvar tab = self.getURLParameter('tab');\n\n\t\t\tif (!tab) {\n\t\t\t\tif (location.search.indexOf('?') == -1) {\n\t\t\t\t\tparam = '?tab=' + tabname;\n\t\t\t\t} else {\n\t\t\t\t\tparam = '&tab=' + tabname;\n\t\t\t\t}\n\t\t\t\tif (history.pushState) {\n\t\t\t\t\tvar url = location.pathname + location.search + param;\n\t\t\t\t\twindow.history.pushState({}, \"products\", url);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet url = location.pathname + location.search;\n\t\t\t\tif (!tabname) {\n\t\t\t\t\tif (location.search.substring(1).split('&').length > 1) {\n\t\t\t\t\t\turl = url.replace(\"&tab=\" + tab, \"\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\turl = url.replace(\"?tab=\" + tab, \"\");\n\t\t\t\t\t}\n\t\t\t\t\tif (history.pushState) {\n\t\t\t\t\t\twindow.history.pushState({}, \"products\", url);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (tab != tabname) {\n\t\t\t\t\t\turl = url.replace(\"tab=\" + tab, \"tab=\" + tabname);\n\t\t\t\t\t\tif (history.pushState) {\n\t\t\t\t\t\t\twindow.history.pushState({}, \"products\", url);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".b-firm-annotation, .b-firm-annotation-mob\", element => {\n\t\t\t$(element).readmore(\"toggle\");\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.filters-modal-showMore', element => {\n\t\t\tself.showMoreCharacteristics($(element));\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-aside-showCategories, .tu-show-cats, .offers-showCtus, .cat-more-info', () => {\n\t\t\timport(\"../searchMenu.js\").then(({ tum_searchMenu }) => {\n\t\t\t\ttum_searchMenu.toggleMenu('hide');\n\t\t\t\tself.toggleCtuModal();\n\t\t\t});\n\t\t});\n\t},\n\tinitSliders: function () {\n\t\tlet self = this;\n\n\t\t$(\"input#minCost\").val(filterCont.filter.priceFrom > 0 ? filterCont.filter.priceFrom : parseFloat(filterCont.defaultFilter.minPriceFrom.replace(',', '.')).toFixed(2));\n\t\t$(\"input#maxCost\").val(filterCont.filter.priceTo > 0 ? filterCont.filter.priceTo : parseFloat(filterCont.defaultFilter.maxPriceTo.replace(',', '.')).toFixed(2));\n\t\t$(\"input#minCost-mob\").val(filterCont.filter.priceFrom > 0 ? filterCont.filter.priceFrom : parseFloat(filterCont.defaultFilter.minPriceFrom.replace(',', '.')).toFixed(2));\n\t\t$(\"input#maxCost-mob\").val(filterCont.filter.priceTo > 0 ? filterCont.filter.priceTo : parseFloat(filterCont.defaultFilter.maxPriceTo.replace(',', '.')).toFixed(2));\n\n\t\tif (parseFloat(filterCont.defaultFilter.minPriceFrom.replace(',', '.')).toFixed(2) > 0 && parseFloat(filterCont.defaultFilter.maxPriceTo.replace(',', '.')).toFixed(2) > 0) {\n\t\t\t$(\"#slider\").slider({\n\t\t\t\tmin: (parseFloat($('#slider').attr('data-minprice')) == parseFloat($('#slider').attr('data-maxprice'))) ? 0 : parseFloat($('#slider').attr('data-minprice')),\n\t\t\t\tmax: parseFloat($('#slider').attr('data-maxprice')),\n\t\t\t\tvalues: [0, parseFloat($('#slider').attr('data-maxprice'))],\n\t\t\t\trange: true,\n\t\t\t\tstep: 0.1,\n\t\t\t\tstop: function (event, ui) {\n\t\t\t\t\t$(\"input#minCost\").val($(\"#slider\").slider(\"values\", 0));\n\t\t\t\t\t$(\"input#maxCost\").val($(\"#slider\").slider(\"values\", 1));\n\t\t\t\t\tself.setFilterPriceAndMetrics($(this));\n\n\t\t\t\t\tif (parseFloat(ui.value) < parseFloat(filterCont.defaultFilter.minPriceFrom)) {\n\t\t\t\t\t\tvar value1 = parseFloat(filterCont.defaultFilter.minPriceFrom.replace(',', '.'));\n\t\t\t\t\t\t$(\"#slider\").slider(\"values\", 0, value1);\n\t\t\t\t\t\t$(\"input#minCost\").val(value1);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tslide: function () {\n\t\t\t\t\tif (parseFloat($('#slider').attr('data-minprice').replace(',', '.')) == parseFloat($('#slider').attr('data-maxprice').replace(',', '.'))) return false;\n\t\t\t\t\t$(\"input#minCost\").val($(\"#slider\").slider(\"values\", 0));\n\n\t\t\t\t\t$(\"input#maxCost\").val($(\"#slider\").slider(\"values\", 1));\n\t\t\t\t\t$('.tum-price-apply').removeClass('d-none');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t$(\"input#minCost\").on('change', function () {\n\t\t\tlet value1 = parseFloat($(\"input#minCost\").val().replace(',', '.'));\n\t\t\tlet value2 = parseFloat($(\"input#maxCost\").val().replace(',', '.'));\n\n\t\t\tlet min = parseFloat($('#slider').attr('data-minprice').replace(',', '.'));\n\n\t\t\tif (value1 > value2) {\n\t\t\t\tvalue1 = value2;\n\t\t\t\t$(\"input#minCost\").val(value1);\n\t\t\t}\n\n\t\t\tif ($(\"input#minCost\").val().length == 0) {\n\t\t\t\tvalue1 = min;\n\t\t\t\t$(\"input#minCost\").val(value1);\n\t\t\t}\n\n\t\t\tif (value1 < min) {\n\t\t\t\tvalue1 = min;\n\t\t\t\t$(\"input#minCost\").val(value1);\n\t\t\t}\n\n\t\t\t$(\"#slider\").slider(\"values\", 0, value1);\n\t\t\t$('.tum-price-apply').removeClass('d-none');\n\t\t\tself.setFilterPriceAndMetrics($(\"#slider\"));\n\t\t});\n\n\t\t$(\"input#maxCost\").on('change', function () {\n\t\t\tlet value1 = parseFloat($(\"input#minCost\").val().replace(',', '.'));\n\t\t\tlet value2 = parseFloat($(\"input#maxCost\").val().replace(',', '.'));\n\t\t\tlet max = parseFloat($('#slider').attr('data-maxprice').replace(',', '.'));\n\n\t\t\tif (value2 > max) {\n\t\t\t\tvalue2 = max;\n\t\t\t\t$(\"input#maxCost\").val(value2)\n\t\t\t}\n\n\t\t\tif (value1 > value2) {\n\t\t\t\tvalue2 = value1;\n\t\t\t\t$(\"input#maxCost\").val(value2);\n\t\t\t}\n\t\t\tif ($(\"input#maxCost\").val().length == 0) {\n\t\t\t\tvalue2 = max;\n\t\t\t\t$(\"input#maxCost\").val(value2);\n\t\t\t}\n\n\t\t\t$(\"#slider\").slider(\"values\", 1, value2);\n\t\t\t$('.tum-price-apply').removeClass('d-none');\n\t\t\tself.setFilterPriceAndMetrics($(\"#slider\"));\n\t\t});\n\n\t\t//--init f-ch SLIDER with INPUT\n\t\t$.each($(\".f-ch-slider\"), function (i, el) {\n\t\t\tvar $el = $(el);\n\t\t\tvar siMultiply = parseFloat($el.attr('data-multiply'));\n\t\t\tvar minVal = Math.round(parseFloat($el.attr(\"data-min-val\")) * siMultiply);\n\t\t\tvar maxVal = Math.round(parseFloat($el.attr(\"data-max-val\")) * siMultiply);\n\t\t\tvar harID = $el.attr(\"data-itemid\");\n\t\t\t$(el).slider({\n\t\t\t\telem: el,\n\t\t\t\tmin: minVal,\n\t\t\t\tmax: maxVal,\n\t\t\t\tvalues: [minVal, maxVal],\n\t\t\t\trange: true,\n\t\t\t\tstop: function (event, ui) {\n\t\t\t\t\t$($(this).attr('data-min-cont')).val(parseInt($(this).slider(\"values\", 0)) / siMultiply);\n\t\t\t\t\t$($(this).attr('data-max-cont')).val(parseInt($(this).slider(\"values\", 1)) / siMultiply);\n\t\t\t\t\tif (parseInt(ui.value) < minVal) {\n\t\t\t\t\t\t$(this).slider(\"values\", 0, minVal);\n\t\t\t\t\t\t$($(this).attr('data-min-cont')).val(minVal);\n\t\t\t\t\t}\n\n\t\t\t\t\tself.setFilterPriceAndMetrics($(this), $(this).attr('data-sid'));\n\t\t\t\t},\n\t\t\t\tslide: function () {\n\t\t\t\t\t$($(this).attr('data-min-cont')).val(parseInt($(this).slider(\"values\", 0)) / siMultiply);\n\t\t\t\t\t$($(this).attr('data-max-cont')).val(parseInt($(this).slider(\"values\", 1)) / siMultiply);\n\t\t\t\t\t$(`.tum-metric-apply[data-id=${harID}]`).removeClass('d-none');\n\t\t\t\t}\n\t\t\t});\n\n\t\t});\n\n\t\t$.each($('.b-filter-f-ch-min-val'), function (i, el) {\n\t\t\t$(el).on('change', function () {\n\t\t\t\tvar $el = $(el);\n\t\t\t\tvar curMinVal = $el.val();\n\t\t\t\tvar $slider = $($el.attr('data-slider'));\n\t\t\t\tvar siMultiply = parseFloat($slider.attr('data-multiply'));\n\t\t\t\tvar minVal = parseFloat($slider.attr(\"data-min-val\"));\n\t\t\t\tvar curMaxVal = parseFloat($($slider.attr('data-max-cont')).val());\n\t\t\t\tif (curMinVal < minVal || curMinVal > curMaxVal) {\n\t\t\t\t\tcurMinVal = minVal;\n\t\t\t\t\t$el.val(curMinVal);\n\t\t\t\t}\n\n\t\t\t\t$slider.slider(\"values\", 0, curMinVal * siMultiply);\n\t\t\t\tlet charId = $slider.attr('data-sid');\n\t\t\t\tself.setFilterPriceAndMetrics($slider, charId);\n\t\t\t\t$(`.tum-metric-apply[data-id=${charId}]`).removeClass('d-none');\n\t\t\t});\n\t\t});\n\n\t\t$.each($('.b-filter-f-ch-max-val'), function (i, el) {\n\t\t\t$(el).on('change', function () {\n\t\t\t\tvar $el = $(el);\n\t\t\t\tvar curMaxVal = $el.val();\n\t\t\t\tvar $slider = $($el.attr('data-slider'));\n\n\t\t\t\tvar siMultiply = parseFloat($slider.attr('data-multiply'));\n\t\t\t\tvar maxVal = parseFloat($slider.attr(\"data-max-val\"));\n\t\t\t\tvar curMinVal = parseFloat($($slider.attr('data-min-cont')).val());\n\t\t\t\tif (curMaxVal > maxVal || curMaxVal < curMinVal) {\n\t\t\t\t\tcurMaxVal = maxVal;\n\t\t\t\t\t$el.val(curMaxVal);\n\t\t\t\t}\n\n\t\t\t\t$slider.slider(\"values\", 1, curMaxVal * siMultiply);\n\t\t\t\tlet charId = $slider.attr('data-sid');\n\t\t\t\tself.setFilterPriceAndMetrics($slider, charId);\n\t\t\t\t$(`.tum-metric-apply[data-id=${charId}]`).removeClass('d-none');\n\t\t\t});\n\t\t});\n\n\t\t$(\"#slider-mob\").slider({\n\t\t\tmin: parseFloat($('#slider-mob').attr('data-minprice')),\n\t\t\tmax: parseFloat($('#slider-mob').attr('data-maxprice')),\n\t\t\tvalues: [0, parseFloat($('#slider-mob').attr('data-maxprice'))],//parseInt($('#slider-mob').attr('data-maxprice'))\n\t\t\trange: true,\n\t\t\tstep: 0.1,\n\t\t\tstop: function (event, ui) {\n\t\t\t\t$(\"input#minCost-mob\").val($(\"#slider-mob\").slider(\"values\", 0));\n\t\t\t\t$(\"input#maxCost-mob\").val($(\"#slider-mob\").slider(\"values\", 1));\n\t\t\t\tself.setFilterPriceAndMetrics($(this));\n\t\t\t\tif (parseFloat(ui.value) < parseFloat($('#slider-mob').attr('data-minprice'))) {\n\t\t\t\t\tvar value1 = parseFloat($('#slider-mob').attr('data-minprice'));\n\t\t\t\t\t$(\"#slider-mob\").slider(\"values\", 0, value1);\n\t\t\t\t\t$(\"input#minCost-mob\").val(value1);\n\t\t\t\t}\n\t\t\t},\n\t\t\tslide: function () {\n\t\t\t\t$(\"input#minCost-mob\").val($(\"#slider-mob\").slider(\"values\", 0));\n\t\t\t\t$(\"input#maxCost-mob\").val($(\"#slider-mob\").slider(\"values\", 1));\n\t\t\t}\n\t\t});\n\n\t\t$(\"input#minCost-mob\").on('change', function () {\n\t\t\tlet value1 = parseFloat($(\"input#minCost-mob\").val().replace(',', '.'));\n\t\t\tlet value2 = parseFloat($(\"input#maxCost-mob\").val().replace(',', '.'));\n\t\t\tlet min = parseFloat($('#slider-mob').attr('data-minprice'));\n\n\t\t\tif (value1 > value2) {\n\t\t\t\tvalue1 = value2;\n\t\t\t\t$(\"input#minCost-mob\").val(value1);\n\t\t\t}\n\n\t\t\tif ($(\"input#minCost-mob\").val().length == 0) {\n\t\t\t\tvalue1 = min;\n\t\t\t\t$(\"input#minCost-mob\").val(value1);\n\t\t\t}\n\n\t\t\tif (value1 < min) {\n\t\t\t\tvalue1 = min;\n\t\t\t\t$(\"input#minCost-mob\").val(value1);\n\t\t\t}\n\n\t\t\t$(\"#slider-mob\").slider(\"values\", 0, value1);\n\t\t\tself.setFilterPriceAndMetrics($(\"#slider-mob\"));\n\t\t});\n\n\t\t$(\"input#maxCost-mob\").on('change', function () {\n\t\t\tlet value1 = parseFloat($(\"input#minCost-mob\").val().replace(',', '.'));\n\t\t\tlet value2 = parseFloat($(\"input#maxCost-mob\").val().replace(',', '.'));\n\t\t\tlet max = parseFloat($('#slider-mob').attr('data-maxprice'));\n\n\t\t\tif (value2 > max) {\n\t\t\t\tvalue2 = max;\n\t\t\t\t$(\"input#maxCost-mob\").val(value2)\n\t\t\t}\n\n\t\t\tif (value1 > value2) {\n\t\t\t\tvalue2 = value1;\n\t\t\t\t$(\"input#maxCost-mob\").val(value2);\n\t\t\t}\n\t\t\tif ($(\"input#maxCost-mob\").val().length == 0) {\n\t\t\t\tvalue2 = max;\n\t\t\t\t$(\"input#maxCost-mob\").val(value2);\n\t\t\t}\n\n\t\t\t$(\"#slider-mob\").slider(\"values\", 1, value2);\n\t\t\tself.setFilterPriceAndMetrics($(\"#slider-mob\"));\n\t\t});\n\t},\n\tinitOpenNowFilter: function () {\n\t\tlet self = this;\n\n\t\t$(document).on('change', '.tum-search-open-input', () => {\n\t\t\tsearchFilter.updateDatetimePlaceholder();\n\t\t});\n\n\t\taddEventDelegate(document, 'change', '.tum-open-auto', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tvar isMob = searchFilter.isMob();\n\t\t\tvar datetime = filterCont.getDateTimeFilter(isMob);\n\t\t\tvar isDropdownMenu = $('.dropdown-menu.show').length;\n\n\t\t\tvar $wrap = isMob ? $('.mobile-fullsize .card .datetime-wrap') : $('.search-toolbar .search-open-time');\n\t\t\tif (isMob && isDropdownMenu) {\n\t\t\t\t$wrap = $('.search-toolbar .search-open-time');\n\t\t\t}\n\t\t\tif ($(element).prop('checked')) {\n\t\t\t\t$('input.tum-search-open-input', $wrap).attr('disabled', true);\n\t\t\t\t$('.tum-open-manual', $wrap).prop('checked', false);\n\n\t\t\t\t$wrap.find('.tum-open-date').val(datetime.date);\n\t\t\t\t$wrap.find('.tum-open-time').val(datetime.time);\n\t\t\t} else {\n\t\t\t\t$wrap.find('.tum-open-date').val('');\n\t\t\t\t$wrap.find('.tum-open-time').val('');\n\t\t\t}\n\t\t\tsearchFilter.updateDatetimePlaceholder();\n\t\t});\n\n\t\taddEventDelegate(document, 'change', '.tum-open-manual', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tvar isMob = searchFilter.isMob();\n\t\t\tvar datetime = filterCont.getDateTimeFilter(isMob);\n\t\t\tvar isDropdownMenu = $('.dropdown-menu.show').length;\n\t\t\tvar $wrap = isMob ? $('.mobile-fullsize .card .datetime-wrap') : $('.search-toolbar .search-open-time');\n\t\t\tif (isMob && isDropdownMenu) {\n\t\t\t\t$wrap = $('.search-toolbar .search-open-time');\n\t\t\t}\n\n\t\t\tif ($(element).prop('checked')) {\n\t\t\t\t$('input.tum-search-open-input', $wrap).removeAttr('disabled');\n\t\t\t\t$('.tum-open-auto', $wrap).prop('checked', false);\n\t\t\t\t$wrap.find('.tum-open-date').val(datetime.date);\n\t\t\t\t$wrap.find('.tum-open-time').val(datetime.time);\n\t\t\t} else {\n\t\t\t\t$('input.tum-search-open-input', $wrap).attr('disabled', true);\n\t\t\t\t$wrap.find('.tum-open-date').val('');\n\t\t\t\t$wrap.find('.tum-open-time').val('');\n\t\t\t}\n\t\t\tsearchFilter.updateDatetimePlaceholder();\n\t\t});\n\n\t\tdocument.querySelector('[data-dismiss-open-filter]')?.addEventListener('click', () => {\n\t\t\tlet container = document.querySelector(this.elements.searchOpen);\n\t\t\ttoggleClass(container, 'show', false);\n\t\t\ttoggleClass(container.querySelector('.dropdown-menu'), 'show', false);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', self.elements.searchOpen + ' .btn-enter', () => {\n\t\t\tlet container = document.querySelector(this.elements.searchOpen);\n\n\t\t\tvar isAuto = container.querySelector('.tum-open-auto').checked;\n\t\t\tvar isManual = container.querySelector('.tum-open-manual').checked;\n\t\t\tlet filled = [...container.querySelectorAll('.tum-search-open-input')].every(e => e.value);\n\n\t\t\tif (isManual && !filled) {\n\t\t\t\tbootstrapAlert('Укажите время', { type: \"danger\" });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttoggleClass(container, 'show', false);\n\t\t\ttoggleClass(container.querySelector('.dropdown-menu'), 'show', false);\n\n\t\t\tsetCookie('isOpenNow_manual', isManual);\n\n\t\t\tvar datetime = filterCont.getDateTimeFilter(searchFilter.isMob());\n\n\t\t\tif ((isAuto || isManual && (datetime.date && datetime.time)) || (!isAuto && !isManual && getUrlParameter('datetime_open'))) {\n\t\t\t\tif ((isAuto || isManual) && getUrlParameter('datetime_open') && (!datetime.date || !datetime.time)) return;\n\n\t\t\t\tthis.applyFilters();\n\t\t\t}\n\t\t});\n\n\t\t$(document).on('click.bs.dropdown.data-api', '.dropdown.search-open-time', function (e) {\n\t\t\te.stopPropagation();\n\t\t});\n\n\t\t$(document).on('show.bs.dropdown', self.elements.searchOpen, () => {\n\t\t\tsearchFilter.updateDatetimePlaceholder();\n\t\t});\n\n\t\t$('.tum-filter-clear-datetime').on('click', function () {\n\t\t\tfilterCont.filter.datetimeOpen = '';\n\t\t\tfilterCont.filter.datetimeIsReset = true;\n\t\t\tsetCookie('isOpenNow_manual', false);\n\t\t\tself.applyFilters();\n\t\t});\n\t},\n\tinit: function (filter, options) {\n\t\tlet self = this;\n\n\t\tself.options = $.extend({}, self.options, options)\n\t\tfilterCont.defaultFilter = filterCont.filter = $.extend(filterCont.filter, filter);\n\n\t\tif (!$('.collapseSummaryClass').hasClass('d-none')) {\n\t\t\t$('.tum-filter-warning div').removeClass('d-none');\n\t\t}\n\n\t\tthis.initCallbacks();\n\t\tthis.initSliders();\n\t\tthis.initOpenNowFilter();\n\n\t\tif (window.innerWidth < 768) {\n\t\t\tfilterCont.initFilterUI(this.elements.searchMob, true);\n\t\t}\n\t\telse {\n\t\t\tfilterCont.initFilterUI(this.elements.search, false);\n\t\t}\n\n\t\t$('.showAnnotation').tooltip({\n\t\t\tplacement: 'auto',\n\t\t\tboundary: 'window',\n\t\t\thtml: true\n\t\t});\n\n\t\tthis.initCallbacksForQuery();\n\n\t\tthis.initGeoSearch();\n\t\tthis.initSearchToolbar();\n\t\tthis.syncCtuModal();\n\n\t\tif ($('._adult-product').length) {\n\t\t\tlet ignoreCheck = isCtuIgnoredAdulthood();\n\t\t\tshowAdultWarning(false, ignoreCheck);\n\t\t}\n\n\t\tif (!tumGlobal.isMob()) this.initStickyFilter($('.left-side-block, .left-side-block-toggle'));\n\n\t\tthis.initUrlParams();\n\t},\n\tinitUrlParams: function () {\n\t\tif (getUrlParameter('showMapSettings') == '') {\n\t\t\tthis.openMapSettings();\n\t\t}\n\n\t\tif (getUrlParameter('showOnMap') == '1') {\n\t\t\tthis._toggleMap();\n\t\t}\n\t},\n\tupdateDatetimePlaceholder: function () {\n\t\tvar isMob = searchFilter.isMob();\n\t\tif (isMob) {\n\t\t\tvar datetime = filterCont.getDateTimeFilter(isMob);\n\t\t\tif (!datetime.date) {\n\t\t\t\t$('.tum-search-open-input.tum-open-date').addClass('mob-placeholder');\n\t\t\t} else {\n\t\t\t\t$('.tum-search-open-input.tum-open-date').removeClass('mob-placeholder');\n\t\t\t}\n\t\t\tif (!datetime.time) {\n\t\t\t\t$('.tum-search-open-input.tum-open-time').addClass('mob-placeholder');\n\t\t\t} else {\n\t\t\t\t$('.tum-search-open-input.tum-open-time').removeClass('mob-placeholder');\n\t\t\t}\n\t\t}\n\t},\n\tshowMoreCharacteristics: function ($btn) {\n\t\tlet container = $btn.closest('.b-aside-modal__content');\n\n\t\tif (!$btn.hasClass('show')) {\n\t\t\t$('.list-group-item', container).removeClass('hide');\n\t\t} else {\n\t\t\t$('.list-group-item:lt(6)', container).removeClass('hide');\n\t\t\t$('.list-group-item:gt(5)', container).addClass('hide');\n\t\t}\n\n\t\t$btn.toggleClass('show');\n\t\tswapAltHtml($btn[0]);\n\t},\n\tchangTabIcon: function (el, e) {\n\t\tvar icon = $(el).find('.tabs-h6 span i');\n\t\tif ($(icon).length == 0) {\n\t\t\ticon = $(el).find('.tab-text i');\n\t\t}\n\t\t$(icon).toggleClass('fa-caret-right fa-caret-down');\n\t\tif ($(icon).hasClass('fa-caret-down')) {\n\t\t\t$(icon).removeClass('tum-grey');\n\t\t\tif ($(e.relatedTarget).find('.tabs-h6 span i').length == 0) {\n\t\t\t\t$(e.relatedTarget).find('.tab-text i').toggleClass('fa-caret-right fa-caret-down tum-grey');\n\t\t\t} else {\n\t\t\t\t$(e.relatedTarget).find('.tabs-h6 span i').toggleClass('fa-caret-right fa-caret-down tum-grey');\n\t\t\t}\n\t\t}\n\t},\n\tinitCallbacksForQuery: function () {\n\t\tvar self = this;\n\n\t\t//----поиск по тексту в в рамках КТУ----\n\t\t//--очистка запроса(для wide-страницы вызываем перегрузку)\n\t\tdocument.querySelectorAll(\".tum-filter-clear-query-wide\").forEach(element => {\n\t\t\telement.addEventListener(\"click\", e => {\n\t\t\t\te.preventDefault();\n\t\t\t\tfilterCont.filter = filterCont.getFilter(self.elements.search, false);\n\t\t\t\tfilterCont.defaultFilter.query = '';\n\t\t\t\tfilterCont.filter.query = '';\n\t\t\t\tself.updateBrowserHistory();\n\t\t\t\tlocation.reload();\n\t\t\t});\n\t\t});\n\n\t\t//--очистка запроса(для mob-страницы вызываем только очистку, без перегрузки, и чистим сводку вверху)\n\t\taddEventDelegate(document, 'click', '.tum-filter-clear-query-mob', () => {\n\t\t\t$('.tum-filter-search-text').val('');\n\t\t\t$('.clear-value.tum-filter-clear-query-mob')[0]?.click();\n\t\t});\n\n\t\t//--обработка enter (только для wide страницы идет перезагрузка)\n\t\taddEventDelegate(document, 'keypress', '.tum-filter-search-text-wide', (element, e) => {\n\t\t\tif (e.which == 13) { // Checks for the enter key\n\t\t\t\te.preventDefault(); // Stops IE from triggering the button to be clicked\n\t\t\t\tself.searchItemsByQuery();\n\t\t\t}\n\t\t});\n\n\t\t//--обработка enter (для mob страницы - фокус на ПРИМЕНИТЬ)\n\t\taddEventDelegate(document, 'keypress', '.tum-filter-search-text-mob', (element, e) => {\n\t\t\tif (e.which == 13) { // Checks for the enter key\n\t\t\t\t$('.btn-enter').focus();\n\t\t\t}\n\t\t});\n\n\t\t//--клик по лупе поиска\n\t\taddEventDelegate(document, 'click', '.tum-filter-search-btn', element => {\n\t\t\tvar cont = $(element).closest('.tum-filter-search');\n\t\t\tif (cont.length > 0) {\n\t\t\t\tvar el = cont.find('.tum-filter-search-text');\n\t\t\t\tif (el.length > 0) {\n\t\t\t\t\tself.searchItemsByQuery();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.open-category-filter', () => {\n\t\t\tvar moreInfo = $('.b-aside-wrapper .tum-filter-cats .cat-more-info');\n\t\t\tif ($(moreInfo).length > 0) {\n\t\t\t\t$('button', moreInfo)[0]?.click();\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'change', \".tum-mdc-categories-grouped input\", element => {\n\t\t\tvar ctuID = $(element).attr(\"data-itemid\");\n\t\t\tvar checked = $(element).prop('checked');\n\t\t\t$(\".tum-mdc-categories-ungrouped input[data-itemid=\" + ctuID + \"]\").prop('checked', checked).trigger('change');\n\t\t});\n\n\t\taddEventDelegate(document, \"click\", \".tum-mdc-toggleGroups\", () => this.toggleCtuGroups());\n\t\taddEventDelegate(document, 'click', \".mdc-hideGroup\", element => {\n\t\t\tlet $group = $(element).closest('.tum-mdc-group');\n\t\t\t$group.find('ul').toggleClass('d-none');\n\n\t\t\t$('i', this).toggleClass('fa-chevron-circle-up fa-chevron-circle-down');\n\t\t});\n\n\t\taddEventDelegate(document, \"click\", \".tu-toggle-all-groups\", () => {\n\t\t\tlet groups = [...document.querySelectorAll('.tum-mdc-group > ul')];\n\t\t\tlet anyShown = groups.some(e => !e.classList.contains('d-none'));\n\t\t\ttoggleClass(groups, 'd-none', anyShown);\n\t\t});\n\t},\n\tctuGroupsEnabled: function () {\n\t\treturn !!$('.tum-mdc-toggleGroups.fa-toggle-on').length;\n\t},\n\ttoggleCtuGroups: function () {\n\t\t$(\".tum-mdc-toggleGroups\").toggleClass(\"fa-toggle-off fa-toggle-on\");\n\t\t$(\".tum-mdc-categories-grouped, .tum-mdc-categories-ungrouped, .tu-toggle-all-groups\").toggleClass(\"d-none\");\n\t},\n\tuploadFilter: function (cont, isMob) {\n\t\tfilterCont.filter = filterCont.getFilter(cont, isMob);\n\t\tthis.updateBrowserHistory();\n\t\tthis.searchProducts(2);\n\t},\n\tknownParams: [\n\t\t'query',\n\t\t'tu',\n\t\t'firm',\n\t\t'ctu',\n\t\t'available',\n\t\t'madeInOurs',\n\t\t'p_fr',\n\t\t'p_to',\n\t\t'ch',\n\t\t'fch',\n\t\t'tch',\n\t\t'tfch',\n\t\t'firmIDs',\n\t\t'geo_lat',\n\t\t'geo_long',\n\t\t'get_maxDistance',\n\t\t'datetime_open',\n\t\t'sort',\n\t\t'firmSort',\n\t\t'statuses',\n\t\t'tableView',\n\t\t'firms',\n\t\t'tab'\n\t],\n\tupdateBrowserHistory: function () {\n\t\tif (history.pushState) {\n\t\t\tvar url = location.pathname;\n\t\t\tvar query = [];\n\n\n\n\t\t\tif (filterCont.filter.query) {\n\t\t\t\tquery.push({ name: 'query', value: filterCont.filter.query });\n\t\t\t} else if (url.indexOf('/category/') == -1 && url.indexOf('/offers') == -1) { //если правльный запрос указан в параметр только для search-{type}\n\t\t\t\tvar queryRequest = this.getURLParameter('query');\n\t\t\t\tif (queryRequest) {\n\t\t\t\t\tquery.push({ name: 'query', value: queryRequest });\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (filterCont.filter.tu) {\n\t\t\t\tquery.push({ name: 'tu', value: filterCont.filter.tu });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.firmType && filterCont.filter.firmType != 'byproducts') {\n\t\t\t\tquery.push({ name: 'firm', value: filterCont.filter.firmType }); //value: filterCont.filter.filterType\n\t\t\t}\n\t\t\tif (!filterCont.filter.query || !filterCont.filter.withoutFilters) {\n\n\t\t\t\tif (filterCont.defaultFilter.searchByTU && filterCont.filter.ctu) {\n\t\t\t\t\tquery.push({ name: 'ctu', value: filterCont.filter.ctu });\n\t\t\t\t}\n\t\t\t\tif (filterCont.filter.available) {\n\t\t\t\t\tquery.push({ name: 'available', value: filterCont.filter.available ? 1 : 0 });\n\t\t\t\t}\n\n\t\t\t\tif (filterCont.filter.madeInOurs) {\n\t\t\t\t\tquery.push({ name: 'madeInOurs', value: filterCont.filter.madeInOurs ? 1 : 0 });\n\t\t\t\t}\n\n\t\t\t\tvar urlP_from = Number(this.getURLParameter('p_fr') || 0);\n\t\t\t\tvar urlP_to = Number(this.getURLParameter('p_to') || 0);\n\t\t\t\tvar priceFrom = Number(filterCont.filter.priceFrom && filterCont.filter.priceFrom.toString().replace(',', '.') || 0);\n\t\t\t\tvar priceTo = Number(filterCont.filter.priceTo && filterCont.filter.priceTo.toString().replace(',', '.') || 0);\n\t\t\t\tif (\n\t\t\t\t\t(urlP_from > 0 || priceFrom != 0) && (urlP_from > 0 || priceFrom != Number($('.b-filter-price__input.p_fr').attr('data-minprice')))\n\t\t\t\t\t||\n\t\t\t\t\t(urlP_to > 0 || priceTo != 0) && (urlP_to > 0 || priceTo != Number($('.b-filter-price__input.p_to').attr('data-maxprice')))) {\n\t\t\t\t\tif (priceFrom >= 0) {\n\t\t\t\t\t\tif (priceFrom == 0 && urlP_from > 0 && !filterCont.defaultFilter.priceClear) {\n\t\t\t\t\t\t\tfilterCont.filter.priceFrom = urlP_from;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (filterCont.filter.priceFrom > 0)\n\t\t\t\t\t\t\tquery.push({ name: 'p_fr', value: filterCont.filter.priceFrom.toString().replace(',', '.') });\n\t\t\t\t\t}\n\n\t\t\t\t\tif (priceTo >= 0) {\n\t\t\t\t\t\tif (priceTo == 0 && urlP_to > 0 && !filterCont.defaultFilter.priceClear) {\n\t\t\t\t\t\t\tfilterCont.filter.priceTo = urlP_to;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (filterCont.filter.priceTo > 0)\n\t\t\t\t\t\t\tquery.push({ name: 'p_to', value: filterCont.filter.priceTo.toString().replace(',', '.') });\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif (filterCont.filter.ch) {\n\t\t\t\t\tquery.push({ name: 'ch', value: filterCont.filter.ch });\n\t\t\t\t}\n\n\t\t\t\tif (filterCont.filter.fch) {\n\t\t\t\t\tquery.push({ name: 'fch', value: filterCont.filter.fch });\n\t\t\t\t}\n\n\t\t\t\tif (filterCont.filter.tch) {\n\t\t\t\t\tquery.push({ name: 'tch', value: filterCont.filter.tch });\n\t\t\t\t}\n\n\t\t\t\tif (filterCont.filter.tfch) {\n\t\t\t\t\tquery.push({ name: 'tfch', value: filterCont.filter.tfch });\n\t\t\t\t}\n\n\t\t\t\tif (filterCont.filter.firmIDs) {\n\t\t\t\t\tquery.push({ name: 'firmIDs', value: filterCont.filter.firmIDs });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//filterType переключатель берется из кук\n\t\t\t//if (filterCont.filter.filterType && filterCont.filter.filterType != 'byproducts') {\n\t\t\t//\tquery.push({ name: 'filter', value: filterCont.filter.filterType });\n\t\t\t//}\n\n\t\t\tif (filterCont.filter.geo_lat) {\n\t\t\t\tquery.push({ name: 'geo_lat', value: filterCont.filter.geo_lat });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.geo_long) {\n\t\t\t\tquery.push({ name: 'geo_long', value: filterCont.filter.geo_long });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.intervalFrom) {\n\t\t\t\tquery.push({ name: 'intervalFrom', value: filterCont.filter.intervalFrom });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.intervalTo) {\n\t\t\t\tquery.push({ name: 'intervalTo', value: filterCont.filter.intervalTo });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.geo_maxDistance) {\n\t\t\t\tquery.push({ name: 'geo_maxDistance', value: filterCont.filter.geo_maxDistance });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.datetimeOpen && !filterCont.filter.datetimeIsReset) {\n\t\t\t\tquery.push({ name: 'datetime_open', value: filterCont.filter.datetimeOpen });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.sort) {\n\t\t\t\tquery.push({ name: 'sort', value: filterCont.filter.sort });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.firmSort) {\n\t\t\t\tquery.push({ name: 'firmSort', value: filterCont.filter.firmSort });\n\t\t\t}\n\n\t\t\tif (filterCont.filter.statuses) {\n\t\t\t\tquery.push({ name: 'statuses', value: filterCont.filter.statuses });\n\t\t\t}\n\t\t\tif (filterCont.filter.tableView) {\n\t\t\t\tquery.push({ name: 'tableView', value: filterCont.filter.tableView });\n\t\t\t}\n\t\t\tif (getUrlParameter(\"firms\")) {\n\t\t\t\tquery.push({ name: 'firms', value: getUrlParameter(\"firms\") });\n\t\t\t}\n\n\t\t\tif (url.indexOf('tab') == -1 && tab) {\n\t\t\t\tquery.push({ name: 'tab', value: tab });\n\t\t\t}\n\n\t\t\tvar _url = new URL(location.href);\n\t\t\tvar additionalParams = [..._url.searchParams.keys()].filter(k => this.knownParams.indexOf(k) == -1);\n\t\t\tfor (let param of additionalParams) {\n\t\t\t\tquery.push({ name: param, value: _url.searchParams.get(param) });\n\t\t\t}\n\n\t\t\tif (query.length > 0) {\n\t\t\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\t\t\turl += i === 0 ? '?' + query[i].name + '=' + query[i].value : query[i].name + '=' + query[i].value;\n\t\t\t\t\turl += i < query.length - 1 ? '&' : '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar tab = this.getURLParameter('tab');\n\t\t\tif (tab) {\n\t\t\t\tif ($('#tu-tabs a.active').attr('data-tab-def') == '0' && query.length > 0) {\n\t\t\t\t\turl += ('&tab=' + $('#tu-tabs a.active').attr('data-href'));\n\t\t\t\t} else if ($('#tu-tabs a.active').attr('data-tab-def') == '0' && query.length == 0) {\n\t\t\t\t\turl += ('?tab=' + $('#tu-tabs a.active').attr('data-href'));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twindow.history.pushState({ filter: filterCont.filter }, filterCont.filter.filterType, url);\n\t\t}\n\t},\n\t_searchProducts: function (uploadType, isProducts, isPrevItems) {\n\t\tvar self = this;\n\n\t\tif (uploadType === undefined) uploadType = 0;// default arguments\n\t\tif (isPrevItems === undefined) isPrevItems = false;// for ie\n\t\tfilterCont.filter.uploadType = uploadType;\n\t\tvar currentFirmPage = filterCont.filter.firmPage;\n\t\tvar params = { filter: filterCont.filter };\n\n\t\tvar firmTemplates = {\n\t\t\tgrid: 'firm-mini-list',\n\t\t\tmini: 'firm-mini-list',\n\t\t\trows: 'firm-mini-row-list'\n\t\t};\n\n\t\tvar firmTemplate = getPrecompiledTemplate(firmTemplates[filter.options.viewMode]);\n\n\t\tajaxSend({ url: '/categoryRequests/SearchProduct', data: params }).then(data => {\n\t\t\tif (typeof (data) != \"object\") { data = eval('(' + data + ')'); }\n\n\t\t\tif (uploadType == 1 || uploadType == 2) {\n\t\t\t\tif (data.FirmItems.length > 0) {\n\t\t\t\t\tif (!data.Type) data.Type = \"bygoods\";\n\t\t\t\t\tdata.bygoods = data.Type == \"bygoods\";\n\t\t\t\t\tvar newFirms = $(firmTemplate(data));\n\t\t\t\t\tinitTuPopover(newFirms);\n\n\t\t\t\t\tif (uploadType == 1) {\n\t\t\t\t\t\tif (!isPrevItems) {\n\t\t\t\t\t\t\t$('.firm-content').append(newFirms);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$('.firm-content').prepend(newFirms);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$('.firm-content').html(newFirms);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar firmPageSize = parseInt(filterCont.filter.firmPageSize);\n\t\t\t\tvar fc = data.FirmItems.length > 0 && data.firmFilteredCount > ((currentFirmPage) * firmPageSize);\n\n\t\t\t\tif (!fc) {\n\t\t\t\t\t$('.btn-show-more:visible').addClass('d-none');\n\t\t\t\t}\n\n\t\t\t\tself.wrapAnnotation();\n\t\t\t\t$(\"[data-toggle=popover]\").popover({\n\t\t\t\t\tsanitize: false\n\t\t\t\t});\n\t\t\t}\n\n\t\t});\n\t},\n\tsearchProducts: function (uploadType, isProducts, isPrevItems) {\n\t\tlet templates = [\n\t\t\t'firm-mini',\n\t\t\t'firm-mini-row',\n\t\t\t'firm-mini-list',\n\t\t\t'firm-mini-row-list'\n\t\t];\n\n\t\tloadPrecompiledTemplates(templates).then(() => this._searchProducts(uploadType, isProducts, isPrevItems));\n\t},\n\tsearchItemsByQuery: function () {\n\t\tfilterCont.filter = filterCont.getFilter(this.elements.search, false);\n\t\tif ($('.tum-offers-withoutFilters').length) {\n\t\t\tfilterCont.filter.withoutFilters = $('.tum-offers-withoutFilters').prop('checked');\n\t\t}\n\t\tthis.updateBrowserHistory();\n\t\tlocation.reload();\n\t},\n\tgetURLParameter: function (sParam) {\n\t\tvar sPageURL = window.location.search.substring(1);\n\t\tvar sURLVariables = sPageURL.split('&');\n\t\tfor (var i = 0; i < sURLVariables.length; i++) {\n\t\t\tvar sParameterName = sURLVariables[i].split('=');\n\t\t\tif (sParameterName[0] == sParam) {\n\t\t\t\treturn sParameterName[1];\n\t\t\t}\n\t\t}\n\t},\n\tsetURLParameter: function (name, value) {\n\t\tvar sPageURL = window.location.search.substring(1);\n\t\tif (sPageURL.indexOf(name) != -1) {\n\t\t\tvar sURLVariables = sPageURL.split('&');\n\t\t\tfor (var i = 0; i < sURLVariables.length; i++) {\n\t\t\t\tvar sParameterName = sURLVariables[i].split('=');\n\t\t\t\tif (sParameterName[0] == name) {\n\t\t\t\t\tsParameterName[1] = value;\n\t\t\t\t}\n\t\t\t\tsURLVariables[i] = sParameterName.join('=');\n\t\t\t}\n\t\t\tsPageURL = sURLVariables.join('&');\n\t\t} else {\n\t\t\tif (window.location.href.indexOf('?') != -1) sPageURL += \"&\";\n\t\t\tsPageURL += name + \"=\" + value;\n\t\t}\n\t\tvar newUrl = window.location.href.split('?')[0] + '?' + sPageURL;\n\t\twindow.history.pushState({ path: newUrl }, '', newUrl);\n\t},\n\twrapAnnotation: function () {\n\t\t$('.b-firm-annotation').readmore({\n\t\t\tmoreLink: ' Ещё',\n\t\t\tlessLink: '',\n\t\t\tspeed: 100,\n\t\t\tcollapsedHeight: 97\n\t\t});\n\t\t$('.b-firm-annotation-mob').readmore({\n\t\t\tmoreLink: ' Ещё',\n\t\t\tlessLink: '',\n\t\t\tspeed: 100,\n\t\t\tcollapsedHeight: 45\n\t\t});\n\t},\n\tchangeOfferResetFilter: function () {\n\t\tif ($('.tum-clear-all-filters').length > 0) {\n\t\t\t$('.tum-clear-all-filters').addClass(\"tum-bg-dark-red-light\");\n\t\t\t$('.tum-clear-all-filters').addClass(\"text-white\");\n\t\t}\n\t},\n\tapplyFilters: function (skipReload) {\n\t\tvar isMob = false;\n\t\tvar filterType = this.elements.search;\n\t\tif (window.innerWidth < 768) {\n\t\t\tisMob = true;\n\t\t\tfilterType = this.elements.searchMob;\n\t\t}\n\t\tfilterCont.filter = filterCont.getFilter(filterType, isMob);\n\n\t\tif (!skipReload) {\n\t\t\tthis.updateBrowserHistory();\n\t\t\topenProgressbar();\n\t\t\tlocation.reload();\n\t\t}\n\t},\n\tisMob: function () {\n\t\treturn window.innerWidth < 768;\n\t},\n\tgetCoordinates: function () {\n\t\treturn new Promise(resolve => {\n\t\t\tif (this.coordinates) {\n\t\t\t\tresolve(this.coordinates);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.options.askForCoordinates) {\n\t\t\t\tresolve(null);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\topenProgressbar();\n\t\t\tnavigator.geolocation.getCurrentPosition(\n\t\t\t\te => {\n\t\t\t\t\tcloseProgressbar();\n\n\t\t\t\t\tgetLocationFromYandex(e.coords.latitude, e.coords.longitude).then(yl => {\n\t\t\t\t\t\tif (yl.locality == tumarket.general.location.name || getCookie('ignoreMapCityCheck') == '1') {\n\t\t\t\t\t\t\tthis.coordinates = {\n\t\t\t\t\t\t\t\tlat: e.coords.latitude,\n\t\t\t\t\t\t\t\tlong: e.coords.longitude\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve(this.coordinates);\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\tcloseProgressbar()\n\t\t\t\t\tif (e.code > 1) {\n\t\t\t\t\t\tbootstrapAlert('Не удалось определить местоположение.', { type: 'danger' });\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t\tresolve(null);\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttimeout: 5000\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t},\n\t_initMap: function (callback) {\n\t\tlet center = this.coordinates || {\n\t\t\tlat: tumarket.searchMap.center[0],\n\t\t\tlong: tumarket.searchMap.center[1]\n\t\t};\n\n\t\tlet defaultCenter = {\n\t\t\tlat: tumarket.searchMap.center[0],\n\t\t\tlong: tumarket.searchMap.center[1]\n\t\t};\n\n\t\tvar $btn = $('.tum-search-onMap');\n\t\t$btn.prop('disabled', true);\n\t\topenProgressbar()\n\n\t\timport(\"../map.js\").then(({ tu_maps }) => {\n\t\t\tthis.map = tu_maps.create({\n\t\t\t\tcontainerId: 'tum-search-map',\n\t\t\t\tcenter: center,\n\t\t\t\tdefaultCenter: defaultCenter,\n\t\t\t\tzoom: Number(getUrlParameter('mapZoom')) || 12,\n\t\t\t\tshowSettingsButton: true,\n\t\t\t\tshowSettings: false,\n\t\t\t\tshowUserMark: true,\n\t\t\t\tlocationDetected: !!this.coordinates,\n\t\t\t\tradius: this.radius,\n\t\t\t\tshowInfo: !$('.tum-items-empty').length, //если на вьюшке уже есть блок \"в радиусе не найдено\", то не показываем радиус\n\t\t\t\tonLoad: (ymap, modules, map) => {\n\t\t\t\t\tlet collection = new modules.GeoObjectCollection();\n\t\t\t\t\tfor (let p of tumarket.searchMap.points) {\n\t\t\t\t\t\tlet placemarkOptions = {\n\t\t\t\t\t\t\thideIconOnBalloonOpen: false,\n\t\t\t\t\t\t\tballoonOffset: [0, -20],\n\t\t\t\t\t\t\tballoonMaxWidth: 200\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet placemark = new modules.Placemark(p.coords, {\n\t\t\t\t\t\t\tballoonContentBody: 'Загрузка...'\n\t\t\t\t\t\t}, placemarkOptions);\n\n\t\t\t\t\t\tplacemark.events.add('balloonopen', function () {\n\t\t\t\t\t\t\timport('../statistics.js').then(({ tumStats }) => {\n\t\t\t\t\t\t\t\tmap.getBalloonContent(p.firmID, tumarket.search.ctuIDs)\n\t\t\t\t\t\t\t\t\t.then(e => placemark.properties.set('balloonContentBody', e))\n\t\t\t\t\t\t\t\t\t.then(() => tumStats.logEvent({\n\t\t\t\t\t\t\t\t\t\tfirmID: p.firmID,\n\t\t\t\t\t\t\t\t\t\tobjectType: 'map',\n\t\t\t\t\t\t\t\t\t\teventType: 'click_showContacts'\n\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t\t.catch(e => console.log(e));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tcollection.add(placemark);\n\t\t\t\t\t}\n\t\t\t\t\tymap.geoObjects.add(collection);\n\t\t\t\t\t$btn.prop('disabled', false);\n\t\t\t\t\tcloseProgressbar()\n\t\t\t\t\tif (callback) callback();\n\t\t\t\t\t$('.tum-search-map-header').removeClass('d-none');\n\t\t\t\t},\n\t\t\t\tonApplySettings: settings => {\n\t\t\t\t\tfilterCont.filter.geo_lat = settings.center.lat;\n\t\t\t\t\tfilterCont.filter.geo_long = settings.center.long;\n\t\t\t\t\tfilterCont.filter.geo_maxDistance = settings.radius;\n\n\t\t\t\t\tsearchFilter.applyFilters();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\t_toggleMap: function (callback) {\n\t\tvar $map = $('#tum-search-map');\n\t\tif ($map.is('.initialized')) {\n\t\t\t$map.toggleClass('d-none');\n\t\t\t$('.tum-search-map-header').toggleClass('d-none');\n\n\t\t\tvar $mapInfo = $($map.attr('data-info'));\n\t\t\tvar show = !$map.hasClass('d-none');\n\t\t\tif (show) {\n\t\t\t\t$mapInfo.removeClass('d-none');\n\t\t\t} else if (!this.radius) {\n\t\t\t\t$mapInfo.addClass('d-none');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.getCoordinates()\n\t\t\t\t.then(() => this._initMap(callback));\n\t\t}\n\t},\n\tinitGeoSearch: function () {\n\t\tlet self = this;\n\t\taddEventDelegate(document, 'click', '.tum-search-onMap', element => {\n\t\t\tif ($(element).prop('disabled')) return;\n\t\t\tself._toggleMap();\n\t\t});\n\n\t\tlet lat_param = getUrlParameter('geo_lat');\n\t\tlet long_param = getUrlParameter('geo_long');\n\t\tlet maxDistance_param = getUrlParameter('geo_maxDistance');\n\n\t\tif (lat_param && long_param) {\n\t\t\tthis.coordinates = {\n\t\t\t\tlat: Number(lat_param),\n\t\t\t\tlong: Number(long_param)\n\t\t\t};\n\n\t\t\tfilterCont.filter.geo_lat = this.coordinates.lat;\n\t\t\tfilterCont.filter.geo_long = this.coordinates.long;\n\n\t\t\tif (maxDistance_param) {\n\t\t\t\tthis.radius = Number(maxDistance_param);\n\t\t\t\t$('.tum-distance').html(this.radius + ' м');\n\t\t\t\t$('.tum-distance').closest('.selected-items').removeClass('d-none');\n\t\t\t\tfilterCont.filter.geo_maxDistance = this.radius;\n\t\t\t}\n\n\t\t\tif (getUrlParameter('showOnMap') != '0') this._toggleMap();\n\t\t}\n\n\t\t$('.filter-openMapSettings').on('click', () => this.openMapSettings());\n\n\t\t$('.clear-distance').on('click', function () {\n\t\t\tfilterCont.filter.geo_maxDistance = 0;\n\t\t});\n\n\t\t$('.tum-filter-clear-radius').on('click', function () {\n\t\t\tfilterCont.filter.geo_maxDistance = 0;\n\t\t\tself.applyFilters();\n\t\t});\n\t},\n\tinitSearchToolbar: function () {\n\t\tlet self = this;\n\t\t$('.productSort-select').on('click', function () {\n\t\t\tfilterCont.filter.sort = $(this).attr('data-type');\n\t\t\tfilter.updateSortType();\n\t\t\tself.applyFilters();\n\t\t});\n\n\t\t$('.firmSort-select').on('click', function () {\n\t\t\tfilterCont.filter.firmSort = $(this).attr('data-type');\n\t\t\tfilter.updateSortType();\n\t\t\tself.applyFilters();\n\t\t});\n\t},\n\topenMapSettings: function () {\n\t\tfilter.hideAsideModal();\n\t\tif (this.map) {\n\t\t\t$('#map-settingsModal').modal('show');\n\t\t}\n\t\telse {\n\t\t\tthis._toggleMap(() => $('#map-settingsModal').modal('show'));\n\t\t}\n\t},\n\t//синхронизирует выбранные чекбоксы кту между несгруппированными и сгруппированными\n\tsyncCtuModal: function () {\n\t\t$(\".tum-mdc-categories-ungrouped input[data-itemid]:checked\").each(function () {\n\t\t\tlet ctuID = $(this).attr('data-itemid');\n\t\t\t$(\".tum-mdc-categories-grouped input[data-itemid=\" + ctuID + \"]\").prop('checked', true);\n\t\t});\n\t},\n\ttoggleCtuModal: function (value) {\n\n\t\tfilter.hideAsideModal();\n\n\t\t$('.ctuModal-container').toggleClass('active', value);\n\t\t$('.ctuModal-container .b-aside-modal').toggleClass('modalActive', value);\n\n\t\tif ($('.ctuModal-container').hasClass('active')) {\n\t\t\tsearchFilter.options.arr = tumarket.ctuFilter.categories.map(e => (e.ctuNameClean || e.ctuName).toLowerCase());\n\t\t}\n\t},\n\tinitStickyFilter: function (element, options) {\n\t\t//фильтры всегда видимы на странице, но скроллятся вместе с ней\n\t\t//пример отсюда https://discourse.wicg.io/t/scrollable-sticky-element/5669 https://jsfiddle.net/qm3KZ/26/\n\n\t\tfunction _getTopOffset() {\n\t\t\tif ($('.header-floating').hasClass('show')) {\n\t\t\t\treturn $('.header-floating').height();\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\tfunction _pegToScreenTop($element) {\n\t\t\t$element.css({\n\t\t\t\t'top': _getTopOffset(),\n\t\t\t\t'bottom': ''\n\t\t\t});\n\t\t}\n\n\t\tfunction _pegToFollowTop($element, followTop, screenTop) {\n\t\t\t$element.css({\n\t\t\t\t'top': _getTopOffset() + followTop - screenTop,\n\t\t\t\t'bottom': ''\n\t\t\t});\n\t\t}\n\n\t\tfunction _pegToFollowBottom($element, followBottom, screenBottom) {\n\t\t\t$element.css({\n\t\t\t\t'top': '',\n\t\t\t\t'bottom': screenBottom - followBottom\n\t\t\t});\n\t\t}\n\n\t\tfunction _scrollEl($element, distance) {\n\t\t\tvar oldTop = $element.offset().top - $(window).scrollTop() - _getTopOffset();\n\t\t\t$element.css({\n\t\t\t\t'top': _getTopOffset() + oldTop - (distance || 0),\n\t\t\t\t'bottom': ''\n\t\t\t});\n\t\t}\n\n\t\tfunction follow(event) {\n\t\t\tvar $window = $(window),\n\t\t\t\tsettings = event.data.settings,\n\t\t\t\t$element = event.data.follower,\n\t\t\t\telHeight = $element.outerHeight(),\n\t\t\t\telTop = $element.offset().top,\n\t\t\t\telBottom = elTop + elHeight,\n\t\t\t\tisShorterThanScreen = elHeight < $window.height(),\n\t\t\t\tscreenTop = $window.scrollTop(),\n\t\t\t\tscreenBottom = screenTop + $window.height(),\n\t\t\t\tisFollowTopPxVisible = screenTop - settings.topPixel <= 0,\n\t\t\t\tisFollowBottomPxVisible = settings.bottomPixel - screenBottom <= 0,\n\t\t\t\tprevScreenTop = ($element.data('followScreen') || 0),\n\t\t\t\tscrollDistance = screenTop - prevScreenTop;\n\n\t\t\tif (elHeight < settings.bottomPixel - settings.topPixel) { //El is capable of scrolling\n\t\t\t\tif (isShorterThanScreen) {\n\t\t\t\t\tif (isFollowTopPxVisible) {\n\t\t\t\t\t\t_pegToFollowTop($element, settings.topPixel, screenTop);\n\t\t\t\t\t} else if (isFollowBottomPxVisible && (settings.bottomPixel - screenTop < elHeight)) {\n\t\t\t\t\t\t_pegToFollowBottom($element, settings.bottomPixel, screenBottom);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_pegToScreenTop($element);\n\t\t\t\t\t}\n\t\t\t\t} else { //El is bigger than screen\n\t\t\t\t\tif (isFollowBottomPxVisible) {\n\t\t\t\t\t\t_pegToFollowBottom($element, settings.bottomPixel, screenBottom);\n\t\t\t\t\t} else if (isFollowTopPxVisible) {\n\t\t\t\t\t\t_pegToFollowTop($element, settings.topPixel, screenTop);\n\t\t\t\t\t} else { //We're between the designated top and bottom following points\n\t\t\t\t\t\tif (scrollDistance < 0) { //Scrolling up\n\t\t\t\t\t\t\tif (Math.abs(scrollDistance) > (screenTop - elTop)) { //Not enough of the element left off-screen to scroll the whole distance\n\t\t\t\t\t\t\t\t_pegToScreenTop($element);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_scrollEl($element, scrollDistance); //Scroll the element up the same distance the user scrolled\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else { //Scrolling down\n\t\t\t\t\t\t\tif (Math.abs(scrollDistance) > (elBottom - screenBottom)) { //Not enough of the element left off-screen to scroll the whole distance\n\t\t\t\t\t\t\t\t//_pegToScreenBottom($element); //это не нужно при position sticky, а в оригинале fixed\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_scrollEl($element, scrollDistance); //Scroll the element down the same distance the user scrolled\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Store for next time\n\t\t\t$element.data('followScreen', screenTop);\n\t\t}\n\n\t\tvar eventNumber = Math.floor(Math.random() * 10 ^ 5),\n\t\t\tsettings = $.extend({\n\t\t\t\t'topPixel': 0,\n\t\t\t\t'bottomPixel': Infinity\n\t\t\t}, options),\n\t\t\tprevEventNumber = element.data('fsn');\n\n\t\t//Remove previous followScreen listener from this element\n\t\tif (prevEventNumber) {\n\t\t\t$(window).off('scroll.followScreen.' + prevEventNumber, follow);\n\t\t}\n\n\t\treturn element.each(function () {\n\t\t\tvar data = { follower: $(this), settings: settings };\n\t\t\t$(window).on('scroll.followScreen.' + eventNumber, data, follow);\n\t\t\tfollow({ data: data });\n\t\t});\n\t}\n};\n\nexport default searchFilter;","import * as $ from \"jquery\";\nimport { getUrlParameter } from \"../global/url\";\nimport { getCookie, setCookie } from \"../global/cookie\";\nimport tumGlobal from \"../global\";\nimport { getFormData } from \"../global/form\";\nimport dateFormat from \"../lib/dateformat/dateformat\";\n\nvar filterCont = {\n\tdefaultFilter: {\n\t\tpage: 1,\n\t\tfirmPage: 1,\n\t\tpageSize: 13,\n\t\tfirmPageSize: 13,\n\t\tch: '',\n\t\tfch: '',\n\t\ttch: '',\n\t\ttfch: '',\n\t\tavailable: 0,\n\t\tmadeInOurs: 0,\n\t\tpriceFrom: 0,\n\t\tpriceTo: 0,\n\t\tfilterType: '',\n\t\tfirmType: '',\n\t\tctuID: 0,\n\t\tctu: '',\n\t\tsearchByTU: false,\n\t\tcropChNameCount: 0,\n\t\tpageType: '',\n\t\tpriceClear: false,\n\t\twithoutFilters: false,\n\t\ttu:'',\n\t\tgeo_lat: 0,\n\t\tgeo_long: 0,\n\t\tgeo_maxDistance: 0,\n\t\tsort: '',\n\t\tfirmSort: '',\n\t\tdatetimeOpen: '',\n\t\tdatetimeIsReset: false\n\t},\n\tselectedCtus: [],\n\tfilter: {\n\t\tpage: 1,\n\t\tfirmPage: 1,\n\t\tpageSize: 13,\n\t\tfirmPageSize: 13,\n\t\tch: '',\n\t\tfch: '',\n\t\ttch: '',\n\t\ttfch: '',\n\t\tavailable: 0,\n\t\tmadeInOurs: 0,\n\t\tpriceFrom: 0,\n\t\tpriceTo: 0,\n\t\tfilterType: '',\n\t\tfirmType: '',\n\t\tfchList: [],\n\t\ttfchList: [],\n\t\tctuID: 0,\n\t\tctu: '',\n\t\tsearchByTU: false,\n\t\tcropChNameCount: 0,\n\t\tpageType: '',\n\t\tpriceClear: false,\n\t\tpageDirection : '',\n\t\tactiveTab: '',\n\t\twithoutFilters: false,\n\t\ttu: '',\n\t\tisEditMode: false,\n\t\tstatuses: '',\n\t\ttableView: 0,\n\t\tgeo_lat: 0,\n\t\tgeo_long: 0,\n\t\tgeo_maxDistance: 0,\n\t\tsort: '',\n\t\tfirmSort: '',\n\t\tdatetimeOpen: '',\n\t\tdatetimeIsReset: false\n\t},\n\telements: {\n\t\tsearch: \".b-aside-xs\"\n\t},\n\trenderFilterSortViewBtn: function(data) {\n\t\treturn `\n\t\t\n\t\t\t\n\t\t\t\t ${data.name}\n\t\t\t\n\t\t`;\n\t},\n\tinitFilterUI: function (searchElement, isMob) {\n\t\t$(searchElement + ' .in-stock .form-check-input').prop(\"checked\", filterCont.filter.available == 1);\n\t\t$(searchElement + ' .madeInOurs').prop(\"checked\", filterCont.filter.madeInOurs == 1);\n\t\t$('.b-aside-modal_views .form-check-input[name=view]:checked').trigger('change');\n\t\tif (filterCont.filter.priceFrom.replace(',', '.') > 0) {\n\t\t\t$(searchElement + (isMob ? ' #minCost-mob' : ' #minCost')).val(filterCont.filter.priceFrom.replace(',', '.'));\n\t\t\t$(searchElement + (isMob ? ' input#minCost-mob' : ' input#minCost')).trigger('change');\n\t\t}\n\t\tif (filterCont.filter.priceTo.replace(',', '.') > 0) {\n\t\t\t$(searchElement + (isMob ? ' #maxCost-mob' : ' #maxCost')).val(filterCont.filter.priceTo.replace(',', '.'));\n\t\t\t$(searchElement + (isMob ? ' input#maxCost-mob' : ' input#maxCost')).trigger('change');\n\t\t}\n\t\tif (!filterCont.filter.isEditMode || (filterCont.filter.isEditMode && $(window).width() >= 768)) {\n\t\t\tvar catIDs = filterCont.filter.ctu.split(',');\n\t\t\t$('.b-aside .form-check-input').each(function (i, el) {\n\t\t\t\tvar itemID = $(el).attr('data-itemid');\n\t\t\t\tif ($.inArray(itemID, catIDs) !== -1) {\n\t\t\t\t\t$(el).prop('checked', true)\n\t\t\t\t\tif (isMob) {\n\t\t\t\t\t\t$(el).trigger('change');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} \n\t\tvar charIDs = filterCont.filter.ch.split(',');\n\t\t$(isMob ? '.mobile-fullsize .card .form-check-input' : '.panel-filter .form-check-input').each(function (i, el) {\n\t\t\tvar itemID = $(el).attr('data-itemid');\n\t\t\tif ($.inArray(itemID, charIDs) !== -1) {\n\t\t\t\t$(el).prop('checked', true)\n\t\t\t\tif (isMob) $(el).trigger('change');\n\t\t\t}\n\t\t});\n\t\tvar charactCount = 0;\n\t\tvar metricsFCH = filterCont.defaultFilter.fchList;\n\t\tvar metricsTFCH = [];\n\t\tif (window.innerWidth < 768) {\n\t\t\tcharactCount = parseInt(charIDs[0] != \"\" ? charIDs.length : 0)\n\t\t\tif (filterCont.filter.priceFrom > 0) { //под вопросом\n\t\t\t\tcharactCount += 1;\n\t\t\t}\n\t\t\tif (filterCont.defaultFilter.pageType == 'tu') {\n\t\t\t\tmetricsTFCH = filterCont.defaultFilter.tfchList;\n\t\t\t}\n\t\t}\n\n\t\tvar metrics = [metricsFCH, metricsTFCH];\n\t\tvar metricCount = 0;\n\n\t\tfor (var i = 0; i < metrics.length; i++) {\n\t\t\t$.each(metrics[i], function (i, value) {\n\t\t\t\tif (value.id > 0 && value.minVal > 0 && value.maxVal > 0) {\n\t\t\t\t\tvar $cont = $('.b-filter-f-ch[data-itemid=\"' + value.id + '\"]');\n\t\t\t\t\t\n\t\t\t\t\tvar $minInput = $cont.find('input.minVal' + value.id)\n\t\t\t\t\tvar $maxInput = $cont.find('input.maxVal' + value.id)\n\t\t\t\t\t$minInput.val(value.minVal);\n\t\t\t\t\t$minInput.trigger('change');\n\t\t\t\t\t$maxInput.val(value.maxVal);\n\t\t\t\t\t$maxInput.trigger('change');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tcharactCount += metricCount;\n\t\tvar isFilterAvailable = $(!isMob ? filterCont.elements.search + ' .isAvailable' : '.mobile-fullsize .isAvailable').prop('checked');\n\t\tif (isFilterAvailable) {\n\t\t\tcharactCount += 1;\n\t\t}\n\n\t\tvar isFilterMadeInOurs = $(!isMob ? filterCont.elements.search + ' .madeInOurs' : '.mobile-fullsize .madeInOurs').prop('checked');\n\t\tif (isFilterMadeInOurs) {\n\t\t\tcharactCount += 1;\n\t\t}\n\n\t\t//это же учтено выше?\n\t\tcharactCount += $('.tum-filter-clear-item-cont:visible').length; // пред реализация не работала, врем. решение\n\t\tif (window.innerWidth < 768) {\n\t\t\tcharactCount = catIDs && catIDs.length && catIDs[0] ? 1 : 0;\n\t\t\tcharactCount += $(\".card .b-aside-item__top .value.item-char\").length;\n\t\t}\n\t\tif ($('.tum-filter-search-text').length > 0 && $('.tum-filter-search-text').val().trim() != '') {\n\t\t\tcharactCount += 1;\n\t\t}\n\t\tif ($(\".card .b-filter-f-ch\").length > 1) {\n\t\t\tvar values = $(\".card .b-filter-f-ch\").closest('.card').find('.value.item-char');\n\t\t\t$.each(values, function (i, el) {\n\t\t\t\tvar txt = $(el).text();\n\t\t\t\tvar spl = txt.split(';')[i];\n\t\t\t\t$(el).text(spl);\n\t\t\t});\n\t\t}\n\t\tvar fltrCountXS = charactCount > 0 ? charactCount : \"\";\n\t\t$('.b-aside-xs .filter-fields-count:visible').html(fltrCountXS);\n\t\tif (charactCount > 0 && !$('.b-aside-xs .filter-fields-count:visible').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t$('.b-aside-xs .filter-fields-count:visible').addClass(\"tum-bg-dark-red\");\n\t\t} else if (charactCount == 0) {\n\t\t\t$('.b-aside-xs .filter-fields-count:visible').removeClass(\"tum-bg-dark-red\");\n\t\t}\n\t\tif (charactCount > 0 && $('.b-aside-xs .clear-filter').hasClass(\"d-none\")) {\n\t\t\t$('.b-aside-xs .clear-filter').removeClass(\"d-none\")\n\t\t}\n\n\t\t$.each($('.card .filter-fields-count'), function (i, el) {\n\t\t\tvar fltrCount = charactCount > 0 ? charactCount : \"\";\n\t\t\t$(el).html(fltrCount);\n\t\t\tif (charactCount > 0 && !$(el).hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t$(el).addClass(\"tum-bg-dark-red\");\n\t\t\t} else if (charactCount == 0){\n\t\t\t\t$(el).removeClass(\"tum-bg-dark-red\");\n\t\t\t}\n\n\t\t\tif (charactCount > 0 && $(el).closest(\".card\").find(\".clear-filter\").hasClass(\"d-none\")) {\n\t\t\t\t$(el).closest(\".card\").find(\".clear-filter\").removeClass(\"d-none\");\n\t\t\t}\n\t\t});\n\t\t\n\t\tif (filterCont.filter.available == 1) {\n\t\t\tlet name = $(!isMob ? filterCont.elements.search + ' .isAvailable' : '.mobile-fullsize .isAvailable').closest('label').text();\n\t\t\t$('.collapseSummaryClass').removeClass('d-none');\n\t\t\t$('.tum-filter-clear-all-cont').removeClass('d-none');\n\n\t\t\tlet htmlOut = this.renderFilterSortViewBtn({ \n\t\t\t\tid: $(!isMob ? filterCont.elements.search + ' .isAvailable' : '.mobile-fullsize .isAvailable').attr('data-itemid'), \n\t\t\t\tcatid: 0, \n\t\t\t\tname: name \n\t\t\t});\n\n\t\t\t$(\".collapseSummaryClass\").append(htmlOut).removeClass('d-none');\n\t\t}\n\n\t\tif (filterCont.filter.madeInOurs == 1) {\n\t\t\tlet name = $(!isMob ? filterCont.elements.search + ' .madeInOurs' : '.mobile-fullsize .madeInOurs').closest('label').text();\n\t\t\t$('.collapseSummaryClass').removeClass('d-none');\n\t\t\t$('.tum-filter-clear-all-cont').removeClass('d-none');\n\n\t\t\tlet htmlOut = this.renderFilterSortViewBtn({ \n\t\t\t\tid: $(!isMob ? filterCont.elements.search + ' .madeInOurs' : '.mobile-fullsize .madeInOurs').attr('data-itemid'), \n\t\t\t\tcatid: 0, \n\t\t\t\tname: name \n\t\t\t});\n\t\t\t$(\".collapseSummaryClass\").append(htmlOut).removeClass('d-none');\n\t\t}\n\n\n\t\t//показываем кнопку \"очистить все\" для категорий\n\t\tvar countChecked = $('.b-aside-modal.b-aside-modal-cat .tum-flt-gr-items .form-check-input:checked').length;\n\t\tif (countChecked > 0) {\n\t\t\t$('.b-aside-modal.b-aside-modal-cat .clear-filter').removeClass('d-none');\n\t\t}\n\n\t\tfilterCont.setDateTimeFilter(isMob);\n\t},\n\tgetFilter: function (searchElement, isMob) {\n\t\tlet query = tumGlobal.isMob() ? $('.tum-filter-search-text-mob').val() : $('.tum-filter-search-text:not(.tum-filter-search-text-mob)').val();\n\t\tfilterCont.filter.query = query || filterCont.filter.query;\n\t\tfilterCont.defaultFilter.query = query || filterCont.defaultFilter.query;\n\n\t\t// получаем значения фильтра\n\t\tvar isMob2 = window.innerWidth < 768;\n\t\tvar available = false;\n\t\tvar madeInOurs = false;\n\n\t\tvar isOwnCharID = true;\n\t\tvar $catCont = $('.tum-flt-category-cont');\n\t\tif ($catCont.length>0) {\n\t\t\tisOwnCharID = $catCont.attr('data-is-own-ch-id') === \"1\";\n\t\t}\n\t\t\n\t\tif (isMob2) {\n\t\t\tavailable = $('.mobile-fullsize .isAvailable').prop('checked');\n\t\t\tmadeInOurs = $('.mobile-fullsize .madeInOurs').prop('checked');\n\t\t} else {\n\t\t\tavailable = $(searchElement + ' .isAvailable').prop('checked');\n\t\t\tmadeInOurs = $(searchElement + ' .madeInOurs').prop('checked');\n\t\t}\n\n\t\tvar priceFrom = $(searchElement + (isMob ? ' #minCost-mob' : ' #minCost')).val();\n\t\tvar priceTo = $(searchElement + (isMob ? ' #maxCost-mob' : ' #maxCost')).val() || 0;\n\n\t\t//обнуляем только если нажали на сбросить цену\n\t\tif ($('.tum-filter-clear-price.tum-filter-clear-item .fa-times').length == 0) {\n\t\t\tif (priceFrom == $(searchElement + (isMob ? ' #minCost-mob' : ' #minCost')).attr('data-minprice')) {\n\t\t\t\tpriceFrom = 0;\n\t\t\t}\n\t\t\tif (priceTo == $(searchElement + (isMob ? ' #maxCost-mob' : ' #maxCost')).attr('data-maxprice')) {\n\t\t\t\tpriceTo = 0;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (parseInt(priceFrom) != 0 || parseInt(priceTo) != 0) {\n\t\t\tpriceFrom = $(searchElement + (isMob ? ' #minCost-mob' : ' #minCost')).val();\n\t\t\tpriceTo = $(searchElement + (isMob ? ' #maxCost-mob' : ' #maxCost')).val();\n\t\t}\n\n\t\tvar sort = this.filter.sort;\n\n\t\tvar selectFilters = [\n\t\t\t'sortKADef',\n\t\t\t'sortTUDef',\n\t\t];\n\t\t\n\t\tif ($.inArray(sort, selectFilters) != -1) {\n\t\t\tsort = '';\n\t\t}\n\n\t\tvar firmSort = this.filter.firmSort;\n\n\t\tif ($.inArray(firmSort, selectFilters) != -1) {\n\t\t\tfirmSort = '';\n\t\t}\n\t\t\n\t\tvar charIDs = [];\n\t\tvar fCharIDs = [];\n\t\tvar firmIDs = [];\n\n\t\t//продавцы\n\t\t$(isMob ? '.mobile-fullsize .card .firm .form-check-input' : '.panel-filter .firm .form-check-input').each(function (i, el) {\n\t\t\tvar itemID = $(el).attr('data-itemid')\n\t\t\tif (itemID > 0 && $.inArray(itemID, firmIDs) == -1) {\n\t\t\t\tif ($(el).prop('checked')) {\n\t\t\t\t\tfirmIDs.push($(el).attr('data-itemid'));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t//обычные флаги\n\t\t$(isMob ? '.mobile-fullsize .card .ch .form-check-input' : '.panel-filter .ch .form-check-input').each(function (i, el) {\n\t\t\tvar itemID = $(el).attr('data-itemid')\n\t\t\tif (itemID > 0 && $.inArray(itemID, charIDs) == -1) {\n\t\t\t\tif ($(el).prop('checked')) {\n\t\t\t\t\tcharIDs.push($(el).attr('data-itemid'));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t//метрики\n\t\t$(isMob ? '.mobile-fullsize .card .b-filter-f-ch' : '.panel-filter .b-filter-f-ch').each(function (i, el) {\n\t\t\tvar $el = $(el);\n\t\t\tvar itemID = $el.attr('data-itemid');\n\t\t\tvar minVal = $('.minVal' + itemID, $el).val();\n\t\t\tvar maxVal = $('.maxVal' + itemID, $el).val();\n\t\t\tvar minValConst = $el.attr('data-min-val');\n\t\t\tvar maxValConst = $el.attr('data-max-val');\n\t\t\tif (parseFloat(minVal) == parseFloat(minValConst) && parseFloat(maxVal) == parseFloat(maxValConst)) return true;\n\t\t\tvar curChar = itemID + \"_[\" + minVal + \"-\" + maxVal + \"]\";\n\t\t\tif (itemID > 0 && $.inArray(itemID, curChar) == -1) {\n\t\t\t\tfCharIDs.push(curChar);\n\t\t\t}\n\t\t});\n\t\t\n\n\t\t$('.mobile-fullsize .card .form-check-input').each(function (i, el) {\n\t\t\tvar itemID = $(el).attr('data-itemid');\n\t\t\tif ($.inArray(itemID, charIDs) !== -1) {\n\t\t\t\t$(el).prop('checked', true)\n\t\t\t\t$(el).trigger('change');\n\t\t\t}\n\t\t});\n\t\t\n\t\tvar catIDs = [];\n\t\tvar checkboxesInCont = $('.b-aside .list-group .form-check .form-check-input');\n\n\t\tif (!filterCont.filter.isEditMode || (filterCont.filter.isEditMode && $(window).width() >= 768)) {\n\t\t\t$(checkboxesInCont).each(function (i, el) {\n\t\t\t\tif ($(el).attr('data-itemid') > 0) {\n\t\t\t\t\tif ($(el).prop('checked')) {\n\t\t\t\t\t\tcatIDs.push($(el).attr('data-itemid'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (filterCont.filter.isEditMode && $(window).width() < 768) {\n\t\t\tcheckboxesInCont = $('.mobEditViewFilterHeader .b-aside-modal .form-check .form-check-input');\n\t\t\t$(checkboxesInCont).each(function (i, el) {\n\t\t\t\tif ($(el).attr('data-itemid') > 0) {\n\t\t\t\t\tif ($(el).prop('checked')) {\n\t\t\t\t\t\tcatIDs.push($(el).attr('data-itemid'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (location.pathname.includes('/offers') && !catIDs.length && (charIDs.length || fCharIDs.length)) {\n\t\t\tcatIDs.push($('.b-aside .list-group .form-check .form-check-input').first().attr('data-itemid'));\n\t\t}\n\n\t\tlet ctuCheckboxes = [...document.querySelectorAll('.category-checkbox')];\n\t\tlet allCtusChecked = ctuCheckboxes.every(e => e.checked);\n\n\t\tif (!allCtusChecked) {\n\t\t\tfor (var ctu of ctuCheckboxes) {\n\t\t\t\tlet ctuId = ctu.getAttribute('data-itemid');\n\t\t\t\tif (ctu.checked && !catIDs.includes(ctuId)) {\n\t\t\t\t\tcatIDs.push(ctuId);\n\t\t\t\t}\n\n\t\t\t\tif (!ctu.checked) {\n\t\t\t\t\tcatIDs = catIDs.filter(e => e != ctuId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar queryWithoutFilters = $('.tum-offers-withoutFilters').length > 0 && $('.tum-offers-withoutFilters').prop(\"checked\");\n\t\tvar paramsString = location.search.slice(1);\n\t\tvar searchParams = new URLSearchParams(paramsString);\n\t\tvar statuses = searchParams.get(\"statuses\") || '';\n\t\tvar tableView = searchParams.get(\"tableView\") || '';\n\n\t\tif (isMob) {\n\t\t\tvar viewMode = $(\".form-check-input[name=view]:checked\").val();\n\t\t\tsetCookie(\"tu-viewMode\", viewMode, 1/24*3);\n\t\t}\n\t\t\n\t\tlet intervals = getFormData(document.getElementById('interval-filters'));\n\t\tif (intervals?.tch?.length) {\n\t\t\tcharIDs = intervals.tch;\n\t\t\tfCharIDs = [];\n\t\t\tisOwnCharID = false;\n\t\t}\n\n\t\tif (intervals?.firmIDs?.length) {\n\t\t\tfirmIDs = intervals.firmIDs;\n\t\t}\n\n\t\tlet intervalFrom = intervals?.interval_from;\n\t\tlet intervalTo = intervals?.interval_to;\n\t\tlet intervalFromDate = intervalFrom && new Date(intervalFrom);\n\t\tlet intervalToDate = intervalTo && new Date(intervalTo);\n\n\t\tif (intervalFromDate && intervalToDate && intervalToDate <= intervalFromDate) {\n\t\t\tintervalToDate = null;\n\t\t}\n\n\t\tif (intervalFromDate && !intervalToDate) {\n\t\t\tintervalToDate = new Date(intervalFromDate);\n\t\t\tintervalToDate.setMonth(intervalToDate.getMonth() + 1);\n\t\t}\n\n\t\tvar datetime = this.getDateTimeFilter(isMob);\n\t\tvar filter = {\n\t\t\tpage: 1,\n\t\t\tfirmPage: 1,\n\t\t\tpageSize: filterCont.filter.pageSize,\n\t\t\tfirmPageSize: filterCont.filter.firmPageSize,\n\t\t\tch: isOwnCharID ? charIDs.join(',') : '',\n\t\t\tfch: isOwnCharID ? fCharIDs.join(',') : '',\n\t\t\ttch: !isOwnCharID ? charIDs.join(',') : '',\n\t\t\ttfch: !isOwnCharID ? fCharIDs.join(',') : '',\n\t\t\tfirmIDs: firmIDs.join(','),\n\t\t\tavailable: available,\n\t\t\tmadeInOurs: madeInOurs,\n\t\t\tstatuses: statuses,\n\t\t\ttableView: tableView,\n\t\t\tpriceFrom: priceFrom,\n\t\t\tpriceTo: priceTo,\n\t\t\tintervalFrom: intervalFromDate && dateFormat(intervalFromDate, 'yyyy-MM-dd HH:mm'),\n\t\t\tintervalTo: intervalToDate && dateFormat(intervalToDate, 'yyyy-MM-dd HH:mm'),\n\t\t\tfirmType: filterCont.defaultFilter.firmType,//'byproducts',\n\t\t\tfilterType: filterCont.defaultFilter.filterType,//'byproducts', //filterType,,\n\t\t\tsort: sort,\n\t\t\tfirmSort: firmSort,\n\t\t\tctuID: filterCont.defaultFilter.ctuID,\n\t\t\tctu: catIDs.join(','),\n\t\t\tquery: filterCont.filter.query,\n\t\t\twithoutFilters: queryWithoutFilters,\n\t\t\ttu: filterCont.filter.tu,\n\t\t\tgeo_lat: this.filter.geo_lat,\n\t\t\tgeo_long: this.filter.geo_long,\n\t\t\tgeo_maxDistance: this.filter.geo_maxDistance,\n\t\t\tdatetimeOpen: datetime.date ? `${datetime.date} ${datetime.time}` : '',\n\t\t\tdatetimeIsReset: filterCont.filter.datetimeIsReset\n\t\t};\n\t\treturn filter;\n\t},\n\tsetDateTimeFilter: function (isMob) {\n\t\tvar date = getUrlParameter('datetime_open');\n\n\t\tif (date) {\n\t\t\tvar arr = date.split(' ');\n\t\t\tvar s_date, s_time;\n\t\t\tif (arr.length > 1) {\n\t\t\t\ts_date = arr[0];\n\t\t\t\ts_time = arr[1];\n\t\t\t} else {\n\t\t\t\ts_date = new Intl.DateTimeFormat('fr-CA', { month: 'numeric', year: 'numeric', day: 'numeric' }).format(new Date());\n\t\t\t\ts_time = new Intl.DateTimeFormat('ru', { hour: 'numeric', minute: 'numeric' }).format(new Date());\n\t\t\t}\n\n\t\t\t$('.tum-open-date').val(s_date);\n\t\t\t$('.tum-open-time').val(s_time);\n\n\t\t\tvar isOpen = getCookie('isOpenNow_manual') == 'true';\n\t\t\tif (isOpen) {\n\t\t\t\t$('input.tum-search-open-input').removeAttr('disabled');\n\t\t\t\t$('.tum-open-manual').prop('checked', true);\n\t\t\t\t$('.tum-open-auto').prop('checked', false);\n\t\t\t} else {\n\t\t\t\t$('input.tum-search-open-input').attr('disabled');\n\t\t\t\t$('.tum-open-auto').prop('checked', true);\n\t\t\t\t$('.tum-open-manual').prop('checked', false);\n\t\t\t}\n\t\t} else if (getCookie('isOpenNow_manual') == 'true') {\n\t\t\tsetCookie('isOpenNow_manual', false);\n\t\t} \n\n\t\tif (isMob) {\n\t\t\t$('.tum-search-open-input').addClass('mob-placeholder');\n\t\t}\n\t},\n\tgetDateTimeFilter: function (isMob) {\n\t\tvar res = {\n\t\t\tdate: '', time: ''\n\t\t};\n\t\tvar self = this;\n\n\t\tif (self.filter.datetimeIsReset) return res;\n\n\t\tvar $wrap = isMob ? $('.mobile-fullsize .card .datetime-wrap') : $('.search-toolbar .search-open-time');\n\n\t\tvar isMobFilterOpen = $('.mobile-fullsize .b-aside-item__top .tum-applyFilters:visible').length;\n\t\tif (isMob && !isMobFilterOpen && $('.search-toolbar .search-open-time .tum-open-date').val()\n\t\t\t|| $('.dropdown-menu.show').length) {\n\t\t\t$wrap = $('.search-toolbar .search-open-time');\n\t\t}\n\n\t\tres.date = $wrap.find('.tum-open-date').val(); \n\t\tres.time = $wrap.find('.tum-open-time').val();\n\n\n\t\tvar isAuto = $('.tum-open-auto', $wrap).prop('checked') == true;\n\t\tvar isManual = $('.tum-open-manual', $wrap).prop('checked') == true;\n\n\t\tif (isAuto) {\n\t\t\tres.date = new Intl.DateTimeFormat('fr-CA', { month: 'numeric', year: 'numeric', day: 'numeric' }).format(new Date());\n\t\t\tres.time = new Intl.DateTimeFormat('ru', { hour: 'numeric', minute: 'numeric' }).format(new Date());\n\t\t}\n\t\tif (!isManual && !isAuto) {\n\t\t\tres.date = '';\n\t\t\tres.time = '';\n\t\t}\n\t\t\n\t\treturn res;\n\t}\n};\n\nwindow.filterCont = filterCont;\nexport default filterCont;\n","/* global tumarket */\n\nimport $ from 'jquery'\nimport \"bootstrap/js/dist/dropdown\";\nimport \"readmore-js\";\nimport searchFilter from \"./filter.js\";\nimport tumGlobal from \"../global.js\";\nimport filterCont from \"./filterCont.js\";\nimport { getUrlParameter } from '../global/url';\nimport { getCookie, setCookie } from '../global/cookie';\nimport { addEventDelegate } from '../global/dom';\n\n$.fn.sortDomElements = (function () {\n\treturn function (comparator) {\n\t\treturn Array.prototype.sort.call(this, comparator).each(function () {\n\t\t\tthis.parentNode.appendChild(this);\n\t\t});\n\t};\n})();\n\nfunction checkCheckboxesAndShowApplyBtn($el) {\n\tvar selectedCheckbox = [];\n\tvar activeCheckbox = [];\n\t$.each($('.b-aside-xs .charactItems .form-check-input:checked, .categoryItems .form-check-input:checked'), function (i, item) {\n\t\tselectedCheckbox.push($(item).attr('data-itemid'));\n\t});\n\t\n\tvar url = new URL(location.href);\n\tvar urlParams = [...url.searchParams];\n\tfor (let param of urlParams) {\n\t\tlet value = param[1];\n\t\tvar ids = value.split(',').filter(e => e);\n\t\tactiveCheckbox = activeCheckbox.concat(ids);\n\t}\n\n\tvar difference = selectedCheckbox.length > activeCheckbox.length ? \n\t\tselectedCheckbox.diff(activeCheckbox) :\n\t\tactiveCheckbox.diff(selectedCheckbox);\n\n\tif (difference.length > 0) {\n\t\t$('.tum-applyFilters', $el.closest('.b-aside-options')).removeClass('d-none');\n\t\t$('.tum-applyFiltersAll').removeClass('d-none');\n\t} else {\n\t\t$('.tum-applyFilters', $el.closest('.b-aside-options')).addClass('d-none');\n\t\t$('.tum-applyFiltersAll').addClass('d-none');\n\t}\n}\n\nfunction _showAsideModal($el) {\n\tif ($(\".has-aside-modal.active\").length > 0) {\n\t\tfilter.hideAsideModal();\n\t}\n\n\tif ($('.tum-flt-gr-items input', $el.closest(\".has-aside-modal\")).length == $('.tum-flt-gr-items input:checked', $el.closest(\".has-aside-modal\")).length\n\t\t&& $('.tum-flt-gr-items input:checked', $el.closest(\".has-aside-modal\")).length != 0)\n\t\t$('.tum-flt-set-all', $el.closest(\".has-aside-modal\")).prop('checked', true);\n\t$el.closest(\".has-aside-modal\").addClass(\"active\");\n\tvar modal = $el.closest(\".has-aside-modal\");\n\n\tvar ch = $el.closest('.group-cont').find('.form-check-input:checked');\n\tvar ids = [];\n\t$.each(ch, function (i, el) {\n\t\tids.push($(el).attr('data-itemID'));\n\t});\n\n\tif ($el.closest('.b-aside').length > 0 && document.URL.indexOf('ch=') != -1 || document.URL.indexOf('tch=') != -1 ||\n\t\tdocument.URL.indexOf('fch=') != -1 || document.URL.indexOf('tfch=') != -1) {\n\t\t$(\".tum-filter-warning\", modal).removeClass(\"d-none\");\n\t}\n\n\tif ($('.b-aside-modal .rdm-dmv-categ').length > 0 && $('.b-aside-modal .rdm-dmv-categ[data-readmore]').length == 0) {\n\t\t$('.b-aside-modal .rdm-dmv-categ').readmore({\n\t\t\tmoreLink: '',\n\t\t\tlessLink: '',\n\t\t\tspeed: 400,\n\t\t\tcollapsedHeight: 15\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.b-aside-modal .rdm-dmv-categ', element => {\n\t\t\t$(element).readmore(\"toggle\");\n\t\t});\n\t}\n}\n\nvar filter = {\n\toptions: {\n\t\t$wrap: $(\".left-side-block\"),\n\t\tlastAppliedModel: {},\n\t\tfilterFieldsCount: 0,\n\t\tshowFilters: false,\n\t\tisMob: $(window).width() < 768,\n\t\tisCategory: location.href.toLowerCase().indexOf(\"/category\") > -1,\n\t\tviewMode: \"\"\n\t},\n\tinit: function (options) {\n\t\tthis.options = $.extend(true, {}, this.options, options);\n\n\t\tif (this.options.showFilters && this.options.isMob) this.options.showFilters = false;\n\n\t\tvar self = this;\n\n\t\t$(\"input[name=tuSort]:checked\").trigger(\"change\");\n\t\t$(\"input[name=firmsSort]:checked\").trigger(\"change\");\n\t\t$('.b-aside-modal_views .form-check:first-child .form-check-input:checked').trigger('change');\n\t\t\n\t\tthis.initViewMode();\n\n\t\t$(\".b-aside-modal .b-aside-modal__content .btn-all\").on(\"click\", function () {\n\t\t\tvar $this = $(this);\n\t\t\tsetTimeout(function () {\n\t\t\t\tif ($this.closest(\".b-aside-modal\").find(\".b-aside-modal__content input:checked\").length !=\n\t\t\t\t\t$this.closest(\".b-aside-modal\").find(\".b-aside-modal__content input\").length) {\n\t\t\t\t\t$this.closest(\".b-aside-modal\").find(\".b-aside-item__top__btns input:not(:disabled)\").prop(\"checked\", false);\n\t\t\t\t} else {\n\t\t\t\t\t$this.closest(\".b-aside-modal\").find(\".b-aside-item__top__btns input:not(:disabled)\").prop(\"checked\", true);\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t});\n\n\t\tself.updateCollapseSummaryVisible(true);\n\t\t\n\t\taddEventDelegate(document, 'click', '.tum-itemToggleFilter', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tvar params = location.search;\n\t\t\tvar url = '';\n\t\t\tvar isReload = false;\n\t\t\tvar switchSearchFilter = $(element).attr('data-filter-reverse-type');\n\n\t\t\tvar arr = location.pathname.slice(1).split('/');\n\t\t\tvar pageType = arr[0].split('-')[0];\n\t\t\tif (arr.length > 2) {\n\t\t\t\tpageType = arr[arr.length - 1];\n\t\t\t}\n\n\t\t\tif (params.length == 0) {\n\t\t\t\tif (switchSearchFilter == 'byctu') {\n\t\t\t\t\tsetCookie('switchSearchFilter_' + pageType, switchSearchFilter);\n\t\t\t\t} else if (switchSearchFilter == 'byproducts') {\n\t\t\t\t\tsetCookie('switchSearchFilter_' + pageType, '');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\turl = location.pathname + '?filter=' + $(element).attr('data-filter-reverse-type');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar filter = searchFilter.getURLParameter('filter');\n\t\t\t\tif (filter) {\n\t\t\t\t\tif (switchSearchFilter == 'byctu') {\n\t\t\t\t\t\tsetCookie('switchSearchFilter_' + pageType, switchSearchFilter);\n\t\t\t\t\t} else if (switchSearchFilter == 'byproducts') {\n\t\t\t\t\t\tsetCookie('switchSearchFilter_' + pageType, '');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsearchFilter.setURLParameter('filter', $(element).attr('data-filter-reverse-type'));\n\t\t\t\t\t\tisReload = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (switchSearchFilter == 'byctu') {\n\t\t\t\t\t\tsetCookie('switchSearchFilter_' + pageType, switchSearchFilter);\n\t\t\t\t\t} else if (switchSearchFilter == 'byproducts') {\n\t\t\t\t\t\tsetCookie('switchSearchFilter_' + pageType, '');\n\t\t\t\t\t} else {\n\t\t\t\t\t\turl = location.pathname + params + '&filter=' + $(element).attr('data-filter-reverse-type');\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isReload) {\n\t\t\t\tlocation.reload();\n\t\t\t} else {\n\t\t\t\tif (url) {\n\t\t\t\t\tlocation.href = url;\n\t\t\t\t} else {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-ctu-change-firm-type-btn', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tlocation.href = location.pathname + '?firm=' + $(element).attr('data-filter-reverse-type') + '&tab=' + $(element).attr('data-filter-tab-href');\n\t\t});\n\n\t\tthis.initCallbacks();\n\n\t\tif (this.options.isMob && !this.options.isCategory) {\n\t\t\tthis.toggleLeftSide();\n\t\t}\n\n\t\t$(\".tum-other-searcha-name-container\").append($(\".tum-other-search-name\").clone());\n\n\t\tthis.init2();\n\t\tthis.initUrlParams();\n\t},\n\tinitUrlParams: function(){\n\t\tif (getUrlParameter('showCtuModal') == '1') {\n\t\t\t$('.tum-mdc-search').removeClass('d-none').addClass('d-inline-block');\n\t\t\tif (!searchFilter.ctuGroupsEnabled()) {\n\t\t\t\tsearchFilter.toggleCtuGroups();\n\t\t\t}\n\n\t\t\tif (!tumGlobal.isMob())$('.b-aside-modal-cat').addClass('large');\n\t\t\tsearchFilter.toggleCtuModal();\n\t\t}\n\t},\n\thideAsideModal: function(modalClass) {\n\t\tlet $modal = $('.has-aside-modal.' + (modalClass || 'active'));\n\t\t$modal.closest(\".has-aside-modal\").removeClass(\"active\");\n\t\t$('.modalActive').removeClass('modalActive');\n\n\t\tsearchFilter.options.arr = [];\n\t\tsearchFilter.options.arr_alt = [];\n\n\t\t$('.search-by-name').val('');\n\t\t//$(\"body\").removeClass(\"modal-open\")\n\t\tvar cont = $modal.closest('.b-aside-modal');\n\n\t\t$.each($('.form-check-input:checked', cont), function (i, item) {\n\t\t\t$('.charactItems .form-check-input[data-itemid=\"' + $(item).attr('data-itemid') + '\"]', cont.closest('.b-aside-options')).prop('checked', true);\n\t\t});\n\n\t\tcheckCheckboxesAndShowApplyBtn(cont);\n\t},\n\t_showAsideModal: function($el) {\n\t\tif ($(\".has-aside-modal.active\").length > 0) {\n\t\t\tthis.hideAsideModal();\n\t\t}\n\t\n\t\tif ($('.tum-flt-gr-items input', $el.closest(\".has-aside-modal\")).length == $('.tum-flt-gr-items input:checked', $el.closest(\".has-aside-modal\")).length\n\t\t\t&& $('.tum-flt-gr-items input:checked', $el.closest(\".has-aside-modal\")).length != 0)\n\t\t\t$('.tum-flt-set-all', $el.closest(\".has-aside-modal\")).prop('checked', true);\n\t\t$el.closest(\".has-aside-modal\").addClass(\"active\");\n\t\tvar modal = $el.closest(\".has-aside-modal\");\n\t\n\t\tvar ch = $el.closest('.group-cont').find('.form-check-input:checked');\n\t\tvar ids = [];\n\t\t$.each(ch, function (i, el) {\n\t\t\tids.push($(el).attr('data-itemID'));\n\t\t});\n\t\n\t\tif ($el.closest('.b-aside').length > 0 && document.URL.indexOf('ch=') != -1 || document.URL.indexOf('tch=') != -1 ||\n\t\t\tdocument.URL.indexOf('fch=') != -1 || document.URL.indexOf('tfch=') != -1) {\n\t\t\t$(\".tum-filter-warning\", modal).removeClass(\"d-none\");\n\t\t}\n\t\n\t\tif ($('.b-aside-modal .rdm-dmv-categ').length > 0 && $('.b-aside-modal .rdm-dmv-categ[data-readmore]').length == 0) {\n\t\t\t$('.b-aside-modal .rdm-dmv-categ').readmore({\n\t\t\t\tmoreLink: '',\n\t\t\t\tlessLink: '',\n\t\t\t\tspeed: 400,\n\t\t\t\tcollapsedHeight: 15\n\t\t\t});\n\t\t\taddEventDelegate(document, 'click', '.b-aside-modal .rdm-dmv-categ', element => {\n\t\t\t\t$(element).readmore(\"toggle\");\n\t\t\t});\n\t\t}\n\t},\n\tshowAsideModal: function($el, event){\n\t\tif ($(\".has-aside-modal.active\").length > 0) {\n\t\t\tthis.hideAsideModal();\n\t\t}\n\n\t\tif (event && $(event.target).hasClass(\"fa-question-circle\")) return false;\n\t\tif ($el.closest(\".b-aside-item__top\").hasClass(\"metric-type\")) return false;\n\t\tvar items = {};\n\t\tvar isCatModal = false;\n\t\tif ($el.hasClass('btn-ch')) {\n\t\t\titems = $el.closest('.group-cont').find('.charact-item-name');\n\t\t} else if ($el.closest('.tum-flt-category-cont').length > 0) {\n\t\t\titems = $el.closest('.b-aside-options').find('.categoryItems .tum-filter-ctuName');\n\t\t\tisCatModal = true;\n\t\t} else {\n\t\t\titems = $el.closest('.b-aside-options').find('.charactItems .charact-item-name');\n\t\t}\n\t\t$el.closest('.group-cont').find('.b-aside-modal').addClass('modalActive');\n\t\t$('.form-check', $el.closest('.group-cont').find('.b-aside-modal.modalActive')).removeClass('hide');\n\t\tif (items) {\n\t\t\t$(items).each(function (i, el) {\n\t\t\t\tvar text = '';\n\t\t\t\tvar text_alt = '';\n\t\t\t\tif (isCatModal) {\n\t\t\t\t\ttext = $('.charact-item-name', $(el)).text().replace('•', '').trim().toLowerCase();\n\t\t\t\t\ttext_alt = $('.charact-item-name', $(el)).attr('data-alttext')?.trim().toLowerCase();\n\t\t\t\t} else {\n\t\t\t\t\ttext = $(el).text().trim().toLowerCase();\n\t\t\t\t\ttext_alt = $(el).attr('data-alttext')?.trim().toLowerCase();\n\t\t\t\t}\n\n\t\t\t\tsearchFilter.options.arr.push(text);\n\t\t\t\tif (text_alt) searchFilter.options.arr_alt.push(text_alt);\n\t\t\t});\n\t\t}\n\t\t_showAsideModal($el);\n\t},\n\texpandCtuModal: function(){\n\t\t$('.b-aside-modal-cat').toggleClass('large');\n\t},\n\t_showFiltersAsideModal: function(){\n\t\t_showAsideModal($('.tum-filter-wrap .btn-show'));\n\t\t$(\".b-aside-itemCats\").readmore({\n\t\t\tmoreLink: '',\n\t\t\tlessLink: '',\n\t\t\tspeed: 400,\n\t\t\tcollapsedHeight: 35\n\t\t});\n\t},\n\t_toggleFilters_desktop: function(){\n\t\tthis.toggleLeftSide();\n\t\ttumGlobal.highlight($('.b-aside-xs'), 3000);\n\t},\n\t_toggleFilters_mob: function(value){\n\t\tthis.hideAsideModal();\n\n\t\t$('.filterModal-container').toggleClass('active', value);\n\t\t$('.filterModal-container .b-aside-modal').toggleClass('modalActive', value);\n\t},\n\ttoggleFilters: function(){\n\t\t\n\t\tthis.hideAsideModal('ctuModal-container');\n\n\t\tif (tumGlobal.isMob()) {\n\t\t\tthis._toggleFilters_mob();\n\t\t} else {\n\t\t\tthis._toggleFilters_desktop();\n\t\t}\n\t},\n\t//всё, что запускается в init2, раньше валялось где попало вне компонента.\n\t//на прайсе (/firm/*/offers) не нужно инициализировать данный компонент в целом, но нужно запустить эту функцию\n\tinit2: function(){\n\t\tvar self = this;\n\n\t\taddEventDelegate(document, 'click', \".b-aside-modal .b-aside-item__top__btns .btn-all\", element => {\n\t\t\tvar isChecked = $(element).prop(\"checked\");\n\t\t\tself.setModalFilter($(element), isChecked);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-filter-clear-item', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tif ($(element).hasClass('tum-filter-clear-price')) {\n\t\t\t\tfilterCont.defaultFilter.priceClear = true;\n\t\t\t}\n\t\t\tself.clearFilterItem($(element));\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \"[title]\", element => {\n\t\t\t$(element).trigger('blur');\n\t\t})\n\t\n\t\t$(document).on(\"shown.bs.modal\", function () {\n\t\t\t$(\".ui-tooltip\").remove();\n\t\t});\n\t\n\t\t$('.dropdown-toggle').dropdown();\n\t\n\t\t$(\".view-toggler\").on(\"click\", function () {\n\t\t\tvar type = $(this).data(\"type\");\n\t\t\tfilter.setViewMode(type);\n\t\t});\n\t\n\t\t$(\".b-cropped-text .load-more\").on(\"click\", function (e) {\n\t\t\te.preventDefault();\n\t\n\t\t\tvar $wrap = $(this).closest(\".b-cropped-text\");\n\t\t\t$(this).remove();\n\t\t\t$(\".more\", $wrap).show();\n\t\t});\n\t\t\n\t\t$('.b-filter-price__input').on('keyup', function () {\n\t\t\t$(this).val($(this).val().replace(/[^\\d.]/g, ''));\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.b-aside-item__title .font-weight-bold.text-uppercase.tum-light-grey', element => {\n\t\t\t$(element).closest(\"span.option\").find(\".b-aside-itemToggleView\")[0]?.click();\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.b-aside-itemToggleView, .b-aside-itemShowFilter', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tfilter.toggleLeftSide();\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.b-aside-itemShowCats', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tfilter.toggleLeftSide();\n\t\t\ttumGlobal.highlight($('.b-aside'), 2000);\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.b-aside-itemShowSearch', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tfilter.toggleLeftSide();\n\t\t\tif ($('.b-aside-search-min:visible').length > 0) {\n\t\t\t\t$('.b-aside-search-min:visible .b-aside-searchBtn')[0]?.click();\n\t\t\t}\n\n\t\t\ttumGlobal.highlight($('.tum-filter-search'), 2000);\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.b-aside-itemShowFilterBlock, .tu-show-filters', () => {\n\t\t\timport(\"../searchMenu.js\").then(({tum_searchMenu}) => {\n\t\t\t\ttum_searchMenu.toggleMenu('hide');\n\t\t\t\tself.toggleFilters();\n\t\t\t});\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.b-aside-itemToggleFilter', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$(element).toggleClass('fa-toggle-on fa-toggle-off');\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.tum-showCloseCats', (element, e) => {\n\t\t\te.preventDefault();\n\n\t\t\tself.toggleFilters();\n\n\t\t\tif (!tumGlobal.isMob()) {\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.tum-filter-closeCats').offset().top - 150\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$('.tum-closeCats-mobShow')[0]?.click();\n\t\t\t\tsetTimeout(() => self.scrollMobFiltersToBottom(), 1000);\n\t\t\t}\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.tum-showHiddenGroups', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$(element).addClass('d-none');\n\t\t\t$('.tum-hideHiddenGroups, .group-cont-hidden').removeClass('d-none');\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-hideHiddenGroups', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$(element).addClass('d-none');\n\t\t\t$('.tum-showHiddenGroups').removeClass('d-none');\n\t\t\t$('.group-cont-hidden').addClass('d-none');\n\t\t});\n\n\t\t$(\".b-aside-itemCats\").readmore({\n\t\t\tmoreLink: '',\n\t\t\tlessLink: '',\n\t\t\tspeed: 400,\n\t\t\tcollapsedHeight: 35\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".search-showByName\", () => {\n\t\t\tlet elem = $(window).width() > 768 ? '.firm-content' : '.b-product';\n\t\t\ttumGlobal.highlight($(elem), 500);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".search-showByContacts, .search-showByAddress\", () => {\n\t\t\ttumGlobal.highlight($(\".tum-firms-alterFilterWrap\"), 500);\n\t\t});\n\t\n\t\tsearchFilter.wrapAnnotation();\n\n\t\t(function () {\n\t\n\t\t\tvar iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n\t\n\t\t\tif (iOS) {\n\t\t\t\t$('body').addClass('iOS-device');\n\t\t\t}\n\t\n\t\t\tvar scrollPosition;\n\t\n\t\t\t$('.modal').on('show.bs.modal', function () {\n\t\t\t\tscrollPosition = $(window).scrollTop();\n\t\t\t\t$('.iOS-device').css('top', -scrollPosition);\n\t\t\t});\n\t\n\t\t\t$('.modal').on('hide.bs.modal', function () {\n\t\t\t\t$('.iOS-device').removeClass('modal-open');\n\t\t\t\t$('.iOS-device').css('top', 0);\n\t\t\t\t$(document).scrollTop(scrollPosition);\n\t\t\t});\n\t\n\t\t})();\n\n\t\t/* ASIDE MODAL */\n\t\t$('.btn-ch, .group-name, .categoryItems span.disabled-detector, .tum-flt-category-cont button.text-primary').on('click', function (e) {\n\t\t\tself.showAsideModal($(this), e);\n\t\t});\n\n\t\taddEventDelegate(document, 'change', \".charactItems .form-check .form-check-input, .categoryItems .form-check-input, .b-aside-modal .form-check-input\", element => {\n\t\t\tvar dataItemID = $(element).attr(\"data-itemid\") || \"\";\n\t\t\tvar isCheck = $(element).prop(\"checked\");\n\t\t\t$(\"input[type='checkbox'][data-itemid='\" + dataItemID + \"']\").prop(\"checked\", isCheck);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.charactItems .form-check .form-check-input, .categoryItems .form-check-input', element => {\n\t\t\tcheckCheckboxesAndShowApplyBtn($(element));\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-filter-wrap .b-aside-item__top\", element => {\n\t\t\tsearchFilter.options.arr = [];\n\t\t\tsearchFilter.options.arr_alt = [];\n\t\t\tif (!$(element).hasClass('in')) {\n\t\t\t\tvar items = $('.b-aside-modal__content .charact-item-name', $(element).closest('.card'));\n\t\t\t\t$(items).each(function (i, el) {\n\t\t\t\t\tvar node = $(el).contents().get(0);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\tsearchFilter.options.arr.push($(el).contents().get(0).nodeValue.trim().toLowerCase());\n\t\t\t\t\t\tvar alttext= $(el).attr('data-alttext')?.trim().toLowerCase();\n\t\t\t\t\t\tif (alttext) searchFilter.options.arr_alt.push(alttext);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.btn-show', element => {\n\t\t\t_showAsideModal($(element));\n\t\t\t$(\".b-aside-itemCats\").readmore({\n\t\t\t\tmoreLink: '',\n\t\t\t\tlessLink: '',\n\t\t\t\tspeed: 400,\n\t\t\t\tcollapsedHeight: 35\n\t\t\t});\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.mdl-close', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$(element).removeClass('modalActive');\n\t\t\tself.hideAsideModal();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.hideAsideModal', () => {\n\t\t\tself.hideAsideModal();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".b-aside-modal .btn-enter\", function () {\n\t\t\tself.hideAsideModal();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-expandCtuModal', () => this.expandCtuModal());\n\t\t\n\t\taddEventDelegate(document, 'click', \".b-aside-modal .collapse-header\", (element, e) => {\n\t\t\tif ($(e.target).closest(\".selected-items\").length > 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\n\t\t\t$(element).toggleClass(\"in\");\n\t\t\tif ($(element).hasClass(\"in\")) {\n\t\t\t\t$(element).next(\".b-aside-modal__content\").slideDown();\n\t\t\n\t\t\t\tvar cardPosition = $('.tum-flt-aside-modal-title', $(element)).offset().top;\n\t\t\t\tvar wH = window.innerHeight;\n\t\t\t\tif (cardPosition >= (wH - 70)) {\n\t\t\t\t\tvar scrollVal = $('.mobile-fullsize .b-aside-modal__content').scrollTop() + 70;\n\t\t\n\t\t\t\t\t$('.mobile-fullsize .b-aside-modal__content').animate({\n\t\t\t\t\t\tscrollTop: scrollVal\n\t\t\t\t\t}, 'slow');\n\t\t\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$(element).next(\".b-aside-modal__content\").slideUp();\n\t\t\t}\n\t\t});\n\t\t\n\t\t$(\".selected-items .clear-value\").on(\"click\", function () {\n\t\t\tif ($(this).attr('data-slidername') == 'metric') {\n\t\t\t\tsearchFilter.resetMetric($(this));\n\t\t\t}\n\t\t\tif ($(this).attr('data-slidername') == 'price') {\n\t\t\t\tsearchFilter.resetPrice($(this));\n\t\t\t}\n\t\t\tif ($(this).attr('data-code') == 'datetime_open') {\n\t\t\t\tfilterCont.filter.datetimeOpen = '';\n\t\t\t\tfilterCont.filter.datetimeIsReset = true;\n\t\t\t\tsetCookie(\"isOpenNow_manual\", false);\n\t\t\t\t\n\t\t\t\t$('.tum-open-auto').prop('checked', false);\n\t\t\t\t$('.tum-open-manual').prop('checked', false);\n\t\t\t\t$('.tum-search-open-input').val('');\n\t\t\t}\n\t\t\tvar $wrap = $(this).closest(\"div\");\n\t\t\t$(\".value\", $wrap).text(\"\");\n\t\t\t$wrap.slideUp();\n\t\t\t$(this).closest(\".card\").find(\".form-check-input\").prop(\"checked\", false);\n\t\t\t$(this).closest(\".card\").find(\".form-check-input.tum-def-val\").prop(\"checked\", true);\n\t\t\n\t\t\t//чистим query для моб фильтра\n\t\t\tif ($(this).hasClass('tum-filter-clear-query-mob')) {\n\t\t\t\t$('.tum-filter-search-text').val('');\n\t\t\t\tfilterCont.defaultFilter.query = '';\n\t\t\t\tfilterCont.filter.query = '';\n\t\t\t}\n\t\t});\n\t\t\n\t\t$(\".b-aside-modal.mobile-fullsize\").on(\"change\", \".form-check-input\", function () {\n\t\t\tvar $card = $(this).closest(\".card\");\n\n\t\t\tif ($(this).closest('.datetime-wrap').length && $card.find(\".form-check-input:checked\").length == 2) {\n\t\t\t\tvar idName = $(this).parent().find('input').attr('id');\n\t\t\t\t$card.find(`.form-check-input:checked:not(#${idName})`).prop('checked', false);\n\t\t\t}\n\n\t\t\tvar values = $card.find(\".form-check-input:checked\").map(function () {\n\t\t\t\tvar txt = $(this).parent().find('.charact-item-name').text();//.split(' ')[0];\n\t\t\t\ttxt = getChStr(txt, filterCont.defaultFilter.cropChNameCount);\n\t\t\t\tvar inputTXT = '';\n\t\t\t\tif (txt) {\n\t\t\t\t\tinputTXT = txt;\n\t\t\t\t} else {\n\t\t\t\t\tvar $parent = $(this).parent();\n\t\t\t\t\tinputTXT = $parent.text().trim();\n\t\t\t\t\tif ($parent.find('input').attr('data-code') == 'auto') {\n\t\t\t\t\t\tinputTXT = 'Сейчас';\n\t\t\t\t\t}\n\t\t\t\t\telse if ($parent.find('input').attr('data-code') == 'manual') {\n\t\t\t\t\t\tvar date = $(this).closest('.datetime-wrap').find('.tum-open-date').val();\n\t\t\t\t\t\tvar time = $(this).closest('.datetime-wrap').find('.tum-open-time').val();\n\t\t\t\t\t\tif (date && time) {\n\t\t\t\t\t\t\tinputTXT = `${date} ${time}`;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn inputTXT;\n\t\t\t}).toArray();\n\t\t\n\t\t\tif (values.length > 0) {\n\t\t\t\t$(\".selected-items\", $card).slideDown()\n\t\t\t\tif (values.length > 2) {\n\t\t\t\t\t$(\".selected-items .value:first\", $card).text(values[0] + ', ' + values[1] + ' + ещё ' + (values.length - 2));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(\".selected-items .value:first\", $card).text(values.join(\", \"));\n\t\t\t\t}\n\t\t\t\t$(\".selected-items .value\", $card).not(':first').remove();\n\t\t\t\t$(\".selected-items .clear-value\", $card).not(':first').remove();\n\t\t\t} else {\n\t\t\t\t$(\".selected-items\", $card).slideUp()\n\t\t\t}\n\t\t\n\t\t\tfunction getChStr(str, cropCount) {\n\t\t\t\tvar res = '';\n\t\t\t\tvar word = '';\n\t\t\t\tvar strCount = str ? str.trim().length : 0;\n\t\t\t\tif (strCount > cropCount) {\n\t\t\t\t\tvar nextChar = str.trim().substring(cropCount, cropCount + 1);\n\t\t\t\t\tif (nextChar == ' ') {\n\t\t\t\t\t\tword = str.trim().substring(0, cropCount);\n\t\t\t\t\t\tres = word + '..';\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tword = str.trim().substring(0, cropCount);\n\t\t\t\t\t\tres = word + '..';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tres = str;\n\t\t\t\t}\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\n\t\tlet asideModalClasses = [\n\t\t\t'.b-aside-modal', \n\t\t\t'.b-aside-modal-cat', \n\t\t\t'.tum-aside-showCategories', \n\t\t\t'.tu-show-cats', \n\t\t\t'.offers-showCtus', \n\t\t\t'.cat-more-info',\n\t\t\t'.btn-ch',\n\t\t\t'.tu-show-filters',\n\t\t\t'.tum-showCloseCats'\n\t\t];\n\n\t\ttumGlobal.onClickOutside($(asideModalClasses.join(', ')), () => searchFilter.toggleCtuModal(false));\n\t},\n\tscrollMobFiltersToBottom: function(){\n\t\tlet container = $('.b-aside-modal.mobile-fullsize .b-aside-modal__content');\n\t\tcontainer.scrollTop(container.prop('scrollHeight'));\n\t},\n\tinitCallbacks: function () {\n\t\taddEventDelegate(document, 'animationend', \".left-side-block\", () => {\n\t\t\tthis.options.showFilters = !this.options.showFilters;\n\t\t});\n\t},\n\tinitViewMode: function() {\n\t\tvar viewMode = getCookie(\"tu-viewMode\") || (this.options.isMob ? \"mini\" : \"grid\");\n\t\tlet el = $(\"input[name=view][value=\" + viewMode + \"]\")[0];\n\t\tel.click();\n\t\tel.dispatchEvent(new Event('change', { bubbles: true }));\n\n\t\t$(\".view-toggler.active\").removeClass(\"active\");\n\t\t$(\".view-toggler[data-type=\" + viewMode + \"]\").addClass(\"active\");\n\n\t\tthis.options.viewMode = viewMode;\n\t},\n\tsetViewMode: function(mode) {\n\t\tsetCookie(\"tu-viewMode\", mode, 1/24*3);\n\t\tthis.updateViewModeIcon(mode);\n\t\tlocation.reload();\n\t},\n\tupdateViewModeIcon: function(mode){\n\t\tvar $elem = $('.viewMode-select');\n\t\t\n\t\tlet icons = tumarket.searchToolbar.icons;\n\t\t$elem.removeClass(Object.values(icons).join(\" \"));\n\n\t\t$elem.addClass(icons[mode]);\n\t},\n\tupdateSortType: function(){\n\t\tlet sortCode = filterCont.filter.sort;\n\t\tlet firmSortCode = filterCont.filter.firmSort;\n\t\tlet defaultSortCode = tumarket.searchToolbar.defaultSort;\n\t\tlet defaultFirmSortCode = tumarket.searchToolbar.defaultFirmSort;\n\t\tlet sortTypes = tumarket.searchToolbar.productSortOptions;\n\t\tlet firmSortTypes = tumarket.searchToolbar.firmSortOptions;\n\n\t\tlet sortType = (!sortCode || sortCode == defaultSortCode) ? 'Сортировка' : sortTypes.find(e => e.code == sortCode).name;\n\t\tlet firmSortType = (!firmSortCode || firmSortCode == defaultFirmSortCode) ? 'Сортировка' : firmSortTypes.find(e => e.code == firmSortCode).name;\n\n\t\t$('.search-productsSort .name').html(sortType);\n\t\t$('.search-firmsSort .name').html(firmSortType);\n\t},\n\t_isFilterShown: function(){\n\t\treturn $('.left-side-block').hasClass('d-none');\n\t},\n\t_toggleFilter: function(){\n\t\t$(\".right-side-block\").toggleClass('col-lg-9 col-md-8');\n\n\t\t//if (!this.options.isMob) {\n\t\t$('.left-side-block').toggleClass('d-none');\n\t\t//}\n\n\t\t$(\".b-aside-itemShowFilterWrap\").toggleClass('d-none');\n\t\t$('.search-showFilters').toggleClass('d-md-block');\n\t},\n\ttoggleLeftSide: function () {\n\t\tvar self = this;\n\t\t\n\t\tif (!this.options.isMob) {\n\t\t\t$(\".left-side-block\").addClass('animated');\n\t\t}\n\n\t\t$(\".left-side-block\").toggleClass('fadeInLeft fadeOutLeft');\n\t\tif (this._isFilterShown()) {\n\t\t\tthis._toggleFilter();\n\t\t\tsetTimeout(function () {\n\t\t\t\tsearchFilter.map?.map?.container.fitToViewport()\n\t\t\t}, 500);\n\t\t} else {\n\t\t\tsetTimeout(function () {\n\t\t\t\tself._toggleFilter();\n\t\t\t\tself.options.showFilters = !self.options.showFilters;\n\t\t\t\tsearchFilter.map?.map?.container.fitToViewport()\n\t\t\t}, 500);\n\t\t}\n\t},\n\tupdateFilterSelectedValues: function () {\n\t\t$(\".b-aside-modal.mobile-fullsize .card\", this.options.$wrap).each(function () {\n\t\t\tvar $card = $(this);\n\t\t\tvar values = $card.find(\".form-check-input:checked\").map(function () {\n\t\t\t\treturn $(this).parent().text().trim();\n\t\t\t}).toArray();\n\n\t\t\tif (values.length > 0) {\n\t\t\t\t$(\".selected-items\", $card).slideDown();\n\t\t\t\t$(\".selected-items .value\", $card).text(values.join(\", \"));\n\t\t\t} else {\n\t\t\t\t$(\".selected-items\", $card).slideUp();\n\t\t\t}\n\t\t});\n\t},\n\tgetModel: function ($prioritySource) {\n\t\tvar res = {};\n\n\t\tfunction getData($el, includeEmpty) {\n\t\t\tvar res = {};\n\t\t\t$(\"input[name]\", $el).each(function () {\n\t\t\t\tvar type = $(this).attr(\"type\");\n\t\t\t\tvar name = $(this).attr(\"name\");\n\t\t\t\tvar value = \"\";\n\n\t\t\t\tif (name.length == 0)\n\t\t\t\t\treturn true;\n\n\t\t\t\tvar isArray = type == \"checkbox\" && $(\"input[name='\" + name + \"']\", $el).length > 0;\n\n\t\t\t\tif (type == 'checkbox' || type == 'radio') {\n\t\t\t\t\tif ($(this).prop(\"checked\")) {\n\t\t\t\t\t\tvalue = $(this).val();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (value.length == 0) {\n\t\t\t\t\tif (includeEmpty && !(name in res)) {\n\t\t\t\t\t\tres[name] = isArray ? [] : \"\";\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\tif (name in res) {\n\t\t\t\t\t\tif (res[name].indexOf(value) == -1)\n\t\t\t\t\t\t\tres[name].push(value);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tres[name] = [value];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tres[name] = value;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn res;\n\t\t}\n\n\t\tres = getData(this.options.$wrap);\n\n\t\t// Override general data using priority source\n\t\tif ($prioritySource && $prioritySource.length > 0) {\n\t\t\tvar priorityData = getData($prioritySource, true);\n\t\t\tfor (var n in priorityData) {\n\t\t\t\tres[n] = priorityData[n];\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t},\n\tapplyModel: function (model) {\n\t\tvar $wrap = this.options.$wrap;\n\t\t//this.resetAllFilter();\n\t\tvar isMob = window.innerWidth < 768;\n\t\tif (isMob) {\n\t\t\t$(\".categoryItems input\").prop('checked', false);\n\t\t}\n\n\t\tfor (let item in model) {\n\t\t\tvar $input = $(\"input[name='\" + item + \"']\", $wrap);\n\t\t\tif ($input.length == 0)\n\t\t\t\tcontinue;\n\n\t\t\tvar type = $input.first().attr(\"type\");\n\t\t\tvar value = model[item];\n\t\t\tvar isArray = typeof (value) === \"object\";\n\n\t\t\tif (type == \"checkbox\" || type == \"radio\") {\n\t\t\t\tif (type == \"checkbox\" && isArray) {\n\t\t\t\t\t$.each(value, function (i, item) {\n\t\t\t\t\t\t$input.filter(function () {\n\t\t\t\t\t\t\treturn $(this).val() == item;\n\t\t\t\t\t\t}).prop(\"checked\", true);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if (type == \"radio\") {\n\t\t\t\t\t$input.filter(function () {\n\t\t\t\t\t\treturn $(this).val() == value;\n\t\t\t\t\t}).prop(\"checked\", true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.updateFilterFieldsCount(model);\n\t\tthis.options.lastAppliedModel = model;\n\t},\n\tresetMobileFilter: function () {\n\t\t$(\".b-aside-modal.mobile-fullsize input\").prop(\"checked\", false);\n\t\tthis.updateFilterSelectedValues();\n\t},\n\tresetAllFilter: function () {\n\t\t$(\"input\", this.options.$wrap).prop(\"checked\", false);\n\t\tvar isMob = window.innerWidth < 768;\n\t\tif (isMob) {\n\t\t\tvar t = $('.selected-items:visible');\n\t\t\t$.each(t, function (i, el) {\n\t\t\t\tif ($('i+div.value', el).text().length > 0) {\n\t\t\t\t\t$('.clear-value', el)[0]?.click();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t$.each($('.f-ch-slider:visible'), function (i, el) {\n\t\t\t\tsearchFilter.resetMetric($(el));\n\t\t\t});\n\t\t\tsearchFilter.resetPrice($('.tum-filter-clear-item-cont[data-itemid=0]'));\n\t\t\tsearchFilter.applyFilters();\n\t\t}\n\t},\n\tresetModalFilter: function ($el) {\n\t\tthis.setModalFilter($el, false);\n\t},\n\tsetModalFilter: function ($el, val) {\n\t\t$el = $el.closest(\".b-aside-modal\");\n\t\t$(\".b-aside-modal__content input:not(:disabled)\", $el).each(function () {\n\t\t\tvar dataItemID = $(this).attr(\"data-itemid\");\n\t\t\t$(\"input[data-itemid='\" + dataItemID + \"']\").prop(\"checked\", val);\n\t\t});\n\t},\n\tupdateFilterFieldsCount: function (model) {\n\t\tvar filterFieldsCount = 0;\n\t\tfor (let item in model) {\n\t\t\tvar index = item.indexOf(\"sort\");\n\t\t\tif (index == -1 || index > 0) {\n\t\t\t\tif (typeof (model[item]) == 'object') {\n\t\t\t\t\tfilterFieldsCount += model[item].length;\n\t\t\t\t} else {\n\t\t\t\t\tfilterFieldsCount++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.options.filterFieldsCount = filterFieldsCount;\n\t\t//$(\".filter-fields-count\", this.options.$wrap).text(filterFieldsCount);\n\t},\n\tupdateCollapseSummaryVisible: function (isFirst) {\n\t\tvar elm = document.getElementById('collapseSummary');\n\t\tif (!elm) return false;\n\t\tvar $elm = $('.collapseSummaryClass');\n\n\t\tvar maxCollapseHeight = Math.ceil(parseFloat($elm.attr('data-height')));\n\t\tvar $elmLink = $('.collapseSummaryLink');\n\t\tvar sH = Math.ceil(parseFloat(elm.scrollHeight));\n\t\tvar iH = Math.ceil(parseFloat($('#collapseSummary').innerHeight()));\n\t\tvar isNoCollapse = !$elm.hasClass('collapse');\n\n\t\tif ((sH > iH + 1) && (isFirst || !isNoCollapse)) {// Contains hidden content!\n\t\t\t$elmLink.removeClass('d-none');\n\t\t}\n\t\telse if ((isNoCollapse) || (sH == maxCollapseHeight) || sH == 0) {\n\t\t\t$elmLink.addClass('d-none');\n\t\t}\n\t},\n\t/*\n\t\tclearAllFilter: function () {\n\t\n\t\t\tfilter.resetAllFilter();//sidebar\t\t\n\t\t\tvar model = filter.getModel();\n\t\t\tfilter.applyModel(model);\n\t\n\t\t\t$('.tum-filter-clear-item-cont').remove();\n\t\t\t//$('.tum-filter-clear-all-cont').addClass('d-none');\n\t\t\t$('.filter-fields-count').text(0);\n\t\t\tfilter.updateCollapseSummaryVisible(false);\n\t\t},\n\t*/\n\tclearFilterItem: function (elm) {\n\t\tvar cont = elm.closest('.collapseSummaryClass');\n\t\tif (elm.hasClass('tum-filter-clear-ctu')) {\n\t\t\t$('.tum-filter-cats input[type=\"checkbox\"]').prop(\"checked\", false);\n\t\t}\n\t\tif (elm.attr('data-itemid') == 0) {\n\t\t\tsearchFilter.resetPrice($(elm));\n\t\t}\n\t\tif (elm.attr('data-slide') == 'metric') {\n\t\t\tsearchFilter.resetMetric($(elm));\n\t\t}\n\t\tif (elm.attr('data-itemid') == 'isAvailable') {\n\t\t\t$(searchFilter.elements.search + ' .isAvailable').prop('checked', false);\n\t\t\t$(searchFilter.elements.search + ' .isAvailable').trigger('change');\n\t\t}\n\t\tif (elm.attr('data-itemid') == 'madeInOurs') {\n\t\t\t$(searchFilter.elements.search + ' .madeInOurs').prop('checked', false);\n\t\t\t$(searchFilter.elements.search + ' .madeInOurs').trigger('change');\n\t\t}\n\t\t$('.tum-filter-clear-item-cont[data-itemid=\"' + elm.attr('data-itemid') + '\"]').remove();\n\n\t\tif (elm.hasClass('tum-filter-statusesCTU')) {\n\t\t\t$('.tum-filter-statuses .b-aside-modal .tum-flt-gr-items .form-check-input:checked').prop('checked', false);\n\t\t\t$('.tum-filter-statuses .selected-filter-fields-count').removeClass('font-weight-bold tum-dark-red');\n\t\t\t$('.tum-filter-statuses .selected-filter-fields-count .filter-fields-count').text('0');\n\t\t\t$(\".tum-filter-statuses .b-aside-modal .btn-set-filter\")[0]?.click();\n\t\t} else {\n\t\t\tvar cnt = cont.find('.tum-filter-clear-item-cont').length;\n\t\t\tif (cnt == 0) {\n\t\t\t\t$('.tum-filter-clear-all-cont').addClass('d-none');\n\t\t\t}\n\t\t\tvar fltrCount = cnt > 0 ? cnt : \"\";\n\t\t\t$('.filter-fields-count').html(fltrCount);\n\t\t\tif (cnt > 0 && !$('.filter-fields-count').hasClass(\"tum-bg-dark-red\")) {\n\t\t\t\t$('.filter-fields-count').addClass(\"tum-bg-dark-red\");\n\t\t\t} else if (cnt == 0) {\n\t\t\t\t$('.filter-fields-count').removeClass(\"tum-bg-dark-red\");\n\t\t\t}\n\t\t\t$('.form-check-input[data-itemid=\"' + elm.attr('data-itemid') + '\"]').prop('checked', false);\n\t\t}\n\n\t\tfilter.updateCollapseSummaryVisible(false);\n\t\tsearchFilter.applyFilters();\n\t},\n\tclearFilterQuery: function () {\n\t\tlocation.href = location.pathname;\n\t}\n};\n\nexport default filter;","/* global tumarket */\n\nimport { addEventDelegate } from \"./dom\";\nimport { distinct, toBool } from \"./util\";\n\n/**\n * Gets data from a container with a bunch of input fields\n * @param {Element} form\n * @param {boolean} changedOnly\n */\nfunction getFormData(form, changedOnly) {\n if (!form) return null;\n let result = {};\n\n for (let element of form.querySelectorAll('input, select, textarea, [data-tum-toggle]')) {\n if (element.matches('[data-select], [data-form-ignore]')) continue;\n\n let name = element.getAttribute('name');\n\n if (!name) continue;\n\n if (element.matches('[data-tum-toggle]')) {\n let name = element.dataset.name;\n if (name) {\n result[name] = element.matches('.fa-toggle-on');\n }\n\n continue;\n }\n\n if (element.matches('input[type=\"checkbox\"]')) {\n if (!element.value) {\n result[name] = element.checked;\n } else if (element.checked) {\n if (result[name]) result[name].push(element.value);\n else result[name] = [element.value];\n }\n \n continue;\n }\n\n if (element.matches('input[type=\"radio\"]')) {\n if (!element.checked) continue;\n\n result[name] = element.value;\n continue;\n }\n\n if (element.matches('input[type=\"datetime-local\"]')) {\n if (changedOnly && !element.matches('[data-form-selected]')) continue;\n result[name] = element.value.replace('T', ' ') || element.dataset.default || null;\n continue;\n }\n\n if (changedOnly && !element.matches('[data-form-selected]')) continue;\n\n if (element.matches('[data-range-from]') \n && element.closest('[data-form-range-ignore-limit]')\n && element.min == element.value\n ) {\n result[`__${name}_limit`] = true;\n }\n\n if (element.matches('[data-range-to]') \n && element.closest('[data-form-range-ignore-limit]')\n && element.max == element.value\n ) {\n result[`__${name}_limit`] = true;\n }\n\n let hasValueAttr = element.matches('[data-value]');\n\n let value = hasValueAttr ? (element.dataset.value || element.dataset.default || element.value || null) :\n (element.value || element.dataset.default || null);\n\n result[name] = value;\n }\n\n return result;\n}\n\n/**\n * Gets data from a container with a bunch of input fields\n * @param {object} data \n */\nfunction submitFormData(data) {\n let url = new URL(location.href);\n url.search = \"\";\n for (let item in data) {\n if (item.startsWith('__')) continue;\n\n if (Array.isArray(data[item])) {\n if (data[item].length) url.searchParams.set(item, distinct(data[item]).join(','));\n continue;\n }\n\n if (data[item]) url.searchParams.set(item, data[item]);\n }\n\n location.href = url.toString();\n}\n\n/**\n * \n * @param {string} source \n * @param {string} target \n */\nfunction patchForm(source, target) {\n let sourceForm = document.getElementById(source);\n let targetForm = document.getElementById(target);\n let sourceData = getFormData(sourceForm);\n let targetData = getFormData(targetForm);\n let mergedData = Object.assign({}, sourceData, targetData);\n\n let targetFields = targetForm.querySelectorAll('input, textarea');\n for (let field of targetFields) {\n fillFormField(field, mergedData);\n }\n}\n\n/**\n * \n * @param {HTMLElement} field \n * @param {object} data \n * @returns \n */\nfunction fillFormField(field, data){\n if (field.matches('input[type=\"checkbox\"]')) {\n if (Array.isArray(data[field.name])) {\n let fieldValue = data[field.name].some(e => e.toString() == field.value);\n field.checked = fieldValue;\n return;\n } else {\n let fieldValue = toBool(data[field.name]) || false;\n field.checked = fieldValue;\n return;\n }\n }\n\n if (field.matches('input[type=\"radio\"]')) {\n let fieldValue = data[field.name] == field.value || false; \n field.checked = fieldValue;\n return;\n }\n\n if (field.matches('input[type=\"datetime-local\"]')) {\n let fieldValue = data[field.name]?.replace(' ', 'T') || '';\n field.value = fieldValue;\n return;\n }\n\n //берем .getAttribute('value') вместо .value, т.к. у type=\"color\" почему-то .value сам не заполняется\n if (data[field.name] === 0) data[field.name] = '0';\n let value = data[field.name] || field.value || field.getAttribute('value') || '';\n field.value = value;\n}\n\nfunction initFormUtils(){\n addEventDelegate(document, 'click', '[data-submit-form]', element => {\n let forms = element.dataset.target ? [...document.querySelectorAll(element.dataset.target)] : [element.closest('form')];\n let data = {};\n for (let form of forms) {\n Object.assign(data, getFormData(form));\n }\n\n let callback = element.dataset.callback;\n if (callback) data = tumarket.callbacks[callback];\n\n submitFormData(data);\n });\n}\n\nwindow.getFormData = getFormData;\n\nexport { getFormData, submitFormData, patchForm, initFormUtils };\n","import * as $ from \"jquery\";\nimport * as htmx from \"htmx.org\";\nimport \"bootstrap/js/dist/popover\";\nimport { addEventDelegate } from \"./dom\";\nimport { isMob } from \"./util\";\nimport { showDialog } from \"./dialog\";\n\nlet bottomModalInitialized = false;\n\nlet popoverSelectors = [\n '[data-toggle=\"popover\"]',\n '.tu-popover',\n '.poptitle',\n '.tum-unauthorized-hint',\n '.map-link-tum-popover'\n]\n\n/**\n * \n * @param {HTMLElement} element \n */\nfunction closeAllPopoversExcept(element) {\n let popovers = [...document.querySelectorAll(popoverSelectors.join(', '))].filter(e => e != element);\n for (let popover of popovers) {\n $(popover).popover('hide');\n }\n}\n\nfunction initPopovers(){\n addEventDelegate(document, 'click', '[data-dismiss=popover]', element => {\n $('.modal.show.opened-as-popover').modal('hide');\n\n var $popover = $(element).closest('.popover');\n if (!$popover.length) return;\n var $elem = $($popover.data('bs.popover').element);\n $elem.popover('hide');\n });\n\n $(document).on('shown.bs.popover', function(e){\n let closeBtn = '';\n let $elem = $(e.target);\n let $popover = $($elem.data('bs.popover').tip);\n let $header = $popover.find('.popover-header');\n let $body = $popover.find('.popover-body');\n \n htmx?.process($popover[0]);\n \n if ($elem.hasClass('popover-noArrow')) {\n $popover.addClass('noarrow');\n }\n\n if ($elem.hasClass('popover-addCloseBtn')) {\n let $closeBtnContainer = $header.html() ? $header : $body;\n\n if ($('.tu-popover-close', $closeBtnContainer).length) return;\n $closeBtnContainer.prepend(closeBtn);\n }\n });\n\n initTuPopover();\n $('[data-toggle=\"popover\"]').popover({\n sanitize: false\n });\n\n $(document).on('show.bs.popover', e => {\n if (e.currentTarget?.activeElement) {\n closeAllPopoversExcept(e.currentTarget.activeElement);\n }\n else if (e.target) {\n closeAllPopoversExcept(e.target);\n }\n\n if (document.querySelector('.dropdown.show')) {\n $('.dropdown.show').dropdown('hide');\n }\n\n let exceptions = ['.tum-readmore-toggle'];\n if (isMob()) {\n exceptions = exceptions.concat(['.tu-popover', '.tum-unauthorized-hint', '.map-link-tum-popover']);\n } \n let except = exceptions.join(', ');\n\n if (e.currentTarget?.activeElement?.matches(except) || e.target?.matches(except)) {\n return false;\n }\n });\n\n $(document).on('show.bs.dropdown', () => {\n closeAllPopoversExcept(null);\n });\n}\n\n/**\n * \n * @param {HTMLElement | Document | DocumentFragment} [container]\n * @returns \n */\nfunction _initTuPopover(container = null) {\n if (!container) container = document;\n for (let element of container.querySelectorAll('.poptitle:not([data-original-title])')) {\n $(element).popover({\n html: true,\n trigger: element.classList.contains('hover') ? 'hover' : 'click',\n placement: 'top',\n content: element.title,\n sanitize: false,\n template: '