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