1import ie from"./B0tQHs1R.js";import{p as R,m as j,g as F,f as Q,h as W,b as d,I as ce,i as ue,j as de,k as me,l as pe,n as _e,q as he,r as fe,s as ge,v as ve,x as xe,y as ye,z as ke,A as we,B as be,C as D,_ as P,o as s,c as u,w as p,D as f,a as h,F as k,E as T,d as S,t as y,G,H as z,e as U,J as K,K as I,L as J,M as $e,N as E,O as Y,P as B,Q as Se,R as Pe,S as Ce,T as x}from"./CssnEVdk.js";import{V as Te}from"./De_rgx78.js";import{c as Ve,m as Ge,a as Ie,u as He,b as Be,V as Ee,d as L,e as H}from"./BVJ4COps.js";import{m as Le,u as Ae,V as Oe,a as Me,I as De,b as qe,c as q,d as Ne}from"./BQqMBwW0.js";import{V as Re}from"./DTpHS9KV.js";import{V as X}from"./qyEofNFY.js";import{_ as je}from"./jIC3bV58.js";import{V as N,a as Fe}from"./DeH6oUiS.js";import{G as Qe}from"./Ddr7Zsa8.js";import{u as We}from"./D6a6pzcg.js";import{u as ze}from"./UHCZEk_C.js";import{V as Ue}from"./HGHpZ2vw.js";import"./CMVyuXEV.js";const Ke=R({color:String,density:String,...j()},"VBannerActions"),Je=F()({name:"VBannerActions",props:Ke(),setup(e,a){let{slots:t}=a;return Q({VBtn:{color:e.color,density:e.density,slim:!0,variant:"text"}}),W(()=>{var r;return d("div",{class:["v-banner-actions",e.class],style:e.style},[(r=t.default)==null?void 0:r.call(t)])}),{}}}),Ye=Ve("v-banner-text"),Xe=R({avatar:String,bgColor:String,color:String,icon:ce,lines:String,stacked:Boolean,sticky:Boolean,text:String,...ue(),...j(),...Le(),...de(),...me({mobile:null}),...pe(),...Ge(),...Ie(),..._e(),...he(),...fe()},"VBanner"),Ze=F()({name:"VBanner",props:Xe(),setup(e,a){let{slots:t}=a;const{backgroundColorClasses:r,backgroundColorStyles:c}=ge(e,"bgColor"),{borderClasses:n}=ve(e),{densityClasses:l}=Ae(e),{displayClasses:o,mobile:i}=xe(e),{dimensionStyles:w}=ye(e),{elevationClasses:m}=ke(e),{locationStyles:_}=He(e),{positionClasses:C}
1=Be(e),{roundedClasses:g}=we(e),{themeClasses:V}=be(e),b=D(e,"color"),$=D(e,"density");Q({VBannerActions:{color:b,density:$}}),W(()=>{const v=!!(e.text||t.text),A=!!(e.avatar||e.icon),le=!!(A||t.prepend);return d(e.tag,{class:["v-banner",{"v-banner--stacked":e.stacked||i.value,"v-banner--sticky":e.sticky,[`v-banner--${e.lines}-line`]:!!e.lines},V.value,r.value,n.value,l.value,o.value,m.value,C.value,g.value,e.class],style:[c.value,w.value,_.value,e.style],role:"banner"},{default:()=>{var O;return[le&&d("div",{key:"prepend",class:"v-banner__prepend"},[t.prepend?d(Me,{key:"prepend-defaults",disabled:!A,defaults:{VAvatar:{color:b.value,density:$.value,icon:e.icon,image:e.avatar}}},t.prepend):d(Oe,{key:"prepend-avatar",color:b.value,density:$.value,icon:e.icon,image:e.avatar},null)]),d("div",{class:"v-banner__content"},[v&&d(Ye,{key:"text"},{default:()=>{var M;return[((M=t.text)==null?void 0:M.call(t))??e.text]}}),(O=t.default)==null?void 0:O.call(t)]),t.actions&&d(Je,{key:"actions"},t.actions)]}})})}});function Z(e,a){const{self:t=!1}=a.modifiers??{},r=a.value,c=typeof r=="object"&&r.options||{passive:!0},n=typeof r=="function"||"handleEvent"in r?r:r.handler,l=t?e:a.arg?document.querySelector(a.arg):window;l&&(l.addEventListener("scroll",n,c),e._onScroll=Object(e._onScroll),e._onScroll[a.instance.$.uid]={handler:n,options:c,target:t?void 0:l})}function ee(e,a){var n;if(!((n=e._onScroll)!=null&&n[a.instance.$.uid]))return;const{handler:t,options:r,target:c=e}=e._onScroll[a.instance.$.uid];c.removeEventListener("scroll",t,r),delete e._onScroll[a.instance.$.uid]}function et(e,a){a.value!==a.oldValue&&(ee(e,a),Z(e,a))}const tt={mounted:Z,unmounted:ee,updated:et},at={name:"GrammarHeader",props:{titles:{type:Array,default:()=>[]},isCollapsed:{type:Boolean,default:!1},title:{type:String,default:""},description:{type:String,default:""},tags:{type:Array,default:()=>[]},language:{type:String,default:"en"},anchor:{type:String,default:""}},emits:["onCollapseChange"],methods:{onIntersect(e,a){e?this.$emit("onCollapseChange",!1):this.$emit("onCollapseChange",!0)}}},st={class:"chip-title-wrapper"},nt={class:"header__tags flex-wrap"};function rt(e,a,t,r,c,n){const l=U;return s(),u(k,null,[d(Te,null,{default:p(()=>[t.isCollapsed&&t.titles.length>0?(s(),f(Ze,{key:0,sticky:"",class:"collapsed-preview__header flex-column"},{default:p(()=>[h("div",st,[(s(!0),u(k,null,T(t.titles,(o,i)=>(s(),f(Re,{key:o.value,class:"mx-2",to:`#${o.value}`,exact:"",color:o.value===t.anchor?"purple":"gray"},{default:p(()=>[S(y(o.value),1)]),_:2},1032,["to","color"]))),128))])]),_:1})):G("",!0)]),_:1}),z((s(),f(H,{rounded:"xl",variant:"flat",class:"preview__header"},{default:p(()=>[d(Ee,{class:"header__title text-overflow-none"},{default:p(()=>[S(y(t.title),1)]),_:1}),d(L,{class:"header__description"},{default:p(()=>[S(y(t.description)+" ",1),h("div",nt,[(s(!0),u(k,null,T(t.tags,o=>(s(),f(l,{key:o.id,to:`/en/tags/${o.slug}/`,class:"tag"},{default:p(()=>[S(y(o.name[t.language]),1)]),_:2},1032,["to"]))),128))])]),_:1})]),_:1})),[[De,n.onIntersect]])],64)}const ot=P(at,[["render",rt],["__scopeId","data-v-42a6ad40"]]),lt={name:"GrammarLinkPreview",props:{value:{type:Object},language:{type:String,default:"ru"}}};function it(e,a,t,r,c,n){const l=U;return t.value?(s(),f(l,{key:0,to:`/en/${t.value.id}/`,class:"link-preview text-decoration-none text-black"},{default:p(()=>[S(y(t.value.title.en),1)]),_:1},8,["to"])):G("",!0)}
1const te=P(lt,[["render",it],["__scopeId","data-v-58360998"]]),ae=K("/icons/sound-waves.svg"),ct={key:1,class:"listen-icon",src:ae},ut=I({__name:"ListenButton",props:{icon:{type:Boolean,default:!1},word:{type:String,required:!0}},setup(e){const a=e,t=J(null),r=async()=>{const{$api:c}=Y();try{if(!t.value){const n=await c.laoshi.listenWord(a.word);t.value=new Audio(URL.createObjectURL(n.data))}await t.value.play()}catch{}};return(c,n)=>(s(),u("div",null,[d(X,E({variant:"flat",class:"w-fit",rounded:"xl",color:"black"},a,{block:"",onClick:r}),$e({default:p(()=>[e.icon?G("",!0):(s(),u(k,{key:0},[S(" Listen ")],64)),e.icon?(s(),u("img",ct)):G("",!0)]),_:2},[e.icon?void 0:{name:"append",fn:p(()=>[n[0]||(n[0]=h("img",{class:"listen-icon",src:ae},null,-1))]),key:"0"}]),1040)]))}}),se=P(ut,[["__scopeId","data-v-642fbae8"]]),dt={name:"GrammarExamplePreview",props:{value:{type:Array}},methods:{computeHighlights(e){if(e){let a=je.clone(e.text);const t=[];return e.highlightedText.forEach(r=>{const c=r.end-r.start;t.push(a.substr(r.start,c))}),t.forEach(r=>{a=a.replace(r,`<mark class="highlightable__highlights--gray">${r}</mark>`)}),a}}}},mt={class:"example-wrapper"},pt={class:"d-flex justify-space-between"},_t=["innerHTML"],ht=["innerHTML"],ft=["innerHTML"];function gt(e,a,t,r,c,n){const l=se;return s(),u("div",mt,[a[0]||(a[0]=h("span",{class:"text-body-2"},"Examples",-1)),(s(!0),u(k,null,T(t.value,(o,i)=>(s(),f(H,{key:i,flat:"",class:"rounded-xl example-card",color:"rgb(241,242,246)"},{default:p(()=>[d(L,null,{default:p(()=>{var w;return[h("div",pt,[h("div",{class:"example__phrase",innerHTML:n.computeHighlights(o.phrase)},null,8,_t),d(l,{icon:"",word:(w=o.phrase)==null?void 0:w.text},null,8,["word"])]),h("div",{class:"example__translation",innerHTML:n.computeHighlights(o.translation)},null,8,ht),h("div",{class:"example__transcription",innerHTML:n.computeHighlights(o.transcription)},null,8,ft)]}),_:2},1024)]),_:2},1024))),128))])}const vt=P(dt,[["render",gt],["__scopeId","data-v-aa2ba723"]]),xt=K("/img/volume-waves.svg"),ne=I({__name:"GrammarMicroexample",props:{phrase:{type:String,required:!0},transcription:{type:String,required:!0},translation:{type:String,required:!0}},setup(e){return(a,t)=>{const r=se;return s(),f(Fe,{offset:"6","close-on-content-click":!1,"max-height":"400px","max-width":"400px","scroll-strategy":"none","content-class":"rounded-xl border-solid border-sm"},{activator:p(({props:c})=>[h("span",E(c,{class:"micro-example cursor-pointer"}),[S(y(e.phrase)+" ",1),t[0]||(t[0]=h("img",{class:"micro-example__svg",src:xt},null,-1))],16)]),default:p(()=>[d(H,{class:"pa-3",variant:"text"},{default:p(()=>[d(N,{class:"mb-1",variant:"plain",label:"PINYIN",readonly:"","hide-details":"","model-value":e.transcription},null,8,["model-value"]),d(N,{"hide-details":"",class:"mb-1",variant:"plain",label:"MEANING",readonly:"","model-value":e.translation},null,8,["model-value"]),d(r,{word:e.phrase},null,8,["word"])]),_:1})]),_:1})}}}),yt={class:"highlightable__highlights--preview"},kt=I({__name:"HighlightedText",props:{text:{type:String,required:!0}},setup(e){return(a,t)=>(s(),u("span",yt,y(e.text),1))}}),re=P(kt,[["__scopeId","data-v-939a25a3"]]);function oe(e){return B(()=>{const{text:a,highlightedText:t}=e,r=[];let c=0;return t.sort((n,l)=>n.start-l.start).forEach(n=>{n.start>c&&r.push({isHighlighted:!1,text:a.substring(c,n.start)}),r.push({...n,isHighlighted:!0,text:a.substring(n.start,n.end)}),c=n.end}),c<a.length&&r.push({isHighlighted:!1,text:a.substring(c)}),r})}const wt=I({name:"GrammarQuotePreview",props:{value:{type:Object,required:!0}},setup(e){return{segments:oe(e.value)}}}),bt={class:"quote-wrapper"},$t={class:"quote__text"};function St(e,a,t,r,c,n){const l=ne,o=re;return s(),u("div",bt,[a[0]||(a[0]=h("div",{class:"text-body-2 pb-1"}," Pay attention ",-1)),h("div",$t,[(s(!0),u(k,null,T(e.segments,(i,w)=>(s(),u("span",{key:w},[i.isMicroExample?(s(),f(l,{key:0,phrase:i.microExample.phrase,transcription:i.microExample.transcription,translation:i.microExample.translation},null,8,["phrase","transcription","translation"])):i.isHighlighted?(s(),f(o,{key:1,text:i.text},null,8,["text"])):(s(),u(k,{key:2},[S(y(i.text),1)],64))]))),128))])])}const Pt=P(wt,[["render",St],["__scopeId","data-v-8a309131"]]),Ct={name:"GrammarSchemePreview",props:{value:{type:Array}},computed:{schemeQuestions(){return this.valueWithSeparators.map(e=>{var a;return(a=e.match(/{(.*)}/))==null?void 0:a.pop()})},schemeText(){return this.valueWithSeparators.map(e=>e.replace(/{(.*)}/,""))},valueWithSeparators(){const e=(a,t=0)=>t===0?[a[t],...e(a,t+1)]:t===a.length-1?a[t-1]===","?[a[t]]:["mdi-plus",a[t]]:a[t]===","?[",",...e(a,t+1)]:a[t-1]===","?[a[t],...e(a,t+1)]:["mdi-plus",a[t],...e(a,t+1)];return e(this.value)}}},Tt={class:"scheme-wrapper"},Vt={class:"d-flex flex-wrap"},Gt={class:"d-flex flex-column my-1"},It={class:"d-flex"},Ht={key:0,class:"pa-3"},Bt={key:1,class:"scheme__bullet"},Et={class:"text-caption"};function Lt(e,a,t,r,c,n){return s(),u("div",Tt,[a[0]||(a[0]=h("span",{class:"text-body-2"},"Scheme",-1)),d(H,{flat:"",class:"rounded-xl",color:"#5352ED1A"},{default:p(()=>[d(L,null,{default:p(()=>[h("div",Vt,[(s(!0),u(k,null,T(n.valueWithSeparators,(l,o)=>(s(),u("div",{key:l+o,class:"d-flex"},[h("div",Gt,[h("div",It,[l===","||l==="mdi-plus"?(s(),u("div",Ht,[d(qe,null,{default:p(()=>[S(y(l),1)]),_:2},1024)])):(s(),u("div",Bt,y(n.schemeText[o]),1))]),h("div",Et,y(n.schemeQuestions[o]),1)])]))),128))])]),_:1})]),_:1})])}const At=P(Ct,[["render",Lt],["__scopeId","data-v-8270f089"]]),Ot=I({name:"GrammarTextPreview",components:{},props:{value:{type:Object,required:!0}},setup(e){return{segments:oe(e.value)}}});function Mt(e,a,t,r,c,n){const l=ne,o=re;return s(),u("div",null,[(s(!0),u(k,null,T(e.segments,(i,w)=>(s(),u("span",{key:w},[i.isMicroExample?(s(),f(l,{key:0,phrase:i.microExample.phrase,transcription:i.microExample.transcription,translation:i.microExample.translation},null,8,["phrase","transcription","translation"])):i.isHighlighted?(s(),f(o,{key:1,text:i.text},null,8,["text"])):(s(),u(k,{key:2},[S(y(i.text),1)],64))]))),128))])}const Dt=P(Ot,[["render",Mt]]),qt={name:"GrammarTitlePreview",props:{value:{type:String},type:{type:String}}},Nt=["id"];function Rt(e,a,t,r,c,n){return s(),u("div",{id:t.value,class:Se([t.type==="title"?"title":"subtitle","black--text section"])},y(t.value),11,Nt)}const jt=P(qt,[["render",Rt],["__scopeId","data-v-16d1e0bf"]]),Ft={name:"GrammarPreview",components:{GrammarTextPreview:Dt,GrammarTitlePreview:jt,GrammarSchemePreview:At,GrammarLinkPreview:te,GrammarQuotePreview:Pt,GrammarExamplePreview:vt},props:{content:{type:Array},title:{type:String},description:{type:String},tags:{type:Array},language:{type:String,default:"en"},links:{type:Array,default:()=>[]}},data:()=>({isCollapsed:!1,offsetTop:0,sectionObserver:null,anchor:null}),computed:{cards(){return this.content.length?this.content.reduce((e,a)=>{if(a.type==="link")return e;if(a.type==="indent")return e.push([]),e;{const t=e.length===0?0:e.length-1;return e[t].push(a),e}},[[]]):[[]]},titles(){return this.content.filter(e=>e.type==="title")}},watch:{offsetTop(e){e<10&&(this.isCollapsed=!1)}},mounted(){this.observeSections()},unmounted(){try{this.sectionObserver.disconnect()}catch{}},methods:{getComponentName(e){switch(e){case"title":return"GrammarTitlePreview";case"subtitle":return"GrammarTitlePreview";case"text":return"GrammarTextPreview";case"scheme":return"GrammarSchemePreview";case"example":return"GrammarExamplePreview";case"quote":return"GrammarQuotePreview"}},onScroll(e){this.offsetTop=e.target.documentElement.scrollTop},observeSections(){try{this.sectionObserver.disconnect()}catch{}const e={rootMargin:"0px 0px",threshold:.5};this.sectionObserver=new IntersectionObserver(this.sectionObserverHandler,e),document.querySelectorAll(".section").forEach(t=>{this.sectionObserver.observe(t)})},sectionObserverHandler(e){e.forEach(a=>{if(a.isIntersecting){const t=a.target.id;this.anchor=t}})}}},Qt={id:"scroll-target",class:"preview__iphone-wrapper"},Wt={class:"d-flex flex-wrap"};function zt(e,a,t,r,c,n){const l=ot,o=te;return s(),u("div",Qt,[d(l,{"is-collapsed":e.isCollapsed,titles:n.titles,title:t.title,de
1scription:t.description,tags:t.tags,anchor:e.anchor,language:t.language,onOnCollapseChange:a[0]||(a[0]=i=>e.isCollapsed=i)},null,8,["is-collapsed","titles","title","description","tags","anchor","language"]),n.cards[0].length?z((s(),f(Ne,{key:0,class:"ma-0"},{default:p(()=>[(s(!0),u(k,null,T(n.cards,(i,w)=>(s(),f(q,{key:w,class:"px-0",cols:"12"},{default:p(()=>[d(H,{flat:"",color:"white",class:"rounded-xl preview__card"},{default:p(()=>[(s(!0),u(k,null,T(i,(m,_)=>(s(),u("div",{key:m.type+_,class:"component-preview-wrapper"},[(s(),f(Pe(n.getComponentName(m.type)),E({ref_for:!0},m),null,16))]))),128))]),_:2},1024)]),_:2},1024))),128)),t.links.length?(s(),f(q,{key:0,class:"mx-3"},{default:p(()=>[a[1]||(a[1]=h("span",{class:"text-body-2"},"Learn more",-1)),h("div",Wt,[(s(!0),u(k,null,T(t.links,i=>(s(),f(o,{key:i.id,class:"mr-2 my-1",language:t.language,value:i},null,8,["language","value"]))),128))])]),_:1})):G("",!0)]),_:1})),[[tt,n.onScroll]]):G("",!0)])}const Ut=P(Ft,[["render",zt],["__scopeId","data-v-22cfe267"]]),Kt={key:0,class:"mx-auto"},Jt=I({__name:"[id]",setup(e){const a=Ce(),{$api:t}=Y(),r=J("en"),c=B(()=>{var m,_;return`Learn "${(_=(m=o.value)==null?void 0:m.grammar)==null?void 0:_.title.en}" and many Other Chinese grammar topics with Laoshi`}),n=m=>{const _=m.find(g=>g.name.en.includes("HSK"));return m.find(g=>g.name.en.includes("new HSK"))||_||m[0]},l=a.params.id,{data:o,status:i}=We(`grammar:${l}`,async()=>{try{const m=await t.laoshi.getGrammar(l),_=m.data.content.en.filter(v=>v.type==="link"&&v.value!=="");let C={data:[]};_.length>0&&(C=await t.laoshi.getGrammarNames(_.map(v=>v.value.id)));const g=new Qe(m.data).withSplitTags().toPojo(),V=[];Object.keys(g.tags).forEach(v=>{V.push(...g.tags[v])});const b=n(V),$=[{title:"Home",disabled:!1,href:"https://laoshi.io/"},{title:"Grammar",disabled:!1,to:"/en/"},{to:`/en/${a.params.id}/`,title:g.title.en}];if(b){const v=[{to:"/en/sections/",title:"Sections"},{to:`/en/sections/${b.section.slug}/`,title:b.section.name.en},{to:"/en/tags/",title:"Tags"},{to:`/en/tags/${b.slug}/`,title:b.name.en}];$==null||$.splice(2,0,...v)}return{grammar:g,tags:V,breadcrumbItems:$,linkTitles:C.data}}catch(m){console.log(m)}},{immediate:!0,lazy:!1});ze({title:()=>{var m,_;return((_=(m=o.value)==null?void 0:m.grammar)==null?void 0:_.title.en)||"Grammar"},description:()=>{var m,_,C;return((C=(_=(m=o.value)==null?void 0:m.grammar)==null?void 0:_.description)==null?void 0:C.en.trim())||c.value}});const w=B(()=>{const m={$deeplink_path:`https://share.laoshi.io/grammarTagId?id=${l}`,$ios_deeplink_path:`https://share.laoshi.io/grammarTagId?id=${l}`,$android_deeplink_path:`https://share.laoshi.io/grammarTagId?id=${l}`,$ios_url:`https://share.laoshi.io/grammarTagId?id=${l}`,campaign:"laoshi.grammar.web",$desktop_url:`https://laoshi.io/grammar/en/${l}/`};return`https://applinks.laoshi.io/LeT688PzCAb?${new URLSearchParams(m)}`});return(m,_)=>{var g,V,b,$,v;const C=ie;return(x(i)==="success"||x(i)==="idle")&&((g=x(o))!=null&&g.grammar)?(s(),u("div",Kt,[d(C,{component:"Default",width:"1200",height:"630",url:`https://laoshi.io/grammar/en/${x(l)}/__og_image__/og.png`,text:(b=(V=x(o).grammar)==null?void 0:V.title)==null?void 0:b.en,description:(v=($=x(o).grammar)==null?void 0:$.description)==null?void 0:v.en},null,8,["url","text","description"]),d(Ue,{class:"ellipsis overflow-x-auto",items:x(o).breadcrumbItems},null,8,["items"]),d(Ut,{class:"mx-auto","is-collapsed":!1,language:r.value,title:x(o).grammar.title[r.value],description:x(o).grammar.description[r.value],tags:x(o).tags,content:x(o).grammar.content[r.value],links:x(o).linkTitles},null,8,["language","title","description","tags","content","links"]),d(X,{position:"fixed",class:"fab d-lg-none",elevation:"4",size:"large",rounded:"",variant:"elevated",color:"yellow",href:x(w)},{default:p(()=>_[0]||(_[0]=[S(" Open in app ")])),_:1},8,["href"])])):G("",!0)}}}),da=P(Jt,[["__scopeId","data-v-bd22c839"]]);export{da 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.