@dereekb/dbx-web 9.15.8 → 9.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.
- package/esm2020/lib/interaction/filter/filter.module.mjs +23 -5
- package/esm2020/lib/interaction/filter/filter.popover.button.component.mjs +1 -1
- package/esm2020/lib/interaction/filter/filter.popover.button.directive.mjs +1 -1
- package/esm2020/lib/interaction/filter/filter.popover.component.mjs +12 -5
- package/esm2020/lib/interaction/filter/filter.preset.list.component.mjs +21 -0
- package/esm2020/lib/interaction/filter/filter.preset.menu.component.mjs +61 -0
- package/esm2020/lib/interaction/filter/filter.preset.mjs +64 -0
- package/esm2020/lib/interaction/filter/filter.wrapper.component.mjs +37 -22
- package/esm2020/lib/interaction/filter/index.mjs +3 -1
- package/esm2020/lib/layout/column/two/index.mjs +2 -1
- package/esm2020/lib/layout/column/two/two.column.module.mjs +5 -4
- package/esm2020/lib/layout/column/two/two.column.sref.showright.directive.mjs +34 -0
- package/esm2020/lib/router/layout/anchor/anchor.component.mjs +4 -3
- package/fesm2015/dereekb-dbx-web.mjs +210 -36
- package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web.mjs +215 -36
- package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
- package/lib/interaction/filter/filter.module.d.ts +13 -7
- package/lib/interaction/filter/filter.popover.button.component.d.ts +1 -1
- package/lib/interaction/filter/filter.popover.button.directive.d.ts +2 -2
- package/lib/interaction/filter/filter.popover.component.d.ts +12 -5
- package/lib/interaction/filter/filter.preset.d.ts +24 -0
- package/lib/interaction/filter/filter.preset.list.component.d.ts +7 -0
- package/lib/interaction/filter/filter.preset.menu.component.d.ts +28 -0
- package/lib/interaction/filter/filter.wrapper.component.d.ts +14 -10
- package/lib/interaction/filter/index.d.ts +2 -0
- package/lib/layout/column/two/index.d.ts +1 -0
- package/lib/layout/column/two/two.column.module.d.ts +8 -7
- package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +16 -0
- package/lib/router/layout/anchor/_anchor.scss +11 -1
- package/lib/router/layout/anchor/anchor.component.d.ts +1 -0
- package/lib/router/layout/anchorlist/_anchorlist.scss +13 -0
- package/mapbox/package.json +3 -3
- package/package.json +3 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { shareReplay } from 'rxjs/operators';
|
|
2
|
+
import { Directive } from '@angular/core';
|
|
3
|
+
import { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';
|
|
4
|
+
import { TwoColumnsContextStore } from './two.column.store';
|
|
5
|
+
import { distinctUntilChanged } from 'rxjs';
|
|
6
|
+
import { isNot } from '@dereekb/rxjs';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./two.column.store";
|
|
9
|
+
import * as i2 from "@dereekb/dbx-core";
|
|
10
|
+
/**
|
|
11
|
+
* Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.
|
|
12
|
+
*/
|
|
13
|
+
export class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective {
|
|
14
|
+
constructor(_twoColumnsContextStore, _dbxRouterService) {
|
|
15
|
+
super();
|
|
16
|
+
this._twoColumnsContextStore = _twoColumnsContextStore;
|
|
17
|
+
this._dbxRouterService = _dbxRouterService;
|
|
18
|
+
this.showRight$ = this._twoColumnsContextStore.backRef$.pipe(
|
|
19
|
+
// Only show right when the backRef is not exactly active
|
|
20
|
+
isSegueRefActive({ dbxRouterService: this._dbxRouterService, activeExactly: true }), isNot(), distinctUntilChanged(), shareReplay(1));
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
DbxTwoColumnSrefShowRightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxTwoColumnSrefShowRightDirective, deps: [{ token: i1.TwoColumnsContextStore }, { token: i2.DbxRouterService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
+
DbxTwoColumnSrefShowRightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: DbxTwoColumnSrefShowRightDirective, selector: "[dbxTwoColumnSrefShowRight]", usesInheritance: true, ngImport: i0 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxTwoColumnSrefShowRightDirective, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: '[dbxTwoColumnSrefShowRight]'
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.TwoColumnsContextStore }, { type: i2.DbxRouterService }]; } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLmNvbHVtbi5zcmVmLnNob3dyaWdodC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvbGF5b3V0L2NvbHVtbi90d28vdHdvLmNvbHVtbi5zcmVmLnNob3dyaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUV0Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSw2QkFBNkI7SUFTbkYsWUFBNkIsdUJBQStDLEVBQW1CLGlCQUFtQztRQUNoSSxLQUFLLEVBQUUsQ0FBQztRQURtQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQW1CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFSekgsZUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUM5RCx5REFBeUQ7UUFDekQsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ25GLEtBQUssRUFBRSxFQUNQLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBaUIsQ0FBQztJQUN4RixDQUFDOzsrSEFmVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSwgRGJ4Um91dGVyU2VydmljZSwgaXNTZWd1ZVJlZkFjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IFR3b0NvbHVtbnNDb250ZXh0U3RvcmUgfSBmcm9tICcuL3R3by5jb2x1bW4uc3RvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOb3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBVc2VkIHdpdGggYSBEYnhUd29Db2x1bW5Db21wb25lbnQgdG8gY29udHJvbCBzaG93aW5nIHJpZ2h0IHdoZW4gdGhlIGN1cnJlbnQgcm91dGUgaXMgYSBjaGlsZCBvZiB0aGUgYmFja1JlZi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieFR3b0NvbHVtblNyZWZTaG93UmlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhUd29Db2x1bW5TcmVmU2hvd1JpZ2h0RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHNob3dSaWdodCQgPSB0aGlzLl90d29Db2x1bW5zQ29udGV4dFN0b3JlLmJhY2tSZWYkLnBpcGUoXG4gICAgLy8gT25seSBzaG93IHJpZ2h0IHdoZW4gdGhlIGJhY2tSZWYgaXMgbm90IGV4YWN0bHkgYWN0aXZlXG4gICAgaXNTZWd1ZVJlZkFjdGl2ZSh7IGRieFJvdXRlclNlcnZpY2U6IHRoaXMuX2RieFJvdXRlclNlcnZpY2UsIGFjdGl2ZUV4YWN0bHk6IHRydWUgfSksXG4gICAgaXNOb3QoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfdHdvQ29sdW1uc0NvbnRleHRTdG9yZTogVHdvQ29sdW1uc0NvbnRleHRTdG9yZSwgcHJpdmF0ZSByZWFkb25seSBfZGJ4Um91dGVyU2VydmljZTogRGJ4Um91dGVyU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuX3R3b0NvbHVtbnNDb250ZXh0U3RvcmUuc2V0U2hvd1JpZ2h0KHRoaXMuc2hvd1JpZ2h0JCkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG59XG4iXX0=
|
|
@@ -18,6 +18,7 @@ export class DbxAnchorComponent extends AbstractDbxAnchorDirective {
|
|
|
18
18
|
this.templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));
|
|
19
19
|
this.url$ = this.anchor$.pipe(map((x) => x?.url), distinctUntilChanged(), shareReplay(1));
|
|
20
20
|
this.target$ = this.anchor$.pipe(map((x) => x?.target), distinctUntilChanged(), shareReplay(1));
|
|
21
|
+
this.selectedClass$ = this.selected$.pipe(map((selected) => (selected ? 'dbx-anchor-selected' : '')), shareReplay(1));
|
|
21
22
|
}
|
|
22
23
|
get templateRef() {
|
|
23
24
|
return this._templateRef.value;
|
|
@@ -37,17 +38,17 @@ export class DbxAnchorComponent extends AbstractDbxAnchorDirective {
|
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
DbxAnchorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxAnchorComponent, deps: [{ token: i1.DbxRouterWebProviderConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
DbxAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: { block: "block" }, host: { attributes: { "dbx-anchor-block": "block" }, classAttribute: "d-inline dbx-anchor" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
41
|
+
DbxAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: { block: "block" }, host: { attributes: { "dbx-anchor-block": "block" }, classAttribute: "d-inline dbx-anchor" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
41
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxAnchorComponent, decorators: [{
|
|
42
43
|
type: Component,
|
|
43
44
|
args: [{ selector: 'dbx-anchor, [dbx-anchor]', host: {
|
|
44
45
|
class: 'd-inline dbx-anchor',
|
|
45
46
|
'dbx-anchor-block': 'block'
|
|
46
|
-
}, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
47
|
+
}, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
47
48
|
}], ctorParameters: function () { return [{ type: i1.DbxRouterWebProviderConfig }]; }, propDecorators: { block: [{
|
|
48
49
|
type: Input
|
|
49
50
|
}], templateRef: [{
|
|
50
51
|
type: ViewChild,
|
|
51
52
|
args: ['content', { read: TemplateRef }]
|
|
52
53
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvbGF5b3V0L2FuY2hvci9hbmNob3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL3JvdXRlci9sYXlvdXQvYW5jaG9yL2FuY2hvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLDBCQUEwQixFQUErQixNQUFNLG1CQUFtQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFFbkY7O0dBRUc7QUFTSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBaUNoRSxZQUE2Qiw0QkFBd0Q7UUFDbkYsS0FBSyxFQUFFLENBQUM7UUFEbUIsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE0QjtRQWhDN0UsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBOEIsU0FBUyxDQUFDLENBQUM7UUFDMUUsaUJBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQWN4RSxTQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUNsQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQ3JCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sbUJBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQTVCRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUF3QztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBdUJRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLHVCQUF1QixDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBeUI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzsrR0FoRFUsa0JBQWtCO21HQUFsQixrQkFBa0IsNlFBT0MsV0FBVyxvREN6QjNDLDZoQ0EwQkE7MkZEUmEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLDBCQUEwQixRQUU5Qjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixrQkFBa0IsRUFBRSxPQUFPO3FCQUM1QjtpSEFPTSxLQUFLO3NCQURYLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBza2lwRmlyc3RNYXliZSwgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4QW5jaG9yRGlyZWN0aXZlLCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXksIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4Um91dGVyV2ViUHJvdmlkZXJDb25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlci9yb3V0ZXIucHJvdmlkZXIuY29uZmlnJztcblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCByZW5kZXJzIGFuIGFuY2hvciBlbGVtZW50IGRlcGVuZGluZyBvbiB0aGUgaW5wdXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1hbmNob3IsIFtkYngtYW5jaG9yXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmNob3IuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWlubGluZSBkYngtYW5jaG9yJyxcbiAgICAnZGJ4LWFuY2hvci1ibG9jayc6ICdibG9jaydcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBbmNob3JDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERieEFuY2hvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3RlbXBsYXRlUmVmID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxUZW1wbGF0ZVJlZjx1bmtub3duPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlUmVmJCA9IHRoaXMuX3RlbXBsYXRlUmVmLnBpcGUoc2tpcEZpcnN0TWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBibG9jaz86IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgZ2V0IHRlbXBsYXRlUmVmKCk6IE1heWJlPFRlbXBsYXRlUmVmPHVua25vd24+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlUmVmLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRlbXBsYXRlUmVmKHRlbXBsYXRlUmVmOiBNYXliZTxUZW1wbGF0ZVJlZjx1bmtub3duPj4pIHtcbiAgICB0aGlzLl90ZW1wbGF0ZVJlZi5uZXh0KHRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHVybCQgPSB0aGlzLmFuY2hvciQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnVybCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHRhcmdldCQgPSB0aGlzLmFuY2hvciQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnRhcmdldCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkQ2xhc3MkID0gdGhpcy5zZWxlY3RlZCQucGlwZShcbiAgICBtYXAoKHNlbGVjdGVkKSA9PiAoc2VsZWN0ZWQgPyAnZGJ4LWFuY2hvci1zZWxlY3RlZCcgOiAnJykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYk5neFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnOiBEYnhSb3V0ZXJXZWJQcm92aWRlckNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3RlbXBsYXRlUmVmLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgc3JlZkFuY2hvckNvbmZpZygpOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmRiTmd4Um91dGVyV2ViUHJvdmlkZXJDb25maWcuYW5jaG9yU2VndWVSZWZDb21wb25lbnQ7XG4gIH1cblxuICBjbGlja0FuY2hvcihldmVudD86IE1heWJlPE1vdXNlRXZlbnQ+KTogdm9pZCB7XG4gICAgdGhpcy5hbmNob3I/Lm9uQ2xpY2s/LihldmVudCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGUkIHwgYXN5bmNcIj5cbiAgPCEtLSBQbGFpbiAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIENsaWNrIC0tPlxuICA8YSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWNsaWNrXCIgW25nQ2xhc3NdPVwiKHNlbGVjdGVkQ2xhc3MkIHwgYXN5bmMpIHx8ICcnXCIgKGNsaWNrKT1cImNsaWNrQW5jaG9yKClcIiAqbmdTd2l0Y2hDYXNlPVwiMVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cbiAgPCEtLSBSb3V0ZXIgLS0+XG4gIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwic3JlZkFuY2hvckNvbmZpZ1wiICpuZ1N3aXRjaENhc2U9XCIyXCI+XG4gICAgPCEtLSBJbmplY3RlZCBpbiBjaGlsZC4gLS0+XG4gIDwvZGJ4LWluamVjdGlvbj5cbiAgPCEtLSBIcmVmIC0tPlxuICA8YSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWhyZWZcIiBbaHJlZl09XCJ1cmwkIHwgYXN5bmNcIiBbYXR0ci50YXJnZXRdPVwidGFyZ2V0JCB8IGFzeW5jXCIgKm5nU3dpdGNoQ2FzZT1cIjNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2E+XG4gIDwhLS0gRGlzYWJsZWQgb3IgTm9uZSAtLT5cbiAgPGEgY2xhc3M9XCJkYngtYW5jaG9yLWEgZGJ4LWFuY2hvci1kaXNhYmxlZFwiICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9hPlxuPC9uZy1jb250YWluZXI+XG48IS0tIFRlbXBsYXRlIGNvbnRlbnQgLS0+XG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|