PageSourceSearch

https://kapster.kz/_nuxt/catalog-developers.12f4926c.js

js kapster.kz collected 2026-10-08 12:12:51 UTC 15,015 bytes, 1 lines download raw bytes

1var ae=Object.defineProperty;var re=(s,e,t)=>e in s?ae(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var V=(s,e,t)=>(re(s,typeof e!="symbol"?e+"":e,t),t);import{_ as ce}from"./breadcrumbs.vue.86eba0cb.js";import{_ as le}from"./searchbox.vue.7890386f.js";import{_ as ie}from"./select-city.vue.1b22d185.js";import{_ as _e,a as pe}from"./share-config.vue.83cca2b7.js";import{h as w,o as r,c as d,a as v,w as P,k as C,b as o,f as c,d as de,r as R,a5 as ue,g as me,i as l,a1 as N,G as ve,Q as ye,t as b,q as x,L as O,j as k,F as D,l as Q,_ as ge,z as K,a6 as H,a7 as I,W as fe,B as he,T as M,D as be,a2 as ke}from"./entry.5b3977f8.js";import{Q as $e,v as xe}from"./query-builder.9719d294.js";import{p as we}from"./area.9e4ef3a6.js";import{m as G}from"./developers.cff73195.js";import{Q as Pe}from"./query-parser.bc8b2e48.js";import{Q as A}from"./QP.f427c9f2.js";import{l as j}from"./cities.1ee520a0.js";import{m as Ce}from"./makeFoundCountText.1a379bde.js";import{_ as Te}from"./dropdown-sort.vue.5f8f94e8.js";import{_ as J}from"./user-avatar.vue.698e1517.js";import{_ as U}from"./nuxt-link.002d1a86.js";import{_ as W}from"./icon-profile-verified.98c3418b.js";import{_ as De}from"./grid-counters.vue.e0640ea3.js";import{m as Y,a as L}from"./products.96b39714.js";import{f as Se}from"./format_price_billions.9dec6564.js";import{_ as Re}from"./optional-link.vue.d4be4e04.js";import{u as qe}from"./useMyI18n.34abe854.js";import{_ as Be}from"./pagination.vue.75d92fea.js";import{u as Qe}from"./cities.de3d3690.js";import{p as Ve}from"./pagination.69ee675d.js";import{m as E}from"./common.50d9d227.js";import"./svg-icon.vue.7f829b0a.js";import"./useAppSearchApi.4dc7055a.js";import"./debounce.5e33fa7c.js";import"./index.f18cc5be.js";import"./select.ce2e4bff.js";import"./utils.204db5c2.js";import"./diff.34a34c8d.js";import"./_isIterateeCall.1d3cef7f.js";import"./uniq.6e5e5ff7.js";import"./fields.cf6c630a.js";import"./utils.9b44a1e8.js";import"./loadJs.2ef21869.js";import"./numeral.271c29d0.js";import"./client-only.24e6bfea.js";import"./avatar.vue.d2e1f0ff.js";import"./cloneDeep.45c67b68.js";import"./scrollToElement.faa8a983.js";import"./scrollIntoView.07d79d1a.js";const Ae={key:0,class:"developers-share"},je=o("div",{class:"developers-share__title"},"Поделиться каталогом",-1),Le=w({__name:"developers-share",props:{socials:{default:()=>["whatsapp","telegram","vk","odnoklassniki","twitter","facebook"]}},setup(s){const e=s;return(t,i)=>{const a=_e,n=pe;return e.socials.length?(r(),d("div",Ae,[je,v(n,null,{default:P(({shareConfig:_})=>[v(a,{socials:e.socials,"share-config":_},null,8,["socials","share-config"])]),_:1})])):C("",!0)}}});const X=[{id:"default",name:"По умолчанию"},{id:"abc",name:"По алфавиту"},{id:"projects_count:desc",name:"По количеству ЖК"}],Ue=X.map(s=>s.id),Z="default";class Fe extends Pe{constructor(){super(...arguments);V(this,"parsers",{q:t=>A.parseQ(t),city:()=>{},sort:t=>A.parseSort(t,Ue,Z),page:t=>A.parsePage(t)})}}class Ne extends $e{constructor(){super(...arguments);V(this,"builders",{q:t=>this.directBuilder(t,"q"),city:()=>{},sort:t=>this.sortBuilder(t,Z),page:()=>({page:void 0})})}}const He=s=>new Fe().parseQuery(s),Ie=s=>new Ne().buildQuery(s),ee=(s=!1)=>{const e=$(),t=c(()=>e.params_applied.city);return c(()=>{if(t.value){let i=j(t.value);return s&&(i=`<span class="-city">${i}</span>`),"Каталог застройщиков "+i}return"Каталог застройщиков Казахстана"})},Me=()=>{const s=$(),e=c(()=>s.params_applied.city);return c(()=>{const t=[{title:"Главная",to:{name:"index"}},{title:"Каталог застройщиков",to:{name:"catalog-developers"}}];if(e.value){const i=e.value,a=i.name_ru||i.name,n=i.slug,_={title:a,to:G({city:n})};t.push(_)}return t})},Ee=s=>{const e=$();return c(()=>Ce(e.count,{pending:s.value,empty:!e.developers.length,tkey:"developer_hide_count"}))},$=de("catalog-developers",()=>{const s=me(),e=R([]),t=R(0),i=R(0),a=R({}),n=R({}),_=c(()=>z(a.value)),u=c(()=>z(n.value)),p=c(()=>we(u.value,_.value)),f=c(()=>{var g;return G({city:(g=a.value.city)==null?void 0:g.slug,query:Ie(a.value)})});return{developers:e,count:t,pages_count:i,params:a,params_applied:n,params_api:_,params_api_applied:u,params_changed:p,nextRoute:f,setParams:g=>{a.value=g},setParam:(g,T)=>{a.value={...a.value,[g]:T}},loadDevelopers:async()=>{const g=await s.developers.list(_.value);e.value=g.data,t.value=g.count,i.value=g.pages_count,n.value=a.value}}}),z=s=>{var t;const e={...ue(s,["q","city"]),q:s.q||void 0,city_id:(t=s.city)==null?void 0:t.id};return xe(e)},ze=["onSubmit"],Oe={class:"row b5-row gx-3 gy-2"},Ke={class:"col-12 col-sm-4"},Ge={class:"col-12 col-sm-3"},Je={key:0,class:"col-12 col-sm-auto ml-sm-auto d-none d-sm-block"},We="developers-catalog",Ye=w({__name:"developers-filter-form",emits:["submit"],setup(s,{emit:e}){const t=$(),i=c({get:()=>t.params.q,set:_=>
1t.setParam("q",_)}),a=c({get:()=>t.params.city,set:_=>{t.setParam("city",_),ye(()=>n())}}),n=()=>e("submit");return(_,u)=>{const p=le,f=ie,y=Le;return r(),d("form",{class:"developers-filter-form",onSubmit:ve(n,["prevent"])},[o("div",Oe,[o("div",Ke,[v(p,{modelValue:l(i),"onUpdate:modelValue":u[0]||(u[0]=h=>N(i)?i.value=h:null),placeholder:"Поиск застройщика"},null,8,["modelValue"])]),o("div",Ge,[v(f,{modelValue:l(a),"onUpdate:modelValue":u[1]||(u[1]=h=>N(a)?a.value=h:null),"select-store-id":We,placeholder:"Весь Казахстан",clearable:""},null,8,["modelValue"])]),_.$device.isDesktopOrTablet?(r(),d("div",Je,[v(y)])):C("",!0)])],40,ze)}}});const Xe={class:"row developers-count-sort"},Ze={class:"col col-sm-auto"},et={class:"count-text"},tt={class:"col-auto col-sm"},ot=o("span",{class:"d-none d-sm-inline"},"Сортировка ",-1),st=w({__name:"developers-count-sort",props:{pending:{type:Boolean}},emits:["submit"],setup(s,{emit:e}){const t=s,i=c(()=>t.pending),a=Ee(i),n=$(),_=c({get:()=>n.params.sort,set:p=>n.setParam("sort",p)}),u=p=>{p!==_.value&&(_.value=p,e("submit"))};return(p,f)=>{const y=Te;return r(),d("div",Xe,[o("div",Ze,[o("div",et,b(l(a)),1)]),o("div",tt,[o("div",null,[ot,v(y,{options:l(X),"button-variant":"light","model-value":l(_),"onUpdate:modelValue":u},null,8,["options","model-value"])])])])}}});const nt={class:"pr-detail"},at=w({__name:"product-item",props:{product:{}},setup(s){const e=s,t=c(()=>Y(e.product)),i=c(()=>{const a=e.product.price_min;return a?"от "+Se(a)+" тг":"N/A"});return(a,n)=>{const _=U;return r(),d("li",null,[v(_,{to:l(t),class:"pr-name"},{default:P(()=>[x(b(a.product.title),1)]),_:1},8,["to"]),o("span",nt,b(l(i)),1)])}}}),rt={class:"card DeveloperCard"},ct={class:"card-body"},lt={class:"row gutters-10 mb-3"},it={class:"col-auto col-avatar"},_t={class:"col col-info"},pt={class:"developer-name"},dt={class:"small"},ut={class:"mt-2 dev-projects"},mt=o("div",{class:"dev-projects-title"},"Последние добавленные",-1),vt={class:"list-unstyled mb-0 dev-projects-links small"},yt=w({__name:"developer-card",props:{developer:{}},setup(s){const e=s,t=c(()=>O(e.developer)),i=c(()=>L({query:{developer:e.developer.id}})),a=c(()=>[{key:"built",number:e.developer.products_count_built,caption:"Сдано"},{key:"building",number:e.developer.products_count_building,caption:"Строится"},{key:"rating",number:e.developer.rating_formatted,caption:"Рейтинг"}]);return(n,_)=>{const u=J,p=U,f=W,y=De;return r(),d("div",rt,[o("div",ct,[o("div",lt,[o("div",it,[v(u,{"use-link":"",user:n.developer},null,8,["user"])]),o("div",_t,[o("div",pt,[v(p,{to:l(t)},{default:P(()=>[x(b(n.developer.name),1)]),_:1},8,["to"]),n.developer.profile_verified?(r(),k(f,{key:0})):C("",!0)]),o("div",dt,"Год основания: "+b(n.developer.birth_year||"не указан"),1)])]),v(y,{counters:l(a),class:"--bb"},null,8,["counters"]),o("div",ut,[mt,o("ul",vt,[(r(!0),d(D,null,Q(n.developer.latest_products,h=>(r(),k(at,{key:h.id,product:h},null,8,["product"]))),128))])]),v(p,{to:l(i),class:"btn btn-primary btn-block btn-profile"},{default:P(()=>[x(" Посмотреть все проекты ")]),_:1},8,["to"])])])}}});const gt={class:"developers-list"},ft=w({__name:"developers-list",setup(s){const e=$();return(t,i)=>{const a=yt;return r(),d("div",gt,[(r(!0),d(D,null,Q(l(e).developers,n=>(r(),k(a,{key:n.id,developer:n},null,8,["developer"]))),128))])}}});const ht={key:0,class:"alert alert-info"},bt=w({__name:"developers-mobile",setup(s){const e=$(),t=c(()=>e.params_applied.city);return(i,a)=>{const n=ft;return r(),d(D,null,[l(t)?(r(),d("div",ht,[x(" Количество проектов и последние добавленные показаны только "),o("b",null,"для города "+b(l(t).name),1)])):C("",!0),v(n)],64)}}}),kt={class:"cell-logo"},$t={class:"cell-info"},xt={class:"developer-name"},wt={class:"small"},Pt={class:"cell-built"},Ct=o("div",null,[o("small",{class:"text-grey-2"},"Сдано")],-1),Tt={key:1,class:"text-grey-2"},Dt={class:"cell-building"},St=o("div",null,[o("small",{class:"text-grey-2"},"Строится")],-1),Rt={key:1,class:"text-grey-2"},qt={class:"cell-last-updates"},Bt=o("div",null,[o("small",{class:"text-grey-2"},"Последние добавленные")],-1),Qt={key:0,class:"dev-projects-links"},Vt={key:1,class:"text-grey-2"},At=w({__name:"developers-table-row",props:{developer:{}},setup(s){const e=s,t=qe(),i=$(),a=c(()=>
1i.params_applied.city),n=c(()=>O(e.developer)),_=c(()=>e.developer.products_count_built>0),u=c(()=>t.tc("project",e.developer.products_count_built)),p=c(()=>{var m;return L({city:(m=a.value)==null?void 0:m.slug,query:{status:"built",developer:e.developer.id}})}),f=c(()=>e.developer.products_count_building>0),y=c(()=>t.tc("project",e.developer.products_count_building)),h=c(()=>{var m;return L({city:(m=a.value)==null?void 0:m.slug,query:{developer:e.developer.id}})});return(m,g)=>{const T=J,q=U,F=W,B=Re;return r(),d("tr",null,[o("td",kt,[v(T,{"use-link":"",user:m.developer},null,8,["user"])]),o("td",$t,[o("div",xt,[v(q,{to:l(n)},{default:P(()=>[x(b(m.developer.name),1)]),_:1},8,["to"]),m.developer.profile_verified?(r(),k(F,{key:0})):C("",!0)]),o("div",wt,"Год основания: "+b(m.developer.birth_year||"не указан"),1)]),o("td",Pt,[Ct,o("div",null,[l(_)?(r(),k(B,{key:0,to:l(p),"use-link":l(_)},{default:P(()=>[x(b(l(u)),1)]),_:1},8,["to","use-link"])):(r(),d("div",Tt,"нет проектов"))])]),o("td",Dt,[St,o("div",null,[l(f)?(r(),k(B,{key:0,to:l(h),"use-link":l(f)},{default:P(()=>[x(b(l(y)),1)]),_:1},8,["to","use-link"])):(r(),d("div",Rt,"нет проектов"))])]),o("td",qt,[Bt,m.developer.latest_products&&m.developer.latest_products.length?(r(),d("div",Qt,[(r(!0),d(D,null,Q(m.developer.latest_products,S=>(r(),k(q,{key:S.id,to:l(Y)(S)},{default:P(()=>[x(b(S.title),1)]),_:2},1032,["to"]))),128))])):(r(),d("div",Vt,"нет проектов"))])])}}}),jt={class:"table-responsive"},Lt={class:"table table-hover m-0 developers-table"},Ut=o("th",{colspan:"2",class:"cell-info"}," Застройщик ",-1),Ft={colspan:"3"},Nt={key:0},Ht={key:1},It=o("b",null,"для всего Казахстана",-1),Mt=w({__name:"developers-table",setup(s){const e=$(),t=c(()=>e.params_applied.city);return(i,a)=>{const n=At;return r(),d("div",jt,[o("table",Lt,[o("thead",null,[o("tr",null,[Ut,o("th",Ft,[l(t)?(r(),d("div",Nt,[x(" Количество проектов и последние добавленные показаны только "),o("b",null,"для города "+b(l(t).name),1)])):(r(),d("div",Ht,[x(" Количество проектов и последние добавленные показаны "),It]))])])]),o("tbody",null,[(r(!0),d(D,null,Q(l(e).developers,_=>(r(),k(n,{key:_.id,developer:_},null,8,["developer"]))),128))])])])}}});const Et={},zt={class:"DevelopersPageCard"};function Ot(s,e){const t=Mt;return r(),d("div",zt,[v(t)])}const Kt=ge(Et,[["render",Ot]]),Gt=()=>{const s=$(),e=c(()=>s.params_applied.city),t=ee(),i=c(()=>e.value?"Список застройщиков "+j(e.value)+", актуальная информация по объектам, продажа недвижимости от застройщиков":"Полный список застройщиков Казахстана, актуальная информация по объектам, продажа недвижимости от застройщиков"),a=c(()=>{let p;return e.value?p="Застройщики "+j(e.value):p="Застройщики Казахстана",`${p}, Контакты застройщиков, Стоимость за кв. м., Планировки, Расположение ЖК`}),n=K(),_=c(()=>H(I,n.path)),u=H(I,"/img/kapster-developers.png");return c(()=>{const p=t.value,f="Kapster",y=i.value,h=a.value,m=_.value;return{title:p,bodyAttrs:{class:"bg-darker-mobile"},link:[{rel:"canonical",href:m}],meta:[{key:"description",name:"description",content:y},{key:"keywords",name:"keywords",content:h},{key:"og:title",property:"og:title",content:p},{key:"og:description",property:"og:description",content:y},{key:"og:url",property:"og:url",content:m},{key:"og:image",property:"og:image",content:u},{key:"og:type",property:"og:type",content:"website"},{key:"og:site_name",property:"og:site_name",content:f},{key:"twitter:title",name:"twitter:title",content:p},{key:"twitter:image",name:"twitter:image",content:u},{key:"twitter:description",name:"twitter:description",content:y},{key:"twitter:card",name:"twitter:card",content:"summary_large_image"},{key:"twitter:site",name:"twitter:site",content:E},{key:"twitter:creator",name:"twitter:creator",content:E}]}})},Jt=Gt,Wt={class:"catalog-developers"},Yt={class:"container"},Xt=["innerHTML"],Zt=o("div",{id:"paginationTopAnchor"},null,-1),zo=w({__name:"catalog-developers",async setup(s){let e,t;const i=ee(!0);fe(Jt());const a=Me(),n=$(),_=Qe(),u=K(),p=he(u.params.city),f=([e,t]=M(()=>_.getCityBySlug(p)),e=await e,t(),e),y=c(()=>He(u.query)),h=c(()=>JSON.stringify(y.value)),{refresh:m,pending:g}=([e,t]=M(async()=>ke("developers_catalog_page",async()=>(n.setParams({...y.value,city:f}),await n.loadDevelopers(),!0),{watch:[h]})),e=await e,t(),e),T=()=>n.params_changed?(console.log("params changed: navigate"),be(n.nextRoute)):(console.log("params not changed: refresh"),m({dedupe:!0}));return(q,F)=>{const B=ce,S=Ye,te=st,oe=bt,se=Kt,ne=Be;return r(),d("section",Wt,[o("div",Yt,[v(B,{breadcrumbs:l(a)},null,8,["breadcrumbs"]),o("h1",{class:"CatalogTitle --growing my-3 mt-sm-0 mb-sm-4",innerHTML:l(i)},null,8,Xt),v(S,{class:"mb-4",onSubmit:T}),v(te,{class:"mb-3",pending:l(g),onSubmit:T}
1,null,8,["pending"]),l(n).count?(r(),d(D,{key:0},[Zt,q.$device.isMobile?(r(),k(oe,{key:0})):(r(),k(se,{key:1}))],64)):C("",!0),l(n).pages_count>1?(r(),k(ne,{key:1,class:"developers-pagination","total-pages":l(n).pages_count,page:l(n).params.page,"onUpdate:page":l(Ve)},null,8,["total-pages","page","onUpdate:page"])):C("",!0)])])}}});export{zo as default};

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.