homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
2 lines (1 loc) • 12.5 kB
JavaScript
import{$ as A,B as I,C as O,D as N,Da as w,L as K,O as C,Vc as _,Y as P,a as F,ga as u,ja as B,la as o,n as y,pb as H,r as L,t as g,x}from"./chunk-645YHJEQ.js";var v=class{},G=(()=>{class e{handle(t){return t.key}static \u0275fac=function(n){return new(n||e)};static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})(),d=class{},z=(()=>{class e extends d{compile(t,n){return t}compileTranslations(t,n){return t}static \u0275fac=(()=>{let t;return function(r){return(t||(t=w(e)))(r||e)}})();static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})(),p=class{},W=(()=>{class e extends p{getTranslation(t){return L({})}static \u0275fac=(()=>{let t;return function(r){return(t||(t=w(e)))(r||e)}})();static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})();function k(e,a){if(e===a)return!0;if(e===null||a===null)return!1;if(e!==e&&a!==a)return!0;let t=typeof e,n=typeof a,r;if(t==n&&t=="object")if(Array.isArray(e)){if(!Array.isArray(a))return!1;if((r=e.length)==a.length){for(let s=0;s<r;s++)if(!k(e[s],a[s]))return!1;return!0}}else{if(Array.isArray(a))return!1;if(l(e)&&l(a)){let s=Object.create(null);for(let i in e){if(!k(e[i],a[i]))return!1;s[i]=!0}for(let i in a)if(!(i in s)&&typeof a[i]<"u")return!1;return!0}}return!1}function h(e){return typeof e<"u"&&e!==null}function J(e){return e!==void 0}function l(e){return T(e)&&!f(e)&&e!==null}function T(e){return typeof e=="object"&&e!==null}function f(e){return Array.isArray(e)}function S(e){return typeof e=="string"}function Z(e){return typeof e=="function"}function D(e){if(f(e))return e.map(a=>D(a));if(l(e)){let a={};return Object.keys(e).forEach(t=>{a[t]=D(e[t])}),a}else return e}function V(e,a){if(!T(e))return D(a);let t=D(e);return T(t)&&T(a)&&Object.keys(a).forEach(n=>{l(a[n])?n in e?t[n]=V(e[n],a[n]):Object.assign(t,{[n]:a[n]}):Object.assign(t,{[n]:a[n]})}),t}function U(e,a){let t=a.split(".");a="";do{a+=t.shift();let n=!t.length;if(h(e)){if(l(e)&&J(e[a])&&(l(e[a])||f(e[a])||n)){e=e[a],a="";continue}if(f(e)){let r=parseInt(a,10);if(J(e[r])&&(l(e[r])||f(e[r])||n)){e=e[r],a="";continue}}}if(n){e=void 0;continue}a+="."}while(t.length);return e}function Q(e,a,t){return V(e,X(a,t))}function X(e,a){return e.split(".").reduceRight((t,n)=>({[n]:t}),a)}var b=class{},Y=(()=>{class e extends b{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(t,n){if(S(t))return this.interpolateString(t,n);if(Z(t))return this.interpolateFunction(t,n)}interpolateFunction(t,n){return t(n)}interpolateString(t,n){return n?t.replace(this.templateMatcher,(r,s)=>{let i=this.getInterpolationReplacement(n,s);return i!==void 0?i:r}):t}getInterpolationReplacement(t,n){return this.formatValue(U(t,n))}formatValue(t){if(S(t))return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(t===null)return"null";if(f(t))return t.join(", ");if(T(t))return typeof t.toString=="function"&&t.toString!==Object.prototype.toString?t.toString():JSON.stringify(t)}static \u0275fac=(()=>{let t;return function(r){return(t||(t=w(e)))(r||e)}})();static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})(),R=(()=>{class e{_onTranslationChange=new y;_onLangChange=new y;_onFallbackLangChange=new y;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(t){return this.translations[t]}setTranslations(t,n,r){this.translations[t]=r&&this.hasTranslationFor(t)?V(this.translations[t],n):n,this.addLanguages([t]),this._onTranslationChange.next({lang:t,translations:this.getTranslations(t)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(t,n=!0){this.fallbackLang=t,n&&this._onFallbackLangChange.next({lang:t,translations:this.translations[t]})}setCurrentLang(t,n=!0){this.currentLang=t,n&&this._onLangChange.next({lang:t,translations:this.translations[t]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(t){this.languages=Array.from(new Set([...this.languages,...t]))}hasTranslationFor(t){return typeof this.translations[t]<"u"}deleteTranslations(t){delete this.translations[t]}getTranslation(t){let n=this.getValue(this.currentLang,t);return n===void 0&&this.fallbackLang!=null&&this.fallbackLang!==this.currentLang&&(n=this.getValue(this.fallbackLang,t)),n}getValue(t,n){return U(this.getTranslations(t),n)}static \u0275fac=function(n){return new(n||e)};static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})(),j=new B("TRANSLATE_CONFIG"),m=e=>g(e)?e:L(e);var M=(()=>{class e{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=o(p);compiler=o(d);parser=o(b);missingTranslationHandler=o(v);store=o(R);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){let t=F({extend:!1,fallbackLang:null},o(j,{optional:!0}));t.lang&&this.use(t.lang),t.fallbackLang&&this.setFallbackLang(t.fallbackLang),t.extend&&(this.extend=!0)}setFallbackLang(t){this.getFallbackLang()||this.store.setFallbackLang(t,!1);let n=this.loadOrExtendLanguage(t);return g(n)?(n.pipe(C(1)).subscribe({next:()=>{this.store.setFallbackLang(t)},error:()=>{}}),n):(this.store.setFallbackLang(t),L(this.store.getTranslations(t)))}use(t){this.lastUseLanguage=t,this.getCurrentLang()||this.store.setCurrentLang(t,!1);let n=this.loadOrExtendLanguage(t);return g(n)?(n.pipe(C(1)).subscribe({next:()=>{this.changeLang(t)},error:()=>{}}),n):(this.changeLang(t),L(this.store.getTranslations(t)))}loadOrExtendLanguage(t){if(!this.store.hasTranslationFor(t)||this.extend)return this._translationRequests[t]=this._translationRequests[t]||this.loadAndCompileTranslations(t),this._translationRequests[t]}changeLang(t){t===this.lastUseLanguage&&this.store.setCurrentLang(t)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(t){this.pending=!0;let n=this.currentLoader.getTranslation(t).pipe(P(1),C(1));return this.loadingTranslations=n.pipe(x(r=>this.compiler.compileTranslations(r,t)),P(1),C(1)),this.loadingTranslations.subscribe({next:r=>{this.store.setTranslations(t,r,this.extend),this.pending=!1},error:r=>{this.pending=!1}}),n}setTranslation(t,n,r=!1){let s=this.compiler.compileTranslations(n,t);this.store.setTranslations(t,s,r||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(t){this.store.addLanguages(t)}getParsedResultForKey(t,n){let r=this.getTextToInterpolate(t);if(h(r))return this.runInterpolation(r,n);let s=this.missingTranslationHandler.handle(F({key:t,translateService:this},n!==void 0&&{interpolateParams:n}));return s!==void 0?s:t}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(t){return this.store.getTranslation(t)}runInterpolation(t,n){if(h(t))return f(t)?this.runInterpolationOnArray(t,n):l(t)?this.runInterpolationOnDict(t,n):this.parser.interpolate(t,n)}runInterpolationOnArray(t,n){return t.map(r=>this.runInterpolation(r,n))}runInterpolationOnDict(t,n){let r={};for(let s in t){let i=this.runInterpolation(t[s],n);i!==void 0&&(r[s]=i)}return r}getParsedResult(t,n){return t instanceof Array?this.getParsedResultForArray(t,n):this.getParsedResultForKey(t,n)}getParsedResultForArray(t,n){let r={},s=!1;for(let c of t)r[c]=this.getParsedResultForKey(c,n),s=s||g(r[c]);if(!s)return r;let i=t.map(c=>m(r[c]));return N(i).pipe(x(c=>{let E={};return c.forEach(($,q)=>{E[t[q]]=$}),E}))}get(t,n){if(!h(t)||!t.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(K(()=>m(this.getParsedResult(t,n)))):m(this.getParsedResult(t,n))}getStreamOnTranslationChange(t,n){if(!h(t)||!t.length)throw new Error('Parameter "key" is required and cannot be empty');return I(O(()=>this.get(t,n)),this.onTranslationChange.pipe(A(()=>{let r=this.getParsedResult(t,n);return m(r)})))}stream(t,n){if(!h(t)||!t.length)throw new Error('Parameter "key" required');return I(O(()=>this.get(t,n)),this.onLangChange.pipe(A(()=>{let r=this.getParsedResult(t,n);return m(r)})))}instant(t,n){if(!h(t)||t.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(t,n);return g(r)?Array.isArray(t)?t.reduce((s,i)=>(s[i]=i,s),{}):t:r}set(t,n,r=this.getCurrentLang()){this.store.setTranslations(r,Q(this.store.getTranslations(r),t,S(n)?this.compiler.compile(n,r):this.compiler.compileTranslations(n,r)),!1)}reloadLang(t){return this.resetLang(t),this.loadAndCompileTranslations(t)}resetLang(t){delete this._translationRequests[t],this.store.deleteTranslations(t)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let t=this.getBrowserCultureLang();return t?t.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return e.getBrowserLang()}getBrowserCultureLang(){return e.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(t){return this.setFallbackLang(t)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(n){return new(n||e)};static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})();var Ct=(()=>{class e{translate=o(M);_ref=o(_);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;updateValue(t,n,r){let s=i=>{this.value=i!==void 0?i:t,this.lastKey=t,this._ref.markForCheck()};if(r){let i=this.translate.getParsedResult(t,n);g(i)?i.subscribe(s):s(i)}this.translate.get(t,n).subscribe(s)}transform(t,...n){if(!t||!t.length)return t;if(k(t,this.lastKey)&&k(n,this.lastParams))return this.value;let r;if(h(n[0])&&n.length)if(S(n[0])&&n[0].length){let s=n[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{r=JSON.parse(s)}catch(i){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${n[0]}`)}}else l(n[0])&&(r=n[0]);return this.lastKey=t,this.lastParams=n,this.updateValue(t,r),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{(this.lastKey&&s.lang===this.translate.getCurrentLang()||s.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(t,r,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(t,r,s.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(t,r))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(n){return new(n||e)};static \u0275pipe=H({name:"translate",type:e,pure:!1});static \u0275prov=u({token:e,factory:e.\u0275fac})}return e})();function tt(e){return{provide:p,useClass:e}}function et(e){return{provide:d,useClass:e}}function nt(e){return{provide:b,useClass:e}}function rt(e){return{provide:v,useClass:e}}function mt(e={}){return at(F({compiler:et(z),parser:nt(Y),loader:tt(W),missingTranslationHandler:rt(G)},e),!0)}function at(e={},a){let t=[];e.loader&&t.push(e.loader),e.compiler&&t.push(e.compiler),e.parser&&t.push(e.parser),e.missingTranslationHandler&&t.push(e.missingTranslationHandler),a&&t.push(R),(e.useDefaultLang||e.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),e.useDefaultLang===!0&&e.defaultLanguage&&(e.fallbackLang=e.defaultLanguage));let n={fallbackLang:e.fallbackLang??null,lang:e.lang,extend:e.extend??!1};return t.push({provide:j,useValue:n}),t.push({provide:M,useClass:M,deps:[R,p,d,b,v,j]}),t}export{M as a,Ct as b,mt as c};