@bcgov/nr-ngx-component-lib 0.0.75 → 0.0.76

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.
@@ -21,7 +21,7 @@ export type ScheduleRowItem = {
21
21
  id: string;
22
22
  name: string;
23
23
  icons?: () => string[];
24
- tooltip?: () => string;
24
+ tooltip?: () => string | TemplateRef<any>;
25
25
  travel?: boolean;
26
26
  };
27
27
  export type ScheduleRow = {
@@ -157,13 +157,13 @@ export class ScheduleComponent extends RowListBase {
157
157
  }) || [];
158
158
  }
159
159
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScheduleComponent, selector: "nrcl-schedule", inputs: { provider: "provider", startDate: "startDate", weekStart: ["weekStart", "weekStart", numberAttribute], dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading", highlightDate: "highlightDate" }, host: { properties: { "style.--nrcl-schedule-day-count": "this.dayCount" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ScheduleRowHeadingDirective, descendants: true }, { propertyName: "itemTemplates", predicate: ScheduleItemDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"nrcl-schedule-multiline\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i4.GapComponent, selector: "nrcl-gap", inputs: ["horizontal", "vertical", "divider"] }, { kind: "component", type: i5.RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: ["paginationId", "pageSizeOptions", "pageSize", "pageNumber", "rowCount", "showPageSize", "noRowsMessage"], outputs: ["pageSizeChange", "pageNumberChange"] }, { kind: "component", type: i6.IconComponent, selector: "nrcl-icon", inputs: ["small", "large"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[nrclTooltip]", inputs: ["nrclTooltip", "nrclTooltipContext", "nrclTooltipClass", "nrclTooltipDelay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.PaginatePipe, name: "paginate" }] }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScheduleComponent, selector: "nrcl-schedule", inputs: { provider: "provider", startDate: "startDate", weekStart: ["weekStart", "weekStart", numberAttribute], dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading", highlightDate: "highlightDate" }, host: { properties: { "style.--nrcl-schedule-day-count": "this.dayCount" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ScheduleRowHeadingDirective, descendants: true }, { propertyName: "itemTemplates", predicate: ScheduleItemDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i4.GapComponent, selector: "nrcl-gap", inputs: ["horizontal", "vertical", "divider"] }, { kind: "component", type: i5.RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: ["paginationId", "pageSizeOptions", "pageSize", "pageNumber", "rowCount", "showPageSize", "noRowsMessage"], outputs: ["pageSizeChange", "pageNumberChange"] }, { kind: "component", type: i6.IconComponent, selector: "nrcl-icon", inputs: ["small", "large"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[nrclTooltip]", inputs: ["nrclTooltip", "nrclTooltipContext", "nrclTooltipClass", "nrclTooltipDelay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.PaginatePipe, name: "paginate" }] }); }
161
161
  }
162
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleComponent, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'nrcl-schedule', host: {
165
165
  '[style.--nrcl-schedule-day-count]': 'this.dayCount'
166
- }, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"nrcl-schedule-multiline\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"] }]
166
+ }, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"] }]
167
167
  }], propDecorators: { provider: [{
168
168
  type: Input
169
169
  }], startDate: [{
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
191
191
  type: ContentChild,
192
192
  args: [ScheduleRowHeadingDirective]
193
193
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUU5SixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBSzdELE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsWUFDVyxRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUNuQyxDQUFDOytHQUhNLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFFO29CQUNSLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDOztBQU9ELG1GQUFtRjtBQUtuRixNQUFNLE9BQU8scUJBQXFCO0lBRzlCLFlBQ1csUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFDbkMsQ0FBQzsrR0FMTSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBRTtvQkFDUixRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQztnRkFFZ0MsSUFBSTtzQkFBaEMsS0FBSzt1QkFBRSxrQkFBa0I7O0FBMEQ5QixtRkFBbUY7QUFVbkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQTJCO0lBUmxFOztRQVc2QyxjQUFTLEdBQUcsQ0FBQyxDQUFBO1FBRzdDLFVBQUssR0FBRyxJQUFJLENBQUE7UUFDWixlQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLFlBQU8sR0FBRyxJQUFJLENBQUE7UUFNYixVQUFLLEdBQVUsRUFBRSxDQUFBO1FBQ2pCLFdBQU0sR0FBVyxFQUFFLENBQUE7UUFDbkIsZUFBVSxHQUF5QixFQUFFLENBQUE7S0E2SGxEO0lBM0hHLFdBQVcsQ0FBRSxPQUFzQjtRQUMvQix3QkFBd0I7SUFDNUIsQ0FBQztJQUVELGVBQWU7UUFDWCxtREFBbUQ7UUFDbkQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1AsaUhBQWlIO1FBQ2pILElBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGlCQUFpQjtZQUFHLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRW5FLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBRSxDQUFBO0lBQ2xGLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhO1lBQUcsTUFBTSxLQUFLLENBQUUsa0RBQWtELENBQUUsQ0FBQTtRQUV0RyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBRSxHQUFRO1FBQ2YsSUFBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYTtZQUFHLE1BQU0sS0FBSyxDQUFFLGtEQUFrRCxDQUFFLENBQUE7UUFFdEcsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUUsR0FBRyxDQUFFLENBQUE7UUFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFFLElBQUksQ0FBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFRO1FBQ3ZCLElBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGtCQUFrQjtZQUFHLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFFLEdBQUcsQ0FBRSxDQUFBO1FBRWhGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBRSxHQUFHLENBQUUsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsbUJBQW1CO1lBQUcsTUFBTSxLQUFLLENBQUUsd0RBQXdELENBQUUsQ0FBQTtRQUVsSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLHdIQUF3SDtRQUN4SCxJQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBcUI7WUFBRyxPQUFPLEtBQUssQ0FBQyxvQkFBb0IsRUFBUyxDQUFBO1FBRXZGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFFLENBQUE7SUFDL0YsQ0FBQztJQUVELHNCQUFzQixDQUFFLEVBQU07UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUUsUUFBa0I7UUFDeEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFFLElBQUksQ0FBQyxTQUFTLENBQUUsQ0FBQTtRQUNwQyxJQUFJLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUVwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVMsRUFBRSxDQUFFLENBQUMsTUFBTSxDQUFVLENBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUcsRUFBRTtZQUNqRixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFFLENBQUMsRUFBRSxLQUFLLENBQUUsQ0FBQTtZQUNyQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFFLE9BQU8sQ0FBRSxDQUFBO1lBQzlCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUVqQixJQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUU7b0JBQ2xDLEtBQUssRUFBRSxJQUFJO29CQUNYLEdBQUcsRUFBRSxJQUFJO29CQUNULElBQUksRUFBRSxDQUFDO2lCQUNWLENBQUUsQ0FBQTtZQUVILElBQUksSUFBSSxHQUFHLENBQUMsQ0FBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBRSxDQUFBO1lBRTVCLElBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTO2dCQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBRTtvQkFDMUMsS0FBSyxFQUFFLElBQUk7b0JBQ1gsR0FBRyxFQUFFLElBQUk7b0JBQ1QsSUFBSSxFQUFFLENBQUM7aUJBQ1YsQ0FBRSxDQUFBO1lBRUgsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUE7WUFDZixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtZQUNkLE9BQU8sQ0FBQyxDQUFBO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUFBO1FBRVAsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFTLEVBQUUsQ0FBRSxDQUFDLEdBQUcsQ0FBRSxDQUFFLENBQUMsRUFBRSxDQUFDLEVBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFFLENBQUMsRUFBRSxLQUFLLENBQUUsQ0FBQTtZQUNyQyxPQUFPO2dCQUNILE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFFLEtBQUssQ0FBRTtnQkFDMUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFFLFNBQVMsQ0FBRTtnQkFDM0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2dCQUN0QixTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztnQkFDdkMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUUsS0FBSyxFQUFFLEtBQUssQ0FBRTtnQkFDakMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUU7YUFDckQsQ0FBQTtRQUNMLENBQUMsQ0FBRSxDQUFBO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBRSxDQUFBO1FBRTNELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBRSxDQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsQ0FBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVMsRUFBRSxDQUFFLENBQUE7WUFFL0QsT0FBTztnQkFDSCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUUsQ0FBQyxDQUFFO2dCQUN6QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7Z0JBQ3RCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtnQkFDdEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7cUJBQ1gsSUFBSSxDQUFFLFFBQVEsQ0FBQyxFQUFFO29CQUNkLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUyxFQUFFLENBQUUsQ0FBQyxHQUFHLENBQUUsQ0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFHLEVBQUU7d0JBQzVELElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBRSxDQUFDLENBQUUsQ0FBQTt3QkFFM0IsSUFBSyxPQUFPLElBQUksSUFBSTs0QkFDaEIsT0FBTztnQ0FDSCxFQUFFLEVBQUUsTUFBTSxDQUFFLENBQUMsQ0FBRTtnQ0FDZixJQUFJLEVBQUUsT0FBTzs2QkFDaEIsQ0FBQTt3QkFFTCxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsQ0FBRSxDQUFFLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSSxDQUFHLEVBQUUsUUFBUyxDQUFBO3dCQUVoRyxPQUFPLE9BQU8sQ0FBQTtvQkFDbEIsQ0FBQyxDQUFFLENBQUE7Z0JBQ1AsQ0FBQyxDQUFFO2FBQ1YsQ0FBQTtRQUNMLENBQUMsQ0FBRSxJQUFJLEVBQUUsQ0FBQTtJQUNiLENBQUM7K0dBNUlRLGlCQUFpQjttR0FBakIsaUJBQWlCLDJIQUdMLGVBQWUsc0NBQ2YsZUFBZSxtUUFRdEIsMkJBQTJCLG1FQUR4QixxQkFBcUIseUVDckcxQyxvcUpBaUhBOzs0RkR2QmEsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNJLGVBQWUsUUFHbkI7d0JBQ0YsbUNBQW1DLEVBQUUsZUFBZTtxQkFDdkQ7OEJBR1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNtQyxTQUFTO3NCQUFqRCxLQUFLO3VCQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFDRyxRQUFRO3NCQUFoRCxLQUFLO3VCQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFDN0IsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVrQyxhQUFhO3NCQUFwRCxlQUFlO3VCQUFDLHFCQUFxQjtnQkFDSyxjQUFjO3NCQUF4RCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgT25DaGFuZ2VzLCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51UGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluaXRpYWxTdGF0ZSwgUGFnaW5hdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wYWdpbmF0aW9uLmJhc2UnO1xuaW1wb3J0IHsgUm93TGlzdEJhc2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Jvdy1saXN0LmJhc2UnO1xuXG5ARGlyZWN0aXZlKCB7XG4gICAgc2VsZWN0b3I6ICdbbnJjbFNjaGVkdWxlUm93SGVhZGluZ10nXG59IClcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVJvd0hlYWRpbmdEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cbiAgICApe31cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQERpcmVjdGl2ZSgge1xuICAgIHNlbGVjdG9yOiAnW25yY2xTY2hlZHVsZUl0ZW1dJ1xufSApXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVJdGVtRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoICducmNsU2NoZWR1bGVJdGVtJyApIG5hbWU/OiBzdHJpbmdcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cbiAgICApe31cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVSb3dJdGVtID0ge1xuICAgIGlkOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGljb25zPzogKCkgPT4gc3RyaW5nW10sXG4gICAgdG9vbHRpcD86ICgpID0+IHN0cmluZyxcbiAgICB0cmF2ZWw/OiBib29sZWFuLFxufVxuXG5leHBvcnQgdHlwZSBTY2hlZHVsZVJvdyA9IHtcbiAgICBpZD86IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IGFueSxcbiAgICBoZWFkaW5nOiBhbnksXG4gICAgaXRlbXM6IFByb21pc2U8U2NoZWR1bGVSb3dJdGVtW10+LFxuICAgIHJvd0NsYXNzPzogc3RyaW5nLFxufVxuXG5leHBvcnQgdHlwZSBTY2hlZHVsZSA9IFNjaGVkdWxlUm93W11cblxudHlwZSBEYXkgPSB7XG4gICAgZGF5TmFtZTogc3RyaW5nLFxuICAgIG1vbnRoRGF5OiBudW1iZXIsXG4gICAgZGF0ZTogc3RyaW5nLFxuICAgIGlzV2Vla2VuZDogYm9vbGVhbixcbiAgICBpc1RvZGF5OiBib29sZWFuLFxuICAgIGlzRmlyc3Q6IGJvb2xlYW4sXG4gICAgaXNIaWdobGlnaHQ6IGJvb2xlYW4sXG59XG5cbnR5cGUgV2VlayA9IHtcbiAgICBzdGFydDogc3RyaW5nLFxuICAgIGVuZDogc3RyaW5nLFxuICAgIHNwYW46IG51bWJlclxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBGZXRjaFNjaGVkdWxlUm93UGFyYW1ldGVycyA9IHtcbiAgICByZXNvdXJjZUlkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZVByb3ZpZGVyIHtcbiAgICBzdGFydGxvYWRTY2hlZHVsZT8oIGlubmVyOiAoKSA9PiBQcm9taXNlPGFueT4gKTogUHJvbWlzZTxhbnk+XG4gICAgZmV0Y2hTY2hlZHVsZSgpOiBPYnNlcnZhYmxlPGFueT5cbiAgICBwYXJzZVNjaGVkdWxlKCByZXM6IGFueSApOiBTY2hlZHVsZVxuICAgIHBhcnNlVG90YWxSb3dDb3VudD8ocmVzOiBhbnkpOiBudW1iZXIgXG4gICAgZ2V0SW5pdGlhbFBhZ2VTdGF0ZSgpOiBJbml0aWFsU3RhdGU8e30+XG4gICAgY29tcGxldGVkTG9hZFNjaGVkdWxlPyggaW5uZXI6ICgpID0+IHZvaWQgKTogYW55XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBDb21wb25lbnQoIHtcbiAgICBzZWxlY3RvcjogJ25yY2wtc2NoZWR1bGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zY2hlZHVsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NjaGVkdWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3R5bGUuLS1ucmNsLXNjaGVkdWxlLWRheS1jb3VudF0nOiAndGhpcy5kYXlDb3VudCdcbiAgICB9XG59IClcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZUNvbXBvbmVudCBleHRlbmRzIFJvd0xpc3RCYXNlPHt9LFNjaGVkdWxlUm93PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHJvdmlkZXI/OiBTY2hlZHVsZVByb3ZpZGVyXG4gICAgQElucHV0KCkgc3RhcnREYXRlPzogc3RyaW5nXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0gKSB3ZWVrU3RhcnQgPSAwXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0gKSBkYXlDb3VudD86IG51bWJlclxuICAgIEBJbnB1dCgpIG1lbnU/OiBNYXRNZW51UGFuZWxcbiAgICBASW5wdXQoKSBob3ZlciA9IHRydWVcbiAgICBASW5wdXQoKSBwYWdpbmF0aW9uID0gdHJ1ZVxuICAgIEBJbnB1dCgpIGhlYWRpbmcgPSB0cnVlXG4gICAgQElucHV0KCkgaGlnaGxpZ2h0RGF0ZT86IHN0cmluZ1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihTY2hlZHVsZUl0ZW1EaXJlY3RpdmUpIGl0ZW1UZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8U2NoZWR1bGVJdGVtRGlyZWN0aXZlPlxuICAgIEBDb250ZW50Q2hpbGQoU2NoZWR1bGVSb3dIZWFkaW5nRGlyZWN0aXZlKSBoZWFkZXJUZW1wbGF0ZSE6IFNjaGVkdWxlUm93SGVhZGluZ0RpcmVjdGl2ZVxuXG4gICAgcHJvdGVjdGVkIF9kYXlzOiBEYXlbXSA9IFtdXG4gICAgcHJvdGVjdGVkIF93ZWVrczogV2Vla1tdID0gW11cbiAgICBwcm90ZWN0ZWQgX3RlbXBsYXRlczogVGVtcGxhdGVSZWY8YW55PltdW10gPSBbXVxuXG4gICAgbmdPbkNoYW5nZXMoIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMgKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMucmVmcmVzaFJvd0xpc3QoKVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1NjaGVkdWxlQ29tcG9uZW50Lm5nQWZ0ZXJWaWV3SW5pdCcpXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpXG4gICAgfVxuXG4gICAgbG9hZFJvd0xpc3QoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgLy8gaWYgKCAhdGhpcy5wcm92aWRlcj8uc3RhcnRsb2FkU2NoZWR1bGUgKSB0aHJvdyBFcnJvciggJ1NjaGVkdWxlQ29tcG9uZW50LnByb3ZpZGVyLnN0YXJ0bG9hZFNjaGVkdWxlIG5vdCBzZXQnIClcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8uc3RhcnRsb2FkU2NoZWR1bGUgKSByZXR1cm4gc3VwZXIubG9hZFJvd0xpc3QoKVxuICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuc3RhcnRsb2FkU2NoZWR1bGUoICgpID0+IHsgcmV0dXJuIHN1cGVyLmxvYWRSb3dMaXN0KCkgfSApXG4gICAgfVxuXG4gICAgZmV0Y2hSb3dMaXN0UGFnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5mZXRjaFNjaGVkdWxlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5mZXRjaFNjaGVkdWxlIG5vdCBzZXQnIClcblxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5mZXRjaFNjaGVkdWxlKClcbiAgICB9XG5cbiAgICBwYXJzZVJvd3MoIHJlczogYW55ICk6IFNjaGVkdWxlUm93W10ge1xuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5wYXJzZVNjaGVkdWxlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5wYXJzZVNjaGVkdWxlIG5vdCBzZXQnIClcblxuICAgICAgICBsZXQgcm93cyA9IHRoaXMucHJvdmlkZXIucGFyc2VTY2hlZHVsZSggcmVzIClcbiAgICAgICAgcmV0dXJuIHRoaXMubWFrZVJvd3MoIHJvd3MgKVxuICAgIH1cblxuICAgIHBhcnNlVG90YWxSb3dDb3VudChyZXM6IGFueSk6IG51bWJlciB7XG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LnBhcnNlVG90YWxSb3dDb3VudCApIHJldHVybiBzdXBlci5wYXJzZVRvdGFsUm93Q291bnQoIHJlcyApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIucGFyc2VUb3RhbFJvd0NvdW50KCByZXMgKVxuICAgIH1cblxuICAgIGdldEluaXRpYWxQYWdlU3RhdGUoKTogSW5pdGlhbFN0YXRlPHt9PiB7XG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LmdldEluaXRpYWxQYWdlU3RhdGUgKSB0aHJvdyBFcnJvciggJ1NjaGVkdWxlQ29tcG9uZW50LnByb3ZpZGVyLmdldEluaXRpYWxQYWdlU3RhdGUgbm90IHNldCcgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLmdldEluaXRpYWxQYWdlU3RhdGUoKVxuICAgIH1cblxuICAgIGNvbXBsZXRlZFJvd0xpc3RQYWdlKCk6IFBhZ2luYXRpb25TdGF0ZTx7fT4ge1xuICAgICAgICAvLyBpZiAoICF0aGlzLnByb3ZpZGVyPy5jb21wbGV0ZWRMb2FkU2NoZWR1bGUgKSB0aHJvdyBFcnJvciggJ1NjaGVkdWxlQ29tcG9uZW50LnByb3ZpZGVyLmNvbXBsZXRlZFJvd0xpc3RQYWdlIG5vdCBzZXQnIClcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8uY29tcGxldGVkTG9hZFNjaGVkdWxlICkgcmV0dXJuIHN1cGVyLmNvbXBsZXRlZFJvd0xpc3RQYWdlKCkgYXMgYW55XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuY29tcGxldGVkTG9hZFNjaGVkdWxlKCAoKSA9PiB7IHJldHVybiBzdXBlci5jb21wbGV0ZWRSb3dMaXN0UGFnZSgpIH0gKVxuICAgIH1cblxuICAgIG9uU2FtZVBhZ2VGaWx0ZXJDaGFuZ2UoIGV2OiB7fSApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXIgPSBldlxuICAgICAgICB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICB9XG5cbiAgICBtYWtlUm93cyggc2NoZWR1bGU6IFNjaGVkdWxlICk6IFNjaGVkdWxlIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gbW9tZW50KCB0aGlzLnN0YXJ0RGF0ZSApXG4gICAgICAgIGxldCB0b2RheSA9IG1vbWVudCgpXG5cbiAgICAgICAgdGhpcy5fd2Vla3MgPSBBcnJheS5mcm9tKCB7IGxlbmd0aDogdGhpcy5kYXlDb3VudCEgfSApLnJlZHVjZTxXZWVrW10+KCAoIGEsIHgsIGkgKSA9PiB7XG4gICAgICAgICAgICBsZXQgbSA9IHN0YXJ0LmNsb25lKCkuYWRkKCBpLCAnZGF5JyApXG4gICAgICAgICAgICBsZXQgZGF0ZSA9IG0uZm9ybWF0KCAnTU1NIEQnIClcbiAgICAgICAgICAgIGxldCBkYXkgPSBtLmRheSgpXG5cbiAgICAgICAgICAgIGlmICggYS5sZW5ndGggPT0gMCApIHJldHVybiBhLmNvbmNhdCgge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBkYXRlLFxuICAgICAgICAgICAgICAgIGVuZDogZGF0ZSxcbiAgICAgICAgICAgICAgICBzcGFuOiAxXG4gICAgICAgICAgICB9IClcblxuICAgICAgICAgICAgbGV0IHByZXYgPSBhWyBhLmxlbmd0aCAtIDEgXVxuXG4gICAgICAgICAgICBpZiAoIGRheSA9PSB0aGlzLndlZWtTdGFydCApIHJldHVybiBhLmNvbmNhdCgge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBkYXRlLFxuICAgICAgICAgICAgICAgIGVuZDogZGF0ZSxcbiAgICAgICAgICAgICAgICBzcGFuOiAxXG4gICAgICAgICAgICB9IClcblxuICAgICAgICAgICAgcHJldi5lbmQgPSBkYXRlXG4gICAgICAgICAgICBwcmV2LnNwYW4gKz0gMVxuICAgICAgICAgICAgcmV0dXJuIGFcbiAgICAgICAgfSwgW10gKVxuXG4gICAgICAgIHRoaXMuX2RheXMgPSBBcnJheS5mcm9tKCB7IGxlbmd0aDogdGhpcy5kYXlDb3VudCEgfSApLm1hcCggKCB4LCBpICkgPT4ge1xuICAgICAgICAgICAgbGV0IGQgPSBzdGFydC5jbG9uZSgpLmFkZCggaSwgJ2RheScgKVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXlOYW1lOiBkLmZvcm1hdCggJ2RkZCcgKSxcbiAgICAgICAgICAgICAgICBtb250aERheTogZC5kYXRlKCksXG4gICAgICAgICAgICAgICAgZGF0ZTogZC5mb3JtYXQoICdZLU1NLUREJyApLFxuICAgICAgICAgICAgICAgIGlzRmlyc3Q6IGQuZGF0ZSgpID09IDEsXG4gICAgICAgICAgICAgICAgaXNXZWVrZW5kOiBkLmRheSgpID09IDAgfHwgZC5kYXkoKSA9PSA2LFxuICAgICAgICAgICAgICAgIGlzVG9kYXk6IGQuaXNTYW1lKCB0b2RheSwgJ2RheScgKSxcbiAgICAgICAgICAgICAgICBpc0hpZ2hsaWdodDogZC5pc1NhbWUoIHRoaXMuaGlnaGxpZ2h0RGF0ZSwgJ2RheScgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IClcblxuICAgICAgICB0aGlzLl90ZW1wbGF0ZXMgPSBBcnJheS5mcm9tKCB7IGxlbmd0aDogc2NoZWR1bGUubGVuZ3RoIH0gKVxuXG4gICAgICAgIHJldHVybiBzY2hlZHVsZS5tYXAoICggcm93LCBpICkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGVzWyBpIF0gPSBBcnJheS5mcm9tKCB7IGxlbmd0aDogdGhpcy5kYXlDb3VudCEgfSApXG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaWQ6IHJvdy5pZCA/PyBTdHJpbmcoIGkgKSxcbiAgICAgICAgICAgICAgICByb3dDbGFzczogcm93LnJvd0NsYXNzLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByb3cubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgaGVhZGluZzogcm93LmhlYWRpbmcsXG4gICAgICAgICAgICAgICAgaXRlbXM6IHJvdy5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAudGhlbiggcm93SXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oIHsgbGVuZ3RoOiB0aGlzLmRheUNvdW50ISB9ICkubWFwKCAoIHgsIGogKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJvd0l0ZW0gPSByb3dJdGVtc1sgaiBdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHJvd0l0ZW0gPT0gbnVsbCApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFN0cmluZyggaiApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGVzWyBpIF1bIGogXSA9IHRoaXMuaXRlbVRlbXBsYXRlcz8uZmluZCggaSA9PiBpLm5hbWUgPT0gcm93SXRlbT8ubmFtZSAgKT8udGVtcGxhdGUhXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm93SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgfSApXG4gICAgICAgICAgICAgICAgICAgIH0gKVxuICAgICAgICAgICAgfVxuICAgICAgICB9ICkgfHwgW11cbiAgICB9XG59XG4iLCJAaWYgKCByb3dzPy5sZW5ndGggPiAwICkge1xuICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiXG4gICAgICAgIFtjbGFzcy5oZWFkaW5nXT1cImhlYWRpbmdcIlxuICAgID5cbiAgICAgICAgQGlmICggaGVhZGluZyApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cHBlci1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHdlZWtzXCI+XG4gICAgICAgICAgICBAZm9yICggd2VlayBvZiBfd2Vla3M7IHRyYWNrICRpbmRleCApIHtcbiAgICAgICAgICAgICAgICBAaWYgKCB3ZWVrLnNwYW4gPT0gMSApIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdlZWsuc3RhcnQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtcIiBbc3R5bGUuZ3JpZC1jb2x1bW5dPVwiJ3NwYW4gJyArIHdlZWsuc3BhblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgd2Vlay5zdGFydCB9fSAtIHt7IHdlZWsuZW5kIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkYXlzXCI+ICAgIFxuICAgICAgICAgICAgQGZvciAoIGRheSBvZiBfZGF5czsgdHJhY2sgJGluZGV4ICkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mud2Vla2VuZF09XCJkYXkuaXNXZWVrZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRvZGF5XT1cImRheS5pc1RvZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZpcnN0XT1cImRheS5pc0ZpcnN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhpZ2hsaWdodF09XCJkYXkuaXNIaWdobGlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheS1uYW1lXCI+e3sgZGF5LmRheU5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj57eyBkYXkubW9udGhEYXkgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGZvciAoIHJvdyBvZiByb3dzIHwgcGFnaW5hdGU6IHBhZ2luYXRlU3RhdGUoICducmNsLXNjaGVkdWxlJyApOyB0cmFjayByb3cuaWQ7IGxldCByb3dJbmRleCA9ICRpbmRleCApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgaXRlbXNcIiBbY2xhc3NdPVwicm93LnJvd0NsYXNzXCI+XG4gICAgICAgICAgICAgICAgQGlmICggaGVhZGluZyApIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm91dGVyIGhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lciBoZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGU/LnRlbXBsYXRlXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogeyBoZWFkaW5nOiByb3cuaGVhZGluZywgbWV0YWRhdGE6IHJvdy5tZXRhZGF0YSB9IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICggcm93Lml0ZW1zIHwgYXN5bmM7IGFzIHJvd0l0ZW1zICkge1xuICAgICAgICAgICAgICAgICAgICBAZm9yICggaXRlbSBvZiByb3dJdGVtczsgdHJhY2sgaXRlbS5pZDsgbGV0IGNvbEluZGV4ID0gJGluZGV4ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm91dGVyIGl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tZW51LW9wZW5dPVwiaXRlbU1lbnUubWVudU9wZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWdobGlnaHRdPVwiX2RheXNbIGNvbEluZGV4IF0uaXNIaWdobGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ob3Zlcl09XCJob3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyIGl0ZW1cIiAjaXRlbU1lbnU9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInaXRlbS0nICsgaXRlbS5uYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIWhvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJEYXRhXT1cInsgJGltcGxpY2l0OiB7IGhlYWRpbmc6IHJvdy5oZWFkaW5nLCBtZXRhZGF0YTogcm93Lm1ldGFkYXRhLCBpdGVtOiBpdGVtIH0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtucmNsVG9vbHRpcF09XCJpdGVtPy50b29sdGlwPy4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5yY2xUb29sdGlwQ2xhc3M9XCJucmNsLXNjaGVkdWxlLW11bHRpbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50cmF2ZWxdPVwiaXRlbT8udHJhdmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGVtcGxhdGVzWyByb3dJbmRleCBdWyBjb2xJbmRleCBdIHx8IGVtcHR5XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgaWNvbnMgPSBpdGVtPy5pY29ucz8uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIGljb25zICYmIGljb25zLmxlbmd0aCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yICggaWNvbiBvZiBpY29uczsgdHJhY2sgaWNvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5yY2wtaWNvbiBzbWFsbD57eyBpY29uIH19PC9ucmNsLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZm9yICggZGF5IG9mIF9kYXlzOyB0cmFjayBkYXkgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbSBpdGVtLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbkBpZiAoIHJvd3M/Lmxlbmd0aCA+IDAgJiYgcGFnaW5hdGlvbiApIHtcbiAgICA8bnJjbC1nYXAvPlxufVxuXG5AaWYgKCBwYWdpbmF0aW9uICkge1xuICAgIDxucmNsLXJvdy1saXN0LXBhZ2luYXRpb25cbiAgICAgICAgcGFnaW5hdGlvbklkPVwibnJjbC1zY2hlZHVsZVwiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgIFtwYWdlTnVtYmVyXT1cInBhZ2VOdW1iZXJcIlxuICAgICAgICBbcm93Q291bnRdPVwidG90YWxSb3dDb3VudFwiXG4gICAgICAgIChwYWdlTnVtYmVyQ2hhbmdlKT1cIm9uUGFnZU51bWJlckNoYW5nZSggJGV2ZW50IClcIlxuICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSggJGV2ZW50IClcIlxuICAgID48L25yY2wtcm93LWxpc3QtcGFnaW5hdGlvbj5cbn1cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUU5SixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBSzdELE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsWUFDVyxRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUNuQyxDQUFDOytHQUhNLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFFO29CQUNSLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDOztBQU9ELG1GQUFtRjtBQUtuRixNQUFNLE9BQU8scUJBQXFCO0lBRzlCLFlBQ1csUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFDbkMsQ0FBQzsrR0FMTSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBRTtvQkFDUixRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQztnRkFFZ0MsSUFBSTtzQkFBaEMsS0FBSzt1QkFBRSxrQkFBa0I7O0FBMEQ5QixtRkFBbUY7QUFVbkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQTJCO0lBUmxFOztR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QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVrQyxhQUFhO3NCQUFwRCxlQUFlO3VCQUFDLHFCQUFxQjtnQkFDSyxjQUFjO3NCQUF4RCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgT25DaGFuZ2VzLCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51UGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluaXRpYWxTdGF0ZSwgUGFnaW5hdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wYWdpbmF0aW9uLmJhc2UnO1xuaW1wb3J0IHsgUm93TGlzdEJhc2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Jvdy1saXN0LmJhc2UnO1xuXG5ARGlyZWN0aXZlKCB7XG4gICAgc2VsZWN0b3I6ICdbbnJjbFNjaGVkdWxlUm93SGVhZGluZ10nXG59IClcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVJvd0hlYWRpbmdEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cbiAgICApe31cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQERpcmVjdGl2ZSgge1xuICAgIHNlbGVjdG9yOiAnW25yY2xTY2hlZHVsZUl0ZW1dJ1xufSApXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVJdGVtRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoICducmNsU2NoZWR1bGVJdGVtJyApIG5hbWU/OiBzdHJpbmdcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cbiAgICApe31cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVSb3dJdGVtID0ge1xuICAgIGlkOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGljb25zPzogKCkgPT4gc3RyaW5nW10sXG4gICAgdG9vbHRpcD86ICgpID0+IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgdHJhdmVsPzogYm9vbGVhbixcbn1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVSb3cgPSB7XG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBhbnksXG4gICAgaGVhZGluZzogYW55LFxuICAgIGl0ZW1zOiBQcm9taXNlPFNjaGVkdWxlUm93SXRlbVtdPixcbiAgICByb3dDbGFzcz86IHN0cmluZyxcbn1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGUgPSBTY2hlZHVsZVJvd1tdXG5cbnR5cGUgRGF5ID0ge1xuICAgIGRheU5hbWU6IHN0cmluZyxcbiAgICBtb250aERheTogbnVtYmVyLFxuICAgIGRhdGU6IHN0cmluZyxcbiAgICBpc1dlZWtlbmQ6IGJvb2xlYW4sXG4gICAgaXNUb2RheTogYm9vbGVhbixcbiAgICBpc0ZpcnN0OiBib29sZWFuLFxuICAgIGlzSGlnaGxpZ2h0OiBib29sZWFuLFxufVxuXG50eXBlIFdlZWsgPSB7XG4gICAgc3RhcnQ6IHN0cmluZyxcbiAgICBlbmQ6IHN0cmluZyxcbiAgICBzcGFuOiBudW1iZXJcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgRmV0Y2hTY2hlZHVsZVJvd1BhcmFtZXRlcnMgPSB7XG4gICAgcmVzb3VyY2VJZDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVQcm92aWRlciB7XG4gICAgc3RhcnRsb2FkU2NoZWR1bGU/KCBpbm5lcjogKCkgPT4gUHJvbWlzZTxhbnk+ICk6IFByb21pc2U8YW55PlxuICAgIGZldGNoU2NoZWR1bGUoKTogT2JzZXJ2YWJsZTxhbnk+XG4gICAgcGFyc2VTY2hlZHVsZSggcmVzOiBhbnkgKTogU2NoZWR1bGVcbiAgICBwYXJzZVRvdGFsUm93Q291bnQ/KHJlczogYW55KTogbnVtYmVyIFxuICAgIGdldEluaXRpYWxQYWdlU3RhdGUoKTogSW5pdGlhbFN0YXRlPHt9PlxuICAgIGNvbXBsZXRlZExvYWRTY2hlZHVsZT8oIGlubmVyOiAoKSA9PiB2b2lkICk6IGFueVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AQ29tcG9uZW50KCB7XG4gICAgc2VsZWN0b3I6ICducmNsLXNjaGVkdWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zY2hlZHVsZS5jb21wb25lbnQuc2NzcycsXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLi0tbnJjbC1zY2hlZHVsZS1kYXktY291bnRdJzogJ3RoaXMuZGF5Q291bnQnXG4gICAgfVxufSApXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVDb21wb25lbnQgZXh0ZW5kcyBSb3dMaXN0QmFzZTx7fSxTY2hlZHVsZVJvdz4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHByb3ZpZGVyPzogU2NoZWR1bGVQcm92aWRlclxuICAgIEBJbnB1dCgpIHN0YXJ0RGF0ZT86IHN0cmluZ1xuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgd2Vla1N0YXJ0ID0gMFxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgZGF5Q291bnQ/OiBudW1iZXJcbiAgICBASW5wdXQoKSBtZW51PzogTWF0TWVudVBhbmVsXG4gICAgQElucHV0KCkgaG92ZXIgPSB0cnVlXG4gICAgQElucHV0KCkgcGFnaW5hdGlvbiA9IHRydWVcbiAgICBASW5wdXQoKSBoZWFkaW5nID0gdHJ1ZVxuICAgIEBJbnB1dCgpIGhpZ2hsaWdodERhdGU/OiBzdHJpbmdcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oU2NoZWR1bGVJdGVtRGlyZWN0aXZlKSBpdGVtVGVtcGxhdGVzITogUXVlcnlMaXN0PFNjaGVkdWxlSXRlbURpcmVjdGl2ZT5cbiAgICBAQ29udGVudENoaWxkKFNjaGVkdWxlUm93SGVhZGluZ0RpcmVjdGl2ZSkgaGVhZGVyVGVtcGxhdGUhOiBTY2hlZHVsZVJvd0hlYWRpbmdEaXJlY3RpdmVcblxuICAgIHByb3RlY3RlZCBfZGF5czogRGF5W10gPSBbXVxuICAgIHByb3RlY3RlZCBfd2Vla3M6IFdlZWtbXSA9IFtdXG4gICAgcHJvdGVjdGVkIF90ZW1wbGF0ZXM6IFRlbXBsYXRlUmVmPGFueT5bXVtdID0gW11cblxuICAgIG5nT25DaGFuZ2VzKCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzICk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTY2hlZHVsZUNvbXBvbmVudC5uZ0FmdGVyVmlld0luaXQnKVxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKVxuICAgIH1cblxuICAgIGxvYWRSb3dMaXN0KCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGlmICggIXRoaXMucHJvdmlkZXI/LnN0YXJ0bG9hZFNjaGVkdWxlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5zdGFydGxvYWRTY2hlZHVsZSBub3Qgc2V0JyApXG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LnN0YXJ0bG9hZFNjaGVkdWxlICkgcmV0dXJuIHN1cGVyLmxvYWRSb3dMaXN0KClcbiAgICAgXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnN0YXJ0bG9hZFNjaGVkdWxlKCAoKSA9PiB7IHJldHVybiBzdXBlci5sb2FkUm93TGlzdCgpIH0gKVxuICAgIH1cblxuICAgIGZldGNoUm93TGlzdFBhZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8uZmV0Y2hTY2hlZHVsZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIuZmV0Y2hTY2hlZHVsZSBub3Qgc2V0JyApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuZmV0Y2hTY2hlZHVsZSgpXG4gICAgfVxuXG4gICAgcGFyc2VSb3dzKCByZXM6IGFueSApOiBTY2hlZHVsZVJvd1tdIHtcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8ucGFyc2VTY2hlZHVsZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIucGFyc2VTY2hlZHVsZSBub3Qgc2V0JyApXG5cbiAgICAgICAgbGV0IHJvd3MgPSB0aGlzLnByb3ZpZGVyLnBhcnNlU2NoZWR1bGUoIHJlcyApXG4gICAgICAgIHJldHVybiB0aGlzLm1ha2VSb3dzKCByb3dzIClcbiAgICB9XG5cbiAgICBwYXJzZVRvdGFsUm93Q291bnQocmVzOiBhbnkpOiBudW1iZXIge1xuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5wYXJzZVRvdGFsUm93Q291bnQgKSByZXR1cm4gc3VwZXIucGFyc2VUb3RhbFJvd0NvdW50KCByZXMgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnBhcnNlVG90YWxSb3dDb3VudCggcmVzIClcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsUGFnZVN0YXRlKCk6IEluaXRpYWxTdGF0ZTx7fT4ge1xuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5nZXRJbml0aWFsUGFnZVN0YXRlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5nZXRJbml0aWFsUGFnZVN0YXRlIG5vdCBzZXQnIClcblxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5nZXRJbml0aWFsUGFnZVN0YXRlKClcbiAgICB9XG5cbiAgICBjb21wbGV0ZWRSb3dMaXN0UGFnZSgpOiBQYWdpbmF0aW9uU3RhdGU8e30+IHtcbiAgICAgICAgLy8gaWYgKCAhdGhpcy5wcm92aWRlcj8uY29tcGxldGVkTG9hZFNjaGVkdWxlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5jb21wbGV0ZWRSb3dMaXN0UGFnZSBub3Qgc2V0JyApXG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LmNvbXBsZXRlZExvYWRTY2hlZHVsZSApIHJldHVybiBzdXBlci5jb21wbGV0ZWRSb3dMaXN0UGFnZSgpIGFzIGFueVxuXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLmNvbXBsZXRlZExvYWRTY2hlZHVsZSggKCkgPT4geyByZXR1cm4gc3VwZXIuY29tcGxldGVkUm93TGlzdFBhZ2UoKSB9IClcbiAgICB9XG5cbiAgICBvblNhbWVQYWdlRmlsdGVyQ2hhbmdlKCBldjoge30gKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gZXZcbiAgICAgICAgdGhpcy5yZWZyZXNoUm93TGlzdCgpXG4gICAgfVxuXG4gICAgbWFrZVJvd3MoIHNjaGVkdWxlOiBTY2hlZHVsZSApOiBTY2hlZHVsZSB7XG4gICAgICAgIGxldCBzdGFydCA9IG1vbWVudCggdGhpcy5zdGFydERhdGUgKVxuICAgICAgICBsZXQgdG9kYXkgPSBtb21lbnQoKVxuXG4gICAgICAgIHRoaXMuX3dlZWtzID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKS5yZWR1Y2U8V2Vla1tdPiggKCBhLCB4LCBpICkgPT4ge1xuICAgICAgICAgICAgbGV0IG0gPSBzdGFydC5jbG9uZSgpLmFkZCggaSwgJ2RheScgKVxuICAgICAgICAgICAgbGV0IGRhdGUgPSBtLmZvcm1hdCggJ01NTSBEJyApXG4gICAgICAgICAgICBsZXQgZGF5ID0gbS5kYXkoKVxuXG4gICAgICAgICAgICBpZiAoIGEubGVuZ3RoID09IDAgKSByZXR1cm4gYS5jb25jYXQoIHtcbiAgICAgICAgICAgICAgICBzdGFydDogZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmQ6IGRhdGUsXG4gICAgICAgICAgICAgICAgc3BhbjogMVxuICAgICAgICAgICAgfSApXG5cbiAgICAgICAgICAgIGxldCBwcmV2ID0gYVsgYS5sZW5ndGggLSAxIF1cblxuICAgICAgICAgICAgaWYgKCBkYXkgPT0gdGhpcy53ZWVrU3RhcnQgKSByZXR1cm4gYS5jb25jYXQoIHtcbiAgICAgICAgICAgICAgICBzdGFydDogZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmQ6IGRhdGUsXG4gICAgICAgICAgICAgICAgc3BhbjogMVxuICAgICAgICAgICAgfSApXG5cbiAgICAgICAgICAgIHByZXYuZW5kID0gZGF0ZVxuICAgICAgICAgICAgcHJldi5zcGFuICs9IDFcbiAgICAgICAgICAgIHJldHVybiBhXG4gICAgICAgIH0sIFtdIClcblxuICAgICAgICB0aGlzLl9kYXlzID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKS5tYXAoICggeCwgaSApID0+IHtcbiAgICAgICAgICAgIGxldCBkID0gc3RhcnQuY2xvbmUoKS5hZGQoIGksICdkYXknIClcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF5TmFtZTogZC5mb3JtYXQoICdkZGQnICksXG4gICAgICAgICAgICAgICAgbW9udGhEYXk6IGQuZGF0ZSgpLFxuICAgICAgICAgICAgICAgIGRhdGU6IGQuZm9ybWF0KCAnWS1NTS1ERCcgKSxcbiAgICAgICAgICAgICAgICBpc0ZpcnN0OiBkLmRhdGUoKSA9PSAxLFxuICAgICAgICAgICAgICAgIGlzV2Vla2VuZDogZC5kYXkoKSA9PSAwIHx8IGQuZGF5KCkgPT0gNixcbiAgICAgICAgICAgICAgICBpc1RvZGF5OiBkLmlzU2FtZSggdG9kYXksICdkYXknICksXG4gICAgICAgICAgICAgICAgaXNIaWdobGlnaHQ6IGQuaXNTYW1lKCB0aGlzLmhpZ2hsaWdodERhdGUsICdkYXknIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSApXG5cbiAgICAgICAgdGhpcy5fdGVtcGxhdGVzID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHNjaGVkdWxlLmxlbmd0aCB9IClcblxuICAgICAgICByZXR1cm4gc2NoZWR1bGUubWFwKCAoIHJvdywgaSApID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlc1sgaSBdID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiByb3cuaWQgPz8gU3RyaW5nKCBpICksXG4gICAgICAgICAgICAgICAgcm93Q2xhc3M6IHJvdy5yb3dDbGFzcyxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogcm93Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIGhlYWRpbmc6IHJvdy5oZWFkaW5nLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiByb3cuaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oIHJvd0l0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKCB7IGxlbmd0aDogdGhpcy5kYXlDb3VudCEgfSApLm1hcCggKCB4LCBqICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3dJdGVtID0gcm93SXRlbXNbIGogXVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCByb3dJdGVtID09IG51bGwgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBTdHJpbmcoIGogKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdlbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlc1sgaSBdWyBqIF0gPSB0aGlzLml0ZW1UZW1wbGF0ZXM/LmZpbmQoIGkgPT4gaS5uYW1lID09IHJvd0l0ZW0/Lm5hbWUgICk/LnRlbXBsYXRlIVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvd0l0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gKVxuICAgICAgICAgICAgICAgICAgICB9IClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSApIHx8IFtdXG4gICAgfVxufVxuIiwiQGlmICggcm93cz8ubGVuZ3RoID4gMCApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIlxuICAgICAgICBbY2xhc3MuaGVhZGluZ109XCJoZWFkaW5nXCJcbiAgICA+XG4gICAgICAgIEBpZiAoIGhlYWRpbmcgKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBwZXItbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3ZWVrc1wiPlxuICAgICAgICAgICAgQGZvciAoIHdlZWsgb2YgX3dlZWtzOyB0cmFjayAkaW5kZXggKSB7XG4gICAgICAgICAgICAgICAgQGlmICggd2Vlay5zcGFuID09IDEgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB3ZWVrLnN0YXJ0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyB3ZWVrLnNwYW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdlZWsuc3RhcnQgfX0gLSB7eyB3ZWVrLmVuZCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZGF5c1wiPiAgICBcbiAgICAgICAgICAgIEBmb3IgKCBkYXkgb2YgX2RheXM7IHRyYWNrICRpbmRleCApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLndlZWtlbmRdPVwiZGF5LmlzV2Vla2VuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50b2RheV09XCJkYXkuaXNUb2RheVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5maXJzdF09XCJkYXkuaXNGaXJzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWdobGlnaHRdPVwiZGF5LmlzSGlnaGxpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbmFtZVwiPnt7IGRheS5kYXlOYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+e3sgZGF5Lm1vbnRoRGF5IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBmb3IgKCByb3cgb2Ygcm93cyB8IHBhZ2luYXRlOiBwYWdpbmF0ZVN0YXRlKCAnbnJjbC1zY2hlZHVsZScgKTsgdHJhY2sgcm93LmlkOyBsZXQgcm93SW5kZXggPSAkaW5kZXggKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGl0ZW1zXCIgW2NsYXNzXT1cInJvdy5yb3dDbGFzc1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoIGhlYWRpbmcgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdXRlciBoZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXIgaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlPy50ZW1wbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHsgaGVhZGluZzogcm93LmhlYWRpbmcsIG1ldGFkYXRhOiByb3cubWV0YWRhdGEgfSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgIFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoIHJvdy5pdGVtcyB8IGFzeW5jOyBhcyByb3dJdGVtcyApIHtcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoIGl0ZW0gb2Ygcm93SXRlbXM7IHRyYWNrIGl0ZW0uaWQ7IGxldCBjb2xJbmRleCA9ICRpbmRleCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdXRlciBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWVudS1vcGVuXT1cIml0ZW1NZW51Lm1lbnVPcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlnaGxpZ2h0XT1cIl9kYXlzWyBjb2xJbmRleCBdLmlzSGlnaGxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaG92ZXJdPVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lciBpdGVtXCIgI2l0ZW1NZW51PVwibWF0TWVudVRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2l0ZW0tJyArIGl0ZW0ubmFtZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFJpcHBsZURpc2FibGVkXT1cIiFob3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRGF0YV09XCJ7ICRpbXBsaWNpdDogeyBoZWFkaW5nOiByb3cuaGVhZGluZywgbWV0YWRhdGE6IHJvdy5tZXRhZGF0YSwgaXRlbTogaXRlbSB9IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnJjbFRvb2x0aXBdPVwiaXRlbT8udG9vbHRpcD8uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucmNsVG9vbHRpcENsYXNzPVwic2NoZWR1bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnJjbFRvb2x0aXBDb250ZXh0XT1cInsgJGltcGxpY2l0OiB7IGhlYWRpbmc6IHJvdy5oZWFkaW5nLCBtZXRhZGF0YTogcm93Lm1ldGFkYXRhLCBpdGVtOiBpdGVtIH0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50cmF2ZWxdPVwiaXRlbT8udHJhdmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGVtcGxhdGVzWyByb3dJbmRleCBdWyBjb2xJbmRleCBdIHx8IGVtcHR5XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgaWNvbnMgPSBpdGVtPy5pY29ucz8uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIGljb25zICYmIGljb25zLmxlbmd0aCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yICggaWNvbiBvZiBpY29uczsgdHJhY2sgaWNvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5yY2wtaWNvbiBzbWFsbD57eyBpY29uIH19PC9ucmNsLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZm9yICggZGF5IG9mIF9kYXlzOyB0cmFjayBkYXkgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbSBpdGVtLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbkBpZiAoIHJvd3M/Lmxlbmd0aCA+IDAgJiYgcGFnaW5hdGlvbiApIHtcbiAgICA8bnJjbC1nYXAvPlxufVxuXG5AaWYgKCBwYWdpbmF0aW9uICkge1xuICAgIDxucmNsLXJvdy1saXN0LXBhZ2luYXRpb25cbiAgICAgICAgcGFnaW5hdGlvbklkPVwibnJjbC1zY2hlZHVsZVwiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgIFtwYWdlTnVtYmVyXT1cInBhZ2VOdW1iZXJcIlxuICAgICAgICBbcm93Q291bnRdPVwidG90YWxSb3dDb3VudFwiXG4gICAgICAgIChwYWdlTnVtYmVyQ2hhbmdlKT1cIm9uUGFnZU51bWJlckNoYW5nZSggJGV2ZW50IClcIlxuICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSggJGV2ZW50IClcIlxuICAgID48L25yY2wtcm93LWxpc3QtcGFnaW5hdGlvbj5cbn1cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -35,8 +35,8 @@ export class TooltipDirective {
35
35
  .position()
36
36
  .flexibleConnectedTo(this.elementRef)
37
37
  .withPositions([
38
- { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 0 }, // Bottom
39
- { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -0 } // Top fallback
38
+ { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 }, // Bottom
39
+ { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -8 } // Top fallback
40
40
  ]);
41
41
  this.overlayRef = this.overlay.create({
42
42
  positionStrategy,
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
98
98
  type: HostListener,
99
99
  args: ['mouseleave']
100
100
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWN0RSxNQUFNLE9BQU8sZ0JBQWdCO0lBWjdCO1FBYWEsU0FBSSxHQUFXLEVBQUUsQ0FBQztLQUM5QjsrR0FGWSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixzRkFWZjs7S0FFVDs7NEZBUVEsZ0JBQWdCO2tCQVo1QixTQUFTOytCQUNJLHNCQUFzQixZQUN0Qjs7S0FFVDs4QkFTUSxJQUFJO3NCQUFaLEtBQUs7O0FBR1YsOEZBQThGO0FBSzlGLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJWSxZQUFPLEdBQUcsTUFBTSxDQUFFLE9BQU8sQ0FBRSxDQUFBO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUUsVUFBVSxDQUFFLENBQUE7UUFDakMscUJBQWdCLEdBQUcsTUFBTSxDQUFFLGdCQUFnQixDQUFFLENBQUE7UUFLZSxpQkFBWSxHQUFHLEdBQUcsQ0FBQTtRQUU5RSxlQUFVLEdBQXNCLElBQUksQ0FBQTtLQXFEL0M7SUFsREcsSUFBSTtRQUNBLElBQUssSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUcsT0FBTTtRQUV0RCxNQUFNLGdCQUFnQixHQUFHLElB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QUFFLFlBQVk7Z0JBb0MzQixJQUFJO3NCQURILFlBQVk7dUJBQUUsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIGluamVjdCwgQ29tcG9uZW50LCBudW1iZXJBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbkBDb21wb25lbnQoIHtcbiAgICBzZWxlY3RvcjogJ25yY2wtZGVmYXVsdC10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgYCxcbiAgICBzdHlsZXM6IFsgYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgYF1cbn0gKVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xufVxuXG4vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbkBEaXJlY3RpdmUoIHtcbiAgICBzZWxlY3RvcjogJ1tucmNsVG9vbHRpcF0nLFxufSApXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KCBPdmVybGF5IClcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoIEVsZW1lbnRSZWYgKVxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdCggVmlld0NvbnRhaW5lclJlZiApXG5cbiAgICBASW5wdXQoICducmNsVG9vbHRpcCcgKSB0b29sdGlwVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nXG4gICAgQElucHV0KCAnbnJjbFRvb2x0aXBDb250ZXh0JyApIHRvb2x0aXBDb250ZXh0OiBhbnlcbiAgICBASW5wdXQoICducmNsVG9vbHRpcENsYXNzJyApIHRvb2x0aXBDbGFzcz86IHN0cmluZ1xuICAgIEBJbnB1dCggeyBhbGlhczogJ25yY2xUb29sdGlwRGVsYXknLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgdG9vbHRpcERlbGF5ID0gMzAwXG5cbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbFxuXG4gICAgQEhvc3RMaXN0ZW5lciggJ21vdXNlZW50ZXInIClcbiAgICBzaG93KCkge1xuICAgICAgICBpZiAoIHRoaXMub3ZlcmxheVJlZiB8fCAhdGhpcy50b29sdGlwVGVtcGxhdGUgKSByZXR1cm5cblxuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oIHRoaXMuZWxlbWVudFJlZiApXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyggW1xuICAgICAgICAgICAgICAgIHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFk6IDAgfSwgLy8gQm90dG9tXG4gICAgICAgICAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogLTAgfSAvLyBUb3AgZmFsbGJhY2tcbiAgICAgICAgICAgIF0gKVxuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWyAnbnJjbC10b29sdGlwLXBhbmVsJywgLi4uKCB0aGlzLnRvb2x0aXBDbGFzcyA/IFsgdGhpcy50b29sdGlwQ2xhc3MgXTogW10gKSBdLFxuICAgICAgICB9IClcblxuICAgICAgICBpZiAoIHRoaXMudG9vbHRpcFRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgKSB7XG4gICAgICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoIHRoaXMudG9vbHRpcFRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMudG9vbHRpcENvbnRleHQgKVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5hdHRhY2goIHBvcnRhbCApICAgICAgICAgICAgXG4gICAgICAgICAgICB9LCB0aGlzLnRvb2x0aXBEZWxheSApXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKCBUb29sdGlwQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYgKVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5UmVmPy5hdHRhY2goIGNvbXBvbmVudFBvcnRhbCApXG5cbiAgICAgICAgICAgICAgICBpZiAoIGNvbXBvbmVudFJlZiApIFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudGV4dCA9IHRoaXMudG9vbHRpcFRlbXBsYXRlIGFzIHN0cmluZ1xuICAgICAgICAgICAgfSwgdGhpcy50b29sdGlwRGVsYXkgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lciggJ21vdXNlbGVhdmUnIClcbiAgICBoaWRlKCkge1xuICAgICAgICB0aGlzLmNsb3NlVG9vbHRpcCgpXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xvc2VUb29sdGlwKClcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlVG9vbHRpcCgpIHtcbiAgICAgICAgaWYgKCB0aGlzLm92ZXJsYXlSZWYgKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGxcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWN0RSxNQUFNLE9BQU8sZ0JBQWdCO0lBWjdCO1FBYWEsU0FBSSxHQUFXLEVBQUUsQ0FBQztLQUM5QjsrR0FGWSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixzRkFWZjs7S0FFVDs7NEZBUVEsZ0JBQWdCO2tCQVo1QixTQUFTOytCQUNJLHNCQUFzQixZQUN0Qjs7S0FFVDs4QkFTUSxJQUFJO3NCQUFaLEtBQUs7O0FBR1YsOEZBQThGO0FBSzlGLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJWSxZQUFPLEdBQUcsTUFBTSxDQUFFLE9BQU8sQ0FBRSxDQUFBO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUUsVUFBVSxDQUFFLENBQUE7UUFDakMscUJBQWdCLEdBQUcsTUFBTSxDQUFFLGdCQUFnQixDQUFFLENBQUE7UUFLZSxpQkFBWSxHQUFHLEdBQUcsQ0FBQTtRQUU5RSxlQUFVLEdBQXNCLElBQUksQ0FBQTtLQXFEL0M7SUFsREcsSUFBSTtRQUNBLElBQUssSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUcsT0FBTTtRQUV0RCxNQUFNLGdCQUFnQixHQUFHLElB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QUFFLFlBQVk7Z0JBb0MzQixJQUFJO3NCQURILFlBQVk7dUJBQUUsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIGluamVjdCwgQ29tcG9uZW50LCBudW1iZXJBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbkBDb21wb25lbnQoIHtcbiAgICBzZWxlY3RvcjogJ25yY2wtZGVmYXVsdC10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgYCxcbiAgICBzdHlsZXM6IFsgYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgYF1cbn0gKVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xufVxuXG4vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbkBEaXJlY3RpdmUoIHtcbiAgICBzZWxlY3RvcjogJ1tucmNsVG9vbHRpcF0nLFxufSApXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KCBPdmVybGF5IClcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoIEVsZW1lbnRSZWYgKVxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdCggVmlld0NvbnRhaW5lclJlZiApXG5cbiAgICBASW5wdXQoICducmNsVG9vbHRpcCcgKSB0b29sdGlwVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nXG4gICAgQElucHV0KCAnbnJjbFRvb2x0aXBDb250ZXh0JyApIHRvb2x0aXBDb250ZXh0OiBhbnlcbiAgICBASW5wdXQoICducmNsVG9vbHRpcENsYXNzJyApIHRvb2x0aXBDbGFzcz86IHN0cmluZ1xuICAgIEBJbnB1dCggeyBhbGlhczogJ25yY2xUb29sdGlwRGVsYXknLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgdG9vbHRpcERlbGF5ID0gMzAwXG5cbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbFxuXG4gICAgQEhvc3RMaXN0ZW5lciggJ21vdXNlZW50ZXInIClcbiAgICBzaG93KCkge1xuICAgICAgICBpZiAoIHRoaXMub3ZlcmxheVJlZiB8fCAhdGhpcy50b29sdGlwVGVtcGxhdGUgKSByZXR1cm5cblxuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oIHRoaXMuZWxlbWVudFJlZiApXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyggW1xuICAgICAgICAgICAgICAgIHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFk6IDggfSwgLy8gQm90dG9tXG4gICAgICAgICAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogLTggfSAvLyBUb3AgZmFsbGJhY2tcbiAgICAgICAgICAgIF0gKVxuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWyAnbnJjbC10b29sdGlwLXBhbmVsJywgLi4uKCB0aGlzLnRvb2x0aXBDbGFzcyA/IFsgdGhpcy50b29sdGlwQ2xhc3MgXTogW10gKSBdLFxuICAgICAgICB9IClcblxuICAgICAgICBpZiAoIHRoaXMudG9vbHRpcFRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgKSB7XG4gICAgICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoIHRoaXMudG9vbHRpcFRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMudG9vbHRpcENvbnRleHQgKVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5hdHRhY2goIHBvcnRhbCApICAgICAgICAgICAgXG4gICAgICAgICAgICB9LCB0aGlzLnRvb2x0aXBEZWxheSApXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKCBUb29sdGlwQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYgKVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5UmVmPy5hdHRhY2goIGNvbXBvbmVudFBvcnRhbCApXG5cbiAgICAgICAgICAgICAgICBpZiAoIGNvbXBvbmVudFJlZiApIFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudGV4dCA9IHRoaXMudG9vbHRpcFRlbXBsYXRlIGFzIHN0cmluZ1xuICAgICAgICAgICAgfSwgdGhpcy50b29sdGlwRGVsYXkgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lciggJ21vdXNlbGVhdmUnIClcbiAgICBoaWRlKCkge1xuICAgICAgICB0aGlzLmNsb3NlVG9vbHRpcCgpXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xvc2VUb29sdGlwKClcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlVG9vbHRpcCgpIHtcbiAgICAgICAgaWYgKCB0aGlzLm92ZXJsYXlSZWYgKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGxcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -2463,8 +2463,8 @@ class TooltipDirective {
2463
2463
  .position()
2464
2464
  .flexibleConnectedTo(this.elementRef)
2465
2465
  .withPositions([
2466
- { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 0 }, // Bottom
2467
- { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -0 } // Top fallback
2466
+ { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 }, // Bottom
2467
+ { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -8 } // Top fallback
2468
2468
  ]);
2469
2469
  this.overlayRef = this.overlay.create({
2470
2470
  positionStrategy,
@@ -2674,13 +2674,13 @@ class ScheduleComponent extends RowListBase {
2674
2674
  }) || [];
2675
2675
  }
2676
2676
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2677
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScheduleComponent, selector: "nrcl-schedule", inputs: { provider: "provider", startDate: "startDate", weekStart: ["weekStart", "weekStart", numberAttribute], dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading", highlightDate: "highlightDate" }, host: { properties: { "style.--nrcl-schedule-day-count": "this.dayCount" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ScheduleRowHeadingDirective, descendants: true }, { propertyName: "itemTemplates", predicate: ScheduleItemDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"nrcl-schedule-multiline\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i1$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: GapComponent, selector: "nrcl-gap", inputs: ["horizontal", "vertical", "divider"] }, { kind: "component", type: RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: ["paginationId", "pageSizeOptions", "pageSize", "pageNumber", "rowCount", "showPageSize", "noRowsMessage"], outputs: ["pageSizeChange", "pageNumberChange"] }, { kind: "component", type: IconComponent, selector: "nrcl-icon", inputs: ["small", "large"] }, { kind: "directive", type: TooltipDirective, selector: "[nrclTooltip]", inputs: ["nrclTooltip", "nrclTooltipContext", "nrclTooltipClass", "nrclTooltipDelay"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$6.PaginatePipe, name: "paginate" }] }); }
2677
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScheduleComponent, selector: "nrcl-schedule", inputs: { provider: "provider", startDate: "startDate", weekStart: ["weekStart", "weekStart", numberAttribute], dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading", highlightDate: "highlightDate" }, host: { properties: { "style.--nrcl-schedule-day-count": "this.dayCount" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ScheduleRowHeadingDirective, descendants: true }, { propertyName: "itemTemplates", predicate: ScheduleItemDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i1$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: GapComponent, selector: "nrcl-gap", inputs: ["horizontal", "vertical", "divider"] }, { kind: "component", type: RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: ["paginationId", "pageSizeOptions", "pageSize", "pageNumber", "rowCount", "showPageSize", "noRowsMessage"], outputs: ["pageSizeChange", "pageNumberChange"] }, { kind: "component", type: IconComponent, selector: "nrcl-icon", inputs: ["small", "large"] }, { kind: "directive", type: TooltipDirective, selector: "[nrclTooltip]", inputs: ["nrclTooltip", "nrclTooltipContext", "nrclTooltipClass", "nrclTooltipDelay"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$6.PaginatePipe, name: "paginate" }] }); }
2678
2678
  }
2679
2679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleComponent, decorators: [{
2680
2680
  type: Component,
2681
2681
  args: [{ selector: 'nrcl-schedule', host: {
2682
2682
  '[style.--nrcl-schedule-day-count]': 'this.dayCount'
2683
- }, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"nrcl-schedule-multiline\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"] }]
2683
+ }, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"] }]
2684
2684
  }], propDecorators: { provider: [{
2685
2685
  type: Input
2686
2686
  }], startDate: [{