valtech-components 2.0.863 → 2.0.865
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +4 -2
- package/esm2022/lib/services/auth/storage.service.mjs +28 -4
- package/esm2022/lib/services/auth/sync.service.mjs +13 -7
- package/esm2022/lib/services/firebase/analytics.service.mjs +6 -3
- package/esm2022/lib/services/firebase/config.mjs +15 -10
- package/esm2022/lib/services/i18n/config.mjs +11 -4
- package/esm2022/lib/services/i18n/i18n.service.mjs +20 -8
- package/esm2022/lib/services/local-storage.service.mjs +16 -6
- package/esm2022/lib/services/locale.service.mjs +15 -6
- package/esm2022/lib/services/splash-screen/config.mjs +34 -0
- package/esm2022/lib/services/splash-screen/index.mjs +25 -0
- package/esm2022/lib/services/splash-screen/splash-screen.service.mjs +20 -0
- package/esm2022/lib/services/splash-screen/types.mjs +4 -0
- package/esm2022/lib/services/theme.service.mjs +22 -11
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/valtech-components.mjs +207 -49
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/glow/glow.component.d.ts +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/atoms/text/text.component.d.ts +1 -1
- package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
- package/lib/components/molecules/features-list/features-list.component.d.ts +3 -3
- package/lib/components/organisms/article/article.component.d.ts +5 -5
- package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +1 -1
- package/lib/components/organisms/toolbar/toolbar.component.d.ts +2 -2
- package/lib/services/auth/storage.service.d.ts +2 -1
- package/lib/services/auth/sync.service.d.ts +3 -1
- package/lib/services/i18n/i18n.service.d.ts +2 -1
- package/lib/services/local-storage.service.d.ts +5 -5
- package/lib/services/locale.service.d.ts +3 -1
- package/lib/services/splash-screen/config.d.ts +21 -0
- package/lib/services/splash-screen/index.d.ts +24 -0
- package/lib/services/splash-screen/splash-screen.service.d.ts +6 -0
- package/lib/services/splash-screen/types.d.ts +4 -0
- package/lib/services/theme.service.d.ts +2 -1
- package/lib/version.d.ts +1 -1
- package/package.json +6 -2
- package/public-api.d.ts +1 -0
- package/src/lib/services/firebase/firebase-messaging-sw.js +145 -0
|
@@ -47,6 +47,10 @@ export const VALTECH_FIREBASE_CONFIG = new InjectionToken('ValtechFirebaseConfig
|
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
49
|
export function provideValtechFirebase(config) {
|
|
50
|
+
// SSR-safe: durante el prerender / Node, no existe window. getAnalytics(),
|
|
51
|
+
// enableIndexedDbPersistence() y FCM tocan APIs del browser que no existen
|
|
52
|
+
// en el server → cortocircuito de los providers/efectos browser-only acá.
|
|
53
|
+
const isBrowser = typeof window !== 'undefined';
|
|
50
54
|
// Construir array de providers base
|
|
51
55
|
const providers = [
|
|
52
56
|
// Guardar configuración para uso en servicios
|
|
@@ -60,8 +64,9 @@ export function provideValtechFirebase(config) {
|
|
|
60
64
|
if (config.emulator?.firestore) {
|
|
61
65
|
connectFirestoreEmulator(firestore, config.emulator.firestore.host, config.emulator.firestore.port);
|
|
62
66
|
}
|
|
63
|
-
// Habilitar persistencia offline si está configurada
|
|
64
|
-
|
|
67
|
+
// Habilitar persistencia offline si está configurada (browser-only:
|
|
68
|
+
// enableIndexedDbPersistence requiere IndexedDB, no existe en Node).
|
|
69
|
+
if (config.persistence && isBrowser) {
|
|
65
70
|
enableIndexedDbPersistence(firestore).catch((err) => {
|
|
66
71
|
if (err.code === 'failed-precondition') {
|
|
67
72
|
console.warn('[ValtechFirebase] Persistencia no disponible: múltiples pestañas abiertas');
|
|
@@ -92,18 +97,18 @@ export function provideValtechFirebase(config) {
|
|
|
92
97
|
return storage;
|
|
93
98
|
}),
|
|
94
99
|
];
|
|
95
|
-
// Messaging (FCM) - solo si está explícitamente habilitado
|
|
96
|
-
// Requiere Service Worker
|
|
97
|
-
if (config.enableMessaging) {
|
|
100
|
+
// Messaging (FCM) - solo si está explícitamente habilitado y estamos en browser.
|
|
101
|
+
// Requiere Service Worker + Notifications API → skip total en SSR/Node.
|
|
102
|
+
if (config.enableMessaging && isBrowser) {
|
|
98
103
|
// Pre-registrar SW custom antes de que Firebase lo intente
|
|
99
|
-
if (
|
|
104
|
+
if ('serviceWorker' in navigator) {
|
|
100
105
|
navigator.serviceWorker.register('/firebase-messaging-sw.js').catch(console.error);
|
|
101
106
|
}
|
|
102
107
|
providers.push(provideMessaging(() => getMessaging()));
|
|
103
108
|
}
|
|
104
|
-
// Analytics (GA4) - solo si está explícitamente habilitado
|
|
105
|
-
//
|
|
106
|
-
if (config.enableAnalytics && config.firebase.measurementId) {
|
|
109
|
+
// Analytics (GA4) - solo si está explícitamente habilitado y estamos en browser.
|
|
110
|
+
// getAnalytics() / ScreenTrackingService tocan window/document → skip en SSR.
|
|
111
|
+
if (config.enableAnalytics && config.firebase.measurementId && isBrowser) {
|
|
107
112
|
providers.push(provideAnalytics(() => getAnalytics()));
|
|
108
113
|
// Router tracker para page views automáticos (por defecto habilitado)
|
|
109
114
|
if (config.analyticsConfig?.enablePageViewTracking !== false) {
|
|
@@ -128,4 +133,4 @@ export function provideValtechFirebase(config) {
|
|
|
128
133
|
export function hasEmulators(config) {
|
|
129
134
|
return !!(config.emulator?.firestore || config.emulator?.auth || config.emulator?.storage);
|
|
130
135
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQXdCLFlBQVksRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE2QjtJQUNsRSxvQ0FBb0M7SUFDcEMsTUFBTSxTQUFTLEdBQVU7UUFDdkIsOENBQThDO1FBQzlDLEVBQUUsT0FBTyxFQUFF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LGFBQWEsRUFBRSxDQUFDO1FBQzVELFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXZELHNFQUFzRTtRQUN0RSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0QsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsWUFBWTtnQkFDckIsUUFBUSxFQUFFLHFCQUFxQjthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUE2QjtJQUN4RCxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmlyZWJhc2UgQ29uZmlndXJhdGlvblxuICpcbiAqIENvbmZpZ3VyYWNpw7NuIGUgaW5pY2lhbGl6YWNpw7NuIGRlIEZpcmViYXNlIHBhcmEgYXBsaWNhY2lvbmVzIEFuZ3VsYXIuXG4gKiBVc2EgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIGVsIGJvb3RzdHJhcCBkZSB0dSBhcGxpY2FjacOzbi5cbiAqL1xuXG5pbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgRXJyb3JIYW5kbGVyLCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRBbmFseXRpY3MsIHByb3ZpZGVBbmFseXRpY3MsIFNjcmVlblRyYWNraW5nU2VydmljZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYW5hbHl0aWNzJztcbmltcG9ydCB7IGluaXRpYWxpemVBcHAsIHByb3ZpZGVGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IGNvbm5lY3RBdXRoRW11bGF0b3IsIGdldEF1dGgsIHByb3ZpZGVBdXRoIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7XG4gIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvcixcbiAgZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2UsXG4gIGdldEZpcmVzdG9yZSxcbiAgcHJvdmlkZUZpcmVzdG9yZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHsgZ2V0TWVzc2FnaW5nLCBwcm92aWRlTWVzc2FnaW5nIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9tZXNzYWdpbmcnO1xuaW1wb3J0IHsgY29ubmVjdFN0b3JhZ2VFbXVsYXRvciwgZ2V0U3RvcmFnZSwgcHJvdmlkZVN0b3JhZ2UgfSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnO1xuXG5pbXBvcnQgeyBWYWx0ZWNoRmlyZWJhc2VDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFuYWx5dGljc0Vycm9ySGFuZGxlciB9IGZyb20gJy4vYW5hbHl0aWNzLWVycm9yLWhhbmRsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzUm91dGVyVHJhY2tlciB9IGZyb20gJy4vYW5hbHl0aWNzLXJvdXRlci10cmFja2VyJztcblxuLyoqXG4gKiBUb2tlbiBkZSBpbnllY2Npw7NuIHBhcmEgbGEgY29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2UuXG4gKiBVc2FkbyBpbnRlcm5hbWVudGUgcG9yIGxvcyBzZXJ2aWNpb3MgZGUgRmlyZWJhc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX0ZJUkVCQVNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxWYWx0ZWNoRmlyZWJhc2VDb25maWc+KFxuICAnVmFsdGVjaEZpcmViYXNlQ29uZmlnJ1xuKTtcblxuLyoqXG4gKiBQcm92ZWUgRmlyZWJhc2UgYSBsYSBhcGxpY2FjacOzbiBBbmd1bGFyLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICogQHJldHVybnMgRW52aXJvbm1lbnRQcm92aWRlcnMgcGFyYSB1c2FyIGVuIGJvb3RzdHJhcEFwcGxpY2F0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIG1haW4udHNcbiAqIGltcG9ydCB7IGJvb3RzdHJhcEFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG4gKiBpbXBvcnQgeyBwcm92aWRlVmFsdGVjaEZpcmViYXNlIH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuICpcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlVmFsdGVjaEZpcmViYXNlKHtcbiAqICAgICAgIGZpcmViYXNlOiBlbnZpcm9ubWVudC5maXJlYmFzZSxcbiAqICAgICAgIHBlcnNpc3RlbmNlOiB0cnVlLFxuICogICAgICAgZW11bGF0b3I6IGVudmlyb25tZW50LnVzZUVtdWxhdG9ycyA/IHtcbiAqICAgICAgICAgZmlyZXN0b3JlOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA4MDgwIH0sXG4gKiAgICAgICAgIGF1dGg6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkwOTkgfSxcbiAqICAgICAgICAgc3RvcmFnZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogOTE5OSB9LFxuICogICAgICAgfSA6IHVuZGVmaW5lZCxcbiAqICAgICB9KSxcbiAqICAgXSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmFsdGVjaEZpcmViYXNlKGNvbmZpZzogVmFsdGVjaEZpcmViYXNlQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAvLyBDb25zdHJ1aXIgYXJyYXkgZGUgcHJvdmlkZXJzIGJhc2VcbiAgY29uc3QgcHJvdmlkZXJzOiBhbnlbXSA9IFtcbiAgICAvLyBHdWFyZGFyIGNvbmZpZ3VyYWNpw7NuIHBhcmEgdXNvIGVuIHNlcnZpY2lvc1xuICAgIHsgcHJvdmlkZTogVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcblxuICAgIC8vIEluaWNpYWxpemFyIEZpcmViYXNlIEFwcFxuICAgIHByb3ZpZGVGaXJlYmFzZUFwcCgoKSA9PiBpbml0aWFsaXplQXBwKGNvbmZpZy5maXJlYmFzZSkpLFxuXG4gICAgLy8gRmlyZXN0b3JlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JlcyB5IHBlcnNpc3RlbmNpYVxuICAgIHByb3ZpZGVGaXJlc3RvcmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoXG4gICAgICAgICAgZmlyZXN0b3JlLFxuICAgICAgICAgIGNvbmZpZy5lbXVsYXRvci5maXJlc3RvcmUuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3IuZmlyZXN0b3JlLnBvcnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFiaWxpdGFyIHBlcnNpc3RlbmNpYSBvZmZsaW5lIHNpIGVzdMOhIGNvbmZpZ3VyYWRhXG4gICAgICBpZiAoY29uZmlnLnBlcnNpc3RlbmNlKSB7XG4gICAgICAgIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKGZpcmVzdG9yZSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gJ2ZhaWxlZC1wcmVjb25kaXRpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gZGlzcG9uaWJsZTogbcO6bHRpcGxlcyBwZXN0YcOxYXMgYWJpZXJ0YXMnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyLmNvZGUgPT09ICd1bmltcGxlbWVudGVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gc29wb3J0YWRhIGVuIGVzdGUgbmF2ZWdhZG9yJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpcmVzdG9yZTtcbiAgICB9KSxcblxuICAgIC8vIEF1dGggY29uIHNvcG9ydGUgcGFyYSBlbXVsYWRvclxuICAgIHByb3ZpZGVBdXRoKCgpID0+IHtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihcbiAgICAgICAgICBhdXRoLFxuICAgICAgICAgIGBodHRwOi8vJHtjb25maWcuZW11bGF0b3IuYXV0aC5ob3N0fToke2NvbmZpZy5lbXVsYXRvci5hdXRoLnBvcnR9YCxcbiAgICAgICAgICB7IGRpc2FibGVXYXJuaW5nczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdXRoO1xuICAgIH0pLFxuXG4gICAgLy8gU3RvcmFnZSBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yXG4gICAgcHJvdmlkZVN0b3JhZ2UoKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2UoKTtcblxuICAgICAgLy8gQ29uZWN0YXIgYSBlbXVsYWRvciBzaSBlc3TDoSBjb25maWd1cmFkb1xuICAgICAgaWYgKGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSkge1xuICAgICAgICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yKFxuICAgICAgICAgIHN0b3JhZ2UsXG4gICAgICAgICAgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3Iuc3RvcmFnZS5wb3J0XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0pLFxuICBdO1xuXG4gIC8vIE1lc3NhZ2luZyAoRkNNKSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG9cbiAgLy8gUmVxdWllcmUgU2VydmljZSBXb3JrZXIgY29uZmlndXJhZG8sIHB1ZWRlIGNvbmdlbGFyIGxhIGFwcCBzaSBubyBlc3TDoSBkaXNwb25pYmxlXG4gIGlmIChjb25maWcuZW5hYmxlTWVzc2FnaW5nKSB7XG4gICAgLy8gUHJlLXJlZ2lzdHJhciBTVyBjdXN0b20gYW50ZXMgZGUgcXVlIEZpcmViYXNlIGxvIGludGVudGVcbiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikge1xuICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9maXJlYmFzZS1tZXNzYWdpbmctc3cuanMnKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICB9XG4gICAgcHJvdmlkZXJzLnB1c2gocHJvdmlkZU1lc3NhZ2luZygoKSA9PiBnZXRNZXNzYWdpbmcoKSkpO1xuICB9XG5cbiAgLy8gQW5hbHl0aWNzIChHQTQpIC0gc29sbyBzaSBlc3TDoSBleHBsw61jaXRhbWVudGUgaGFiaWxpdGFkb1xuICAvLyBSZXF1aWVyZSBtZWFzdXJlbWVudElkIGVuIGZpcmViYXNlIGNvbmZpZ1xuICBpZiAoY29uZmlnLmVuYWJsZUFuYWx5dGljcyAmJiBjb25maWcuZmlyZWJhc2UubWVhc3VyZW1lbnRJZCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVBbmFseXRpY3MoKCkgPT4gZ2V0QW5hbHl0aWNzKCkpKTtcblxuICAgIC8vIFJvdXRlciB0cmFja2VyIHBhcmEgcGFnZSB2aWV3cyBhdXRvbcOhdGljb3MgKHBvciBkZWZlY3RvIGhhYmlsaXRhZG8pXG4gICAgaWYgKGNvbmZpZy5hbmFseXRpY3NDb25maWc/LmVuYWJsZVBhZ2VWaWV3VHJhY2tpbmcgIT09IGZhbHNlKSB7XG4gICAgICBwcm92aWRlcnMucHVzaChBbmFseXRpY3NSb3V0ZXJUcmFja2VyKTtcbiAgICB9XG5cbiAgICAvLyBFcnJvciBoYW5kbGVyIHBhcmEgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3Jlc1xuICAgIGlmIChjb25maWcuYW5hbHl0aWNzQ29uZmlnPy5lbmFibGVFcnJvclRyYWNraW5nKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgICAgdXNlQ2xhc3M6IEFuYWx5dGljc0Vycm9ySGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cblxuLyoqXG4gKiBWZXJpZmljYSBzaSBsb3MgZW11bGFkb3JlcyBlc3TDoW4gY29uZmlndXJhZG9zLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICogQHJldHVybnMgdHJ1ZSBzaSBoYXkgYWwgbWVub3MgdW4gZW11bGFkb3IgY29uZmlndXJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0VtdWxhdG9ycyhjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoY29uZmlnLmVtdWxhdG9yPy5maXJlc3RvcmUgfHwgY29uZmlnLmVtdWxhdG9yPy5hdXRoIHx8IGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSk7XG59XG4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQXdCLFlBQVksRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE2QjtJQUNsRSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSxNQUFNLFNBQVMsR0FBRyxPQUFPLE1B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QyxDQUFDO0lBQ3pELENBQUM7SUFFRCxpRkFBaUY7SUFDakYsOEVBQThFO0lBQzlFLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6RSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RCxzRUFBc0U7UUFDdEUsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLHNCQUFzQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdELFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsb0RBQW9EO1FBQ3BELElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2IsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLFFBQVEsRUFBRSxxQkFBcUI7YUFDaEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBNkI7SUFDeEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpcmViYXNlIENvbmZpZ3VyYXRpb25cbiAqXG4gKiBDb25maWd1cmFjacOzbiBlIGluaWNpYWxpemFjacOzbiBkZSBGaXJlYmFzZSBwYXJhIGFwbGljYWNpb25lcyBBbmd1bGFyLlxuICogVXNhIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKSBlbiBlbCBib290c3RyYXAgZGUgdHUgYXBsaWNhY2nDs24uXG4gKi9cblxuaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEVycm9ySGFuZGxlciwgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0QW5hbHl0aWNzLCBwcm92aWRlQW5hbHl0aWNzLCBTY3JlZW5UcmFja2luZ1NlcnZpY2UgfSBmcm9tICdAYW5ndWxhci9maXJlL2FuYWx5dGljcyc7XG5pbXBvcnQgeyBpbml0aWFsaXplQXBwLCBwcm92aWRlRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCc7XG5pbXBvcnQgeyBjb25uZWN0QXV0aEVtdWxhdG9yLCBnZXRBdXRoLCBwcm92aWRlQXV0aCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCc7XG5pbXBvcnQge1xuICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IsXG4gIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlLFxuICBnZXRGaXJlc3RvcmUsXG4gIHByb3ZpZGVGaXJlc3RvcmUsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IGdldE1lc3NhZ2luZywgcHJvdmlkZU1lc3NhZ2luZyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvbWVzc2FnaW5nJztcbmltcG9ydCB7IGNvbm5lY3RTdG9yYWdlRW11bGF0b3IsIGdldFN0b3JhZ2UsIHByb3ZpZGVTdG9yYWdlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9zdG9yYWdlJztcblxuaW1wb3J0IHsgVmFsdGVjaEZpcmViYXNlQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NFcnJvckhhbmRsZXIgfSBmcm9tICcuL2FuYWx5dGljcy1lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IEFuYWx5dGljc1JvdXRlclRyYWNrZXIgfSBmcm9tICcuL2FuYWx5dGljcy1yb3V0ZXItdHJhY2tlcic7XG5cbi8qKlxuICogVG9rZW4gZGUgaW55ZWNjacOzbiBwYXJhIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIEZpcmViYXNlLlxuICogVXNhZG8gaW50ZXJuYW1lbnRlIHBvciBsb3Mgc2VydmljaW9zIGRlIEZpcmViYXNlLlxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsdGVjaEZpcmViYXNlQ29uZmlnPihcbiAgJ1ZhbHRlY2hGaXJlYmFzZUNvbmZpZydcbik7XG5cbi8qKlxuICogUHJvdmVlIEZpcmViYXNlIGEgbGEgYXBsaWNhY2nDs24gQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2VcbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHBhcmEgdXNhciBlbiBib290c3RyYXBBcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzXG4gKiBpbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSh7XG4gKiAgICAgICBmaXJlYmFzZTogZW52aXJvbm1lbnQuZmlyZWJhc2UsXG4gKiAgICAgICBwZXJzaXN0ZW5jZTogdHJ1ZSxcbiAqICAgICAgIGVtdWxhdG9yOiBlbnZpcm9ubWVudC51c2VFbXVsYXRvcnMgPyB7XG4gKiAgICAgICAgIGZpcmVzdG9yZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogODA4MCB9LFxuICogICAgICAgICBhdXRoOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MDk5IH0sXG4gKiAgICAgICAgIHN0b3JhZ2U6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkxOTkgfSxcbiAqICAgICAgIH0gOiB1bmRlZmluZWQsXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hGaXJlYmFzZShjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgLy8gU1NSLXNhZmU6IGR1cmFudGUgZWwgcHJlcmVuZGVyIC8gTm9kZSwgbm8gZXhpc3RlIHdpbmRvdy4gZ2V0QW5hbHl0aWNzKCksXG4gIC8vIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKCkgeSBGQ00gdG9jYW4gQVBJcyBkZWwgYnJvd3NlciBxdWUgbm8gZXhpc3RlblxuICAvLyBlbiBlbCBzZXJ2ZXIg4oaSIGNvcnRvY2lyY3VpdG8gZGUgbG9zIHByb3ZpZGVycy9lZmVjdG9zIGJyb3dzZXItb25seSBhY8OhLlxuICBjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcblxuICAvLyBDb25zdHJ1aXIgYXJyYXkgZGUgcHJvdmlkZXJzIGJhc2VcbiAgY29uc3QgcHJvdmlkZXJzOiBhbnlbXSA9IFtcbiAgICAvLyBHdWFyZGFyIGNvbmZpZ3VyYWNpw7NuIHBhcmEgdXNvIGVuIHNlcnZpY2lvc1xuICAgIHsgcHJvdmlkZTogVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcblxuICAgIC8vIEluaWNpYWxpemFyIEZpcmViYXNlIEFwcFxuICAgIHByb3ZpZGVGaXJlYmFzZUFwcCgoKSA9PiBpbml0aWFsaXplQXBwKGNvbmZpZy5maXJlYmFzZSkpLFxuXG4gICAgLy8gRmlyZXN0b3JlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JlcyB5IHBlcnNpc3RlbmNpYVxuICAgIHByb3ZpZGVGaXJlc3RvcmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoXG4gICAgICAgICAgZmlyZXN0b3JlLFxuICAgICAgICAgIGNvbmZpZy5lbXVsYXRvci5maXJlc3RvcmUuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3IuZmlyZXN0b3JlLnBvcnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFiaWxpdGFyIHBlcnNpc3RlbmNpYSBvZmZsaW5lIHNpIGVzdMOhIGNvbmZpZ3VyYWRhIChicm93c2VyLW9ubHk6XG4gICAgICAvLyBlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSByZXF1aWVyZSBJbmRleGVkREIsIG5vIGV4aXN0ZSBlbiBOb2RlKS5cbiAgICAgIGlmIChjb25maWcucGVyc2lzdGVuY2UgJiYgaXNCcm93c2VyKSB7XG4gICAgICAgIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKGZpcmVzdG9yZSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gJ2ZhaWxlZC1wcmVjb25kaXRpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gZGlzcG9uaWJsZTogbcO6bHRpcGxlcyBwZXN0YcOxYXMgYWJpZXJ0YXMnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyLmNvZGUgPT09ICd1bmltcGxlbWVudGVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gc29wb3J0YWRhIGVuIGVzdGUgbmF2ZWdhZG9yJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpcmVzdG9yZTtcbiAgICB9KSxcblxuICAgIC8vIEF1dGggY29uIHNvcG9ydGUgcGFyYSBlbXVsYWRvclxuICAgIHByb3ZpZGVBdXRoKCgpID0+IHtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihcbiAgICAgICAgICBhdXRoLFxuICAgICAgICAgIGBodHRwOi8vJHtjb25maWcuZW11bGF0b3IuYXV0aC5ob3N0fToke2NvbmZpZy5lbXVsYXRvci5hdXRoLnBvcnR9YCxcbiAgICAgICAgICB7IGRpc2FibGVXYXJuaW5nczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdXRoO1xuICAgIH0pLFxuXG4gICAgLy8gU3RvcmFnZSBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yXG4gICAgcHJvdmlkZVN0b3JhZ2UoKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2UoKTtcblxuICAgICAgLy8gQ29uZWN0YXIgYSBlbXVsYWRvciBzaSBlc3TDoSBjb25maWd1cmFkb1xuICAgICAgaWYgKGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSkge1xuICAgICAgICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yKFxuICAgICAgICAgIHN0b3JhZ2UsXG4gICAgICAgICAgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3Iuc3RvcmFnZS5wb3J0XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0pLFxuICBdO1xuXG4gIC8vIE1lc3NhZ2luZyAoRkNNKSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIFJlcXVpZXJlIFNlcnZpY2UgV29ya2VyICsgTm90aWZpY2F0aW9ucyBBUEkg4oaSIHNraXAgdG90YWwgZW4gU1NSL05vZGUuXG4gIGlmIChjb25maWcuZW5hYmxlTWVzc2FnaW5nICYmIGlzQnJvd3Nlcikge1xuICAgIC8vIFByZS1yZWdpc3RyYXIgU1cgY3VzdG9tIGFudGVzIGRlIHF1ZSBGaXJlYmFzZSBsbyBpbnRlbnRlXG4gICAgaWYgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IpIHtcbiAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvZmlyZWJhc2UtbWVzc2FnaW5nLXN3LmpzJykuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgfVxuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVNZXNzYWdpbmcoKCkgPT4gZ2V0TWVzc2FnaW5nKCkpKTtcbiAgfVxuXG4gIC8vIEFuYWx5dGljcyAoR0E0KSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIGdldEFuYWx5dGljcygpIC8gU2NyZWVuVHJhY2tpbmdTZXJ2aWNlIHRvY2FuIHdpbmRvdy9kb2N1bWVudCDihpIgc2tpcCBlbiBTU1IuXG4gIGlmIChjb25maWcuZW5hYmxlQW5hbHl0aWNzICYmIGNvbmZpZy5maXJlYmFzZS5tZWFzdXJlbWVudElkICYmIGlzQnJvd3Nlcikge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVBbmFseXRpY3MoKCkgPT4gZ2V0QW5hbHl0aWNzKCkpKTtcblxuICAgIC8vIFJvdXRlciB0cmFja2VyIHBhcmEgcGFnZSB2aWV3cyBhdXRvbcOhdGljb3MgKHBvciBkZWZlY3RvIGhhYmlsaXRhZG8pXG4gICAgaWYgKGNvbmZpZy5hbmFseXRpY3NDb25maWc/LmVuYWJsZVBhZ2VWaWV3VHJhY2tpbmcgIT09IGZhbHNlKSB7XG4gICAgICBwcm92aWRlcnMucHVzaChBbmFseXRpY3NSb3V0ZXJUcmFja2VyKTtcbiAgICB9XG5cbiAgICAvLyBFcnJvciBoYW5kbGVyIHBhcmEgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3Jlc1xuICAgIGlmIChjb25maWcuYW5hbHl0aWNzQ29uZmlnPy5lbmFibGVFcnJvclRyYWNraW5nKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgICAgdXNlQ2xhc3M6IEFuYWx5dGljc0Vycm9ySGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cblxuLyoqXG4gKiBWZXJpZmljYSBzaSBsb3MgZW11bGFkb3JlcyBlc3TDoW4gY29uZmlndXJhZG9zLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICogQHJldHVybnMgdHJ1ZSBzaSBoYXkgYWwgbWVub3MgdW4gZW11bGFkb3IgY29uZmlndXJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0VtdWxhdG9ycyhjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoY29uZmlnLmVtdWxhdG9yPy5maXJlc3RvcmUgfHwgY29uZmlnLmVtdWxhdG9yPy5hdXRoIHx8IGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSk7XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { makeEnvironmentProviders, APP_INITIALIZER, } from '@angular/core';
|
|
1
|
+
import { makeEnvironmentProviders, APP_INITIALIZER, PLATFORM_ID, } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import { DEFAULT_I18N_CONFIG } from './types';
|
|
3
4
|
import { I18nService } from './i18n.service';
|
|
4
5
|
import { VALTECH_DEFAULT_CONTENT } from './default-content';
|
|
@@ -33,7 +34,8 @@ export function provideValtechI18n(config = {}) {
|
|
|
33
34
|
return makeEnvironmentProviders([
|
|
34
35
|
{
|
|
35
36
|
provide: APP_INITIALIZER,
|
|
36
|
-
useFactory: (i18n) => {
|
|
37
|
+
useFactory: (i18n, platformId) => {
|
|
38
|
+
const isBrowser = isPlatformBrowser(platformId);
|
|
37
39
|
return () => {
|
|
38
40
|
// Configurar idiomas soportados
|
|
39
41
|
i18n.setI18nLanguages(mergedConfig.supportedLanguages);
|
|
@@ -56,6 +58,11 @@ export function provideValtechI18n(config = {}) {
|
|
|
56
58
|
// Sin detección de navegador: forzar idioma por defecto
|
|
57
59
|
i18n.setLanguage(mergedConfig.defaultLanguage);
|
|
58
60
|
}
|
|
61
|
+
else if (!isBrowser) {
|
|
62
|
+
// SSR: sin localStorage/navigator → forzar default. El cliente
|
|
63
|
+
// re-evaluará en hydrate vía I18nService.loadStoredLanguage().
|
|
64
|
+
i18n.setLanguage(mergedConfig.defaultLanguage);
|
|
65
|
+
}
|
|
59
66
|
else {
|
|
60
67
|
// Con detección: re-evaluar ahora que supportedLanguages está configurado
|
|
61
68
|
const stored = localStorage.getItem('app_lang');
|
|
@@ -71,7 +78,7 @@ export function provideValtechI18n(config = {}) {
|
|
|
71
78
|
}
|
|
72
79
|
};
|
|
73
80
|
},
|
|
74
|
-
deps: [I18nService],
|
|
81
|
+
deps: [I18nService, PLATFORM_ID],
|
|
75
82
|
multi: true,
|
|
76
83
|
},
|
|
77
84
|
]);
|
|
@@ -125,4 +132,4 @@ function deepMergeLanguagesContent(base, override) {
|
|
|
125
132
|
}
|
|
126
133
|
return result;
|
|
127
134
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUE0QyxNQUFNLFNBQVMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBcUIsRUFBRTtJQUN4RCxNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUUzRCxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLENBQUMsSUFBaUIsRUFBRSxFQUFFO2dCQUNoQyxPQUFPLEdBQUcsRUFBRTtvQkFDVixnQ0FBZ0M7b0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFFdkQsbUNBQW1DO29CQUNuQyxJQUFJLGlCQUFpQixHQUFpQixFQUFFLENBQUM7b0JBRXpDLElBQUksWUFBWSxDQUFDLHFCQUFxQixLQUFLLEtBQUssRUFBRSxDQUFDO3dCQUNqRCw0Q0FBNEM7d0JBQzVDLGlCQUFpQixHQUFHLGdCQUFnQixDQUNsQyx1QkFBdUIsRUFDdkIsWUFBWSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQzNCLENBQUM7b0JBQ0osQ0FBQzt5QkFBTSxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDaEMsNkJBQTZCO3dCQUM3QixpQkFB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USxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgQVBQX0lOSVRJQUxJWkVSLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEkxOG5Db25maWcsIERFRkFVTFRfSTE4Tl9DT05GSUcsIENvbnRlbnRTdG9yZSwgTGFuZ3VhZ2VzQ29udGVudCwgSTE4bkxhbmcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9ERUZBVUxUX0NPTlRFTlQgfSBmcm9tICcuL2RlZmF1bHQtY29udGVudCc7XG5cbi8qKlxuICogQ29uZmlndXJhIGVsIHNpc3RlbWEgZGUgaW50ZXJuYWNpb25hbGl6YWNpw7NuIGRlIFZhbHRlY2ggQ29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYWNpw7NuIGRlIGkxOG5cbiAqIEByZXR1cm5zIFByb3ZpZGVycyBwYXJhIGFncmVnYXIgZW4gYXBwLmNvbmZpZy50c1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBhcHAuY29uZmlnLnRzXG4gKiBpbXBvcnQgeyBwcm92aWRlVmFsdGVjaEkxOG4gfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICogaW1wb3J0IHsgR0xPQkFMX0NPTlRFTlQgfSBmcm9tICcuL2kxOG4vX2dsb2JhbCc7XG4gKiBpbXBvcnQgeyBMT0dJTl9DT05URU5UIH0gZnJvbSAnLi9pMThuL2xvZ2luLmkxOG4nO1xuICpcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlVmFsdGVjaEkxOG4oe1xuICogICAgICAgZGVmYXVsdExhbmd1YWdlOiAnZXMnLFxuICogICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbJ2VzJywgJ2VuJ10sXG4gKiAgICAgICBkZXRlY3RCcm93c2VyTGFuZ3VhZ2U6IHRydWUsXG4gKiAgICAgICBjb250ZW50OiB7XG4gKiAgICAgICAgICdfZ2xvYmFsJzogR0xPQkFMX0NPTlRFTlQsXG4gKiAgICAgICAgICdMb2dpbic6IExPR0lOX0NPTlRFTlQsXG4gKiAgICAgICB9XG4gKiAgICAgfSksXG4gKiAgIF1cbiAqIH07XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmFsdGVjaEkxOG4oY29uZmlnOiBJMThuQ29uZmlnID0ge30pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IG1lcmdlZENvbmZpZyA9IHsgLi4uREVGQVVMVF9JMThOX0NPTkZJRywgLi4uY29uZmlnIH07XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogKGkxOG46IEkxOG5TZXJ2aWNlKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgLy8gQ29uZmlndXJhciBpZGlvbWFzIHNvcG9ydGFkb3NcbiAgICAgICAgICBpMThuLnNldEkxOG5MYW5ndWFnZXMobWVyZ2VkQ29uZmlnLnN1cHBvcnRlZExhbmd1YWdlcyk7XG5cbiAgICAgICAgICAvLyBEZXRlcm1pbmFyIGNvbnRlbmlkbyBhIHJlZ2lzdHJhclxuICAgICAgICAgIGxldCBjb250ZW50VG9SZWdpc3RlcjogQ29udGVudFN0b3JlID0ge307XG5cbiAgICAgICAgICBpZiAobWVyZ2VkQ29uZmlnLmluY2x1ZGVEZWZhdWx0Q29udGVudCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIE1lcmdlOiBkZWZhdWx0cyArIHVzZXIgY29uZmlnICh1c2VyIGdhbmEpXG4gICAgICAgICAgICBjb250ZW50VG9SZWdpc3RlciA9IGRlZXBNZXJnZUNvbnRlbnQoXG4gICAgICAgICAgICAgIFZBTFRFQ0hfREVGQVVMVF9DT05URU5ULFxuICAgICAgICAgICAgICBtZXJnZWRDb25maWcuY29udGVudCB8fCB7fVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1lcmdlZENvbmZpZy5jb250ZW50KSB7XG4gICAgICAgICAgICAvLyBTb2xvIGNvbnRlbmlkbyBkZWwgdXN1YXJpb1xuICAgICAgICAgICAgY29udGVudFRvUmVnaXN0ZXIgPSBtZXJnZWRDb25maWcuY29udGVudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBSZWdpc3RyYXIgY29udGVuaWRvXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNvbnRlbnRUb1JlZ2lzdGVyKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpMThuLnJlZ2lzdGVyQ29udGVudEJ1bGsoY29udGVudFRvUmVnaXN0ZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFwbGljYXIgaWRpb21hIHNlZ8O6biBjb25maWd1cmFjacOzblxuICAgICAgICAgIGlmICghbWVyZ2VkQ29uZmlnLmRldGVjdEJyb3dzZXJMYW5ndWFnZSkge1xuICAgICAgICAgICAgLy8gU2luIGRldGVjY2nDs24gZGUgbmF2ZWdhZG9yOiBmb3J6YXIgaWRpb21hIHBvciBkZWZlY3RvXG4gICAgICAgICAgICBpMThuLnNldExhbmd1YWdlKG1lcmdlZENvbmZpZy5kZWZhdWx0TGFuZ3VhZ2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDb24gZGV0ZWNjacOzbjogcmUtZXZhbHVhciBhaG9yYSBxdWUgc3VwcG9ydGVkTGFuZ3VhZ2VzIGVzdMOhIGNvbmZpZ3VyYWRvXG4gICAgICAgICAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXBwX2xhbmcnKTtcbiAgICAgICAgICAgIGlmICghc3RvcmVkIHx8ICFtZXJnZWRDb25maWcuc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKHN0b3JlZCBhcyBJMThuTGFuZykpIHtcbiAgICAgICAgICAgICAgY29uc3QgYnJvd3NlckxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXSBhcyBJMThuTGFuZztcbiAgICAgICAgICAgICAgaWYgKG1lcmdlZENvbmZpZy5zdXBwb3J0ZWRMYW5ndWFnZXMuaW5jbHVkZXMoYnJvd3NlckxhbmcpKSB7XG4gICAgICAgICAgICAgICAgaTE4bi5zZXRMYW5ndWFnZShicm93c2VyTGFuZyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaTE4bi5zZXRMYW5ndWFnZShtZXJnZWRDb25maWcuZGVmYXVsdExhbmd1YWdlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbSTE4blNlcnZpY2VdLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSk7XG59XG5cbi8qKlxuICogRGVlcCBtZXJnZSBkZSBDb250ZW50U3RvcmUuXG4gKiBFbCBjb250ZW5pZG8gZGUgYG92ZXJyaWRlYCBzb2JyZXNjcmliZSBrZXlzIGVzcGVjw61maWNhcyBkZSBgYmFzZWAuXG4gKlxuICogQHBhcmFtIGJhc2UgLSBDb250ZW5pZG8gYmFzZSAoZGVmYXVsdHMgZGUgdmFsdGVjaC1jb21wb25lbnRzKVxuICogQHBhcmFtIG92ZXJyaWRlIC0gQ29udGVuaWRvIGRlbCB1c3VhcmlvIHF1ZSBzb2JyZXNjcmliZVxuICogQHJldHVybnMgQ29udGVudFN0b3JlIG1lcmdlYWRvXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGJhc2UgPSB7IF9nbG9iYWw6IHsgZXM6IHsgb2s6ICdBY2VwdGFyJyB9IH0gfTtcbiAqIGNvbnN0IG92ZXJyaWRlID0geyBfZ2xvYmFsOiB7IGVzOiB7IG9rOiAnRGFsZScgfSB9IH07XG4gKiAvLyBSZXN1bHRhZG86IHsgX2dsb2JhbDogeyBlczogeyBvazogJ0RhbGUnIH0gfSB9XG4gKi9cbmZ1bmN0aW9uIGRlZXBNZXJnZUNvbnRlbnQoYmFzZTogQ29udGVudFN0b3JlLCBvdmVycmlkZTogQ29udGVudFN0b3JlKTogQ29udGVudFN0b3JlIHtcbiAgY29uc3QgcmVzdWx0OiBDb250ZW50U3RvcmUgPSB7fTtcblxuICAvLyBDb3BpYXIgdG9kb3MgbG9zIG5hbWVzcGFjZXMgZGVsIGJhc2VcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICByZXN1bHRbbmFtZXNwYWNlXSA9IGRlZXBNZXJnZUxhbmd1YWdlc0NvbnRlbnQoYmFzZVtuYW1lc3BhY2VdLCB7fSk7XG4gIH1cblxuICAvLyBNZXJnZWFyIG5hbWVzcGFjZXMgZGVsIG92ZXJyaWRlXG4gIGZvciAoY29uc3QgbmFtZXNwYWNlIG9mIE9iamVjdC5rZXlzKG92ZXJyaWRlKSkge1xuICAgIGlmIChyZXN1bHRbbmFtZXNwYWNlXSkge1xuICAgICAgLy8gTmFtZXNwYWNlIGV4aXN0ZSBlbiBiYXNlLCBoYWNlciBkZWVwIG1lcmdlXG4gICAgICByZXN1bHRbbmFtZXNwYWNlXSA9IGRlZXBNZXJnZUxhbmd1YWdlc0NvbnRlbnQocmVzdWx0W25hbWVzcGFjZV0sIG92ZXJyaWRlW25hbWVzcGFjZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOYW1lc3BhY2UgbnVldm8sIGNvcGlhciBjb21wbGV0b1xuICAgICAgcmVzdWx0W25hbWVzcGFjZV0gPSBkZWVwTWVyZ2VMYW5ndWFnZXNDb250ZW50KHt9LCBvdmVycmlkZVtuYW1lc3BhY2VdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIERlZXAgbWVyZ2UgZGUgTGFuZ3VhZ2VzQ29udGVudCAodW4gbmFtZXNwYWNlKS5cbiAqL1xuZnVuY3Rpb24gZGVlcE1lcmdlTGFuZ3VhZ2VzQ29udGVudChcbiAgYmFzZTogTGFuZ3VhZ2VzQ29udGVudCxcbiAgb3ZlcnJpZGU6IExhbmd1YWdlc0NvbnRlbnRcbik6IExhbmd1YWdlc0NvbnRlbnQge1xuICBjb25zdCByZXN1bHQ6IExhbmd1YWdlc0NvbnRlbnQgPSB7fTtcbiAgY29uc3QgYWxsTGFuZ3MgPSBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhiYXNlKSxcbiAgICAuLi5PYmplY3Qua2V5cyhvdmVycmlkZSksXG4gIF0pIGFzIFNldDxJMThuTGFuZz47XG5cbiAgZm9yIChjb25zdCBsYW5nIG9mIGFsbExhbmdzKSB7XG4gICAgcmVzdWx0W2xhbmddID0ge1xuICAgICAgLi4uKGJhc2VbbGFuZ10gfHwge30pLFxuICAgICAgLi4uKG92ZXJyaWRlW2xhbmddIHx8IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFjLG1CQUFtQixFQUE0QyxNQUFNLFNBQVMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBcUIsRUFBRTtJQUN4RCxNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUUzRCxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLENBQUMsSUFBaUIsRUFBRSxVQUFrQixFQUFFLEVBQUU7Z0JBQ3BELE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLEdBQUcsRUFBRTtvQkFDVixnQ0FBZ0M7b0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFFdkQsbUNBQW1DO29CQUNuQyxJQUFJLGlCQUFpQixHQUFpQixFQUFFLENBQUM7b0JBRXpDLElBQUksWUFBWSxDQUFDLHFCQUFxQixLQUFLLEtBQUssRUFBRSxDQUFDO3dCQUNqRCw0Q0FBNEM7d0JBQzVDLGlCQUFpQixHQUFHLGdCQUFnQixDQUNsQyx1QkFBdUIs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QUVEOztHQUVHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FDaEMsSUFBc0IsRUFDdEIsUUFBMEI7SUFFMUIsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUN2QixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3BCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7S0FDekIsQ0FBa0IsQ0FBQztJQUVwQixLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIEFQUF9JTklUSUFMSVpFUixcbiAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSTE4bkNvbmZpZywgREVGQVVMVF9JMThOX0NPTkZJRywgQ29udGVudFN0b3JlLCBMYW5ndWFnZXNDb250ZW50LCBJMThuTGFuZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0RFRkFVTFRfQ09OVEVOVCB9IGZyb20gJy4vZGVmYXVsdC1jb250ZW50JztcblxuLyoqXG4gKiBDb25maWd1cmEgZWwgc2lzdGVtYSBkZSBpbnRlcm5hY2lvbmFsaXphY2nDs24gZGUgVmFsdGVjaCBDb21wb25lbnRzLlxuICpcbiAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhY2nDs24gZGUgaTE4blxuICogQHJldHVybnMgUHJvdmlkZXJzIHBhcmEgYWdyZWdhciBlbiBhcHAuY29uZmlnLnRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIGFwcC5jb25maWcudHNcbiAqIGltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoSTE4biB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBHTE9CQUxfQ09OVEVOVCB9IGZyb20gJy4vaTE4bi9fZ2xvYmFsJztcbiAqIGltcG9ydCB7IExPR0lOX0NPTlRFTlQgfSBmcm9tICcuL2kxOG4vbG9naW4uaTE4bic7XG4gKlxuICogZXhwb3J0IGNvbnN0IGFwcENvbmZpZzogQXBwbGljYXRpb25Db25maWcgPSB7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVWYWx0ZWNoSTE4bih7XG4gKiAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6ICdlcycsXG4gKiAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFsnZXMnLCAnZW4nXSxcbiAqICAgICAgIGRldGVjdEJyb3dzZXJMYW5ndWFnZTogdHJ1ZSxcbiAqICAgICAgIGNvbnRlbnQ6IHtcbiAqICAgICAgICAgJ19nbG9iYWwnOiBHTE9CQUxfQ09OVEVOVCxcbiAqICAgICAgICAgJ0xvZ2luJzogTE9HSU5fQ09OVEVOVCxcbiAqICAgICAgIH1cbiAqICAgICB9KSxcbiAqICAgXVxuICogfTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWYWx0ZWNoSTE4bihjb25maWc6IEkxOG5Db25maWcgPSB7fSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgbWVyZ2VkQ29uZmlnID0geyAuLi5ERUZBVUxUX0kxOE5fQ09ORklHLCAuLi5jb25maWcgfTtcblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoaTE4bjogSTE4blNlcnZpY2UsIHBsYXRmb3JtSWQ6IE9iamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAvLyBDb25maWd1cmFyIGlkaW9tYXMgc29wb3J0YWRvc1xuICAgICAgICAgIGkxOG4uc2V0STE4bkxhbmd1YWdlcyhtZXJnZWRDb25maWcuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcblxuICAgICAgICAgIC8vIERldGVybWluYXIgY29udGVuaWRvIGEgcmVnaXN0cmFyXG4gICAgICAgICAgbGV0IGNvbnRlbnRUb1JlZ2lzdGVyOiBDb250ZW50U3RvcmUgPSB7fTtcblxuICAgICAgICAgIGlmIChtZXJnZWRDb25maWcuaW5jbHVkZURlZmF1bHRDb250ZW50ICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgLy8gTWVyZ2U6IGRlZmF1bHRzICsgdXNlciBjb25maWcgKHVzZXIgZ2FuYSlcbiAgICAgICAgICAgIGNvbnRlbnRUb1JlZ2lzdGVyID0gZGVlcE1lcmdlQ29udGVudChcbiAgICAgICAgICAgICAgVkFMVEVDSF9ERUZBVUxUX0NPTlRFTlQsXG4gICAgICAgICAgICAgIG1lcmdlZENvbmZpZy5jb250ZW50IHx8IHt9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAobWVyZ2VkQ29uZmlnLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIC8vIFNvbG8gY29udGVuaWRvIGRlbCB1c3VhcmlvXG4gICAgICAgICAgICBjb250ZW50VG9SZWdpc3RlciA9IG1lcmdlZENvbmZpZy5jb250ZW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJlZ2lzdHJhciBjb250ZW5pZG9cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY29udGVudFRvUmVnaXN0ZXIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGkxOG4ucmVnaXN0ZXJDb250ZW50QnVsayhjb250ZW50VG9SZWdpc3Rlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQXBsaWNhciBpZGlvbWEgc2Vnw7puIGNvbmZpZ3VyYWNpw7NuXG4gICAgICAgICAgaWYgKCFtZXJnZWRDb25maWcuZGV0ZWN0QnJvd3Nlckxhbmd1YWdlKSB7XG4gICAgICAgICAgICAvLyBTaW4gZGV0ZWNjacOzbiBkZSBuYXZlZ2Fkb3I6IGZvcnphciBpZGlvbWEgcG9yIGRlZmVjdG9cbiAgICAgICAgICAgIGkxOG4uc2V0TGFuZ3VhZ2UobWVyZ2VkQ29uZmlnLmRlZmF1bHRMYW5ndWFnZSk7XG4gICAgICAgICAgfSBlbHNlIGlmICghaXNCcm93c2VyKSB7XG4gICAgICAgICAgICAvLyBTU1I6IHNpbiBsb2NhbFN0b3JhZ2UvbmF2aWdhdG9yIOKGkiBmb3J6YXIgZGVmYXVsdC4gRWwgY2xpZW50ZVxuICAgICAgICAgICAgLy8gcmUtZXZhbHVhcsOhIGVuIGh5ZHJhdGUgdsOtYSBJMThuU2VydmljZS5sb2FkU3RvcmVkTGFuZ3VhZ2UoKS5cbiAgICAgICAgICAgIGkxOG4uc2V0TGFuZ3VhZ2UobWVyZ2VkQ29uZmlnLmRlZmF1bHRMYW5ndWFnZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENvbiBkZXRlY2Npw7NuOiByZS1ldmFsdWFyIGFob3JhIHF1ZSBzdXBwb3J0ZWRMYW5ndWFnZXMgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgICAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhcHBfbGFuZycpO1xuICAgICAgICAgICAgaWYgKCFzdG9yZWQgfHwgIW1lcmdlZENvbmZpZy5zdXBwb3J0ZWRMYW5ndWFnZXMuaW5jbHVkZXMoc3RvcmVkIGFzIEkxOG5MYW5nKSkge1xuICAgICAgICAgICAgICBjb25zdCBicm93c2VyTGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdIGFzIEkxOG5MYW5nO1xuICAgICAgICAgICAgICBpZiAobWVyZ2VkQ29uZmlnLnN1cHBvcnRlZExhbmd1YWdlcy5pbmNsdWRlcyhicm93c2VyTGFuZykpIHtcbiAgICAgICAgICAgICAgICBpMThuLnNldExhbmd1YWdlKGJyb3dzZXJMYW5nKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpMThuLnNldExhbmd1YWdlKG1lcmdlZENvbmZpZy5kZWZhdWx0TGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGRlcHM6IFtJMThuU2VydmljZSwgUExBVEZPUk1fSURdLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSk7XG59XG5cbi8qKlxuICogRGVlcCBtZXJnZSBkZSBDb250ZW50U3RvcmUuXG4gKiBFbCBjb250ZW5pZG8gZGUgYG92ZXJyaWRlYCBzb2JyZXNjcmliZSBrZXlzIGVzcGVjw61maWNhcyBkZSBgYmFzZWAuXG4gKlxuICogQHBhcmFtIGJhc2UgLSBDb250ZW5pZG8gYmFzZSAoZGVmYXVsdHMgZGUgdmFsdGVjaC1jb21wb25lbnRzKVxuICogQHBhcmFtIG92ZXJyaWRlIC0gQ29udGVuaWRvIGRlbCB1c3VhcmlvIHF1ZSBzb2JyZXNjcmliZVxuICogQHJldHVybnMgQ29udGVudFN0b3JlIG1lcmdlYWRvXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGJhc2UgPSB7IF9nbG9iYWw6IHsgZXM6IHsgb2s6ICdBY2VwdGFyJyB9IH0gfTtcbiAqIGNvbnN0IG92ZXJyaWRlID0geyBfZ2xvYmFsOiB7IGVzOiB7IG9rOiAnRGFsZScgfSB9IH07XG4gKiAvLyBSZXN1bHRhZG86IHsgX2dsb2JhbDogeyBlczogeyBvazogJ0RhbGUnIH0gfSB9XG4gKi9cbmZ1bmN0aW9uIGRlZXBNZXJnZUNvbnRlbnQoYmFzZTogQ29udGVudFN0b3JlLCBvdmVycmlkZTogQ29udGVudFN0b3JlKTogQ29udGVudFN0b3JlIHtcbiAgY29uc3QgcmVzdWx0OiBDb250ZW50U3RvcmUgPSB7fTtcblxuICAvLyBDb3BpYXIgdG9kb3MgbG9zIG5hbWVzcGFjZXMgZGVsIGJhc2VcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICByZXN1bHRbbmFtZXNwYWNlXSA9IGRlZXBNZXJnZUxhbmd1YWdlc0NvbnRlbnQoYmFzZVtuYW1lc3BhY2VdLCB7fSk7XG4gIH1cblxuICAvLyBNZXJnZWFyIG5hbWVzcGFjZXMgZGVsIG92ZXJyaWRlXG4gIGZvciAoY29uc3QgbmFtZXNwYWNlIG9mIE9iamVjdC5rZXlzKG92ZXJyaWRlKSkge1xuICAgIGlmIChyZXN1bHRbbmFtZXNwYWNlXSkge1xuICAgICAgLy8gTmFtZXNwYWNlIGV4aXN0ZSBlbiBiYXNlLCBoYWNlciBkZWVwIG1lcmdlXG4gICAgICByZXN1bHRbbmFtZXNwYWNlXSA9IGRlZXBNZXJnZUxhbmd1YWdlc0NvbnRlbnQocmVzdWx0W25hbWVzcGFjZV0sIG92ZXJyaWRlW25hbWVzcGFjZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOYW1lc3BhY2UgbnVldm8sIGNvcGlhciBjb21wbGV0b1xuICAgICAgcmVzdWx0W25hbWVzcGFjZV0gPSBkZWVwTWVyZ2VMYW5ndWFnZXNDb250ZW50KHt9LCBvdmVycmlkZVtuYW1lc3BhY2VdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIERlZXAgbWVyZ2UgZGUgTGFuZ3VhZ2VzQ29udGVudCAodW4gbmFtZXNwYWNlKS5cbiAqL1xuZnVuY3Rpb24gZGVlcE1lcmdlTGFuZ3VhZ2VzQ29udGVudChcbiAgYmFzZTogTGFuZ3VhZ2VzQ29udGVudCxcbiAgb3ZlcnJpZGU6IExhbmd1YWdlc0NvbnRlbnRcbik6IExhbmd1YWdlc0NvbnRlbnQge1xuICBjb25zdCByZXN1bHQ6IExhbmd1YWdlc0NvbnRlbnQgPSB7fTtcbiAgY29uc3QgYWxsTGFuZ3MgPSBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhiYXNlKSxcbiAgICAuLi5PYmplY3Qua2V5cyhvdmVycmlkZSksXG4gIF0pIGFzIFNldDxJMThuTGFuZz47XG5cbiAgZm9yIChjb25zdCBsYW5nIG9mIGFsbExhbmdzKSB7XG4gICAgcmVzdWx0W2xhbmddID0ge1xuICAgICAgLi4uKGJhc2VbbGFuZ10gfHwge30pLFxuICAgICAgLi4uKG92ZXJyaWRlW2xhbmddIHx8IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Injectable, signal, computed } from '@angular/core';
|
|
1
|
+
import { Inject, Injectable, PLATFORM_ID, signal, computed } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import { LANG_STORAGE_KEY, DEFAULT_I18N_CONFIG, } from './types';
|
|
3
4
|
import { getTimeOfDayKey } from '../../shared/utils/datetime';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
@@ -25,7 +26,7 @@ import * as i0 from "@angular/core";
|
|
|
25
26
|
* this.i18n.setLanguage('en');
|
|
26
27
|
*/
|
|
27
28
|
export class I18nService {
|
|
28
|
-
constructor() {
|
|
29
|
+
constructor(platformId) {
|
|
29
30
|
// Estado interno con Signals
|
|
30
31
|
this._lang = signal(DEFAULT_I18N_CONFIG.defaultLanguage);
|
|
31
32
|
this._content = signal({});
|
|
@@ -36,6 +37,7 @@ export class I18nService {
|
|
|
36
37
|
// Computed para verificaciones rápidas
|
|
37
38
|
this.isSpanish = computed(() => this._lang() === 'es');
|
|
38
39
|
this.isEnglish = computed(() => this._lang() === 'en');
|
|
40
|
+
this.isBrowser = isPlatformBrowser(platformId);
|
|
39
41
|
this.loadStoredLanguage();
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
@@ -117,12 +119,14 @@ export class I18nService {
|
|
|
117
119
|
if (lang === this._lang()) {
|
|
118
120
|
return;
|
|
119
121
|
}
|
|
120
|
-
// Persistir en localStorage
|
|
121
|
-
|
|
122
|
+
// Persistir en localStorage (browser-only)
|
|
123
|
+
if (this.isBrowser) {
|
|
124
|
+
localStorage.setItem(LANG_STORAGE_KEY, lang);
|
|
125
|
+
}
|
|
122
126
|
// Actualizar signal
|
|
123
127
|
this._lang.set(lang);
|
|
124
128
|
// Fallback: recargar si se solicita
|
|
125
|
-
if (forceReload) {
|
|
129
|
+
if (forceReload && this.isBrowser) {
|
|
126
130
|
window.location.reload();
|
|
127
131
|
}
|
|
128
132
|
}
|
|
@@ -177,6 +181,11 @@ export class I18nService {
|
|
|
177
181
|
* Carga idioma guardado en localStorage o detecta del navegador
|
|
178
182
|
*/
|
|
179
183
|
loadStoredLanguage() {
|
|
184
|
+
// SSR: sin localStorage/navigator. Mantenemos el default; el browser
|
|
185
|
+
// hydratará el lang real cuando el cliente arranque.
|
|
186
|
+
if (!this.isBrowser) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
180
189
|
const stored = localStorage.getItem(LANG_STORAGE_KEY);
|
|
181
190
|
if (stored && this.isValidLanguage(stored)) {
|
|
182
191
|
this._lang.set(stored);
|
|
@@ -207,11 +216,14 @@ export class I18nService {
|
|
|
207
216
|
return result.replace(regex, value);
|
|
208
217
|
}, text);
|
|
209
218
|
}
|
|
210
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: I18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: I18nService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
211
220
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
212
221
|
}
|
|
213
222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: I18nService, decorators: [{
|
|
214
223
|
type: Injectable,
|
|
215
224
|
args: [{ providedIn: 'root' }]
|
|
216
|
-
}], ctorParameters: () => [
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUlMLGdCQUFnQixFQUNoQixtQkFBbUIsR0FDcEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFjdEI7UUFiQSw2QkFBNkI7UUFDWixVQUFLLEdBQUcsTUFBTSxDQUFXLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlELGFBQVEsR0FBRyxNQUFNLENBQWUsRUFBRSxDQUFDLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsTUFBTSxDQUFhLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFbEcsb0JBQW9CO1FBQ1gsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXBFLHVDQUF1QztRQUM5QixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUd6RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsQ0FBQyxDQUFD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LEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDLElBQWdCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxXQUFXLENBQUMsSUFBWSxFQUFFLElBQTRCO1FBQzVELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMxRCxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0FoTlUsV0FBVzttSEFBWCxXQUFXLGNBREUsTUFBTTs7NEZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSTE4bkxhbmcsXG4gIExhbmd1YWdlc0NvbnRlbnQsXG4gIENvbnRlbnRTdG9yZSxcbiAgTEFOR19TVE9SQUdFX0tFWSxcbiAgREVGQVVMVF9JMThOX0NPTkZJRyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRUaW1lT2ZEYXlLZXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIGludGVybmFjaW9uYWxpemFjacOzbiBiYXNhZG8gZW4gQW5ndWxhciBTaWduYWxzLlxuICpcbiAqIENhcmFjdGVyw61zdGljYXM6XG4gKiAtIFNpbiBSeEpTOiB1c2EgU2lnbmFscyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3MgeSBjb25nZWxhbWllbnRvXG4gKiAtIE5hbWVzcGFjZS1iYXNlZDogb3JnYW5pemEgdHJhZHVjY2lvbmVzIHBvciBjb250ZXh0b1xuICogLSBGYWxsYmFjayBtdWx0aS1uaXZlbDogbmFtZXNwYWNlIOKGkiBfZ2xvYmFsIOKGkiBwbGFjZWhvbGRlclxuICogLSBJbnRlcnBvbGFjacOzbjogc29wb3J0YSB7dmFyaWFibGV9IGVuIHRleHRvc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbiB1biBjb21wb25lbnRlXG4gKiBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAqXG4gKiAvLyBPYnRlbmVyIHRleHRvXG4gKiBjb25zdCB0aXRsZSA9IHRoaXMuaTE4bi50KCd0aXRsZScsICdMb2dpbicpO1xuICpcbiAqIC8vIENvbiBpbnRlcnBvbGFjacOzblxuICogY29uc3Qgd2VsY29tZSA9IHRoaXMuaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywgeyBuYW1lOiAnSnVhbicgfSk7XG4gKlxuICogLy8gQ2FtYmlhciBpZGlvbWFcbiAqIHRoaXMuaTE4bi5zZXRMYW5ndWFnZSgnZW4nKTtcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZSB7XG4gIC8vIEVzdGFkbyBpbnRlcm5vIGNvbiBTaWduYWxzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmcgPSBzaWduYWw8STE4bkxhbmc+KERFRkFVTFRfSTE4Tl9DT05GSUcuZGVmYXVsdExhbmd1YWdlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxDb250ZW50U3RvcmU+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkTGFuZ3VhZ2VzID0gc2lnbmFsPEkxOG5MYW5nW10+KERFRkFVTFRfSTE4Tl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcblxuICAvLyBQw7pibGljb3MgcmVhZG9ubHlcbiAgcmVhZG9ubHkgbGFuZyA9IHRoaXMuX2xhbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzdXBwb3J0ZWRMYW5ndWFnZXMgPSB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuYXNSZWFkb25seSgpO1xuXG4gIC8vIENvbXB1dGVkIHBhcmEgdmVyaWZpY2FjaW9uZXMgcsOhcGlkYXNcbiAgcmVhZG9ubHkgaXNTcGFuaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZXMnKTtcbiAgcmVhZG9ubHkgaXNFbmdsaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZW4nKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvYWRTdG9yZWRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdGV4dG8gdHJhZHVjaWRvIChhbGlhcyBjb3J0byBkZSBnZXRUZXh0KVxuICAgKlxuICAgKiBAcGFyYW0ga2V5IENsYXZlIGRlbCB0ZXh0b1xuICAgKiBAcGFyYW0gbmFtZXNwYWNlIE5hbWVzcGFjZSAoZGVmYXVsdDogJ19nbG9iYWwnKVxuICAgKiBAcGFyYW0gZGF0YSBWYXJpYWJsZXMgcGFyYSBpbnRlcnBvbGFjacOzblxuICAgKiBAcmV0dXJucyBUZXh0byB0cmFkdWNpZG8gbyBwbGFjZWhvbGRlciBbbmFtZXNwYWNlLmtleV1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogaTE4bi50KCdzdWJtaXQnKTsgICAgICAgICAgICAgICAgICAgIC8vIGJ1c2NhIGVuIF9nbG9iYWxcbiAgICogaTE4bi50KCd0aXRsZScsICdMb2dpbicpOyAgICAgICAgICAgIC8vIGJ1c2NhIGVuIExvZ2luXG4gICAqIGkxOG4udCgnd2VsY29tZScsICdMb2dpbicsIHtuYW1lfSk7ICAvLyBjb24gaW50ZXJwb2xhY2nDs25cbiAgICovXG4gIHQoa2V5OiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFRleHQoa2V5LCBuYW1lc3BhY2UsIGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSB0aW1lLW9mLWRheSBncmVldGluZyBpbiB0aGUgY3VycmVudCBsYW5ndWFnZS5cbiAgICpcbiAgICogVXNlcyBidW5kbGVkIGtleXMgYGdvb2RNb3JuaW5nYCAvIGBnb29kQWZ0ZXJub29uYCAvIGBnb29kRXZlbmluZ2AgZnJvbSBgX2dsb2JhbGAuXG4gICAqIFJlYWN0aXZlIHRvIGBsYW5nKClgIHdoZW4gY2FsbGVkIGluc2lkZSBhIGBjb21wdXRlZCgpYC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgT3B0aW9uYWwgbmFtZSB0byBhcHBlbmQ6IFwiQnVlbm9zIGTDrWFzLCBKdWFuXCJcbiAgICogQHBhcmFtIGRhdGUgT3B0aW9uYWwgZGF0ZSB0byBldmFsdWF0ZSAoZGVmYXVsdHMgdG8gbm93KVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBncmVldGluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICogICB0aGlzLmkxOG4ubGFuZygpO1xuICAgKiAgIHJldHVybiB0aGlzLmkxOG4uZ3JlZXRpbmcodGhpcy5hdXRoLnVzZXIoKT8ubmFtZSk7XG4gICAqIH0pO1xuICAgKi9cbiAgZ3JlZXRpbmcobmFtZT86IHN0cmluZywgZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCkpOiBzdHJpbmcge1xuICAgIHRoaXMuX2xhbmcoKTsgLy8gdHJhY2sgZm9yIHJlYWN0aXZpdHkgaW5zaWRlIGNvbXB1dGVkKClcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50KGdldFRpbWVPZkRheUtleShkYXRlKSk7XG4gICAgcmV0dXJuIG5hbWUgPyBgJHt0ZXh0fSwgJHtuYW1lfWAgOiB0ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdGV4dG8gdHJhZHVjaWRvXG4gICAqXG4gICAqIEZhbGxiYWNrIG9yZGVyOlxuICAgKiAxLiBjb250ZW50W25hbWVzcGFjZV1bbGFuZ11ba2V5XVxuICAgKiAyLiBjb250ZW50WydfZ2xvYmFsJ11bbGFuZ11ba2V5XVxuICAgKiAzLiBcIltuYW1lc3BhY2Uua2V5XVwiIChwbGFjZWhvbGRlcilcbiAgICovXG4gIGdldFRleHQoa2V5OiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9jb250ZW50KCk7XG4gICAgY29uc3QgbGFuZyA9IHRoaXMuX2xhbmcoKTtcbiAgICBjb25zdCBucyA9IG5hbWVzcGFjZSB8fCAnX2dsb2JhbCc7XG5cbiAgICAvLyBCdXNjYXIgZW4gbmFtZXNwYWNlIGVzcGVjw61maWNvXG4gICAgbGV0IHRleHQgPSBjb250ZW50W25zXT8uW2xhbmddPy5ba2V5XTtcblxuICAgIC8vIEZhbGxiYWNrIGEgX2dsb2JhbFxuICAgIGlmICghdGV4dCAmJiBucyAhPT0gJ19nbG9iYWwnKSB7XG4gICAgICB0ZXh0ID0gY29udGVudFsnX2dsb2JhbCddPy5bbGFuZ10/LltrZXldO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIGEgcGxhY2Vob2xkZXJcbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW2kxOG5dIE1pc3NpbmcgdHJhbnNsYXRpb246ICR7bnN9LiR7a2V5fSAoJHtsYW5nfSlgKTtcbiAgICAgIHJldHVybiBgWyR7bnN9LiR7a2V5fV1gO1xuICAgIH1cblxuICAgIC8vIEFwbGljYXIgaW50ZXJwb2xhY2nDs24gc2kgaGF5IGRhdGFcbiAgICBpZiAoZGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodGV4dCwgZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FtYmlhIGVsIGlkaW9tYSBkZSBsYSBhcGxpY2FjacOzblxuICAgKlxuICAgKiBAcGFyYW0gbGFuZyBOdWV2byBpZGlvbWFcbiAgICogQHBhcmFtIGZvcmNlUmVsb2FkIFNpIHRydWUsIHJlY2FyZ2EgbGEgcMOhZ2luYSAoZmFsbGJhY2sgc2kgcmVhY3RpdmlkYWQgZmFsbGEpXG4gICAqL1xuICBzZXRMYW5ndWFnZShsYW5nOiBJMThuTGFuZywgZm9yY2VSZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzKCkuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW2kxOG5dIExhbmd1YWdlICcke2xhbmd9JyBub3QgaW4gc3VwcG9ydGVkIGxhbmd1YWdlc2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsYW5nID09PSB0aGlzLl9sYW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQZXJzaXN0aXIgZW4gbG9jYWxTdG9yYWdlXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSwgbGFuZyk7XG5cbiAgICAvLyBBY3R1YWxpemFyIHNpZ25hbFxuICAgIHRoaXMuX2xhbmcuc2V0KGxhbmcpO1xuXG4gICAgLy8gRmFsbGJhY2s6IHJlY2FyZ2FyIHNpIHNlIHNvbGljaXRhXG4gICAgaWYgKGZvcmNlUmVsb2FkKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIGNvbnRlbmlkbyBkZSB0cmFkdWNjaW9uZXMgcGFyYSB1biBuYW1lc3BhY2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWVzcGFjZSBOb21icmUgZGVsIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0gY29udGVudCBDb250ZW5pZG8gZGUgdHJhZHVjY2lvbmVzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGkxOG4ucmVnaXN0ZXJDb250ZW50KCdMb2dpbicsIHtcbiAgICogICBlczogeyB0aXRsZTogJ0luaWNpYXIgc2VzacOzbicgfSxcbiAgICogICBlbjogeyB0aXRsZTogJ1NpZ24gaW4nIH1cbiAgICogfSk7XG4gICAqL1xuICByZWdpc3RlckNvbnRlbnQobmFtZXNwYWNlOiBzdHJpbmcsIGNvbnRlbnQ6IExhbmd1YWdlc0NvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250ZW50LnVwZGF0ZShzdG9yZSA9PiAoe1xuICAgICAgLi4uc3RvcmUsXG4gICAgICBbbmFtZXNwYWNlXTogY29udGVudCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgbcO6bHRpcGxlcyBuYW1lc3BhY2VzIGRlIHVuYSB2ZXpcbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRTdG9yZSBPYmpldG8gY29uIG5hbWVzcGFjZXMgY29tbyBrZXlzXG4gICAqL1xuICByZWdpc3RlckNvbnRlbnRCdWxrKGNvbnRlbnRTdG9yZTogQ29udGVudFN0b3JlKTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudC51cGRhdGUoc3RvcmUgPT4gKHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgLi4uY29udGVudFN0b3JlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmEgbG9zIGlkaW9tYXMgc29wb3J0YWRvc1xuICAgKi9cbiAgc2V0STE4bkxhbmd1YWdlcyhsYW5ndWFnZXM6IEkxOG5MYW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuc2V0KGxhbmd1YWdlcyk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0b2RvcyBsb3MgbmFtZXNwYWNlcyByZWdpc3RyYWRvc1xuICAgKi9cbiAgZ2V0TmFtZXNwYWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2NvbnRlbnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gbmFtZXNwYWNlIHRpZW5lIHRyYWR1Y2Npb25lc1xuICAgKi9cbiAgaGFzTmFtZXNwYWNlKG5hbWVzcGFjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hbWVzcGFjZSBpbiB0aGlzLl9jb250ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgaWRpb21hIGd1YXJkYWRvIGVuIGxvY2FsU3RvcmFnZSBvIGRldGVjdGEgZGVsIG5hdmVnYWRvclxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkU3RvcmVkTGFuZ3VhZ2UoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSk7XG5cbiAgICBpZiAoc3RvcmVkICYmIHRoaXMuaXNWYWxpZExhbmd1YWdlKHN0b3JlZCkpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KHN0b3JlZCBhcyBJMThuTGFuZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGV0ZWN0YXIgaWRpb21hIGRlbCBuYXZlZ2Fkb3JcbiAgICBjb25zdCBicm93c2VyTGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdIGFzIEkxOG5MYW5nO1xuICAgIGlmICh0aGlzLmlzVmFsaWRMYW5ndWFnZShicm93c2VyTGFuZykpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KGJyb3dzZXJMYW5nKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKExBTkdfU1RPUkFHRV9LRVksIGJyb3dzZXJMYW5nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIHNpIHVuIGlkaW9tYSBlc3TDoSBzb3BvcnRhZG9cbiAgICovXG4gIHByaXZhdGUgaXNWYWxpZExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMoKS5pbmNsdWRlcyhsYW5nIGFzIEkxOG5MYW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWVtcGxhemEge3ZhcmlhYmxlfSBlbiB0ZXh0byBjb24gdmFsb3JlcyBkZSBkYXRhXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGludGVycG9sYXRlKCdIb2xhIHtuYW1lfScsIHsgbmFtZTogJ0p1YW4nIH0pIC8vICdIb2xhIEp1YW4nXG4gICAqL1xuICBwcml2YXRlIGludGVycG9sYXRlKHRleHQ6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXHske2tleX1cXFxcfWAsICdnJyk7XG4gICAgICByZXR1cm4gcmVzdWx0LnJlcGxhY2UocmVnZXgsIHZhbHVlKTtcbiAgICB9LCB0ZXh0KTtcbiAgfVxufVxuIl19
|
|
225
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
226
|
+
type: Inject,
|
|
227
|
+
args: [PLATFORM_ID]
|
|
228
|
+
}] }] });
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQWdCdEIsWUFBaUMsVUFBa0I7UUFmbkQsNkJBQTZCO1FBQ1osVUFBSyxHQUFHLE1BQU0sQ0FBVyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxhQUFRLEdBQUcsTUFBTSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLE1BQU0sQ0FBYSxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWxHLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVwRSx1Q0FBdUM7UUFDOUIsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDbEQsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7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aW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSTE4bkxhbmcsXG4gIExhbmd1YWdlc0NvbnRlbnQsXG4gIENvbnRlbnRTdG9yZSxcbiAgTEFOR19TVE9SQUdFX0tFWSxcbiAgREVGQVVMVF9JMThOX0NPTkZJRyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRUaW1lT2ZEYXlLZXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIGludGVybmFjaW9uYWxpemFjacOzbiBiYXNhZG8gZW4gQW5ndWxhciBTaWduYWxzLlxuICpcbiAqIENhcmFjdGVyw61zdGljYXM6XG4gKiAtIFNpbiBSeEpTOiB1c2EgU2lnbmFscyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3MgeSBjb25nZWxhbWllbnRvXG4gKiAtIE5hbWVzcGFjZS1iYXNlZDogb3JnYW5pemEgdHJhZHVjY2lvbmVzIHBvciBjb250ZXh0b1xuICogLSBGYWxsYmFjayBtdWx0aS1uaXZlbDogbmFtZXNwYWNlIOKGkiBfZ2xvYmFsIOKGkiBwbGFjZWhvbGRlclxuICogLSBJbnRlcnBvbGFjacOzbjogc29wb3J0YSB7dmFyaWFibGV9IGVuIHRleHRvc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbiB1biBjb21wb25lbnRlXG4gKiBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAqXG4gKiAvLyBPYnRlbmVyIHRleHRvXG4gKiBjb25zdCB0aXRsZSA9IHRoaXMuaTE4bi50KCd0aXRsZScsICdMb2dpbicpO1xuICpcbiAqIC8vIENvbiBpbnRlcnBvbGFjacOzblxuICogY29uc3Qgd2VsY29tZSA9IHRoaXMuaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywgeyBuYW1lOiAnSnVhbicgfSk7XG4gKlxuICogLy8gQ2FtYmlhciBpZGlvbWFcbiAqIHRoaXMuaTE4bi5zZXRMYW5ndWFnZSgnZW4nKTtcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZSB7XG4gIC8vIEVzdGFkbyBpbnRlcm5vIGNvbiBTaWduYWxzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmcgPSBzaWduYWw8STE4bkxhbmc+KERFRkFVTFRfSTE4Tl9DT05GSUcuZGVmYXVsdExhbmd1YWdlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxDb250ZW50U3RvcmU+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkTGFuZ3VhZ2VzID0gc2lnbmFsPEkxOG5MYW5nW10+KERFRkFVTFRfSTE4Tl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcblxuICAvLyBQw7pibGljb3MgcmVhZG9ubHlcbiAgcmVhZG9ubHkgbGFuZyA9IHRoaXMuX2xhbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzdXBwb3J0ZWRMYW5ndWFnZXMgPSB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuYXNSZWFkb25seSgpO1xuXG4gIC8vIENvbXB1dGVkIHBhcmEgdmVyaWZpY2FjaW9uZXMgcsOhcGlkYXNcbiAgcmVhZG9ubHkgaXNTcGFuaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZXMnKTtcbiAgcmVhZG9ubHkgaXNFbmdsaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZW4nKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICAgIHRoaXMubG9hZFN0b3JlZExhbmd1YWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0ZXh0byB0cmFkdWNpZG8gKGFsaWFzIGNvcnRvIGRlIGdldFRleHQpXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQ2xhdmUgZGVsIHRleHRvXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgTmFtZXNwYWNlIChkZWZhdWx0OiAnX2dsb2JhbCcpXG4gICAqIEBwYXJhbSBkYXRhIFZhcmlhYmxlcyBwYXJhIGludGVycG9sYWNpw7NuXG4gICAqIEByZXR1cm5zIFRleHRvIHRyYWR1Y2lkbyBvIHBsYWNlaG9sZGVyIFtuYW1lc3BhY2Uua2V5XVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpMThuLnQoJ3N1Ym1pdCcpOyAgICAgICAgICAgICAgICAgICAgLy8gYnVzY2EgZW4gX2dsb2JhbFxuICAgKiBpMThuLnQoJ3RpdGxlJywgJ0xvZ2luJyk7ICAgICAgICAgICAgLy8gYnVzY2EgZW4gTG9naW5cbiAgICogaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywge25hbWV9KTsgIC8vIGNvbiBpbnRlcnBvbGFjacOzblxuICAgKi9cbiAgdChrZXk6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nLCBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dChrZXksIG5hbWVzcGFjZSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHRpbWUtb2YtZGF5IGdyZWV0aW5nIGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLlxuICAgKlxuICAgKiBVc2VzIGJ1bmRsZWQga2V5cyBgZ29vZE1vcm5pbmdgIC8gYGdvb2RBZnRlcm5vb25gIC8gYGdvb2RFdmVuaW5nYCBmcm9tIGBfZ2xvYmFsYC5cbiAgICogUmVhY3RpdmUgdG8gYGxhbmcoKWAgd2hlbiBjYWxsZWQgaW5zaWRlIGEgYGNvbXB1dGVkKClgLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBuYW1lIHRvIGFwcGVuZDogXCJCdWVub3MgZMOtYXMsIEp1YW5cIlxuICAgKiBAcGFyYW0gZGF0ZSBPcHRpb25hbCBkYXRlIHRvIGV2YWx1YXRlIChkZWZhdWx0cyB0byBub3cpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGdyZWV0aW5nID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgKiAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAqICAgcmV0dXJuIHRoaXMuaTE4bi5ncmVldGluZyh0aGlzLmF1dGgudXNlcigpPy5uYW1lKTtcbiAgICogfSk7XG4gICAqL1xuICBncmVldGluZyhuYW1lPzogc3RyaW5nLCBkYXRlOiBEYXRlID0gbmV3IERhdGUoKSk6IHN0cmluZyB7XG4gICAgdGhpcy5fbGFuZygpOyAvLyB0cmFjayBmb3IgcmVhY3Rpdml0eSBpbnNpZGUgY29tcHV0ZWQoKVxuICAgIGNvbnN0IHRleHQgPSB0aGlzLnQoZ2V0VGltZU9mRGF5S2V5KGRhdGUpKTtcbiAgICByZXR1cm4gbmFtZSA/IGAke3RleHR9LCAke25hbWV9YCA6IHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0ZXh0byB0cmFkdWNpZG9cbiAgICpcbiAgICogRmFsbGJhY2sgb3JkZXI6XG4gICAqIDEuIGNvbnRlbnRbbmFtZXNwYWNlXVtsYW5nXVtrZXldXG4gICAqIDIuIGNvbnRlbnRbJ19nbG9iYWwnXVtsYW5nXVtrZXldXG4gICAqIDMuIFwiW25hbWVzcGFjZS5rZXldXCIgKHBsYWNlaG9sZGVyKVxuICAgKi9cbiAgZ2V0VGV4dChrZXk6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nLCBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2NvbnRlbnQoKTtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5fbGFuZygpO1xuICAgIGNvbnN0IG5zID0gbmFtZXNwYWNlIHx8ICdfZ2xvYmFsJztcblxuICAgIC8vIEJ1c2NhciBlbiBuYW1lc3BhY2UgZXNwZWPDrWZpY29cbiAgICBsZXQgdGV4dCA9IGNvbnRlbnRbbnNdPy5bbGFuZ10/LltrZXldO1xuXG4gICAgLy8gRmFsbGJhY2sgYSBfZ2xvYmFsXG4gICAgaWYgKCF0ZXh0ICYmIG5zICE9PSAnX2dsb2JhbCcpIHtcbiAgICAgIHRleHQgPSBjb250ZW50WydfZ2xvYmFsJ10/LltsYW5nXT8uW2tleV07XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgYSBwbGFjZWhvbGRlclxuICAgIGlmICghdGV4dCkge1xuICAgICAgY29uc29sZS53YXJuKGBbaTE4bl0gTWlzc2luZyB0cmFuc2xhdGlvbjogJHtuc30uJHtrZXl9ICgke2xhbmd9KWApO1xuICAgICAgcmV0dXJuIGBbJHtuc30uJHtrZXl9XWA7XG4gICAgfVxuXG4gICAgLy8gQXBsaWNhciBpbnRlcnBvbGFjacOzbiBzaSBoYXkgZGF0YVxuICAgIGlmIChkYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZSh0ZXh0LCBkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW1iaWEgZWwgaWRpb21hIGRlIGxhIGFwbGljYWNpw7NuXG4gICAqXG4gICAqIEBwYXJhbSBsYW5nIE51ZXZvIGlkaW9tYVxuICAgKiBAcGFyYW0gZm9yY2VSZWxvYWQgU2kgdHJ1ZSwgcmVjYXJnYSBsYSBww6FnaW5hIChmYWxsYmFjayBzaSByZWFjdGl2aWRhZCBmYWxsYSlcbiAgICovXG4gIHNldExhbmd1YWdlKGxhbmc6IEkxOG5MYW5nLCBmb3JjZVJlbG9hZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMoKS5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgY29uc29sZS53YXJuKGBbaTE4bl0gTGFuZ3VhZ2UgJyR7bGFuZ30nIG5vdCBpbiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGxhbmcgPT09IHRoaXMuX2xhbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFBlcnNpc3RpciBlbiBsb2NhbFN0b3JhZ2UgKGJyb3dzZXItb25seSlcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKExBTkdfU1RPUkFHRV9LRVksIGxhbmcpO1xuICAgIH1cblxuICAgIC8vIEFjdHVhbGl6YXIgc2lnbmFsXG4gICAgdGhpcy5fbGFuZy5zZXQobGFuZyk7XG5cbiAgICAvLyBGYWxsYmFjazogcmVjYXJnYXIgc2kgc2Ugc29saWNpdGFcbiAgICBpZiAoZm9yY2VSZWxvYWQgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgY29udGVuaWRvIGRlIHRyYWR1Y2Npb25lcyBwYXJhIHVuIG5hbWVzcGFjZVxuICAgKlxuICAgKiBAcGFyYW0gbmFtZXNwYWNlIE5vbWJyZSBkZWwgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBjb250ZW50IENvbnRlbmlkbyBkZSB0cmFkdWNjaW9uZXNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogaTE4bi5yZWdpc3RlckNvbnRlbnQoJ0xvZ2luJywge1xuICAgKiAgIGVzOiB7IHRpdGxlOiAnSW5pY2lhciBzZXNpw7NuJyB9LFxuICAgKiAgIGVuOiB7IHRpdGxlOiAnU2lnbiBpbicgfVxuICAgKiB9KTtcbiAgICovXG4gIHJlZ2lzdGVyQ29udGVudChuYW1lc3BhY2U6IHN0cmluZywgY29udGVudDogTGFuZ3VhZ2VzQ29udGVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnQudXBkYXRlKHN0b3JlID0+ICh7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIFtuYW1lc3BhY2VdOiBjb250ZW50LFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RyYSBtw7psdGlwbGVzIG5hbWVzcGFjZXMgZGUgdW5hIHZlelxuICAgKlxuICAgKiBAcGFyYW0gY29udGVudFN0b3JlIE9iamV0byBjb24gbmFtZXNwYWNlcyBjb21vIGtleXNcbiAgICovXG4gIHJlZ2lzdGVyQ29udGVudEJ1bGsoY29udGVudFN0b3JlOiBDb250ZW50U3RvcmUpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250ZW50LnVwZGF0ZShzdG9yZSA9PiAoe1xuICAgICAgLi4uc3RvcmUsXG4gICAgICAuLi5jb250ZW50U3RvcmUsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYSBsb3MgaWRpb21hcyBzb3BvcnRhZG9zXG4gICAqL1xuICBzZXRJMThuTGFuZ3VhZ2VzKGxhbmd1YWdlczogSTE4bkxhbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuX3N1cHBvcnRlZExhbmd1YWdlcy5zZXQobGFuZ3VhZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRvZG9zIGxvcyBuYW1lc3BhY2VzIHJlZ2lzdHJhZG9zXG4gICAqL1xuICBnZXROYW1lc3BhY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY29udGVudCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSB1biBuYW1lc3BhY2UgdGllbmUgdHJhZHVjY2lvbmVzXG4gICAqL1xuICBoYXNOYW1lc3BhY2UobmFtZXNwYWNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmFtZXNwYWNlIGluIHRoaXMuX2NvbnRlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBpZGlvbWEgZ3VhcmRhZG8gZW4gbG9jYWxTdG9yYWdlIG8gZGV0ZWN0YSBkZWwgbmF2ZWdhZG9yXG4gICAqL1xuICBwcml2YXRlIGxvYWRTdG9yZWRMYW5ndWFnZSgpOiB2b2lkIHtcbiAgICAvLyBTU1I6IHNpbiBsb2NhbFN0b3JhZ2UvbmF2aWdhdG9yLiBNYW50ZW5lbW9zIGVsIGRlZmF1bHQ7IGVsIGJyb3dzZXJcbiAgICAvLyBoeWRyYXRhcsOhIGVsIGxhbmcgcmVhbCBjdWFuZG8gZWwgY2xpZW50ZSBhcnJhbnF1ZS5cbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSk7XG5cbiAgICBpZiAoc3RvcmVkICYmIHRoaXMuaXNWYWxpZExhbmd1YWdlKHN0b3JlZCkpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KHN0b3JlZCBhcyBJMThuTGFuZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGV0ZWN0YXIgaWRpb21hIGRlbCBuYXZlZ2Fkb3JcbiAgICBjb25zdCBicm93c2VyTGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdIGFzIEkxOG5MYW5nO1xuICAgIGlmICh0aGlzLmlzVmFsaWRMYW5ndWFnZShicm93c2VyTGFuZykpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KGJyb3dzZXJMYW5nKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKExBTkdfU1RPUkFHRV9LRVksIGJyb3dzZXJMYW5nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIHNpIHVuIGlkaW9tYSBlc3TDoSBzb3BvcnRhZG9cbiAgICovXG4gIHByaXZhdGUgaXNWYWxpZExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMoKS5pbmNsdWRlcyhsYW5nIGFzIEkxOG5MYW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWVtcGxhemEge3ZhcmlhYmxlfSBlbiB0ZXh0byBjb24gdmFsb3JlcyBkZSBkYXRhXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGludGVycG9sYXRlKCdIb2xhIHtuYW1lfScsIHsgbmFtZTogJ0p1YW4nIH0pIC8vICdIb2xhIEp1YW4nXG4gICAqL1xuICBwcml2YXRlIGludGVycG9sYXRlKHRleHQ6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXHske2tleX1cXFxcfWAsICdnJyk7XG4gICAgICByZXR1cm4gcmVzdWx0LnJlcGxhY2UocmVnZXgsIHZhbHVlKTtcbiAgICB9LCB0ZXh0KTtcbiAgfVxufVxuIl19
|
|
@@ -1,37 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility service for interacting with browser localStorage in a type-safe way.
|
|
3
3
|
* Provides static methods for setting, getting, removing, and clearing items.
|
|
4
|
+
*
|
|
5
|
+
* SSR-safe: en Node (prerender) `localStorage` no existe — los métodos son no-ops
|
|
6
|
+
* en server. `get` retorna `null` casteado a `T`, igual que cuando la key no
|
|
7
|
+
* existe en browser.
|
|
4
8
|
*/
|
|
5
9
|
export class LocalStorageService {
|
|
10
|
+
static get available() {
|
|
11
|
+
return typeof localStorage !== 'undefined';
|
|
12
|
+
}
|
|
6
13
|
/**
|
|
7
14
|
* Stores a value in localStorage under the given reference key.
|
|
8
|
-
* @param reference The key to store the value under
|
|
9
|
-
* @param value The value to store
|
|
10
15
|
*/
|
|
11
16
|
static set(reference, value) {
|
|
17
|
+
if (!this.available)
|
|
18
|
+
return;
|
|
12
19
|
localStorage.setItem(reference, JSON.stringify(value));
|
|
13
20
|
}
|
|
14
21
|
/**
|
|
15
22
|
* Retrieves a value from localStorage by key.
|
|
16
|
-
* @param reference The key to retrieve
|
|
17
|
-
* @returns The parsed value
|
|
18
23
|
*/
|
|
19
24
|
static get(reference) {
|
|
25
|
+
if (!this.available)
|
|
26
|
+
return null;
|
|
20
27
|
const value = localStorage.getItem(reference);
|
|
21
28
|
return JSON.parse(value);
|
|
22
29
|
}
|
|
23
30
|
/**
|
|
24
31
|
* Removes an item from localStorage by key.
|
|
25
|
-
* @param reference The key to remove
|
|
26
32
|
*/
|
|
27
33
|
static remove(reference) {
|
|
34
|
+
if (!this.available)
|
|
35
|
+
return;
|
|
28
36
|
localStorage.removeItem(reference);
|
|
29
37
|
}
|
|
30
38
|
/**
|
|
31
39
|
* Clears all items from localStorage.
|
|
32
40
|
*/
|
|
33
41
|
static clear() {
|
|
42
|
+
if (!this.available)
|
|
43
|
+
return;
|
|
34
44
|
localStorage.clear();
|
|
35
45
|
}
|
|
36
46
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsTUFBTSxLQUFLLFNBQVM7UUFDMUIsT0FBTyxPQUFPLFlBQVksS0FBSyxXQUFXLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBSSxTQUFpQixFQUFFLEtBQVE7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBSSxTQUFpQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLElBQVMsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXRpbGl0eSBzZXJ2aWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIGJyb3dzZXIgbG9jYWxTdG9yYWdlIGluIGEgdHlwZS1zYWZlIHdheS5cbiAqIFByb3ZpZGVzIHN0YXRpYyBtZXRob2RzIGZvciBzZXR0aW5nLCBnZXR0aW5nLCByZW1vdmluZywgYW5kIGNsZWFyaW5nIGl0ZW1zLlxuICpcbiAqIFNTUi1zYWZlOiBlbiBOb2RlIChwcmVyZW5kZXIpIGBsb2NhbFN0b3JhZ2VgIG5vIGV4aXN0ZSDigJQgbG9zIG3DqXRvZG9zIHNvbiBuby1vcHNcbiAqIGVuIHNlcnZlci4gYGdldGAgcmV0b3JuYSBgbnVsbGAgY2FzdGVhZG8gYSBgVGAsIGlndWFsIHF1ZSBjdWFuZG8gbGEga2V5IG5vXG4gKiBleGlzdGUgZW4gYnJvd3Nlci5cbiAqL1xuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyBnZXQgYXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJztcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgYSB2YWx1ZSBpbiBsb2NhbFN0b3JhZ2UgdW5kZXIgdGhlIGdpdmVuIHJlZmVyZW5jZSBrZXkuXG4gICAqL1xuICBzdGF0aWMgc2V0PFQ+KHJlZmVyZW5jZTogc3RyaW5nLCB2YWx1ZTogVCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hdmFpbGFibGUpIHJldHVybjtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShyZWZlcmVuY2UsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgdmFsdWUgZnJvbSBsb2NhbFN0b3JhZ2UgYnkga2V5LlxuICAgKi9cbiAgc3RhdGljIGdldDxUPihyZWZlcmVuY2U6IHN0cmluZyk6IFQge1xuICAgIGlmICghdGhpcy5hdmFpbGFibGUpIHJldHVybiBudWxsIGFzIFQ7XG4gICAgY29uc3QgdmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShyZWZlcmVuY2UpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIGxvY2FsU3RvcmFnZSBieSBrZXkuXG4gICAqL1xuICBzdGF0aWMgcmVtb3ZlKHJlZmVyZW5jZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF2YWlsYWJsZSkgcmV0dXJuO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHJlZmVyZW5jZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBpdGVtcyBmcm9tIGxvY2FsU3RvcmFnZS5cbiAgICovXG4gIHN0YXRpYyBjbGVhcigpIHtcbiAgICBpZiAoIXRoaXMuYXZhaWxhYmxlKSByZXR1cm47XG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
/**
|
|
4
5
|
* Clave para persistir el idioma en localStorage
|
|
@@ -26,7 +27,8 @@ const DEFAULT_LANG = 'es';
|
|
|
26
27
|
* this.locale.setLang('en');
|
|
27
28
|
*/
|
|
28
29
|
export class LocaleService {
|
|
29
|
-
constructor() {
|
|
30
|
+
constructor(platformId) {
|
|
31
|
+
this.isBrowser = isPlatformBrowser(platformId);
|
|
30
32
|
this.lang = this.getStoredLang();
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
@@ -36,7 +38,7 @@ export class LocaleService {
|
|
|
36
38
|
* @param lang Nuevo idioma ('es' o 'en')
|
|
37
39
|
*/
|
|
38
40
|
setLang(lang) {
|
|
39
|
-
if (lang === this.lang) {
|
|
41
|
+
if (lang === this.lang || !this.isBrowser) {
|
|
40
42
|
return;
|
|
41
43
|
}
|
|
42
44
|
localStorage.setItem(LANG_STORAGE_KEY, lang);
|
|
@@ -45,8 +47,12 @@ export class LocaleService {
|
|
|
45
47
|
/**
|
|
46
48
|
* Obtiene el idioma almacenado en localStorage.
|
|
47
49
|
* Si no existe o no es válido, retorna el idioma por defecto.
|
|
50
|
+
* En SSR (sin localStorage) retorna el default.
|
|
48
51
|
*/
|
|
49
52
|
getStoredLang() {
|
|
53
|
+
if (!this.isBrowser) {
|
|
54
|
+
return DEFAULT_LANG;
|
|
55
|
+
}
|
|
50
56
|
const stored = localStorage.getItem(LANG_STORAGE_KEY);
|
|
51
57
|
if (stored === 'es' || stored === 'en') {
|
|
52
58
|
return stored;
|
|
@@ -65,11 +71,14 @@ export class LocaleService {
|
|
|
65
71
|
get isEnglish() {
|
|
66
72
|
return this.lang === 'en';
|
|
67
73
|
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
69
75
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, providedIn: 'root' }); }
|
|
70
76
|
}
|
|
71
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, decorators: [{
|
|
72
78
|
type: Injectable,
|
|
73
79
|
args: [{ providedIn: 'root' }]
|
|
74
|
-
}], ctorParameters: () => [
|
|
75
|
-
|
|
80
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
81
|
+
type: Inject,
|
|
82
|
+
args: [PLATFORM_ID]
|
|
83
|
+
}] }] });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPcEQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztBQUVwQzs7R0FFRztBQUNILE1BQU0sWUFBWSxHQUFrQixJQUFJLENBQUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUFpQyxVQUFrQjtRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxJQUFtQjtRQUN6QixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDVCxDQUFDO1FBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEQsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzVCLENBQUM7K0dBdkRVLGFBQWEsa0JBUUosV0FBVzttSEFScEIsYUFBYSxjQURBLE1BQU07OzRGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBU25CLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBUaXBvcyBkZSBpZGlvbWEgc29wb3J0YWRvc1xuICovXG5leHBvcnQgdHlwZSBTdXBwb3J0ZWRMYW5nID0gJ2VzJyB8ICdlbic7XG5cbi8qKlxuICogQ2xhdmUgcGFyYSBwZXJzaXN0aXIgZWwgaWRpb21hIGVuIGxvY2FsU3RvcmFnZVxuICovXG5jb25zdCBMQU5HX1NUT1JBR0VfS0VZID0gJ2FwcF9sYW5nJztcblxuLyoqXG4gKiBJZGlvbWEgcG9yIGRlZmVjdG9cbiAqL1xuY29uc3QgREVGQVVMVF9MQU5HOiBTdXBwb3J0ZWRMYW5nID0gJ2VzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBtw61uaW1vIGRlIGxvY2FsaXphY2nDs24uXG4gKlxuICogLSBMZWUgZWwgaWRpb21hIGRlc2RlIGxvY2FsU3RvcmFnZSBhbCBpbmljaWFyXG4gKiAtIFByb3BvcmNpb25hIG3DqXRvZG8gcGFyYSBjYW1iaWFyIGlkaW9tYSAocmVjYXJnYSBsYSBww6FnaW5hKVxuICogLSBTaW4gb2JzZXJ2YWJsZXMgbmkgc3Vic2NyaXBjaW9uZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRW4gdW4gY29tcG9uZW50ZVxuICogbG9jYWxlID0gaW5qZWN0KExvY2FsZVNlcnZpY2UpO1xuICpcbiAqIC8vIE9idGVuZXIgaWRpb21hIGFjdHVhbFxuICogY29uc29sZS5sb2codGhpcy5sb2NhbGUubGFuZyk7IC8vICdlcycgbyAnZW4nXG4gKlxuICogLy8gQ2FtYmlhciBpZGlvbWEgKHJlY2FyZ2EgbGEgcMOhZ2luYSlcbiAqIHRoaXMubG9jYWxlLnNldExhbmcoJ2VuJyk7XG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9jYWxlU2VydmljZSB7XG4gIC8qKlxuICAgKiBJZGlvbWEgYWN0dWFsIGRlIGxhIGFwbGljYWNpw7NuLlxuICAgKiBTZSBsZWUgdW5hIHZleiBhbCBpbmljaWFyIGRlc2RlIGxvY2FsU3RvcmFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbmc6IFN1cHBvcnRlZExhbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gICAgdGhpcy5sYW5nID0gdGhpcy5nZXRTdG9yZWRMYW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FtYmlhIGVsIGlkaW9tYSBkZSBsYSBhcGxpY2FjacOzbi5cbiAgICogR3VhcmRhIGVuIGxvY2FsU3RvcmFnZSB5IHJlY2FyZ2EgbGEgcMOhZ2luYSBwYXJhIGFwbGljYXIgZWwgY2FtYmlvLlxuICAgKlxuICAgKiBAcGFyYW0gbGFuZyBOdWV2byBpZGlvbWEgKCdlcycgbyAnZW4nKVxuICAgKi9cbiAgc2V0TGFuZyhsYW5nOiBTdXBwb3J0ZWRMYW5nKTogdm9pZCB7XG4gICAgaWYgKGxhbmcgPT09IHRoaXMubGFuZyB8fCAhdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSwgbGFuZyk7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgaWRpb21hIGFsbWFjZW5hZG8gZW4gbG9jYWxTdG9yYWdlLlxuICAgKiBTaSBubyBleGlzdGUgbyBubyBlcyB2w6FsaWRvLCByZXRvcm5hIGVsIGlkaW9tYSBwb3IgZGVmZWN0by5cbiAgICogRW4gU1NSIChzaW4gbG9jYWxTdG9yYWdlKSByZXRvcm5hIGVsIGRlZmF1bHQuXG4gICAqL1xuICBwcml2YXRlIGdldFN0b3JlZExhbmcoKTogU3VwcG9ydGVkTGFuZyB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIERFRkFVTFRfTEFORztcbiAgICB9XG4gICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSk7XG4gICAgaWYgKHN0b3JlZCA9PT0gJ2VzJyB8fCBzdG9yZWQgPT09ICdlbicpIHtcbiAgICAgIHJldHVybiBzdG9yZWQ7XG4gICAgfVxuICAgIHJldHVybiBERUZBVUxUX0xBTkc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgaWRpb21hIGFjdHVhbCBlcyBlc3Bhw7FvbFxuICAgKi9cbiAgZ2V0IGlzU3BhbmlzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYW5nID09PSAnZXMnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIGlkaW9tYSBhY3R1YWwgZXMgaW5nbMOpc1xuICAgKi9cbiAgZ2V0IGlzRW5nbGlzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYW5nID09PSAnZW4nO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { APP_INITIALIZER, InjectionToken, makeEnvironmentProviders, } from '@angular/core';
|
|
2
|
+
import { SplashScreenService } from './splash-screen.service';
|
|
3
|
+
import { DEFAULT_SPLASH_SCREEN_CONFIG } from './types';
|
|
4
|
+
export const VALTECH_SPLASH_SCREEN = new InjectionToken('ValtechSplashScreen');
|
|
5
|
+
/**
|
|
6
|
+
* Oculta el splash screen nativo (Capacitor) al completar el bootstrap de Angular.
|
|
7
|
+
* En web/PWA es no-op — el skeleton HTML en index.html se elimina cuando Angular
|
|
8
|
+
* reemplaza <app-root>.
|
|
9
|
+
*
|
|
10
|
+
* Requiere @capacitor/splash-screen instalado en la app consumer y
|
|
11
|
+
* launchAutoHide: false en capacitor.config.ts.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // main.ts
|
|
15
|
+
* bootstrapApplication(AppComponent, {
|
|
16
|
+
* providers: [provideSplashScreen()],
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // capacitor.config.ts
|
|
20
|
+
* plugins: { SplashScreen: { launchAutoHide: false } }
|
|
21
|
+
*/
|
|
22
|
+
export function provideSplashScreen(config = {}) {
|
|
23
|
+
const merged = { ...DEFAULT_SPLASH_SCREEN_CONFIG, ...config };
|
|
24
|
+
return makeEnvironmentProviders([
|
|
25
|
+
{ provide: VALTECH_SPLASH_SCREEN, useValue: merged },
|
|
26
|
+
{
|
|
27
|
+
provide: APP_INITIALIZER,
|
|
28
|
+
multi: true,
|
|
29
|
+
deps: [SplashScreenService, VALTECH_SPLASH_SCREEN],
|
|
30
|
+
useFactory: (svc, cfg) => () => svc.hide(cfg.fadeOutDuration),
|
|
31
|
+
},
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zcGxhc2gtc2NyZWVuL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLGNBQWMsRUFDZCx3QkFBd0IsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFzQixNQUFNLFNBQVMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQscUJBQXFCLENBQ3RCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUE2QixFQUFFO0lBQ2pFLE1BQU0sTUFBTSxHQUFpQyxFQUFFLEdBQUcsNEJBQTRCLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUU1RixPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDcEQ7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDO1lBQ2xELFVBQVUsRUFBRSxDQUFDLEdBQXdCLEVBQUUsR0FBaUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQ2hGLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztTQUNoQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBUFBfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3BsYXNoU2NyZWVuU2VydmljZSB9IGZyb20gJy4vc3BsYXNoLXNjcmVlbi5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfU1BMQVNIX1NDUkVFTl9DT05GSUcsIFNwbGFzaFNjcmVlbkNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgVkFMVEVDSF9TUExBU0hfU0NSRUVOID0gbmV3IEluamVjdGlvblRva2VuPFJlcXVpcmVkPFNwbGFzaFNjcmVlbkNvbmZpZz4+KFxuICAnVmFsdGVjaFNwbGFzaFNjcmVlbidcbik7XG5cbi8qKlxuICogT2N1bHRhIGVsIHNwbGFzaCBzY3JlZW4gbmF0aXZvIChDYXBhY2l0b3IpIGFsIGNvbXBsZXRhciBlbCBib290c3RyYXAgZGUgQW5ndWxhci5cbiAqIEVuIHdlYi9QV0EgZXMgbm8tb3Ag4oCUIGVsIHNrZWxldG9uIEhUTUwgZW4gaW5kZXguaHRtbCBzZSBlbGltaW5hIGN1YW5kbyBBbmd1bGFyXG4gKiByZWVtcGxhemEgPGFwcC1yb290Pi5cbiAqXG4gKiBSZXF1aWVyZSBAY2FwYWNpdG9yL3NwbGFzaC1zY3JlZW4gaW5zdGFsYWRvIGVuIGxhIGFwcCBjb25zdW1lciB5XG4gKiBsYXVuY2hBdXRvSGlkZTogZmFsc2UgZW4gY2FwYWNpdG9yLmNvbmZpZy50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gbWFpbi50c1xuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gKiAgIHByb3ZpZGVyczogW3Byb3ZpZGVTcGxhc2hTY3JlZW4oKV0sXG4gKiB9KTtcbiAqXG4gKiAvLyBjYXBhY2l0b3IuY29uZmlnLnRzXG4gKiBwbHVnaW5zOiB7IFNwbGFzaFNjcmVlbjogeyBsYXVuY2hBdXRvSGlkZTogZmFsc2UgfSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlU3BsYXNoU2NyZWVuKGNvbmZpZzogU3BsYXNoU2NyZWVuQ29uZmlnID0ge30pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IG1lcmdlZDogUmVxdWlyZWQ8U3BsYXNoU2NyZWVuQ29uZmlnPiA9IHsgLi4uREVGQVVMVF9TUExBU0hfU0NSRUVOX0NPTkZJRywgLi4uY29uZmlnIH07XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgeyBwcm92aWRlOiBWQUxURUNIX1NQTEFTSF9TQ1JFRU4sIHVzZVZhbHVlOiBtZXJnZWQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIGRlcHM6IFtTcGxhc2hTY3JlZW5TZXJ2aWNlLCBWQUxURUNIX1NQTEFTSF9TQ1JFRU5dLFxuICAgICAgdXNlRmFjdG9yeTogKHN2YzogU3BsYXNoU2NyZWVuU2VydmljZSwgY2ZnOiBSZXF1aXJlZDxTcGxhc2hTY3JlZW5Db25maWc+KSA9PiAoKSA9PlxuICAgICAgICBzdmMuaGlkZShjZmcuZmFkZU91dER1cmF0aW9uKSxcbiAgICB9LFxuICBdKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SplashScreen Service
|
|
3
|
+
*
|
|
4
|
+
* Gestiona el splash screen nativo (Capacitor) y el skeleton PWA.
|
|
5
|
+
*
|
|
6
|
+
* - Nativo: oculta el splash screen de Capacitor con fade al completar bootstrap.
|
|
7
|
+
* - PWA/web: no-op (el skeleton en index.html se elimina cuando Angular reemplaza <app-root>).
|
|
8
|
+
*
|
|
9
|
+
* Setup:
|
|
10
|
+
* 1. Agregar el skeleton HTML/CSS en index.html (ver docs/splash-screen.md o CLAUDE.md).
|
|
11
|
+
* 2. Instalar @capacitor/splash-screen en la app consumer.
|
|
12
|
+
* 3. Configurar capacitor.config.ts con launchAutoHide: false.
|
|
13
|
+
* 4. Agregar provideSplashScreen() en main.ts.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // main.ts
|
|
17
|
+
* import { provideSplashScreen } from 'valtech-components';
|
|
18
|
+
* bootstrapApplication(AppComponent, {
|
|
19
|
+
* providers: [provideSplashScreen()],
|
|
20
|
+
* });
|
|
21
|
+
*/
|
|
22
|
+
export * from './types';
|
|
23
|
+
export { VALTECH_SPLASH_SCREEN, provideSplashScreen } from './config';
|
|
24
|
+
export { SplashScreenService } from './splash-screen.service';
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3NwbGFzaC1zY3JlZW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFDeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTcGxhc2hTY3JlZW4gU2VydmljZVxuICpcbiAqIEdlc3Rpb25hIGVsIHNwbGFzaCBzY3JlZW4gbmF0aXZvIChDYXBhY2l0b3IpIHkgZWwgc2tlbGV0b24gUFdBLlxuICpcbiAqIC0gTmF0aXZvOiBvY3VsdGEgZWwgc3BsYXNoIHNjcmVlbiBkZSBDYXBhY2l0b3IgY29uIGZhZGUgYWwgY29tcGxldGFyIGJvb3RzdHJhcC5cbiAqIC0gUFdBL3dlYjogbm8tb3AgKGVsIHNrZWxldG9uIGVuIGluZGV4Lmh0bWwgc2UgZWxpbWluYSBjdWFuZG8gQW5ndWxhciByZWVtcGxhemEgPGFwcC1yb290PikuXG4gKlxuICogU2V0dXA6XG4gKiAxLiBBZ3JlZ2FyIGVsIHNrZWxldG9uIEhUTUwvQ1NTIGVuIGluZGV4Lmh0bWwgKHZlciBkb2NzL3NwbGFzaC1zY3JlZW4ubWQgbyBDTEFVREUubWQpLlxuICogMi4gSW5zdGFsYXIgQGNhcGFjaXRvci9zcGxhc2gtc2NyZWVuIGVuIGxhIGFwcCBjb25zdW1lci5cbiAqIDMuIENvbmZpZ3VyYXIgY2FwYWNpdG9yLmNvbmZpZy50cyBjb24gbGF1bmNoQXV0b0hpZGU6IGZhbHNlLlxuICogNC4gQWdyZWdhciBwcm92aWRlU3BsYXNoU2NyZWVuKCkgZW4gbWFpbi50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gbWFpbi50c1xuICogaW1wb3J0IHsgcHJvdmlkZVNwbGFzaFNjcmVlbiB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbcHJvdmlkZVNwbGFzaFNjcmVlbigpXSxcbiAqIH0pO1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IHsgVkFMVEVDSF9TUExBU0hfU0NSRUVOLCBwcm92aWRlU3BsYXNoU2NyZWVuIH0gZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0IHsgU3BsYXNoU2NyZWVuU2VydmljZSB9IGZyb20gJy4vc3BsYXNoLXNjcmVlbi5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SplashScreenService {
|
|
4
|
+
async hide(fadeOutDuration = 300) {
|
|
5
|
+
try {
|
|
6
|
+
const { SplashScreen } = await import('@capacitor/splash-screen');
|
|
7
|
+
await SplashScreen.hide({ fadeOutDuration });
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
// no-op on web or if @capacitor/splash-screen is not installed
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashScreenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashScreenService, providedIn: 'root' }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashScreenService, decorators: [{
|
|
17
|
+
type: Injectable,
|
|
18
|
+
args: [{ providedIn: 'root' }]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsYXNoLXNjcmVlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zcGxhc2gtc2NyZWVuL3NwbGFzaC1zY3JlZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUc7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDbEUsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsK0RBQStEO1FBQ2pFLENBQUM7SUFDSCxDQUFDOytHQVJVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7NEZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3BsYXNoU2NyZWVuU2VydmljZSB7XG4gIGFzeW5jIGhpZGUoZmFkZU91dER1cmF0aW9uID0gMzAwKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgU3BsYXNoU2NyZWVuIH0gPSBhd2FpdCBpbXBvcnQoJ0BjYXBhY2l0b3Ivc3BsYXNoLXNjcmVlbicpO1xuICAgICAgYXdhaXQgU3BsYXNoU2NyZWVuLmhpZGUoeyBmYWRlT3V0RHVyYXRpb24gfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBuby1vcCBvbiB3ZWIgb3IgaWYgQGNhcGFjaXRvci9zcGxhc2gtc2NyZWVuIGlzIG5vdCBpbnN0YWxsZWRcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const DEFAULT_SPLASH_SCREEN_CONFIG = {
|
|
2
|
+
fadeOutDuration: 300,
|
|
3
|
+
};
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3NwbGFzaC1zY3JlZW4vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQWlDO0lBQ3hFLGVBQWUsRUFBRSxHQUFHO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNwbGFzaFNjcmVlbkNvbmZpZyB7XG4gIGZhZGVPdXREdXJhdGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1BMQVNIX1NDUkVFTl9DT05GSUc6IFJlcXVpcmVkPFNwbGFzaFNjcmVlbkNvbmZpZz4gPSB7XG4gIGZhZGVPdXREdXJhdGlvbjogMzAwLFxufTtcbiJdfQ==
|