@elderbyte/ngx-starter 15.16.0 → 15.16.1

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.
@@ -0,0 +1,20 @@
1
+ import { Optional, SkipSelf } from '@angular/core';
2
+ import { MasterDetailService } from './master-detail.service';
3
+ export function existingOrNewMasterDetailService(serviceProvider) {
4
+ return serviceProvider ?? newMasterDetailService();
5
+ }
6
+ export function newMasterDetailService() {
7
+ return new MasterDetailService();
8
+ }
9
+ export class ElderMasterDetailProvider {
10
+ }
11
+ /**
12
+ * Uses the existing MasterDetailService from a parent if available.
13
+ * Otherwise, creates a new MasterDetailService and provides it.
14
+ */
15
+ ElderMasterDetailProvider.ExistingOrNewMasterDetailService = {
16
+ provide: MasterDetailService,
17
+ useFactory: existingOrNewMasterDetailService,
18
+ deps: [[new Optional(), new SkipSelf(), MasterDetailService]]
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbWFzdGVyLWRldGFpbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L21hc3Rlci1kZXRhaWwvZWxkZXItbWFzdGVyLWRldGFpbC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFZLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUc1RCxNQUFNLFVBQVUsZ0NBQWdDLENBQy9DLGVBQWdEO0lBRS9DLE9BQU8sZUFBZSxJQUFJLHNCQUFzQixFQUFFLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sT0FBTyx5QkFBeUI7O0FBQ3BDOzs7R0FHRztBQUNvQiwwREFBZ0MsR0FBYTtJQUNsRSxPQUFPLEVBQUUsbUJBQW1CO0lBQzVCLFVBQVUsRUFBRSxnQ0FBZ0M7SUFDNUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztDQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPcHRpb25hbCwgUHJvdmlkZXIsIFNraXBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWFzdGVyRGV0YWlsU2VydmljZX0gZnJvbSAnLi9tYXN0ZXItZGV0YWlsLnNlcnZpY2UnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdGluZ09yTmV3TWFzdGVyRGV0YWlsU2VydmljZShcbiBzZXJ2aWNlUHJvdmlkZXI6IE1hc3RlckRldGFpbFNlcnZpY2U8YW55PiB8IG51bGxcbik6IE1hc3RlckRldGFpbFNlcnZpY2U8YW55PiB7XG4gIHJldHVybiBzZXJ2aWNlUHJvdmlkZXIgPz8gbmV3TWFzdGVyRGV0YWlsU2VydmljZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV3TWFzdGVyRGV0YWlsU2VydmljZSgpOiBNYXN0ZXJEZXRhaWxTZXJ2aWNlPGFueT4ge1xuICByZXR1cm4gbmV3IE1hc3RlckRldGFpbFNlcnZpY2UoKTtcbn1cblxuZXhwb3J0IGNsYXNzIEVsZGVyTWFzdGVyRGV0YWlsUHJvdmlkZXI8VD4ge1xuICAvKipcbiAgICogVXNlcyB0aGUgZXhpc3RpbmcgTWFzdGVyRGV0YWlsU2VydmljZSBmcm9tIGEgcGFyZW50IGlmIGF2YWlsYWJsZS5cbiAgICogT3RoZXJ3aXNlLCBjcmVhdGVzIGEgbmV3IE1hc3RlckRldGFpbFNlcnZpY2UgYW5kIHByb3ZpZGVzIGl0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFeGlzdGluZ09yTmV3TWFzdGVyRGV0YWlsU2VydmljZSA9IDxQcm92aWRlcj57XG4gICAgcHJvdmlkZTogTWFzdGVyRGV0YWlsU2VydmljZSxcbiAgICB1c2VGYWN0b3J5OiBleGlzdGluZ09yTmV3TWFzdGVyRGV0YWlsU2VydmljZSxcbiAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgTWFzdGVyRGV0YWlsU2VydmljZV1dXG4gIH07XG59XG4iXX0=
@@ -1,12 +1,12 @@
1
1
  import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef } from '@angular/core';
2
2
  import { ElderMasterDirective } from './elder-master.directive';
3
3
  import { ElderDetailDirective } from './elder-detail.directive';
4
- import { MasterDetailService } from './master-detail.service';
5
4
  import { BehaviorSubject, Subject } from 'rxjs';
6
5
  import { takeUntil } from 'rxjs/operators';
7
6
  import { ElderDetailDialogComponent } from './elder-detail-dialog/elder-detail-dialog.component';
8
7
  import { LoggerFactory } from '@elderbyte/ts-logger';
9
8
  import { ElderMasterDetailMode } from './elder-master-detail-mode';
9
+ import { ElderMasterDetailProvider } from './elder-master-detail-provider';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "./master-detail.service";
12
12
  import * as i2 from "@angular/material/dialog";
@@ -95,10 +95,14 @@ export class ElderMasterDetailComponent {
95
95
  }
96
96
  }
97
97
  ElderMasterDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailComponent, deps: [{ token: i1.MasterDetailService }, { token: i2.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
98
- ElderMasterDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderMasterDetailComponent, selector: "elder-master-detail", inputs: { mode: "mode" }, providers: [MasterDetailService], queries: [{ propertyName: "master", first: true, predicate: ElderMasterDirective, descendants: true, read: TemplateRef }, { propertyName: "detail", first: true, predicate: ElderDetailDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
98
+ ElderMasterDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderMasterDetailComponent, selector: "elder-master-detail", inputs: { mode: "mode" }, providers: [
99
+ ElderMasterDetailProvider.ExistingOrNewMasterDetailService
100
+ ], queries: [{ propertyName: "master", first: true, predicate: ElderMasterDirective, descendants: true, read: TemplateRef }, { propertyName: "detail", first: true, predicate: ElderDetailDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailComponent, decorators: [{
100
102
  type: Component,
101
- args: [{ selector: 'elder-master-detail', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MasterDetailService], template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n" }]
103
+ args: [{ selector: 'elder-master-detail', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
104
+ ElderMasterDetailProvider.ExistingOrNewMasterDetailService
105
+ ], template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n" }]
102
106
  }], ctorParameters: function () { return [{ type: i1.MasterDetailService }, { type: i2.MatDialog }, { type: i0.ViewContainerRef }]; }, propDecorators: { master: [{
103
107
  type: ContentChild,
104
108
  args: [ElderMasterDirective, { read: TemplateRef, static: false }]
@@ -108,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
108
112
  }], mode: [{
109
113
  type: Input
110
114
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbWFzdGVyLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9tYXN0ZXItZGV0YWlsL2VsZGVyLW1hc3Rlci1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvbWFzdGVyLWRldGFpbC9lbGRlci1tYXN0ZXItZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsV0FBVyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsMEJBQTBCLEVBRTNCLE1BQU0scURBQXFELENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7OztBQVNqRSxNQUFNLE9BQU8sMEJBQTBCO0lBd0JyQzs7OztnRkFJNEU7SUFFNUUsWUFDVSxtQkFBMkMsRUFDNUMsTUFBaUIsRUFDaEIs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QUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxtQkFBbUIsQ0FBQztpS0FlekIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUkvRCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBcUQzRCxJQUFJO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlck1hc3RlckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1tYXN0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJEZXRhaWxEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItZGV0YWlsLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hc3RlckRldGFpbFNlcnZpY2V9IGZyb20gJy4vbWFzdGVyLWRldGFpbC5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgRWxkZXJEZXRhaWxEaWFsb2dDb21wb25lbnQsXG4gIElFbGRlckRldGFpbERpYWxvZ09wdGlvbnNcbn0gZnJvbSAnLi9lbGRlci1kZXRhaWwtZGlhbG9nL2VsZGVyLWRldGFpbC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlck1hc3RlckRldGFpbE1vZGV9IGZyb20gJy4vZWxkZXItbWFzdGVyLWRldGFpbC1tb2RlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItbWFzdGVyLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1tYXN0ZXItZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItbWFzdGVyLWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbTWFzdGVyRGV0YWlsU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNYXN0ZXJEZXRhaWxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKEVsZGVyTWFzdGVyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KVxuICBwdWJsaWMgbWFzdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJEZXRhaWxEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBkZXRhaWw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIHJlYWRvbmx5IG1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlck1hc3RlckRldGFpbE1vZGU+KEVsZGVyTWFzdGVyRGV0YWlsTW9kZS5FTUJFRERFRCk7XG5cbiAgcHVibGljIEVsZGVyTWFzdGVyRGV0YWlsTW9kZSA9IEVsZGVyTWFzdGVyRGV0YWlsTW9kZTtcblxuICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWxkZXJEZXRhaWxEaWFsb2dDb21wb25lbnQ+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFzdGVyRGV0YWlsU2VydmljZTogTWFzdGVyRGV0YWlsU2VydmljZTxUPixcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuXG4gICAgdGhpcy5tYXN0ZXJEZXRhaWxTZXJ2aWNlLmFjdGl2ZU9yQ3JlYXRpbmdJdGVtQ2hhbmdlXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgIC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYWN0aXZlID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW9kZSQuZ2V0VmFsdWUoKSA9PSBFbGRlck1hc3RlckRldGFpbE1vZGUuRElBTE9HKSB7XG4gICAgICAgICAgaWYgKGFjdGl2ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5EZXRhaWxEaWFsb2coYWN0aXZlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbW9kZShtb2RlOiBFbGRlck1hc3RlckRldGFpbE1vZGUpIHtcbiAgICB0aGlzLm1vZGUkLm5leHQobW9kZSk7XG5cbiAgICBpZiAodGhpcy5tb2RlID09IEVsZGVyTWFzdGVyRGV0YWlsTW9kZS5FTUJFRERFRCAmJiB0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBvcGVuRGV0YWlsRGlhbG9nKGVudGl0eTogVCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihFbGRlckRldGFpbERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgZGF0YTogPElFbGRlckRldGFpbERpYWxvZ09wdGlvbnM+IHtcbiAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgIGRldGFpbFRlbXBsYXRlUmVmOiB0aGlzLmRldGFpbFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnODB2dycsXG4gICAgICBoZWlnaHQ6ICc4MHZoJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tZGlhbG9nLWNvbnRhaW5lcidcbiAgICB9KTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRGlhbG9nKCkge1xuICAgIGlmICh0aGlzLmRpYWxvZ1JlZiAhPSBudWxsKSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuIiwiXG48ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBmdWxsXCIgKm5nSWY9XCJtb2RlJCB8IGFzeW5jIGFzIG1vZGVcIj5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgZnVsbCBnYXAtbWRcIiAqbmdJZj1cIm1vZGUgPT0gRWxkZXJNYXN0ZXJEZXRhaWxNb2RlLkVNQkVEREVEXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hc3RlclwiPjwvbmctY29udGFpbmVyID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IGZ1bGxcIiAqbmdJZj1cIm1vZGUgPT0gRWxkZXJNYXN0ZXJEZXRhaWxNb2RlLkRJQUxPR1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtYXN0ZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbWFzdGVyLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9tYXN0ZXItZGV0YWlsL2VsZGVyLW1hc3Rlci1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvbWFzdGVyLWRldGFpbC9lbGRlci1tYXN0ZXItZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsV0FBVyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsMEJBQTBCLEVBRTNCLE1BQU0scURBQXFELENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQVd6RSxNQUFNLE9BQU8sMEJBQTBCO0lBd0JyQzs7OztnRkFJNEU7SUFFNUUsWUFDVSxtQkFBMkMsRUFDNUMsTUFBaUIsRUFDaEIs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QXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QseUJBQXlCLENBQUMsZ0NBQWdDO3FCQUMzRDtpS0FlTSxNQUFNO3NCQURaLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBSS9ELE1BQU07c0JBRFosWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFxRDNELElBQUk7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTWFzdGVyRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLW1hc3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtFbGRlckRldGFpbERpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1kZXRhaWwuZGlyZWN0aXZlJztcbmltcG9ydCB7TWFzdGVyRGV0YWlsU2VydmljZX0gZnJvbSAnLi9tYXN0ZXItZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0RGlhbG9nLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBFbGRlckRldGFpbERpYWxvZ0NvbXBvbmVudCxcbiAgSUVsZGVyRGV0YWlsRGlhbG9nT3B0aW9uc1xufSBmcm9tICcuL2VsZGVyLWRldGFpbC1kaWFsb2cvZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyTWFzdGVyRGV0YWlsTW9kZX0gZnJvbSAnLi9lbGRlci1tYXN0ZXItZGV0YWlsLW1vZGUnO1xuaW1wb3J0IHtFbGRlck1hc3RlckRldGFpbFByb3ZpZGVyfSBmcm9tICcuL2VsZGVyLW1hc3Rlci1kZXRhaWwtcHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1tYXN0ZXItZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW1hc3Rlci1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1tYXN0ZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBFbGRlck1hc3RlckRldGFpbFByb3ZpZGVyLkV4aXN0aW5nT3JOZXdNYXN0ZXJEZXRhaWxTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNYXN0ZXJEZXRhaWxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKEVsZGVyTWFzdGVyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KVxuICBwdWJsaWMgbWFzdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJEZXRhaWxEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBkZXRhaWw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIHJlYWRvbmx5IG1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlck1hc3RlckRldGFpbE1vZGU+KEVsZGVyTWFzdGVyRGV0YWlsTW9kZS5FTUJFRERFRCk7XG5cbiAgcHVibGljIEVsZGVyTWFzdGVyRGV0YWlsTW9kZSA9IEVsZGVyTWFzdGVyRGV0YWlsTW9kZTtcblxuICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWxkZXJEZXRhaWxEaWFsb2dDb21wb25lbnQ+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFzdGVyRGV0YWlsU2VydmljZTogTWFzdGVyRGV0YWlsU2VydmljZTxUPixcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuXG4gICAgdGhpcy5tYXN0ZXJEZXRhaWxTZXJ2aWNlLmFjdGl2ZU9yQ3JlYXRpbmdJdGVtQ2hhbmdlXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgIC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYWN0aXZlID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW9kZSQuZ2V0VmFsdWUoKSA9PSBFbGRlck1hc3RlckRldGFpbE1vZGUuRElBTE9HKSB7XG4gICAgICAgICAgaWYgKGFjdGl2ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5EZXRhaWxEaWFsb2coYWN0aXZlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbW9kZShtb2RlOiBFbGRlck1hc3RlckRldGFpbE1vZGUpIHtcbiAgICB0aGlzLm1vZGUkLm5leHQobW9kZSk7XG5cbiAgICBpZiAodGhpcy5tb2RlID09IEVsZGVyTWFzdGVyRGV0YWlsTW9kZS5FTUJFRERFRCAmJiB0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBvcGVuRGV0YWlsRGlhbG9nKGVudGl0eTogVCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihFbGRlckRldGFpbERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgZGF0YTogPElFbGRlckRldGFpbERpYWxvZ09wdGlvbnM+IHtcbiAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgIGRldGFpbFRlbXBsYXRlUmVmOiB0aGlzLmRldGFpbFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnODB2dycsXG4gICAgICBoZWlnaHQ6ICc4MHZoJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tZGlhbG9nLWNvbnRhaW5lcidcbiAgICB9KTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRGlhbG9nKCkge1xuICAgIGlmICh0aGlzLmRpYWxvZ1JlZiAhPSBudWxsKSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuIiwiXG48ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBmdWxsXCIgKm5nSWY9XCJtb2RlJCB8IGFzeW5jIGFzIG1vZGVcIj5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgZnVsbCBnYXAtbWRcIiAqbmdJZj1cIm1vZGUgPT0gRWxkZXJNYXN0ZXJEZXRhaWxNb2RlLkVNQkVEREVEXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hc3RlclwiPjwvbmctY29udGFpbmVyID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IGZ1bGxcIiAqbmdJZj1cIm1vZGUgPT0gRWxkZXJNYXN0ZXJEZXRhaWxNb2RlLkRJQUxPR1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtYXN0ZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG4iXX0=
@@ -18042,6 +18042,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
18042
18042
  }] }, { type: MasterDetailService }];
18043
18043
  } });
18044
18044
 
18045
+ function existingOrNewMasterDetailService(serviceProvider) {
18046
+ return serviceProvider !== null && serviceProvider !== void 0 ? serviceProvider : newMasterDetailService();
18047
+ }
18048
+ function newMasterDetailService() {
18049
+ return new MasterDetailService();
18050
+ }
18051
+ class ElderMasterDetailProvider {
18052
+ }
18053
+ /**
18054
+ * Uses the existing MasterDetailService from a parent if available.
18055
+ * Otherwise, creates a new MasterDetailService and provides it.
18056
+ */
18057
+ ElderMasterDetailProvider.ExistingOrNewMasterDetailService = {
18058
+ provide: MasterDetailService,
18059
+ useFactory: existingOrNewMasterDetailService,
18060
+ deps: [[new Optional(), new SkipSelf(), MasterDetailService]]
18061
+ };
18062
+
18045
18063
  class ElderMasterDetailComponent {
18046
18064
  /***************************************************************************
18047
18065
  * *
@@ -18126,10 +18144,14 @@ class ElderMasterDetailComponent {
18126
18144
  }
18127
18145
  }
18128
18146
  ElderMasterDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailComponent, deps: [{ token: MasterDetailService }, { token: i1$7.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
18129
- ElderMasterDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderMasterDetailComponent, selector: "elder-master-detail", inputs: { mode: "mode" }, providers: [MasterDetailService], queries: [{ propertyName: "master", first: true, predicate: ElderMasterDirective, descendants: true, read: TemplateRef }, { propertyName: "detail", first: true, predicate: ElderDetailDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18147
+ ElderMasterDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderMasterDetailComponent, selector: "elder-master-detail", inputs: { mode: "mode" }, providers: [
18148
+ ElderMasterDetailProvider.ExistingOrNewMasterDetailService
18149
+ ], queries: [{ propertyName: "master", first: true, predicate: ElderMasterDirective, descendants: true, read: TemplateRef }, { propertyName: "detail", first: true, predicate: ElderDetailDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18130
18150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailComponent, decorators: [{
18131
18151
  type: Component,
18132
- args: [{ selector: 'elder-master-detail', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MasterDetailService], template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n" }]
18152
+ args: [{ selector: 'elder-master-detail', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
18153
+ ElderMasterDetailProvider.ExistingOrNewMasterDetailService
18154
+ ], template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == ElderMasterDetailMode.EMBEDDED\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container >\n <ng-container *ngTemplateOutlet=\"detail\"></ng-container>\n </div>\n\n <div class=\"layout-row full\" *ngIf=\"mode == ElderMasterDetailMode.DIALOG\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n</div>\n\n\n" }]
18133
18155
  }], ctorParameters: function () { return [{ type: MasterDetailService }, { type: i1$7.MatDialog }, { type: i0.ViewContainerRef }]; }, propDecorators: { master: [{
18134
18156
  type: ContentChild,
18135
18157
  args: [ElderMasterDirective, { read: TemplateRef, static: false }]