@design-factory/design-factory 17.0.2 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/design-factory-initial-branding.css +1 -1
- package/design-factory.css +1 -1
- package/esm2022/lib/angular/accessibility/accessibility.module.mjs +4 -4
- package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +3 -3
- package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +3 -3
- package/esm2022/lib/angular/alert/alert.module.mjs +4 -4
- package/esm2022/lib/angular/card/card-advanced.module.mjs +4 -4
- package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +3 -3
- package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +3 -3
- package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +3 -3
- package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +3 -3
- package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +3 -3
- package/esm2022/lib/angular/datepicker/datepicker.module.mjs +4 -4
- package/esm2022/lib/angular/df.module.mjs +4 -4
- package/esm2022/lib/angular/footer/footer.module.mjs +4 -4
- package/esm2022/lib/angular/icon/amadeus-icon.mjs +3 -3
- package/esm2022/lib/angular/icon/icon.module.mjs +4 -4
- package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +3 -3
- package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +4 -4
- package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +3 -3
- package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +3 -3
- package/esm2022/lib/angular/inputs/input-advanced.module.mjs +4 -4
- package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +3 -3
- package/esm2022/lib/angular/mediaqueries/media.module.mjs +4 -4
- package/esm2022/lib/angular/mediaqueries/media.service.mjs +3 -3
- package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +9 -9
- package/esm2022/lib/angular/modal/modal.service.mjs +3 -3
- package/esm2022/lib/angular/popover/config/popover.config.mjs +3 -3
- package/esm2022/lib/angular/popover/popover.module.mjs +4 -4
- package/esm2022/lib/angular/progressbar/progressbar.component.mjs +3 -3
- package/esm2022/lib/angular/progressbar/progressbar.module.mjs +4 -4
- package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +3 -3
- package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +3 -3
- package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +3 -3
- package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +3 -3
- package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +4 -4
- package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +3 -3
- package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +3 -3
- package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +3 -3
- package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +3 -3
- package/esm2022/lib/angular/selects/option-highlight.directive.mjs +3 -3
- package/esm2022/lib/angular/selects/select.module.mjs +4 -4
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +3 -3
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +4 -4
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +3 -3
- package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +3 -3
- package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +3 -3
- package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +3 -3
- package/esm2022/lib/angular/sidenav/sidenav-config.mjs +3 -3
- package/esm2022/lib/angular/sidenav/sidenav.component.mjs +12 -12
- package/esm2022/lib/angular/sidenav/sidenav.module.mjs +4 -4
- package/esm2022/lib/angular/sidenav/sidenav.service.mjs +10 -9
- package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +3 -3
- package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +3 -3
- package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +3 -3
- package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +3 -3
- package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +3 -3
- package/esm2022/lib/angular/slider/lib/slider.component.mjs +3 -3
- package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +3 -3
- package/esm2022/lib/angular/slider/slider.module.mjs +4 -4
- package/esm2022/lib/angular/stepper/stepper.component.mjs +6 -6
- package/esm2022/lib/angular/stepper/stepper.directive.mjs +6 -6
- package/esm2022/lib/angular/stepper/stepper.module.mjs +4 -4
- package/esm2022/lib/angular/stepper/stepper.service.mjs +3 -3
- package/esm2022/lib/angular/toast/toast.module.mjs +4 -4
- package/esm2022/lib/angular/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +3 -3
- package/esm2022/lib/angular/utils/scrollbar.service.mjs +3 -3
- package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +3 -3
- package/fesm2022/design-factory.mjs +248 -247
- package/fesm2022/design-factory.mjs.map +1 -1
- package/lib/angular/sidenav/sidenav.service.d.ts +1 -0
- package/package.json +6 -9
- package/styles/scss/_variables.scss +1 -0
- package/styles/scss/bootstrap/_variables-dark.scss +86 -0
- package/styles/scss/components/fonts/_fonts.root.scss +2 -1
- package/styles/scss/components/fonts/_fonts.scss +20 -1
- package/styles/scss/components/fonts/_fonts.variables.scss +2 -0
- package/styles/scss/themes/brand2023/_variables.scss +0 -2
|
@@ -4,11 +4,11 @@ import { NgbProgressbarModule } from '@ng-bootstrap/ng-bootstrap';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export { DfProgressbarComponent } from './progressbar.component';
|
|
6
6
|
export class DfProgressbarModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: DfProgressbarModule, imports: [DfProgressbarComponent], exports: [DfProgressbarComponent, NgbProgressbarModule] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressbarModule, imports: [NgbProgressbarModule] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressbarModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [DfProgressbarComponent],
|
|
@@ -7,10 +7,10 @@ export class DfDefaultSpinnerComponent {
|
|
|
7
7
|
this.isGlobalSpinner = false;
|
|
8
8
|
this.contentClass = 'spinner-border text-primary';
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfDefaultSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.1", type: DfDefaultSpinnerComponent, isStandalone: true, selector: "df-default-spinner", inputs: { isGlobalSpinner: "isGlobalSpinner", contentClass: "contentClass", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<div [ngClass]=\"contentClass\" [attr.role]=\"isGlobalSpinner ? 'alert' : 'status'\">\n <span class=\"visually-hidden\">\n @if (ariaLabel) {\n {{ ariaLabel }}\n } @else {\n <ng-container i18n=\"@@df.progressindicator.default.spinner.ariaLabel\">Loading...</ng-container>\n }\n </span>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfDefaultSpinnerComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{ selector: 'df-default-spinner', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div [ngClass]=\"contentClass\" [attr.role]=\"isGlobalSpinner ? 'alert' : 'status'\">\n <span class=\"visually-hidden\">\n @if (ariaLabel) {\n {{ ariaLabel }}\n } @else {\n <ng-container i18n=\"@@df.progressindicator.default.spinner.ariaLabel\">Loading...</ng-container>\n }\n </span>\n</div>\n" }]
|
|
16
16
|
}], propDecorators: { isGlobalSpinner: [{
|
|
@@ -7,10 +7,10 @@ export class DfProgressIndicatorBackdropComponent {
|
|
|
7
7
|
get classes() {
|
|
8
8
|
return `df-progressindicator-backdrop ${this.backdropClass || ''} ${this.isGlobalBackdrop ? 'df-progressindicator-backdrop-global' : 'df-progressindicator-backdrop-contextual'}`;
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: DfProgressIndicatorBackdropComponent, isStandalone: true, selector: "df-progressindicator-backdrop", inputs: { backdropClass: "backdropClass", isGlobalBackdrop: "isGlobalBackdrop" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorBackdropComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{
|
|
16
16
|
selector: 'df-progressindicator-backdrop',
|
|
@@ -25,12 +25,12 @@ export class DfProgressIndicatorContainerComponent {
|
|
|
25
25
|
get position() {
|
|
26
26
|
return this._position;
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: DfProgressIndicatorContainerComponent, isStandalone: true, selector: "df-progressindicator-container", inputs: { containerClass: "containerClass", position: "position" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: `
|
|
30
30
|
<ng-content></ng-content>
|
|
31
31
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorContainerComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{
|
|
36
36
|
selector: 'df-progressindicator-container',
|
|
@@ -22,10 +22,10 @@ export class DfProgressIndicatorDirective {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorDirective, deps: [{ token: i0.ElementRef }, { token: i1.DfProgressIndicatorService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfProgressIndicatorDirective, isStandalone: true, selector: "[dfProgressIndicator]", inputs: { dfProgressIndicator: "dfProgressIndicator", dfProgressIndicatorConfig: "dfProgressIndicatorConfig" }, usesOnChanges: true, ngImport: i0 }); }
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorDirective, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: '[dfProgressIndicator]',
|
|
@@ -10,8 +10,8 @@ export { DfDefaultSpinnerComponent } from './default/default-spinner.component';
|
|
|
10
10
|
export { DfProgressIndicatorBackdropComponent } from './progressindicator-backdrop.component';
|
|
11
11
|
export { DfProgressIndicatorDirective } from './progressindicator.directive';
|
|
12
12
|
export class DfProgressIndicatorModule {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
14
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorModule, imports: [DfDefaultSpinnerComponent,
|
|
15
15
|
DfProgressbarModule,
|
|
16
16
|
DfProgressIndicatorBackdropComponent,
|
|
17
17
|
DfProgressIndicatorContainerComponent,
|
|
@@ -20,10 +20,10 @@ export class DfProgressIndicatorModule {
|
|
|
20
20
|
DfProgressIndicatorDirective,
|
|
21
21
|
DfProgressIndicatorBackdropComponent,
|
|
22
22
|
DfDefaultSpinnerComponent] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1
|
|
23
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorModule, imports: [DfDefaultSpinnerComponent,
|
|
24
24
|
DfProgressbarModule, DfProgressbarModule] }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorModule, decorators: [{
|
|
27
27
|
type: NgModule,
|
|
28
28
|
args: [{
|
|
29
29
|
imports: [
|
|
@@ -155,10 +155,10 @@ export class DfProgressIndicatorService {
|
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
159
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorService, deps: [{ token: DOCUMENT }, { token: i0.RendererFactory2 }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.ScrollBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
159
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorService, providedIn: 'root' }); }
|
|
160
160
|
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfProgressIndicatorService, decorators: [{
|
|
162
162
|
type: Injectable,
|
|
163
163
|
args: [{
|
|
164
164
|
providedIn: 'root'
|
|
@@ -20,10 +20,10 @@ export class DfDirectionDetectionService {
|
|
|
20
20
|
}
|
|
21
21
|
return RightToLeftDirectionEnum.LeftToRight;
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfDirectionDetectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfDirectionDetectionService, providedIn: 'root' }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfDirectionDetectionService, decorators: [{
|
|
27
27
|
type: Injectable,
|
|
28
28
|
args: [{
|
|
29
29
|
providedIn: 'root'
|
|
@@ -35,10 +35,10 @@ export class DfManageBadgeEventsDirective {
|
|
|
35
35
|
this.dfManageBadgeEventsSelect[0](this.dfManageBadgeEventsSelect[1]);
|
|
36
36
|
event.stopPropagation();
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
39
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfManageBadgeEventsDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfManageBadgeEventsDirective, isStandalone: true, selector: "[dfManageBadgeEventsSelect]", inputs: { dfManageBadgeEventsSelect: "dfManageBadgeEventsSelect" }, host: { listeners: { "keydown.Backspace": "handleKeyDownBackspace($event)", "click": "handleClick($event)", "keydown.Enter": "handleKeyDownEnter($event)", "keydown.Delete": "handleKeyDownDelete($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, ngImport: i0 }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfManageBadgeEventsDirective, decorators: [{
|
|
42
42
|
type: Directive,
|
|
43
43
|
args: [{
|
|
44
44
|
selector: '[dfManageBadgeEventsSelect]',
|
|
@@ -84,10 +84,10 @@ export class DfManageNavSelectDirective {
|
|
|
84
84
|
(listBadge[currentPos - 1] || document.activeElement).focus();
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
88
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfManageNavSelectDirective, deps: [{ token: i1.NgSelectComponent, host: true }, { token: i0.ElementRef }, { token: i2.DfDirectionDetectionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
88
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfManageNavSelectDirective, isStandalone: true, selector: "[dfManageNavSelect]", host: { listeners: { "keydown.arrowLeft": "handleKeyDown($event)", "keydown.Backspace": "handleKeyDownBackspace($event)", "keydown.arrowRight": "handleKeyDownRight($event)" } }, ngImport: i0 }); }
|
|
89
89
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfManageNavSelectDirective, decorators: [{
|
|
91
91
|
type: Directive,
|
|
92
92
|
args: [{
|
|
93
93
|
selector: '[dfManageNavSelect]',
|
|
@@ -43,10 +43,10 @@ export class DfOptionHighlightDirective {
|
|
|
43
43
|
isDefined(value) {
|
|
44
44
|
return value !== undefined && value !== null;
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
47
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfOptionHighlightDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfOptionHighlightDirective, isStandalone: true, selector: "[dfOptionHighlight]", inputs: { term: ["dfOptionHighlight", "term"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfOptionHighlightDirective, decorators: [{
|
|
50
50
|
type: Directive,
|
|
51
51
|
args: [{
|
|
52
52
|
selector: '[dfOptionHighlight]',
|
|
@@ -8,11 +8,11 @@ export { DfManageNavSelectDirective } from './nav/manage-nav-select.directive';
|
|
|
8
8
|
export { DfManageBadgeEventsDirective } from './events/manage-badge-events.directive';
|
|
9
9
|
export { DfOptionHighlightDirective } from './option-highlight.directive';
|
|
10
10
|
export class DfSelectModule {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: DfSelectModule, imports: [DfManageNavSelectDirective, DfManageBadgeEventsDirective, DfOptionHighlightDirective], exports: [DfManageNavSelectDirective, DfManageBadgeEventsDirective, DfOptionHighlightDirective, NgSelectModule] }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSelectModule, imports: [NgSelectModule] }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSelectModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
imports: [DfManageNavSelectDirective, DfManageBadgeEventsDirective, DfOptionHighlightDirective],
|
|
@@ -73,10 +73,10 @@ export class DfSideNavCollapseDirective {
|
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
77
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseDirective, deps: [{ token: i0.ElementRef }, { token: i1.DfSideNavCollapseService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
77
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfSideNavCollapseDirective, isStandalone: true, selector: "[dfSideNavCollapse]", inputs: { collapsed: ["dfSideNavCollapse", "collapsed"], minimized: "minimized" }, outputs: { dfSideNavCollapseChange: "dfSideNavCollapseChange", shown: "shown", hidden: "hidden" }, exportAs: ["dfSideNavCollapse"], usesOnChanges: true, ngImport: i0 }); }
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseDirective, decorators: [{
|
|
80
80
|
type: Directive,
|
|
81
81
|
args: [{ selector: '[dfSideNavCollapse]', exportAs: 'dfSideNavCollapse', standalone: true }]
|
|
82
82
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DfSideNavCollapseService }, { type: i0.NgZone }], propDecorators: { collapsed: [{
|
|
@@ -4,11 +4,11 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export { DfSideNavCollapseDirective } from './dfSideNavCollapse';
|
|
5
5
|
export { DfSideNavCollapseConfig } from './dfSideNavCollapseConfig';
|
|
6
6
|
export class DfSideNavCollapseModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseModule, imports: [DfSideNavCollapseDirective], exports: [DfSideNavCollapseDirective] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseModule }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [DfSideNavCollapseDirective],
|
|
@@ -25,10 +25,10 @@ export class DfSideNavCollapseService {
|
|
|
25
25
|
setAnimation(on) {
|
|
26
26
|
this._sideNavAnimation$.next(on);
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseService, deps: [{ token: i1.DfSideNavCollapseConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseService, providedIn: 'root' }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseService, decorators: [{
|
|
32
32
|
type: Injectable,
|
|
33
33
|
args: [{
|
|
34
34
|
providedIn: 'root'
|
|
@@ -17,10 +17,10 @@ export class DfSideNavCollapseConfig {
|
|
|
17
17
|
set animation(animation) {
|
|
18
18
|
this._animation = animation;
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
21
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseConfig, deps: [{ token: i1.NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseConfig, providedIn: 'root' }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavCollapseConfig, decorators: [{
|
|
24
24
|
type: Injectable,
|
|
25
25
|
args: [{ providedIn: 'root' }]
|
|
26
26
|
}], ctorParameters: () => [{ type: i1.NgbConfig }] });
|
|
@@ -38,10 +38,10 @@ export class DfExcludeTrapDirective {
|
|
|
38
38
|
this.subscriptionInput.unsubscribe();
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
42
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfExcludeTrapDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
42
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfExcludeTrapDirective, isStandalone: true, selector: "[dfExcludeTrap]", inputs: { dfExcludeTrapSelector: "dfExcludeTrapSelector", dfExcludeTrap: "dfExcludeTrap" }, ngImport: i0 }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfExcludeTrapDirective, decorators: [{
|
|
45
45
|
type: Directive,
|
|
46
46
|
args: [{
|
|
47
47
|
selector: '[dfExcludeTrap]',
|
|
@@ -13,10 +13,10 @@ export class DfManageSideNavDirective {
|
|
|
13
13
|
this.renderer.removeClass(this.element.nativeElement, 'df-sidenav-list-withactivated');
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfManageSideNavDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfManageSideNavDirective, isStandalone: true, selector: "[dfManageSideNav]", ngImport: i0 }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfManageSideNavDirective, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{
|
|
22
22
|
selector: '[dfManageSideNav]',
|
|
@@ -15,10 +15,10 @@ export class DfSideNavConfig {
|
|
|
15
15
|
this.isAppOverlay = false;
|
|
16
16
|
this.isAppOverlayMode = true;
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
19
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavConfig, providedIn: 'root' }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavConfig, decorators: [{
|
|
22
22
|
type: Injectable,
|
|
23
23
|
args: [{ providedIn: 'root' }]
|
|
24
24
|
}] });
|
|
@@ -9,10 +9,10 @@ export class DfSideNavHeaderDirective {
|
|
|
9
9
|
constructor(templateRef) {
|
|
10
10
|
this.templateRef = templateRef;
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
13
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavHeaderDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfSideNavHeaderDirective, isStandalone: true, selector: "ng-template[dfSideNavHeader]", ngImport: i0 }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavHeaderDirective, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{ selector: 'ng-template[dfSideNavHeader]', standalone: true }]
|
|
18
18
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
@@ -20,10 +20,10 @@ export class DfSideNavIconDirective {
|
|
|
20
20
|
constructor(templateRef) {
|
|
21
21
|
this.templateRef = templateRef;
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
24
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavIconDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfSideNavIconDirective, isStandalone: true, selector: "ng-template[dfSideNavIcon]", ngImport: i0 }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavIconDirective, decorators: [{
|
|
27
27
|
type: Directive,
|
|
28
28
|
args: [{ selector: 'ng-template[dfSideNavIcon]', standalone: true }]
|
|
29
29
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
@@ -31,10 +31,10 @@ export class DfSideNavItemDirective {
|
|
|
31
31
|
constructor(templateRef) {
|
|
32
32
|
this.templateRef = templateRef;
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
35
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: DfSideNavItemDirective, isStandalone: true, selector: "ng-template[dfSideNavItem]", ngImport: i0 }); }
|
|
36
36
|
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavItemDirective, decorators: [{
|
|
38
38
|
type: Directive,
|
|
39
39
|
args: [{ selector: 'ng-template[dfSideNavItem]', standalone: true }]
|
|
40
40
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
@@ -61,10 +61,10 @@ export class DfSideNavComponent {
|
|
|
61
61
|
this.subscription.unsubscribe();
|
|
62
62
|
this.sideNavService.removeSideBar();
|
|
63
63
|
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.1", type: DfSideNavComponent, isStandalone: true, selector: "df-sidenav", host: { properties: { "class.df-sidenav-menu-overlay": "this.overlayClass", "class": "this.elements" } }, queries: [{ propertyName: "tplHeader", first: true, predicate: DfSideNavHeaderDirective, descendants: true }, { propertyName: "tplIcon", first: true, predicate: DfSideNavIconDirective, descendants: true }, { propertyName: "tplItem", first: true, predicate: DfSideNavItemDirective, descendants: true }], ngImport: i0, template: "@if (tplHeader) {\n <ng-template [ngTemplateOutlet]=\"tplHeader.templateRef\"></ng-template>\n}\n<df-sidenavlist\n [items]=\"(sideNavService.sideNavItems$ | async) ?? []\"\n [tplIcon]=\"tplIcon\"\n [tplItem]=\"tplItem\"\n></df-sidenavlist>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: DfSideNavListComponent, selector: "df-sidenavlist", inputs: ["items", "tplIcon", "tplItem", "currentItem", "id"] }] }); }
|
|
66
66
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
69
69
|
args: [{ selector: 'df-sidenav', standalone: true, imports: [CommonModule, DfSideNavListComponent], template: "@if (tplHeader) {\n <ng-template [ngTemplateOutlet]=\"tplHeader.templateRef\"></ng-template>\n}\n<df-sidenavlist\n [items]=\"(sideNavService.sideNavItems$ | async) ?? []\"\n [tplIcon]=\"tplIcon\"\n [tplItem]=\"tplItem\"\n></df-sidenavlist>\n" }]
|
|
70
70
|
}], ctorParameters: () => [], propDecorators: { tplHeader: [{
|
|
@@ -9,8 +9,8 @@ export { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, D
|
|
|
9
9
|
export { DfManageSideNavDirective } from './manage-sidenav.directive';
|
|
10
10
|
export { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
|
|
11
11
|
export class DfSideNavModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavModule, imports: [DfManageSideNavDirective,
|
|
14
14
|
DfSideNavComponent,
|
|
15
15
|
DfSideNavHeaderDirective,
|
|
16
16
|
DfExcludeTrapDirective,
|
|
@@ -23,10 +23,10 @@ export class DfSideNavModule {
|
|
|
23
23
|
DfSideNavItemDirective,
|
|
24
24
|
DfSideNavCollapseModule,
|
|
25
25
|
DfMediaModule] }); }
|
|
26
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1
|
|
26
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavModule, imports: [DfSideNavComponent, DfSideNavCollapseModule,
|
|
27
27
|
DfMediaModule] }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavModule, decorators: [{
|
|
30
30
|
type: NgModule,
|
|
31
31
|
args: [{
|
|
32
32
|
imports: [
|
|
@@ -21,6 +21,7 @@ export var DfNavItemType;
|
|
|
21
21
|
*/
|
|
22
22
|
export class DfSideNavService {
|
|
23
23
|
constructor(config) {
|
|
24
|
+
this.config = config;
|
|
24
25
|
this.type = DfNavItemType;
|
|
25
26
|
this._items = [];
|
|
26
27
|
this.subscription = new Subscription();
|
|
@@ -58,7 +59,7 @@ export class DfSideNavService {
|
|
|
58
59
|
*
|
|
59
60
|
*/
|
|
60
61
|
inactiveItems(list) {
|
|
61
|
-
list.forEach(item => {
|
|
62
|
+
list.forEach((item) => {
|
|
62
63
|
item.isActive = false;
|
|
63
64
|
if (item.subMenus) {
|
|
64
65
|
this.inactiveItems(item.subMenus);
|
|
@@ -199,7 +200,7 @@ export class DfSideNavService {
|
|
|
199
200
|
}
|
|
200
201
|
// internal usage from the SideNav. Call when component is destroy
|
|
201
202
|
removeSideBar() {
|
|
202
|
-
this._isCollapsed$.next(
|
|
203
|
+
this._isCollapsed$.next(this.config.isCollapsed);
|
|
203
204
|
this._isPresent$.next(false);
|
|
204
205
|
}
|
|
205
206
|
/**
|
|
@@ -248,7 +249,7 @@ export class DfSideNavService {
|
|
|
248
249
|
* @param itemsList
|
|
249
250
|
*/
|
|
250
251
|
collapseAll(itemsList) {
|
|
251
|
-
itemsList.forEach(item => {
|
|
252
|
+
itemsList.forEach((item) => {
|
|
252
253
|
if (item.subMenus) {
|
|
253
254
|
item.isCollapsed = true;
|
|
254
255
|
this.collapseAll(item.subMenus);
|
|
@@ -262,7 +263,7 @@ export class DfSideNavService {
|
|
|
262
263
|
// To avoid more than one active state visible
|
|
263
264
|
setActiveItem(items, foundAnActive = false) {
|
|
264
265
|
let foundActive = foundAnActive;
|
|
265
|
-
items.forEach(item => {
|
|
266
|
+
items.forEach((item) => {
|
|
266
267
|
if (item.isActive && foundAnActive) {
|
|
267
268
|
throw Error('DfSideNavService must be init with only one isActive item');
|
|
268
269
|
}
|
|
@@ -277,7 +278,7 @@ export class DfSideNavService {
|
|
|
277
278
|
return foundActive;
|
|
278
279
|
}
|
|
279
280
|
addNavItemType(withRouter, items = this._items) {
|
|
280
|
-
items.forEach(item => {
|
|
281
|
+
items.forEach((item) => {
|
|
281
282
|
if (!item.type) {
|
|
282
283
|
if (item.subMenus) {
|
|
283
284
|
item.type = DfNavItemType.subMenus;
|
|
@@ -303,13 +304,13 @@ export class DfSideNavService {
|
|
|
303
304
|
updateOverLay() {
|
|
304
305
|
this._isAppOverlay$.next(this.isAppOverlayMode && this._isCollapsed$.value === false);
|
|
305
306
|
}
|
|
306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1
|
|
307
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1
|
|
307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavService, deps: [{ token: i1.DfSideNavConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
308
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavService, providedIn: 'root' }); }
|
|
308
309
|
}
|
|
309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1
|
|
310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DfSideNavService, decorators: [{
|
|
310
311
|
type: Injectable,
|
|
311
312
|
args: [{
|
|
312
313
|
providedIn: 'root'
|
|
313
314
|
}]
|
|
314
315
|
}], ctorParameters: () => [{ type: i1.DfSideNavConfig }] });
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFlakUsTUFBTSxDQUFOLElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix5REFBUSxDQUFBO0lBQ1IsaUVBQVksQ0FBQTtJQUNaLDZEQUFVLENBQUE7SUFDVixpREFBSSxDQUFBO0lBQ0osaUVBQVksQ0FBQTtJQUNaLDJEQUFTLENBQUE7SUFDVCx5REFBUSxDQUFBO0lBQ1IsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QjtBQUVEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQWEzQixZQUFZLE1BQXVCO1FBWjVCLFNBQUksR0FBRyxhQUFhLENBQUM7UUFTcEIsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFVLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFVLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsaUJBQWlC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QUU7b0JBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztpQkFDeEM7cUJBQU0sSUFBSSxVQUFVLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO2lCQUN4QzthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN4RixDQUFDOzhHQTdUVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29uZmlnIH0gZnJvbSAnLi9zaWRlbmF2LWNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGZTaWRlTmF2SXRlbSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgaXNFeHRlcm5hbD86IGJvb2xlYW47XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xuICBicmVha3BvaW50cz86IHN0cmluZ1tdO1xuICBzdWJNZW51cz86IERmU2lkZU5hdkl0ZW1bXTtcbiAgdHlwZT86IERmTmF2SXRlbVR5cGU7XG59XG5cbmV4cG9ydCBlbnVtIERmTmF2SXRlbVR5cGUge1xuICBzdWJNZW51cyxcbiAgYWN0aW9uQnV0dG9uLFxuICByb3V0ZXJMaW5rLFxuICBsaW5rLFxuICBleHRlcm5hbExpbmssXG4gIHNlcGFyYXRvcixcbiAgdGVtcGxhdGUsXG4gIHRpdGxlXG59XG5cbi8qKlxuICogQSBzZXJ2aWNlIGZvciBtYW5hZ2luZyB0aGUgc2lkZW5hdiBwYW5lbC5cbiAqIFRoaXMgc2VydmljZSBpcyBpbmNsdWRlZCBhdCByb290IGxldmVsXG4gKlxuICogQ3JlYXRpbmcgYSBzaWRlbmF2IGlzIHN0cmFpZ2h0Zm9yd2FyZDogdXNlIFtEZlNpZGVOYXZDb21wb25lbnRdKCMvY29tcG9uZW50cy9zaWRlbmF2L2FwaSNEZlNpZGVOYXZDb21wb25lbnQpIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHR5cGUgPSBEZk5hdkl0ZW1UeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaWRlTmF2SXRlbXMkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc01pbm1pemVkJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNDb2xsYXBzZWQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc1ByZXNlbnQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVJdGVtJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNJbk1lbnVPdmVybGF5JDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNBcHBPdmVybGF5JDtcbiAgcHJpdmF0ZSBfaXNBcHBPdmVybGF5TW9kZTtcbiAgcHJpdmF0ZSBfaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRGZTaWRlTmF2Q29uZmlnKSB7XG4gICAgdGhpcy5fc2lkZU5hdkl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGZTaWRlTmF2SXRlbVtdPihbXSk7XG4gICAgdGhpcy5faXNNaW5taXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc01pbm1pemVkKTtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc0NvbGxhcHNlZCk7XG4gICAgdGhpcy5faXNQcmVzZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzUHJlc2VudCk7XG4gICAgdGhpcy5faXNJbk1lbnVPdmVybGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzSW5NZW51T3ZlcmxheSk7XG4gICAgdGhpcy5faXNBcHBPdmVybGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzQXBwT3ZlcmxheSk7XG4gICAgdGhpcy5fYWN0aXZlSXRlbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERmU2lkZU5hdkl0ZW0gfCBudWxsPihudWxsKTtcbiAgICB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlID0gY29uZmlnLmlzQXBwT3ZlcmxheU1vZGU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5faXNDb2xsYXBzZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT3ZlckxheSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbml0IHRoZSBsaXN0IG9mIEVsZW1lbnRzIGZyb20geW91ciBzaWRlbmF2XG4gICAqXG4gICAqXG4gICAqIFNlY29uZCBvcHRpb24gd2l0aFJvdXRlciBpcyB0byBiZSBzZXQgdG8gZmFsc2UgaWYgeW91IGFyZSBub3QgcGFzc2luZyBsaW5rIHN0cmluZyBmb3IgdGhlIGFuZ3VsYXIgUm91dGVyXG4gICAqIEhlcmUgd2UgYXJlIG5vdCBkZWVwIGNvcHlpbmcgdGhlIGFycmF5IC0tPiB0aGUgZnVuY3Rpb24gd2lsbCBjaGFuZ2UgaXRcbiAgICovXG4gIGluaXRJdGVtcyhpdGVtczogRGZTaWRlTmF2SXRlbVtdLCB3aXRoUm91dGVyID0gdHJ1ZSkge1xuICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgdGhpcy5hZGROYXZJdGVtVHlwZSh3aXRoUm91dGVyKTtcbiAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5faXRlbXMpO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbmFjdGl2YXRlIHRoZSBsaXN0IG9mIEVsZW1lbnRzIGZyb20geW91ciBzaWRlbmF2XG4gICAqIGlzQWN0aXZlIHByb3BlcnRpZXMgb2YgYWxsIGl0ZW1zIHdpbGwgYmUgc2V0IHRvIGZhbHNlIHJlY3Vyc2l2ZWx5XG4gICAqXG4gICAqL1xuICBpbmFjdGl2ZUl0ZW1zKGxpc3Q6IERmU2lkZU5hdkl0ZW1bXSkge1xuICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGl0ZW0uaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIHRoaXMuaW5hY3RpdmVJdGVtcyhpdGVtLnN1Yk1lbnVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gYWN0aXZlIHRoZSBpdGVtIHBhc3MgYXMgaW5wdXRcbiAgICogVGhpcyBmdW5jdGlvbiBpbmFjdGl2YXRlIGFsbCB0aGUgb3RoZXIgaXRlbXMgb2YgdGhlIHNlcnZpY2VcbiAgICogSXQgd2lsbCB0aGVuIGRpc3BhdGNoIHRoZSBsaXN0IG9mIGl0ZW1zIG9mIHRoZSBzaWRlTmF2IHRvIGFjdGl2ZUl0ZW0kXG4gICAqXG4gICAqL1xuICBhY3RpdmVJdGVtKGl0ZW06IERmU2lkZU5hdkl0ZW0pIHtcbiAgICB0aGlzLmluYWN0aXZlSXRlbXModGhpcy5faXRlbXMpO1xuICAgIGl0ZW0uaXNBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHdoZW4gdG8gcHV0L3JlbW92ZSB0aGUgb3ZlcmxheS5cbiAgICogYFRydWVgIGluIGNhc2Ugb2Ygb3ZlcmxheSBuZWVkZWRcbiAgICpcbiAgICovXG4gIGdldCBpc0FwcE92ZXJsYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0FwcE92ZXJsYXkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBzaWRlbmF2IGlzIGluIGFuIG92ZXJsYXkgcGFuZWwgb3Igbm90XG4gICAqIGBUcnVlYCBpbiBjYXNlIG9mIG92ZXJsYXkgcGFuZWxcbiAgICpcbiAgICovXG4gIGdldCBpc0luTWVudU92ZXJsYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0luTWVudU92ZXJsYXkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHRoZSBjdXJyZW50IGFjdGl2ZUl0ZW0gYSB1c2VyIGNsaWNrZWQgb25cbiAgICpcbiAgICovXG4gIGdldCBhY3RpdmVJdGVtJCgpOiBPYnNlcnZhYmxlPERmU2lkZU5hdkl0ZW0gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUl0ZW0kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBzaWRlTmF2IGlzIHByZXNlbnQgaW4gdGhlIHBhZ2VcbiAgICogU2lkZU5hdiBtYXkgYmUgY29sbGFwc2VkIGhlcmUgb3Igbm90XG4gICAqXG4gICAqL1xuICBnZXQgaXNQcmVzZW50JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNQcmVzZW50JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdXR1cmUgT3B0aW9uc1xuICAgKi9cbiAgZ2V0IGlzTWluaW1pemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNNaW5taXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIHRvIGtub3cgaWYgdGhlIFNpZGVOYXYgaXMgY29sbGFwc2VkIG9yIG5vdFxuICAgKiBJZiBgdHJ1ZWAgdGhlIFNpZGVOYXYgaXMgY29sbGFwc2VkXG4gICAqXG4gICAqL1xuICBnZXQgaXNDb2xsYXBzZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbGxhcHNlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIG9mIHRoZSBTaWRlTmF2IEl0ZW1zIGFmdGVyIHRoZXkgaGF2ZSBiZWVucyBjaGFuZ2VkXG4gICAqXG4gICAqL1xuICBnZXQgc2lkZU5hdkl0ZW1zJCgpOiBPYnNlcnZhYmxlPERmU2lkZU5hdkl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLl9zaWRlTmF2SXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHRoZSBtb2RlIEFwcGx5IGZvciB0aGUgU2lkZU5hdlxuICAgKiBJZiBgdHJ1ZWAgdGhlIFNpZGVOYXYgY2FuIGJlIGluIG92ZXJsYXkgKGJ1dCBub3QgbmVjZXNzYXJ5IGlzKS5cbiAgICpcbiAgICovXG4gIGdldCBpc0FwcE92ZXJsYXlNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlO1xuICB9XG5cbiAgLy8gaW5pdEl0ZW1zIG11c3QgYmUgdXNlZCB0byBwdXNoIG5ldyBpdGVtcyB0byB0aGUgc2VydmljZVxuICBnZXQgaXRlbXMoKTogRGZTaWRlTmF2SXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gdG9nZ2xlIGEgU2lkZU5hdiBJdGVtIChlaXRoZXIgZnJvbSBleHBhbmQgdG8gY29sbGFwc2Ugb3IgdGhlIG90aGVyIHdheSBhcm91bmQpLlxuICAgKiBpc0NvbGxhcHNlZCBhdHRyaWJ1dGUgb2YgdGhlIGlucHV0IGl0ZW0gaXMgY2hhbmdlZC5cbiAgICogQWxsIGl0ZW1zIGFyZSBwdXNoIGFnYWluIHRvIHRoZSBzdHJlYW0gb2YgaXRlbXMuXG4gICAqIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBTaWRlTmF2IGluIGNhc2Ugb2YgY2xpY2sgYW5kIEVudGVyIG9uIGFuIEl0ZW0gd2l0aCBzdWJNZW51c1xuICAgKi9cbiAgdG9nZ2xlKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSkge1xuICAgIGl0ZW1JbnB1dC5pc0NvbGxhcHNlZCA9ICFpdGVtSW5wdXQuaXNDb2xsYXBzZWQ7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gaXRlbUlucHV0IFxuICAgKi9cbiAgY29sbGFwc2VJdGVtKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSkge1xuICAgIHRoaXMuY29sbGFwc2UoaXRlbUlucHV0LCB0aGlzLl9pdGVtcyk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGNvbGxhcHNlQWxsIGl0ZW1zXG4gICAqL1xuICBjb2xsYXBzZUFsbEl0ZW1zKCkge1xuICAgIHRoaXMuY29sbGFwc2VBbGwodGhpcy5faXRlbXMpO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBzZXQvdW5zZXQgdGhlIFNpZGVOYXYgaW4gYW4gT3ZlcmxheSBNZW51XG4gICAqIElmIGlucHV0IGlzIGBUcnVlYCB0aGVuIHRoZSBTaWRlTmF2IHdpbGwgYmUgaW4gYW4gT3ZlcmxheSBNZW51XG4gICAqICh3aGVuIG5vdCBjb2xsYXBzZWQpXG4gICAqXG4gICAqL1xuICBzZXRJbk1lbnVTaWRlTmF2KG9uOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNJbk1lbnVPdmVybGF5JC5uZXh0KG9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgU2lkZU5hdlxuICAgKlxuICAgKi9cbiAgaGlkZVNpZGVOYXYoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gbWFrZSB0aGUgU2lkZU5hdiB2aXNpYmxlICh1bmNvbGxhcHNlKVxuICAgKlxuICAgKi9cbiAgc2hvd1NpZGVOYXYoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHRvZ2dsZSB0aGUgU2lkZU5hdiBzdGF0dXMgY29sbGFwc2UvdmlzaWJsZVxuICAgKlxuICAgKi9cbiAgdG9nZ2xlU2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dCghdGhpcy5faXNDb2xsYXBzZWQkLnZhbHVlKTtcbiAgfVxuXG4gIC8vIGludGVybmFsIHVzYWdlIGZyb20gdGhlIFNpZGVOYXYuIENhbGwgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveVxuICByZW1vdmVTaWRlQmFyKCkge1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLl9pc1ByZXNlbnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHNldCB0aGUgQXBwIE92ZXJsYXkgTW9kZVxuICAgKiBJbnB1dCBgVHJ1ZWAgaWYgeW91IHdhbnQgdG8gc2V0IHRoZSBBcHBPdmVybGF5XG4gICAqIEFuIGV2ZW50IGlzIHNlbmQgdG8gaXNBcHBPdmVybGF5JCBkZXBlbmRpbmcgb24geW91ciBzdGF0dXNcbiAgICogaWYgSW5wdXQgPSBgVHJ1ZWAgYW5kIGlzQ29sbGFwc2VkID0gYEZhbHNlYCB0aGVuIGlzQXBwT3ZlcmxheSRcbiAgICogd2lsbCBiZSBgVHJ1ZWBcbiAgICpcbiAgICovXG4gIHNldEFwcE92ZXJsYXlNb2RlKG9uOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNBcHBPdmVybGF5TW9kZSA9IG9uO1xuICAgIHRoaXMudXBkYXRlT3ZlckxheSgpO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgdXNhZ2UgdG8gdGhlIHNpZGVuYXYgY29tcG9uZW50XG4gIC8vIERvIG5vdCB1c2VcbiAgc2V0U2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc1ByZXNlbnQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogXG4gICAqIEBwYXJhbSBpdGVtSW5wdXQgXG4gICAqIEBwYXJhbSBpdGVtc0xpc3QgXG4gICAqL1xuICBwcml2YXRlIGNvbGxhcHNlKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSwgaXRlbXNMaXN0OiBEZlNpZGVOYXZJdGVtW10pIDogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zTGlzdCkge1xuICAgICAgaWYgKGl0ZW0gPT09IGl0ZW1JbnB1dCAmJiBpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJvcGFnYXRlIHRoZSBjb2xsYXBzZSB1cFxuICAgICAgfSBlbHNlIGlmIChpdGVtID09PSBpdGVtSW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgY29uc3QgbmVlZGNvbCA9IHRoaXMuY29sbGFwc2UoaXRlbUlucHV0LCBpdGVtLnN1Yk1lbnVzKTtcbiAgICAgICAgaWYgKG5lZWRjb2wpIHtcbiAgICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTsgLy8gY29sbGFwc2UgaXRcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJvcGFnYXRlIHRoZSBjb2xsYXBzZSB1cFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIGl0ZW1zTGlzdCBcbiAgICovXG4gIHByaXZhdGUgY29sbGFwc2VBbGwoaXRlbXNMaXN0OiBEZlNpZGVOYXZJdGVtW10pIHtcbiAgICBpdGVtc0xpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlQWxsKGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gT25seSBvbmUgaXRlbSBhdCB0aGUgdGltZSBtdXN0IGJlIGFjdGl2ZVxuICAvLyBBY3RpdmUgZmxhZyBpbiBpdGVtIGlzIG9ubHkgdmFsaWQgZm9yIGFjdGlvbiBidXR0b24gYW5kIGxpbmtcbiAgLy8gUm91dGVyIGxpbmsgZG9lcyBub3QgdXNlIHRoaXMgYWN0aXZlIGZsYWcgdG8gd29ya1xuICAvLyBJdCBpcyB1cCB0byB5b3UgdG8gaW5hY3RpdmF0ZUl0ZW1zIHdoZW4gbmVlZGVkIHdoZW4geW91IG1peCBhY3Rpb25CdXR0b24gYW5kIHJvdXRlciBsaW5rXG4gIC8vIFRvIGF2b2lkIG1vcmUgdGhhbiBvbmUgYWN0aXZlIHN0YXRlIHZpc2libGVcbiAgcHJpdmF0ZSBzZXRBY3RpdmVJdGVtKGl0ZW1zIDogRGZTaWRlTmF2SXRlbVtdLCBmb3VuZEFuQWN0aXZlID0gZmFsc2UpIDogYm9vbGVhbiB7XG4gICAgbGV0IGZvdW5kQWN0aXZlID0gZm91bmRBbkFjdGl2ZTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0uaXNBY3RpdmUgJiYgZm91bmRBbkFjdGl2ZSkge1xuICAgICAgICAgIHRocm93IEVycm9yKCdEZlNpZGVOYXZTZXJ2aWNlIG11c3QgYmUgaW5pdCB3aXRoIG9ubHkgb25lIGlzQWN0aXZlIGl0ZW0nKTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS5pc0FjdGl2ZSkge1xuICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICAgICAgZm91bmRBY3RpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgZm91bmRBY3RpdmUgPSB0aGlzLnNldEFjdGl2ZUl0ZW0oaXRlbS5zdWJNZW51cywgZm91bmRBY3RpdmUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3VuZEFjdGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTmF2SXRlbVR5cGUod2l0aFJvdXRlcjogYm9vbGVhbiwgaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IHRoaXMuX2l0ZW1zKSB7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICghaXRlbS50eXBlKSB7XG4gICAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5zdWJNZW51cztcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlzRXh0ZXJuYWwpIHtcbiAgICAgICAgICBpdGVtLnR5cGUgPSBEZk5hdkl0ZW1UeXBlLmV4dGVybmFsTGluaztcbiAgICAgICAgfSBlbHNlIGlmICh3aXRoUm91dGVyKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5yb3V0ZXJMaW5rO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0udHlwZSA9IERmTmF2SXRlbVR5cGUuYWN0aW9uQnV0dG9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICB0aGlzLmFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXIsIGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaFNpZGVOYXZJdGVtcygpIHtcbiAgICB0aGlzLl9zaWRlTmF2SXRlbXMkLm5leHQodGhpcy5faXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPdmVyTGF5KCkge1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheSQubmV4dCh0aGlzLmlzQXBwT3ZlcmxheU1vZGUgJiYgdGhpcy5faXNDb2xsYXBzZWQkLnZhbHVlID09PSBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFlakUsTUFBTSxDQUFOLElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix5REFBUSxDQUFBO0lBQ1IsaUVBQVksQ0FBQTtJQUNaLDZEQUFVLENBQUE7SUFDVixpREFBSSxDQUFBO0lBQ0osaUVBQVksQ0FBQTtJQUNaLDJEQUFTLENBQUE7SUFDVCx5REFBUSxDQUFBO0lBQ1IsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QjtBQUVEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQWEzQixZQUE2QixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQVo3QyxTQUFJLEdBQUcsYUFBYSxDQUFDO1FBU3BCLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBQ3BCLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsU0FBUyxDQUFD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QUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7aUJBQ3BDO3FCQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO2lCQUN4QztxQkFBTSxJQUFJLFVBQVUsRUFBRTtvQkFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO2lCQUN0QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7aUJBQ3hDO2FBQ0Y7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNoRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3hGLENBQUM7OEdBN1RVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZlNpZGVOYXZDb25maWcgfSBmcm9tICcuL3NpZGVuYXYtY29uZmlnJztcblxuZXhwb3J0IGludGVyZmFjZSBEZlNpZGVOYXZJdGVtIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBpc0V4dGVybmFsPzogYm9vbGVhbjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG4gIGJyZWFrcG9pbnRzPzogc3RyaW5nW107XG4gIHN1Yk1lbnVzPzogRGZTaWRlTmF2SXRlbVtdO1xuICB0eXBlPzogRGZOYXZJdGVtVHlwZTtcbn1cblxuZXhwb3J0IGVudW0gRGZOYXZJdGVtVHlwZSB7XG4gIHN1Yk1lbnVzLFxuICBhY3Rpb25CdXR0b24sXG4gIHJvdXRlckxpbmssXG4gIGxpbmssXG4gIGV4dGVybmFsTGluayxcbiAgc2VwYXJhdG9yLFxuICB0ZW1wbGF0ZSxcbiAgdGl0bGVcbn1cblxuLyoqXG4gKiBBIHNlcnZpY2UgZm9yIG1hbmFnaW5nIHRoZSBzaWRlbmF2IHBhbmVsLlxuICogVGhpcyBzZXJ2aWNlIGlzIGluY2x1ZGVkIGF0IHJvb3QgbGV2ZWxcbiAqXG4gKiBDcmVhdGluZyBhIHNpZGVuYXYgaXMgc3RyYWlnaHRmb3J3YXJkOiB1c2UgW0RmU2lkZU5hdkNvbXBvbmVudF0oIy9jb21wb25lbnRzL3NpZGVuYXYvYXBpI0RmU2lkZU5hdkNvbXBvbmVudCkgY29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERmU2lkZU5hdlNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgdHlwZSA9IERmTmF2SXRlbVR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NpZGVOYXZJdGVtcyQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzTWlubWl6ZWQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0NvbGxhcHNlZCQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzUHJlc2VudCQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUl0ZW0kO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0luTWVudU92ZXJsYXkkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0FwcE92ZXJsYXkkO1xuICBwcml2YXRlIF9pc0FwcE92ZXJsYXlNb2RlO1xuICBwcml2YXRlIF9pdGVtczogRGZTaWRlTmF2SXRlbVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb25maWc6IERmU2lkZU5hdkNvbmZpZykge1xuICAgIHRoaXMuX3NpZGVOYXZJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERmU2lkZU5hdkl0ZW1bXT4oW10pO1xuICAgIHRoaXMuX2lzTWlubWl6ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNNaW5taXplZCk7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNDb2xsYXBzZWQpO1xuICAgIHRoaXMuX2lzUHJlc2VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc1ByZXNlbnQpO1xuICAgIHRoaXMuX2lzSW5NZW51T3ZlcmxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc0luTWVudU92ZXJsYXkpO1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc0FwcE92ZXJsYXkpO1xuICAgIHRoaXMuX2FjdGl2ZUl0ZW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZlNpZGVOYXZJdGVtIHwgbnVsbD4obnVsbCk7XG4gICAgdGhpcy5faXNBcHBPdmVybGF5TW9kZSA9IGNvbmZpZy5pc0FwcE92ZXJsYXlNb2RlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU92ZXJMYXkoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gaW5pdCB0aGUgbGlzdCBvZiBFbGVtZW50cyBmcm9tIHlvdXIgc2lkZW5hdlxuICAgKlxuICAgKlxuICAgKiBTZWNvbmQgb3B0aW9uIHdpdGhSb3V0ZXIgaXMgdG8gYmUgc2V0IHRvIGZhbHNlIGlmIHlvdSBhcmUgbm90IHBhc3NpbmcgbGluayBzdHJpbmcgZm9yIHRoZSBhbmd1bGFyIFJvdXRlclxuICAgKiBIZXJlIHdlIGFyZSBub3QgZGVlcCBjb3B5aW5nIHRoZSBhcnJheSAtLT4gdGhlIGZ1bmN0aW9uIHdpbGwgY2hhbmdlIGl0XG4gICAqL1xuICBpbml0SXRlbXMoaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSwgd2l0aFJvdXRlciA9IHRydWUpIHtcbiAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMuYWRkTmF2SXRlbVR5cGUod2l0aFJvdXRlcik7XG4gICAgdGhpcy5zZXRBY3RpdmVJdGVtKHRoaXMuX2l0ZW1zKTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gaW5hY3RpdmF0ZSB0aGUgbGlzdCBvZiBFbGVtZW50cyBmcm9tIHlvdXIgc2lkZW5hdlxuICAgKiBpc0FjdGl2ZSBwcm9wZXJ0aWVzIG9mIGFsbCBpdGVtcyB3aWxsIGJlIHNldCB0byBmYWxzZSByZWN1cnNpdmVseVxuICAgKlxuICAgKi9cbiAgaW5hY3RpdmVJdGVtcyhsaXN0OiBEZlNpZGVOYXZJdGVtW10pIHtcbiAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIHRoaXMuaW5hY3RpdmVJdGVtcyhpdGVtLnN1Yk1lbnVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gYWN0aXZlIHRoZSBpdGVtIHBhc3MgYXMgaW5wdXRcbiAgICogVGhpcyBmdW5jdGlvbiBpbmFjdGl2YXRlIGFsbCB0aGUgb3RoZXIgaXRlbXMgb2YgdGhlIHNlcnZpY2VcbiAgICogSXQgd2lsbCB0aGVuIGRpc3BhdGNoIHRoZSBsaXN0IG9mIGl0ZW1zIG9mIHRoZSBzaWRlTmF2IHRvIGFjdGl2ZUl0ZW0kXG4gICAqXG4gICAqL1xuICBhY3RpdmVJdGVtKGl0ZW06IERmU2lkZU5hdkl0ZW0pIHtcbiAgICB0aGlzLmluYWN0aXZlSXRlbXModGhpcy5faXRlbXMpO1xuICAgIGl0ZW0uaXNBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHdoZW4gdG8gcHV0L3JlbW92ZSB0aGUgb3ZlcmxheS5cbiAgICogYFRydWVgIGluIGNhc2Ugb2Ygb3ZlcmxheSBuZWVkZWRcbiAgICpcbiAgICovXG4gIGdldCBpc0FwcE92ZXJsYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0FwcE92ZXJsYXkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBzaWRlbmF2IGlzIGluIGFuIG92ZXJsYXkgcGFuZWwgb3Igbm90XG4gICAqIGBUcnVlYCBpbiBjYXNlIG9mIG92ZXJsYXkgcGFuZWxcbiAgICpcbiAgICovXG4gIGdldCBpc0luTWVudU92ZXJsYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0luTWVudU92ZXJsYXkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHRoZSBjdXJyZW50IGFjdGl2ZUl0ZW0gYSB1c2VyIGNsaWNrZWQgb25cbiAgICpcbiAgICovXG4gIGdldCBhY3RpdmVJdGVtJCgpOiBPYnNlcnZhYmxlPERmU2lkZU5hdkl0ZW0gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUl0ZW0kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBzaWRlTmF2IGlzIHByZXNlbnQgaW4gdGhlIHBhZ2VcbiAgICogU2lkZU5hdiBtYXkgYmUgY29sbGFwc2VkIGhlcmUgb3Igbm90XG4gICAqXG4gICAqL1xuICBnZXQgaXNQcmVzZW50JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNQcmVzZW50JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdXR1cmUgT3B0aW9uc1xuICAgKi9cbiAgZ2V0IGlzTWluaW1pemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNNaW5taXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIHRvIGtub3cgaWYgdGhlIFNpZGVOYXYgaXMgY29sbGFwc2VkIG9yIG5vdFxuICAgKiBJZiBgdHJ1ZWAgdGhlIFNpZGVOYXYgaXMgY29sbGFwc2VkXG4gICAqXG4gICAqL1xuICBnZXQgaXNDb2xsYXBzZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbGxhcHNlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIG9mIHRoZSBTaWRlTmF2IEl0ZW1zIGFmdGVyIHRoZXkgaGF2ZSBiZWVucyBjaGFuZ2VkXG4gICAqXG4gICAqL1xuICBnZXQgc2lkZU5hdkl0ZW1zJCgpOiBPYnNlcnZhYmxlPERmU2lkZU5hdkl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLl9zaWRlTmF2SXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHRoZSBtb2RlIEFwcGx5IGZvciB0aGUgU2lkZU5hdlxuICAgKiBJZiBgdHJ1ZWAgdGhlIFNpZGVOYXYgY2FuIGJlIGluIG92ZXJsYXkgKGJ1dCBub3QgbmVjZXNzYXJ5IGlzKS5cbiAgICpcbiAgICovXG4gIGdldCBpc0FwcE92ZXJsYXlNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlO1xuICB9XG5cbiAgLy8gaW5pdEl0ZW1zIG11c3QgYmUgdXNlZCB0byBwdXNoIG5ldyBpdGVtcyB0byB0aGUgc2VydmljZVxuICBnZXQgaXRlbXMoKTogRGZTaWRlTmF2SXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gdG9nZ2xlIGEgU2lkZU5hdiBJdGVtIChlaXRoZXIgZnJvbSBleHBhbmQgdG8gY29sbGFwc2Ugb3IgdGhlIG90aGVyIHdheSBhcm91bmQpLlxuICAgKiBpc0NvbGxhcHNlZCBhdHRyaWJ1dGUgb2YgdGhlIGlucHV0IGl0ZW0gaXMgY2hhbmdlZC5cbiAgICogQWxsIGl0ZW1zIGFyZSBwdXNoIGFnYWluIHRvIHRoZSBzdHJlYW0gb2YgaXRlbXMuXG4gICAqIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBTaWRlTmF2IGluIGNhc2Ugb2YgY2xpY2sgYW5kIEVudGVyIG9uIGFuIEl0ZW0gd2l0aCBzdWJNZW51c1xuICAgKi9cbiAgdG9nZ2xlKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSkge1xuICAgIGl0ZW1JbnB1dC5pc0NvbGxhcHNlZCA9ICFpdGVtSW5wdXQuaXNDb2xsYXBzZWQ7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtSW5wdXRcbiAgICovXG4gIGNvbGxhcHNlSXRlbShpdGVtSW5wdXQ6IERmU2lkZU5hdkl0ZW0pIHtcbiAgICB0aGlzLmNvbGxhcHNlKGl0ZW1JbnB1dCwgdGhpcy5faXRlbXMpO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBjb2xsYXBzZUFsbCBpdGVtc1xuICAgKi9cbiAgY29sbGFwc2VBbGxJdGVtcygpIHtcbiAgICB0aGlzLmNvbGxhcHNlQWxsKHRoaXMuX2l0ZW1zKTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gc2V0L3Vuc2V0IHRoZSBTaWRlTmF2IGluIGFuIE92ZXJsYXkgTWVudVxuICAgKiBJZiBpbnB1dCBpcyBgVHJ1ZWAgdGhlbiB0aGUgU2lkZU5hdiB3aWxsIGJlIGluIGFuIE92ZXJsYXkgTWVudVxuICAgKiAod2hlbiBub3QgY29sbGFwc2VkKVxuICAgKlxuICAgKi9cbiAgc2V0SW5NZW51U2lkZU5hdihvbjogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzSW5NZW51T3ZlcmxheSQubmV4dChvbik7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gY29sbGFwc2UgdGhlIFNpZGVOYXZcbiAgICpcbiAgICovXG4gIGhpZGVTaWRlTmF2KCkge1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIG1ha2UgdGhlIFNpZGVOYXYgdmlzaWJsZSAodW5jb2xsYXBzZSlcbiAgICpcbiAgICovXG4gIHNob3dTaWRlTmF2KCkge1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byB0b2dnbGUgdGhlIFNpZGVOYXYgc3RhdHVzIGNvbGxhcHNlL3Zpc2libGVcbiAgICpcbiAgICovXG4gIHRvZ2dsZVNpZGVOYXYoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQoIXRoaXMuX2lzQ29sbGFwc2VkJC52YWx1ZSk7XG4gIH1cblxuICAvLyBpbnRlcm5hbCB1c2FnZSBmcm9tIHRoZSBTaWRlTmF2LiBDYWxsIHdoZW4gY29tcG9uZW50IGlzIGRlc3Ryb3lcbiAgcmVtb3ZlU2lkZUJhcigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dCh0aGlzLmNvbmZpZy5pc0NvbGxhcHNlZCk7XG4gICAgdGhpcy5faXNQcmVzZW50JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBzZXQgdGhlIEFwcCBPdmVybGF5IE1vZGVcbiAgICogSW5wdXQgYFRydWVgIGlmIHlvdSB3YW50IHRvIHNldCB0aGUgQXBwT3ZlcmxheVxuICAgKiBBbiBldmVudCBpcyBzZW5kIHRvIGlzQXBwT3ZlcmxheSQgZGVwZW5kaW5nIG9uIHlvdXIgc3RhdHVzXG4gICAqIGlmIElucHV0ID0gYFRydWVgIGFuZCBpc0NvbGxhcHNlZCA9IGBGYWxzZWAgdGhlbiBpc0FwcE92ZXJsYXkkXG4gICAqIHdpbGwgYmUgYFRydWVgXG4gICAqXG4gICAqL1xuICBzZXRBcHBPdmVybGF5TW9kZShvbjogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheU1vZGUgPSBvbjtcbiAgICB0aGlzLnVwZGF0ZU92ZXJMYXkoKTtcbiAgfVxuXG4gIC8vIEludGVybmFsIHVzYWdlIHRvIHRoZSBzaWRlbmF2IGNvbXBvbmVudFxuICAvLyBEbyBub3QgdXNlXG4gIHNldFNpZGVOYXYoKSB7XG4gICAgdGhpcy5faXNQcmVzZW50JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtSW5wdXRcbiAgICogQHBhcmFtIGl0ZW1zTGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBjb2xsYXBzZShpdGVtSW5wdXQ6IERmU2lkZU5hdkl0ZW0sIGl0ZW1zTGlzdDogRGZTaWRlTmF2SXRlbVtdKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zTGlzdCkge1xuICAgICAgaWYgKGl0ZW0gPT09IGl0ZW1JbnB1dCAmJiBpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJvcGFnYXRlIHRoZSBjb2xsYXBzZSB1cFxuICAgICAgfSBlbHNlIGlmIChpdGVtID09PSBpdGVtSW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgY29uc3QgbmVlZGNvbCA9IHRoaXMuY29sbGFwc2UoaXRlbUlucHV0LCBpdGVtLnN1Yk1lbnVzKTtcbiAgICAgICAgaWYgKG5lZWRjb2wpIHtcbiAgICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTsgLy8gY29sbGFwc2UgaXRcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJvcGFnYXRlIHRoZSBjb2xsYXBzZSB1cFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbXNMaXN0XG4gICAqL1xuICBwcml2YXRlIGNvbGxhcHNlQWxsKGl0ZW1zTGlzdDogRGZTaWRlTmF2SXRlbVtdKSB7XG4gICAgaXRlbXNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlQWxsKGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gT25seSBvbmUgaXRlbSBhdCB0aGUgdGltZSBtdXN0IGJlIGFjdGl2ZVxuICAvLyBBY3RpdmUgZmxhZyBpbiBpdGVtIGlzIG9ubHkgdmFsaWQgZm9yIGFjdGlvbiBidXR0b24gYW5kIGxpbmtcbiAgLy8gUm91dGVyIGxpbmsgZG9lcyBub3QgdXNlIHRoaXMgYWN0aXZlIGZsYWcgdG8gd29ya1xuICAvLyBJdCBpcyB1cCB0byB5b3UgdG8gaW5hY3RpdmF0ZUl0ZW1zIHdoZW4gbmVlZGVkIHdoZW4geW91IG1peCBhY3Rpb25CdXR0b24gYW5kIHJvdXRlciBsaW5rXG4gIC8vIFRvIGF2b2lkIG1vcmUgdGhhbiBvbmUgYWN0aXZlIHN0YXRlIHZpc2libGVcbiAgcHJpdmF0ZSBzZXRBY3RpdmVJdGVtKGl0ZW1zOiBEZlNpZGVOYXZJdGVtW10sIGZvdW5kQW5BY3RpdmUgPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIGxldCBmb3VuZEFjdGl2ZSA9IGZvdW5kQW5BY3RpdmU7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaXNBY3RpdmUgJiYgZm91bmRBbkFjdGl2ZSkge1xuICAgICAgICB0aHJvdyBFcnJvcignRGZTaWRlTmF2U2VydmljZSBtdXN0IGJlIGluaXQgd2l0aCBvbmx5IG9uZSBpc0FjdGl2ZSBpdGVtJyk7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSQubmV4dChpdGVtKTtcbiAgICAgICAgZm91bmRBY3RpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgZm91bmRBY3RpdmUgPSB0aGlzLnNldEFjdGl2ZUl0ZW0oaXRlbS5zdWJNZW51cywgZm91bmRBY3RpdmUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3VuZEFjdGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTmF2SXRlbVR5cGUod2l0aFJvdXRlcjogYm9vbGVhbiwgaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IHRoaXMuX2l0ZW1zKSB7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKCFpdGVtLnR5cGUpIHtcbiAgICAgICAgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgICBpdGVtLnR5cGUgPSBEZk5hdkl0ZW1UeXBlLnN1Yk1lbnVzO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uaXNFeHRlcm5hbCkge1xuICAgICAgICAgIGl0ZW0udHlwZSA9IERmTmF2SXRlbVR5cGUuZXh0ZXJuYWxMaW5rO1xuICAgICAgICB9IGVsc2UgaWYgKHdpdGhSb3V0ZXIpIHtcbiAgICAgICAgICBpdGVtLnR5cGUgPSBEZk5hdkl0ZW1UeXBlLnJvdXRlckxpbms7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5hY3Rpb25CdXR0b247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIHRoaXMuYWRkTmF2SXRlbVR5cGUod2l0aFJvdXRlciwgaXRlbS5zdWJNZW51cyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoU2lkZU5hdkl0ZW1zKCkge1xuICAgIHRoaXMuX3NpZGVOYXZJdGVtcyQubmV4dCh0aGlzLl9pdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU92ZXJMYXkoKSB7XG4gICAgdGhpcy5faXNBcHBPdmVybGF5JC5uZXh0KHRoaXMuaXNBcHBPdmVybGF5TW9kZSAmJiB0aGlzLl9pc0NvbGxhcHNlZCQudmFsdWUgPT09IGZhbHNlKTtcbiAgfVxufVxuIl19
|