PageSourceSearch

https://bogoslov.ru/_nuxt/CXShZju9.js

js bogoslov.ru collected 2026-09-24 19:03:03 UTC 15,000 bytes, 1 lines download raw bytes

1import{_ as oe}from"./DSYUXC2p.js";import{u as ae}from"./Bvrg-R8i.js";import{F as se}from"./DElG6gnj.js";import{_ as Y}from"./BA8p9DNP.js";import{_ as ce}from"./CXUm6fS1.js";import{_ as H,u as K,r as E,x as V,$ as q,j as S,o as p,g as F,a as $,e as w,f as I,b as v,t as N,d as b,h as L,T as re,R as Q,ae as ie,c as R,Z as X,l as me,L as le,n as ue,I as de,a3 as pe,ad as _e,F as ee,i as te,P as fe,aw as ve,p as he,av as ge}from"./B4qULXKb.js";import{a as ye}from"./CkqeHXhJ.js";import{c as Ce}from"./pGoweWCd.js";const be={class:"captcha-modal__content"},ke={class:"captcha-modal__title"},$e={class:"captcha-modal__data"},xe={class:"captcha-modal__captcha"},Se=["innerHTML"],Ee={class:"captcha-modal__actions"},we={__name:"CaptchaModal",emits:["confirm"],setup(r,{expose:n,emit:a}){const i=a,_=K(),f=E(!1),l=E(!1),o=V({title:"Подтвердите, что вы не робот",uuid:"",data:"",value:"",error:""}),u=V({name:"captcha",NULLABLE:!1,ref:q("input")}),d=async()=>{const C=await _.$queryApi("?type=captcha&action=create",{},{ssr:!1});C.data.content&&Object.keys(C.data.content).forEach(h=>{o[h]=C.data.content[h]})},y=async C=>{l.value=!1,o.error=C,await d()},z=async()=>{await d(),f.value=!0},x=()=>{f.value=!1,l.value=!1,o.value="",o.error=""},T=()=>{if(l.value)return;const C=u.ref.checkValidation();if(C){o.error=C;return}l.value=!0;const h={uuid_captcha:o.uuid,captcha:o.value};i("confirm",Object.assign({},h))},M=C=>{C.target.classList.contains("captcha-modal")&&x()};return n({isModalOpened:f,setCaptchaError:y,stopSubmitting:()=>{l.value=!1},open:z,close:x}),(C,h)=>{const A=Y,G=ce;return p(),S(re,{name:"fade"},{default:F(()=>[I(f)?(p(),$("div",{key:0,class:"captcha-modal",onClick:M},[v("div",be,[v("h5",ke,N(I(o).title),1),v("div",$e,[v("div",xe,[v("div",{class:"captcha-modal__img",innerHTML:I(o).data},null,8,Se),b(A,{class:"captcha-modal__update",theme:"ghost",size:"sm",onClick:d},{default:F(()=>h[2]||(h[2]=[L(" Заменить капчу ")])),_:1})]),b(G,{ref:"input",modelValue:I(o).value,"onUpdate:modelValue":h[0]||(h[0]=D=>I(o).value=D),params:I(u),error:I(o).error,class:"captcha-modal__input",onInput:h[1]||(h[1]=D=>I(o).error="")},null,8,["modelValue","params","error"])]),v("div",Ee,[b(A,{theme:"ghost",size:"sm",onClick:x},{default:F(()=>h[3]||(h[3]=[L(" Закрыть ")])),_:1}),b(A,{rounded:"",size:"md",theme:"general",type:"primary",loading:I(l),onClick:T},{default:F(()=>h[4]||(h[4]=[L(" Отправить ")])),_:1},8,["loading"])])])])):w("",!0)]),_:1})}}},Fe=H(we,[["__scopeId","data-v-3d812137"]]),Ae={class:"field-comment"},Ie={class:"field-comment__actions"},Le=Q({__name:"CommentsBlockField",props:{mode:{type:String,default:"create"},initialComment:{type:String,default:""}},emits:["create-comment","edit-comment","cancel"],setup(r,{expose:n,emit:a}){const i=r,_=a,f=ie(),l=q("fieldRef"),o=V({component:"FieldTextarea",name:"comment",NULLABLE:!1,placeholder:"Введите текст комментария",markdownShortcuts:!0,value:i.initialComment||"",rows:4,maxLength:2e3}),u=V({comment:""}),d=E(null),y=R(()=>i.mode!=="edit"),z=R(()=>i.mode!=="edit"?!1:(o.value||"")===(i.initialComment||"")),x=()=>{(i.mode==="edit"||i.mode==="reply")&&(o.value=i.initialComment||"")},T=()=>{i.mode==="reply"&&le(()=>{var s;const e=(s=l.value)==null?void 0:s.input;if(!e)return;e.focus();const t=o.value.length;e.setSelectionRange(t,t)})};X(()=>i.initialComment,()=>{x()},{immediate:!0}),me(()=>{T()});const M=()=>{var t,s;const e=(s=(t=l.value)==null?void 0:t.checkValidation)==null?void 0:s.call(t);return e?(u.comment=e,!0):!1},B=async()=>{var s;if(!(z.value||M()||!await f.requireAuth(i.mode==="edit"?"edit-comment":"create-comment"))){if(i.mode==="edit"){_("edit-comment",o.value);return}(s=d.value)==null||s.open()}},C=()=>{o.value=(i.mode==="edit"||i.mode==="reply")&&i.initialComment||"",u.comment="",i.mode!=="create"&&_("cancel")},h=async({uuid_captcha:e,captcha:t})=>{_("create-comment",{captcha:t,uuid_captcha:e,comment:o.value})},A=()=>{var e;return(e=d.value)==null?void 0:e.close()};return n({closeCaptchaModal:A,onError:async e=>{if(d.value){await d.value.setCaptchaError(e);return}u.comment=e},onSuccess:()=>{o.value="",u.comment="",A(),i.mode!=="create"&&_("cancel")},setFieldError:e=>{var t;u.comment=e,(t=d.value)==null||t.stopSubmitting()},stopSubmitting:()=>{var e;return(e=d.value)==null?void 0:e.stopSubmitting()}}),(e,t)=>{const s=se,m=Y,c=Fe;return p(),$("div",Ae,[b(s,{ref_key:"fieldRef",ref:l,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=g=>o.value=g),error:u[o.name],params:o,onInput:t[1]||(t[1]=g=>u[o.name]="")},null,8,["modelValue","error","params"]),v("div",Ie,[b(m,{size:"sm",theme:"ghost",class:"field-comment__clear",onClick:C},{default:F(()=>t[2]||(t[2]=[L(" Отменить ")])),_:1}),b(m,{size:"lg",type:"primary",theme:"general",rounded:"",class:"field-comment__action",disabled:z.value,onClick:B},{default:F(()=>t[3]||(t[3]=[L(" Отправить ")])),_:1},8,["disabled"])]),y.value?(p(),S(c,{key:0,ref_key:"captchaModal",ref:d,onConfirm:h},null,512)):w("",!0)])}}}),W=H(Le,[["__scopeId","data-v-0d9da4c5"]]),ze=new Set(["br","p","i","b","u","strong","ul","ol","li","blockquote","a"]),Te=/^(?:https?:\/\/|mailto:|\/|#)/i,Me=r=>{const n=/\bhref\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/i.exec(r);if(!n)return null;const a=(n[1]??n[2]??n[3]??"").trim();return Te.test(a)?a:null},Re=r=>r.replace(/&(?!(?:[a-zA-Z][a-zA-Z0-9]+|#\d+|#x[0-9a-fA-F]+);)/g,"&amp;").replace(/"/g,"&quot;"),P=r=>r.replace(/&(?!(?:[a-zA-Z][a-zA-Z0-9]+|#\d+|#x[0-9a-fA-F]+);)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),Be=r=>{const n=[];let a=0;for(;a<r.length;){const i=r.indexOf("<",a);if(i===-1){n.push(P(r.slice(a)));break}n.push(P(r.slice(a,i)));const _=r.indexOf(">",i);if(_===-1){n.push(P(r.slice(i)));break}const f=r.slice(i+1,_),l=/^(\/?)([a-zA-Z][a-zA-Z0-9]*)(?:[\s/]|$)/.exec(f);
1if(l&&ze.has(l[2].toLowerCase())){const o=l[1]==="/",u=l[2].toLowerCase();if(u==="a"&&!o){const d=Me(f);n.push(d?`<a href="${Re(d)}" target="_blank" rel="noopener noreferrer">`:"<a>")}else n.push(o?`</${u}>`:`<${u}>`)}else n.push(P(r.slice(i,_+1)));a=_+1}return n.join("")},De=r=>r.replace(/\*\*([^*\n]+?)\*\*/g,"<strong>$1</strong>").replace(/(^|[^*])\*([^*\n]+?)\*(?!\*)/g,"$1<i>$2</i>"),Ne=r=>r.split(/(?:\r?\n){2,}/).map(a=>`<p>${a.replace(/\r?\n/g,"<br>")}</p>`).join(""),Ge=r=>r.replace(/\r?\n/g,"<br>"),je=r=>/<\s*(p|ul|ol|li|blockquote)\b/i.test(r),Ve=r=>{if(!r)return"";const n=Be(r),a=De(n);return je(a)?Ge(a):Ne(a)},Oe=r=>{if(!r)return"";const n=new Date(r);if(Number.isNaN(n.getTime()))return"";const a=new Date,i=new Date(a.getFullYear(),a.getMonth(),a.getDate()),_=new Date(n.getFullYear(),n.getMonth(),n.getDate()),f=Math.floor((i.getTime()-_.getTime())/(1e3*60*60*24)),l=n.getHours().toString().padStart(2,"0"),o=n.getMinutes().toString().padStart(2,"0"),u=`${l}:${o}`;if(f===0)return`Сегодня, ${u}`;if(f===1)return`Вчера, ${u}`;const d=n.getDate().toString().padStart(2,"0"),y=(n.getMonth()+1).toString().padStart(2,"0");return`${d}.${y}.${n.getFullYear()}, ${u}`},Ue={class:"comment__content"},Pe={class:"comment__header"},qe={class:"comment__author"},He={class:"comment__avatar-image-wrap"},Ze={key:1,class:"comment__avatar-letter"},We={class:"comment__avatar-letter-text"},Ye={class:"comment__info"},Qe={class:"comment__name"},Je={class:"comment__label"},Ke={class:"comment__meta"},Xe={class:"comment__dt"},et={key:0,class:"comment__badge"},tt={key:1,class:"comment__badge"},nt=["innerHTML"],ot={key:2,class:"comment__reply-action"},at={key:0,class:"comment__children"},st=Q({name:"CommentsBlockItem",__name:"CommentsBlockItem",props:{comment:{}},setup(r){const n=r,a=ve("commentsApi"),i=E(!1),_=E(!1),f=E(!1),l=E([]),o=E([]),u=R(()=>(a==null?void 0:a.isExpanded(n.comment.uuid))??!1),d=q("editForm"),y=q("replyForm"),z={items:[{id:"edit",label:"Редактировать"}],menuPos:"right",snapOff:!1,menuWidth:180,zIndex:12},x=R(()=>he({file_path:n.comment.avatar_path,file_name:n.comment.avatar_file})),T=R(()=>{var e;return n.comment.first_name&&((e=n.comment.first_name[0])==null?void 0:e.toUpperCase())||"Б"}),M=R(()=>Oe(n.comment.display_at)),B=R(()=>Ve(n.comment.comment)),C=R(()=>""),h=()=>{l.value=Ce(n.comment.children||[]),u.value||(o.value=l.value)},A=async()=>{if(!a||!u.value){o.value=l.value;return}f.value=!0;try{const e=await a.fetchReplies(n.comment.uuid);e.length?o.value=e:o.value=l.value}finally{f.value=!1}};X(()=>n.comment.children,()=>{h(),A()},{immediate:!0});const G=e=>{(e==null?void 0:e.id)==="edit"&&(_.value=!0,i.value=!1)},D=async e=>{!a||!y.value||await a.createComment(e,y.value,n.comment.uuid)},O=async e=>{if(!a||!d.value)return;const t=await a.editComment(n.comment.uuid,e,d.value);t&&Object.assign(n.comment,t)},U=async()=>{if(u.value){o.value=l.value,a==null||a.setExpanded(n.comment.uuid,!1);return}if(a){f.value=!0;try{const e=await a.fetchReplies(n.comment.uuid);e.length&&(o.value=e,a.setExpanded(n.comment.uuid,!0))}finally{f.value=!1}}};return(e,t)=>{const s=de,m=pe,c=_e,g=ye,k=Y,ne=fe("CommentsBlockItem",!0);return p(),$("li",{class:ue(["comment",{"comment--nested":e.comment.level>1}])},[v("div",Ue,[v("div",Pe,[v("div",qe,[v("div",He,[x.value?(p(),S(s,{key:0,src:x.value,alt:"avatar",class:"comment__avatar-image"},null,8,["src"])):(p(),$("div",Ze,[v("span",We,N(T.value),1)]))]),v("div",Ye,[v("div",Qe,[v("span",Je,N(e.comment.fio||"Без имени"),1),e.comment.has_person?(p(),S(m,{key:0,size:"sm",name:"guide-person",prefix:"ci-profile",class:"comment__label-icon"})):e.comment.account_verify_status==="verified"?(p(),S(m,{key:1,size:"sm",name:"verified",prefix:"ci-profile",class:"comment__label-icon"})):w("",!0)]),v("div",Ke,[v("span",Xe,[b(m,{name:"dot",size:"sm",class:"comment__dot"}),L(" "+N(M.value),1)]),e.comment.is_on_moderation?(p(),$("span",et,[b(m,{name:"dot",size:"sm",class:"comment__dot"}),t[3]||(t[3]=v("span",{class:"comment__badge-text"},"На модерации",-1))])):e.comment.is_edited?(p(),$("span",tt,[b(m,{name:"dot",size:"sm",class:"comment__dot"}),t[4]||(t[4]=v("span",{class:"comment__badge-text"},"Изменено",-1))])):w("",!0)])])]),e.comment.can_edit&&!_.value?(p(),S(g,{key:0,class:"comment__menu",params:z,onChange:G},{trigger:F(()=>[b(c,{"icon-name":"more",size:"sm",btnType:"circle",theme:"no-border"})]),_:1})):w("",!0)]),_.value?(p(),S(W,{key:0,ref_key:"editForm",ref:d,mode:"edit","initial-comment":e.comment.comment,onEditComment:O,onCancel:t[0]||(t[0]=j=>_.value=!1)},null,8,["initial-comment"])):(p(),$("div",{key:1,class:"comment__text",innerHTML:B.value},null,8,nt)),e.comment.can_reply&&!i.value&&!_.value?(p(),$("div",ot,[b(k,{size:"sm",theme:"bronze",onClick:t[1]||(t[1]=j=>i.value=!0)},{default:F(()=>t[5]||(t[5]=[L(" Ответить ")])),_:1})])):w("",!0),i.value?(p(),S(W,{key:3,ref_key:"replyForm",ref:y,mode:"reply",class:"comment__reply-form","initial-comment":C.value,onCreateComment:D,onCancel:t[2]||(t[2]=j=>i.value=!1)},null,8,["initial-comment"])):w("",!0)]),o.value.length?(p(),$("ul",at,[(p(!0),$(ee,null,te(o.value,j=>(p(),S(ne,{key:j.uuid,comment:j},null,8,["comment"]))),128))])):w("",!0),e.comment.has_more_children?(p(),S(k,{key:1,size:"sm",theme:"ghost",class:"comment__more",loading:f.value,onClick:U},{prepend:F(()=>[b(m,{name:u.value?"minus":"plus",size:"sm",class:"comment__more-icon"},null,8,["name"])]),default:F(()=>[L(" "+N(u.value?"Скрыть ответы":"Ещё ответы"),1)]),_:1},8,["loading"])):w("",!0)],2)}}}),ct=H(st,[["__scopeId","data-v-0d0ce09b"]]),rt={class:"comments-block"},it={class:"comments-block__title"},mt={class:"comments-block__count"},lt={key:0,class:"comments-block__list"},Z=20,J=2,ut=100,dt=Q({__name:"CommentsBlock",props:{params:{type:Object,required:!0}},emits:["loaded:count"],setup(r,{emit:n}){const a=r,i=n,_=K(),f=ae(),l=E([]),o=E(0),u=E(null),d=E({}),y=V({count:0,portion:Z,offset:0}),z=e=>({searchLogic:"AND",search:[{field:"uuid_object",operator:"is",value:a.params.uuid_object}],limit:Z,offset:e,replies_limit:J}),x=async(e=0,t=!0)=>{var s,m;y.offset=e;try{const c=await _.$queryApi("?type=comments",z(e),{ssr:t});+(c==null?void 0:c.status)==200&&((m=(s=c.data)==null?void 0:s.content)!=null&&m.comments)&&(l.value=c.data.content.comments,y.count=Number(c.data.content.cnt)||0,y.portion=Number(c.data.content.portion)||Z,o.value=Number(c.data.content.total_cnt)||0,i("loaded:count",o.value))}catch(c){console.error("Error in fetching comments: ",c)}},T=(e,t)=>
1{var s,m;if(+e.status==422){const c=((s=e.data)==null?void 0:s.message)||"";((m=e.data)==null?void 0:m.field)==="comment"&&t.setFieldError(c),t.onError(c);return}t.stopSubmitting()},M=async(e,t,s)=>{var c;const m={...e,uuid_object:a.params.uuid_object,type:a.params.type,...s?{uuid_parent:s}:{}};try{const g=await _.$queryApi("?type=comments&action=create",{data:m},{ssr:!1});+(g==null?void 0:g.status)==200&&((c=g.data)!=null&&c.content)?(t.onSuccess(),f.show({content:"Комментарий отправлен на&nbsp;модерацию ",timeout:5e3}),await x(y.offset,!1)):T(g,t)}catch(g){console.error("Error in saving comment: ",g),t.stopSubmitting()}},B=(e,t,s)=>{var m;for(const c of e){if(c.uuid===t)return Object.assign(c,s),!0;if((m=c.children)!=null&&m.length&&B(c.children,t,s))return!0}return!1};ge("commentsApi",{createComment:M,editComment:async(e,t,s)=>{var m;try{const c=await _.$queryApi(`?type=comments&action=edit&id=${e}`,{data:{comment:t}},{ssr:!1});if(+(c==null?void 0:c.status)==200&&((m=c.data)!=null&&m.content)){s.onSuccess(),f.show({content:"Правка отправлена на&nbsp;модерацию ",timeout:5e3});const g={comment:t,is_on_moderation:!0,can_edit:!1};return B(l.value,e,g),g}T(c,s)}catch(c){console.error("Error in editing comment: ",c),s.stopSubmitting()}return null},fetchReplies:async e=>{var c,g;const t=[];let s=0,m=1/0;try{for(;s<m;){const k=await _.$queryApi(`?type=comments&part=replies&id=${e}`,{limit:ut,offset:s,replies_limit:J},{ssr:!1});if(+(k==null?void 0:k.status)!=200||!((g=(c=k.data)==null?void 0:c.content)!=null&&g.comments)||(t.push(...k.data.content.comments),m=Number(k.data.content.cnt)||t.length,s+=k.data.content.comments.length,!k.data.content.comments.length))break}}catch(k){console.error("Error in fetching replies: ",k)}return t},isExpanded:e=>!!d.value[e],setExpanded:(e,t)=>{if(t){d.value={...d.value,[e]:!0};return}const s={...d.value};delete s[e],d.value=s}});const O=e=>{u.value&&M(e,u.value)},U=e=>{x(e,!1)};return x(),(e,t)=>{const s=oe;return p(),$("div",rt,[v("h3",it,[t[0]||(t[0]=L(" Комментарии ")),v("sup",mt,"("+N(o.value)+")",1)]),b(W,{ref_key:"commentForm",ref:u,onCreateComment:O},null,512),l.value.length?(p(),$("ul",lt,[(p(!0),$(ee,null,te(l.value,m=>(p(),S(ct,{key:m.uuid,comment:m},null,8,["comment"]))),128))])):w("",!0),y.count>y.portion?(p(),S(s,{key:1,class:"comments-block__pagination",params:y,disableGetParamsUpd:!0,onFetchItems:U},null,8,["params"])):w("",!0)])}}}),bt=H(dt,[["__scopeId","data-v-ea01b317"]]);export{bt as _};

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.