@seniorsistemas/components-ai 0.0.0-master-d2ced108 → 0.0.0-master-e597799c
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/i18n/en-US.json +43 -0
- package/esm2022/lib/i18n/es-ES.json +43 -0
- package/esm2022/lib/i18n/pt-BR.json +43 -0
- package/esm2022/lib/services/translation.service.mjs +12 -3
- package/fesm2022/seniorsistemas-components-ai.mjs +139 -2
- package/fesm2022/seniorsistemas-components-ai.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/i18n/en-US.json +43 -0
- package/src/lib/i18n/es-ES.json +43 -0
- package/src/lib/i18n/pt-BR.json +43 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"design.components_ai.bulk_delete_title": "Bulk Delete",
|
|
3
|
+
"design.components_ai.bulk_delete_warning": "You are about to delete <strong>{{count}}</strong> record(s).",
|
|
4
|
+
"design.components_ai.bulk_delete_description": "This action cannot be undone. Records will be deleted one by one.",
|
|
5
|
+
"design.components_ai.bulk_delete_progress": "Progress",
|
|
6
|
+
"design.components_ai.bulk_delete_success_count": "success",
|
|
7
|
+
"design.components_ai.bulk_delete_error_count": "error(s)",
|
|
8
|
+
"design.components_ai.bulk_delete_code_label": "Code",
|
|
9
|
+
"design.components_ai.bulk_delete_success_message": "All records were deleted successfully!",
|
|
10
|
+
"design.components_ai.bulk_delete_completed_with_errors": "Process completed with {{count}} error(s).",
|
|
11
|
+
"design.components_ai.bulk_delete_status_pending": "Pending",
|
|
12
|
+
"design.components_ai.bulk_delete_status_processing": "Processing...",
|
|
13
|
+
"design.components_ai.bulk_delete_status_success": "Deleted",
|
|
14
|
+
"design.components_ai.bulk_delete_status_error": "Error",
|
|
15
|
+
"design.components_ai.bulk_delete_error_generic": "Error deleting",
|
|
16
|
+
"design.components_ai.bulk_delete_confirm": "Confirm Deletion",
|
|
17
|
+
"design.components_ai.export_data_title": "Export Data",
|
|
18
|
+
"design.components_ai.export_format_title": "Export Format",
|
|
19
|
+
"design.components_ai.export_scope_title": "Records to Export",
|
|
20
|
+
"design.components_ai.export_columns_title": "Columns to Export",
|
|
21
|
+
"design.components_ai.export_excel_description": "Editable spreadsheet with formatting",
|
|
22
|
+
"design.components_ai.export_pdf_description": "Portable document for printing",
|
|
23
|
+
"design.components_ai.export_all_records": "All records",
|
|
24
|
+
"design.components_ai.export_all_records_description": "Export all table records",
|
|
25
|
+
"design.components_ai.export_selected_records": "Selected records",
|
|
26
|
+
"design.components_ai.export_selected_records_description": "Export only marked records",
|
|
27
|
+
"design.components_ai.export_records_count": "record(s)",
|
|
28
|
+
"design.components_ai.export_select_all_columns": "Select all",
|
|
29
|
+
"design.components_ai.export_clear_selection": "Clear selection",
|
|
30
|
+
"design.components_ai.export_columns_summary": "of",
|
|
31
|
+
"design.components_ai.export_columns_selected": "column(s) selected",
|
|
32
|
+
"design.components_ai.export_data_sheet_name": "Data",
|
|
33
|
+
"design.components_ai.export_pdf_title": "Data Export",
|
|
34
|
+
"design.components_ai.export_exported_at": "Exported at",
|
|
35
|
+
"design.components_ai.export_total_records": "Total records",
|
|
36
|
+
"design.components_ai.breadcrumb_home": "Home",
|
|
37
|
+
"design.components_ai.components.form": "Form",
|
|
38
|
+
"design.components_ai.components.save": "Save",
|
|
39
|
+
"design.components_ai.components.cancel": "Cancel",
|
|
40
|
+
"design.components_ai.cancel": "Cancel",
|
|
41
|
+
"design.components_ai.close": "Close",
|
|
42
|
+
"design.components_ai.export": "Export"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"design.components_ai.bulk_delete_title": "Eliminación Masiva",
|
|
3
|
+
"design.components_ai.bulk_delete_warning": "Está a punto de eliminar <strong>{{count}}</strong> registro(s).",
|
|
4
|
+
"design.components_ai.bulk_delete_description": "Esta acción no se puede deshacer. Los registros se eliminarán uno por uno.",
|
|
5
|
+
"design.components_ai.bulk_delete_progress": "Progreso",
|
|
6
|
+
"design.components_ai.bulk_delete_success_count": "éxito",
|
|
7
|
+
"design.components_ai.bulk_delete_error_count": "error(es)",
|
|
8
|
+
"design.components_ai.bulk_delete_code_label": "Código",
|
|
9
|
+
"design.components_ai.bulk_delete_success_message": "¡Todos los registros fueron eliminados con éxito!",
|
|
10
|
+
"design.components_ai.bulk_delete_completed_with_errors": "Proceso completado con {{count}} error(es).",
|
|
11
|
+
"design.components_ai.bulk_delete_status_pending": "Pendiente",
|
|
12
|
+
"design.components_ai.bulk_delete_status_processing": "Procesando...",
|
|
13
|
+
"design.components_ai.bulk_delete_status_success": "Eliminado",
|
|
14
|
+
"design.components_ai.bulk_delete_status_error": "Error",
|
|
15
|
+
"design.components_ai.bulk_delete_error_generic": "Error al eliminar",
|
|
16
|
+
"design.components_ai.bulk_delete_confirm": "Confirmar Eliminación",
|
|
17
|
+
"design.components_ai.export_data_title": "Exportar Datos",
|
|
18
|
+
"design.components_ai.export_format_title": "Formato de Exportación",
|
|
19
|
+
"design.components_ai.export_scope_title": "Registros a Exportar",
|
|
20
|
+
"design.components_ai.export_columns_title": "Columnas a Exportar",
|
|
21
|
+
"design.components_ai.export_excel_description": "Hoja de cálculo editable con formato",
|
|
22
|
+
"design.components_ai.export_pdf_description": "Documento portátil para impresión",
|
|
23
|
+
"design.components_ai.export_all_records": "Todos los registros",
|
|
24
|
+
"design.components_ai.export_all_records_description": "Exportar todos los registros de la tabla",
|
|
25
|
+
"design.components_ai.export_selected_records": "Registros seleccionados",
|
|
26
|
+
"design.components_ai.export_selected_records_description": "Exportar solo los registros marcados",
|
|
27
|
+
"design.components_ai.export_records_count": "registro(s)",
|
|
28
|
+
"design.components_ai.export_select_all_columns": "Seleccionar todas",
|
|
29
|
+
"design.components_ai.export_clear_selection": "Limpiar selección",
|
|
30
|
+
"design.components_ai.export_columns_summary": "de",
|
|
31
|
+
"design.components_ai.export_columns_selected": "columna(s) seleccionada(s)",
|
|
32
|
+
"design.components_ai.export_data_sheet_name": "Datos",
|
|
33
|
+
"design.components_ai.export_pdf_title": "Exportación de Datos",
|
|
34
|
+
"design.components_ai.export_exported_at": "Exportado en",
|
|
35
|
+
"design.components_ai.export_total_records": "Total de registros",
|
|
36
|
+
"design.components_ai.breadcrumb_home": "Inicio",
|
|
37
|
+
"design.components_ai.components.form": "Formulario",
|
|
38
|
+
"design.components_ai.components.save": "Guardar",
|
|
39
|
+
"design.components_ai.components.cancel": "Cancelar",
|
|
40
|
+
"design.components_ai.cancel": "Cancelar",
|
|
41
|
+
"design.components_ai.close": "Cerrar",
|
|
42
|
+
"design.components_ai.export": "Exportar"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"design.components_ai.bulk_delete_title": "Exclusão em Massa",
|
|
3
|
+
"design.components_ai.bulk_delete_warning": "Você está prestes a excluir <strong>{{count}}</strong> registro(s).",
|
|
4
|
+
"design.components_ai.bulk_delete_description": "Esta ação não pode ser desfeita. Os registros serão excluídos um por vez.",
|
|
5
|
+
"design.components_ai.bulk_delete_progress": "Progresso",
|
|
6
|
+
"design.components_ai.bulk_delete_success_count": "sucesso",
|
|
7
|
+
"design.components_ai.bulk_delete_error_count": "erro(s)",
|
|
8
|
+
"design.components_ai.bulk_delete_code_label": "Código",
|
|
9
|
+
"design.components_ai.bulk_delete_success_message": "Todos os registros foram excluídos com sucesso!",
|
|
10
|
+
"design.components_ai.bulk_delete_completed_with_errors": "Processo concluído com {{count}} erro(s).",
|
|
11
|
+
"design.components_ai.bulk_delete_status_pending": "Pendente",
|
|
12
|
+
"design.components_ai.bulk_delete_status_processing": "Processando...",
|
|
13
|
+
"design.components_ai.bulk_delete_status_success": "Excluído",
|
|
14
|
+
"design.components_ai.bulk_delete_status_error": "Erro",
|
|
15
|
+
"design.components_ai.bulk_delete_error_generic": "Erro ao excluir",
|
|
16
|
+
"design.components_ai.bulk_delete_confirm": "Confirmar Exclusão",
|
|
17
|
+
"design.components_ai.export_data_title": "Exportar Dados",
|
|
18
|
+
"design.components_ai.export_format_title": "Formato de Exportação",
|
|
19
|
+
"design.components_ai.export_scope_title": "Registros a Exportar",
|
|
20
|
+
"design.components_ai.export_columns_title": "Colunas a Exportar",
|
|
21
|
+
"design.components_ai.export_excel_description": "Planilha editável com formatação",
|
|
22
|
+
"design.components_ai.export_pdf_description": "Documento portátil para impressão",
|
|
23
|
+
"design.components_ai.export_all_records": "Todos os registros",
|
|
24
|
+
"design.components_ai.export_all_records_description": "Exportar todos os registros da tabela",
|
|
25
|
+
"design.components_ai.export_selected_records": "Registros selecionados",
|
|
26
|
+
"design.components_ai.export_selected_records_description": "Exportar apenas os registros marcados",
|
|
27
|
+
"design.components_ai.export_records_count": "registro(s)",
|
|
28
|
+
"design.components_ai.export_select_all_columns": "Selecionar todas",
|
|
29
|
+
"design.components_ai.export_clear_selection": "Limpar seleção",
|
|
30
|
+
"design.components_ai.export_columns_summary": "de",
|
|
31
|
+
"design.components_ai.export_columns_selected": "coluna(s) selecionada(s)",
|
|
32
|
+
"design.components_ai.export_data_sheet_name": "Dados",
|
|
33
|
+
"design.components_ai.export_pdf_title": "Exportação de Dados",
|
|
34
|
+
"design.components_ai.export_exported_at": "Exportado em",
|
|
35
|
+
"design.components_ai.export_total_records": "Total de registros",
|
|
36
|
+
"design.components_ai.breadcrumb_home": "Início",
|
|
37
|
+
"design.components_ai.components.form": "Formulário",
|
|
38
|
+
"design.components_ai.components.save": "Salvar",
|
|
39
|
+
"design.components_ai.components.cancel": "Cancelar",
|
|
40
|
+
"design.components_ai.cancel": "Cancelar",
|
|
41
|
+
"design.components_ai.close": "Fechar",
|
|
42
|
+
"design.components_ai.export": "Exportar"
|
|
43
|
+
}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import { Injectable, Optional, Inject } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
3
|
import { TRANSLATION_CONFIG, mapTokenLocaleToLanguage } from '../config/translation.config';
|
|
4
|
+
// Importar traduções estaticamente
|
|
5
|
+
import translationsPtBR from '../i18n/pt-BR.json';
|
|
6
|
+
import translationsEnUS from '../i18n/en-US.json';
|
|
7
|
+
import translationsEsES from '../i18n/es-ES.json';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
import * as i1 from "./senior-token.service";
|
|
10
|
+
// Mapa de traduções internas da biblioteca
|
|
11
|
+
const LIBRARY_TRANSLATIONS = {
|
|
12
|
+
'pt-BR': translationsPtBR,
|
|
13
|
+
'en-US': translationsEnUS,
|
|
14
|
+
'es-ES': translationsEsES
|
|
15
|
+
};
|
|
6
16
|
export class TranslationService {
|
|
7
17
|
seniorTokenService;
|
|
8
18
|
currentLanguage;
|
|
@@ -162,8 +172,7 @@ export class TranslationService {
|
|
|
162
172
|
*/
|
|
163
173
|
async loadLibraryTranslations(language) {
|
|
164
174
|
try {
|
|
165
|
-
|
|
166
|
-
return translations.default || translations;
|
|
175
|
+
return LIBRARY_TRANSLATIONS[language] || {};
|
|
167
176
|
}
|
|
168
177
|
catch (error) {
|
|
169
178
|
console.warn(`No library translations found for ${language}`);
|
|
@@ -273,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
273
282
|
type: Inject,
|
|
274
283
|
args: ['TranslationLoader']
|
|
275
284
|
}] }] });
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtYWkvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBYTVHLE1BQU0sT0FBTyxrQkFBa0I7SUFPbkI7SUFORixlQUFlLENBQXNDO0lBQ3JELFlBQVksR0FBMkIsRUFBRSxDQUFDO0lBQzFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDckMsaUJBQWlCLENBQXFCO0lBRTlDLFlBQ1Usa0JBQXNDLEVBQ0wsTUFBMEI7UUFEM0QsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUc5Qyw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDeEMsa0JBQWtCLENBQUMsZUFBb0MsQ0FDeEQsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFFaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIscURBQXFEO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtB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QUM7Z0JBRWpELElBQUksU0FBUyxLQUFLLGFBQWEsRUFBRSxDQUFDO29CQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxXQUFXLE9BQU8sU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDM0UsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQW5TVSxrQkFBa0Isb0RBUVAsbUJBQW1COzRHQVI5QixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0NPTkZJRywgTGFuZ3VhZ2VDb25maWcsIG1hcFRva2VuTG9jYWxlVG9MYW5ndWFnZSB9IGZyb20gJy4uL2NvbmZpZy90cmFuc2xhdGlvbi5jb25maWcnO1xuaW1wb3J0IHsgU2VuaW9yVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi9zZW5pb3ItdG9rZW4uc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIFN1cHBvcnRlZExhbmd1YWdlID0gJ3B0LUJSJyB8ICdlbi1VUycgfCAnZXMtRVMnO1xuXG4vLyBJbnRlcmZhY2UgcGFyYSBvIGxvYWRlciBkZSB0cmFkdcOnw7VlcyAoZHVjayB0eXBpbmcpXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbGF0aW9uTG9hZGVyIHtcbiAgbG9hZFRyYW5zbGF0aW9ucyhsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGN1cnJlbnRMYW5ndWFnZSE6IEJlaGF2aW9yU3ViamVjdDxTdXBwb3J0ZWRMYW5ndWFnZT47XG4gIHByaXZhdGUgdHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHByaXZhdGUgbG9hZGluZ0xhbmd1YWdlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcml2YXRlIHRyYW5zbGF0aW9uTG9hZGVyPzogVHJhbnNsYXRpb25Mb2FkZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZW5pb3JUb2tlblNlcnZpY2U6IFNlbmlvclRva2VuU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdUcmFuc2xhdGlvbkxvYWRlcicpIGxvYWRlcj86IFRyYW5zbGF0aW9uTG9hZGVyXG4gICkge1xuICAgIC8vIEluaWNpYWxpemFyIG8gQmVoYXZpb3JTdWJqZWN0IG5vIGNvbnN0cnV0b3JcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3VwcG9ydGVkTGFuZ3VhZ2U+KFxuICAgICAgVFJBTlNMQVRJT05fQ09ORklHLmRlZmF1bHRMYW5ndWFnZSBhcyBTdXBwb3J0ZWRMYW5ndWFnZVxuICAgICk7XG4gICAgdGhpcy50cmFuc2xhdGlvbkxvYWRlciA9IGxvYWRlcjtcbiAgICBcbiAgICB0aGlzLmxvYWRTdG9yZWRMYW5ndWFnZSgpO1xuICAgIC8vIENhcnJlZ2FyIHRyYWR1w6fDtWVzIGRvIGlkaW9tYSBpbmljaWFsIGltZWRpYXRhbWVudGVcbiAgICB0aGlzLmxvYWRUcmFuc2xhdGlvbnMoKTtcbiAgICBcbiAgICAvLyBNb25pdG9yYXIgbXVkYW7Dp2FzIG5vIHRva2VuIHBhcmEgYXR1YWxpemFyIGlkaW9tYVxuICAgIHRoaXMud2F0Y2hUb2tlbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2UkKCk6IE9ic2VydmFibGU8U3VwcG9ydGVkTGFuZ3VhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZ3VhZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRDdXJyZW50TGFuZ3VhZ2UoKTogU3VwcG9ydGVkTGFuZ3VhZ2Uge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5ndWFnZS52YWx1ZTtcbiAgfVxuXG4gIGFzeW5jIHNldExhbmd1YWdlKGxhbmd1YWdlOiBTdXBwb3J0ZWRMYW5ndWFnZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudExhbmd1YWdlLm5leHQobGFuZ3VhZ2UpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFRSQU5TTEFUSU9OX0NPTkZJRy5zdG9yYWdlS2V5LCBsYW5ndWFnZSk7XG4gICAgYXdhaXQgdGhpcy5sb2FkVHJhbnNsYXRpb25zKCk7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yVHJhbnNsYXRpb25zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgaWYgKCF0aGlzLmlzTGFuZ3VhZ2VMb2FkZWQobGFuZ3VhZ2UpKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRUcmFuc2xhdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgYXMgdHJhZHXDp8O1ZXMgZG8gaWRpb21hIGF0dWFsIGVzdMOjbyBjYXJyZWdhZGFzXG4gICAqL1xuICBpc0xhbmd1YWdlTG9hZGVkKGxhbmd1YWdlPzogU3VwcG9ydGVkTGFuZ3VhZ2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBsYW5nID0gbGFuZ3VhZ2UgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgcmV0dXJuICEhdGhpcy50cmFuc2xhdGlvbnNbbGFuZ10gJiYgT2JqZWN0LmtleXModGhpcy50cmFuc2xhdGlvbnNbbGFuZ10pLmxlbmd0aCA+IDA7XG4gIH1cblxuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGlvbnNbY3VycmVudExhbmddO1xuICAgIFxuICAgIGlmICghdHJhbnNsYXRpb25zIHx8IE9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBTZSBhcyB0cmFkdcOnw7VlcyBuw6NvIGVzdMOjbyBjYXJyZWdhZGFzLCB0ZW50YXIgY2FycmVnYXIgZGUgZm9ybWEgYXNzw61uY3JvbmFcbiAgICAgIGlmICghdGhpcy5sb2FkaW5nTGFuZ3VhZ2VzLmhhcyhjdXJyZW50TGFuZykpIHtcbiAgICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb25zKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgdHJhbnNsYXRpb25zOicsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLndhcm4oYE5vIHRyYW5zbGF0aW9ucyBsb2FkZWQgZm9yIGxhbmd1YWdlOiAke2N1cnJlbnRMYW5nfWApO1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICAvLyBCdXNjYXIgdHJhZHXDp8OjbyAoc3Vwb3J0YSBlc3RydXR1cmEgcGxhbmEgZSBhbmluaGFkYSlcbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMuZ2V0TmVzdGVkVHJhbnNsYXRpb24odHJhbnNsYXRpb25zLCBrZXkpO1xuICAgIFxuICAgIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICAgIGNvbnNvbGUud2FybihgVHJhbnNsYXRpb24ga2V5IG5vdCBmb3VuZDogJHtrZXl9YCk7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHJhbnNsYXRpb24gIT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFRyYW5zbGF0aW9uIGtleSBpcyBub3QgYSBzdHJpbmc6ICR7a2V5fWApO1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICAvLyBSZXBsYWNlIHBhcmFtZXRlcnMgaWYgcHJvdmlkZWRcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXBsYWNlUGFyYW1zKHRyYW5zbGF0aW9uLCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0cmFuc2xhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXNjYSB0cmFkdcOnw6NvIGVtIGVzdHJ1dHVyYSBhbmluaGFkYSBvdSBwbGFuYVxuICAgKi9cbiAgcHJpdmF0ZSBnZXROZXN0ZWRUcmFuc2xhdGlvbih0cmFuc2xhdGlvbnM6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIFByaW1laXJvIHRlbnRhIGJ1c2NhciBkaXJldGFtZW50ZSAoZXN0cnV0dXJhIHBsYW5hKVxuICAgIGlmICh0cmFuc2xhdGlvbnNba2V5XSkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uc1trZXldO1xuICAgIH1cblxuICAgIC8vIFNlIG7Do28gZW5jb250cm91LCB0ZW50YSBidXNjYXIgZW0gZXN0cnV0dXJhIGFuaW5oYWRhXG4gICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gdHJhbnNsYXRpb25zO1xuICAgIFxuICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XG4gICAgICBpZiAoY3VycmVudCAmJiB0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgayBpbiBjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHR5cGVvZiBjdXJyZW50ID09PSAnc3RyaW5nJyA/IGN1cnJlbnQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRUcmFuc2xhdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnRMYW5ndWFnZS52YWx1ZTtcbiAgICBcbiAgICAvLyBTZSBqw6EgZXN0w6EgY2FycmVnYWRvLCBuw6NvIGNhcnJlZ2FyIG5vdmFtZW50ZVxuICAgIGlmICh0aGlzLmlzTGFuZ3VhZ2VMb2FkZWQobGFuZ3VhZ2UpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIEV2aXRhciBjYXJyZWdhbWVudG9zIGR1cGxpY2Fkb3NcbiAgICBpZiAodGhpcy5sb2FkaW5nTGFuZ3VhZ2VzLmhhcyhsYW5ndWFnZSkpIHtcbiAgICAgIC8vIEFndWFyZGFyIHVtIHBvdWNvIGUgdGVudGFyIG5vdmFtZW50ZVxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCkpO1xuICAgICAgaWYgKHRoaXMuaXNMYW5ndWFnZUxvYWRlZChsYW5ndWFnZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0aGlzLmxvYWRpbmdMYW5ndWFnZXMuYWRkKGxhbmd1YWdlKTtcbiAgICBcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kb0xvYWRUcmFuc2xhdGlvbnMobGFuZ3VhZ2UpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBsb2FkVHJhbnNsYXRpb25zOicsIGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nTGFuZ3VhZ2VzLmRlbGV0ZShsYW5ndWFnZSk7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGFzeW5jIGRvTG9hZFRyYW5zbGF0aW9ucyhsYW5ndWFnZTogU3VwcG9ydGVkTGFuZ3VhZ2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gMS4gQ2FycmVnYXIgdHJhZHXDp8O1ZXMgaW50ZXJuYXMgZGEgYmlibGlvdGVjYVxuICAgICAgY29uc3QgbGliVHJhbnNsYXRpb25zID0gYXdhaXQgdGhpcy5sb2FkTGlicmFyeVRyYW5zbGF0aW9ucyhsYW5ndWFnZSk7XG4gICAgICBcbiAgICAgIC8vIDIuIFNlIGjDoSB1bSBsb2FkZXIgY3VzdG9taXphZG8sIGNhcnJlZ2FyIHRyYWR1w6fDtWVzIGRhIGFwbGljYcOnw6NvXG4gICAgICBpZiAodGhpcy50cmFuc2xhdGlvbkxvYWRlcikge1xuICAgICAgICBjb25zdCBhcHBUcmFuc2xhdGlvbnMgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uTG9hZGVyLmxvYWRUcmFuc2xhdGlvbnMobGFuZ3VhZ2UpO1xuICAgICAgICAvLyBNZXJnZTogdHJhZHXDp8O1ZXMgZGEgYXBwIHNvYnJlc2NyZXZlbSBhcyBkYSBsaWJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdID0geyAuLi5saWJUcmFuc2xhdGlvbnMsIC4uLmFwcFRyYW5zbGF0aW9ucyB9O1xuICAgICAgICBjb25zb2xlLmxvZyhgVHJhbnNsYXRpb25zIGxvYWRlZCBmb3IgJHtsYW5ndWFnZX06YCwgT2JqZWN0LmtleXModGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdKS5sZW5ndGgsICdrZXlzJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gU2UgbsOjbyBow6EgbG9hZGVyLCB1c2FyIGFwZW5hcyB0cmFkdcOnw7VlcyBkYSBsaWJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSA9IGxpYlRyYW5zbGF0aW9ucztcbiAgICAgIGNvbnNvbGUubG9nKGBMaWJyYXJ5IHRyYW5zbGF0aW9ucyBsb2FkZWQgZm9yICR7bGFuZ3VhZ2V9OmAsIE9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSkubGVuZ3RoLCAna2V5cycpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nIHRyYW5zbGF0aW9ucyBmb3IgJHtsYW5ndWFnZX06YCwgZXJyb3IpO1xuICAgICAgLy8gRmFsbGJhY2sgcGFyYSBvIGlkaW9tYSBwYWRyw6NvIHNlIGhvdXZlciBlcnJvXG4gICAgICBpZiAobGFuZ3VhZ2UgIT09IFRSQU5TTEFUSU9OX0NPTkZJRy5mYWxsYmFja0xhbmd1YWdlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZmFsbGJhY2tMaWJUcmFuc2xhdGlvbnMgPSBhd2FpdCB0aGlzLmxvYWRMaWJyYXJ5VHJhbnNsYXRpb25zKFRSQU5TTEFUSU9OX0NPTkZJRy5mYWxsYmFja0xhbmd1YWdlIGFzIFN1cHBvcnRlZExhbmd1YWdlKTtcbiAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGlvbkxvYWRlcikge1xuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tBcHBUcmFuc2xhdGlvbnMgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uTG9hZGVyLmxvYWRUcmFuc2xhdGlvbnMoVFJBTlNMQVRJT05fQ09ORklHLmZhbGxiYWNrTGFuZ3VhZ2UpO1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdID0geyAuLi5mYWxsYmFja0xpYlRyYW5zbGF0aW9ucywgLi4uZmFsbGJhY2tBcHBUcmFuc2xhdGlvbnMgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdID0gZmFsbGJhY2tMaWJUcmFuc2xhdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWxsYmFjayB0cmFuc2xhdGlvbnMgbG9hZGVkIGZvciAke2xhbmd1YWdlfWApO1xuICAgICAgICB9IGNhdGNoIChmYWxsYmFja0Vycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgbG9hZGluZyBmYWxsYmFjayB0cmFuc2xhdGlvbnM6YCwgZmFsbGJhY2tFcnJvcik7XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdID0ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FycmVnYSB0cmFkdcOnw7VlcyBpbnRlcm5hcyBkYSBiaWJsaW90ZWNhXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRMaWJyYXJ5VHJhbnNsYXRpb25zKGxhbmd1YWdlOiBTdXBwb3J0ZWRMYW5ndWFnZSk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IGF3YWl0IGltcG9ydChgLi4vaTE4bi8ke2xhbmd1YWdlfS5qc29uYCk7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb25zLmRlZmF1bHQgfHwgdHJhbnNsYXRpb25zO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE5vIGxpYnJhcnkgdHJhbnNsYXRpb25zIGZvdW5kIGZvciAke2xhbmd1YWdlfWApO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFN0b3JlZExhbmd1YWdlKCk6IHZvaWQge1xuICAgIC8vIDEuIFByaW1laXJvLCB0ZW50YXIgb2J0ZXIgZG8gdG9rZW4gU2VuaW9yXG4gICAgY29uc3QgdG9rZW5Mb2NhbGUgPSB0aGlzLnNlbmlvclRva2VuU2VydmljZS5nZXRVc2VyTG9jYWxlKCk7XG4gICAgaWYgKHRva2VuTG9jYWxlKSB7XG4gICAgICBjb25zdCBtYXBwZWRMYW5ndWFnZSA9IG1hcFRva2VuTG9jYWxlVG9MYW5ndWFnZSh0b2tlbkxvY2FsZSk7XG4gICAgICBpZiAobWFwcGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFVzaW5nIGxhbmd1YWdlIGZyb20gU2VuaW9yIHRva2VuOiAke3Rva2VuTG9jYWxlfSAtPiAke21hcHBlZExhbmd1YWdlfWApO1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZS5uZXh0KG1hcHBlZExhbmd1YWdlIGFzIFN1cHBvcnRlZExhbmd1YWdlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIFNlZ3VuZG8sIHRlbnRhciBvYnRlciBkbyBsb2NhbFN0b3JhZ2VcbiAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShUUkFOU0xBVElPTl9DT05GSUcuc3RvcmFnZUtleSkgYXMgU3VwcG9ydGVkTGFuZ3VhZ2U7XG4gICAgY29uc3Qgc3VwcG9ydGVkQ29kZXMgPSBUUkFOU0xBVElPTl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzLm1hcChsYW5nID0+IGxhbmcuY29kZSk7XG4gICAgaWYgKHN0b3JlZCAmJiBzdXBwb3J0ZWRDb2Rlcy5pbmNsdWRlcyhzdG9yZWQpKSB7XG4gICAgICBjb25zb2xlLmxvZygnVXNpbmcgbGFuZ3VhZ2UgZnJvbSBsb2NhbFN0b3JhZ2U6Jywgc3RvcmVkKTtcbiAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlLm5leHQoc3RvcmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyAzLiBQb3Igw7psdGltbywgdXNhciBpZGlvbWEgcGFkcsOjb1xuICAgIGNvbnNvbGUubG9nKCdVc2luZyBkZWZhdWx0IGxhbmd1YWdlOicsIFRSQU5TTEFUSU9OX0NPTkZJRy5kZWZhdWx0TGFuZ3VhZ2UpO1xuICAgIHRoaXMuY3VycmVudExhbmd1YWdlLm5leHQoVFJBTlNMQVRJT05fQ09ORklHLmRlZmF1bHRMYW5ndWFnZSBhcyBTdXBwb3J0ZWRMYW5ndWFnZSk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VQYXJhbXModGV4dDogc3RyaW5nLCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xce1xceyhcXHcrKVxcfVxcfS9nLCAobWF0Y2gsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQgPyBwYXJhbXNba2V5XSA6IG1hdGNoO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKCk6IExhbmd1YWdlQ29uZmlnW10ge1xuICAgIHJldHVybiBUUkFOU0xBVElPTl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcsOnYSBvIHJlY2FycmVnYW1lbnRvIGRhcyB0cmFkdcOnw7VlcyAow7p0aWwgcGFyYSBkZXNlbnZvbHZpbWVudG8pXG4gICAqL1xuICBhc3luYyByZWxvYWRUcmFuc2xhdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnRMYW5ndWFnZS52YWx1ZTtcbiAgICBkZWxldGUgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdO1xuICAgIGF3YWl0IHRoaXMubG9hZFRyYW5zbGF0aW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idMOpbSB0b2RhcyBhcyBjaGF2ZXMgZGUgdHJhZHXDp8OjbyBjYXJyZWdhZGFzXG4gICAqL1xuICBnZXRMb2FkZWRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuY3VycmVudExhbmd1YWdlLnZhbHVlO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXTtcbiAgICByZXR1cm4gdHJhbnNsYXRpb25zID8gT2JqZWN0LmtleXModHJhbnNsYXRpb25zKSA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtIGPDs2RpZ28gZGUgaWRpb21hIMOpIHN1cG9ydGFkb1xuICAgKi9cbiAgcHJpdmF0ZSBpc1ZhbGlkTGFuZ3VhZ2UobG9jYWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdXBwb3J0ZWRDb2RlcyA9IFRSQU5TTEFUSU9OX0NPTkZJRy5zdXBwb3J0ZWRMYW5ndWFnZXMubWFwKGxhbmcgPT4gbGFuZy5jb2RlKTtcbiAgICByZXR1cm4gc3VwcG9ydGVkQ29kZXMuaW5jbHVkZXMobG9jYWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb25pdG9yYSBtdWRhbsOnYXMgbm8gdG9rZW4gU2VuaW9yIHBhcmEgYXR1YWxpemFyIGlkaW9tYSBhdXRvbWF0aWNhbWVudGVcbiAgICovXG4gIHByaXZhdGUgd2F0Y2hUb2tlbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZW5pb3JUb2tlblNlcnZpY2Uud2F0Y2hUb2tlbkNoYW5nZXMoKHRva2VuRGF0YSkgPT4ge1xuICAgICAgaWYgKHRva2VuRGF0YT8ubG9jYWxlKSB7XG4gICAgICAgIGNvbnN0IG1hcHBlZExhbmd1YWdlID0gbWFwVG9rZW5Mb2NhbGVUb0xhbmd1YWdlKHRva2VuRGF0YS5sb2NhbGUpO1xuICAgICAgICBpZiAobWFwcGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICBjb25zdCBuZXdMb2NhbGUgPSBtYXBwZWRMYW5ndWFnZSBhcyBTdXBwb3J0ZWRMYW5ndWFnZTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50TG9jYWxlID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKG5ld0xvY2FsZSAhPT0gY3VycmVudExvY2FsZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFRva2VuIGxvY2FsZSBjaGFuZ2VkOiAke3Rva2VuRGF0YS5sb2NhbGV9IC0+ICR7bmV3TG9jYWxlfWApO1xuICAgICAgICAgICAgdGhpcy5zZXRMYW5ndWFnZShuZXdMb2NhbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcsOnYSBhdHVhbGl6YcOnw6NvIGRvIGlkaW9tYSBiYXNlYWRvIG5vIHRva2VuIGF0dWFsXG4gICAqL1xuICBhc3luYyBzeW5jV2l0aFRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRva2VuTG9jYWxlID0gdGhpcy5zZW5pb3JUb2tlblNlcnZpY2UuZ2V0VXNlckxvY2FsZSgpO1xuICAgIGlmICh0b2tlbkxvY2FsZSkge1xuICAgICAgY29uc3QgbWFwcGVkTGFuZ3VhZ2UgPSBtYXBUb2tlbkxvY2FsZVRvTGFuZ3VhZ2UodG9rZW5Mb2NhbGUpO1xuICAgICAgaWYgKG1hcHBlZExhbmd1YWdlKSB7XG4gICAgICAgIGNvbnN0IG5ld0xvY2FsZSA9IG1hcHBlZExhbmd1YWdlIGFzIFN1cHBvcnRlZExhbmd1YWdlO1xuICAgICAgICBjb25zdCBjdXJyZW50TG9jYWxlID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgICAgIFxuICAgICAgICBpZiAobmV3TG9jYWxlICE9PSBjdXJyZW50TG9jYWxlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFN5bmNpbmcgbGFuZ3VhZ2Ugd2l0aCB0b2tlbjogJHt0b2tlbkxvY2FsZX0gLT4gJHtuZXdMb2NhbGV9YCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXRMYW5ndWFnZShuZXdMb2NhbGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtYWkvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RyxtQ0FBbUM7QUFDbkMsT0FBTyxnQkFBZ0IsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLGdCQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7OztBQUlsRCwyQ0FBMkM7QUFDM0MsTUFBTSxvQkFBb0IsR0FBbUM7SUFDM0QsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLE9BQU8sRUFBRSxnQkFBZ0I7Q0FDMUIsQ0FBQztBQVVGLE1BQU0sT0FBTyxrQkFBa0I7SUFPbkI7SUFORixlQUFlLENBQXNDO0lBQ3JELFlBQVksR0FBMkIsRUFBRSxDQUFDO0lBQzFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDckMsaUJBQWlCLENBQXFCO0lBRTlDLFlBQ1Usa0JBQXNDLEVBQ0wsTUFBMEI7UUFEM0QsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUc5Qyw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDeEMsa0JBQWtCLENBQUMsZUFBb0MsQ0FDeEQsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFFaEMsSUFBSSxDQUFDLGtCQUFr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QzVELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0QsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxTQUFTLEdBQUcsY0FBbUMsQ0FBQztnQkFDdEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBRWpELElBQUksU0FBUyxLQUFLLGFBQWEsRUFBRSxDQUFDO29CQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxXQUFXLE9BQU8sU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDM0UsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQWxTVSxrQkFBa0Isb0RBUVAsbUJBQW1COzRHQVI5QixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0NPTkZJRywgTGFuZ3VhZ2VDb25maWcsIG1hcFRva2VuTG9jYWxlVG9MYW5ndWFnZSB9IGZyb20gJy4uL2NvbmZpZy90cmFuc2xhdGlvbi5jb25maWcnO1xuaW1wb3J0IHsgU2VuaW9yVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi9zZW5pb3ItdG9rZW4uc2VydmljZSc7XG5cbi8vIEltcG9ydGFyIHRyYWR1w6fDtWVzIGVzdGF0aWNhbWVudGVcbmltcG9ydCB0cmFuc2xhdGlvbnNQdEJSIGZyb20gJy4uL2kxOG4vcHQtQlIuanNvbic7XG5pbXBvcnQgdHJhbnNsYXRpb25zRW5VUyBmcm9tICcuLi9pMThuL2VuLVVTLmpzb24nO1xuaW1wb3J0IHRyYW5zbGF0aW9uc0VzRVMgZnJvbSAnLi4vaTE4bi9lcy1FUy5qc29uJztcblxuZXhwb3J0IHR5cGUgU3VwcG9ydGVkTGFuZ3VhZ2UgPSAncHQtQlInIHwgJ2VuLVVTJyB8ICdlcy1FUyc7XG5cbi8vIE1hcGEgZGUgdHJhZHXDp8O1ZXMgaW50ZXJuYXMgZGEgYmlibGlvdGVjYVxuY29uc3QgTElCUkFSWV9UUkFOU0xBVElPTlM6IFJlY29yZDxTdXBwb3J0ZWRMYW5ndWFnZSwgYW55PiA9IHtcbiAgJ3B0LUJSJzogdHJhbnNsYXRpb25zUHRCUixcbiAgJ2VuLVVTJzogdHJhbnNsYXRpb25zRW5VUyxcbiAgJ2VzLUVTJzogdHJhbnNsYXRpb25zRXNFU1xufTtcblxuLy8gSW50ZXJmYWNlIHBhcmEgbyBsb2FkZXIgZGUgdHJhZHXDp8O1ZXMgKGR1Y2sgdHlwaW5nKVxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGlvbkxvYWRlciB7XG4gIGxvYWRUcmFuc2xhdGlvbnMobGFuZ3VhZ2U6IHN0cmluZyk6IFByb21pc2U8YW55Pjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjdXJyZW50TGFuZ3VhZ2UhOiBCZWhhdmlvclN1YmplY3Q8U3VwcG9ydGVkTGFuZ3VhZ2U+O1xuICBwcml2YXRlIHRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBwcml2YXRlIGxvYWRpbmdMYW5ndWFnZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvbkxvYWRlcj86IFRyYW5zbGF0aW9uTG9hZGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VuaW9yVG9rZW5TZXJ2aWNlOiBTZW5pb3JUb2tlblNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgnVHJhbnNsYXRpb25Mb2FkZXInKSBsb2FkZXI/OiBUcmFuc2xhdGlvbkxvYWRlclxuICApIHtcbiAgICAvLyBJbmljaWFsaXphciBvIEJlaGF2aW9yU3ViamVjdCBubyBjb25zdHJ1dG9yXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN1cHBvcnRlZExhbmd1YWdlPihcbiAgICAgIFRSQU5TTEFUSU9OX0NPTkZJRy5kZWZhdWx0TGFuZ3VhZ2UgYXMgU3VwcG9ydGVkTGFuZ3VhZ2VcbiAgICApO1xuICAgIHRoaXMudHJhbnNsYXRpb25Mb2FkZXIgPSBsb2FkZXI7XG4gICAgXG4gICAgdGhpcy5sb2FkU3RvcmVkTGFuZ3VhZ2UoKTtcbiAgICAvLyBDYXJyZWdhciB0cmFkdcOnw7VlcyBkbyBpZGlvbWEgaW5pY2lhbCBpbWVkaWF0YW1lbnRlXG4gICAgdGhpcy5sb2FkVHJhbnNsYXRpb25zKCk7XG4gICAgXG4gICAgLy8gTW9uaXRvcmFyIG11ZGFuw6dhcyBubyB0b2tlbiBwYXJhIGF0dWFsaXphciBpZGlvbWFcbiAgICB0aGlzLndhdGNoVG9rZW5DaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgY3VycmVudExhbmd1YWdlJCgpOiBPYnNlcnZhYmxlPFN1cHBvcnRlZExhbmd1YWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmd1YWdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0Q3VycmVudExhbmd1YWdlKCk6IFN1cHBvcnRlZExhbmd1YWdlIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gIH1cblxuICBhc3luYyBzZXRMYW5ndWFnZShsYW5ndWFnZTogU3VwcG9ydGVkTGFuZ3VhZ2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZS5uZXh0KGxhbmd1YWdlKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShUUkFOU0xBVElPTl9DT05GSUcuc3RvcmFnZUtleSwgbGFuZ3VhZ2UpO1xuICAgIGF3YWl0IHRoaXMubG9hZFRyYW5zbGF0aW9ucygpO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvclRyYW5zbGF0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuY3VycmVudExhbmd1YWdlLnZhbHVlO1xuICAgIGlmICghdGhpcy5pc0xhbmd1YWdlTG9hZGVkKGxhbmd1YWdlKSkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkVHJhbnNsYXRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIGFzIHRyYWR1w6fDtWVzIGRvIGlkaW9tYSBhdHVhbCBlc3TDo28gY2FycmVnYWRhc1xuICAgKi9cbiAgaXNMYW5ndWFnZUxvYWRlZChsYW5ndWFnZT86IFN1cHBvcnRlZExhbmd1YWdlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGFuZyA9IGxhbmd1YWdlIHx8IHRoaXMuY3VycmVudExhbmd1YWdlLnZhbHVlO1xuICAgIHJldHVybiAhIXRoaXMudHJhbnNsYXRpb25zW2xhbmddICYmIE9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRpb25zW2xhbmddKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBwYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcbiAgICBjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMuY3VycmVudExhbmd1YWdlLnZhbHVlO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRpb25zW2N1cnJlbnRMYW5nXTtcbiAgICBcbiAgICBpZiAoIXRyYW5zbGF0aW9ucyB8fCBPYmplY3Qua2V5cyh0cmFuc2xhdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gU2UgYXMgdHJhZHXDp8O1ZXMgbsOjbyBlc3TDo28gY2FycmVnYWRhcywgdGVudGFyIGNhcnJlZ2FyIGRlIGZvcm1hIGFzc8OtbmNyb25hXG4gICAgICBpZiAoIXRoaXMubG9hZGluZ0xhbmd1YWdlcy5oYXMoY3VycmVudExhbmcpKSB7XG4gICAgICAgIHRoaXMubG9hZFRyYW5zbGF0aW9ucygpLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHRyYW5zbGF0aW9uczonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKGBObyB0cmFuc2xhdGlvbnMgbG9hZGVkIGZvciBsYW5ndWFnZTogJHtjdXJyZW50TGFuZ31gKTtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgLy8gQnVzY2FyIHRyYWR1w6fDo28gKHN1cG9ydGEgZXN0cnV0dXJhIHBsYW5hIGUgYW5pbmhhZGEpXG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmdldE5lc3RlZFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9ucywga2V5KTtcbiAgICBcbiAgICBpZiAoIXRyYW5zbGF0aW9uKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFRyYW5zbGF0aW9uIGtleSBub3QgZm91bmQ6ICR7a2V5fWApO1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRyYW5zbGF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgY29uc29sZS53YXJuKGBUcmFuc2xhdGlvbiBrZXkgaXMgbm90IGEgc3RyaW5nOiAke2tleX1gKTtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgLy8gUmVwbGFjZSBwYXJhbWV0ZXJzIGlmIHByb3ZpZGVkXG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgcmV0dXJuIHRoaXMucmVwbGFjZVBhcmFtcyh0cmFuc2xhdGlvbiwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNsYXRpb247XG4gIH1cblxuICAvKipcbiAgICogQnVzY2EgdHJhZHXDp8OjbyBlbSBlc3RydXR1cmEgYW5pbmhhZGEgb3UgcGxhbmFcbiAgICovXG4gIHByaXZhdGUgZ2V0TmVzdGVkVHJhbnNsYXRpb24odHJhbnNsYXRpb25zOiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBQcmltZWlybyB0ZW50YSBidXNjYXIgZGlyZXRhbWVudGUgKGVzdHJ1dHVyYSBwbGFuYSlcbiAgICBpZiAodHJhbnNsYXRpb25zW2tleV0pIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbnNba2V5XTtcbiAgICB9XG5cbiAgICAvLyBTZSBuw6NvIGVuY29udHJvdSwgdGVudGEgYnVzY2FyIGVtIGVzdHJ1dHVyYSBhbmluaGFkYVxuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICBsZXQgY3VycmVudCA9IHRyYW5zbGF0aW9ucztcbiAgICBcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cykge1xuICAgICAgaWYgKGN1cnJlbnQgJiYgdHlwZW9mIGN1cnJlbnQgPT09ICdvYmplY3QnICYmIGsgaW4gY3VycmVudCkge1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ3N0cmluZycgPyBjdXJyZW50IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkVHJhbnNsYXRpb25zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgXG4gICAgLy8gU2UgasOhIGVzdMOhIGNhcnJlZ2FkbywgbsOjbyBjYXJyZWdhciBub3ZhbWVudGVcbiAgICBpZiAodGhpcy5pc0xhbmd1YWdlTG9hZGVkKGxhbmd1YWdlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBFdml0YXIgY2FycmVnYW1lbnRvcyBkdXBsaWNhZG9zXG4gICAgaWYgKHRoaXMubG9hZGluZ0xhbmd1YWdlcy5oYXMobGFuZ3VhZ2UpKSB7XG4gICAgICAvLyBBZ3VhcmRhciB1bSBwb3VjbyBlIHRlbnRhciBub3ZhbWVudGVcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDApKTtcbiAgICAgIGlmICh0aGlzLmlzTGFuZ3VhZ2VMb2FkZWQobGFuZ3VhZ2UpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgdGhpcy5sb2FkaW5nTGFuZ3VhZ2VzLmFkZChsYW5ndWFnZSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZG9Mb2FkVHJhbnNsYXRpb25zKGxhbmd1YWdlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gbG9hZFRyYW5zbGF0aW9uczonLCBlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZ0xhbmd1YWdlcy5kZWxldGUobGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSBhc3luYyBkb0xvYWRUcmFuc2xhdGlvbnMobGFuZ3VhZ2U6IFN1cHBvcnRlZExhbmd1YWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIDEuIENhcnJlZ2FyIHRyYWR1w6fDtWVzIGludGVybmFzIGRhIGJpYmxpb3RlY2FcbiAgICAgIGNvbnN0IGxpYlRyYW5zbGF0aW9ucyA9IGF3YWl0IHRoaXMubG9hZExpYnJhcnlUcmFuc2xhdGlvbnMobGFuZ3VhZ2UpO1xuICAgICAgXG4gICAgICAvLyAyLiBTZSBow6EgdW0gbG9hZGVyIGN1c3RvbWl6YWRvLCBjYXJyZWdhciB0cmFkdcOnw7VlcyBkYSBhcGxpY2HDp8Ojb1xuICAgICAgaWYgKHRoaXMudHJhbnNsYXRpb25Mb2FkZXIpIHtcbiAgICAgICAgY29uc3QgYXBwVHJhbnNsYXRpb25zID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvbkxvYWRlci5sb2FkVHJhbnNsYXRpb25zKGxhbmd1YWdlKTtcbiAgICAgICAgLy8gTWVyZ2U6IHRyYWR1w6fDtWVzIGRhIGFwcCBzb2JyZXNjcmV2ZW0gYXMgZGEgbGliXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSA9IHsgLi4ubGliVHJhbnNsYXRpb25zLCAuLi5hcHBUcmFuc2xhdGlvbnMgfTtcbiAgICAgICAgY29uc29sZS5sb2coYFRyYW5zbGF0aW9ucyBsb2FkZWQgZm9yICR7bGFuZ3VhZ2V9OmAsIE9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSkubGVuZ3RoLCAna2V5cycpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFNlIG7Do28gaMOhIGxvYWRlciwgdXNhciBhcGVuYXMgdHJhZHXDp8O1ZXMgZGEgbGliXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uc1tsYW5ndWFnZV0gPSBsaWJUcmFuc2xhdGlvbnM7XG4gICAgICBjb25zb2xlLmxvZyhgTGlicmFyeSB0cmFuc2xhdGlvbnMgbG9hZGVkIGZvciAke2xhbmd1YWdlfTpgLCBPYmplY3Qua2V5cyh0aGlzLnRyYW5zbGF0aW9uc1tsYW5ndWFnZV0pLmxlbmd0aCwgJ2tleXMnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgbG9hZGluZyB0cmFuc2xhdGlvbnMgZm9yICR7bGFuZ3VhZ2V9OmAsIGVycm9yKTtcbiAgICAgIC8vIEZhbGxiYWNrIHBhcmEgbyBpZGlvbWEgcGFkcsOjbyBzZSBob3V2ZXIgZXJyb1xuICAgICAgaWYgKGxhbmd1YWdlICE9PSBUUkFOU0xBVElPTl9DT05GSUcuZmFsbGJhY2tMYW5ndWFnZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTGliVHJhbnNsYXRpb25zID0gYXdhaXQgdGhpcy5sb2FkTGlicmFyeVRyYW5zbGF0aW9ucyhUUkFOU0xBVElPTl9DT05GSUcuZmFsbGJhY2tMYW5ndWFnZSBhcyBTdXBwb3J0ZWRMYW5ndWFnZSk7XG4gICAgICAgICAgaWYgKHRoaXMudHJhbnNsYXRpb25Mb2FkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrQXBwVHJhbnNsYXRpb25zID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvbkxvYWRlci5sb2FkVHJhbnNsYXRpb25zKFRSQU5TTEFUSU9OX0NPTkZJRy5mYWxsYmFja0xhbmd1YWdlKTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSA9IHsgLi4uZmFsbGJhY2tMaWJUcmFuc2xhdGlvbnMsIC4uLmZhbGxiYWNrQXBwVHJhbnNsYXRpb25zIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSA9IGZhbGxiYWNrTGliVHJhbnNsYXRpb25zO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgRmFsbGJhY2sgdHJhbnNsYXRpb25zIGxvYWRlZCBmb3IgJHtsYW5ndWFnZX1gKTtcbiAgICAgICAgfSBjYXRjaCAoZmFsbGJhY2tFcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGxvYWRpbmcgZmFsbGJhY2sgdHJhbnNsYXRpb25zOmAsIGZhbGxiYWNrRXJyb3IpO1xuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSA9IHt9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhcnJlZ2EgdHJhZHXDp8O1ZXMgaW50ZXJuYXMgZGEgYmlibGlvdGVjYVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTGlicmFyeVRyYW5zbGF0aW9ucyhsYW5ndWFnZTogU3VwcG9ydGVkTGFuZ3VhZ2UpOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gTElCUkFSWV9UUkFOU0xBVElPTlNbbGFuZ3VhZ2VdIHx8IHt9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE5vIGxpYnJhcnkgdHJhbnNsYXRpb25zIGZvdW5kIGZvciAke2xhbmd1YWdlfWApO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFN0b3JlZExhbmd1YWdlKCk6IHZvaWQge1xuICAgIC8vIDEuIFByaW1laXJvLCB0ZW50YXIgb2J0ZXIgZG8gdG9rZW4gU2VuaW9yXG4gICAgY29uc3QgdG9rZW5Mb2NhbGUgPSB0aGlzLnNlbmlvclRva2VuU2VydmljZS5nZXRVc2VyTG9jYWxlKCk7XG4gICAgaWYgKHRva2VuTG9jYWxlKSB7XG4gICAgICBjb25zdCBtYXBwZWRMYW5ndWFnZSA9IG1hcFRva2VuTG9jYWxlVG9MYW5ndWFnZSh0b2tlbkxvY2FsZSk7XG4gICAgICBpZiAobWFwcGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFVzaW5nIGxhbmd1YWdlIGZyb20gU2VuaW9yIHRva2VuOiAke3Rva2VuTG9jYWxlfSAtPiAke21hcHBlZExhbmd1YWdlfWApO1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZS5uZXh0KG1hcHBlZExhbmd1YWdlIGFzIFN1cHBvcnRlZExhbmd1YWdlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIFNlZ3VuZG8sIHRlbnRhciBvYnRlciBkbyBsb2NhbFN0b3JhZ2VcbiAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShUUkFOU0xBVElPTl9DT05GSUcuc3RvcmFnZUtleSkgYXMgU3VwcG9ydGVkTGFuZ3VhZ2U7XG4gICAgY29uc3Qgc3VwcG9ydGVkQ29kZXMgPSBUUkFOU0xBVElPTl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzLm1hcChsYW5nID0+IGxhbmcuY29kZSk7XG4gICAgaWYgKHN0b3JlZCAmJiBzdXBwb3J0ZWRDb2Rlcy5pbmNsdWRlcyhzdG9yZWQpKSB7XG4gICAgICBjb25zb2xlLmxvZygnVXNpbmcgbGFuZ3VhZ2UgZnJvbSBsb2NhbFN0b3JhZ2U6Jywgc3RvcmVkKTtcbiAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlLm5leHQoc3RvcmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyAzLiBQb3Igw7psdGltbywgdXNhciBpZGlvbWEgcGFkcsOjb1xuICAgIGNvbnNvbGUubG9nKCdVc2luZyBkZWZhdWx0IGxhbmd1YWdlOicsIFRSQU5TTEFUSU9OX0NPTkZJRy5kZWZhdWx0TGFuZ3VhZ2UpO1xuICAgIHRoaXMuY3VycmVudExhbmd1YWdlLm5leHQoVFJBTlNMQVRJT05fQ09ORklHLmRlZmF1bHRMYW5ndWFnZSBhcyBTdXBwb3J0ZWRMYW5ndWFnZSk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VQYXJhbXModGV4dDogc3RyaW5nLCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xce1xceyhcXHcrKVxcfVxcfS9nLCAobWF0Y2gsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQgPyBwYXJhbXNba2V5XSA6IG1hdGNoO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKCk6IExhbmd1YWdlQ29uZmlnW10ge1xuICAgIHJldHVybiBUUkFOU0xBVElPTl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcsOnYSBvIHJlY2FycmVnYW1lbnRvIGRhcyB0cmFkdcOnw7VlcyAow7p0aWwgcGFyYSBkZXNlbnZvbHZpbWVudG8pXG4gICAqL1xuICBhc3luYyByZWxvYWRUcmFuc2xhdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnRMYW5ndWFnZS52YWx1ZTtcbiAgICBkZWxldGUgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdO1xuICAgIGF3YWl0IHRoaXMubG9hZFRyYW5zbGF0aW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idMOpbSB0b2RhcyBhcyBjaGF2ZXMgZGUgdHJhZHXDp8OjbyBjYXJyZWdhZGFzXG4gICAqL1xuICBnZXRMb2FkZWRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuY3VycmVudExhbmd1YWdlLnZhbHVlO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXTtcbiAgICByZXR1cm4gdHJhbnNsYXRpb25zID8gT2JqZWN0LmtleXModHJhbnNsYXRpb25zKSA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtIGPDs2RpZ28gZGUgaWRpb21hIMOpIHN1cG9ydGFkb1xuICAgKi9cbiAgcHJpdmF0ZSBpc1ZhbGlkTGFuZ3VhZ2UobG9jYWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdXBwb3J0ZWRDb2RlcyA9IFRSQU5TTEFUSU9OX0NPTkZJRy5zdXBwb3J0ZWRMYW5ndWFnZXMubWFwKGxhbmcgPT4gbGFuZy5jb2RlKTtcbiAgICByZXR1cm4gc3VwcG9ydGVkQ29kZXMuaW5jbHVkZXMobG9jYWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb25pdG9yYSBtdWRhbsOnYXMgbm8gdG9rZW4gU2VuaW9yIHBhcmEgYXR1YWxpemFyIGlkaW9tYSBhdXRvbWF0aWNhbWVudGVcbiAgICovXG4gIHByaXZhdGUgd2F0Y2hUb2tlbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZW5pb3JUb2tlblNlcnZpY2Uud2F0Y2hUb2tlbkNoYW5nZXMoKHRva2VuRGF0YSkgPT4ge1xuICAgICAgaWYgKHRva2VuRGF0YT8ubG9jYWxlKSB7XG4gICAgICAgIGNvbnN0IG1hcHBlZExhbmd1YWdlID0gbWFwVG9rZW5Mb2NhbGVUb0xhbmd1YWdlKHRva2VuRGF0YS5sb2NhbGUpO1xuICAgICAgICBpZiAobWFwcGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICBjb25zdCBuZXdMb2NhbGUgPSBtYXBwZWRMYW5ndWFnZSBhcyBTdXBwb3J0ZWRMYW5ndWFnZTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50TG9jYWxlID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKG5ld0xvY2FsZSAhPT0gY3VycmVudExvY2FsZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFRva2VuIGxvY2FsZSBjaGFuZ2VkOiAke3Rva2VuRGF0YS5sb2NhbGV9IC0+ICR7bmV3TG9jYWxlfWApO1xuICAgICAgICAgICAgdGhpcy5zZXRMYW5ndWFnZShuZXdMb2NhbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcsOnYSBhdHVhbGl6YcOnw6NvIGRvIGlkaW9tYSBiYXNlYWRvIG5vIHRva2VuIGF0dWFsXG4gICAqL1xuICBhc3luYyBzeW5jV2l0aFRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRva2VuTG9jYWxlID0gdGhpcy5zZW5pb3JUb2tlblNlcnZpY2UuZ2V0VXNlckxvY2FsZSgpO1xuICAgIGlmICh0b2tlbkxvY2FsZSkge1xuICAgICAgY29uc3QgbWFwcGVkTGFuZ3VhZ2UgPSBtYXBUb2tlbkxvY2FsZVRvTGFuZ3VhZ2UodG9rZW5Mb2NhbGUpO1xuICAgICAgaWYgKG1hcHBlZExhbmd1YWdlKSB7XG4gICAgICAgIGNvbnN0IG5ld0xvY2FsZSA9IG1hcHBlZExhbmd1YWdlIGFzIFN1cHBvcnRlZExhbmd1YWdlO1xuICAgICAgICBjb25zdCBjdXJyZW50TG9jYWxlID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UudmFsdWU7XG4gICAgICAgIFxuICAgICAgICBpZiAobmV3TG9jYWxlICE9PSBjdXJyZW50TG9jYWxlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFN5bmNpbmcgbGFuZ3VhZ2Ugd2l0aCB0b2tlbjogJHt0b2tlbkxvY2FsZX0gLT4gJHtuZXdMb2NhbGV9YCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXRMYW5ndWFnZShuZXdMb2NhbGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1054,6 +1054,144 @@ function getLanguageInfo(code) {
|
|
|
1054
1054
|
return SUPPORTED_LANGUAGES.find(lang => lang.code === code) || null;
|
|
1055
1055
|
}
|
|
1056
1056
|
|
|
1057
|
+
var translationsPtBR = {
|
|
1058
|
+
"design.components_ai.bulk_delete_title": "Exclusão em Massa",
|
|
1059
|
+
"design.components_ai.bulk_delete_warning": "Você está prestes a excluir <strong>{{count}}</strong> registro(s).",
|
|
1060
|
+
"design.components_ai.bulk_delete_description": "Esta ação não pode ser desfeita. Os registros serão excluídos um por vez.",
|
|
1061
|
+
"design.components_ai.bulk_delete_progress": "Progresso",
|
|
1062
|
+
"design.components_ai.bulk_delete_success_count": "sucesso",
|
|
1063
|
+
"design.components_ai.bulk_delete_error_count": "erro(s)",
|
|
1064
|
+
"design.components_ai.bulk_delete_code_label": "Código",
|
|
1065
|
+
"design.components_ai.bulk_delete_success_message": "Todos os registros foram excluídos com sucesso!",
|
|
1066
|
+
"design.components_ai.bulk_delete_completed_with_errors": "Processo concluído com {{count}} erro(s).",
|
|
1067
|
+
"design.components_ai.bulk_delete_status_pending": "Pendente",
|
|
1068
|
+
"design.components_ai.bulk_delete_status_processing": "Processando...",
|
|
1069
|
+
"design.components_ai.bulk_delete_status_success": "Excluído",
|
|
1070
|
+
"design.components_ai.bulk_delete_status_error": "Erro",
|
|
1071
|
+
"design.components_ai.bulk_delete_error_generic": "Erro ao excluir",
|
|
1072
|
+
"design.components_ai.bulk_delete_confirm": "Confirmar Exclusão",
|
|
1073
|
+
"design.components_ai.export_data_title": "Exportar Dados",
|
|
1074
|
+
"design.components_ai.export_format_title": "Formato de Exportação",
|
|
1075
|
+
"design.components_ai.export_scope_title": "Registros a Exportar",
|
|
1076
|
+
"design.components_ai.export_columns_title": "Colunas a Exportar",
|
|
1077
|
+
"design.components_ai.export_excel_description": "Planilha editável com formatação",
|
|
1078
|
+
"design.components_ai.export_pdf_description": "Documento portátil para impressão",
|
|
1079
|
+
"design.components_ai.export_all_records": "Todos os registros",
|
|
1080
|
+
"design.components_ai.export_all_records_description": "Exportar todos os registros da tabela",
|
|
1081
|
+
"design.components_ai.export_selected_records": "Registros selecionados",
|
|
1082
|
+
"design.components_ai.export_selected_records_description": "Exportar apenas os registros marcados",
|
|
1083
|
+
"design.components_ai.export_records_count": "registro(s)",
|
|
1084
|
+
"design.components_ai.export_select_all_columns": "Selecionar todas",
|
|
1085
|
+
"design.components_ai.export_clear_selection": "Limpar seleção",
|
|
1086
|
+
"design.components_ai.export_columns_summary": "de",
|
|
1087
|
+
"design.components_ai.export_columns_selected": "coluna(s) selecionada(s)",
|
|
1088
|
+
"design.components_ai.export_data_sheet_name": "Dados",
|
|
1089
|
+
"design.components_ai.export_pdf_title": "Exportação de Dados",
|
|
1090
|
+
"design.components_ai.export_exported_at": "Exportado em",
|
|
1091
|
+
"design.components_ai.export_total_records": "Total de registros",
|
|
1092
|
+
"design.components_ai.breadcrumb_home": "Início",
|
|
1093
|
+
"design.components_ai.components.form": "Formulário",
|
|
1094
|
+
"design.components_ai.components.save": "Salvar",
|
|
1095
|
+
"design.components_ai.components.cancel": "Cancelar",
|
|
1096
|
+
"design.components_ai.cancel": "Cancelar",
|
|
1097
|
+
"design.components_ai.close": "Fechar",
|
|
1098
|
+
"design.components_ai.export": "Exportar"
|
|
1099
|
+
};
|
|
1100
|
+
|
|
1101
|
+
var translationsEnUS = {
|
|
1102
|
+
"design.components_ai.bulk_delete_title": "Bulk Delete",
|
|
1103
|
+
"design.components_ai.bulk_delete_warning": "You are about to delete <strong>{{count}}</strong> record(s).",
|
|
1104
|
+
"design.components_ai.bulk_delete_description": "This action cannot be undone. Records will be deleted one by one.",
|
|
1105
|
+
"design.components_ai.bulk_delete_progress": "Progress",
|
|
1106
|
+
"design.components_ai.bulk_delete_success_count": "success",
|
|
1107
|
+
"design.components_ai.bulk_delete_error_count": "error(s)",
|
|
1108
|
+
"design.components_ai.bulk_delete_code_label": "Code",
|
|
1109
|
+
"design.components_ai.bulk_delete_success_message": "All records were deleted successfully!",
|
|
1110
|
+
"design.components_ai.bulk_delete_completed_with_errors": "Process completed with {{count}} error(s).",
|
|
1111
|
+
"design.components_ai.bulk_delete_status_pending": "Pending",
|
|
1112
|
+
"design.components_ai.bulk_delete_status_processing": "Processing...",
|
|
1113
|
+
"design.components_ai.bulk_delete_status_success": "Deleted",
|
|
1114
|
+
"design.components_ai.bulk_delete_status_error": "Error",
|
|
1115
|
+
"design.components_ai.bulk_delete_error_generic": "Error deleting",
|
|
1116
|
+
"design.components_ai.bulk_delete_confirm": "Confirm Deletion",
|
|
1117
|
+
"design.components_ai.export_data_title": "Export Data",
|
|
1118
|
+
"design.components_ai.export_format_title": "Export Format",
|
|
1119
|
+
"design.components_ai.export_scope_title": "Records to Export",
|
|
1120
|
+
"design.components_ai.export_columns_title": "Columns to Export",
|
|
1121
|
+
"design.components_ai.export_excel_description": "Editable spreadsheet with formatting",
|
|
1122
|
+
"design.components_ai.export_pdf_description": "Portable document for printing",
|
|
1123
|
+
"design.components_ai.export_all_records": "All records",
|
|
1124
|
+
"design.components_ai.export_all_records_description": "Export all table records",
|
|
1125
|
+
"design.components_ai.export_selected_records": "Selected records",
|
|
1126
|
+
"design.components_ai.export_selected_records_description": "Export only marked records",
|
|
1127
|
+
"design.components_ai.export_records_count": "record(s)",
|
|
1128
|
+
"design.components_ai.export_select_all_columns": "Select all",
|
|
1129
|
+
"design.components_ai.export_clear_selection": "Clear selection",
|
|
1130
|
+
"design.components_ai.export_columns_summary": "of",
|
|
1131
|
+
"design.components_ai.export_columns_selected": "column(s) selected",
|
|
1132
|
+
"design.components_ai.export_data_sheet_name": "Data",
|
|
1133
|
+
"design.components_ai.export_pdf_title": "Data Export",
|
|
1134
|
+
"design.components_ai.export_exported_at": "Exported at",
|
|
1135
|
+
"design.components_ai.export_total_records": "Total records",
|
|
1136
|
+
"design.components_ai.breadcrumb_home": "Home",
|
|
1137
|
+
"design.components_ai.components.form": "Form",
|
|
1138
|
+
"design.components_ai.components.save": "Save",
|
|
1139
|
+
"design.components_ai.components.cancel": "Cancel",
|
|
1140
|
+
"design.components_ai.cancel": "Cancel",
|
|
1141
|
+
"design.components_ai.close": "Close",
|
|
1142
|
+
"design.components_ai.export": "Export"
|
|
1143
|
+
};
|
|
1144
|
+
|
|
1145
|
+
var translationsEsES = {
|
|
1146
|
+
"design.components_ai.bulk_delete_title": "Eliminación Masiva",
|
|
1147
|
+
"design.components_ai.bulk_delete_warning": "Está a punto de eliminar <strong>{{count}}</strong> registro(s).",
|
|
1148
|
+
"design.components_ai.bulk_delete_description": "Esta acción no se puede deshacer. Los registros se eliminarán uno por uno.",
|
|
1149
|
+
"design.components_ai.bulk_delete_progress": "Progreso",
|
|
1150
|
+
"design.components_ai.bulk_delete_success_count": "éxito",
|
|
1151
|
+
"design.components_ai.bulk_delete_error_count": "error(es)",
|
|
1152
|
+
"design.components_ai.bulk_delete_code_label": "Código",
|
|
1153
|
+
"design.components_ai.bulk_delete_success_message": "¡Todos los registros fueron eliminados con éxito!",
|
|
1154
|
+
"design.components_ai.bulk_delete_completed_with_errors": "Proceso completado con {{count}} error(es).",
|
|
1155
|
+
"design.components_ai.bulk_delete_status_pending": "Pendiente",
|
|
1156
|
+
"design.components_ai.bulk_delete_status_processing": "Procesando...",
|
|
1157
|
+
"design.components_ai.bulk_delete_status_success": "Eliminado",
|
|
1158
|
+
"design.components_ai.bulk_delete_status_error": "Error",
|
|
1159
|
+
"design.components_ai.bulk_delete_error_generic": "Error al eliminar",
|
|
1160
|
+
"design.components_ai.bulk_delete_confirm": "Confirmar Eliminación",
|
|
1161
|
+
"design.components_ai.export_data_title": "Exportar Datos",
|
|
1162
|
+
"design.components_ai.export_format_title": "Formato de Exportación",
|
|
1163
|
+
"design.components_ai.export_scope_title": "Registros a Exportar",
|
|
1164
|
+
"design.components_ai.export_columns_title": "Columnas a Exportar",
|
|
1165
|
+
"design.components_ai.export_excel_description": "Hoja de cálculo editable con formato",
|
|
1166
|
+
"design.components_ai.export_pdf_description": "Documento portátil para impresión",
|
|
1167
|
+
"design.components_ai.export_all_records": "Todos los registros",
|
|
1168
|
+
"design.components_ai.export_all_records_description": "Exportar todos los registros de la tabla",
|
|
1169
|
+
"design.components_ai.export_selected_records": "Registros seleccionados",
|
|
1170
|
+
"design.components_ai.export_selected_records_description": "Exportar solo los registros marcados",
|
|
1171
|
+
"design.components_ai.export_records_count": "registro(s)",
|
|
1172
|
+
"design.components_ai.export_select_all_columns": "Seleccionar todas",
|
|
1173
|
+
"design.components_ai.export_clear_selection": "Limpiar selección",
|
|
1174
|
+
"design.components_ai.export_columns_summary": "de",
|
|
1175
|
+
"design.components_ai.export_columns_selected": "columna(s) seleccionada(s)",
|
|
1176
|
+
"design.components_ai.export_data_sheet_name": "Datos",
|
|
1177
|
+
"design.components_ai.export_pdf_title": "Exportación de Datos",
|
|
1178
|
+
"design.components_ai.export_exported_at": "Exportado en",
|
|
1179
|
+
"design.components_ai.export_total_records": "Total de registros",
|
|
1180
|
+
"design.components_ai.breadcrumb_home": "Inicio",
|
|
1181
|
+
"design.components_ai.components.form": "Formulario",
|
|
1182
|
+
"design.components_ai.components.save": "Guardar",
|
|
1183
|
+
"design.components_ai.components.cancel": "Cancelar",
|
|
1184
|
+
"design.components_ai.cancel": "Cancelar",
|
|
1185
|
+
"design.components_ai.close": "Cerrar",
|
|
1186
|
+
"design.components_ai.export": "Exportar"
|
|
1187
|
+
};
|
|
1188
|
+
|
|
1189
|
+
// Mapa de traduções internas da biblioteca
|
|
1190
|
+
const LIBRARY_TRANSLATIONS = {
|
|
1191
|
+
'pt-BR': translationsPtBR,
|
|
1192
|
+
'en-US': translationsEnUS,
|
|
1193
|
+
'es-ES': translationsEsES
|
|
1194
|
+
};
|
|
1057
1195
|
class TranslationService {
|
|
1058
1196
|
seniorTokenService;
|
|
1059
1197
|
currentLanguage;
|
|
@@ -1213,8 +1351,7 @@ class TranslationService {
|
|
|
1213
1351
|
*/
|
|
1214
1352
|
async loadLibraryTranslations(language) {
|
|
1215
1353
|
try {
|
|
1216
|
-
|
|
1217
|
-
return translations.default || translations;
|
|
1354
|
+
return LIBRARY_TRANSLATIONS[language] || {};
|
|
1218
1355
|
}
|
|
1219
1356
|
catch (error) {
|
|
1220
1357
|
console.warn(`No library translations found for ${language}`);
|