ngx-st-tables 1.1.13 → 1.1.14

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 (34) hide show
  1. package/README.md +24 -24
  2. package/assets/base-collapse-table.scss +49 -49
  3. package/assets/base-table.scss +155 -155
  4. package/esm2020/lib/components/local-table/configurations/configurations.component.mjs +69 -69
  5. package/esm2020/lib/components/local-table/local-table.component.mjs +259 -259
  6. package/esm2020/lib/components/select-table/select-table.component.mjs +101 -100
  7. package/esm2020/lib/models/st-configurations-settings.model.mjs +1 -1
  8. package/esm2020/lib/models/st-global-search-settings.model.mjs +1 -1
  9. package/esm2020/lib/models/st-local-storage-configuration.model.mjs +1 -1
  10. package/esm2020/lib/models/st-local-table-column.model.mjs +1 -1
  11. package/esm2020/lib/models/st-local-table-columns.model.mjs +1 -1
  12. package/esm2020/lib/models/st-table-settings.model.mjs +1 -1
  13. package/esm2020/lib/ngx-st-tables.module.mjs +89 -89
  14. package/esm2020/lib/services/local-table.service.mjs +36 -36
  15. package/esm2020/ngx-st-tables.mjs +4 -4
  16. package/esm2020/public-api.mjs +15 -15
  17. package/fesm2015/ngx-st-tables.mjs +482 -481
  18. package/fesm2015/ngx-st-tables.mjs.map +1 -1
  19. package/fesm2020/ngx-st-tables.mjs +484 -483
  20. package/fesm2020/ngx-st-tables.mjs.map +1 -1
  21. package/index.d.ts +5 -5
  22. package/lib/components/local-table/configurations/configurations.component.d.ts +27 -27
  23. package/lib/components/local-table/local-table.component.d.ts +63 -63
  24. package/lib/components/select-table/select-table.component.d.ts +37 -37
  25. package/lib/models/st-configurations-settings.model.d.ts +6 -6
  26. package/lib/models/st-global-search-settings.model.d.ts +4 -4
  27. package/lib/models/st-local-storage-configuration.model.d.ts +8 -8
  28. package/lib/models/st-local-table-column.model.d.ts +22 -22
  29. package/lib/models/st-local-table-columns.model.d.ts +4 -4
  30. package/lib/models/st-table-settings.model.d.ts +3 -3
  31. package/lib/ngx-st-tables.module.d.ts +24 -24
  32. package/lib/services/local-table.service.d.ts +11 -11
  33. package/package.json +1 -1
  34. package/public-api.d.ts +11 -11
@@ -1,69 +1,69 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/button";
5
- import * as i3 from "@angular/material/form-field";
6
- import * as i4 from "@angular/material/input";
7
- import * as i5 from "@angular/forms";
8
- import * as i6 from "@angular/material/select";
9
- import * as i7 from "@angular/material/core";
10
- export class ConfigurationsComponent {
11
- constructor() {
12
- this.createNewConfig = new EventEmitter();
13
- this.removeConfig = new EventEmitter();
14
- this.changeConfig = new EventEmitter();
15
- this.creatingConfiguration = false;
16
- this.createConfigurationName = '';
17
- this.removingConfiguration = false;
18
- }
19
- set initSelectedConfig(config) {
20
- this.selectedConfig = config;
21
- }
22
- ngOnInit() { }
23
- showCreateConfiguration() {
24
- this.creatingConfiguration = true;
25
- this.createConfigurationName = '';
26
- }
27
- hideCreateConfiguration() {
28
- this.creatingConfiguration = false;
29
- this.createConfigurationName = '';
30
- }
31
- saveCreateConfiguration() {
32
- this.creatingConfiguration = false;
33
- this.selectedConfig = null;
34
- this.createNewConfig.emit(this.createConfigurationName);
35
- }
36
- deleteConfiguration() {
37
- this.removingConfiguration = true;
38
- }
39
- acceptDeleteConfiguration() {
40
- this.removingConfiguration = false;
41
- this.selectedConfig = null;
42
- this.removeConfig.emit(this.selectedConfig.configId);
43
- }
44
- declineDeleteConfiguration() {
45
- this.removingConfiguration = false;
46
- }
47
- selectedConfigChanged() {
48
- this.changeConfig.emit(this.selectedConfig?.configId || null);
49
- }
50
- }
51
- ConfigurationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigurationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- ConfigurationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ConfigurationsComponent, selector: "st-configurations[configurationsSettings]", inputs: { configurationsSettings: "configurationsSettings", configurations: "configurations", initSelectedConfig: "initSelectedConfig" }, outputs: { createNewConfig: "createNewConfig", removeConfig: "removeConfig", changeConfig: "changeConfig" }, ngImport: i0, template: "<div class=\"col-auto row align-items-center\" style=\"padding: 0\">\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0\">\n <mat-label>{{ configurationsSettings.selectLabel }}</mat-label>\n <mat-select\n [(ngModel)]=\"selectedConfig\"\n (ngModelChange)=\"selectedConfigChanged()\"\n >\n <mat-option [value]=\"null\"></mat-option>\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{\n config.configName\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <button\n mat-icon-button\n class=\"col-auto green-icon\"\n (click)=\"showCreateConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> add </span>\n </button>\n <button\n mat-icon-button\n class=\"col-auto red-icon\"\n [disabled]=\"!selectedConfig\"\n (click)=\"deleteConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> delete </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"creatingConfiguration\">\n <mat-form-field class=\"col-auto\">\n <mat-label>{{ configurationsSettings.createLabel }}</mat-label>\n <input matInput [(ngModel)]=\"createConfigurationName\" />\n </mat-form-field>\n <button\n mat-icon-button\n class=\"col-auto green-icon\"\n (click)=\"saveCreateConfiguration()\"\n [disabled]=\"!createConfigurationName\"\n >\n <span class=\"material-icons-outlined\"> done </span>\n </button>\n <button\n mat-icon-button\n class=\"col-auto red-icon\"\n (click)=\"hideCreateConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> close </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"removingConfiguration\">\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold; font-size: 16px\">\n {{ configurationsSettings.deleteWarningTitle }}\n </p>\n <button\n mat-icon-button\n class=\"col-auto green-icon\"\n (click)=\"acceptDeleteConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> done </span>\n </button>\n <button\n mat-icon-button\n class=\"col-auto red-icon\"\n (click)=\"declineDeleteConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> close </span>\n </button>\n </ng-container>\n</div>\n", styles: [".green-icon span{color:#2e7d32}.red-icon span{color:#c62828}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigurationsComponent, decorators: [{
54
- type: Component,
55
- args: [{ selector: 'st-configurations[configurationsSettings]', template: "<div class=\"col-auto row align-items-center\" style=\"padding: 0\">\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0\">\n <mat-label>{{ configurationsSettings.selectLabel }}</mat-label>\n <mat-select\n [(ngModel)]=\"selectedConfig\"\n (ngModelChange)=\"selectedConfigChanged()\"\n >\n <mat-option [value]=\"null\"></mat-option>\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{\n config.configName\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <button\n mat-icon-button\n class=\"col-auto green-icon\"\n (click)=\"showCreateConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> add </span>\n </button>\n <button\n mat-icon-button\n class=\"col-auto red-icon\"\n [disabled]=\"!selectedConfig\"\n (click)=\"deleteConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> delete </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"creatingConfiguration\">\n <mat-form-field class=\"col-auto\">\n <mat-label>{{ configurationsSettings.createLabel }}</mat-label>\n <input matInput [(ngModel)]=\"createConfigurationName\" />\n </mat-form-field>\n <button\n mat-icon-button\n class=\"col-auto green-icon\"\n (click)=\"saveCreateConfiguration()\"\n [disabled]=\"!createConfigurationName\"\n >\n <span class=\"material-icons-outlined\"> done </span>\n </button>\n <button\n mat-icon-button\n class=\"col-auto red-icon\"\n (click)=\"hideCreateConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> close </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"removingConfiguration\">\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold; font-size: 16px\">\n {{ configurationsSettings.deleteWarningTitle }}\n </p>\n <button\n mat-icon-button\n class=\"col-auto green-icon\"\n (click)=\"acceptDeleteConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> done </span>\n </button>\n <button\n mat-icon-button\n class=\"col-auto red-icon\"\n (click)=\"declineDeleteConfiguration()\"\n >\n <span class=\"material-icons-outlined\"> close </span>\n </button>\n </ng-container>\n</div>\n", styles: [".green-icon span{color:#2e7d32}.red-icon span{color:#c62828}\n"] }]
56
- }], ctorParameters: function () { return []; }, propDecorators: { configurationsSettings: [{
57
- type: Input
58
- }], configurations: [{
59
- type: Input
60
- }], initSelectedConfig: [{
61
- type: Input
62
- }], createNewConfig: [{
63
- type: Output
64
- }], removeConfig: [{
65
- type: Output
66
- }], changeConfig: [{
67
- type: Output
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvY29uZmlndXJhdGlvbnMvY29uZmlndXJhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvY29uZmlndXJhdGlvbnMvY29uZmlndXJhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUy9FLE1BQU0sT0FBTyx1QkFBdUI7SUEyQmxDO1FBZEEsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczRCxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3hELGlCQUFZLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0QsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDRCQUF1QixHQUFXLEVBQUUsQ0FBQztRQUNyQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7SUFJeEIsQ0FBQztJQXBCaEIsSUFDSSxrQkFBa0IsQ0FBQyxNQUErQztRQUNwRSxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBbUJELFFBQVEsS0FBVSxDQUFDO0lBRW5CLHVCQUF1QjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDOztvSEEvRFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsd1VDVHBDLGs1RUF5RUE7MkZEaEVhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSwyQ0FBMkM7MEVBTXJELHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSUYsa0JBQWtCO3NCQURyQixLQUFLO2dCQU1OLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RDb25maWd1cmF0aW9uc1NldHRpbmdzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc3QtY29uZmlndXJhdGlvbnMtc2V0dGluZ3MubW9kZWwnO1xuaW1wb3J0IHsgU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc3QtbG9jYWwtc3RvcmFnZS1jb25maWd1cmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3QtY29uZmlndXJhdGlvbnNbY29uZmlndXJhdGlvbnNTZXR0aW5nc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmF0aW9ucy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZ3VyYXRpb25zU2V0dGluZ3M6IFN0Q29uZmlndXJhdGlvbnNTZXR0aW5nc01vZGVsO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmZpZ3VyYXRpb25zOiBTdExvY2FsU3RvcmFnZUNvbmZpZ3VyYXRpb25Nb2RlbFtdO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBpbml0U2VsZWN0ZWRDb25maWcoY29uZmlnOiBTdExvY2FsU3RvcmFnZUNvbmZpZ3VyYXRpb25Nb2RlbCB8IG51bGwpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGNyZWF0ZU5ld0NvbmZpZzogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbW92ZUNvbmZpZzogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIGNoYW5nZUNvbmZpZzogRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNyZWF0aW5nQ29uZmlndXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBjcmVhdGVDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nID0gJyc7XG4gIHJlbW92aW5nQ29uZmlndXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlbGVjdGVkQ29uZmlnOiBTdExvY2FsU3RvcmFnZUNvbmZpZ3VyYXRpb25Nb2RlbCB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBzaG93Q3JlYXRlQ29uZmlndXJhdGlvbigpIHtcbiAgICB0aGlzLmNyZWF0aW5nQ29uZmlndXJhdGlvbiA9IHRydWU7XG4gICAgdGhpcy5jcmVhdGVDb25maWd1cmF0aW9uTmFtZSA9ICcnO1xuICB9XG5cbiAgaGlkZUNyZWF0ZUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgdGhpcy5jcmVhdGluZ0NvbmZpZ3VyYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25OYW1lID0gJyc7XG4gIH1cblxuICBzYXZlQ3JlYXRlQ29uZmlndXJhdGlvbigpIHtcbiAgICB0aGlzLmNyZWF0aW5nQ29uZmlndXJhdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25maWcgPSBudWxsO1xuICAgIHRoaXMuY3JlYXRlTmV3Q29uZmlnLmVtaXQodGhpcy5jcmVhdGVDb25maWd1cmF0aW9uTmFtZSk7XG4gIH1cblxuICBkZWxldGVDb25maWd1cmF0aW9uKCkge1xuICAgIHRoaXMucmVtb3ZpbmdDb25maWd1cmF0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIGFjY2VwdERlbGV0ZUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgdGhpcy5yZW1vdmluZ0NvbmZpZ3VyYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkQ29uZmlnID0gbnVsbDtcbiAgICB0aGlzLnJlbW92ZUNvbmZpZy5lbWl0KHRoaXMuc2VsZWN0ZWRDb25maWchLmNvbmZpZ0lkKTtcbiAgfVxuXG4gIGRlY2xpbmVEZWxldGVDb25maWd1cmF0aW9uKCkge1xuICAgIHRoaXMucmVtb3ZpbmdDb25maWd1cmF0aW9uID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3RlZENvbmZpZ0NoYW5nZWQoKSB7XG4gICAgdGhpcy5jaGFuZ2VDb25maWcuZW1pdCh0aGlzLnNlbGVjdGVkQ29uZmlnPy5jb25maWdJZCB8fCBudWxsKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbC1hdXRvIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cInBhZGRpbmc6IDBcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjcmVhdGluZ0NvbmZpZ3VyYXRpb24gJiYgIXJlbW92aW5nQ29uZmlndXJhdGlvblwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbC1hdXRvXCIgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiAwXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7IGNvbmZpZ3VyYXRpb25zU2V0dGluZ3Muc2VsZWN0TGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDb25maWdcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZENvbmZpZ0NoYW5nZWQoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJudWxsXCI+PC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgY29uZmlnIG9mIGNvbmZpZ3VyYXRpb25zXCIgW3ZhbHVlXT1cImNvbmZpZ1wiPnt7XG4gICAgICAgICAgY29uZmlnLmNvbmZpZ05hbWVcbiAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIGNsYXNzPVwiY29sLWF1dG8gZ3JlZW4taWNvblwiXG4gICAgICAoY2xpY2spPVwic2hvd0NyZWF0ZUNvbmZpZ3VyYXRpb24oKVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPiBhZGQgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgY2xhc3M9XCJjb2wtYXV0byByZWQtaWNvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkQ29uZmlnXCJcbiAgICAgIChjbGljayk9XCJkZWxldGVDb25maWd1cmF0aW9uKClcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj4gZGVsZXRlIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyZWF0aW5nQ29uZmlndXJhdGlvblwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7IGNvbmZpZ3VyYXRpb25zU2V0dGluZ3MuY3JlYXRlTGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImNyZWF0ZUNvbmZpZ3VyYXRpb25OYW1lXCIgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxidXR0b25cbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgY2xhc3M9XCJjb2wtYXV0byBncmVlbi1pY29uXCJcbiAgICAgIChjbGljayk9XCJzYXZlQ3JlYXRlQ29uZmlndXJhdGlvbigpXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY3JlYXRlQ29uZmlndXJhdGlvbk5hbWVcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj4gZG9uZSA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjbGFzcz1cImNvbC1hdXRvIHJlZC1pY29uXCJcbiAgICAgIChjbGljayk9XCJoaWRlQ3JlYXRlQ29uZmlndXJhdGlvbigpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+IGNsb3NlIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbW92aW5nQ29uZmlndXJhdGlvblwiPlxuICAgIDxwIGNsYXNzPVwiY29sLWF1dG9cIiBzdHlsZT1cIm1hcmdpbjogMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMTZweFwiPlxuICAgICAge3sgY29uZmlndXJhdGlvbnNTZXR0aW5ncy5kZWxldGVXYXJuaW5nVGl0bGUgfX1cbiAgICA8L3A+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjbGFzcz1cImNvbC1hdXRvIGdyZWVuLWljb25cIlxuICAgICAgKGNsaWNrKT1cImFjY2VwdERlbGV0ZUNvbmZpZ3VyYXRpb24oKVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPiBkb25lIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIGNsYXNzPVwiY29sLWF1dG8gcmVkLWljb25cIlxuICAgICAgKGNsaWNrKT1cImRlY2xpbmVEZWxldGVDb25maWd1cmF0aW9uKClcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj4gY2xvc2UgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/button";
5
+ import * as i3 from "@angular/material/form-field";
6
+ import * as i4 from "@angular/material/input";
7
+ import * as i5 from "@angular/forms";
8
+ import * as i6 from "@angular/material/select";
9
+ import * as i7 from "@angular/material/core";
10
+ export class ConfigurationsComponent {
11
+ constructor() {
12
+ this.createNewConfig = new EventEmitter();
13
+ this.removeConfig = new EventEmitter();
14
+ this.changeConfig = new EventEmitter();
15
+ this.creatingConfiguration = false;
16
+ this.createConfigurationName = '';
17
+ this.removingConfiguration = false;
18
+ }
19
+ set initSelectedConfig(config) {
20
+ this.selectedConfig = config;
21
+ }
22
+ ngOnInit() { }
23
+ showCreateConfiguration() {
24
+ this.creatingConfiguration = true;
25
+ this.createConfigurationName = '';
26
+ }
27
+ hideCreateConfiguration() {
28
+ this.creatingConfiguration = false;
29
+ this.createConfigurationName = '';
30
+ }
31
+ saveCreateConfiguration() {
32
+ this.creatingConfiguration = false;
33
+ this.selectedConfig = null;
34
+ this.createNewConfig.emit(this.createConfigurationName);
35
+ }
36
+ deleteConfiguration() {
37
+ this.removingConfiguration = true;
38
+ }
39
+ acceptDeleteConfiguration() {
40
+ this.removingConfiguration = false;
41
+ this.selectedConfig = null;
42
+ this.removeConfig.emit(this.selectedConfig.configId);
43
+ }
44
+ declineDeleteConfiguration() {
45
+ this.removingConfiguration = false;
46
+ }
47
+ selectedConfigChanged() {
48
+ this.changeConfig.emit(this.selectedConfig?.configId || null);
49
+ }
50
+ }
51
+ ConfigurationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigurationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
+ ConfigurationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ConfigurationsComponent, selector: "st-configurations[configurationsSettings]", inputs: { configurationsSettings: "configurationsSettings", configurations: "configurations", initSelectedConfig: "initSelectedConfig" }, outputs: { createNewConfig: "createNewConfig", removeConfig: "removeConfig", changeConfig: "changeConfig" }, ngImport: i0, template: "<div class=\"col-auto row align-items-center\" style=\"padding: 0\">\r\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\r\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0\">\r\n <mat-label>{{ configurationsSettings.selectLabel }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"selectedConfig\"\r\n (ngModelChange)=\"selectedConfigChanged()\"\r\n >\r\n <mat-option [value]=\"null\"></mat-option>\r\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{\r\n config.configName\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto green-icon\"\r\n (click)=\"showCreateConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> add </span>\r\n </button>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto red-icon\"\r\n [disabled]=\"!selectedConfig\"\r\n (click)=\"deleteConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> delete </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"creatingConfiguration\">\r\n <mat-form-field class=\"col-auto\">\r\n <mat-label>{{ configurationsSettings.createLabel }}</mat-label>\r\n <input matInput [(ngModel)]=\"createConfigurationName\" />\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto green-icon\"\r\n (click)=\"saveCreateConfiguration()\"\r\n [disabled]=\"!createConfigurationName\"\r\n >\r\n <span class=\"material-icons-outlined\"> done </span>\r\n </button>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto red-icon\"\r\n (click)=\"hideCreateConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> close </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"removingConfiguration\">\r\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold; font-size: 16px\">\r\n {{ configurationsSettings.deleteWarningTitle }}\r\n </p>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto green-icon\"\r\n (click)=\"acceptDeleteConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> done </span>\r\n </button>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto red-icon\"\r\n (click)=\"declineDeleteConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> close </span>\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: [".green-icon span{color:#2e7d32}.red-icon span{color:#c62828}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigurationsComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'st-configurations[configurationsSettings]', template: "<div class=\"col-auto row align-items-center\" style=\"padding: 0\">\r\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\r\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0\">\r\n <mat-label>{{ configurationsSettings.selectLabel }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"selectedConfig\"\r\n (ngModelChange)=\"selectedConfigChanged()\"\r\n >\r\n <mat-option [value]=\"null\"></mat-option>\r\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{\r\n config.configName\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto green-icon\"\r\n (click)=\"showCreateConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> add </span>\r\n </button>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto red-icon\"\r\n [disabled]=\"!selectedConfig\"\r\n (click)=\"deleteConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> delete </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"creatingConfiguration\">\r\n <mat-form-field class=\"col-auto\">\r\n <mat-label>{{ configurationsSettings.createLabel }}</mat-label>\r\n <input matInput [(ngModel)]=\"createConfigurationName\" />\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto green-icon\"\r\n (click)=\"saveCreateConfiguration()\"\r\n [disabled]=\"!createConfigurationName\"\r\n >\r\n <span class=\"material-icons-outlined\"> done </span>\r\n </button>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto red-icon\"\r\n (click)=\"hideCreateConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> close </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"removingConfiguration\">\r\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold; font-size: 16px\">\r\n {{ configurationsSettings.deleteWarningTitle }}\r\n </p>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto green-icon\"\r\n (click)=\"acceptDeleteConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> done </span>\r\n </button>\r\n <button\r\n mat-icon-button\r\n class=\"col-auto red-icon\"\r\n (click)=\"declineDeleteConfiguration()\"\r\n >\r\n <span class=\"material-icons-outlined\"> close </span>\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: [".green-icon span{color:#2e7d32}.red-icon span{color:#c62828}\n"] }]
56
+ }], ctorParameters: function () { return []; }, propDecorators: { configurationsSettings: [{
57
+ type: Input
58
+ }], configurations: [{
59
+ type: Input
60
+ }], initSelectedConfig: [{
61
+ type: Input
62
+ }], createNewConfig: [{
63
+ type: Output
64
+ }], removeConfig: [{
65
+ type: Output
66
+ }], changeConfig: [{
67
+ type: Output
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvY29uZmlndXJhdGlvbnMvY29uZmlndXJhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvY29uZmlndXJhdGlvbnMvY29uZmlndXJhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUy9FLE1BQU0sT0FBTyx1QkFBdUI7SUEyQmxDO1FBZEEsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczRCxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3hELGlCQUFZLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0QsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDRCQUF1QixHQUFXLEVBQUUsQ0FBQztRQUNyQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7SUFJeEIsQ0FBQztJQXBCaEIsSUFDSSxrQkFBa0IsQ0FBQyxNQUErQztRQUNwRSxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBbUJELFFBQVEsS0FBVSxDQUFDO0lBRW5CLHVCQUF1QjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDOztvSEEvRFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsd1VDVHBDLG9pRkF5RUE7MkZEaEVhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSwyQ0FBMkM7MEVBTXJELHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSUYsa0JBQWtCO3NCQURyQixLQUFLO2dCQU1OLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdENvbmZpZ3VyYXRpb25zU2V0dGluZ3NNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zdC1jb25maWd1cmF0aW9ucy1zZXR0aW5ncy5tb2RlbCc7XHJcbmltcG9ydCB7IFN0TG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3N0LWxvY2FsLXN0b3JhZ2UtY29uZmlndXJhdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N0LWNvbmZpZ3VyYXRpb25zW2NvbmZpZ3VyYXRpb25zU2V0dGluZ3NdJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYXRpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBjb25maWd1cmF0aW9uc1NldHRpbmdzOiBTdENvbmZpZ3VyYXRpb25zU2V0dGluZ3NNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBjb25maWd1cmF0aW9uczogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWxbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaW5pdFNlbGVjdGVkQ29uZmlnKGNvbmZpZzogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWwgfCBudWxsKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY3JlYXRlTmV3Q29uZmlnOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVtb3ZlQ29uZmlnOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlQ29uZmlnOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNyZWF0aW5nQ29uZmlndXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNyZWF0ZUNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcgPSAnJztcclxuICByZW1vdmluZ0NvbmZpZ3VyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc2VsZWN0ZWRDb25maWc6IFN0TG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvbk1vZGVsIHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIHNob3dDcmVhdGVDb25maWd1cmF0aW9uKCkge1xyXG4gICAgdGhpcy5jcmVhdGluZ0NvbmZpZ3VyYXRpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5jcmVhdGVDb25maWd1cmF0aW9uTmFtZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgaGlkZUNyZWF0ZUNvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLmNyZWF0aW5nQ29uZmlndXJhdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jcmVhdGVDb25maWd1cmF0aW9uTmFtZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUNyZWF0ZUNvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLmNyZWF0aW5nQ29uZmlndXJhdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbmZpZyA9IG51bGw7XHJcbiAgICB0aGlzLmNyZWF0ZU5ld0NvbmZpZy5lbWl0KHRoaXMuY3JlYXRlQ29uZmlndXJhdGlvbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ29uZmlndXJhdGlvbigpIHtcclxuICAgIHRoaXMucmVtb3ZpbmdDb25maWd1cmF0aW9uID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFjY2VwdERlbGV0ZUNvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLnJlbW92aW5nQ29uZmlndXJhdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbmZpZyA9IG51bGw7XHJcbiAgICB0aGlzLnJlbW92ZUNvbmZpZy5lbWl0KHRoaXMuc2VsZWN0ZWRDb25maWchLmNvbmZpZ0lkKTtcclxuICB9XHJcblxyXG4gIGRlY2xpbmVEZWxldGVDb25maWd1cmF0aW9uKCkge1xyXG4gICAgdGhpcy5yZW1vdmluZ0NvbmZpZ3VyYXRpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQ29uZmlnQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMuY2hhbmdlQ29uZmlnLmVtaXQodGhpcy5zZWxlY3RlZENvbmZpZz8uY29uZmlnSWQgfHwgbnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb2wtYXV0byByb3cgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJwYWRkaW5nOiAwXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjcmVhdGluZ0NvbmZpZ3VyYXRpb24gJiYgIXJlbW92aW5nQ29uZmlndXJhdGlvblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sLWF1dG9cIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDBcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eyBjb25maWd1cmF0aW9uc1NldHRpbmdzLnNlbGVjdExhYmVsIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbmZpZ1wiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRDb25maWdDaGFuZ2VkKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj48L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBjb25maWd1cmF0aW9uc1wiIFt2YWx1ZV09XCJjb25maWdcIj57e1xyXG4gICAgICAgICAgY29uZmlnLmNvbmZpZ05hbWVcclxuICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiY29sLWF1dG8gZ3JlZW4taWNvblwiXHJcbiAgICAgIChjbGljayk9XCJzaG93Q3JlYXRlQ29uZmlndXJhdGlvbigpXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPiBhZGQgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cImNvbC1hdXRvIHJlZC1pY29uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZENvbmZpZ1wiXHJcbiAgICAgIChjbGljayk9XCJkZWxldGVDb25maWd1cmF0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+IGRlbGV0ZSA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyZWF0aW5nQ29uZmlndXJhdGlvblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sLWF1dG9cIj5cclxuICAgICAgPG1hdC1sYWJlbD57eyBjb25maWd1cmF0aW9uc1NldHRpbmdzLmNyZWF0ZUxhYmVsIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImNyZWF0ZUNvbmZpZ3VyYXRpb25OYW1lXCIgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cImNvbC1hdXRvIGdyZWVuLWljb25cIlxyXG4gICAgICAoY2xpY2spPVwic2F2ZUNyZWF0ZUNvbmZpZ3VyYXRpb24oKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhY3JlYXRlQ29uZmlndXJhdGlvbk5hbWVcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+IGRvbmUgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cImNvbC1hdXRvIHJlZC1pY29uXCJcclxuICAgICAgKGNsaWNrKT1cImhpZGVDcmVhdGVDb25maWd1cmF0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+IGNsb3NlIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVtb3ZpbmdDb25maWd1cmF0aW9uXCI+XHJcbiAgICA8cCBjbGFzcz1cImNvbC1hdXRvXCIgc3R5bGU9XCJtYXJnaW46IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDE2cHhcIj5cclxuICAgICAge3sgY29uZmlndXJhdGlvbnNTZXR0aW5ncy5kZWxldGVXYXJuaW5nVGl0bGUgfX1cclxuICAgIDwvcD5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiY29sLWF1dG8gZ3JlZW4taWNvblwiXHJcbiAgICAgIChjbGljayk9XCJhY2NlcHREZWxldGVDb25maWd1cmF0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+IGRvbmUgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cImNvbC1hdXRvIHJlZC1pY29uXCJcclxuICAgICAgKGNsaWNrKT1cImRlY2xpbmVEZWxldGVDb25maWd1cmF0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+IGNsb3NlIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19