PageSourceSearch

https://atlant-minsk.ru/local/dist/scripts/components.build.min.js?build=1779794460953

js atlant-minsk.ru collected 2026-10-04 14:48:47 UTC 524,278 bytes, 1 lines download raw bytes

1var _slicedToArray=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){var n=t,a=e,i=[],s=!0,t=!1,e=void 0;try{for(var l,o=n[Symbol.iterator]();!(s=(l=o.next()).done)&&(i.push(l.value),!a||i.length!==a);s=!0);}catch(n){t=!0,e=n}finally{try{!s&&o.return&&o.return()}finally{if(t)throw e}}return i}throw new TypeError("Invalid attempt to destructure non-iterable instance")},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vueLaunch=(function(){var e=Math.round;window.vueMixins={localizationMixinProxy:{methods:{getMessage:function(t){return t||"*Локализация*"}}},utils:{methods:{uniqueId:function(){return(0<arguments.length&&void 0!==arguments[0]?arguments[0]:"")+Date.now().toString()+e(1e5*Math.random())}}},formatting:{methods:{pluralize:function(t,e,n,a){return a&&1e3<=t||10<t%100&&t%100<20||0==(a=t%10)||5<=a?e+n[2]:1==a?e+n[0]:e+n[1]}},filters:{price:function(t){return t||0===t||"0"===t?parseFloat(t).toFixed(2).replace(".",",").replace(/\B(?=(\d{3})+(?!\d))/g," "):(console.log("Ошибка цены")," - ")},priceMain:function(t){return t||0===t||"0"===t?Math.floor(parseFloat(t)).toString().replace(/\B(?=(\d{3})+(?!\d))/g," "):(console.log("Ошибка цены")," - ")},priceSup:function(t){return t||0===t||"0"===t?parseFloat(t).toFixed(2).split(".")[1]:(console.log("Ошибка цены")," - ")},integer:function(t){return t||0===t||"0"===t?t.toString().replace(/\B(?=(\d{3})+(?!\d))/g," "):(console.log("Ошибка цены",t)," - ")},numberAppr:function(t){return parseInt(t),1e5<t?e(t/1e5)+" млн.":1e3<t?e(t/100)+" тыс.":t}}}}}(),Vue.component("v-accordion",{template:'\n\t<div class="v-accordion accordion" :class="{\'accordion--embedded\': embedded}">\n\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed" v-if="!embedded">\n\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t<span class="accordion__btn-text h3">{{item.title}}</span>\n\t\t\t</button>\n\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t<div class="accordion__body" v-show="!item.collapsed || embedded" :class="{\'accordion__body--indent\': !embedded}">\n\t\t\t\t\t<div class="accordion__content">\n\t\t\t\t\t\t<div class="accordion__questions flc">\n\t\t\t\t\t\t\t<div class="accordion__question-wrap">\n\n\t\t\t\t\t\t\t\t<h4 class="accordion__question-wrap-title h4" v-if="embedded">\n\t\t\t\t\t\t\t\t\t{{item.title}}\n\t\t\t\t\t\t\t\t</h4>\n\n\t\t\t\t\t\t\t\t<div v-for="question in item.questions" class="accordion__question flc">\n\t\t\t\t\t\t\t\t\t<button type="button" class="accordion__question-btn accordion__question-btn--narrow" :class="{\'collapsed\': question.collapsed}"  @click="question.collapsed = !question.collapsed">\n\t\t\t\t\t\t\t\t\t\t\x3c!-- no spaces is important --\x3e\n\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-btn-text">{{question.btn}}</span><span class="accordion__question-ico-wrap">&nbsp;&nbsp;&nbsp;<span class="accordion__question-ico">\n\t\t\t\t\t\t\t\t\t\t\t\t<svg class="accordion__question-svg svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t\t<div v-show="!question.collapsed" class="accordion__answer">\n\t\t\t\t\t\t\t\t\t\t\t<div class="accordion__answer-content text-guide">\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-html="question.answer" class="accordion__answer-content"></div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="accordion__rate-wrap">\n\t\t\t\t\t\t\t\t\t\t\t\t<v-rate :id="question.id" :remote="question.rate.remote" :value="question.rate.value"></v-rate>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t</div>\n',data:function(){return{catalog:{remote:null,items:null,loading:!1,loadingMinTimeout:null}}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},embedded:{type:Boolean,default:!1}},methods:{loadCatalog:function(t,e){function n(){var t;i&&(t=a.catalog.items,a.catalog=i.catalog,e)&&(a.catalog.items=t.concat(a.catalog.items)),a.loadingMinTimeout=null,a.loading=!1}var a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&n(),a.loadingMinTimeout=null},300)),$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-accordion loaded",t),i=t}).fail(function(t){console.warn("v-accordion load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||n()}))},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)}},created:function(){var t=this;t.staticDataSource?t.catalog=t.staticDataSource.catalog:t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-article-contacts",{template:'\n\t<article class="v-article-contacts article-contacts service-center">\n\t\t\n\t\t<div class="article-contacts__map-wrap">
1\n\t\t\t<v-map :coords="[53.900000, 27.566670]" adjust-initial-bounds right-controls small>\n\t\t\t\t<v-map-point\n\t\t\t\t\t:key="contacts.id"\n\t\t\t\t\t:coords="contacts.marker.coords"\n\t\t\t\t\t:pin-num="contacts.marker.pinNum"\n\t\t\t\t\t:pin-alt="contacts.marker.pinAlt"\n\t\t\t\t\tmarker-type="placemark"\n\t\t\t\t></v-map-point>\n\t\t\t</v-map>\n\t\t</div>\n\n\t\t<div class="service-center__contacts">\n\t\t\t<div class="service-center__contact flc">\n\t\t\t\t<div class="service-center__contact-title">\n\t\t\t\t\tАдрес\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tпр. Победителей, 61<br>\n\t\t\t\t\tг. Минск, Беларусь\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="service-center__contact flc">\n\t\t\t\t<div class="service-center__contact-title">\n\t\t\t\t\tВремя работы\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tпн-вс — 10:00 до 20:00\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tсб-вс — 10:00 до 18:00\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="service-center__contact flc">\n\t\t\t\t<div class="service-center__contact-title">\n\t\t\t\t\tКонтакты\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tТелефон: <a href="tel:+375172186222">+375 17 218-62-22</a>\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tФакс: <a href="tel:+375172039697">+375 17 203-96-97</a>\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tE-mail: <a href="mailto:[email protected]">[email protected]</a>\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\t<a href="www.atlantshop.by">www.atlantshop.by</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="article-contacts__persons">\n\t\t\t<div class="article-contacts__persons-section flc">\n\t\t\t\t<h4 class="article-contacts__persons-title h4">\n\t\t\t\t\tФизическим лицам\n\t\t\t\t</h4>\n\t\t\t\t<div class="article-contacts__persons-content text-guide">\n\t\t\t\t\t<p>\n\t\t\t\t\t\tПо вопросам приобретения продукции ЗАО «АТЛАНТ» вы можете обращаться в <a href="#">салоны-магазины ATLANT, к нашим партнерам</a> либо в розничные магазины вашего города.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="article-contacts__persons-section flc">\n\t\t\t\t<h4 class="article-contacts__persons-title h4">\n\t\t\t\t\tЮридическим лицам\n\t\t\t\t</h4>\n\t\t\t\t<div class="article-contacts__persons-content text-guide">\n\t\t\t\t\t<p class="article-contacts__text">Продажа бытовой техники в Республике Беларусь: <a href="tel:+375172186457">+375 17 218-64-57</a></p>\n\t\t\t\t\t<p class="article-contacts__text">Продажа бытовой техники в Российской Федерации: <a href="tel:+375172186457">+375 17 218-61-12</a></p>\n\t\t\t\t\t<p class="article-contacts__text">Продажа бытовой техники в СНГ, Дальнем зарубежье:</p>\n\t\t\t\t\t<ul class="article-contacts__list">\n\t\t\t\t\t\t<li class="article-contacts__list-item">\n\t\t\t\t\t\t\tУкраина и Молдавия: <a href="tel:+375173697261">+375 17 369-72-61</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class="article-contacts__list-item">\n\t\t\t\t\t\t\tСредняя Азия и Закавказье: <a href="tel:+375172035024">+375 17 203-50-24</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class="article-contacts__list-item">\n\t\t\t\t\t\t\tСтраны ЕС, Северной и Южной Америки, Африки: <a href="tel:+375172036571">+375 17 203-65-71</a>, <a href="tel:+375172186429">+375 17 218-64-29</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</div>\n\t\t\n\t</article>\n',data:function(){return{contacts:null}},props:{staticDataSource:{default:null},bxajaxid:{default:null}},created:function(){var t=this;t.staticDataSource?(t.contacts=t.staticDataSource.contacts,console.log("v-article-contacts loaded from static data",t.contacts)):t.remoteDataSource&&(t.contacts.remote=t.remoteDataSource)}}),Vue.component("v-article-list-full",{template:'\n\t<div class="v-article-list-full article-list-full" \n\t\t :class="{\'article-list-full--fill\': fill || mode == \'shops\' || mode == \'letters\' || mode == \'technique\' || mode == \'kds\' || mode == \'sma\',\n\t\t \'article-list-full--framed\': frame || mode == \'letters\' || mode == \'technique\' || mode == \'kds\' || mode == \'sma\',\n\t\t \'article-list-full--border-top\': mode === \'faq-small\'}">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\n\t\t<template v-if="mode == \'article\'">\n\t\t\t<div class="article-list article-list--full flc fcc">\n\t\t\t\t<div class="article-list__grid grid">\n\n\t\t\t\t\t<template v-if="catalog.items && catalog.items.length">\n\t\t\t\t\t\t<div class="article-list__col col col-xl-4 col-sm-6 col-2xs-12" v-for="article in catalog.items">\n\t\t\t\t\t\t\t<div class="article-poster article-poster--large flc" itemscope itemtype="https://schema.org/Article">\n\t\t\t\t\t\t\t\t<a v-if="article.link" :href="article.remote" class="article-poster__link" @click="linkClick($event, article.remote)"></a>\n\t\t\t\t\t\t\t\t<div class="article-poster__image flc" :class="{\'article-poster__image--disabled\': article.expired}"\n\t\t\t\t\t\t\t\t\t :style="{\'background-image\': \'url(\' + article.image + \')\'}">\n\t\t\t\t\t\t\t\t\t<meta itemprop="image" :content="computedImg(article.image)"/>\n\t\t\t\t\t\t\t\t\t<div class="article-poster__image-overlay" v-if="article.video">\n\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon article-poster__video-icon"><use xlink:href="#svg-icon-video-btn"></use></svg>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="article-poster__meta flc" v-if="article.labels || article.date">\n\t\t\t\t\t\t\t\t\t<div class="article-poster__meta-labels" v-if="article.labels">\n\t\t\t\t\t\t\t\t\t\t<a :href="label.link" class="badge" :class="{\'badge--reflex\': label.link}" :style="{\'background-color\': label.color || null}"\n\t\t\t\t\t\t\t\t\t\t   v-for="label in article.labels">{{label.text}}</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<time v-if="article.date" :datetime="article.date.datetime" class="article-poster__meta-date">{{article.date.text}}</time>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<strong class="article-poster__title flc" v-if="article.title" itemprop="headline">\n\t\t\t\t\t\t\t\t\t{{article.title}}<span class="article-poster__title-tail">&nbsp;&nbsp;<svg class="svg-icon article-poster__title-arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t<div class="article-poster__description flc" v-if="article.description" v-html="article.description"\n\t\t\t\t\t\t\t\t\titemprop="name"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div class="article-list__col article-list__col--bg col col-xl-12">\n\t\t\t\t\t\t\t<div class="article-list__message" v-if="$slots[\'empty-message\']">\n\t\t\t\t\t\t\t\t<slot name="empty-message"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-if="mode == \'video\'">\n\t\t\t<div class="article-list article-list--full flc fcc">\n\t\t\t\t<div class="article-list__grid grid">\n\n\t\t\t\t\t<template v-if="catalog.items && catalog.items.length">\n\t\t\t\t\t\t<div class="article-list__col col col-xl-4 col-sm-6 col-2xs-12" v-for="article in catalog.items">\n\t\t\t\t\t\t\t<div class="article-poster article-poster--large flc" itemscope itemtype="https://schema.org/VideoObject">\n\t\t\t\t\t\t\t\t<a v-if="article.link" :href="article.remote" class="article-poster__link" @click="linkClick($event, article.remote)"></a>\n\t\t\t\t\t\t\t\t<div class="article-poster__image flc" :class="{\'article-poster__image--disabled\': article.expired}"\n\t\t\t\t\t\t\t\t\t :style="{\'background-image\': \'url(\' + article.image + \')\'}"\n\t\t\t\t\t\t\t\t\t itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter">\n\t\t\t\t\t\t\t\t\t<div class="article-poster__image-overlay" v-if="article.video"\n\t\t\t\t\t\t\t\t\t\t itemprop="interactionService" itemscope itemid="https://www.youtube.com" itemtype="https://schema.org/WebSite">\n\t\t\t\t\t\t\t\t\t\t<meta itemprop="name" content="YouTube" />\n\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon article-poster__video-icon"><use xlink:href="#svg-icon-video-btn"></use></svg>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<link itemprop="embedUrl" :href="article.videoLink" />\n\t\t\t\t\t\t\t\t<meta itemprop="uploadDate" :content="article.date.datetime" />\n\t\t\t\t\t\t\t\t<meta itemprop="thumbnailUrl" :content="article.image" />\n\t\t\t\t\t\t\t\t<div class="article-poster__meta flc" v-if="article.labels || article.date">\n\t\t\t\t\t\t\t\t\t<div class="article-poster__meta-labels" v-if="article.labels" itemprop="description">\n\t\t\t\t\t\t\t\t\t\t<a :href="label.link" class="badge" :class="{\'badge--reflex\': label.link}" :style="{\'background-color\': label.color || null}"\n\t\t\t\t\t\t\t\t\t\t   v-for="label in article.labels">{{label.text}}</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<time v-if="article.date" :datetime="article.date.datetime" class="article-poster__meta-date">{{article.date.text}}</time>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<strong class="article-poster__title flc" v-if="article.title" itemprop="name">\n\t\t\t\t\t\t\t\t\t{{article.title}}<span class="article-poster__title-tail">&nbsp;&nbsp;<svg class="svg-icon article-poster__title-arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t<div class="article-poster__description flc" v-if="article.description" v-html="article.description"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div class="article-list__col article-list__col--bg col col-xl-12">\n\t\t\t\t\t\t\t<div class="article-list__message" v-if="$slots[\'empty-message\']">\n\t\t\t\t\t\t\t\t<slot name="empty-message"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'job\'">\n\t\t\t<div class="job-list flc fcc">\n\t\t\t\t<div class="job-list__grid grid">\n\t\t\t\t\t<div class="job-list__col col col-xs-12 col-md-6 col-xl-4" v-for="job in catalog.items">\n\t\t\t\t\t\t<a :href="job.link" class="job-list__link" @click="linkClick($event, job.remote)">\n\t\t\t\t\t\t\t<div class="job-list__header">\n\t\t\t\t\t\t\t\t<div v-if="job.price" class="job-list__price price-badge">\n\t\t\t\t\t\t\t\t\t<svg class="svg-icon price-badge__icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-marker"></use>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t<span class="price-badge__value">{{ job.price }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="job.label" class="job-list__label">\n\t\t\t\t\t\t\t\t\t{{ job.label }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<h4 v-if="job.title" class="job-list__title h4" >\n\t\t\t\t\t\t\t\t{{ job.title }}\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<div class="job-list__descr">\n\t\t\t\t\t\t\t\t<div v-if="job.company" class="job-list__descr-item">\n\t\t\t\t\t\t\t\t\t<span class="job-list__descr-name flc">{{ getMessage(\'COMPANY\') }}: </span>\n\t\t\t\t\t\t\t\t\t<span class="job-list__descr-text">{{ job.company }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="job.subdivision" class="job-list__descr-item flc">\n\t\t\t\t\t\t\t\t\t<span class="job-list__descr-name">{{ getMessage(\'SUBDIVISION\') }}: </span>\n\t\t\t\t\t\t\t\t\t<span class="job-list__descr-text">
1{{ job.subdivision }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'letters\'">\n\t\t\t<div class="article-list-full__status flc">\n\t\t\t\t<v-list-status :catalog="catalog" :state="state" :changed-filters="changedFilters" :loading="loading"\n\t\t\t\t\t\t\t   @reset="resetHeaderFilter"\n\t\t\t\t\t\t\t   @sort="state.sort = $event; stateChanged();">\n\t\t\t\t</v-list-status>\n\t\t\t</div>\n\n\t\t\t<div class="article-list-full__text-block text-guide flc">\n\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t<table cellspacing="1" cellpadding="0" class="code-table">\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("LETTERS_COL_1")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("LETTERS_COL_2")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("LETTERS_COL_3")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("LETTERS_COL_4")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("LETTERS_COL_5")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr v-for="item in catalog.items">\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.title}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.desc}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.extension}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.filesize}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t<a target="_blank" download :href="item.file" class="icon-link">\n\t\t\t\t\t\t\t\t\t\t<div class="icon-link__icon">\n\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-link-doc"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="icon-link__main">{{getMessage("DOWNLOAD")}}</div>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'technique\'">\n\t\t\t<div class="article-list-full__status flc">\n\t\t\t\t<v-list-status :catalog="catalog" :state="state" :changed-filters="changedFilters" :loading="loading" \n\t\t\t\t\t\t\t   @reset="resetHeaderFilter"\n\t\t\t\t\t\t\t   @sort="state.sort = $event; stateChanged();">\n\t\t\t\t</v-list-status>\n\t\t\t</div>\n\n\t\t\t<div class="article-list-full__text-block text-guide flc">\n\n\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t<table cellspacing="1" cellpadding="0" class="code-table">\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("TECHNIQUE_COL_1")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("TECHNIQUE_COL_2")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("TECHNIQUE_COL_3")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("TECHNIQUE_COL_4")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("TECHNIQUE_COL_5")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr v-for="item in catalog.items">\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.title}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.desc}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.extension}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.filesize}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t<a target="_blank" download :href="item.file" class="icon-link">\n\t\t\t\t\t\t\t\t\t\t<div class="icon-link__icon">\n\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-link-doc"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="icon-link__main">{{getMessage("DOWNLOAD")}}</div>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'kds\'">\n\t\t\t<div class="article-list-full__status flc">\n\t\t\t\t<v-list-status :catalog="catalog" :state="state"  :loading="loading"\n\t\t\t\t\t\t\t   @reset="resetHeaderFilter"\n\t\t\t\t\t\t\t   @s
1ort="state.sort = $event; stateChanged();">\n\t\t\t\t</v-list-status>\n\t\t\t</div>\n\n\t\t\t<div class="article-list-full__text-block text-guide flc">\n\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t<table cellspacing="1" cellpadding="0" class="code-table">\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("KDS_COL_1")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("KDS_COL_2")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("KDS_COL_3")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("KDS_COL_4")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t{{getMessage("KDS_COL_5")}}\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr v-for="item in catalog.items">\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.title}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.date}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.extension}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t{{item.filesize}}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t<a target="_blank" download :href="item.file" class="icon-link">\n\t\t\t\t\t\t\t\t\t\t<div class="icon-link__icon">\n\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-link-doc"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="icon-link__main">{{getMessage("DOWNLOAD")}}</div>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'sma\'">\n\t\t\t<div class="accordion accordion--short">\n\t\t\t\t<div class="accordion__item" v-for="itemSeries in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': itemSeries.collapsed}" @click="itemSeries.collapsed = !itemSeries.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{itemSeries.title}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!itemSeries.collapsed">\n\t\t\t\t\t\t\t<div class="text-guide">\n\n\t\t\t\t\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t\t\t\t\t<table cellspacing="1" cellpadding="0" class="code-table">\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_1")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_2")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_3")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_4")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_5")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_6")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage("SMA_COL_7")}}\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t<tr v-for="item in itemSeries.childs">\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.model}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.producer}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.lock_type}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.date}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.comments}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.const_sma}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a target="_blank" download :href="item.file" class="icon-link">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="icon-link__icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-link-doc"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="icon-link__main">
1{{getMessage("DOWNLOAD")}}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'factories\' || mode == \'shops\' || mode == \'service-centers\' || mode == \'contacts\'">\n\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t<div class="article-list-full__product flc" v-if="catalog.showProduct && $slots[\'product\']">\n\t\t\t\t\t<slot name="product" v-if="catalog.showProduct"></slot>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t\t<v-map v-if="catalog.shopType !== \'online\'" :coords="[53.900000, 27.566670]" adjust-initial-bounds ref="map" right-controls \n\t\t\t\t   class="article-list-full__map" :external-loading="mapLoading" :big-balloon="mode == \'service-centers\'">\n\t\t\t\t<v-map-point\n\t\t\t\t\tv-if="factory.coords && factory.coords.length == 2"\n\t\t\t\t\tv-for="factory in catalog.items" \n\t\t\t\t\t:key="factory.id"\n\t\t\t\t\t:coords="factory.coords"\n\t\t\t\t\t:name="factory.title"\n\t\t\t\t\t:logo="factory.logo"\n\t\t\t\t\t:address="factory.address"\n\t\t\t\t\t:pin-num="factory.pinNum"\n\t\t\t\t\t:pin-alt="factory.pinAlt"\n\t\t\t\t\t:schedule="factory.schedule"\n\t\t\t\t\t:rating="factory.rating ? factory.rating : false"\n\t\t\t\t\t:contacts="factory.contacts"\n\t\t\t\t\tmarker-type="placemark"\n\t\t\t\t\t:btn-route="mode === \'shops\'"\n\t\t\t\t\t:btn-link="mode === \'service-centers\' ? factory.btnLink : false"\n\t\t\t\t\t:btn-popup-link="mode === \'service-centers\' && factory.availableOrder ? factory.btnPopupLink : false"\n\t\t\t\t\t></v-map-point>\n\t\t\t</v-map>\n\t\t\t<div v-if="(mode == \'shops\' || mode == \'service-centers\') && catalog.attention"\n\t\t\t\t class="article-list-full__attention flc">\n\t\t\t\t<div class="attention">\n\t\t\t\t\t<svg class="svg-icon attention__ico-attention">\n\t\t\t\t\t<use xlink:href="#svg-icon-attention"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t\t<span class="attention__attention-text">\n\t\t\t\t\t\t{{catalog.attention}}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if="mode == \'shops\' || mode == \'service-centers\'" class="article-list-full__status flc">\n\t\t\t\t<v-list-status :catalog="catalog" :state="state" :changed-filters="changedFilters" :loading="loading" \n\t\t\t\t\t\t\t   @reset="resetHeaderFilter"\n\t\t\t\t\t\t\t   @sort="state.sort = $event; stateChanged();">\n\t\t\t\t</v-list-status>\n\t\t\t</div>\n\n\t\t\t<div class="factories-list">\n\t\t\t\t<div class="factories-list__item" :class="{\'factories-list__item--link\': factory.link}" v-for="(factory, index) in catalog.items" :key=\'factory.id\'>\n\t\t\t\t\t<a v-if="mode == \'shops\' && catalog.shopType == \'online\' && factory.link" :href="factory.link" class="factories-list__link" target="_blank"></a>\n\t\t\t\t\t<div class="factories-list__heading">\n\t\t\t\t\t\t<div class="factories-list__marker">\n\t\t\t\t\t\t\t<div v-if="factory.pinNum" class="map__balloon-pin" :class="{\'map__balloon-pin--alt\': factory.pinAlt}">\n\t\t\t\t\t\t\t\t{{ factory.pinNum }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if="mode == \'shops\' || mode == \'service-centers\'" class="factories-list__distance">\n\t\t\t\t\t\t\t<span class="factories-list__distance-text">{{ factory.distance }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<template v-if="factory.logo">\n\t\t\t\t\t\t\t<template v-if="mode == \'shops\' || mode == \'service-centers\' && factory.link">\n                <h4 class="factories-list__title h4">\n                  <a v-if="mode == \'service-centers\' && factory.link" :href="factory.link" class="factories-list__title-link" @click="linkClick($event, factory.remote)">{{ factory.title }}</a>\n                  <img v-else :class="{\'factories-list__title-link js-anchor factories-list__logo\': factory.coords}"\n                       data-target=".article-list-full__map"\n                       @click="factory.coords ? $refs.map.$emit(\'show-on-map\', factory.coords) : null"\n                       :src="factory.logo" alt="">\n                </h4>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<h4 class="factories-list__title h4">\n\t\t\t\t\t\t\t\t<a v-if="mode == \'service-centers\' && factory.link" :href="factory.link" class="factories-list__title-link" @click="linkClick($event, factory.remote)">{{ factory.title }}</a>\n\t\t\t\t\t\t\t\t<span v-else :class="{\'factories-list__title-link js-anchor\': factory.coords}" data-target=".article-list-full__map"\n\t\t\t\t\t\t\t\t\t\t\t@click="factory.coords ? $refs.map.$emit(\'show-on-map\', factory.coords) : null">\n\t\t\t\t\t\t\t\t{{ factory.title }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div v-if="mode == \'service-centers\'" class="factories-list__rating">\n\t\t\t\t\t\t\t<svg class="svg-icon factories-list__rating-ico"><use xlink:href="#svg-icon-rating-star"></use></svg> <span class="job-list__price-num">{{factory.rating}}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class="factories-list__content">\n\t\t\t\t\t\t<div class="factories-list__info">\n\t\t\t\t\t\t\t<div class="factories-list__info-wrap">\n\t\t\t\t\t\t\t\t<div v-if="factory.address" class="factories-list__address">\n\t\t\t\t\t\t\t\t\t{{ factory.address }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="factory.schedule" class="factories-list__schedule">\n\t\t\t\t\t\t\t\t\t{{ factory.schedule }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="factories-list__contacts">\n\t\t\t\t\t\t\t\t\t<div class="factories-list__contact" v-for="contact in factory.contacts">\n\t\t\t\t\t\t\t\t\t\t<span class="factories-list__text">\n\t\t\t\t\t\t\t\t\t\t\t{{ contact.name ? contact.name + \' \' : \'\'}}\n\t\t\t\t\t\t\t\t\t\t\t<a v-if="contact.href" :href="contact.href" target="_blank">{{ contact.text }}</a>\n\t\t\t\t\t\t\t\t\t\t\t<span v-else>{{ contact.text }}</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div class="factories-list__descr">\n\t\t\t\t\t\t\t<div class="text-guide" v-if="factory.description" v-html="factory.description"></div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="mode == \'factories\' || mode == \'contacts\'" class="factories-list__links">\n\t\t\t\t\t\t\t<div class="link-block__item">\n\t\t\t\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t\t\t\t<a href="#" class="arrow-link" @click="linkClick($event, factory.remote)">{{ getMessage(\'ABOUT_COMPANY\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="mode !== \'contacts\'" class="section-action flc">\n\t\t\t\t\t\t\t\t\t<a href="#" class="arrow-link" @click="linkClick($event, factory.leadership)">{{ getMessage(\'LEADERSHIPS\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="mode !== \'contacts\'" class="section-action flc">\n\t\t\t\t\t\t\t\t\t<a data-target=".article-list-full__map" class="arrow-link js-anchor" @click.prevent="$refs.map.$emit(\'show-on-map\', factory.coords)">{{ getMessage("SHOW_ON_MAP") }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="mode == \'contacts\'" class="section-action flc">\n\t\t\t\t\t\t\t\t\t<a class="arrow-link" @click.prevent="linkClick($event, factory.allContacts)">{{ getMessage(\'ALL_CONTACTS\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="mode == \'contacts\'" class="section-action flc">\n\t\t\t\t\t\t\t\t\t<span class="arrow-link js-open-modal"\n\t\t\t\t\t\t\t\t\t\t  :data-modal-url="factory.contactForm"\n\t\t\t\t\t\t\t\t\t\t  data-modal-data=\'{\n\t\t\t\t\t\t\t\t\t\t  "className": "modal
1--lg modal--form",\n\t\t\t\t\t\t\t\t\t\t  "ownHistory": false\n\t\t\t\t\t\t\t\t\t\t  }\'\n\t\t\t\t\t\t\t\t\t\t  >{{getMessage(\'APPEAL\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n                <div v-if="mode == \'contacts\'" class="section-action flc">\n                  <a class="arrow-link" href="/support/services/">Сервисные центры<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n                  </a>\n                </div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-else-if="mode == \'shops\' || mode == \'service-centers\'" class="factories-list__links">\n\n\t\t\t\t\t\t\t<div v-if="mode == \'shops\' && factory.link" class="link-block__item">\n\t\t\t\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t\t\t\t<a :href="factory.link" class="arrow-link" target="_blank">{{ getMessage(\'GOTO_TO_SITE\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div v-else class="link-block__item">\n\t\t\t\t\t\t\t\t<div class="section-action flc" v-if="factory.coords">\n\t\t\t\t\t\t\t\t\t<a data-target=".article-list-full__map" class="arrow-link js-anchor" @click.prevent="$refs.map.$emit(\'show-on-map\', factory.coords)">{{ getMessage("SHOW_ON_MAP") }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="mode == \'shops\' && factory.coords" class="section-action flc">\n\t\t\t\t\t\t\t\t\t<a data-target=".article-list-full__map" class="arrow-link js-anchor" @click="showRoute(factory.coords)">{{ getMessage(\'GET_DIRECTIONS\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<template v-else-if="mode == \'service-centers\'" >\n\n\t\t\t\t\t\t\t\t\t<div class="section-action flc" v-if="factory.availableOrder">\n\t\t\t\t\t\t\t\t\t\t<span class="arrow-link js-open-modal"\n\t\t\t\t\t\t\t\t\t\t\t  data-modal-data=\'{\n\t\t\t\t\t\t\t\t\t\t\t  "className": "modal--lg modal--form",\n\t\t\t\t\t\t\t\t\t\t\t  "ownHistory": false\n\t\t\t\t\t\t\t\t\t\t\t  }\'\n\t\t\t\t\t\t\t\t\t\t\t  :data-modal-url="\'/personal/repair_form.php?SERVICE_ID=\'+factory.id">{{ getMessage(\'SEND_ORDER\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t\t\t\t\t<span class="arrow-link js-open-modal"\n\t\t\t\t\t\t\t\t\t\t\t  data-modal-data=\'{\n\t\t\t\t\t\t\t\t\t\t\t  "className": "modal--lg modal--form",\n\t\t\t\t\t\t\t\t\t\t\t  "ownHistory": false\n\t\t\t\t\t\t\t\t\t\t\t  }\'\n\t\t\t\t\t\t\t\t\t\t\t  :data-modal-url="\'/support/services/send_service_error.php?CATEGORY=error&SERVICE_ID=\'+factory.id + \'&REGION=\'+factory.region_id">{{ getMessage(\'SEND_ERROR\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'faq\' || mode == \'faq-small\'">\n\t\t\t<div class="accordion accordion--connnect-top" :class="{\'accordion--small\': mode == \'faq-small\', \'accordion--short\': view != \'inner\'}">\n\t\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text" :class="{\'h3\': mode === \'faq\', \'h4\': mode === \'faq-small\'}">\n\t\t\t\t\t\t\t{{item.title}}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__content">\n\t\t\t\t\t\t\t\t<div v-if="item.questions && item.questions.length" class="accordion__questions flc">\n\t\t\t\t\t\t\t\t\t<div class="accordion__question-wrap">\n\t\t\t\t\t\t\t\t\t\t<div v-for="question in item.questions" class="accordion__question flc"\n\t\t\t\t\t\t\t\t\t\t\t itemscope itemtype="https://schema.org/Question">\n\t\t\t\t\t\t\t\t\t\t\t<button type="button" class="accordion__question-btn accordion__question-btn--narrow"\n\t\t\t\t\t\t\t\t\t\t\t\t\t:class="{\'collapsed\': question.collapsed}"  @click="question.collapsed = !question.collapsed">\n\t\t\t\t\t\t\t\t\t\t\t\t\x3c!-- no spaces is important --\x3e\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-btn-text" itemprop="name">{{question.btn}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-ico-wrap">&nbsp;&nbsp;&nbsp;<span class="accordion__question-ico">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="accordion__question-svg svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-show="!question.collapsed" class="accordion__answer">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="question.answer" class="accordion__answer-content text-guide"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-html="question.answer" itemprop="text"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="accordion__rate-wrap">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<v-rate :id="question.id" :remote="question.rate.remote" :value="question.rate.value"></v-rate>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>
1\n\t\t\t\t\t\t\t\t<div v-if="item.content" class="accordion__user-content" v-html="item.content"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'accordions\' || mode == \'accordions-small\'">\n\t\t\t<div class="accordion accordion--short" :class="{\'accordion--small\': mode == \'accordions-small\'}">\n\t\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text" :class="{\'h3\': mode === \'accordions\', \'h4\': mode === \'accordions-small\'}">\n\t\t\t\t\t\t\t{{item.title}}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__content">\n\t\t\t\t\t\t\t\t<div class="accordion__questions flc">\n\t\t\t\t\t\t\t\t\t<div class="accordion__question-wrap">\n\t\t\t\t\t\t\t\t\t\t<div v-for="question in item.questions" class="accordion__question flc">\n\t\t\t\t\t\t\t\t\t\t\t<button type="button" class="accordion__question-btn accordion__question-btn--narrow" :class="{\'collapsed\': question.collapsed}"  @click="question.collapsed = !question.collapsed">\n\t\t\t\t\t\t\t\t\t\t\t\t\x3c!-- no spaces is important --\x3e\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-btn-text">{{question.btn}}</span><span class="accordion__question-ico-wrap">&nbsp;&nbsp;&nbsp;<span class="accordion__question-ico">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="accordion__question-svg svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-show="!question.collapsed" class="accordion__answer">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<v-lazy-component v-if="question.answer" class="accordion__answer-content text-guide">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-html="question.answer"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</v-lazy-component>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'certificates\'">\n\t\t\t<div class="accordion accordion--short">\n\t\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed; replaceState();">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{item.title}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__certificates flc">\n\t\t\t\t\t\t\t\t<div v-for="certificate in item.certificates" class="certificate">\n\t\t\t\t\t\t\t\t\t<div class="certificate__wrap">\n\t\t\t\t\t\t\t\t\t\t<a v-if="certificate.remote" @click="linkClick($event, certificate.remote)" class="certificate__pic">\n\t\t\t\t\t\t\t\t\t\t\t<img v-if="certificate.image" class="certificate__img" :src="certificate.image" alt="">\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t<div v-else class="certificate__pic">\n\t\t\t\t\t\t\t\t\t\t\t<img v-if="certificate.image" class="certificate__img" :src="certificate.image" alt="">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="certificate__info">\n\t\t\t\t\t\t\t\t\t\t\t<h4 v-if="certificate.title" class="certificate__title h4 flc">{{certificate.title}}</h4>\n\t\t\t\t\t\t\t\t\t\t\t<div class="certificate__main-info">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="certificate__descr-wrap">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.descr" class="certificate__descr flc" v-html="certificate.descr"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="certificate__date-block flc" v-if="certificate.date">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.date.registration" class="certificate__date">{{ getMessage(\'DATE_REGISTER\') }}: {{certificate.date.registration}}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.date.confirmation" class="certificate__date">{{ getMessage(\'DATE_CONFIRM\') }}: {{certificate.date.confirmation}}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.date.valid" class="certificate__date">{{ getMessage(\'DATE_ACTIVE_TO\') }}: {{certificate.date.valid}}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.file" class="certificate__links">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="link-block__item">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a :href="certificate.file" class="arrow-link" download>{{ getMessage(\'DOWNLOAD_CERTIFICATE\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'booklets\'">\n\t\t\t<div class="accordion accordion--short">\n\t\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{item.title}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__certificates flc">\n\t\t\t\t\t\t\t\t<div v-for="certificate in item.certificates" class="certificate">\n\t\t\t\t\t\t\t\t\t<div class="certificate__wrap">\n\t\t\t\t\t\t\t\t\t\t<div class="certificate__pic">\n\t\t\t\t\t\t\t\t\t\t\t<img v-if="certificate.image" class="certificate__img" :src="certificate.image" alt="">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="certificate__info">\n\t\t\t\t\t\t\t\t\t\t\t<h4 v-if="certificate.title" class="certificate__title h4 flc">{{certificate.title}}</h4>\n\t\t\t\t\t\t\t\t\t\t\t<div class="certificate__main-info">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="certificate__descr-wrap">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.descr" class="certificate__descr flc" v-html="certificate.descr"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="certificate.file" class="certificate__links">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="link-block__item">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a :href="certificate.file" class="arrow-link" download>
1{{ getMessage("DOWNLOAD_BOOKLETS") }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'energy_efficiency_labels\'">\n\t\t\t<div class="article-list-full__text-guide text-guide">\n\t\t\t\t<p>\n\t\t\t\t\t{{catalog.description}}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class="accordion accordion--short">\n\t\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{item.title}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__table-wrap text-guide">\n\t\t\t\t\t\t\t\t<div class="accordion__table-header">\n\t\t\t\t\t\t\t\t\t<div class="accordion__table-left">\n\t\t\t\t\t\t\t\t\t\tВсего этикеток: \n\t\t\t\t\t\t\t\t\t\t<span class="accordion__labels-num">{{item.quantity}}</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="accordion__table-right">\n\t\t\t\t\t\t\t\t\t\t<div class="accordion__table-date">{{item.date}}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t\t\t\t\t<table cellspacing="1" cellpadding="0">\n\t\t\t\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="80">\n\t\t\t\t\t\t\t\t\t\t\t\t\t№\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="270">\n\t\t\t\t\t\t\t\t\t\t\t\t\tМодель\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="436">\n\t\t\t\t\t\t\t\t\t\t\t\t\tЭтикетка\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="470">\n\t\t\t\t\t\t\t\t\t\t\t\t\tТехнический лист\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr v-for="(line, i) in item.lines">\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="80">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{i + 1}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="270">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{line.sku}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="436">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a href="#" \n\t\t\t\t\t\t\t\t\t\t\t\t\t   class="energo-label"\n\t\t\t\t\t\t\t\t\t\t\t\t\t   :class="{\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--a-3plus\': line.labelVariant === \'A+++\',\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--a-2plus\': line.labelVariant === \'A++\',\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--a-plus\': line.labelVariant === \'A+\',\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--a\': line.labelVariant === \'A\',\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--b\': line.labelVariant === \'B\',\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--c\': line.labelVariant === \'C\',\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \'energo-label--d\': line.labelVariant === \'D\'\n\t\t\t\t\t\t\t\t\t\t\t\t\t   }"\n\t\t\t\t\t\t\t\t\t\t\t\t\t   @click.prevent="openNewWindow(line.labelPrintLink, \'\', line.labelPrintFeatures)">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="energo-label__text">{{line.labelLetter}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="energo-label__sign">{{line.labelSign}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center" width="470">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a href="#" \n\t\t\t\t\t\t\t\t\t\t\t\t\t   class="print-link" \n\t\t\t\t\t\t\t\t\t\t\t\t\t   @click.prevent="openNewWindow(line.techListPrintLink, \'\', line.techListPrintFeatures)">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img class="print-link__icon" src="/local/images/markup-images/icons/printer-tool.png" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="print-link__text">Просмотр и печать</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode == \'prices\'">\n\t\t\t<div class="accordion accordion--short">\n\t\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{item.title}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t\t<div class="text-guide">\n\t\t\t\t\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t\t\t\t\t<table cellspacing="1" cellpadding="0">\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getMessage(\'PRICES_COL_1\') }}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getMessage(\'PRICES_COL_2\') }}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t<tr v-for="itemProduct in item.products">\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{itemProduct.model}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-for="priceItem in itemProduct.priceList">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="social-icons__item social-icon" :href="priceItem.fileLink" download>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-link-doc"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<transition name="content-fade">\n\t\t\t<v-page-nav class="catalog__navigation"\n\t\t\t\t\t\t:static-data-source="catalog.pages"\n\t\t\t\t\t\t@navigate="navigateByPage"\n                          v-if="catalog.pages && mode != \'factories\' && mode != \'faq\' && mode != \'faq-small\' && !noPageNav && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)"></v-page-nav>\n\t\t</transition>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{filters:null,items:null,remote:null,attention:null,itemsTotal:null,itemsCount:null,pages:{offset:null,limit:null,count:null}},state:{filter:null,pages:{offset:null,limit:null},sort:null},loading:!1,loadingMinTimeout:null,mapLoading:!1,changedFilters:null,isInitialState:!0,currentLocation:null,isGeolocationChanged:!1}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},useHeaderFilter:{type:Boolean,default:!1},frame:{type:Boolean,default:!1},mode:{type:String,default:"article"},view:{type:String,default:"regular"},initialOpenArticle:{default:null},userLocation:{type:Array,default:null}
1,allCoords:{default:null},noPageNav:{type:Boolean,default:!1},noHistory:{type:Boolean,default:!1},fill:{type:Boolean,default:!1},openDetailInNewPage:{type:Boolean,default:!1}},methods:{computedImg:function(t){return window.location.origin+t},openNewWindow:function(t,e,n){window.open(t,e,n)},showRoute:function(n){var a=this;a.mapLoading=!0,ymaps.geolocation.get({provider:"auto",autoReverseGeocode:!0}).then(function(t){var e;!t.error||Model.geolocation&&Model.geolocation.coords?(a.currentLocation=Model.geolocation.coords||t.geoObjects.get(0).geometry.getCoordinates(),a.currentLocation&&a.currentLocation.lat&&(a.currentLocation=[a.currentLocation.lat,a.currentLocation.long]),a.currentLocation&&n?(e=new ymaps.multiRouter.MultiRoute({referencePoints:[a.currentLocation,n]},{boundsAutoApply:!0}),a.$refs.map.$emit("add-route",e)):console.warn("v-article-list-full create route error",t)):alert("Невозможно построить маршрут, т.к. Яндекс.Карты не смогли определить ваше местоположение."),a.mapLoading=!1})},openFilterPanel:function(){this.$refs.filter.$emit("openpanel")},getActiveFilterKey:function(t){try{if("object"==_typeof(t.value)&&!_.find(_.find(this.catalog.filters,{id:t.id}).options,{value:t.value}))return t.id+"/custom"}catch(t){}return t.id+"/"+JSON.stringify(t.value)},navigateByLink:function(t){this.catalog.remote=t.href,this.state.filter=null,this.loadCatalog()},navigateByPage:function(t){console.log(t),this.state.offset=t.offset,this.state.limit=t.limit,this.loadCatalog(),$("html, body").animate({scrollTop:$(this.$el).offset().top-40},500)},loadCatalog:function(t,e){function n(){if(s){var t=i.catalog.items;i.catalog=s.catalog,e&&(i.catalog.items=t.concat(i.catalog.items)),e||(i.pushState(),i.isInitialState=!1);try{i.state.pages=s.catalog.pages,s.state&&(i.state.sort=s.state.sort)}catch(t){console.warn("v-article-list-full: something wrong with state\n",t)}window.vHeaderFilter&&(window.vHeaderFilter.$emit("set-filters",i.catalog.filters),window.vHeaderFilter.$emit("set-loading",!1),window.vHeaderFilter.$off("filtered",i.filterChanged).$on("filtered",i.filterChanged))}i.loadingMinTimeout=null,i.loading=!1,i.isGeolocationChanged&&(i.isGeolocationChanged=!1,i.loadCatalog()),i.$nextTick(function(){i.$refs.map&&(i.$refs.map.$emit("update-markers"),i.$refs.map.$emit("adjust-bounds"))})}var a,i=this,s=null,l=!1;i.loading||(i.loading=!0,window.vHeaderFilter&&window.vHeaderFilter.$emit("set-loading",!0),t||(i.loadingMinTimeout=setTimeout(function(){l&&n(),i.loadingMinTimeout=null},300)),(a=_.clone(i.state)).filter||(a.filter=null),Model&&Model.geolocation&&(a.location=Model.geolocation.coords||null),$.ajax({url:i.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:a,bxajaxid:i.bxajaxid}}).done(function(t){console.log("v-article-list-full loaded",t),s=t}).fail(function(t){console.warn("v-article-list-full load failed",t)}).always(function(){l=!0,i.loadingMinTimeout&&!t||n()}))},loadMore:function(){this.state.pages.offset=parseInt(this.catalog.pages.offset)+parseInt(this.catalog.pages.limit),this.loadCatalog(!1,!0)},filterChanged:function(t,e,n){var a=this;a.changedFilters=e,a.state.filter=t,clearTimeout(a.filterDebounceTimeout),a.filterDebounceTimeout=setTimeout(a.stateChanged,n&&"range"==n.type?3200:1e3)},filterUpdated:function(t,e){this.changedFilters=e,this.state.filter=t},stateChanged:function(){this.loadCatalog()},resetFilter:function(t,e){void 0===t?this.$refs.filter.$emit("reset"):this.$refs.filter.$emit("reset",t,e)},resetHeaderFilter:function(t,e){window.vHeaderFilter&&(void 0===t?window.vHeaderFilter.$emit("reset"):window.vHeaderFilter.$emit("reset",t,e))},handlePopState:function(t){t.state&&"v-article-list-full"==t.state.component&&!this.noHistory&&(console.log("v-article-list-full: pop state",t.state),this.state=t.state.state,this.catalog=t.state.catalog)},pushState:function(t){"localhost"==window.location.hostname||this.noHistory||window.history[this.isInitialState||t?"replaceState":"pushState"]({component:"v-article-list-full",state:this.state,catalog:this.catalog},"",this.catalog.remote)},replaceState:function(){this.pushState(!0)},linkClick:function(t,e,n){t&&t.preventDefault(),this.openDetailInNewPage?window.location.href=e:modalController.open({component:"v-article",className:"modal--lg modal--article",remoteDataSource:e,bxajaxid:this.bxajaxid,ownHistory:!n})},slideDown:function(t,e){$(t).hide().slideDown(200,e),setTimeout(function(){$(t).find(".slick-slider").slick("setPosition")},75)},slideUp:function(t,e){$(t).show().slideUp(200,e)}},created:function(){var t=this;if(t.staticDataSource){if(t.catalog=t.staticDataSource.catalog,t.staticDataSource.pages&&(t.state.pages.limit=parseInt(t.staticDataSource.pages.limit)),"online"!=t.staticDataSource.catalog.shopType&&t.staticDataSource.catalog.sorts)try{t.state.sort=t.staticDataSource.state?t.staticDataSource.state.sort:t.staticDataSource.catalog.sorts[0].value}
1catch(t){console.warn("v-catalog: something wrong with initial sort value\n",t)}console.log("v-article-list-full loaded from static data",t.catalog),t.pushState()}else t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.filterPreset&&(this.state.filter=_.map(t.filterPreset,function(t){return{id:t.id,value:t.value,type:t.type}})),t.loadCatalog(!0));window.vHeaderFilter?(window.vHeaderFilter.$emit("set-filters",t.catalog.filters),window.vHeaderFilter.$on("filtered",t.filterChanged),window.vHeaderFilter.$on("filterupdate",t.filterUpdated)):setTimeout(function(){window.vHeaderFilter?(window.vHeaderFilter.$emit("set-filters",t.catalog.filters),window.vHeaderFilter.$on("filtered",t.filterChanged),window.vHeaderFilter.$on("filterupdate",t.filterUpdated)):console.warn("v-article-list-full: header filters not found")},1e3),t.initialOpenArticle&&(t.pushState(),t.linkClick(null,t.initialOpenArticle,!0)),window.addEventListener("popstate",t.handlePopState),Model.$on("geolocation-changed",function(){t.isGeolocationChanged=!0,t.loading||t.loadCatalog()})},destroyed:function(){window.removeEventListener("popstate",this.handlePopState)}}),Vue.component("v-article",{template:'\n\t<article class="v-article article" itemscope itemtype="https://schema.org/Article">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\n\t\t<div class="article__arrows" v-if="catalog.prevArticle || catalog.nextArticle">\n\t\t\t<a :href="catalog.prevArticle.remote" class="article__arrow article__arrow--prev" \n\t\t\t   v-if="catalog.prevArticle && catalog.prevArticle.remote" @click="navigate(catalog.prevArticle.remote, $event)">\n\t\t\t\t<div class="article__arrow-image" :style="{\'background-image\': \'url(\'+catalog.prevArticle.image+\')\'}"></div>\n\t\t\t\t<div class="article__arrow-main">{{catalog.prevArticle.title}}</div>\n\t\t\t\t<div class="article__arrow-icon">\n\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-left"></use></svg>\n\t\t\t\t</div>\n\t\t\t</a>\n\t\t\t<a :href="catalog.nextArticle.remote" class="article__arrow article__arrow--next" \n\t\t\t   v-if="catalog.nextArticle && catalog.nextArticle.remote" @click="navigate(catalog.nextArticle.remote, $event)">\n\t\t\t\t<div class="article__arrow-icon">\n\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-right"></use></svg>\n\t\t\t\t</div>\n\t\t\t\t<div class="article__arrow-main">{{catalog.nextArticle.title}}</div>\n\t\t\t\t<div class="article__arrow-image" :style="{\'background-image\': \'url(\'+catalog.nextArticle.image+\')\'}"></div>\n\t\t\t</a>\n\t\t</div>\n\n\n\n\t\t<div class="article__meta flc fcc" v-if="catalog.article && (catalog.article.labels || catalog.article.date)">\n\t\t\t<div class="article__meta-labels" v-if="catalog.article.labels">\n\t\t\t\t<a v-if="catalog.article.labels" :href="label.link" class="badge" :class="{\'badge--reflex\': label.link}" :style="{\'background-color\': label.color || null}"\n\t\t\t\t   v-for="label in catalog.article.labels">{{label.text}}</a>\n\t\t\t</div>\n\t\t\t<time v-if="catalog.article.date && !pageMode" :datetime="catalog.article.date.datetime" class="article-poster__meta-date">{{catalog.article.date.text}}</time>\n\t\t</div>\n\n\t\t<div class="article__poster flc" v-if="catalog.article && catalog.article.image" :class="{\'article__poster--centered\': catalog.article.singleImage}">\n\t\t\t<img :src="catalog.article.image" alt="">\n\t\t</div>\n\n\t\t<div class="article__poster flc" v-if="catalog.article && catalog.article.videoLink">\n\t\t\t<div class="video-box">\n\t\t\t\t<iframe :src="catalog.article.videoLink" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="article__title flc fcc" v-if="catalog.article && catalog.article.title">\n\t\t\t<h2 v-show="!pageMode" class="article__title-text h2" itemprop="headline">{{catalog.article.title}}</h2>\n\t\t\t<div class="article__title-price" v-if="catalog.article.price">\n\t\t\t\t<div class="price-badge price-badge--lg">\n\t\t\t\t\t<svg class="svg-icon price-badge__icon">\n\t\t\t\t\t<use xlink:href="#svg-icon-marker"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t\t<span class="price-badge__value">{{catalog.article.price}}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="article__params flc" v-if="catalog.article && catalog.article.params && c
1atalog.article.params.length">\n\t\t\t<div class="simple-params flc">\n\t\t\t\t<div class="simple-params__item" v-for="param in catalog.article.params">\n\t\t\t\t\t<span class="simple-params__key flc" v-if="param.key">{{param.key}}:</span>\n\t\t\t\t\t<span class="simple-params__value flc" v-if="param.value">{{param.value}}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="article__action flc" v-if="catalog.article && catalog.article.type == \'job\'">\n\t\t\t<div class="btn-grid">\n\t\t\t\t<button class="btn btn--primary" type="button" @click="openFormByAjaxID">\n\t\t\t\t\t{{ getMessage(\'RESPOND\') }} <svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t</button>\n\t\t\t\t<a v-if="catalog.article.questionnaire" :href="catalog.article.questionnaire" class="btn" download>\n\t\t\t\t\t{{ getMessage(\'DOWNLOAD_QUESTIONNAIRE\') }} <svg class="btn__download svg-icon"><use xlink:href="#svg-icon-download"></use></svg>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\n        <div class="article__action flc" v-if="catalog.article && catalog.article.type == \'stock\' && catalog.article.remoteForm">\n            <div class="btn-grid">\n                <button v-if="catalog.article.remoteForm" class="btn btn--primary" type="button" @click="openFormByAjaxID">\n\t\t\t\t\t{{ getMessage(\'PARTICIPATE\') }} <svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n                </button>\n            </div>\n        </div>\n\n\t\t<component v-if="catalog.article && catalog.article.component" :is="catalog.article.component.name"\n\t\t\t\t   :remote-data-source="catalog.article.component.remoteDataSource || null"\n\t\t\t\t   :static-data-source="catalog.article.component.staticDataSource || null"\n\t\t\t\t   :bxajaxid="bxajaxid"></component>\n\n\t\t<v-lazy-component class="article__body flc text-guide" v-if="catalog.article && catalog.article.body" :key="catalog.article.id"\n\t\t\t\t\t\t  itemprop="name">\n\t\t\t<div v-html="catalog.article.body"></div>\n\t\t</v-lazy-component>\n\n\n\t\t<div class="article__action flc" v-if="catalog.article && catalog.article.type == \'job\'">\n\t\t\t<div class="btn-grid">\n\t\t\t\t<button v-if="catalog.article.remoteForm" class="btn btn--primary" type="button" @click="openFormByAjaxID">\n\t\t\t\t\t{{ getMessage(\'RESPOND\') }} <svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t</button>\n\t\t\t\t<a v-if="catalog.article.questionnaire" :href="catalog.article.questionnaire" class="btn" download>\n\t\t\t\t\t{{ getMessage(\'DOWNLOAD_QUESTIONNAIRE\') }} <svg class="btn__download svg-icon"><use xlink:href="#svg-icon-download"></use></svg>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="article__action flc" v-if="catalog.article && catalog.article.type == \'stock\' && catalog.article.remoteForm">\n\t\t\t<div class="btn-grid">\n\t\t\t\t<button v-if="catalog.article.remoteForm" class="btn btn--primary" type="button" @click="openFormByAjaxID">\n\t\t\t\t\t{{ getMessage(\'PARTICIPATE\') }} <svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div v-else-if="catalog.linkToList && catalog.linkToListText" class="article__action flc">\n\t\t\t<div class="btn-grid">\n\t\t\t\t<a :href="catalog.linkToList" class="btn" @click="close">\n\t\t\t\t\t{{catalog.linkToListText || \'Вернуться к списку\'}}\n\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\n\n\t\t<div v-if="shareText" v-html=\'shareText\'></div> \n\n\t</article>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{article:null,remote:null,linkToList:null},shareText:null,state:{filter:null},loading:!1,loadingMinTimeout:null}},props:{pageMode:{type:[Object,Boolean],default:!1},remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},methods:{navigate:function(t,e){this.pageMode||(e.preventDefault(),this.catalog.remote=t,this.loadCatalog())},loadCatalog:function(t){function e(){i&&(a.catalog=i.catalog,void 0!==i.shareText&&(a.shareText=i.shareText),a.pushState()),a.loadingMinTimeout=null,a.loading=!1,a.$emit("loaded")}var n,a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&e(),a.loadingMinTimeout=null},300)),(n=_.clone(a.state)).filter&&n.filter.length||(n.filter=null),$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:n,bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-article loaded",t),i=t}).fail(function(t){console.warn("v-article load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||e()}))},pushState:function(){window.history.pushState({component:"v-article",state:this.state,catalog:this.catalog},"",this.catalog.article.remote||this.catalog.article.link)},close:function(t){this.pageMode||(t.preventDefault(),modalController.close())},openForm:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--form",remoteDataSource:this.catalog.article.remoteForm})},openFormByAjaxID:function(){var t=new Url(this.catalog.article.remoteForm).query.bxajaxid;modalController.open({component:"v-rich-form",className:"modal--lg modal--form",remoteDataSource:this.catalog.article.remoteForm,ownHistory:!1,bxajaxid:t,props:{frame:!0}})}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,void 0!==t.staticDataSource.shareText&&(t.shareText=t.staticDataSource.shareText),t.$emit("loaded"),console.log("v-article loaded from static data",t.catalog)):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),window.addEventListener("popstate",t.handlePopState),t.staticDataSource&&t.pushState()},destroyed:function(){window.removeEventListener("popstate",this.handlePopState)}}),Vue.component("v-avatar-sc",{template:'\n\t<div class="v-avatar-sc avatar-sc">\n\t\t<form class="avatar-sc__form">\n\t\t\t<div class="form__row">\n\t\t\t\t<div class="form__col">\n\t\t\t\t\t<v-field\n\t\t\t\t\t\t:type="form.type"\n\t\t\t\t\t\t:note=\'form.note\'\n\t\t\t\t\t\t@input="loadForm"\n\t\t\t\t\t></v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</form>\n\t</div>\n',data:function(){return{form:{remote:null,email:null,type:null,options:null},loading:!1,loadingMinTimeout:null,remote:null,localFormData:null}},props:{staticDataSource:{default:null},remoteDataSource:{default:null},bxajaxid:{default:null}},methods:{loadForm:function(t){function e(){if(a){if(n.form=a.form,a.success&&a.redirect)return window.location.href=a.redirect;if(a.success&&a.reload)return window.location.reload()}n.loadingMinTimeout=null,n.loading=!1,n.$emit("loaded")}var n=this,a=null,i=!1;n.loading||(n.loading=!0,t||(n.loadingMinTimeout=setTimeout(function(){i&&e(),n.loadingMinTimeout=null},300)),$.ajax({url:n.form.remote,method:"post",dataType:"json",data:n.localFormData,processData:!1,contentType:!1}).done(function(t){console.log("v-avatar-sc loaded",t),a=t}).fail(function(t){console.warn("v-avatar-sc load failed",t)}).always(function(){i=!0,n.loadingMinTimeout&&!t||e()}))}},created:function(){var t=this;t.staticDataSource?t.form=t.staticDataSource.form:t.remoteDataSource&&(t.form.remote=t.remoteDataSource,t.loadForm(!0)),t.localFormData=new FormData,t.localFormData.append("bxajaxid",t.bxajaxid)}}),Vue.component("v-basket-small",{template:'\n\t<div class="v-basket-small basket-btn"\n\t\t\t @click="goToOrder()">\n\t\t<svg class="basket-btn__icon svg-icon">\n\t\t\t<use xlink:href="#svg-icon-basket"></use>\n\t\t</svg>\n\t\t<div class="basket-btn__name">\n\t\t\t{{getMessage(\'BASKET\')}}\n\t\t</div>
1\n\t\t<div class="basket-btn__counter">\n\t\t\t{{basketCount}}\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{basket:{}}},props:{bxajaxid:{default:null},staticDataSource:{default:null},view:{default:"regular"}},methods:{goToOrder:function(){console.log("vm.basket.link",this.basket.link),window.location.href=this.basket.link}},computed:{basketCount:function(){return this.basket.items?this.basket.items.length:0}},created:function(){var t=this;t.staticDataSource&&(t.basket=Model.basket=t.staticDataSource.basket,Model.$on("basket-changed",function(){t.basket=Model.basket}))}}),Vue.component("v-basket",{template:'\n\t<div class="v-basket basket">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\t\t<div class="basket__container container">\n\n\t\t\t\x3c!--Успех--\x3e\n\t\t\t<template v-if="basket.success">\n\t\t\t\t<div class="basket__header">\n\t\t\t\t\t<h1 v-if="basket.successMessage" \n\t\t\t\t\t\t\tclass="basket__title" \n\t\t\t\t\t\t\tv-html="basket.successMessage">\n\t\t\t\t\t</h1>\n\t\t\t\t\t<div class="basket__link-back">\n\t\t\t\t\t\t<slot name="link-back"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="basket__wrap">\n\t\t\t\t\t<div class="basket__left">\n\t\t\t\t\t\t<v-product v-for="product in basket.items"\n\t\t\t\t\t\t           template="basket-item-success"\n\t\t\t\t\t\t           :product="product"\n\t\t\t\t\t\t           class="product--basket-item"\n\t\t\t\t\t\t           :key="product.id">\n\t\t\t\t\t\t</v-product>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="basket__right">\n\t\t\t\t\t\t<div class="basket__resume-wrap">\n\t\t\t\t\t\t\t<div class="basket__resume">\n\t\t\t\t\t\t\t\t<div class="basket__resume-header">\n\t\t\t\t\t\t\t\t\t<div class="basket__total">\n\t\t\t\t\t\t\t\t\t\t<span class="basket__total-text">{{getMessage(\'TOTAL\')}}:</span>\n\t\t\t\t\t\t\t\t\t\t<span class="basket__dots"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="basket__total-price">\n\t\t\t\t\t\t\t\t\t\t\t<v-price v-if="basket && basket.resume && basket.resume.totalPrice" \n\t\t\t\t\t\t\t\t\t\t\t         :price="basket.resume.totalPrice">\n\t\t\t\t\t\t\t\t\t\t\t</v-price>\n\t\t\t\t\t\t\t\t\t\t\t<v-price v-else \n\t\t\t\t\t\t\t\t\t\t\t         :price="totalPrice">\n\t\t\t\t\t\t\t\t\t\t\t</v-price>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div v-if="basket && basket.items && basket.resume.productsCount" \n\t\t\t\t\t\t\t\t\t     class="basket__product-counter">\n\t\t\t\t\t\t\t\t\t\t{{basket.resume.productsCount}} {{pluralize(basket.resume.productsCount, \'\', [getMessage(\'ONE_PRODUCT\'), getMessage(\'TWO_PRODUCT\'), getMessage(\'MORE_PRODUCT\')])}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="basket.resume.totalInfo" class="form-info form-info--alt">\n\t\t\t\t\t\t\t\t\t<div class="form-info__main">\n\t\t\t\t\t\t\t\t\t\t<div v-for="item in basket.resume.totalInfo" class="form-info__item flc">\n\t\t\t\t\t\t\t\t\t\t\t<h5 class="form-info__name">{{item.name}}</h5>\n\t\t\t\t\t\t\t\t\t\t\t<p class="form-info__descr">{{item.text}}</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="basket__resume-footer">\n\t\t\t\t\t\t\t\t\t<button v-if="basket.printLink"\n\t\t\t\t\t\t\t\t\t        @click.prevent="openNewWindow(basket.printLink, \'\', basket.printFeatures)" \n\t\t\t\t\t\t\t\t\t        class="basket__btn btn btn--secondary btn--secondary-alt" \n\t\t\t\t\t\t\t\t\t        type="button">\n\t\t\t\t\t\t\t\t\t\t{{getMessage(\'PRINT_ORDER\')}}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t\x3c!--Оформление заказа--\x3e\n\t\t\t<template v-else-if="basket.step > 0 && basket.items && basket.items.length > 0">\n\t\t\t\t<div class="basket__header">\n\t\t\t\t\t<h1 class="basket__title" v-if="basket.title">\n\t\t\t\t\t\t{{basket.title}}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<div class="basket__link-back">\n\t\t\t\t\t\t<slot name="link-back"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<header class="section-header section-header--border flc">\n\t\t\t\t\t<div class="section-header__aside section-header__aside--ml0">\n\t\t\t\t\t\t<div class="tab-labels">\n\t\t\t\t\t\t\t<div class="tab-labels__row">\n\t\t\t\t\t\t\t\t<div v-for="stepdata in basket.steps"\n\t\t\t\t\t\t\t\t     @click="changeStep(stepdata.number)"\n\t\t\t\t\t\t\t\t     class="tab-labels__item" \n\t\t\t\t\t\t\t\t     :class="{\'hidden\': stepdata.code === \'list\'}">\n\t\t\t\t\t\t\t\t\t<button type="button" \n\t\t\t\t\t\t\t\t\t        class="tab-labels__btn" \n\t\t\t\t\t\t\t\t\t        :class="{\'open\': stepdata.current}">\n\t\t\t\t\t\t\t\t\t\t{{stepdata.title}}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</header>\n\t\t\t\t<div class="basket__wrap">\n\t\t\t\t\t<div class="basket__left">\n\t\t\t\t\t\t<div v-if="getCurrentForm && getCurrentForm.formInfo" \n\t\t\t\t\t\t     v-html="getCurrentForm.formInfo" \n\t\t\t\t\t\t     class="basket__form-info">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if="getCurrentForm" class="basket__form rich-form flc">\n\t\t\t\t\t\t\t<div class="rich-form__main">\n\t\t\t\t\t\t\t\t<div class="rich-form__form form flc">\n\t\t\t\t\t\t\t\t\t<div class="rich-form__groups flc">\n\t\t\t\t\t\t\t\t\t\t<div v-for="group in getCurrentForm.groups" \n\t\t\t\t\t\t\t\t\t\t     class="rich-form__group flc">\n\t\t\t\t\t\t\t\t\t\t\t<h4 v-if="group.title" \n\t\t\t\t\t\t\t\t\t\t\t    class="form__group-title h4 flc">\n\t\t\t\t\t\t\t\t\t\t\t\t{{group.title}}\n\t\t\t\t\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t\t\t\t\t<div class="rich-form__group-body" \n\t\t\t\t\t\t\t\t\t\t\t     :class="{\'ric
1h-form__group-body--background\': group.background}">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="rich-form__group-body-layout">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="form__row flc" \n\t\t\t\t\t\t\t\t\t\t\t\t\t     :style="{\'width\': field.width ? field.width : null}"\n\t\t\t\t\t\t\t\t\t\t\t\t\t     v-for="(field, fieldIndex) in getCurrentForm.fields"\n\t\t\t\t\t\t\t\t\t\t\t\t\t     v-if="group.id === field.groupId"\n\t\t\t\t\t\t\t\t\t\t\t\t\t     :key="fieldIndex">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="form__col">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<v-field\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:extendable="field.extendable || false"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:extend-limit="field.extendLimit || 5"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:extend-text="field.extendText || \'Добавить\'"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:type="field.type"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:options="field.options"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:disabled="field.disabled"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:disabled-dates="field.disabledDates"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:label="field.label"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:integrated-label="true"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:error="getFieldError(field)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:note="field.note"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:description="field.description"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:mask="field.mask"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:files="field.files"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:simple="field.simple"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv-model="field.value"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:required="field.required"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t@input="checkForSubmit(field, $event)">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="getCurrentForm.requireConfirm"\n\t\t\t\t\t\t\t\t\t\t     class="form__confirm form__confirm--mt35 flc">\n\t\t\t\t\t\t\t\t\t\t\t<v-field type="checkbox"\n\t\t\t\t\t\t\t\t\t\t\t         v-model="confirmed"\n\t\t\t\t\t\t\t\t\t\t\t         :label="getCurrentForm.confirmText">\n\t\t\t\t\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="getCurrentForm.submitBtnText"\n\t\t\t\t\t\t\t\t\t\t     class="form__action form__action--mt20">\n\t\t\t\t\t\t\t\t\t\t\t<div class="form__action-grid">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="form__action-item">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click="submitFormStep(true)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t        type="button"\n\t\t\t\t\t\t\t\t\t\t\t\t\t        class="btn btn--primary"\n\t\t\t\t\t\t\t\t\t\t\t\t\t        :disabled="getCurrentForm.requireConfirm && !confirmed">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{currentStep.nextButton}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="basket__right">\n\t\t\t\t\t\t<div class="basket__resume-wrap">\n\t\t\t\t\t\t\t<div class="basket__resume">\n\t\t\t\t\t\t\t\t<div class="basket__resume-header">\n\t\t\t\t\t\t\t\t\t<div class="basket__total">\n\t\t\t\t\t\t\t\t\t\t<span class="basket__total-text">{{getMessage(\'TOTAL\')}}:</span>\n\t\t\t\t\t\t\t\t\t\t<span class="basket__dots"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="basket__total-price">\n\t\t\t\t\t\t\t\t\t\t<v-price v-if="basket && basket.resume && basket.resume.totalPrice" :price="basket.resume.totalPrice"></v-price>\n\t\t\t\t\t\t\t\t\t\t<v-price v-else :price="totalPrice"></v-price>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div v-if="basket && basket.items" class="basket__product-counter">\n\t\t\t\t\t\t\t\t\t\t{{basket.items.length}} {{pluralize(basket.items.length, \'\', [getMessage(\'ONE_PRODUCT\'), getMessage(\'TWO_PRODUCT\'), getMessage(\'MORE_PRODUCT\')])}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="basket__resume-footer">\n\t\t\t\t\t\t\t\t\t<button @click="changeStep(1)" class="basket__bt
1n btn btn--secondary btn--secondary-alt" type="button">\n\t\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--left svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-left"></use>\n\t\t\t\t\t\t\t\t\t\t</svg>{{getMessage(\'CHANGE_ORDER\')}}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="basket__attention-block">\n\t\t\t\t\t\t\t\t<slot name="attention-block-2"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t\x3c!--Спосок товаров--\x3e\n\t\t\t<template v-else-if="basket.items && basket.items.length > 0">\n\t\t\t\t<div class="basket__header">\n\t\t\t\t\t<h1 class="basket__title" v-if="basket.title">\n\t\t\t\t\t\t{{basket.title}}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<div class="basket__link-back">\n\t\t\t\t\t\t<slot name="link-back"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="basket__attention-block">\n\t\t\t\t\t<slot name="attention-block"></slot>\n\t\t\t\t</div>\n\t\t\t\t<div class="basket__wrap">\n\t\t\t\t\t<div class="basket__left">\n\t\t\t\t\t\t<v-product v-for="product in basket.items"\n\t\t\t\t\t\t           template="basket-item"\n\t\t\t\t\t\t           :product="product"\n\t\t\t\t\t\t           @changeCounter="changeCounter"\n\t\t\t\t\t\t           @remove="removeProductFromBasket"\n\t\t\t\t\t\t           :key="product.id">\n\t\t\t\t\t\t</v-product>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="basket__right">\n\t\t\t\t\t\t<div class="basket__resume-wrap">\n\t\t\t\t\t\t\t<div class="basket__resume">\n\t\t\t\t\t\t\t\t<div class="basket__resume-header">\n\t\t\t\t\t\t\t\t\t<div class="basket__total">\n\t\t\t\t\t\t\t\t\t\t<span class="basket__total-text">{{getMessage(\'TOTAL\')}}:</span>\n\t\t\t\t\t\t\t\t\t\t<span class="basket__dots"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="basket__total-price">\n\t\t\t\t\t\t\t\t\t\t\t<v-price v-if="basket && basket.resume && basket.resume.totalPrice" :price="basket.resume.totalPrice"></v-price>\n\t\t\t\t\t\t\t\t\t\t\t<v-price v-else :price="totalPrice"></v-price>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div v-if="basket && basket.items" class="basket__product-counter">\n\t\t\t\t\t\t\t\t\t\t{{basket.items.length}} {{pluralize(basket.items.length, \'\', [getMessage(\'ONE_PRODUCT\'), getMessage(\'TWO_PRODUCT\'), getMessage(\'MORE_PRODUCT\')])}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="basket__resume-footer">\n\t\t\t\t\t\t\t\t\t<button @click="changeStep(1)" class="basket__btn btn btn--primary" type="button">\n\t\t\t\t\t\t\t\t\t\t{{getMessage(\'PROCEED_TO_CHECKOUT\')}}\n\t\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<button class="basket__reset btn btn--sm" @click="clearBasket">\n\t\t\t\t\t\t\t\t<svg class="btn__close btn__close--left svg-icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-lite-close"></use>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t&nbsp;{{getMessage(\'EMPTY_BASKET\')}}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t\x3c!--Пустая корзина--\x3e\n\t\t\t<template v-else>\n\t\t\t\t<div v-if="basket.emptyMessage" \n\t\t\t\t     class="basket__message" \n\t\t\t\t     v-html="basket.emptyMessage">\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{basket:{},state:{},loading:!1,loadingMinTimeout:null,currentBasketItems:[],counterTimeout:null,totalPrice:{new:{single:!0,value:0,currency:"руб."}},confirmed:!1}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},mode:{type:String,default:"basket"}},watch:{},computed:{currentStep:function(){return _.find(this.basket.steps,{number:this.basket.step})},getCurrentForm:function(){return this.basket.forms[this.currentStep.code]||[]}},methods:{openNewWindow:function(t,e,n){window.open(t,e,n)},changeCounter:function(t){var e,n=this;!t.value[0]||(e=_.find(this.basket.items,{id:t.id}))&&e.count==t.value[0]||(clearTimeout(this.counterTimeout),this.counterTimeout=setTimeout(function(){n.loading=!0,Model.basketAdd({items:[t.id],count:t.value[0],setValue:1})},1500))},clearBasket:function(){Model.basketClear()},removeProductFromBasket:function(t){Model.basketRemove({items:[t]})},checkBasketState:function(t){this.basket.success||this.basket.checksum!=t.checksum&&this.loadBasket({forceLoad:!0})},loadBasket:function(){function t(){i&&(a.basket=i.basket),a.loadingMinTimeout=null,a.loading=!1,a.$forceUpdate()}var e,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},a=this,i=null,s=!1;a.loading&&!n.forceLoad||(a.loading=!0,n.fast||(a.loadingMinTimeout=setTimeout(function(){s&&t(),a.loadingMinTimeout=null},300)),e=_.clone(a.state),$.ajax({url:a.basket.remote,method:"post",dataType:"json",data:{action:n.action||"load",state:e,bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-basket: loaded",t),i=t}).fail(function(t){console.warn("v-basket: load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!n.fast||(t(),a.currentBasketItems=[],_.each(a.basket.items,function(t){a.currentBasketItems.push({id:t.id})}))}))},submitFormStep:function(e){var n,t=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1],a=this;a.loading||(console.log("submit form step",a.currentStep.code,e),a.loading=1,(n=[]).push({name:"bxajaxid",value:a.bxajaxid}),n.push({name:"STEP",value:e?a.currentStep.number+1:a.basket.step}),n.push({name:"COMMENT",value:a.basket.comment}),n.push({name:"AUTOSUBMIT",value:t}),_.each(a.basket.steps,function(t,e){_.each(a.basket.forms[e].fields,function(t){n.push({name:t.name,value:t.value})})}),$.post({url:a.basket.remote,data:n,dataType:"json"}).done(function(t){return t.basket.resume.reload?void(window.location=t.basket.resume.reload):(a.loading=0,a.basket=t.basket,void(e||(a.basket.errors.fields=[])))}).fail(function(){a.loading=0,console.log("basket submit fail")}))},checkForSubmit:function(t){t.autosubmit&&(console.log("autosubmit"),this.submitFormStep(!1,!0)),t.id==this.currentStep.submitField&&this.submitFormStep()},getFieldError:function(t){return this.basket.errors.fields[t.id]||null},changeStep:function(t){var e=this;t<e.basket.step&&(e.basket.step=t,e.submitFormStep()),t>e.basket.step&&e.submitFormStep(!0)}},created:function(){var e=this;e.staticDataSource?e.basket=e.staticDataSource.basket:e.remoteDataSource&&(e.basket.remote=e.remoteDataSource,e.loadBasket()),e.empty?e.loading=!1:(Model.$on("basket-changed",e.checkBasketState),e.currentBasketItems=[],_.each(e.basket.items,function(t){e.currentBasketItems.push({id:t.id})}))}}),Vue.component("v-big-gallery",{template:'\n\t<div class="v-big-gallery big-gallery">\n\t\t<div class="big-gallery__view">\n\t\t\t<v-slick ref="view" class="big-gallery__view-slider slick-default-arrows" @beforeChange="viewSlide" @init="initSliderView" :options="sliderOptions">\n\t\t\t\t<div class="big-gallery__view-item" v-for="(image, index) in localImages" :key="index">\n\t\t\t\t\t<div class="big-gallery__view-image"\n\t\t\t\t\t\t\t :class="{\'big-gallery__view-image--can-zoom\': image.srcFull}"\n\t\t\t\t\t\t\t @click="activateZoom($event, image)">\n\t\t\t\t\t\t<img class="big-gallery__view-picture" :class="{\'big-gallery__view-picture--hidden\': isDragActive}" :data-lazy="image.srcFull || image.src || image.srcPoster" :alt="alt">\n\t\t\t\t\t\t<div v-if="image.srcFull" class="big-gallery__lens" :class="{\'open\': isDragActive}">\n\t\t\t\t\t\t\t<img class="big-gallery__lens-image" :src="image.srcFull" alt="" @dragstart="() => false" @pointerdown="onThumbDown">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="big-gallery__view-item" v-for="(image, index) in localImages360">\n\t\t\t\t\t<div class="big-gallery__view-image">\n\t\t\t\t\t\t<v-image-360 :images="image"></v-image-360>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="big-gallery__view-item" v-for="(image, index) in localVideos">\n\t\t\t\t\t<div class="big-gallery__view-image">\n\t\t\t\t\t\t<div class="big-gallery__view-video-box">\n\t\t\t\t\t\t\t<iframe :src="image.src" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</v-slick>\n\t\t</div>\n\t\t<div class="big-gallery__thumbs" :class="{\'big-gallery__thumbs--no-slider\': touchMode || tabletMode}" v-if="(localImages.length  +  localImages360.length + localVideos.length)>1">\n\t\t\t <v-slick ref="thumbs" class="big-gallery__thumbs-slider slick-default-arrows"\n\t\t\t\t @init="initSliderThumbs" :options="thumbsOptions" :slider-mode="!touchMode && !tabletMode">\n\t\t\t\t<div class="big-gallery__thumbs-slide" v-for="(image, index) in localImages">\n\t\t\t\t\t<div class="big-gallery__thumbs-item" :class="{\'big-gallery__thumbs-item--active\': activeIndex == index}"\n\t\t\t\t\t\t @click="activateSlide(index)">\n\t\t\t\t\t\t <img :src="image.srcPoster || image.src || image.srcFull" :alt="alt">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="big-gallery__thumbs-slide" v-for="(image, index) in localImages360">\n\t\t\t\t\t<div class="big-gallery__thumbs-item" :class="{\'big-gallery__thumbs-item--active\': activeIndex == index}"\n\t\t\t\t\t\t @click="activateSlide(index + localImages ? localImages.length : 0)">\n\t\t\t\t\t\t<svg class="svg-icon big-gallery__thumbs-360-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-360"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="big-gallery__thumbs-slide" v-for="(image, index) in localVideos">\n\t\t\t\t\t<div class="big-gallery__thumbs-item" :class="{\'big-gallery__thumbs-item--active\': activeIndex == index}"\n\t\t\t\t\t\t :style="{\'background-image\': \'url(\'+image.srcPoster+\')\'}"\n\t\t\t\t\t\t @click="activateSlide(index + (localImages ? localImages.length : 0) + (localImages360 ? localImages360.length : 0))">\n\t\t\t\t\t\t <svg class="svg-icon big-gallery__thumbs-video-icon"><use xlink:href="#svg-icon-video-btn"></use></svg>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</v-slick>\n\t\t</div>\n\t</div>\n',data:function(){return{touchMode:View.mobileAndTabletCheck,sliderOptions:{draggable:!1,initialIndex:this.localInitialIndex,infinite:!1,arrows:!0,responsive:[{breakpoint:View.breakpoints["xs-max"],settings:{arrows:!0,dots:!1}}]},thumbsOptions:{initialIndex:this.localInitialIndex,slidesToShow:10,slidesToScroll:4,infinite:!1,arrows:!0,responsive:[{breakpoint:View.breakpoints["sm-max"],settings:"unslick"}]},alt:"",activeIndex:0,localImages:null,localInitialIndex:0,shiftX:0,shiftY:0,viewImage:null,lens:null,lensImage:null,mouseDownCoordX:null,mouseDownCoordY:null,isDragActive:!1}},props:{images:{default:null},full:{default:!0},staticDataSource:{default:null},initialIndex:{default:0},title:{default:null},titleSub:{default:null},titleBottom:{default:null}},watch:{images:function(){this.localImages=this.images},images360:function(){this.localImages360=this.images360},videos:function(){this.localVideos=this.videos},initialIndex:function(){this.localInitialIndex=this.initialIndex}},methods:{activateZoom:function(t){this.isDragActive||View.mobileAndTabletCheck||(this.isDragActive=!0,this.viewImage=t.currentTarget,this.lens=t.currentTarget.querySelector(".big-gallery__lens"),this.lensImage=t.currentTarget.querySelector(".big-gallery__lens-image"),this.lensImage.style.top=this.lens.offsetHeight/2-this.lensImage.offsetHeight/2+"px",this.lensImage.style.left=this.lens.offsetWidth/2-this.lensImage.offsetWidth/2+"px")},deactivateZoom:function(){var t=this;this.lensImage.style.top=this.lens.offsetHeight/2-this.lensImage.offsetHeight/2+"px",this.lensImage.style.left=this.lens.offsetWidth/2-this.lensImage.offsetWidth/2+"px",this.shiftX=0,this.shiftY=0,this.viewImage=null,this.lens=null,this.lensImage=null,setTimeout(function(){t.isDragActive=!1},200)},onThumbDown:function(t){var i=this,s=t.clientX,l=t.clientY;t.preventDefault(),this.shiftY=t.clientY-this.lensImage.getBoundingClientRect().top,this.shiftX=t.clientX-this.lensImage.getBoundingClientRect().left,this.lensImage.setPointerCapture(t.pointerId),this.lensImage.on
1pointermove=this.onThumbMove,this.lensImage.onpointerup=function(t){var e=Math.abs,n=(i.lensImage.onpointermove=null,i.lensImage.onpointerup=null,t.clientX),a=t.clientY;e(s-n)<=10&&e(l-a)<=10&&i.deactivateZoom(t)}},onThumbMove:function(t){var e=t.clientY-this.shiftY-this.lens.getBoundingClientRect().top,t=t.clientX-this.shiftX-this.lens.getBoundingClientRect().left,n=this.lens.offsetWidth-this.lensImage.offsetWidth,n=(n<(t=t<0?0:t)&&(t=n),this.lens.offsetHeight-this.lensImage.offsetHeight);this.lensImage.style.top=(e=(e=0<e?0:e)<n?n:e)+"px",this.lensImage.style.left=t+"px"},viewSlide:function(t,e,n,a){this.activeIndex=a,this.isDragActive&&this.deactivateZoom()},activateSlide:function(t){this.$refs.view.goTo(t,!0)},initSliderView:function(){var t=this;Vue.nextTick(function(){t.$refs.view&&(t.$refs.view.setPosition(),t.$refs.view.goTo(t.localInitialIndex,!0))})},initSliderThumbs:function(){var t=this;Vue.nextTick(function(){t.$refs.thumbs&&t.$refs.thumbs.setPosition()})},handleResize:function(){this.tabletMode=window.innerWidth<=View.breakpoints["sm-max"],this.$forceUpdate()}},created:function(){var t=this;t.staticDataSource?(t.alt=t.staticDataSource.alt,t.localImages=t.staticDataSource.images||t.images||[],t.localImages360=t.staticDataSource.images360||t.images360||[],t.localVideos=t.staticDataSource.videos||t.videos||[],t.localInitialIndex=t.staticDataSource.initialIndex):(t.localImages=t.images,t.localImages360=t.images360||[],t.localVideos=t.videos||[],t.localInitialIndex=t.initialIndex||[]),t.handleResize(),window.addEventListener("resize",t.handleResize)},destroyed:function(){window.removeEventListener("resize",this.handleResize)}}),Vue.component("v-catalog-compare",{template:'\n\t<div class="v-catalog-compare catalog catalog--compare" :class="{\'catalog--initialized\': initialized, \'catalog-compare--head-fixed\': headFixed}">\n\t\t\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\n\t\t<div class="catalog__compare">\n\t\t\t<div class="section-header flc fcc">\n\t\t\t\t<div class="section-header__main">\n\t\t\t\t\t<h1 class="section-header__title h1--small flc">{{ getMessage(\'COMPARE\') }}</h1>\n\t\t\t\t</div>\n\t\t\t\t<div class="section-header__aside" v-if="sections">\n\t\t\t\t\t<div class="tab-labels">\n\t\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t<div class="tab-labels__row">\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-for="section in sections">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': section.id == activeSectionId}" \n\t\t\t\t\t\t\t\t\t\t@click="activeSectionId = section.id; currentSlide = 0; recalcParams(); handleResize();">{{section.text}} ({{section.count}})</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\n\n\t\t\t<div class="catalog-compare__empty-message" v-if="!catalog.items || !catalog.items.length">\n\t\t\t\t{{ getMessage(\'EMPTY_COMPARE\') }}\n\t\t\t</div>\n\n\n\t\t\t<div class="catalog-compare__head catalog-compare__head--nav" ref="headNav" @scroll="headScroll" v-if="catalog.items && catalog.items.length">\n\t\t\t\t<div class="container">\n\t\t\t\t\t<div class="catalog-compare__head-layout">\n\t\t\t\t\t\t<div class="catalog-compare__head-aside">\n\t\t\t\t\t\t\t<div class="catalog-compare__head-clear">\n\t\t\t\t\t\t\t\t<button class="btn btn--sm" @click="reset()">\n\t\t\t\t\t\t\t\t\t<svg class="btn__close btn__close--left svg-icon"><use xlink:href="#svg-icon-lite-close"></use></svg> \n\t\t\t\t\t\t\t\t\t&nbsp;{{ getMessage(\'CLEAR\') }} <span class="hidden-2xs">{{ getMessage(\'CLEAR_COMPARE\') }}</span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-compare__head-mod">\n\t\t\t\t\t\t\t\t<v-field type="checkbox" :label="getMessage(\'HIDE_EQUALS\')" v-model="excludeSimilar" small @input="recalcParams"></v-field>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="catalog-compare__head-main" @touchstart="dragStart" @touchend="dragEnd" @touchmove="dragMove">\n\t\t\t\t\t\t\t<button type="button" class="catalog-compare__head-arrow catalog-compare__head-arrow--prev" @click="slideItems
1Back"\n\t\t\t\t\t\t\t\t\t:class="{disabled: isPrevArrowDisabled()}">\n\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-left"></use></svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<button type="button" class="catalog-compare__head-arrow catalog-compare__head-arrow--next" @click="slideItemsForward"\n\t\t\t\t\t\t\t\t\t:class="{disabled: isNextArrowDisabled()}">\n\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-right"></use></svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<div class="catalog-compare__head-items" v-if="catalog.items">\n\t\t\t\t\t\t\t\t<div class="catalog-compare__head-items-grid" \n\t\t\t\t\t\t\t\t\t\t:style="{\'transform\': \'translate3d(\'+currentSlideOffset+\',0,0) translateX(\'+dragOffset+\'px)\', \'transition\': computedTransition}">\n\t\t\t\t\t\t\t\t\t<div class="catalog-compare__head-item" v-for="item in catalog.items" v-if="activeSectionId == item.sectionId">\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<div class="compare-product">\n\t\t\t\t\t\t\t\t\t\t\t<a :href="item.link" class="compare-product__link"></a>\n\t\t\t\t\t\t\t\t\t\t\t<div class="compare-product__image">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="compare-product__image-box" v-for="image, index in item.images" v-if="index == 0">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img :class="{\'compare-product__image-box-cover\': image.cover}" :src="image.src" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="compare-product__main">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="compare-product__meta flc" v-if="item.sku || item.series">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.sku}} <template v-if="item.sku && item.series"> / </template> <template v-if="item.series">{{ getMessage(\'SERIES\') }} {{item.series}}</template>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="compare-product__remove">\n\t\t\t\t\t\t\t\t\t\t\t\t<v-compare-btn :product-id="item.id" template="icon"></v-compare-btn>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\n\n\t\t\t<div class="catalog__compare-body flc" v-if="catalog.items && catalog.items.length">\n\t\t\t\t<div class="catalog-compare flc" @scroll="tableScroll" ref="scrollContainer">\n\t\t\t\t\t<div class="catalog-compare__head" :style="{\'width\': computedWidth}">\n\t\t\t\t\t\t<div class="catalog-compare__head-layout">\n\t\t\t\t\t\t\t<div class="catalog-compare__head-aside">\n\t\t\t\t\t\t\t\t<div class="catalog-compare__head-clear">\n\t\t\t\t\t\t\t\t\t<button class="btn btn--sm" @click="reset()">\n\t\t\t\t\t\t\t\t\t\t<svg class="btn__close btn__close--left svg-icon"><use xlink:href="#svg-icon-lite-close"></use></svg> \n\t\t\t\t\t\t\t\t\t\t&nbsp;{{ getMessage(\'CLEAR\') }} <span class="hidden-2xs">{{ getMessage(\'CLEAR_COMPARE\') }}</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="catalog-compare__head-mod">\n\t\t\t\t\t\t\t\t\t<v-field type="checkbox" :label="getMessage(\'HIDE_EQUALS\')" v-model="excludeSimilar" small @input="recalcParams"></v-field>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-compare__head-main" @touchstart="dragStart" @touchend="dragEnd" @touchmove="dragMove">\n\t\t\t\t\t\t\t\t<button type="button" class="catalog-compare__head-arrow catalog-compare__head-arrow--prev" @click="slideItemsBack"\n\t\t\t\t\t\t\t\t\t\t:class="{disabled: isPrevArrowDisabled()}">\n\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-left"></use></svg>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button type="button" class="catalog-compare__head-arrow catalog-compare__head-arrow--next" @click="slideItemsForward"\n\t\t\t\t\t\t\t\t\t\t:class="{disabled: isNextArrowDisabled()}">\n\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<div class="catalog-compare__head-items" v-if="catalog.items">\n\t\t\t\t\t\t\t\t\t<div class="catalog-compare__head-items-grid" \n\t\t\t\t\t\t\t\t\t\t\t:style="{\'transform\': \'translate3d(\'+currentSlideOffset+\',0,0) translateX(\'+dragOffset+\'px)\', \'transition\': computedTransition}">\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-compare__head-item" v-for="item in catalog.items" v-if="activeSectionId == item.sectionId">\n\t\t\t\t\t\t\t\t\t\t\t<v-product template="grid-compare" :product="item" :folded="headFixed"></v-product>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<div class="catalog-compare__head-placeholder" ref="headPlaceholder"></div>\n\n\t\t\t\t\t<div class="catalog-compare__body" ref="compareBody" @touchstart="dragStart" @touchend="dragEnd" @touchmove="dragMove" :style="{\'width\': computedWidth}">\n\t\t\t\t\t\t<div class="catalog-compare__body-group" v-for="paramGroup in paramGroups" :class="{\'open\': paramGroup.open}">\n\t\t\t\t\t\t\t<div class="catalog-compare__body-group-header" @click="paramGroup.open = !paramGroup.open">\n\t\t\t\t\t\t\t\t<div class="catalog-compare__body-group-header-icon"></div>\n\t\t\t\t\t\t\t\t<h4 class="catalog-compare__body-group-header-title">{{paramGroup.title}}</h4>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t<div class="catalog-compare__table" v-if="paramGroup.open">\n\t\t\t\t\t\t\t\t\t<div class="catalog-compare__table-row" v-for="param in paramGroup.params">\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-compare__table-aside">\n\t\t\t\t\t\t\t\t\t\t\t{{param.title}}<span class="inline-tooltip-wrap" v-if="param.tip" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown"><span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{param.tip}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-compare__table-main">\n\t\t\t\t\t\t\t\t\t\t\t<div class="catalog-compare__table-main-grid" \n\t\t\t\t\t\t\t\t\t\t\t\t\t:style="{\'transform\': \'translate3d(\'+currentSlideOffset+\',0,0) translateX(\'+dragOffset+\'px)\', \'transition\': computedTransition}">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="catalog-compare__table-main-cell" v-for="value in param.values">{{value ? value.text : \'-\'}}</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'recently-viewed\']">\n\t\t\t<slot name="recently-viewed"></slot>\n\t\t</div>\n\n\t\t<div class="catalog__note flc" v-if="$slots[\'note\']">\n\t\t\t<div class="catalog__note-container">\n\t\t\t\t<slot name="note"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{items:null,remote:null},loading:!1,loadingMinTimeout:null,initialized:!1,activeSectionId:null,paramGroups:null,currentSlide:0,slidesToShow:void 0,headFixed:!1,excludeSimilar:!1,dragOn:!1,dragStartPosition:void 0,dragOffsetReal:0,dragOffset:0,computedTransition:"none",computedWidth:"auto",widthOfItem:void 0}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},computed:{sections:function(){var n;return this.catalog&&this.catalog.items&&this.catalog.items.length?(n=[],_.each(this.catalog.items,function(t){var e=_.find(n,{id:t.sectionId});e?e.count++:n.push({id:t.sectionId,text:t.sectionName,count:1})}),n):null},currentSlideOffset:function(){return 100*-this.currentSlide/this.slidesToShow+"%"},itemsCount:function(){var n=this;return _.reduce(this.catalog.items,function(t,e){return e.sectionId==n.activeSectionId?t+1:t},0)}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)}
1,slideItemsBack:function(){this.isPrevArrowDisabled()||this.currentSlide--,this.computedTransition=".3s"},slideItemsForward:function(){this.isNextArrowDisabled()||this.currentSlide++,this.computedTransition=".3s"},isPrevArrowDisabled:function(){return 0==this.currentSlide},isNextArrowDisabled:function(){return this.currentSlide+this.slidesToShow>=this.itemsCount},dragStart:function(t){window.innerWidth<=View.breakpoints["2xs-max"]||(this.dragOn=!0,this.dragStartPosition=t.touches[0].pageX,this.computedTransition="none",this.widthOfItem=this.$el.querySelector(".catalog-compare__head-item").offsetWidth)},dragEnd:function(){window.innerWidth<=View.breakpoints["2xs-max"]||(this.dragOn=!1,this.computedTransition=".3s",this.currentSlide=Math.round((this.widthOfItem*this.currentSlide-this.dragOffset)/this.widthOfItem),this.currentSlide+this.slidesToShow>=this.itemsCount&&(this.currentSlide=this.itemsCount-this.slidesToShow),this.currentSlide<0&&(this.currentSlide=0),this.dragOffset=0)},dragMove:function(t){this.dragOn&&(this.dragOffsetReal=t.touches[0].pageX-this.dragStartPosition,this.dragOffset=this.widthOfItem*this.currentSlide-this.dragOffsetReal<0?this.widthOfItem*this.currentSlide:this.dragOffsetReal)},loadCatalog:function(t,e){function n(){i&&(a.catalog=i.catalog,a.recalcParams()),e||a.pushState(),a.loadingMinTimeout=null,a.loading=!1}var a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&n(),a.loadingMinTimeout=null},300)),_.clone(a.state),$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:{items:Model.compare.items},bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-catalog-compare loaded",t),i=t}).fail(function(t){console.warn("v-catalog-compare load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||n()}))},recalcParams:function(){var n,s=this;this.catalog&&this.catalog.items&&this.catalog.items.length?(!this.sections.length||this.activeSectionId&&_.find(this.sections,{id:this.activeSectionId})||(this.activeSectionId=this.sections[0].id),n={},_.each(this.catalog.items,function(t){t.sectionId==s.activeSectionId&&_.each(t.params,function(e){n[e.id]||(n[e.id]={id:e.id,title:e.title,open:!0,params:{}}),_.each(e.params,function(t){n[e.id].params[t.id]||(n[e.id].params[t.id]={id:t.id,title:t.title,tip:t.tip||null,values:[]})})})}),_.each(n,function(n){_.each(n.params,function(e){_.each(s.catalog.items,function(t){t.sectionId==s.activeSectionId&&(t=(t=_.find(t.params,{id:n.id}))?_.find(t.params,{id:e.id}):null,e.values.push(t))})})}),this.excludeSimilar&&(n=_.filter(n,function(i){return i.params=_.filter(i.params,function(e){var n,a=!1;return _.each(s.catalog.items,function(t){t.sectionId==s.activeSectionId&&i&&e&&(t=(t=_.find(t.params,{id:i.id}))?_.find(t.params,{id:e.id}):null,void 0===n?n=t:t&&n.text==t.text||(a=!0))}),a}),i&&i.params.length})),this.paramGroups=n):this.paramGroups=null},tableScroll:function(){this.$refs.scrollContainer.scrollLeft!=this.$refs.headNav.scrollLeft&&(this.$refs.headNav.scrollLeft=this.$refs.scrollContainer.scrollLeft)},headScroll:function(){this.$refs.scrollContainer.scrollLeft!=this.$refs.headNav.scrollLeft&&(this.$refs.scrollContainer.scrollLeft=this.$refs.headNav.scrollLeft)},handleScroll:_.throttle(function(){this.$refs.headPlaceholder&&this.$refs.compareBody&&(this.headFixed=this.$refs.headPlaceholder.getBoundingClientRect().top<=0&&0<=this.$refs.compareBody.getBoundingClientRect().bottom)},200),handleResize:function(){this.slidesToShow=window.innerWidth>View.breakpoints["sm-max"]?3:2,this.computedWidth=window.innerWidth<=View.breakpoints["2xs-max"]?200*(this.itemsCount+1)+"px":"auto"},reset:function(){Model.compareClear()},handlePopState:function(t){t.state&&"v-catalog-compare"==t.state.component&&(console.log("v-catalog-compare: pop state",t.state),this.state=t.state.state,this.catalog=t.state.catalog)},pushState:function(){"localhost"!=window.location.hostname&&window.history.pushState({component:"v-catalog-compare",state:this.state,catalog:this.catalog},"",this.catalog.remote)},changedCompare:function(){this.catalog.remote=Model.compare.link,this.loadCatalog()},removedCompare:function(t){var e=[];
1if(0<parseInt(t))for(var n=0;n<this.catalog.items.length;n++)this.catalog.items[n].id!==t&&e.push(this.catalog.items[n].id);var a=e.join("_");Model.compare.link=0<e.length?"/compare/"+a+"-c":"/compare/"}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,console.log("v-catalog-compare loaded from static data",t.catalog),t.recalcParams()):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),Vue.nextTick(function(){t.initialized=!0}),t.staticDataSource&&t.pushState(),Model.$on("compare-changed",t.changedCompare),Model.$on("compare-remove",t.removedCompare),window.addEventListener("scroll",t.handleScroll),window.addEventListener("resize",t.handleResize),window.addEventListener("popstate",t.handlePopState),t.handleResize(),Vue.nextTick(function(){t.handleScroll(),setTimeout(function(){t.handleResize()},100)})},destroyed:function(){window.removeEventListener("scroll",vm.handleScroll),window.removeEventListener("resize",vm.handleResize)}}),Vue.component("v-catalog-item-detail",{template:'\n\t<div class="v-catalog-item-detail catalog-item-detail"\n\t\t\t :class="{\'catalog-item-detail--initialized\': initialized && catalog && catalog.product}">\n\n\t\t<div class="catalog-item-detail__product">\n\t\t\t<v-product template="detail" :product="catalog.product" class="product--detail-alt"></v-product>\n\t\t</div>\n\n\t\t<div class="catalog__used-products flc" v-if="catalog.usedProducts">\n\t\t\t<v-catalog-line view="simple"\n\t\t\t\t\t\t\t\t\t\t\t:static-data-source="catalog.usedProducts" \n\t\t\t\t\t\t\t\t\t\t\tbxajaxid="1С-Битрикс" \n\t\t\t\t\t\t\t\t\t\t\tshow-counters>\n\t\t\t</v-catalog-line>\n\t\t</div>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{remote:null,filters:null,product:null},state:{filter:null},loading:!1,loadingMinTimeout:null,activeImageIndex:0,openDescrTabId:"features",featuresFolded:!0,featuresShowLimit:12,touchMode:View.mobileAndTabletCheck,initialized:!1}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},loadCatalog:function(t){function e(){i&&(a.catalog=i.catalog,a.openDescrTabId=a.catalog.product.features&&a.catalog.product.features.length||a.catalog.product.paramsTop&&a.catalog.product.paramsTop.length||a.$slots.banner?"features":"params",!t)&&a.pushState(),a.loadingMinTimeout=null,a.loading=!1}var n,a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&e(),a.loadingMinTimeout=null},300)),n={},_.each(_.keys(a.state.filter),function(t){n[t]=a.state.filter[t].value}),n.bxajaxid=a.bxajaxid,$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:n}).done(function(t){console.log("v-catalog loaded",t),i=t}).fail(function(t){console.warn("v-catalog load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||e()}))},filterChanged:function(t,e){this.filterIsChanged=!(!e||!e.length),this.changedFilters=e,this.state.filter=t,console.log("filter to submit: ",this.state.filter),this.stateChanged()},filterUpdated:function(t,e){this.filterIsChanged=!(!e||!e.length),this.changedFilters=e,this.state.filter=t},stateChanged:function(){this.loadCatalog()},openGallery:function(t){var e=this,n=0;t&&("image"==t.mode&&"number"==typeof t.initialIndex?n=t.initialIndex:"360"==t.mode?n=e.catalog.product.images?e.catalog.product.images.length:0:"video"==t.mode&&(n=(e.catalog.product.images?e.catalog.product.images.length:0)+(e.catalog.product.images360?e.catalog.product.images360.length:0))),modalController.open({component:"v-big-gallery",className:"modal--lg modal--gallery",staticDataSource:{images:e.catalog.product.images,images360:e.catalog.product.images360,videos:e.catalog.product.videos,initialIndex:n}})},handlePopState:function(){},pushState:function(){"localhost"!=window.location.hostname&&window.history.pushState({component:"v-catalog-item",state:this.state,catalog:this.catalog},"",this.catalog.remote)},handleResize:function(){this.featuresShowLimit=window.innerWidth>=View.breakpoints["md-min"]?12:window.innerWidth>=View.breakpoints["xs-min"]?8:6}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,console.log("v-catalog-item loaded from static data",t.catalog),t.openDescrTabId=t.catalog.product.features&&t.catalog.product.features.length||t.catalog.product.paramsTop&&t.catalog.product.paramsTop.length||t.$slots.banner?"features":"params"):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),window.addEventListener("popstate",t.handlePopState),window.addEventListener("resize",t.handleResize),t.handleResize(),t.initialized=!0},mounted:function(){var t=this;Vue.nextTick(function(){View.initAllLocal(t.$el)})},destroyed:function(){window.removeEventListener("popstate",this.handlePopState),window.removeEventListener("resize",this.handleResize)}}),Vue.component("v-catalog-item-support",{template:'\n\t<div class="v-catalog-item catalog-item"\n\t\t\t :class="{\'catalog-item--initialized\': initialized && catalog && catalog.product}">\n\n\t\t<transition name="content-fade">\n\t\t\t<div class="catalog-item__loader loader-cover loader-cover--spinner" v-if="loading || !initialized">\n\t\t\t\t<img class="loader-cover__spinner" src="/local/images/preloader.svg" alt="">\n\t\t\t</div>\n\t\t</transition>\n\n\t\t<div class="catalog-item__top catalog-item-top" v-if="catalog && catalog.product">\n\t\t\t<div class="catalog-item-top__grid">\n\t\t\t\t<div class="catalog-item-top__cell-pic-wrap">\n\t\t\t\t\t<div class="catalog-item-top__cell-pic">\n\t\t\t\t\t\t<img class="catalog-item-top__cell-img" v-if="catalog.product.image" :src="catalog.product.image" alt="">\n\t\t\t\t\t\t<div class="catalog-item-top__status-wrap">\n\t\t\t\t\t\t\t<div class="product__status" v-if="catalog.product.status && catalog.product.status.length">\n\t\t\t\t\t\t\t\t<div class="status-list status-list--product">\n\t\t\t\t\t\t\t\t\t<div class="status-list__item" v-for="item in catalog.product.status">\n\t\t\t\t\t\t\t\t\t\t<div class="status status--product" :style="{\'color\': item.color, \'background\': item.background}"\n\t\t\t\t\t\t\t\t\t\t\t\t :class="{\'status--image\': item.image && !item.text}">\n\t\t\t\t\t\t\t\t\t\t\t<img v-if="item.image" :src="item.image" alt="">\n\t\t\t\t\t\t\t\t\t\t\t<span class="status__text" v-if="item.text">{{item.text}}</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog-item-top__cell-main">\n\t\t\t\t\t<div class="catalog-item-top__meta flc" v-if="catalog.product.sku || catalog.product.series">\n\t\t\t\t\t\t{{catalog.product.sku}}\n\t\t\t\t\t\t<template v-if="catalog.product.sku && catalog.product.series"> /</template>\n\t\t\t\t\t\t<template v-if="catalog.product.series">{{ getMessage(\'SERIES\') }} {{catalog.product.series}}</template>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="catalog-item-top__cell-main-grid">\n\t\t\t\t\t\t<div class="catalog-item-top__cell-main">\n\t\t\t\t\t\t\t<div class="catalog-item-top__cell-main-info">\n\t\t\t\t\t\t\t\t<h1 class="catalog-item-top__title h1--small flc">{{catalog.product.name}}</h1>\n\t\t\t\t\t\t\t\t<div class="catalog-item-top__cell-pic-wrap catalog-item-top__cell-pic-wrap--hidden">\n\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__cell-pic">\n\t\t\t\t\t\t\t\t\t\t<img class="catalog-item-top__cell-img" v-if="catalog.product.image" :src="catalog.product.image" alt="">\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__status-wrap">\n\t\t\t\t\t\t\t\t\t\t\t<div class="product__status" v-if="catalog.product.status && catalog.product.status.length">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="status-list status-list--product">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="status-list__item" v-for="item in catalog.product.status">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="status status--product"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t :style="{\'color\': item.color, \'background\': item.background}"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t :class="{\'status--image\': item.image && !item.text}">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img v-if="item.image" :src="item.image" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="status__text" v-if="item.text">{{item.text}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="catalog-item-top__description flc" v-html="catalog.product.description"></div>\n\t\t\t\t\t\t\t\t<div class="catalog-item-top__warranty flc">\n\t\t\t\t\t\t\t\t\t<div class="dimension dimension--secondary dimension--catalog-item">\n\t\t\t\t\t\t\t\t\t\t<div class="dimension__icon">\n\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-dimension-warranty"></use>\n\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="dimension__value">{{catalog.product.warranty}}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div class="catalog-item-top__cell-main-aside catalog-item-top__cell-main-aside--wide">\n\t\t\t\t\t\t\t<div class="catalog-item-top__action flc" v-if="catalog.product && catalog.product.orderRepairLink">\n\t\t\t\t\t\t\t\t<span class="btn btn--primary btn--block js-open-modal" :data-modal-url="catalog.product.orderRepairLink" data-modal-data="{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&quot;className&quot;: &quot;modal--lg modal--form&quot;,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&quot;ownHistory&quot;: false\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'ORDER_REPAIR\')}}\n\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="link-block__item">\n\t\t\t\t\t\t\t\t<div class="section-action flc" v-if="catalog.product && catalog.product.findServiceLink">\n\t\t\t\t\t\t\t\t\t<a :href="catalog.product.findServiceLink" class="arrow-link">{{getMessage(\'FIND_SERVICE\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg\n\t\t\t\t\t\t\t\t\t\tclass="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="section-action flc" v-if="catalog.product && catalog.product.whereToBuyAccesorizeLink">\n\t\t\t\t\t\t\t\t\t<a :href="catalog.product.whereToBuyAccesorizeLink" class="arrow-link">{{getMessage(\'WHERE_TO_BUY_ACCESORIZE\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg\n\t\t\t\t\t\t\t\t\t\tclass="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t\x3c!-- DOCS --\x3e\n\t\t<div class="catalog-item__accordion-wrap" v-if="catalog.product && catalog.product.docs">\n\t\t\t<div class="accordion">\n\t\t\t\t<div class="accordion__item">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': catalog.product.docs.collapsed}"\n\t\t\t\t\t\t\t\t\t@click="catalog.product.docs.collapsed = !catalog.product.docs.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{catalog.product.docs.headline}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body" v-show="!catalog.product.docs.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__content">\n\t\t\t\t\t\t\t\t<div class="docs-list flc">\n\t\t\t\t\t\t\t\t\t<div class="docs-list__grid grid grid--free">\n\t\t\t\t\t\t\t\t\t\t<div class="docs-list__item col col--free col-xl-4 col-sm-6 col-2xs-12"\n\t\t\t\t\t\t\t\t\t\t\t\t v-for="doc in catalog.product.docs.items">\n\t\t\t\t\t\t\t\t\t\t\t<a :href="doc.link" :download="doc.download" class="docs-item">\n\t\t\t\t\t\t\t\t\t\t\t\t<span v-if="doc.image" class="docs-item__cell-image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img :src="doc.image" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="docs-item__cell-main">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="docs-item__title">{{doc.text}}<span class="docs-item__tail">&nbsp;&nbsp;<svg\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass="svg-icon docs-item__arrow"><use\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txlink:href="#svg-icon-chevron-right"></use></svg></span></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t\x3c!-- FAQ --\x3e\n\t\t<div class="catalog-item__accordion-wrap" v-if="catalog.product && catalog.product.faq && $slots[\'faq\']">\n\t\t\t<div class="accordion">\n\t\t\t\t<div class="accordion__item">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': catalog.product.faq.collapsed}"\n\t\t\t\t\t\t\t\t\t@click="catalog.product.faq.collapsed = !catalog.product.faq.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{catalog.product.faq.headline}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body" v-show="!catalog.product.faq.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__content">\n\n\t\t\t\t\t\t\t\t<slot name="faq"></slot>\n\n\t\t\t\t\t\t\t\t\x3c!--\n\t\t\t\t\t\t\t\t<div v-for="section in catalog.product.faq.sections" class="accordion__questions flc">\n\t\t\t\t\t\t\t\t\t<h4 class="accordion__question-wrap-title h4">\n\t\t\t\t\t\t\t\t\t\t{{section.title}}\n\t\t\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t\t\t<div class="accordion__question-wrap">\n\t\t\t\t\t\t\t\t\t\t<div v-for="question in section.questions" class="accordion__question flc">\n\t\t\t\t\t\t\t\t\t\t\t<button type="button" class="accordion__question-btn" :class="{\'collapsed\': question.collapsed}"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t@click="question.collapsed = !question.collapsed">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-btn-text">{{question.btn}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-ico-wrap">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="accordion__question-ico">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="accordion__question-svg svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-show="!question.collapsed" class="accordion__answer">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="accordion__answer-content text-guide">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div v-html="question.answer" class="accordion__answer-content"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="accordion__rate-wrap">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<v-rate :id="question.id" :remote="question.rate.remote"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:value="question.rate.value"></v-rate>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t--\x3e\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t\x3c!-- VIDEOLESSONS --\x3e\n\t\t<div class="catalog-item__accordion-wrap" v-if="catalog.product && catalog.product.articles && $slots[\'articles\']">\n\t\t\t<div class="accordion">\n\t\t\t\t<div class="accordion__item">\n\t\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': catalog.product.article
1s.collapsed}"\n\t\t\t\t\t\t\t\t\t@click="catalog.product.articles.collapsed = !catalog.product.articles.collapsed">\n\t\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t\t<span class="accordion__btn-text h3">{{catalog.product.articles.headline}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t<div class="accordion__body" v-show="!catalog.product.articles.collapsed">\n\t\t\t\t\t\t\t<div class="accordion__content">\n\t\t\t\t\t\t\t\t\x3c!--\n\t\t\t\t\t\t\t\t<v-article-list-full\n\t\t\t\t\t\t\t\t\t:static-data-source=\'{\n\t\t\t\t\t\t\t\t\t\t"catalog": { \n\t\t\t\t\t\t\t\t\t\t\t"items": catalog.product.articles.items\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\'\n\t\t\t\t\t\t\t\t\t:remote-data-source="null"\n\t\t\t\t\t\t\t\t\tbxajaxid="1С-Битрикс"\n\t\t\t\t\t\t\t\t></v-article-list-full>\n\t\t\t\t\t\t\t\t--\x3e\n\t\t\t\t\t\t\t\t<slot name="articles"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{remote:null,product:null},loading:!1,loadingMinTimeout:null,initialized:!1}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},loadCatalog:function(t){function e(){i&&(a.catalog=i.catalog),a.loadingMinTimeout=null,a.loading=!1}var n,a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&e(),a.loadingMinTimeout=null},300)),n=_.clone(a.state),$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:n,bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-catalog loaded",t),i=t}).fail(function(t){console.warn("v-catalog load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||e()}))}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,console.log("v-catalog-item loaded from static data",t.catalog)):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),t.initialized=!0}}),Vue.component("v-catalog-item",{template:'\n\t<div class="v-catalog-item catalog-item" :class="{\'catalog-item--initialized\': initialized && catalog && catalog.product}">\n\n\t\t<transition name="content-fade">\n\t\t\t<div class="catalog-item__loader loader-cover loader-cover--spinner" v-if="loading || !initialized">\n\t\t\t\t<img class="loader-cover__spinner" src="/local/images/preloader.svg" alt="">\n\t\t\t</div>\n\t\t</transition>\n\n\t\t<div class="catalog-item__top catalog-item-top" v-if="catalog && catalog.product">\n\t\t\t<div class="catalog-item-top__grid">\n\t\t\t\t<div class="catalog-item-top__cell-gallery">\n\t\t\t\t\t<div class="catalog-item-top__gallery-placeholder"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog-item-top__cell-main">\n\t\t\t\t\t<template v-if="catalog.product.sku || catalog.product.series">\n\t\t\t\t\t\t<button v-if="catalog.product.sku"\n\t\t\t\t\t\t\t\tclass="catalog-item-top__sku"\n\t\t\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\t\t\t@click="copySku(catalog.product.sku)">\n\t\t\t\t\t\t\t{{catalog.product.sku}}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<div v-if="catalog.product.sku"\n\t\t\t\t\t\t\t\tclass="catalog-item-top__sku-notification"\n\t\t\t\t\t\t\t\t:class="{\'catalog-item-top__sku-notification--shown\': isNotificationShown}">\n\t\t\t\t\t\t\t{{getMessage(\'SKU_COPIED\')}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<template v-if="catalog.product.series"> / </template>\n\t\t\t\t\t\t<component v-if="catalog.product.series"\n\t\t\t\t\t\t\t\t:is="catalog.product.series_link ? \'a\' : \'span\'"\n\t\t\t\t\t\t\t\tclass="catalog-item-top__meta flc"\n\t\t\t\t\t\t\t\t:href="catalog.product.series_link">\n\t\t\t\t\t\t\t<template v-if="catalog.product.series">{{ getMessage(\'SERIES\') }} {{catalog.product.series}}</template>\n\t\t\t\t\t\t</component>\n          </template>\n\t\t\t\t\t<div class="catalog-item-top__cell-main-grid">\n\t\t\t\t\t\t<div class="catalog-item-top__cell-main-info">\n\t\t\t\t\t\t\t<h1 class="catalog-item-top__title h1--small flc">{{catalog.product.name}}</h1>\n\t\t\t\t\t\t\t<template v-if="catalog.product.adminLink">\n\t\t\t\t\t\t\t\t<a :href="catalog.product.adminLink">В админке</a>\n\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t<div v-if="catalog.product.reviews" class="catalog-item-top__rating">\n\t\t\t\t\t\t\t\t<template v-if="catalog.product.reviews.rating">\n\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__rating-value">\n\t\t\t\t\t\t\t\t\t\t{{ catalog.product.reviews.rating | price }}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__rating-stars">\n\t\t\t\t\t\t\t\t\t\t<v-rating v-if="catalog.product.reviews.rating" v-model="catalog.product.reviews.rating" :field="{value: catalog.product.reviews.rating}"></v-rating>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<a v-if="catalog.product.reviews.count" class="catalog-item-top__rating-count  js-scroll-to" href="#tabs" data-offset="30" @click="openDescrTabId = \'reviews\'">{{ catalog.product.reviews.count }} {{ pluralize(catalog.product.reviews.count, \'отзыв\', [\'\', \'а\', \'ов\']) }}</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\x3c!-- gallery in right column --\x3e\n\t\t\t\t\t\t\t<div class="catalog-item-top__gallery">\n\t\t\t\t\t\t\t\t<div class="catalog-item-top__image flc" @mouseleave="activeImageIndex = 0">\n\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__status-wrap" v-if="catalog.product.status && catalog.product.status.length || catalog.product.colors && catalog.product.colors.length > 1">\n\t\t\t\t\t\t\t\t\t\t<div class="status-list status-list--product">\n\t\t\t\t\t\t\t\t\t\t\t<div class="status-list__item" v-for="item in catalog.product.status">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="status status--product" :style="{\'color\': item.color, \'background\': item.background}" :class="{\'status--image\': item.image && !item.text}">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img v-if="item.image" :src="item.image" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="status__text" v-if="item.text">{{item.text}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="status-list__item" v-if="catalog.product.colors && catalog.product.colors.length > 1">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="status status--product status--colors">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="status__pallette">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="status__pallette-part" v-for="color in catalog.product.colors" :style="{\'background\': color.color}"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{catalog.product.colors.length}} {{pluralize(catalog.product.colors.length, \'\', [getMessage(\'ONE_COLOR\'), getMessage(\'TWO_COLOR\'), getMessage(\'MORE_COLOR\')])}}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<template v-if="!catalog.product.images || !catalog.product.images.length">\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-box active">\n\t\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-box-no-photo">\n\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-no-photo"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-box" v-for="image, index in catalog.product.images"\n\t\t\t\t\t\t\t\t\t\t\t\t:class="{\'active\': activeImageIndex == index}" v-if="index < 5">\n\t\t\t\t\t\t\t\t\t\t\t<img :src="image.src" :alt="catalog.product.name" @click="touchMode ? openGallery({mode: \'image\', initialIndex: 0}) : null">\n\t\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-box-note" v-if="index == 4 && catalog.product.images.length > 5">\n                                                {{ getMessage(\'MORE\') }} {{catalog.product.images.length - 5}} {{ getMessage(\'PHOTO\') }}\n                                            </div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-control
1s" v-if="catalog.product.images.length > 1">\n\t\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-control" v-for="image, index in catalog.product.images" v-if="index < 5"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@mouseenter="activeImageIndex = index" @click="openGallery({mode: \'image\', initialIndex: index})"></div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-bullets" v-if="catalog.product.images.length > 1">\n\t\t\t\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-bullet" v-for="image, index in catalog.product.images" v-if="index < 5"\n\t\t\t\t\t\t\t\t\t\t\t\t\t:class="{\'active\': activeImageIndex == index}"></div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="catalog-item-top__image-previews flc">\n\t\t\t\t\t\t\t\t\t<div class="gallery-previews flc">\n\t\t\t\t\t\t\t\t\t\t<div class="gallery-previews__grid">\n\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-previews__item" v-if="catalog.product.images && catalog.product.images.length">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview gallery-preview--images" @click="openGallery({mode: \'image\'})">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview__miniatures flc">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview__miniature" v-if="index < 3"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:style="{\'background-image\': \'url(\'+(image.srcPoster || image.src || image.srcFull)+\')\'}"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv-for="image, index in catalog.product.images"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview__note">{{catalog.product.images.length}} {{ getMessage(\'PHOTO\') }}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-previews__item" v-if="catalog.product.images360 && catalog.product.images360.length">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview gallery-preview--360" @click="openGallery({mode: \'360\'})">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon gallery-preview__360-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-360"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-previews__item" v-if="catalog.product.videos && catalog.product.videos.length">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview gallery-preview--video" @click="openGallery({mode: \'video\'})">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="gallery-preview__bg" v-if="catalog.product.videos[0].srcPoster"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:style="{\'background-image\': \'url(\'+catalog.product.videos[0].srcPoster+\')\'}"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon gallery-preview__video-icon"><use xlink:href="#svg-icon-video-btn"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div class="catalog-item-top__description flc" v-html="catalog.product.description"></div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__dimensions flc" v-if="catalog.product.dimensions && catalog.product.dimensions.length">\n\t\t\t\t\t\t\t\t<div class="dimensions dimensions--catalog-item flc">\n\t\t\t\t\t\t\t\t\t<div class="dimensions__grid">\n\t\t\t\t\t\t\t\t\t\t<div class="dimensions__item" v-for="dimension in catalog.product.dimensions">\n\t\t\t\t\t\t\t\t\t\t\t<div class="dimension dimension--catalog-item">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="dimension__icon" v-if="dimension.icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use :xlink:href="dimension.icon"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="dimension__value">{{dimension.value}}</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__warranty flc">\n\t\t\t\t\t\t\t\t<div class="dimension dimension--secondary dimension--catalog-item">\n\t\t\t\t\t\t\t\t\t<div class="dimension__icon">\n\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-dimension-warranty"></use></svg>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="dimension__value">{{catalog.product.warranty}}</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__filter flc" v-if="catalog.filters && c
1atalog.filters.length">\n\t\t\t\t\t\t\t\t<v-filter :filters="catalog.filters" :value="state.filter" :loading="loading" @filtered="filterChanged" @filterupdate="filterUpdated" ref="filter" embedded></v-filter>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="catalog-item-top__cell-main-aside">\n\t\t\t\t\t\t\t<div class="catalog-item-top__price flc" v-if="catalog.product.price">\n\t\t\t\t\t\t\t\t<v-price :price="catalog.product.price" size="larger"></v-price>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__price-info flc" v-if="catalog.product.price">\n\t\t\t\t\t\t\t\t{{getMessage(\'CHECK_STORE_PRICE\')}}<span class="inline-tooltip-wrap" v-if="catalog.product.priceTip" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown"><span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position" v-html="catalog.product.priceTip"></span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__action flc">\n\n                <a v-for="buyLinkShopplaceInfo in catalog.product.buyLinkShopplace" :href="buyLinkShopplaceInfo.link" class="btn btn--onliner btn--block">\n\t\t\t\t\t\t\t\t\t<img :src="buyLinkShopplaceInfo.logo" loading="lazy" decoding="async" width="" height="20" alt="" title="">\n\t\t\t\t\t\t\t\t</a>\n\n\n\t\t\t\t\t\t\t\t<a v-if="catalog.product.buyLinkExternal" :href="catalog.product.buyLinkExternal" class="btn btn--primary btn--block">\n                  Купить online\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<template v-if="catalog.product.buyLink">\n\t\t\t\t\t\t\t\t\t<a :href="catalog.product.buyLink" target="_blank" class="btn btn--primary btn--block">\n\t\t\t\t\t\t\t\t\t\t{{ getMessage(\'WHERE_BUY\') }}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__action-note flc" v-if="catalog.product.availability.offline.count || catalog.product.availability.online.count">\n\t\t\t\t\t\t\t\t<template v-if="catalog.product.availability.offline.count">\n\t\t\t\t\t\t\t\t\t<a :href="catalog.product.buyLinkOffline">\n\t\t\t\t\t\t\t\t\t\t{{catalog.product.availability.offline.count}} {{pluralize(catalog.product.availability.offline.count, \'\', [getMessage(\'ONE_STORE\'), getMessage(\'TWO_STORE\'), getMessage(\'MORE_STORE\')])}}\n\t\t\t\t\t\t\t\t\t</a> и\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template v-if="catalog.product.availability.online.count">\n\t\t\t\t\t\t\t\t\t<a :href="catalog.product.buyLinkOnline">\n\t\t\t\t\t\t\t\t\t\t{{catalog.product.availability.online.count}} {{pluralize(catalog.product.availability.online.count, \'\', [getMessage(\'ONE_ONLINE_STORE\'), getMessage(\'TWO_ONLINE_STORE\'), getMessage(\'MORE_ONLINE_STORE\')])}}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template v-if="catalog.product.availability.inСountry?.phrase">\n\t\t\t\t\t\t\t\t\t{{catalog.product.availability.inСountry.phrase}}\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<hr class="catalog-item-top__aside-separator" v-if="catalog.product.price || catalog.product.availability.offline.count || catalog.product.availability.online.count">\n\t\t\t\t\t\t\t<div class="catalog-item-top__compare flc">\n\t\t\t\t\t\t\t\t<v-compare-btn :product-id="catalog.product.id"></v-compare-btn>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="catalog-item-top__share flc">\n\t\t\t\t\t\t\t\t<v-share-btn></v-share-btn>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</div>\n\n\n\t\t\t\t\t<div class="catalog-item-top__banners flc" v-if="catalog.product.banners && catalog.product.banners.length">\n\t\t\t\t\t\t<div class="catalog-item-top__banners-grid grid grid--free">\n\t\t\t\t\t\t\t<div class="catalog-item-top__banners-col col col--free col-xl-6 col-3xs-12" v-for="banner in catalog.product.banners">\n\t\t\t\t\t\t\t\t<div class="catalog-item-top__banner">\n\t\t\t\t\t\t\t\t\t<img :src="banner.image" alt="" loading="lazy">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\n\t\t<div class="catalog-item__info" v-if="catalog.product" id="tabs">\n\t\t\t<div class="catalog-item__info-nav flc">\n\t\t\t\t<div class="catalog-item__info-nav-tabs">\n\t\t\t\t\t<div class="tab-labels">\n\t\t\t\t\t\t<div class="tab-labels__row">\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="catalog.product.features && catalog.product.features.length || catalog.product.paramsTop && c
1atalog.product.paramsTop.length || $slots.banner">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': openDescrTabId == \'features\'}" \n\t\t\t\t\t\t\t\t\t\t@click="openDescrTabId = \'features\'">{{getMessage(\'FEATURES\')}}</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="catalog.product.params && catalog.product.params.length">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': openDescrTabId == \'params\'}" \n\t\t\t\t\t\t\t\t\t\t@click="openDescrTabId = \'params\'">{{getMessage(\'PARAMS\')}}</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="catalog.product.reviews">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': openDescrTabId == \'reviews\'}"\n\t\t\t\t\t\t\t\t\t\t@click="openDescrTabId = \'reviews\'">{{getMessage(\'REVIEWS\')}}</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog-item__info-nav-aside" v-if="catalog.product.supportLink">\n\t\t\t\t\t<a :href="catalog.product.supportLink" class="icon-link">\n\t\t\t\t\t\t<div class="icon-link__icon">\n\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-like"></use></svg>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="icon-link__main">{{getMessage(\'SUPPORT_AND_SERVICE\')}}</div>\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\n\t\t\t<transition-group tag="div" name="content-fade" mode="out-in" class="catalog-item__info-content">\n\t\t\t\t<div class="catalog-item__info-features" v-show="openDescrTabId == \'features\'" key="features" \n\t\t\t\t\t\tv-if="catalog.product.features && catalog.product.features.length || catalog.product.paramsTop && catalog.product.paramsTop.length || $slots.banner">\n\t\t\t\t\t\n\t\t\t\t\t<div class="catalog-item__features flc">\n\t\t\t\t\t\t<h3 class="catalog-item__features-title flc">{{getMessage(\'FEATURES\')}}</h3>\n\t\t\t\t\t\t<div class="catalog-item__features-list flc" v-if="catalog.product.features && catalog.product.features.length">\n\t\t\t\t\t\t\t<div class="features-list flc">\n\t\t\t\t\t\t\t\t<div class="features-list__part">\n\t\t\t\t\t\t\t\t\t<div class="features-list__grid grid grid--free">\n\t\t\t\t\t\t\t\t\t\t<div class="features-list__col col col--free" v-for="(feature, index) in catalog.product.features" \n\t\t\t\t\t\t\t\t\t\t\t\tv-if="index < featuresShowLimit">\n\t\t\t\t\t\t\t\t\t\t\t<div class="features-li">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="features-li__image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img :src="feature.image" alt="" v-if="feature.image" loading="lazy">\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="features-li__title">{{feature.title}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip-wrap" v-if="feature.tip" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown"><span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position">{{feature.tip}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t<div class="features-list__part" v-if="catalog.product.features.length > featuresShowLimit && !featuresFolded">\n\t\t\t\t\t\t\t\t\t\t<div class="features-list__grid grid grid--free">\n\t\t\t\t\t\t\t\t\t\t\t<div class="features-list__col col col--free" v-for="(feature, index) in catalog.product.features" \n\t\t\t\t\t\t\t\t\t\t\t\t\tv-if="index >= featuresShowLimit">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="features-li">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="features-li__image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img :src="feature.image" alt="" v-if="feature.image" loading="lazy">\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="features-li__title">{{feature.title}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip-wrap" v-if="feature.tip" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown"><span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position">{{feature.tip}}</span></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t<div class="features-list__action flc" v-if="catalog.product.features.length > featuresShowLimit">\n\t\t\t\t\t\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t\t\t\t\t\t<button type="button" class="btn" v-if="featuresFolded" @click="featuresFolded = false" key="folded">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'SHOW_MORE\')}} <svg class="btn__arrow-right btn__arrow-right--right btn__arrow-right--down svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t<button type="button" class="btn" v-else @click="featuresFolded = true" key="unfolded">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'UNFOLDED\')}} <svg class="btn__arrow-right btn__arrow-right--right btn__arrow-right--up svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class="catalog-item__banners flc" v-if="$slots.banner">\n\t\t\t\t\t\t<slot name="banner"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class="catalog-item__params-top flc" v-if="catalog.product.paramsTop && c
1atalog.product.paramsTop.length">\n\t\t\t\t\t\t<div class="params-top">\n\t\t\t\t\t\t\t<div class="params-top__grid">\n\t\t\t\t\t\t\t\t<template v-for="param in catalog.product.paramsTop">\n\t\t\t\t\t\t\t\t\t<div class="params-top__item" :class="{\'params-top__item--small\': param.size == \'small\'}">\n\t\t\t\t\t\t\t\t\t\t<div class="param-top" :class="{\'param-top--has-responsive-img\': param.imageResponsive, \'param-top--small\': param.size == \'small\'}">\n\t\t\t\t\t\t\t\t\t\t\t<div class="param-top__image flc" v-if="param.image || param.imageResponsive">\n\t\t\t\t\t\t\t\t\t\t\t\t<img class="param-top__img param-top__img--full" :src="param.image" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t<img class="param-top__img param-top__img--responsive" :src="param.imageResponsive" alt="">\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<h4 class="param-top__title flc" v-if="param.title">{{param.title}}</h4>\n\t\t\t\t\t\t\t\t\t\t\t<div class="param-top__text flc" v-if="param.text" v-html="param.text"></div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="params-top__spacer"></div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t</div>\n\n\t\t\t\t<div class="catalog-item__info-params" v-show="openDescrTabId == \'params\'"  key="params"\n\t\t\t\t\t\tv-if="catalog.product.params && catalog.product.params.length">\n\t\t\t\t\t<div class="catalog-item__params flc" v-if="catalog.product.params && catalog.product.params.length">\n\t\t\t\t\t\t<h3 class="catalog-item__params-title">{{getMessage(\'PARAMS\')}}</h3>\n\t\t\t\t\t\t<div class="catalog-item__params-list flc">\n\t\t\t\t\t\t\t<div class="full-params-list flc">\n\t\t\t\t\t\t\t\t<div class="full-params-list__group flc" v-for="group in catalog.product.params" \n\t\t\t\t\t\t\t\t\t\t:class="{\'open\': group.open, \'full-params-list__group--static\': group.alwaysOpen}">\n\t\t\t\t\t\t\t\t\t<div class="full-params-list__group-head" @click="group.open = !group.open">\n\t\t\t\t\t\t\t\t\t\t<span class="full-params-list__group-head-icon"></span>\n\t\t\t\t\t\t\t\t\t\t<h4 class="full-params-list__group-head-title">{{group.title}}</h4>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__group-body" v-show="group.open || group.alwaysOpen">\n\t\t\t\t\t\t\t\t\t\t\t<div :class="{\'full-params-list__dimensions\': group.image}">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__dimensions-visual" \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv-if="group.image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img :src="group.image" alt="">\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div :class="{\'full-params-list__dimensions-table\': group.image}">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__table">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__table-row" v-for="param in group.params">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__table-icon" v-if="param.icon || group.image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use :xlink:href="param.icon"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__table-key">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{param.title}}<span class="inline-tooltip-wrap" v-if="param.tip" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown"><span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{param.tip}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__table-value">{{param.text}}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div class="full-params-list__group full-params-list__group--static flc" v-if="catalog.product.docs && catalog.product.docs.length">\n\t\t\t\t\t\t\t\t\t<div class="full-params-list__group-head">\n\t\t\t\t\t\t\t\t\t\t<span class="full-params-list__group-head-icon"></span>\n\t\t\t\t\t\t\t\t\t\t<h4 class="full-params-list__group-head-title">{{getMessage(\'INSTRUCTION_AND_PRESENTED\')}}</h4>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t\t<div class="full-params-list__group-body">\n\t\t\t\t\t\t\t\t\t\t\t<div class="docs-list flc">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="docs-list__grid grid grid--free">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="docs-list__item col col--free col-xl-4 col-sm-6 col-2xs-12" v-for="doc in catalog.product.docs">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a :href="doc.link" :download="doc.download" class="docs-item">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="docs-item__cell-image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img :src="doc.image" alt="" v-if="doc.image">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="docs-item__cell-main">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="docs-item__title">{{doc.text}}<span class="docs-item__tail">&nbsp;&nbsp;<svg class="svg-icon docs-item__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="catalog-item__info-params" v-show="openDescrTabId == \'reviews\'"  key="reviews"\n\t\t\t\t\t\tv-if="catalog.product.reviews">\n\t\t\t\t\t<v-product-reviews\n              :static-data-source="null"\n              :remote-data-source="catalog.product.reviews.remote"\n              :sh
1op-links="catalog.product.buyLinkShopplace"\n              :bxajaxid="bxajaxid"\n          >\n\n          </v-product-reviews>\n\t\t\t\t</div>\n\t\t\t</transition-group>\n\t\t</div>\n\n\t\t<hr class="catalog__separator" v-if="$slots[\'middle-banner\']">\n\n\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'middle-banner\']">\n\t\t\t<slot name="middle-banner"></slot>\n\t\t</div>\n\t\t\n\t\t<hr class="catalog__separator" v-if="$slots[\'articles\']">\n\n\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'articles\']">\n\t\t\t<slot name="articles"></slot>\n\t\t</div>\n\n\t\t\x3c!-- alt way to show related products --\x3e\n\t\t<hr class="catalog__separator" v-if="catalog.similarProducts">\n\t\t\n\t\t<div class="catalog__recently-viewed flc" v-if="catalog.similarProducts">\n\t\t\t<v-catalog-line slot="similar-products" title="Похожие товары"\n\t\t\t\t:static-data-source="catalog.similarProducts" bxajaxid="1С-Битрикс"></v-catalog-line>\n\t\t</div>\n\n\t\t<hr class="catalog__separator" v-if="$slots[\'similar-products\']">\n\t\t\n\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'similar-products\']">\n\t\t\t<slot name="similar-products"></slot>\n\t\t</div>\n\n\t\t<hr class="catalog__separator" v-if="$slots[\'recently-viewed\']">\n\n\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'recently-viewed\']">\n\t\t\t<slot name="recently-viewed"></slot>\n\t\t</div>\n\n\t\t<div class="catalog__note flc" v-if="$slots[\'note\']">\n\t\t\t<div class="catalog__note-container">\n\t\t\t\t<slot name="note"></slot>\n\t\t\t</div>\n\t\t</div>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{remote:null,filters:null,product:null},state:{filter:null},loading:!1,loadingMinTimeout:null,activeImageIndex:0,openDescrTabId:"features",featuresFolded:!0,featuresShowLimit:12,touchMode:View.mobileAndTabletCheck,initialized:!1,isNotificationShown:!1}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},filterPreset:{default:null}},methods:{copySku:function(t){var e=this;t&&navigator.clipboard.writeText(t).then(function(){e.isNotificationShown=!0,setTimeout(function(){e.isNotificationShown=!1},2500)}).catch(function(t){console.error("copy sku error",t)})},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},loadCatalog:function(t){function e(){i&&(a.catalog=i.catalog,a.openDescrTabId=a.catalog.product.features&&a.catalog.product.features.length||a.catalog.product.paramsTop&&a.catalog.product.paramsTop.length||a.$slots.banner?"features":"params",!t)&&a.pushState(),a.loadingMinTimeout=null,a.loading=!1}var n,a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&e(),a.loadingMinTimeout=null},300)),n={},_.each(_.keys(a.state.filter),function(t){n[t]=a.state.filter[t].value}),n.bxajaxid=a.bxajaxid,$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:n}).done(function(t){console.log("v-catalog loaded",t),i=t}).fail(function(t){console.warn("v-catalog load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||e()}))},filterChanged:function(t,e){this.filterIsChanged=!(!e||!e.length),this.changedFilters=e,this.state.filter=t,console.log("filter to submit: ",this.state.filter),this.stateChanged()},filterUpdated:function(t,e){this.filterIsChanged=!(!e||!e.length),this.changedFilters=e,this.state.filter=t},stateChanged:function(){this.loadCatalog()},openGallery:function(t){var e=this,n=0;t&&("image"==t.mode&&"number"==typeof t.initialIndex?n=t.initialIndex:"360"==t.mode?n=e.catalog.product.images?e.catalog.product.images.length:0:"video"==t.mode&&(n=(e.catalog.product.images?e.catalog.product.images.length:0)+(e.catalog.product.images360?e.catalog.product.images360.length:0))),modalController.open({component:"v-big-gallery",className:"modal--lg modal--gallery",staticDataSource:{alt:e.catalog.product.name,images:e.catalog.product.images,images360:e.catalog.product.images360,videos:e.catalog.product.videos,initialIndex:n}})},handlePopState:function(){},pushState:function(){"localhost"!=window.location.hostname&&window.history.pushState({component:"v-catalog-item",state:this.state,catalog:this.catalog},"",this.catalog.remote)},handleResize:function(){this.featuresShowLimit=window.innerWidth>=View.breakpoints["md-min"]?12:window.innerWidth>=View.breakpoints["xs-min"]?8:6}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,console.log("v-catalog-item loaded from static data",t.catalog),t.openDescrTabId=t.catalog.product.features&&t.catalog.product.features.length||t.catalog.product.paramsTop&&t.catalog.product.paramsTop.length||t.$slots.banner?"features":"params"):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),window.addEventListener("popstate",t.handlePopState),window.addEventListener("resize",t.handleResize),t.handleResize(),t.initialized=!0},mounted:function(){var t=this;Vue.nextTick(function(){View.initAllLocal(t.$el)})},destroyed:function(){window.removeEventListener("popstate",this.handlePopState),window.removeEventListener("resize",this.handleResize)}}),Vue.component("v-catalog-line",{template:'\n\t<section class="v-catalog-line catalog-viewed">\t\n\t\t<header class="section-header flc" \n\t\t        :class="{\'section-header--mb14\': view === \'simple\' || view === \'model-list\' || view === \'model-units\'}">\n\t\t\t<div v-if="view === \'regular\'" class="section-header__main">\n\t\t\t\t<h3 class="section-header__title flc">{{title}}</h3>\n\t\t\t</div>
1\n\t\t\t<div v-if="catalog.filters && catalog.filters.length" \n\t\t\t\t\t class="section-header__aside" \n\t\t\t\t\t :class="{\'section-header__aside--ml0\': view === \'simple\' || view === \'model-list\' || view === \'model-units\'}">\n\t\t\t\t<div class="tab-labels" v-for="filter in catalog.filters">\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<div class="tab-labels__row">\n\t\t\t\t\t\t<div class="tab-labels__item" v-for="(option, optionIndex) in filter.options">\n\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': option.value == filter.value}" \n\t\t\t\t\t\t\t\t\t\t\t@click="filter.value = option.value; filterValue = option.value">\n\t\t\t\t\t\t\t\t{{option.text}} <span v-if="showCounters && counters.length > 0">({{counters[optionIndex]}})</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</header>\n\t\t\n\t\t<template v-if="view === \'simple\'">\n\t\t\t<div class="catalog-line__used-products">\n\t\t\t\t<v-detail-picker :items="getFilteredItems()" \n\t\t\t\t                 :bxajaxid="bxajaxid" \n\t\t\t\t                 :filter-value="filterValue">\n\t\t\t\t</v-detail-picker>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="view === \'model-list\'">\n\t\t\t<div class="catalog-line__used-products">\n\t\t\t\t<div class="models-grid grid">\n\t\t\t\t\t<div v-for="(item, index) in getFilteredItems()"\n\t\t\t\t\t     :key="item.id || index"\n\t\t\t\t\t     class="models-grid__item col">\n\t\t\t\t\t\t<v-product template="model" :product="item" :local-query="localQuery"></v-product>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="view === \'model-units\'">\n\t\t\t<div class="catalog-line__used-products">\n\t\t\t\t<v-detail-picker :items="getFilteredItems()" \n\t\t\t\t                 :bxajaxid="bxajaxid" \n\t\t\t\t                 :filter-value="filterValue" \n\t\t\t\t                 :local-query="localQuery">\n\t\t\t\t</v-detail-picker>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<div class="catalog-viewed__products flc">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>\n\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t<v-product-slider :items="getFilteredItems()" :bxajaxid="bxajaxid" :viewed="viewed" @remove="remove"></v-product-slider>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t</section>\n',mixins:[vueMixins.formatting],data:function(){return{catalog:{remote:null,filters:null,items:null},loading:!1,loadingMinTimeout:null,filterValue:null,counters:[]}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},title:{default:"Вы смотрели"},viewed:{type:Boolean,default:!1},view:{default:"regular"},showCounters:{type:Boolean,default:!1},localQuery:{default:null}},watch:{staticDataSource:function(){this.staticDataSource&&(this.catalog=this.staticDataSource.catalog,console.log("v-catalog-line re-loaded from static data",this.catalog),this.calcCounters())}},methods:{loadCatalog:function(t,e,n,a){function i(){var t;l&&(t=s.catalog.items,s.catalog=l.catalog,e)&&(s.catalog.items=t.concat(s.catalog.items)),s.loadingMinTimeout=null,s.loading=!1}console.log("start load catalog");var s=this,l=null,o=!1;s.loading||(s.loading=!0,t||(s.loadingMinTimeout=setTimeout(function(){o&&i(),s.loadingMinTimeout=null},300)),$.ajax({url:s.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{bxajaxid:s.bxajaxid,action:n?"remove":"get",id:a||null}}).done(function(t){console.log("v-catalog-line loaded",t),l=t}).fail(function(t){console.warn("v-catalog-line load failed",t)}).always(function(){o=!0,s.loadingMinTimeout&&!t||i()}))},getFilteredItems:function(){var e=this;return this.catalog.filters&&this.catalog.filters.length?_.filter(this.catalog.items,function(t){return t.filterBinding&&0<=t.filterBinding.indexOf(e.catalog.filters[0].value)}):this.catalog.items},filterChanged:function(t,e){this.filterIsChanged=!(!e||!e.length),this.changedFilters=e,this.state.filter=t,console.log("filter to submit: ",this.state.filter)},stateChanged:function(){this.loadCatalog()},remove:function(t){this.loadCatalog(!1,!1,!0,t)},calcCounters:function(){var t=this;if(t.catalog.filters&&t.showCounters)for(var e=0;e<t.catalog.filters[0].options.length;e++){for(var n=0,a=t.catalog.filters[0].options[e].value,i=0;i<t.catalog.items.length;i++)for(var s=0;s<t.catalog.items[i].filterBinding.length;s++)t.catalog.items[i].filterBinding[s]===a&&n++;t.counters.push(n)}}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,t.calcCounters()):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-catalog",{template:'\n\t<div class="v-catalog catalog" :class="{\'catalog--initialized\': initialized}" itemscope itemtype="https://schema.org/ItemList">\n\n\t\t<template v-if="view === \'orders\'">\n\t\t\t<div class="catalog__header">\n\t\t\t\t<div class="catalog__header-wrap">\n\t\t\t\t\t<div class="catalog__filter-label">{{getMessage(\'FAST_FILTER\')}}</div>\n\t\t\t\t\t<div class="catalog__filter-wrap">\n\t\t\t\t\t\t<v-filter v-if="catalog.filters"\n\t\t\t\t\t\t          mode="horizontal"\n\t\t\t\t\t\t          :filters="catalog.filters"\n\t\t\t\t\t\t          :value="state.filter"\n\t\t\t\t\t\t          :loading="loading"\n\t\t\t\t\t\t          @filtered="filterChanged"\n\t\t\t\t\t\t          @filterupdate="filterUpdated"\n\t\t\t\t\t\t          ref="filter">\n\t\t\t\t\t\t</v-filter>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="catalog__orders">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>\n\t\t\t\t<template v-if="catalog.items && catalog.items.length">\n\t\t\t\t\t<div class="catalog__orders-list">\n\t\t\t\t\t\t<div v-for="(order, orderIndex) in catalog.items"\n\t\t\t\t\t\t     class="catalog__orders-list-item flc"\n\t\t\t\t\t\t     :key="order.id || orderIndex">\n\t\t\t\t\t\t\t<a :href="order.link" class="catalog__orders-link"></a>\n\t\t\t\t\t\t\t<div class="order-kds order-kds--mt0">\n\t\t\t\t\t\t\t\t<div class="order-kds__main order-kds__main--mt0">\n\t\t\t\t\t\t\t\t\t<div class="order-kds__left">\n\t\t\t\t\t\t\t\t\t\t<h5 v-if="order && order.title"\n\t\t\t\t\t\t\t\t\t\t    class="order-kds__subtitle">\n\t\t\t\t\t\t\t\t\t\t\t{{order.title}}\n\t\t\t\t\t\t\t\t\t\t</h5>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order && order.dateOfIssue"\n\t\t\t\t\t\t\t\t\t\t     class="order-kds__caption">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'FROM_2\')}} {{order.dateOfIssue}}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.status" class="order-kds__status">\n\t\t\t\t\t\t\t\t\t\t\t<div class="big-status flc">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="big-status__marker"\n\t\t\t\t\t\t\t\t\t\t\t\t     :style="{\'background-color\': order.status.color}"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="big-status__text">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{order.status.text}}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.scheduledShipment" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'SCHEDULED_SHIPMENT\')}}
1:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.scheduledShipment}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.deliveryMethod" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'DELIVERY_METHOD\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.deliveryMethod}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="order-kds__link-icon">\n\t\t\t\t\t\t\t\t\t\t\t<button v-if="order.printLink" @click.prevent="openNewWindow(order.printLink, \'\', order.printFeatures)"\n\t\t\t\t\t\t\t\t\t\t\t        class="link-icon"\n\t\t\t\t\t\t\t\t\t\t\t        type="button">\n\t\t\t\t\t\t\t\t\t\t\t\t<svg class="link-icon__icon svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-small-printer"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'PRINT_INVOICE\')}}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="order-kds__right">\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.serviceCenterName" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'SC_NAME\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.serviceCenterName}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.contract" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'SPARE_PARTS_CONTRACT\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.contract}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.address" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'COUNTRY_AND_ADDRESS\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.address}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.contactFio" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'NAME_OF_CONTACT_PERSON\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.contactFio}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.phoneNumber" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'PHONE_NUMBER\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.phoneNumber}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div v-if="order.email" class="order-kds__feature flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'EMAIL\')}}:&nbsp;</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.email}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<v-page-nav mode="more"\n\t\t\t\t\t\t            class="catalog__navigation catalog__navigation--mt20"\n\t\t\t\t\t\t            :static-data-source="catalog.pages"\n\t\t\t\t\t\t            @navigate="loadMore"\n\t\t\t\t\t\t            v-if="catalog.pages && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)">\n\t\t\t\t\t\t</v-page-nav>\n\t\t\t\t\t</transition>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<div class="catalog__orders-message">{{getMessage(\'NO_ORDERS\')}}</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="view === \'detail\'">\n\t\t\t<div class="catalog__header">\n\t\t\t\t<div class="catalog__header-left">\n\t\t\t\t\t<slot name="link"></slot>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog__header-right">\n\t\t\t\t\t<div class="catalog__filter-label">{{getMessage(\'FAST_FILTER\')}}</div>\n\t\t\t\t\t<v-filter v-if="catalog.filters"\n\t\t\t\t\t\t\t\t\t\tmode="simple"\n\t\t\t\t\t\t\t\t\t\t:filters="catalog.filters"\n\t\t\t\t\t\t\t\t\t\t:value="state.filter"\n\t\t\t\t\t\t\t\t\t\t:loading="loading"\n\t\t\t\t\t\t\t\t\t\t@filtered="filterChanged"\n\t\t\t\t\t\t\t\t\t\t@filterupdate="filterUpdated"\n\t\t\t\t\t\t\t\t\t\tref="filter">\n\t\t\t\t\t</v-filter>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="catalog__detail js-catalog__detail">\n\t\t\t\t<div class="catalog__detail-left">\n\t\t\t\t\t<div class="catalog__detail-image-wrap">\n\t\t\t\t\t\t<div class="zoom-box js-catalog__zoom-box">\n\t\t\t\t\t\t\t<img class="zoom-box__img js-catalog__zoom-box-img" src="" alt="">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if="catalog.title" class="catalog__detail-title">{{catalog.title}}</div>\n\t\t\t\t\t\t<div class="catalog__images-cover js-catalog__images-cover">\n\t\t\t\t\t\t\t<img v-if="catalog.image" :src="catalog.image" :data-large="catalog.image_2x" alt="" class="catalog__detail-image js-catalog__detail__image">\n\t\t\t\t\t\t\t<img v-else src="/local/images/no_photo.png" alt="" class="catalog__detail-image js-catalog__detail-image">\n\t\t\t\t\t\t\t<div class="catalog__lens js-catalog__lens"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog__detail-right">\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t\t</transition>
1\n\t\t\t\t\t<div v-if="catalog.items && catalog.items.length"\n\t\t\t\t\t\t\t class="catalog__detail-list">\n\t\t\t\t\t\t<div v-for="(item, index) in catalog.items"\n\t\t\t\t\t\t\t\t class="catalog__detail-item">\n\t\t\t\t\t\t\t<v-product template="detail" :product="item"></v-product>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<v-page-nav mode="more"\n\t\t\t\t\t\t\t\t\t\t\t\tclass="catalog__navigation catalog__navigation--mt20"\n\t\t\t\t\t\t\t\t\t\t\t\t:static-data-source="catalog.pages"\n\t\t\t\t\t\t\t\t\t\t\t\t@navigate="loadMore"\n\t\t\t\t\t\t\t\t\t\t\t\tv-if="catalog.pages && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)">\n\t\t\t\t\t\t</v-page-nav>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="view === \'units\'">\n\t\t\t<div class="catalog__header">\n\t\t\t\t<div class="catalog__header-left">\n\t\t\t\t\t<slot name="link"></slot>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog__header-right">\n\t\t\t\t\t<div class="catalog__link-wrap">\n\t\t\t\t\t\t<slot name="link2"></slot>\n\t\t\t\t\t\t<div class="catalog__tabs">\n\t\t\t\t\t\t\t<button @click="showList = true" class="catalog__tab" type="button" aria-label="В виде списка">\n\t\t\t\t\t\t\t\t<svg class="catalog__tab-icon svg-icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-catalog-list"></use>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<button @click="showList = false" class="catalog__tab" type="button" aria-label="В виде плитки">\n\t\t\t\t\t\t\t\t<svg class="catalog__tab-icon svg-icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-catalog-grid"></use>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<template v-if="$slots[\'accordion\']">\n\t\t\t\t<slot name="accordion"></slot>\n\t\t\t</template>\n\n\t\t\t<div class="catalog__units">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>\n\n\t\t\t\t<div v-if="!mobile ? true : showList" class="catalog__units-left">\n\t\t\t\t\t<div v-if="catalog.items && catalog.items.length" class="units-list">\n\t\t\t\t\t\t<div v-for="(item, index) in catalog.items"\n\t\t\t\t\t\t\t\t :key="item.id || index"\n\t\t\t\t\t\t\t\t class="units-list__item flc">\n\t\t\t\t\t\t\t<v-product template="units-list" :product="item"></v-product>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if="!mobile ? true : !showList" class="catalog__units-right">\n\t\t\t\t\t<div v-if="catalog.items && catalog.items.length" class="units-grid grid">\n\t\t\t\t\t\t<div v-for="(item, index) in catalog.items"\n\t\t\t\t\t\t\t\t :key="item.id || index"\n\t\t\t\t\t\t\t\t class="units-grid__item col">\n\t\t\t\t\t\t\t<v-product template="units-grid" :product="item"></v-product>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<transition name="content-fade">\n\t\t\t\t<v-page-nav mode="more"\n\t\t\t\t\t\t\t\t\t\tclass="catalog__navigation catalog__navigation--mt20"\n\t\t\t\t\t\t\t\t\t\t:static-data-source="catalog.pages"\n\t\t\t\t\t\t\t\t\t\t@navigate="loadMore"\n\t\t\t\t\t\t\t\t\t\tv-if="catalog.pages && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)">\n\t\t\t\t</v-page-nav>\n\t\t\t</transition>\n\t\t</template>\n\n\t\t<template v-else-if="view === \'simple\'">\n\t\t\t<div class="catalog__header">\n\t\t\t\t<div class="catalog__header-left">\n\t\t\t\t\t<slot name="link"></slot>\n\t\t\t\t</div>\n\t\t\t\t<div class="catalog__header-right">\n\t\t\t\t\t<div class="catalog__filter-label">{{getMessage(\'FAST_FILTER\')}}</div>\n\t\t\t\t\t<v-filter v-if="catalog.filters"\n\t\t\t\t\t\t\t\t\t\tmode="simple"\n\t\t\t\t\t\t\t\t\t\t:filters="catalog.filters"\n\t\t\t\t\t\t\t\t\t\t:value="state.filter"\n\t\t\t\t\t\t\t\t\t\t:loading="loading"\n\t\t\t\t\t\t\t\t\t\t@filtered="filterChanged"\n\t\t\t\t\t\t\t\t\t\t@filterupdate="filterUpdated"\n\t\t\t\t\t\t\t\t\t\tref="filter">\n\t\t\t\t\t</v-filter>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="catalog__models">\n\t\t\t\t<template v-if="catalog.items && catalog.items.length">\n\t\t\t\t\t<div class="models-grid grid">\n\t\t\t\t\t\t<div v-for="(item, index) in catalog.items"\n\t\t\t\t\t\t\t\t :key="item.id || index"\n\t\t\t\t\t\t\t\t class="models-grid__item col">\n\t\t\t\t\t\t\t<v-product template="model" :product="item"></v-product>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<div class="models-grid">\n\t\t\t\t\t\t<div class="models-grid__message">{{getMessage(\'NO_MODELS\')}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t\t<transition name="content-fade">\n\t\t\t\t<v-page-nav mode="more"\n\t\t\t\t\t\t\t\t\t\tclass="catalog__navigation catalog__navigation--mt20"\n\t\t\t\t\t\t\t\t\t\t:static-data-source="catalog.pages"\n\t\t\t\t\t\t\t\t\t\t@navigate="loadMore"\n\t\t\t\t\t\t\t\t\t\tv-if="catalog.pages && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)">\n\t\t\t\t</v-page-nav>\n\t\t\t</transition>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<h1 class="h1--small page-title flc" v-if="catalog.title">{{catalog.title}}</h1>\n\n\t\t\t<v-horizontal-nav :links="catalog.links" v-if="catalog.links || catalog.filters" :loading="loading" trim catch-click @navigate="navigateByLink">\n\t\t\t\t<v-filter slot="filter" v-if="catalog.filters" :filters="catalog.filters" :groups="catalog.filterGroups" :value="state.filter" :loading="loading" @filtered="filterChanged" @filterupdate="filterUpdated" ref="filter"></v-filter>\n\t\t\t</v-horizontal-nav>\n\n\t\t\t<v-list-status ref="statusBar" class="flc" :catalog="catalog" :state="state" :changed-filters="changedFilters" :loading="loading"\n\t\t\t\t\t\t\t\t\t\t @reset="resetFilter"\n\t\t\t\t\t\t\t\t\t\t @sort="state.sort = $event; stateChanged();">\n\t\t\t</v-list-status>\n\n\t\t\t<div class="catalog__products flc">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>\n\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t<v-product-grid :items="catalog.items" :bxajaxid="bxajaxid"></v-product-grid>\n\t\t\t\t</transition>\n\t\t\t</div>\n\n\t\t\t<transition name="content-fade">\n\t\t\t\t<v-page-nav class="catalog__navigation"\n\t\t\t\t\t\t\t\t\t\t:static-data-source="catalog.pages"\n\t\t\t\t\t\t\t\t\t\t@navigate="navigateByPage"\n\t\t\t\t\t\t\t\t\t\tv-if="catalog.pages && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)"></v-page-nav>\n\t\t\t</transition>\n\n      <div class="article--static article--framed text-guide catalog-desciption" v-if="catalog.currentSectionDesc" v-html="catalog.currentSectionDesc"></div>\n\n\t\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'recently-viewed\']">\n\t\t\t\t<slot name="recently-viewed"></slot>\n\t\t\t</div>\n\n\t\t\t<div class="catalog__note flc" v-if="$slots[\'note\']">\n\t\t\t\t<div class="catalog__note-container">\n\t\t\t\t\t<slot name="note"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{sorts:null,filters:null,items:null,remote:null,itemsTotal:null,itemsCount:null,pages:{offset:null,limit:null,count:null},currentSectionDesc:null},state:{sort:null,filter:null,view:"grid",pages:{offset:null,limit:null}},loading:!1,loadingMinTimeout:null,initialized:!1,filterIsChanged:!1,changedFilters:null,filterDebounceTimeout:null,mobile:!1,showList:!0}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},filterPreset:{default:null},view:{default:"regular"}},computed:{activeFilters:function(){var a=[];return _.each(this.changedFilters,function(n){var t;Array.isArray(n.value)?_.each(n.value,function(t){var e;(t&&void 0!==t.min||void 0!==t.max)&&!t.min&&!t.max&&"number"!=typeof t.min&&"number"!=typeof t.max||(e=_.find(n.options,{value:t}),a.push({id:n.id,type:n.type,label:n.text,value:t,text:e?e.text:null,unit:n.unit}))}):(t=_.find(n.options,{value:n.value}),a.push({id:n.id,type:n.type,label:n.text,value:n.value,text:t?t.text:null,unit:n.unit}))}),a}},methods:{openNewWindow:function(t,e,n){window.open(t,e,n)},openFilterPanel:function(){this.$refs.filter.$emit("openpanel")},getActiveFilterKey:function(t){try{if("object"==_typeof(t.value)&&!_.find(_.find(this.catalog.filters,{id:t.id}).options,{value:t.value}))return t.id+"/custom"}catch(t){}return"single"==t.type?t.id:t.id+"/"+JSON.stringify(t.value)},navigateByLink:function(t){this.catalog.remote=t.href,this.state.filter=null,this.loadCatalog(!1,!1,!0)}
1,loadMore:function(t){this.state.offset=t.offset,this.state.limit=t.limit,this.loadCatalog(!1,!0)},navigateByPage:function(t){this.state.offset=t.offset,this.state.limit=t.limit,this.loadCatalog(),$(this.$refs.statusBar).length&&$("html, body").animate({scrollTop:$(this.$refs.statusBar.$el||this.$el).offset().top-40},500)},loadCatalog:function(t,e,n){function a(){if(l){var t=s.catalog.items;s.catalog=l.catalog,e&&(s.catalog.items=t.concat(s.catalog.items)),e||s.pushState();try{s.state.sort=l.state.sort,s.state.pages=l.catalog.pages}catch(t){console.warn("v-catalog: something wrong with state\n",t)}}s.loadingMinTimeout=null,s.loading=!1,s.$forceUpdate()}var i,s=this,l=null,o=!1;s.loading||(s.loading=!0,t||(s.loadingMinTimeout=setTimeout(function(){o&&a(),s.loadingMinTimeout=null},300)),(i=_.clone(s.state)).filter||(i.filter=null),$.ajax({url:s.catalog.remote,method:"localhost"==window.location.hostname||n?"get":"post",dataType:"json",data:{state:i,loadByLink:n,bxajaxid:s.bxajaxid}}).done(function(t){console.log("v-catalog loaded",t),l=t}).fail(function(t){console.warn("v-catalog load failed",t)}).always(function(){o=!0,s.loadingMinTimeout&&!t||a()}))},filterChanged:function(t,e,n){var a=this;a.filterIsChanged=!(!e||!e.length),a.changedFilters=e,a.state.filter=t,clearTimeout(a.filterDebounceTimeout),a.filterDebounceTimeout=setTimeout(function(){a.prepareFilters(),console.log("filter to submit: ",JSON.parse(JSON.stringify(a.state.filter))),a.stateChanged()},n&&"range"==n.type?2800:1e3)},filterUpdated:function(t,e){this.filterIsChanged=!(!e||!e.length),this.changedFilters=e,this.state.filter=t,this.state.offset=0},prepareFilters:function(){var a=this;_.each(this.state.filter,function(t,e){var n;"range"==t.type&&(t.value=(t=t.value,e=_.find(a.catalog.filters,{id:e}),n=e.min||0,e=e.max||1/0,t.min&&(t.min<n&&(t.min=n),t.min>e)&&(t.min=e),t.max&&(t.max<n&&(t.max=n),t.max>e)&&(t.max=e),t.max&&t.min&&+t.min>+t.max&&(t.min=t.max),t))})},stateChanged:function(){clearTimeout(this.filterDebounceTimeout),this.loadCatalog()},resetFilter:function(t,e){void 0===t?this.$refs.filter.$emit("reset"):this.$refs.filter.$emit("reset",t,e)},handlePopState:function(t){t.state&&"v-catalog"==t.state.component&&(console.log("v-catalog: pop state",t.state),this.state=t.state.state,this.catalog=t.state.catalog)},pushState:function(){console.log(this.catalog.remote),"localhost"!=window.location.hostname&&console.log(this.catalog),window.history.pushState({component:"v-catalog",state:this.state,catalog:this.catalog},"",this.catalog.remote)},handleResize:function(){this.mobile=window.innerWidth<=View.breakpoints["sm-max"]}},created:function(){var t=this;if(t.staticDataSource){t.catalog=t.staticDataSource.catalog,t.staticDataSource.pages&&(t.state.pages.limit=parseInt(t.staticDataSource.pages.limit));try{t.state.sort=t.staticDataSource.state?t.staticDataSource.state.sort:t.staticDataSource.catalog.sorts[0].value}catch(t){console.warn("v-catalog: something wrong with initial sort value\n",t)}console.log("v-catalog loaded from static data",t.catalog)}else t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.filterPreset&&(this.filterIsChanged=!0,this.state.filter=_.map(t.filterPreset,function(t){return{id:t.id,value:t.value,type:t.type}})),t.loadCatalog(!0));window.addEventListener("resize",this.handleResize,View.passiveEventsSupported?{passive:!0}:void 0),window.addEventListener("popstate",t.handlePopState),this.handleResize(),t.staticDataSource&&t.pushState(),Vue.nextTick(function(){t.initialized=!0})},mounted:function(){View.initAllLocal(this.$el)},destroyed:function(){window.removeEventListener("popstate",this.handlePopState),window.removeEventListener("resize",this.handleResize)}}),Vue.component("v-city-bar",{template:'\n\t<div class="v-city-bar city-bar">\n\t\t<div class="city-bar__main">\n\t\t\t<h4 class="city-bar__title h4" v-if="city && city.name">\n\t\t\t\t{{getMessage(\'OUR_REGION\')}} <span>{{city.name}}?</span>\n\t\t\t</h4>\n\t\t\t<div class="city-bar__action flc">\n\t\t\t\t<div class="city-bar__action-grid">\n\t\t\t\t\t<button type="button" class="city-bar__btn btn btn--primary" @click="confirmCity">\n\t\t\t\t\t\t<span class="city-bar__btn-inner">{{getMessage(\'OUR_REGION_CONFIRM\')}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button type="button" class="city-bar__btn btn btn--primary" @click="rejectCity(remote)">\n\t\t\t\t\t\t<span class="city-bar__btn-inner">{{getMessage(\'OUR_REGION_REJECT\')}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class="city-bar__footer modal-footer" v-if="countries">\n\t\t\t<h5 class="city-bar__footer-title flc">ATLANT в других странах:</h5>\n\t\t\t<div class="city-bar__countries">\n\t\t\t\t<div class="city-bar__countries-grid">\n\t\t\t\t\t<div class="city-bar__countries-item" v-for="item in countries">\n\t\t\t\t\t\t\x3c!-- или сравнивать item[??id??] == country --\x3e\n\t\t\t\t\t\t<a :href="item.active ? null : item.link" class="lang-link" :class="{\'lang-link--active\': item.active}">\n\t\t\t\t\t\t\t<span class="lang-link__icon" :style="{\'background-image\': \'url(\' + item.image + \')\'}"></span>\n\t\t\t\t\t\t\t<span class="lang-link__text">{{item.name}}</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{city:{name:null,id:null},country:null}},props:{remote:{default:null},searchCity:{default:null},initialCityName:{default:null},initialCityId:{default:null},searchCityFormUrl:{default:"/local/components/newsite/citySelect/search.php"},warmCityConfirmUrl:{default:"/local/components/newsite/citySelect/warningCity.php"},bxajaxid:{default:null},countries:{default:null},redirectLink:{default:null}},methods:{confirmCity:function(){modalController.close(),modalController.openUrl(this.warmCityConfirmUrl,{className:"modal--sm"})},rejectCity:function(){modalController.close(),modalController.openUrl(this.searchCityFormUrl,{className:"modal--md"})}},created:function(){Model.geolocation.city&&Model.geolocation.city.name?(this.city.name=Model.geolocation.city.name,this.country=Model.geolocation.country):this.city.name=this.initialCityName},mounted:function(){}}),Vue.component("v-city-form",{template:'\n\t<div class="v-city-form city-form">\n\t\t<h2 class="city-form__title h2">\n\t\t\t{{getMessage(\'SELECT_CITY_TITLE\')}}\n\t\t</h2>\n\t\t<p class="city-form__message">\n\t\t\t{{getMessage(\'SELECT_CITY_NOTIFICATION\')}}\n\t\t</p>\n\n\t\t<transition name="content-fade">\n\t\t\t<div class="city-form__message city-form__message--error" \n\t\t\t\t\t v-if="query && query.length && !canConfirm">\n\t\t\t\t{{getMessage(\'SELECT_CITY_ERROR\')}}\n\t\t\t</div>\n\t\t</transition>\n\n\t\t<v-field type="search" \n\t\t\t\t\t\t v-model="state.query"\n\t\t\t\t\t\t @input="queryInput"\n\t\t\t\t\t\t :placeholder="catalog.placeholder"\n\t\t\t\t\t\t :suggestions="state.query == catalog.query ? catalog.suggestions : null"\n\t\t></v-field>\n\n    <div class="city-form__form-suggestions flc" v-if="redirection.link">\n      <h4 class="city-form__form-suggestions-title flc">\n        Предупреждение\n      </h4>\n      <p>Вы будете перенаправлены в регион {{redirection.region}}</p>\n    </div>\n\n\t\t<div class="city-form__form-suggestions flc" v-if="topLocations">\n\t\t\t<h4 class="city-form__form-suggestions-title flc">\n\t\t\t\t{{getMessage(\'TOP_LOCATIONS_TITLE\')}}\n\t\t\t</h4>\n\t\t\t<div class="city-form__form-suggestions-grid grid">\n\t\t\t\t<div class="city-form__form-suggestions-item col col-xl-4 col-xs-6 col-3xs-12"\n\t\t\t\t\t\t v-for="location in topLocations">\n\t\t\t\t\t<button type="button"\n\t\t\t\t\t\t\t\t\tclass="city-form__button"\n\t\t\t\t\t\t\t\t\t@click="setCity(location.data)">\n\t\t\t\t\t\t{{location.showValue}}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="city-form__action">\n\t\t\t<button type="submit" \n\t\t\t\t\t\t\tclass="city-form__btn btn btn--primary flc" \n\t\t\t\t\t\t\t@click="confirmCity" \n\t\t\t\t\t\t\t:disabled="!canConfirm">\n\t\t\t\t<span class="city-form__btn-inner">\n\t\t\t\t\t{{getMessage(\'SAVE\')}}\n\t\t\t\t</span>\n\t\t\t</button>\n\t\t\t<button type="submit" \n\t\t\t\t\t\t\tclass="city-form__btn btn btn--primary flc" \n\t\t\t\t\t\t\t@click="rejectCity">\n\t\t\t\t<span class="city-form__btn-inner">\n\t\t\t\t\t{{getMessage(\'CANCEL\')}}\n\t\t\t\t</span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{cityID:0,query:null,
1suggestions:[],suggestionsBase:[],inputTimeout:null,filterDebounceTimeout:null,catalog:{remote:null,query:null},redirection:{region:null,link:null},state:{query:null,pages:{offset:null,limit:null}}}},computed:{canConfirm:function(){return this.cityID}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},topLocations:{default:null},bxajaxid:{default:null},rejectLink:{default:null},successLink:{default:null}},methods:{loadCatalog:function(t,e,n){function a(){if(l){s.catalog=l.catalog;try{s.state.query=l.catalog.query}catch(t){console.warn("v-city-form: something wrong with state\n",t)}}s.loadingMinTimeout=null,s.loading=!1,s.$forceUpdate()}var i,s=this,l=null,o=!1;s.loading||(s.loading=!0,t||(s.loadingMinTimeout=setTimeout(function(){o&&a(),s.loadingMinTimeout=null},300)),(i=_.clone(s.state)).filter||(i.filter=null),$.ajax({url:s.catalog.remote,method:"localhost"==window.location.hostname||n?"get":"post",dataType:"json",data:{state:i,loadByLink:n,bxajaxid:s.bxajaxid}}).done(function(t){console.log("v-city-form loaded",t),l=t}).fail(function(t){console.warn("v-city-form load failed",t)}).always(function(){o=!0,s.loadingMinTimeout&&!t||a()}))},stateChanged:function(){clearTimeout(this.filterDebounceTimeout),this.loadCatalog()},confirmCity:function(){this.cityID&&Model.setGeolocation(this.cityID),modalController.close(),this.redirection.link&&(window.location.href=this.redirection.link)},setCity:function(t){Model.setGeolocation(t,function(){modalController.close()})},rejectCity:function(){this.rejectLink&&(window.location.href=this.rejectLink),modalController.close()},queryFocus:function(){this.query=""},queryInput:function(t,e){var n=this;e&&e.suggest?e.data?(this.cityID=e.data,e.redirection&&(n.redirection=e.redirection)):this.cityID=0:(this.cityID=0,clearTimeout(this.inputTimeout),this.inputTimeout=setTimeout(function(){$.post({url:n.catalog.remote,dataType:"json",data:{query:n.state.query,bxajaxid:n.bxajaxid}}).done(function(t){console.log("ajax done",t),n.catalog=t.catalog}).fail(function(t){n.catalog.suggestions=[],console.warn("city-form ajax failed:",t)})},500))}},created:function(){var t=this;if(t.staticDataSource){t.catalog=t.staticDataSource.catalog;
1try{t.state.query=t.staticDataSource.catalog.query}catch(t){console.warn("v-city-form: something wrong with initial sort value\n",t)}console.log("v-city-form loaded from static data",t.catalog)}else t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-city-warn",{template:'\n  <div class="city-bar">\n    <div class="city-bar__main">\n      <h4 class="city-bar__title h4">{{title}}</h4>\n      <p class="city-bar__message">{{message}}</p>\n      <div class="city-bar__action flc">\n        <div class="city-bar__action-grid">\n          <button type="button" class="city-bar__btn btn btn--primary" @click="successCityConfirm">\n            <span class="city-bar__btn-inner">{{successText}}</span>\n          </button>\n          <button type="button" class="city-bar__btn btn btn--primary" @click="rejectCityConfirm">\n            <span class="city-bar__btn-inner">{{rejectText}}</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n',data:function(){return{}},props:{title:{default:null},message:{default:null},successLink:{default:null},successText:{default:null},rejectLink:{default:null},rejectText:{default:null}},methods:{successCityConfirm:function(){this.successLink&&(window.location.href=this.successLink),modalController.close()},rejectCityConfirm:function(){this.rejectLink&&(window.location.href=this.rejectLink),modalController.close()}}}),Vue.component("v-compare-bar",{template:'\n\t<div class="v-compare-bar compare-bar">\n\t\t<transition name="compare-btn-toggle">\n\t\t\t<div class="compare-bar__block" v-if="items && items.length">\n\t\t\t\t<a :href="link" class="compare-bar__main">\n\t\t\t\t\t{{getMessage(\'IN_COMPARE\')}}: <span class="compare-bar__value">{{items.length}}</span>\n\t\t\t\t</a>\n\t\t\t\t<div class="compare-bar__aside" @click="clear" aria-label="Удалить">\n\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-delete"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</transition>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{items:null,link:null}},methods:{clear:function(){Model.compareClear()}},created:function(){var t=this;this.items=Model.compare.items,this.link=Model.compare.link,Model.$on("compare-changed",function(){t.items=Model.compare.items,t.link=Model.compare.link})}}),Vue.component("v-compare-btn",{template:'\n\t<label class="v-compare-btn compare-btn" :class="\'compare-btn--\' + template" @click="template == \'icon\' ? setState(false) : null" aria-label="Сравнить">\n\t\t<template v-if="template == \'checkbox\'">\n\t\t\t<input type="checkbox" class="compare-btn__input" :true-value="true" :false-value="false" v-model="added" @change="setState(added)">\n\t\t\t<span class="compare-btn__visual"></span>\n\t\t\t<span class="compare-btn__text">{{getMessage(\'COMPARED\')}}</span>\n\t\t</template>\n\t\t<template v-else-if="template == \'icon\'">\n\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-close"></use></svg>\n\t\t</template>\n\t</label>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{added:void 0}},props:{productId:{default:null},template:{default:"checkbox"}},methods:{updateState:function(){this.added=!!_.find(Model.compare.items,{id:this.productId})},setState:function(t){t?Model.compareAdd(this.productId):Model.compareRemove(this.productId)}},created:function(){Model.$on("compare-changed",this.updateState),this.updateState()}}),Vue.component("v-dblayer-table",{template:'\n  <div class="v-article-list-full article-list-full article-list-full--fill article-list-full--framed">\n    <transition name="content-fade">\n      <div class="loader-cover" v-if="loading"></div>\n    </transition>\n    <div class="article-list-full__status flc">\n      <v-list-status :catalog="catalog" :state="state"  :loading="loading"\n                     @reset="resetHeaderFilter"\n                     @sort="state.sort = $event; stateChanged();">\n      </v-list-status>\n    </div>\n    <div class="article-list-full__text-block text-guide flc">\n      <div class="table-scroller">\n        <table cellspacing="1" cellpadding="0" class="code-table">\n          <tbody>\n          <tr >\n            <th v-for="(head,key, index) in catalog.headers">\n              {{head.title}}\n            </th>\n          </tr>\n          <tr v-for="item  in catalog.items">\n            <td v-for="(head,key) in catalog.headers" align="center">
1\n              <span v-if="head.contentType == \'HTML\' " v-html="item[key]"></span>\n              <span v-else>\n                 {{item[key]}}\n              </span>\n            </td>\n          </tr>\n          </tbody>\n        </table>\n      </div>\n    </div>\n    <transition name="content-fade">\n      <v-page-nav class="catalog__navigation"\n                  :static-data-source="catalog.pages"\n                  @navigate="navigateByPage"\n                  v-if="catalog.pages && !noPageNav && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)"></v-page-nav>\n    </transition>\n\n  </div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{filters:null,items:null,headers:null,remote:null,attention:null,itemsTotal:null,itemsCount:null,pages:{offset:null,limit:null,count:null}},state:{filter:null,pages:{offset:null,limit:null},sort:null},loading:!1,loadingMinTimeout:null,mapLoading:!1,changedFilters:null,isInitialState:!0,currentLocation:null,isGeolocationChanged:!1}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},useHeaderFilter:{type:Boolean,default:!1},frame:{type:Boolean,default:!1},mode:{type:String,default:"article"},view:{type:String,default:"regular"},initialOpenArticle:{default:null},userLocation:{type:Array,default:null},allCoords:{default:null},noPageNav:{type:Boolean,default:!1},noHistory:{type:Boolean,default:!1},fill:{type:Boolean,default:!1},openDetailInNewPage:{type:Boolean,default:!1}},methods:{openFilterPanel:function(){this.$refs.filter.$emit("openpanel")},getActiveFilterKey:function(t){try{if("object"==_typeof(t.value)&&!_.find(_.find(this.catalog.filters,{id:t.id}).options,{value:t.value}))return t.id+"/custom"}catch(t){}return t.id+"/"+JSON.stringify(t.value)},navigateByLink:function(t){this.catalog.remote=t.href,this.state.filter=null,this.loadCatalog()},navigateByPage:function(t){this.state.offset=t.offset,this.state.limit=t.limit,this.loadCatalog(),$("html, body").animate({scrollTop:$(this.$el).offset().top-40},500)},loadCatalog:function(t,e){function n(){if(s){var t=i.catalog.items;i.catalog=s.catalog,e&&(i.catalog.items=t.concat(i.catalog.items)),e||(i.pushState(),i.isInitialState=!1);try{i.state.pages=s.catalog.pages,s.state&&(i.state.sort=s.state.sort)}catch(t){console.warn("v-dblayer-table: something wrong with state\n",t)}window.vHeaderFilter&&(window.vHeaderFilter.$emit("set-filters",i.catalog.filters),window.vHeaderFilter.$emit("set-loading",!1),window.vHeaderFilter.$off("filtered",i.filterChanged).$on("filtered",i.filterChanged))}i.loadingMinTimeout=null,i.loading=!1}var a,i=this,s=null,l=!1;i.loading||(i.loading=!0,window.vHeaderFilter&&window.vHeaderFilter.$emit("set-loading",!0),t||(i.loadingMinTimeout=setTimeout(function(){l&&n(),i.loadingMinTimeout=null},300)),a=_.clone(i.state),$.ajax({url:i.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",cache:!1,data:{state:a,bxajaxid:i.bxajaxid}}).done(function(t){console.log("v-dblayer-table loaded",t),s=t}).fail(function(t){console.warn("v-dblayer-table load failed",t)}).always(function(){l=!0,i.loadingMinTimeout&&!t||n()}))},loadMore:function(){this.state.pages.offset=parseInt(this.catalog.pages.offset)+parseInt(this.catalog.pages.limit),this.loadCatalog(!1,!0)},filterChanged:function(t,e,n){var a=this;a.changedFilters=e,a.state.filter=t,clearTimeout(a.filterDebounceTimeout),a.filterDebounceTimeout=setTimeout(a.stateChanged,n&&"range"==n.type?3200:1e3)},filterUpdated:function(t,e){this.changedFilters=e,this.state.filter=t},stateChanged:function(){this.loadCatalog()},resetFilter:function(t,e){void 0===t?this.$refs.filter.$emit("reset"):this.$refs.filter.$emit("reset",t,e)},resetHeaderFilter:function(t,e){window.vHeaderFilter&&(void 0===t?window.vHeaderFilter.$emit("reset"):window.vHeaderFilter.$emit("reset",t,e))},handlePopState:function(t){t.state&&"v-article-list-full"==t.state.component&&!this.noHistory&&(console.log("v-article-list-full: pop state",t.state),this.state=t.state.state,this.catalog=t.state.catalog)},pushState:function(t){"localhost"==window.location.hostname||this.noHistory||window.history[this.isInitialState||t?"replaceState":"pushState"]({component:"v-article-list-full",state:this.state,catalog:this.catalog},"",this.catalog.remote)},replaceState:function(){this.pushState(!0)},linkClick:function(t,e,n){t&&t.preventDefault(),this.openDetailInNewPage?window.location.href=e:modalController.open({component:"v-article",className:"modal--lg modal--article",remoteDataSource:e,bxajaxid:this.bxajaxid,ownHistory:!n})},slideDown:function(t,e){$(t).hide().slideDown(200,e),setTimeout(function(){$(t).find(".slick-slider").slick("setPosition")},75)},slideUp:function(t,e){$(t).show().slideUp(200,e)}},created:function(){var t=this;if(t.staticDataSource){if(t.catalog=t.staticDataSource.catalog,t.staticDataSource.pages&&(t.state.pages.limit=parseInt(t.staticDataSource.pages.limit)),"online"!=t.staticDataSource.catalog.shopType&&t.staticDataSource.catalog.sorts)try{t.state.sort=t.staticDataSource.state?t.staticDataSource.state.sort:t.staticDataSource.catalog.sorts[0].value}
1catch(t){console.warn("v-catalog: something wrong with initial sort value\n",t)}console.log("v-article-list-full loaded from static data",t.catalog),t.pushState()}else t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.filterPreset&&(this.state.filter=_.map(t.filterPreset,function(t){return{id:t.id,value:t.value,type:t.type}})),t.loadCatalog(!0));window.vHeaderFilter?(window.vHeaderFilter.$emit("set-filters",t.catalog.filters),window.vHeaderFilter.$on("filtered",t.filterChanged),window.vHeaderFilter.$on("filterupdate",t.filterUpdated)):setTimeout(function(){window.vHeaderFilter?(window.vHeaderFilter.$emit("set-filters",t.catalog.filters),window.vHeaderFilter.$on("filtered",t.filterChanged),window.vHeaderFilter.$on("filterupdate",t.filterUpdated)):console.warn("v-article-list-full: header filters not found")},1e3),t.initialOpenArticle&&(t.pushState(),t.linkClick(null,t.initialOpenArticle,!0)),window.addEventListener("popstate",t.handlePopState)},destroyed:function(){window.removeEventListener("popstate",this.handlePopState)}}),Vue.component("v-detail-picker",{template:'\n\t<div class="v-detail-picker detail-picker">\n\t\t<div class="detail-picker__wrap">\n\t\t\t<div class="detail-picker__left">\n\t\t\t\t<ul class="detail-picker__left-list">\n\t\t\t\t\t<li v-for="(item, itemIndex) in localItems" \n\t\t\t\t\t\t\tclass="detail-picker__left-list-item flc">\n\t\t\t\t\t\t<button class="detail-picker__left-list-btn" \n\t\t\t\t\t\t\t\t\t\t:class="{\'active\': itemIndex === currentIndex}" \n\t\t\t\t\t\t\t\t\t\ttype="button" \n\t\t\t\t\t\t\t\t\t\t@click="showCurrentItemDetails(item.details, itemIndex)" \n\t\t\t\t\t\t\t\t\t\tv-html="highlightQueryInText(item.sku)">\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div class="detail-picker__right">\n\t\t\t\t<div class="detail-picker__grid grid">\n\t\t\t\t\t<div v-for="detail in currentItemDetails" \n\t\t\t\t\t\t\t class="detail-picker__col col col-xl-4 col-sm-6 col-2xs-12">\n\t\t\t\t\t\t<a :href="detail.link" class="detail-picker__right-item">\n\t\t\t\t\t\t\t<img :src="detail.image" alt="" class="detail-picker__right-item-image">\n\t\t\t\t\t\t\t<div class="detail-picker__right-item-name">{{detail.name}}</div>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',data:function(){return{localItems:null,currentItemDetails:[],currentIndex:0}},props:{items:{default:null},bxajaxid:{default:null},filterValue:{default:null},localQuery:{default:null}},watch:{items:function(){this.localItems=this.items,this.currentItemDetails=this.localItems[0].details},filterValue:function(){this.currentIndex=0,this.currentItemDetails=this.localItems[0].details}},methods:{highlightQueryInText:function(e){try{return e.replace(new RegExp(this.localQuery,"i"),'<span class="in-text-highlight-alt">$&</span>')}catch(t){return e}},showCurrentItemDetails:function(t,e){this.currentItemDetails=t,this.currentIndex=e}},created:function(){this.localItems=this.items,this.localItems&&this.localItems[0]&&(this.currentItemDetails=this.localItems[0].details)}}),Vue.component("v-factory",{template:'\n\t<article class="v-factory factory">\n\t\t<div class="factory__info-block">\n\t\t\t<div class="factory__text-wrap">\n\t\t\t\t<p>\n\t\t\t\t\tМинский завод холодильников, основанный в 1959 году, за сравнительно короткий период времени стал одним из ведущих производителей бытовой холодильной техники.\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\tПрочные позиции предприятия на рынке бытовых приборов определяются неизменным качеством, надежностью, практичным дизайном, многообразием моделей холодильников и морозильников.\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<img class="factory__pic" src="/local/images/markup-images/banners/factory-img.jpg" alt="">\n\t\t</div>\n\n\t\t<div class="factory__contacts">\n\t\t\t<div class="factory__contact flc">\n\t\t\t\t<div class="factory__contact-title">\n\t\t\t\t\tАдрес\n\t\t\t\t</div>\n\t\t\t\t<div class="factory__text">\n\t\t\t\t\tпр. Победителей, 61<br>\n\t\t\t\t\tг. Минск, Беларусь\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="factory__contact flc">\n\t\t\t\t<div class="factory__contact-title">\n\t\t\t\t\tВремя работы\n\t\t\t\t</div>\n\t\t\t\t<div class="factory__text">\n\t\t\t\t\tпн-пт — 8:00 до 17:00\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="factory__contact flc">\n\t\t\t\t<div class="factory__contact-title">\n\t\t\t\t\tКонтакты\n\t\t\t\t</div>\n\t\t\t\t<div class="factory__text">\n\t\t\t\t\t<div class="factories-list__contacts">\n\t\t\t\t\t\t<div class="factories-list__contact">\n\t\t\t\t\t\t\t<span class="factory-list__text">Телефон: <a href="tel:+375172039697">
1+375 17 218-62-22</a></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="factories-list__contact">\n\t\t\t\t\t\t\t<span class="factories-list__text">Факс: <a href="tel:+375172039697">+375 17 203-96-97</a></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="factories-list__contact">\n\t\t\t\t\t\t\t<span class="factories-list__text">Эл. адрес: <a href="mailto:[email protected]">[email protected]</a></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t<a href="#" class="arrow-link">Все контакты<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="accordion">\n\t\t\t<div class="accordion__item js-accordion-item">\n\t\t\t\t<button class="accordion__btn js-accordion-btn collapsed">\n\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t<span class="accordion__btn-text h3">История предприятия</span>\n\t\t\t\t</button>\n\t\t\t\t<div class="accordion__body js-accordion-body collapsed">\n\t\t\t\t\t<div class="accordion__content js-accordion-content collapsed">\n\t\t\t\t\t\tПри разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="accordion__item js-accordion-item">\n\t\t\t\t<button class="accordion__btn js-accordion-btn collapsed">\n\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t<span class="accordion__btn-text h3">Предприятие сегодня</span>\n\t\t\t\t</button>\n\t\t\t\t<div class="accordion__body js-accordion-body collapsed">\n\t\t\t\t\t<div class="accordion__content js-accordion-content collapsed">\n\t\t\t\t\t\tПри разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их При разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="accordion__item js-accordion-item">\n\t\t\t\t<button class="accordion__btn js-accordion-btn collapsed">\n\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t<span class="accordion__btn-text h3">Политика в области качества, охраны окружающей среды и охраны труда</span>\n\t\t\t\t</button>\n\t\t\t\t<div class="accordion__body js-accordion-body collapsed">\n\t\t\t\t\t<div class="accordion__content js-accordion-content collapsed">\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tНа Минском заводе холодильников в настоящее время выпускаются <a href="#">бытовые холодильники</a> и <a href="#">морозильники АТЛАНТ</a>, разные по объему (от 30 до 400 л), функциональным возможностям (однокамерные и двухкамерные, с верхним и нижним расположением морозильной камеры, с одним и двумя компрессорами, с электронным блоком управления и индикации).\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tОсобенностями вновь разработанных и запущенных в серию моделей холодильников явл
1яются:\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>применение двух компрессоров;</li>\n\t\t\t\t\t\t\t<li>использование системы озонобезопасной заливки двери и шкафа;</li>\n\t\t\t\t\t\t\t<li>новый наружный и внутренний дизайн;</li>\n\t\t\t\t\t\t\t<li>изготовление деталей из металлопласта и прозрачного полистирола.</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tПри разработке новых моделей бытовых холодильников и морозильников АТЛАНТ совершенствуются конструкции изделий, улучшается их энергоэффективность.</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tКаждый холодильник и морозильник, сходящий с конвейера завода, проходит <b>функциональные испытания в соответствии с европейскими нормами качества, надежности и безопасности.</b> Поэтому белорусские холодильники и морозильники имеют устойчивый спрос не только в странах СНГ, но и в дальнем зарубежье. Минский завод холодильников поставляет свою продукцию в Германию, Францию, Словакию,  Венгрию, Польшу, Литву, Латвию, Россию, Украину, Азербайджан, Казахстан и т.д. — всего в 21 страну мира.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tПокупатели отмечают <b>высокое качество, надежность и современный дизайн</b> холодильников АТЛАНТ, которые по своим техническим параметрам не уступают лучшим мировым аналогам и аттестованы в престижных европейских сертифицированных центрах.</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tПредприятие, с каждым годом увеличивая выпуск бытовой холодильной техники, развивает производство торгово-холодильного оборудования АТЛАНТ. <a href="#">Холодильные шкафы</a>, объемом от 245 до 445 л, среди которых есть модели с рекламным блоком, комбинированные с морозильной камерой, пользуются не меньшим спросом, чем бытовые холодильники и морозильники.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t</article>\n',data:function(){return{}}}),Vue.component("v-field",{template:'\n\t<div class="v-field field" :class="{\n\t\t\'hidden\': (type === \'hidden\'),\n\t\t\'form-error\': error && !extendable,\n\t\t\'field--extendable\': extendable && type != \'file\',\n\t\t\'field--extended\': extendable && type != \'file\' && localValue && localValue.length > 1,\n\t\t\'field--w-placeholder\': label && integratedLabel,\n\t\t\'field--placeholder-state\': label && integratedLabel && !extendable && checkPlaceholderState(),\n\t\t\'field--open\': open && !(searchable && !searchableOptionTestAny()),\n\t\t\'field--suggestions-open\': localSuggestions && hasFocus,\n\t\t\'field--select\': (type === \'select\'),\n\t\t\'field--search\': (type ===\'search\'),\n\t\t\'field--search-btn\': searchBtn}">\n\n\t\t\x3c!--\n\t\t\tТипы полей\n\t\t\t- всё что по умолчанию можно ставить на инпут (text, tel, email, password)\n\t\t\t- date\n\t\t\t- select\n\t\t\t- checkbox\n\t\t\t- check-list\n\t\t\t- check-row (?)\n\t\t\t- radio\n\t\t\t- radio-list\n\t\t\t- radio-row (?)\n\t\t\t- color\n\t\t\t- color-radio\n\t\t\t- range\n\t\t\t- file\n\t\t\t- photo\n\t\t\t- photo-alt (широкое)\n\t\t\t- schedule\n\t\t--\x3e\n\n\t\t<template v-if="extendable && type != \'file\'">\n\t\t\t<template v-if="typeof localValue !== \'object\'">{{getMessage(\'ERROR\')}}</template>\n\t\t\t<template v-else>\n\t\t\t\t<transition-group tag="div" class="field__elems field__elems--ext" @enter="slideDown" @leave="slideUp" name="content-fade">\n\t\t\t\t\t<div class="field__elem flc" v-for="item, index in localValue" :key="\'key-\'+ index">\n\t\t\t\t\t\t<div class="field__elem-main">\n\t\t\t\t\t\t\t<v-field :type="type" v-model="localValue[index]" @input
1="emitInput(localValue)"\n\t\t\t\t\t\t\t\t\t:error="getExtendableFieldError(index)"\n\t\t\t\t\t\t\t\t\t:mask="mask"\n\t\t\t\t\t\t\t\t\t:label="label"\n\t\t\t\t\t\t\t\t\t:integrated-label="integratedLabel"\n\t\t\t\t\t\t\t\t\t:note="note"\n\t\t\t\t\t\t\t\t\t:options="options"\n\t\t\t\t\t\t\t\t\t:empty-option="emptyOption"\n\t\t\t\t\t\t\t\t\t:disabled="disabled"></v-field>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t\t<button  type="button" v-if="localValue && localValue.length > 1" class="field__elem-remove" :title="getMessage(\'DELETE\')"\n\t\t\t\t\t\t\t\t\t@click="spliceArray(index); $emit(\'remove\', index); emitInput(localValue); $forceUpdate();">\n\t\t\t\t\t\t\t\t<svg class="field__remove-icon svg-icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-lite-close"></use>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</transition>\n\t\t\t\t\t</div>\n\t\t\t\t</transition-group>\n\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t<div class="field__add" v-if="localValue && localValue.length < extendLimit">\n\t\t\t\t\t\t<span class="link" @click="localValue.push(\'\'); emitInput(localValue);" tabindex="0">+ {{extendText}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</template>\n\t\t</template>\n\n\n\t\t<template v-else>\n\t\t \n\t\t\t<label v-if="!integratedLabel && label && type != \'checkbox\' && type != \'radio\' && type != \'schedule\'" class="field__label">\n\t\t\t\t{{label}}\n\t\t\t</label>\n\n\t\t\t<label v-if="integratedLabel && label && (type == \'file\' || type == \'check-list\' || type == \'check-row\' || type == \'radio-list\' || type == \'radio-row\')" class="field__label">\n\t\t\t\t{{label}}\n\t\t\t</label>\n\n\n\t\t\t<div class="field__input">\n\n\t\t\t\t<label class="field__int-label"\n\t\t\t\t\t\t\t v-if="integratedLabel && label && type != \'file\' && type != \'checkbox\' && type != \'check-list\' && type != \'check-row\' && type != \'radio\' && type != \'radio-list\' && type != \'radio-row\' && type != \'rating\' && type != \'schedule\' && type != \'photo\' && type != \'photo-alt\'" :class="{\'field__int-label--special-for-textarea\': type == \'textarea\'}">\n\t\t\t\t\t{{label}}\n\t\t\t\t\t<span v-if="required" class="field__int-label-star"> *</span>\n\t\t\t\t</label>\n\n\t\t\t\t<template v-if="type == \'select\'">\n\t\t\t\t\t<div tabindex="0" class="select select--block"\n\t\t\t\t\t\t\t:class="{\'open\': open && !(searchable && !localSearchableValue), \'select--open-type\': openType, \'disabled\': disabled, \'select--small\': small}">\n\t\t\t\t\t\t<div v-if="!searchable" class="select__btn" @click="disabled ? null : open = !open">\n\t\t\t\t\t\t\t<span class="select__value">{{selectedOption ? selectedOption.text || selectedOption.value : null}}</span>\n\t\t\t\t\t\t\t<svg class="select__chevron svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<input v-else type="text" class="text-input select__search-input" v-model="localSearchableValue" @keypress.enter="searchableInputTest"\n\t\t\t\t\t\t\t\t:class="{\'text-input--small\': small, \'text-input--white\': white}" :placeholder="placeholder"\n\t\t\t\t\t\t\t\t@focus="hasFocus = true; open = true;" @blur="hasFocus = false;">\n\t\t\t\t\t\t<div class="select__list" @click.stop>\n\t\t\t\t\t\t\t<div class="select__list-body">\n\t\t\t\t\t\t\t\t<div class="select__list-note" v-if="searchable && !searchableOptionTestAny()">{{getMessage(\'EMPTY_FOUNDED\')}}</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<a :href="optionsAsLinks && option.count !== 0 ? option.link : null"\n\t\t\t\t\t\t\t\t\t\tv-for="option in searchable ? computedOptionsOnSearch : computedOptions"\n\t\t\t\t\t\t\t\t\t\tclass="select__option"\n\t\t\t\t\t\t\t\t\t\t:class="{\'active\': !searchable && option.value == (selectedOption ? selectedOption.value : null), \'disabled\': option.count === 0}"\n\t\t\t\t\t\t\t\t\t\t@click="option.value == (selectedOption ? selectedOption.value : null) || option.count === 0 ? null : emitInput(arrayMode ? [option.value] : option.value); open = false;">\n\t\t\t\t\t\t\t\t\t<span v-html="searchable ? highlightQueryInText(option.text, localSearchableValue) : option.text"></span>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-else-if="type == \'big-radio-list\'">\n\t\t\t\t\t<div class="check-list check-list--big-radio-list">\n\t\t\t\t\t\t<div class="check-list__item" v-for="option, index in options">\n\t\t\t\t\t\t\t<label class="checkbox-row checkbox-row--radio"\n\t\t\t\t\t\t\t       :class="{\'disabled\': disabled || option.disabled}">\n\t\t\t\t\t\t\t\t<input type="radio"\n\t\t\t\t\t\t\t\t       class="checkbox-row__input"\n\t\t\t\t\t\t\t\t       :value="option.value"\n\t\t\t\t\t\t\t\t       v-model="localValue"\n\t\t\t\t\t\t\t\t       @change="emitInput(localValue)"\n\t\t\t\t\t\t\t\t       :readonly="readonly"\n\t\t\t\t\t\t\t\t       :disabled="disabled || option.disabled">\n\t\t\t\t\t\t\t\t<span class="checkbox-row__visual"></span>\n\t\t\t\t\t\t\t\t<p v-if="option.text" v-html="option.text" class="checkbox-row__text"></p>\n\t\t\t\t\t\t\t\t<p v-if="option.descr" v-html="option.descr" class="checkbox-row__descr"></p>\n\t\t\t\t\t\t\t\t<a v-if="option.showOnMapLink"\n\t\t\t\t\t\t\t\t   :href="option.showOnMapLink"\n\t\t\t\t\t\t\t\t   class="checkbox-row__map-link map-link">\n\t\t\t\t\t\t\t\t\t<svg class="map-link__icon svg-icon">\n\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-map-link"></use>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t<span class="map-link__text">{{getMessage(\'SHOW_ON_MAP\')}}</span>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-else-if="type == \'check-list\' || type == \'check-row\' || type == \'radio-list\' || type == \'radio-row\'">\n\t\t\t\t\t<div class="check-list" :class="{\'check-list--row\': type == \'check-row\' || type == \'radio-row\'}">\n\t\t\t\t\t\t<div v-if="index <= 9" class="check-list__item" v-for="option, index in options">\n\t\t\t\t\t\t\t<label class="checkbox-row" :class="{\'checkbox-row--small\': small, \'disabled\': disabled || option.disabled, \'checkbox-row--radio\': type == \'radio-list\' || type == \'radio-row\'}">\n\t\t\t\t\t\t\t\t<input :type="type == \'check-list\' || type == \'check-row\' ? \'checkbox\' : \'radio\'" class="checkbox-row__input"\n\t\t\t\t\t\t\t\t\t\t:value="option.value" v-model="localValue" @change="emitInput(localValue)"\n\t\t\t\t\t\t\t\t\t\t:readonly="readonly" :disabled="disabled || option.disabled">\n\t\t\t\t\t\t\t\t<span class="checkbox-row__visual"></span>\n\t\t\t\t\t\t\t\t<span class="checkbox-row__text" v-if="option.text" v-html="option.text"></span>\n\t\t\t\t\t\t\t\t<span v-if="option.tip" class="inline-tooltip-wrap" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown">\n\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position">{{option.tip}}</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t<div v-if="options.length > 10 && !folded" class="check-list__tail">\n\t\t\t\t\t\t\t\t<div v-if="index > 9" class="check-list__item" v-for="option, index in options">\n\t\t\t\t\t\t\t\t\t<label class="checkbox-row" :class="{\'checkbox-row--small\': small, \'disabled\': disabled || option.disabled, \'checkbox-row--radio\': type == \'radio-list\' || type == \'radio-row\'}">\n\t\t\t\t\t\t\t\t\t\t<input :type="type == \'check-list\' || type == \'check-row\' ? \'checkbox\' : \'radio\'" class="checkbox-row__input"\n\t\t\t\t\t\t\t\t\t\t\t\t\t :value="option.value" v-model="localValue" @change="emitInput(localValue)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t :readonly="readonly" :disabled="disabled || option.disabled">\n\t\t\t\t\t\t\t\t\t\t<span class="checkbox-row__visual"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="checkbox-row__text" v-if="option.text" v-html="option.text"></span>\n\t\t\t\t\t\t\t\t\t\t<span v-if="option.tip" class="inline-tooltip-wrap" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position">{{option.tip}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t<button class="btn btn--sm btn--secondary check-list__btn" :class="{\'btn--folded\': folded}" v-if="options.length > 10" type="button" @click="folded = !folded">\n\t\t\t\t\t\t\t{{getMessage(\'MORE\')}}\n\t\t\t\t\t\t\t<svg class="check-list__ico svg-icon">\n\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'checkbox\' || type == \'radio\'">\n\t\t\t\t\t<label class="checkbox-row" :class="{\'checkbox-row--small\': small}">\n\t\t\t\t\t\t<input :type="type" class="checkbox-row__input"\n\t\t\t\t\t\t\t\t:true-value="trueValue" :false-value="falseValue" v-model="localValue" @change="emitInput(localValue)"\n\t\t\t\t\t\t\t\t:readonly="readonly" :disabled="disabled">\n\t\t\t\t\t\t<span class="checkbox-row__visual"></span>\n\t\t\t\t\t\t<span class="checkbox-row__text" v-if="label" v-html="label"></span>\n\t\t\t\t\t</label>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'range\'">\n\t\t\t\t\t<div class="range-input-options flc" v-if="options && options.length">\n\t\t\t\t\t\t\x3c!--\n\t\t\t\t\t\t<v-field type="check-list" :options="options" @input
1="emitInput(localValue, localValueAdditional)"\n\t\t\t\t\t\t\t\tv-model="localValueAdditional" :small="small" :disabled="disabled"></v-field>\n\t\t\t\t\t\t--\x3e\n\t\t\t\t\t\t<div class="range-input-options__item flc" v-for="option in options">\n\t\t\t\t\t\t\t<div class="range-input-options__link" @click="localValue = option.value; emitInput(localValue);">{{option.text}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t<div class="input-group__cell">\n\t\t\t\t\t\t\t<input type="number" class="text-input" :class="{\'text-input--small\': small}" :placeholder="min" novalidate @keypress="filterNumbers"\n\t\t\t\t\t\t\t\t\tv-model="localValue.min" @input="emitInput(localValue)" @blur="emitInput(fixRangeValue(localValue))" :disabled="disabled">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="input-group__cell">\n\t\t\t\t\t\t\t<input type="number" class="text-input" :class="{\'text-input--small\': small}" :placeholder="max" novalidate @keypress="filterNumbers"\n\t\t\t\t\t\t\t\t\tv-model="localValue.max" @input="emitInput(localValue)" @blur="emitInput(fixRangeValue(localValue))" :disabled="disabled">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'color\' || type == \'color-radio\'">\n\t\t\t\t\t<div class="color-picker">\n\t\t\t\t\t\t<div class="color-picker__grid">\n\t\t\t\t\t\t\t<label class="color-picker__item color-checkbox" v-for="option in options" :class="{\'color-checkbox--light\': isColorLight(option.color)}">\n\t\t\t\t\t\t\t\t<input :type="type == \'color\' ? \'checkbox\' : \'radio\'" class="color-checkbox__input" v-model="localValue" :value="option.value" @change="emitInput(localValue)">\n\t\t\t\t\t\t\t\t<span class="color-checkbox__visual" :class="{\'js-dropdown js-dropdown__btn\': !touch}"\n\t\t\t\t\t\t\t\t\t\t:style="{\'background\': option.color}">\n\t\t\t\t\t\t\t\t\t<span class="color-checkbox__triangle"></span>\n\t\t\t\t\t\t\t\t\t<span class="color-checkbox__tooltip dropdown js-dropdown__body js-tooltip-position" v-if="!touch">\n\t\t\t\t\t\t\t\t\t\t{{ option.text }}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-else-if="type == \'counter\'">\n\t\t\t\t\t<div class="field-counter field-counter--border">\n\t\t\t\t\t\t<div class="field-counter__wrap">\n\t\t\t\t\t\t\t<button class="field-counter__btn field-counter__btn--minus"\n\t\t\t\t\t\t\t        type="button"\n\t\t\t\t\t\t\t        aria-label="минус"\n\t\t\t\t\t\t\t        @click="decreaseCounter"\n\t\t\t\t\t\t\t        :disabled="disabled || localValue < 2">\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<div class="field-counter__label">\n\t\t\t\t\t\t\t\t<input class="field-counter__input"\n\t\t\t\t\t\t\t\t       type="number"\n\t\t\t\t\t\t\t\t       @input="checkCounterValue(localValue)"\n\t\t\t\t\t\t\t\t       @blur="checkCounterValue(localValue)"\n\t\t\t\t\t\t\t\t       v-model="localValue"\n\t\t\t\t\t\t\t\t       :disabled="disabled"\n\t\t\t\t\t\t\t\t       maxlength="2">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<button class="field-counter__btn field-counter__btn--plus"\n\t\t\t\t\t\t\t        type="button"\n\t\t\t\t\t\t\t        aria-label="плюс"\n\t\t\t\t\t\t\t        @click="increaseCounter"\n\t\t\t\t\t\t\t        :disabled="disabled || localValue > 98">\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-else-if="type == \'basket-counter\'">\n\t\t\t\t\t<div class="field-counter">\n\t\t\t\t\t\t<div class="field-counter__wrap">\n\t\t\t\t\t\t\t<button class="field-counter__btn field-counter__btn--minus"\n\t\t\t\t\t\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\t\t\t\t\t\taria-label="минус"\n\t\t\t\t\t\t\t\t\t\t\t@click="decreaseCounter"\n\t\t\t\t\t\t\t\t\t\t\t:disabled="disabled || localValue < 2">\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<div class="field-counter__label">\n\t\t\t\t\t\t\t\t<input class="field-counter__input"\n\t\t\t\t\t\t\t\t\t\t\t type="number"\n\t\t\t\t\t\t\t\t\t\t\t @input="checkCounterValue(localValue)"\n\t\t\t\t\t\t\t\t\t\t\t @blur="checkCounterValue(localValue)"\n\t\t\t\t\t\t\t\t\t\t\t v-model="localValue"\n\t\t\t\t\t\t\t\t\t\t\t :disabled="disabled"\
1n\t\t\t\t\t\t\t\t\t\t\t maxlength="2">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<button class="field-counter__btn field-counter__btn--plus"\n\t\t\t\t\t\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\t\t\t\t\t\taria-label="плюс"\n\t\t\t\t\t\t\t\t\t\t\t@click="increaseCounter"\n\t\t\t\t\t\t\t\t\t\t\t:disabled="disabled || localValue > 98">\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button class="field-counter__right-btn"\n\t\t\t\t\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\t\t\t\t\t:aria-label="getMessage(\'ADD_TO_BASKET\')"\n\t\t\t\t\t\t\t\t\t\t@click="$emit(\'basketadd\')">\n\t\t\t\t\t\t\t<svg class="svg-icon field-counter__right-btn-icon">\n\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-basket"></use>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-else-if="type == \'date\'">\n\t\t\t\t\t<div class="datepicker">\n\t\t\t\t\t\t<template v-if="arrayMode">\n\t\t\t\t\t\t\t<datepicker v-if="!touch" ref="datepicker" input-class="text-input" v-model="localValue[0]"\n\t\t\t\t\t\t\t\t\t:disabled-dates="computedDisabledDates"\n\t\t\t\t\t\t\t\t\t@focus="inputFocus(); open = true;" @blur="inputBlur(); open = false;"\n\t\t\t\t\t\t\t\t\t@input="emitInput(localValue ? localValue.toString() : localValue)"\n\t\t\t\t\t\t\t\t\t@opened="datepickerOpened(); hasFocus = true;" @closed="hasFocus = false"\n\t\t\t\t\t\t\t\t\t:full-month-name="true" format="dd.MM.yyyy" :monday-first="true"></datepicker>\n\t\t\t\t\t\t\t<input v-else type="date" class="text-input" :value-as-date="localValue[0]" @input="localValue[0] = $event.target.value; emitInput(localValue)">\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<datepicker v-if="!touch" ref="datepicker" input-class="text-input" v-model="localValue"\n\t\t\t\t\t\t\t\t\t:disabled-dates="computedDisabledDates"\n\t\t\t\t\t\t\t\t\t@focus="inputFocus(); open = true;" @blur="inputBlur(); open = false;"\n\t\t\t\t\t\t\t\t\t@input="emitInput(localValue ? localValue.toString() : localValue)"\n\t\t\t\t\t\t\t\t\t@opened="datepickerOpened(); hasFocus = true;" @closed="hasFocus = false"\n\t\t\t\t\t\t\t\t\t:full-month-name="true" format="dd.MM.yyyy" :monday-first="true"></datepicker>\n\t\t\t\t\t\t\t<input v-else type="date" class="text-input" :value-as-date="localValue" @input="localValue = $event.target.value; emitInput(localValue)">\n\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t<svg class="datepicker__svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-calendar"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'file\'">\n\t\t\t\t\t<v-file-input @fileinput="fileInput" @fileremove="fileRemove" :note="note" :files="files" :multiple="extendable" :reverse-order="reverseOrder" :drop="drop" :multipleFiles="multipleFiles"></v-file-input>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'photo\'">\n\t\t\t\t\t<v-photo-input @fileinput="fileInput" @fileremove="fileRemove" :note="note" :files="files" :label="label"></v-photo-input>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'photo-alt\'">\n\t\t\t\t\t<v-photo-input @fileinput="fileInput" @fileremove="fileRemove" :note="note" :files="files" mode="service-center" :label="label"></v-photo-input>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'schedule\'">\n\t\t\t\t\t<v-schedule-input @focus="inputFocus" @blur="inputBlur"\n\t\t\t\t\t\t\tv-model="localValue" @input="emitInput(localValue);" :disabled="disabled"></v-schedule-input>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'rating\'">\n\t\t\t\t\t<v-rating-input v-model="localValue" @input="emitInput(localValue);" :options="options" :disabled="disabled" :label="label" :simple="simple" :max="maxRate"></v-rating-input>\n\t\t\t\t</template>\n\n\n\t\t\t\t<template v-else-if="type == \'search\'">\n\t\t\t\t\t<label class="text-input-label">\n\t\t\t\t\t\t<input :type="type" maxlength="50" class="text-input" :class="{\'text-input--small\': small, \'text-input--white\': white}"\n\t\t\t\t\t\t\t   v-mask="mask" @focus="inputFocus" @blur="inputBlur" itemprop="query-input" :name="name"\n\t\t\t\t\t\t\t   v-model="localValue" @input="emitInput(localValue); localSuggestions = null;" :disabled="disabled" :placeholder="placeholder">\n\t\t\t\t\t</label>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-else>\n\t\t\t\t\t<template v-if="arrayMode">\n\t\t\t\t\t\t<template v-if="type == \'textarea\'">\n\t\t\t\t\t\t\t<textarea class="text-input" :class="{\'text-input--small\': small}" @focus="inputFocus" @blur="inputBlur"\n\t\t\t\t\t\t\t\t\tv-model="localValue[0]" @input
1="emitInput(localValue)" :disabled="disabled" :placeholder="placeholder"></textarea>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<input :type="type" maxlength="50" class="text-input" :class="{\'text-input--small\': small}" v-mask="mask" @focus="inputFocus" @blur="inputBlur"\n\t\t\t\t\t\t\t\t\tv-model="localValue[0]" @input="emitInput(localValue); localSuggestions = null;" :disabled="disabled" :placeholder="placeholder">\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<template v-if="type == \'textarea\'">\n\t\t\t\t\t\t\t<textarea class="text-input" :class="{\'text-input--small\': small}" @focus="inputFocus" @blur="inputBlur"\n\t\t\t\t\t\t\t\t\tv-model="localValue" @input="emitInput(localValue)" :disabled="disabled" :placeholder="placeholder"></textarea>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<template v-if="type === \'password\'">\n\t\t\t\t\t\t\t\t<label class="text-input-label text-input-label--password">\n\t\t\t\t\t\t\t\t\t<input :type="switchedType"\n\t\t\t\t\t\t\t\t\t\t\t\t maxlength="50"\n\t\t\t\t\t\t\t\t\t\t\t\t class="text-input text-input--password"\n\t\t\t\t\t\t\t\t\t\t\t\t :class="{\'text-input--small\': small, \'text-input--white\': white}"\n\t\t\t\t\t\t\t\t\t\t\t\t @focus="inputFocus"\n\t\t\t\t\t\t\t\t\t\t\t\t @blur="inputBlur"\n\t\t\t\t\t\t\t\t\t\t\t\t v-model="localValue" @input="emitInput(localValue); localSuggestions = null;" :disabled="disabled" :placeholder="placeholder">\n\t\t\t\t\t\t\t\t\t<span class="text-input-switch-btn" @click="switchType">\n\t\t\t\t\t\t\t\t\t\t<svg v-show="switchedType === \'text\'" class="svg-icon text-input-switch-btn__icon text-input-switch-btn--eye-on">\n\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-eye-on"></use>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t<svg v-show="switchedType === \'password\'" class="svg-icon text-input-switch-btn__icon text-input-switch-btn--eye-off">\n\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-eye-off"></use>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t<label class="text-input-label">\n\t\t\t\t\t\t\t\t\t<input :type="type" maxlength="200" class="text-input" :class="{\'text-input--small\': small, \'text-input--white\': white}" v-mask="mask" @focus="inputFocus" @blur="inputBlur"\n\t\t\t\t\t\t\t\t\t\t\t\t v-model="localValue" @input="emitInput(localValue); localSuggestions = null;" :disabled="disabled" :placeholder="placeholder">\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t</template>\n\n\t\t\t\t<template>\n\t\t\t\t\t<template v-if="type ==\'search\'">\n\t\t\t\t\t\t<div class="field__suggestions select__list" @click.stop v-if="localSuggestions">\n\t\t\t\t\t\t\t<div class="select__list-body">\n\t\t\t\t\t\t\t\t<div v-for="suggestion in localSuggestions" tabindex="0"\n\t\t\t\t\t\t\t\t\t class="select__option"\n\t\t\t\t\t\t\t\t\t @click="suggestionClick(suggestion);" v-html="highlightQueryInText(suggestion.text, localValue)">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div class="field__suggestions select__list" @click.stop v-if="localSuggestions">\n\t\t\t\t\t\t\t<div class="select__list-body">\n\t\t\t\t\t\t\t\t<div v-for="suggestion in localSuggestions" tabindex="0"\n\t\t\t\t\t\t\t\t\t\tclass="select__option"\n\t\t\t\t\t\t\t\t\t\t@click="emitInput(arrayMode ? [suggestion.text] : suggestion.text);" v-html="highlightQueryInText(suggestion.text, localValue)">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</template>\n\t\t\t</div>\n\n\t\t\t<div class="form-error-label flc" v-if="error && error[0] && typeof error[0] == \'string\'">\n\t\t\t\t{{error[0]}}\n\t\t\t</div>\n\t\t\t<div class="form-error-label flc" v-else-if="error && error[0] && typeof error[0].message == \'string\'">\n\t\t\t\t{{error[0].message}}\n\t\t\t</div>\n\t\t\t<div class="form-error-label flc" v-else-if="error && error[0] && typeof error[0].message == \'object\'" v-for="item, index in error[0].message">\n\t\t\t\t{{item}}\n\t\t\t</div>\n\n\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t<div class="field__description" v-if="description && descriptionOpen" v-html="description"></div>\n\t\t\t</transition>\n\t\t\t\n\t\t</template>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{open:!1,localValue:null,localSearchableValue:null,localValueAdditional:null,localSuggestions:null,touch:View.mobileAndTabletCheck,folded:!0,hasFocus:!1,descriptionOpen:!1,switchedType:"password"}},props:{type:{default:"text"},name:{default:null},value:{default:null},label:{default:null},integratedLabel:{type:Boolean,default:!1},extendable:{type:Boolean,default:!1},extendLimit:{default:5},extendText:{default:null},options:{default:null},emptyOption:{default:null},searchable:{type:Boolean,default:!1},optionsAsLinks:{type:Boolean,default:!1},suggestions:{default:null},openType:{type:Boolean,default:!1},drop:{type:Boolean},disabled:{type:Boolean,default:!1},arrayMode:{type:Boolean,default:!1},trueValue:{default:!0},falseValue:{default:!1},error:{default:null},min:{default:0},max:{default:1/0},maxRate:{type:Number},precision:{default:1},prefixMin:{default:null},prefixMax:{default:null},postfixMin:{default:null},postfixMax:{default:null},readonly:{type:Boolean,default:!1},small:{type:Boolean,default:!1},white:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},simple:{type:Boolean,default:!1},placeholder:{default:null},mask:{default:null},files:{default:null},note:{default:null},description:{default:null},disabledDates:{default:null},searchBtn:{default:!1},required:{default:!1},reverseOrder:{default:!1},multipleFiles:{type:Boolean}},computed:{selectedOption:function(){var e,t;return!this.computedOptions||!this.computedOptions.length||(e=this.arrayMode?this.value?this.value[0]:null:this.value,void 0===(t=this.computedOptions.find(function(t){return t.value===e})||null))?null:t},computedOptions:function(){var t=Array.isArray(this.options)?_.clone(this.options):[];return this.emptyOption&&t.unshift(this.emptyOption),t},computedOptionsOnSearch:function(){var e=this,t=_.clone(this.computedOptions),t=_.filter(t,this.searchableOptionTest);return _.sortBy(t,function(t){return t.text.toLowerCase().indexOf(e.localSearchableValue.toLowerCase())})},computedError:function(){return this.error?"object"==_typeof(this.error)?this.error[0]:this.error:null},computedDisabledDates:function(){var t;if(this.disabledDates)return"future"==this.disabledDates?((t=new Date).setDate(t.getDate()),{from:t}):"past"==this.disabledDates?((t=new Date).setDate(t.getDate()-1),{to:t}):void console.warn("v-field: disabled dates are in wrong format")}},watch:{value:function(){this.initLocalValueFromValue()},hasFocus:function(){this.$forceUpdate()},suggestions:function(){this.localSuggestions=this.suggestions}},methods:{suggestionClick:function(t){this.localValue=t.text,this.$emit("input",t.text,{suggest:!0,data:t.data,redirection:t.redirection||null}),clearTimeout(this.suggestionsTimeout),this.suggestionsOpen=!1},switchType:function(){"password"===this.switchedType?this.switchedType="text":"text"===this.switchedType&&(this.switchedType="password")},emitInput:function(t){var e,n=t;"string"==typeof t&&(n=t.trim()),"date"==this.type&&t&&(n=(e=(e=(t="string"==typeof t?new Date(t):t).getDate())<10?"0"+e:e)+"."+(e=(e=t.getMonth()+1)<10?"0"+e:e)+"."+t.getFullYear()),this.$emit("input",n),this.$forceUpdate()},clickOutside:function(t){this.$el.contains(t.target)||(this.open=!1)},inputFocus:function(){this.hasFocus=!0,this.$emit("focus")},inputBlur:function(){this.hasFocus=!1,this.$emit("blur")},spliceArray:function(t){this.localValue.splice(t,1)},filterNumbers:function(t){var e;return!!((t=t||window.event).ctrlKey||t.altKey||t.metaKey)||!(31<(e=t.which||t.keyCode)&&(e<48||57<e)&&46!==e)||void t.preventDefault()},getExtendableFieldError:function(t){t=_.filter(this.error,{index:t});return t.length?t:null},fixRangeValue:function(t){return t.min&&(t.min<this.min&&(t.min=this.min),t.min>this.max)&&(t.min=this.max),t.max&&(t.max<this.min&&(t.max=this.min),t.max>this.max)&&(t.max=this.max),t.max&&t.min&&t.min>t.max&&(t.min=t.max),t},checkPlaceholderState:function(){var t=this.searchable?this.localSearchableValue:this.localValue;return!this.hasFocus&&(null===t||""===t||0===t.length)},datepickerOpened:function(){var l=this;Vue.nextTick(function(){if(l.$refs.datepicker.$el){for(var t=l.$refs.datepicker.$el.querySelectorAll(".vdp-datepicker__calendar"),e=void 0,n=0;n<t.length;n++)if(t[n].offsetParent){e=t[n];break}e.style.left="";for(var a=e.getBoundingClientRect(),i=window.innerWidth-20-a.left-a.width,s=0;s<t.length;s++)t[s].style.left="",i<0&&(t[s].style.left=i+"px")}})},checkCounterValue:function(t){t<2?this.localValue=1:98<t&&(this.localValue=99),this.$emit("input",this.localValue)},increaseCounter:function(){this.localValue++,this.checkCounterValue(this.localValue)},decreaseCounter:function(){this.localValue--,this.checkCounterValue(this.localValue)},fileInput:function(t){this.$emit("fileinput",t)},fileRemove:function(t){this.$emit("fileremove",t)},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},isColorLight:function(t){var e;if(0===t.indexOf("#"))return 3==(t=t.replace("#","")).length&&(t=""+(e=t.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]),235<.2126*(255&(e=parseInt(t,16))>>16)+.7152*(255&e>>8)+.0722*(255&e>>0)},searchableOptionTest:function(t){return this.localSearchableValue&&this.localSearchableValue.length&&new RegExp(this.localSearchableValue,"i").test(t.text)},searchableOptionTestAny:function(){var e=this;return this.localSearchableValue&&this.localSearchableValue.length&&!!_.find(this.computedOptions,function(t){return new RegExp(e.localSearchableValue,"i").test(t.text)})},searchableInputTest:function(){var e=this;if(this.searchable){console.log(this.computedOptionsOnSearch);for(var t=[],n=0;n<this.computedOptionsOnSearch.length;n++)t.push(this.computedOptionsOnSearch[n].value);if(0<t.length)return this.emitInput(t),void(this.open=!1)}var a,i=this.localValue;this.localSearchableValue?(a=_.find(this.computedOptions,function(t){return"string"==typeof t.text&&"string"==typeof e.localSearchableValue&&t.text.toUpperCase()==e.localSearchableValue.toUpperCase()}),this.localValue=a?a.value:null):this.localValue=null,this.localValue!==i&&this.emitInput(this.localValue)},initLocalValueFromValue:function(){var e=this;if(e.localValue=_.clone(e.value),!e.extendable||e.localValue&&e.localValue.length||(e.localValue=[e.localValue]),"check-list"!==e.type&&"color"!==e.type||e.localValue||(e.localValue=[]),"range"!==e.type||e.localValue||(e.localValue={min:null,max:null}),"single"!==e.type||e.localValue||(e.localValue=[null]),e.searchable&&e.selectedOption&&(e.localSearchableValue=e.selectedOption.text),"date"==e.type){e=null;if("string"==typeof this.localValue&&10==this.localValue.length){var t=this.localValue.split(".");if(3==t.length)try{e=new Date([t[2],t[1],t[0]].join("-"))}catch(t){e=null}else e=null}else this.localValue&&this.localValue instanceof Date&&"object"==_typeof(this.localValue)&&(e=this.localValue);this.localValue="object"==(void 0===e?"undefined":_typeof(e))?e:null}},highlightQueryInText:function(t,e){try{return t.replace(new RegExp(e,"i"),'<b class="in-text-highlight">$&</b>')}catch(e){return t}}},created:function(){this.initLocalValueFromValue(),this.localSuggestions=this.suggestions,document.addEventListener("click",this.clickOutside)},mounted:function(){var e=this;e.$refs.datepicker&&($(e.$refs.datepicker.$el).find("input").off("blur.datepickerFixBlur").on("blur.datepickerFixBlur",function(){e.$refs.datepicker.$emit("blur")}),$(e.$refs.datepicker.$el).find("input").off("focus.datepickerFixFocus").on("focus.datepickerFixFocus",function(){e.$refs.datepicker.$emit("focus")}
1)),$(this.$el).off("click.toggleVFieldDescription",".js-v-field-toggle-description").on("click.toggleVFieldDescription",".js-v-field-toggle-description",function(t){e.descriptionOpen=!e.descriptionOpen,t.preventDefault(),t.stopPropagation()})},destroyed:function(){document.removeEventListener("click",this.clickOutside)}}),Vue.component("v-file-input",{template:'\n\t<div class="v-file-input file-input flc" :class="{\'file-input--alt\': reverseOrder}" @drop.prevent @dragover.prevent>\n\n\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t<transition-group tag="div" name="content-fade" @enter="slideDown" @leave="slideUp" class="file-input__list file-list" :class="{\'flc\': !reverseOrder}" v-if="localFiles.length">\n\t\t\t\t<div class="file-list__item" v-for="file in localFiles" :key="file.key">\n\t\t\t\t\t<div v-if="drop" class="file-list__item-icon">\n\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-download-img"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="file-list__item-start">{{file.name}}</div>\n\t\t\t\t\t<div class="file-list__item-ruler"></div>\n\t\t\t\t\t<div class="file-list__item-end">\n\t\t\t\t\t\t<button type="button" class="file-list__item-remove" @click="remove(file)">\n\t\t\t\t\t\t\t{{getMessage(\'DELETE\')}}\n\t\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-close"></use>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition-group>\n\t\t</transition>\n\n\t\t<input id="input21" ref="input21" type="file" class="file-input__input" @change="fileInput" :key="rerenderKey" :multiple="multipleFiles">\n\t\t<div v-if="drop" class="file-input__drag" @drop.prevent="dropFile">\n\t\t\t<input id="temp-input" ref="temp-input" type="file" class="file-input__input" @change="changeTempFile" :multiple="multipleFiles">\n\t\t\t<svg class="svg-icon">\n\t\t\t\t<use xlink:href="#svg-icon-drop-img"></use>\n\t\t\t</svg>\n\t\t\t<div v-if="note" class="file-input__note">{{ note }}</div>\n\t\t\t<label for="temp-input" class="file-input__toggle">\n\t\t\t\t{{ getMessage(\'OPEN\') }}\n\t\t\t</label>\n\t\t</div>\n\t\t<div v-else class="file-input__main">\n\t\t\t<div class="file-input__cell-input">\n\t\t\t\t<label class="file-input__input-block" for="input21">\n\t\t\t\t\t<span class="file-input__btn btn">\n\t\t\t\t\t\t{{getMessage(\'ATTACH_FILE\')}}\n\t\t\t\t\t\t<svg class="btn__icon btn__icon--file btn__icon--right svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-file"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</span>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t\t<div class="file-input__cell-note" v-if="note">\n\t\t\t\t<div class="file-input__note">{{note}}</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{localValue:null,localFiles:[],tempFiles:[],rerenderKey:0}},props:{value:{default:null},drop:{default:!1},note:{default:null},files:{default:null},multiple:{type:Boolean,default:!1},reverseOrder:{type:Boolean,default:!1},multipleFiles:{type:Boolean,default:!1}},watch:{value:function(){this.initLocalValueFromValue()}},methods:{changeTempFile:function(t){var n=this;[].forEach.call(t.target.files,function(t){var e=n.getKey();n.localFiles.push({name:t.name,size:t.size,key:e}),n.tempFiles.push(t)}),this.passFilesToOuput()},dropFile:function(t){var n=this;[].forEach.call(t.dataTransfer.files,function(t){var e=n.getKey();n.localFiles.push({name:t.name,size:t.size,key:e}),n.tempFiles.push(t)}),this.passFilesToOuput()},passFilesToOuput:function(){var a=this;this.localFiles.forEach(function(t,e){var n=new DataTransfer;n.items.add(a.tempFiles[e]),a.$emit("fileinput",{key:t.key,target:{files:n.files}})}),this.$refs["temp-input"].files=(new DataTransfer).files},getKey:function(){return Date.now().toString()+Math.round(1e5*Math.random())},fileInput:function(t){var e=this,n=e.getKey();if(e.multiple||_.each(e.localFiles,e.remove),t.target.files){console.log("file input",t.target.files,t.target.files[0]);for(var a=0;a<t.target.files.length;a++)e.localFiles.push({name:t.target.files[a].name,size:t.target.files[a].size,key:n});t.key=n,this.$emit("fileinput",t)}e.rerenderKey=e.getKey()},remove:function(t){var e=this.localFiles.indexOf(t);this.localFiles.splice(e,1),this.tempFiles.splice(e,1),this.$emit("fileremove",t)},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},initLocalValueFromValue:function(t){var n=this;n.files&&t&&(n.localFiles=[],_.each(n.files,function(t){var e=n.getKey();n.localFiles.push({name:t.name,size:t.size,key:e}),n.$emit("fileinput",{key:e,target:{files:[t]}})}))}},created:function(){this.initLocalValueFromValue(!0)}}),Vue.component("v-filter",{template:'\n\t<div class="v-filter filter flc" :class="\'filter--\' + mode + (embedded ? \' filter--embedded\' : \'\')">\n\t\t\n\t\t<template v-if="mode === \'simple\'">\n\t\t\t<div class="filter__simple-wrap">\n\t\t\t\t<div v-for="filter in filters" \n\t\t\t\t\t\t class="filter__simple-item">\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<div v-if="loading || isFilterLocked(filter)" class="loader-cover"></div>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<template v-if="filter.type === \'text\'">\n\t\t\t\t\t\t<v-field type="text"\n\t\t\t\t\t\t\t\t\t\t :label="filter.label"\n\t\t\t\t\t\t\t\t\t\t :integrated-label="filter.integratedLabel"\n\t\t\t\t\t\t\t\t\t\t v-model="filter.value"\n\t\t\t\t\t\t\t\t\t\t @input="filterChange(filter, $event)">\n\t\t\t\t\t\t</v-field>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="mode === \'horizontal\'">\n\t\t\t<div class="filter__horizontal-wrap">\n\t\t\t\t<div class="filter__horizontal-items">\n\t\t\t\t\t<div v-if="filters" \n\t\t\t\t\t     v-for="filter in filters" \n\t\t\t\t\t     class="filter__horizontal-item" \n\t\t\t\t\t     :class="{\'filter__horizontal-item--alt\': filter.type === \'select-open\'}">\n\t\t\t\t\t\t<template v-if="filter.type === \'select\'">\n\t\t\t\t\t\t\t<v-field :type="filter.type"\n\t\t\t\t\t\t\t         :label="filter.label"\n\t\t\t\t\t\t\t         :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t         :empty-option="filter.emptyOption"\n\t\t\t\t\t\t\t         v-model="filter.value" \n\t\t\t\t\t\t\t         @input
1="filterChange(filter, $event)">\n\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-if="filter.type === \'date\'">\n\t\t\t\t\t\t\t<v-field :type="filter.type"\n\t\t\t\t\t\t\t         :label="filter.label"\n\t\t\t\t\t\t\t         :integrated-label="filter.integratedLabel"\n\t\t\t\t\t\t\t         v-model="filter.value"\n\t\t\t\t\t\t\t         @input="filterChange(filter, $event)">\n\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-if="filter.type === \'text\'">\n\t\t\t\t\t\t\t<v-field :type="filter.type"\n\t\t\t\t\t\t\t         :label="filter.label"\n\t\t\t\t\t\t\t         :integrated-label="filter.integratedLabel"\n\t\t\t\t\t\t\t         v-model="filter.value"\n\t\t\t\t\t\t\t         @input="filterChange(filter, $event)">\n\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-if="filter.type === \'select-open\'">\n\t\t\t\t\t\t\t<div class="list-status__selector">\n\t\t\t\t\t\t\t\t<v-field type="select"\n\t\t\t\t\t\t\t\t         open-type\n\t\t\t\t\t\t\t\t         :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t         :empty-option="filter.emptyOption"\n\t\t\t\t\t\t\t\t         v-model="filter.value"\n\t\t\t\t\t\t\t\t         @input="filterChange(filter, $event)"\n\t\t\t\t\t\t\t\t         small>\n\t\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else>\n\t\t\t<div class="filter__box">\n\n\t\t\t\t<button v-if="!embedded" title="Закрыть" class="filter__close-btn" @click="$parent.$emit(\'closefilter\')">\n\t\t\t\t\t<svg class="filter__close-btn-icon svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-close"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</button>\n\n\t\t\t\t<div class="filter__grid grid">\n\n\t\t\t\t\t<template v-if="embedded">\n\t\t\t\t\t\t<div class="filter__col filter__col--wide col col--free">\n\t\t\t\t\t\t\t<div class="filter__item filter__item--hor flc" v-for="filterGroup, index in localFilters" :key="filterGroup.id">\n\t\t\t\t\t\t\t\t<div class="filter__item-header">\n\t\t\t\t\t\t\t\t<span class="filter__item-header-text">\n\t\t\t\t\t\t\t\t\t{{filterGroup.title}}<template v-if="filterGroup.unit">, </template>\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-unit" v-if="filterGroup.unit">{{filterGroup.unit}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="filter__item-body">\n\t\t\t\t\t\t\t\t\t<div class="filter__item-body-li flc" v-for="filter in filterGroup.filters">\n\t\t\t\t\t\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t\t\t\t\t\t<div class="loader-cover" v-if="loading || isFilterLocked(filter)"></div>\n\t\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t\t\t<template v-if="filter.type === \'multiple\' || filter.type === \'boolean\'">\n\t\t\t\t\t\t\t\t\t\t\t<v-field type="check-list" :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" @input="filterChange(filter, $event)" small></v-field>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t<template v-else-if="filter.type === \'single\'">\n\t\t\t\t\t\t\t\t\t\t\t<v-field type="select" :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" :searchable="filter.searchable" small array-mode @input="filterChange(filter, $event)"></v-field>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t<template v-else-if="filter.type === \'range\'">\n\t\t\t\t\t\t\t\t\t\t\t<v-field type="range" :options="emoveZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" @input="filterChange(filter, $event)" small\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t :min="filter.min || 0" :max="filter.max || Infinity"></v-field>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t<template v-else-if="filter.type === \'color\' || filter.type === \'color-radio\'">\n\t\t\t\t\t\t\t\t\t\t\t<v-field :type="filter.type" :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" @input="filterChange(filter, $event)"></v-field>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div class="filter__col col col--free" v-for="col in columns">\n\t\t\t\t\t\t\t<div class="filter__item flc" :class="{\'open\': filterGroup.open}"\n\t\t\t\t\t\t\t\t\t v-for="filterGroup, index in localFilters"\n\t\t\t\t\t\t\t\t\t v-if="index >= col.start && index <= col.end && filterGroup.type != \'color\'" :key="filterGroup.id">\n\t\t\t\t\t\t\t\t<div class="filter__item-header" @click="filterGroup.open = !filterGroup.open">\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-icon"></span>\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-text">\n\t\t\t\t\t\t\t\t\t{{filterGroup.title}}<template v-if="filterGroup.unit">, </template>\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-unit" v-if="filterGroup.unit">{{filterGroup.unit}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t\t\t\t\t<div class="filter__item-body" v-if="filterGroup.open">\n\t\t\t\t\t\t\t\t\t\t<div class="filter__item-body-li flc" v-for="filter in filterGroup.filters" :key="filter.id">\n\t\t\t\t\t\t\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="loader-cover" v-if="loading || isFilterLocked(filter)"></div>\n\t\t\t\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t\t\t\t\t<template v-if="filter.type === \'multiple\' || filter.type === \'boolean\'">\n\t\t\t\t\t\t\t\t\t\t\t\t<v-field type="check-list" :options="disableZeroOptions(filter.type === \'boolean\' ? normalizeBooleanOptions(filter) : filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" @input="filterChange(filter, $event)" small></v-field>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t<template v-else-if="filter.type === \'single\'">\n\t\t\t\t\t\t\t\t\t\t\t\t<v-field type="select" :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" :searchable="filter.searchable" small array-mode @input="filterChange(filter, $event)"></v-field>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t<template v-else-if="filter.type === \'range\'">\n\t\t\t\t\t\t\t\t\t\t\t\t<v-field type="range" :options="disableZeroOptions(filter.options, filter.value)"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t v-model="filter.value" @input="filterChange(filter, $event)" small\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t :min="filter.min || 0" :max="filter.max || Infinity"></v-field>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<hr class="filter__separator" v-if="colorFilterPresent">\n\n\t\t\t\t\t\t<div class="filter__col filter__col--wide col col--free" v-if="colorFilterPresent">\n\t\t\t\t\t\t\t<div class="filter__item filter__item--hor flc" :class="{\'open\': filterGroup.open}"\n\t\t\t\t\t\t\t\t\t v-for="filterGroup in localFilters" v-if="filterGroup.type == \'color\'">\n\t\t\t\t\t\t\t\t<div class="filter__item-header" @click="filterGroup.open = !filterGroup.open">\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-icon"></span>\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-text">\n\t\t\t\t\t\t\t\t\t{{filterGroup.title}}<template v-if="filterGroup.unit">, </template>\n\t\t\t\t\t\t\t\t\t<span class="filter__item-header-unit" v-if="filterGroup.unit">{{filterGroup.unit}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<transition name="content-fade" @enter="columns.length > 1 ? null : slideDown" @leave="columns.length > 1 ? null : slideUp">\n\t\t\t\t\t\t\t\t\t<div class="filter__item-body" v-if="filterGroup.open">\n\t\t\t\t\t\t\t\t\t\t<div class="filter__item-body-li flc" v-for="filter in filterGroup.filters" v-if="filter.type == \'color\' || filter.type == \'color-radio\'">\n\t\t\t\t\t\t\t\t\t\t\t<v-field :type="filter.type" :options="filter.options" v-model="filter.value" @input="filterChange(filter, $event)"></v-field>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t</div>\n',data:function(){return{localFilters:null,localSortValue:null,filterPanelIsOpen:!1,localFiltersExternalChange:!1,columns:null,test:10,colorFilterPresent:!1,currentFilterId:null}},props:{filters:{default:null},groups:{default:null},value:{default:null},mode:{default:"static"},embedded:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},watch:{filters:function(){this.applyNewFilters()},value:function(){this.applyValue()},filterPanelIsOpen:function(){this.filterPanelIsOpen?document.body.classList.add("state--filter-panel-open"):document.body.classList.remove("state--filter-panel-open")}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},getChangedFilters:function(){var e=this,n=[];return _.each(e.localFilters,function(t){_.each(t.filters,function(t){e.isFilterChanged(t)&&n.push(t)})}),n},isFilterChanged:function(t){return!!("number"==typeof t.value||t.value&&t.value.length||"range"==t.type&&t.value&&(t.value.min||t.value.max))},isFilterLocked:function(t){return this.currentFilterId&&this.currentFilterId!=t.id},resetFilter:function(e,t){var n;_.find(this.localFilters,function(t){return n=_.find(t.filters,{id:e})}),n&&(n.value=void 0!==t&&Array.isArray(n.value)?_.without(n.value,t):null,this.$forceUpdate(),this.filterChange())},resetAll:function(){var e=this;_.each(e.localFilters,function(t){_.each(t.filters,function(t){e.resetFilter(t.id)})}),e.filterChange()},applyValue:function(){var e=this;_.each(e.localFilters,function(t){_.each(t.filters,function(t){t.value=e.value&&e.value[t.id]&&e.value[t.id].value||null})})},applyNewFilters:function(){var a=this,i=(this.currentFilterId=null,this.localFiltersExternalChange=!0,[]);_.each(_.groupBy(a.filters,"groupId"),function(t,e){var n;"undefined"==e||"null"==e?_.each(t,function(t){var e=_.find(a.localFilters,{id:t.id});i.push({id:t.id,title:t.text,open:e?e.open:!!t.open,grouped:!1,unit:t.unit,type:t.type,filters:[t]})}):(n=_.find(a.localFilters,{id:e}),i.push({id:e,title:_.find(a.groups,{id:e}).title||"Группа фильтров",open:n?n.open:!(!t||!t[0]||
1!t[0].open),grouped:!0,type:"group",filters:t}))}),this.localFilters=_.sortBy(i,function(t){return"color"==t.type?2:t.grouped?1:-1}),this.colorFilterPresent=!!_.find(this.localFilters,function(t){return _.find(t.filters,{type:"color"})||!!_.find(t.filters,{type:"color-radio"})}),this.updateColumns(),this.$emit("filterupdate",this.createValue(),this.getChangedFilters())},createValue:function(){var e={};return _.each(this.getChangedFilters(),function(t){e[t.id]={value:t.value,type:t.type}}),e},filterChange:function(t){t&&(this.currentFilterId=t.id),this.$emit("filtered",this.createValue(),this.getChangedFilters(),t),this.$forceUpdate()},disableZeroOptions:function(t,e){return _.filter(t,function(t){return e&&e.indexOf&&0<=e.indexOf(t.value)||0!==parseInt(t.count)&&"0"!==parseInt(t.count)})},normalizeBooleanOptions:function(e){return _.map(e.options,function(t){return t.text=e.text,t})},updateColumns:function(){for(var t=4,e=(window.innerWidth<=View.breakpoints["md-max"]&&(t=3),window.innerWidth<=View.breakpoints["sm-max"]&&(t=2),window.innerWidth<=View.breakpoints["3xs-max"]&&(t=1),this.localFilters.length-(this.colorFilterPresent?1:0)),n=[],a=[],i=0,s=0;i<e;i++,s++)n[s=t<=s?0:s]||(n[s]=0),n[s]++;for(s=i=0;i<t;i++)a[i]={start:s,end:s+n[i]-1},s+=n[i];this.columns=a},handleEsc:function(t){27==t.keyCode&&(this.openFilterKey?this.openFilterKey=null:this.filterPanelIsOpen=!1)},handleResize:function(){this.updateColumns()}},created:function(){var n=this;n.applyNewFilters(),n.applyValue(),n.$on("reset",function(t,e){void 0===t?n.resetAll():n.resetFilter(t,e)}),n.$on("openpanel",function(){n.filterPanelIsOpen=!0}),document.addEventListener("keyup",n.handleEsc),window.addEventListener("resize",n.handleResize),n.handleResize()},destroyed:function(){document.removeEventListener("keyup",this.handleEsc),window.removeEventListener("resize",this.handleResize)}}),Vue.component("v-guide-slider",{template:'\n\t<div class="v-guide-slider guide-slider">\n\t\t\t<v-slick ref="view" class="guide-slider__view-slider slick-overlay-arrows slick-block-dots slick-darker-dots" :options="sliderOptions">\n\t\t\t\t<slot></slot>\n\t\t\t</v-slick>\n\t\t</div>\n\t</div>\n',data:function(){return{sliderOptions:{slidesToShow:1,slidesToScroll:1,infinite:!0,arrows:!0,dots:!0,responsive:[{breakpoint:View.breakpoints["sm-max"],settings:{arrows:!1}
1}]}}}}),Vue.component("v-horizontal-nav",{template:'\n\t<div class="v-horizontal-nav horizontal-nav flc" :class="{\'horizontal-nav--filter\': $slots.filter, \'horizontal-nav--filter-open\': filterOpen}">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\n\t\t<div class="horizontal-nav__row" ref="row">\n\t\t\t<div class="horizontal-nav__cell horizontal-nav__cell--filter" v-if="$slots.filter">\n\t\t\t\t<button type="button" class="btn btn--primary btn--lg btn--short btn--dd" @click="filterOpen = !filterOpen" :class="{\'open\': filterOpen}">\n\t\t\t\t\t{{getMessage(\'FILTER\')}}\n\t\t\t\t\t<span class="btn__arrow-circle">\n\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class="horizontal-nav__cell" v-for="link, index in links" v-if="maxCellCount > 2 && index + ($slots.filter ? 1 : 0) < maxCellCount">\n\t\t\t\t<a :href="link.href" @click="linkClick($event, link)" class="horizontal-nav__link">{{link.text}}</a>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<hr class="horizontal-nav__separator">\n\n\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t<div class="horizontal-nav__filter flc" v-show="$slots.filter && filterOpen">\n\t\t\t\t<slot name="filter"></slot>\n\t\t\t</div>\n\t\t</transition>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{filterOpen:!1,maxCellCount:1/0,trimBusy:!1}},props:{links:{default:null},catchClick:{type:Boolean,default:!1},loading:{default:!1},trim:{type:Boolean,default:!1}},watch:{filterOpen:function(){Vue.nextTick(function(){View.$window.trigger("setTooltipPositions")})}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},linkClick:function(t,e){this.catchClick&&(t.preventDefault(),this.$emit("navigate",e))},handleResize:function(){var i=this,s=this;s.trim&&!s.trimBusy&&(s.trimBusy=!0,s.maxCellCount=1/0,Vue.nextTick(function(){for(var t=s.$refs.row.offsetWidth,e=0,n=$(i.$el).find(".horizontal-nav__cell"),a=0;e<=t&&a<n.length;a++)e+=n.eq(a).outerWidth(!0);s.maxCellCount=t<e?a-1:a,s.trimBusy=!1}))}},created:function(){this.handleResize(),this.$on("closefilter",function(){this.filterOpen=!1}),window.addEventListener("resize",this.handleResize)},destroyed:function(){window.removeEventListener("resize",this.handleResize)}}),Vue.component("v-image-360",{template:'\n\t<div class="v-image-360 image-360">\n\t\t<div class="image-360__box" ref="box" @mousedown="!touch ? startDrag($event) : null" @touchstart="touch ? startDrag($event) : null">\n\t\t\t<img v-if="currentImageSrc" :src="currentImageSrc" alt="">\n\t\t</div>\n\t</div>\n',data:function(){return{localValue:null,locked:!0,drag:!1,startX:null,touch:!1,frame:null,currentImageSrc:null,currentIndex:0,tempIndex:0,preloadImageForward:new Image,preloadImageBackward:new Image}},props:{images:{default:null}},methods:{startDrag:function(t){this.drag=!0,this.startX=t.pageX||t.touches[0].pageX,t.stopPropagation(),this.touch?(document.removeEventListener("touchmove",this.handleDrag),document.addEventListener("touchmove",this.handleDrag),document.addEventListener("touchend",this.stopDrag)):(document.removeEventListener("mousemove",this.handleDrag),document.addEventListener("mousemove",this.handleDrag),document.addEventListener("mouseup",this.stopDrag))},stopDrag:function(){this.drag=!1,this.touch?(document.addEventListener("touchmove",this.handleDrag),document.addEventListener("touchend",this.stopDrag)):(document.removeEventListener("mousemove",this.handleDrag),document.removeEventListener("mouseup",this.stopDrag)),this.currentIndex=this.tempIndex},handleDrag:function(t){t.stopPropagation();var t=t.pageX||t.touches[0].pageX,e=this.$refs.box.offsetWidth,t=(t-this.startX)%e/e,e=(this.currentIndex+Math.floor(this.images.length*t))%this.images.length;e<0&&(e=this.images.length+e),this.tempIndex!=e&&this.images[e]&&(this.tempIndex=e,this.currentImageSrc=this.images[e].src,this.preloadImageForward.src=this.images[e+1>=this.images.length?0:e+1].src,this.preloadImageBackward.src=this.images[e-1<0?0:e-1].src)}},created:function(){this.touch=View.mobileAndTabletCheck,this.images.length&&(this.currentImageSrc=this.images[0].src)},destroyed:function(){document.removeEventListener("touchmove",this.handleDrag),document.removeEventListener("touchend",this.stopDrag),document.removeEventListener("mousemove",this.handleDrag),document.removeEventListener("mouseup",this.stopDrag)}}),Vue.component("v-inline-filter",{template:'\n\t<div class="v-inline-filter inline-filter flc">\n\t\t<div class="inline-filter__grid grid grid--free">\n\t\t\t<div class="inline-filter__item col col--free" v-for="filter, index in localFilters">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading || isFilterLocked(filter)"></div>\n\t\t\t\t</transition>\n\t\t\t\t<v-field :searchable="filter.searchable" type="select" :options="filter.options" :empty-option="filter.emptyOption" v-model="filter.value" @input="filterChange(filter, $event)" :label="filter.text" integrated-label></v-field>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',data:function(){return{localFilters:null,loading:!1,currentFilterId:null}},props:{filters:{default:null},value:{default:null},header:{type:Boolean,default:!1}},watch:{filters:function(){vm.applyNewFilters()},value:function(){this.applyValue()}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},getChangedFilters:function(){var e=this,n=[];return _.each(e.localFilters,function(t){e.isFilterChanged(t)&&n.push(t)}),n},isFilterChanged:function(t){return!!("number"==typeof t.value||"string"==typeof t.value&&t.value.length||Array.isArray(t.value)&&t.value.length)},isFilterLocked:function(t){return this.currentFilterId&&this.currentFilterId!=t.id},resetFilter:function(t,e){t=_.find(this.localFilters,{id:t});t&&(t.value=void 0!==e&&Array.isArray(t.value)?_.without(t.value,e):null,this.$forceUpdate(),this.filterChange())},resetAll:function(){var e=this;_.each(e.localFilters,function(t){e.resetFilter(t.id)}),e.filterChange()},applyValue:function(){var a=this;_.each(a.value,function(t,e){var n;_.find(a.localFilters,function(t){if(n=_.find(t,{id:e}))return!0}),n&&(n.value=t)})},applyNewFilters:function(t){this.localFilters=t||this.filters,this.colorFilterPresent=!!_.find(this.localFilters,{type:"color"}),this.currentFilterId=null,this.$emit("filterupdate",this.createValue(),this.getChangedFilters())},createValue:function(){var e={};return _.each(this.getChangedFilters(),function(t){e[t.id]={value:t.value,type:t.type}}),e},filterChange:function(t){t&&(this.currentFilterId=t.id),this.$emit("filtered",this.createValue(),this.getChangedFilters(),t),this.$forceUpdate()}},created:function(){var n=this;n.applyNewFilters(),n.applyValue(),n.header&&((window.vHeaderFilter=n).$on("set-filters",function(t){n.applyNewFilters(t)}),n.$on("set-loading",function(t){n.loading=t})),n.$on("reset",function(t,e){void 0===t?n.resetAll():n.resetFilter(t,e)})}}),Vue.component("v-lazy-component",{template:'\n\t<div class="v-lazy-component lazy-component">\n\t\t<div class="lazy-component__body"></div>\n\t\t<div class="lazy-component__template">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n',props:{component:{type:String}},mounted:function(){try{var t=this.$el.getElementsByClassName("lazy-component__template")[0].innerHTML,e=new Date,n=new(Vue.component("test"+e.getMilliseconds(),{parent:this,template:t}));n.$mount(this.$el.getElementsByClassName("lazy-component__body")[0]),this.child=n,View.initAllLocal(this.$el)}catch(e){console.error("v-lazy-component: child component initialization error"),console.error(e)}},beforeDestroy:function(){this.child.$destroy(),this.$forceUpdate()}}),Vue.component("v-leadership",{template:'\n\t<article class="v-leadership leadership">\n\t\t<div class="leadership__wrap">\n\t\t\t<div class="leadership__item">\n\t\t\t\t<img class="leadership__pic" src="/local/images/markup-images/banners/avatar.jpg" alt="">\n\t\t\t\t<div class="leadership__info">\n\t\t\t\t\t<div class="leadership__name-wrap">\n\t\t\t\t\t\t<span class="leadership__surname h4">Дикун</span>\n\t\t\t\t\t\t<span class="leadership__name">Андрей Васильевич</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="leadership__text">Генеральный директор ЗАО «АТЛАНТ»</span>\n\t\t\t\t\t<span class="leadership__tel">Приемная: <a href="tel:+375172186222">
1+375 17 218-62-22</a></span>\n\t\t\t\t\t<span class="leadership__tel">График личного приема: <a href="tel:+375172186222">четверг с 16:00 до 18:00</a></span>\n\t\t\t\t\t<span class="leadership__tel">Запись на прием: <a href="tel:+375172186222">+375 17 218-62-22</a></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="leadership__item">\n\t\t\t\t<img class="leadership__pic" src="/local/images/markup-images/banners/avatar-empty.jpg" alt="">\n\t\t\t\t<div class="leadership__info">\n\t\t\t\t\t<div class="leadership__name-wrap">\n\t\t\t\t\t\t<span class="leadership__surname h4">Шумило</span>\n\t\t\t\t\t\t<span class="leadership__name">Виктор Степанович</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="leadership__text">Генеральный директор ЗАО «АТЛАНТ» — директор МЗХ</span>\n\t\t\t\t\t<span class="leadership__tel">Приемная: <a href="tel:+375172186222">+375 17 218-62-22</a></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="leadership__item">\n\t\t\t\t<img class="leadership__pic" src="/local/images/markup-images/banners/avatar.jpg" alt="">\n\t\t\t\t<div class="leadership__info">\n\t\t\t\t\t<div class="leadership__name-wrap">\n\t\t\t\t\t\t<span class="leadership__surname h4">Шумило</span>\n\t\t\t\t\t\t<span class="leadership__name">Виктор Степанович</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="leadership__text">Генеральный директор ЗАО «АТЛАНТ» — директор МЗХ</span>\n\t\t\t\t\t<span class="leadership__tel">Приемная: <a href="tel:+375172186222">+375 17 218-62-22</a></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="leadership__item">\n\t\t\t\t<img class="leadership__pic" src="/local/images/markup-images/banners/avatar.jpg" alt="">\n\t\t\t\t<div class="leadership__info">\n\t\t\t\t\t<div class="leadership__name-wrap">\n\t\t\t\t\t\t<span class="leadership__surname h4">Шумило</span>\n\t\t\t\t\t\t<span class="leadership__name">Виктор Степанович</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="leadership__text">Генеральный директор ЗАО «АТЛАНТ» — директор МЗХ</span>\n\t\t\t\t\t<span class="leadership__tel">Приемная: <a href="tel:+375172186222">+375 17 218-62-22</a></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</article>\n',data:function(){return{}}}),Vue.component("v-list-status",{template:'\n\t<div class="v-list-status list-status">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\n\t\t<div class="list-status__row" v-if="catalog && state">\n\t\t\t<div class="list-status__cell-meta">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="status-value" v-if="catalog.itemsCount !== null && catalog.itemsTotal !== null">\n\t\t\t\t\t\t{{ getMessage(\'FOUNDED\') }}\n\t\t\t\t\t\t<span class="status-value__value" itemprop="numberOfItems">{{catalog.itemsCount}}</span>\n\t\t\t\t\t\t{{ getMessage(\'OF\') }} {{catalog.itemsTotal}}\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<div class="list-status__cell-filters">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="active-filters" v-if="changedFilters && changedFilters.length">\n\t\t\t\t\t\t<transition-group name="content-fade" mode="out-in" tag="div" class="active-filters__grid">\n\t\t\t\t\t\t\t<div class="active-filters__item" key="reset-filter">\n\t\t\t\t\t\t\t\t<button class="btn btn--sm" @click="resetFilter()">\n\t\t\t\t\t\t\t\t\t<svg class="btn__close btn__close--left svg-icon"><use xlink:href="#svg-icon-lite-close"></use></svg> \n\t\t\t\t\t\t\t\t\t&nbsp;{{ getMessage(\'CLEAR_FILTER\') }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="active-filters__item" v-for="filter in activeFilters" :key="getActiveFilterKey(filter)">\n\t\t\t\t\t\t\t\t<button class="btn btn--sm btn--secondary" @click="resetFilter(filter)">\n\t\t\t\t\t\t\t\t\t<template v-if="filter.type == \'range\'">\n\t\t\t\t\t\t\t\t\t\t{{filter.label}}\n\t\t\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t\t\t<template v-if="filter.text">\n\t\t\t\t\t\t\t\t\t\t{{filter.text}}\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<template v-else-if="filter.value && (filter.value.min || filter.value.max)">\n\t\t\t\t\t\t\t\t\t\t<template v-if="filter.value.min && !filter.value.max">{{ getMessage(\'FROM_2\') }} {{filter.value.min}} {{filter.unit}}</template>\n\t\t\t\t\t\t\t\t\t\t<template v-else-if="filter.value.max && !filter.value.min">{{ getMessage(\'TO_2\') }}  {{filter.value.max}} {{filter.unit}}</template>\n\t\t\t\t\t\t\t\t\t\t<template v-else>{{filter.value.min}} – {{filter.value.max}} {{filter.unit}}</template>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t\t\t\x3c!-- fallback --\x3e\n\t\t\t\t\t\t\t\t\t\t{{filter.value}}\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<svg class="btn__close btn__close--right svg-icon"><use xlink:href="#svg-icon-lite-close"></use></svg>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</transition-group>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<div class="list-status__cell-aside" v-if="catalog.sorts && catalog.sorts.length">\n\t\t\t\t<div class="list-status__selector">\n\t\t\t\t\t<v-field type="select" open-type :options="catalog.sorts" :value="state.sort" @input="$emit(\'sort\', $event)" small></v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{loading:!1,filterIsChanged:!1}},props:{catalog:{default:null},state:{default:null},changedFilters:{default:null}},computed:{activeFilters:function(){var a=[];return _.each(this.changedFilters,function(n){var t;Array.isArray(n.value)?_.each(n.value,function(t){var e;(t&&void 0!==t.min||void 0!==t.max)&&!t.min&&!t.max&&"number"!=typeof t.min&&"number"!=typeof t.max||(e=_.find(n.options,{value:t}),a.push({id:n.id,type:n.type,label:n.text,value:t,text:e?e.text:null,unit:n.unit}))}):(t=_.find(n.options,{value:n.value}),a.push({id:n.id,type:n.type,label:n.text,value:n.value,text:t?t.text:null,unit:n.unit}))}),a}},methods:{getActiveFilterKey:function(t){try{if("object"==_typeof(t.value)&&!_.find(_.find(this.catalog.filters,{id:t.id}).options,{value:t.value}))return t.id+"/custom"}catch(t){}return"single"==t.type?t.id:t.id+"/"+JSON.stringify(t.value)},resetFilter:function(t){void 0===t?(console.log("emit reset 2",t),this.$emit("reset")):(console.log("emit reset 1",t.id,t.value),this.$emit("reset",t.id,t.value))}}}),Vue.component("v-map-point",{props:{coords:{type:Array,required:!0},hintContent:{type:String},icon:{type:Object,default:null},name:{default:null},logo:{default:null},pinNum:{type:[String,Boolean],default:!1},pinAlt:{type:Boolean,default:!1},address:{type:[String,Boolean],default:null},schedule:{type:[String,Boolean],default:null},rating:{default:null},contacts:{type:Array,default:null},btnRoute:{type:Boolean,default:!1},btnLink:{default:!1},btnPopupLink:{default:!1},markerType:{type:String,required:!0},markerFill:{type:Object},markerStroke:{type:Object},circleRadius:{validator:function(t){return!isNaN(t)},default:1e3}},render:function(){}}),Vue.component("v-map",{template:'\n\t<div class="v-map map">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading || externalLoading">\n\t\t\t\t<img src="/local/images/preloader.svg" alt="">\n\t\t\t</div>\n\t\t</transition>\n\t\t<div class="map__map" :class="{\'map__map--small\': small, \'map__map--big-balloon\': bigBalloon}" :id="ymapId"></div>\n\t\t<div class="hidden map__markers">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n',data:function(){return{ymapId:"yandexMap"+Math.round(1e5*Math.random()),map:null,markers:[],currentLocation:null,loading:!1}},props:{coords:{type:Array,validator:function(t){return!t.filter(function(t){return isNaN(t)}).length},required:!0},zoom:{validator:function(t){return!isNaN(t)},default:18},adjustInitialBounds:{type:Boolean,default:!0},rightControls:{type:Boolean,default:!1},small:{type:Boolean,default:!1},bigBalloon:{type:Boolean,default:!1},externalLoading:{type:Boolean,default:!1}},computed:{coordinates:function(){return this.coords.map(function(t){return parseFloat(t)})}},watch:{coords:function(){this.map&&this.map.setCenter(this.coordinates)},map:function(){this.rightControls?this.map.controls.add("zoomControl",{position:{right:"10px",top:"108px"}}):this.map.controls.add("zoomControl",{position:{left:"10px",top:"108px"}})}},beforeCreate:function(){Model.loadYmaps()},methods:{getCurrentDirections:function(t,e){var n=this,a=[t,e];ymaps.geolocation.get({provider:"auto",autoReverseGeocode:!0}).then(function(t){n.currentLocation=Model.geolocation.coords||t.geoObjects.get(0).geometry.getCoordinates();t=new ymaps.multiRouter.MultiRoute({referencePoints:[n.currentLocation,a]},{boundsAutoApply:!0});n.$emit("add-route",t)})},addRoute:function(t){t&&(this.map.geoObjects.removeAll(),this.setMarkers(),this.map.geoObjects.add(t))},setMarkers:function(){var e=this;e.map.geoObjects.removeAll(),e.markers.splice(0,e.markers.length);for(var t,n=e.$slots.default?e.$slots.default.map(function(t){var e,n,a,i,s,l,t=t.componentOptions&&t.componentOptions.propsData;return t?{markerType:t.markerType,coords:function e(t){return t.map(function(t){return(Array.isArray(t)?e:parseFloat)(t)})}(t.coords),balloonHeader:(e=t.name,n=t.logo,a=t.pinNum,i=t.pinAlt,l=s="",e&&!n&&(s+='<div class="map__balloon-name">'+e+"</div>"),n&&(s+='<img class="map__balloon-logo" src="'+n+'" alt="" loading="lazy"/>'),i&&(l=" map__balloon-pin--alt"),a&&(s+='<div class="map__balloon-pin'+l+'">'+a+"</div>"),s),balloonBody:(e=t.rating,n="",e&&(n+='<div class="map__rating">Рейтинг: <div class="map__rating-label"><svg class="svg-icon map__rating-ico"><use xlink:href="#svg-icon-rating-star"></use></svg> <span class="map__price-num">'+e+"</span></div></div>"),n+(i=t.address,l="",i&&(l+='<div class="map__balloon-content map__balloon-content--border">'+i+"</div>"),l)+(a=t.schedule,s="",a&&(s+='<div class="map__balloon-content">'+a+"</div>"),s)+""),balloonFooter:function(t){var e="";if(t)for(var n,a=0;a<t.length;a++)n=t[a].name||"",e+=t[a].href?'<div class="map__balloon-content">
1'+n+' <a href="'+t[a].href+'">'+t[a].text+"</a>":'<div class="map__balloon-content">'+n+" <span>"+t[a].text+"</span>",t[a].ico&&(e+=""+t[a].ico),e+="</div>";return e}(t.contacts)+(e=t.btnRoute,n=t.coords,i="",i=e?'<a class="map__btn btn btn--primary js-get-route" data-coords-lat="'+n[0]+'" data-coords-lon="'+n[1]+'">Проложить маршрут<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>':i)+((l=t.btnLink)?'<a href="'+l+'" class="map__btn btn btn--primary">Оставить заявку<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>':"")+((a=t.btnPopupLink)?'<span data-modal-data="{\n\t\t\t\t\t\t\t\t\t  &quot;className&quot;: &quot;modal--lg modal--form&quot;,\n\t\t\t\t\t\t\t\t\t  &quot;ownHistory&quot;: false\n\t\t\t\t\t\t\t\t\t  }" data-modal-url="'+a+'" class="js-open-modal article-info-section__btn btn btn--primary">\n\t\t\t\t\t\t\t\t\tОставить заявку<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t</span>':""),pinNum:t.pinNum,logo:t.logo,pinAlt:t.pinAlt,circleRadius:+t.circleRadius}:void 0}).filter(function(t){return t&&t.markerType}):[],a=new ymaps.Clusterer({clusterNumbers:[10],preset:"islands#invertedBlueClusterIcons",groupByCoordinates:!1,clusterHideIconOnBalloonOpen:!0,geoObjectHideIconOnBalloonOpen:!0,gridSize:80}),i=0;i<n.length;i++){var s=(s=n[i].markerType).charAt(0).toUpperCase()+s.slice(1),l={hintContent:n[i].hintContent,balloonContentHeader:n[i].balloonHeader||null,balloonContentBody:n[i].balloonBody||null,balloonContentFooter:n[i].balloonFooter||null,iconContent:(o=n[i].pinNum,l=n[i].pinAlt,c=n[i].logo,void 0,t="",o&&(t+='<div class="map__pin'+(l?" map__pin--alt":"")+'">'+o),c&&(t+='<div class="map__pin-logo-wrap"><img class="map__pin-logo" src="'+c+'" alt="" loading="lazy"/></div>'),t+="</div>")},o={iconLayout:"default#imageWithContent",iconImageHref:"/local/images/markup-images/icons/"+(n[i].pinAlt?"pin_dark.png":"pin_light.png"),iconImageSize:[37,37],iconImageOffset:[-18.5,-18.5],hideIconOnBalloonOpen:!1},c=("Circle"===s&&(n[i].coords=[n[i].coords,n[i].circleRadius]),new ymaps[s](n[i].coords,l,o));c.events.add("click",function(t){setTimeout(function(){e.map.setCenter(t.get("target").geometry._coordinates)},300)}),a.add(c),e.markers.push(c)}e.map.geoObjects.add(a)},showOnMap:function(e){this.map.setCenter(e),this.map.setZoom(14);var t=_.find(this.markers,function(t){if(Array.isArray(t))return _.find(t,function(t){try{return t.geometry._coordinates[0]==e[0]&&t.geometry._coordinates[1]==e[1]}catch(t){return!1}});try{return t.geometry._coordinates[0]==e[0]&&t.geometry._coordinates[1]==e[1]}catch(t){return!1}});t&&t.balloon.open()},adjustBounds:function(){var t=this;if(t.map){t.setMarkers();try{t.map.setBounds(t.map.geoObjects.getBounds(),{checkZoomRange:!0}).then(function(){16<t.map.getZoom()&&t.map.setZoom(16)})}catch(t){}}},initMap:function(){this.map=new ymaps.Map(this.ymapId,{center:this.coordinates,zoom:+this.zoom,controls:["fullscreenControl","geolocationControl"]}),this.map.behaviors.disable("scrollZoom"),View&&View.mobileAndTabletCheck&&this.map.behaviors.disable("drag"),this.setMarkers(),this.adjustInitialBounds&&this.adjustBounds()}},created:function(){var t=this;t.$on("show-on-map",t.showOnMap),t.$on("add-route",t.addRoute),t.$on("update-markers",t.setMarkers),t.$on("adjust-bounds",t.adjustBounds),$(document).ready(function(){t.$ymapEventBus.ymapReady?ymaps.ready(t.initMap):t.$ymapEventBus.$on("scriptIsLoaded",function(){ymaps.ready(t.initMap)})})},mounted:function(){var n=this;$(this.$el).on("click.getroute",".js-get-route",function(t){t.preventDefault();var t=+$(this).attr("data-coords-lat"),e=+$(this).attr("data-coords-lon");n.getCurrentDirections(t,e)})}}),Vue.directive("mask",{bind:function(t,e,n){var a=View.inputmaskPresets?View.inputmaskPresets[Object.keys(e.modifiers)[0]]:null;if(a)$(t).inputmask(a);else if("object"==_typeof(e.value))$(t).inputmask(e.value);else{if(!e.value)return;$(t).inputmask({mask:e.value,clearMaskOnLostFocus:!0,showMaskOnHover:!1})}
1$(t).off("keyup.vMaskUpdate").on("keyup.vMaskUpdate",function(t){n.context.$emit("input",t.target.value)})}}),Vue.component("v-materials",{template:'\n\n\n\t<div class="v-materials article-list-full">\n\t\t<div class="compare-bar compare-bar--materials">\n\t\t\t<transition name="compare-btn-toggle">\n\t\t\t\t<div class="compare-bar__block" v-if="addedElements && addedElements.length">\n\t\t\t\t\t<button type="button" class="compare-bar__main" @click="openFormByAjaxID">\n\t\t\t\t\t\t{{getMessage(\'ORDERED\')}}: <span class="compare-bar__value">{{addedElements.length}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<div class="compare-bar__aside" @click="clear">\n\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-delete"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\n\t\t<div class="accordion accordion--connnect-top accordion--small">\n\t\t\t<div class="accordion__item" v-for="item in catalog.items">\n\t\t\t\t<button type="button" class="accordion__btn" :class="{\'collapsed\': item.collapsed}" @click="item.collapsed = !item.collapsed">\n\t\t\t\t\t<span class="accordion__btn-ico"></span>\n\t\t\t\t\t<span class="accordion__btn-text h4">{{item.title}}</span>\n\t\t\t\t</button>\n\t\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t\t<div class="accordion__body accordion__body--indent" v-show="!item.collapsed">\n\t\t\t\t\t\t<div class="text-guide">\n\t\t\t\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t\t\t\t<table cellspacing="1" cellpadding="0">\n\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\tN\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'MATERIALS_COL_1\')}}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'MATERIALS_COL_2\')}}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'MATERIALS_COL_3\')}}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'MATERIALS_COL_4\')}}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'MATERIALS_COL_5\')}}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr v-for="itemProduct in item.products" :key="itemProduct.num">\n\t\t\t\t\t\t\t\t\t\t<td align="center">{{itemProduct.num}}</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">{{itemProduct.name}}</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">{{itemProduct.code}}</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">{{itemProduct.unit}}</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">{{itemProduct.value}}</td>\n\t\t\t\t\t\t\t\t\t\t<td align="center">\n\t\t\t\t\t\t\t\t\t\t\t<div class="product__action-compare">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class="compare-btn compare-btn--checkbox">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input type="checkbox"\n\t\t\t\t\t\t\t\t\t\t\t\t\t   \tv-model="itemProduct.added"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass="compare-btn__input">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="compare-btn__visual"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{items:null},state:null,loading:!1,loadingMinTimeout:null,filterIsChanged:!1,changedFilters:null,isInitialState:!0,currentLocation:null,isGeolocationChanged:!1}},computed:{addedElements:function(){var e=[];return _.each(this.catalog.items,function(t){_.each(t.products,function(t){t.added&&e.push(t)})}),e}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},useHeaderFilter:{type:Boolean,default:!1},mode:{type:String,default:"article"},noPageNav:{type:Boolean,default:!1},noHistory:{type:Boolean,default:!1},fill:{type:Boolean,default:!1}},methods:{openFormByAjaxID:function(){var t=new Url(this.catalog.remoteForm),e=t.query.bxajaxid,n="";_.each(this.addedElements,function(t){n+=t.name+"\r\n"}),t.query.PREVIEW_TEXT=n,modalController.open({component:"v-rich-form",className:"modal--lg modal--form",remoteDataSource:t,ownHistory:!1,bxajaxid:e,props:{frame:!0}})},clear:function(){_.each(this.catalog.items,function(t){_.each(t.products,function(t){t.added=!1})})},loadCatalog:function(t,e){function n(){if(s){var t=i.catalog.items;i.catalog=s.catalog,e&&(i.catalog.items=t.concat(i.catalog.items)),e||(i.pushState(),i.isInitialState=!1);try{i.state.pages=s.catalog.pages,s.state&&(i.state.sort=s.state.sort)}catch(t){console.warn("v-article-list-full: something wrong with state\n",t)}}i.loadingMinTimeout=null,i.loading=!1}var a,i=this,s=null,l=!1;i.loading||(i.loading=!0,t||(i.loadingMinTimeout=setTimeout(function(){l&&n(),i.loadingMinTimeout=null},300)),a=_.clone(i.state),$.ajax({url:i.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:a,bxajaxid:i.bxajaxid}}).done(function(t){console.log("v-article-list-full loaded",t),s=t}).fail(function(t){console.warn("v-article-list-full load failed",t)}).always(function(){l=!0,i.loadingMinTimeout&&!t||n()}))},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,console.log("v-article-list-full loaded from static data",t.catalog)):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-middle-banner",{template:'\n  <a :href="catalog.link">\n    <div class="v-middle-banner middle-banner" :style="{background: catalog.background}">\n      <div class="middle-banner__content" :style="{color: catalog.color}">\n        <div v-if="catalog.title" class="middle-banner__title">{{ catalog.title }}</div>\n        <div v-if="catalog.text" class="middle-banner__text">{{ catalog.text }}</div>\n      </div>\n      <div v-if="catalog.img?.desktop" class="middle-banner__visual">\n        <picture>\n          <source v-if="catalog.img?.mobile" :srcset="catalog.img.mobile" media="(max-width: 767px)">\n          <img :src="catalog.img.desktop" :alt="catalog.title"/>\n        </picture>\n      </div>\n    </div>\n  </a>\n',data:function(){return{remote:"",catalog:{}}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},methods:{loadCatalog:function(){var e=this;$.ajax({url:e.remote,method:"get",dataType:"json"}).done(function(t){console.log("v-middle-banner loaded",t),e.catalog=t.catalog}).fail(function(t){console.warn("v-middle-banner load failed",t)})}},created:function(){var t=this;t.staticDataSource?t.catalog=t.staticDataSource.catalog:t.remoteDataSource&&(t.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-modal",{template:'\n\t<div class="modal" :class="(topModal ? topModal.className : \'\') + (modals && modals.length > 1 ? \' modal--has-back-btn\' : \'\')">\n\t\t <div class="modal__surface" @click="overlayClick">\n\t\t\t<div class="modal__container" v-for="modal, index in modals" v-show="index == modals.length - 1">\n\t\t\t\t<div class="modal__outer-header section-header section-header--lg flc" v-if="modal.outerHeader">\n\t\t\t\t\t<div class="section-header__main">\n\t\t\t\t\t\t<h2 class="section-header__title h1" v-if="modal.title">{{modal.title}}</h2>\n\t\t\t\t\t\t<div class="section-header__sub" v-if="modal.titleSub">{{modal.titleSub}}</div>\n\t\t\t\t\t\t<div class="section-header__bottom" v-if="modal.titleBottom">{{modal.titleBottom}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="section-header__aside"></div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="modal__body">\n\t\t\t\t\t<button class="modal__close-btn" @click="closeAll()" :key="modal ? modal.key || modal.component : modals.length" :title="getMessage(\'CLOSE\')" aria-label="Закрыть">\n\t\t\t\t\t\t\t<svg class="modal__close-btn-icon svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-close"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class="modal__close-btn modal__close-btn--back" @click="close()" key="back" :title="getMessage(\'BACK\')" v-if="modals && modals.length > 1">\n\t\t\t\t\t\t<svg class="modal__close-btn-icon svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-back"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<component v-if="modal && modal.component" :is="modal.component"\n\t\t\t\t\t\t\t   key="modals.length"\
1n\t\t\t\t\t\t\t   v-bind="modal.props"\n\t\t\t\t\t\t\t   :initial-state="modal.state" \n\t\t\t\t\t\t\t   :remote-data-source="modal.remoteDataSource" \n\t\t\t\t\t\t\t   :static-data-source="modal.staticDataSource" \n\t\t\t\t\t\t\t   :bxajaxid="modal.bxajaxid"></component>\n\n\t\t\t\t\t<v-lazy-component v-if="modal.content" class="modal__content">\n\t\t\t\t\t\t<div v-html="modal.content"></div>\n\t\t\t\t\t</v-lazy-component>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{modals:[],loading:null,closeTimeout:null,lockedScrollPosition:0,historyEventIsHashChange:!1}},computed:{topModal:function(){return this.modals.length?this.modals[this.modals.length-1]:null}},watch:{modals:function(){var t=this;this.loading=!0,Vue.nextTick(function(){View.initAllLocal(t.$el)})}},methods:{open:function(t){this.closeTimeout&&(clearTimeout(this.closeTimeout),this.closeTimeout=null,this.modals.pop()),this.modals.push(t),this.freezeRoot(),document.body.classList.add("state--modal-open"),t.ownHistory||window.history.pushState({component:"v-modal"},"",window.location.href)},openUrl:function(t,e,n){var a=this;if("string"!=typeof t||!t)return console.warn("modalController.openUrl error: url is not a string",t),!1;var i=e||{},e=new Url(t);"function"!=typeof n&&(i.callback=n),a.freezeRoot(),$.ajax({type:"post",url:e.path+"?AJAXMODE=Y",data:e.query.valueOf(),dataType:"html"}).done(function(t){"function"==typeof i.callback&&i.callback({status:"success"});var e="dynamic-component"+(new Date).getMilliseconds();i.component=Vue.component(e,{template:'<div class="dynamic-modal-content">'+t+"</div>"}),i.key=e,a.closeTimeout&&(clearTimeout(a.closeTimeout),a.closeTimeout=null,a.modals.pop()),i.ownHistory||window.history.pushState({component:"v-modal"},"",window.location.href),a.modals.push(i),a.freezeRoot(),document.body.classList.add("state--modal-open")}).fail(function(t){"function"==typeof i.callback&&i.callback({status:"error"}),console.warn("modalController.openUrl error: "+t)})},close:function(t){var e=this;return t&&t.fromHistory||!e.modals.length||!e.modals[e.modals.length-1].ownHistory?void(1<e.modals.length?e.modals.pop():(e.closeTimeout=setTimeout(function(){e.modals.pop(),Vue.nextTick(function(){e.unfreezeRoot(),setTimeout(function(){e.unfreezeRoot()},20)})},250),!(e.modals.length<=1)||t&&t.replace||(document.body.classList.remove("state--modal-open"),e.unfreezeRoot(),Vue.nextTick(function(){e.unfreezeRoot()})))):void window.history.back()},closeAll:function(){var t=this,e=(t.close(),setInterval(function(){1<t.modals.length?t.close():clearInterval(e)},10))},freezeRoot:function(){var t=this;t.lockedScrollPosition=$(window).scrollTop(),Vue.nextTick(function(){$(".root").scrollTop(t.lockedScrollPosition)})},unfreezeRoot:function(){var t=this;Vue.nextTick(function(){$("html, body, .root").scrollTop(t.lockedScrollPosition)})},overlayClick:function(t){t.target.classList.contains("modal__surface")&&this.close()},handlePopState:function(t){return this.historyEventIsHashChange?void(this.historyEventIsHashChange=!1):(console.log("v-modal: pop state",t.state),void(this.topModal&&this.close({fromHistory:!0})))},handleHashChange:function(){this.historyEventIsHashChange=!0},handleEsc:function(t){t&&27==t.keyCode&&this.close()}},created:function(){function e(t,e){var n,a=$(t),i=a.attr("data-modal-url")?a.attr("data-modal-url"):a.attr("href");try{n=JSON.parse(a.attr("data-modal-data"))}catch(t){n=null,i||console.warn("v-modal: wrong modalData on .js-open-modal",t)}i?(e&&s.close(),s.openUrl(i,n)):n&&(e&&s.close(),s.open(n))}var t,s=this,n=$(document.body);window.modalController=this,n.off("click.replaceModal",".js-replace-modal").on("click.replaceModal",".js-replace-modal",function(t){return e(this,!0),t.preventDefault(),!1}),n.off("click.openModal",".js-open-modal").on("click.openModal",".js-open-modal",function(t){return View&&View.control.closeAll(),e(this),t.preventDefault(),!1}),n.off("click.closeModal",".js-close-modal").on("click.closeModal",".js-close-modal",function(){modalController.close()}),window.location.hash&&(n=window.location.hash.replace("#","").split("&").map(function(t){return{key:t.split("=")[0],value:t.split("=")[1]}}),n=_.find(n,{key:"modal"}))&&n.value&&((t=$('[data-modal-url="'+n.value+'"]')).length?e(t[0]):this.openUrl(n.value)),document.addEventListener("keyup",s.handleEsc),window.addEventListener("popstate",s.handlePopState),window.addEventListener("hashchange",s.handleHashChange)},destroyed:function(){document.body.classList.remove("state--modal-open"),document.removeEventListener("keyup",this.handleEsc),window.removeEventListener("popstate",this.handlePopState),window.removeEventListener("hashchange",this.handleHashChange),$(document.body).off("overlayClick.InModal click.replaceModal click.openM
1odal")}}),Vue.component("v-model-loader",{template:'\n\t<div class="v-model-loader model-loader"></div>\n',props:{staticDataSource:{default:null},remoteDataSource:{default:null},type:{required:!0},bxajaxid:{default:null}},methods:{loadCompare:function(){this.staticDataSource?Model.compare=this.staticDataSource.compare:this.remoteDataSource&&console.warn("v-model-loader warning: remote data source is not implemented yet")},loadGeolocation:function(){return this.staticDataSource?void(this.staticDataSource&&this.staticDataSource.geolocation&&(Model.geolocation=this.staticDataSource.geolocation,Model.geolocation.coords?Array.isArray(Model.geolocation.coords)||(Model.geolocation.coords=_.values(Model.geolocation.coords)):(Model.geolocationSearch(),Model.$once("geolocation-changed",function(){modalController.openUrl("/local/components/newsite/citySelect/city_bar.php",{className:"modal--sm"})})))):void console.warn("v-model-loader warning: no geolocation data")}},created:function(){"compare"==this.type&&this.loadCompare(),"geolocation"==this.type&&this.loadGeolocation()}}),Vue.prototype.$ymapEventBus=new Vue({data:{ymapReady:!1,scriptIsNotAttached:!0}}),window.Model=new Vue({data:function(){return{compare:{remote:null,link:null,bxajaxid:null,items:[]},geolocation:{remote:null,bxajaxid:null,coords:null,country:null,city:{name:null,id:null}},basket:{remote:null,link:null,bxajaxid:null,items:[]}}},watch:{basket:function(){this.$emit("basket-changed",this.basket)},compare:function(){this.compare.items&&this.compare.items.length?document.body.classList.add("state--compare-not-empty"):document.body.classList.remove("state--compare-not-empty")}},created:function(){this.shareReinit()},methods:{shareReinit:function(){$(".ya-share2.not-init").each(function(){var t,e=$(this);"undefined"!=typeof Ya&&void 0!==Ya.share2&&(e.removeClass("not-init"),t={content:{url:window.location.href}},"object"==_typeof(e.data("content"))&&(t=e.data("content")),Ya.share2(e.attr("id"),t))}),setTimeout(this.shareReinit,1e3)},basketAdd:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=this;e.request({url:e.basket.remote,data:{action:"add",bxajaxid:e.basket.bxajaxid,items:t.items,count:t.count,setValue:t.setValue}}).done(function(t){console.log("v-model basketAdd success",t),e.basket.checksum=t.basket.checksum,e.basket.items=t.basket.items}).fail(function(t){console.log("v-model basketAdd failed",t)}).always(function(){e.$emit("basket-changed",e.basket)})},basketRemove:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=this;e.request({url:e.basket.remote,data:{action:"remove",bxajaxid:e.basket.bxajaxid,items:t.all?"all":t.items,count:t.count}}).done(function(t){console.log("v-model basketRemove success",t),e.basket.remote=t.basket.remote,e.basket.link=t.basket.link,e.basket.items=t.basket.items,e.basket.checksum=t.basket.checksum}).fail(function(t){console.log("v-model basketRemove failed",t)}).always(function(){e.$emit("basket-changed",e.basket)})},basketClear:function(){this.basketRemove({all:!0})},request:function(t){return $.ajax({url:t.url,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:t.data})},compareAdd:function(t){var e=this;e.request({url:e.compare.remote,data:{action:"add",bxajaxid:e.compare.bxajaxid,id:t}}).done(function(t){console.log("v-model compareAdd success",t),e.compare.remote=t.compare.remote,e.compare.link=t.compare.link,e.compare.items=t.compare.items}).fail(function(t){console.log("v-model compareAdd failed",t)}).always(function(){e.$emit("compare-changed")})},compareRemove:function(t,e){var n=this;n.request({url:n.compare.remote,data:{action:"remove",bxajaxid:n.compare.bxajaxid,id:e?"all":t}}).done(function(t){console.log("v-model compareRemove success",t),n.compare.remote=t.compare.remote,n.compare.link=t.compare.link,n.compare.items=t.compare.items}).fail(function(t){console.log("v-model compareRemove failed",t)}).always(function(){n.$emit("compare-remove",e?"all":t),n.$emit("compare-changed")})},compareClear:function(){this.compareRemove(null,!0)},loadYmaps:function(){var t=this;
1if(!this.$ymapEventBus.scriptIsNotAttached||-1!=navigator.userAgent.indexOf("Chrome-Lighthouse"))return!1;var e=document.createElement("SCRIPT");e.setAttribute("src","https://api-maps.yandex.ru/2.1/?apikey=64b6656c-a6e7-4a32-a87a-965bb8f8ee75&lang=ru_RU"),e.setAttribute("async",""),e.setAttribute("defer",""),document.body.appendChild(e),this.$ymapEventBus.scriptIsNotAttached=!1,e.onload=function(){t.$ymapEventBus.ymapReady=!0,t.$ymapEventBus.$emit("scriptIsLoaded")}},initYmapsOnEvent:function(t){this.loadYmaps(),t.currentTarget.removeEventListener(t.type,this.initYmapsOnEvent)},setGeolocation:function(t,e){var n=this;$.post({url:window.location,data:{action:"setCity",CITY_ID:t,bxajaxid:n.geolocation.bxajaxid},dataType:"json"}).done(function(t){n.geolocation.city={id:t.geolocation.city.id,name:t.geolocation.city.name},n.$emit("geolocation-changed"),e(t),window.location.reload()}).fail(function(t){console.warn("Model.setGeolocation failed:",t),e(t)})},geolocationSearch:function(){function t(){ymaps.geolocation.get({provider:"auto",autoReverseGeocode:!0}).then(function(t){e.geolocation.coords=t.geoObjects.get(0).geometry.getCoordinates(),e.request({url:e.geolocation.remote,data:{action:"set",bxajaxid:e.geolocation.bxajaxid,coords:e.geolocation.coords}}).done(function(t){e.geolocation.city={id:t.geolocation.city.id,name:t.geolocation.city.name},console.log("v-model geolocationSearch success",t)}).fail(function(t){console.log("v-model geolocationSearch failed",t)}).always(function(){e.$emit("geolocation-changed")})})}var e=this;$(document).ready(function(){document.addEventListener("DOMContentLoaded",function(){setTimeout(Model.loadYmaps(),5e3)}),document.addEventListener("scroll",Model.initYmapsOnEvent),document.addEventListener("mousemove",Model.initYmapsOnEvent),document.addEventListener("touchstart",Model.initYmapsOnEvent),e.$ymapEventBus.ymapReady?ymaps.ready(t):e.$ymapEventBus.$on("scriptIsLoaded",function(){ymaps.ready(t)})})}}}),Vue.component("v-order-kds",{template:'\n\t<div class="v-order-kds order-kds" \n\t     :class="{\'order-kds--has-comments\': order.comments && order.comments.items && order.comments.items.length > 0}">\n\t\t<transition name="content-fade">\n\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t</transition>\n\t\t<div class="order-kds__container container">\n\t\t\t<div class="order-kds__header">\n\t\t\t\t<h1 v-if="order && order.title" class="order-kds__title">\n\t\t\t\t\t{{order.title}}\n\t\t\t\t</h1>\n\t\t\t\t<div class="order-kds__link-back">\n\t\t\t\t\t<slot name="link-back"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if="order" class="order-kds__main">\n\t\t\t\t<div class="order-kds__left">\n\t\t\t\t\t<div v-if="order.status" class="order-kds__status flc">\n\t\t\t\t\t\t<div class="big-status">\n\t\t\t\t\t\t\t<div class="big-status__marker"\n\t\t\t\t\t\t\t     :style="{\'background-color\': order.status.color}"></div>\n\t\t\t\t\t\t\t<div class="big-status__text">\n\t\t\t\t\t\t\t\t{{order.status.text}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.dateOfIssue" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'DATE_OF_ISSUE\')}}:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.dateOfIssue}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.deliveryMethod" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'DELIVERY_METHOD\')}}:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.deliveryMethod}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.printLink" class="order-kds__link-icon">\n\t\t\t\t\t\t<button @click.prevent="openNewWindow(order.printLink, \'\', order.printFeatures)"\n\t\t\t\t\t\t        class="link-icon"\n\t\t\t\t\t\t        type="button">\n\t\t\t\t\t\t\t<svg class="link-icon__icon svg-icon">\n\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-small-printer"></use>\n\t\t\t\t\t\t\t</svg>\n              {{getMessage(\'PRINT_INVOICE\')}}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="order-kds__right">\n\t\t\t\t\t<div v-if="order.contract" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'SPARE_PARTS_CONTRACT\')}}
1:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.contract}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.address" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'COUNTRY_AND_ADDRESS\')}}:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.address}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.contactFio" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'NAME_OF_CONTACT_PERSON\')}}:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.contactFio}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.phoneNumber" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'PHONE_NUMBER\')}}:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.phoneNumber}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="order.email" class="order-kds__feature flc">\n\t\t\t\t\t\t<div class="order-kds__feature-name">{{getMessage(\'EMAIL\')}}:&nbsp;</div>\n\t\t\t\t\t\t<div class="order-kds__feature-value">{{order.email}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div v-if="order" class="order-kds__content js-tabs">\n\t\t\t\t<div class="tab-labels tab-labels--big">\n\t\t\t\t\t<div class="tab-labels__row">\n\t\t\t\t\t\t<div class="tab-labels__item">\n\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn js-tabs__label open" data-tab="1">\n\t\t\t\t\t\t\t\t{{getMessage(\'ORDER_LIST\')}}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\x3c!--\t\t\t\t\t\t<div class="tab-labels__item">--\x3e\n\x3c!--\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn js-tabs__label" data-tab="2">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t{{getMessage(\'COMMENTS_ON_THE_ORDER\')}}--\x3e\n\x3c!--\t\t\t\t\t\t\t</button>--\x3e\n\x3c!--\t\t\t\t\t\t</div>--\x3e\n\t\t\t\t\t\t<div class="tab-labels__item">\n\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn js-tabs__label" data-tab="2">\n\t\t\t\t\t\t\t\t{{getMessage(\'APPROVAL_HISTORY\')}}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="order-kds__tab-content">\n\t\t\t\t\t<div class="tab-behavior js-tabs__tab open" data-tab="1">\n\t\t\t\t\t\t<div class="text-guide">\n\t\t\t\t\t\t\t<div class="table-scroller">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<template v-if="template === \'basket-table\'">\n\t\t\t\t\t\t\t\t\t<table class="big-table">\n\t\t\t\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<th class="big-table__th big-table__th--big-paddings">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>{{getMessage(\'#\')}}</b>\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>{{getMessage(\'NAME_AND_PRODUCT_CODE\')}}</b>\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'QUANTITY_PCS\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'PRICE_BYN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'TOTAL_BYN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr v-for="(item, itemIndex) in order.composition.products" :key="itemIndex">\n\t\t\t\t\t\t\t\t\t\t\t\t<td class="big-table__th big-table__td--big-paddings">{{itemIndex + 1}}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p v-if="item.sku">{{item.sku}}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>{{item.plan.count}}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>{{item.plan.price}}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>{{item.plan.total}}</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t<tr class="big-table__total">\n\t\t\t\t\t\t\t\t\t\t\t\t<td colspan="2" class="big-table__th big-table__td--big-paddings">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'TOTAL\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td v-if="order.composition.total.plan">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>{{order.composition.total.plan.count}}</b>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>-</b>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td v-if="order.composition.total.plan">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>{{order.composition.total.plan.total}}</b>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t\t<table class="big-table">\n\t\t\t\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<th rowspan="2" class="big-table__th big-table__th--big-paddings">\n\t\t\t\t\t\t\t\t\t\t\t\t<b>{{getMessage(\'#\')}}</b>\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t<th rowspan="2">\n\t\t\t\t\t\t\t\t\t\t\t\t<b>{{getMessage(\'NAME_AND_PRODUCT_CODE\')}}</b>\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t<th class="big-table__centered" colspan="3"><b>{{getMessage(\'PLAN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th class="big-table__centered" colspan="4"><b>{{getMessage(\'FACT\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'QUANTITY_PCS\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'PRICE_BYN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'TOTAL_BYN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'QUANTITY_PCS\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'PRICE_BYN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'VAT_RATE\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t\t<th><b>{{getMessage(\'TOTAL_BYN\')}}</b></th>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t<tr v-for="(item, itemIndex) in order.composition.products" :key="itemIndex">\n\t\t\t\t\t\t\t\t\t\t\t<td class="big-table__th big-table__td--big-paddings">{{itemIndex + 1}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t\t\t\t\t\t\t<p v-if="item.sku">{{item.sku}}</p>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.plan.count}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.plan.price}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.plan.total}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.fact.count}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.fact.price}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.fact.nds}}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{{item.fact.total}}</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr class="big-table__total">\n\t\t\t\t\t\t\t\t\t\t\t<td colspan="2" class="big-table__th big-table__td--big-paddings">\n\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'TOTAL\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="order.composition.total.protocol"\n\t\t\t\t\t\t\t\t\t\t\t\t     class="big-table__link-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a :href="order.composition.total.protocol.link"\n\t\t\t\t\t\t\t\t\t\t\t\t\t   class="link-icon"\n\t\t\t\t\t\t\t\t\t\t\t\t\t   download>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="link-icon__icon svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-document"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{order.composition.total.protocol.text}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div v-if="order.compositionAction" class="big-table__action">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click="approveOrder" type="button" class="big-table__action-btn btn btn--primary flc">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'TO_APPROVE\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button class="big-table__action-btn btn btn--secondary-alt flc js-open-modal"\n                                  @click="rejectOrder" type="button">
1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'TO_REJECT\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td v-if="order.composition.total.plan">\n\t\t\t\t\t\t\t\t\t\t\t\t<b>{{order.composition.total.plan.count}}</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>-</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td v-if="order.composition.total.plan">\n\t\t\t\t\t\t\t\t\t\t\t\t<b>{{order.composition.total.plan.total}}</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td v-if="order.composition.total.fact">\n\t\t\t\t\t\t\t\t\t\t\t\t<b>{{order.composition.total.fact.count}}</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>-</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>-</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td v-if="order.composition.total.fact">\n\t\t\t\t\t\t\t\t\t\t\t\t<b>{{order.composition.total.fact.total}}</b>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\x3c!--\t\t\t\t\t<div class="tab-behavior js-tabs__tab" data-tab="2">--\x3e\n\x3c!--\t\t\t\t\t\t<div class="comments">--\x3e\n\x3c!--\t\t\t\t\t\t\t<div class="comments__title">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t{{getMessage(\'COMMENTS_ON_THE_ORDER\')}}--\x3e\n\x3c!--\t\t\t\t\t\t\t</div>--\x3e\n\n\x3c!--\t\t\t\t\t\t\t<template v-if="order.comments && order.comments.items && order.comments.items.length > 0">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t<div v-for="(groupComment, groupCommentIndex) in computedCommentsItems(order.comments.items)"--\x3e\n\x3c!--\t\t\t\t\t\t\t\t     class="comments__date-group flc" --\x3e\n\x3c!--\t\t\t\t\t\t\t\t     :key="groupCommentIndex">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t<div class="comments__date">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t<div class="comments__date-value">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t{{groupComment[0].date}}--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t<div v-for="(comment, commentIndex) in groupComment" --\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t     class="comments__item" --\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t     :key="comment.id || commentIndex">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t<div class="comments__header">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t<div class="comments__avatar">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t<img v-if="comment.avatar"--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t     :src="comment.avatar"--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t     class="comments__avatar-image"--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t     alt="">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t<img v-else--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t     class="comments__avatar-image"--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t     src="/local/images/markup-images/avatars/avatar-empty.svg"--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t\t     alt="">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t<div class="comments__name">{{comment.name}}</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t\t<div class="comments__time">{{comment.messageTime}}</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t\t<div class="comments__message" v-html="comment.message"></div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t\t\t</template>--\x3e\n\n\x3c!--\t\t\t\t\t\t\t<div v-if="$slots[\'form\']" class="order-kds__form">--\x3e\n\x3c!--\t\t\t\t\t\t\t\t<slot name="form"></slot>--\x3e\n\x3c!--\t\t\t\t\t\t\t</div>--\x3e\n\n\x3c!--\t\t\t\t\t\t</div>--\x3e\n\x3c!--\t\t\t\t\t</div>--\x3e\n\t\t\t\t\t<div class="tab-behavior js-tabs__tab" data-tab="2">\n\t\t\t\t\t\t<div v-if="order.approvalHistory && order.approvalHistory.length > 0" class="order-kds__history">\n\t\t\t\t\t\t\t<div class="order-kds__history-title">\n\t\t\t\t\t\t\t\t{{getMessage(\'NEGOTIATION_PROTOCOLS_FOR_THIS_ORDER\')}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="order-kds__history-links">\n\t\t\t\t\t\t\t\t<div v-for="item in order.approvalHistory" class="order-kds__history-link-wrap flc">
1\n\t\t\t\t\t\t\t\t\t<a :href="item.link"\n\t\t\t\t\t\t\t\t\t   download\n\t\t\t\t\t\t\t\t\t   class="link-icon">\n\t\t\t\t\t\t\t\t\t\t<svg class="link-icon__icon svg-icon">\n\t\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-document"></use>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t{{item.text}}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{order:{id:null,remote:null,approveOrderModalUrl:null,rejectOrderModalUrl:null,title:null,status:null,dateOfIssue:null,deliveryMethod:null,printLink:null,printFeatures:null,contract:null,address:null,contactFio:null,email:null,composition:{products:[],total:{plan:null,fact:null,protocol:null}},comments:{items:[]},approvalHistory:[]},loadingMinTimeout:null,loading:!1}},props:{staticDataSource:{default:null},remoteDataSource:{default:null},bxajaxid:{default:null},template:{default:"regular"}},methods:{approveOrder:function(){window.modalController.openUrl(this.order.approveOrderModalUrl,{className:"modal--md modal--form",ownHistory:!1})},rejectOrder:function(){window.modalController.openUrl(this.order.rejectOrderModalUrl,{className:"modal--md modal--form",ownHistory:!1})},computedCommentsItems:function(t){return _.groupBy(t,"date")},openNewWindow:function(t,e,n){window.open(t,e,n)},loadOrder:function(){function t(){n&&(e.order=n.order),e.loadingMinTimeout=null,e.loading=!1}var e=this,n=null,a=!1;e.loading||(e.loading=!0,e.loadingMinTimeout=setTimeout(function(){a&&t(),e.loadingMinTimeout=null},300),$.ajax({url:e.order.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{bxajaxid:e.bxajaxid}}).done(function(t){console.log("v-order-kds loaded",t),n=t}).fail(function(t){console.warn("v-order-kds load failed",t)}).always(function(){a=!0,e.loadingMinTimeout||t()}))}},mounted:function(){View.initAllLocal(this.$el)},created:function(){var t=this;t.staticDataSource?(t.order=t.staticDataSource.order,console.log("v-order-kds loaded from static data",t.order)):t.remoteDataSource&&(t.order.remote=t.remoteDataSource,t.loadOrder(!0)),Model.$on("comments-updated",t.loadOrder())}}),Vue.component("v-order",{template:'\n\t<div>\n\t\t<template v-if=" catalog &&  catalog.items &&  catalog.items.length">\n\t\t\t<div class="v-order order" v-for="order in catalog.items">\n\t\t\t\t<div class="order__pic">\n\t\t\t\t\t<img v-if="order.image" class="order__img" :src="order.image" alt="">\n\t\t\t\t\t<div class="order__no-photo" v-else>\n\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-no-photo"></use></svg>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="order__info">\n\t\t\t\t\t<div class="order__product-meta flc" v-if="order.sku || order.series">\n\t\t\t\t\t\t{{order.sku}} <template v-if="order.sku && order.series"> / </template> <template v-if="order.series">{{getMessage(\'SERIES\')}} {{order.series}}</template>\n\t\t\t\t\t</div>\n\t\t\t\t\t<h4 v-if="order.name" class="order__title h4 flc">{{order.name}}{{order.text && order.text.length?\', \'+order.text : "" }}</h4>\n\t\t\t\t\t<div class="order__main-info">\n\t\t\t\t\t\t<div class="order__item-list">\n\t\t\t\t\t\t\t<div class="order__item flc" v-for="item in order.data">\n\t\t\t\t\t\t\t\t<div class="order__name">\n\t\t\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="order__text">\n\t\t\t\t\t\t\t\t\t{{item.text}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<template v-if="order.docs && order.docs.length" >\n\t\t\t\t\t\t<a :href="doc.link" :download="doc.download" class="order__btn-download btn" v-for="doc in order.docs">\n\t\t\t\t\t\t\t{{doc.text}} <svg class="btn__download svg-icon"><use xlink:href="#svg-icon-download"></use></svg>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</template>\n\n\n\n\t\t\t\t</div>\n\t\t\t\t<div class="order__links">\n\t\t\t\t\t<a v-if="order.videos && order.videos.length" class="widget-video flc" @click.prevent="openGallery(order.videos)">\n\t\t\t\t\t\t<div class="widget-video__item">\n\t\t\t\t\t\t\t<div class="gallery-preview gallery-preview--video">\n\t\t\t\t\t\t\t\t<div class="gallery-preview__bg" v-if="order.videos[0].srcPoster"\n\t\t\t\t\t\t\t\t\t :style="{\'background-image\': \'url(\'+order.videos[0].srcPoster+\')\'}"></div>\n\t\t\t\t\t\t\t\t<svg class="svg-icon gallery-preview__video-icon"><use xlink:href="#svg-icon-video-btn"></use></svg>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<span class="arrow-link">{{getMessage(\'REVIEW\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t\t<div class="link-block__item" :style="\'margin-bottom: 40px;\'">\n\t\t\t\t\t\t<div class="section-action flc" v-if="order.repairsLink">\n\t\t\t\t\t\t\t<span :href="order.repairsLink" \n\t\t\t\t\t\t\t\tdata-modal-data=\'{ \n\t\t\t\t\t\t\t\t"className": "modal
1--lg modal--form", \n\t\t\t\t\t\t\t\t"ownHistory": false\n\t\t\t\t\t\t\t\t}\'\n\t\t\t\t\t\t\t\tclass="arrow-link js-open-modal">{{getMessage(\'ORDER_REPAIR\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></span>\n\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t<div class="section-action flc" v-if="order.serviceLink">\n\t\t\t\t\t\t\t<a :href="order.serviceLink" class="arrow-link">{{getMessage(\'FIND_SERVICE\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="section-action flc" v-if="order.accessoriesLink">\n\t\t\t\t\t\t\t<a :href="order.accessoriesLink" class="arrow-link">{{getMessage(\'WHERE_TO_BUY_ACCESORIZE\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="section-action flc" v-if="order.faqLinks">\n\t\t\t\t\t\t\t<a :href="order.faqLinks" class="arrow-link">{{getMessage(\'FAQ\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button v-if="catalog.medical" type="button" @click="submitApplicationMonitoring(order.data[0].text)" class="btn btn--primary" :style="\'height: auto; white-space: normal; text-transform: none; padding: 12px;\'">\n\t\t\t\t\t\tЗаявка на получение доступа к системе удаленного мониторинга\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\n\n\n\t\t\t</div>\n\n\t\t\t<transition name="content-fade">\n\n\t\t\t\t<v-page-nav class="personal-applications__navigation catalog__navigation"\n\t\t\t\t\t\t\t:static-data-source="state.pages" \n\t\t\t\t\t\t\t@navigate="navigateByPage"\n\t\t\t\t\t\t\tv-if="state.pages && state.pages.count && state.pages.limit < state.pages.count"></v-page-nav>\n\t\t\t</transition>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<div class="personal-applications__attention attention attention--no-border">\n\t\t\t\t<svg class="svg-icon attention__ico-attention">\n\t\t\t\t<use xlink:href="#svg-icon-attention"></use>\n\t\t\t\t</svg>\n\t\t\t\t<span class="attention__attention-text" v-html=" catalog.attention? catalog.attention:getMessage(\'EMPTY_ORDER_NOTIFICATION\')"></span>\n\t\t\t</div>\n\t\t</template>\n\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{state:{},catalog:{},loadingMinTimeout:null,loading:!1}},props:{staticDataSource:{default:null},bxajaxid:{default:null}},methods:{submitApplicationMonitoring:function(t){$.ajax({url:"https://atlant.by/personal/user/medicalCompany.php",method:"post",data:{serialNumber:t}}).done(function(t){console.log("DONE",t),modalController.open({content:t,className:"modal--lg modal--form"})}).fail(function(t){console.warn("FAIL",t)})},loadCatalog:function(){function t(){n&&(e.catalog=n.catalog,e.state=n.state),e.loadingMinTimeout=null,e.loading=!1}var e=this,n=null,a=!1;e.loading||(e.loading=!0,e.loadingMinTimeout=setTimeout(function(){a&&t(),e.loadingMinTimeout=null},300),$.ajax({url:e.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:e.state,bxajaxid:e.bxajaxid}}).done(function(t){console.log("v-personal-applications loaded",t),n=t}).fail(function(t){console.warn("v-personal-applications load failed",t)}).always(function(){a=!0,e.loadingMinTimeout&&!fast||t()}))},navigateByPage:function(t){this.state.pages.offset=t.offset,this.state.pages.limit=t.limit,this.loadCatalog()},openGallery:function(t){modalController.open({component:"v-big-gallery",className:"modal--lg modal--gallery",staticDataSource:{videos:t,initialIndex:0}})}},created:function(){var t=this;t.state=t.staticDataSource.state,t.catalog=t.staticDataSource.catalog,Model.$on("addUserProduct",t.loadCatalog)}}),function(){var n=Math.ceil;Vue.component("v-page-nav",{template:'\n\t<div class="v-page-nav page-nav flc" \n\t\t\t v-if="(state.offset + state.limit < state.count) || state.offset > 0" \n\t\t\t :class="{\'page-nav--more\': mode === \'more\'}">\n\t\t\n\t\t<template v-if="mode === \'more\'">\n\t\t\t<div class="page-nav__row">\n\t\t\t\t<div class="page-nav__cell page-nav__cell--main">\n\t\t\t\t\t<button type="button"\n\t\t\t\t\t\t class="btn btn--arrow btn--arrow btn--transparent bt
1n--strong" \n\t\t\t\t\t\t v-if="state.offset + state.limit < state.count" \n\t\t\t\t\t\t @click.prevent="loadMore">\n\t\t\t\t\t\t{{getMessage(\'LOAD_MORE\')}}&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow arrow-link__arrow--down"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<div class="page-nav__row">\n\t\t\t\t<div class="page-nav__cell page-nav__cell--left">\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<div class="page-nav__back" v-if="state.offset">\n\t\t\t\t\t\t\t<a class="page-nav__back-link" :href="linkBack" @click.prevent="navigateBack">\n\t\t\t\t\t\t\t\t<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-left"></use></svg>&nbsp;&nbsp;{{getMessage(\'BACK\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t\t<div class="page-nav__cell page-nav__cell--main">\n\t\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t\t{{state}}\n\t\t\t\t\t\t<a :href="linkForward" class="btn btn--arrow btn--transparent btn--strong" v-if="state.offset + state.limit < state.count" @click.prevent="navigateForward">\n\t\t\t\t\t\t\t{{getMessage(\'NEXT_PAGE\')}}&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<span class="btn btn--arrow btn--transparent btn--strong disabled" v-else-if="state.offset>0">\n\t\t\t\t\t\t<span class="hidden-4xs">{{getMessage(\'LAST_PAGE_FULL\')}}</span>\n\t\t\t\t\t\t<span class="hidden visible-4xs-inline">{{getMessage(\'LAST_PAGE\')}}</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t\t<div class="page-nav__cell page-nav__cell--right">\n\t\t\t\t\t<div class="page-nav__selector">\n\t\t\t\t\t\t<v-field type="select" open-type small :options="pageOptions" v-model="pageNumber" @input="navigateToPage"></v-field>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{state:{offset:0,limit:0,default:0}}},props:{staticDataSource:{default:null},mode:{default:"regular"}},computed:{pageOptions:function(){var t=[];if(this.state.limit)for(var e=0;e<n(this.state.count/this.state.limit);e++)t.push({value:e+1,text:e+1});else console.warn("v-page-nav error: no limit");return t},pageNumber:{get:function(){return n(this.state.offset/this.state.limit)+1},set:function(){}},linkForward:function(){return window.location.pathname+"?offset="+(parseInt(this.state.offset)+parseInt(this.state.limit))+"&limit="+this.state.limit},linkBack:function(){return window.location.pathname+"?offset="+Math.max(0,this.state.offset-this.state.limit)+"&limit="+this.state.limit}},watch:{staticDataSource:function(){this.initState()}},methods:{loadMore:function(){this.state.offset=parseInt(this.state.offset)+parseInt(this.state.limit),this.$emit("navigate",this.state)},navigateBack:function(){var t=this;t.state.offset-=t.state.limit,t.state.offset=t.state.offset<0?0:t.state.offset,this.$emit("navigate",t.state)},navigateForward:function(){var t=this;t.state.offset+t.state.limit>t.state.count||(t.state.offset+=t.state.limit,this.$emit("navigate",t.state))},navigateToPage:function(t){var e=this;e.state.limit*(t-1)>e.state.count||(e.state.offset=e.state.limit*(t-1),this.$emit("navigate",e.state))},initState:function(){this.staticDataSource?this.state=this.staticDataSource:(this.state.offset=this.state.offset||0,this.state.limit=this.state.limit||0,this.state.count=this.state.count||0)}},created:function(){this.initState()}})}(),Vue.component("v-personal-applications",{template:'\n\t<div class="v-personal-applications personal-applications">\n\n\t\t<section v-if="banner" class="personal-applications__banner hero-banner-section flc">\n\t\t\t<div class="hero-banner hero-banner--small hero-banner--left flc"\n\t\t\t\t :class="{\'hero-banner--wide-bg\': banner.type === \'wide\', \'hero-banner--gray\': banner.type === \'gray\'}"\n\t\t\t\t :style="banner.type === \'wide\' ? (\'background-image: url(\' + banner.backgroundImage 
1+ \')\') : null">\n\t\t\t\t <div class="hero-banner__image" \n\t\t\t\t :class="{\'hero-banner__image--visible-xs\': banner.type === \'wide\'}"\n\t\t\t\t :style="\'background-image: url(\' + banner.backgroundImage + \')\'"></div>\n\t\t\t\t<div class="hero-banner__main">\n\t\t\t\t\t<div class="hero-banner__animation">\n\t\t\t\t\t\t<h3 class="section-title section-title--indent flc" v-html="banner.title"></h3>\n\t\t\t\t\t\t<div class="section-descr section-descr--large flc">\n\t\t\t\t\t\t\t{{banner.text}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<hr class="section-separator flc" v-if="banner.arrowLinks || banner.button">\n\t\t\t\t\t\t<div v-for="link in banner.arrowLinks" class="section-action flc">\n\t\t\t\t\t\t\t<a :href="link.link ? link.link : null" \n\t\t\t\t\t\t\t\tclass="arrow-link" \n\t\t\t\t\t\t\t\[email protected]="link.action ? $root.$emit(\'go-to-faq-tab\') : null">{{link.text}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button v-if="banner.button" type="button" class="btn btn--primary hero-banner__button flc">\n\t\t\t\t\t\t\t{{banner.button.text}}\n\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<div class="personal-applications__table repair-table">\n\n\t\t\t<template  v-if="catalog && catalog.items && catalog.items.length">\n\n\t\t\t\t<div v-if="mode === \'service-center\' || mode === \'service-center-admin\'" class="list-status__row list-status__row--center">\n\t\t\t\t\t<div class="list-status__cell-meta list-status__cell-meta--alt">\n\t\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t\t<div class="status-value" v-if="catalog.itemsCount !== null && catalog.itemsTotal !== null">\n\t\t\t\t\t\t\t\t{{getMessage(\'SHOWED\')}}  <span class="status-value__value">{{catalog.itemsCount}}</span>  {{getMessage(\'OF\')}}  {{catalog.itemsTotal}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</transition>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="mode === \'service-center-admin\'" class="list-status__cell-search">\n\t\t\t\t\t\t<v-field type="search" v-model="localQuery" :placeholder="getMessage(\'ENTER_ORDER_FILTER\')" @input="searchInput"></v-field>\n\t\t\t\t\t\t<button type="button" class="list-status__cell-search-btn">\n\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-search"></use></svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="list-status__cell-aside list-status__cell-aside--alt">\n\t\t\t\t\t\t<div v-for="filter in catalog.filters" class="list-status__selector list-status__selector--margin">\n\t\t\t\t\t\t\t<v-field type="select" open-type :options="filter.options" v-model="filter.value" @input="stateChanged" small></v-field>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<table class="repair-table__table flc">\n\t\t\t\t\t<thead class="repair-table__head">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>{{getMessage("REPAIR_COL_1")}}</td>\n\t\t\t\t\t\t\t<td>{{getMessage("REPAIR_COL_2")}}</td>\n\t\t\t\t\t\t\t<td v-if="mode === \'service-center\' || mode === \'service-center-admin\'">{{getMessage("REPAIR_COL_3")}}</td>\n\t\t\t\t\t\t\t<td v-else>{{getMessage("REPAIR_COL_4")}}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody class="repair-table__body">\n\t\t\t\t\t<template v-for="(item, i) in catalog.items">\n\t\t\t\t\t\t<tr :class="{\'repair-table__row--no-border\': item.review}">\n\t\t\t\t\t\t\t<td class="flc">\n\t\t\t\t\t\t\t\t<div class="repair-table__product-meta flc" v-if="item.sku || item.series">\n\t\t\t\t\t\t\t\t\t{{item.sku}} <template v-if="item.sku && item.series"> / </template> <template v-if="item.series">{{getMessage(\'SERIES\')}} {{item.series}}</template>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="repair-table__name flc">\n\t\t\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t\t\t</div>
1\n\t\t\t\t\t\t\t\t<div class="repair-table__captions">\n\t\t\t\t\t\t\t\t\t<div class="repair-table__caption">\n\t\t\t\t\t\t\t\t\t\t{{item.SN}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__caption">\n\t\t\t\t\t\t\t\t\t\t{{item.purchaseDate}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td class="flc">\n\t\t\t\t\t\t\t\t<div class="repair-table__descr">\n\t\t\t\t\t\t\t\t\t{{item.descr}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="repair-table__files">\n\t\t\t\t\t\t\t\t\t<a v-for="(file, i) in item.files" :key="i" class="repair-table__file-link flc" :href="file.link" download>\n\t\t\t\t\t\t\t\t\t\t{{file.filename}}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td class="flc">\n\t\t\t\t\t\t\t\t<template v-if="mode === \'regular\'">\n\t\t\t\t\t\t\t\t\t<div class="repair-table__name flc">\n\t\t\t\t\t\t\t\t\t\t{{item.serviceName}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__status flc">\n\t\t\t\t\t\t\t\t\t\t<div class="repair-table__status-text" :class="{\'repair-table__status-text--disabled\': item.isCompleted}">\n\t\t\t\t\t\t\t\t\t\t\t {{item.statusText}} &nbsp; \x3c!-- to keep height if statusText is empty --\x3e\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="repair-table__caption flc">\n\t\t\t\t\t\t\t\t\t{{item.requestDate}}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div v-if="item.serviceHistory" class="repair-table__history js-message-toggler flc">\n\t\t\t\t\t\t\t\t\t<a class="repair-table__history-btn flc" @click.prevent="toggleHistory($event, i)">\n\t\t\t\t\t\t\t\t\t\t{{getMessage(\'SERVICE_HISTORY\')}}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t\t\t<ul v-for="str in item.serviceHistory">\n\t\t\t\t\t\t\t\t\t\t\t<li>{{str}}</li>\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div v-if="item.cancelForm" class="repair-table__cancel-wrap js-message-toggler flc">\n\t\t\t\t\t\t\t\t\t<a class="repair-table__cancel arrow-link" @click.prevent="toggleCancelForm($event, i)">\n\t\t\t\t\t\t\t\t\t\t{{getMessage(\'CANCEL\')}}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t\t\t<span>{{getMessage(\'CANCEL_ORDER_CONFIRM\')}}</span>\n\t\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-actions flc">\n\t\t\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-actions-grid">\n\t\t\t\t\t\t\t\t\t\t\t\t<button type="submit" class="repair-table__button btn btn--primary">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'YES\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t\t<button type="button" class="repair-table__button repair-table__button--margin btn btn--primary js-dropdown-close">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'NO\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<a v-if="item.isCompleted && item.leaveFeedback" href="#" class="repair-table__arrow-link arrow-link" @click.prevent="leaveFeedback">{{getMessage(\'SEND_REVIEW\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg\n\t\t\t\t\t\t\t\t\t\t\tclass="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t\t<template v-else-if="mode === \'service-center\' || mode === \'service-center-admin\'">\n\t\t\t\t\t\t\t\t\x3c!-- Todo dointegrate this --\x3e\n\t\t\t\t\t\t\t\t<div v-if="item.shortContacts" class="repair-table__contacts">\n\t\t\t\t\t\t\t\t\t<div class="repair-table__contacts-text flc">\n\t\t\t\t\t\t\t\t\t\tМинск\n\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip-wrap">\n\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip dropdown-owner js-dropdown">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position" style="left: -262.266px;">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'FULL_SERVICE_CONTACT_NOTIFY\')}}\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-else-if="item.fullContacts" class="repair-table__contacts">\n\t\t\t\t\t\t\t\t\tМинск<br>\n\t\t\t\t\t\t\t\t\tГолубоглазов Николай Федорович<br>\n\t\t\t\t\t\t\t\t\t+375 29 123-45-67\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div class="repair-table__status flc">\n\t\t\t\t\t\t\t\t\t<div class="repair-table__status-text" :class="{\'repair-table__status-text--disabled\': item.isCompleted, \'repair-table__status-text--warning\': item.isWarning, \'repair-table__status-text--failed\': item.isFailed}">\n\t\t\t\t\t\t\t\t\t\t {{item.statusText}} &nbsp; \x3c!-- to keep height if statusText is empty --\x3e\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div v-if="item.requestDate" class="repair-table__c
1aption flc">\n\t\t\t\t\t\t\t\t{{item.requestDate}}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div v-if="item.hintText" class="repair-table__caption repair-table__caption--black flc">\n\t\t\t\t\t\t\t\t{{item.hintText}}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div v-if="item.serviceHistory" class="repair-table__history js-message-toggler flc">\n\t\t\t\t\t\t\t\t<a class="repair-table__history-btn flc" @click.prevent="toggleHistory($event, i)">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'SERVICE_HISTORY\')}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t\t<ul v-for="str in item.serviceHistory">\n\t\t\t\t\t\t\t\t\t\t<li>{{str}}</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div v-if="item.comment" class="repair-table__history js-message-toggler flc">\n\t\t\t\t\t\t\t\t<a class="repair-table__history-btn flc" @click.prevent="toggleComment($event, i)">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'COMMENT\')}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t\t<ul v-for="str in item.comment">\n\t\t\t\t\t\t\t\t\t\t<li>{{str}}</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<a v-if="item.applicationsLink" href="#" class="repair-table__arrow-link arrow-link" @click.prevent="$root.$emit(\'go-to-applications-tab\')">\n\t\t\t\t\t\t\t\t{{getMessage(\'ORDER_LIST\')}}\n\t\t\t\t\t\t\t\t<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t\t<div v-if="item.refuseButton" class="repair-table__refuse-action js-message-toggler flc">\n\t\t\t\t\t\t\t\t<a class="repair-table__arrow-link arrow-link" @click.prevent="toggleRefuseForm($event, i)">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'CANCEL_ORDER\')}}\n\t\t\t\t\t\t\t\t\t<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown repair-table__dropdown--wide js-dropdown-block">\n\t\t\t\t\t\t\t\t\t<v-rich-form\n\t\t\t\t\t\t\t\t\t\t:frame="false"\n\t\t\t\t\t\t\t\t\t\t:static-data-source="null"\n\t\t\t\t\t\t\t\t\t\tremote-data-source="/local/source/markup/fixtures/cancel-form.json"\n\t\t\t\t\t\t\t\t\t\t:bxajaxid="bxajaxid"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</v-rich-form>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<button v-if="item.acceptButton" type="button" data-modal-url="" class="repair-table__button btn btn--primary btn--short flc js-open-modal">\n\t\t\t\t\t\t\t\t{{getMessage(\'GET_ORDER\')}}\n\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t<div v-if="item.executorButton || item.executorName || item.executorLink" class="repair-table__executor js-message-toggler">\n\t\t\t\t\t\t\t\t<div v-if="item.executorName" class="repair-table__executor-name">\n\t\t\t\t\t\t\t\t\t{{item.executorName}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<a v-if="item.executorLink" \n\t\t\t\t\t\t\t\t   class="repair-table__arrow-link repair-table__arrow-link--small-margin arrow-link" @click.prevent="toggleExecutorForm($event, i)">{{getMessage(\'CHANGE_EXECUTOR\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t\t\t<button v-if="item.executorButton" \n\t\t\t\t\t\t\t\t\t\ttype="button" \n\t\t\t\t\t\t\t\t\t\[email protected]="toggleExecutorForm($event, i)" \n\t\t\t\t\t\t\t\t\t\tclass="repair-table__button btn btn--primary btn--short flc">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'SET_EXECUTOR\')}}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown repair-table__dropdown--wide js-dropdown-block" :class="{\'repair-table__dropdown--margin\': item.executorButton}">\n\t\t\t\t\t\t\t\t\t <v-rich-form\n\t\t\t\t\t\t\t\t\t\t:frame="false"\n\t\t\t\t\t\t\t\t\t\t:static-data-source="null"\n\t\t\t\t\t\t\t\t\t\tremote-data-source="/local/source/markup/fixtures/executor-form.json"\n\t\t\t\t\t\t\t\t\t\t:bxajaxid="bxajaxid"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</v-rich-form>\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr v-if="item.review">\n\t\t\t\t\t<td colspan="3" class="repair-table__review-cell">\n\t\t\t\t<v-review-item :review="item.review" mode="tablerow"></v-review-item>\n\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</template>\n\t\t\t</tbody>\n\t\t</table>\n\t</template>\n\n\t<template v-else>\n\t\t<div class="personal-applications__attention attention attention--no-border">\n\t\t\t<svg class="svg-icon attention__ico-attention">\n\t\t\t<use xlink:href="#svg-icon-attention"></use>\n\t\t\t</svg>\n\t\t\t<span class="attention__attention-text" v-html="catalog.attention?catalog.attention:getMessage(\'EMPTY_ORDER_NOTIFICATION\')"></span>\n\t\t</div>\n\t</template>\n\n\t<transition name="content-fade">\n\t\t<v-page-nav class="personal-applications__navigation catalog__navigation"\n\t\t\t\t\t:static-data-source="catalog.pages" \n\t\t\t\t\t@navigate="navigateByPage"\n\t\t\t\t\tv-if="catalog.pages && catalog.pages.count &&   catalog.pages.limit < catalog.pages.count &&  !noPageNav"></v-page-nav>\n\t</transition>\n\n</div>\n</div>\n\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{catalog:{filters:null,items:null,itemsTotal:null,itemsCount:null,pages:{offset:null,limit:null,count:null}},state:{filter:null,pages:{offset:null,limit:null}},open:!1,historyState:[],commentState:[],refuseFormState:[],executorFormState:[],cancelFormState:[],loading:!1,loadingMinTimeout:null,filterIsChanged:!1,changedFilters:null,isInitialState:!0}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},mode:{type:String,default:"regular"},noPageNav:{type:Boolean,default:!1},noHistory:{type:Boolean,default:!1},banner:{default:null}},methods:{pushState:function(){"localhost"==window.location.hostname||this.noHistory||window.history[this.isInitialState?"replaceState":"pushState"]({component:"v-personal-applications",state:this.state,catalog:this.catalog},"",this.catalog.remote)},getActiveFilterKey:function(t){try{if("object"==_typeof(t.value)&&!_.find(_.find(this.catalog.filters,{id:t.id}).options,{value:t.value}))return t.id+"/custom"}catch(t){}return t.id+"/"+JSON.stringify(t.value)},stateChanged:function(){this.loadCatalog()},navigateByLink:function(t){this.catalog.remote=t.href,this.state.filter=null,this.loadCatalog()},navigateByPage:function(t){this.state.offset=t.offset,this.state.limit=t.limit,this.loadCatalog()},handlePopState:function(t){t.state&&"v-personal-applications"==t.state.component&&!this.noHistory&&(console.log("v-personal-applications: pop state",t.state),this.state=t.state.state,this.catalog=t.state.catalog)},clickOutside:function(n){var t=document.querySelectorAll(".js-message-toggler");Array.prototype.forEach.call(t,function(t){var e=t.querySelector(".js-dropdown-close");(n.target===e||t&&!t.contains(n.target)&&t.querySelector(".repair-table__dropdown--shown"))&&t.querySelector(".repair-table__dropdown--shown").classList.remove("repair-table__dropdown--shown")})},toggleHistory:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.historyState[e]=!this.historyState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleComment:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.commentState[e]=!this.commentState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleRefuseForm:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.refuseFormState[e]=!this.refuseFormState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleExecutorForm:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.executorFormState[e]=!this.executorFormState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleCancelForm:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.cancelFormState[e]=!this.cancelFormState[e],$(t).toggleClass("repair-table__dropdown--shown")},leaveFeedback:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--article",remoteDataSource:"/local/dist/markup/fixtures/leave-feedback-form.json",ownHistory:!0})},loadCatalog:function(t,e){function n(){if(i){a.catalog=i.catalog,e||(a.pushState(),a.isInitialState=!1);
1try{a.state.region=i.state.region,a.state.pages=i.catalog.pages}catch(t){console.warn("v-personal-applications: something wrong with state\n",t)}}a.loadingMinTimeout=null,a.loading=!1}var a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&n(),a.loadingMinTimeout=null},300)),$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{state:this.state,bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-personal-applications loaded",t),i=t}).fail(function(t){console.warn("v-personal-applications load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||n()}))}},created:function(){var t=this;if(t.staticDataSource){if(console.log("v-personal-applications loaded from static data",t.catalog),t.staticDataSource.pages&&(t.state.pages.limit=parseInt(t.staticDataSource.pages.limit)),t.staticDataSource.catalog&&t.staticDataSource.catalog.items&&0<t.staticDataSource.catalog.items.length){t.catalog=t.staticDataSource.catalog;for(var e=0;e<t.staticDataSource.catalog.items.length;e++)t.historyState.push(t.staticDataSource.catalog.items[e].isHistoryShown),t.commentState.push(t.staticDataSource.catalog.items[e].isCommentShown),t.commentState.push(t.staticDataSource.catalog.items[e].isRefuseFormShown),t.commentState.push(t.staticDataSource.catalog.items[e].isExecutorFormShown),t.commentState.push(t.staticDataSource.catalog.items[e].isCancelFormShown);$(document).on("click.dropdownblock",this.clickOutside)}t.pushState()}else t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0))},destroyed:function(){this.catalog&&this.catalog.items&&0<this.catalog.items.length&&$(document).off("click.dropdownblock",this.clickOutside)}}),Vue.component("v-personal-info",{template:'\n\t<section class="v-personal-info personal-info flc">\n\n\n\t\t<div class="personal-info__main">\n\n\n\t\t\t<h4 class="personal-info__heading" v-if="localPerson.company">\n\t\t\t\t{{localPerson.company}}\n\t\t\t</h4> \n\t\t\t<h4 class="personal-info__heading" v-else>\n\t\t\t\t{{localPerson.surname}} {{localPerson.name}} {{localPerson.patronymic}}\n\t\t\t</h4>\n\t\t\t<div v-if="localPerson.contract">\n\t\t\t\t{{getMessage(\'CONTRACT\')}} № {{localPerson.contract}}\n\t\t\t</div>\n\t\t\t<div class="personal-info__item-grid" v-if="mode === \'onecol\'">\n\n\t\t\t\t<div class="personal-info__item-col personal-info__item-col--wide" >\n\n\t\t\t\t\t<div class="personal-info__item flc"  v-for="row in localPerson.personalData">\n\t\t\t\t\t\t<div class="personal-info__name personal-info__name--narrow">\n\t\t\t\t\t\t\t{{row.name}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if="row.value" class="personal-info__text personal-info__text--wide text-guide" v-html="row.value"></div>\n\t\t\t\t\t\t<div v-else class="personal-info__text personal-info__text--gray">—</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="personal-info__item-grid" v-else>\n\t\t\t\t<div class="personal-info__item-col" v-for="rows in localPerson.personalData">\n\n\t\t\t\t\t<div class="personal-info__item flc" v-for="row in rows">\n\t\t\t\t\t\t<div class="personal-info__name">\n\t\t\t\t\t\t\t{{row.name}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if="row.value" class="personal-info__text" v-html="row.value"></div>\n\t\t\t\t\t\t<div v-else class="personal-info__text personal-info__text--gray">—</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t</div>\n\n\t\t\t</div>\n\n\t\t\t<div class="personal-info__actions">\n\t\t\t\t<button type="button" class="personal-info__action-btn btn btn--primary flc  js-open-modal" \n\t\t\t\t\t\tdata-modal-url="/personal/edit_profile.php"\n\t\t\t\t\t\tdata-modal-data=\'{ \n\t\t\t\t\t\t"className": "modal--lg modal--form", \n\t\t\t\t\t\t"ownHistory": false\n\t\t\t\t\t\t}\'>\n\t\t\t\t\t{{getMessage("EDIT")}} <span class="hidden-3xs">{{getMessage(\'INFORMATIONS\')}}</span>\n\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</button>\n\t\t\t\t<div class="personal-info__action-link flc" >\n\t\t\t\t\t<span  class="arrow-link  js-open-modal" \n\t\t\t\t\t\t   data-modal-url="/personal/set_password.php"\n\t\t\t\t\t\t   data-modal-data=\'{ \n\t\t\t\t\t\t   "className": "modal
1--lg modal--form", \n\t\t\t\t\t\t   "ownHistory": true\n\t\t\t\t\t\t   }\'>{{getMessage(\'CHANGE_PASSWORD\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<slot name="personalAside"></slot> \n\n\n\n\n\t</section>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{loading:!1,localPerson:null}},props:{staticDataSource:{default:null},bxajaxid:{default:null},mode:{type:String,default:"regular"}},methods:{openPasswordForm:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--article",remoteDataSource:"/local/dist/markup/fixtures/password-form.json",ownHistory:!0})},openPersonalForm:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--article",remoteDataSource:"/local/dist/markup/fixtures/personal-form.json",ownHistory:!0})},openPersonalFormServiceCenter:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--article",remoteDataSource:"/local/dist/markup/fixtures/personal-form-2.json",ownHistory:!0})},loadUserData:function(){var e=this;e.loading||(e.loading=!0,$.ajax({url:e.localPerson.remote,method:"post",dataType:"json",data:{bxajaxid:e.bxajaxid}}).done(function(t){console.log("user data loaded",t),0}).fail(function(t){console.warn("user data failed",t)}).always(function(t){t&&t.person&&(e.localPerson=t.person),e.loading=!1,e.$forceUpdate()}))}},created:function(){this.staticDataSource&&(this.localPerson=this.staticDataSource.person),Model.$on("updateUserData",this.loadUserData)}}),Vue.component("v-personal-orders",{template:'\n\t<div class="v-personal-orders order-list">\n\n\t\t\x3c!-- Todo integrate this --\x3e\n\t\t<section class="order-list__banner hero-banner-section flc">\n\t\t\t<div class="hero-banner hero-banner--left hero-banner--small hero-banner--wide-bg flc" style="background-image: url(\'/local/images/markup-images/banners/hero-banner-7.jpg\');">\n\t\t\t\t<div class="hero-banner__image hero-banner__image--visible-xs" style="background-image: url(\'/local/images/markup-images/banners/hero-banner-7.jpg\');"></div>\n\t\t\t\t<div class="hero-banner__main">\n\t\t\t\t\t<div class="hero-banner__animation">\n\t\t\t\t\t\t<h3 class="section-title section-title--indent flc">\n\t\t\t\t\t\t\tРегистрация<br>\n\t\t\t\t\t\t\tпродукта\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<div class="section-descr section-descr--large flc">\n\t\t\t\t\t\t\tРегистрируя продукт вы получаете дополнительную гарантию. Удобный доступ ко всем документам и матриалам по ашему продукту.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<hr class="section-separator flc">\n\t\t\t\t\t\t<div class="section-action flc">\n\t\t\t\t\t\t\t<a href="#" class="arrow-link">Зачем это нужно?<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button type="button" class="btn btn--primary hero-banner__button flc js-open-modal"\n\t\t\t\t\t\t\t\t\t\tdata-modal-url="/local/dist/markup/register_product.html"\n\t\t\t\t\t\t\t\t\t\tdata-modal-data=\'{ \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t"className": "modal--lg modal--form", \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t"ownHistory": false\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\' >\n\t\t\t\t\t\t\tЗарегистрировать <span class="hidden-2xs">Продукт</span>\n\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t\n\t\t<template v-if="catalog && catalog.items">\n\t\t\t<v-order :static-data-source="{\'catalog\': catalog}"></v-order>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<div class="order-list__attention">\n\t\t\t\t<div class="attention attention--no-border">\n\t\t\t\t\t<svg class="svg-icon attention__ico-attention">\n\t\t\t\t\t<use xlink:href="#svg-icon-attention"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t\t<span class="attention__attention-text">\n\t\t\t\t\t\t{{catalog.attention}}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t</div>\n',data:function(){return{catalog:{items:null},loading:!1,loadingMinTimeout:null}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},methods:{registerProduct:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--article",remoteDataSource:"/local/dist/markup/fixtures/register-product.json",ownHistory:!0})},loadCatalog:function(t){function e(){a&&(n.catalog=a.catalog),n.loadingMinTimeout=null,n.loading=!1,n.isGeolocationChanged&&(n.isGeolocationChanged=!1,n.loadCatalog())}var n=this,a=null,i=!1;n.loading||(n.loading=!0,window.vHeaderFilter&&window.vHeaderFilter.$emit("set-loading",!0),t||(n.loadingMinTimeout=setTimeout(function(){i&&e(),n.loadingMinTimeout=null},300)),$.ajax({url:n.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{bxajaxid:n.bxajaxid}}).done(function(t){console.log("v-personal-ordersloaded",t),a=t}).fail(function(t){console.warn("v-personal-orders load failed",t)}).always(function(){i=!0,n.loadingMinTimeout&&!t||e()}))}},created:function(){this.staticDataSource&&(console.log("v-personal-orders loaded from static data",this.catalog),this.catalog=this.staticDataSource.catalog)}}),Vue.component("v-personal",{template:'\n\t<section class="v-personal personal">\n\t\t<div class="container">\n\t\t\t<header class="personal__header section-header flc">\n\t\t\t\t<div class="section-header__main">\n\t\t\t\t\t<h3 class="section-header__title flc">Личный кабинет</h3>\n\t\t\t\t</div>\n\t\t\t\t<div class="section-header__aside">\n\t\t\t\t\t<div class="tab-labels">\n\t\t\t\t\t\t<div class="tab-labels__row">\n\n\t\t\t\t\t\t\t\x3c!--1--\x3e\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'order-list\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'order-list\'}" @click="currentTab = \'order-list\'">Мои продукты</button>\n\t\t\t\t\t\t\t</div>
1\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'applications-query-sc\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'applications-query-sc\'}" @click="currentTab = \'applications-query-sc\'">Очередь</button>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\x3c!--2--\x3e\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'applications-query\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'applications-query\'}" @click="currentTab = \'applications-query\'">Заявки на ремонт</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'applications\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'applications\'}" @click="currentTab = \'applications\'">Заявки</button>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\x3c!--3--\x3e\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'profile\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'profile\'}" @click="currentTab = \'profile\'">Профиль</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'faq\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'faq\'}" @click="currentTab = \'faq\'">Вопросы и ответы</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\x3c!--4--\x3e\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'documents\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'documents\'}" @click="currentTab = \'documents\'">Документы</button>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\x3c!--5--\x3e\n\t\t\t\t\t\t\t<div class="tab-labels__item" v-if="$slots[\'profile-sc\']">\n\t\t\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': currentTab == \'profile-sc\'}" @click="currentTab = \'profile-sc\'">Профиль</button>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</header>\n\n\t\t\t\x3c!--1--\x3e\n\t\t\t<div class="personal__content" v-if="currentTab == \'order-list\'">\n\t\t\t\t<slot name="order-list"></slot>\n\t\t\t</div>\n\t\t\t<div class="personal__content" v-if="currentTab == \'applications-query-sc\'">\n\t\t\t\t<slot name="applications-query-sc"></slot>\n\t\t\t</div>\n\n\t\t\t\x3c!--2--\x3e\n\t\t\t<div class="personal__content" v-if="currentTab == \'applications-query\'">\n\t\t\t\t<slot name="applications-query"></slot>\n\t\t\t</div>\n\t\t\t<div class="personal__content" v-if="currentTab == \'applications\'">\n\t\t\t\t<slot name="applications"></slot>\n\t\t\t</div>\n\n\t\t\t\x3c!--3--\x3e\n\t\t\t<div class="personal__content" v-if="currentTab == \'profile\'">\n\t\t\t\t<slot name="profile"></slot>\n\t\t\t</div>\n\t\t\t<div class="personal__content" v-if="currentTab == \'faq\'">\n\t\t\t\t<slot name="faq"></slot>\n\t\t\t</div>\n\n\t\t\t\x3c!--4--\x3e\n\t\t\t<div class="personal__content" v-if="currentTab == \'documents\'">\n\t\t\t\t<slot name="documents"></slot>\n\t\t\t</div>\n\n\t\t\t\x3c!--5--\x3e\n\t\t\t<div class="personal__content" v-if="currentTab == \'profile-sc\'">\n\t\t\t\t<slot name="profile-sc"></slot>\n\t\t\t</div>\n\n\t\t</div>\n\t</section>\n',data:function(){return{currentTab:null}},props:{initialTab:{default:null}},created:function(){this.currentTab=this.initialTab||Object.keys(this.$slots)[0]},mounted:function(){var t=this;t.$root.$on("go-to-applications-tab",function(){t.currentTab="applications"}),t.$root.$on("go-to-faq-tab",function(){t.currentTab="faq"})}}),Vue.component("v-photo-input",{template:'\n\t<div class="v-photo-input photo-input flc" :class="{\'photo-input--narrow\': mode ===\'service-center\'}">\n\n\t\t<div class="photo-input__main">\n\t\t\t<transition name="content-fade">\n\t\t\t\t<button type="button" class="photo-input__remove" v-if="image" @click="remove(localFiles[0])">\n\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-close"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</button>\n\t\t\t</transition>\n\t\t\t\n\t\t\t<template v-if="mode ===\'service-center\'">\n\t\t\t\t<label class="photo-input__box photo-input__box--alt"\n\t\t\t\t\t\t\t :class="{\'photo-input__box--no-border\': image}"\n\t\t\t\t\t\t\t tabindex="0" @keypress.enter="$refs.input.click()">\n\t\t\t\t\t<input ref="input" type="file" class="photo-input__input" @change="fileInput" :key="rerenderKey">\n\t\t\t\t\t<span class="photo-input__btn">\n\t\t\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t\t\t<span class="photo-input__placeholder" v-if="!image" style="background-image: url(/local/images/markup-images/banners/avatar-empty-sc.jpg)">\n\t\t\t\t\t\t\t\t<span class="photo-input__placeholder-text photo-input__placeholder-text--pushed">{{label || getMessage(\'LOAD_PHOTO_SC\')}}</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class="photo-input__placeholder photo-input__placeholder--bg-cover" v-else :style="\'background-image: url(\' + image 
1+ \')\'"></span>\n\t\t\t\t\t\t</transition>\n\t\t\t\t\t</span>\n\t\t\t\t</label>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<label class="photo-input__box" tabindex="0" @keypress.enter="$refs.input.click()">\n\t\t\t\t\t<input ref="input" type="file" class="photo-input__input" @change="fileInput" :key="rerenderKey">\n\t\t\t\t\t<span class="photo-input__btn">\n\t\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t\t<span class="photo-input__placeholder" v-if="!image">\n\t\t\t\t\t\t\t<span class="photo-input__placeholder-icon">\n\t\t\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-photo"></use>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class="photo-input__placeholder-text">{{label || getMessage(\'LOAD_PHOTO\')}}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<img :src="image" alt="" v-else>\n\t\t\t\t\t</transition>\n\t\t\t\t</span>\n\t\t\t\t</label>\n\t\t\t</template>\n\n\t\t</div>\n\t\t<div class="photo-input__note flc">{{note}}</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{localValue:null,image:null,localFiles:[],rerenderKey:0}},props:{value:{default:null},multiple:{type:Boolean,default:!1},note:{default:null},mode:{default:"regular"},files:{default:null},label:{default:null}},watch:{value:function(){this.initLocalValueFromValue()}},methods:{getKey:function(){return Date.now().toString()+Math.round(1e5*Math.random())},fileInput:function(n){var a=this,i=this,s=i.getKey();this.localFiles.length&&this.remove(this.localFiles[0],!0),Vue.nextTick(function(){if(n.target.files&&n.target.files.length){console.log("file input",n.target.files,n.target.files[0]);for(var t,e=0;e<n.target.files.length;e++)i.localFiles.push({name:n.target.files[e].name,size:n.target.files[e].size,key:s});FileReader&&((t=new FileReader).onload=function(){i.image=t.result},t.readAsDataURL(n.target.files[0])),n.key=s,a.$emit("fileinput",n)}}),i.rerenderKey=i.getKey(),i.$forceUpdate()},remove:function(t,e){this.image=null,this.localFiles=[],t.nosubmit=!!e,this.$emit("fileremove",t)},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},initLocalValueFromValue:function(t){var n=this;t&&n.files&&n.files.length&&(n.image=n.files[0].image||null,n.localFiles=[],_.each(n.files,function(t){var e=n.getKey();n.localFiles.push({name:t.name,size:t.size,key:e}),n.$emit("fileinput",{key:e,target:{files:[t]}})}))}},created:function(){this.initLocalValueFromValue(!0)}}),Vue.component("v-price",{template:'\n\t<div class="v-price price" :class="\'price--\' + size">\n\t\t<span class="price__group" v-for="(priceItem, key) in price"\n\t\t      :class="{\'price__group--old\': key === \'old\', \'price__group--retail\': key === \'retail\'}" itemprop="price">\n\t\t\t<span class="price__note" v-if="!priceItem.single">{{getMessage(\'FROM_2\')}}&nbsp;</span>\n\t\t\t<span class="price__value" v-if="typeof priceItem.value === \'number\'">\n\t\t\t\t<span class="price__value-main">{{priceItem.value | priceMain}},</span><span class="price__value-sup">{{priceItem.value | priceSup}}</span>\n\t\t\t</span>\n\t\t\t<span class="price__currency" v-if="priceItem.currency">&nbsp;{{priceItem.currency}}</span>\n\t\t</span>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],props:{price:{required:!0},size:{default:"md"}}}),Vue.component("v-product-grid",{template:'\n\t<div class="v-product-grid product-grid">\n\t\t<transition-group name="flip-list" tag="div" class="product-grid__grid grid" v-if="items && items.length">\n\t\t\t<div class="product-grid__item col" v-for="item, index in items" :key="item.id || index" itemprop="itemListElement">\n\t\t\t\t<v-product template="grid" :product="item"></v-product>\n\t\t\t\t<meta itemprop="position" :content="index + 1" />\n\t\t\t</div>\n\t\t</transition-group>\n\t</div>\n',props:{items:{default:null}}}),Vue.component("v-product-request-list",{template:'\n\t<div class="v-product-request-list personal-applications">\n\t\t<div class="personal-applications__table repair-table">\n\n\n\t\t\t<div class="personal-applications__row list-status__row list-status__row--center">\n\t\t\t\t<div class="list-status__cell-meta list-status__cell-meta--alt">\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<div class="status-value" v-if="state.pages.count">\n\t\t\t\t\t\t\t{{getMessage(\'SHOWED\')}}  \n\t\t\t\t\t\t\t<span class="status-value__value">{{state.pages.limit+ state.pages.offset >=  state.pages.count?state.pages.count : state.pages.limit+ state.pages.offset}}</span>\n\t\t\t\t\t\t\t<span v-if="state.pages.count">  {{getMessage(\'OF\')}}  {{state.pages.count}}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t<template v-if="!state.filter.emptyFilter || catalog.items">\n\t\t\t\t\t<div v-if="catalog.mode === \'admin\'" class="list-status__cell-search">\n\t\t\t\t\t\t<v-field v-model="state.filter.name" type="search"  :placeholder="getMessage(\'ENTER_ORDER_FILTER\')" @input
1="stateChangedTimer" ></v-field>\n\t\t\t\t\t\t<button type="button" class="list-status__cell-search-btn">\n\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-search"></use></svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="list-status__cell-aside list-status__cell-aside--alt">\n\t\t\t\t\t\t<div class="list-status__selector list-status__selector--margin list-status__selector--input">\n\t\t\t\t\t\t\t<v-field\n\t\t\t\t\t\t\t\ttype="date"\n\t\t\t\t\t\t\t\tv-model="state.filter.date" \n\t\t\t\t\t\t\t\t@input="stateChanged"\n\t\t\t\t\t\t\t\tsmall>\n\n\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\x3c!--:label="getMessage(\'DATE_FILTER_NAME\')" \n\t\t\t\t\t\t"--\x3e\n\t\t\t\t\t\t<div class="list-status__selector list-status__selector--margin">\n\t\t\t\t\t\t\t<v-field \n\t\t\t\t\t\t\t\tv-if="catalog.statusList" \n\t\t\t\t\t\t\t\ttype="select" \n\t\t\t\t\t\t\t\t:options="catalog.statusList"\n\t\t\t\t\t\t\t\t:placeholder="getMessage(\'STATUS_FILTER_NAME_ALL\')"\n\t\t\t\t\t\t\t\topen-type \n\n\t\t\t\t\t\t\t\tv-model="state.filter.status" \n\t\t\t\t\t\t\t\t@input="stateChanged" \n\t\t\t\t\t\t\t\tsmall>\n\t\t\t\t\t\t\t</v-field>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="list-status__selector list-status__selector--margin">\n\t\t\t\t\t\t\t\x3c!--:label="getMessage(\'STATUS_FILTER_NAME\')" \n\t\t\t\t\t\t\t:placeholder="getMessage(\'STATUS_FILTER_NAME_ALL\')"--\x3e\n\t\t\t\t\t\t\t<v-field \n\t\t\t\t\t\t\t\tv-if="catalog.locationList" \n\t\t\t\t\t\t\t\ttype="select" \n\t\t\t\t\t\t\t\t:options="catalog.locationList" \n\t\t\t\t\t\t\t\topen-type \n\t\t\t\t\t\t\t\tv-model="state.filter.location" \n\t\t\t\t\t\t\t\t@input="stateChanged" \n\t\t\t\t\t\t\t\tsmall>\n\t\t\t\t\t\t\t</v-field>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\x3c!--:placeholder="getMessage(\'LOCATION_FILTER_NAME_ALL\')"\n\t\t\t\t\t\t:label="getMessage(\'LOCATION_FILTER_NAME\')" --\x3e\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t</div>\n\t\t</div>\n\n\n\t\t<table class="repair-table__table flc"  v-if="catalog && catalog.items && catalog.items.length">\n\t\t\t<thead class="repair-table__head">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{{getMessage(\'REPAIR_COL_1\')}}</td>\n\t\t\t\t\t<td>{{getMessage(\'REPAIR_COL_2\')}}</td>\n\t\t\t\t\t<td v-if="catalog.mode === \'service\' || catalog.mode === \'admin\'">{{getMessage(\'REPAIR_COL_3\')}}</td>\n\t\t\t\t\t<td v-else>{{getMessage(\'REPAIR_COL_4\')}}</td>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody class="repair-table__body">\n\t\t\t<template v-for="(item, i) in catalog.items">\n\t\t\t\t<tr  :key=\'item.id\' :class="{\'repair-table__row--no-border\': item.review}">\n\t\t\t\t\t<td class="flc">\n\t\t\t\t\t\t<div class="repair-table__product-meta flc" v-if="item.sku || item.series">\n\t\t\t\t\t\t\t{{item.sku}} <template v-if="item.sku && item.series"> / </template> <template v-if="item.series">Серия {{item.series}}</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="repair-table__name flc">\n\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="repair-table__captions">\n\t\t\t\t\t\t\t<div class="repair-table__caption" v-for="param in item.data">\n\t\t\t\t\t\t\t\t{{param.name}}: {{param.text}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class="flc">\n\t\t\t\t\t\t<div class="repair-table__descr flc" v-html="item.descr"></div>\n\n\n\t\t\t\t\t\t<div v-if="item.hintText" class="repair-table__caption repair-table__caption--black flc">\n\t\t\t\t\t\t\t{{item.hintText}}\n\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t<div v-if="item.comment" class="repair-table__history js-message-toggler flc">\n\t\t\t\t\t\t\t<a class="repair-table__history-btn flc" @click.prevent="toggleComment($event, i)">\n\t\t\t\t\t\t\t\t{{getMessage(\'COMMENT\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t<ul v-for="str in item.comment">\n\t\t\t\t\t\t\t\t\t<li>{{str}}</li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="item.selfEdit" class="repair-table__action flc">\n\t\t\t\t\t\t\t<button  \n\t\t\t\t\t\t\t\ttype="button" \n\t\t\t\t\t\t\t\[email protected]="messagePopupOpen(item)"\n\t\t\t\t\t\t\t\tclass="repair-table__button btn btn--primary btn--short flc">\n\t\t\t\t\t\t\t\t{{getMessage(\'SEND_MESSAGE\')}}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div> \n\n\n\t\t\t\t\t\t<div class="repair-table__files" v-if="item.files">\n\t\t\t\t\t\t\t<a v-for="(file, i) in item.files" :key="i" class="repair-table__file-link flc" :href="file.link" download>\n\t\t\t\t\t\t\t\t{{file.filename}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class="flc">\n\n\n\t\t\t\t\t\t<div v-if="catalog.mode === \'new\' && item.userLocation" class="repair-table__contacts">\n\t\t\t\t\t\t\t<div class="repair-table__contacts-text flc">\n\t\t\t\t\t\t\t\t{{item.userLocation}}\n\t\t\t\t\t\t\t\t<span class="inline-tooltip-wrap" aria-label="Подсказка">\n\t\t\t\t\t\t\t\t\t<span class="inline-tooltip dropdown-owner js-dropdown">\n\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position" style="left: -262.266px;">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'FULL_SERVICE_CONTACT_NOTIFY\')}}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t<div v-if="catalog.mode === \'service\' ||  catalog.mode === \'admin\' "  class="repair-table__contacts">\n\t\t\t\t\t\t\t<span v-if="item.userLocation">{{item.userLocation}}<br></span>\n\t\t\t\t\t\t\t<span v-if="item.userAddress">{{item.userAddress}}<br></span>\n\t\t\t\t\t\t\t<span v-if="item.userFulName">{{item.userFulName}}<br></span>\n\t\t\t\t\t\t\t<span v-if="item.userPhones" v-html="item.userPhones"></span>\n\n\t\t\t\t\t\t</div> \n\n\t\t\t\t\t\t<template>\n\n\t\t\t\t\t\t\t<div class="repair-table__name flc"  v-if="item.serviceName">{{item.serviceName}}</div>\n\t\t\t\t\t\t\t<span v-if="item.serviceLocation">{{item.serviceLocation}}<br></span>\n\n\t\t\t\t\t\t\t<span v-if="item.serviceAddress">{{item.serviceAddress}}<br></span>\n\n\t\t\t\t\t\t\t<span v-if="item.servicePhones" v-html="item.servicePhones"></span>\n\n\n\t\t\t\t\t\t\t<div class="repair-table__status flc">\n\t\t\t\t\t\t\t\t<div class="repair-table__status-text" :class="{\'repair-table__status-text--disabled\': item.isCompleted}">\n\t\t\t\t\t\t\t\t\t {{item.statusText}}  &nbsp; \x3c!-- to keep height if statusText is empty --\x3e\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>
1\n\n\t\t\t\t\t\t<div class="repair-table__caption flc">\n\t\t\t\t\t\t\t{{item.requestDate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="item.serviceHistory" class="repair-table__history js-message-toggler flc">\n\t\t\t\t\t\t\t<a class="repair-table__history-btn flc" @click.prevent="toggleHistory($event, i)">\n\t\t\t\t\t\t\t\t{{getMessage(\'SERVICE_HISTORY\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t<ul v-for="str in item.serviceHistory">\n\t\t\t\t\t\t\t\t\t<li>{{str}}</li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-close js-dropdown-close"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="item.canceSelflForm" class="repair-table__link-action js-message-toggler flc">\n\t\t\t\t\t\t\t<a class="repair-table__cancel arrow-link" @click.prevent="toggleCancelForm($event, i)">\n\t\t\t\t\t\t\t\t{{getMessage(\'CANCEL\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<div class="repair-table__dropdown js-dropdown-block">\n\t\t\t\t\t\t\t\t<span>{{getMessage(\'CANCEL_ORDER_CONFIRM\')}}</span>\n\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-actions flc">\n\t\t\t\t\t\t\t\t\t<div class="repair-table__dropdown-actions-grid">\n\t\t\t\t\t\t\t\t\t\t<button type="submit" class="repair-table__button btn btn--primary"  @click="cancelSelfClaim(item)">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'YES\')}}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t<button type="button" class="repair-table__button repair-table__button--margin btn btn--primary js-dropdown-close">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'NO\')}}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="item.serviceEdit && !item.adminEdit" class="repair-table__link-action flc">\n\t\t\t\t\t\t\t<a class="repair-table__cancel arrow-link" @click.prevent="cancelPopupOpen(item)">\n\t\t\t\t\t\t\t\t{{getMessage(\'CANCEL_ORDER\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="item.serviceEdit" class="repair-table__link-action flc">\n\t\t\t\t\t\t\t<a class="repair-table__cancel arrow-link" @click.prevent="statusPopupOpen(item)">\n\t\t\t\t\t\t\t\t{{getMessage(\'EDIT_STATUS_ORDER\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div class="repair-table__link-action flc">\n\t\t\t\t\t\t\t<a class="repair-table__cancel arrow-link" @click.prevent="messagePopupOpen(item)">\n\t\t\t\t\t\t\t\t{{getMessage(\'SEND_MESSAGE\')}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if="item.adminEdit" class="repair-table__action flc">\n\t\t\t\t\t\t\t<button v-if="item.adminEdit" \n\t\t\t\t\t\t\t\t\ttype="button" \n\t\t\t\t\t\t\t\t\[email protected]="changeServicePopupOpen(item)"\n\t\t\t\t\t\t\t\t\tclass="repair-table__button btn btn--primary btn--short flc">\n\t\t\t\t\t\t\t\t{{!item.serviceName ? getMessage(\'SET_EXECUTOR\'): getMessage(\'CHANGE_EXECUTOR\')}}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t<div v-if="item.getToWork" class="repair-table__action flc">\n\t\t\t\t\t\t\t<button  @click.prevent="getToWork(item)"  type="button" class="repair-table__button btn btn--primary btn--short flc ">\n\t\t\t\t\t\t\t\t{{getMessage(\'GET_ORDER\')}}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t<div v-if="item.reviewAddLink || item.anketAddLink" class="repair-table__action flc">\n\t\t\t\t\t\t\t<div class="repair-table__action-grid">\n\t\t\t\t\t\t\t\t<div class="repair-table__action-col" v-if="item.anketAddLink">\n\t\t\t\t\t\t\t\t\t<button  type="button" class="repair-table__button btn btn--primary btn--short flc js-open-modal"\n\t\t\t\t\t\t\t\t\t\t\t :data-modal-url="item.anketAddLink"\n\t\t\t\t\t\t\t\t\t\t\t data-modal-data=\'{"className": "modal--lg modal--form", "ownHistory": false}\'>\n\t\t\t\t\t\t\t\t\t\t{{getMessage(\'SEND_ANKET\')}}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="repair-table__action-col"  v-if="item.reviewAddLink">\n\t\t\t\t\t\t\t\t\t<button  type="button" class="repair-table__button btn btn--primary btn--short flc js-open-modal"\n\t\t\t\t\t\t\t\t\t\t\t :data-modal-url="item.reviewAddLink" \n\t\t\t\t\t\t\t\t\t\t\t data-modal-data=\'{"className": "modal
1--lg modal--form", "ownHistory": false}\'>\n\t\t\t\t\t\t\t\t\t\t{{getMessage(\'SEND_REVIEW\')}}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\n\n\t\t\t\t\t\t<a v-if="catalog.mode === \'new\' && 0" href="#claims" class="repair-table__arrow-link arrow-link">\n\t\t\t\t\t\t\tСписок заявок\n\t\t\t\t\t\t\t<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t\x3c!--- todo --\x3e \n\t\t\t\t\t\t<a v-if="item.isCompleted && item.leaveFeedback" href="#" class="repair-table__arrow-link arrow-link" @click.prevent="leaveFeedback">Оставить отзыв<span class="arrow-link__tail">&nbsp;&nbsp;<svg\n\t\t\t\t\t\t\t\t\tclass="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\n\t\t\t\t\t\t\x3c!--- todo --\x3e\n\t\t\t\t\t</template>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr v-if="item.reviews">\n\t\t\t\t<td colspan="3" class="repair-table__review-cell">\n\t\t\t\t\t<template v-for="review in item.reviews">\n\t\t\t\t\t\t<v-review-item :review="review" mode="tablerow"></v-review-item>\n\t\t\t\t\t</template>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</template>\n\t\t</tbody>\n\t</table>\n\t<template v-else>\n\t\t<div class="personal-applications__attention attention attention--no-border">\n\t\t\t<svg class="svg-icon attention__ico-attention">\n\t\t\t<use xlink:href="#svg-icon-attention"></use>\n\t\t\t</svg>\n\t\t\t<span class="attention__attention-text" v-html="catalog.attention?catalog.attention:getMessage(\'EMPTY_ORDER_NOTIFICATION\')"></span>\n\t\t</div>\n\t</template> \n\n\t<transition name="content-fade">\n\t\t<v-page-nav class="personal-applications__navigation catalog__navigation" :static-data-source="state.pages" \n\t\t\t\t\tv-if="state.pages && parseInt(state.pages.count) && parseInt(state.pages.count) > parseInt(state.pages.limit)"\n\t\t\t\t\t@navigate="navigateByPage"></v-page-nav>\n\t</transition>\n\n</div>\n</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{updateClaimList:!1,catalog:{filters:null,items:null},state:{filter:{name:null,status:null,location:null,date:null},pages:{offset:null,limit:null}},open:!1,historyState:[],commentState:[],refuseFormState:[],executorFormState:[],cancelFormState:[],loading:!1,loadingMinTimeout:null,filterIsChanged:!1,changedFilters:null,isInitialState:!0,stateTimer:null}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null},noHistory:{type:Boolean,default:!1}},methods:{updateOtherClaimsList:function(){Model.$emit("update-claim-list",this.bxajaxid),this.updateClaimList=!1},changeServicePopupOpen:function(t){t="/personal/repair_form_change_service.php?APPKEY="+t.appkey;window.modalController.close(),window.modalController.openUrl(t,{className:"modal--lg modal--form",ownHistory:!1})},statusPopupOpen:function(t){t="/personal/repair_form_change_status.php?APPKEY="+t.appkey;window.modalController.close(),window.modalController.openUrl(t,{className:"modal--lg modal--form",ownHistory:!1,props:{frame:!0}})},cancelPopupOpen:function(t){t="/personal/repair_form_cancel.php?APPKEY="+t.appkey;window.modalController.close(),window.modalController.openUrl(t,{className:"modal--lg modal--form",ownHistory:!1,props:{frame:!0}})},messagePopupOpen:function(t){t="/personal/repair_form_send_message.php?APPKEY="+t.appkey;window.modalController.close(),window.modalController.openUrl(t,{className:"modal--lg modal--form",ownHistory:!1,props:{frame:!0}})},getToWork:function(t){this.updateClaimList=!0,this.loadCatalog({action:"get_to_work",element_id:t.id})},cancelSelfClaim:function(t){this.updateClaimList=!0,this.loadCatalog({action:"cancel_self_claim",element_id:t.id})},pushState:function(){"localhost"==window.location.hostname||this.noHistory||window.history[this.isInitialState?"replaceState":"pushState"]({component:"v-product-request-list",state:this.state,catalog:this.catalog},"",this.catalog.remote)},stateChangedTimer:function(){clearTimeout(this.stateTimer),this.stateTimer=setTimeout(this.stateChanged,500)},stateChanged:function(){this.loadCatalog()},navigateByPage:function(t){this.state.pages.offset=t.offset,this.state.pages.limit=t.limit,this.loadCatalog()},clickOutside:function(n){var t=document.querySelectorAll(".js-message-toggler");Array.prototype.forEach.call(t,function(t){var e=t.querySelector(".js-dropdown-close");(n.target===e||t&&!t.contains(n.target)&&t.querySelector(".repair-table__dropdown--shown"))&&t.querySelector(".repair-table__dropdown--shown").classList.remove("repair-table__dropdown--shown")})},toggleHistory:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.historyState[e]=!this.historyState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleComment:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.commentState[e]=!this.commentState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleRefuseForm:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.refuseFormState[e]=!this.refuseFormState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleExecutorForm:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.executorFormState[e]=!this.executorFormState[e],$(t).toggleClass("repair-table__dropdown--shown")},toggleCancelForm:function(t,e){t=t.target.parentNode.querySelector(".js-dropdown-block");this.cancelFormState[e]=!this.cancelFormState[e],$(t).toggleClass("repair-table__dropdown--shown")},leaveFeedback:function(){modalController.open({component:"v-rich-form",className:"modal--lg modal--article",remoteDataSource:"/local/dist/markup/fixtures/leave-feedback-form.json",ownHistory:!0,props:{frame:!0}})},loadCatalog:function(t){function e(){n.loadingMinTimeout=null,n.loading=!1}var n=this,a=((t=t||{}).bxajaxid=n.bxajaxid,t.state=n.state,!1);n.loading||(n.loading=!0,n.loadingMinTimeout=setTimeout(function(){a&&e(),n.loadingMinTimeout=null},300),$.ajax({url:n.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:t}).done(function(t){console.log("v-product-request-list loaded",t),n.catalog=t.catalog,n.state=t.state,n.updateClaimList&&n.updateOtherClaimsList()}).fail(function(t){console.warn("v-product-request-list load failed",t)}).always(function(){a=!0,n.loadingMinTimeout||e()}))}},created:function(){var e=this;if(Model.$on("update-claim-list",function(t){t!=e.bxajaxid&&e.loadCatalog()}),setInterval(e.updateOtherClaimsList,3e4),e.staticDataSource){if(console.log("v-product-request-list loaded from static data",e.catalog),e.state=e.staticDataSource.state,e.staticDataSource.catalog&&e.staticDataSource.catalog.items&&0<e.staticDataSource.catalog.items.length){e.catalog=e.staticDataSource.catalog;for(var t=0;t<e.staticDataSource.catalog.items.length;t++)e.historyState.push(e.staticDataSource.catalog.items[t].isHistoryShown),e.commentState.push(e.staticDataSource.catalog.items[t].isCommentShown),e.commentState.push(e.staticDataSource.catalog.items[t].isRefuseFormShown),e.commentState.push(e.staticDataSource.catalog.items[t].isExecutorFormShown);$(document).on("click.dropdownblock",this.clickOutside)}e.pushState()}else e.remoteDataSource&&(e.catalog.remote=e.remoteDataSource,e.loadCatalog())},destroyed:function(){this.catalog&&this.catalog.items&&0<this.catalog.items.length&&$(document).off("
1click.dropdownblock",this.clickOutside)}}),Vue.component("v-product-review-item",{template:'\n\t<div class="v-product-review-item product-review-item flc">\n\t\t<div class="product-review-item__header">\n\t\t\t<div class="product-review-item__author">\n\t\t\t\t<div class="product-review-item__avatar">\n\t\t\t\t\t<img v-if="review.avatar" :src="review.avatar" loading="lazy" decoding="async" width="40" height="40" alt="" title="">\n\t\t\t\t\t<svg v-else class="svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-avatar"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t\t<div class="product-review-item__author-info">\n\t\t\t\t\t<div class="product-review-item__name">\n\t\t\t\t\t\t{{ review.name }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<time v-if="review.date" :datetime="review.date.datetime" class="product-review-item__date">{{ review.date.text }}</time>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if="review.rating" class="product-review-item__meta">\n\t\t\t\t<div class="product-review-item__rating">\n\t\t\t\t\t{{ review.rating.value }}\n\t\t\t\t\t<v-rating v-if="Number.isInteger(review.rating.value)" v-model="review.rating.value" :field="ratingField"></v-rating>\n\t\t\t\t</div>\n\t\t\t\t<a v-if="review.rating.source" class="product-review-item__source" :href="review.rating.source.link">\n\t\t\t\t\t<img v-if="review.rating.source.logo" :src="review.rating.source.logo" loading="lazy" decoding="async" width="" height="" alt="" title="">\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if="review.images && review.images.length" class="product-review-item__images">\n\t\t\t<template v-for="(item, index) in review.images">\n\t\t\t\t<div v-if="index <= 3" class="product-review-item__images-item">\n\t\t\t\t\t<button class="product-review-item__img" type="button" aria-label="" title="" @click="openGallery({mode: \'image\', initialIndex: index})">\n\t\t\t\t\t\t<img v-if="item.src" :src="item.src" loading="lazy" decoding="async" width="" height="" alt="" title="">\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class="product-review-item__images-item  hidden-lg  hidden-md  visible-sm  visible-xs">\n\t\t\t\t\t<button class="product-review-item__img" type="button" aria-label="" title="" @click="openGallery({mode: \'image\', initialIndex: index})">\n\t\t\t\t\t\t<img v-if="item.src" :src="item.src" loading="lazy" decoding="async" width="" height="" alt="" title="">\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-if="index === 4" class="product-review-item__images-item  hidden-sm  hidden-xs">\n\t\t\t\t\t<button class="product-review-item__img" type="button" aria-label="" title="" @click="openGallery({mode: \'image\', initialIndex: 0})">\n\t\t\t\t\t\t<img v-if="item.src" :src="item.src" loading="lazy" decoding="async" width="" height="" alt="" title="">\n\t\t\t\t\t\t<span class="product-review-item__all-images">+{{ review.images.length - 4 }}</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t\t<div class="product-review-item__review">\n\t\t\t<p>{{ review.text }}</p>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{ratingField:{value:0}}},props:{review:{default:null}},created:function(){this.ratingField.value=this.review&&this.review.rating&&this.review.rating.value||0},methods:{openGallery:function(t){modalController.open({component:"v-big-gallery",className:"modal--lg modal--gallery",staticDataSource:{images:this.review.images,initialIndex:t.initialIndex}})}}}),Vue.component("v-product-reviews",{template:'\n\t<div v-if="(catalog.items && catalog.items.length) || catalog.remoteForm" class="v-product-reviews product-reviews">\n\t\t<h2 class="product-reviews__headline">{{ getMessage(\'REVIEWS\') }}</h2>\n\t\t<div class="product-reviews__wrapper">\n\t\t\t<div class="product-reviews__main">\n\t\t\t\t<div class="product-reviews__header">\n\t\t\t\t\t<div class="product-reviews__action">\n\t\t\t\t\t\t<div class="switch-btn">\n\t\t\t\t\t\t\t<label class="switch-btn__item">\n\t\t\t\t\t\t\t\t<input class="switch-btn__input" type="radio" name="order" value="date" @change="changeSort">\n\t\t\t\t\t\t\t\t<span class="switch-btn__name">По дате</span>\n\t\t\t\t\t\t\t</label>\n              <label class="switch-btn__item">\n                <input class="switch-btn__input" type="radio" name="order" value="rating" @change="changeSort">
1\n                <span class="switch-btn__name">По рейтингу</span>\n              </label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if="catalog.items.length" class="product-reviews__items">\n\t\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<v-product-review-item v-for="review in catalog.items" :review="review" :key="review.id" class="product-reviews__item"></v-product-review-item>\n\t\t\t\t</div>\n\n\t\t\t\t<div v-else class="product-reviews__empty">\n\t\t\t\t\tНа этот товар пока нет отзывов. Вы можете поделиться вашим мнением первым\n\t\t\t\t</div>\n\n\t\t\t\t<div class="product-reviews__nav">\n\t\t\t\t\t<a v-if="catalog.items && catalog.pages && state.pages.offset + catalog.pages.limit <= catalog.pages.count" class="product-reviews__btn-more btn" @click="showMore">\n\t\t\t\t\t\t{{ getMessage(\'SHOW_MORE\') }}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="product-reviews__aside">\n\t\t\t\t<div class="product-reviews__total-rating">\n\t\t\t\t\t{{ catalog.total.rating | price }}\n\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t<use xlink:href="#svg-icon-rating-star"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t\t<div class="product-reviews__total-count">\n\t\t\t\t\t<template v-if="catalog.pages.count">{{ catalog.pages.count }} отзывов</template>\n\t\t\t\t\t<template v-else>Нет отзывов</template>\n\t\t\t\t</div>\n\t\t\t\t<button v-if="catalog.remoteForm"\n\t\t\t\t        @click="openFormByAjaxID"\n\t\t\t\t        class="btn btn--primary">{{ getMessage(\'SEND_REVIEW\') }}\n\t\t\t\t\t<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{remote:null,pages:{offset:null,limit:null,count:null},items:null,remoteForm:null},state:{pages:{offset:0,limit:2,count:0}},loading:!1,loadingMinTimeout:null}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},methods:{openFormByAjaxID:function(){var t=new Url(this.catalog.remoteForm).query.bxajaxid;modalController.open({component:"v-rich-form",className:"modal--lg modal--form",remoteDataSource:this.catalog.remoteForm,ownHistory:!1,bxajaxid:t,props:{frame:!0}})},loadCatalog:function(t,e){function n(){if(s){var t=i.catalog.items;i.catalog=s.catalog,e&&(i.catalog.items=t.concat(i.catalog.items));try{i.state.pages=s.catalog.pages}catch(t){console.warn("v-reviews: something wrong with state\n",t)}}i.loadingMinTimeout=null,i.loading=!1,i.$forceUpdate()}var a,i=this,s=null,l=!1;i.loading||(i.loading=!0,t||(i.loadingMinTimeout=setTimeout(function(){l&&n(),i.loadingMinTimeout=null},300)),a=_.clone(i.state),$.ajax({url:i.catalog.remote,method:"post",dataType:"json",data:{state:a,bxajaxid:i.bxajaxid}}).done(function(t){console.log("v-reviews loaded",t),console.log("v-rich-form loaded",t);var e=new URLSearchParams(i.catalog.remote).has("api-mode");s=e?t.data:t}).fail(function(t){console.warn("v-reviews load failed",t)}).always(function(){l=!0,i.loadingMinTimeout&&!t||n()}))},showMore:function(){this.state.pages.offset=parseInt(this.state.pages.offset)+parseInt(this.catalog.pages.limit),this.state.offset=this.state.pages.offset,this.state.limit=this.state.pages.limit,this.loadCatalog(!1,!0)},changeSort:function(t){this.state.pages.offset=0,this.state.sort=t.target.value,this.loadCatalog(!1,!1)}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,t.$emit("loaded"),console.log("v-reviews loaded from static data",t.catalog)):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),t.staticDataSource&&t.pushState()}}),Vue.component("v-product-slider",{template:'\n\t<div class="v-product-slider product-slider" :class="{\'product-slider--viewed\': viewed, \'product-slider--not-viewed\': !viewed}">\n\t\t<v-slick class="product-slider__slider slick-default-arrows slick-default-dots" ref="slider" :options="sliderOptions">\n\t\t\t<div class="product-slider__item" v-for="item, index in localItems" :key="item.id || index">\n\t\t\t\t<v-product :template="viewed ? \'viewed\' : \'slide\'" :product="item" :bxajaxid="bxajaxid" @remove="$emit(\'remove\', $event)"></v-product>\n\t\t\t</div>\n\t\t</v-slick>\n\t</div>\n',data:function(){return{localItems:null,sliderOptions:{slidesToShow:7,slidesToScroll:4,arrows:!0,dots:!0,infinite:!1,responsive:[{breakpoint:View.breakpoints["lg-max"],settings:{slidesToShow:6}},{breakpoint:View.breakpoints["md-max"],settings:{slidesToShow:5}},{breakpoint:View.breakpoints["sm-max"],settings:{slidesToShow:4,arrows:!1}
1},{breakpoint:View.breakpoints["xs-max"],settings:{slidesToShow:4,arrows:!1}},{breakpoint:View.breakpoints["2xs-max"],settings:{slidesToShow:3,arrows:!1}},{breakpoint:View.breakpoints["3xs-max"],settings:{slidesToShow:2,arrows:!1}}]}}},props:{items:{default:null},bxajaxid:{default:null},viewed:{type:Boolean,default:!1}},watch:{items:function(){this.localItems=this.items,this.$refs.slider.reSlick()}},created:function(){this.localItems=this.items}}),Vue.component("v-product",{template:'\n\t<div class="v-product product" :class="\'product--\' + template" v-if="product">\n\t\t\n\t\t<template v-if="template === \'basket-item-success\'">\n\t\t\t<div class="product__basket-item">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__basket-item-main">\n\t\t\t\t\t<div v-if="product.name" class="product__basket-item-title">\n\t\t\t\t\t\t{{product.name}}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="product.sku" class="product__basket-item-sku">\n\t\t\t\t\t\t{{product.sku}}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="product.count" class="product__basket-item-count">\n\t\t\t\t\t\tКоличество в заказе: {{product.count}}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__basket-item-counter"></div>\n\t\t\t\t<div class="product__basket-item-total">\n\t\t\t\t\t<v-price :price="product.price" class="price--right"></v-price>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="template === \'basket-item\'">\n\t\t\t<div class="product__basket-item">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__basket-item-main">\n\t\t\t\t\t<div v-if="product.name" class="product__basket-item-title">{{product.name}}</div>\n\t\t\t\t\t<div v-if="product.sku" class="product__basket-item-sku">{{product.sku}}</div>\n\t\t\t\t\t<button @click="$emit(\'remove\', product.id)" \n\t\t\t\t\t        class="product__btn-close" \n\t\t\t\t\t        type="button">\n\t\t\t\t\t\t<svg class="product__btn-close-icon svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-lite-close"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t{{getMessage(\'DELETE\')}}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__basket-item-counter">\n\t\t\t\t\t<v-field\n\t\t\t\t\t\ttype="counter"\n\t\t\t\t\t\tv-model="counterValue"\n\t\t\t\t\t\t@input="changeCounter"\n\t\t\t\t\t\t@basketadd="addOneProductToBasket(product.id)">\n\t\t\t\t\t</v-field>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__basket-item-total">\n\t\t\t\t\t<v-price :price="product.price" class="price--right"></v-price>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="template === \'search-model\'">\n\t\t\t<div class="product__search-model">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__model">\n\t\t\t\t\t<div class="product__image-wrap">\n\t\t\t\t\t\t<img class="product__small-image" :src="product.image" alt="">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__model-sku" v-html="highlightQueryInText(product.sku)"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="template === \'search-detail\'">\n\t\t\t<div class="product__detail-list-item">\n\t\t\t\t<div class="product__detail-info product__detail-info--static">\n\t\t\t\t\t<a :href="product.link" class="product__detail-product-link"></a>\n\t\t\t\t\t<div v-if="product.sku" \n\t\t\t\t\t\t\t class="product__detail-name" \n\t\t\t\t\t\t\t v-html="highlightQueryInText(product.sku)">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="product.name" \n\t\t\t\t\t\t\t class="product__detail-sku" \n\t\t\t\t\t\t\t v-html="highlightQueryInText(product.name)">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__detail-text">\n\t\t\t\t\t\t{{product.descr}}\n\t\t\t\t\t</div>\n\t\t\t\t\t<a :href="product.linkMore" v-if="product.linkMore" \n\t\t\t\t\t\t class="product__detail-link-more">\n\t\t\t\t\t\t{{product.linkMoreText}}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__detail-price">\n\t\t\t\t\t<v-price :price="product.price" size="small"></v-price>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__detail-counter">\n\t\t\t\t\t<v-field\n\t\t\t\t\t\ttype="basket-counter"\n\t\t\t\t\t\tv-model="counterValue"\n\t\t\t\t\t\t@input="changeCounter"\n\t\t\t\t\t\t@basketadd="addOneProductToBasket(product.id)">\n\t\t\t\t\t</v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="template === \'detail\'">\n\t\t\t<div class="product__detail-list-item">\n\t\t\t\t<button v-if="product.description" \n\t\t\t\t\t\t\t\tclass="product__detail-list-btn" \n\t\t\t\t\t\t\t\t@click="showDescription = !showDescription" \n\t\t\t\t\t\t\t\ttype="button" \n\t\t\t\t\t\t\t\taria-label="Развернуть">\n\t\t\t\t</button>\n\t\t\t\t<div v-if="product.num" class="product__detail-num">\n\t\t\t\t\t{{product.num}}\n\t\t\t\t</div>\n\t\t\t\t<div class="product__detail-info">\n\t\t\t\t\t<div v-if="product.name" class="product__detail-name" \n\t\t\t\t\t\t\t v-html="view === \'search-name\' ? highlightQueryInText(product.name) : product.name">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="product.sku" class="product__detail-sku" \n\t\t\t\t\t\t\t v-html="view === \'search-sku\' ? highlightQueryInText(product.
1sku) : product.sku">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__detail-price">\n\t\t\t\t\t<v-price :price="product.price" size="small"></v-price>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__detail-counter">\n\t\t\t\t\t<v-field\n\t\t\t\t\t\ttype="basket-counter"\n\t\t\t\t\t\tv-model="counterValue"\n\t\t\t\t\t\t@input="changeCounter"\n\t\t\t\t\t\t@basketadd="addOneProductToBasket(product.id)">\n\t\t\t\t\t</v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t\t<div v-if="product.description && showDescription" class="product__detail-descr">\n\t\t\t\t\t<div class="product__detail-descr-main">\n\t\t\t\t\t\t<div class="product__detail-descr-left">\n\t\t\t\t\t\t\t<div v-if="product.description.required" \n\t\t\t\t\t\t\t\t\t class="product__detail-descr-item flc">\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-title">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'REQUIRED_TO_ASSEMBLE_AN_ASSEMBLY_UNIT\')}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-caption">\n\t\t\t\t\t\t\t\t\t{{product.description.required}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div v-if="product.description.period" \n\t\t\t\t\t\t\t\t\t class="product__detail-descr-item flc">\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-title">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'PART_APPLICATION_PERIOD\')}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-caption">\n\t\t\t\t\t\t\t\t\t{{product.description.period}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div v-if="product.description.note" \n\t\t\t\t\t\t\t\t\t class="product__detail-descr-item flc">\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-title">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'NOTE\')}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-caption">\n\t\t\t\t\t\t\t\t\t{{product.description.note}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div v-if="product.link" class="product__detail-link">\n\t\t\t\t\t\t\t\t<a :href="product.link" class="arrow-link">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'GO_TO_DETAIL_CART\')}}&nbsp;&nbsp;<span class="arrow-link__tail"><svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if="product.description.replacement && product.description.replacement.length > 0" \n\t\t\t\t\t\t\t\t class="product__detail-descr-right">\n\t\t\t\t\t\t\t<div class="product__detail-descr-item flc">\n\t\t\t\t\t\t\t\t<div class="product__detail-descr-title">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'REPLACEMENT_DETAILS\')}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div v-for="item in product.description.replacement" \n\t\t\t\t\t\t\t\t\t class="product__detail-descr-item product__detail-descr-item--lg flc">\n\t\t\t\t\t\t\t\t<div v-if="item.sku" \n\t\t\t\t\t\t\t\t\t\t class="product__detail-descr-title product__detail-descr-title--lg">\n\t\t\t\t\t\t\t\t\t{{item.sku}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-if="item.name" \n\t\t\t\t\t\t\t\t\t\t class="product__detail-descr-caption">\n\t\t\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</template>\n\n\t\t<template v-else-if="template === \'units-list\'">\n\t\t\t<div class="product__units-list-item">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div v-if="product.name" class="product__unit-name">\n\t\t\t\t\t{{product.name}}\n\t\t\t\t</div>\n\t\t\t\t<div v-if="product.caption" class="product__unit-caption">\n\t\t\t\t\t{{product.caption}}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="template === \'units-grid\'">\n\t\t\t<div class="product__u-grid">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<img class="product__unit-image" :src="product.image" alt="">\n\t\t\t\t<div class="product__unit-info">\n\t\t\t\t\t<div v-if="product.name" class="product__unit-name">\n\t\t\t\t\t\t{{product.name}}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="product.caption" class="product__unit-caption">\n\t\t\t\t\t\t{{product.caption}}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="template === \'model\'">\n\t\t\t<div class="product__m-grid">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__model">\n\t\t\t\t\t<div class="product__image-wrap">\n\t\t\t\t\t\t<img class="product__small-image" :src="product.image" alt="">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__model-sku" v-html="highlightQueryInText(product.
1sku)"></div>\n\t\t\t\t</div>\n\t\t\t\t<svg class="product__m-grid-icon svg-icon">\n\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="template === \'list\'">\n\t\t\t<div class="product__t-list">\n\t\t\t\t<a :href="product.link" v-if="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__t-list-cell-image">\n\t\t\t\t\t<div class="product__image">\n\t\t\t\t\t\t<img v-if="product.image" :src="product.image" alt="">\n\t\t\t\t\t\t<div class="product__image-box-no-photo" v-else>\n\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-no-photo"></use></svg>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__t-list-cell-main">\n\t\t\t\t\t<div class="product__t-list-cell-main-info">\n\t\t\t\t\t\t<div class="product__meta flc" v-if="product.sku || product.series">\n\t\t\t\t\t\t\t{{product.sku}} <template v-if="product.sku && product.series"> / </template> <template v-if="product.series">{{getMessage(\'SERIES\')}} {{product.series}}</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="product__title flc" v-if="product.name">{{product.name}}</div>\n\t\t\t\t\t\t<div class="product__dimensions flc" v-if="product.dimensions && product.dimensions.length">\n\t\t\t\t\t\t\t<div class="dimensions dimensions--product-list flc">\n\t\t\t\t\t\t\t\t<div class="dimensions__grid">\n\t\t\t\t\t\t\t\t\t<div class="dimensions__item" v-for="dimension in product.dimensions">\n\t\t\t\t\t\t\t\t\t\t<div class="dimension dimension--product">\n\t\t\t\t\t\t\t\t\t\t\t<div class="dimension__icon" v-if="dimension.icon">\n\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use :xlink:href="dimension.icon"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class="dimension__value">{{dimension.value}}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__t-list-cell-main-prices">\n\t\t\t\t\t\t<div class="product__price flc">\n\t\t\t\t\t\t\t<v-price :price="product.price"></v-price>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="catalog-item-top__price-info flc">\n\t\t\t\t\t\t\t{{getMessage(\'CHECK_STORE_PRICE\')}}<span class="inline-tooltip-wrap" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown" v-if="product.priceTip"><span class="inline-tooltip__btn js-dropdown__btn"></span>\n\t\t\t\t\t\t\t\t<span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position" v-html="product.priceTip"></span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-if="template == \'grid\' || template == \'grid-compare\'">\n\t\t\t<div class="product__t-grid" :class="{\'product__t-grid--compare\': template == \'grid-compare\'}"\n\t\t\t\t itemscope itemtype="https://schema.org/Product">\n\t\t\t\t<a :href="product.link" class="product__link" itemprop="url"></a>\n\t\t\t\t<div class="product__t-grid-top">\n\t\t\t\t\t<div class="product__action-compare-alt" v-if="template == \'grid-compare\'">\n\t\t\t\t\t\t<v-compare-btn :product-id="product.id" template="icon"></v-compare-btn>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__image">\n\t\t\t\t\t\t<div class="product__status" v-if="product.status && product.status.length || product.colors && product.colors.length > 1">\n\t\t\t\t\t\t\t<div class="status-list status-list--product">\n\t\t\t\t\t\t\t\t<div class="status-list__item" v-for="item in product.status">\n\t\t\t\t\t\t\t\t\t<div class="status status--product" :style="{\'color\': item.color, \'background\': item.background}" :class="{\'status--image\': item.image && !item.text}">\n\t\t\t\t\t\t\t\t\t\t<img v-if="item.image" :src="item.image" alt="" itemprop="image">\n\t\t\t\t\t\t\t\t\t\t<span class="status__text" v-if="item.text">{{item.text}}</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="status-list__item" v-if="product.colors && product.colors.length > 1">\n\t\t\t\t\t\t\t\t\t<div class="status status--product status--colors">\n\t\t\t\t\t\t\t\t\t\t<div class="status__pallette">\n\t\t\t\t\t\t\t\t\t\t\t<div class="status__pallette-part" v-for="color in product.colors" :style="{\'background\': color.color}"></div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{{product.colors.length}} {{pluralize(product.colors.length, \'\', [getMessage(\'ONE_COLOR\'), getMessage(\'TWO_COLOR\'), getMessage(\'MORE_COLOR\')])}}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<template v-if="!product.images || !product.images.length">\n\t\t\t\t\t\t\t<div class="product__image-box">\n\t\t\t\t\t\t\t\t<div class="product__image-box-no-photo">\n\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-no-photo"></use></svg>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if="!touchMode">\n\t\t\t\t\t\t\t<div class="product__image-box" \n\t\t\t\t\t\t\t\t\t@mouseleave="activeImageIndex = 0">\n\t\t\t\t\t\t\t\t<div class="product__image-box-inner" v-for="image, index in product.images" v-if="index < 5"\n\t\t\t\t\t\t\t\t\t\t:style="{\'background-image\': image.cover ? \'url(\' + image.src + \')\' : null}"\n\t\t\t\t\t\t\t\t\t\t:class="{\'active\': index == activeImageIndex}">\n\t\t\t\t\t\t\t\t\t<img v-if="!image.cover" :src="image.src" alt="" loading="lazy" itemprop="image">\n\t\t\t\t\t\t\t\t\t<div class="product__image-box-note" v-if="index == 4 && product.images.length > 5">{{ getMessage(\'MORE\') }} {{product.images.length - 5}} {{ getMessage(\'PHOTO\') }}</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<a :href="product.link" class="product__image-box-controls" v-if="product.images.length > 1">\n\t\t\t\t\t\t\t\t\t<div class="product__image-box-control" v-for="image, index in product.images" v-if="index < 5"\n\t\t\t\t\t\t\t\t\t\t\t@mouseenter="activeImageIndex = index"></div>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<div class="product__image-box-bullets" v-if="product.images.length > 1">\n\t\t\t\t\t\t\t\t\t<div class="product__image-box-bullet" v-for="image, index in product.images" v-if="index < 5" \n\t\t\t\t\t\t\t\t\t\t\t:class="{\'active\': index == activeImageIndex}"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<div class="product__image-box">\n\t\t\t\t\t\t\t\t<div class="product__image-box-inner active" v-for="image, index in product.images" v-if="index == 0"\n\t\t\t\t\t\t\t\t\t\t:style="{\'background-image\': image.cover ? \'url(\' + image.src + \')\' : null}">\n\t\t\t\t\t\t\t\t\t<img v-if="!image.cover" :src="image.src" alt="" loading="lazy" itemprop="image">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__meta flc" v-if="product.sku || product.series">\n\t\t\t\t\t\t{{product.sku}} <template v-if="product.sku && product.series"> / </template> <template v-if="product.series">{{getMessage(\'SERIES\')}} {{product.series}}</template>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__title flc" v-if="product.name" itemprop="name">{{product.name}}</div>\n\t\t\t\t\t<meta itemprop="name" :content="product.name" />\n\t\t\t\t</div>\n\t\t\t\t<div class="product__t-grid-bottom">\n\t\t\t\t\t<div class="product__dimensions flc" v-if="product.dimensions && product.dimensions.length">\n\t\t\t\t\t\t<div class="dimensions dimensions--product flc">\n\t\t\t\t\t\t\t<div class="dimensions__grid">\n\t\t\t\t\t\t\t\t<div class="dimensions__item" v-for="dimension in product.dimensions">\n\t\t\t\t\t\t\t\t\t<div class="dimension dimension--product">\n\t\t\t\t\t\t\t\t\t\t<div class="dimension__icon" v-if="dimension.icon">\n\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use :xlink:href="dimension.icon"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class="dimension__value">{{dimension.value}}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<hr class="product__separator flc">\n\t\t\t\t\t<div itemprop="aggregateRating" itemtype="https://schema.org/AggregateRating" itemscope>\n\t\t\t\t\t\t<meta itemprop="reviewCount" content="89" />
1\n\t\t\t\t\t\t<meta itemprop="ratingValue" content="5" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__price flc">\n\t\t\t\t\t\t<v-price :price="product.price" :size="template == \'grid-compare\' ? \'smaller\' : \'md\'"></v-price>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__action flc">\n\t\t\t\t\t\t<div class="product__action-grid">\n\t\t\t\t\t\t\t<div class="product__action-button">\n\t\t\t\t\t\t\t\t<a :href="product.link" class="btn btn--primary" v-if="template == \'grid\'">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'MORE_DETAIL\')}}\n\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<a :href="product.buyLink" class="btn btn--primary" v-else-if="template == \'grid-compare\'">\n\t\t\t\t\t\t\t\t\t{{getMessage(\'WHERE_BUY\')}}\n\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="product__action-compare" v-if="template == \'grid\'">\n\t\t\t\t\t\t\t\t<v-compare-btn :product-id="product.id"></v-compare-btn>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\n\t\t<template v-if="template == \'viewed\' || template == \'slide\'">\n\t\t\t<div class="product__t-slide" :class="{\'product__t-slide--viewed\': template == \'viewed\'}">\n\t\t\t\t<button type="button" class="product__remove" :class="{\'product__remove--loading\': removeLoading}" \n\t\t\t\t\t\t:title="getMessage(\'REMOVE_FROM_HISTORY\')" @click="removeLoading ? null : removeFromViewed()" v-if="template == \'viewed\'">\n\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-close"></use></svg>\n\t\t\t\t</button>\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__image">\n\t\t\t\t\t<div class="product__image-box" :style="{\'background-image\': product.image && product.imageCover ? \'url(\' + product.image + \')\' : null}">\n\t\t\t\t\t\t<div class="product__image-box-no-photo" v-if="!product.image">\n\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-no-photo"></use></svg>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<img v-else-if="!product.imageCover" :src="product.image" alt="">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__meta flc" v-if="product.sku || product.series">\n\t\t\t\t\t{{product.sku}} <template v-if="product.sku && product.series"> / </template> <template v-if="product.series">{{getMessage(\'SERIES\')}} {{product.series}}</template>\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t\t<div class="product__price flc" v-if="product.price">\n\t\t\t\t\t<v-price :price="product.price" size="smaller"></v-price>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-if="template == \'simple-list\'">\n\t\t\t<div class="product__t-simple-list">\n\t\t\t\t<a :href="product.link" class="product__link"></a>\n\t\t\t\t<div class="product__t-simple-list-image">\n\t\t\t\t\t<div class="product__image">\n\t\t\t\t\t\t<div class="product__image-box" :style="{\'background-image\': product.imageCover ? \'url(\' + product.image + \')\' : null}">\n\t\t\t\t\t\t\t<img v-if="!product.imageCover" :src="product.image" alt="" loading="lazy">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="product__t-simple-list-main">\n\t\t\t\t\t<div class="product__meta flc" v-if="product.sku || product.series">\n\t\t\t\t\t\t{{product.sku}} <template v-if="product.sku && product.series"> / </template> <template v-if="product.series">{{getMessage(\'SERIES\')}} {{product.series}}</template>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="product__title flc" v-if="product.name">{{product.name}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{activeImageIndex:0,touchMode:View.mobileAndTabletCheck,removeLoading:!1,showDescription:!1,counterValue:1,counterPorductCartValue:1}},props:{product:{default:null},template:{default:"grid"},view:{default:"regular"},localQuery:{default:null}},methods:{highlightQueryInText:function(e){try{return e.replace(new RegExp(this.localQuery,"i"),'<span class="in-text-highlight-alt">$&</span>')}catch(t){return e}},checkValue:function(t){var e=t;return t<1||isNaN(t)?e=1:99<t&&(e=99),e},changeCounter:function(){this.counterValue=this.checkValue(this.counterValue),this.$emit("changeCounter",{value:[this.counterValue],id:this.product.id})},update:function(){var t=this.product?this.product.productId:null,t=(this.active=!!Model.basket&&!!_.find(Model.basket.items,{id:t}),_.find(Model.basket.items,{id:t}));Model.basket&&t&&(this.counterValue=t.count)},addOneProductToBasket:function(t){Model.basketAdd({items:t,count:this.counterValue,setValue:1})},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)}
1,removeFromViewed:function(){this.removeLoading=!0,this.$emit("remove",this.product.id)}},created:function(){var t,e=this;Model.basket&&(this.update(),this.basketData=Model.basket.items),Model.$on("basket-changed",function(){var t;e.update(),e.loading=!1,Model.basket&&(e.basketData=Model.basket.items,e.product)&&((t=_.find(Model.basket.items,{id:e.product.id}))&&(e.counterPorductCartValue=t.count||1))}),this.product&&((t=_.find(Model.basket.items,{id:this.product.id}))?(this.counterPorductCartValue=t.count||1,this.counterValue=isNaN(parseInt(t.count))?1:parseInt(t.count)):(this.counterPorductCartValue=this.product.count||1,this.counterValue=isNaN(parseInt(this.product.count))?1:parseInt(this.product.count)))}}),Vue.component("v-rate",{template:'\n\t<div class="v-rate rate">\n\t\t<form class="rate__form" :class="{\'rate__form--disabled\': loading}">\n\t\t\t<div class="rate__title">{{getMessage(\'USEFUL_INFORMATION\')}}</div>\n\t\t\t<div class="rate__labels">\n\t\t\t\t<div class="rate__label" :class="{\'rate__label--selected\': localValue ===  1 }" @click="setValue(\'plus\')">\n\t\t\t\t\t<div class="rate__icon">\n\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-dimension-warranty"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="rate__label-text">{{getMessage(\'YES\')}}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="rate__label" :class="{\'rate__label--selected\': localValue ===  -1 }" @click="setValue(\'minus\')">\n\t\t\t\t\t<div class="rate__icon rate__icon--inverted">\n\t\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-dimension-warranty"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="rate__label-text">{{getMessage(\'NO\')}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</form>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{picked:!1,loading:!1,localValue:null}},props:{id:{default:null},remote:{default:null},value:{default:null}},watch:{value:function(){this.localValue=this.value}},methods:{setValue:function(t){this.loading||(this.localValue="plus"==t?0==this.localValue?1:0:0==this.localValue?-1:0,this.sendInput())},sendInput:function(){var e=this;e.loading=!0,$.ajax({url:e.remote,method:"post",dataType:"json",data:{value:e.localValue,id:e.id}}).done(function(t){e.localValue=t.value}).fail(function(t){console.warn("v-rate: load error",t)}).always(function(){e.loading=!1})}},created:function(){this.localValue=this.value}}),Vue.component("v-rating-input",{template:'\n\t<div class="v-rating-input rating-input flc" :class="{\'rating-input--short\': max === 5, \'rating-input--simple\': simple}">\n\t\t<template v-if="!simple">\n\t\t\t<div class="rating-input__row rating-input__row--head flc">\n\t\t\t\t<div class="rating-input__row-label">\n\t\t\t\t\t<div class="rating-input__row-label-text h4" v-if="label">{{label}}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="rating-input__row-main">\n\t\t\t\t\t<div class="price-badge price-badge--lg">\n\t\t\t\t\t\t<svg class="svg-icon price-badge__icon"><use xlink:href="#svg-icon-rating-star"></use></svg>\n\t\t\t\t\t\t<span class="price-badge__value">{{medianValue}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t<div class="rating-input__row flc" v-if="options" v-for="option in options" :key="option.key">\n\t\t\t<div class="rating-input__row-label">\n\t\t\t\t<div class="rating-input__row-label-icon" v-if="option.icon">\n\t\t\t\t\t<svg class="svg-icon">\n\t\t\t\t\t\t<use :xlink:href="option.icon"></use>\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t\t<div class="rating-input__row-label-text">{{option.text}}</div> \n\t\t\t</div>\n\t\t\t<div class="rating-input__row-main">\n\t\t\t\t<div class="rating-stars rating-stars--input" @mouseleave="touchMode ? null : resetLocalValueOptionTmp(option.key)">\n\t\t\t\t\t<div class="rating-stars__stars">\n\t\t\t\t\t\t<div class="rating-stars__item" v-for="i in max" :class="{\'active\': i <= getLocalValueOption(option.key)}"\n\t\t\t\t\t\t\t @mouseenter="setLocalValueOptionTmp(option.key, i)" @click="set
1LocalValueOption(option.key, i)">\n\t\t\t\t\t\t\t <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="rating-stars__icon">\n\t\t\t\t\t\t\t\t<path class="rating-stars__path" fill-rule="evenodd" clip-rule="evenodd" d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z"/>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="rating-stars__value">{{getLocalValueOption(option.key)}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<template v-if="!simple">\n\t\t\t<div class="rating-input__row rating-input__row--head flc">\n\t\t\t\t<div class="rating-input__row-label">\n\t\t\t\t\t<div class="rating-input__row-label-text h4">{{getMessage("MATTERS_RATINGS")}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="check-list flc" v-if="options">\n\t\t\t\t<div class="check-list__item" v-for="option in options" :key="option.key">\n\t\t\t\t\t<v-field type="checkbox" :label="option.text" :value="getLocalValueOptionMatters(option.key)" \n\t\t\t\t\t\t\t@input="setLocalValueOptionMatters(option.key, $event)"></v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{localValue:[],touchMode:View.mobileAndTabletCheck}},props:{value:{default:null},max:{type:Number,default:10},options:{default:null},label:{default:null},simple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},computed:{medianValue:function(){var a=this;return this.localValue&&this.localValue.length?(Math.round(100*_.reduce(this.localValue,function(t,e){var n=_.find(a.options,{key:e.key}),n=n&&"number"==typeof n.weight?n.weight:1/a.options.length;return t+("number"==typeof e.tmpValue?e.tmpValue:e.value)*n},0))/100).toString().replace(".",","):0}},watch:{value:function(){this.initLocalValueFromValue()}},methods:{emitInput:function(){var t=JSON.parse(JSON.stringify(this.localValue));_.each(t,function(t){delete t.tmpValue}),this.$emit("input",JSON.stringify(t))},setLocalValueOption:function(t,e){var n=_.find(this.localValue,{key:t});n?n.value=e:this.localValue.push({key:t,value:e,matters:!1}),this.emitInput()},setLocalValueOptionTmp:function(t,e){var n=_.find(this.localValue,{key:t});n?n.tmpValue=e:this.localValue.push({key:t,value:0,tmpValue:e,matters:!1})},resetLocalValueOptionTmp:function(t,e){var n=_.find(this.localValue,{key:t});n?n.tmpValue=null:this.localValue.push({key:t,value:0,tmpValue:e,matters:!1})},getLocalValueOption:function(t){t=_.find(this.localValue,{key:t});return t?"number"==typeof t.tmpValue?t.tmpValue:t.value:0},setLocalValueOptionMatters:function(t,e){var n=_.find(this.localValue,{key:t});n?n.matters=e:this.localValue.push({key:t,value:0,matters:e}),this.emitInput()},getLocalValueOptionMatters:function(t){t=_.find(this.localValue,{key:t});return!!t&&t.matters},initLocalValueFromValue:function(){if(this.localValue=[],this.value)if("string"==typeof this.value)try{this.localValue=JSON.parse(this.value)}catch(t){}else this.localValue=this.value;this.emitInput()}},created:function(){this.initLocalValueFromValue()}}),Vue.component("v-rating",{template:'\n\t<div class="v-rating rating" :class="{\'rating--input\': input}">\n\t\t<div class="rating__layout">\n\t\t\t<div class="rating__row">\n\t\t\t\t<div class="rating__layer rating__layer--unchecked" v-if="!input">\n\t\t\t\t\t<div class="rating__grid">\n\t\t\t\t\t\t<template v-for="val in 5">\n\t\t\t\t\t\t\t<label class="rating__item">\n\t\t\t\t\t\t\t\t<svg class="svg-icon  rating__icon">\n\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-rating-star-empty"></use>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<template v-if="!input">\n\t\t\t\t\t<div class="rating__layer rating__layer--checked" :style="{\'width\': Math.round(field.value) * 20 + \'%\'}">\n\t\t\t\t\t\t<div class="rating__grid">\n\t\t\t\t\t\t\t<template v-for="val in 5">\n\t\t\t\t\t\t\t\t<label class="rating__item  rating__item--checked">\n\t\t\t\t\t\t\t\t\t<svg class="svg-icon  rating__icon">\n\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-rating-star"></use>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-if="input">\n\t\t\t\t\t<div class="rating__layer rating__layer--input">\n\t\t\t\t\t\t<label class="field-label" v-if="field">{{ field.label }}</label>\n\t\t\t\t\t\t<div class="rating__grid">\n\t\t\t\t\t\t\t<template v-for="val in 5">\n\t\t\t\t\t\t\t\t<label class="rating__item" :class="{\'rating__item--checked\': val <= localValue, \'rating__item--disabled\': field.disabled}">\n\t\t\t\t\t\t\t\t\t<input class="rating__input" type="radio" :value="val + 1" @change="handleInput(val)" :disabled="field.disabled"/>\n\t\t\t\t\t\t\t\t\t<svg class="svg-icon  rating__icon">\n\t\t\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-rating-star"></use>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],props:{input:{type:Boolean,default:!1},value:{type:[Object,String,Number,Boolean],default:null},field:{type:Object,default:null}},emits:["input"],data:function(){return{localValue:null}},created:function(){this.updateLocalValue()},methods:{updateLocalValue:function(){this.field&&(this.localValue=this.field.value)},handleInput:function(t){this.localValue=t,this.$emit("input",this.localValue)}}}),Vue.component("v-review-item",{template:'\n\t\n\t<div class="v-review-item reviews__item flc" :class="{\'reviews__item--flex\': mode == \'alt\', \'reviews__item--tablerow\': mode == \'tablerow\'}">\n\t\t\n\t\t<template v-if="mode === \'tablerow\'" >\n\t\t\t<div class="reviews__item-review">\n\t\t\t\t<p>\n\t\t\t\t\t{{review.text}}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<div class="reviews__item-main">\n\t\t\t\t<div class="reviews__item-header">\n\t\t\t\t\t<span class="reviews__name h4">\n\t\t\t\t\t\t{{review.name}}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="reviews__meta">\n\t\t\t\t\t\t<div v-if="review.labels" class="reviews__meta-labels">\n\t\t\t\t\t\t\t<a v-for="(label, i) in review.labels" :href="label.link" class="badge badge--reflex" :key="i">{{label.text}}</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<time :datetime="review.date.datetime" class="reviews__meta-date">{{review.date.text}}</time>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="reviews__item-review">\n\t\t\t\t\t<p>{{review.text}}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{}},props:{review:{default:null},mode:{type:String,default:"regular"}}}),Vue.component("v-reviews",{template:'\n  <div v-if="(catalog.items && catalog.items.length) || c
1atalog.remoteForm" class="v-reviews reviews" :class="{\'reviews--alt\': mode == \'alt\'}">\n    <div class="reviews__header">\n      <h3 class="reviews__headline">{{getMessage(\'REVIEWS_CLIENTS\')}}</h3>\n      <div class="reviews__action" v-if="catalog.remoteForm">\n        <button\n            @click="openFormByAjaxID"\n            class="btn btn--primary">{{getMessage(\'SEND_REVIEW\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n        </button>\n      </div>\n      <div class="reviews__action" v-if="catalog.remoteAnketForm">\n        <a :href="catalog.remoteAnketForm"\n           class="btn btn--primary">{{getMessage(\'SEND_ANKET\')}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n        </a>\n      </div>\n    </div>\n\n    <div v-if="!catalog.items" class="reviews__attention-wrap">\n      <div class="attention attention--no-border">\n        <svg class="svg-icon attention__ico-attention-like"><use xlink:href="#svg-icon-attention-like"></use></svg> <span class="attention__attention-text">\n\t\t\t\t\t{{getMessage(\'FIRST_REVIEW_NOTIFY\')}}\n\t\t\t\t</span>\n      </div>\n    </div>\n\n    <div v-if="catalog.items" class="reviews__items">\n      <transition name="content-fade">\n        <div class="loader-cover" v-if="loading"></div>\n      </transition>\n      <v-review-item v-for="review in catalog.items" :review="review" :mode="mode"></v-review-item>\n    </div>\n\n    <a v-if="catalog.items && catalog.pages && state.pages.offset + catalog.pages.limit <= catalog.pages.count" class="reviews__btn-more btn" @click="showMore">\n      {{getMessage(\'SHOW_MORE\')}}\n    </a>\n\n  </div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{catalog:{remote:null,pages:{offset:null,limit:null,count:null},items:null,remoteForm:null},state:{pages:{offset:0,limit:10,count:0}},loading:!1,loadingMinTimeout:null}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},mode:{type:String,default:"regular"},bxajaxid:{default:null}},methods:{openFormByAjaxID:function(){var t=new Url(this.catalog.remoteForm).query.bxajaxid;modalController.open({component:"v-rich-form",className:"modal--lg modal--form",remoteDataSource:this.catalog.remoteForm,ownHistory:!1,bxajaxid:t,props:{frame:!0}})},loadCatalog:function(t,e){function n(){if(s){var t=i.catalog.items;i.catalog=s.catalog,e&&(i.catalog.items=t.concat(i.catalog.items));try{i.state.pages=s.catalog.pages}catch(t){console.warn("v-reviews: something wrong with state\n",t)}}i.loadingMinTimeout=null,i.loading=!1,i.$forceUpdate()}var a,i=this,s=null,l=!1;i.loading||(i.loading=!0,t||(i.loadingMinTimeout=setTimeout(function(){l&&n(),i.loadingMinTimeout=null},300)),a=_.clone(i.state),$.ajax({url:i.catalog.remote,method:"post",dataType:"json",data:{state:a,bxajaxid:i.bxajaxid}}).done(function(t){console.log("v-reviews loaded",t);var e=new URLSearchParams(i.catalog.remote).has("api-mode");s=e?t.data:t}).fail(function(t){console.warn("v-reviews load failed",t)}).always(function(){l=!0,i.loadingMinTimeout&&!t||n()}))},showMore:function(){this.state.pages.offset=parseInt(this.state.pages.offset)+parseInt(this.catalog.pages.limit),this.state.offset=this.state.pages.offset,this.state.limit=this.state.pages.limit,this.loadCatalog(!1,!0)}},created:function(){var t=this;t.staticDataSource?(t.catalog=t.staticDataSource.catalog,t.$emit("loaded"),console.log("v-reviews loaded from static data",t.catalog)):t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0)),t.staticDataSource&&t.pushState()}}),Vue.component("v-rich-form",{template:' \n\t<div class="v-rich-form rich-form flc" :class="{\'rich-form--frame\': frame, \'rich-form--lg\': large, \'rich-form--standalone\': standalone}">\n\n\t\t<transition name="content-fade" @enter="slideDown" @leave="slideUp">\n\t\t\t<div class="rich-form__title flc" v-if="form && form.title && !(form.success && form.hideFormOnSuccess)">\n\t\t\t\t<h2 class="rich-form__title-main" :class="{\'h1\': frame}" v-if="form.title">
1{{form.title}}</h2>\n\t\t\t\t<span class="rich-form__title-sub" v-if="form.titleSub || form.titleSubLinkText">\n\t\t\t\t\t<span class="rich-form__title-sub-text">{{form.titleSub}}</span>\n\t\t\t\t\t<a class="rich-form__title-sub-link arrow-link" v-if="form.titleSubLinkText" @click="replaceForm(form.titleSubLink)">{{form.titleSubLinkText}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t</span>\n\t\t\t\t<span class="rich-form__title-sub" v-if="$slots[\'subtitle\']">\n\t\t\t\t\t<slot name="subtitle"></slot>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</transition>\n\n\t\t<div v-if="form.subTitle" class="rich-form__subtitle">{{form.subTitle}}</div>\n\n    <div  class="rich-form__wrap">\n      <div class="rich-form__main">\n        <div class="rich-form__container">\n\n          <transition name="content-fade" mode="out-in">\n            <div class="loader-cover" v-if="loading" key="cover"></div>\n          </transition>\n\n          <div v-if="form && form.message" class="strong-form-note flc fcc" v-html="form.message" key="message"></div>\n\n          <div v-if="form && form.success && form.successMessage" class="rich-form__success-message" v-html="form.successMessage" key="successMessage"></div>\n\n          <form class="rich-form__form form flc" @submit.prevent="loadForm(\'submit\')" novalidate autocomplete="off" v-if="form && !(form.success && form.hideFormOnSuccess)" key="form">\n\n\n            <transition name="content-fade" @enter="slideDown" @leave="slideUp">\n              <div class="strong-form-note strong-form-note--error flc fcc" v-if="form.errors && form.errors.form" v-html="form.errors.form"></div>\n            </transition>\n\n\n            <div class="form__tab-labels tab-labels tab-labels--bg-gray flc" v-if="computedForm.tabs.length > 1 && tabsHaveTitles()">\n              <div class="tab-labels__row">\n                <div class="tab-labels__item" v-for="tab in computedForm.tabs" :key="tab.id">\n                  <button type="button" class="tab-labels__btn"\n                          :class="{\'open\': tab.id == activeTabId}"\n                          @click="activeTabId = tab.id;">{{tab.title}}</button>\n                </div>\n              </div>\n            </div>\n\n            <transition-group name="content-fade" @enter="slideDown" @leave="slideUp" tag="div" class="form__groups flc" :class="{\'form__groups--strange\': strangeAction}"\n                              v-for="tab in computedForm.tabs" v-if="tab.id == activeTabId" :key="tab.id">\n              <div class="form__group flc" v-for="group, index in tab.groups" :key="\'key-\' + index" v-if="isGroupExtActive(group)">\n                <h4 class="form__group-title flc" :class="{\'h3\': large}" v-if="group.title">{{group.title}}</h4>\n                <div class="form__group-body">\n                  <div class="form__group-body-layout">\n                    \x3c!-- main column --\x3e\n                    <div class="form__group-body-main">\n                      <div class="form__row flc" :class="\'form__row--\' + field.type"  :style="{width: field.width || \'\'}"\n                           v-if="field.type != \'hidden\' && !(isAsideRequired(group, index) && field.type == \'photo\') && (strangeAction ? (strangeAction && field.type != \'file\') : true)"\n                           v-for="field, fieldIndex in group.fields" :key="field.name || \'key-\' + fieldIndex">\n                        <div class="form__col">\n                          <v-field\n                            :extendable="field.extendable || false"\n                            :extend-limit="field.extendLimit || 5"\n                            :extend-text="field.extendText || \'Добавить\'"\n                            :type="field.type"\n                            :options="field.options"\n                            :disabled="field.disabled"\n                            :disabled-dates="field.disabledDates"\n                            :label="field.label"\n                            :integrated-label="true"\n                            :error="getFieldError(group, field)"\n                            :note="field.note"\n                            :description="field.description"\n                            :mask="field.mask"\n                            :files="field.files"\n                            :simple="field.simple"\n                            v-model="field.value"\n                            :required="field.required"\n                            :maxRate="field.maxRate"\n                            :placeholder="field.placeholder"\n                            :drop="field.drop"\n                            :multipleFiles="field.multipleFiles"\n                            @fileinput="fileInput(field, $event)"\n                            @fileremove="fileRemove(field, $event)"\n                            @remove="valueRemove(field, $event)"\n                            @input
1="fieldChanged(field, $event)"\n                          ></v-field>\n                          <button v-if="altBtn" type="submit" class="rich-form__alt-btn arrow-link">\n                            {{form.altSubmitBtnText}}\n                          </button>\n                        </div>\n                      </div>\n                    </div>\n                    \x3c!-- aside column is for photo --\x3e\n                    <div class="form__group-body-aside" v-if="isAsideRequired(group, index)"\n                         :class="{\'form__group-body-aside--empty\': isAsideEmpty(group, index)}">\n                      <div v-for="field, fieldIndex in group.fields"\n                           v-if="field.type == \'photo\'"\n                           :key="field.name || \'key-\' + fieldIndex"\n                           class="form__row flc"\n                           :class="\'form__row--\' + field.type">\n                        <div class="form__col">\n                          <v-field\n                            :extendable="field.extendable || false"\n                            :extend-limit="field.extendLimit || 5"\n                            :extend-text="field.extendText || getMessage(\'ADD\')"\n                            :type="field.type"\n                            :options="field.options"\n                            :disabled="field.disabled"\n                            :disabled-dates="field.disabledDates"\n                            :label="field.label"\n                            :integrated-label="true"\n                            :error="getFieldError(group, field)"\n                            :note="field.note"\n                            :description="field.description"\n                            :mask="field.mask"\n                            :files="field.files"\n                            :simple="field.simple"\n                            v-model="field.value"\n                            :required="field.required"\n                            :maxRate="field.maxRate"\n                            :placeholder="field.placeholder"\n                            :drop="field.drop"\n                            :multipleFiles="field.multipleFiles"\n                            @fileinput="fileInput(field, $event)"\n                            @fileremove="fileRemove(field, $event)"\n                            @remove="valueRemove(field, $event)"\n                            @input="fieldChanged(field, $event)"\n                          ></v-field>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <transition name="content-fade" @enter="slideDown" @leave="slideUp">\n                    <div class="form__group-add" v-if="group.extendGroupId">\n                      <span class="link" @click="removeFieldGroup(group)" tabindex="0">{{getMessage(\'DELETE\')}}</span>\n                    </div>\n                  </transition>\n                </div>\n                <div class="form__group-add-wrap" key="add">\n                  <transition name="content-fade" @enter="slideDown" @leave="slideUp">\n                    <div class="form__group-add" v-if="groupCanBeExtended(group)">\n                      <span class="link" @click="extendFieldGroup(group)" tabindex="0">+ {{getGroupToExtend(group).extendText || getMessage(\'ADD\')}}</span>\n                    </div>\n                  </transition>\n                </div>\n              </div>\n            </transition-group>\n\n            <div class="form__confirm flc" v-if="form.requireConfirm">\n              <v-field type="checkbox" v-model="confirmed" :label="form.confirmText"></v-field>\n            </div>\n\n            <div class="form__note flc" v-if="$slots[\'before-action-note\']">\n              <slot name="before-action-note"></slot>\n            </div>\n\n            <div class="form__action flc" v-if="$slots.action" ref="action-slot">\n              <slot name="action"></slot>\n            </div>\n            <div class="form__action flc" :class="{\'form__action--strange\': strangeAction}" v-else-if="form.submitBtnText">\n              <div class="form__action-grid">\n                <div class="form__action-item"\n                     :class="{\'form__action-item--flex\': strangeAction}">\n\n                  <div v-if="strangeAction" class="form__action-strange-input">\n                    <div v-for="tab in computedForm.tabs" v-if="tab.id == activeTabId" :key="tab.id">\n                      <div v-for="(group, index) in tab.groups" :key="\'key-\' + index">\n                        <div v-for="(field, fieldIndex) in group.fields" :key="field.name || \'key-\' + fieldIndex">\n                          <div v-if="field.type === \'file\'">\n                            <v-field\n                              :extendable="field.extendable || false"\n                              :extend-limit="field.extendLimit || 5"\n                              :extend-text="field.extendText || getMessage(\'ADD\')"\n                              :type="field.type"\n                              :options="field.options"\n                              :disabled="field.disabled"\
1n                              :label="field.label"\n                              :integrated-label="true"\n                              :error="getFieldError(group, field)"\n                              :note="field.note"\n                              :files="field.files"\n                              :simple="field.simple"\n                              v-model="field.value"\n                              :required="field.required"\n                              :maxRate="field.maxRate"\n                              :placeholder="field.placeholder"\n                              :drop="field.drop"\n                              :multipleFiles="field.multipleFiles"\n                              @fileinput="fileInput(field, $event)"\n                              @fileremove="fileRemove(field, $event)"\n                              @remove="valueRemove(field, $event)"\n                              @input="fieldChanged(field, $event)"\n                              :reverse-order="true">\n                            </v-field>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n\n                  <button type="submit" class="btn btn--primary" :disabled="form.requireConfirm && !confirmed">\n                    {{form.submitBtnText}}\n                    <svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n                  </button>\n                </div>\n                <div class="form__action-item" v-if="form.submitLinkText">\n                  <a class="arrow-link" @click="replaceForm(form.submitLink)">{{form.submitLinkText}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n                </div>\n                \x3c!-- hey name slots with dash! --\x3e\n                <div class="form__action-item" v-if="$slots[\'actionButtons\']">\n                  <slot name="actionButtons"></slot>\n                </div>\n                <div class="form__action-item form__action-item--note" v-if="form.actionNote">\n                  <div class="form__action-note" v-html="form.actionNote"></div>\n                </div>\n                <div class="form__action-item form__action-item--note" v-if="$slots[\'action-note\']">\n                  <div class="form__action-note">\n                    <slot name="action-note"></slot>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div class="form__note flc" v-if="$slots[\'after-action-note\']">\n              <slot name="after-action-note"></slot>\n            </div>\n          </form>\n\n        </div>\n      </div>\n      <picture>\n        <source v-if="form.img?.mobile" class="rich-form__image" :srcset="form.img.mobile" media="(max-width: 767px)">\n        <img v-if="form.img?.desktop" class="rich-form__image" :src="form.img.desktop" alt=""/>\n      </picture>\n    </div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{loading:!1,loadingMinTimeout:null,activeTabId:null,activeExtGroupIds:[],form:{title:null,remote:null,groups:null,tabs:null,fields:null,success:null,errors:null,message:null,successMessage:null},localFormData:null,autosubmitTimeout:null,confirmed:void 0}},props:{staticDataSource:{default:null},remoteDataSource:{default:null},bxajaxid:{default:null},frame:{type:Boolean,default:!1},large:{type:Boolean,default:!1},standalone:{type:Boolean,default:!1},altBtn:{type:Boolean,default:!1},strangeAction:{type:Boolean,default:!1}},computed:{computedForm:function(){var i=this,e={tabs:[]};return _.each(this.form.tabs||[{id:null,title:null}],function(t){var a=_.clone(t);a.groups=[],_.each(i.form.groups||[{id:null,title:null}],function(e){var n;t.id&&e.tabId!==t.id||((n=_.clone(e)).fields=[],_.each(i.form.fields,function(t){e.id&&t.groupId!==e.id||n.fields.push(t)}),a.groups.push(n))}),e.tabs.push(a)}),e}},watch:{confirmed:function(){this.checkConfirm()}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},checkConfirm:function(){this.$refs["action-slot"]&&$(this.$refs["action-slot"]).find("button").prop("disabled",!this.confirmed)},tabsHaveTitles:function(){for(var t=0;t<this.form.tabs.length;t++)if(this.form.tabs[t].title)return!0;return!1},getFieldError:function(t,e){return this.form.errors&&this.form.errors.fields&&(e=_.filter(this.form.errors.fields,{name:e.name})).length?e:null},fieldChanged:function(t){var e=this;t.autosubmit&&(clearTimeout(this.autosubmitTimeout),"text"===t.type||"email"===t.type||"tel"===t.type||"password"===t.type||"number"===t.type?this.autosubmitTimeout=setTimeout(function(){e.loadForm("autosubmit")},2e3):this.loadForm("autosubmit"))},fileInput:function(t,e){for(var n=0;n<e.target.files.length;n++)this.localFormData.append(this.proxyFieldName(t.name)+"["+e.key+"]",e.target.files[n].path||e.target.files[n]);var a=!0,i=!1,s=void 0;try{for(var l,o=this.localFormData.entries()[Symbol.iterator]();!(a=(l=o.next()).done);a=!0){var c=l.value,r=_slicedToArray(c,2);r[0],r[1]}}catch(t){i=!0,s=t}finally{try{!a&&o.return&&o.return()}finally{if(i)throw s}}t.autosubmit&&!e.nosubmit&&this.loadForm("autosubmit")},fileRemove:function(t,e){this.localFormData.set(this.proxyFieldName(t.name)+"["+e.key+"]",null);var n=!0,a=!1,i=void 0;try{for(var s,l=this.localFormData.entries()[Symbol.iterator]();!(n=(s=l.next()).done);
1n=!0){var o=s.value,c=_slicedToArray(o,2);c[0],c[1]}}catch(t){a=!0,i=t}finally{try{!n&&l.return&&l.return()}finally{if(a)throw i}}t.autosubmit&&!e.nosubmit&&this.loadForm("autosubmit")},valueRemove:function(t,e){this.form.errors&&this.form.errors.fields&&0<=(t=_.findIndex(this.form.errors.fields,{name:t.name,index:e}))&&this.form.errors.fields.splice(t,1)},formSwitched:function(){this.loadForm("load")},replaceForm:function(t){t&&(this.form.remote=t,this.loadForm("load"))},isAsideRequired:function(t,n){return!!_.find((_.find(this.computedForm.tabs,{id:this.activeTabId})||{}).groups,function(t,e){return!(n<e)&&!!_.find(t.fields,{type:"photo"})&&1<t.fields.length})},isAsideEmpty:function(t){return!_.find(t.fields,{type:"photo"})},isGroupExtActive:function(t){return!!t&&(!t.extendGroupId||0<=this.activeExtGroupIds.indexOf(t.id))},getGroupToExtend:function(t){return _.find(this.form.groups,{extendGroupId:t.id})},groupCanBeExtended:function(t){var e=this,t=_.filter(this.form.groups,{extendGroupId:t.id});return _.any(t,function(t){return!e.isGroupExtActive(t)})},extendFieldGroup:function(t){t=_.find(this.form.groups,{extendGroupId:t.id});t&&this.activeExtGroupIds.push(t.id),this.$forceUpdate()},removeFieldGroup:function(e){this.activeExtGroupIds.splice(this.activeExtGroupIds.indexOf(e.id),1),_.each(this.form.fields,function(t){t.groupId==e.id&&t.value&&(t.value=null)})},proxyFieldName:function(t){return"state[form]["+t+"]"},loadForm:function(t,e){function n(){if(l){if(s.form=l.form,s.form.success&&s.form.redirect)return window.location.href=s.form.redirect;if(s.form.success&&s.form.reload)return window.location.reload();s.form.success&&s.form.emit_event&&Model.$emit(s.form.emit_event,l),!s.form.tabs||s.activeTabId&&_.find(s.form.tabs,{id:s.activeTabId})||(s.activeTabId=s.form.tabs?s.form.tabs[0].id:null),Vue.nextTick(function(){var t,e,n=$(window).scrollTop(),a=$(s.$el.parentNode);s.form.errors&&s.form.errors.fields&&s.form.errors.fields.length?(e=a.find(".form-error")).length&&(a.closest(".modal").length?(t=e.position().top,$(".modal__surface").animate({scrollTop:t-30},400)):((t=e.offset().top)+30<n||t+30>n+window.innerHeight)&&$("html, body").animate({scrollTop:t-30},400)):a.offset().top<n&&(e=a.closest(".modal").length?90:30,$("html, body").animate({scrollTop:a.offset().top-e},400)),s.$emit("submit",l)})}s.loadingMinTimeout=null,s.loading=!1,s.$emit("loaded"),s.checkConfirm()}var a,i=this,s=this,l=null,o=!1,t=t||"submit";s.loading||("submit"==t&&s.form.requireConfirm&&!s.confirmed?console.log("v-rich-form: attempt to submit not confirmed form prevented"):(s.loading=!0,e||(s.loadingMinTimeout=setTimeout(function(){o&&n(),s.loadingMinTimeout=null},300)),clearTimeout(s.autosubmitTimeout),a=[],s.form&&s.form.fields&&_.each(s.form.fields,function(t){var e=i.proxyFieldName(t.name);t.extendable&&(e=i.proxyFieldName(t.name.replace("[]",""))+"[]"),a.indexOf(e)<0&&(s.localFormData.delete(e),a.push(e)),t.value||(t.value=""),s.isGroupExtActive(_.find(s.form.groups,{id:t.groupId}))&&"file"!==t.type&&"photo"!==t.type&&"photo-alt"!==t.type&&_.each(t.extendable?t.value:[t.value],function(t){s.localFormData.append(e,t)})}),s.localFormData.set("state[action]",t||"submit"),s.localFormData.set("bxajaxid",s.bxajaxid),$.ajax({url:s.form.remote,method:"post",dataType:"json",data:s.localFormData,processData:!1,contentType:!1}).done(function(t){console.log("v-rich-form loaded",t);var e=new URLSearchParams(s.form.remote).has("api-mode");l=e?t.data:t}).fail(function(t){console.warn("v-rich-form load failed",t)}).always(function(){o=!0,s.loadingMinTimeout&&!e||n()})))}},created:function(){var t=this;t.localFormData=new FormData,t.staticDataSource?(t.form=t.staticDataSource.form,t.form.activeTabId&&(t.activeTabId=t.form.activeTabId),!t.form.tabs||t.activeTabId&&_.find(t.form.tabs,{id:t.activeTabId})||(t.activeTabId=t.form.tabs?t.form.tabs[0].id:null),t.$emit("loaded")):t.remoteDataSource&&(t.form.remote=t.remoteDataSource,t.loadForm("load",!0)),this.checkConfirm()}}),function(){var u=Math.max;Vue.component("v-schedule-input",{template:'\n\t<div class="v-schedule-input schedule-input flc">\n\n\t\t<div class="schedule-input__row flc" v-if="localValue" v-for="group, index in localValue" :key="index">\n\t\t\t<div class="schedule-input__grid">\n\t\t\t\t<div class="schedule-input__col schedule-input__col--check">\n\t\t\t\t\t<v-field type="checkbox" :label="group.title" :disabled="disabled" v-model="group.active" \n\t\t\t\t\t\t\t@input="emitInput"></v-field>\n\t\t\t\t</div>\n\t\t\t\t<div class="schedule-input__col schedule-input__col--time">\n\t\t\t\t\t<v-field type="text" label="с" integrated-label :mask="timeMask" :disabled="disabled || !group.active" v-model="group.start" \n\t\t\t\t\t\t\t@input="emitInput" @focus="$emit(\'focus\')" @blur="formatValues(); $emit(\'blur\')"></v-field>\n\t\t\t\t</div>\n\t\t\t\t<div class="schedule-input__col schedule-input__col--time">\n\t\t\t\t\t<v-field type="text" label="по" integrated-label :mask="timeMask" :disabled="disabled || !group.active" v-model="group.end" \n\t\t\t\t\t\t\t@input="emitInput" @focus="$emit(\'focus\')" @blur="formatValues(); $emit(\'blur\')"></v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',data:function(){return{localValue:null,timeMask:{clearMaskOnLostFocus:!0,mask:"99:99",placeholder:"__:__",showMaskOnHover:!1}}},props:{value:{default:null},disabled:{type:Boolean,default:!1}},watch:{value:function(){this.initLocalValueFromValue()}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},emitInput:function(){this.$emit("input",JSON.stringify(this.localValue))},formatValues:function(){_.each(this.localValue,function(t){function e(t){t=t.toString();return t=t.length<2?"0"+t:t}var n,a,i,s,l,o,c=Math.min,r=(t.start&&t.start.replace("_","0"),t.end&&t.end.replace("_","0"),t.start?t.start.split(":"):[]),d=t.end?t.end.split(":"):[];2==r.length&&(n=u(0,c(23,parseInt(r[0]))),a=u(0,c(59,parseInt(r[1]))),i=e(n)+":"+e(a),t.start=i),2==d.length&&(s=u(0,c(23,parseInt(d[0]))),l=u(0,c(59,parseInt(d[1]))),o=e(s)+":"+e(l),t.end=o),2==r.length&&2==d.length&&(s<n||n==s&&l<a)&&(t.start=o,t.end=i)})},initLocalValueFromValue:function(){var n=this;if(this.localValue=[{day:"1",title:"Понедельник",start:null,end:null,active:!1},{day:"2",title:"Вторник",start:null,end:null,active:!1},{day:"3",title:"Среда",start:null,end:null,active:!1},{day:"4",title:"Четверг",start:null,end:null,active:!1},{day:"5",title:"Пятница",start:null,end:null,active:!1},{day:"6",title:"Суббота",start:null,end:null,active:!1},{day:"7",title:"Воскресенье",start:null,end:null,active:!1}],this.value){if("string"==typeof this.value)try{this.localValue=JSON.parse(this.value)}catch(t){return}_.each(this.localValue,function(t){var e=_.find(n.value,{day:t.day}
1);e&&(t.start=e.start,t.end=e.end,t.active=e.active)})}}},created:function(){this.initLocalValueFromValue()}})}(),Vue.component("v-search-menu",{template:'\n\t<div class="v-search-menu search-menu">\n\t\t<div class="search-menu-form flc js-search-menu-form" :class="{\'search-menu-form--empty\': !localQuery}">\n\t\t\t<div class="search-menu-form__row" itemscope itemtype="https://schema.org/WebSite">\n\t\t\t\t<meta itemprop="url" content="https://atlant.by/"/>\n\t\t\t\t<div class="search-menu-form__cell-input" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">\n\t\t\t\t\t<meta itemprop="target" :content="staticDataSource.search.remote + \'?query={search}\'"/>\n\t\t\t\t\t<v-field type="search" v-model="localQuery" :placeholder="getMessage(\'ENTER_SEARCH_QUERY\')" name="search"\n\t\t\t\t\t\t\t @input="searchInput" white></v-field>\n\t\t\t\t</div>\n\t\t\t\t<div class="search-menu-form__cell-close">\n\t\t\t\t\t<button class="search-menu-form__close js-ph-menu__close" @click="close" aria-label="Закрыть">\n\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-close"></use></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="search-menu__result search-dd" v-if="search && localQuery">\n\t\t\t<div class="container">\n\t\t\t\t<div class="search-dd__layout">\n\t\t\t\t\t<div class="search-dd__aside" v-if="loading || lastQuery != localQuery">\n\t\t\t\t\t\t<div class="search-dd__note flc">{{getMessage(\'LOADING\')}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div class="search-dd__aside">\n\t\t\t\t\t\t\t<div class="search-dd__note flc" v-if="!search.suggestions || !search.suggestions.length">{{getMessage(\'EMPTY_SEARCH_RESULT_VARIANT\')}}</div>\n\t\t\t\t\t\t\t<div class="search-dd__suggestions flc" v-if="search.suggestions && search.suggestions.length">\n\t\t\t\t\t\t\t\t<a :href="suggestion.link" class="search-dd__suggestion"\n\t\t\t\t\t\t\t\t\t\tv-for="suggestion in search.suggestions" :key="suggestion.text"\n\t\t\t\t\t\t\t\t\t\tv-html="highlightQueryInText(suggestion.text)"></a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="search-dd__categories flc" v-if="categoriesPresent()">\n\t\t\t\t\t\t\t\t<div class="search-dd__category" v-for="category in search.categories" :class="{\'disabled\': !category.count}" v-if="category.type != \'products\'">\n\t\t\t\t\t\t\t\t\t<a :href="category.count ? category.link : null" class="arrow-link">{{category.text}}<template v-if="category.count">&nbsp;({{category.count}})</template><span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="search-dd__main" v-if="search.items && search.items.length || search.suggestions && search.suggestions.length">\n\t\t\t\t\t\t\t<template v-if="search.items && search.items.length">\n\t\t\t\t\t\t\t\t<div class="search-dd__list flc">\n\t\t\t\t\t\t\t\t\t<div class="search-dd__li" v-for="product in search.items">\n\t\t\t\t\t\t\t\t\t\t<v-product template="simple-list" :product="product"></v-product>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="search-dd__action flc">\n\t\t\t\t\t\t\t\t\t<div class="search-dd__action-btn" v-if="productsLink">\n\t\t\t\t\t\t\t\t\t\t<a :href="productsLink" class="btn btn--primary">\n\t\t\t\t\t\t\t\t\t\t\t{{getMessage(\'LOOK_ALL\')}}\n\t\t\t\t\t\t\t\t\t\t\t<svg class="btn__arrow-right btn__arrow-right--right svg-icon"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="search-dd__action-note">{{getMessage(\'FOUNDED\')}} {{productsCount}}</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t<div class="search-dd__note flc">{{getMessage(\'EMPTY_SEARCH_RESULT_PRODUCT\')}}</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{loading:!1,loadingMinTimeout:null,localQuery:null,lastQuery:null,
1searchTimeout:null,touchMode:View.mobileAndTabletCheck,search:{query:null,sugestions:null,categories:null}}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},computed:{productsCount:function(){var t;return this.search&&this.search.categories&&(t=_.find(this.search.categories,{type:"products"}))?t.count:0},productsLink:function(){var t;return this.search&&this.search.categories&&(t=_.find(this.search.categories,{type:"products"}))?t.link:null}},methods:{categoriesPresent:function(){return!(!this.search.categories||!this.search.categories.length||!_.find(this.search.categories,{type:"articles"}))},load:function(){var t=this,e=null;t.loading||(t.loading=!0,t.lastQuery=t.localQuery,$.ajax({url:t.search.remote,dataType:"json",method:"post",data:{bxajaxid:t.bxajaxid,query:t.localQuery}}).done(function(t){console.log("v-search-menu loaded",t),e=t}).fail(function(t){console.warn("v-search-menu load failed",t)}).always(function(){!e||e.search.query!=t.lastQuery&&0!=location.pathname.indexOf("/local/dist/markup/")||(t.search=e.search),t.loadingMinTimeout=null,t.loading=!1}))},close:function(){this.localQuery=null,View.control.closeHeaderMenu(),View.control.toggleMobileMenu("search"),this.search.suggestions=null,this.search.categories=null,this.lastQuery=null},searchInput:function(){clearTimeout(this.searchTimeout),this.localQuery?this.searchTimeout=setTimeout(this.load,1500):(this.search.products=0,this.search.suggestions=null,this.search.categories=null,this.lastQuery=null)},highlightQueryInText:function(e){try{return e.replace(new RegExp(this.localQuery,"i"),'<b class="in-text-highlight">$&</b>')}catch(t){return e}}},created:function(){this.remoteDataSource&&(this.search.remote=this.remoteDataSource)}}),Vue.component("v-search-product",{template:'\n\t<div class="v-search-product search-product">\n\t\t<div class="search-box">\n\t\t\t<div class="search-box__input">\n\t\t\t\t<v-field type="select" :options="options" searchable options-as-links :placeholder="placeholder" white></v-field>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',data:function(){return{catalog:{remote:null,items:null,loading:!1,loadingMinTimeout:null}}},props:{options:{default:null},placeholder:{default:null}},methods:{loadCatalog:function(t,e){function n(){var t;i&&(t=a.catalog.items,a.catalog=i.catalog,e)&&(a.catalog.items=t.concat(a.catalog.items)),a.loadingMinTimeout=null,a.loading=!1}var a=this,i=null,s=!1;a.loading||(a.loading=!0,t||(a.loadingMinTimeout=setTimeout(function(){s&&n(),a.loadingMinTimeout=null},300)),$.ajax({url:a.catalog.remote,method:"localhost"==window.location.hostname?"get":"post",dataType:"json",data:{bxajaxid:a.bxajaxid}}).done(function(t){console.log("v-accordion loaded",t),i=t}).fail(function(t){console.warn("v-accordion load failed",t)}).always(function(){s=!0,a.loadingMinTimeout&&!t||n()}))},slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)}},created:function(){var t=this;t.staticDataSource?t.catalog=t.staticDataSource.catalog:t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-search-service",{template:'\n\t<div class="v-search-service search-service">\n\t\t<form class="search-service__form" @submit.prevent="relocate">\n\t\t\t<div class="search-service__row" \n\t\t\t\t\t :class="{\'search-service__row--focus\': searchInputFocus}">\n\t\t\t\t<div class="search-service__select-input search-service__select-input--select">\n\t\t\t\t\t<v-field type="select"\n\t\t\t\t\t\t\t\t\t label="Поиск"\n\t\t\t\t\t\t\t\t\t :integrated-label="true"\n\t\t\t\t\t\t\t\t\t :options="field ? field.options : options"\n\t\t\t\t\t\t\t\t\t :disabled="false"\n\t\t\t\t\t         :value="field ? field.value : value"\n\t\t\t\t\t\t\t\t\t v-model="localQuerySelect"\n\t\t\t\t\t\t\t\t\t @input="changeSearchType">\n\t\t\t\t\t</v-field>\n\t\t\t\t</div>\n\t\t\t\t<div class="search-service__search-input">\n\t\t\t\t\t<v-field type="search"\n\t\t\t\t\t\t\t\t\t v-model="localQuery"\n\t\t\t\t\t\t\t\t\t :search-btn="true"\n\t\t\t\t\t\t\t\t\t :placeholder="field ? field.placeholder : placeholder"\n\t\t\t\t\t\t\t\t\t @input="searchInput" \n\t\t\t\t\t\t\t\t\t @focus="searchInputFocus = true" \n\t\t\t\t\t\t\t\t\t @blur="searchInputFocus = false">\n\t\t\t\t\t</v-field>\n\t\t\t\t\t<div class="text-input-label__search-btn">\n\t\t\t\t\t\t<svg class="text-input-label__icon svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-search"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button v-if="search && localQuery" \n\t\t\t\t\t\t\t\t\t@click="close" \n\t\t\t\t\t\t\t\t\tclass="text-input-label__search-btn" \n\t\t\t\t\t\t\t\t\ttype="button">\n\t\t\t\t\t\t<svg class="text-input-label__icon text-input-label__icon--small svg-icon">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-search-close"></use>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</form>\n\t\t<div class="search-service__result" v-if="search && localQuery && localQuery.length > 2">\n\t\t\t<div v-if="loading || lastQuery != localQuery" class="search-service__content">\n\t\t\t\t<div class="search-service__note flc">{{getMessage(\'LOADING\')}}</div>\n\t\t\t</div>\n\t\t\t<template v-else>\n\t\t\t\t<div class="search-service__content">\n\t\t\t\t\t<div v-if="search.items" class="search-service__list">\n\t\t\t\t\t\t<div v-for="product in search.items" class="search-service__list-item">\n\t\t\t\t\t\t\t<template v-if="searchType === \'sku\' || searchType === \'name\'">\n\t\t\t\t\t\t\t\t<v-product :view="searchType === \'sku\' ? \'search-sku\' : \'search-name\'"\n\t\t\t\t\t\t\t\t           template="detail"\n\t\t\t\t\t\t\t\t           class="product--small-detail flc"\n\t\t\t\t\t\t\t\t           :product="product"\n\t\t\t\t\t\t\t\t           :local-query="localQuery">\n\t\t\t\t\t\t\t\t</v-product>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if="searchType === \'model\' || searchType === \'assemblyunit\'">\n\t\t\t\t\t\t\t\t<v-product template="search-model"\n\t\t\t\t\t\t\t\t           :product="product"\n\t\t\t\t\t\t\t\t           :local-query="localQuery">\n\t\t\t\t\t\t\t\t</v-product>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="search.items" class="search-service__action">\n\t\t\t\t\t\t<a :href="search.link" class="btn btn--primary">\n\t\t\t\t\t\t\tСмотреть все<svg class="btn__arrow-right btn__arrow-right--right svg-icon">\n\t\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<div class="search-service__items-total">\n\t\t\t\t\t\t\t{{getMessage(\'FOUNDED\')}} {{search.itemsTotal}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n          <div key="not-found" v-if="!search.items" class="catalog__not-found-message">{{getMessage(\'EMPTY_SEARCH_RESULT\')}}</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{loading:!1,loadingMinTimeout:null,localQuery:null,localQuerySelect:null,lastQuery:null,
1searchTimeout:null,touchMode:View.mobileAndTabletCheck,search:{query:null,itemsTotal:null},field:null,searchType:null,searchInputFocus:!1}},props:{value:{default:null},placeholder:{default:""},options:{default:[]},remoteDataSource:{default:null},staticDataSource:{default:null},bxajaxid:{default:null}},watch:{value:function(){this.localQuerySelect=this.value},field:function(){this.localQuerySelect=this.field.value}},computed:{productsCount:function(){var t;return this.search&&this.search.categories&&(t=_.find(this.search.categories,{type:"products"}))?t.count:0},productsLink:function(){var t;return this.search&&this.search.categories&&(t=_.find(this.search.categories,{type:"products"}))?t.link:null}},methods:{relocate:function(){this.search.link&&(window.location=this.search.link)},changeSearchType:function(){this.searchInput()},categoriesPresent:function(){return!(!this.search.categories||!this.search.categories.length||!_.find(this.search.categories,{type:"articles"}))},load:function(t){var e=this,n=null;e.loading||(e.loading=!0,e.lastQuery=e.localQuery,$.ajax({url:e.search.remote,dataType:"json",method:"post",data:{bxajaxid:e.bxajaxid,action:t,query:e.localQuery,type:e.localQuerySelect}}).done(function(t){console.log("v-search-service loaded",t),n=t}).fail(function(t){console.warn("v-search-service load failed",t)}).always(function(){!n||n.search.query!=e.lastQuery&&0!=location.pathname.indexOf("/local/dist/markup/")||(e.search=n.search,e.field=e.search.field,e.searchType=e.search.type),e.loadingMinTimeout=null,e.loading=!1}))},close:function(){this.localQuery=null,View.control.closeHeaderMenu(),this.lastQuery=null},searchInput:function(){clearTimeout(this.searchTimeout),this.localQuery?this.searchTimeout=setTimeout(this.load,1500):(this.search.products=0,this.lastQuery=null)},highlightQueryInText:function(e){try{return e.replace(new RegExp(this.localQuery,"i"),'<b class="in-text-highlight">$&</b>')}catch(t){return e}}},created:function(){this.remoteDataSource&&(this.search.remote=this.remoteDataSource),this.value&&(this.localQuerySelect=this.value)}}),Vue.component("v-search",{template:'\n\t<div class="v-search catalog catalog--search">\n\t\t\n\t\t<h1 class="h1--small page-title flc">{{getMessage(\'SEARCH_RESULT\')}} <template v-if="catalog.query">«{{catalog.query}}»</template></h1>\n\n\t\t<div v-if="mode === \'regular\'" class="catalog__search">\n\t\t\t<div class="catalog__search-row">\n\t\t\t\t<div class="catalog__search-main">\n\t\t\t\t\t<form class="search-box" @submit.prevent="querySubmit">\n\t\t\t\t\t\t<div class="search-box__input">\n\t\t\t\t\t\t\t<v-field type="search" v-model="state.query" @input="queryInput" :suggestions="state.query == catalog.query ? catalog.suggestions : null"></v-field>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button type="submit" class="search-box__btn">\n\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-search"></use></svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="catalog__search-aside" v-if="catalog.searchNote">\n\t\t\t\t\t\t<div class="catalog__search-aside-note" v-html="catalog.searchNote"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="catalog__categories" v-if="catalog.categories && catalog.categories.length > 1">\n\t\t\t<div class="tab-labels">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>\n\t\t\t\t<div class="tab-labels__row">\n\t\t\t\t\t<div class="tab-labels__item" v-for="category in catalog.categories">\n\t\t\t\t\t\t<button type="button" class="tab-labels__btn" :class="{\'open\': category.id == catalog.activeCategoryId}" \n\t\t\t\t\t\t\t\t@click="changeTab" @click="state.activeCategoryId = category.id; stateChanged();">{{category.text}} ({{category.count || 0}})</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<template v-if="mode === \'simple\'">\n\t\t\t<div class="catalog__products flc">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>
1\n\t\t\t\t<div v-if="catalog.items && catalog.items.length"\n\t\t\t\t\t\t class="catalog__detail-list">\n\t\t\t\t\t<div v-for="(item, index) in catalog.items"\n\t\t\t\t\t\t\t class="catalog__detail-item">\n\t\t\t\t\t\t<v-product template="search-detail" :product="item" :local-query="catalog.query"></v-product>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n        <template v-else>\n          <div class="models-grid">\n            <div class="models-grid__message">{{getMessage(\'NO_MODELS\')}}</div>\n          </div>\n        </template>\n\t\t\t</div>\n\t\t</template>\n\t\t\n\t\t<template v-else-if="mode === \'model-list\'">\n\t\t\t<div class="catalog__model-list">\n\t\t\t\t<v-catalog-line :view="mode"\n\t\t\t\t                :static-data-source=\'{"catalog": catalog}\'\n\t\t\t\t                bxajaxid="1С-Битрикс"\n\t\t\t\t                show-counters \n\t\t\t\t                :local-query="catalog.query">\n\t\t\t\t</v-catalog-line>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else-if="mode === \'model-units\'">\n\t\t\t<div class="catalog__model-list">\n\t\t\t\t<v-catalog-line :view="mode"\n\t\t\t\t                :static-data-source=\'{"catalog": catalog}\'\n\t\t\t\t                bxajaxid="1С-Битрикс"\n\t\t\t\t                show-counters\n\t\t\t\t                :local-query="catalog.query">\n\t\t\t\t</v-catalog-line>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<div class="catalog__products flc">\n\t\t\t\t<transition name="content-fade">\n\t\t\t\t\t<div class="loader-cover" v-if="loading"></div>\n\t\t\t\t</transition>\n\n\t\t\t\t<transition name="content-fade" mode="out-in">\n\t\t\t\t\t<div key="not-found" v-if="!catalog.items || !catalog.items.length" class="catalog__not-found-message">{{getMessage(\'EMPTY_SEARCH_RESULT\')}}</div>\n\t\t\t\t\t<v-product-grid key="products" v-else-if="activeCategory && activeCategory.type == \'products\' && !loading" :items="catalog.items" :bxajaxid="bxajaxid"></v-product-grid>\n\t\t\t\t\t<div key="support" v-else-if="activeCategory && activeCategory.type == \'support\' && !loading">\n\t\t\t\t\t\t<div class="support-list">\n\t\t\t\t\t\t\t<div class="support-list__item" v-for="item in catalog.items" :key="item.id">\n\t\t\t\t\t\t\t\t<div class="support-li">\n\t\t\t\t\t\t\t\t\t<a :href="item.link" class="support-li__link"></a>\n\t\t\t\t\t\t\t\t\t<div class="support-li__cell-image">\n\t\t\t\t\t\t\t\t\t\t<div class="support-li__img-box">\n\t\t\t\t\t\t\t\t\t\t\t<img :src="item.image" alt="" v-if="item.image">\n\t\t\t\t\t\t\t\t\t\t\t<div class="support-li__img-box-no-photo" v-else>\n\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-no-photo"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class="support-li__cell-main">\n\t\t\t\t\t\t\t\t\t\t<div class="support-li__meta flc" v-if="item.sku || item.series">\n\t\t\t\t\t\t\t\t\t\t\t{{item.sku}} <template v-if="item.sku && item.series"> / </template> <template v-if="item.series">{{getMessage(\'SERIES\')}} {{item.series}}</template>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<h4 class="support-li__title flc" v-if="item.name" v-html="highlightQueryInText(item.name)"></h4>\n\t\t\t\t\t\t\t\t\t\t<div class="support-li__content flc" v-if="item.text" v-html="highlightQueryInText(item.text)"></div>\n\t\t\t\t\t\t\t\t\t\t<div class="support-li__content-links flc" v-if="item.links && item.links.length">\n\t\t\t\t\t\t\t\t\t\t\t<a :href="link.link" class="support-li__content-link flc" v-for="link in item.links">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="support-li__content-link-icon">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon"><use :xlink:href="link.icon"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="support-li__content-link-text" v-html="highlightQueryInText(link.text)"></div>\n\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div key="articles" v-else-if="activeCategory && !loading">\n\t\t\t\t\t\t<div class="simple-article-list flc">\n\t\t\t\t\t\t\t<div class="simple-article-list__item" v-for="item in catalog.items">\n\t\t\t\t\t\t\t\t<div class="simple-article-li flc">\n\t\t\t\t\t\t\t\t\t<div class="simple-article-li__nav flc" v-if="item.navChain && item.navChain.length">\n\t\t\t\t\t\t\t\t\t\t<div class="breadcrumbs-list">\n\t\t\t\t\t\t\t\t\t\t\t<div class="breadcrumbs-list__grid">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class="breadcrumbs-list__item" v-for="crumb in item.navChain">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a :href="crumb.link" class="breadcrumbs-list__link">{{crumb.text}}</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class="svg-icon breadcrumbs-list__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<a :href="item.link" class="simple-article-li__body flc">\n\t\t\t\t\t\t\t\t\t\t<h4 class="simple-article-li__title flc" v-if="item.title" v-html="highlightQueryInText(item.title)"></h4>\n\t\t\t\t\t\t\t\t\t\t<div class="simple-article-li__content flc" v-if="item.title" v-html="highlightQueryInText(item.text)"></div>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<transition name="content-fade">\n\t\t\t<v-page-nav class="catalog__navigation"\n\t\t\t\t:static-data-source="catalog.pages" \n\t\t\t\t@navigate="navigateByPage"\n\t\t\t\tv-if="(mode === \'regular\' || mode === \'simple\' || mode === \'model-list\')  && catalog.pages && parseInt(catalog.pages.count) && parseInt(catalog.pages.count) > parseInt(catalog.pages.limit)"></v-page-nav>\n\t\t</transition>\n\n\t\t<div class="catalog__recently-viewed flc" v-if="$slots[\'recently-viewed\']">\n\t\t\t<slot name="recently-viewed"></slot>\n\t\t</div>\n\n\t\t<div class="catalog__note flc" v-if="$slots[\'note\']">\n\t\t\t<div class="catalog__note-container">\n\t\t\t\t<slot name="note"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy,vueMixins.formatting],data:function(){return{catalog:{items:null,remote:null,itemsTotal:null,itemsCount:null,query:null,filters:null,pages:{offset:null,limit:null,count:null}},state:{query:null,activeCategoryId:void 0,pages:{offset:null,limit:null}},loading:!1,loadingMinTimeout:null,initialized:!1,filterIsChanged:!1,changedFilters:null,filterDebounceTimeout:null}},props:{remoteDataSource:{default:null},staticDataSource:{default:null},mode:{default:"regular"},bxajaxid:{default:null}},computed:{activeCategory:function(){return this.catalog&&this.catalog.categories?_.find(this.catalog.categories,{id:this.state.activeCategoryId}):null}},methods:{changeTab:function(){this.state.offset=0},navigateByLink:function(t){this.catalog.remote=t.href,this.state.filter=null,this.loadCatalog(!1,!1,!0)},navigateByPage:function(t){this.state.offset=t.offset,this.state.limit=t.limit,this.loadCatalog()},loadCatalog:function(t,e,n){function a(){if(l){var t=s.catalog.items;s.catalog=l.catalog,e&&(s.catalog.items=t.concat(s.catalog.items)),e||s.pushState();try{s.state.query=l.catalog.query,s.state.pages=l.catalog.pages}catch(t){console.warn("v-search: something wrong with state\n",t)}s.catalog.activeCategoryId?s.state.activeCategoryId=s.catalog.activeCategoryId:s.state.activeCategoryId&&s.activeCategory||(s.state.activeCategoryId=s.catalog.categories&&s.catalog.categories[0]?s.catalog.categories[0].id:null)}s.loadingMinTimeout=null,s.loading=!1,s.$forceUpdate()}var i,s=this,l=null,o=!1;s.loading||(s.loading=!0,t||(s.loadingMinTimeout=setTimeout(function(){o&&a(),s.loadingMinTimeout=null},300)),(i=_.clone(s.state)).filter||(i.filter=null),$.ajax({url:s.catalog.remote,method:"localhost"==window.location.hostname||n?"get":"post",dataType:"json",data:{state:i,loadByLink:n,bxajaxid:s.bxajaxid}}).done(function(t){console.log("v-search loaded",t),l=t}).fail(function(t){console.warn("v-search load failed",t)}).always(function(){o=!0,s.loadingMinTimeout&&!t||a()}))}
1,loadMore:function(){this.state.pages.offset=parseInt(this.catalog.pages.offset)+parseInt(this.catalog.pages.limit),this.loadCatalog(!1,!0)},queryInput:function(){var t=this;clearTimeout(t.filterDebounceTimeout),t.filterDebounceTimeout=setTimeout(function(){t.stateChanged()},1500)},querySubmit:function(){this.stateChanged()},stateChanged:function(){clearTimeout(this.filterDebounceTimeout),this.loadCatalog()},resetFilter:function(t){void 0===t?this.$refs.filter.$emit("reset"):this.$refs.filter.$emit("reset",t.id,t.value)},handlePopState:function(t){t.state&&"v-search"==t.state.component&&(console.log("v-search: pop state",t.state),this.state=t.state.state,this.catalog=t.state.catalog)},pushState:function(){"localhost"!=window.location.hostname&&window.history.pushState({component:"v-search",state:this.state,catalog:this.catalog},"",this.catalog.remote)},highlightQueryInText:function(e){try{return e.replace(new RegExp(this.state.query,"i"),'<b class="in-text-highlight">$&</b>')}catch(t){return e}}},created:function(){var t=this;if(t.staticDataSource){t.catalog=t.staticDataSource.catalog,t.catalog.activeCategoryId?t.state.activeCategoryId=t.catalog.activeCategoryId:t.catalog&&t.catalog.categories&&(t.state.activeCategoryId=t.catalog.categories[0].id),t.staticDataSource.pages&&(t.state.pages.limit=parseInt(t.staticDataSource.pages.limit));try{t.state.query=t.staticDataSource.catalog.query,t.state.pages=t.staticDataSource.catalog.pages}catch(t){console.warn("v-search: something wrong with initial sort value\n",t)}console.log("v-search loaded from static data",t.catalog),t.$forceUpdate()}else t.remoteDataSource&&(t.catalog.remote=t.remoteDataSource,t.filterPreset&&(this.filterIsChanged=!0,this.state.filter=_.map(t.filterPreset,function(t){return{id:t.id,value:t.value,type:t.type}})),t.loadCatalog(!0));window.addEventListener("popstate",t.handlePopState),t.staticDataSource&&t.pushState(),Vue.nextTick(function(){t.initialized=!0})},destroyed:function(){window.removeEventListener("popstate",this.handlePopState)}}),Vue.component("v-service-center",{template:'\n\t<article class="v-service-center service-center">\n\t\t<div class="service-center__info-block">\n\t\t\t<div class="service-center__text-wrap">\n\t\t\t\t<div class="service-center__marks">\n\t\t\t\t\t<div class="service-center__mark flc">\n\t\t\t\t\t\t<span class="service-center__mark-name service-center__mark-name--rating">\n\t\t\t\t\t\t\tРейтинг\n\t\t\t\t\t\t\t<span class="inline-tooltip-wrap" aria-label="Подсказка">&nbsp;&nbsp;<span class="inline-tooltip dropdown-owner js-dropdown"><span class="inline-tooltip__btn js-dropdown__btn"></span> <span class="inline-tooltip__body dropdown js-dropdown__body js-tooltip-position" style="left: -26.1719px;">\n\t\t\t\t\t\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n\t\t\t\t\t\t\t\t\t</span></span></span>\t\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<div class="service-center__rating-label">\n\t\t\t\t\t\t\t<svg class="svg-icon service-center__rating-label-ico"><use xlink:href="#svg-icon-rating-star"></use></svg> <span class="service-center__rating-label-num">9,99</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="service-center__mark flc">\n\t\t\t\t\t\t<span class="service-center__mark-name">\n\t\t\t\t\t\t\tОперативность\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class="service-center__mark-value">\n\t\t\t\t\t\t\t<svg class="svg-icon service-center__mark-ico"><use xlink:href="#svg-icon-clock-fast"></use></svg> <span class="service-center__mark-num"></span>\n\t\t\t\t\t\t\t9,84\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="service-center__mark flc">\n\t\t\t\t\t\t<span class="service-center__mark-name">\n\t\t\t\t\t\t\tКачество\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class="service-center__mark-value">\n\t\t\t\t\t\t\t<svg class="svg-icon service-center__mark-ico"><use xlink:href="#svg-icon-emoticon"></use></svg> <span class="service-center__mark-num"></span>\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="service-center__mark flc">\n\t\t\t\t\t\t<span class="service-center__mark-name">\n\t\t\t\t\t\t\tКультура обслуживания\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class="service-center__mark-value">\n\t\t\t\t\t\t\t<svg class="svg-icon service-center__mark-ico"><use xlink:href="#svg-icon-heart-outline"></use></svg> <span class="service-center__mark-num"></span>\n\t\t\t\t\t\t\t8,66\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\n\n\t\t\t\t<span class="service-center__btn btn btn--primary hidden-3xs js-open-modal"\n\t\t\t\t\t  data-modal-data=\'{\n\t\t\t\t\t  "className": "modal
1--lg modal--form",\n\t\t\t\t\t  "ownHistory": false\n\t\t\t\t\t  }\'\n\t\t\t\t\t  :data-modal-url="\'/personal/repair_form.php?SERVICE_ID=\'+factory.id">{{ getMessage(\'SEND_ORDER\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t</span>\n\n\t\t\t\t<span class="service-center__btn service-center__btn--hidden btn btn--primary visible-3xs js-open-modal"\n\t\t\t\t\t  data-modal-data=\'{\n\t\t\t\t\t  "className": "modal--lg modal--form",\n\t\t\t\t\t  "ownHistory": false\n\t\t\t\t\t  }\'\n\t\t\t\t\t  :data-modal-url="\'/personal/repair_form.php?SERVICE_ID=\'+factory.id">{{ getMessage(\'SEND_ORDER\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></span>\n\t\t\t\t\t  \n\t\t\t\t<span class="service-center__btn service-center__btn--hidden btn btn--primary js-open-modal"\n\t\t\t\t\t  data-modal-data=\'{\n\t\t\t\t\t  "className": "modal--lg modal--form",\n\t\t\t\t\t  "ownHistory": false\n\t\t\t\t\t  }\'\n\t\t\t\t\t :data-modal-url="\'/support/services/send_service_error.php?CATEGORY=error&SERVICE_ID=\'+factory.id + \'&REGION=\'+factory.region_id">{{ getMessage(\'SEND_ORDER\') }}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow"><use xlink:href="#svg-icon-chevron-right"></use></svg></span></span>\t  \n\t\t\t\t\t  \n\t\t\t</div>\n\t\t\t<img class="service-center__pic" src="/local/images/markup-images/services/service-img.jpg" alt="">\n\t\t</div>\n\n\t\t<div class="service-center__contacts">\n\t\t\t<div class="service-center__contact flc">\n\t\t\t\t<div class="service-center__contact-title">\n\t\t\t\t\tАдрес\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tпр. Дзержинского, 119<br>\n\t\t\t\t\tг. Минск, Беларусь\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\t<a href="www.atlantshop.by">www.atlantshop.by</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="service-center__contact flc">\n\t\t\t\t<div class="service-center__contact-title">\n\t\t\t\t\tВремя работы\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tпн-вс — 10:00 до 20:00\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\tсб-вс — 10:00 до 18:00\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="service-center__contact flc">\n\t\t\t\t<div class="service-center__contact-title">\n\t\t\t\t\tКонтакты\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\t<a href="tel:+375173666841">+375 17 366-68-41</a>\n\t\t\t\t</div>\n\t\t\t\t<div class="service-center__text">\n\t\t\t\t\t<a href="tel:+375336432352">+375 33 643-23-52</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="service-center__services">\n\n\t\t\t<div class="service-center__services-title">\n\t\t\t\tВиды услуг\n\t\t\t</div>\n\n\t\t\t<div class="service-center__text">\n\t\t\t\tГарантийное сервисное обслуживание и ремонт холодильников, стиральных машин, плит, чайников.\n\t\t\t</div>\n\n\t\t\t<div class="service-center__attention-wrap">\n\t\t\t\t<div class="attention attention--no-border">\n\t\t\t\t\t<svg class="svg-icon attention__ico-attention"><use xlink:href="#svg-icon-attention"></use></svg> <span class="attention__attention-text">\n\t\t\t\t\t\tПожалуйста, уточняйте виды оказываемых услуг по телефонам.\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<div class="service-center__map-wrap">\n\t\t\t<v-map :coords="[53.900000, 27.566670]" adjust-initial-bounds right-controls small>\n\t\t\t\t<v-map-point\n\t\t\t\t\t:key="serviceCenter.id"\n\t\t\t\t\t:coords="serviceCenter.marker.coords"\n\t\t\t\t\t:pin-num="serviceCenter.marker.pinNum"\n\t\t\t\t\t:pin-alt="serviceCenter.marker.pinAlt"\n\t\t\t\t\tmarker-type="placemark"\n\t\t\t\t\t></v-map-point>\n\t\t\t</v-map>\n\t\t</div>\n\n\t\t<v-reviews :static-data-source="null" :remote-data-source="serviceCenter.reviewsLink" :bxajaxid="bxajaxid"></v-reviews>\n\n\t</article>\n',data:function(){return{serviceCenter:null,loading:!1,loadingMinTimeout:null}},props:{staticDataSource:{default:null},bxajaxid:{default:null}},methods:{loadCatalog:function(t){function e(){a&&(n.serviceCenter=a.serviceCenter),n.loadingMinTimeout=null,n.loading=!1,n.$emit("loaded")}var n=this,a=null,i=!1;n.loading||(n.loading=!0,t||(n.loadingMinTimeout=setTimeout(function(){i&&e(),n.loadingMinTimeout=null},300)),$.ajax({url:n.serviceCenter.remote,method:"post",dataType:"json",data:{bxajaxid:n.bxajaxid}}).done(function(t){console.log("v-service-center loaded",t),a=t}).fail(function(t){console.warn("v-service-center load failed",t)}).always(function(){i=!0,n.loadingMinTimeout&&!t||e()}))}},created:function(){var t=this;t.staticDataSource?(t.serviceCenter=t.staticDataSource.serviceCenter,t.$emit("loaded"),console.log("v-service-center loaded from static data",t.serviceCenter)):t.remoteDataSource&&(t.serviceCenter.remote=t.remoteDataSource,t.loadCatalog(!0))}}),Vue.component("v-share-btn",{template:'\n\t<div class="v-share-btn share-btn-block dropdown-owner js-dropdown">\n\t\t<div class="share-btn js-dropdown__btn">\n\t\t\t<span class="share-btn__visual">\n\t\t\t\t<svg class="svg-icon"><use xlink:href="#svg-icon-share"></use></svg>\n\t\t\t</span>\n\t\t\t<span class="share-btn__text">{{getMessage(\'SHARE_IT\')}}</span>\n\t\t</div>\n\t\t<div class="dropdown js-dropdown__body">\n\t\t\t<div ref="share" class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus"></div>\n\t\t</div>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],mou
1nted:function(){Ya&&Ya.share2&&Ya.share2(this.$refs.share)}}),Vue.component("v-simple-form",{template:'\n\t<div class="v-simple-form simple-form" >\n\t\t<form class="rich-form__form form flc" @submit.prevent="loadForm()" autocomplete="off" v-if="form && !(form.success && hideFormOnSuccess)">\n\t\t\t<div class="form__row flc" v-for="(field, index) in fields">\n\t\t\t\t<div class="form__col">\n\t\t\t\t\t<v-field\n\t\t\t\t\t\t:extendable="field.extendable || false"\n\t\t\t\t\t\t:extend-limit="field.extendLimit || 5"\n\t\t\t\t\t\t:extend-text="field.extendText || getMessage(\'ADD\')"\n\t\t\t\t\t\t:type="field.type"\n\t\t\t\t\t\t:options="field.options"\n\t\t\t\t\t\t:disabled="field.disabled"\n\t\t\t\t\t\t:label="field.label"\n\t\t\t\t\t\t:integrated-label="true"\n\t\t\t\t\t\t:error="getFieldError(fieldGroup, extGroupIndex, field)"\n\t\t\t\t\t\t:note="field.note"\n\t\t\t\t\t\t:description="field.description"\n\t\t\t\t\t\tv-model="field.value"\n\t\t\t\t\t\t@fileinput="fileInput(field, $event)"\n\t\t\t\t\t\t@fileremove="fileRemove(field, $event)"\n\t\t\t\t\t\t@remove="valueRemove(field, $event)"\n\t\t\t\t\t></v-field>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</form>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{loading:!1,loadingMinTimeout:null,form:{title:null,remote:null,fieldGroups:null,success:null,errors:null,message:null},localFormData:null}},props:{staticDataSource:{default:null},remoteDataSource:{default:null},bxajaxid:{default:null},hideFormOnSuccess:{default:!0,type:Boolean},frame:{type:Boolean,default:!0}},methods:{slideDown:function(t,e){$(t).hide().slideDown(200,e)},slideUp:function(t,e){$(t).show().slideUp(200,e)},getFieldError:function(t,e,n){return this.form.errors&&this.form.errors.fields?t.extendable?(t=_.find(this.form.errors.fields,{name:t.name}))&&_.find(t.errors[e],{name:n.name})||null:_.find(this.form.errors.fields,{name:n.name})||null:null},fileInput:function(t,e){for(var n=0;n<e.target.files.length;n++)this.localFormData.append(t.name+"["+e.key+"]",e.target.files[n])},fileRemove:function(t,e){this.localFormData.delete(t.name+"["+e.key+"]")},valueRemove:function(t,e){this.form.errors&&this.form.errors.fields&&(t=_.find(this.form.errors.fields,{name:t.name}))&&t.errors&&t.errors[e]&&t.errors.splice(e,1)},isAsideRequired:function(t,n){return!!_.find(this.form.fieldGroups,function(t,e){return!(n<e||!_.find(t.fields,{type:"photo"}))})},isAsideEmpty:function(t){return!_.find(t.fields,{type:"photo"})},cloneFieldGroup:function(t){var e=JSON.parse(JSON.stringify(t.fields[0]));_.each(e,function(t){t.value=t.extendable?[null]:null}),t.fields.push(e),this.iteration++},removeFieldGroup:function(t,e){var n;this.form.errors&&this.form.errors.fields&&0<=(n=_.findIndex(this.form.errors.fields,{name:t.name}))&&this.form.errors.fields.splice(n,1),t.fields.splice(e,1),this.iteration++},loadForm:function(t){function e(){if(a){if(s.form=a.form,a.success&&a.redirect)return window.location.href=a.redirect;if(a.success&&a.reload)return window.location.reload();Vue.nextTick(function(){var t,e=$(window).scrollTop(),n=$(s.$el.parentNode);s.form.errors&&s.form.errors.fields&&s.form.errors.fields.length?(t=n.find(".form-error")).length&&((t=t.offset().top)+30<e||t+30>e+window.innerHeight)&&$("html, body").animate({scrollTop:t-30},400):n.offset().top<e&&(t=n.closest(".modal").length?90:30,$("html, body").animate({scrollTop:n.offset().top-t},400)),s.$emit("submit",a)})}s.loadingMinTimeout=null,s.loading=!1,s.$emit("loaded")}var i,s=this,a=null,n=!1;s.loading||(s.loading=!0,t||(s.loadingMinTimeout=setTimeout(function(){n&&e(),s.loadingMinTimeout=null},300)),i=[],s.form&&s.form.fieldGroups&&_.each(s.form.fieldGroups,function(a){_.each(a.extendable?a.fields:[a.fields],function(t,n){_.each(t,function(t){var e;i.indexOf(t.name)<0&&(s.localFormData.delete(t.name),i.push(t.name)),t.value||(t.value=""),"file"!==t.type&&(e=a.extendable?a.name+"["+n+"]["+t.name.replace("[]","")+"]":(a.name||"")+t.name.replace("[]",""),t.extendable&&(e+="[]"),_.each(t.extendable?t.value:[t.value],function(t){s.localFormData.append(e,t)}))})})}),$.ajax({url:s.form.remote,method:"post",dataType:"json",data:s.localFormData,processData:!1,contentType:!1}).done(function(t){console.log("v-rich-form loaded",t),a=t}).fail(function(t){console.warn("v-rich-form load failed",t)}).always(function(){n=!0,s.loadingMinTimeout&&!t||e()}))}},created:function(){var t=this;t.staticDataSource?(t.form=t.staticDataSource.form,t.$emit("loaded")):t.remoteDataSource&&(t.form.remote=t.remoteDataSource,t.loadForm(!0)),t.localFormData=new FormData,t.localFormData.append("bxajaxid",t.bxajaxid)}}),Vue.component("v-sitemap-item-setting",{template:'\n    <div>\n        <table style="width:100%">\n            <tr>\n                <td>Название</td>\n                <td colspan="3">\n                    <input type="text" v-model="nodeLocal.name">\n                </td>\n            </tr>\n            <tr>\n                <td>Ссылка</td>\n                <td colspan="3">\n                    <input type="text" v-model="nodeLocal.link">\n                </td>\n            </tr>\n        </table>\n        <div class="adm-detail-content">\n            <div class="adm-detail-title">Подпункты {{nodeLocal.name}}</div>\n            <div class="adm-detail-tabs-block">
1\n                 <span class="adm-detail-tab"\n                       @click=\'addChilds()\'\n                 >\n                        +\n                 </span>\n                <span\n                        v-for="(child, childIndex) in nodeLocal.childs"\n                        :key="child.id"\n                        :class="{ \'adm-detail-tab-active\' : childIndex == current_child }"\n                        class="adm-detail-tab"\n                        @click="current_child = childIndex"\n                >\n                            {{child.name || childIndex + 1}}\n                    </span>\n            </div>\n            <div class="adm-detail-content-wrap">\n                <div\n                        v-for="(child, childIndex) in nodeLocal.childs"\n                        :key="child.id"\n                        class="adm-detail-content"\n                        :style="{ display : childIndex == current_child  ? \'block\' : \'none\' }"\n                >\n                    <input type="button" value="X" @click="nodeLocal.childs.splice(childIndex, 1)"\n                           class="deleted-button">\n                    <v-sitemap-item-setting v-bind:node="child"></v-sitemap-item-setting>\n                </div>\n            </div>\n        </div>\n    </div>\n',data:function(){return{current_child:0,nodeLocal:{}}},props:{node:{default:{name:"",link:"",childs:[]},type:Object}},created:function(){this.initLocalValueFromValue()},methods:{addChilds:function(){var t=(new Date).getTime();this.nodeLocal.childs.push({id:t,name:"",link:"",childs:[]})},initLocalValueFromValue:function(){this.nodeLocal=this.node}}}),Vue.component("v-slick",{template:'\n\t<div class="v-slick slick">\n\t\t<slot></slot>\n\t</div>\n',data:function(){return{jqueryEl:null,localOptions:_.defaults(this.options||{},{prevArrow:'<span class="slick-arrow slick-prev"><svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-left"></use></svg></span>',nextArrow:'<span class="slick-arrow slick-next"><svg class="svg-icon"><use xlink:href="#svg-icon-lg-chevron-right"></use></svg></span>',responsive:[{breakpoint:View.breakpoints["xs-max"],settings:{arrows:!1,dots:!0}}]})}},props:{options:{type:Object},sliderMode:{type:Boolean,default:!0}},watch:{sliderMode:function(t,e){t&&!e?this.create():$(this.$el).slick("setPosition")}},methods:{create:function(){var t,e=this;e.sliderMode&&((t=$(this.$el)).on("afterChange",this.onAfterChange),t.on("beforeChange",this.onBeforeChange),t.on("breakpoint",this.onBreakpoint),t.on("destroy",this.onDestroy),t.on("edge",this.onEdge),t.on("init",this.onInit),t.on("reInit",this.onReInit),t.on("setPosition",this.onSetPosition),t.on("swipe",this.onSwipe),t.on("lazyLoaded",this.onLazyLoaded),t.on("lazyLoadError",this.onLazyLoadError),t.on("beforeChange touchstart",function(){t.addClass("slick-animated")}),t.on("afterChange touchend",function(){t.removeClass("slick-animated")}),Vue.nextTick(function(){Vue.nextTick(function(){$(e.$el).slick(e.localOptions)})}))},reSlick:function(){$(this.$el).slick("unslick"),this.create()},setPosition:function(){$(this.$el).slick("setPosition")},next:function(){$(this.$el).slick("slickNext")},prev:function(){$(this.$el).slick("slickPrev")},pause:function(){$(this.$el).slick("slickPause")},play:function(){$(this.$el).slick("slickPlay")},goTo:function(t,e){$(this.$el).slick("slickGoTo",t,e)},currentSlide:function(){$(this.$el).slick("slickCurrentSlide")},add:function(t,e,n){$(this.$el).slick("slickAdd",t,e,n)},remove:function(t,e){$(this.$el).slick("slickRemove",t,e)},filter:function(t){$(this.$el).slick("slickFilter",t)},unfilter:function(){$(this.$el).slick("slickUnfilter")},getOption:function(t){$(this.$el).slick("slickGetOption",t)},setOption:function(t,e,n){$(this.$el).slick("slickSetOption",t,e,n)},onAfterChange:function(t,e,n){this.$emit("afterChange",t,e,n)},onBeforeChange:function(t,e,n,a){this.$emit("beforeChange",t,e,n,a),this.setDotClasses(t,e,n,a)},onBreakpoint:function(t,e,n){this.$emit("breakpoint",t,e,n)},onDestroy:function(t,e){this.$emit("destroy",t,e)},onEdge:function(t,e,n){this.$emit("edge",t,e,n)},onInit:function(t,e){this.$emit("init",t,e)},onReInit:function(t,e){this.$emit("reInit",t,e)},onSetPosition:function(t,e){this.$emit("setPosition",t,e)},onSwipe:function(t,e,n){this.$emit("swipe",t,e,n)},onLazyLoaded:function(t,e,n,a){this.$emit("lazyLoaded",t,e,n,a)},onLazyLoadError:function(t,e,n,a){this.$emit("lazyLoadError",t,e,n,a)},setDotClasses:function(t,e,n,a){var i=this;
1this.jqueryEl.find(".slick-dots li").removeClass("slick-dot-on-edge slick-dot-out-of-edge").each(function(t,e){var n;i.$slots.default&&(n=Math.max(0,5-a),5<a&&a-t==5-n||a<i.$slots.default.length-5&&a-t==-5-n?$(e).addClass("slick-dot-on-edge"):(5-n<a-t||a-t<-5-n)&&$(e).addClass("slick-dot-out-of-edge"))})}},mounted:function(){var t=this;t.sliderMode&&(t.create(),t.jqueryEl=$(t.$el),Vue.nextTick(function(){setTimeout(function(){t.setDotClasses(null,null,0,0)},200)}))},beforeDestroy:function(){}}),Vue.component("v-subscr-btn",{template:'\n\t<div class="v-subscr-btn subscr-btn">\n\t\t<transition name="content-fade" mode="out-in">\n\t\t\t<div v-if="!showField" class="subscr-btn__base" key="base">\n\t\t\t\t<div class="arrow-link" @click="showSubscrForm">\n\t\t\t\t\t<svg class="svg-icon svg-icon--message arrow-link__icon"><use xlink:href="#svg-icon-message"></use></svg>\n\t\t\t\t\t{{buttonText}}<span class="arrow-link__tail">&nbsp;&nbsp;<svg class="svg-icon arrow-link__arrow">\n\t\t\t\t\t\t\t<use xlink:href="#svg-icon-chevron-right"></use></svg></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class="subscr-btn__form js-subscr-form" key="form">\n\t\t\t\t<v-rich-form\n\t\t\t\t\talt-btn\n\t\t\t\t\t:frame="false"\n\t\t\t\t\t:static-data-source="form"\n\t\t\t\t\tremote-data-source="null"\n\t\t\t\t\t:bxajaxid="bxajaxid">\n\t\t\t\t</v-rich-form>\n\t\t\t</div>\n\t\t</transition>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],data:function(){return{showField:!1,form:null}},props:{bxajaxid:{default:null},buttonText:{default:"Подписаться"},successUrl:{default:null},unsubscribeUrl:{default:null},showUnsubscribePopup:{default:null},formData:{default:null}},created:function(){var t=this;t.form=JSON.parse(t.formData),t.showUnsubscribePopup&&t.unsubscribeUrl&&modalController.openUrl(t.unsubscribeUrl)},methods:{showSubscrForm:function(){this.showField=!this.showField,console.log(this.form),$(document).on("click.subscrform",this.clickOutsideForm)},clickOutsideForm:function(e){var n=this,t=document.querySelectorAll(".js-subscr-form");Array.prototype.forEach.call(t,function(t){t&&!t.contains(e.target)&&(n.showField=!1)})}},destroyed:function(){$(document).off("click.subscrform",this.clickOutsideForm)}}),Vue.component("v-subscribe-info",{template:'\n\t<div class="v-subscribe-info subscribe-info">\n\t\t<transition name="content-fade" mode="out-in">\n\t\t\t<div class="loader-cover" v-if="loading" key="cover"></div>\n\t\t</transition>\n\t\t<label class="subscribe-info__arrow-link-wrap">\n\t\t\t<input type="checkbox" v-model="form.isSigned" @change="toggleSubscribtion">\n\t\t\t<svg class="svg-icon svg-icon--message arrow-link__icon c-primary"><use xlink:href="#svg-icon-message"></use></svg>\n\t\t\t{{getMessage(\'SUBSCRIBE_TITLE\')}}\n\t\t</label>\n\n    <div class="subscribe-info__subscr-text flc">\n      {{form.subscribeFormDescription}}\n    </div>\n\n    <div class="subscribe-info__subscr-text flc">\n      {{form.subscribeFormSubdescription}}\n    </div>\n\t\t\n\t\t<form class="subscribe-info__form" v-if="!staticDataSource.form.hideSubscribeForm">\n\t\t\t<div class="form__row">\n\t\t\t\t<div class="form__col">\n\t\t\t\t\t<v-rich-form \n\t\t\t\t\t\t:frame="false"\n\t\t\t\t\t\t:static-data-source="staticDataSource"\n\t\t\t\t\t\t:remote-data-source="remoteDataSource"\n\t\t\t\t\t\t:bxajaxid="bxajaxid"\n\t\t\t\t\t>\n\t\t\t\t\t</v-rich-form>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</form>\n\t</div>\n',mixins:[window.localizationMixin||vueMixins.localizationMixinProxy],props:{staticDataSource:{default:null},remoteDataSource:{default:null},bxajaxid:{default:null},email:{default:null}},data:function(){return{loading:!1,form:!1,localFormData:new FormData}},methods:{toggleSubscribtion:function(){var e=this;e.loading||(e.loading=!0,e.localFormData.set("state[action]","submit"),e.localFormData.set("bxajaxid",e.bxajaxid),e.localFormData.set("isSigned",e.form.isSigned),$.ajax({url:e.staticDataSource.form.remote,method:"post",dataType:"json",data:e.localFormData,processData:!1,contentType:!1}).done(function(t){console.log("v-rich-form loaded",t),e.form=t.form}).fail(function(t){console.warn("v-rich-form load failed",t)}).always(function(){e.loading=!1}))}},created:function(){this.form=this.staticDataSource.form}}),function(t){for(var e=[".js-v-scope"],n=0;n<e.length;n++)$(e[n],t).each(function(){new Vue({el:this})})});View.ready(function(){vueLaunch(document.body),$(document).trigger("vueReady")});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.