(()=>{"use strict";var e={3008:(e,t,s)=>{e.exports=s.p+"images/5a9b103dc314a4c73396.png"},20611:(e,t,s)=>{e.exports=s.p+"images/a84c2cd630adcb2fb844.png"},31728:(e,t,s)=>{e.exports=s.p+"images/0615efa9ac4d4acf62b9.png"},45934:(e,t,s)=>{e.exports=s.p+"images/890f12fd1d84b35d3027.png"},57971:(e,t,s)=>{e.exports=s.p+"images/ca96080890acb13f1452.png"},62408:(e,t,s)=>{e.exports=s.p+"images/5bf5ce672a831fe493f0.png"},67133:(e,t,s)=>{e.exports=s.p+"images/2ebcbbf6c232bb00f2a6.png"},70654:(e,t,s)=>{e.exports=s.p+"images/e7566180fedbca0ab884.png"},72400:(e,t,s)=>{e.exports=s.p+"images/b46f607e557fa86ce5de.png"},72673:(e,t,s)=>{e.exports=s.p+"images/cb601ecb4902055371fa.png"},82542:(e,t,s)=>{e.exports=s.p+"images/4cd0bf4f6c3826be20e9.png"},86439:(e,t,s)=>{e.exports=s.p+"images/cf8cd32effce8f14064b.png"},88951:(e,t,s)=>{e.exports=s.p+"images/4c951c42399a4da74eb2.png"},94939:(e,t,s)=>{e.exports=s.p+"images/f4b9fc927a6cbb785fb7.png"},99323:(e,t,s)=>{e.exports=s.p+"images/de8424720353369deee7.png"}},t={};function s(n){var a=t[n];if(void 0!==a)return a.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,s),r.exports}function n(e){return e.map(e=>({tel_url:`tel:${e.replace(/[^\d+]/g,"")}`,tel_text:e}))}function a(e,t){let s=e.findIndex(e=>e.name===t.city);return-1!==s?(e[s].htmlData.push({...t,telephoneNumbers:n(JSON.parse(t.telephoneNumbers)),emails:JSON.parse(t.emails)}),e):[...e,{name:t.city,textId:t.city_text_id,htmlData:[{...t,telephoneNumbers:n(JSON.parse(t.telephoneNumbers)),emails:JSON.parse(t.emails)}]}]}s.m=e,s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.p="/",s.b="undefined"!=typeof document&&document.baseURI||self.location.href,s.p,new URL(s(72400),s.b),new URL(s(82542),s.b),new URL(s(57971),s.b),new URL(s(86439),s.b),new URL(s(70654),s.b),new URL(s(99323),s.b),new URL(s(88951),s.b),new URL(s(45934),s.b),new URL(s(67133),s.b),new URL(s(62408),s.b),new URL(s(94939),s.b),new URL(s(20611),s.b),new URL(s(72673),s.b),new URL(s(31728),s.b),new URL(s(3008),s.b);class r{constructor({data:e,renderer:t,el:s},n,a=0){this._renderedItems=e,this._container=s?s.querySelector(n):document.querySelector(n),this._renderer=t,this._delay=0,this._delayTime=a}hideParentEl(){this._container.closest(".parent-sect").style.display="none"}setItem(e){this._container.prepend(e)}setData(e){this._renderedItems=e}setItems(e){this._renderedItems=e}appendItem(e){this._container.append(e)}clear(){this._container.innerHTML="",this._delay=0}renderFiltered(e){this.clear(),this._renderedItems=e,this._renderedItems.forEach(e=>{this._renderer(e)}),0===e.length&&(this._container.textContent="По Вашему условию поиска статей пока нет.")}renderItems(){this._renderedItems.forEach(e=>{e["data-wow-delay"]=this._delay/1e3+"s",setTimeout(()=>{this._renderer(e)},this._delay),this._delay+=this._delayTime})}renderItem(e){this._renderer(e)}renderItemsSlice(e,t){this.clear(),this._renderedItems.slice(e,t).forEach(e=>{this._renderer(e)})}renderItemsFilteredByKey(e,t){this.clear(),this._renderedItems.filter(s=>s[e]===t).forEach(e=>{this._renderer(e)})}}class i{constructor(e){this._configFields=e,this._elementsMap=new Map,this._sectionsMap=new Map;const t={};e.forEach(e=>{t[e.selector]||(t[e.selector]=[]),t[e.selector].push(e)}),this._configBySelector=t}_configElementsMap(e){Object.keys(this._configBySelector).forEach(t=>{const s=e.querySelector(t);s?this._configBySelector[t].forEach(n=>{if(this[n.privateVarname]=s,"array"!==n.whatChange)this._elementsMap.set(n.privateVarname,{element:s,whatChange:n.whatChange,keyInData:n.key_in_dataobj,formatter:n.formatter||!1,type:"property"});else{this._elementsMap.set(n.privateVarname,{element:s,whatChange:n.whatChange,keyInData:n.key_in_dataobj,type:"array"});const a=n.configForInnerSection,i=new r({items:[],el:e,renderer:e=>{const t=new o({cardTemplateSelector:a.cardTemplateSelector,cardSelector:a.cardSelector,configFields:a.configFields,cardObj:e}).generateCard();i.appendItem(t)}},t);this._sectionsMap.set(n.privateVarname,i)}}):console.warn(`Элемент с селектором ${t} не найден в карточке`)})}_setProperty(e,t){const s=e.element,n=e.whatChange,a=e.keyInData,r=e.formatter||!1;null===t[a]&&(s.closest(".parent-sect")&&(s.closest(".parent-sect").style.display="none"),console.log("element.closest('.parent-sect')",s.closest(".parent-sect"))),s&&void 0!==t[a]&&null!==t[a]&&("textContent"===n?s.textContent=r?r(t[a]):t[a]:"innerHTML"===n?s.innerHTML=r?r(t[a]):t[a]:"src"===n?s.src=r?r(t[a]):t[a]:"alt"===n?s.alt=r?r(t[a]):t[a]:n in s&&(s[n]=r?r(t[a]):t[a]))}_renderArray(e,t,s){const n=e.keyInData,a=this._sectionsMap.get(t);console.log("Пытаемся отрендерить массивчик тегов data[dataKey]=",s[n],Array.isArray(s[n])),console.log(this._sectionsMap),console.log("config.",e),a&&Array.isArray(s[n])&&(a._container.closest(".parent-sect")&&!s[n].length&&(console.log("YOOOO section._container.closest"),a._container.closest(".parent-sect").style.display="none"),console.log("element.closest('.parent-sect')",a),e.element.innerHTML="",a.setItems(s[n]),a.renderItems())}_renderObj(e){this._elementsMap.forEach((t,s)=>{"property"===t.type&&this._setProperty(t,e)}),this._elementsMap.forEach((t,s)=>{"array"===t.type&&this._renderArray(t,s,e)})}_clearObj(){this._sectionsMap.forEach((e,t)=>{const s=this._elementsMap.get(t);s&&s.element&&(s.element.innerHTML="")}),this._elementsMap.forEach((e,t)=>{const s=e.element,n=e.whatChange;s&&("textContent"===n||"innerHTML"===n?s[n]="":"src"===n?s.src="":"alt"===n?s.alt="":"value"===n&&(s.value=""))})}updateField(e,t){const s=this._elementsMap.get(e);s&&s.element&&(s.element[s.whatChange]=t)}}class o{constructor({cardTemplateSelector:e,cardSelector:t,configFields:s,cardObj:n,handleCardClick:a},r=null){this._handleCardClick=a,this._cardTemplateSelector=e,this._cardSelector=t,this._dynamicRenderer=r||new i(s),this._cardObj=n}_getTemplate(){return document.querySelector(this._cardTemplateSelector).content.querySelector(this._cardSelector).cloneNode(!0)}generateCard(){return this._element=this._getTemplate(),console.log(this._configBySelector),this._dynamicRenderer._configElementsMap(this._element),console.log(this._elementsMap),this._dynamicRenderer._renderObj(this._cardObj),this._setEventListeners(),this._element}_setEventListeners(){this._handleCardClick&&this._element.addEventListener("mousedown",()=>{this._handleCardClick(this._cardObj,this._element)})}}class l{constructor(e,t){this._modal=document.querySelector(e),this._buttonClose=this._modal.querySelector(".popup-button-close"),this._closeButtonSelector=".popup-button-close",this._openedClass="popup_opened",this._handleEscButton=e=>{"Escape"===e.key&&this.close()},this._handleOverlayClick=e=>{e.target.classList.contains("popup_opened")&&this.close()},this._isOpened=!1}open(){this._modal.classList.add(this._openedClass),this._isOpened=!0,this._isEscHandleEnabled&&document.addEventListener("keydown",this._handleEscButton),this._isOverlayEnabled&&this._modal.addEventListener("mousedown",this._handleOverlayClick),this._isBodyFixWhenOpen&&document.querySelector("body").classList.add("body-fixed")}close(){this._modal.classList.remove(this._openedClass),this._isOpened=!1,this._isEscHandleEnabled&&document.removeEventListener("keydown",this._handleEscButton),this._isOverlayEnabled&&this._modal.removeEventListener("mousedown",this._handleOverlayClick),this._isBodyFixWhenOpen&&document.querySelector("body").classList.remove("body-fixed")}setEventListeners({overlay:e=!0,esc:t=!0,bodyfix:s=!0}={}){this._isOverlayEnabled=e,this._isEscHandleEnabled=t,this._isBodyFixWhenOpen=s,this._buttonClose.addEventListener("mousedown",()=>{this.close()})}}class c extends l{constructor(e,t,{openedClass:s=null,closeButtonSelector:n=null,handleOpen:a=null,handleClose:r=null}={}){super(t),this._configFields=e.configFields,this._popupSelector=t,e.buttonCloseSelector&&(this._buttonClose=this._modal.querySelector(e.buttonCloseSelector)),this._dynamicRenderer=new i(e.configFields),this._temporaryCloseHandler=null,s&&(this._openedClass=s),n&&(this._closeButtonSelector=n),a&&(this._handleOpen=a),r&&(this._handleClose=r)}setModalElement(e){this._modal=e,this._isHtmlLoaded=!0}setEventListeners({overlay:e=!0,esc:t=!0,bodyfix:s=!0}={}){super.setEventListeners({overlay:e,esc:t,bodyfix:s}),this._dynamicRenderer._configElementsMap(this._modal)}open(e){console.log(this),this._dynamicRenderer._renderObj(e),super.open(),this._handleOpen&&this._handleOpen()}close(){this._dynamicRenderer._clearObj(),this._temporaryCloseHandler&&(this._temporaryCloseHandler(),this._clearTemporaryHandler()),super.close(),this._handleClose&&this._handleClose()}setTemporaryHandleClose(e){this._temporaryCloseHandler=e}_clearTemporaryHandler(){this._temporaryCloseHandler=null}getPopupEl(){return this._modal}}function d(){let e=window.innerWidth;return window.addEventListener("resize",function(){var t;setTimeout((t=window.innerWidth,void(e=t)),1500)}),e}class h extends r{constructor({moreButtonClass:e,moreButtonHiddenClass:t,...s},n){super(s,n),super.clear(),d()>1024&&(this._countBase=3),d()<=1024&&(this._countBase=4),this._buttonMore=document.querySelector(`.${e}`),this._buttonMoreHiddenClass=t,s.callbackmore&&(console.log("callbackmore найден"),this._callbackmore=s.callbackmore),this._checkMoreButtonState(),this._buttonMore.addEventListener("mousedown",()=>{this._countBase+=this.additionalCount(),this._checkMoreButtonState(),this.clear(),this.renderItems()})}additionalCount(){const e=d();return e>1024?3:e<=1024?2:void 0}renderFiltered(e){this._container.classList.add("section-loading"),setTimeout(()=>{if(this._renderedItems=e,this._countBase=3,this._checkMoreButtonState(),this.clear(),0===e.length){const e=document.createElement("p");e.setAttribute("style","color:#f2f2f2; font-size:24px; margin-left: 10px"),e.textContent="По Вашему условию поиска статей пока нет.",this._container.append(e)}this.renderItems(),this._container.classList.remove("section-loading")},800)}_showMoreButtonState(){this._buttonMore.classList.contains(this._buttonMoreHiddenClass)&&this._buttonMore.classList.remove(this._buttonMoreHiddenClass)}_hideMoreButtonState(){this._buttonMore.classList.add(this._buttonMoreHiddenClass)}_checkMoreButtonState(){this._countBase{this._renderer(e)}),this._checkMoreButtonState()}}class _ extends r{constructor({data:e,renderer:t},s,n=0){super({data:e,renderer:t},s,n),this._resizeTimeout=null,this.handleWindowResize=this.handleWindowResize.bind(this),window.addEventListener("resize",this.handleWindowResize),this._touchStartX=0,this._touchEndX=0,this._minSwipeDistance=50,this._baseSlideSize=this._calculateItemsPerSlide(),this._container.style.setProperty("grid-template-columns",`repeat(${this._baseSlideSize}, 1fr)`),this._currentItems=[],this._currentIndex=0,this._container.addEventListener("touchstart",this._handleTouchStart.bind(this),{passive:!0}),this._container.addEventListener("touchend",this._handleTouchEnd.bind(this),{passive:!0})}_handleTouchStart(e){this._touchStartX=e.changedTouches[0].screenX,this._touchEndX=0}_handleTouchEnd(e){this._touchEndX=e.changedTouches[0].screenX,this._handleSwipe()}_handleSwipe(){const e=this._touchStartX-this._touchEndX;e>this._minSwipeDistance&&this.nextSlide(),e<-this._minSwipeDistance&&this.prevSlide(),this._touchStartX=0,this._touchEndX=0}_calculateItemsPerSlide(){const e=window.innerWidth;return e<768?1:e<1280?2:3}renderInitialSlide(){const e=this._renderedItems.slice(0,this._baseSlideSize);this._currentItems=e,e.forEach(e=>{this._renderer(e)})}nextSlide(){if(this._currentIndex+this._baseSlideSize0){this._container.querySelector(".news-small-card:last-child").remove(),this._currentItems.pop();const e=this._renderedItems[this._currentIndex-1];this._currentItems.unshift(e),this._renderer(e,!0),this._currentIndex--}}handleWindowResize(){this._resizeTimeout&&clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout(()=>{const e=this._calculateItemsPerSlide();e!==this._baseSlideSize&&(this.clear(),this._baseSlideSize=e,this._container.style.setProperty("grid-template-columns",`repeat(${this._baseSlideSize}, 1fr)`),this._currentIndex=0,this.renderInitialSlide()),this._resizeTimeout=null},300)}}function p(e){return e.map(e=>{const t=new Date(e.date),s=t.getMonth()+1;return{...e,formattedDate:e.date?`${t.getDate()}.${s<10?"0":""}${s}.${t.getFullYear()}`:"",images:JSON.parse(e.images)}}).sort((e,t)=>new Date(t.date)-new Date(e.date))}function m(e){return e.map(e=>({...e,sequence:JSON.parse(e.sequence),dict:JSON.parse(e.dict)}))}function u(e){return e.map(e=>({...e,tags:JSON.parse(e.tags),consumersIds:JSON.parse(e.consumersIds)}))}function g(e){return e.map(e=>({...e,tags:JSON.parse(e.tags),relevanceIds:JSON.parse(e.relevanceIds),consumersIds:JSON.parse(e.consumersIds),imagesFromGalleryIds:JSON.parse(e.imagesFromGalleryIds)}))}function b(e){return e.map(e=>({...e,additional_data:e.additional_data}))}const y=new class{constructor({baseUrl:e,headers:t}){this._baseUrl=e,this._headers=t}_isResponseOk(e){return e.ok?e.json():Promise.reject(`Ошибка: ${e.status}`)}getDataRequest(e){return fetch(`https://${this._baseUrl}/data/${e}`,{headers:this._headers}).then(e=>this._isResponseOk(e))}getCustomRequest(e){return fetch(`https://${this._baseUrl}/custom/${e}`,{headers:this._headers}).then(e=>this._isResponseOk(e))}getSharedTable(e){return fetch(`https://${this._baseUrl}/${e}`,{headers:this._headers}).then(e=>this._isResponseOk(e))}getReviewRequest(e){return fetch(`https://${this._baseUrl}/reviews/${e}`,{headers:this._headers}).then(e=>this._isResponseOk(e))}sendForm(e,t){return fetch(`https://${this._baseUrl}/forms/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),isBase64Encoded:!1}).then(e=>(console.log(e),this._isResponseOk(e)))}}({baseUrl:"api.termoblok.ru",headers:{Accept:"application/json","Content-Type":"application/json;charset=utf-8"}}),{api:f,service:S}={service:{getNews:()=>y.getSharedTable("news").then(p),getContacts:()=>y.getSharedTable("contacts").then(b),getDicts:()=>y.getSharedTable("sharedDictAndFields").then(m),getFaqs:()=>y.getSharedTable("faqs").then(g),getGallery:()=>y.getSharedTable("gallery").then(u)},api:y},C={...S,getPtoObjects:()=>f.getDataRequest("objects").then(e=>e.filter(e=>"pto"===e.typeOfEq)),getBtpObjects:()=>f.getDataRequest("objects").then(e=>e.filter(e=>"btp"===e.typeOfEq)),getObjects:()=>f.getDataRequest("objects"),getBlogCards:()=>f.getDataRequest("blogCards"),getPartners:()=>f.getDataRequest("partners"),sendBigForm:e=>f.sendForm("big-form",e),sendCallForm:e=>f.sendForm("small-form",e)},w=document.querySelector(".map"),{section:x,popup:v}=function(e){const{popupConfig:t,cardConfig:s,initialData:n,dataTransformCallback:a,addStylesFunc:l,sectionSelector:d,paginatorConfig:p,type:m,isPrepend:u,handleItemClick:g}=e;let b=null;t&&(b=new c(t,t.popupSelector,t.additional),b.setEventListeners(t.additional?.listeners));const y=new i(s.configFields),f={data:n||[],renderer:(e,t=!1)=>{const n=(e=>{let t=e;a&&(t=a(e));const n=e.cardConfig||s;return new o({cardTemplateSelector:n.cardTemplateSelector,cardSelector:n.cardSelector,cardObj:t,configFields:n.configFields,handleCardClick:(e,t)=>{g?.(e,t),b?.open(e)}},e.cardConfig?null:y).generateCard()})(e);l&&l(n,y,e),u||t?S.setItem(n):S.appendItem(n)}};let S;switch(m){case"paginator":S=new h({...f,...p},d);break;case"slider":S=new _({...f},d);break;default:S=new r(f,d)}return{section:S,...b&&{popup:b}}}({popupConfig:{popupSelector:".map__popup",buttonCloseSelector:".popup-button-close",additional:{openedClass:"map__popup_opened",listeners:{overlay:!1,esc:!1,bodyfix:!1}},configFields:[{selector:".map-popup-city",whatChange:"textContent",privateVarname:"_mapTitleEl",key_in_dataobj:"name"},{selector:".map__popup-container",whatChange:"array",privateVarname:"_mapCardPartnersSection",key_in_dataobj:"htmlData",configForInnerSection:{cardTemplateSelector:"#partner-template-advanced",cardSelector:".partner-card",configFields:[{selector:".partner-name",whatChange:"textContent",privateVarname:"_partnerName",key_in_dataobj:"nameOfPartner"},{selector:".partner-city",whatChange:"textContent",privateVarname:"_partnerCity",key_in_dataobj:"city"},{selector:".partner-logo",whatChange:"src",privateVarname:"_partnerLogo",key_in_dataobj:"logo"},{selector:".partner-logo",whatChange:"alt",privateVarname:"_partnerLogoAlt",key_in_dataobj:"nameOfPartner"},{selector:".partner-site",whatChange:"href",privateVarname:"_partnerSite",key_in_dataobj:"site"},{selector:".partner-site",whatChange:"textContent",privateVarname:"_partnerSiteText",key_in_dataobj:"site"},{selector:".telephones-section",whatChange:"array",privateVarname:"_telsSection",key_in_dataobj:"telephoneNumbers",configForInnerSection:{cardTemplateSelector:"#phone-template-advanced",cardSelector:".contact-phone",configFields:[{selector:".phone-link",whatChange:"href",privateVarname:"_phoneLink",key_in_dataobj:"tel_url"},{selector:".phone-text",whatChange:"textContent",privateVarname:"_phoneText",key_in_dataobj:"tel_text"}],dataobj_test:{tel_url:"tel:88007000958",tel_text:"8 800 700-09-58"}}},{selector:".emails-section",whatChange:"array",privateVarname:"_emailsSection",key_in_dataobj:"emails",configForInnerSection:{cardTemplateSelector:"#email-template-advanced",cardSelector:".contact-email",configFields:[{selector:".email-link",whatChange:"href",privateVarname:"_emailLink",key_in_dataobj:"email_url"},{selector:".email-text",whatChange:"textContent",privateVarname:"_emailText",key_in_dataobj:"email_text"}],dataobj_test:{email_url:"mailto:info@example.com",email_text:"info@example.com"}}}],dataobj_test:{nameOfPartner:"ООО «Хортэк-ОПТ»",city:"Санкт-Петербург",logo:"/images/partners/hortek-logo.png",emails:[{email_url:"mailto:info@hortek.ru",email_text:"info@hortek.ru"},{email_url:"mailto:sales@hortek.ru",email_text:"sales@hortek.ru"}],site:"https://hortek.ru",telephoneNumbers:[{tel_url:"tel:+78121234567",tel_text:"+7 (812) 123-45-67"},{tel_url:"tel:+78001234567",tel_text:"8 (800) 123-45-67"}]}}}],dataobj_test:{name:"Санкт-Петербург",textId:"sankt-peterburg",htmlData:[{city:"Санкт-Петербург",city_text_id:"sankt-peterburg",emails:[{email_url:"mailto:info@hortek.ru",email_text:"info@hortek.ru"},{email_url:"mailto:sales@hortek.ru",email_text:"sales@hortek.ru"}],id:25,logo:null,nameOfPartner:"ООО «Хортэк-ОПТ»",site:null,telephoneNumbers:[{tel_url:"tel:+78121234567",tel_text:"+7 (812) 123-45-67"},{tel_url:"tel:+78001234567",tel_text:"8 (800) 123-45-67"}]},{city:"Санкт-Петербург",city_text_id:"sankt-peterburg",emails:[{email_url:"mailto:info@hortek.ru",email_text:"info@hortek.ru"},{email_url:"mailto:sales@hortek.ru",email_text:"sales@hortek.ru"}],id:26,logo:null,nameOfPartner:"ООО «Спарта»",site:null,telephoneNumbers:[{tel_url:"tel:+78121234567",tel_text:"+7 (812) 123-45-67"},{tel_url:"tel:+78001234567",tel_text:"8 (800) 123-45-67"}]}]}},cardConfig:{cardTemplateSelector:"#partner-item-template-adv",cardSelector:".map__list-item",configFields:[{selector:".city",whatChange:"textContent",privateVarname:"_mapTitleButtonEl",key_in_dataobj:"name"}],dataobj_test:{name:"Санкт-Петербург",textId:"sankt-peterburg",htmlData:[]}},sectionSelector:".map__list",type:"base",handleItemClick:(e,t)=>{v._isOpened&&(v._temporaryCloseHandler(),v.setTemporaryHandleClose(null)),v.setTemporaryHandleClose(()=>{t.classList.remove("map__list-item_active")}),t.classList.add("map__list-item_active")}});w&&async function(){w.classList.add("section-loading");const e=(await C.getPartners()).reduce(a,[]);e.sort((e,t)=>e.name.localeCompare(t.name)),x.setItems(e),x.renderItems(),w.classList.remove("section-loading")}()})();