(()=>{"use strict";class e{constructor({cardTemplateSelector:e,cardSelector:t,configFields:s,cardObj:n,handleCardClick:r},o=null){this._handleCardClick=r,this._cardTemplateSelector=e,this._cardSelector=t,this._dynamicRenderer=o||new a(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 t{constructor({data:e,renderer:t,el:a},s,n=0){this._renderedItems=e,this._container=a?a.querySelector(s):document.querySelector(s),this._renderer=t,this._delay=0,this._delayTime=n}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(a=>a[e]===t).forEach(e=>{this._renderer(e)})}}class a{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(a){Object.keys(this._configBySelector).forEach(s=>{const n=a.querySelector(s);n?this._configBySelector[s].forEach(r=>{if(this[r.privateVarname]=n,"array"!==r.whatChange)this._elementsMap.set(r.privateVarname,{element:n,whatChange:r.whatChange,keyInData:r.key_in_dataobj,formatter:r.formatter||!1,type:"property"});else{this._elementsMap.set(r.privateVarname,{element:n,whatChange:r.whatChange,keyInData:r.key_in_dataobj,type:"array"});const o=r.configForInnerSection,i=new t({items:[],el:a,renderer:t=>{const a=new e({cardTemplateSelector:o.cardTemplateSelector,cardSelector:o.cardSelector,configFields:o.configFields,cardObj:t}).generateCard();i.appendItem(a)}},s);this._sectionsMap.set(r.privateVarname,i)}}):console.warn(`Элемент с селектором ${s} не найден в карточке`)})}_setProperty(e,t){const a=e.element,s=e.whatChange,n=e.keyInData,r=e.formatter||!1;null===t[n]&&(a.closest(".parent-sect")&&(a.closest(".parent-sect").style.display="none"),console.log("element.closest('.parent-sect')",a.closest(".parent-sect"))),a&&void 0!==t[n]&&null!==t[n]&&("textContent"===s?a.textContent=r?r(t[n]):t[n]:"innerHTML"===s?a.innerHTML=r?r(t[n]):t[n]:"src"===s?a.src=r?r(t[n]):t[n]:"alt"===s?a.alt=r?r(t[n]):t[n]:s in a&&(a[s]=r?r(t[n]):t[n]))}_renderArray(e,t,a){const s=e.keyInData,n=this._sectionsMap.get(t);console.log("Пытаемся отрендерить массивчик тегов data[dataKey]=",a[s],Array.isArray(a[s])),console.log(this._sectionsMap),console.log("config.",e),n&&Array.isArray(a[s])&&(n._container.closest(".parent-sect")&&!a[s].length&&(console.log("YOOOO section._container.closest"),n._container.closest(".parent-sect").style.display="none"),console.log("element.closest('.parent-sect')",n),e.element.innerHTML="",n.setItems(a[s]),n.renderItems())}_renderObj(e){this._elementsMap.forEach((t,a)=>{"property"===t.type&&this._setProperty(t,e)}),this._elementsMap.forEach((t,a)=>{"array"===t.type&&this._renderArray(t,a,e)})}_clearObj(){this._sectionsMap.forEach((e,t)=>{const a=this._elementsMap.get(t);a&&a.element&&(a.element.innerHTML="")}),this._elementsMap.forEach((e,t)=>{const a=e.element,s=e.whatChange;a&&("textContent"===s||"innerHTML"===s?a[s]="":"src"===s?a.src="":"alt"===s?a.alt="":"value"===s&&(a.value=""))})}updateField(e,t){const a=this._elementsMap.get(e);a&&a.element&&(a.element[a.whatChange]=t)}}class s{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:a=!0}={}){this._isOverlayEnabled=e,this._isEscHandleEnabled=t,this._isBodyFixWhenOpen=a,this._buttonClose.addEventListener("mousedown",()=>{this.close()})}}class n extends s{constructor(e,t,{openedClass:s=null,closeButtonSelector:n=null,handleOpen:r=null,handleClose:o=null}={}){super(t),this._configFields=e.configFields,this._popupSelector=t,e.buttonCloseSelector&&(this._buttonClose=this._modal.querySelector(e.buttonCloseSelector)),this._dynamicRenderer=new a(e.configFields),this._temporaryCloseHandler=null,s&&(this._openedClass=s),n&&(this._closeButtonSelector=n),r&&(this._handleOpen=r),o&&(this._handleClose=o)}setModalElement(e){this._modal=e,this._isHtmlLoaded=!0}setEventListeners({overlay:e=!0,esc:t=!0,bodyfix:a=!0}={}){super.setEventListeners({overlay:e,esc:t,bodyfix:a}),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 r(e){return e.map(e=>{const t=new Date(e.date),a=t.getMonth()+1;return{...e,formattedDate:e.date?`${t.getDate()}.${a<10?"0":""}${a}.${t.getFullYear()}`:"",images:JSON.parse(e.images)}})}function o(e){return e.map(e=>({...e,sequence:JSON.parse(e.sequence),dict:JSON.parse(e.dict)}))}function i(e){return e.map(e=>({...e,tags:JSON.parse(e.tags),consumersIds:JSON.parse(e.consumersIds)}))}function l(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 c(e){return e.map(e=>({...e,additional_data:e.additional_data}))}const h=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.rezervuar22.ru",headers:{Accept:"application/json","Content-Type":"application/json;charset=utf-8"}});function d(e){return e.map(e=>({...e,collections:JSON.parse(e.collections)}))}const{api:_,service:p}={service:{getNews:()=>h.getSharedTable("news").then(r),getContacts:()=>h.getSharedTable("contacts").then(c),getDicts:()=>h.getSharedTable("sharedDictAndFields").then(o),getFaqs:()=>h.getSharedTable("faqs").then(l),getGallery:()=>h.getSharedTable("gallery").then(i)},api:h},m={...p,getPrice:()=>_.getCustomRequest("viking-price"),reviews:{pozh:()=>_.getReviewRequest("pozharnye-rezervuary").then(d)}},u={"/catalog/reviews/pozharnye-rezervuary/":{popupConfig:{popupSelector:".popup-pozharnye",buttonCloseSelector:".popup-button-close",configFields:[{selector:"#h1",whatChange:"textContent",privateVarname:"_h1Element",key_in_dataobj:"h1"},{selector:"#h1_sm",whatChange:"textContent",privateVarname:"_h1SmElement",key_in_dataobj:"h1_sm"},{selector:"#h1_sm_2",whatChange:"textContent",privateVarname:"_h1Sm2Element",key_in_dataobj:"h1_sm"},{selector:"#main_image_fileName",whatChange:"src",privateVarname:"_mainImageElement",key_in_dataobj:"category_main_image_fileName",formatter:e=>`https://www.rezervuar22.ru/api-images/gallery/${e}`},{selector:"#razrez_image_fileName",whatChange:"src",privateVarname:"_razrezImageElement",key_in_dataobj:"category_razrez_image_fileName",formatter:e=>`https://www.rezervuar22.ru/api-images/gallery/${e}`},{selector:"#title_my",whatChange:"textContent",privateVarname:"_titleMyElement",key_in_dataobj:"title_my"},{selector:"#categoryTextId",whatChange:"textContent",privateVarname:"_categoryTextIdElement",key_in_dataobj:"categoryTextId"},{selector:"#textId",whatChange:"textContent",privateVarname:"_textIdElement",key_in_dataobj:"textId"},{selector:"#linkPath",whatChange:"textContent",privateVarname:"_linkPathElement",key_in_dataobj:"linkPath"},{selector:"#price",whatChange:"textContent",privateVarname:"_priceElement",key_in_dataobj:"price",formatter:e=>`${e} руб.`},{selector:"#acronymRu",whatChange:"textContent",privateVarname:"_acronymRuElement",key_in_dataobj:"acronymRu"},{selector:"#acronym_exp",whatChange:"textContent",privateVarname:"_acronymExpElement",key_in_dataobj:"acronym_exp"},{selector:"#sizeUtf",whatChange:"textContent",privateVarname:"_sizeUtfElement",key_in_dataobj:"sizeUtf"},{selector:"#thinAll",whatChange:"textContent",privateVarname:"_thinAllElement",key_in_dataobj:"thinAll"},{selector:"#product_diameter",whatChange:"textContent",privateVarname:"_productDiameterElement",key_in_dataobj:"product_diameter"},{selector:"#product_width",whatChange:"textContent",privateVarname:"_productWidthElement",key_in_dataobj:"product_width"},{selector:"#product_height",whatChange:"textContent",privateVarname:"_productHeightElement",key_in_dataobj:"product_height"},{selector:"#product_massa",whatChange:"textContent",privateVarname:"_productMassaElement",key_in_dataobj:"product_massa"},{selector:"#product_steel",whatChange:"textContent",privateVarname:"_productSteelElement",key_in_dataobj:"product_steel"},{selector:"#product_corrosion_temp",whatChange:"textContent",privateVarname:"_productCorrosionTempElement",key_in_dataobj:"product_corrosion_temp"}]},dataServiceKey:"pozh"}};!async function(){const e=window.location.pathname,{dataServiceKey:t,popupConfig:a}=u[e],s=(r=(await m.reviews[t]())[0].collections.reduce((e,t)=>[...e,...t.items],[]),r.reduce((e,t)=>({...e,[t.textId]:t}),{}));var r;const o=new n(a,a.popupSelector);Array.from(document.querySelectorAll(".popup-pozh-card")).map(e=>e.addEventListener("click",e=>{e.stopPropagation(),console.log(e.target),o.open(s[e.target.closest(".popup-pozh-card").id])})),o.setEventListeners()}()})();