lib-portal-angular 0.0.87 → 0.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2022/lib/components/components.module.mjs +65 -40
  2. package/esm2022/lib/components/csv-importer/csv-importer.component.mjs +92 -0
  3. package/esm2022/lib/components/data-excel-exporter/IExcelExportConfig.mjs +2 -0
  4. package/esm2022/lib/components/data-excel-exporter/data-excel-exporter.component.mjs +126 -0
  5. package/esm2022/lib/components/data-excel-import/data-excel-importer.component.mjs +198 -0
  6. package/esm2022/lib/components/multi-select/multi-select.component.mjs +165 -115
  7. package/esm2022/lib/components/pdf-data-handler/argenta-pdf-data-handler.component.mjs +147 -0
  8. package/esm2022/lib/components/pdf-data-handler/function/formatToBrazilianNumber.mjs +7 -0
  9. package/esm2022/lib/components/pdf-data-handler/function/parseBrazilianNumber.mjs +9 -0
  10. package/esm2022/lib/components/pdf-data-handler/interface/DataRow.mjs +2 -0
  11. package/esm2022/lib/components/pdf-data-handler/interface/PdfExportConfig.mjs +2 -0
  12. package/esm2022/lib/components/pdf-data-handler/interface/PdfTableStyles.mjs +2 -0
  13. package/esm2022/lib/components/pdf-data-handler/interface/RowCalculation.mjs +2 -0
  14. package/esm2022/lib/components/pdf-data-handler/interface/TotalizerConfig.mjs +2 -0
  15. package/esm2022/lib/components/pdf-download/argenta-pdf-download.component.mjs +51 -0
  16. package/esm2022/public-api.mjs +36 -5
  17. package/fesm2022/lib-portal-angular.mjs +1095 -422
  18. package/fesm2022/lib-portal-angular.mjs.map +1 -1
  19. package/lib/components/components.module.d.ts +10 -5
  20. package/lib/components/csv-importer/csv-importer.component.d.ts +19 -0
  21. package/lib/components/data-excel-exporter/IExcelExportConfig.d.ts +21 -0
  22. package/lib/components/data-excel-exporter/data-excel-exporter.component.d.ts +9 -0
  23. package/lib/components/data-excel-import/data-excel-importer.component.d.ts +44 -0
  24. package/lib/components/multi-select/multi-select.component.d.ts +20 -9
  25. package/lib/components/pdf-data-handler/argenta-pdf-data-handler.component.d.ts +15 -0
  26. package/lib/components/pdf-data-handler/function/formatToBrazilianNumber.d.ts +1 -0
  27. package/lib/components/pdf-data-handler/function/parseBrazilianNumber.d.ts +1 -0
  28. package/lib/components/pdf-data-handler/interface/DataRow.d.ts +3 -0
  29. package/lib/components/pdf-data-handler/interface/PdfExportConfig.d.ts +12 -0
  30. package/lib/components/pdf-data-handler/interface/PdfTableStyles.d.ts +28 -0
  31. package/lib/components/pdf-data-handler/interface/RowCalculation.d.ts +4 -0
  32. package/lib/components/pdf-data-handler/interface/TotalizerConfig.d.ts +8 -0
  33. package/lib/components/pdf-download/argenta-pdf-download.component.d.ts +13 -0
  34. package/package.json +1 -1
  35. package/public-api.d.ts +34 -3
@@ -1,42 +1,47 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { NgSelectModule } from '@ng-select/ng-select';
5
- import { AutofocusDirective } from '../directive/autofocus-directive/autofocus.directive';
6
- import { CepMaskDirective } from '../directive/cep-mask.directive';
7
- import { CnpjMaskDirective } from '../directive/cnpj-mask.directive';
8
- import { CpfMaskDirective } from '../directive/cpf-mask.directive';
9
- import { LucideIconsModule } from '../icons/lucide-icons.module';
10
- import { AccordionArgentaComponent } from './accordion/accordion.component';
11
- import { AlertComponent } from './alert/alert.component';
12
- import { AppBackgroundComponent } from './app-background/app-background.component';
13
- import { BadgeComponent } from './badge/badge.component';
14
- import { BasicRegistrationComponent } from './basic-registration/basic-registration.component';
15
- import { ButtonComponent } from './button/button.component';
16
- import { CalendarArgentaComponent } from './calendar-argenta/calendar-argenta.component';
17
- import { CardComponent } from './card/card.component';
18
- import { CheckboxComponent } from './checkbox/checkbox.component';
19
- import { CodeHighlightComponent } from './code-highlight/code-highlight.component';
20
- import { ConfirmationComponent } from './confirmation/confirmation.component';
21
- import { CustomPaginationComponent } from './custom-pagination/custom-pagination.component';
22
- import { CustomSwitchComponent } from './custom-switch/custom-switch.component';
23
- import { DragDropListComponent } from './drag-drop-list/drag-drop-list.component';
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { NgSelectModule } from "@ng-select/ng-select";
5
+ import { AutofocusDirective } from "../directive/autofocus-directive/autofocus.directive";
6
+ import { CepMaskDirective } from "../directive/cep-mask.directive";
7
+ import { CnpjMaskDirective } from "../directive/cnpj-mask.directive";
8
+ import { CpfMaskDirective } from "../directive/cpf-mask.directive";
9
+ import { LucideIconsModule } from "../icons/lucide-icons.module";
10
+ import { AccordionArgentaComponent } from "./accordion/accordion.component";
11
+ import { AlertComponent } from "./alert/alert.component";
12
+ import { AppBackgroundComponent } from "./app-background/app-background.component";
13
+ import { BadgeComponent } from "./badge/badge.component";
14
+ import { BasicRegistrationComponent } from "./basic-registration/basic-registration.component";
15
+ import { ButtonComponent } from "./button/button.component";
16
+ import { CalendarArgentaComponent } from "./calendar-argenta/calendar-argenta.component";
17
+ import { CardComponent } from "./card/card.component";
18
+ import { CheckboxComponent } from "./checkbox/checkbox.component";
19
+ import { CodeHighlightComponent } from "./code-highlight/code-highlight.component";
20
+ import { ConfirmationComponent } from "./confirmation/confirmation.component";
21
+ import { CustomPaginationComponent } from "./custom-pagination/custom-pagination.component";
22
+ import { CustomSwitchComponent } from "./custom-switch/custom-switch.component";
23
+ import { FileUploadComponent } from "./file-upload/file-upload.component";
24
+ import { InputComponent } from "./imput/input.component";
25
+ import { JsonViewerComponent } from "./json-viewer/json-viewer.component";
26
+ import { ModalComponent } from "./modal/modal.component";
27
+ import { MultiSelectCategoryComponent } from "./multi-select-category/multi-select-category.component";
28
+ import { MultiSelectComponent } from "./multi-select/multi-select.component";
29
+ import { RadioComponent } from "./radio/radio.component";
30
+ import { SearchCustomerComponent } from "./search-customer/search-customer.component";
31
+ import { SearchInputComponent } from "./search-input/search-input.component";
32
+ import { SelectComponent } from "./select/select.component";
33
+ import { TabComponent } from "./tab/tab.component";
34
+ import { DataTableComponent } from "./tables/data-table.component";
35
+ import { TextareaComponent } from "./textarea/textarea.component";
36
+ import { TreeNodeComponent } from "./tree-node/tree-node.component";
24
37
  import { DynamicModalComponent } from "./dynamic-modal/dynamic-modal.component";
25
38
  import { DynamicTableComponent } from "./dynamic-table/dynamic-table.component";
26
- import { FileUploadComponent } from './file-upload/file-upload.component';
27
- import { InputComponent } from './imput/input.component';
28
- import { JsonViewerComponent } from './json-viewer/json-viewer.component';
29
- import { ModalComponent } from './modal/modal.component';
30
- import { MultiSelectCategoryComponent } from './multi-select-category/multi-select-category.component';
31
- import { MultiSelectComponent } from './multi-select/multi-select.component';
32
- import { RadioComponent } from './radio/radio.component';
33
- import { SearchCustomerComponent } from './search-customer/search-customer.component';
34
- import { SearchInputComponent } from './search-input/search-input.component';
35
- import { SelectComponent } from './select/select.component';
36
- import { TabComponent } from './tab/tab.component';
37
- import { DataTableComponent } from './tables/data-table.component';
38
- import { TextareaComponent } from './textarea/textarea.component';
39
- import { TreeNodeComponent } from './tree-node/tree-node.component';
39
+ import { ArgentaPdfDataHandlerComponent } from "./pdf-data-handler/argenta-pdf-data-handler.component";
40
+ import { ArgentaPdfDownloadComponent } from "./pdf-download/argenta-pdf-download.component";
41
+ import { DragDropListComponent } from "./drag-drop-list/drag-drop-list.component";
42
+ import { DataExcelExporterComponent } from "./data-excel-exporter/data-excel-exporter.component";
43
+ import { DataExcelImporterComponent } from "./data-excel-import/data-excel-importer.component";
44
+ import { CsvImporterComponent } from "./csv-importer/csv-importer.component";
40
45
  import * as i0 from "@angular/core";
41
46
  export class ComponentsModule {
42
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -73,7 +78,12 @@ export class ComponentsModule {
73
78
  ModalComponent,
74
79
  DragDropListComponent,
75
80
  DynamicModalComponent,
76
- DynamicTableComponent], imports: [CommonModule,
81
+ DynamicTableComponent,
82
+ ArgentaPdfDataHandlerComponent,
83
+ ArgentaPdfDownloadComponent,
84
+ DataExcelExporterComponent,
85
+ DataExcelImporterComponent,
86
+ CsvImporterComponent], imports: [CommonModule,
77
87
  FormsModule,
78
88
  ReactiveFormsModule,
79
89
  NgSelectModule,
@@ -114,7 +124,12 @@ export class ComponentsModule {
114
124
  ModalComponent,
115
125
  DragDropListComponent,
116
126
  DynamicModalComponent,
117
- DynamicTableComponent] }); }
127
+ DynamicTableComponent,
128
+ ArgentaPdfDataHandlerComponent,
129
+ ArgentaPdfDownloadComponent,
130
+ DataExcelExporterComponent,
131
+ DataExcelImporterComponent,
132
+ CsvImporterComponent] }); }
118
133
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
119
134
  FormsModule,
120
135
  ReactiveFormsModule,
@@ -162,6 +177,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
162
177
  DragDropListComponent,
163
178
  DynamicModalComponent,
164
179
  DynamicTableComponent,
180
+ ArgentaPdfDataHandlerComponent,
181
+ ArgentaPdfDownloadComponent,
182
+ DataExcelExporterComponent,
183
+ DataExcelImporterComponent,
184
+ CsvImporterComponent,
165
185
  ],
166
186
  imports: [
167
187
  CommonModule,
@@ -209,7 +229,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
209
229
  DragDropListComponent,
210
230
  DynamicModalComponent,
211
231
  DynamicTableComponent,
232
+ ArgentaPdfDataHandlerComponent,
233
+ ArgentaPdfDownloadComponent,
234
+ DataExcelExporterComponent,
235
+ DataExcelImporterComponent,
236
+ CsvImporterComponent,
212
237
  ],
213
238
  }]
214
239
  }] });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUE7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDeEYs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O3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsNEJBQTRCO3dCQUM1Qix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnXG5pbXBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmUvYXV0b2ZvY3VzLWRpcmVjdGl2ZS9hdXRvZm9jdXMuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQ2VwTWFza0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZS9jZXAtbWFzay5kaXJlY3RpdmUnXG5pbXBvcnQgeyBDbnBqTWFza0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZS9jbnBqLW1hc2suZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQ3BmTWFza0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZS9jcGYtbWFzay5kaXJlY3RpdmUnXG5pbXBvcnQgeyBMdWNpZGVJY29uc01vZHVsZSB9IGZyb20gJy4uL2ljb25zL2x1Y2lkZS1pY29ucy5tb2R1bGUnXG5pbXBvcnQgeyBBY2NvcmRpb25BcmdlbnRhQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9hbGVydC9hbGVydC5jb21wb25lbnQnXG5pbXBvcnQgeyBBcHBCYWNrZ3JvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAtYmFja2dyb3VuZC9hcHAtYmFja2dyb3VuZC5jb21wb25lbnQnXG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50J1xuaW1wb3J0IHsgQmFzaWNSZWdpc3RyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2Jhc2ljLXJlZ2lzdHJhdGlvbi9iYXNpYy1yZWdpc3RyYXRpb24uY29tcG9uZW50J1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCdcbmltcG9ydCB7IENhbGVuZGFyQXJnZW50YUNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItYXJnZW50YS9jYWxlbmRhci1hcmdlbnRhLmNvbXBvbmVudCdcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQvY2FyZC5jb21wb25lbnQnXG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50J1xuaW1wb3J0IHsgQ29kZUhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4vY29kZS1oaWdobGlnaHQvY29kZS1oaWdobGlnaHQuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IEN1c3RvbVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS1wYWdpbmF0aW9uL2N1c3RvbS1wYWdpbmF0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IEN1c3RvbVN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXN3aXRjaC9jdXN0b20tc3dpdGNoLmNvbXBvbmVudCdcbmltcG9ydCB7IERyYWdEcm9wTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZHJhZy1kcm9wLWxpc3QvZHJhZy1kcm9wLWxpc3QuY29tcG9uZW50J1xuaW1wb3J0IHsgRHluYW1pY01vZGFsQ29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1tb2RhbC9keW5hbWljLW1vZGFsLmNvbXBvbmVudFwiXG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50XCJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCdcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbXB1dC9pbnB1dC5jb21wb25lbnQnXG5pbXBvcnQgeyBKc29uVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9qc29uLXZpZXdlci9qc29uLXZpZXdlci5jb21wb25lbnQnXG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwvbW9kYWwuY29tcG9uZW50J1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktc2VsZWN0LWNhdGVnb3J5L211bHRpLXNlbGVjdC1jYXRlZ29yeS5jb21wb25lbnQnXG5pbXBvcnQgeyBNdWx0aVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8vcmFkaW8uY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoQ3VzdG9tZXJDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1jdXN0b21lci9zZWFyY2gtY3VzdG9tZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlcy9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnXG5pbXBvcnQgeyBUcmVlTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vdHJlZS1ub2RlL3RyZWUtbm9kZS5jb21wb25lbnQnXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgTXVsdGlTZWxlY3RDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIENvZGVIaWdobGlnaHRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgICBDZXBNYXNrRGlyZWN0aXZlLFxuICAgIENucGpNYXNrRGlyZWN0aXZlLFxuICAgIENwZk1hc2tEaXJlY3RpdmUsXG4gICAgQ3VzdG9tUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBUcmVlTm9kZUNvbXBvbmVudCxcbiAgICBTZWFyY2hJbnB1dENvbXBvbmVudCxcbiAgICBBcHBCYWNrZ3JvdW5kQ29tcG9uZW50LFxuICAgIEJhc2ljUmVnaXN0cmF0aW9uQ29tcG9uZW50LFxuICAgIEN1c3RvbVN3aXRjaENvbXBvbmVudCxcbiAgICBTZWFyY2hDdXN0b21lckNvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdENhdGVnb3J5Q29tcG9uZW50LFxuICAgIENhbGVuZGFyQXJnZW50YUNvbXBvbmVudCxcbiAgICBBY2NvcmRpb25BcmdlbnRhQ29tcG9uZW50LFxuICAgIEpzb25WaWV3ZXJDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgRHJhZ0Ryb3BMaXN0Q29tcG9uZW50LFxuICAgIER5bmFtaWNNb2RhbENvbXBvbmVudCxcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBMdWNpZGVJY29uc01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRleHRhcmVhQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBDb2RlSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIENvbmZpcm1hdGlvbkNvbXBvbmVudCxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgQ2VwTWFza0RpcmVjdGl2ZSxcbiAgICBDbnBqTWFza0RpcmVjdGl2ZSxcbiAgICBDcGZNYXNrRGlyZWN0aXZlLFxuICAgIEN1c3RvbVBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgVHJlZU5vZGVDb21wb25lbnQsXG4gICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgTHVjaWRlSWNvbnNNb2R1bGUsXG4gICAgQXBwQmFja2dyb3VuZENvbXBvbmVudCxcbiAgICBCYXNpY1JlZ2lzdHJhdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Td2l0Y2hDb21wb25lbnQsXG4gICAgU2VhcmNoQ3VzdG9tZXJDb21wb25lbnQsXG4gICAgVGFiQ29tcG9uZW50LFxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXG4gICAgTXVsdGlTZWxlY3RDYXRlZ29yeUNvbXBvbmVudCxcbiAgICBDYWxlbmRhckFyZ2VudGFDb21wb25lbnQsXG4gICAgQWNjb3JkaW9uQXJnZW50YUNvbXBvbmVudCxcbiAgICBKc29uVmlld2VyQ29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIERyYWdEcm9wTGlzdENvbXBvbmVudCxcbiAgICBEeW5hbWljTW9kYWxDb21wb25lbnQsXG4gICAgRHluYW1pY1RhYmxlQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHt9XG4iXX0=
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYs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LGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQixvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBuZy1zZWxlY3Qvbmctc2VsZWN0XCI7XG5pbXBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlL2F1dG9mb2N1cy1kaXJlY3RpdmUvYXV0b2ZvY3VzLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgQ2VwTWFza0RpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvY2VwLW1hc2suZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBDbnBqTWFza0RpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvY25wai1tYXNrLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgQ3BmTWFza0RpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvY3BmLW1hc2suZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBMdWNpZGVJY29uc01vZHVsZSB9IGZyb20gXCIuLi9pY29ucy9sdWNpZGUtaWNvbnMubW9kdWxlXCI7XG5pbXBvcnQgeyBBY2NvcmRpb25BcmdlbnRhQ29tcG9uZW50IH0gZnJvbSBcIi4vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSBcIi4vYWxlcnQvYWxlcnQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBcHBCYWNrZ3JvdW5kQ29tcG9uZW50IH0gZnJvbSBcIi4vYXBwLWJhY2tncm91bmQvYXBwLWJhY2tncm91bmQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gXCIuL2JhZGdlL2JhZGdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmFzaWNSZWdpc3RyYXRpb25Db21wb25lbnQgfSBmcm9tIFwiLi9iYXNpYy1yZWdpc3RyYXRpb24vYmFzaWMtcmVnaXN0cmF0aW9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IENhbGVuZGFyQXJnZW50YUNvbXBvbmVudCB9IGZyb20gXCIuL2NhbGVuZGFyLWFyZ2VudGEvY2FsZW5kYXItYXJnZW50YS5jb21wb25lbnRcIjtcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tIFwiLi9jYXJkL2NhcmQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gXCIuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29kZUhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gXCIuL2NvZGUtaGlnaGxpZ2h0L2NvZGUtaGlnaGxpZ2h0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEN1c3RvbVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tIFwiLi9jdXN0b20tcGFnaW5hdGlvbi9jdXN0b20tcGFnaW5hdGlvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEN1c3RvbVN3aXRjaENvbXBvbmVudCB9IGZyb20gXCIuL2N1c3RvbS1zd2l0Y2gvY3VzdG9tLXN3aXRjaC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4vaW1wdXQvaW5wdXQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBKc29uVmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vanNvbi12aWV3ZXIvanNvbi12aWV3ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gXCIuL21vZGFsL21vZGFsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gXCIuL211bHRpLXNlbGVjdC1jYXRlZ29yeS9tdWx0aS1zZWxlY3QtY2F0ZWdvcnkuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdENvbXBvbmVudCB9IGZyb20gXCIuL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gXCIuL3JhZGlvL3JhZGlvLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VhcmNoQ3VzdG9tZXJDb21wb25lbnQgfSBmcm9tIFwiLi9zZWFyY2gtY3VzdG9tZXIvc2VhcmNoLWN1c3RvbWVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gXCIuL3RhYi90YWIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi90YWJsZXMvZGF0YS10YWJsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSBcIi4vdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUcmVlTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuL3RyZWUtbm9kZS90cmVlLW5vZGUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLW1vZGFsL2R5bmFtaWMtbW9kYWwuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBcmdlbnRhUGRmRGF0YUhhbmRsZXJDb21wb25lbnQgfSBmcm9tIFwiLi9wZGYtZGF0YS1oYW5kbGVyL2FyZ2VudGEtcGRmLWRhdGEtaGFuZGxlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEFyZ2VudGFQZGZEb3dubG9hZENvbXBvbmVudCB9IGZyb20gXCIuL3BkZi1kb3dubG9hZC9hcmdlbnRhLXBkZi1kb3dubG9hZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyYWdEcm9wTGlzdENvbXBvbmVudCB9IGZyb20gXCIuL2RyYWctZHJvcC1saXN0L2RyYWctZHJvcC1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGF0YUV4Y2VsRXhwb3J0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9kYXRhLWV4Y2VsLWV4cG9ydGVyL2RhdGEtZXhjZWwtZXhwb3J0ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEYXRhRXhjZWxJbXBvcnRlckNvbXBvbmVudCB9IGZyb20gXCIuL2RhdGEtZXhjZWwtaW1wb3J0L2RhdGEtZXhjZWwtaW1wb3J0ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDc3ZJbXBvcnRlckNvbXBvbmVudCB9IGZyb20gXCIuL2Nzdi1pbXBvcnRlci9jc3YtaW1wb3J0ZXIuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRleHRhcmVhQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgQ29kZUhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtYXRpb25Db21wb25lbnQsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIENlcE1hc2tEaXJlY3RpdmUsXG4gICAgQ25wak1hc2tEaXJlY3RpdmUsXG4gICAgQ3BmTWFza0RpcmVjdGl2ZSxcbiAgICBDdXN0b21QYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFRyZWVOb2RlQ29tcG9uZW50LFxuICAgIFNlYXJjaElucHV0Q29tcG9uZW50LFxuICAgIEFwcEJhY2tncm91bmRDb21wb25lbnQsXG4gICAgQmFzaWNSZWdpc3RyYXRpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tU3dpdGNoQ29tcG9uZW50LFxuICAgIFNlYXJjaEN1c3RvbWVyQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0Q2F0ZWdvcnlDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJBcmdlbnRhQ29tcG9uZW50LFxuICAgIEFjY29yZGlvbkFyZ2VudGFDb21wb25lbnQsXG4gICAgSnNvblZpZXdlckNvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBEcmFnRHJvcExpc3RDb21wb25lbnQsXG4gICAgRHluYW1pY01vZGFsQ29tcG9uZW50LFxuICAgIER5bmFtaWNUYWJsZUNvbXBvbmVudCxcbiAgICBBcmdlbnRhUGRmRGF0YUhhbmRsZXJDb21wb25lbnQsXG4gICAgQXJnZW50YVBkZkRvd25sb2FkQ29tcG9uZW50LFxuICAgIERhdGFFeGNlbEV4cG9ydGVyQ29tcG9uZW50LFxuICAgIERhdGFFeGNlbEltcG9ydGVyQ29tcG9uZW50LFxuICAgIENzdkltcG9ydGVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgTHVjaWRlSWNvbnNNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgTXVsdGlTZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgQ29kZUhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtYXRpb25Db21wb25lbnQsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIENlcE1hc2tEaXJlY3RpdmUsXG4gICAgQ25wak1hc2tEaXJlY3RpdmUsXG4gICAgQ3BmTWFza0RpcmVjdGl2ZSxcbiAgICBDdXN0b21QYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFRyZWVOb2RlQ29tcG9uZW50LFxuICAgIFNlYXJjaElucHV0Q29tcG9uZW50LFxuICAgIEx1Y2lkZUljb25zTW9kdWxlLFxuICAgIEFwcEJhY2tncm91bmRDb21wb25lbnQsXG4gICAgQmFzaWNSZWdpc3RyYXRpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tU3dpdGNoQ29tcG9uZW50LFxuICAgIFNlYXJjaEN1c3RvbWVyQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0Q2F0ZWdvcnlDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJBcmdlbnRhQ29tcG9uZW50LFxuICAgIEFjY29yZGlvbkFyZ2VudGFDb21wb25lbnQsXG4gICAgSnNvblZpZXdlckNvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBEcmFnRHJvcExpc3RDb21wb25lbnQsXG4gICAgRHluYW1pY01vZGFsQ29tcG9uZW50LFxuICAgIER5bmFtaWNUYWJsZUNvbXBvbmVudCxcbiAgICBBcmdlbnRhUGRmRGF0YUhhbmRsZXJDb21wb25lbnQsXG4gICAgQXJnZW50YVBkZkRvd25sb2FkQ29tcG9uZW50LFxuICAgIERhdGFFeGNlbEV4cG9ydGVyQ29tcG9uZW50LFxuICAgIERhdGFFeGNlbEltcG9ydGVyQ29tcG9uZW50LFxuICAgIENzdkltcG9ydGVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,92 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import * as XLSX from "xlsx";
3
+ import * as i0 from "@angular/core";
4
+ export class CsvImporterComponent {
5
+ constructor() {
6
+ this.config = {
7
+ acceptedFileTypes: [".xlsx", ".xls", ".csv"],
8
+ detectHeaders: true,
9
+ delimiter: ";",
10
+ onImport: () => { },
11
+ };
12
+ }
13
+ handleFileInput(event) {
14
+ const file = event.target.files[0];
15
+ if (file) {
16
+ const reader = new FileReader();
17
+ // Detecta se o arquivo é CSV
18
+ if (file.name.endsWith(".csv")) {
19
+ reader.onload = (e) => {
20
+ const csvData = e.target.result;
21
+ const delimiter = this.config.delimiter ?? ";"; // Usa delimitador configurado ou padrão
22
+ const jsonData = this.parseCSV(csvData, delimiter);
23
+ this.processData(jsonData);
24
+ };
25
+ reader.readAsText(file);
26
+ }
27
+ else {
28
+ // Processa arquivos Excel (XLSX/XLS)
29
+ reader.onload = (e) => {
30
+ const data = new Uint8Array(e.target.result);
31
+ const workbook = XLSX.read(data, { type: "array" });
32
+ const sheetName = workbook.SheetNames[0];
33
+ const worksheet = workbook.Sheets[sheetName];
34
+ const jsonData = XLSX.utils.sheet_to_json(worksheet, {
35
+ header: 1,
36
+ defval: "",
37
+ });
38
+ this.processData(jsonData);
39
+ };
40
+ reader.readAsArrayBuffer(file);
41
+ }
42
+ }
43
+ }
44
+ parseCSV(csvData, delimiter = ";") {
45
+ return csvData
46
+ .split("\n")
47
+ .map((row) => row.split(delimiter).map((cell) => cell.trim()));
48
+ }
49
+ processData(jsonData) {
50
+ const headers = this.getHeaders(jsonData);
51
+ const dataRows = jsonData.slice(headers ? 1 : 0);
52
+ const formattedData = this.formatData(dataRows, headers);
53
+ this.config.onImport(formattedData);
54
+ }
55
+ getHeaders(data) {
56
+ if (this.config.customHeaders) {
57
+ return this.config.customHeaders;
58
+ }
59
+ if (this.config.detectHeaders && data.length > 0) {
60
+ return data[0].map((header, index) => this.normalizeHeader(header || `col_${index}`));
61
+ }
62
+ return null; // Nenhum cabeçalho detectado
63
+ }
64
+ formatData(dataRows, headers) {
65
+ if (!headers) {
66
+ return dataRows; // Retorna dados brutos se não houver cabeçalhos
67
+ }
68
+ return dataRows.map((row) => {
69
+ const record = {};
70
+ headers.forEach((header, index) => {
71
+ record[header] = row[index] ?? "";
72
+ });
73
+ return record;
74
+ });
75
+ }
76
+ normalizeHeader(header) {
77
+ return String(header)
78
+ .normalize("NFD")
79
+ .replace(/[\u0300-\u036f]/g, "")
80
+ .replace(/\s+/g, "_")
81
+ .toLowerCase();
82
+ }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsvImporterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CsvImporterComponent, selector: "argenta-csv-importer", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"excel-importer\">\n <input\n type=\"file\"\n (change)=\"handleFileInput($event)\"\n [accept]=\"config.acceptedFileTypes?.join(',')\"\n style=\"display: none\"\n #fileInput\n />\n <button (click)=\"fileInput.click()\">Importar Arquivo</button>\n</div>\n", styles: [".excel-importer button{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);padding:10px 20px;border:none;cursor:pointer}.excel-importer button:hover{background-color:var(--secondary-color)}\n"] }); }
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsvImporterComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: "argenta-csv-importer", template: "<div class=\"excel-importer\">\n <input\n type=\"file\"\n (change)=\"handleFileInput($event)\"\n [accept]=\"config.acceptedFileTypes?.join(',')\"\n style=\"display: none\"\n #fileInput\n />\n <button (click)=\"fileInput.click()\">Importar Arquivo</button>\n</div>\n", styles: [".excel-importer button{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);padding:10px 20px;border:none;cursor:pointer}.excel-importer button:hover{background-color:var(--secondary-color)}\n"] }]
89
+ }], propDecorators: { config: [{
90
+ type: Input
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWltcG9ydGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY3N2LWltcG9ydGVyL2Nzdi1pbXBvcnRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Nzdi1pbXBvcnRlci9jc3YtaW1wb3J0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7O0FBZTdCLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFNVyxXQUFNLEdBQTJCO1lBQ3hDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFDNUMsYUFBYSxFQUFFLElBQUk7WUFDbkIsU0FBUyxFQUFFLEdBQUc7WUFDZCxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztTQUNuQixDQUFDO0tBbUZIO0lBakZDLGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUVoQyw2QkFBNkI7WUFDN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO29CQUN6QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1B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Q1osT0FBTyxRQUFRLENBQUMsQ0FBQyxnREFBZ0Q7U0FDbEU7UUFFRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsTUFBVztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDbEIsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUNoQixPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO2FBQy9CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO2FBQ3BCLFdBQVcsRUFBRSxDQUFDO0lBQ25CLENBQUM7K0dBeEZVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBGQ2hCakMsNlJBVUE7OzRGRE1hLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxzQkFBc0I7OEJBS3ZCLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tIFwieGxzeFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENzdkV4Y2VsSW1wb3J0ZXJDb25maWcge1xuICBhY2NlcHRlZEZpbGVUeXBlcz86IHN0cmluZ1tdOyAvLyBUaXBvcyBkZSBhcnF1aXZvcyBwZXJtaXRpZG9zIChwYWRyw6NvOiAueGxzeCwgLnhscywgLmNzdilcbiAgZGV0ZWN0SGVhZGVycz86IGJvb2xlYW47IC8vIERldGVjdGFyIGF1dG9tYXRpY2FtZW50ZSBjYWJlw6dhbGhvcyAocGFkcsOjbzogdHJ1ZSlcbiAgY3VzdG9tSGVhZGVycz86IHN0cmluZ1tdOyAvLyBGb3JuZWNlciBjYWJlw6dhbGhvcyBwZXJzb25hbGl6YWRvc1xuICBkZWxpbWl0ZXI/OiBzdHJpbmc7IC8vIERlbGltaXRhZG9yIHBhcmEgYXJxdWl2b3MgQ1NWIChwYWRyw6NvOiBcIjtcIilcbiAgb25JbXBvcnQ6IChkYXRhOiBhbnlbXSkgPT4gdm9pZDsgLy8gQ2FsbGJhY2sgcGFyYSBtYW5pcHVsYXIgb3MgZGFkb3Ncbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFyZ2VudGEtY3N2LWltcG9ydGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY3N2LWltcG9ydGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jc3YtaW1wb3J0ZXIuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIENzdkltcG9ydGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29uZmlnOiBDc3ZFeGNlbEltcG9ydGVyQ29uZmlnID0ge1xuICAgIGFjY2VwdGVkRmlsZVR5cGVzOiBbXCIueGxzeFwiLCBcIi54bHNcIiwgXCIuY3N2XCJdLFxuICAgIGRldGVjdEhlYWRlcnM6IHRydWUsXG4gICAgZGVsaW1pdGVyOiBcIjtcIixcbiAgICBvbkltcG9ydDogKCkgPT4ge30sXG4gIH07XG5cbiAgaGFuZGxlRmlsZUlucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICAvLyBEZXRlY3RhIHNlIG8gYXJxdWl2byDDqSBDU1ZcbiAgICAgIGlmIChmaWxlLm5hbWUuZW5kc1dpdGgoXCIuY3N2XCIpKSB7XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgY3N2RGF0YSA9IGUudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICBjb25zdCBkZWxpbWl0ZXIgPSB0aGlzLmNvbmZpZy5kZWxpbWl0ZXIgPz8gXCI7XCI7IC8vIFVzYSBkZWxpbWl0YWRvciBjb25maWd1cmFkbyBvdSBwYWRyw6NvXG4gICAgICAgICAgY29uc3QganNvbkRhdGEgPSB0aGlzLnBhcnNlQ1NWKGNzdkRhdGEsIGRlbGltaXRlcik7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzRGF0YShqc29uRGF0YSk7XG4gICAgICAgIH07XG4gICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUHJvY2Vzc2EgYXJxdWl2b3MgRXhjZWwgKFhMU1gvWExTKVxuICAgICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgVWludDhBcnJheShlLnRhcmdldC5yZXN1bHQpO1xuICAgICAgICAgIGNvbnN0IHdvcmtib29rID0gWExTWC5yZWFkKGRhdGEsIHsgdHlwZTogXCJhcnJheVwiIH0pO1xuICAgICAgICAgIGNvbnN0IHNoZWV0TmFtZSA9IHdvcmtib29rLlNoZWV0TmFtZXNbMF07XG4gICAgICAgICAgY29uc3Qgd29ya3NoZWV0ID0gd29ya2Jvb2suU2hlZXRzW3NoZWV0TmFtZV07XG5cbiAgICAgICAgICBjb25zdCBqc29uRGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbjxhbnlbXT4od29ya3NoZWV0LCB7XG4gICAgICAgICAgICBoZWFkZXI6IDEsXG4gICAgICAgICAgICBkZWZ2YWw6IFwiXCIsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnByb2Nlc3NEYXRhKGpzb25EYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDU1YoY3N2RGF0YTogc3RyaW5nLCBkZWxpbWl0ZXI6IHN0cmluZyA9IFwiO1wiKTogYW55W11bXSB7XG4gICAgcmV0dXJuIGNzdkRhdGFcbiAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgLm1hcCgocm93KSA9PiByb3cuc3BsaXQoZGVsaW1pdGVyKS5tYXAoKGNlbGwpID0+IGNlbGwudHJpbSgpKSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEYXRhKGpzb25EYXRhOiBhbnlbXVtdKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycyhqc29uRGF0YSk7XG4gICAgY29uc3QgZGF0YVJvd3MgPSBqc29uRGF0YS5zbGljZShoZWFkZXJzID8gMSA6IDApO1xuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0YSA9IHRoaXMuZm9ybWF0RGF0YShkYXRhUm93cywgaGVhZGVycyk7XG4gICAgdGhpcy5jb25maWcub25JbXBvcnQoZm9ybWF0dGVkRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlcnMoZGF0YTogYW55W11bXSk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmN1c3RvbUhlYWRlcnMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jdXN0b21IZWFkZXJzO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuZGV0ZWN0SGVhZGVycyAmJiBkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBkYXRhWzBdLm1hcCgoaGVhZGVyOiBhbnksIGluZGV4OiBudW1iZXIpID0+XG4gICAgICAgIHRoaXMubm9ybWFsaXplSGVhZGVyKGhlYWRlciB8fCBgY29sXyR7aW5kZXh9YClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsOyAvLyBOZW5odW0gY2FiZcOnYWxobyBkZXRlY3RhZG9cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RGF0YShkYXRhUm93czogYW55W11bXSwgaGVhZGVyczogc3RyaW5nW10gfCBudWxsKTogYW55W10ge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgcmV0dXJuIGRhdGFSb3dzOyAvLyBSZXRvcm5hIGRhZG9zIGJydXRvcyBzZSBuw6NvIGhvdXZlciBjYWJlw6dhbGhvc1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhUm93cy5tYXAoKHJvdykgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBhbnkgPSB7fTtcbiAgICAgIGhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyLCBpbmRleCkgPT4ge1xuICAgICAgICByZWNvcmRbaGVhZGVyXSA9IHJvd1tpbmRleF0gPz8gXCJcIjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSGVhZGVyKGhlYWRlcjogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKGhlYWRlcilcbiAgICAgIC5ub3JtYWxpemUoXCJORkRcIilcbiAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoL1xccysvZywgXCJfXCIpXG4gICAgICAudG9Mb3dlckNhc2UoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV4Y2VsLWltcG9ydGVyXCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJmaWxlXCJcbiAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQpXCJcbiAgICBbYWNjZXB0XT1cImNvbmZpZy5hY2NlcHRlZEZpbGVUeXBlcz8uam9pbignLCcpXCJcbiAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIlxuICAgICNmaWxlSW5wdXRcbiAgLz5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5JbXBvcnRhciBBcnF1aXZvPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUV4Y2VsRXhwb3J0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWV4Y2VsLWV4cG9ydGVyL0lFeGNlbEV4cG9ydENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRXhjZWxFeHBvcnRDb25maWcge1xuICBidXR0b25MYWJlbDogc3RyaW5nOyAvLyBUZXh0byBkbyBib3TDo29cbiAgZmlsZU5hbWU6IHN0cmluZzsgLy8gTm9tZSBkbyBhcnF1aXZvIEV4Y2VsXG4gIHNoZWV0TmFtZT86IHN0cmluZzsgLy8gTm9tZSBkYSBwbGFuaWxoYVxuICB0aXRsZT86IHN0cmluZzsgLy8gVMOtdHVsbyBubyB0b3BvIGRhIHBsYW5pbGhhXG4gIHRpdGxlV2lkdGhzPzogbnVtYmVyW107IC8vIExhcmd1cmEgcGVyc29uYWxpemFkYSBkYXMgY29sdW5hcyBkbyB0w610dWxvXG4gIHRhYmxlSGVhZGVycz86IHN0cmluZ1tdOyAvLyBDYWJlw6dhbGhvcyBkYSB0YWJlbGFcbiAgdGFibGVLZXlzPzogc3RyaW5nW107IC8vIENoYXZlcyBkb3MgZGFkb3NcbiAgbnVtZXJpY0NvbHVtbnM/OiBzdHJpbmdbXTsgLy8gQ29sdW5hcyBudW3DqXJpY2FzXG4gIGNvbHVtbldpZHRocz86IG51bWJlcltdOyAvLyBMYXJndXJhIGRhcyBjb2x1bmFzIGVtIGNhcmFjdGVyZXNcbiAgbXVsdGlwbGVTaGVldHM/OiB7XG4gICAgc2hlZXROYW1lOiBzdHJpbmc7IC8vIE5vbWUgZGEgcGxhbmlsaGFcbiAgICB0aXRsZT86IHN0cmluZzsgLy8gVMOtdHVsbyBubyB0b3BvIGRhIHBsYW5pbGhhXG4gICAgdGl0bGVXaWR0aHM/OiBudW1iZXJbXTsgLy8gTGFyZ3VyYSBwZXJzb25hbGl6YWRhIGRvIHTDrXR1bG9cbiAgICB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdOyAvLyBDYWJlw6dhbGhvcyBkYSB0YWJlbGFcbiAgICB0YWJsZUtleXM6IHN0cmluZ1tdOyAvLyBDaGF2ZXMgZG9zIGRhZG9zXG4gICAgbnVtZXJpY0NvbHVtbnM/OiBzdHJpbmdbXTsgLy8gQ29sdW5hcyBudW3DqXJpY2FzXG4gICAgY29sdW1uV2lkdGhzPzogbnVtYmVyW107IC8vIExhcmd1cmEgZGFzIGNvbHVuYXMgZW0gY2FyYWN0ZXJlc1xuICAgIGRhdGE6IGFueVtdOyAvLyBEYWRvcyBkYSBwbGFuaWxoYVxuICB9W107XG59XG4iXX0=
@@ -0,0 +1,126 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import * as XLSX from "xlsx";
3
+ import * as i0 from "@angular/core";
4
+ export class DataExcelExporterComponent {
5
+ constructor() {
6
+ this.data = [];
7
+ }
8
+ exportToExcel() {
9
+ if (!this.config || (!this.data.length && !this.config.multipleSheets)) {
10
+ console.warn("Nenhuma configuração ou dados fornecidos.");
11
+ return;
12
+ }
13
+ const workbook = XLSX.utils.book_new();
14
+ // Verifica se múltiplas planilhas estão configuradas
15
+ if (this.config.multipleSheets) {
16
+ this.config.multipleSheets.forEach((sheetConfig) => {
17
+ const worksheet = XLSX.utils.aoa_to_sheet([]);
18
+ // Adiciona o título, se houver
19
+ let startRow = 0;
20
+ if (sheetConfig.title) {
21
+ XLSX.utils.sheet_add_aoa(worksheet, [[sheetConfig.title]], {
22
+ origin: "A1",
23
+ });
24
+ // Define larguras personalizadas do título
25
+ if (sheetConfig.titleWidths) {
26
+ worksheet["!cols"] = sheetConfig.titleWidths.map((width) => ({
27
+ wch: width,
28
+ }));
29
+ }
30
+ // Mescla o título
31
+ if (sheetConfig.tableHeaders) {
32
+ worksheet["!merges"] = worksheet["!merges"] || [];
33
+ worksheet["!merges"].push({
34
+ s: { r: 0, c: 0 },
35
+ e: { r: 0, c: sheetConfig.tableHeaders.length - 1 },
36
+ });
37
+ }
38
+ startRow = 1;
39
+ }
40
+ // Adiciona cabeçalhos
41
+ if (sheetConfig.tableHeaders) {
42
+ XLSX.utils.sheet_add_aoa(worksheet, [sheetConfig.tableHeaders], {
43
+ origin: `A${startRow + 1}`,
44
+ });
45
+ }
46
+ // Adiciona dados
47
+ if (sheetConfig.data) {
48
+ XLSX.utils.sheet_add_json(worksheet, sheetConfig.data, {
49
+ origin: `A${startRow + 2}`,
50
+ skipHeader: true,
51
+ });
52
+ }
53
+ // Define larguras das colunas
54
+ if (sheetConfig.columnWidths) {
55
+ worksheet["!cols"] = sheetConfig.columnWidths.map((width) => ({
56
+ wch: width,
57
+ }));
58
+ }
59
+ // Adiciona a planilha ao workbook
60
+ XLSX.utils.book_append_sheet(workbook, worksheet, sheetConfig.sheetName);
61
+ });
62
+ }
63
+ else {
64
+ // Caso não haja múltiplas planilhas, processa a planilha única
65
+ const worksheet = XLSX.utils.aoa_to_sheet([]);
66
+ // Adiciona título, se houver
67
+ let startRow = 0;
68
+ if (this.config.title) {
69
+ XLSX.utils.sheet_add_aoa(worksheet, [[this.config.title]], {
70
+ origin: "A1",
71
+ });
72
+ // Define larguras do título
73
+ if (this.config.titleWidths) {
74
+ worksheet["!cols"] = this.config.titleWidths.map((width) => ({
75
+ wch: width,
76
+ }));
77
+ }
78
+ // Mescla o título
79
+ if (this.config.tableHeaders) {
80
+ worksheet["!merges"] = worksheet["!merges"] || [];
81
+ worksheet["!merges"].push({
82
+ s: { r: 0, c: 0 },
83
+ e: { r: 0, c: this.config.tableHeaders.length - 1 },
84
+ });
85
+ }
86
+ startRow = 1;
87
+ }
88
+ // Adiciona cabeçalhos
89
+ if (this.config.tableHeaders) {
90
+ XLSX.utils.sheet_add_aoa(worksheet, [this.config.tableHeaders], {
91
+ origin: `A${startRow + 1}`,
92
+ });
93
+ }
94
+ // Adiciona dados
95
+ XLSX.utils.sheet_add_json(worksheet, this.data, {
96
+ origin: `A${startRow + 2}`,
97
+ skipHeader: true,
98
+ });
99
+ // Define larguras das colunas
100
+ if (this.config.columnWidths) {
101
+ worksheet["!cols"] = this.config.columnWidths.map((width) => ({
102
+ wch: width,
103
+ }));
104
+ }
105
+ // Adiciona a planilha ao workbook
106
+ XLSX.utils.book_append_sheet(workbook, worksheet, this.config.sheetName);
107
+ }
108
+ // Salva o arquivo Excel
109
+ XLSX.writeFile(workbook, this.config.fileName);
110
+ }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataExcelExporterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataExcelExporterComponent, selector: "argenta-excel-exporter", inputs: { config: "config", data: "data" }, ngImport: i0, template: `
113
+ <button (click)="exportToExcel()">{{ config?.buttonLabel }}</button>
114
+ `, isInline: true, styles: ["button{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);padding:10px 20px;border:none;cursor:pointer}button:hover{background-color:var(--secondary-color)}\n"] }); }
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataExcelExporterComponent, decorators: [{
117
+ type: Component,
118
+ args: [{ selector: "argenta-excel-exporter", template: `
119
+ <button (click)="exportToExcel()">{{ config?.buttonLabel }}</button>
120
+ `, styles: ["button{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);padding:10px 20px;border:none;cursor:pointer}button:hover{background-color:var(--secondary-color)}\n"] }]
121
+ }], propDecorators: { config: [{
122
+ type: Input
123
+ }], data: [{
124
+ type: Input
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leGNlbC1leHBvcnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhjZWwtZXhwb3J0ZXIvZGF0YS1leGNlbC1leHBvcnRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7O0FBVTdCLE1BQU0sT0FBTywwQkFBMEI7SUFQdkM7UUFTVyxTQUFJLEdBQVUsRUFBRSxDQUFDO0tBK0gzQjtJQTdIQyxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0RSxPQUFPLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7WUFDMUQsT0FBTztTQUNSO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2QyxxREFBcUQ7UUFDckQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFnQixFQUFFLEVBQUU7Z0JBQ3RELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUU5QywrQkFBK0I7Z0JBQy9CLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDakIsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO29CQUNyQixJQUFJLENBQUMsS0FB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QU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM1RCxHQUFHLEVBQUUsS0FBSztpQkFDWCxDQUFDLENBQUMsQ0FBQzthQUNMO1lBRUQsa0NBQWtDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQzsrR0FoSVUsMEJBQTBCO21HQUExQiwwQkFBMEIsMEdBTDNCOztHQUVUOzs0RkFHVSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usd0JBQXdCLFlBQ3hCOztHQUVUOzhCQUlRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSBcInhsc3hcIjtcbmltcG9ydCB7IElFeGNlbEV4cG9ydENvbmZpZyB9IGZyb20gXCIuL0lFeGNlbEV4cG9ydENvbmZpZ1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXJnZW50YS1leGNlbC1leHBvcnRlclwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b24gKGNsaWNrKT1cImV4cG9ydFRvRXhjZWwoKVwiPnt7IGNvbmZpZz8uYnV0dG9uTGFiZWwgfX08L2J1dHRvbj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXCIuL2RhdGEtZXhjZWwtZXhwb3J0ZXIuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGFFeGNlbEV4cG9ydGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29uZmlnITogSUV4Y2VsRXhwb3J0Q29uZmlnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuXG4gIGV4cG9ydFRvRXhjZWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZyB8fCAoIXRoaXMuZGF0YS5sZW5ndGggJiYgIXRoaXMuY29uZmlnLm11bHRpcGxlU2hlZXRzKSkge1xuICAgICAgY29uc29sZS53YXJuKFwiTmVuaHVtYSBjb25maWd1cmHDp8OjbyBvdSBkYWRvcyBmb3JuZWNpZG9zLlwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrYm9vayA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcblxuICAgIC8vIFZlcmlmaWNhIHNlIG3Dumx0aXBsYXMgcGxhbmlsaGFzIGVzdMOjbyBjb25maWd1cmFkYXNcbiAgICBpZiAodGhpcy5jb25maWcubXVsdGlwbGVTaGVldHMpIHtcbiAgICAgIHRoaXMuY29uZmlnLm11bHRpcGxlU2hlZXRzLmZvckVhY2goKHNoZWV0Q29uZmlnOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qgd29ya3NoZWV0ID0gWExTWC51dGlscy5hb2FfdG9fc2hlZXQoW10pO1xuXG4gICAgICAgIC8vIEFkaWNpb25hIG8gdMOtdHVsbywgc2UgaG91dmVyXG4gICAgICAgIGxldCBzdGFydFJvdyA9IDA7XG4gICAgICAgIGlmIChzaGVldENvbmZpZy50aXRsZSkge1xuICAgICAgICAgIFhMU1gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIFtbc2hlZXRDb25maWcudGl0bGVdXSwge1xuICAgICAgICAgICAgb3JpZ2luOiBcIkExXCIsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBEZWZpbmUgbGFyZ3VyYXMgcGVyc29uYWxpemFkYXMgZG8gdMOtdHVsb1xuICAgICAgICAgIGlmIChzaGVldENvbmZpZy50aXRsZVdpZHRocykge1xuICAgICAgICAgICAgd29ya3NoZWV0W1wiIWNvbHNcIl0gPSBzaGVldENvbmZpZy50aXRsZVdpZHRocy5tYXAoKHdpZHRoOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIHdjaDogd2lkdGgsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTWVzY2xhIG8gdMOtdHVsb1xuICAgICAgICAgIGlmIChzaGVldENvbmZpZy50YWJsZUhlYWRlcnMpIHtcbiAgICAgICAgICAgIHdvcmtzaGVldFtcIiFtZXJnZXNcIl0gPSB3b3Jrc2hlZXRbXCIhbWVyZ2VzXCJdIHx8IFtdO1xuICAgICAgICAgICAgd29ya3NoZWV0W1wiIW1lcmdlc1wiXS5wdXNoKHtcbiAgICAgICAgICAgICAgczogeyByOiAwLCBjOiAwIH0sXG4gICAgICAgICAgICAgIGU6IHsgcjogMCwgYzogc2hlZXRDb25maWcudGFibGVIZWFkZXJzLmxlbmd0aCAtIDEgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0YXJ0Um93ID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkaWNpb25hIGNhYmXDp2FsaG9zXG4gICAgICAgIGlmIChzaGVldENvbmZpZy50YWJsZUhlYWRlcnMpIHtcbiAgICAgICAgICBYTFNYLnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbc2hlZXRDb25maWcudGFibGVIZWFkZXJzXSwge1xuICAgICAgICAgICAgb3JpZ2luOiBgQSR7c3RhcnRSb3cgKyAxfWAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGljaW9uYSBkYWRvc1xuICAgICAgICBpZiAoc2hlZXRDb25maWcuZGF0YSkge1xuICAgICAgICAgIFhMU1gudXRpbHMuc2hlZXRfYWRkX2pzb24od29ya3NoZWV0LCBzaGVldENvbmZpZy5kYXRhLCB7XG4gICAgICAgICAgICBvcmlnaW46IGBBJHtzdGFydFJvdyArIDJ9YCxcbiAgICAgICAgICAgIHNraXBIZWFkZXI6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZpbmUgbGFyZ3VyYXMgZGFzIGNvbHVuYXNcbiAgICAgICAgaWYgKHNoZWV0Q29uZmlnLmNvbHVtbldpZHRocykge1xuICAgICAgICAgIHdvcmtzaGVldFtcIiFjb2xzXCJdID0gc2hlZXRDb25maWcuY29sdW1uV2lkdGhzLm1hcCgod2lkdGg6IGFueSkgPT4gKHtcbiAgICAgICAgICAgIHdjaDogd2lkdGgsXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRpY2lvbmEgYSBwbGFuaWxoYSBhbyB3b3JrYm9va1xuICAgICAgICBYTFNYLnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KFxuICAgICAgICAgIHdvcmtib29rLFxuICAgICAgICAgIHdvcmtzaGVldCxcbiAgICAgICAgICBzaGVldENvbmZpZy5zaGVldE5hbWVcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDYXNvIG7Do28gaGFqYSBtw7psdGlwbGFzIHBsYW5pbGhhcywgcHJvY2Vzc2EgYSBwbGFuaWxoYSDDum5pY2FcbiAgICAgIGNvbnN0IHdvcmtzaGVldCA9IFhMU1gudXRpbHMuYW9hX3RvX3NoZWV0KFtdKTtcblxuICAgICAgLy8gQWRpY2lvbmEgdMOtdHVsbywgc2UgaG91dmVyXG4gICAgICBsZXQgc3RhcnRSb3cgPSAwO1xuICAgICAgaWYgKHRoaXMuY29uZmlnLnRpdGxlKSB7XG4gICAgICAgIFhMU1gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIFtbdGhpcy5jb25maWcudGl0bGVdXSwge1xuICAgICAgICAgIG9yaWdpbjogXCJBMVwiLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBEZWZpbmUgbGFyZ3VyYXMgZG8gdMOtdHVsb1xuICAgICAgICBpZiAodGhpcy5jb25maWcudGl0bGVXaWR0aHMpIHtcbiAgICAgICAgICB3b3Jrc2hlZXRbXCIhY29sc1wiXSA9IHRoaXMuY29uZmlnLnRpdGxlV2lkdGhzLm1hcCgod2lkdGgpID0+ICh7XG4gICAgICAgICAgICB3Y2g6IHdpZHRoLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1lc2NsYSBvIHTDrXR1bG9cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnRhYmxlSGVhZGVycykge1xuICAgICAgICAgIHdvcmtzaGVldFtcIiFtZXJnZXNcIl0gPSB3b3Jrc2hlZXRbXCIhbWVyZ2VzXCJdIHx8IFtdO1xuICAgICAgICAgIHdvcmtzaGVldFtcIiFtZXJnZXNcIl0ucHVzaCh7XG4gICAgICAgICAgICBzOiB7IHI6IDAsIGM6IDAgfSxcbiAgICAgICAgICAgIGU6IHsgcjogMCwgYzogdGhpcy5jb25maWcudGFibGVIZWFkZXJzLmxlbmd0aCAtIDEgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0Um93ID0gMTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRpY2lvbmEgY2FiZcOnYWxob3NcbiAgICAgIGlmICh0aGlzLmNvbmZpZy50YWJsZUhlYWRlcnMpIHtcbiAgICAgICAgWExTWC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgW3RoaXMuY29uZmlnLnRhYmxlSGVhZGVyc10sIHtcbiAgICAgICAgICBvcmlnaW46IGBBJHtzdGFydFJvdyArIDF9YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkaWNpb25hIGRhZG9zXG4gICAgICBYTFNYLnV0aWxzLnNoZWV0X2FkZF9qc29uKHdvcmtzaGVldCwgdGhpcy5kYXRhLCB7XG4gICAgICAgIG9yaWdpbjogYEEke3N0YXJ0Um93ICsgMn1gLFxuICAgICAgICBza2lwSGVhZGVyOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIERlZmluZSBsYXJndXJhcyBkYXMgY29sdW5hc1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbHVtbldpZHRocykge1xuICAgICAgICB3b3Jrc2hlZXRbXCIhY29sc1wiXSA9IHRoaXMuY29uZmlnLmNvbHVtbldpZHRocy5tYXAoKHdpZHRoKSA9PiAoe1xuICAgICAgICAgIHdjaDogd2lkdGgsXG4gICAgICAgIH0pKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRpY2lvbmEgYSBwbGFuaWxoYSBhbyB3b3JrYm9va1xuICAgICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3b3JrYm9vaywgd29ya3NoZWV0LCB0aGlzLmNvbmZpZy5zaGVldE5hbWUhKTtcbiAgICB9XG5cbiAgICAvLyBTYWx2YSBvIGFycXVpdm8gRXhjZWxcbiAgICBYTFNYLndyaXRlRmlsZSh3b3JrYm9vaywgdGhpcy5jb25maWcuZmlsZU5hbWUpO1xuICB9XG59XG4iXX0=