valtech-components 2.0.983 → 2.0.985

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.
Files changed (23) hide show
  1. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +3 -3
  2. package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs +298 -0
  3. package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +819 -0
  4. package/esm2022/lib/components/organisms/security-view/security-view.i18n.mjs +105 -0
  5. package/esm2022/lib/components/organisms/security-view/security.routes.mjs +29 -0
  6. package/esm2022/lib/components/organisms/security-view/types.mjs +2 -0
  7. package/esm2022/lib/components/organisms/session-list-modal/session-list-modal.component.mjs +206 -0
  8. package/esm2022/lib/components/organisms/session-list-modal/types.mjs +2 -0
  9. package/esm2022/lib/services/font-size/font-size.service.mjs +3 -1
  10. package/esm2022/lib/version.mjs +2 -2
  11. package/esm2022/public-api.mjs +7 -1
  12. package/fesm2022/valtech-components.mjs +2397 -990
  13. package/fesm2022/valtech-components.mjs.map +1 -1
  14. package/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.d.ts +58 -0
  15. package/lib/components/organisms/security-view/security-view.component.d.ts +130 -0
  16. package/lib/components/organisms/security-view/security-view.i18n.d.ts +12 -0
  17. package/lib/components/organisms/security-view/security.routes.d.ts +24 -0
  18. package/lib/components/organisms/security-view/types.d.ts +48 -0
  19. package/lib/components/organisms/session-list-modal/session-list-modal.component.d.ts +56 -0
  20. package/lib/components/organisms/session-list-modal/types.d.ts +27 -0
  21. package/lib/version.d.ts +1 -1
  22. package/package.json +1 -1
  23. package/public-api.d.ts +6 -0
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Defaults i18n (es/en) embebidos en `val-security-view`. Auto-registrados en el
3
+ * constructor del componente si el consumer no proveyó el namespace
4
+ * (`Settings.Security` por default). Garantiza que nunca haya una key faltante
5
+ * evaluada por cada change-detection (ver nota en valtech-components/CLAUDE.md
6
+ * sobre el storm de CD con `val-debug-console`). El consumer puede override
7
+ * registrando el mismo namespace antes de que el componente monte.
8
+ *
9
+ * SOLO incluye las keys que la vista realmente usa.
10
+ */
11
+ export const SECURITY_VIEW_I18N = {
12
+ es: {
13
+ pageTitle: 'Seguridad',
14
+ pageDescription: 'Contraseñas, MFA y sesiones activas',
15
+ blocked: 'Dispositivo bloqueado',
16
+ tokenActionFailed: 'El enlace del email no es válido o expiró.',
17
+ loginAttemptTitle: 'Confirmar inicio de sesión',
18
+ loginAttemptBody: 'Detectamos un inicio de sesión en este dispositivo. Si fuiste tú, no tienes que hacer nada. Si no lo reconoces, bloquéalo.',
19
+ loginAttemptMine: 'Sí, fui yo',
20
+ loginAttemptBlock: 'No fui yo — bloquear',
21
+ loginAttemptClose: 'Cerrar',
22
+ loginAttemptDone: 'Dispositivo bloqueado. Restablece tu contraseña para reforzar tu cuenta.',
23
+ loginAttemptUnknownDevice: 'Dispositivo desconocido',
24
+ sessionsTitle: 'Sesiones activas',
25
+ sessionsTitleCount: 'Sesiones activas ({n})',
26
+ sessionsLoading: 'Cargando sesiones…',
27
+ sessionsEmpty: 'No hay sesiones activas.',
28
+ sessionsThis: 'Esta sesión',
29
+ sessionsRevoke: 'Cerrar',
30
+ sessionsRevokeAll: 'Cerrar todas las demás',
31
+ sessionsViewAll: 'Ver todas',
32
+ sessionsModalTitle: 'Todas las sesiones activas',
33
+ sessionsRevoked: 'Sesión cerrada.',
34
+ sessionsAllRevoked: 'Todas las demás sesiones fueron cerradas.',
35
+ sessionsError: 'No se pudo completar la operación.',
36
+ revokeAllConfirmTitle: 'Cerrar todas las otras sesiones',
37
+ revokeAllConfirmMessage: 'Vas a cerrar todas tus sesiones excepto la actual. Tendrás que volver a iniciar sesión en los otros dispositivos.',
38
+ revokeAllConfirm: 'Cerrar todas',
39
+ cancel: 'Cancelar',
40
+ quickActionsTitle: 'Otras opciones',
41
+ changePassword: 'Cambiar contraseña',
42
+ changePasswordDesc: 'Actualiza tu contraseña de acceso',
43
+ changeEmail: 'Cambiar email',
44
+ changeEmailDesc: 'Actualiza el correo electrónico de tu cuenta',
45
+ mfa: 'Autenticación de dos pasos (MFA)',
46
+ mfaDesc: 'Agrega un segundo factor a tu inicio de sesión',
47
+ sessions: 'Sesiones activas',
48
+ sessionsDesc: 'Revisa y cierra sesiones en otros dispositivos',
49
+ policiesTitle: 'Políticas relacionadas',
50
+ privacyLink: 'Política de Privacidad',
51
+ cookiesLink: 'Política de Cookies',
52
+ dataUsageLink: 'Uso de Datos',
53
+ termsLink: 'Términos y Condiciones',
54
+ thirdPartyLink: 'Software y Servicios de Terceros',
55
+ legalNoticeLink: 'Aviso Legal',
56
+ soonHint: 'Próximamente',
57
+ },
58
+ en: {
59
+ pageTitle: 'Security',
60
+ pageDescription: 'Passwords, MFA, and active sessions',
61
+ blocked: 'Device blocked',
62
+ tokenActionFailed: 'The email link is invalid or has expired.',
63
+ loginAttemptTitle: 'Confirm sign-in',
64
+ loginAttemptBody: "We detected a sign-in on this device. If it was you, there's nothing to do. If you don't recognize it, block it.",
65
+ loginAttemptMine: 'Yes, it was me',
66
+ loginAttemptBlock: 'Not me — block it',
67
+ loginAttemptClose: 'Close',
68
+ loginAttemptDone: 'Device blocked. Reset your password to secure your account.',
69
+ loginAttemptUnknownDevice: 'Unknown device',
70
+ sessionsTitle: 'Active sessions',
71
+ sessionsTitleCount: 'Active sessions ({n})',
72
+ sessionsLoading: 'Loading sessions…',
73
+ sessionsEmpty: 'No active sessions.',
74
+ sessionsThis: 'This session',
75
+ sessionsRevoke: 'End',
76
+ sessionsRevokeAll: 'End all others',
77
+ sessionsViewAll: 'View all',
78
+ sessionsModalTitle: 'All active sessions',
79
+ sessionsRevoked: 'Session ended.',
80
+ sessionsAllRevoked: 'All other sessions were ended.',
81
+ sessionsError: 'Could not complete the operation.',
82
+ revokeAllConfirmTitle: 'End all other sessions',
83
+ revokeAllConfirmMessage: "You're about to end every session except this one. You'll need to sign in again on the other devices.",
84
+ revokeAllConfirm: 'End all',
85
+ cancel: 'Cancel',
86
+ quickActionsTitle: 'Other options',
87
+ changePassword: 'Change password',
88
+ changePasswordDesc: 'Update your access password',
89
+ changeEmail: 'Change email',
90
+ changeEmailDesc: 'Update the email address on your account',
91
+ mfa: 'Two-step verification (MFA)',
92
+ mfaDesc: 'Add a second factor to your sign-in',
93
+ sessions: 'Active sessions',
94
+ sessionsDesc: 'Review and sign out from other devices',
95
+ policiesTitle: 'Related policies',
96
+ privacyLink: 'Privacy Policy',
97
+ cookiesLink: 'Cookie Policy',
98
+ dataUsageLink: 'Data Usage',
99
+ termsLink: 'Terms and Conditions',
100
+ thirdPartyLink: 'Third-Party Software and Services',
101
+ legalNoticeLink: 'Legal Notice',
102
+ soonHint: 'Coming soon',
103
+ },
104
+ };
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdmlldy5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zZWN1cml0eS12aWV3L3NlY3VyaXR5LXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBcUI7SUFDbEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLHFDQUFxQztRQUV0RCxPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLGlCQUFpQixFQUFFLDRDQUE0QztRQUUvRCxpQkFBaUIsRUFBRSw0QkFBNEI7UUFDL0MsZ0JBQWdCLEVBQ2QsNEhBQTRIO1FBQzlILGdCQUFnQixFQUFFLFlBQVk7UUFDOUIsaUJBQWlCLEVBQUUsc0JBQXNCO1FBQ3pDLGlCQUFpQixFQUFFLFFBQVE7UUFDM0IsZ0JBQWdCLEVBQUUsMEVBQTBFO1FBQzVGLHlCQUF5QixFQUFFLHlCQUF5QjtRQUVwRCxhQUFhLEVBQUUsa0JBQWtCO1FBQ2pDLGtCQUFrQixFQUFFLHdCQUF3QjtRQUM1QyxlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLGFBQWEsRUFBRSwwQkFBMEI7UUFDekMsWUFBWSxFQUFFLGFBQWE7UUFDM0IsY0FBYyxFQUFFLFFBQVE7UUFDeEIsaUJBQWlCLEVBQUUsd0JBQXdCO1FBQzNDLGVBQWUsRUFBRSxXQUFXO1FBQzVCLGtCQUFrQixFQUFFLDRCQUE0QjtRQUNoRCxlQUFlLEVBQUUsaUJBQWlCO1FBQ2xDLGtCQUFrQixFQUFFLDJDQUEyQztRQUMvRCxhQUFhLEVBQUUsb0NBQW9DO1FBQ25ELHFCQUFxQixFQUFFLGlDQUFpQztRQUN4RCx1QkFBdUIsRUFDckIsbUhBQW1IO1FBQ3JILGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsTUFBTSxFQUFFLFVBQVU7UUFFbEIsaUJBQWlCLEVBQUUsZ0JBQWdCO1FBQ25DLGNBQWMsRUFBRSxvQkFBb0I7UUFDcEMsa0JBQWtCLEVBQUUsbUNBQW1DO1FBQ3ZELFdBQVcsRUFBRSxlQUFlO1FBQzVCLGVBQWUsRUFBRSw4Q0FBOEM7UUFDL0QsR0FBRyxFQUFFLGtDQUFrQztRQUN2QyxPQUFPLEVBQUUsZ0RBQWdEO1FBQ3pELFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsWUFBWSxFQUFFLGdEQUFnRDtRQUU5RCxhQUFhLEVBQUUsd0JBQXdCO1FBQ3ZDLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxhQUFhLEVBQUUsY0FBYztRQUM3QixTQUFTLEVBQUUsd0JBQXdCO1FBQ25DLGNBQWMsRUFBRSxrQ0FBa0M7UUFDbEQsZUFBZSxFQUFFLGFBQWE7UUFFOUIsUUFBUSxFQUFFLGNBQWM7S0FDekI7SUFDRCxFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsVUFBVTtRQUNyQixlQUFlLEVBQUUscUNBQXFDO1FBRXRELE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsaUJBQWlCLEVBQUUsMkNBQTJDO1FBRTlELGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxnQkFBZ0IsRUFDZCxrSEFBa0g7UUFDcEgsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLGlCQUFpQixFQUFFLG1CQUFtQjtRQUN0QyxpQkFBaUIsRUFBRSxPQUFPO1FBQzFCLGdCQUFnQixFQUFFLDZEQUE2RDtRQUMvRSx5QkFBeUIsRUFBRSxnQkFBZ0I7UUFFM0MsYUFBYSxFQUFFLGlCQUFpQjtRQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7UUFDM0MsZUFBZSxFQUFFLG1CQUFtQjtRQUNwQyxhQUFhLEVBQUUscUJBQXFCO1FBQ3BDLFlBQVksRUFBRSxjQUFjO1FBQzVCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLGlCQUFpQixFQUFFLGdCQUFnQjtRQUNuQyxlQUFlLEVBQUUsVUFBVTtRQUMzQixrQkFBa0IsRUFBRSxxQkFBcUI7UUFDekMsZUFBZSxFQUFFLGdCQUFnQjtRQUNqQyxrQkFBa0IsRUFBRSxnQ0FBZ0M7UUFDcEQsYUFBYSxFQUFFLG1DQUFtQztRQUNsRCxxQkFBcUIsRUFBRSx3QkFBd0I7UUFDL0MsdUJBQXVCLEVBQ3JCLHVHQUF1RztRQUN6RyxnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLE1BQU0sRUFBRSxRQUFRO1FBRWhCLGlCQUFpQixFQUFFLGVBQWU7UUFDbEMsY0FBYyxFQUFFLGlCQUFpQjtRQUNqQyxrQkFBa0IsRUFBRSw2QkFBNkI7UUFDakQsV0FBVyxFQUFFLGNBQWM7UUFDM0IsZUFBZSxFQUFFLDBDQUEwQztRQUMzRCxHQUFHLEVBQUUsNkJBQTZCO1FBQ2xDLE9BQU8sRUFBRSxxQ0FBcUM7UUFDOUMsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixZQUFZLEVBQUUsd0NBQXdDO1FBRXRELGFBQWEsRUFBRSxrQkFBa0I7UUFDakMsV0FBVyxFQUFFLGdCQUFnQjtRQUM3QixXQUFXLEVBQUUsZUFBZTtRQUM1QixhQUFhLEVBQUUsWUFBWTtRQUMzQixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLGNBQWMsRUFBRSxtQ0FBbUM7UUFDbkQsZUFBZSxFQUFFLGNBQWM7UUFFL0IsUUFBUSxFQUFFLGFBQWE7S0FDeEI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbWJlYmlkb3MgZW4gYHZhbC1zZWN1cml0eS12aWV3YC4gQXV0by1yZWdpc3RyYWRvcyBlbiBlbFxuICogY29uc3RydWN0b3IgZGVsIGNvbXBvbmVudGUgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWwgbmFtZXNwYWNlXG4gKiAoYFNldHRpbmdzLlNlY3VyaXR5YCBwb3IgZGVmYXVsdCkuIEdhcmFudGl6YSBxdWUgbnVuY2EgaGF5YSB1bmEga2V5IGZhbHRhbnRlXG4gKiBldmFsdWFkYSBwb3IgY2FkYSBjaGFuZ2UtZGV0ZWN0aW9uICh2ZXIgbm90YSBlbiB2YWx0ZWNoLWNvbXBvbmVudHMvQ0xBVURFLm1kXG4gKiBzb2JyZSBlbCBzdG9ybSBkZSBDRCBjb24gYHZhbC1kZWJ1Zy1jb25zb2xlYCkuIEVsIGNvbnN1bWVyIHB1ZWRlIG92ZXJyaWRlXG4gKiByZWdpc3RyYW5kbyBlbCBtaXNtbyBuYW1lc3BhY2UgYW50ZXMgZGUgcXVlIGVsIGNvbXBvbmVudGUgbW9udGUuXG4gKlxuICogU09MTyBpbmNsdXllIGxhcyBrZXlzIHF1ZSBsYSB2aXN0YSByZWFsbWVudGUgdXNhLlxuICovXG5leHBvcnQgY29uc3QgU0VDVVJJVFlfVklFV19JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHBhZ2VUaXRsZTogJ1NlZ3VyaWRhZCcsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnQ29udHJhc2XDsWFzLCBNRkEgeSBzZXNpb25lcyBhY3RpdmFzJyxcblxuICAgIGJsb2NrZWQ6ICdEaXNwb3NpdGl2byBibG9xdWVhZG8nLFxuICAgIHRva2VuQWN0aW9uRmFpbGVkOiAnRWwgZW5sYWNlIGRlbCBlbWFpbCBubyBlcyB2w6FsaWRvIG8gZXhwaXLDsy4nLFxuXG4gICAgbG9naW5BdHRlbXB0VGl0bGU6ICdDb25maXJtYXIgaW5pY2lvIGRlIHNlc2nDs24nLFxuICAgIGxvZ2luQXR0ZW1wdEJvZHk6XG4gICAgICAnRGV0ZWN0YW1vcyB1biBpbmljaW8gZGUgc2VzacOzbiBlbiBlc3RlIGRpc3Bvc2l0aXZvLiBTaSBmdWlzdGUgdMO6LCBubyB0aWVuZXMgcXVlIGhhY2VyIG5hZGEuIFNpIG5vIGxvIHJlY29ub2NlcywgYmxvcXXDqWFsby4nLFxuICAgIGxvZ2luQXR0ZW1wdE1pbmU6ICdTw60sIGZ1aSB5bycsXG4gICAgbG9naW5BdHRlbXB0QmxvY2s6ICdObyBmdWkgeW8g4oCUIGJsb3F1ZWFyJyxcbiAgICBsb2dpbkF0dGVtcHRDbG9zZTogJ0NlcnJhcicsXG4gICAgbG9naW5BdHRlbXB0RG9uZTogJ0Rpc3Bvc2l0aXZvIGJsb3F1ZWFkby4gUmVzdGFibGVjZSB0dSBjb250cmFzZcOxYSBwYXJhIHJlZm9yemFyIHR1IGN1ZW50YS4nLFxuICAgIGxvZ2luQXR0ZW1wdFVua25vd25EZXZpY2U6ICdEaXNwb3NpdGl2byBkZXNjb25vY2lkbycsXG5cbiAgICBzZXNzaW9uc1RpdGxlOiAnU2VzaW9uZXMgYWN0aXZhcycsXG4gICAgc2Vzc2lvbnNUaXRsZUNvdW50OiAnU2VzaW9uZXMgYWN0aXZhcyAoe259KScsXG4gICAgc2Vzc2lvbnNMb2FkaW5nOiAnQ2FyZ2FuZG8gc2VzaW9uZXPigKYnLFxuICAgIHNlc3Npb25zRW1wdHk6ICdObyBoYXkgc2VzaW9uZXMgYWN0aXZhcy4nLFxuICAgIHNlc3Npb25zVGhpczogJ0VzdGEgc2VzacOzbicsXG4gICAgc2Vzc2lvbnNSZXZva2U6ICdDZXJyYXInLFxuICAgIHNlc3Npb25zUmV2b2tlQWxsOiAnQ2VycmFyIHRvZGFzIGxhcyBkZW3DoXMnLFxuICAgIHNlc3Npb25zVmlld0FsbDogJ1ZlciB0b2RhcycsXG4gICAgc2Vzc2lvbnNNb2RhbFRpdGxlOiAnVG9kYXMgbGFzIHNlc2lvbmVzIGFjdGl2YXMnLFxuICAgIHNlc3Npb25zUmV2b2tlZDogJ1Nlc2nDs24gY2VycmFkYS4nLFxuICAgIHNlc3Npb25zQWxsUmV2b2tlZDogJ1RvZGFzIGxhcyBkZW3DoXMgc2VzaW9uZXMgZnVlcm9uIGNlcnJhZGFzLicsXG4gICAgc2Vzc2lvbnNFcnJvcjogJ05vIHNlIHB1ZG8gY29tcGxldGFyIGxhIG9wZXJhY2nDs24uJyxcbiAgICByZXZva2VBbGxDb25maXJtVGl0bGU6ICdDZXJyYXIgdG9kYXMgbGFzIG90cmFzIHNlc2lvbmVzJyxcbiAgICByZXZva2VBbGxDb25maXJtTWVzc2FnZTpcbiAgICAgICdWYXMgYSBjZXJyYXIgdG9kYXMgdHVzIHNlc2lvbmVzIGV4Y2VwdG8gbGEgYWN0dWFsLiBUZW5kcsOhcyBxdWUgdm9sdmVyIGEgaW5pY2lhciBzZXNpw7NuIGVuIGxvcyBvdHJvcyBkaXNwb3NpdGl2b3MuJyxcbiAgICByZXZva2VBbGxDb25maXJtOiAnQ2VycmFyIHRvZGFzJyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG5cbiAgICBxdWlja0FjdGlvbnNUaXRsZTogJ090cmFzIG9wY2lvbmVzJyxcbiAgICBjaGFuZ2VQYXNzd29yZDogJ0NhbWJpYXIgY29udHJhc2XDsWEnLFxuICAgIGNoYW5nZVBhc3N3b3JkRGVzYzogJ0FjdHVhbGl6YSB0dSBjb250cmFzZcOxYSBkZSBhY2Nlc28nLFxuICAgIGNoYW5nZUVtYWlsOiAnQ2FtYmlhciBlbWFpbCcsXG4gICAgY2hhbmdlRW1haWxEZXNjOiAnQWN0dWFsaXphIGVsIGNvcnJlbyBlbGVjdHLDs25pY28gZGUgdHUgY3VlbnRhJyxcbiAgICBtZmE6ICdBdXRlbnRpY2FjacOzbiBkZSBkb3MgcGFzb3MgKE1GQSknLFxuICAgIG1mYURlc2M6ICdBZ3JlZ2EgdW4gc2VndW5kbyBmYWN0b3IgYSB0dSBpbmljaW8gZGUgc2VzacOzbicsXG4gICAgc2Vzc2lvbnM6ICdTZXNpb25lcyBhY3RpdmFzJyxcbiAgICBzZXNzaW9uc0Rlc2M6ICdSZXZpc2EgeSBjaWVycmEgc2VzaW9uZXMgZW4gb3Ryb3MgZGlzcG9zaXRpdm9zJyxcblxuICAgIHBvbGljaWVzVGl0bGU6ICdQb2zDrXRpY2FzIHJlbGFjaW9uYWRhcycsXG4gICAgcHJpdmFjeUxpbms6ICdQb2zDrXRpY2EgZGUgUHJpdmFjaWRhZCcsXG4gICAgY29va2llc0xpbms6ICdQb2zDrXRpY2EgZGUgQ29va2llcycsXG4gICAgZGF0YVVzYWdlTGluazogJ1VzbyBkZSBEYXRvcycsXG4gICAgdGVybXNMaW5rOiAnVMOpcm1pbm9zIHkgQ29uZGljaW9uZXMnLFxuICAgIHRoaXJkUGFydHlMaW5rOiAnU29mdHdhcmUgeSBTZXJ2aWNpb3MgZGUgVGVyY2Vyb3MnLFxuICAgIGxlZ2FsTm90aWNlTGluazogJ0F2aXNvIExlZ2FsJyxcblxuICAgIHNvb25IaW50OiAnUHLDs3hpbWFtZW50ZScsXG4gIH0sXG4gIGVuOiB7XG4gICAgcGFnZVRpdGxlOiAnU2VjdXJpdHknLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ1Bhc3N3b3JkcywgTUZBLCBhbmQgYWN0aXZlIHNlc3Npb25zJyxcblxuICAgIGJsb2NrZWQ6ICdEZXZpY2UgYmxvY2tlZCcsXG4gICAgdG9rZW5BY3Rpb25GYWlsZWQ6ICdUaGUgZW1haWwgbGluayBpcyBpbnZhbGlkIG9yIGhhcyBleHBpcmVkLicsXG5cbiAgICBsb2dpbkF0dGVtcHRUaXRsZTogJ0NvbmZpcm0gc2lnbi1pbicsXG4gICAgbG9naW5BdHRlbXB0Qm9keTpcbiAgICAgIFwiV2UgZGV0ZWN0ZWQgYSBzaWduLWluIG9uIHRoaXMgZGV2aWNlLiBJZiBpdCB3YXMgeW91LCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8uIElmIHlvdSBkb24ndCByZWNvZ25pemUgaXQsIGJsb2NrIGl0LlwiLFxuICAgIGxvZ2luQXR0ZW1wdE1pbmU6ICdZZXMsIGl0IHdhcyBtZScsXG4gICAgbG9naW5BdHRlbXB0QmxvY2s6ICdOb3QgbWUg4oCUIGJsb2NrIGl0JyxcbiAgICBsb2dpbkF0dGVtcHRDbG9zZTogJ0Nsb3NlJyxcbiAgICBsb2dpbkF0dGVtcHREb25lOiAnRGV2aWNlIGJsb2NrZWQuIFJlc2V0IHlvdXIgcGFzc3dvcmQgdG8gc2VjdXJlIHlvdXIgYWNjb3VudC4nLFxuICAgIGxvZ2luQXR0ZW1wdFVua25vd25EZXZpY2U6ICdVbmtub3duIGRldmljZScsXG5cbiAgICBzZXNzaW9uc1RpdGxlOiAnQWN0aXZlIHNlc3Npb25zJyxcbiAgICBzZXNzaW9uc1RpdGxlQ291bnQ6ICdBY3RpdmUgc2Vzc2lvbnMgKHtufSknLFxuICAgIHNlc3Npb25zTG9hZGluZzogJ0xvYWRpbmcgc2Vzc2lvbnPigKYnLFxuICAgIHNlc3Npb25zRW1wdHk6ICdObyBhY3RpdmUgc2Vzc2lvbnMuJyxcbiAgICBzZXNzaW9uc1RoaXM6ICdUaGlzIHNlc3Npb24nLFxuICAgIHNlc3Npb25zUmV2b2tlOiAnRW5kJyxcbiAgICBzZXNzaW9uc1Jldm9rZUFsbDogJ0VuZCBhbGwgb3RoZXJzJyxcbiAgICBzZXNzaW9uc1ZpZXdBbGw6ICdWaWV3IGFsbCcsXG4gICAgc2Vzc2lvbnNNb2RhbFRpdGxlOiAnQWxsIGFjdGl2ZSBzZXNzaW9ucycsXG4gICAgc2Vzc2lvbnNSZXZva2VkOiAnU2Vzc2lvbiBlbmRlZC4nLFxuICAgIHNlc3Npb25zQWxsUmV2b2tlZDogJ0FsbCBvdGhlciBzZXNzaW9ucyB3ZXJlIGVuZGVkLicsXG4gICAgc2Vzc2lvbnNFcnJvcjogJ0NvdWxkIG5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uLicsXG4gICAgcmV2b2tlQWxsQ29uZmlybVRpdGxlOiAnRW5kIGFsbCBvdGhlciBzZXNzaW9ucycsXG4gICAgcmV2b2tlQWxsQ29uZmlybU1lc3NhZ2U6XG4gICAgICBcIllvdSdyZSBhYm91dCB0byBlbmQgZXZlcnkgc2Vzc2lvbiBleGNlcHQgdGhpcyBvbmUuIFlvdSdsbCBuZWVkIHRvIHNpZ24gaW4gYWdhaW4gb24gdGhlIG90aGVyIGRldmljZXMuXCIsXG4gICAgcmV2b2tlQWxsQ29uZmlybTogJ0VuZCBhbGwnLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG5cbiAgICBxdWlja0FjdGlvbnNUaXRsZTogJ090aGVyIG9wdGlvbnMnLFxuICAgIGNoYW5nZVBhc3N3b3JkOiAnQ2hhbmdlIHBhc3N3b3JkJyxcbiAgICBjaGFuZ2VQYXNzd29yZERlc2M6ICdVcGRhdGUgeW91ciBhY2Nlc3MgcGFzc3dvcmQnLFxuICAgIGNoYW5nZUVtYWlsOiAnQ2hhbmdlIGVtYWlsJyxcbiAgICBjaGFuZ2VFbWFpbERlc2M6ICdVcGRhdGUgdGhlIGVtYWlsIGFkZHJlc3Mgb24geW91ciBhY2NvdW50JyxcbiAgICBtZmE6ICdUd28tc3RlcCB2ZXJpZmljYXRpb24gKE1GQSknLFxuICAgIG1mYURlc2M6ICdBZGQgYSBzZWNvbmQgZmFjdG9yIHRvIHlvdXIgc2lnbi1pbicsXG4gICAgc2Vzc2lvbnM6ICdBY3RpdmUgc2Vzc2lvbnMnLFxuICAgIHNlc3Npb25zRGVzYzogJ1JldmlldyBhbmQgc2lnbiBvdXQgZnJvbSBvdGhlciBkZXZpY2VzJyxcblxuICAgIHBvbGljaWVzVGl0bGU6ICdSZWxhdGVkIHBvbGljaWVzJyxcbiAgICBwcml2YWN5TGluazogJ1ByaXZhY3kgUG9saWN5JyxcbiAgICBjb29raWVzTGluazogJ0Nvb2tpZSBQb2xpY3knLFxuICAgIGRhdGFVc2FnZUxpbms6ICdEYXRhIFVzYWdlJyxcbiAgICB0ZXJtc0xpbms6ICdUZXJtcyBhbmQgQ29uZGl0aW9ucycsXG4gICAgdGhpcmRQYXJ0eUxpbms6ICdUaGlyZC1QYXJ0eSBTb2Z0d2FyZSBhbmQgU2VydmljZXMnLFxuICAgIGxlZ2FsTm90aWNlTGluazogJ0xlZ2FsIE5vdGljZScsXG5cbiAgICBzb29uSGludDogJ0NvbWluZyBzb29uJyxcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { SecurityViewComponent } from './security-view.component';
2
+ /**
3
+ * Helper para montar la vista Seguridad (`val-security-view`) como ruta en una
4
+ * app del factory. El `config` se pasa por route `data` (`securityConfig`) y el
5
+ * componente lo lee como fallback de su `@Input() config`.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * // settings.routes.ts
10
+ * export const settingsRoutes: Routes = [
11
+ * ...provideValtechSecurityRoutes(),
12
+ * { path: 'preferences', loadComponent: () => ... },
13
+ * ];
14
+ *
15
+ * // con config acotada:
16
+ * ...provideValtechSecurityRoutes({ config: { showPolicies: false } }),
17
+ * ...provideValtechSecurityRoutes({ config: { homeRoute: '/app/dashboard' } }),
18
+ * ```
19
+ */
20
+ export function provideValtechSecurityRoutes(opts) {
21
+ return [
22
+ {
23
+ path: opts?.path ?? 'security',
24
+ component: SecurityViewComponent,
25
+ data: { securityConfig: opts?.config },
26
+ },
27
+ ];
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zZWN1cml0eS12aWV3L3NlY3VyaXR5LnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUdsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsSUFHNUM7SUFDQyxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxVQUFVO1lBQzlCLFNBQVMsRUFBRSxxQkFBcUI7WUFDaEMsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDdkM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFNlY3VyaXR5Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2VjdXJpdHktdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VjdXJpdHlWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogSGVscGVyIHBhcmEgbW9udGFyIGxhIHZpc3RhIFNlZ3VyaWRhZCAoYHZhbC1zZWN1cml0eS12aWV3YCkgY29tbyBydXRhIGVuIHVuYVxuICogYXBwIGRlbCBmYWN0b3J5LiBFbCBgY29uZmlnYCBzZSBwYXNhIHBvciByb3V0ZSBgZGF0YWAgKGBzZWN1cml0eUNvbmZpZ2ApIHkgZWxcbiAqIGNvbXBvbmVudGUgbG8gbGVlIGNvbW8gZmFsbGJhY2sgZGUgc3UgYEBJbnB1dCgpIGNvbmZpZ2AuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBzZXR0aW5ncy5yb3V0ZXMudHNcbiAqIGV4cG9ydCBjb25zdCBzZXR0aW5nc1JvdXRlczogUm91dGVzID0gW1xuICogICAuLi5wcm92aWRlVmFsdGVjaFNlY3VyaXR5Um91dGVzKCksXG4gKiAgIHsgcGF0aDogJ3ByZWZlcmVuY2VzJywgbG9hZENvbXBvbmVudDogKCkgPT4gLi4uIH0sXG4gKiBdO1xuICpcbiAqIC8vIGNvbiBjb25maWcgYWNvdGFkYTpcbiAqIC4uLnByb3ZpZGVWYWx0ZWNoU2VjdXJpdHlSb3V0ZXMoeyBjb25maWc6IHsgc2hvd1BvbGljaWVzOiBmYWxzZSB9IH0pLFxuICogLi4ucHJvdmlkZVZhbHRlY2hTZWN1cml0eVJvdXRlcyh7IGNvbmZpZzogeyBob21lUm91dGU6ICcvYXBwL2Rhc2hib2FyZCcgfSB9KSxcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hTZWN1cml0eVJvdXRlcyhvcHRzPzoge1xuICBwYXRoPzogc3RyaW5nO1xuICBjb25maWc/OiBTZWN1cml0eVZpZXdDb25maWc7XG59KTogUm91dGVzIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwYXRoOiBvcHRzPy5wYXRoID8/ICdzZWN1cml0eScsXG4gICAgICBjb21wb25lbnQ6IFNlY3VyaXR5Vmlld0NvbXBvbmVudCxcbiAgICAgIGRhdGE6IHsgc2VjdXJpdHlDb25maWc6IG9wdHM/LmNvbmZpZyB9LFxuICAgIH0sXG4gIF07XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NlY3VyaXR5LXZpZXcvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlndXJhY2nDs24gYWNvdGFkYSBkZSBgdmFsLXNlY3VyaXR5LXZpZXdgIChvYmplY3QtZmlyc3QpLiBUcmVzIGVqZXMgZGVcbiAqIHZhcmlhY2nDs24gcGVybWl0aWRvcyDigJQgKipOQURBIGRlIHNsb3RzIGFyYml0cmFyaW9zKiogKEFEUi0wMjE6IHVuYSB2aXN0YVxuICogZnVsbC1mZWF0dXJlIG5vIGFicmUgc2xvdHM7IHNpIGZhbHRhIGFsZ28sIHNlIHByb211ZXZlIHVuIG51ZXZvIHB1bnRvIGRlXG4gKiBleHRlbnNpw7NuKTpcbiAqXG4gKiAgLSAqKnNlY2Npb25lcyB2aXNpYmxlcyoqIOKAlCBnYXRlYW4gZWwgcmVuZGVyIGRlIGNhZGEgYmxvcXVlIChzZXNpb25lcyxcbiAqICAgIGFjdGlvbi1jYXJkcyBkZSBjYW1iaWFyIGNvbnRyYXNlw7FhIC8gZW1haWwgLyBNRkEsIHBvbMOtdGljYXMgbGVnYWxlcykuXG4gKiAgLSAqKmJyYW5kaW5nKiog4oCUIGBpMThuTmFtZXNwYWNlYCBwYXJhIHJlc29sdmVyIGxvcyB0ZXh0b3MgKGRlZmF1bHRcbiAqICAgIGAnU2V0dGluZ3MuU2VjdXJpdHknYCkuXG4gKiAgLSAqKmNvbXBvcnRhbWllbnRvIC8gY2FsbGJhY2tzKiog4oCUIG1hbmVqbyBkZSBkZWVwLWxpbmtzIGRlbCBlbWFpbFxuICogICAgKGA/dG9rZW5gL2A/YWN0aW9uYC9gP21mYUNvZGVgKSwgcnV0YSBkZSBcImhvbWVcIiB0cmFzIGNvbXBsZXRhciBNRkEgeSB1blxuICogICAgaG9vayBvcGNpb25hbCBgb25NZmFDb21wbGV0ZWRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5Vmlld0NvbmZpZyB7XG4gIC8qKiBNdWVzdHJhIGxhIHNlY2Npw7NuIGRlIHNlc2lvbmVzIGFjdGl2YXMuIERlZmF1bHQgYHRydWVgLiAqL1xuICBzaG93U2Vzc2lvbnM/OiBib29sZWFuO1xuICAvKiogSW5jbHV5ZSBsYSBhY3Rpb24tY2FyZCBcIkNhbWJpYXIgY29udHJhc2XDsWFcIi4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dDaGFuZ2VQYXNzd29yZD86IGJvb2xlYW47XG4gIC8qKiBJbmNsdXllIGxhIGFjdGlvbi1jYXJkIFwiQ2FtYmlhciBlbWFpbFwiLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgc2hvd0NoYW5nZUVtYWlsPzogYm9vbGVhbjtcbiAgLyoqIEluY2x1eWUgbGEgYWN0aW9uLWNhcmQgXCJBdXRlbnRpY2FjacOzbiBkZSBkb3MgcGFzb3MgKE1GQSlcIi4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dNZmE/OiBib29sZWFuO1xuICAvKiogTXVlc3RyYSBsYSBzZWNjacOzbiBkZSBwb2zDrXRpY2FzIGxlZ2FsZXMgcmVsYWNpb25hZGFzLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgc2hvd1BvbGljaWVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTmFtZXNwYWNlIGkxOG4gY29uIGVsIHF1ZSBsYSB2aXN0YSByZXN1ZWx2ZSBzdXMgdGV4dG9zLlxuICAgKiBEZWZhdWx0IGAnU2V0dGluZ3MuU2VjdXJpdHknYC5cbiAgICovXG4gIGkxOG5OYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhhYmlsaXRhIGVsIG1hbmVqbyBkZSBsb3MgZGVlcC1saW5rcyBkZWwgZW1haWxcbiAgICogKGA/dG9rZW5gL2A/YWN0aW9uYC9gP21mYUNvZGVgKS4gRGVmYXVsdCBgdHJ1ZWAuIFJlcXVpZXJlIHF1ZSBsYSB2aXN0YSBlc3TDqVxuICAgKiBtb250YWRhIGNvbW8gcnV0YSAoaGF5IGBBY3RpdmF0ZWRSb3V0ZWApOyBlbiBtb2RvIGVtYmViaWRvIHNpbiBydXRhIGVzIG5vLW9wLlxuICAgKi9cbiAgaGFuZGxlRGVlcExpbmtzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUnV0YSBhIGxhIHF1ZSBuYXZlZ2FyIHRyYXMgY29tcGxldGFyIE1GQSB2w61hIGRlZXAtbGluay4gRGVmYXVsdCBgJy9hcHAvaG9tZSdgLlxuICAgKiBJZ25vcmFkYSBzaSBzZSBwcm92ZWUgYG9uTWZhQ29tcGxldGVkYC5cbiAgICovXG4gIGhvbWVSb3V0ZT86IHN0cmluZztcblxuICAvKipcbiAgICogSG9vayBpbnZvY2FkbyBjdWFuZG8gZWwgdXN1YXJpbyBjb21wbGV0YSBNRkEgdsOtYSBkZWVwLWxpbmsuIFNpIHNlIHByb3ZlZSwgc2VcbiAgICogbGxhbWEgKiplbiBsdWdhcioqIGRlIG5hdmVnYXIgYSBgaG9tZVJvdXRlYC4gw5p0aWwgcGFyYSBhcHBzIHF1ZSBxdWllcmFuXG4gICAqIGRlY2lkaXIgZWwgZGVzdGlubyBwb3N0LU1GQS5cbiAgICovXG4gIG9uTWZhQ29tcGxldGVkPzogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,206 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, signal } from '@angular/core';
3
+ import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonToolbar } from '@ionic/angular/standalone';
4
+ import { ButtonComponent } from '../../atoms/button/button.component';
5
+ import { DisplayComponent } from '../../atoms/display/display.component';
6
+ import { TextComponent } from '../../atoms/text/text.component';
7
+ import { ComponentStates } from '../../types';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * `val-session-list-modal` — modal de "Ver todas las sesiones activas". Organism
11
+ * compartido entre la vista Seguridad y la vista Cuenta del factory.
12
+ *
13
+ * Render reusa el mismo markup de la sección de sesiones inline (mismas clases
14
+ * CSS) pero sin truncar la lista.
15
+ *
16
+ * Inputs (vienen de `componentProps` del ModalService):
17
+ * - `sessions` — snapshot inicial (mostrado al abrir)
18
+ * - `thisLabel` / `revokeLabel` — i18n strings ya resueltas
19
+ * - `onRevoke` — callback async que el parent ejecuta contra el backend; debe
20
+ * retornar la lista actualizada para que el modal refresque en sitio.
21
+ *
22
+ * `@Output` events NO funcionan con `modalController.create()` — por eso usamos
23
+ * callback pasado por props + `_modalRef` para dismiss desde dentro.
24
+ *
25
+ * Header canónico (Regla #5): sin `ion-title`, botón Cerrar texto en `slot=end`,
26
+ * título en el body con `val-display`.
27
+ */
28
+ export class SessionListModalComponent {
29
+ constructor() {
30
+ /** Título del modal (ya traducido). */
31
+ this.title = '';
32
+ /** Label del botón cerrar del header (ya traducido). */
33
+ this.closeLabel = '';
34
+ /** Label "Esta sesión" (en idioma activo). */
35
+ this.thisLabel = '';
36
+ /** Label del botón revoke individual. */
37
+ this.revokeLabel = '';
38
+ /** Lista local mutable — refrescada después de cada revoke confirmado. */
39
+ this.sessionsLocal = signal([]);
40
+ }
41
+ /** Snapshot inicial — el modal mantiene su propia copia y la refresca tras revoke. */
42
+ set sessions(value) {
43
+ this.sessionsLocal.set([...value]);
44
+ }
45
+ close() {
46
+ this._modalRef?.dismiss(undefined, 'close');
47
+ }
48
+ async handleRevoke(sessionId) {
49
+ if (!this.onRevoke)
50
+ return;
51
+ try {
52
+ const updated = await this.onRevoke(sessionId);
53
+ this.sessionsLocal.set([...updated]);
54
+ }
55
+ catch {
56
+ // El parent muestra el toast de error; modal no necesita feedback extra.
57
+ }
58
+ }
59
+ get revokeBtn() {
60
+ return {
61
+ text: this.revokeLabel,
62
+ color: 'dark',
63
+ fill: 'clear',
64
+ size: 'small',
65
+ type: 'button',
66
+ state: ComponentStates.ENABLED,
67
+ };
68
+ }
69
+ deviceIcon(s) {
70
+ const ua = (s.deviceInfo || '').toLowerCase();
71
+ const isMobile = /iphone|ipad|ipod|android|mobile/.test(ua);
72
+ return isMobile ? 'phone-portrait-outline' : 'laptop-outline';
73
+ }
74
+ formatMeta(s) {
75
+ const parts = [];
76
+ if (s.location)
77
+ parts.push(s.location);
78
+ else if (s.ip)
79
+ parts.push(s.ip);
80
+ if (s.createdAt)
81
+ parts.push(new Date(s.createdAt).toLocaleString());
82
+ return parts.join(' · ');
83
+ }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SessionListModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SessionListModalComponent, isStandalone: true, selector: "val-session-list-modal", inputs: { sessions: "sessions", title: "title", closeLabel: "closeLabel", thisLabel: "thisLabel", revokeLabel: "revokeLabel", onRevoke: "onRevoke", _modalRef: "_modalRef" }, ngImport: i0, template: `
86
+ <ion-header>
87
+ <ion-toolbar>
88
+ <ion-buttons slot="end">
89
+ <ion-button fill="clear" color="dark" (click)="close()">
90
+ <strong>{{ closeLabel }}</strong>
91
+ </ion-button>
92
+ </ion-buttons>
93
+ </ion-toolbar>
94
+ </ion-header>
95
+ <ion-content class="ion-padding">
96
+ <val-display [props]="{ content: title, size: 'small', color: 'dark' }" />
97
+ <ul class="sessions">
98
+ @for (s of sessionsLocal(); track s.sessionId) {
99
+ <li class="session" [class.session--current]="s.isCurrent">
100
+ <ion-icon class="session__icon" [name]="deviceIcon(s)" aria-hidden="true" />
101
+ <div class="session__body">
102
+ <val-text
103
+ [props]="{
104
+ content: s.deviceInfo || s.deviceId || '—',
105
+ size: 'medium',
106
+ color: 'dark',
107
+ bold: true,
108
+ }"
109
+ />
110
+ <val-text
111
+ [props]="{
112
+ content: formatMeta(s),
113
+ size: 'small',
114
+ color: 'medium',
115
+ bold: false,
116
+ }"
117
+ />
118
+ </div>
119
+ <div class="session__end">
120
+ @if (s.isCurrent) {
121
+ <span class="session__badge">{{ thisLabel }}</span>
122
+ } @else {
123
+ <val-button [props]="revokeBtn" (click)="handleRevoke(s.sessionId)" />
124
+ }
125
+ </div>
126
+ </li>
127
+ }
128
+ </ul>
129
+ </ion-content>
130
+ `, isInline: true, styles: [":host{display:block;height:100%}.sessions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.session{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--ion-color-light, rgba(0, 0, 0, .04));border:1px solid transparent}.session--current{background:#2dd36f1a;border-color:#2dd36f4d}.session__icon{font-size:26px;color:var(--ion-color-dark, #1a1a1a);flex-shrink:0}.session--current .session__icon{color:var(--ion-color-success-shade, #28ba62)}.session__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.session__end{flex-shrink:0}.session__badge{display:inline-block;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ion-color-success-shade, #28ba62);background:#2dd36f2e;border-radius:999px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SessionListModalComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'val-session-list-modal', standalone: true, imports: [
135
+ CommonModule,
136
+ IonContent,
137
+ IonHeader,
138
+ IonToolbar,
139
+ IonButtons,
140
+ IonButton,
141
+ IonIcon,
142
+ DisplayComponent,
143
+ TextComponent,
144
+ ButtonComponent,
145
+ ], template: `
146
+ <ion-header>
147
+ <ion-toolbar>
148
+ <ion-buttons slot="end">
149
+ <ion-button fill="clear" color="dark" (click)="close()">
150
+ <strong>{{ closeLabel }}</strong>
151
+ </ion-button>
152
+ </ion-buttons>
153
+ </ion-toolbar>
154
+ </ion-header>
155
+ <ion-content class="ion-padding">
156
+ <val-display [props]="{ content: title, size: 'small', color: 'dark' }" />
157
+ <ul class="sessions">
158
+ @for (s of sessionsLocal(); track s.sessionId) {
159
+ <li class="session" [class.session--current]="s.isCurrent">
160
+ <ion-icon class="session__icon" [name]="deviceIcon(s)" aria-hidden="true" />
161
+ <div class="session__body">
162
+ <val-text
163
+ [props]="{
164
+ content: s.deviceInfo || s.deviceId || '—',
165
+ size: 'medium',
166
+ color: 'dark',
167
+ bold: true,
168
+ }"
169
+ />
170
+ <val-text
171
+ [props]="{
172
+ content: formatMeta(s),
173
+ size: 'small',
174
+ color: 'medium',
175
+ bold: false,
176
+ }"
177
+ />
178
+ </div>
179
+ <div class="session__end">
180
+ @if (s.isCurrent) {
181
+ <span class="session__badge">{{ thisLabel }}</span>
182
+ } @else {
183
+ <val-button [props]="revokeBtn" (click)="handleRevoke(s.sessionId)" />
184
+ }
185
+ </div>
186
+ </li>
187
+ }
188
+ </ul>
189
+ </ion-content>
190
+ `, styles: [":host{display:block;height:100%}.sessions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.session{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--ion-color-light, rgba(0, 0, 0, .04));border:1px solid transparent}.session--current{background:#2dd36f1a;border-color:#2dd36f4d}.session__icon{font-size:26px;color:var(--ion-color-dark, #1a1a1a);flex-shrink:0}.session--current .session__icon{color:var(--ion-color-success-shade, #28ba62)}.session__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.session__end{flex-shrink:0}.session__badge{display:inline-block;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ion-color-success-shade, #28ba62);background:#2dd36f2e;border-radius:999px}\n"] }]
191
+ }], propDecorators: { sessions: [{
192
+ type: Input
193
+ }], title: [{
194
+ type: Input
195
+ }], closeLabel: [{
196
+ type: Input
197
+ }], thisLabel: [{
198
+ type: Input
199
+ }], revokeLabel: [{
200
+ type: Input
201
+ }], onRevoke: [{
202
+ type: Input
203
+ }], _modalRef: [{
204
+ type: Input
205
+ }] } });
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1saXN0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2Vzc2lvbi1saXN0LW1vZGFsL3Nlc3Npb24tbGlzdC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUk5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBaUlILE1BQU0sT0FBTyx5QkFBeUI7SUFoSXRDO1FBc0lFLHVDQUF1QztRQUM5QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCLHdEQUF3RDtRQUMvQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXpCLDhDQUE4QztRQUNyQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXhCLHlDQUF5QztRQUNoQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQW1CMUIsMEVBQTBFO1FBQ3ZELGtCQUFhLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztLQW9DOUQ7SUF2RUMsc0ZBQXNGO0lBQ3RGLElBQWEsUUFBUSxDQUFDLEtBQW9CO1FB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c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkJ1dHRvbnMsIElvbkNvbnRlbnQsIElvbkhlYWRlciwgSW9uSWNvbiwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvdHlwZXMnO1xuXG4vKipcbiAqIGB2YWwtc2Vzc2lvbi1saXN0LW1vZGFsYCDigJQgbW9kYWwgZGUgXCJWZXIgdG9kYXMgbGFzIHNlc2lvbmVzIGFjdGl2YXNcIi4gT3JnYW5pc21cbiAqIGNvbXBhcnRpZG8gZW50cmUgbGEgdmlzdGEgU2VndXJpZGFkIHkgbGEgdmlzdGEgQ3VlbnRhIGRlbCBmYWN0b3J5LlxuICpcbiAqIFJlbmRlciByZXVzYSBlbCBtaXNtbyBtYXJrdXAgZGUgbGEgc2VjY2nDs24gZGUgc2VzaW9uZXMgaW5saW5lIChtaXNtYXMgY2xhc2VzXG4gKiBDU1MpIHBlcm8gc2luIHRydW5jYXIgbGEgbGlzdGEuXG4gKlxuICogSW5wdXRzICh2aWVuZW4gZGUgYGNvbXBvbmVudFByb3BzYCBkZWwgTW9kYWxTZXJ2aWNlKTpcbiAqICAtIGBzZXNzaW9uc2Ag4oCUIHNuYXBzaG90IGluaWNpYWwgKG1vc3RyYWRvIGFsIGFicmlyKVxuICogIC0gYHRoaXNMYWJlbGAgLyBgcmV2b2tlTGFiZWxgIOKAlCBpMThuIHN0cmluZ3MgeWEgcmVzdWVsdGFzXG4gKiAgLSBgb25SZXZva2VgIOKAlCBjYWxsYmFjayBhc3luYyBxdWUgZWwgcGFyZW50IGVqZWN1dGEgY29udHJhIGVsIGJhY2tlbmQ7IGRlYmVcbiAqICAgIHJldG9ybmFyIGxhIGxpc3RhIGFjdHVhbGl6YWRhIHBhcmEgcXVlIGVsIG1vZGFsIHJlZnJlc3F1ZSBlbiBzaXRpby5cbiAqXG4gKiBgQE91dHB1dGAgZXZlbnRzIE5PIGZ1bmNpb25hbiBjb24gYG1vZGFsQ29udHJvbGxlci5jcmVhdGUoKWAg4oCUIHBvciBlc28gdXNhbW9zXG4gKiBjYWxsYmFjayBwYXNhZG8gcG9yIHByb3BzICsgYF9tb2RhbFJlZmAgcGFyYSBkaXNtaXNzIGRlc2RlIGRlbnRyby5cbiAqXG4gKiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSk6IHNpbiBgaW9uLXRpdGxlYCwgYm90w7NuIENlcnJhciB0ZXh0byBlbiBgc2xvdD1lbmRgLFxuICogdMOtdHVsbyBlbiBlbCBib2R5IGNvbiBgdmFsLWRpc3BsYXlgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc2Vzc2lvbi1saXN0LW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25Db250ZW50LFxuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBjbG9zZUxhYmVsIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0aXRsZSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgIDx1bCBjbGFzcz1cInNlc3Npb25zXCI+XG4gICAgICAgIEBmb3IgKHMgb2Ygc2Vzc2lvbnNMb2NhbCgpOyB0cmFjayBzLnNlc3Npb25JZCkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cInNlc3Npb25cIiBbY2xhc3Muc2Vzc2lvbi0tY3VycmVudF09XCJzLmlzQ3VycmVudFwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwic2Vzc2lvbl9faWNvblwiIFtuYW1lXT1cImRldmljZUljb24ocylcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlc3Npb25fX2JvZHlcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHMuZGV2aWNlSW5mbyB8fCBzLmRldmljZUlkIHx8ICfigJQnLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGZvcm1hdE1ldGEocyksXG4gICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXNzaW9uX19lbmRcIj5cbiAgICAgICAgICAgICAgQGlmIChzLmlzQ3VycmVudCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vzc2lvbl9fYmFkZ2VcIj57eyB0aGlzTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJyZXZva2VCdG5cIiAoY2xpY2spPVwiaGFuZGxlUmV2b2tlKHMuc2Vzc2lvbklkKVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuc2Vzc2lvbnMge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cblxuICAgICAgLnNlc3Npb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDQpKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zZXNzaW9uLS1jdXJyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0NSwgMjExLCAxMTEsIDAuMSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg0NSwgMjExLCAxMTEsIDAuMyk7XG4gICAgICB9XG5cbiAgICAgIC5zZXNzaW9uX19pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICMxYTFhMWEpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLnNlc3Npb24tLWN1cnJlbnQgLnNlc3Npb25fX2ljb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3Mtc2hhZGUsICMyOGJhNjIpO1xuICAgICAgfVxuXG4gICAgICAuc2Vzc2lvbl9fYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG5cbiAgICAgIC5zZXNzaW9uX19lbmQge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLnNlc3Npb25fX2JhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3Mtc2hhZGUsICMyOGJhNjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ1LCAyMTEsIDExMSwgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25MaXN0TW9kYWxDb21wb25lbnQge1xuICAvKiogU25hcHNob3QgaW5pY2lhbCDigJQgZWwgbW9kYWwgbWFudGllbmUgc3UgcHJvcGlhIGNvcGlhIHkgbGEgcmVmcmVzY2EgdHJhcyByZXZva2UuICovXG4gIEBJbnB1dCgpIHNldCBzZXNzaW9ucyh2YWx1ZTogU2Vzc2lvbkluZm9bXSkge1xuICAgIHRoaXMuc2Vzc2lvbnNMb2NhbC5zZXQoWy4uLnZhbHVlXSk7XG4gIH1cblxuICAvKiogVMOtdHVsbyBkZWwgbW9kYWwgKHlhIHRyYWR1Y2lkbykuICovXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cbiAgLyoqIExhYmVsIGRlbCBib3TDs24gY2VycmFyIGRlbCBoZWFkZXIgKHlhIHRyYWR1Y2lkbykuICovXG4gIEBJbnB1dCgpIGNsb3NlTGFiZWwgPSAnJztcblxuICAvKiogTGFiZWwgXCJFc3RhIHNlc2nDs25cIiAoZW4gaWRpb21hIGFjdGl2bykuICovXG4gIEBJbnB1dCgpIHRoaXNMYWJlbCA9ICcnO1xuXG4gIC8qKiBMYWJlbCBkZWwgYm90w7NuIHJldm9rZSBpbmRpdmlkdWFsLiAqL1xuICBASW5wdXQoKSByZXZva2VMYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBxdWUgZWplY3V0YSBlbCByZXZva2UgY29udHJhIGVsIGJhY2tlbmQgeSByZXRvcm5hIGxhIGxpc3RhXG4gICAqIGFjdHVhbGl6YWRhLiBQYXNhZG8gcG9yIGBjb21wb25lbnRQcm9wc2AgZGVsIE1vZGFsU2VydmljZS5cbiAgICovXG4gIEBJbnB1dCgpIG9uUmV2b2tlPzogKHNlc3Npb25JZDogc3RyaW5nKSA9PiBQcm9taXNlPFNlc3Npb25JbmZvW10+O1xuXG4gIC8qKlxuICAgKiBJbnllY3RhZG8gcG9yIGBNb2RhbFNlcnZpY2Uub3BlbmAg4oCUIHJlZmVyZW5jaWEgcGFyYSBjZXJyYXIgZGVzZGUgZGVudHJvLlxuICAgKiBDdWFscXVpZXIgY29tcG9uZW50ZSBhYmllcnRvIHbDrWEgZWwgc2VydmljZSByZWNpYmUgZXN0ZSBvYmpldG8gZW5cbiAgICogYGNvbXBvbmVudFByb3BzYC5cbiAgICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3ModW5kZWZpbmVkLCAnY2xvc2UnKTtcbiAgfVxuXG4gIC8qKiBMaXN0YSBsb2NhbCBtdXRhYmxlIOKAlCByZWZyZXNjYWRhIGRlc3B1w6lzIGRlIGNhZGEgcmV2b2tlIGNvbmZpcm1hZG8uICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXNzaW9uc0xvY2FsID0gc2lnbmFsPFNlc3Npb25JbmZvW10+KFtdKTtcblxuICBhc3luYyBoYW5kbGVSZXZva2Uoc2Vzc2lvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMub25SZXZva2UpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMub25SZXZva2Uoc2Vzc2lvbklkKTtcbiAgICAgIHRoaXMuc2Vzc2lvbnNMb2NhbC5zZXQoWy4uLnVwZGF0ZWRdKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEVsIHBhcmVudCBtdWVzdHJhIGVsIHRvYXN0IGRlIGVycm9yOyBtb2RhbCBubyBuZWNlc2l0YSBmZWVkYmFjayBleHRyYS5cbiAgICB9XG4gIH1cblxuICBnZXQgcmV2b2tlQnRuKCk6IFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogdGhpcy5yZXZva2VMYWJlbCxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBmaWxsOiAnY2xlYXInLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG4gIH1cblxuICBkZXZpY2VJY29uKHM6IFNlc3Npb25JbmZvKTogc3RyaW5nIHtcbiAgICBjb25zdCB1YSA9IChzLmRldmljZUluZm8gfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNNb2JpbGUgPSAvaXBob25lfGlwYWR8aXBvZHxhbmRyb2lkfG1vYmlsZS8udGVzdCh1YSk7XG4gICAgcmV0dXJuIGlzTW9iaWxlID8gJ3Bob25lLXBvcnRyYWl0LW91dGxpbmUnIDogJ2xhcHRvcC1vdXRsaW5lJztcbiAgfVxuXG4gIGZvcm1hdE1ldGEoczogU2Vzc2lvbkluZm8pOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChzLmxvY2F0aW9uKSBwYXJ0cy5wdXNoKHMubG9jYXRpb24pO1xuICAgIGVsc2UgaWYgKHMuaXApIHBhcnRzLnB1c2gocy5pcCk7XG4gICAgaWYgKHMuY3JlYXRlZEF0KSBwYXJ0cy5wdXNoKG5ldyBEYXRlKHMuY3JlYXRlZEF0KS50b0xvY2FsZVN0cmluZygpKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignIMK3ICcpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Nlc3Npb24tbGlzdC1tb2RhbC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL3R5cGVzJztcblxuLyoqXG4gKiBQcm9wcyBkZSBgdmFsLXNlc3Npb24tbGlzdC1tb2RhbGAgKG9yZ2FuaXNtIGNvbXBhcnRpZG8g4oCUIGxvIHJldXNhbiBsYSB2aXN0YVxuICogU2VndXJpZGFkIHkgbGEgdmlzdGEgQ3VlbnRhKS5cbiAqXG4gKiBTZSBwYXNhbiBwb3IgYGNvbXBvbmVudFByb3BzYCBkZWwgYE1vZGFsU2VydmljZS5vcGVuU2hlZXQoLi4uKWAuIFNvbiBlc2NhbGFyZXNcbiAqICsgdW4gY2FsbGJhY2sgKGBvblJldm9rZWApIOKAlCBOTyBgQE91dHB1dGAsIHBvcnF1ZSBsb3MgZXZlbnRvcyBubyBmdW5jaW9uYW4gY29uXG4gKiBgbW9kYWxDb250cm9sbGVyLmNyZWF0ZSgpYC4gRWwgY29tcG9uZW50ZSBlcyAqKmFnbsOzc3RpY28gYSBpMThuKio6IHJlY2liZSBsb3NcbiAqIGxhYmVscyB5YSB0cmFkdWNpZG9zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb25MaXN0TW9kYWxQcm9wcyB7XG4gIC8qKiBTbmFwc2hvdCBpbmljaWFsIGRlIHNlc2lvbmVzIOKAlCBlbCBtb2RhbCBtYW50aWVuZSBzdSBjb3BpYSB5IGxhIHJlZnJlc2NhIHRyYXMgcmV2b2tlLiAqL1xuICBzZXNzaW9uczogU2Vzc2lvbkluZm9bXTtcbiAgLyoqIFTDrXR1bG8gZGVsIG1vZGFsICh5YSB0cmFkdWNpZG8pLiAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKiogTGFiZWwgZGVsIGJvdMOzbiBjZXJyYXIgZGVsIGhlYWRlciAoeWEgdHJhZHVjaWRvKS4gKi9cbiAgY2xvc2VMYWJlbDogc3RyaW5nO1xuICAvKiogTGFiZWwgXCJFc3RhIHNlc2nDs25cIiAoZW4gaWRpb21hIGFjdGl2bykuICovXG4gIHRoaXNMYWJlbDogc3RyaW5nO1xuICAvKiogTGFiZWwgZGVsIGJvdMOzbiByZXZva2UgaW5kaXZpZHVhbC4gKi9cbiAgcmV2b2tlTGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIENhbGxiYWNrIHF1ZSBlamVjdXRhIGVsIHJldm9rZSBjb250cmEgZWwgYmFja2VuZCB5IHJldG9ybmEgbGEgbGlzdGFcbiAgICogYWN0dWFsaXphZGEgcGFyYSByZWZyZXNjYXIgZWwgbW9kYWwgZW4gc2l0aW8uXG4gICAqL1xuICBvblJldm9rZT86IChzZXNzaW9uSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxTZXNzaW9uSW5mb1tdPjtcbn1cbiJdfQ==
@@ -39,6 +39,8 @@ export class FontSizeService {
39
39
  if (!this.isBrowser)
40
40
  return;
41
41
  document.documentElement.style.fontSize = SIZE_PX[size];
42
+ document.body.classList.toggle('font-large', size === FontSizeOption.LARGE);
43
+ document.body.classList.toggle('font-small', size === FontSizeOption.SMALL);
42
44
  }
43
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
44
46
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, providedIn: 'root' }); }
@@ -50,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
50
52
  type: Inject,
51
53
  args: [PLATFORM_ID]
52
54
  }] }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1zaXplLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZvbnQtc2l6ZS9mb250LXNpemUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFL0QsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QixpQ0FBZSxDQUFBO0lBQ2YsbUNBQWlCLENBQUE7SUFDakIsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLE9BQU8sR0FBbUM7SUFDOUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTTtJQUM5QixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNO0lBQy9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU07Q0FDL0IsQ0FBQztBQUdGLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQWlDLFVBQWtCO1FBTGxDLFVBQUssR0FBRyxNQUFNLENBQWlCLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUt0QyxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFpQixTQUFTLENBQUMsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQW9CO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBb0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBNUJVLGVBQWUsa0JBTU4sV0FBVzttSEFOcEIsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBT25CLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRk9OVF9TSVpFIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9zdG9yYWdlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuXG5leHBvcnQgZW51bSBGb250U2l6ZU9wdGlvbiB7XG4gIFNNQUxMID0gJ3NtYWxsJyxcbiAgTUVESVVNID0gJ21lZGl1bScsXG4gIExBUkdFID0gJ2xhcmdlJyxcbn1cblxuY29uc3QgU0laRV9QWDogUmVjb3JkPEZvbnRTaXplT3B0aW9uLCBzdHJpbmc+ID0ge1xuICBbRm9udFNpemVPcHRpb24uU01BTExdOiAnMTRweCcsXG4gIFtGb250U2l6ZU9wdGlvbi5NRURJVU1dOiAnMTZweCcsXG4gIFtGb250U2l6ZU9wdGlvbi5MQVJHRV06ICcxOXB4Jyxcbn07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRm9udFNpemVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2l6ZSA9IHNpZ25hbDxGb250U2l6ZU9wdGlvbj4oRm9udFNpemVPcHRpb24uTUVESVVNKTtcbiAgcmVhZG9ubHkgc2l6ZSA9IHRoaXMuX3NpemUuYXNSZWFkb25seSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IG9iamVjdCkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RvcmVkID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXQ8Rm9udFNpemVPcHRpb24+KEZPTlRfU0laRSk7XG4gICAgY29uc3QgaW5pdGlhbCA9IHN0b3JlZCAmJiBTSVpFX1BYW3N0b3JlZF0gPyBzdG9yZWQgOiBGb250U2l6ZU9wdGlvbi5NRURJVU07XG4gICAgdGhpcy5fc2l6ZS5zZXQoaW5pdGlhbCk7XG4gICAgdGhpcy5hcHBseVNpemUoaW5pdGlhbCk7XG4gIH1cblxuICBzZXRTaXplKHNpemU6IEZvbnRTaXplT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCFTSVpFX1BYW3NpemVdKSByZXR1cm47XG4gICAgdGhpcy5fc2l6ZS5zZXQoc2l6ZSk7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldChGT05UX1NJWkUsIHNpemUpO1xuICAgIH1cbiAgICB0aGlzLmFwcGx5U2l6ZShzaXplKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaXplKHNpemU6IEZvbnRTaXplT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IFNJWkVfUFhbc2l6ZV07XG4gIH1cbn1cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1zaXplLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZvbnQtc2l6ZS9mb250LXNpemUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFL0QsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QixpQ0FBZSxDQUFBO0lBQ2YsbUNBQWlCLENBQUE7SUFDakIsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLE9BQU8sR0FBbUM7SUFDOUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTTtJQUM5QixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNO0lBQy9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU07Q0FDL0IsQ0FBQztBQUdGLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQWlDLFVBQWtCO1FBTGxDLFVBQUssR0FBRyxNQUFNLENBQWlCLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUt0QyxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFpQixTQUFTLENBQUMsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQW9CO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBb0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0E5QlUsZUFBZSxrQkFNTixXQUFXO21IQU5wQixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFPbkIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGT05UX1NJWkUgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCBlbnVtIEZvbnRTaXplT3B0aW9uIHtcbiAgU01BTEwgPSAnc21hbGwnLFxuICBNRURJVU0gPSAnbWVkaXVtJyxcbiAgTEFSR0UgPSAnbGFyZ2UnLFxufVxuXG5jb25zdCBTSVpFX1BYOiBSZWNvcmQ8Rm9udFNpemVPcHRpb24sIHN0cmluZz4gPSB7XG4gIFtGb250U2l6ZU9wdGlvbi5TTUFMTF06ICcxNHB4JyxcbiAgW0ZvbnRTaXplT3B0aW9uLk1FRElVTV06ICcxNnB4JyxcbiAgW0ZvbnRTaXplT3B0aW9uLkxBUkdFXTogJzE5cHgnLFxufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGb250U2l6ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaXplID0gc2lnbmFsPEZvbnRTaXplT3B0aW9uPihGb250U2l6ZU9wdGlvbi5NRURJVU0pO1xuICByZWFkb25seSBzaXplID0gdGhpcy5fc2l6ZS5hc1JlYWRvbmx5KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogb2JqZWN0KSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG5cbiAgICBjb25zdCBzdG9yZWQgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldDxGb250U2l6ZU9wdGlvbj4oRk9OVF9TSVpFKTtcbiAgICBjb25zdCBpbml0aWFsID0gc3RvcmVkICYmIFNJWkVfUFhbc3RvcmVkXSA/IHN0b3JlZCA6IEZvbnRTaXplT3B0aW9uLk1FRElVTTtcbiAgICB0aGlzLl9zaXplLnNldChpbml0aWFsKTtcbiAgICB0aGlzLmFwcGx5U2l6ZShpbml0aWFsKTtcbiAgfVxuXG4gIHNldFNpemUoc2l6ZTogRm9udFNpemVPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIVNJWkVfUFhbc2l6ZV0pIHJldHVybjtcbiAgICB0aGlzLl9zaXplLnNldChzaXplKTtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KEZPTlRfU0laRSwgc2l6ZSk7XG4gICAgfVxuICAgIHRoaXMuYXBwbHlTaXplKHNpemUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNpemUoc2l6ZTogRm9udFNpemVPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gU0laRV9QWFtzaXplXTtcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2ZvbnQtbGFyZ2UnLCBzaXplID09PSBGb250U2l6ZU9wdGlvbi5MQVJHRSk7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdmb250LXNtYWxsJywgc2l6ZSA9PT0gRm9udFNpemVPcHRpb24uU01BTEwpO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.983';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODMnO1xuIl19
5
+ export const VERSION = '2.0.985';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODUnO1xuIl19