UNPKG

angular-t9n

Version:

A translation tool for Angular i18n

2 lines (1 loc) 1.58 kB
import{a as f,b as m}from"./chunk-NRGBO6B5.js";import{F as u,U as s,X as o,_,da as g,i,q as a,r as c,yc as l,z as h}from"./chunk-IRWV2DJQ.js";var H=(()=>{let r=class r{constructor(){this._http=g(l),this._websocketService=g(m),this._rootSubject=new i(null),this._targetsSubject=new i(null),this._targetsMap=new i(new Map),this._targets=this._targetsSubject.pipe(h(t=>!!t)),this.root=this._rootSubject.pipe(h(t=>!!t)),this.targets=this._targetsMap.pipe(a(t=>Array.from(t.values()))),this.root.pipe(s(t=>this._http.get(t._links.targets.href))).subscribe(t=>this._targetsSubject.next(t)),this._targets.pipe(s(t=>this._loadTargets(t))).subscribe(t=>this._targetsMap.next(t)),this._websocketService.projectChange.pipe(s(()=>this._http.get(`${f.translationServer}/api`))).subscribe(t=>this._rootSubject.next(t))}target(t){return this._targetsMap.pipe(a(e=>e.get(t)))}createTarget(t){return this._targets.pipe(u(1),a(e=>this._targetHref(e,t)),s(e=>this._http.post(e,{})),o(e=>this._updateTarget(e)))}updateTarget(t){return this._targets.pipe(a(e=>this._targetHref(e,t)),s(e=>this._http.get(e)),o(e=>this._updateTarget(e)))}_loadTargets(t){return c(t.languages.map(e=>this._targetHref(t,e)).map(e=>this._http.get(e))).pipe(a(e=>e.reduce((b,n)=>b.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)}};r.\u0275fac=function(e){return new(e||r)},r.\u0275prov=_({token:r,factory:r.\u0275fac,providedIn:"root"});let p=r;return p})();export{H as a};