angular-t9n
Version:
A translation tool for Angular i18n
2 lines (1 loc) • 1.6 kB
JavaScript
import{a as l,b as f}from"./chunk-OHHIBRCV.js";import{F as _,Lc as m,U as a,X as h,_ as u,da as n,i as p,q as i,r as c,z as o}from"./chunk-XN5ZPBP6.js";var T=(()=>{class s{constructor(r,t){this._http=r,this._websocketService=t,this._rootSubject=new p(null),this._targetsSubject=new p(null),this._targetsMap=new p(new Map),this._targets=this._targetsSubject.pipe(o(e=>!!e)),this.root=this._rootSubject.pipe(o(e=>!!e)),this.targets=this._targetsMap.pipe(i(e=>Array.from(e.values()))),this.root.pipe(a(e=>this._http.get(e._links.targets.href))).subscribe(e=>this._targetsSubject.next(e)),this._targets.pipe(a(e=>this._loadTargets(e))).subscribe(e=>this._targetsMap.next(e)),this._websocketService.projectChange.pipe(a(()=>this._http.get(`${l.translationServer}/api`))).subscribe(e=>this._rootSubject.next(e))}target(r){return this._targetsMap.pipe(i(t=>t.get(r)))}createTarget(r){return this._targets.pipe(_(1),i(t=>this._targetHref(t,r)),a(t=>this._http.post(t,{})),h(t=>this._updateTarget(t)))}updateTarget(r){return this._targets.pipe(i(t=>this._targetHref(t,r)),a(t=>this._http.get(t)),h(t=>this._updateTarget(t)))}_loadTargets(r){return c(r.languages.map(t=>this._targetHref(r,t)).map(t=>this._http.get(t))).pipe(i(t=>t.reduce((e,g)=>e.set(g.language,g),new Map)))}_targetHref(r,t){return r._links.target.href.replace("{language}",t)}_updateTarget(r){let t=new Map(this._targetsMap.value).set(r.language,r);this._targetsMap.next(t)}static{this.\u0275fac=function(t){return new(t||s)(n(m),n(f))}}static{this.\u0275prov=u({token:s,factory:s.\u0275fac,providedIn:"root"})}}return s})();export{T as a};