valtech-components 2.0.1024 → 2.0.1026
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/ticket-card/ticket-card.component.mjs +183 -0
- package/esm2022/lib/components/molecules/ticket-card/ticket-card.i18n.mjs +23 -0
- package/esm2022/lib/components/molecules/ticket-card/types.mjs +2 -0
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +23 -27
- package/esm2022/lib/components/organisms/organization-view/organization-view.i18n.mjs +7 -7
- package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.component.mjs +310 -0
- package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.i18n.mjs +28 -0
- package/esm2022/lib/components/organisms/qr-scanner/types.mjs +2 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/valtech-components.mjs +559 -35
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/molecules/ticket-card/ticket-card.component.d.ts +42 -0
- package/lib/components/molecules/ticket-card/ticket-card.i18n.d.ts +22 -0
- package/lib/components/molecules/ticket-card/types.d.ts +45 -0
- package/lib/components/organisms/article/article.component.d.ts +4 -4
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/components/organisms/qr-scanner/qr-scanner.component.d.ts +51 -0
- package/lib/components/organisms/qr-scanner/qr-scanner.i18n.d.ts +27 -0
- package/lib/components/organisms/qr-scanner/types.d.ts +31 -0
- package/lib/version.d.ts +1 -1
- package/package.json +3 -1
- package/public-api.d.ts +4 -0
|
@@ -56,11 +56,11 @@ export const ORGANIZATION_VIEW_I18N = {
|
|
|
56
56
|
importOpen: 'Importar',
|
|
57
57
|
apiKeysOpen: 'Gestionar',
|
|
58
58
|
apiKeysSectionTitle: 'Integraciones (API Keys)',
|
|
59
|
-
apiKeysSectionHint: '
|
|
59
|
+
apiKeysSectionHint: 'Conecta tus sistemas externos a esta organización vía API Key.',
|
|
60
60
|
apiKeysMoreInfo: 'Más información',
|
|
61
61
|
apiKeysInfoTitle: 'Integraciones por API',
|
|
62
|
-
apiKeysInfoSubtitle: '
|
|
63
|
-
apiKeysInfoContent: 'Una API Key te permite
|
|
62
|
+
apiKeysInfoSubtitle: '¿Qué puedes hacer con una API Key?',
|
|
63
|
+
apiKeysInfoContent: 'Una API Key te permite automatizar operaciones en tu organización desde tus propios sistemas, sin abrir la app. Es ideal para integraciones máquina-a-máquina: sincronizar usuarios desde tu ERP, asignar roles en masa o consultar datos desde tus reportes internos.\n\nCon una key puedes dar de alta y gestionar miembros, asignar roles y permisos, leer datos de la organización y conectar flujos de trabajo existentes.\n\nCada key lleva solo los permisos que tú le asignes — concede el mínimo necesario y revócala en cualquier momento desde la sección Integraciones.\n\nImportante: el secreto se muestra una sola vez al crear la key. Guárdalo en un lugar seguro (gestor de secretos, variable de entorno). Si lo pierdes, genera una nueva key y revoca la anterior.',
|
|
64
64
|
apiKeysInfoClose: 'Cerrar',
|
|
65
65
|
orgsMoreInfo: 'Aprender más sobre organizaciones',
|
|
66
66
|
orgsInfoTitle: '¿Qué son las organizaciones?',
|
|
@@ -139,11 +139,11 @@ export const ORGANIZATION_VIEW_I18N = {
|
|
|
139
139
|
importOpen: 'Import',
|
|
140
140
|
apiKeysOpen: 'Manage',
|
|
141
141
|
apiKeysSectionTitle: 'Integrations (API Keys)',
|
|
142
|
-
apiKeysSectionHint: '
|
|
142
|
+
apiKeysSectionHint: 'Connect your external systems to this organization via API Key.',
|
|
143
143
|
apiKeysMoreInfo: 'More information',
|
|
144
144
|
apiKeysInfoTitle: 'API integrations',
|
|
145
|
-
apiKeysInfoSubtitle: '
|
|
146
|
-
apiKeysInfoContent: 'An API Key lets you
|
|
145
|
+
apiKeysInfoSubtitle: 'What can you do with an API Key?',
|
|
146
|
+
apiKeysInfoContent: 'An API Key lets you automate operations in your organization from your own systems, without opening the app. It is ideal for machine-to-machine integrations: sync users from your ERP, bulk-assign roles, or query data for your internal reports.\n\nWith a key you can provision and manage members, assign roles and permissions, read organization data, and connect existing workflows.\n\nEach key carries only the permissions you assign — grant the minimum needed and revoke it at any time from the Integrations section.\n\nImportant: the secret is shown only once when the key is created. Store it somewhere safe (secret manager, environment variable). If you lose it, create a new key and revoke the old one.',
|
|
147
147
|
apiKeysInfoClose: 'Close',
|
|
148
148
|
orgsMoreInfo: 'Learn more about organizations',
|
|
149
149
|
orgsInfoTitle: 'What are organizations?',
|
|
@@ -173,4 +173,4 @@ export const ORGANIZATION_VIEW_I18N = {
|
|
|
173
173
|
membersShowMore: 'Show more',
|
|
174
174
|
},
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxTQUFTLEVBQUUsYUFBYTtRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsYUFBYTtRQUM5QixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsVUFBVTtRQUN4QixZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLFlBQVksRUFBRSxxQ0FBcUM7UUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxTQUFTLEVBQUUsOENBQThDO1FBQ3pELFFBQVEsRUFBRSxPQUFPO1FBQ2pCLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsWUFBWSxF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QUUsUUFBUTtRQUMxQixPQUFPLEVBQUUsS0FBSztRQUNkLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLGVBQWUsRUFBRSxXQUFXO0tBQzdCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZW1iZWJpZG9zIGVuIGB2YWwtb3JnYW5pemF0aW9uLXZpZXdgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuXG4gKiBlbCBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIChgU2V0dGluZ3MuT3JnYW5pemF0aW9uYCBwb3IgZGVmYXVsdCkuIFNPTE8gaW5jbHV5ZSBsYXMga2V5cyBxdWUgbGEgdmlzdGEgdXNhLlxuICpcbiAqIFBvcnRhZG8gZGUgYE9SR19JMThOX0NPTlRFTlRgIChzaG93Y2FzZSkgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKi9cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fVklFV19JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHBhZ2VUaXRsZTogJ09yZ2FuaXphY2nDs24nLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ0dlc3Rpb25hIHR1IG9yZ2FuaXphY2nDs24gYWN0aXZhJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hY2nDs24nLFxuICAgIGluZm9OYW1lOiAnTm9tYnJlJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwY2nDs24nLFxuICAgIGluZm9QbGFuOiAnUGxhbicsXG4gICAgaW5mb1R5cGU6ICdUaXBvJyxcbiAgICBlZGl0Q3RhOiAnRWRpdGFyJyxcbiAgICBzYXZlQ3RhOiAnR3VhcmRhcicsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsYXInLFxuICAgIG1lbWJlcnNUaXRsZTogJ01pZW1icm9zJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdTaW4gbWllbWJyb3MgYcO6bi4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRhcicsXG4gICAgaW52aXRlRW1haWw6ICdDb3JyZW8gZWxlY3Ryw7NuaWNvJyxcbiAgICBpbnZpdGVSb2xlOiAnUm9sJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGFyJyxcbiAgICBpbnZpdGVTdWNjZXNzOiAnSW52aXRhY2nDs24gZW52aWFkYS4nLFxuICAgIGludml0ZUVycm9yOiAnTm8gc2UgcHVkbyBlbnZpYXIgbGEgaW52aXRhY2nDs24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdObyBzZSBwdWRpZXJvbiBjYXJnYXIgbG9zIG1pZW1icm9zLicsXG4gICAgbGVhdmVUaXRsZTogJ1NhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24nLFxuICAgIGxlYXZlSGludDogJ0RlamFyw6FzIGRlIHRlbmVyIGFjY2VzbyBhIGVzdGEgb3JnYW5pemFjacOzbi4nLFxuICAgIGxlYXZlQ3RhOiAnU2FsaXInLFxuICAgIGxlYXZlT3duZXJIaW50OiAnRXJlcyBlbCBwcm9waWV0YXJpby4gVHJhbnNmaWVyZSBsYSBwcm9waWVkYWQgYW50ZXMgZGUgc2FsaXIuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICfCv1NhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24/JyxcbiAgICBwbGFuRnJlZTogJ0dyYXR1aXRvJyxcbiAgICBwbGFuUHJvOiAnUHJvJyxcbiAgICBwbGFuRW50ZXJwcmlzZTogJ0VtcHJlc2EnLFxuICAgIHNhdmVTdWNjZXNzOiAnT3JnYW5pemFjacOzbiBhY3R1YWxpemFkYS4nLFxuICAgIGxlYXZlU3VjY2VzczogJ0hhcyBzYWxpZG8gZGUgbGEgb3JnYW5pemFjacOzbi4nLFxuICAgIGVycm9yVGl0bGU6ICdObyBzZSBwdWRvIGNhcmdhciBsYSBvcmdhbml6YWNpw7NuJyxcbiAgICBvZmZsaW5lVGl0bGU6ICdTaW4gY29uZXhpw7NuJyxcbiAgICBvZmZsaW5lSGludDogJ1ZlcmlmaWNhIHR1IGNvbmV4acOzbiBlIGludGVudGEgZGUgbnVldm8uJyxcbiAgICByZXRyeTogJ1JlaW50ZW50YXInLFxuICAgIHNhdmVFcnJvcjogJ05vIHNlIHB1ZG8gZ3VhcmRhci4gSW50ZW50YSBkZSBudWV2by4nLFxuICAgIGxlYXZlRXJyb3I6ICdObyBzZSBwdWRvIHNhbGlyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgdHJhbnNmZXJUaXRsZTogJ1RyYW5zZmVyaXIgcHJvcGllZGFkJyxcbiAgICB0cmFuc2ZlckhpbnQ6ICdFbGlnZSB1biBtaWVtYnJvIHBhcmEgdHJhbnNmZXJpcmxlIGxhIHByb3BpZWRhZCBkZSBsYSBvcmdhbml6YWNpw7NuLicsXG4gICAgdHJhbnNmZXJTZWxlY3Q6ICdTZWxlY2Npb25hciBudWV2byBwcm9waWV0YXJpbycsXG4gICAgdHJhbnNmZXJDdGE6ICdUcmFuc2ZlcmlyJyxcbiAgICB0cmFuc2ZlckNvbmZpcm06ICfCv1RyYW5zZmVyaXIgbGEgcHJvcGllZGFkIGEgZXN0ZSBtaWVtYnJvPyBQZXJkZXLDoXMgZWwgcm9sIGRlIHByb3BpZXRhcmlvLicsXG4gICAgdHJhbnNmZXJTdWNjZXNzOiAnUHJvcGllZGFkIHRyYW5zZmVyaWRhLicsXG4gICAgdHJhbnNmZXJFcnJvcjogJ05vIHNlIHB1ZG8gdHJhbnNmZXJpciBsYSBwcm9waWVkYWQuJyxcbiAgICBpbnZpdGVDdGFUaXRsZTogJ8K/RGVzZWFzIGFncmVnYXIgYSBhbGd1aWVuPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0YSBhIHVzdWFyaW9zIGEgdW5pcnNlIGEgdHUgb3JnYW5pemFjacOzbi4nLFxuICAgIGludml0ZU9wZW46ICdJbnZpdGFyJyxcbiAgICBpbXBvcnRPcGVuOiAnSW1wb3J0YXInLFxuICAgIGFwaUtleXNPcGVuOiAnR2VzdGlvbmFyJyxcbiAgICBhcGlLZXlzU2VjdGlvblRpdGxlOiAnSW50ZWdyYWNpb25lcyAoQVBJIEtleXMpJyxcbiAgICBhcGlLZXlzU2VjdGlvbkhpbnQ6XG4gICAgICAnVGFtYmnDqW4gcHVlZGVzIG9wZXJhciB0dSBvcmdhbml6YWNpw7NuIHbDrWEgQVBJOiBjcmVhIHVuYSBDbGllbnQgQVBJIEtleSBvcmctc2NvcGVhZGEgcGFyYSBpbnRlZ3JhY2lvbmVzIG3DoXF1aW5hLWEtbcOhcXVpbmEgKHBvciBlamVtcGxvLCBkYXIgZGUgYWx0YSBtaWVtYnJvcyBlbiBtYXNhIGRlc2RlIHR1IHByb3BpbyBzaXN0ZW1hKS4nLFxuICAgIGFwaUtleXNNb3JlSW5mbzogJ03DoXMgaW5mb3JtYWNpw7NuJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnSW50ZWdyYWNpb25lcyBwb3IgQVBJJyxcbiAgICBhcGlLZXlzSW5mb1N1YnRpdGxlOiAnT3BlcmEgdHUgb3JnYW5pemFjacOzbiBtw6FxdWluYS1hLW3DoXF1aW5hJyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6XG4gICAgICAnVW5hIEFQSSBLZXkgdGUgcGVybWl0ZSBvcGVyYXIgdHUgb3JnYW5pemFjacOzbiBkZXNkZSB0dXMgcHJvcGlvcyBzaXN0ZW1hcywgc2luIGVudHJhciBhIGxhIGFwcDogZGFyIGRlIGFsdGEgdXN1YXJpb3MsIGFzaWduYXIgcm9sZXMsIGxlZXIgZGF0b3MgeSBhdXRvbWF0aXphciBmbHVqb3MuXFxuXFxuQ2FkYSBrZXkgZXMgb3JnLXNjb3BlYWRhIHkgbGxldmEgc29sbyBsb3MgcGVybWlzb3MgcXVlIGxlIGFzaWduZXMg4oCUIGNvbmNlZGUgZWwgbcOtbmltbyBuZWNlc2FyaW8uIFB1ZWRlcyByZXZvY2FybGEgZW4gY3VhbHF1aWVyIG1vbWVudG8uXFxuXFxuRWwgc2VjcmV0byBzZSBtdWVzdHJhIHVuYSBzb2xhIHZleiBhbCBjcmVhcmxhOiBndcOhcmRhbG8gZW4gdW4gbHVnYXIgc2VndXJvLiBTaSBsbyBwaWVyZGVzLCBnZW5lcmEgdW5hIG51ZXZhIGtleSB5IHJldm9jYSBsYSBhbnRlcmlvci4nLFxuICAgIGFwaUtleXNJbmZvQ2xvc2U6ICdDZXJyYXInLFxuICAgIG9yZ3NNb3JlSW5mbzogJ0FwcmVuZGVyIG3DoXMgc29icmUgb3JnYW5pemFjaW9uZXMnLFxuICAgIG9yZ3NJbmZvVGl0bGU6ICfCv1F1w6kgc29uIGxhcyBvcmdhbml6YWNpb25lcz8nLFxuICAgIG9yZ3NJbmZvU3VidGl0bGU6ICdUb2RvIGxvIHF1ZSBuZWNlc2l0YXMgc2FiZXInLFxuICAgIG9yZ3NJbmZvQ2xvc2U6ICdDZXJyYXInLFxuICAgIG9yZ3NJbmZvQ29udGVudDpcbiAgICAgICdMYXMgb3JnYW5pemFjaW9uZXMgdGUgcGVybWl0ZW4gc2VwYXJhciB0dXMgcHJveWVjdG9zIHkgZGF0b3MgcG9yIGVtcHJlc2EsIGVxdWlwbyBvIGNvbnRleHRvLiBQdWVkZXMgcGVydGVuZWNlciBhIHZhcmlhcyBvcmdhbml6YWNpb25lcyB5IGNhbWJpYXIgZW50cmUgZWxsYXMgZW4gY3VhbHF1aWVyIG1vbWVudG8uXFxuXFxuQ2FkYSBvcmdhbml6YWNpw7NuIHRpZW5lIHN1cyBwcm9waW9zIG1pZW1icm9zLCByb2xlcyB5IHBlcm1pc29zLiBMYSBvcmdhbml6YWNpw7NuIGFjdGl2YSBkZXRlcm1pbmEgcXXDqSBkYXRvcyB2ZXMgeSBxdcOpIGFjY2lvbmVzIHB1ZWRlcyByZWFsaXphci5cXG5cXG5QdWVkZXMgY3JlYXIgdW5hIG9yZ2FuaXphY2nDs24gbnVldmEgbyB1bmlydGUgYSB1bmEgZXhpc3RlbnRlIG1lZGlhbnRlIGludml0YWNpw7NuLicsXG4gICAgdmlld01lbWJlckN0YTogJ1ZlciBtaWVtYnJvJyxcbiAgICByb2xlVmlld2VyOiAnVmlzb3InLFxuICAgIHJvbGVFZGl0b3I6ICdFZGl0b3InLFxuICAgIHJvbGVBZG1pbjogJ0FkbWluJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluJyxcbiAgICByb2xlc1NlY3Rpb25UaXRsZTogJ1JvbGVzIHkgcGVybWlzb3MnLFxuICAgIHJvbGVzSGludDpcbiAgICAgICdUdSBvcmdhbml6YWNpw7NuIHRpZW5lIHJvbGVzIHF1ZSBjb250cm9sYW4gbG8gcXVlIGNhZGEgbWllbWJybyBwdWVkZSB2ZXIgeSBoYWNlci4gQ2FkYSByb2wgbGxldmEgdW4gY29uanVudG8gZGUgcGVybWlzb3MgYXNvY2lhZG9zLicsXG4gICAgcm9sZXNWaWV3UGVybXM6ICdWZXIgcm9sZXMgeSBwZXJtaXNvcycsXG4gICAgcm9sZXNTeXN0ZW1CYWRnZTogJ1Npc3RlbWEnLFxuICAgIHBlcm1BbGw6ICdUb2RvJyxcbiAgICBwZXJtVXNlcnM6ICdVc3VhcmlvcycsXG4gICAgcGVybURvY3VtZW50czogJ0RvY3VtZW50b3MnLFxuICAgIHBlcm1Sb2xlczogJ1JvbGVzJyxcbiAgICBwZXJtTWVkaWE6ICdNZWRpYScsXG4gICAgcGVybVRlbXBsYXRlczogJ1BsYW50aWxsYXMnLFxuICAgIHBlcm1SZWFkOiAnTGVlcicsXG4gICAgcGVybVdyaXRlOiAnRXNjcmliaXInLFxuICAgIHBlcm1DcmVhdGU6ICdDcmVhcicsXG4gICAgcGVybURlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICBwZXJtTWFuYWdlOiAnR2VzdGlvbmFyJyxcbiAgICBtZW1iZXJzU2hvd01vcmU6ICdWZXIgbcOhcycsXG4gIH0sXG4gIGVuOiB7XG4gICAgcGFnZVRpdGxlOiAnT3JnYW5pemF0aW9uJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdNYW5hZ2UgeW91ciBhY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hdGlvbicsXG4gICAgaW5mb05hbWU6ICdOYW1lJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgaW5mb1BsYW46ICdQbGFuJyxcbiAgICBpbmZvVHlwZTogJ1R5cGUnLFxuICAgIGVkaXRDdGE6ICdFZGl0JyxcbiAgICBzYXZlQ3RhOiAnU2F2ZScsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsJyxcbiAgICBtZW1iZXJzVGl0bGU6ICdNZW1iZXJzJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdObyBtZW1iZXJzIHlldC4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRlJyxcbiAgICBpbnZpdGVFbWFpbDogJ0VtYWlsIGFkZHJlc3MnLFxuICAgIGludml0ZVJvbGU6ICdSb2xlJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGUnLFxuICAgIGludml0ZVN1Y2Nlc3M6ICdJbnZpdGF0aW9uIHNlbnQuJyxcbiAgICBpbnZpdGVFcnJvcjogJ0NvdWxkIG5vdCBzZW5kIGludml0YXRpb24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdDb3VsZCBub3QgbG9hZCBtZW1iZXJzLicsXG4gICAgbGVhdmVUaXRsZTogJ0xlYXZlIG9yZ2FuaXphdGlvbicsXG4gICAgbGVhdmVIaW50OiAnWW91IHdpbGwgbG9zZSBhY2Nlc3MgdG8gdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICBsZWF2ZUN0YTogJ0xlYXZlJyxcbiAgICBsZWF2ZU93bmVySGludDogJ1lvdSBhcmUgdGhlIG93bmVyLiBUcmFuc2ZlciBvd25lcnNoaXAgYmVmb3JlIGxlYXZpbmcuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICdMZWF2ZSB0aGlzIG9yZ2FuaXphdGlvbj8nLFxuICAgIHBsYW5GcmVlOiAnRnJlZScsXG4gICAgcGxhblBybzogJ1BybycsXG4gICAgcGxhbkVudGVycHJpc2U6ICdFbnRlcnByaXNlJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphdGlvbiB1cGRhdGVkLicsXG4gICAgbGVhdmVTdWNjZXNzOiAnWW91IGhhdmUgbGVmdCB0aGUgb3JnYW5pemF0aW9uLicsXG4gICAgZXJyb3JUaXRsZTogJ0NvdWxkIG5vdCBsb2FkIG9yZ2FuaXphdGlvbicsXG4gICAgb2ZmbGluZVRpdGxlOiAnTm8gY29ubmVjdGlvbicsXG4gICAgb2ZmbGluZUhpbnQ6ICdDaGVjayB5b3VyIGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgIHJldHJ5OiAnUmV0cnknLFxuICAgIHNhdmVFcnJvcjogJ0NvdWxkIG5vdCBzYXZlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgbGVhdmVFcnJvcjogJ0NvdWxkIG5vdCBsZWF2ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIHRyYW5zZmVyVGl0bGU6ICdUcmFuc2ZlciBvd25lcnNoaXAnLFxuICAgIHRyYW5zZmVySGludDogJ0Nob29zZSBhIG1lbWJlciB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICB0cmFuc2ZlclNlbGVjdDogJ1NlbGVjdCBuZXcgb3duZXInLFxuICAgIHRyYW5zZmVyQ3RhOiAnVHJhbnNmZXInLFxuICAgIHRyYW5zZmVyQ29uZmlybTogJ1RyYW5zZmVyIG93bmVyc2hpcCB0byB0aGlzIG1lbWJlcj8gWW91IHdpbGwgbG9zZSB0aGUgb3duZXIgcm9sZS4nLFxuICAgIHRyYW5zZmVyU3VjY2VzczogJ093bmVyc2hpcCB0cmFuc2ZlcnJlZC4nLFxuICAgIHRyYW5zZmVyRXJyb3I6ICdDb3VsZCBub3QgdHJhbnNmZXIgb3duZXJzaGlwLicsXG4gICAgaW52aXRlQ3RhVGl0bGU6ICdXYW50IHRvIGFkZCBzb21lb25lPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0ZSB1c2VycyB0byBqb2luIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgaW52aXRlT3BlbjogJ0ludml0ZScsXG4gICAgaW1wb3J0T3BlbjogJ0ltcG9ydCcsXG4gICAgYXBpS2V5c09wZW46ICdNYW5hZ2UnLFxuICAgIGFwaUtleXNTZWN0aW9uVGl0bGU6ICdJbnRlZ3JhdGlvbnMgKEFQSSBLZXlzKScsXG4gICAgYXBpS2V5c1NlY3Rpb25IaW50OlxuICAgICAgJ1lvdSBjYW4gYWxzbyBvcGVyYXRlIHlvdXIgb3JnYW5pemF0aW9uIHZpYSBBUEk6IGNyZWF0ZSBhbiBvcmctc2NvcGVkIENsaWVudCBBUEkgS2V5IGZvciBtYWNoaW5lLXRvLW1hY2hpbmUgaW50ZWdyYXRpb25zIChmb3IgZXhhbXBsZSwgYnVsay1wcm92aXNpb25pbmcgbWVtYmVycyBmcm9tIHlvdXIgb3duIHN5c3RlbSkuJyxcbiAgICBhcGlLZXlzTW9yZUluZm86ICdNb3JlIGluZm9ybWF0aW9uJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnQVBJIGludGVncmF0aW9ucycsXG4gICAgYXBpS2V5c0luZm9TdWJ0aXRsZTogJ09wZXJhdGUgeW91ciBvcmdhbml6YXRpb24gbWFjaGluZS10by1tYWNoaW5lJyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6XG4gICAgICAnQW4gQVBJIEtleSBsZXRzIHlvdSBvcGVyYXRlIHlvdXIgb3JnYW5pemF0aW9uIGZyb20geW91ciBvd24gc3lzdGVtcywgd2l0aG91dCBvcGVuaW5nIHRoZSBhcHA6IHByb3Zpc2lvbiB1c2VycywgYXNzaWduIHJvbGVzLCByZWFkIGRhdGEsIGFuZCBhdXRvbWF0ZSBmbG93cy5cXG5cXG5FYWNoIGtleSBpcyBvcmctc2NvcGVkIGFuZCBjYXJyaWVzIG9ubHkgdGhlIHBlcm1pc3Npb25zIHlvdSBhc3NpZ24g4oCUIGdyYW50IHRoZSBtaW5pbXVtIG5lZWRlZC4gWW91IGNhbiByZXZva2UgaXQgYXQgYW55IHRpbWUuXFxuXFxuVGhlIHNlY3JldCBpcyBzaG93biBvbmx5IG9uY2UgYXQgY3JlYXRpb246IHN0b3JlIGl0IHNvbWV3aGVyZSBzYWZlLiBJZiB5b3UgbG9zZSBpdCwgY3JlYXRlIGEgbmV3IGtleSBhbmQgcmV2b2tlIHRoZSBvbGQgb25lLicsXG4gICAgYXBpS2V5c0luZm9DbG9zZTogJ0Nsb3NlJyxcbiAgICBvcmdzTW9yZUluZm86ICdMZWFybiBtb3JlIGFib3V0IG9yZ2FuaXphdGlvbnMnLFxuICAgIG9yZ3NJbmZvVGl0bGU6ICdXaGF0IGFyZSBvcmdhbml6YXRpb25zPycsXG4gICAgb3Jnc0luZm9TdWJ0aXRsZTogJ0V2ZXJ5dGhpbmcgeW91IG5lZWQgdG8ga25vdycsXG4gICAgb3Jnc0luZm9DbG9zZTogJ0Nsb3NlJyxcbiAgICBvcmdzSW5mb0NvbnRlbnQ6XG4gICAgICAnT3JnYW5pemF0aW9ucyBsZXQgeW91IHNlcGFyYXRlIHlvdXIgcHJvamVjdHMgYW5kIGRhdGEgYnkgY29tcGFueSwgdGVhbSwgb3IgY29udGV4dC4gWW91IGNhbiBiZWxvbmcgdG8gbXVsdGlwbGUgb3JnYW5pemF0aW9ucyBhbmQgc3dpdGNoIGJldHdlZW4gdGhlbSBhdCBhbnkgdGltZS5cXG5cXG5FYWNoIG9yZ2FuaXphdGlvbiBoYXMgaXRzIG93biBtZW1iZXJzLCByb2xlcywgYW5kIHBlcm1pc3Npb25zLiBUaGUgYWN0aXZlIG9yZ2FuaXphdGlvbiBkZXRlcm1pbmVzIHdoYXQgZGF0YSB5b3Ugc2VlIGFuZCB3aGF0IGFjdGlvbnMgeW91IGNhbiB0YWtlLlxcblxcbllvdSBjYW4gY3JlYXRlIGEgbmV3IG9yZ2FuaXphdGlvbiBvciBqb2luIGFuIGV4aXN0aW5nIG9uZSB2aWEgaW52aXRhdGlvbi4nLFxuICAgIHZpZXdNZW1iZXJDdGE6ICdWaWV3IG1lbWJlcicsXG4gICAgcm9sZVZpZXdlcjogJ1ZpZXdlcicsXG4gICAgcm9sZUVkaXRvcjogJ0VkaXRvcicsXG4gICAgcm9sZUFkbWluOiAnQWRtaW4nLFxuICAgIHJvbGVTdXBlckFkbWluOiAnU3VwZXIgQWRtaW4nLFxuICAgIHJvbGVzU2VjdGlvblRpdGxlOiAnUm9sZXMgJiBwZXJtaXNzaW9ucycsXG4gICAgcm9sZXNIaW50OlxuICAgICAgJ1lvdXIgb3JnYW5pemF0aW9uIGhhcyByb2xlcyB0aGF0IGNvbnRyb2wgd2hhdCBlYWNoIG1lbWJlciBjYW4gc2VlIGFuZCBkby4gRWFjaCByb2xlIGNhcnJpZXMgYSBzZXQgb2YgYXNzb2NpYXRlZCBwZXJtaXNzaW9ucy4nLFxuICAgIHJvbGVzVmlld1Blcm1zOiAnVmlldyByb2xlcyAmIHBlcm1pc3Npb25zJyxcbiAgICByb2xlc1N5c3RlbUJhZGdlOiAnU3lzdGVtJyxcbiAgICBwZXJtQWxsOiAnQWxsJyxcbiAgICBwZXJtVXNlcnM6ICdVc2VycycsXG4gICAgcGVybURvY3VtZW50czogJ0RvY3VtZW50cycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1NZWRpYTogJ01lZGlhJyxcbiAgICBwZXJtVGVtcGxhdGVzOiAnVGVtcGxhdGVzJyxcbiAgICBwZXJtUmVhZDogJ1JlYWQnLFxuICAgIHBlcm1Xcml0ZTogJ1dyaXRlJyxcbiAgICBwZXJtQ3JlYXRlOiAnQ3JlYXRlJyxcbiAgICBwZXJtRGVsZXRlOiAnRGVsZXRlJyxcbiAgICBwZXJtTWFuYWdlOiAnTWFuYWdlJyxcbiAgICBtZW1iZXJzU2hvd01vcmU6ICdTaG93IG1vcmUnLFxuICB9LFxufTtcbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxTQUFTLEVBQUUsYUFBYTtRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsYUFBYTtRQUM5QixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsVUFBVTtRQUN4QixZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLFlBQVksRUFBRSxxQ0FBcUM7UUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxTQUFTLEVBQUUsOENBQThDO1FBQ3pELFFBQVEsRUFBRSxPQUFPO1FBQ2pCLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsWUFBWSxF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QixFQUFFLFFBQVE7UUFDMUIsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsT0FBTztRQUNsQixhQUFhLEVBQUUsV0FBVztRQUMxQixTQUFTLEVBQUUsT0FBTztRQUNsQixTQUFTLEVBQUUsT0FBTztRQUNsQixhQUFhLEVBQUUsV0FBVztRQUMxQixRQUFRLEVBQUUsTUFBTTtRQUNoQixTQUFTLEVBQUUsT0FBTztRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixlQUFlLEVBQUUsV0FBVztLQUM3QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIGVtYmViaWRvcyBlbiBgdmFsLW9yZ2FuaXphdGlvbi12aWV3YC4gQXV0by1yZWdpc3RyYWRvcyBlblxuICogZWwgY29uc3RydWN0b3IgZGVsIGNvbXBvbmVudGUgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWwgbmFtZXNwYWNlXG4gKiAoYFNldHRpbmdzLk9yZ2FuaXphdGlvbmAgcG9yIGRlZmF1bHQpLiBTT0xPIGluY2x1eWUgbGFzIGtleXMgcXVlIGxhIHZpc3RhIHVzYS5cbiAqXG4gKiBQb3J0YWRvIGRlIGBPUkdfSTE4Tl9DT05URU5UYCAoc2hvd2Nhc2UpIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICovXG5leHBvcnQgY29uc3QgT1JHQU5JWkFUSU9OX1ZJRVdfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBwYWdlVGl0bGU6ICdPcmdhbml6YWNpw7NuJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdHZXN0aW9uYSB0dSBvcmdhbml6YWNpw7NuIGFjdGl2YScsXG4gICAgaW5mb1RpdGxlOiAnSW5mb3JtYWNpw7NuJyxcbiAgICBpbmZvTmFtZTogJ05vbWJyZScsXG4gICAgaW5mb0Rlc2NyaXB0aW9uOiAnRGVzY3JpcGNpw7NuJyxcbiAgICBpbmZvUGxhbjogJ1BsYW4nLFxuICAgIGluZm9UeXBlOiAnVGlwbycsXG4gICAgZWRpdEN0YTogJ0VkaXRhcicsXG4gICAgc2F2ZUN0YTogJ0d1YXJkYXInLFxuICAgIGNhbmNlbEN0YTogJ0NhbmNlbGFyJyxcbiAgICBtZW1iZXJzVGl0bGU6ICdNaWVtYnJvcycsXG4gICAgbWVtYmVyc0VtcHR5OiAnU2luIG1pZW1icm9zIGHDum4uJyxcbiAgICBtZW1iZXJSb2xlczogJ1JvbGVzJyxcbiAgICBpbnZpdGVUaXRsZTogJ0ludml0YXInLFxuICAgIGludml0ZUVtYWlsOiAnQ29ycmVvIGVsZWN0csOzbmljbycsXG4gICAgaW52aXRlUm9sZTogJ1JvbCcsXG4gICAgaW52aXRlQ3RhOiAnSW52aXRhcicsXG4gICAgaW52aXRlU3VjY2VzczogJ0ludml0YWNpw7NuIGVudmlhZGEuJyxcbiAgICBpbnZpdGVFcnJvcjogJ05vIHNlIHB1ZG8gZW52aWFyIGxhIGludml0YWNpw7NuLicsXG4gICAgbWVtYmVyc0Vycm9yOiAnTm8gc2UgcHVkaWVyb24gY2FyZ2FyIGxvcyBtaWVtYnJvcy4nLFxuICAgIGxlYXZlVGl0bGU6ICdTYWxpciBkZSBsYSBvcmdhbml6YWNpw7NuJyxcbiAgICBsZWF2ZUhpbnQ6ICdEZWphcsOhcyBkZSB0ZW5lciBhY2Nlc28gYSBlc3RhIG9yZ2FuaXphY2nDs24uJyxcbiAgICBsZWF2ZUN0YTogJ1NhbGlyJyxcbiAgICBsZWF2ZU93bmVySGludDogJ0VyZXMgZWwgcHJvcGlldGFyaW8uIFRyYW5zZmllcmUgbGEgcHJvcGllZGFkIGFudGVzIGRlIHNhbGlyLicsXG4gICAgbGVhdmVDb25maXJtOiAnwr9TYWxpciBkZSBsYSBvcmdhbml6YWNpw7NuPycsXG4gICAgcGxhbkZyZWU6ICdHcmF0dWl0bycsXG4gICAgcGxhblBybzogJ1BybycsXG4gICAgcGxhbkVudGVycHJpc2U6ICdFbXByZXNhJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphY2nDs24gYWN0dWFsaXphZGEuJyxcbiAgICBsZWF2ZVN1Y2Nlc3M6ICdIYXMgc2FsaWRvIGRlIGxhIG9yZ2FuaXphY2nDs24uJyxcbiAgICBlcnJvclRpdGxlOiAnTm8gc2UgcHVkbyBjYXJnYXIgbGEgb3JnYW5pemFjacOzbicsXG4gICAgb2ZmbGluZVRpdGxlOiAnU2luIGNvbmV4acOzbicsXG4gICAgb2ZmbGluZUhpbnQ6ICdWZXJpZmljYSB0dSBjb25leGnDs24gZSBpbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgcmV0cnk6ICdSZWludGVudGFyJyxcbiAgICBzYXZlRXJyb3I6ICdObyBzZSBwdWRvIGd1YXJkYXIuIEludGVudGEgZGUgbnVldm8uJyxcbiAgICBsZWF2ZUVycm9yOiAnTm8gc2UgcHVkbyBzYWxpci4gSW50ZW50YSBkZSBudWV2by4nLFxuICAgIHRyYW5zZmVyVGl0bGU6ICdUcmFuc2ZlcmlyIHByb3BpZWRhZCcsXG4gICAgdHJhbnNmZXJIaW50OiAnRWxpZ2UgdW4gbWllbWJybyBwYXJhIHRyYW5zZmVyaXJsZSBsYSBwcm9waWVkYWQgZGUgbGEgb3JnYW5pemFjacOzbi4nLFxuICAgIHRyYW5zZmVyU2VsZWN0OiAnU2VsZWNjaW9uYXIgbnVldm8gcHJvcGlldGFyaW8nLFxuICAgIHRyYW5zZmVyQ3RhOiAnVHJhbnNmZXJpcicsXG4gICAgdHJhbnNmZXJDb25maXJtOiAnwr9UcmFuc2ZlcmlyIGxhIHByb3BpZWRhZCBhIGVzdGUgbWllbWJybz8gUGVyZGVyw6FzIGVsIHJvbCBkZSBwcm9waWV0YXJpby4nLFxuICAgIHRyYW5zZmVyU3VjY2VzczogJ1Byb3BpZWRhZCB0cmFuc2ZlcmlkYS4nLFxuICAgIHRyYW5zZmVyRXJyb3I6ICdObyBzZSBwdWRvIHRyYW5zZmVyaXIgbGEgcHJvcGllZGFkLicsXG4gICAgaW52aXRlQ3RhVGl0bGU6ICfCv0Rlc2VhcyBhZ3JlZ2FyIGEgYWxndWllbj8nLFxuICAgIGludml0ZUN0YUhpbnQ6ICdJbnZpdGEgYSB1c3VhcmlvcyBhIHVuaXJzZSBhIHR1IG9yZ2FuaXphY2nDs24uJyxcbiAgICBpbnZpdGVPcGVuOiAnSW52aXRhcicsXG4gICAgaW1wb3J0T3BlbjogJ0ltcG9ydGFyJyxcbiAgICBhcGlLZXlzT3BlbjogJ0dlc3Rpb25hcicsXG4gICAgYXBpS2V5c1NlY3Rpb25UaXRsZTogJ0ludGVncmFjaW9uZXMgKEFQSSBLZXlzKScsXG4gICAgYXBpS2V5c1NlY3Rpb25IaW50OiAnQ29uZWN0YSB0dXMgc2lzdGVtYXMgZXh0ZXJub3MgYSBlc3RhIG9yZ2FuaXphY2nDs24gdsOtYSBBUEkgS2V5LicsXG4gICAgYXBpS2V5c01vcmVJbmZvOiAnTcOhcyBpbmZvcm1hY2nDs24nLFxuICAgIGFwaUtleXNJbmZvVGl0bGU6ICdJbnRlZ3JhY2lvbmVzIHBvciBBUEknLFxuICAgIGFwaUtleXNJbmZvU3VidGl0bGU6ICfCv1F1w6kgcHVlZGVzIGhhY2VyIGNvbiB1bmEgQVBJIEtleT8nLFxuICAgIGFwaUtleXNJbmZvQ29udGVudDpcbiAgICAgICdVbmEgQVBJIEtleSB0ZSBwZXJtaXRlIGF1dG9tYXRpemFyIG9wZXJhY2lvbmVzIGVuIHR1IG9yZ2FuaXphY2nDs24gZGVzZGUgdHVzIHByb3Bpb3Mgc2lzdGVtYXMsIHNpbiBhYnJpciBsYSBhcHAuIEVzIGlkZWFsIHBhcmEgaW50ZWdyYWNpb25lcyBtw6FxdWluYS1hLW3DoXF1aW5hOiBzaW5jcm9uaXphciB1c3VhcmlvcyBkZXNkZSB0dSBFUlAsIGFzaWduYXIgcm9sZXMgZW4gbWFzYSBvIGNvbnN1bHRhciBkYXRvcyBkZXNkZSB0dXMgcmVwb3J0ZXMgaW50ZXJub3MuXFxuXFxuQ29uIHVuYSBrZXkgcHVlZGVzIGRhciBkZSBhbHRhIHkgZ2VzdGlvbmFyIG1pZW1icm9zLCBhc2lnbmFyIHJvbGVzIHkgcGVybWlzb3MsIGxlZXIgZGF0b3MgZGUgbGEgb3JnYW5pemFjacOzbiB5IGNvbmVjdGFyIGZsdWpvcyBkZSB0cmFiYWpvIGV4aXN0ZW50ZXMuXFxuXFxuQ2FkYSBrZXkgbGxldmEgc29sbyBsb3MgcGVybWlzb3MgcXVlIHTDuiBsZSBhc2lnbmVzIOKAlCBjb25jZWRlIGVsIG3DrW5pbW8gbmVjZXNhcmlvIHkgcmV2w7NjYWxhIGVuIGN1YWxxdWllciBtb21lbnRvIGRlc2RlIGxhIHNlY2Npw7NuIEludGVncmFjaW9uZXMuXFxuXFxuSW1wb3J0YW50ZTogZWwgc2VjcmV0byBzZSBtdWVzdHJhIHVuYSBzb2xhIHZleiBhbCBjcmVhciBsYSBrZXkuIEd1w6FyZGFsbyBlbiB1biBsdWdhciBzZWd1cm8gKGdlc3RvciBkZSBzZWNyZXRvcywgdmFyaWFibGUgZGUgZW50b3JubykuIFNpIGxvIHBpZXJkZXMsIGdlbmVyYSB1bmEgbnVldmEga2V5IHkgcmV2b2NhIGxhIGFudGVyaW9yLicsXG4gICAgYXBpS2V5c0luZm9DbG9zZTogJ0NlcnJhcicsXG4gICAgb3Jnc01vcmVJbmZvOiAnQXByZW5kZXIgbcOhcyBzb2JyZSBvcmdhbml6YWNpb25lcycsXG4gICAgb3Jnc0luZm9UaXRsZTogJ8K/UXXDqSBzb24gbGFzIG9yZ2FuaXphY2lvbmVzPycsXG4gICAgb3Jnc0luZm9TdWJ0aXRsZTogJ1RvZG8gbG8gcXVlIG5lY2VzaXRhcyBzYWJlcicsXG4gICAgb3Jnc0luZm9DbG9zZTogJ0NlcnJhcicsXG4gICAgb3Jnc0luZm9Db250ZW50OlxuICAgICAgJ0xhcyBvcmdhbml6YWNpb25lcyB0ZSBwZXJtaXRlbiBzZXBhcmFyIHR1cyBwcm95ZWN0b3MgeSBkYXRvcyBwb3IgZW1wcmVzYSwgZXF1aXBvIG8gY29udGV4dG8uIFB1ZWRlcyBwZXJ0ZW5lY2VyIGEgdmFyaWFzIG9yZ2FuaXphY2lvbmVzIHkgY2FtYmlhciBlbnRyZSBlbGxhcyBlbiBjdWFscXVpZXIgbW9tZW50by5cXG5cXG5DYWRhIG9yZ2FuaXphY2nDs24gdGllbmUgc3VzIHByb3Bpb3MgbWllbWJyb3MsIHJvbGVzIHkgcGVybWlzb3MuIExhIG9yZ2FuaXphY2nDs24gYWN0aXZhIGRldGVybWluYSBxdcOpIGRhdG9zIHZlcyB5IHF1w6kgYWNjaW9uZXMgcHVlZGVzIHJlYWxpemFyLlxcblxcblB1ZWRlcyBjcmVhciB1bmEgb3JnYW5pemFjacOzbiBudWV2YSBvIHVuaXJ0ZSBhIHVuYSBleGlzdGVudGUgbWVkaWFudGUgaW52aXRhY2nDs24uJyxcbiAgICB2aWV3TWVtYmVyQ3RhOiAnVmVyIG1pZW1icm8nLFxuICAgIHJvbGVWaWV3ZXI6ICdWaXNvcicsXG4gICAgcm9sZUVkaXRvcjogJ0VkaXRvcicsXG4gICAgcm9sZUFkbWluOiAnQWRtaW4nLFxuICAgIHJvbGVTdXBlckFkbWluOiAnU3VwZXIgQWRtaW4nLFxuICAgIHJvbGVzU2VjdGlvblRpdGxlOiAnUm9sZXMgeSBwZXJtaXNvcycsXG4gICAgcm9sZXNIaW50OlxuICAgICAgJ1R1IG9yZ2FuaXphY2nDs24gdGllbmUgcm9sZXMgcXVlIGNvbnRyb2xhbiBsbyBxdWUgY2FkYSBtaWVtYnJvIHB1ZWRlIHZlciB5IGhhY2VyLiBDYWRhIHJvbCBsbGV2YSB1biBjb25qdW50byBkZSBwZXJtaXNvcyBhc29jaWFkb3MuJyxcbiAgICByb2xlc1ZpZXdQZXJtczogJ1ZlciByb2xlcyB5IHBlcm1pc29zJyxcbiAgICByb2xlc1N5c3RlbUJhZGdlOiAnU2lzdGVtYScsXG4gICAgcGVybUFsbDogJ1RvZG8nLFxuICAgIHBlcm1Vc2VyczogJ1VzdWFyaW9zJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRvcycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1NZWRpYTogJ01lZGlhJyxcbiAgICBwZXJtVGVtcGxhdGVzOiAnUGxhbnRpbGxhcycsXG4gICAgcGVybVJlYWQ6ICdMZWVyJyxcbiAgICBwZXJtV3JpdGU6ICdFc2NyaWJpcicsXG4gICAgcGVybUNyZWF0ZTogJ0NyZWFyJyxcbiAgICBwZXJtRGVsZXRlOiAnRWxpbWluYXInLFxuICAgIHBlcm1NYW5hZ2U6ICdHZXN0aW9uYXInLFxuICAgIG1lbWJlcnNTaG93TW9yZTogJ1ZlciBtw6FzJyxcbiAgfSxcbiAgZW46IHtcbiAgICBwYWdlVGl0bGU6ICdPcmdhbml6YXRpb24nLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ01hbmFnZSB5b3VyIGFjdGl2ZSBvcmdhbml6YXRpb24nLFxuICAgIGluZm9UaXRsZTogJ0luZm9ybWF0aW9uJyxcbiAgICBpbmZvTmFtZTogJ05hbWUnLFxuICAgIGluZm9EZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICBpbmZvUGxhbjogJ1BsYW4nLFxuICAgIGluZm9UeXBlOiAnVHlwZScsXG4gICAgZWRpdEN0YTogJ0VkaXQnLFxuICAgIHNhdmVDdGE6ICdTYXZlJyxcbiAgICBjYW5jZWxDdGE6ICdDYW5jZWwnLFxuICAgIG1lbWJlcnNUaXRsZTogJ01lbWJlcnMnLFxuICAgIG1lbWJlcnNFbXB0eTogJ05vIG1lbWJlcnMgeWV0LicsXG4gICAgbWVtYmVyUm9sZXM6ICdSb2xlcycsXG4gICAgaW52aXRlVGl0bGU6ICdJbnZpdGUnLFxuICAgIGludml0ZUVtYWlsOiAnRW1haWwgYWRkcmVzcycsXG4gICAgaW52aXRlUm9sZTogJ1JvbGUnLFxuICAgIGludml0ZUN0YTogJ0ludml0ZScsXG4gICAgaW52aXRlU3VjY2VzczogJ0ludml0YXRpb24gc2VudC4nLFxuICAgIGludml0ZUVycm9yOiAnQ291bGQgbm90IHNlbmQgaW52aXRhdGlvbi4nLFxuICAgIG1lbWJlcnNFcnJvcjogJ0NvdWxkIG5vdCBsb2FkIG1lbWJlcnMuJyxcbiAgICBsZWF2ZVRpdGxlOiAnTGVhdmUgb3JnYW5pemF0aW9uJyxcbiAgICBsZWF2ZUhpbnQ6ICdZb3Ugd2lsbCBsb3NlIGFjY2VzcyB0byB0aGlzIG9yZ2FuaXphdGlvbi4nLFxuICAgIGxlYXZlQ3RhOiAnTGVhdmUnLFxuICAgIGxlYXZlT3duZXJIaW50OiAnWW91IGFyZSB0aGUgb3duZXIuIFRyYW5zZmVyIG93bmVyc2hpcCBiZWZvcmUgbGVhdmluZy4nLFxuICAgIGxlYXZlQ29uZmlybTogJ0xlYXZlIHRoaXMgb3JnYW5pemF0aW9uPycsXG4gICAgcGxhbkZyZWU6ICdGcmVlJyxcbiAgICBwbGFuUHJvOiAnUHJvJyxcbiAgICBwbGFuRW50ZXJwcmlzZTogJ0VudGVycHJpc2UnLFxuICAgIHNhdmVTdWNjZXNzOiAnT3JnYW5pemF0aW9uIHVwZGF0ZWQuJyxcbiAgICBsZWF2ZVN1Y2Nlc3M6ICdZb3UgaGF2ZSBsZWZ0IHRoZSBvcmdhbml6YXRpb24uJyxcbiAgICBlcnJvclRpdGxlOiAnQ291bGQgbm90IGxvYWQgb3JnYW5pemF0aW9uJyxcbiAgICBvZmZsaW5lVGl0bGU6ICdObyBjb25uZWN0aW9uJyxcbiAgICBvZmZsaW5lSGludDogJ0NoZWNrIHlvdXIgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluLicsXG4gICAgcmV0cnk6ICdSZXRyeScsXG4gICAgc2F2ZUVycm9yOiAnQ291bGQgbm90IHNhdmUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICBsZWF2ZUVycm9yOiAnQ291bGQgbm90IGxlYXZlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgdHJhbnNmZXJUaXRsZTogJ1RyYW5zZmVyIG93bmVyc2hpcCcsXG4gICAgdHJhbnNmZXJIaW50OiAnQ2hvb3NlIGEgbWVtYmVyIHRvIHRyYW5zZmVyIG93bmVyc2hpcCBvZiB0aGlzIG9yZ2FuaXphdGlvbi4nLFxuICAgIHRyYW5zZmVyU2VsZWN0OiAnU2VsZWN0IG5ldyBvd25lcicsXG4gICAgdHJhbnNmZXJDdGE6ICdUcmFuc2ZlcicsXG4gICAgdHJhbnNmZXJDb25maXJtOiAnVHJhbnNmZXIgb3duZXJzaGlwIHRvIHRoaXMgbWVtYmVyPyBZb3Ugd2lsbCBsb3NlIHRoZSBvd25lciByb2xlLicsXG4gICAgdHJhbnNmZXJTdWNjZXNzOiAnT3duZXJzaGlwIHRyYW5zZmVycmVkLicsXG4gICAgdHJhbnNmZXJFcnJvcjogJ0NvdWxkIG5vdCB0cmFuc2ZlciBvd25lcnNoaXAuJyxcbiAgICBpbnZpdGVDdGFUaXRsZTogJ1dhbnQgdG8gYWRkIHNvbWVvbmU/JyxcbiAgICBpbnZpdGVDdGFIaW50OiAnSW52aXRlIHVzZXJzIHRvIGpvaW4geW91ciBvcmdhbml6YXRpb24uJyxcbiAgICBpbnZpdGVPcGVuOiAnSW52aXRlJyxcbiAgICBpbXBvcnRPcGVuOiAnSW1wb3J0JyxcbiAgICBhcGlLZXlzT3BlbjogJ01hbmFnZScsXG4gICAgYXBpS2V5c1NlY3Rpb25UaXRsZTogJ0ludGVncmF0aW9ucyAoQVBJIEtleXMpJyxcbiAgICBhcGlLZXlzU2VjdGlvbkhpbnQ6ICdDb25uZWN0IHlvdXIgZXh0ZXJuYWwgc3lzdGVtcyB0byB0aGlzIG9yZ2FuaXphdGlvbiB2aWEgQVBJIEtleS4nLFxuICAgIGFwaUtleXNNb3JlSW5mbzogJ01vcmUgaW5mb3JtYXRpb24nLFxuICAgIGFwaUtleXNJbmZvVGl0bGU6ICdBUEkgaW50ZWdyYXRpb25zJyxcbiAgICBhcGlLZXlzSW5mb1N1YnRpdGxlOiAnV2hhdCBjYW4geW91IGRvIHdpdGggYW4gQVBJIEtleT8nLFxuICAgIGFwaUtleXNJbmZvQ29udGVudDpcbiAgICAgICdBbiBBUEkgS2V5IGxldHMgeW91IGF1dG9tYXRlIG9wZXJhdGlvbnMgaW4geW91ciBvcmdhbml6YXRpb24gZnJvbSB5b3VyIG93biBzeXN0ZW1zLCB3aXRob3V0IG9wZW5pbmcgdGhlIGFwcC4gSXQgaXMgaWRlYWwgZm9yIG1hY2hpbmUtdG8tbWFjaGluZSBpbnRlZ3JhdGlvbnM6IHN5bmMgdXNlcnMgZnJvbSB5b3VyIEVSUCwgYnVsay1hc3NpZ24gcm9sZXMsIG9yIHF1ZXJ5IGRhdGEgZm9yIHlvdXIgaW50ZXJuYWwgcmVwb3J0cy5cXG5cXG5XaXRoIGEga2V5IHlvdSBjYW4gcHJvdmlzaW9uIGFuZCBtYW5hZ2UgbWVtYmVycywgYXNzaWduIHJvbGVzIGFuZCBwZXJtaXNzaW9ucywgcmVhZCBvcmdhbml6YXRpb24gZGF0YSwgYW5kIGNvbm5lY3QgZXhpc3Rpbmcgd29ya2Zsb3dzLlxcblxcbkVhY2gga2V5IGNhcnJpZXMgb25seSB0aGUgcGVybWlzc2lvbnMgeW91IGFzc2lnbiDigJQgZ3JhbnQgdGhlIG1pbmltdW0gbmVlZGVkIGFuZCByZXZva2UgaXQgYXQgYW55IHRpbWUgZnJvbSB0aGUgSW50ZWdyYXRpb25zIHNlY3Rpb24uXFxuXFxuSW1wb3J0YW50OiB0aGUgc2VjcmV0IGlzIHNob3duIG9ubHkgb25jZSB3aGVuIHRoZSBrZXkgaXMgY3JlYXRlZC4gU3RvcmUgaXQgc29tZXdoZXJlIHNhZmUgKHNlY3JldCBtYW5hZ2VyLCBlbnZpcm9ubWVudCB2YXJpYWJsZSkuIElmIHlvdSBsb3NlIGl0LCBjcmVhdGUgYSBuZXcga2V5IGFuZCByZXZva2UgdGhlIG9sZCBvbmUuJyxcbiAgICBhcGlLZXlzSW5mb0Nsb3NlOiAnQ2xvc2UnLFxuICAgIG9yZ3NNb3JlSW5mbzogJ0xlYXJuIG1vcmUgYWJvdXQgb3JnYW5pemF0aW9ucycsXG4gICAgb3Jnc0luZm9UaXRsZTogJ1doYXQgYXJlIG9yZ2FuaXphdGlvbnM/JyxcbiAgICBvcmdzSW5mb1N1YnRpdGxlOiAnRXZlcnl0aGluZyB5b3UgbmVlZCB0byBrbm93JyxcbiAgICBvcmdzSW5mb0Nsb3NlOiAnQ2xvc2UnLFxuICAgIG9yZ3NJbmZvQ29udGVudDpcbiAgICAgICdPcmdhbml6YXRpb25zIGxldCB5b3Ugc2VwYXJhdGUgeW91ciBwcm9qZWN0cyBhbmQgZGF0YSBieSBjb21wYW55LCB0ZWFtLCBvciBjb250ZXh0LiBZb3UgY2FuIGJlbG9uZyB0byBtdWx0aXBsZSBvcmdhbml6YXRpb25zIGFuZCBzd2l0Y2ggYmV0d2VlbiB0aGVtIGF0IGFueSB0aW1lLlxcblxcbkVhY2ggb3JnYW5pemF0aW9uIGhhcyBpdHMgb3duIG1lbWJlcnMsIHJvbGVzLCBhbmQgcGVybWlzc2lvbnMuIFRoZSBhY3RpdmUgb3JnYW5pemF0aW9uIGRldGVybWluZXMgd2hhdCBkYXRhIHlvdSBzZWUgYW5kIHdoYXQgYWN0aW9ucyB5b3UgY2FuIHRha2UuXFxuXFxuWW91IGNhbiBjcmVhdGUgYSBuZXcgb3JnYW5pemF0aW9uIG9yIGpvaW4gYW4gZXhpc3Rpbmcgb25lIHZpYSBpbnZpdGF0aW9uLicsXG4gICAgdmlld01lbWJlckN0YTogJ1ZpZXcgbWVtYmVyJyxcbiAgICByb2xlVmlld2VyOiAnVmlld2VyJyxcbiAgICByb2xlRWRpdG9yOiAnRWRpdG9yJyxcbiAgICByb2xlQWRtaW46ICdBZG1pbicsXG4gICAgcm9sZVN1cGVyQWRtaW46ICdTdXBlciBBZG1pbicsXG4gICAgcm9sZXNTZWN0aW9uVGl0bGU6ICdSb2xlcyAmIHBlcm1pc3Npb25zJyxcbiAgICByb2xlc0hpbnQ6XG4gICAgICAnWW91ciBvcmdhbml6YXRpb24gaGFzIHJvbGVzIHRoYXQgY29udHJvbCB3aGF0IGVhY2ggbWVtYmVyIGNhbiBzZWUgYW5kIGRvLiBFYWNoIHJvbGUgY2FycmllcyBhIHNldCBvZiBhc3NvY2lhdGVkIHBlcm1pc3Npb25zLicsXG4gICAgcm9sZXNWaWV3UGVybXM6ICdWaWV3IHJvbGVzICYgcGVybWlzc2lvbnMnLFxuICAgIHJvbGVzU3lzdGVtQmFkZ2U6ICdTeXN0ZW0nLFxuICAgIHBlcm1BbGw6ICdBbGwnLFxuICAgIHBlcm1Vc2VyczogJ1VzZXJzJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRzJyxcbiAgICBwZXJtUm9sZXM6ICdSb2xlcycsXG4gICAgcGVybU1lZGlhOiAnTWVkaWEnLFxuICAgIHBlcm1UZW1wbGF0ZXM6ICdUZW1wbGF0ZXMnLFxuICAgIHBlcm1SZWFkOiAnUmVhZCcsXG4gICAgcGVybVdyaXRlOiAnV3JpdGUnLFxuICAgIHBlcm1DcmVhdGU6ICdDcmVhdGUnLFxuICAgIHBlcm1EZWxldGU6ICdEZWxldGUnLFxuICAgIHBlcm1NYW5hZ2U6ICdNYW5hZ2UnLFxuICAgIG1lbWJlcnNTaG93TW9yZTogJ1Nob3cgbW9yZScsXG4gIH0sXG59O1xuIl19
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, inject, signal, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IonButton, IonIcon, IonSelect, IonSelectOption, IonSpinner } from '@ionic/angular/standalone';
|
|
4
|
+
import { addIcons } from 'ionicons';
|
|
5
|
+
import { cameraOutline, stopCircleOutline, videocamOffOutline, warningOutline } from 'ionicons/icons';
|
|
6
|
+
import { BrowserMultiFormatReader } from '@zxing/browser';
|
|
7
|
+
import { I18nService } from '../../../services/i18n';
|
|
8
|
+
import { QR_SCANNER_I18N } from './qr-scanner.i18n';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
addIcons({
|
|
11
|
+
cameraOutline,
|
|
12
|
+
stopCircleOutline,
|
|
13
|
+
videocamOffOutline,
|
|
14
|
+
warningOutline,
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* val-qr-scanner
|
|
18
|
+
*
|
|
19
|
+
* Organism: scanner de códigos QR por cámara (`@zxing/browser` +
|
|
20
|
+
* `@zxing/library`). Emite el texto decodificado por `(scanned)`.
|
|
21
|
+
*
|
|
22
|
+
* Maneja: permiso de cámara denegado (`denied`), ausencia de cámara
|
|
23
|
+
* (`no-camera`), selector cuando hay varias cámaras, y botón start/stop. Hace
|
|
24
|
+
* cleanup del stream en `ngOnDestroy`. i18n auto-registrado (namespace
|
|
25
|
+
* `QrScanner`).
|
|
26
|
+
*
|
|
27
|
+
* Object-first (`@Input() props`) + un único `@Output() scanned`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```html
|
|
31
|
+
* <val-qr-scanner [props]="{ continuous: true }" (scanned)="onScan($event)" />
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class QrScannerComponent {
|
|
35
|
+
constructor() {
|
|
36
|
+
this.props = {};
|
|
37
|
+
/** Emite el texto decodificado del QR. */
|
|
38
|
+
this.scanned = new EventEmitter();
|
|
39
|
+
this.i18n = inject(I18nService);
|
|
40
|
+
this.state = signal('idle');
|
|
41
|
+
this.devices = signal([]);
|
|
42
|
+
this.activeDeviceId = signal(undefined);
|
|
43
|
+
this.reader = null;
|
|
44
|
+
this.controls = null;
|
|
45
|
+
// Anti-rebote: ignora la misma lectura repetida dentro de `dedupeMs`.
|
|
46
|
+
this.lastValue = '';
|
|
47
|
+
this.lastAt = 0;
|
|
48
|
+
this.viewReady = false;
|
|
49
|
+
if (!this.i18n.hasNamespace('QrScanner')) {
|
|
50
|
+
this.i18n.registerContent('QrScanner', QR_SCANNER_I18N);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
ngAfterViewInit() {
|
|
54
|
+
this.viewReady = true;
|
|
55
|
+
if (this.props.autoStart) {
|
|
56
|
+
void this.start();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
ngOnDestroy() {
|
|
60
|
+
this.teardown();
|
|
61
|
+
}
|
|
62
|
+
t(key) {
|
|
63
|
+
return this.i18n.t(key, 'QrScanner');
|
|
64
|
+
}
|
|
65
|
+
stateMessage() {
|
|
66
|
+
switch (this.state()) {
|
|
67
|
+
case 'denied':
|
|
68
|
+
return this.t('denied');
|
|
69
|
+
case 'no-camera':
|
|
70
|
+
return this.t('noCamera');
|
|
71
|
+
default:
|
|
72
|
+
return this.t('error');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
deviceLabel(d) {
|
|
76
|
+
return d.label || `${this.t('cameraLabel')} ${this.devices().indexOf(d) + 1}`;
|
|
77
|
+
}
|
|
78
|
+
async start(deviceId) {
|
|
79
|
+
if (!this.viewReady)
|
|
80
|
+
return;
|
|
81
|
+
this.teardown();
|
|
82
|
+
this.state.set('starting');
|
|
83
|
+
try {
|
|
84
|
+
this.reader = new BrowserMultiFormatReader();
|
|
85
|
+
// Enumerar cámaras. Algunos navegadores solo dan labels tras conceder
|
|
86
|
+
// permiso, así que esto puede devolver labels vacíos la 1ª vez.
|
|
87
|
+
let cams = [];
|
|
88
|
+
try {
|
|
89
|
+
cams = await BrowserMultiFormatReader.listVideoInputDevices();
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
cams = [];
|
|
93
|
+
}
|
|
94
|
+
this.devices.set(cams);
|
|
95
|
+
// Preferir la trasera (environment) si el label lo sugiere.
|
|
96
|
+
const target = deviceId ||
|
|
97
|
+
this.activeDeviceId() ||
|
|
98
|
+
cams.find(c => /back|rear|environment|trasera/i.test(c.label))?.deviceId ||
|
|
99
|
+
cams[0]?.deviceId;
|
|
100
|
+
this.activeDeviceId.set(target);
|
|
101
|
+
this.controls = await this.reader.decodeFromVideoDevice(target, this.videoRef.nativeElement, result => {
|
|
102
|
+
if (result) {
|
|
103
|
+
this.handleResult(result.getText());
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
this.state.set('scanning');
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
this.handleStartError(err);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
stop() {
|
|
113
|
+
this.teardown();
|
|
114
|
+
this.state.set('idle');
|
|
115
|
+
}
|
|
116
|
+
async onSelectDevice(deviceId) {
|
|
117
|
+
if (deviceId && deviceId !== this.activeDeviceId()) {
|
|
118
|
+
await this.start(deviceId);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
handleResult(text) {
|
|
122
|
+
const now = Date.now();
|
|
123
|
+
const dedupe = this.props.dedupeMs ?? 1500;
|
|
124
|
+
if (text === this.lastValue && now - this.lastAt < dedupe) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
this.lastValue = text;
|
|
128
|
+
this.lastAt = now;
|
|
129
|
+
this.scanned.emit(text);
|
|
130
|
+
// Modo no continuo: detener tras el primer match (la página reanuda si
|
|
131
|
+
// quiere). `continuous` default true → seguir escaneando.
|
|
132
|
+
if (this.props.continuous === false) {
|
|
133
|
+
this.stop();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
handleStartError(err) {
|
|
137
|
+
const name = err?.name ?? '';
|
|
138
|
+
if (name === 'NotAllowedError' || name === 'SecurityError') {
|
|
139
|
+
this.state.set('denied');
|
|
140
|
+
}
|
|
141
|
+
else if (name === 'NotFoundError' || name === 'OverconstrainedError') {
|
|
142
|
+
this.state.set('no-camera');
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.state.set('error');
|
|
146
|
+
}
|
|
147
|
+
this.teardown(false);
|
|
148
|
+
}
|
|
149
|
+
/** Detiene el decode + libera el stream de la cámara. */
|
|
150
|
+
teardown(resetState = true) {
|
|
151
|
+
try {
|
|
152
|
+
this.controls?.stop();
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// ignore
|
|
156
|
+
}
|
|
157
|
+
this.controls = null;
|
|
158
|
+
const video = this.videoRef?.nativeElement;
|
|
159
|
+
const stream = video?.srcObject;
|
|
160
|
+
if (stream) {
|
|
161
|
+
stream.getTracks().forEach(track => track.stop());
|
|
162
|
+
video.srcObject = null;
|
|
163
|
+
}
|
|
164
|
+
this.reader = null;
|
|
165
|
+
if (resetState) {
|
|
166
|
+
this.lastValue = '';
|
|
167
|
+
this.lastAt = 0;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QrScannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: QrScannerComponent, isStandalone: true, selector: "val-qr-scanner", inputs: { props: "props" }, outputs: { scanned: "scanned" }, viewQueries: [{ propertyName: "videoRef", first: true, predicate: ["video"], descendants: true }], ngImport: i0, template: `
|
|
172
|
+
<div class="qr-scanner">
|
|
173
|
+
<div class="qr-scanner__viewport" [class.is-active]="state() === 'scanning'">
|
|
174
|
+
<video #video class="qr-scanner__video" muted playsinline></video>
|
|
175
|
+
|
|
176
|
+
@if (state() === 'idle') {
|
|
177
|
+
<div class="qr-scanner__overlay">
|
|
178
|
+
<ion-icon name="camera-outline" class="qr-scanner__overlay-icon" />
|
|
179
|
+
</div>
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
@if (state() === 'starting') {
|
|
183
|
+
<div class="qr-scanner__overlay">
|
|
184
|
+
<ion-spinner name="crescent" />
|
|
185
|
+
<p>{{ t('starting') }}</p>
|
|
186
|
+
</div>
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@if (state() === 'scanning') {
|
|
190
|
+
<div class="qr-scanner__frame"></div>
|
|
191
|
+
}
|
|
192
|
+
</div>
|
|
193
|
+
|
|
194
|
+
@if (state() === 'denied' || state() === 'no-camera' || state() === 'error') {
|
|
195
|
+
<div class="qr-scanner__message">
|
|
196
|
+
<ion-icon [name]="state() === 'no-camera' ? 'videocam-off-outline' : 'warning-outline'" />
|
|
197
|
+
<span>{{ stateMessage() }}</span>
|
|
198
|
+
</div>
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
@if (state() === 'scanning' || state() === 'starting') {
|
|
202
|
+
<p class="qr-scanner__hint">{{ t('hint') }}</p>
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@if (devices().length > 1 && state() === 'scanning') {
|
|
206
|
+
<ion-select
|
|
207
|
+
class="qr-scanner__select"
|
|
208
|
+
[label]="t('cameraLabel')"
|
|
209
|
+
labelPlacement="stacked"
|
|
210
|
+
interface="popover"
|
|
211
|
+
[value]="activeDeviceId()"
|
|
212
|
+
(ionChange)="onSelectDevice($any($event).detail.value)"
|
|
213
|
+
>
|
|
214
|
+
@for (d of devices(); track d.deviceId) {
|
|
215
|
+
<ion-select-option [value]="d.deviceId">{{ deviceLabel(d) }}</ion-select-option>
|
|
216
|
+
}
|
|
217
|
+
</ion-select>
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
<div class="qr-scanner__actions">
|
|
221
|
+
@if (state() === 'scanning' || state() === 'starting') {
|
|
222
|
+
<ion-button fill="outline" color="dark" (click)="stop()">
|
|
223
|
+
<ion-icon name="stop-circle-outline" slot="start" />
|
|
224
|
+
{{ props.stopLabel || t('stop') }}
|
|
225
|
+
</ion-button>
|
|
226
|
+
} @else {
|
|
227
|
+
<ion-button color="dark" (click)="start()">
|
|
228
|
+
<ion-icon name="camera-outline" slot="start" />
|
|
229
|
+
{{ props.startLabel || t('start') }}
|
|
230
|
+
</ion-button>
|
|
231
|
+
}
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:host{display:block}.qr-scanner{display:flex;flex-direction:column;align-items:stretch;gap:12px;max-width:420px;margin:0 auto}.qr-scanner__viewport{position:relative;width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:var(--ion-color-dark, #1c1c1e);display:flex;align-items:center;justify-content:center}.qr-scanner__video{width:100%;height:100%;object-fit:cover;display:block}.qr-scanner__overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ion-color-light, #f4f5f8)}.qr-scanner__overlay p{margin:0;font-size:.875rem}.qr-scanner__overlay-icon{font-size:3rem;opacity:.6}.qr-scanner__frame{position:absolute;inset:18%;border:3px solid var(--ion-color-primary, #ff00b2);border-radius:12px;box-shadow:0 0 0 9999px #00000040;pointer-events:none}.qr-scanner__message{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);color:var(--ion-color-medium, #6b6675);font-size:.875rem}.qr-scanner__message ion-icon{font-size:1.25rem;flex-shrink:0}.qr-scanner__hint{margin:0;text-align:center;font-size:.8125rem;color:var(--ion-color-medium, #6b6675)}.qr-scanner__select{--padding-start: 0}.qr-scanner__actions{display:flex;justify-content:center}.qr-scanner__actions ion-button{--border-radius: 999px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
235
|
+
}
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QrScannerComponent, decorators: [{
|
|
237
|
+
type: Component,
|
|
238
|
+
args: [{ selector: 'val-qr-scanner', standalone: true, imports: [CommonModule, IonButton, IonIcon, IonSpinner, IonSelect, IonSelectOption], template: `
|
|
239
|
+
<div class="qr-scanner">
|
|
240
|
+
<div class="qr-scanner__viewport" [class.is-active]="state() === 'scanning'">
|
|
241
|
+
<video #video class="qr-scanner__video" muted playsinline></video>
|
|
242
|
+
|
|
243
|
+
@if (state() === 'idle') {
|
|
244
|
+
<div class="qr-scanner__overlay">
|
|
245
|
+
<ion-icon name="camera-outline" class="qr-scanner__overlay-icon" />
|
|
246
|
+
</div>
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
@if (state() === 'starting') {
|
|
250
|
+
<div class="qr-scanner__overlay">
|
|
251
|
+
<ion-spinner name="crescent" />
|
|
252
|
+
<p>{{ t('starting') }}</p>
|
|
253
|
+
</div>
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
@if (state() === 'scanning') {
|
|
257
|
+
<div class="qr-scanner__frame"></div>
|
|
258
|
+
}
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
@if (state() === 'denied' || state() === 'no-camera' || state() === 'error') {
|
|
262
|
+
<div class="qr-scanner__message">
|
|
263
|
+
<ion-icon [name]="state() === 'no-camera' ? 'videocam-off-outline' : 'warning-outline'" />
|
|
264
|
+
<span>{{ stateMessage() }}</span>
|
|
265
|
+
</div>
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@if (state() === 'scanning' || state() === 'starting') {
|
|
269
|
+
<p class="qr-scanner__hint">{{ t('hint') }}</p>
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
@if (devices().length > 1 && state() === 'scanning') {
|
|
273
|
+
<ion-select
|
|
274
|
+
class="qr-scanner__select"
|
|
275
|
+
[label]="t('cameraLabel')"
|
|
276
|
+
labelPlacement="stacked"
|
|
277
|
+
interface="popover"
|
|
278
|
+
[value]="activeDeviceId()"
|
|
279
|
+
(ionChange)="onSelectDevice($any($event).detail.value)"
|
|
280
|
+
>
|
|
281
|
+
@for (d of devices(); track d.deviceId) {
|
|
282
|
+
<ion-select-option [value]="d.deviceId">{{ deviceLabel(d) }}</ion-select-option>
|
|
283
|
+
}
|
|
284
|
+
</ion-select>
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
<div class="qr-scanner__actions">
|
|
288
|
+
@if (state() === 'scanning' || state() === 'starting') {
|
|
289
|
+
<ion-button fill="outline" color="dark" (click)="stop()">
|
|
290
|
+
<ion-icon name="stop-circle-outline" slot="start" />
|
|
291
|
+
{{ props.stopLabel || t('stop') }}
|
|
292
|
+
</ion-button>
|
|
293
|
+
} @else {
|
|
294
|
+
<ion-button color="dark" (click)="start()">
|
|
295
|
+
<ion-icon name="camera-outline" slot="start" />
|
|
296
|
+
{{ props.startLabel || t('start') }}
|
|
297
|
+
</ion-button>
|
|
298
|
+
}
|
|
299
|
+
</div>
|
|
300
|
+
</div>
|
|
301
|
+
`, styles: ["@charset \"UTF-8\";:host{display:block}.qr-scanner{display:flex;flex-direction:column;align-items:stretch;gap:12px;max-width:420px;margin:0 auto}.qr-scanner__viewport{position:relative;width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:var(--ion-color-dark, #1c1c1e);display:flex;align-items:center;justify-content:center}.qr-scanner__video{width:100%;height:100%;object-fit:cover;display:block}.qr-scanner__overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ion-color-light, #f4f5f8)}.qr-scanner__overlay p{margin:0;font-size:.875rem}.qr-scanner__overlay-icon{font-size:3rem;opacity:.6}.qr-scanner__frame{position:absolute;inset:18%;border:3px solid var(--ion-color-primary, #ff00b2);border-radius:12px;box-shadow:0 0 0 9999px #00000040;pointer-events:none}.qr-scanner__message{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);color:var(--ion-color-medium, #6b6675);font-size:.875rem}.qr-scanner__message ion-icon{font-size:1.25rem;flex-shrink:0}.qr-scanner__hint{margin:0;text-align:center;font-size:.8125rem;color:var(--ion-color-medium, #6b6675)}.qr-scanner__select{--padding-start: 0}.qr-scanner__actions{display:flex;justify-content:center}.qr-scanner__actions ion-button{--border-radius: 999px}\n"] }]
|
|
302
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], scanned: [{
|
|
305
|
+
type: Output
|
|
306
|
+
}], videoRef: [{
|
|
307
|
+
type: ViewChild,
|
|
308
|
+
args: ['video']
|
|
309
|
+
}] } });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItc2Nhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3FyLXNjYW5uZXIvcXItc2Nhbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLHdCQUF3QixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQztJQUNQLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGNBQWM7Q0FDZixDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUF1RUgsTUFBTSxPQUFPLGtCQUFrQjtJQXVCN0I7UUF0QlMsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFFdkMsMENBQTBDO1FBQ2hDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXZDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FB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bml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNlbGVjdCwgSW9uU2VsZWN0T3B0aW9uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNhbWVyYU91dGxpbmUsIHN0b3BDaXJjbGVPdXRsaW5lLCB2aWRlb2NhbU9mZk91dGxpbmUsIHdhcm5pbmdPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyLCBJU2Nhbm5lckNvbnRyb2xzIH0gZnJvbSAnQHp4aW5nL2Jyb3dzZXInO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgUXJTY2FubmVyTWV0YWRhdGEsIFFyU2Nhbm5lclN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBRUl9TQ0FOTkVSX0kxOE4gfSBmcm9tICcuL3FyLXNjYW5uZXIuaTE4bic7XG5cbmFkZEljb25zKHtcbiAgY2FtZXJhT3V0bGluZSxcbiAgc3RvcENpcmNsZU91dGxpbmUsXG4gIHZpZGVvY2FtT2ZmT3V0bGluZSxcbiAgd2FybmluZ091dGxpbmUsXG59KTtcblxuLyoqXG4gKiB2YWwtcXItc2Nhbm5lclxuICpcbiAqIE9yZ2FuaXNtOiBzY2FubmVyIGRlIGPDs2RpZ29zIFFSIHBvciBjw6FtYXJhIChgQHp4aW5nL2Jyb3dzZXJgICtcbiAqIGBAenhpbmcvbGlicmFyeWApLiBFbWl0ZSBlbCB0ZXh0byBkZWNvZGlmaWNhZG8gcG9yIGAoc2Nhbm5lZClgLlxuICpcbiAqIE1hbmVqYTogcGVybWlzbyBkZSBjw6FtYXJhIGRlbmVnYWRvIChgZGVuaWVkYCksIGF1c2VuY2lhIGRlIGPDoW1hcmFcbiAqIChgbm8tY2FtZXJhYCksIHNlbGVjdG9yIGN1YW5kbyBoYXkgdmFyaWFzIGPDoW1hcmFzLCB5IGJvdMOzbiBzdGFydC9zdG9wLiBIYWNlXG4gKiBjbGVhbnVwIGRlbCBzdHJlYW0gZW4gYG5nT25EZXN0cm95YC4gaTE4biBhdXRvLXJlZ2lzdHJhZG8gKG5hbWVzcGFjZVxuICogYFFyU2Nhbm5lcmApLlxuICpcbiAqIE9iamVjdC1maXJzdCAoYEBJbnB1dCgpIHByb3BzYCkgKyB1biDDum5pY28gYEBPdXRwdXQoKSBzY2FubmVkYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1xci1zY2FubmVyIFtwcm9wc109XCJ7IGNvbnRpbnVvdXM6IHRydWUgfVwiIChzY2FubmVkKT1cIm9uU2NhbigkZXZlbnQpXCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItc2Nhbm5lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uU2VsZWN0LCBJb25TZWxlY3RPcHRpb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lcl9fdmlld3BvcnRcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInN0YXRlKCkgPT09ICdzY2FubmluZydcIj5cbiAgICAgICAgPHZpZGVvICN2aWRlbyBjbGFzcz1cInFyLXNjYW5uZXJfX3ZpZGVvXCIgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz5cblxuICAgICAgICBAaWYgKHN0YXRlKCkgPT09ICdpZGxlJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19vdmVybGF5XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbWVyYS1vdXRsaW5lXCIgY2xhc3M9XCJxci1zY2FubmVyX19vdmVybGF5LWljb25cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzdGF0ZSgpID09PSAnc3RhcnRpbmcnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInFyLXNjYW5uZXJfX292ZXJsYXlcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAvPlxuICAgICAgICAgICAgPHA+e3sgdCgnc3RhcnRpbmcnKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19mcmFtZVwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChzdGF0ZSgpID09PSAnZGVuaWVkJyB8fCBzdGF0ZSgpID09PSAnbm8tY2FtZXJhJyB8fCBzdGF0ZSgpID09PSAnZXJyb3InKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19tZXNzYWdlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInN0YXRlKCkgPT09ICduby1jYW1lcmEnID8gJ3ZpZGVvY2FtLW9mZi1vdXRsaW5lJyA6ICd3YXJuaW5nLW91dGxpbmUnXCIgLz5cbiAgICAgICAgICA8c3Bhbj57eyBzdGF0ZU1lc3NhZ2UoKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJyB8fCBzdGF0ZSgpID09PSAnc3RhcnRpbmcnKSB7XG4gICAgICAgIDxwIGNsYXNzPVwicXItc2Nhbm5lcl9faGludFwiPnt7IHQoJ2hpbnQnKSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgQGlmIChkZXZpY2VzKCkubGVuZ3RoID4gMSAmJiBzdGF0ZSgpID09PSAnc2Nhbm5pbmcnKSB7XG4gICAgICAgIDxpb24tc2VsZWN0XG4gICAgICAgICAgY2xhc3M9XCJxci1zY2FubmVyX19zZWxlY3RcIlxuICAgICAgICAgIFtsYWJlbF09XCJ0KCdjYW1lcmFMYWJlbCcpXCJcbiAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgICAgIFt2YWx1ZV09XCJhY3RpdmVEZXZpY2VJZCgpXCJcbiAgICAgICAgICAoaW9uQ2hhbmdlKT1cIm9uU2VsZWN0RGV2aWNlKCRhbnkoJGV2ZW50KS5kZXRhaWwudmFsdWUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGQgb2YgZGV2aWNlcygpOyB0cmFjayBkLmRldmljZUlkKSB7XG4gICAgICAgICAgICA8aW9uLXNlbGVjdC1vcHRpb24gW3ZhbHVlXT1cImQuZGV2aWNlSWRcIj57eyBkZXZpY2VMYWJlbChkKSB9fTwvaW9uLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1zZWxlY3Q+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19hY3Rpb25zXCI+XG4gICAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJyB8fCBzdGF0ZSgpID09PSAnc3RhcnRpbmcnKSB7XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwic3RvcCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN0b3AtY2lyY2xlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAge3sgcHJvcHMuc3RvcExhYmVsIHx8IHQoJ3N0b3AnKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cInN0YXJ0KClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FtZXJhLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAge3sgcHJvcHMuc3RhcnRMYWJlbCB8fCB0KCdzdGFydCcpIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcXItc2Nhbm5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBRclNjYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwcm9wczogUXJTY2FubmVyTWV0YWRhdGEgPSB7fTtcblxuICAvKiogRW1pdGUgZWwgdGV4dG8gZGVjb2RpZmljYWRvIGRlbCBRUi4gKi9cbiAgQE91dHB1dCgpIHNjYW5uZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAVmlld0NoaWxkKCd2aWRlbycpIHZpZGVvUmVmITogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcblxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPFFyU2Nhbm5lclN0YXRlPignaWRsZScpO1xuICByZWFkb25seSBkZXZpY2VzID0gc2lnbmFsPE1lZGlhRGV2aWNlSW5mb1tdPihbXSk7XG4gIHJlYWRvbmx5IGFjdGl2ZURldmljZUlkID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIHJlYWRlcjogQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29udHJvbHM6IElTY2FubmVyQ29udHJvbHMgfCBudWxsID0gbnVsbDtcblxuICAvLyBBbnRpLXJlYm90ZTogaWdub3JhIGxhIG1pc21hIGxlY3R1cmEgcmVwZXRpZGEgZGVudHJvIGRlIGBkZWR1cGVNc2AuXG4gIHByaXZhdGUgbGFzdFZhbHVlID0gJyc7XG4gIHByaXZhdGUgbGFzdEF0ID0gMDtcblxuICBwcml2YXRlIHZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnUXJTY2FubmVyJykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ1FyU2Nhbm5lcicsIFFSX1NDQU5ORVJfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld1JlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5wcm9wcy5hdXRvU3RhcnQpIHtcbiAgICAgIHZvaWQgdGhpcy5zdGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd24oKTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdRclNjYW5uZXInKTtcbiAgfVxuXG4gIHN0YXRlTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5zdGF0ZSgpKSB7XG4gICAgICBjYXNlICdkZW5pZWQnOlxuICAgICAgICByZXR1cm4gdGhpcy50KCdkZW5pZWQnKTtcbiAgICAgIGNhc2UgJ25vLWNhbWVyYSc6XG4gICAgICAgIHJldHVybiB0aGlzLnQoJ25vQ2FtZXJhJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy50KCdlcnJvcicpO1xuICAgIH1cbiAgfVxuXG4gIGRldmljZUxhYmVsKGQ6IE1lZGlhRGV2aWNlSW5mbyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGQubGFiZWwgfHwgYCR7dGhpcy50KCdjYW1lcmFMYWJlbCcpfSAke3RoaXMuZGV2aWNlcygpLmluZGV4T2YoZCkgKyAxfWA7XG4gIH1cblxuICBhc3luYyBzdGFydChkZXZpY2VJZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy52aWV3UmVhZHkpIHJldHVybjtcbiAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ3N0YXJ0aW5nJyk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5yZWFkZXIgPSBuZXcgQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyKCk7XG5cbiAgICAgIC8vIEVudW1lcmFyIGPDoW1hcmFzLiBBbGd1bm9zIG5hdmVnYWRvcmVzIHNvbG8gZGFuIGxhYmVscyB0cmFzIGNvbmNlZGVyXG4gICAgICAvLyBwZXJtaXNvLCBhc8OtIHF1ZSBlc3RvIHB1ZWRlIGRldm9sdmVyIGxhYmVscyB2YWPDrW9zIGxhIDHCqiB2ZXouXG4gICAgICBsZXQgY2FtczogTWVkaWFEZXZpY2VJbmZvW10gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNhbXMgPSBhd2FpdCBCcm93c2VyTXVsdGlGb3JtYXRSZWFkZXIubGlzdFZpZGVvSW5wdXREZXZpY2VzKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgY2FtcyA9IFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5kZXZpY2VzLnNldChjYW1zKTtcblxuICAgICAgLy8gUHJlZmVyaXIgbGEgdHJhc2VyYSAoZW52aXJvbm1lbnQpIHNpIGVsIGxhYmVsIGxvIHN1Z2llcmUuXG4gICAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgICBkZXZpY2VJZCB8fFxuICAgICAgICB0aGlzLmFjdGl2ZURldmljZUlkKCkgfHxcbiAgICAgICAgY2Ftcy5maW5kKGMgPT4gL2JhY2t8cmVhcnxlbnZpcm9ubWVudHx0cmFzZXJhL2kudGVzdChjLmxhYmVsKSk/LmRldmljZUlkIHx8XG4gICAgICAgIGNhbXNbMF0/LmRldmljZUlkO1xuXG4gICAgICB0aGlzLmFjdGl2ZURldmljZUlkLnNldCh0YXJnZXQpO1xuXG4gICAgICB0aGlzLmNvbnRyb2xzID0gYXdhaXQgdGhpcy5yZWFkZXIuZGVjb2RlRnJvbVZpZGVvRGV2aWNlKHRhcmdldCwgdGhpcy52aWRlb1JlZi5uYXRpdmVFbGVtZW50LCByZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXN1bHQocmVzdWx0LmdldFRleHQoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN0YXRlLnNldCgnc2Nhbm5pbmcnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuaGFuZGxlU3RhcnRFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3AoKTogdm9pZCB7XG4gICAgdGhpcy50ZWFyZG93bigpO1xuICAgIHRoaXMuc3RhdGUuc2V0KCdpZGxlJyk7XG4gIH1cblxuICBhc3luYyBvblNlbGVjdERldmljZShkZXZpY2VJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGRldmljZUlkICYmIGRldmljZUlkICE9PSB0aGlzLmFjdGl2ZURldmljZUlkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnQoZGV2aWNlSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVzdWx0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgZGVkdXBlID0gdGhpcy5wcm9wcy5kZWR1cGVNcyA/PyAxNTAwO1xuICAgIGlmICh0ZXh0ID09PSB0aGlzLmxhc3RWYWx1ZSAmJiBub3cgLSB0aGlzLmxhc3RBdCA8IGRlZHVwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxhc3RWYWx1ZSA9IHRleHQ7XG4gICAgdGhpcy5sYXN0QXQgPSBub3c7XG5cbiAgICB0aGlzLnNjYW5uZWQuZW1pdCh0ZXh0KTtcblxuICAgIC8vIE1vZG8gbm8gY29udGludW86IGRldGVuZXIgdHJhcyBlbCBwcmltZXIgbWF0Y2ggKGxhIHDDoWdpbmEgcmVhbnVkYSBzaVxuICAgIC8vIHF1aWVyZSkuIGBjb250aW51b3VzYCBkZWZhdWx0IHRydWUg4oaSIHNlZ3VpciBlc2NhbmVhbmRvLlxuICAgIGlmICh0aGlzLnByb3BzLmNvbnRpbnVvdXMgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0b3AoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN0YXJ0RXJyb3IoZXJyOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgbmFtZSA9IChlcnIgYXMgeyBuYW1lPzogc3RyaW5nIH0gfCBudWxsKT8ubmFtZSA/PyAnJztcbiAgICBpZiAobmFtZSA9PT0gJ05vdEFsbG93ZWRFcnJvcicgfHwgbmFtZSA9PT0gJ1NlY3VyaXR5RXJyb3InKSB7XG4gICAgICB0aGlzLnN0YXRlLnNldCgnZGVuaWVkJyk7XG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAnTm90Rm91bmRFcnJvcicgfHwgbmFtZSA9PT0gJ092ZXJjb25zdHJhaW5lZEVycm9yJykge1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ25vLWNhbWVyYScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlLnNldCgnZXJyb3InKTtcbiAgICB9XG4gICAgdGhpcy50ZWFyZG93bihmYWxzZSk7XG4gIH1cblxuICAvKiogRGV0aWVuZSBlbCBkZWNvZGUgKyBsaWJlcmEgZWwgc3RyZWFtIGRlIGxhIGPDoW1hcmEuICovXG4gIHByaXZhdGUgdGVhcmRvd24ocmVzZXRTdGF0ZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250cm9scz8uc3RvcCgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaWdub3JlXG4gICAgfVxuICAgIHRoaXMuY29udHJvbHMgPSBudWxsO1xuXG4gICAgY29uc3QgdmlkZW8gPSB0aGlzLnZpZGVvUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHN0cmVhbSA9IHZpZGVvPy5zcmNPYmplY3QgYXMgTWVkaWFTdHJlYW0gfCBudWxsO1xuICAgIGlmIChzdHJlYW0pIHtcbiAgICAgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSk7XG4gICAgICB2aWRlby5zcmNPYmplY3QgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnJlYWRlciA9IG51bGw7XG5cbiAgICBpZiAocmVzZXRTdGF0ZSkge1xuICAgICAgdGhpcy5sYXN0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMubGFzdEF0ID0gMDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defaults i18n (es/en) del `val-qr-scanner`. Auto-registrados en el
|
|
3
|
+
* constructor (namespace `QrScanner`) — el consumer NUNCA tiene que
|
|
4
|
+
* registrarlos. Override por props (start/stop) o registrando el namespace.
|
|
5
|
+
*/
|
|
6
|
+
export const QR_SCANNER_I18N = {
|
|
7
|
+
es: {
|
|
8
|
+
start: 'Iniciar cámara',
|
|
9
|
+
stop: 'Detener',
|
|
10
|
+
starting: 'Iniciando cámara…',
|
|
11
|
+
hint: 'Apunta la cámara al código QR de la entrada.',
|
|
12
|
+
cameraLabel: 'Cámara',
|
|
13
|
+
denied: 'No se pudo acceder a la cámara. Revisa los permisos del navegador e inténtalo de nuevo.',
|
|
14
|
+
noCamera: 'No se encontró ninguna cámara en este dispositivo.',
|
|
15
|
+
error: 'Ocurrió un problema con la cámara. Inténtalo de nuevo.',
|
|
16
|
+
},
|
|
17
|
+
en: {
|
|
18
|
+
start: 'Start camera',
|
|
19
|
+
stop: 'Stop',
|
|
20
|
+
starting: 'Starting camera…',
|
|
21
|
+
hint: 'Point the camera at the ticket QR code.',
|
|
22
|
+
cameraLabel: 'Camera',
|
|
23
|
+
denied: 'Could not access the camera. Check your browser permissions and try again.',
|
|
24
|
+
noCamera: 'No camera was found on this device.',
|
|
25
|
+
error: 'Something went wrong with the camera. Please try again.',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItc2Nhbm5lci5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9xci1zY2FubmVyL3FyLXNjYW5uZXIuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLElBQUksRUFBRSw4Q0FBOEM7UUFDcEQsV0FBVyxFQUFFLFFBQVE7UUFDckIsTUFBTSxFQUNKLHlGQUF5RjtRQUMzRixRQUFRLEVBQUUsb0RBQW9EO1FBQzlELEtBQUssRUFBRSx3REFBd0Q7S0FDaEU7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsY0FBYztRQUNyQixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsSUFBSSxFQUFFLHlDQUF5QztRQUMvQyxXQUFXLEVBQUUsUUFBUTtRQUNyQixNQUFNLEVBQUUsNEVBQTRFO1FBQ3BGLFFBQVEsRUFBRSxxQ0FBcUM7UUFDL0MsS0FBSyxFQUFFLHlEQUF5RDtLQUNqRTtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSBkZWwgYHZhbC1xci1zY2FubmVyYC4gQXV0by1yZWdpc3RyYWRvcyBlbiBlbFxuICogY29uc3RydWN0b3IgKG5hbWVzcGFjZSBgUXJTY2FubmVyYCkg4oCUIGVsIGNvbnN1bWVyIE5VTkNBIHRpZW5lIHF1ZVxuICogcmVnaXN0cmFybG9zLiBPdmVycmlkZSBwb3IgcHJvcHMgKHN0YXJ0L3N0b3ApIG8gcmVnaXN0cmFuZG8gZWwgbmFtZXNwYWNlLlxuICovXG5leHBvcnQgY29uc3QgUVJfU0NBTk5FUl9JMThOID0ge1xuICBlczoge1xuICAgIHN0YXJ0OiAnSW5pY2lhciBjw6FtYXJhJyxcbiAgICBzdG9wOiAnRGV0ZW5lcicsXG4gICAgc3RhcnRpbmc6ICdJbmljaWFuZG8gY8OhbWFyYeKApicsXG4gICAgaGludDogJ0FwdW50YSBsYSBjw6FtYXJhIGFsIGPDs2RpZ28gUVIgZGUgbGEgZW50cmFkYS4nLFxuICAgIGNhbWVyYUxhYmVsOiAnQ8OhbWFyYScsXG4gICAgZGVuaWVkOlxuICAgICAgJ05vIHNlIHB1ZG8gYWNjZWRlciBhIGxhIGPDoW1hcmEuIFJldmlzYSBsb3MgcGVybWlzb3MgZGVsIG5hdmVnYWRvciBlIGludMOpbnRhbG8gZGUgbnVldm8uJyxcbiAgICBub0NhbWVyYTogJ05vIHNlIGVuY29udHLDsyBuaW5ndW5hIGPDoW1hcmEgZW4gZXN0ZSBkaXNwb3NpdGl2by4nLFxuICAgIGVycm9yOiAnT2N1cnJpw7MgdW4gcHJvYmxlbWEgY29uIGxhIGPDoW1hcmEuIEludMOpbnRhbG8gZGUgbnVldm8uJyxcbiAgfSxcbiAgZW46IHtcbiAgICBzdGFydDogJ1N0YXJ0IGNhbWVyYScsXG4gICAgc3RvcDogJ1N0b3AnLFxuICAgIHN0YXJ0aW5nOiAnU3RhcnRpbmcgY2FtZXJh4oCmJyxcbiAgICBoaW50OiAnUG9pbnQgdGhlIGNhbWVyYSBhdCB0aGUgdGlja2V0IFFSIGNvZGUuJyxcbiAgICBjYW1lcmFMYWJlbDogJ0NhbWVyYScsXG4gICAgZGVuaWVkOiAnQ291bGQgbm90IGFjY2VzcyB0aGUgY2FtZXJhLiBDaGVjayB5b3VyIGJyb3dzZXIgcGVybWlzc2lvbnMgYW5kIHRyeSBhZ2Fpbi4nLFxuICAgIG5vQ2FtZXJhOiAnTm8gY2FtZXJhIHdhcyBmb3VuZCBvbiB0aGlzIGRldmljZS4nLFxuICAgIGVycm9yOiAnU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgY2FtZXJhLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gIH0sXG59IGFzIGNvbnN0O1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3FyLXNjYW5uZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWV0YWRhdGEgKG9iamVjdC1maXJzdCkgZGVsIG9yZ2FuaXNtIGB2YWwtcXItc2Nhbm5lcmAuXG4gKlxuICogU2Nhbm5lciBkZSBRUiBwb3IgY8OhbWFyYS4gVG9kb3MgbG9zIGNhbXBvcyBzb24gb3BjaW9uYWxlcyAobGEgY8OhbWFyYVxuICogZnVuY2lvbmEgY29uIGRlZmF1bHRzKS4gRWwgY29uc3VtZXIgcGFzYSBsb3MgbGFiZWxzIHlhIHJlc3VlbHRvcyBwb3IgaTE4bjtcbiAqIHNpIG5vLCBlbCBjb21wb25lbnRlIGNhZSBhIHN1cyBkZWZhdWx0cyBhdXRvLXJlZ2lzdHJhZG9zIChuYW1lc3BhY2VcbiAqIGBRclNjYW5uZXJgKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRclNjYW5uZXJNZXRhZGF0YSB7XG4gIC8qKiBBcnJhbmNhciBsYSBjw6FtYXJhIGF1dG9tw6F0aWNhbWVudGUgYWwgbW9udGFyIChkZWZhdWx0IGZhbHNlKS4gKi9cbiAgYXV0b1N0YXJ0PzogYm9vbGVhbjtcblxuICAvKiogTGFiZWwgZGVsIGJvdMOzbiBkZSBpbmljaWFyIChvdmVycmlkZSBkZWwgYXV0by1pMThuKS4gKi9cbiAgc3RhcnRMYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBib3TDs24gZGUgZGV0ZW5lciAob3ZlcnJpZGUgZGVsIGF1dG8taTE4bikuICovXG4gIHN0b3BMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWFudGVuZXIgbGEgY8OhbWFyYSBlbmNlbmRpZGEgdHJhcyB1biBlc2NhbmVvIGV4aXRvc28gKGRlZmF1bHQgdHJ1ZSkuIFNpIGVzXG4gICAqIGBmYWxzZWAsIGVsIHNjYW5uZXIgc2UgZGV0aWVuZSBzb2xvIGFsIHByaW1lciBtYXRjaCDigJQgw7p0aWwgcGFyYSBmbHVqb3MgZGVcbiAgICogdW4gc29sbyBjYW5qZS4gU2kgZXMgYHRydWVgLCBzaWd1ZSBlc2NhbmVhbmRvIChsYSBww6FnaW5hIGRlY2lkZSBjdcOhbmRvXG4gICAqIHBhcmFyIC8gcmVhbnVkYXIpLlxuICAgKi9cbiAgY29udGludW91cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFudGktcmVib3RlIGVudHJlIGxlY3R1cmFzIGRlbCBNSVNNTyB2YWxvciwgZW4gbXMgKGRlZmF1bHQgMTUwMCkuIEV2aXRhXG4gICAqIHF1ZSBlbCBtaXNtbyBRUiBkaXNwYXJlIGBzY2FubmVkYCBtdWNoYXMgdmVjZXMgcG9yIHNlZ3VuZG8gbWllbnRyYXMgZXN0w6FcbiAgICogZnJlbnRlIGEgbGEgY8OhbWFyYS5cbiAgICovXG4gIGRlZHVwZU1zPzogbnVtYmVyO1xufVxuXG4vKiogRXN0YWRvIGludGVybm8gZGVsIHNjYW5uZXIgKGV4cHVlc3RvIHBhcmEgZmVlZGJhY2sgZGUgVUkpLiAqL1xuZXhwb3J0IHR5cGUgUXJTY2FubmVyU3RhdGUgPSAnaWRsZScgfCAnc3RhcnRpbmcnIHwgJ3NjYW5uaW5nJyB8ICdkZW5pZWQnIHwgJ25vLWNhbWVyYScgfCAnZXJyb3InO1xuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -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.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '2.0.1026';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDI2JztcbiJdfQ==
|