@provoly/hypervisor 1.9.5 → 1.9.6
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, Input, ViewChild, ViewChildren } from '@angular/core';
|
|
2
2
|
import { EventActions } from '../../store/event/event.actions';
|
|
3
3
|
import { EventSelectors } from '../../store/event/event.selectors';
|
|
4
4
|
import { combineLatest, fromEvent, map } from 'rxjs';
|
|
@@ -96,14 +96,14 @@ export class EventListComponent extends SubscriptionnerDirective {
|
|
|
96
96
|
getEventDisLength(event) {
|
|
97
97
|
return this.eventDisLength = event.dis?.filter(eve => !!eve).length ?? 0;
|
|
98
98
|
}
|
|
99
|
-
showDiTooltip(event) {
|
|
99
|
+
showDiTooltip(event, index) {
|
|
100
100
|
if (!!this.overlayRef) {
|
|
101
101
|
this.overlayRef.dispose();
|
|
102
102
|
this.overlayRef = undefined;
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
105
105
|
const positionStrategy = this.overlayPositionBuilder
|
|
106
|
-
.flexibleConnectedTo(this.elem)
|
|
106
|
+
.flexibleConnectedTo(this.elem.get(index))
|
|
107
107
|
.withPositions([{
|
|
108
108
|
offsetX: -12,
|
|
109
109
|
offsetY: -10,
|
|
@@ -120,18 +120,18 @@ export class EventListComponent extends SubscriptionnerDirective {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventListComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }, { token: i2.Router }, { token: i3.InfiniteScrollService }, { token: i4.Overlay }, { token: i0.ViewContainerRef }, { token: i4.OverlayPositionBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventListComponent, selector: "hvy-event-list", inputs: { disableGotoDetail: "disableGotoDetail" }, viewQueries: [{ propertyName: "diTooltip", first: true, predicate: ["diTooltip"], descendants: true }, { propertyName: "elem",
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventListComponent, selector: "hvy-event-list", inputs: { disableGotoDetail: "disableGotoDetail" }, viewQueries: [{ propertyName: "diTooltip", first: true, predicate: ["diTooltip"], descendants: true }, { propertyName: "elem", predicate: ["elem"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>, </span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\" #elem\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n", dependencies: [{ kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i8.EventColumnOrderComponent, selector: "hvy-event-column-order" }, { kind: "component", type: i9.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i10.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["type", "readonly", "item", "modifiable"], outputs: ["modified"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.I18nPipe, name: "i18n" }, { kind: "pipe", type: i12.DisplayLocaleDateTime, name: "displayLocaleDatetime" }] }); }
|
|
124
124
|
}
|
|
125
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventListComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
127
|
-
args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>, </span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\" #elem\n (mouseenter)=\"showDiTooltip(event)\"\n (mouseleave)=\"showDiTooltip(event)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.
|
|
127
|
+
args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>, </span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\" #elem\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n" }]
|
|
128
128
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }, { type: i2.Router }, { type: i3.InfiniteScrollService }, { type: i4.Overlay }, { type: i0.ViewContainerRef }, { type: i4.OverlayPositionBuilder }], propDecorators: { disableGotoDetail: [{
|
|
129
129
|
type: Input
|
|
130
130
|
}], diTooltip: [{
|
|
131
131
|
type: ViewChild,
|
|
132
132
|
args: ['diTooltip', { static: false }]
|
|
133
133
|
}], elem: [{
|
|
134
|
-
type:
|
|
135
|
-
args: ['elem']
|
|
134
|
+
type: ViewChildren,
|
|
135
|
+
args: ['elem', { read: ElementRef }]
|
|
136
136
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9saXN0L2V2ZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvbGlzdC9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLEtBQUssRUFBZSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBRXBILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFVLGFBQWEsRUFBcUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixFQUFFLEVBQUUsQ0FBQyxLQUF3QyxFQUFFLEtBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0NBQ2hHLENBQUM7QUFFRixNQUFNLENB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dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIG1hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnRTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9nZW5lcmFsL2luZmluaXRlU2Nyb2xsLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFkSWQgfSBmcm9tICcuLi8uLi9nZW5lcmFsL3BhZC1pZC5mdW5jdGlvbic7XG5pbXBvcnQge3N0YXJ0V2l0aH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0xJTksgPSB7XG4gIGZuOiAoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscyB8IEh5cEV2ZW50U3VtbWFyeSwgc3RvcmU6IFN0b3JlPGFueT4pID0+IFsnLi8nLCBwYWRJZC5mbihldmVudC5pZCldXG59O1xuXG5leHBvcnQgY29uc3Qgc3RhdHVzT3JkZXIgOiB7IFtrZXk6IHN0cmluZ106IG51bWJlcn0gPSB7XG4gIE5FVzogMCxcbiAgQVNLRUQ6IDEsXG4gIElOX1BST0dSRVNTOiAyLFxuICBET05FOiAzLFxuICBDQU5DRUxMRUQ6IDQsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1ldmVudC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBldmVudHMkOiBPYnNlcnZhYmxlPEh5cEV2ZW50RGV0YWlsc1tdPjtcbiAgZXZlbnREaXNMZW5ndGggPSAwO1xuICBzZWxlY3RlZElkcyQ6IE9ic2VydmFibGU8bnVtYmVyW10+O1xuICBFVkVOVF9MSU5LID0gRVZFTlRfTElOSztcbiAgX3N0b3JlID0gdGhpcy5zdG9yZTtcbiAgYWxsU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBfaW5oaWJpdCA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc2FibGVHb3RvRGV0YWlsOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdkaVRvb2x0aXAnLCB7c3RhdGljOiBmYWxzZX0pIGRpVG9vbHRpcCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2VsZW0nKSBlbGVtITogRWxlbWVudFJlZjtcbiAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNjcm9sbDogSW5maW5pdGVTY3JvbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5UG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQ8Q3VzdG9tRXZlbnQ+KHdpbmRvdywgJ2pvdXJuYWwtcmVmcmVzaCcpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChuZXcgQ3VzdG9tRXZlbnQoYGpvdXJuYWwtcmVmcmVzaGAsIHsgZGV0YWlsOiB0cnVlIH0pKVxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5sb2FkKHt9KSk7XG4gICAgICB9KVxuICAgIClcbiAgICB0aGlzLmV2ZW50cyQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ldmVudHMpLnBpcGUobWFwKGV2ZW50cyA9PiBldmVudHMubWFwKGV2ZW50ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXZlbnQsXG4gICAgICBkaXM6IGV2ZW50LmRpcz8uZmlsdGVyKGRpID0+ICEhZGkgJiYgISFkaS5pZCkuc29ydChmdW5jdGlvbiAoYSxiKXtcbiAgICAgICAgcmV0dXJuIChzdGF0dXNPcmRlclthLnN0YXR1cyBhcyBzdHJpbmddIC0gc3RhdHVzT3JkZXJbYi5zdGF0dXMgYXMgc3RyaW5nXSlcbiAgICAgIH0pXG4gICAgfVxuICAgIH0pKSk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zZWxlY3RlZElkcyk7XG4gICAgdGhpcy5hbGxTZWxlY3RlZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmV2ZW50cyQsIHRoaXMuc2VsZWN0ZWRJZHMkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtldmVudHMsIHNlbGVjdGVkSWRzXSkgPT4gZXZlbnRzLmxlbmd0aCA+IDAgJiYgZXZlbnRzLmZpbHRlcigoZXYpID0+ICFzZWxlY3RlZElkcy5pbmNsdWRlcyhldi5pZCkpLmxlbmd0aCA9PT0gMFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2Nyb2xsLmlzRW5kT2ZQYWdlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgRXZlbnRTZWxlY3RvcnMubm9Nb3JlRXZlbnRzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5sb2FkKHsgbmV4dDogdHJ1ZSB9KSk7XG4gICAgICAgIHRoaXMuX2luaGliaXQgPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2luaGliaXQgPSBmYWxzZSwgMTAwMCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5faW5oaWJpdCA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0KGV2ZW50OiBIeXBFdmVudERldGFpbHMsICRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaW5oaWJpdCgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLnNlbGVjdCh7IGlkczogW2V2ZW50LmlkXSwgY3VtdWxhdGl2ZTogdHJ1ZSB9KSk7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgc2VsZWN0QWxsKCRldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLl9pbmhpYml0KSB7XG4gICAgICBjb25zdCB0bXBTdWIgPSB0aGlzLmV2ZW50cyQuc3Vic2NyaWJlKChldmVudHMpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuc2VsZWN0KHsgaWRzOiAkZXZlbnQgPyBldmVudHMubWFwKChldikgPT4gZXYuaWQpIDogW10sIGN1bXVsYXRpdmU6IGZhbHNlIH0pKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0bXBTdWIudW5zdWJzY3JpYmUoKSwgMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaW5oaWJpdCgpIHtcbiAgICB0aGlzLl9pbmhpYml0ID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl9pbmhpYml0ID0gZmFsc2UpLCAxMDApO1xuICB9XG5cbiAgZ29UbyhldmVudDogSHlwRXZlbnREZXRhaWxzKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVHb3RvRGV0YWlsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy5FVkVOVF9MSU5LLmZuKGV2ZW50LCB0aGlzLnN0b3JlKSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGdldEV2ZW50RGlzTGVuZ3RoKGV2ZW50OiBIeXBFdmVudERldGFpbHMpe1xuICAgIHJldHVybiB0aGlzLmV2ZW50RGlzTGVuZ3RoID0gIGV2ZW50LmRpcz8uZmlsdGVyKGV2ZSA9PiAhIWV2ZSkubGVuZ3RoID8/IDA7XG4gIH1cblxuICBzaG93RGlUb29sdGlwKGV2ZW50Okh5cEV2ZW50RGV0YWlscyl7XG4gICAgaWYoISF0aGlzLm92ZXJsYXlSZWYpe1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVBvc2l0aW9uQnVpbGRlclxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW0pXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb2Zmc2V0WDogLTEyLFxuICAgICAgICAgIG9mZnNldFk6IC0xMCxcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH1dKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgcG9zaXRpb25TdHJhdGVneVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZGlUb29sdGlwLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIDxhbnk+eyAkaW1wbGljaXQ6IGV2ZW50IH0pKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTWF0aCA9IE1hdGg7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYWRJZCA9IHBhZElkO1xufVxuIiwiPHRhYmxlIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlXCI+XG4gIDx0aGVhZD5cbiAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2hlYWRlclwiPlxuICAgICAgPHRoIGNsYXNzPVwiLWNoZWNrYm94XCI+XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiYWxsU2VsZWN0ZWQkIHwgYXN5bmNcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAoe3soc2VsZWN0ZWRJZHMkfCBhc3luYyk/Lmxlbmd0aH19KVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3ByeS1jaGVja2JveD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY3JpdGljYWxpdHlcIj57eyAnQGh2eS5ldmVudC5jcml0aWNhbGl0eS5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImlkXCI+e3sgJ0BodnkuZXZlbnQuaWQnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiZG9tYWluXCI+e3sgJ0BodnkuZXZlbnQuZG9tYWluLm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwibmFtZVwiPnt7ICdAaHZ5LmV2ZW50Lm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIHt7ICdAaHZ5LmV2ZW50LmRpcycgfCBpMThuIH19XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInN0YXR1c1wiPnt7ICdAaHZ5LmV2ZW50LnN0YXR1cy5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInNvdXJjZVwiPnt7ICdAaHZ5LmV2ZW50LnNvdXJjZScgfCBpMThuIH19PC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJwcm9jZWR1cmVQcm9ncmVzc1wiXG4gICAgICAgICAgPnt7ICdAaHZ5LnByb2NlZHVyZS5wcm9ncmVzcycgfCBpMThuIH19XG4gICAgICAgIDwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY2F0ZWdvcnlcIj57eyAnQGh2eS5ldmVudC5jYXRlZ29yeS5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImNyZWF0aW9uRGF0ZVwiPnt7ICdAaHZ5LmV2ZW50LmNyZWF0aW9uRGF0ZVRhYmxlJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImxhc3RNb2RpZmljYXRpb25EYXRlXCJcbiAgICAgICAgICA+e3sgJ0BodnkuZXZlbnQubGFzdE1vZGlmaWNhdGlvbkRhdGVUYWJsZScgfCBpMThuIH19XG4gICAgICAgIDwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgQGZvciAoZXZlbnQgb2YgZXZlbnRzJCB8IGFzeW5jOyB0cmFjayBldmVudC5pZCkge1xuICAgICAgPHRyIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lXCIgW2NsYXNzLi1ub2dvXT1cImRpc2FibGVHb3RvRGV0YWlsXCIgKGNsaWNrKT1cImdvVG8oZXZlbnQpXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjaGVja2JveFwiPlxuICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIihzZWxlY3RlZElkcyQgfCBhc3luYykhLmluY2x1ZGVzKGV2ZW50LmlkKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGV2ZW50LCAkZXZlbnQpXCJcbiAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCAtY2VudGVyZWQgaWNvblwiPlxuICAgICAgICAgIDxodnktaWNvbi1kaXNwbGF5IFtldmVudF09XCJldmVudFwiPjwvaHZ5LWljb24tZGlzcGxheT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIGlkXCI+XG4gICAgICAgICAge3sgcGFkSWQuZm4oZXZlbnQuaWQpIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBkb21haW5cIj5cbiAgICAgICAgICB7eyBldmVudC5kb21haW4gPz8gJycgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIG5hbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19tYWluXCI+e3sgZXZlbnQubmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YlwiPlxuICAgICAgICAgICAgQGlmIChldmVudC5lcXVpcG1lbnQpIHtcbiAgICAgICAgICAgICAge3sgZXZlbnQuZXF1aXBtZW50Lm5hbWUgPyBldmVudC5lcXVpcG1lbnQubmFtZSA6ICcnIH19IC1cbiAgICAgICAgICAgICAge3sgZXZlbnQuZXF1aXBtZW50ID8gKCdAaHZ5LmV2ZW50LmZhbWlseS4nICsgZXZlbnQuZXF1aXBtZW50LmZhbWlseSB8IGkxOG4pIDogJycgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19zdWJzdWJcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGV2ZW50LmFkZHJlc3MgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYoZXZlbnQuZGlzdHJpY3QpIHtcbiAgICAgICAgICAgICAgQGlmKGV2ZW50LmFkZHJlc3MpIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj4sJm5ic3A7PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuPnt7KFwiQGh2eS5ldmVudC5wbGFjZXMuXCIgKyBldmVudC5kaXN0cmljdCB8IGkxOG4pfX0gPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxcIj5cbiAgICAgICAgICBAaWYgKGdldEV2ZW50RGlzTGVuZ3RoKGV2ZW50KSA+IDApe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWxhc3QtZXZlbnRzX19zZXJ2aWNlc19faXRlbV9faWNvblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLWNvbnRhaW5lclwiICNlbGVtXG4gICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd0RpVG9vbHRpcChldmVudClcIlxuICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dEaVRvb2x0aXAoZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJzZXJ2aWNlXCIgW2hlaWdodF09XCIzMFwiIFt3aWR0aF09XCIzMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICB7e2V2ZW50RGlzTGVuZ3RofX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZCBzdGF0dXNcIj5cbiAgICAgICAgICA8aHZ5LXN0YXR1cy1kaXNwbGF5IFtpdGVtXT1cImV2ZW50XCI+PC9odnktc3RhdHVzLWRpc3BsYXk+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBzb3VyY2VcIj5cbiAgICAgICAgICB7eyBldmVudC5leHRlcm5hbFNvdXJjZVJlZiA/PyAoJ0BodnkuZXZlbnQuaHlwZXJ2aXNvcicgfCBpMThuKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkIHByb2dyZXNzXCI+e3sgZXZlbnQucHJvY2VkdXJlUHJvZ3Jlc3MgfX0gJTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjYXRlZ29yeVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX21haW5cIj5cbiAgICAgICAgICAgIHt7ICdAaHZ5LmV2ZW50LmNhdGVnb3J5LicgKyBldmVudC5jYXRlZ29yeSB8IGkxOG4gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGV2ZW50LnN1YkNhdGVnb3J5ICYmIGV2ZW50LnN1YkNhdGVnb3J5ICE9PSAnTk9ORScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YlwiPlxuICAgICAgICAgICAgICB7eyAnQGh2eS5ldmVudC5zdWJDYXRlZ29yeS4nICsgZXZlbnQuc3ViQ2F0ZWdvcnkgfCBpMThuIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjcmVhdGlvbi1kYXRlXCI+XG4gICAgICAgICAge3sgZXZlbnQuY3JlYXRpb25EYXRlIHwgZGlzcGxheUxvY2FsZURhdGV0aW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBtb2RpZmljYXRpb24tZGF0ZVwiPlxuICAgICAgICAgIHt7IGV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlIHwgZGlzcGxheUxvY2FsZURhdGV0aW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBsaW5rXCI+XG4gICAgICAgICAgQGlmICghZGlzYWJsZUdvdG9EZXRhaWwpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIkVWRU5UX0xJTksuZm4oZXZlbnQsIF9zdG9yZSlcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgJ0BodnkuZXZlbnQuY29uc3VsdCdcbiAgICAgICAgICAgICAgICAgIHwgaTE4bjogeyBob3dNYW55OiBNYXRoLm1heCgxLCBldmVudC5saW5rZWRFdmVudHMpLCBwbHVyYWw6IGV2ZW50LmxpbmtlZEV2ZW50cyA+IDEgPyAncycgOiAnJyB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdWx0LWxpbmtcIj5cbiAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV5ZVwiIFtoZWlnaHRdPVwiMzBcIiBbd2lkdGhdPVwiNDBcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIEBpZiAoZXZlbnQubGlua2VkRXZlbnRzID4gMSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZGljYXRvci1iYWRnZVwiPnt7IGV2ZW50LmxpbmtlZEV2ZW50cyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICB9IEBlbXB0eSB7XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fZW1wdHlcIiBjb2xzcGFuPVwiNTBcIj5cbiAgICAgICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5lbXB0eScgfCBpMThuIH19PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPG5nLXRlbXBsYXRlICNkaVRvb2x0aXAgbGV0LWV2ZW50PlxuICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLXRvb2x0aXBcIj5cbiAgICBAZm9yIChkaSBvZiBldmVudC5kaXM7IHRyYWNrIGRpKXtcbiAgICAgIDxkaXY+XG4gICAgICAgIC0ge3tkaS5pZH19ICh7eydAaHZ5LmV2ZW50LnN0YXR1cy4nICsgZGkuc3RhdHVzIHwgaTE4bn19KVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9saXN0L2V2ZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvbGlzdC9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBbUIsd0JBQXdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUs5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBVSxhQUFhLEVBQXFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUVuRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsRUFBRSxFQUFFLENBQUMsS0FBd0MsRUFBRSxLQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztDQUNo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QUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LCBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBFdmVudFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIGZyb21FdmVudCwgbWFwLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7UHJ5SWNvbkNvbXBvbmVudCwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnRTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9nZW5lcmFsL2luZmluaXRlU2Nyb2xsLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFkSWQgfSBmcm9tICcuLi8uLi9nZW5lcmFsL3BhZC1pZC5mdW5jdGlvbic7XG5pbXBvcnQge3N0YXJ0V2l0aH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0xJTksgPSB7XG4gIGZuOiAoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscyB8IEh5cEV2ZW50U3VtbWFyeSwgc3RvcmU6IFN0b3JlPGFueT4pID0+IFsnLi8nLCBwYWRJZC5mbihldmVudC5pZCldXG59O1xuXG5leHBvcnQgY29uc3Qgc3RhdHVzT3JkZXIgOiB7IFtrZXk6IHN0cmluZ106IG51bWJlcn0gPSB7XG4gIE5FVzogMCxcbiAgQVNLRUQ6IDEsXG4gIElOX1BST0dSRVNTOiAyLFxuICBET05FOiAzLFxuICBDQU5DRUxMRUQ6IDQsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1ldmVudC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBldmVudHMkOiBPYnNlcnZhYmxlPEh5cEV2ZW50RGV0YWlsc1tdPjtcbiAgZXZlbnREaXNMZW5ndGggPSAwO1xuICBzZWxlY3RlZElkcyQ6IE9ic2VydmFibGU8bnVtYmVyW10+O1xuICBFVkVOVF9MSU5LID0gRVZFTlRfTElOSztcbiAgX3N0b3JlID0gdGhpcy5zdG9yZTtcbiAgYWxsU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBfaW5oaWJpdCA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc2FibGVHb3RvRGV0YWlsOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdkaVRvb2x0aXAnLCB7c3RhdGljOiBmYWxzZX0pIGRpVG9vbHRpcCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oJ2VsZW0nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZWxlbSE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNjcm9sbDogSW5maW5pdGVTY3JvbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5UG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQ8Q3VzdG9tRXZlbnQ+KHdpbmRvdywgJ2pvdXJuYWwtcmVmcmVzaCcpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChuZXcgQ3VzdG9tRXZlbnQoYGpvdXJuYWwtcmVmcmVzaGAsIHsgZGV0YWlsOiB0cnVlIH0pKVxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5sb2FkKHt9KSk7XG4gICAgICB9KVxuICAgIClcbiAgICB0aGlzLmV2ZW50cyQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ldmVudHMpLnBpcGUobWFwKGV2ZW50cyA9PiBldmVudHMubWFwKGV2ZW50ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXZlbnQsXG4gICAgICBkaXM6IGV2ZW50LmRpcz8uZmlsdGVyKGRpID0+ICEhZGkgJiYgISFkaS5pZCkuc29ydChmdW5jdGlvbiAoYSxiKXtcbiAgICAgICAgcmV0dXJuIChzdGF0dXNPcmRlclthLnN0YXR1cyBhcyBzdHJpbmddIC0gc3RhdHVzT3JkZXJbYi5zdGF0dXMgYXMgc3RyaW5nXSlcbiAgICAgIH0pXG4gICAgfVxuICAgIH0pKSk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zZWxlY3RlZElkcyk7XG4gICAgdGhpcy5hbGxTZWxlY3RlZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmV2ZW50cyQsIHRoaXMuc2VsZWN0ZWRJZHMkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtldmVudHMsIHNlbGVjdGVkSWRzXSkgPT4gZXZlbnRzLmxlbmd0aCA+IDAgJiYgZXZlbnRzLmZpbHRlcigoZXYpID0+ICFzZWxlY3RlZElkcy5pbmNsdWRlcyhldi5pZCkpLmxlbmd0aCA9PT0gMFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2Nyb2xsLmlzRW5kT2ZQYWdlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgRXZlbnRTZWxlY3RvcnMubm9Nb3JlRXZlbnRzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5sb2FkKHsgbmV4dDogdHJ1ZSB9KSk7XG4gICAgICAgIHRoaXMuX2luaGliaXQgPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2luaGliaXQgPSBmYWxzZSwgMTAwMCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5faW5oaWJpdCA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0KGV2ZW50OiBIeXBFdmVudERldGFpbHMsICRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaW5oaWJpdCgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLnNlbGVjdCh7IGlkczogW2V2ZW50LmlkXSwgY3VtdWxhdGl2ZTogdHJ1ZSB9KSk7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgc2VsZWN0QWxsKCRldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLl9pbmhpYml0KSB7XG4gICAgICBjb25zdCB0bXBTdWIgPSB0aGlzLmV2ZW50cyQuc3Vic2NyaWJlKChldmVudHMpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuc2VsZWN0KHsgaWRzOiAkZXZlbnQgPyBldmVudHMubWFwKChldikgPT4gZXYuaWQpIDogW10sIGN1bXVsYXRpdmU6IGZhbHNlIH0pKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0bXBTdWIudW5zdWJzY3JpYmUoKSwgMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaW5oaWJpdCgpIHtcbiAgICB0aGlzLl9pbmhpYml0ID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl9pbmhpYml0ID0gZmFsc2UpLCAxMDApO1xuICB9XG5cbiAgZ29UbyhldmVudDogSHlwRXZlbnREZXRhaWxzKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVHb3RvRGV0YWlsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy5FVkVOVF9MSU5LLmZuKGV2ZW50LCB0aGlzLnN0b3JlKSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGdldEV2ZW50RGlzTGVuZ3RoKGV2ZW50OiBIeXBFdmVudERldGFpbHMpe1xuICAgIHJldHVybiB0aGlzLmV2ZW50RGlzTGVuZ3RoID0gIGV2ZW50LmRpcz8uZmlsdGVyKGV2ZSA9PiAhIWV2ZSkubGVuZ3RoID8/IDA7XG4gIH1cblxuICBzaG93RGlUb29sdGlwKGV2ZW50Okh5cEV2ZW50RGV0YWlscywgaW5kZXg6bnVtYmVyKXtcbiAgICBpZighIXRoaXMub3ZlcmxheVJlZil7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5UG9zaXRpb25CdWlsZGVyXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbS5nZXQoaW5kZXgpISlcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoW3tcbiAgICAgICAgICBvZmZzZXRYOiAtMTIsXG4gICAgICAgICAgb2Zmc2V0WTogLTEwLFxuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfV0pO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kaVRvb2x0aXAsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgPGFueT57ICRpbXBsaWNpdDogZXZlbnQgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBNYXRoID0gTWF0aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZElkID0gcGFkSWQ7XG59XG4iLCI8dGFibGUgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVcIj5cbiAgPHRoZWFkPlxuICAgIDx0ciBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9faGVhZGVyXCI+XG4gICAgICA8dGggY2xhc3M9XCItY2hlY2tib3hcIj5cbiAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJhbGxTZWxlY3RlZCQgfCBhc3luY1wiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICh7eyhzZWxlY3RlZElkcyR8IGFzeW5jKT8ubGVuZ3RofX0pXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcHJ5LWNoZWNrYm94PlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJjcml0aWNhbGl0eVwiPnt7ICdAaHZ5LmV2ZW50LmNyaXRpY2FsaXR5Lm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiaWRcIj57eyAnQGh2eS5ldmVudC5pZCcgfCBpMThuIH19PC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJkb21haW5cIj57eyAnQGh2eS5ldmVudC5kb21haW4ubmFtZScgfCBpMThuIH19PC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJuYW1lXCI+e3sgJ0BodnkuZXZlbnQubmFtZScgfCBpMThuIH19PC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAge3sgJ0BodnkuZXZlbnQuZGlzJyB8IGkxOG4gfX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwic3RhdHVzXCI+e3sgJ0BodnkuZXZlbnQuc3RhdHVzLm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwic291cmNlXCI+e3sgJ0BodnkuZXZlbnQuc291cmNlJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInByb2NlZHVyZVByb2dyZXNzXCJcbiAgICAgICAgICA+e3sgJ0BodnkucHJvY2VkdXJlLnByb2dyZXNzJyB8IGkxOG4gfX1cbiAgICAgICAgPC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJjYXRlZ29yeVwiPnt7ICdAaHZ5LmV2ZW50LmNhdGVnb3J5Lm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY3JlYXRpb25EYXRlXCI+e3sgJ0BodnkuZXZlbnQuY3JlYXRpb25EYXRlVGFibGUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwibGFzdE1vZGlmaWNhdGlvbkRhdGVcIlxuICAgICAgICAgID57eyAnQGh2eS5ldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZVRhYmxlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD48L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICBAZm9yIChldmVudCBvZiBldmVudHMkIHwgYXN5bmM7IHRyYWNrIGV2ZW50LmlkOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgIDx0ciBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZVwiIFtjbGFzcy4tbm9nb109XCJkaXNhYmxlR290b0RldGFpbFwiIChjbGljayk9XCJnb1RvKGV2ZW50KVwiPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgY2hlY2tib3hcIj5cbiAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICBbbmdNb2RlbF09XCIoc2VsZWN0ZWRJZHMkIHwgYXN5bmMpIS5pbmNsdWRlcyhldmVudC5pZClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdChldmVudCwgJGV2ZW50KVwiXG4gICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkIGljb25cIj5cbiAgICAgICAgICA8aHZ5LWljb24tZGlzcGxheSBbZXZlbnRdPVwiZXZlbnRcIj48L2h2eS1pY29uLWRpc3BsYXk+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBpZFwiPlxuICAgICAgICAgIHt7IHBhZElkLmZuKGV2ZW50LmlkKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgZG9tYWluXCI+XG4gICAgICAgICAge3sgZXZlbnQuZG9tYWluID8/ICcnIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBuYW1lXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbF9fbmFtZV9fbWFpblwiPnt7IGV2ZW50Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19zdWJcIj5cbiAgICAgICAgICAgIEBpZiAoZXZlbnQuZXF1aXBtZW50KSB7XG4gICAgICAgICAgICAgIHt7IGV2ZW50LmVxdWlwbWVudC5uYW1lID8gZXZlbnQuZXF1aXBtZW50Lm5hbWUgOiAnJyB9fSAtXG4gICAgICAgICAgICAgIHt7IGV2ZW50LmVxdWlwbWVudCA/ICgnQGh2eS5ldmVudC5mYW1pbHkuJyArIGV2ZW50LmVxdWlwbWVudC5mYW1pbHkgfCBpMThuKSA6ICcnIH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbF9fbmFtZV9fc3Vic3ViXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBldmVudC5hZGRyZXNzIH19PC9zcGFuPlxuICAgICAgICAgICAgQGlmKGV2ZW50LmRpc3RyaWN0KSB7XG4gICAgICAgICAgICAgIEBpZihldmVudC5hZGRyZXNzKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+LCZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8c3Bhbj57eyhcIkBodnkuZXZlbnQucGxhY2VzLlwiICsgZXZlbnQuZGlzdHJpY3QgfCBpMThuKX19IDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsXCI+XG4gICAgICAgICAgQGlmIChnZXRFdmVudERpc0xlbmd0aChldmVudCkgPiAwKXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1sYXN0LWV2ZW50c19fc2VydmljZXNfX2l0ZW1fX2ljb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRpcy1jb250YWluZXJcIiAjZWxlbVxuICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dEaVRvb2x0aXAoZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd0RpVG9vbHRpcChldmVudCwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJzZXJ2aWNlXCIgW2hlaWdodF09XCIzMFwiIFt3aWR0aF09XCIzMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICB7e2V2ZW50RGlzTGVuZ3RofX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZCBzdGF0dXNcIj5cbiAgICAgICAgICA8aHZ5LXN0YXR1cy1kaXNwbGF5IFtpdGVtXT1cImV2ZW50XCI+PC9odnktc3RhdHVzLWRpc3BsYXk+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBzb3VyY2VcIj5cbiAgICAgICAgICB7eyBldmVudC5leHRlcm5hbFNvdXJjZVJlZiA/PyAoJ0BodnkuZXZlbnQuaHlwZXJ2aXNvcicgfCBpMThuKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkIHByb2dyZXNzXCI+e3sgZXZlbnQucHJvY2VkdXJlUHJvZ3Jlc3MgfX0gJTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjYXRlZ29yeVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX21haW5cIj5cbiAgICAgICAgICAgIHt7ICdAaHZ5LmV2ZW50LmNhdGVnb3J5LicgKyBldmVudC5jYXRlZ29yeSB8IGkxOG4gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGV2ZW50LnN1YkNhdGVnb3J5ICYmIGV2ZW50LnN1YkNhdGVnb3J5ICE9PSAnTk9ORScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YlwiPlxuICAgICAgICAgICAgICB7eyAnQGh2eS5ldmVudC5zdWJDYXRlZ29yeS4nICsgZXZlbnQuc3ViQ2F0ZWdvcnkgfCBpMThuIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjcmVhdGlvbi1kYXRlXCI+XG4gICAgICAgICAge3sgZXZlbnQuY3JlYXRpb25EYXRlIHwgZGlzcGxheUxvY2FsZURhdGV0aW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBtb2RpZmljYXRpb24tZGF0ZVwiPlxuICAgICAgICAgIHt7IGV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlIHwgZGlzcGxheUxvY2FsZURhdGV0aW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBsaW5rXCI+XG4gICAgICAgICAgQGlmICghZGlzYWJsZUdvdG9EZXRhaWwpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIkVWRU5UX0xJTksuZm4oZXZlbnQsIF9zdG9yZSlcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgJ0BodnkuZXZlbnQuY29uc3VsdCdcbiAgICAgICAgICAgICAgICAgIHwgaTE4bjogeyBob3dNYW55OiBNYXRoLm1heCgxLCBldmVudC5saW5rZWRFdmVudHMpLCBwbHVyYWw6IGV2ZW50LmxpbmtlZEV2ZW50cyA+IDEgPyAncycgOiAnJyB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdWx0LWxpbmtcIj5cbiAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV5ZVwiIFtoZWlnaHRdPVwiMzBcIiBbd2lkdGhdPVwiNDBcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIEBpZiAoZXZlbnQubGlua2VkRXZlbnRzID4gMSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZGljYXRvci1iYWRnZVwiPnt7IGV2ZW50LmxpbmtlZEV2ZW50cyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICB9IEBlbXB0eSB7XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fZW1wdHlcIiBjb2xzcGFuPVwiNTBcIj5cbiAgICAgICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5lbXB0eScgfCBpMThuIH19PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPG5nLXRlbXBsYXRlICNkaVRvb2x0aXAgbGV0LWV2ZW50PlxuICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLXRvb2x0aXBcIj5cbiAgICBAZm9yIChkaSBvZiBldmVudC5kaXM7IHRyYWNrIGRpKXtcbiAgICAgIDxkaXY+XG4gICAgICAgIC0ge3tkaS5pZH19ICh7eydAaHZ5LnByb2NlZHVyZS5zdGF0dXMuJyArIGRpLnN0YXR1cyB8IGkxOG59fSlcbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Pipe, Component, Input, EventEmitter, Output, ViewChild,
|
|
2
|
+
import { Injectable, Pipe, Component, Input, EventEmitter, Output, ElementRef, ViewChild, ViewChildren, Inject, ViewContainerRef, model as model$1, TemplateRef, ContentChildren, Directive, forwardRef, signal, computed, InjectionToken, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$3 from '@provoly/dashboard';
|
|
4
4
|
import { FilterParamEncoder, DEFAULT_ICON_URL, SubscriptionnerDirective, INDEX_DATA, PRY_DIALOG_DATA, PryDialogConfirmComponent, PryI18nModule, PryCoreModule, PrySinceDateModule, PryIconModule, PrySelectModule, PryDatePickerModule, I18nPipe } from '@provoly/dashboard';
|
|
5
5
|
import * as i1$1 from '@ngrx/store';
|
|
@@ -719,14 +719,14 @@ class EventListComponent extends SubscriptionnerDirective {
|
|
|
719
719
|
getEventDisLength(event) {
|
|
720
720
|
return this.eventDisLength = event.dis?.filter(eve => !!eve).length ?? 0;
|
|
721
721
|
}
|
|
722
|
-
showDiTooltip(event) {
|
|
722
|
+
showDiTooltip(event, index) {
|
|
723
723
|
if (!!this.overlayRef) {
|
|
724
724
|
this.overlayRef.dispose();
|
|
725
725
|
this.overlayRef = undefined;
|
|
726
726
|
}
|
|
727
727
|
else {
|
|
728
728
|
const positionStrategy = this.overlayPositionBuilder
|
|
729
|
-
.flexibleConnectedTo(this.elem)
|
|
729
|
+
.flexibleConnectedTo(this.elem.get(index))
|
|
730
730
|
.withPositions([{
|
|
731
731
|
offsetX: -12,
|
|
732
732
|
offsetY: -10,
|
|
@@ -743,19 +743,19 @@ class EventListComponent extends SubscriptionnerDirective {
|
|
|
743
743
|
}
|
|
744
744
|
}
|
|
745
745
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventListComponent, deps: [{ token: i1$1.Store }, { token: i0.ElementRef }, { token: i2.Router }, { token: InfiniteScrollService }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i2$1.OverlayPositionBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
746
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventListComponent, selector: "hvy-event-list", inputs: { disableGotoDetail: "disableGotoDetail" }, viewQueries: [{ propertyName: "diTooltip", first: true, predicate: ["diTooltip"], descendants: true }, { propertyName: "elem",
|
|
746
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventListComponent, selector: "hvy-event-list", inputs: { disableGotoDetail: "disableGotoDetail" }, viewQueries: [{ propertyName: "diTooltip", first: true, predicate: ["diTooltip"], descendants: true }, { propertyName: "elem", predicate: ["elem"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>, </span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\" #elem\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n", dependencies: [{ kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: EventColumnOrderComponent, selector: "hvy-event-column-order" }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: StatusDisplayComponent, selector: "hvy-status-display", inputs: ["type", "readonly", "item", "modifiable"], outputs: ["modified"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }, { kind: "pipe", type: DisplayLocaleDateTime, name: "displayLocaleDatetime" }] }); }
|
|
747
747
|
}
|
|
748
748
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventListComponent, decorators: [{
|
|
749
749
|
type: Component,
|
|
750
|
-
args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>, </span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\" #elem\n (mouseenter)=\"showDiTooltip(event)\"\n (mouseleave)=\"showDiTooltip(event)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.
|
|
750
|
+
args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>, </span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\" #elem\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n" }]
|
|
751
751
|
}], ctorParameters: () => [{ type: i1$1.Store }, { type: i0.ElementRef }, { type: i2.Router }, { type: InfiniteScrollService }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i2$1.OverlayPositionBuilder }], propDecorators: { disableGotoDetail: [{
|
|
752
752
|
type: Input
|
|
753
753
|
}], diTooltip: [{
|
|
754
754
|
type: ViewChild,
|
|
755
755
|
args: ['diTooltip', { static: false }]
|
|
756
756
|
}], elem: [{
|
|
757
|
-
type:
|
|
758
|
-
args: ['elem']
|
|
757
|
+
type: ViewChildren,
|
|
758
|
+
args: ['elem', { read: ElementRef }]
|
|
759
759
|
}] } });
|
|
760
760
|
|
|
761
761
|
class TruncatePipe {
|