@dsivd/prestations-ng 17.6.8-beta.3 → 17.7.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dsivd-prestations-ng-17.7.0-beta.2.tgz +0 -0
- package/esm2022/foehn-header/foehn-header.component.mjs +3 -3
- package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +3 -3
- package/fesm2022/dsivd-prestations-ng.mjs +4 -4
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/dsivd-prestations-ng-17.6.8-beta.3.tgz +0 -0
|
@@ -129,7 +129,7 @@ export class FoehnListSummaryComponent extends FoehnInputComponent {
|
|
|
129
129
|
useExisting: forwardRef(() => FoehnListSummaryComponent),
|
|
130
130
|
multi: true
|
|
131
131
|
}
|
|
132
|
-
], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul
|
|
132
|
+
], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li\n class=\"list-inline-item\"\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n >\n <a\n [id]=\"buildChildId('-see-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableEdition\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableDeletion\">\n \n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\" *ngIf=\"canAddItems\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n <button\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\"></foehn-icon-search>\n </button>\n <button\n *ngIf=\"!item.disableEdition\"\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n *ngIf=\"!item.disableDeletion\"\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnTableComponent, selector: "foehn-table", inputs: ["itemsPerPage", "id", "title", "titleSrOnly", "previousLabel", "nextLabel", "totalElements", "fixedPageCount", "columnsConfiguration", "sort", "list", "trackByFn"], outputs: ["pageChange", "sortChange", "rowClick"] }, { kind: "component", type: i5.FoehnIconEditComponent, selector: "foehn-icon-edit" }, { kind: "component", type: i6.FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "component", type: i7.FoehnIconTrashAltComponent, selector: "foehn-icon-trash-alt" }, { kind: "component", type: i8.FoehnErrorPillComponent, selector: "foehn-error-pill", inputs: ["errorPrefix", "incompleteIndicatorOnly"] }, { kind: "pipe", type: i9.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
133
133
|
}
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnListSummaryComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
@@ -139,7 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
139
139
|
useExisting: forwardRef(() => FoehnListSummaryComponent),
|
|
140
140
|
multi: true
|
|
141
141
|
}
|
|
142
|
-
], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul
|
|
142
|
+
], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li\n class=\"list-inline-item\"\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n >\n <a\n [id]=\"buildChildId('-see-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableEdition\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableDeletion\">\n \n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\" *ngIf=\"canAddItems\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n <button\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\"></foehn-icon-search>\n </button>\n <button\n *ngIf=\"!item.disableEdition\"\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n *ngIf=\"!item.disableDeletion\"\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"] }]
|
|
143
143
|
}], ctorParameters: () => [{ type: i1.FoehnConfirmModalService }, { type: i0.NgZone }], propDecorators: { canAddItems: [{
|
|
144
144
|
type: Input
|
|
145
145
|
}], tableActionButtons: [{
|
|
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
158
158
|
}], listItemDescriptions: [{
|
|
159
159
|
type: Input
|
|
160
160
|
}] } });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tZW51LXByZXN0YXRpb24vZm9laG4tbGlzdC1zdW1tYXJ5L2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbWVudS1wcmVzdGF0aW9uL2ZvZWhuLWxpc3Qtc3VtbWFyeS9mb2Vobi1saXN0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBSU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQjNELE1BQU0sT0FBTyx5QkFDVCxTQUFRLG1CQUFvQztJQWtDNUMsWUFDWSxtQkFBNkMsRUFDN0MsTUFBYztRQUV0QixLQUFLLEVBQUUsQ0FBQztRQUhBLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFDN0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhDMUIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFTbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHcEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3ZDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUXRDLGNBQVMsR0FBYztZQUNuQixhQUFhLEVBQUUsS0FBSztTQUN2QixDQUFDO1FBRU0sVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsMEJBQXFCLEdBQStCLEVBQUUs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IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUcmFja0J5RnVuY3Rpb24sXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vZm9laG4tdGFibGUvZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgVGFibGVTb3J0IH0gZnJvbSAnLi4vLi4vZm9laG4tdGFibGUvdGFibGVTb3J0JztcbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvb2JqZWN0LmhlbHBlcic7XG5pbXBvcnQgeyBGb2Vobkxpc3RJdGVtIH0gZnJvbSAnLi9mb2Vobi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uIH0gZnJvbSAnLi9mb2Vobi1saXN0LWl0ZW0tZGVzY3JpcHRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWxpc3Qtc3VtbWFyeScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4tbGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuTGlzdFN1bW1hcnlDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5MaXN0U3VtbWFyeUNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5JbnB1dENvbXBvbmVudDxGb2Vobkxpc3RJdGVtW10+XG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoKVxuICAgIGNhbkFkZEl0ZW1zID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYmxlQWN0aW9uQnV0dG9ucycpXG4gICAgdGFibGVBY3Rpb25CdXR0b25zOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0TGlzdEl0ZW1UaXRsZTogKGl0ZW06IEZvZWhuTGlzdEl0ZW0pID0+IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd0FzVGFibGUgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGl0ZW1SZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaXRlbUVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8vIHNvIGZvZWhuLXRhYmxlJ3MgTmdPbkNoYW5nZXMgY2FuIGRldGVjdCBjaGFuZ2VzXG4gICAgLy8gd2UgbWFpbnRhaW4gYSAybmQgbGlzdCB0aGF0IGlzIHJlZ2VuZXJhdGVkIHdoZW4gdGhlIG1haW4gbGlzdCBpcyB1cGRhdGVkXG4gICAgbGlzdENvcHlGb3JUYWJsZTogRm9laG5MaXN0SXRlbVtdO1xuXG4gICAgdGFibGVDb25maWd1cmF0aW9uOiBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbjxGb2Vobkxpc3RJdGVtPltdO1xuXG4gICAgdGFibGVTb3J0OiBUYWJsZVNvcnQgPSB7XG4gICAgICAgIHNvcnREaXJlY3Rpb246ICdBU0MnXG4gICAgfTtcblxuICAgIHByaXZhdGUgbGlzdF86IEZvZWhuTGlzdEl0ZW1bXSA9IFtdO1xuICAgIHByaXZhdGUgbGlzdEl0ZW1EZXNjcmlwdGlvbnNfOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29uZmlybU1vZGFsU2VydmljZTogRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IGxpc3QoKTogRm9laG5MaXN0SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlzdChpdGVtczogRm9laG5MaXN0SXRlbVtdKSB7XG4gICAgICAgIGlmIChPYmplY3RIZWxwZXIuaXNEaWZmZXJlbnQoaXRlbXMsIHRoaXMubGlzdF8pKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RfID0gaXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIGdldCBsaXN0SXRlbURlc2NyaXB0aW9ucygpOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zXztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaXN0SXRlbURlc2NyaXB0aW9ucyhpdGVtczogRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uW10pIHtcbiAgICAgICAgaWYgKE9iamVjdEhlbHBlci5pc0RpZmZlcmVudChpdGVtcywgdGhpcy5saXN0SXRlbURlc2NyaXB0aW9uc18pKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zXyA9IGl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tGb2Vobkxpc3RJdGVtOiBUcmFja0J5RnVuY3Rpb248Rm9laG5MaXN0SXRlbT4gPSAoXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGl0ZW06IEZvZWhuTGlzdEl0ZW1cbiAgICApID0+IGl0ZW0udHJhY2tpbmdJbmRleCB8fCBpbmRleDtcblxuICAgIHRyYWNrRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uOiBUcmFja0J5RnVuY3Rpb248Rm9laG5MaXN0SXRlbURlc2NyaXB0aW9uPiA9IChcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgICAgaXRlbTogRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uXG4gICAgKSA9PiBpdGVtLmxhYmVsIHx8IGluZGV4O1xuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoISFjaGFuZ2VzPy5saXN0Py5jdXJyZW50VmFsdWU/Lmxlbmd0aCB8fCAhIWNoYW5nZXMuc2hvd0FzVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGlzdENvcHlGb3JUYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiA9IHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnMubWFwKFxuICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGBjb2wtJHtpbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICBzb3J0QXR0cmlidXRlOiBpbmRleC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYWJlbEtleTogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVHZXR0ZXI6IChpOiBGb2Vobkxpc3RJdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbURlc2NyaXB0aW9uc1tpbmRleF0uZ2V0Rm9ybWF0dGVkVmFsdWUoaSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMudGFibGVDb25maWd1cmF0aW9uLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiAnYWN0aW9ucycsXG4gICAgICAgICAgICAgICAgY29sdW1uTGFiZWxLZXk6ICdmb2Vobi10YWJsZS5oZWFkZXIuYWN0aW9ucycsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMudGFibGVBY3Rpb25CdXR0b25zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0xpbmUoXG4gICAgICAgIGl0ZW06IEZvZWhuTGlzdEl0ZW0sXG4gICAgICAgIGl0ZW1QYXJhbTogRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbVBhcmFtLmdldEZvcm1hdHRlZFZhbHVlKGl0ZW0pO1xuICAgICAgICBjb25zdCBoaWRlSWZFbXB0eUV4aXN0cyA9ICEhaXRlbVBhcmFtLmhpZGVJZkVtcHR5O1xuICAgICAgICBpZiAodmFsdWUgfHwgIWhpZGVJZkVtcHR5RXhpc3RzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtUGFyYW0uaGlkZUlmRW1wdHkoaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlZGl0SXRlbShpbmRleDogbnVtYmVyID0gbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1FZGl0Lm5leHQoaW5kZXgpO1xuICAgIH1cblxuICAgIHJlbW92ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuQ29uZmlybU1vZGFsKHtcbiAgICAgICAgICAgICAgICBodG1sQ29udGVudDogJ1NvdWhhaXRlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXQgw6lsw6ltZW50ID8nXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVMaXN0Q29weUZvclRhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVJlbW92ZWQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VTb3J0KHNvcnRFdmVudDogVGFibGVTb3J0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc29ydE5vdyh0aGlzLmxpc3QsIHNvcnRFdmVudCk7XG4gICAgICAgIHRoaXMudXBkYXRlTGlzdENvcHlGb3JUYWJsZSgpO1xuICAgICAgICB0aGlzLnRhYmxlU29ydCA9IHNvcnRFdmVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnROb3coZWxlbXM6IEZvZWhuTGlzdEl0ZW1bXSwgc29ydEV2ZW50OiBUYWJsZVNvcnQpOiB2b2lkIHtcbiAgICAgICAgZWxlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBID1cbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zW1xuICAgICAgICAgICAgICAgICAgICBzb3J0RXZlbnQuc29ydEF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgIF0uZ2V0Rm9ybWF0dGVkVmFsdWUoYSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUIgPVxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNbXG4gICAgICAgICAgICAgICAgICAgIHNvcnRFdmVudC5zb3J0QXR0cmlidXRlXG4gICAgICAgICAgICAgICAgXS5nZXRGb3JtYXR0ZWRWYWx1ZShiKTtcblxuICAgICAgICAgICAgaWYgKCF2YWx1ZUEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdmFsdWVCKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvcnRFdmVudC5zb3J0RGlyZWN0aW9uID09PSAnQVNDJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZUEubG9jYWxlQ29tcGFyZSh2YWx1ZUIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlQi5sb2NhbGVDb21wYXJlKHZhbHVlQSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTGlzdENvcHlGb3JUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dBc1RhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGlzdENvcHlGb3JUYWJsZSA9IE9iamVjdEhlbHBlci5kZWVwQ29weSh0aGlzLmxpc3QpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8c2VjdGlvblxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBjbGVhcmFibGUtaW5wdXQtZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImZvcm0tbGFiZWxcIlxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cImxhYmVsICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICd2aXN1YWxseS1oaWRkZW4nIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0ICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCIhc2hvd0FzVGFibGVcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJzb21tYWlyZS1oZWxwLWFsdFwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgW2lkXT1cIidsaXN0LXN1bW1hcnktJyArIGl0ZW0udHJhY2tpbmdJbmRleFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zIGJvcmRlci1ib3R0b21cIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBsaXN0O1xuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrRm9laG5MaXN0SXRlbVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1iYXNlbGluZSBmbGV4LXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibXQtMCBtZS0zXCI+e3sgZ2V0TGlzdEl0ZW1UaXRsZShpdGVtKSB9fTwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWVycm9yLXBpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5jb21wbGV0ZUluZGljYXRvck9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yUHJlZml4XT1cIm5hbWUgKyAnWycgKyBpdGVtSW5kZXggKyAnXSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZm9laG4tZXJyb3ItcGlsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkbCBjbGFzcz1cIm1iLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1QYXJhbSBvZiBsaXN0SXRlbURlc2NyaXB0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0ZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBpdGVtLWxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0xpbmUoaXRlbSwgaXRlbVBhcmFtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwibWUtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtUGFyYW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZCBjbGFzcz1cIm1zLWF1dG8gdGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbVBhcmFtLmdldEZvcm1hdHRlZFZhbHVlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2RsPlxuICAgICAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaW5saW5lIG1iLTMgbXQtMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWlubGluZS1pdGVtXCIgKm5nSWY9XCJpdGVtLmRpc2FibGVFZGl0aW9uICYmIGl0ZW0uZGlzYWJsZURlbGV0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1zZWUtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGVkaXRJdGVtKGl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnN1bHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMaXN0SXRlbVRpdGxlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIiAqbmdJZj1cIiFpdGVtLmRpc2FibGVFZGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1lZGl0LWxpbmstJyArIGl0ZW1JbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBlZGl0SXRlbShpdGVtSW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2RpZmllclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMaXN0SXRlbVRpdGxlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIiAqbmdJZj1cIiFpdGVtLmRpc2FibGVEZWxldGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1kZWxldGUtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHJlbW92ZUl0ZW0oaXRlbUluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcHJpbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TGlzdEl0ZW1UaXRsZShpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cInNob3dBc1RhYmxlICYmICEhdGFibGVDb25maWd1cmF0aW9uPy5sZW5ndGhcIj5cbiAgICAgICAgPGZvZWhuLXRhYmxlXG4gICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZE5hbWUoJ3RhYmxlJylcIlxuICAgICAgICAgICAgKm5nSWY9XCIhIWxpc3RDb3B5Rm9yVGFibGU/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbbGlzdF09XCJsaXN0Q29weUZvclRhYmxlXCJcbiAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiMTAwMDAwMFwiXG4gICAgICAgICAgICBbY29sdW1uc0NvbmZpZ3VyYXRpb25dPVwidGFibGVDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzb3J0XT1cInRhYmxlU29ydFwiXG4gICAgICAgICAgICAoc29ydENoYW5nZSk9XCJjaGFuZ2VTb3J0KCRldmVudClcIlxuICAgICAgICAgICAgW3RyYWNrQnlGbl09XCJ0cmFja0ZvZWhuTGlzdEl0ZW1cIlxuICAgICAgICA+PC9mb2Vobi10YWJsZT5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ7ICdtdC01JzogIXNob3dBc1RhYmxlIH1cIiAqbmdJZj1cImNhbkFkZEl0ZW1zXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkFjdGlvbjwvaDI+XG4gICAgICAgIDx1bCBjbGFzcz1cImxpc3QtaW5saW5lIG1iLTNcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1hZGQtYnV0dG9uJylcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEl0ZW0oKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBBam91dGVyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvc2VjdGlvbj5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUFjdGlvbkJ1dHRvbnMgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZC1pbmxpbmUtZmxleFwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uZGlzYWJsZUVkaXRpb24gJiYgaXRlbS5kaXNhYmxlRGVsZXRpb25cIlxuICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLXNlZS1idXR0b24tJyArIGluZGV4KVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJnLXRyYW5zcGFyZW50IG1lLTNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRJdGVtKGluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLXNlYXJjaCBbdGl0bGVdPVwiJ0NvbnN1bHRlcidcIj48L2ZvZWhuLWljb24tc2VhcmNoPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5kaXNhYmxlRWRpdGlvblwiXG4gICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZElkKCctZWRpdC1idXR0b24tJyArIGluZGV4KVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJnLXRyYW5zcGFyZW50IG1lLTNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRJdGVtKGluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLWVkaXQgW3RpdGxlXT1cIidNb2RpZmllcidcIj48L2ZvZWhuLWljb24tZWRpdD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZURlbGV0aW9uXCJcbiAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1kZWxldGUtYnV0dG9uLScgKyBpbmRleClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBiZy10cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi10cmFzaC1hbHQgW3RpdGxlXT1cIidTdXBwcmltZXInXCI+PC9mb2Vobi1pY29uLXRyYXNoLWFsdD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tZW51LXByZXN0YXRpb24vZm9laG4tbGlzdC1zdW1tYXJ5L2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbWVudS1wcmVzdGF0aW9uL2ZvZWhuLWxpc3Qtc3VtbWFyeS9mb2Vobi1saXN0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBSU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQjNELE1BQU0sT0FBTyx5QkFDVCxTQUFRLG1CQUFvQztJQWtDNUMsWUFDWSxtQkFBNkMsRUFDN0MsTUFBYztRQUV0QixLQUFLLEVBQUUsQ0FBQztRQUhBLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFDN0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhDMUIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFTbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHcEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3ZDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUXRDLGNBQVMsR0FBYztZQUNuQixhQUFhLEVBQUUsS0FBSztTQUN2QixDQUFDO1FBRU0sVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsMEJBQXFCLEdBQStCLEVBQUUs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IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUcmFja0J5RnVuY3Rpb24sXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vZm9laG4tdGFibGUvZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgVGFibGVTb3J0IH0gZnJvbSAnLi4vLi4vZm9laG4tdGFibGUvdGFibGVTb3J0JztcbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvb2JqZWN0LmhlbHBlcic7XG5pbXBvcnQgeyBGb2Vobkxpc3RJdGVtIH0gZnJvbSAnLi9mb2Vobi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uIH0gZnJvbSAnLi9mb2Vobi1saXN0LWl0ZW0tZGVzY3JpcHRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWxpc3Qtc3VtbWFyeScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4tbGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuTGlzdFN1bW1hcnlDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5MaXN0U3VtbWFyeUNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5JbnB1dENvbXBvbmVudDxGb2Vobkxpc3RJdGVtW10+XG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoKVxuICAgIGNhbkFkZEl0ZW1zID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYmxlQWN0aW9uQnV0dG9ucycpXG4gICAgdGFibGVBY3Rpb25CdXR0b25zOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0TGlzdEl0ZW1UaXRsZTogKGl0ZW06IEZvZWhuTGlzdEl0ZW0pID0+IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd0FzVGFibGUgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGl0ZW1SZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaXRlbUVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8vIHNvIGZvZWhuLXRhYmxlJ3MgTmdPbkNoYW5nZXMgY2FuIGRldGVjdCBjaGFuZ2VzXG4gICAgLy8gd2UgbWFpbnRhaW4gYSAybmQgbGlzdCB0aGF0IGlzIHJlZ2VuZXJhdGVkIHdoZW4gdGhlIG1haW4gbGlzdCBpcyB1cGRhdGVkXG4gICAgbGlzdENvcHlGb3JUYWJsZTogRm9laG5MaXN0SXRlbVtdO1xuXG4gICAgdGFibGVDb25maWd1cmF0aW9uOiBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbjxGb2Vobkxpc3RJdGVtPltdO1xuXG4gICAgdGFibGVTb3J0OiBUYWJsZVNvcnQgPSB7XG4gICAgICAgIHNvcnREaXJlY3Rpb246ICdBU0MnXG4gICAgfTtcblxuICAgIHByaXZhdGUgbGlzdF86IEZvZWhuTGlzdEl0ZW1bXSA9IFtdO1xuICAgIHByaXZhdGUgbGlzdEl0ZW1EZXNjcmlwdGlvbnNfOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29uZmlybU1vZGFsU2VydmljZTogRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IGxpc3QoKTogRm9laG5MaXN0SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlzdChpdGVtczogRm9laG5MaXN0SXRlbVtdKSB7XG4gICAgICAgIGlmIChPYmplY3RIZWxwZXIuaXNEaWZmZXJlbnQoaXRlbXMsIHRoaXMubGlzdF8pKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RfID0gaXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIGdldCBsaXN0SXRlbURlc2NyaXB0aW9ucygpOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zXztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaXN0SXRlbURlc2NyaXB0aW9ucyhpdGVtczogRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uW10pIHtcbiAgICAgICAgaWYgKE9iamVjdEhlbHBlci5pc0RpZmZlcmVudChpdGVtcywgdGhpcy5saXN0SXRlbURlc2NyaXB0aW9uc18pKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zXyA9IGl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tGb2Vobkxpc3RJdGVtOiBUcmFja0J5RnVuY3Rpb248Rm9laG5MaXN0SXRlbT4gPSAoXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGl0ZW06IEZvZWhuTGlzdEl0ZW1cbiAgICApID0+IGl0ZW0udHJhY2tpbmdJbmRleCB8fCBpbmRleDtcblxuICAgIHRyYWNrRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uOiBUcmFja0J5RnVuY3Rpb248Rm9laG5MaXN0SXRlbURlc2NyaXB0aW9uPiA9IChcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgICAgaXRlbTogRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uXG4gICAgKSA9PiBpdGVtLmxhYmVsIHx8IGluZGV4O1xuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoISFjaGFuZ2VzPy5saXN0Py5jdXJyZW50VmFsdWU/Lmxlbmd0aCB8fCAhIWNoYW5nZXMuc2hvd0FzVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGlzdENvcHlGb3JUYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiA9IHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnMubWFwKFxuICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGBjb2wtJHtpbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICBzb3J0QXR0cmlidXRlOiBpbmRleC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYWJlbEtleTogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVHZXR0ZXI6IChpOiBGb2Vobkxpc3RJdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbURlc2NyaXB0aW9uc1tpbmRleF0uZ2V0Rm9ybWF0dGVkVmFsdWUoaSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMudGFibGVDb25maWd1cmF0aW9uLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiAnYWN0aW9ucycsXG4gICAgICAgICAgICAgICAgY29sdW1uTGFiZWxLZXk6ICdmb2Vobi10YWJsZS5oZWFkZXIuYWN0aW9ucycsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMudGFibGVBY3Rpb25CdXR0b25zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0xpbmUoXG4gICAgICAgIGl0ZW06IEZvZWhuTGlzdEl0ZW0sXG4gICAgICAgIGl0ZW1QYXJhbTogRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbVBhcmFtLmdldEZvcm1hdHRlZFZhbHVlKGl0ZW0pO1xuICAgICAgICBjb25zdCBoaWRlSWZFbXB0eUV4aXN0cyA9ICEhaXRlbVBhcmFtLmhpZGVJZkVtcHR5O1xuICAgICAgICBpZiAodmFsdWUgfHwgIWhpZGVJZkVtcHR5RXhpc3RzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtUGFyYW0uaGlkZUlmRW1wdHkoaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlZGl0SXRlbShpbmRleDogbnVtYmVyID0gbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1FZGl0Lm5leHQoaW5kZXgpO1xuICAgIH1cblxuICAgIHJlbW92ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuQ29uZmlybU1vZGFsKHtcbiAgICAgICAgICAgICAgICBodG1sQ29udGVudDogJ1NvdWhhaXRlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXQgw6lsw6ltZW50ID8nXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVMaXN0Q29weUZvclRhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVJlbW92ZWQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VTb3J0KHNvcnRFdmVudDogVGFibGVTb3J0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc29ydE5vdyh0aGlzLmxpc3QsIHNvcnRFdmVudCk7XG4gICAgICAgIHRoaXMudXBkYXRlTGlzdENvcHlGb3JUYWJsZSgpO1xuICAgICAgICB0aGlzLnRhYmxlU29ydCA9IHNvcnRFdmVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnROb3coZWxlbXM6IEZvZWhuTGlzdEl0ZW1bXSwgc29ydEV2ZW50OiBUYWJsZVNvcnQpOiB2b2lkIHtcbiAgICAgICAgZWxlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBID1cbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zW1xuICAgICAgICAgICAgICAgICAgICBzb3J0RXZlbnQuc29ydEF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgIF0uZ2V0Rm9ybWF0dGVkVmFsdWUoYSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUIgPVxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNbXG4gICAgICAgICAgICAgICAgICAgIHNvcnRFdmVudC5zb3J0QXR0cmlidXRlXG4gICAgICAgICAgICAgICAgXS5nZXRGb3JtYXR0ZWRWYWx1ZShiKTtcblxuICAgICAgICAgICAgaWYgKCF2YWx1ZUEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdmFsdWVCKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvcnRFdmVudC5zb3J0RGlyZWN0aW9uID09PSAnQVNDJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZUEubG9jYWxlQ29tcGFyZSh2YWx1ZUIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlQi5sb2NhbGVDb21wYXJlKHZhbHVlQSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTGlzdENvcHlGb3JUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dBc1RhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGlzdENvcHlGb3JUYWJsZSA9IE9iamVjdEhlbHBlci5kZWVwQ29weSh0aGlzLmxpc3QpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8c2VjdGlvblxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBjbGVhcmFibGUtaW5wdXQtZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImZvcm0tbGFiZWxcIlxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cImxhYmVsICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICd2aXN1YWxseS1oaWRkZW4nIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0ICYmIHR5cGUgIT09ICdoaWRkZW4nXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCIhc2hvd0FzVGFibGVcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJzb21tYWlyZS1oZWxwLWFsdFwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgW2lkXT1cIidsaXN0LXN1bW1hcnktJyArIGl0ZW0udHJhY2tpbmdJbmRleFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zIGJvcmRlci1ib3R0b21cIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBsaXN0O1xuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrRm9laG5MaXN0SXRlbVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1iYXNlbGluZSBmbGV4LXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibXQtMCBtZS0zXCI+e3sgZ2V0TGlzdEl0ZW1UaXRsZShpdGVtKSB9fTwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWVycm9yLXBpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5jb21wbGV0ZUluZGljYXRvck9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yUHJlZml4XT1cIm5hbWUgKyAnWycgKyBpdGVtSW5kZXggKyAnXSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZm9laG4tZXJyb3ItcGlsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkbCBjbGFzcz1cIm1iLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1QYXJhbSBvZiBsaXN0SXRlbURlc2NyaXB0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0ZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBpdGVtLWxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0xpbmUoaXRlbSwgaXRlbVBhcmFtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwibWUtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtUGFyYW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZCBjbGFzcz1cIm1zLWF1dG8gdGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbVBhcmFtLmdldEZvcm1hdHRlZFZhbHVlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2RsPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtaW5saW5lIG1iLTMgbXQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZGlzYWJsZUVkaXRpb24gJiYgaXRlbS5kaXNhYmxlRGVsZXRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1zZWUtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGVkaXRJdGVtKGl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnN1bHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMaXN0SXRlbVRpdGxlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIiAqbmdJZj1cIiFpdGVtLmRpc2FibGVFZGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1lZGl0LWxpbmstJyArIGl0ZW1JbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBlZGl0SXRlbShpdGVtSW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2RpZmllclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRMaXN0SXRlbVRpdGxlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIiAqbmdJZj1cIiFpdGVtLmRpc2FibGVEZWxldGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1kZWxldGUtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHJlbW92ZUl0ZW0oaXRlbUluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcHJpbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TGlzdEl0ZW1UaXRsZShpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cInNob3dBc1RhYmxlICYmICEhdGFibGVDb25maWd1cmF0aW9uPy5sZW5ndGhcIj5cbiAgICAgICAgPGZvZWhuLXRhYmxlXG4gICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZE5hbWUoJ3RhYmxlJylcIlxuICAgICAgICAgICAgKm5nSWY9XCIhIWxpc3RDb3B5Rm9yVGFibGU/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbbGlzdF09XCJsaXN0Q29weUZvclRhYmxlXCJcbiAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiMTAwMDAwMFwiXG4gICAgICAgICAgICBbY29sdW1uc0NvbmZpZ3VyYXRpb25dPVwidGFibGVDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzb3J0XT1cInRhYmxlU29ydFwiXG4gICAgICAgICAgICAoc29ydENoYW5nZSk9XCJjaGFuZ2VTb3J0KCRldmVudClcIlxuICAgICAgICAgICAgW3RyYWNrQnlGbl09XCJ0cmFja0ZvZWhuTGlzdEl0ZW1cIlxuICAgICAgICA+PC9mb2Vobi10YWJsZT5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ7ICdtdC01JzogIXNob3dBc1RhYmxlIH1cIiAqbmdJZj1cImNhbkFkZEl0ZW1zXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkFjdGlvbjwvaDI+XG4gICAgICAgIDx1bCBjbGFzcz1cImxpc3QtaW5saW5lIG1iLTNcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1hZGQtYnV0dG9uJylcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEl0ZW0oKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBBam91dGVyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvc2VjdGlvbj5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUFjdGlvbkJ1dHRvbnMgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1pbmxpbmUtZmxleFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uZGlzYWJsZUVkaXRpb24gJiYgaXRlbS5kaXNhYmxlRGVsZXRpb25cIlxuICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLXNlZS1idXR0b24tJyArIGluZGV4KVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJnLXRyYW5zcGFyZW50IG1lLTNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRJdGVtKGluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLXNlYXJjaCBbdGl0bGVdPVwiJ0NvbnN1bHRlcidcIj48L2ZvZWhuLWljb24tc2VhcmNoPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5kaXNhYmxlRWRpdGlvblwiXG4gICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZElkKCctZWRpdC1idXR0b24tJyArIGluZGV4KVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJnLXRyYW5zcGFyZW50IG1lLTNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRJdGVtKGluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLWVkaXQgW3RpdGxlXT1cIidNb2RpZmllcidcIj48L2ZvZWhuLWljb24tZWRpdD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZURlbGV0aW9uXCJcbiAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1kZWxldGUtYnV0dG9uLScgKyBpbmRleClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBiZy10cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi10cmFzaC1hbHQgW3RpdGxlXT1cIidTdXBwcmltZXInXCI+PC9mb2Vobi1pY29uLXRyYXNoLWFsdD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -6343,11 +6343,11 @@ class FoehnHeaderComponent {
|
|
|
6343
6343
|
this.connectedEsMenu = menu;
|
|
6344
6344
|
}
|
|
6345
6345
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnHeaderComponent, deps: [{ token: SessionInfo }, { token: ApplicationInfoService }, { token: SdkDictionaryService }, { token: FoehnPageModalService }, { token: GesdemHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6346
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnHeaderComponent, selector: "foehn-header", inputs: { title: "title", showSecuredAreaLoginButton: "showSecuredAreaLoginButton", routerLinkAppTitle: "routerLinkAppTitle", userInfo: "userInfo" }, ngImport: i0, template: "<header id=\"foehn_headerContainer\" class=\"header pb-2\" role=\"banner\">\n <ng-container *ngIf=\"!(isProduction | async)\">\n <div\n *ngIf=\"applicationInfoService.data | async as info\"\n class=\"environment {{ info.environment?.toLowerCase() }}\"\n >\n <span class=\"content\">{{ getEnvironmentLabel(info) }}</span>\n </div>\n </ng-container>\n\n <nav\n class=\"container fixed-top access-nav d-print-none\"\n aria-label=\"menu accessibilit\u00E9\"\n >\n <ul class=\"list-unstyled mt-3\">\n <li>\n <foehn-skip-link\n accesskey=\"0\"\n [title]=\"'foehn-skip-link.title' | fromDictionary\"\n [content]=\"'foehn-skip-link.content' | fromDictionary\"\n targetAnchor=\"main\"\n ></foehn-skip-link>\n </li>\n </ul>\n </nav>\n\n <div class=\"container\">\n <ng-container *ngIf=\"mockedServices | async as resolvedMockedServices\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"resolvedMockedServices.length > 0\"\n >\n <h2 class=\"my-0\">Il semble y avoir certains mocks actifs</h2>\n <ul>\n <li *ngFor=\"let mock of resolvedMockedServices\">\n {{ mock }}\n </li>\n </ul>\n </div>\n </ng-container>\n <div class=\"d-flex flex-wrap\">\n <a\n class=\"vd-logo\"\n href=\"https://www.vd.ch\"\n [title]=\"'foehn-header.logo.title' | fromDictionary\"\n >\n <!-- Copied from @dsivd/foehn/dist/assets/svg/ETATVAUD-alt.svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"vecteurs\"\n version=\"1.1\"\n width=\"208.8\"\n height=\"35.3\"\n >\n <style id=\"style2\">\n .st0 {\n fill: #9f3;\n }\n\n .st1 {\n fill: #40d940;\n }\n\n .st2 {\n fill: #fff;\n }\n\n .st3 {\n fill: #d5dee3;\n }\n\n .st4 {\n fill: #546674;\n }\n\n .st5 {\n fill: #1f5e03;\n }\n </style>\n <path\n class=\"st0\"\n d=\"M0 30.2h5v5.1H0z\"\n id=\"path4\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M5 30.2h5v5.1H5z\"\n id=\"path6\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M10 30.2h5v5.1h-5z\"\n id=\"path8\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M14.9 30.2h5v5.1h-5z\"\n id=\"path10\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M19.9 30.2h5v5.1h-5z\"\n id=\"path12\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M24.8 30.2h5v5.1h-5z\"\n id=\"path14\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M29.8 30.2h5v5.1h-5z\"\n id=\"path16\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M34.7 30.2h5v5.1h-5z\"\n id=\"path18\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M39.7 30.2h5v5.1h-5z\"\n id=\"path20\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M44.6 30.2h5v5.1h-5z\"\n id=\"path22\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M49.6 30.2h5v5.1h-5z\"\n id=\"path24\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M54.5 30.2h5v5.1h-5z\"\n id=\"path26\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M59.5 30.2h5v5.1h-5z\"\n id=\"path28\"\n fill=\"#fff\"\n />\n <path\n class=\"st0\"\n d=\"M64.5 30.2h5v5.1h-5z\"\n id=\"path30\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M69.4 30.2h5v5.1h-5z\"\n id=\"path32\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M74.4 30.2h5v5.1h-5z\"\n id=\"path34\"\n fill=\"#546674\"\n />\n <path\n class=\"st2\"\n d=\"M79.3 30.2h5v5.1h-5z\"\n id=\"path36\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M84.3 30.2h5v5.1h-5z\"\n id=\"path38\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M89.2 30.2h5v5.1h-5z\"\n id=\"path40\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M94.2 30.2h5v5.1h-5z\"\n id=\"path42\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M99.1 30.2h5v5.1h-5z\"\n id=\"path44\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M104.1 30.2h5v5.1h-5z\"\n id=\"path46\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M109 30.2h5v5.1h-5z\"\n id=\"path48\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M114 30.2h5v5.1h-5z\"\n id=\"path50\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M119 30.2h5v5.1h-5z\"\n id=\"path52\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M123.9 30.2h5v5.1h-5z\"\n id=\"path54\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M128.9 30.2h5v5.1h-5z\"\n id=\"path56\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st2\"\n d=\"M133.8 30.2h5v5.1h-5z\"\n id=\"path58\"\n fill=\"#fff\"\n />\n <path\n class=\"st5\"\n d=\"M138.8 30.2h5v5.1h-5z\"\n id=\"path60\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M143.7 30.2h5v5.1h-5z\"\n id=\"path62\"\n fill=\"#40d940\"\n />\n <path d=\"M148.7 30.2h5v5.1h-5z\" id=\"path64\" />\n <path\n class=\"st1\"\n d=\"M153.6 30.2h5v5.1h-5z\"\n id=\"path66\"\n fill=\"#40d940\"\n />\n <path d=\"M158.6 30.2h5v5.1h-5z\" id=\"path68\" />\n <path\n class=\"st1\"\n d=\"M163.5 30.2h5v5.1h-5z\"\n id=\"path70\"\n fill=\"#40d940\"\n />\n <path d=\"M168.5 30.2h5v5.1h-5z\" id=\"path72\" />\n <path\n class=\"st1\"\n d=\"M173.5 30.2h5v5.1h-5z\"\n id=\"path74\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M178.4 30.2h5v5.1h-5z\"\n id=\"path76\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M183.4 30.2h5v5.1h-5z\"\n id=\"path78\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M188.3 30.2h5v5.1h-5z\"\n id=\"path80\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M193.3 30.2h5v5.1h-5z\"\n id=\"path82\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M198.2 30.2h5v5.1h-5z\"\n id=\"path84\"\n fill=\"#40d940\"\n />\n <path\n class=\"st0\"\n d=\"M203.2 30.2h5v5.1h-5z\"\n id=\"path86\"\n fill=\"#9f3\"\n />\n <g id=\"g90\" transform=\"translate(-444.8 -502.9)\">\n <path\n d=\"M444.8 508.5h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm7-5.6h4.7l-3 4.2h-3.3zm16.2 9.4h-5.8v-3.8h16.6v3.8H473v17.8h-5zm17.2-3.8h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm18.9-9.5h-5.8v-3.8h16.6v3.8H509v17.8h-4.9zm20.9-3.8h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2zm15.5-17.8h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm23.7 0h5.2l5.1 16.6 5.1-16.6h4.6l-7.2 21.6h-5.6zm26.2 0h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm15.2-.1v-13.2h4.9v12.9c0 3.6 1.1 5.2 4 5.2s4.2-1.4 4.2-5.3v-12.7h4.9v13c0 5.9-3.3 8.9-9.1 8.9-5.6-.1-8.9-3.1-8.9-8.8zm22.7-13.2h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2z\"\n id=\"path88\"\n fill=\"#231f20\"\n />\n </g>\n </svg>\n </a>\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamCyber\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedEsSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.title'\n | fromDictionary\n }}\n </span>\n <a id=\"header-connectedEs\" href=\"/100002/\">\n {{ beneficiaire }}\n </a>\n </p>\n\n <p class=\"mb-0 small\" *ngIf=\"!isParticulier()\">\n <span\n id=\"header-connectedUserSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n </dl>\n <foehn-dropdown-menu\n id=\"menu-connectedEs-withLogo\"\n [model]=\"connectedEsMenu\"\n [btnCssClass]=\"'btn-link'\"\n [label]=\"'Logo de ' + beneficiaire\"\n >\n <figure class=\"m-0 ms-auto vd-avatar\">\n <img\n class=\"vd-avatar__image\"\n [alt]=\"'Logo de ' + beneficiaire\"\n src=\"api/sessionInfo/beneficiary-info/logo\"\n />\n </figure>\n </foehn-dropdown-menu>\n </div>\n </section>\n\n <section\n class=\"mb-3 ms-auto\"\n *ngIf=\"\n showSecuredAreaLoginButton &&\n isSecuredAreaLoginButtonAllowed()\n \"\n >\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.connection.srOnly'\n | fromDictionary\n }}\n </h2>\n <a\n id=\"btn-login-secured-area\"\n class=\"btn btn-lighter d-inline-flex\"\n [href]=\"getFullLoginUrl() | async\"\n >\n <foehn-icon-user\n class=\"me-sm-2\"\n aria-hidden=\"true\"\n ></foehn-icon-user>\n <span class=\"d-sm-block d-xs-none\">\n {{\n 'foehn-header.cyber-secured-area.connection.button.title'\n | fromDictionary\n }}\n </span>\n </a>\n </section>\n\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamAcv\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.iam-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedUser-acvSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.iam-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser-acv\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n <ul class=\"mb-0 small list-inline\">\n <li class=\"list-inline-item\">\n <a href=\"logout\">\n {{\n 'foehn-header.iam-secured-area.logout'\n | fromDictionary\n }}\n </a>\n </li>\n </ul>\n </dl>\n </div>\n </section>\n </div>\n\n <div class=\"row\">\n <div id=\"header-title\" class=\"col-md-10\">\n <span\n *ngIf=\"!routerLinkAppTitle; else appTitleElseRouting\"\n id=\"app-title\"\n class=\"h3 mt-1 vd-heading-light\"\n >\n {{ title }}\n </span>\n <ng-template #appTitleElseRouting>\n <a\n class=\"h3 mt-1 vd-heading-light\"\n [routerLink]=\"routerLinkAppTitle\"\n >\n {{ title }}\n </a>\n </ng-template>\n </div>\n <div\n class=\"col-md-2\"\n *ngIf=\"availableLanguages | async as languages\"\n >\n <foehn-select\n name=\"languageSelector\"\n label=\"S\u00E9lection de la langue\"\n [isLabelSrOnly]=\"true\"\n *ngIf=\"languages.length > 1\"\n [elements]=\"languages\"\n [elementValue]=\"'code'\"\n [model]=\"currentLanguageCode | async\"\n (userInput)=\"languageChanged($event)\"\n [required]=\"true\"\n ></foehn-select>\n </div>\n </div>\n </div>\n</header>\n", styles: [".vd-avatar__image{width:50px;height:50px;margin:auto;-o-object-fit:scale-down;object-fit:scale-down}.environment{position:fixed;z-index:2}.environment .content{position:absolute;left:-250px;top:-.66667rem;display:block;width:250px;padding:5px 10px;background-color:#3278c8cc;color:#fff;font:700 18px/1 Lato,sans-serif;text-transform:uppercase;text-align:right;transform-origin:250px 0;-o-transform-origin:250px 0;-ms-transform-origin:250px 0;-moz-transform-origin:250px 0;-webkit-transform-origin:250px 0;transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);z-index:1000}.environment.in .content{background-color:#dc8c14cc}.environment.va .content{background-color:#c81e1ecc}:host .btn.btn-lighter{color:var(--vd-primary-dark);text-transform:none;background-color:#fff;border:var(--vd-neutral-lighter) 1px solid}:host .btn.btn-lighter:hover{color:#fff;border:1px solid var(--vd-primary-dark);background-color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter.active .svg-inline--fa,:host ::ng-deep .btn.btn-lighter:hover .svg-inline--fa{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnIconUserComponent, selector: "foehn-icon-user" }, { kind: "component", type: FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple", "noSelectionLabel"] }, { kind: "component", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: ["id", "label", "model", "btnCssClass"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FoehnSkipLinkComponent, selector: "foehn-skip-link", inputs: ["accesskey", "targetAnchor", "title", "content"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
6346
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnHeaderComponent, selector: "foehn-header", inputs: { title: "title", showSecuredAreaLoginButton: "showSecuredAreaLoginButton", routerLinkAppTitle: "routerLinkAppTitle", userInfo: "userInfo" }, ngImport: i0, template: "<header id=\"foehn_headerContainer\" class=\"header pb-2\" role=\"banner\">\n <ng-container *ngIf=\"!(isProduction | async)\">\n <div\n *ngIf=\"applicationInfoService.data | async as info\"\n class=\"environment {{ info.environment?.toLowerCase() }}\"\n >\n <span class=\"content\">{{ getEnvironmentLabel(info) }}</span>\n </div>\n </ng-container>\n\n <nav\n class=\"container fixed-top access-nav d-print-none\"\n aria-label=\"menu accessibilit\u00E9\"\n >\n <ul class=\"list-unstyled mt-3\">\n <li>\n <foehn-skip-link\n accesskey=\"0\"\n [title]=\"'foehn-skip-link.title' | fromDictionary\"\n [content]=\"'foehn-skip-link.content' | fromDictionary\"\n targetAnchor=\"main\"\n ></foehn-skip-link>\n </li>\n </ul>\n </nav>\n\n <div class=\"container\">\n <ng-container *ngIf=\"mockedServices | async as resolvedMockedServices\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"resolvedMockedServices.length > 0\"\n >\n <h2 class=\"my-0\">Il semble y avoir certains mocks actifs</h2>\n <ul>\n <li *ngFor=\"let mock of resolvedMockedServices\">\n {{ mock }}\n </li>\n </ul>\n </div>\n </ng-container>\n <div class=\"d-flex flex-wrap\">\n <a\n class=\"vd-logo\"\n href=\"https://www.vd.ch\"\n [title]=\"'foehn-header.logo.title' | fromDictionary\"\n >\n <!-- Copied from @dsivd/foehn/dist/assets/svg/ETATVAUD-alt.svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"vecteurs\"\n version=\"1.1\"\n width=\"208.8\"\n height=\"35.3\"\n >\n <path\n class=\"st0\"\n d=\"M0 30.2h5v5.1H0z\"\n id=\"path4\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M5 30.2h5v5.1H5z\"\n id=\"path6\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M10 30.2h5v5.1h-5z\"\n id=\"path8\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M14.9 30.2h5v5.1h-5z\"\n id=\"path10\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M19.9 30.2h5v5.1h-5z\"\n id=\"path12\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M24.8 30.2h5v5.1h-5z\"\n id=\"path14\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M29.8 30.2h5v5.1h-5z\"\n id=\"path16\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M34.7 30.2h5v5.1h-5z\"\n id=\"path18\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M39.7 30.2h5v5.1h-5z\"\n id=\"path20\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M44.6 30.2h5v5.1h-5z\"\n id=\"path22\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M49.6 30.2h5v5.1h-5z\"\n id=\"path24\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M54.5 30.2h5v5.1h-5z\"\n id=\"path26\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M59.5 30.2h5v5.1h-5z\"\n id=\"path28\"\n fill=\"#fff\"\n />\n <path\n class=\"st0\"\n d=\"M64.5 30.2h5v5.1h-5z\"\n id=\"path30\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M69.4 30.2h5v5.1h-5z\"\n id=\"path32\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M74.4 30.2h5v5.1h-5z\"\n id=\"path34\"\n fill=\"#546674\"\n />\n <path\n class=\"st2\"\n d=\"M79.3 30.2h5v5.1h-5z\"\n id=\"path36\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M84.3 30.2h5v5.1h-5z\"\n id=\"path38\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M89.2 30.2h5v5.1h-5z\"\n id=\"path40\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M94.2 30.2h5v5.1h-5z\"\n id=\"path42\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M99.1 30.2h5v5.1h-5z\"\n id=\"path44\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M104.1 30.2h5v5.1h-5z\"\n id=\"path46\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M109 30.2h5v5.1h-5z\"\n id=\"path48\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M114 30.2h5v5.1h-5z\"\n id=\"path50\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M119 30.2h5v5.1h-5z\"\n id=\"path52\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M123.9 30.2h5v5.1h-5z\"\n id=\"path54\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M128.9 30.2h5v5.1h-5z\"\n id=\"path56\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st2\"\n d=\"M133.8 30.2h5v5.1h-5z\"\n id=\"path58\"\n fill=\"#fff\"\n />\n <path\n class=\"st5\"\n d=\"M138.8 30.2h5v5.1h-5z\"\n id=\"path60\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M143.7 30.2h5v5.1h-5z\"\n id=\"path62\"\n fill=\"#40d940\"\n />\n <path d=\"M148.7 30.2h5v5.1h-5z\" id=\"path64\" />\n <path\n class=\"st1\"\n d=\"M153.6 30.2h5v5.1h-5z\"\n id=\"path66\"\n fill=\"#40d940\"\n />\n <path d=\"M158.6 30.2h5v5.1h-5z\" id=\"path68\" />\n <path\n class=\"st1\"\n d=\"M163.5 30.2h5v5.1h-5z\"\n id=\"path70\"\n fill=\"#40d940\"\n />\n <path d=\"M168.5 30.2h5v5.1h-5z\" id=\"path72\" />\n <path\n class=\"st1\"\n d=\"M173.5 30.2h5v5.1h-5z\"\n id=\"path74\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M178.4 30.2h5v5.1h-5z\"\n id=\"path76\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M183.4 30.2h5v5.1h-5z\"\n id=\"path78\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M188.3 30.2h5v5.1h-5z\"\n id=\"path80\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M193.3 30.2h5v5.1h-5z\"\n id=\"path82\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M198.2 30.2h5v5.1h-5z\"\n id=\"path84\"\n fill=\"#40d940\"\n />\n <path\n class=\"st0\"\n d=\"M203.2 30.2h5v5.1h-5z\"\n id=\"path86\"\n fill=\"#9f3\"\n />\n <g id=\"g90\" transform=\"translate(-444.8 -502.9)\">\n <path\n d=\"M444.8 508.5h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm7-5.6h4.7l-3 4.2h-3.3zm16.2 9.4h-5.8v-3.8h16.6v3.8H473v17.8h-5zm17.2-3.8h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm18.9-9.5h-5.8v-3.8h16.6v3.8H509v17.8h-4.9zm20.9-3.8h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2zm15.5-17.8h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm23.7 0h5.2l5.1 16.6 5.1-16.6h4.6l-7.2 21.6h-5.6zm26.2 0h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm15.2-.1v-13.2h4.9v12.9c0 3.6 1.1 5.2 4 5.2s4.2-1.4 4.2-5.3v-12.7h4.9v13c0 5.9-3.3 8.9-9.1 8.9-5.6-.1-8.9-3.1-8.9-8.8zm22.7-13.2h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2z\"\n id=\"path88\"\n fill=\"#231f20\"\n />\n </g>\n </svg>\n </a>\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamCyber\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedEsSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.title'\n | fromDictionary\n }}\n </span>\n <a id=\"header-connectedEs\" href=\"/100002/\">\n {{ beneficiaire }}\n </a>\n </p>\n\n <p class=\"mb-0 small\" *ngIf=\"!isParticulier()\">\n <span\n id=\"header-connectedUserSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n </dl>\n <foehn-dropdown-menu\n id=\"menu-connectedEs-withLogo\"\n [model]=\"connectedEsMenu\"\n [btnCssClass]=\"'btn-link'\"\n [label]=\"'Logo de ' + beneficiaire\"\n >\n <figure class=\"m-0 ms-auto vd-avatar\">\n <img\n class=\"vd-avatar__image\"\n [alt]=\"'Logo de ' + beneficiaire\"\n src=\"api/sessionInfo/beneficiary-info/logo\"\n />\n </figure>\n </foehn-dropdown-menu>\n </div>\n </section>\n\n <section\n class=\"mb-3 ms-auto\"\n *ngIf=\"\n showSecuredAreaLoginButton &&\n isSecuredAreaLoginButtonAllowed()\n \"\n >\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.connection.srOnly'\n | fromDictionary\n }}\n </h2>\n <a\n id=\"btn-login-secured-area\"\n class=\"btn btn-lighter d-inline-flex\"\n [href]=\"getFullLoginUrl() | async\"\n >\n <foehn-icon-user\n class=\"me-sm-2\"\n aria-hidden=\"true\"\n ></foehn-icon-user>\n <span class=\"d-sm-block d-xs-none\">\n {{\n 'foehn-header.cyber-secured-area.connection.button.title'\n | fromDictionary\n }}\n </span>\n </a>\n </section>\n\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamAcv\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.iam-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedUser-acvSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.iam-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser-acv\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n <ul class=\"mb-0 small list-inline\">\n <li class=\"list-inline-item\">\n <a href=\"logout\">\n {{\n 'foehn-header.iam-secured-area.logout'\n | fromDictionary\n }}\n </a>\n </li>\n </ul>\n </dl>\n </div>\n </section>\n </div>\n\n <div class=\"row\">\n <div id=\"header-title\" class=\"col-md-10\">\n <span\n *ngIf=\"!routerLinkAppTitle; else appTitleElseRouting\"\n id=\"app-title\"\n class=\"h3 mt-1 vd-heading-light\"\n >\n {{ title }}\n </span>\n <ng-template #appTitleElseRouting>\n <a\n class=\"h3 mt-1 vd-heading-light\"\n [routerLink]=\"routerLinkAppTitle\"\n >\n {{ title }}\n </a>\n </ng-template>\n </div>\n <div\n class=\"col-md-2\"\n *ngIf=\"availableLanguages | async as languages\"\n >\n <foehn-select\n name=\"languageSelector\"\n label=\"S\u00E9lection de la langue\"\n [isLabelSrOnly]=\"true\"\n *ngIf=\"languages.length > 1\"\n [elements]=\"languages\"\n [elementValue]=\"'code'\"\n [model]=\"currentLanguageCode | async\"\n (userInput)=\"languageChanged($event)\"\n [required]=\"true\"\n ></foehn-select>\n </div>\n </div>\n </div>\n</header>\n", styles: [".vd-avatar__image{width:50px;height:50px;margin:auto;-o-object-fit:scale-down;object-fit:scale-down}.environment{position:fixed;z-index:2}.environment .content{position:absolute;left:-250px;top:-.66667rem;display:block;width:250px;padding:5px 10px;background-color:#3278c8cc;color:#fff;font:700 18px/1 Lato,sans-serif;text-transform:uppercase;text-align:right;transform-origin:250px 0;-o-transform-origin:250px 0;-ms-transform-origin:250px 0;-moz-transform-origin:250px 0;-webkit-transform-origin:250px 0;transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);z-index:1000}.environment.in .content{background-color:#dc8c14cc}.environment.va .content{background-color:#c81e1ecc}:host .btn.btn-lighter{color:var(--vd-primary-dark);text-transform:none;background-color:#fff;border:var(--vd-neutral-lighter) 1px solid}:host .btn.btn-lighter:hover{color:#fff;border:1px solid var(--vd-primary-dark);background-color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter.active .svg-inline--fa,:host ::ng-deep .btn.btn-lighter:hover .svg-inline--fa{color:#fff}.st0{fill:#9f3}.st1{fill:#40d940}.st2{fill:#fff}.st3{fill:#d5dee3}.st4{fill:#546674}.st5{fill:#1f5e03}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnIconUserComponent, selector: "foehn-icon-user" }, { kind: "component", type: FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple", "noSelectionLabel"] }, { kind: "component", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: ["id", "label", "model", "btnCssClass"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FoehnSkipLinkComponent, selector: "foehn-skip-link", inputs: ["accesskey", "targetAnchor", "title", "content"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
6347
6347
|
}
|
|
6348
6348
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnHeaderComponent, decorators: [{
|
|
6349
6349
|
type: Component,
|
|
6350
|
-
args: [{ selector: 'foehn-header', template: "<header id=\"foehn_headerContainer\" class=\"header pb-2\" role=\"banner\">\n <ng-container *ngIf=\"!(isProduction | async)\">\n <div\n *ngIf=\"applicationInfoService.data | async as info\"\n class=\"environment {{ info.environment?.toLowerCase() }}\"\n >\n <span class=\"content\">{{ getEnvironmentLabel(info) }}</span>\n </div>\n </ng-container>\n\n <nav\n class=\"container fixed-top access-nav d-print-none\"\n aria-label=\"menu accessibilit\u00E9\"\n >\n <ul class=\"list-unstyled mt-3\">\n <li>\n <foehn-skip-link\n accesskey=\"0\"\n [title]=\"'foehn-skip-link.title' | fromDictionary\"\n [content]=\"'foehn-skip-link.content' | fromDictionary\"\n targetAnchor=\"main\"\n ></foehn-skip-link>\n </li>\n </ul>\n </nav>\n\n <div class=\"container\">\n <ng-container *ngIf=\"mockedServices | async as resolvedMockedServices\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"resolvedMockedServices.length > 0\"\n >\n <h2 class=\"my-0\">Il semble y avoir certains mocks actifs</h2>\n <ul>\n <li *ngFor=\"let mock of resolvedMockedServices\">\n {{ mock }}\n </li>\n </ul>\n </div>\n </ng-container>\n <div class=\"d-flex flex-wrap\">\n <a\n class=\"vd-logo\"\n href=\"https://www.vd.ch\"\n [title]=\"'foehn-header.logo.title' | fromDictionary\"\n >\n <!-- Copied from @dsivd/foehn/dist/assets/svg/ETATVAUD-alt.svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"vecteurs\"\n version=\"1.1\"\n width=\"208.8\"\n height=\"35.3\"\n >\n <style id=\"style2\">\n .st0 {\n fill: #9f3;\n }\n\n .st1 {\n fill: #40d940;\n }\n\n .st2 {\n fill: #fff;\n }\n\n .st3 {\n fill: #d5dee3;\n }\n\n .st4 {\n fill: #546674;\n }\n\n .st5 {\n fill: #1f5e03;\n }\n </style>\n <path\n class=\"st0\"\n d=\"M0 30.2h5v5.1H0z\"\n id=\"path4\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M5 30.2h5v5.1H5z\"\n id=\"path6\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M10 30.2h5v5.1h-5z\"\n id=\"path8\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M14.9 30.2h5v5.1h-5z\"\n id=\"path10\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M19.9 30.2h5v5.1h-5z\"\n id=\"path12\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M24.8 30.2h5v5.1h-5z\"\n id=\"path14\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M29.8 30.2h5v5.1h-5z\"\n id=\"path16\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M34.7 30.2h5v5.1h-5z\"\n id=\"path18\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M39.7 30.2h5v5.1h-5z\"\n id=\"path20\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M44.6 30.2h5v5.1h-5z\"\n id=\"path22\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M49.6 30.2h5v5.1h-5z\"\n id=\"path24\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M54.5 30.2h5v5.1h-5z\"\n id=\"path26\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M59.5 30.2h5v5.1h-5z\"\n id=\"path28\"\n fill=\"#fff\"\n />\n <path\n class=\"st0\"\n d=\"M64.5 30.2h5v5.1h-5z\"\n id=\"path30\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M69.4 30.2h5v5.1h-5z\"\n id=\"path32\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M74.4 30.2h5v5.1h-5z\"\n id=\"path34\"\n fill=\"#546674\"\n />\n <path\n class=\"st2\"\n d=\"M79.3 30.2h5v5.1h-5z\"\n id=\"path36\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M84.3 30.2h5v5.1h-5z\"\n id=\"path38\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M89.2 30.2h5v5.1h-5z\"\n id=\"path40\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M94.2 30.2h5v5.1h-5z\"\n id=\"path42\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M99.1 30.2h5v5.1h-5z\"\n id=\"path44\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M104.1 30.2h5v5.1h-5z\"\n id=\"path46\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M109 30.2h5v5.1h-5z\"\n id=\"path48\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M114 30.2h5v5.1h-5z\"\n id=\"path50\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M119 30.2h5v5.1h-5z\"\n id=\"path52\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M123.9 30.2h5v5.1h-5z\"\n id=\"path54\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M128.9 30.2h5v5.1h-5z\"\n id=\"path56\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st2\"\n d=\"M133.8 30.2h5v5.1h-5z\"\n id=\"path58\"\n fill=\"#fff\"\n />\n <path\n class=\"st5\"\n d=\"M138.8 30.2h5v5.1h-5z\"\n id=\"path60\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M143.7 30.2h5v5.1h-5z\"\n id=\"path62\"\n fill=\"#40d940\"\n />\n <path d=\"M148.7 30.2h5v5.1h-5z\" id=\"path64\" />\n <path\n class=\"st1\"\n d=\"M153.6 30.2h5v5.1h-5z\"\n id=\"path66\"\n fill=\"#40d940\"\n />\n <path d=\"M158.6 30.2h5v5.1h-5z\" id=\"path68\" />\n <path\n class=\"st1\"\n d=\"M163.5 30.2h5v5.1h-5z\"\n id=\"path70\"\n fill=\"#40d940\"\n />\n <path d=\"M168.5 30.2h5v5.1h-5z\" id=\"path72\" />\n <path\n class=\"st1\"\n d=\"M173.5 30.2h5v5.1h-5z\"\n id=\"path74\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M178.4 30.2h5v5.1h-5z\"\n id=\"path76\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M183.4 30.2h5v5.1h-5z\"\n id=\"path78\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M188.3 30.2h5v5.1h-5z\"\n id=\"path80\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M193.3 30.2h5v5.1h-5z\"\n id=\"path82\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M198.2 30.2h5v5.1h-5z\"\n id=\"path84\"\n fill=\"#40d940\"\n />\n <path\n class=\"st0\"\n d=\"M203.2 30.2h5v5.1h-5z\"\n id=\"path86\"\n fill=\"#9f3\"\n />\n <g id=\"g90\" transform=\"translate(-444.8 -502.9)\">\n <path\n d=\"M444.8 508.5h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm7-5.6h4.7l-3 4.2h-3.3zm16.2 9.4h-5.8v-3.8h16.6v3.8H473v17.8h-5zm17.2-3.8h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm18.9-9.5h-5.8v-3.8h16.6v3.8H509v17.8h-4.9zm20.9-3.8h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2zm15.5-17.8h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm23.7 0h5.2l5.1 16.6 5.1-16.6h4.6l-7.2 21.6h-5.6zm26.2 0h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm15.2-.1v-13.2h4.9v12.9c0 3.6 1.1 5.2 4 5.2s4.2-1.4 4.2-5.3v-12.7h4.9v13c0 5.9-3.3 8.9-9.1 8.9-5.6-.1-8.9-3.1-8.9-8.8zm22.7-13.2h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2z\"\n id=\"path88\"\n fill=\"#231f20\"\n />\n </g>\n </svg>\n </a>\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamCyber\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedEsSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.title'\n | fromDictionary\n }}\n </span>\n <a id=\"header-connectedEs\" href=\"/100002/\">\n {{ beneficiaire }}\n </a>\n </p>\n\n <p class=\"mb-0 small\" *ngIf=\"!isParticulier()\">\n <span\n id=\"header-connectedUserSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n </dl>\n <foehn-dropdown-menu\n id=\"menu-connectedEs-withLogo\"\n [model]=\"connectedEsMenu\"\n [btnCssClass]=\"'btn-link'\"\n [label]=\"'Logo de ' + beneficiaire\"\n >\n <figure class=\"m-0 ms-auto vd-avatar\">\n <img\n class=\"vd-avatar__image\"\n [alt]=\"'Logo de ' + beneficiaire\"\n src=\"api/sessionInfo/beneficiary-info/logo\"\n />\n </figure>\n </foehn-dropdown-menu>\n </div>\n </section>\n\n <section\n class=\"mb-3 ms-auto\"\n *ngIf=\"\n showSecuredAreaLoginButton &&\n isSecuredAreaLoginButtonAllowed()\n \"\n >\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.connection.srOnly'\n | fromDictionary\n }}\n </h2>\n <a\n id=\"btn-login-secured-area\"\n class=\"btn btn-lighter d-inline-flex\"\n [href]=\"getFullLoginUrl() | async\"\n >\n <foehn-icon-user\n class=\"me-sm-2\"\n aria-hidden=\"true\"\n ></foehn-icon-user>\n <span class=\"d-sm-block d-xs-none\">\n {{\n 'foehn-header.cyber-secured-area.connection.button.title'\n | fromDictionary\n }}\n </span>\n </a>\n </section>\n\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamAcv\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.iam-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedUser-acvSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.iam-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser-acv\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n <ul class=\"mb-0 small list-inline\">\n <li class=\"list-inline-item\">\n <a href=\"logout\">\n {{\n 'foehn-header.iam-secured-area.logout'\n | fromDictionary\n }}\n </a>\n </li>\n </ul>\n </dl>\n </div>\n </section>\n </div>\n\n <div class=\"row\">\n <div id=\"header-title\" class=\"col-md-10\">\n <span\n *ngIf=\"!routerLinkAppTitle; else appTitleElseRouting\"\n id=\"app-title\"\n class=\"h3 mt-1 vd-heading-light\"\n >\n {{ title }}\n </span>\n <ng-template #appTitleElseRouting>\n <a\n class=\"h3 mt-1 vd-heading-light\"\n [routerLink]=\"routerLinkAppTitle\"\n >\n {{ title }}\n </a>\n </ng-template>\n </div>\n <div\n class=\"col-md-2\"\n *ngIf=\"availableLanguages | async as languages\"\n >\n <foehn-select\n name=\"languageSelector\"\n label=\"S\u00E9lection de la langue\"\n [isLabelSrOnly]=\"true\"\n *ngIf=\"languages.length > 1\"\n [elements]=\"languages\"\n [elementValue]=\"'code'\"\n [model]=\"currentLanguageCode | async\"\n (userInput)=\"languageChanged($event)\"\n [required]=\"true\"\n ></foehn-select>\n </div>\n </div>\n </div>\n</header>\n", styles: [".vd-avatar__image{width:50px;height:50px;margin:auto;-o-object-fit:scale-down;object-fit:scale-down}.environment{position:fixed;z-index:2}.environment .content{position:absolute;left:-250px;top:-.66667rem;display:block;width:250px;padding:5px 10px;background-color:#3278c8cc;color:#fff;font:700 18px/1 Lato,sans-serif;text-transform:uppercase;text-align:right;transform-origin:250px 0;-o-transform-origin:250px 0;-ms-transform-origin:250px 0;-moz-transform-origin:250px 0;-webkit-transform-origin:250px 0;transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);z-index:1000}.environment.in .content{background-color:#dc8c14cc}.environment.va .content{background-color:#c81e1ecc}:host .btn.btn-lighter{color:var(--vd-primary-dark);text-transform:none;background-color:#fff;border:var(--vd-neutral-lighter) 1px solid}:host .btn.btn-lighter:hover{color:#fff;border:1px solid var(--vd-primary-dark);background-color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter.active .svg-inline--fa,:host ::ng-deep .btn.btn-lighter:hover .svg-inline--fa{color:#fff}\n"] }]
|
|
6350
|
+
args: [{ selector: 'foehn-header', template: "<header id=\"foehn_headerContainer\" class=\"header pb-2\" role=\"banner\">\n <ng-container *ngIf=\"!(isProduction | async)\">\n <div\n *ngIf=\"applicationInfoService.data | async as info\"\n class=\"environment {{ info.environment?.toLowerCase() }}\"\n >\n <span class=\"content\">{{ getEnvironmentLabel(info) }}</span>\n </div>\n </ng-container>\n\n <nav\n class=\"container fixed-top access-nav d-print-none\"\n aria-label=\"menu accessibilit\u00E9\"\n >\n <ul class=\"list-unstyled mt-3\">\n <li>\n <foehn-skip-link\n accesskey=\"0\"\n [title]=\"'foehn-skip-link.title' | fromDictionary\"\n [content]=\"'foehn-skip-link.content' | fromDictionary\"\n targetAnchor=\"main\"\n ></foehn-skip-link>\n </li>\n </ul>\n </nav>\n\n <div class=\"container\">\n <ng-container *ngIf=\"mockedServices | async as resolvedMockedServices\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"resolvedMockedServices.length > 0\"\n >\n <h2 class=\"my-0\">Il semble y avoir certains mocks actifs</h2>\n <ul>\n <li *ngFor=\"let mock of resolvedMockedServices\">\n {{ mock }}\n </li>\n </ul>\n </div>\n </ng-container>\n <div class=\"d-flex flex-wrap\">\n <a\n class=\"vd-logo\"\n href=\"https://www.vd.ch\"\n [title]=\"'foehn-header.logo.title' | fromDictionary\"\n >\n <!-- Copied from @dsivd/foehn/dist/assets/svg/ETATVAUD-alt.svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"vecteurs\"\n version=\"1.1\"\n width=\"208.8\"\n height=\"35.3\"\n >\n <path\n class=\"st0\"\n d=\"M0 30.2h5v5.1H0z\"\n id=\"path4\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M5 30.2h5v5.1H5z\"\n id=\"path6\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M10 30.2h5v5.1h-5z\"\n id=\"path8\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M14.9 30.2h5v5.1h-5z\"\n id=\"path10\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M19.9 30.2h5v5.1h-5z\"\n id=\"path12\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M24.8 30.2h5v5.1h-5z\"\n id=\"path14\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M29.8 30.2h5v5.1h-5z\"\n id=\"path16\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M34.7 30.2h5v5.1h-5z\"\n id=\"path18\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M39.7 30.2h5v5.1h-5z\"\n id=\"path20\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st1\"\n d=\"M44.6 30.2h5v5.1h-5z\"\n id=\"path22\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M49.6 30.2h5v5.1h-5z\"\n id=\"path24\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M54.5 30.2h5v5.1h-5z\"\n id=\"path26\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M59.5 30.2h5v5.1h-5z\"\n id=\"path28\"\n fill=\"#fff\"\n />\n <path\n class=\"st0\"\n d=\"M64.5 30.2h5v5.1h-5z\"\n id=\"path30\"\n fill=\"#9f3\"\n />\n <path\n class=\"st2\"\n d=\"M69.4 30.2h5v5.1h-5z\"\n id=\"path32\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M74.4 30.2h5v5.1h-5z\"\n id=\"path34\"\n fill=\"#546674\"\n />\n <path\n class=\"st2\"\n d=\"M79.3 30.2h5v5.1h-5z\"\n id=\"path36\"\n fill=\"#fff\"\n />\n <path\n class=\"st4\"\n d=\"M84.3 30.2h5v5.1h-5z\"\n id=\"path38\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M89.2 30.2h5v5.1h-5z\"\n id=\"path40\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M94.2 30.2h5v5.1h-5z\"\n id=\"path42\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M99.1 30.2h5v5.1h-5z\"\n id=\"path44\"\n fill=\"#9f3\"\n />\n <path\n class=\"st4\"\n d=\"M104.1 30.2h5v5.1h-5z\"\n id=\"path46\"\n fill=\"#546674\"\n />\n <path\n class=\"st0\"\n d=\"M109 30.2h5v5.1h-5z\"\n id=\"path48\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M114 30.2h5v5.1h-5z\"\n id=\"path50\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M119 30.2h5v5.1h-5z\"\n id=\"path52\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M123.9 30.2h5v5.1h-5z\"\n id=\"path54\"\n fill=\"#40d940\"\n />\n <path\n class=\"st5\"\n d=\"M128.9 30.2h5v5.1h-5z\"\n id=\"path56\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st2\"\n d=\"M133.8 30.2h5v5.1h-5z\"\n id=\"path58\"\n fill=\"#fff\"\n />\n <path\n class=\"st5\"\n d=\"M138.8 30.2h5v5.1h-5z\"\n id=\"path60\"\n fill=\"#1f5e03\"\n />\n <path\n class=\"st1\"\n d=\"M143.7 30.2h5v5.1h-5z\"\n id=\"path62\"\n fill=\"#40d940\"\n />\n <path d=\"M148.7 30.2h5v5.1h-5z\" id=\"path64\" />\n <path\n class=\"st1\"\n d=\"M153.6 30.2h5v5.1h-5z\"\n id=\"path66\"\n fill=\"#40d940\"\n />\n <path d=\"M158.6 30.2h5v5.1h-5z\" id=\"path68\" />\n <path\n class=\"st1\"\n d=\"M163.5 30.2h5v5.1h-5z\"\n id=\"path70\"\n fill=\"#40d940\"\n />\n <path d=\"M168.5 30.2h5v5.1h-5z\" id=\"path72\" />\n <path\n class=\"st1\"\n d=\"M173.5 30.2h5v5.1h-5z\"\n id=\"path74\"\n fill=\"#40d940\"\n />\n <path\n class=\"st2\"\n d=\"M178.4 30.2h5v5.1h-5z\"\n id=\"path76\"\n fill=\"#fff\"\n />\n <path\n class=\"st1\"\n d=\"M183.4 30.2h5v5.1h-5z\"\n id=\"path78\"\n fill=\"#40d940\"\n />\n <path\n class=\"st3\"\n d=\"M188.3 30.2h5v5.1h-5z\"\n id=\"path80\"\n fill=\"#d5dee3\"\n />\n <path\n class=\"st0\"\n d=\"M193.3 30.2h5v5.1h-5z\"\n id=\"path82\"\n fill=\"#9f3\"\n />\n <path\n class=\"st1\"\n d=\"M198.2 30.2h5v5.1h-5z\"\n id=\"path84\"\n fill=\"#40d940\"\n />\n <path\n class=\"st0\"\n d=\"M203.2 30.2h5v5.1h-5z\"\n id=\"path86\"\n fill=\"#9f3\"\n />\n <g id=\"g90\" transform=\"translate(-444.8 -502.9)\">\n <path\n d=\"M444.8 508.5h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm7-5.6h4.7l-3 4.2h-3.3zm16.2 9.4h-5.8v-3.8h16.6v3.8H473v17.8h-5zm17.2-3.8h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm18.9-9.5h-5.8v-3.8h16.6v3.8H509v17.8h-4.9zm20.9-3.8h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2zm15.5-17.8h14.1v3.8h-9.2v5h7.4v3.6h-7.4v5.4h9.7v3.8h-14.6zm23.7 0h5.2l5.1 16.6 5.1-16.6h4.6l-7.2 21.6h-5.6zm26.2 0h6.4l7 21.6h-5.1l-1.5-4.8h-7.8l-1.5 4.8h-4.6zm0 13.3h5.7l-2.8-9.3zm15.2-.1v-13.2h4.9v12.9c0 3.6 1.1 5.2 4 5.2s4.2-1.4 4.2-5.3v-12.7h4.9v13c0 5.9-3.3 8.9-9.1 8.9-5.6-.1-8.9-3.1-8.9-8.8zm22.7-13.2h7.1c7.6 0 11.3 4.1 11.3 10.6v.2c0 6.5-3.8 10.8-11.4 10.8h-7zm6.9 17.8c4.3 0 6.4-2.4 6.4-6.9v-.2c0-4.4-1.9-6.8-6.5-6.8h-1.9v14h2z\"\n id=\"path88\"\n fill=\"#231f20\"\n />\n </g>\n </svg>\n </a>\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamCyber\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedEsSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.title'\n | fromDictionary\n }}\n </span>\n <a id=\"header-connectedEs\" href=\"/100002/\">\n {{ beneficiaire }}\n </a>\n </p>\n\n <p class=\"mb-0 small\" *ngIf=\"!isParticulier()\">\n <span\n id=\"header-connectedUserSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.cyber-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n </dl>\n <foehn-dropdown-menu\n id=\"menu-connectedEs-withLogo\"\n [model]=\"connectedEsMenu\"\n [btnCssClass]=\"'btn-link'\"\n [label]=\"'Logo de ' + beneficiaire\"\n >\n <figure class=\"m-0 ms-auto vd-avatar\">\n <img\n class=\"vd-avatar__image\"\n [alt]=\"'Logo de ' + beneficiaire\"\n src=\"api/sessionInfo/beneficiary-info/logo\"\n />\n </figure>\n </foehn-dropdown-menu>\n </div>\n </section>\n\n <section\n class=\"mb-3 ms-auto\"\n *ngIf=\"\n showSecuredAreaLoginButton &&\n isSecuredAreaLoginButtonAllowed()\n \"\n >\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.cyber-secured-area.connection.srOnly'\n | fromDictionary\n }}\n </h2>\n <a\n id=\"btn-login-secured-area\"\n class=\"btn btn-lighter d-inline-flex\"\n [href]=\"getFullLoginUrl() | async\"\n >\n <foehn-icon-user\n class=\"me-sm-2\"\n aria-hidden=\"true\"\n ></foehn-icon-user>\n <span class=\"d-sm-block d-xs-none\">\n {{\n 'foehn-header.cyber-secured-area.connection.button.title'\n | fromDictionary\n }}\n </span>\n </a>\n </section>\n\n <section class=\"mb-3 ms-auto\" *ngIf=\"isIamAcv\">\n <h2 class=\"visually-hidden\">\n {{\n 'foehn-header.iam-secured-area.identity.srOnly'\n | fromDictionary\n }}\n </h2>\n <div class=\"d-flex flex-wrap\">\n <dl class=\"align-self-center text-end me-1\">\n <p class=\"mb-0\">\n <span\n id=\"header-connectedUser-acvSrLabel\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-header.iam-secured-area.connected-user'\n | fromDictionary\n }}\n </span>\n <span id=\"header-connectedUser-acv\">\n {{ prenom }} {{ nom }}\n </span>\n </p>\n <ul class=\"mb-0 small list-inline\">\n <li class=\"list-inline-item\">\n <a href=\"logout\">\n {{\n 'foehn-header.iam-secured-area.logout'\n | fromDictionary\n }}\n </a>\n </li>\n </ul>\n </dl>\n </div>\n </section>\n </div>\n\n <div class=\"row\">\n <div id=\"header-title\" class=\"col-md-10\">\n <span\n *ngIf=\"!routerLinkAppTitle; else appTitleElseRouting\"\n id=\"app-title\"\n class=\"h3 mt-1 vd-heading-light\"\n >\n {{ title }}\n </span>\n <ng-template #appTitleElseRouting>\n <a\n class=\"h3 mt-1 vd-heading-light\"\n [routerLink]=\"routerLinkAppTitle\"\n >\n {{ title }}\n </a>\n </ng-template>\n </div>\n <div\n class=\"col-md-2\"\n *ngIf=\"availableLanguages | async as languages\"\n >\n <foehn-select\n name=\"languageSelector\"\n label=\"S\u00E9lection de la langue\"\n [isLabelSrOnly]=\"true\"\n *ngIf=\"languages.length > 1\"\n [elements]=\"languages\"\n [elementValue]=\"'code'\"\n [model]=\"currentLanguageCode | async\"\n (userInput)=\"languageChanged($event)\"\n [required]=\"true\"\n ></foehn-select>\n </div>\n </div>\n </div>\n</header>\n", styles: [".vd-avatar__image{width:50px;height:50px;margin:auto;-o-object-fit:scale-down;object-fit:scale-down}.environment{position:fixed;z-index:2}.environment .content{position:absolute;left:-250px;top:-.66667rem;display:block;width:250px;padding:5px 10px;background-color:#3278c8cc;color:#fff;font:700 18px/1 Lato,sans-serif;text-transform:uppercase;text-align:right;transform-origin:250px 0;-o-transform-origin:250px 0;-ms-transform-origin:250px 0;-moz-transform-origin:250px 0;-webkit-transform-origin:250px 0;transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);z-index:1000}.environment.in .content{background-color:#dc8c14cc}.environment.va .content{background-color:#c81e1ecc}:host .btn.btn-lighter{color:var(--vd-primary-dark);text-transform:none;background-color:#fff;border:var(--vd-neutral-lighter) 1px solid}:host .btn.btn-lighter:hover{color:#fff;border:1px solid var(--vd-primary-dark);background-color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-lighter.active .svg-inline--fa,:host ::ng-deep .btn.btn-lighter:hover .svg-inline--fa{color:#fff}.st0{fill:#9f3}.st1{fill:#40d940}.st2{fill:#fff}.st3{fill:#d5dee3}.st4{fill:#546674}.st5{fill:#1f5e03}\n"] }]
|
|
6351
6351
|
}], ctorParameters: () => [{ type: SessionInfo }, { type: ApplicationInfoService }, { type: SdkDictionaryService }, { type: FoehnPageModalService }, { type: GesdemHandlerService }], propDecorators: { title: [{
|
|
6352
6352
|
type: Input
|
|
6353
6353
|
}], showSecuredAreaLoginButton: [{
|
|
@@ -15177,7 +15177,7 @@ class FoehnListSummaryComponent extends FoehnInputComponent {
|
|
|
15177
15177
|
useExisting: forwardRef(() => FoehnListSummaryComponent),
|
|
15178
15178
|
multi: true
|
|
15179
15179
|
}
|
|
15180
|
-
], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul
|
|
15180
|
+
], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li\n class=\"list-inline-item\"\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n >\n <a\n [id]=\"buildChildId('-see-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableEdition\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableDeletion\">\n \n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\" *ngIf=\"canAddItems\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n <button\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\"></foehn-icon-search>\n </button>\n <button\n *ngIf=\"!item.disableEdition\"\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n *ngIf=\"!item.disableDeletion\"\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnTableComponent, selector: "foehn-table", inputs: ["itemsPerPage", "id", "title", "titleSrOnly", "previousLabel", "nextLabel", "totalElements", "fixedPageCount", "columnsConfiguration", "sort", "list", "trackByFn"], outputs: ["pageChange", "sortChange", "rowClick"] }, { kind: "component", type: FoehnIconEditComponent, selector: "foehn-icon-edit" }, { kind: "component", type: FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "component", type: FoehnIconTrashAltComponent, selector: "foehn-icon-trash-alt" }, { kind: "component", type: FoehnErrorPillComponent, selector: "foehn-error-pill", inputs: ["errorPrefix", "incompleteIndicatorOnly"] }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
15181
15181
|
}
|
|
15182
15182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnListSummaryComponent, decorators: [{
|
|
15183
15183
|
type: Component,
|
|
@@ -15187,7 +15187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
15187
15187
|
useExisting: forwardRef(() => FoehnListSummaryComponent),
|
|
15188
15188
|
multi: true
|
|
15189
15189
|
}
|
|
15190
|
-
], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul
|
|
15190
|
+
], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li\n class=\"list-inline-item\"\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n >\n <a\n [id]=\"buildChildId('-see-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableEdition\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\" *ngIf=\"!item.disableDeletion\">\n \n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\" *ngIf=\"canAddItems\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n <button\n *ngIf=\"item.disableEdition && item.disableDeletion\"\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\"></foehn-icon-search>\n </button>\n <button\n *ngIf=\"!item.disableEdition\"\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n *ngIf=\"!item.disableDeletion\"\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"] }]
|
|
15191
15191
|
}], ctorParameters: () => [{ type: FoehnConfirmModalService }, { type: i0.NgZone }], propDecorators: { canAddItems: [{
|
|
15192
15192
|
type: Input
|
|
15193
15193
|
}], tableActionButtons: [{
|