@one-paragon/angular-utilities 0.0.32 → 0.1.2

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.
Files changed (35) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +9 -0
  3. package/action-state/index.d.ts +4 -0
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2020/action-state/action-state-spinner/action-state-spinner.component.mjs +23 -0
  7. package/esm2020/action-state/action-state-ui/action-state-ui.module.mjs +30 -0
  8. package/esm2020/action-state/index.mjs +8 -0
  9. package/esm2020/action-state/ngrx-ext/ngrx-ext.module.mjs +25 -0
  10. package/esm2020/action-state/ngrx.mjs +42 -0
  11. package/esm2020/public-api.mjs +2 -1
  12. package/esm2020/rxjs/rxjs-operators.mjs +14 -3
  13. package/esm2020/table-builder/classes/data-filter.mjs +6 -2
  14. package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +23 -9
  15. package/esm2020/table-builder/components/initialization-component/initialization-component.mjs +11 -30
  16. package/esm2020/table-builder/interfaces/report-def.mjs +1 -1
  17. package/esm2020/table-builder/services/table-template-service.mjs +5 -5
  18. package/esm2020/table-builder/services/transform-creator.mjs +27 -10
  19. package/esm2020/utilities/directives/conditional-classes.directive.mjs +36 -0
  20. package/esm2020/utilities/index.mjs +2 -1
  21. package/esm2020/utilities/module.mjs +8 -3
  22. package/fesm2015/one-paragon-angular-utilities.mjs +841 -677
  23. package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -1
  24. package/fesm2020/one-paragon-angular-utilities.mjs +847 -677
  25. package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -1
  26. package/package.json +1 -1
  27. package/public-api.d.ts +1 -0
  28. package/rxjs/rxjs-operators.d.ts +1 -0
  29. package/table-builder/components/column-builder/column-builder.component.d.ts +3 -1
  30. package/table-builder/components/initialization-component/initialization-component.d.ts +2 -7
  31. package/table-builder/interfaces/report-def.d.ts +9 -6
  32. package/table-builder/services/transform-creator.d.ts +3 -1
  33. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  34. package/utilities/index.d.ts +1 -0
  35. package/utilities/module.d.ts +2 -1
@@ -0,0 +1,12 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { ActionStatus, serverStatusTypes } from '../ngrx';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ActionStateSpinnerComponent implements OnInit {
6
+ status$: Observable<ActionStatus>;
7
+ serverActionStatus$: Observable<ActionStatus>;
8
+ serverStatusTypes: typeof serverStatusTypes;
9
+ ngOnInit(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionStateSpinnerComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionStateSpinnerComponent, "lib-action-state-spinner", never, { "status$": "status$"; }, {}, never, never>;
12
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "../action-state-spinner/action-state-spinner.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/material/progress-spinner";
5
+ export declare class ActionStateUiModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionStateUiModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ActionStateUiModule, [typeof i1.ActionStateSpinnerComponent], [typeof i2.CommonModule, typeof i3.MatProgressSpinnerModule], [typeof i1.ActionStateSpinnerComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<ActionStateUiModule>;
9
+ }
@@ -0,0 +1,4 @@
1
+ export * from './ngrx';
2
+ export * from './ngrx-ext/ngrx-ext.module';
3
+ export * from './action-state-ui/action-state-ui.module';
4
+ export * from './action-state-spinner/action-state-spinner.component';
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "@ngrx/store";
4
+ export declare class NgrxExtModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgrxExtModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgrxExtModule, never, [typeof i1.CommonModule, typeof i2.StoreFeatureModule], never>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<NgrxExtModule>;
8
+ }
@@ -0,0 +1,31 @@
1
+ import { Action } from '@ngrx/store';
2
+ import { EntityState } from '@ngrx/entity';
3
+ export declare class AppStatusState {
4
+ readonly ActionStatusBar: ActionStatus[];
5
+ }
6
+ export interface StatusState {
7
+ ids: string[];
8
+ entities: {
9
+ [id: string]: ActionStatus;
10
+ };
11
+ }
12
+ export declare class ActionStatus {
13
+ id: string;
14
+ displayName?: string;
15
+ status: serverStatusTypes;
16
+ responsePayload?: any;
17
+ }
18
+ export declare enum serverStatusTypes {
19
+ notStarted = 0,
20
+ inProgress = 1,
21
+ success = 2,
22
+ error = 3
23
+ }
24
+ export declare const statusAdapter: import("@ngrx/entity").EntityAdapter<ActionStatus>;
25
+ export interface State extends EntityState<ActionStatus> {
26
+ }
27
+ export declare const initialState: StatusState;
28
+ export declare const getStatusState: import("@ngrx/store").MemoizedSelector<object, State, import("@ngrx/store").DefaultProjectorFn<State>>;
29
+ export declare const selectIds: (state: object) => string[] | number[], selectEntities: (state: object) => import("@ngrx/entity").Dictionary<ActionStatus>, selectAll: (state: object) => ActionStatus[], selectTotal: (state: object) => number;
30
+ export declare const selectEntity: (id: string) => import("@ngrx/store").MemoizedSelector<object, any, import("@ngrx/store").DefaultProjectorFn<any>>;
31
+ export declare function actionStatusReducer(state: StatusState | undefined, action: Action): StatusState;
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { serverStatusTypes } from '../ngrx';
3
+ import { delayOn } from '../../rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/progress-spinner";
6
+ import * as i2 from "@angular/common";
7
+ export class ActionStateSpinnerComponent {
8
+ constructor() {
9
+ this.serverStatusTypes = serverStatusTypes;
10
+ }
11
+ ngOnInit() {
12
+ this.serverActionStatus$ = this.status$.pipe(delayOn(a => a.status === serverStatusTypes.inProgress, 500));
13
+ }
14
+ }
15
+ ActionStateSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ActionStateSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ ActionStateSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: ActionStateSpinnerComponent, selector: "lib-action-state-spinner", inputs: { status$: "status$" }, ngImport: i0, template: "<div id=\"blocker\" *ngIf=\"(serverActionStatus$ | async)?.status === serverStatusTypes.inProgress\">\n <mat-spinner class=\"spinner\" [diameter]=\"200\"></mat-spinner>\n</div>\n", styles: ["#blocker{position:fixed;top:0px;left:0px;width:100%;height:100%;background-color:#0e0d0d69;z-index:999999}.spinner{position:absolute;top:50%;left:40%;transform:translate(-50%,-50%)}\n"], components: [{ type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe } });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ActionStateSpinnerComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'lib-action-state-spinner', template: "<div id=\"blocker\" *ngIf=\"(serverActionStatus$ | async)?.status === serverStatusTypes.inProgress\">\n <mat-spinner class=\"spinner\" [diameter]=\"200\"></mat-spinner>\n</div>\n", styles: ["#blocker{position:fixed;top:0px;left:0px;width:100%;height:100%;background-color:#0e0d0d69;z-index:999999}.spinner{position:absolute;top:50%;left:40%;transform:translate(-50%,-50%)}\n"] }]
20
+ }], propDecorators: { status$: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXRlLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2FjdGlvbi1zdGF0ZS9hY3Rpb24tc3RhdGUtc3Bpbm5lci9hY3Rpb24tc3RhdGUtc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvYWN0aW9uLXN0YXRlL2FjdGlvbi1zdGF0ZS1zcGlubmVyL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQU9yQyxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBU0Usc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7S0FPdkM7SUFMQyxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUMxQyxPQUFPLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLFVBQVUsRUFBRyxHQUFHLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7O3dIQVZVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLGdHQ1Z4QyxxTEFHQTsyRkRPYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCOzhCQU0zQixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGlvblN0YXR1cywgc2VydmVyU3RhdHVzVHlwZXMgfSBmcm9tICcuLi9uZ3J4JztcbmltcG9ydCB7IGRlbGF5T24gfSBmcm9tICcuLi8uLi9yeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFjdGlvbi1zdGF0ZS1zcGlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLXN0YXRlLXNwaW5uZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvblN0YXRlU3Bpbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgc3RhdHVzJCE6IE9ic2VydmFibGU8QWN0aW9uU3RhdHVzPjtcbiAgc2VydmVyQWN0aW9uU3RhdHVzJCE6IE9ic2VydmFibGU8QWN0aW9uU3RhdHVzPjtcbiAgc2VydmVyU3RhdHVzVHlwZXMgPSBzZXJ2ZXJTdGF0dXNUeXBlcztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlcnZlckFjdGlvblN0YXR1cyQgPSB0aGlzLnN0YXR1cyQucGlwZShcbiAgICAgIGRlbGF5T24oIGEgPT4gYS5zdGF0dXMgPT09IHNlcnZlclN0YXR1c1R5cGVzLmluUHJvZ3Jlc3MgLCA1MDApXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBpZD1cImJsb2NrZXJcIiAqbmdJZj1cIihzZXJ2ZXJBY3Rpb25TdGF0dXMkIHwgYXN5bmMpPy5zdGF0dXMgPT09IHNlcnZlclN0YXR1c1R5cGVzLmluUHJvZ3Jlc3NcIj5cbiAgPG1hdC1zcGlubmVyIGNsYXNzPVwic3Bpbm5lclwiIFtkaWFtZXRlcl09XCIyMDBcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ActionStateSpinnerComponent } from '../action-state-spinner/action-state-spinner.component';
4
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
5
+ import * as i0 from "@angular/core";
6
+ export class ActionStateUiModule {
7
+ }
8
+ ActionStateUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ActionStateUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ ActionStateUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ActionStateUiModule, declarations: [ActionStateSpinnerComponent], imports: [CommonModule,
10
+ MatProgressSpinnerModule], exports: [ActionStateSpinnerComponent] });
11
+ ActionStateUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ActionStateUiModule, imports: [[
12
+ CommonModule,
13
+ MatProgressSpinnerModule,
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ActionStateUiModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [
19
+ ActionStateSpinnerComponent,
20
+ ],
21
+ imports: [
22
+ CommonModule,
23
+ MatProgressSpinnerModule,
24
+ ],
25
+ exports: [
26
+ ActionStateSpinnerComponent,
27
+ ]
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXRlLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9hY3Rpb24tc3RhdGUvYWN0aW9uLXN0YXRlLXVpL2FjdGlvbi1zdGF0ZS11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBZTlFLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFWNUIsMkJBQTJCLGFBRzNCLFlBQVk7UUFDWix3QkFBd0IsYUFHeEIsMkJBQTJCO2lIQUdsQixtQkFBbUIsWUFSckI7WUFDUCxZQUFZO1lBQ1osd0JBQXdCO1NBQ3pCOzJGQUtVLG1CQUFtQjtrQkFaL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCwyQkFBMkI7cUJBQzVCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3Rpb25TdGF0ZVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tc3RhdGUtc3Bpbm5lci9hY3Rpb24tc3RhdGUtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWN0aW9uU3RhdGVTcGlubmVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFjdGlvblN0YXRlU3Bpbm5lckNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25TdGF0ZVVpTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of action-state
3
+ */
4
+ export * from './ngrx';
5
+ export * from './ngrx-ext/ngrx-ext.module';
6
+ export * from './action-state-ui/action-state-ui.module';
7
+ export * from './action-state-spinner/action-state-spinner.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvYWN0aW9uLXN0YXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdURBQXVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFjdGlvbi1zdGF0ZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbmdyeCc7XG5leHBvcnQgKiBmcm9tICcuL25ncngtZXh0L25ncngtZXh0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1zdGF0ZS11aS9hY3Rpb24tc3RhdGUtdWkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXN0YXRlLXNwaW5uZXIvYWN0aW9uLXN0YXRlLXNwaW5uZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { actionStatusReducer } from '../ngrx';
4
+ import { StoreModule } from '@ngrx/store';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngrx/store";
7
+ export class NgrxExtModule {
8
+ }
9
+ NgrxExtModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: NgrxExtModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NgrxExtModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: NgrxExtModule, imports: [CommonModule, i1.StoreFeatureModule] });
11
+ NgrxExtModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: NgrxExtModule, imports: [[
12
+ CommonModule,
13
+ StoreModule.forFeature('ActionStatus', actionStatusReducer),
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: NgrxExtModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [],
19
+ imports: [
20
+ CommonModule,
21
+ StoreModule.forFeature('ActionStatus', actionStatusReducer),
22
+ ]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC1leHQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2FjdGlvbi1zdGF0ZS9uZ3J4LWV4dC9uZ3J4LWV4dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQVcxQyxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLFlBSnRCLFlBQVk7MkdBSUgsYUFBYSxZQUxmO1lBQ1AsWUFBWTtZQUNaLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO1NBQzVEOzJGQUVVLGFBQWE7a0JBUHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO3FCQUM1RDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYWN0aW9uU3RhdHVzUmVkdWNlciB9IGZyb20gJy4uL25ncngnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoJ0FjdGlvblN0YXR1cycsIGFjdGlvblN0YXR1c1JlZHVjZXIpLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ncnhFeHRNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { createFeatureSelector, createSelector } from '@ngrx/store';
2
+ import { createEntityAdapter } from '@ngrx/entity';
3
+ import * as _ from 'lodash';
4
+ // State
5
+ export class AppStatusState {
6
+ }
7
+ export class ActionStatus {
8
+ }
9
+ const intitalState = {
10
+ ids: [],
11
+ entities: {}
12
+ };
13
+ export var serverStatusTypes;
14
+ (function (serverStatusTypes) {
15
+ serverStatusTypes[serverStatusTypes["notStarted"] = 0] = "notStarted";
16
+ serverStatusTypes[serverStatusTypes["inProgress"] = 1] = "inProgress";
17
+ serverStatusTypes[serverStatusTypes["success"] = 2] = "success";
18
+ serverStatusTypes[serverStatusTypes["error"] = 3] = "error";
19
+ })(serverStatusTypes || (serverStatusTypes = {}));
20
+ // Entity and Selectors
21
+ export const statusAdapter = createEntityAdapter(); // { selectId: a => a.id }
22
+ export const initialState = statusAdapter.getInitialState(intitalState);
23
+ export const getStatusState = createFeatureSelector('ActionStatus');
24
+ export const { selectIds, selectEntities, selectAll, selectTotal } = statusAdapter.getSelectors(getStatusState);
25
+ export const selectEntity = (id) => createSelector(selectEntities, (entities) => entities[id]);
26
+ // Reducers
27
+ export function actionStatusReducer(state = initialState, action) {
28
+ const actionStatus = _.get(action, 'payload.actionStatus');
29
+ if (actionStatus) {
30
+ if (state.ids.find(id => id === actionStatus.id)) {
31
+ const modifiedObj = { ...state.entities[actionStatus.id] };
32
+ modifiedObj.status = actionStatus.status;
33
+ modifiedObj.responsePayload = actionStatus.responsePayload;
34
+ return statusAdapter.upsertOne(modifiedObj, state);
35
+ }
36
+ else {
37
+ return statusAdapter.addOne(actionStatus, state);
38
+ }
39
+ }
40
+ return state;
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9hY3Rpb24tc3RhdGUvbmdyeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixRQUFRO0FBQ1IsTUFBTSxPQUFPLGNBQWM7Q0FFMUI7QUFPRCxNQUFNLE9BQU8sWUFBWTtDQUt4QjtBQUVELE1BQU0sWUFBWSxHQUFnQjtJQUNoQyxHQUFHLEVBQUUsRUFBRTtJQUNQLFFBQVEsRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDM0IscUVBQWMsQ0FBQTtJQUNkLHFFQUFjLENBQUE7SUFDZCwrREFBVyxDQUFBO0lBQ1gsMkRBQVMsQ0FBQTtBQUNYLENBQUMsRUFMVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSzVCO0FBRUQsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsRUFBZ0IsQ0FBQyxDQUFDLDBCQUEwQjtBQUU1RixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWdCLGFBQWEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFckYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFRLGNBQWMsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLEVBQ1gsU0FBUyxFQUNULGNBQWMsRUFDZCxTQUFTLEVBQ1QsV0FBVyxFQUNaLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDeEQsY0FBYyxFQUNkLENBQUMsUUFBYSxFQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQ2pDLENBQUM7QUFFRixXQUFXO0FBQ1gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFFBQXFCLFlBQVksRUFBRSxNQUFjO0lBRW5GLE1BQU0sWUFBWSxHQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBRSxDQUFDO0lBRTFFLElBQUssWUFBWSxFQUFHO1FBQ2xCLElBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFHO1lBQ2xELE1BQU0sV0FBVyxHQUFHLEVBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFELFdBQVcsQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN6QyxXQUFXLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUM7WUFDM0QsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRyxLQUFLLENBQUMsQ0FBQztTQUNuRDtLQUVGO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY3JlYXRlRW50aXR5QWRhcHRlciwgRW50aXR5U3RhdGUgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG4vLyBTdGF0ZVxuZXhwb3J0IGNsYXNzIEFwcFN0YXR1c1N0YXRlIHtcbiAgcmVhZG9ubHkgQWN0aW9uU3RhdHVzQmFyITogQWN0aW9uU3RhdHVzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHVzU3RhdGUge1xuICBpZHM6IHN0cmluZ1tdO1xuICBlbnRpdGllczoge1tpZDogc3RyaW5nXTogQWN0aW9uU3RhdHVzfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvblN0YXR1cyB7XG4gIGlkITogc3RyaW5nO1xuICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgc3RhdHVzITogc2VydmVyU3RhdHVzVHlwZXM7XG4gIHJlc3BvbnNlUGF5bG9hZD86IGFueTtcbn1cblxuY29uc3QgaW50aXRhbFN0YXRlOiBTdGF0dXNTdGF0ZSA9IHtcbiAgaWRzOiBbXSxcbiAgZW50aXRpZXM6IHt9XG59O1xuXG5leHBvcnQgZW51bSBzZXJ2ZXJTdGF0dXNUeXBlcyB7XG4gIG5vdFN0YXJ0ZWQgPSAwLFxuICBpblByb2dyZXNzID0gMSxcbiAgc3VjY2VzcyA9IDIsXG4gIGVycm9yID0gM1xufVxuXG4vLyBFbnRpdHkgYW5kIFNlbGVjdG9yc1xuZXhwb3J0IGNvbnN0IHN0YXR1c0FkYXB0ZXIgPSBjcmVhdGVFbnRpdHlBZGFwdGVyPEFjdGlvblN0YXR1cz4oKTsgLy8geyBzZWxlY3RJZDogYSA9PiBhLmlkIH1cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxBY3Rpb25TdGF0dXM+IHt9XG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlOiBTdGF0dXNTdGF0ZSA9IHN0YXR1c0FkYXB0ZXIuZ2V0SW5pdGlhbFN0YXRlKGludGl0YWxTdGF0ZSk7XG5cbmV4cG9ydCBjb25zdCBnZXRTdGF0dXNTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxTdGF0ZT4oJ0FjdGlvblN0YXR1cycpO1xuZXhwb3J0IGNvbnN0IHtcbiAgc2VsZWN0SWRzLFxuICBzZWxlY3RFbnRpdGllcyxcbiAgc2VsZWN0QWxsLFxuICBzZWxlY3RUb3RhbFxufSA9IHN0YXR1c0FkYXB0ZXIuZ2V0U2VsZWN0b3JzKGdldFN0YXR1c1N0YXRlKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEVudGl0eSA9IChpZDogc3RyaW5nKSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RW50aXRpZXMsXG4gIChlbnRpdGllczogYW55KSAgPT4gZW50aXRpZXNbaWRdXG4pO1xuXG4vLyBSZWR1Y2Vyc1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvblN0YXR1c1JlZHVjZXIoc3RhdGU6IFN0YXR1c1N0YXRlID0gaW5pdGlhbFN0YXRlLCBhY3Rpb246IEFjdGlvbikge1xuXG4gIGNvbnN0IGFjdGlvblN0YXR1czogQWN0aW9uU3RhdHVzID0gXy5nZXQoYWN0aW9uLCAncGF5bG9hZC5hY3Rpb25TdGF0dXMnICk7XG5cbiAgaWYgKCBhY3Rpb25TdGF0dXMgKSB7XG4gICAgaWYgKCBzdGF0ZS5pZHMuZmluZChpZCA9PiBpZCA9PT0gYWN0aW9uU3RhdHVzLmlkKSApIHtcbiAgICAgIGNvbnN0IG1vZGlmaWVkT2JqID0gey4uLnN0YXRlLmVudGl0aWVzW2FjdGlvblN0YXR1cy5pZF0gfTtcbiAgICAgIG1vZGlmaWVkT2JqLnN0YXR1cyA9IGFjdGlvblN0YXR1cy5zdGF0dXM7XG4gICAgICBtb2RpZmllZE9iai5yZXNwb25zZVBheWxvYWQgPSBhY3Rpb25TdGF0dXMucmVzcG9uc2VQYXlsb2FkO1xuICAgICAgcmV0dXJuIHN0YXR1c0FkYXB0ZXIudXBzZXJ0T25lKCBtb2RpZmllZE9iaiwgc3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdHVzQWRhcHRlci5hZGRPbmUoYWN0aW9uU3RhdHVzICwgc3RhdGUpO1xuICAgIH1cblxuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==
@@ -14,4 +14,5 @@ export * from './table-builder/directives';
14
14
  export { FilterType } from './table-builder/enums/filterTypes';
15
15
  export * from './rxjs';
16
16
  export * from './utilities';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFHckMsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsc0RBQXNELENBQUM7QUFFckUsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHN0QsY0FBYyxRQUFRLENBQUE7QUFFdEIsY0FBYyxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGh0dHAtcmVxdWVzdC1zdGF0ZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1yZXF1ZXN0LXN0YXRlL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXJlcXVlc3Qtc3RhdGUvcnhqcyc7XG5leHBvcnQgKiBmcm9tICcuL2h0dHAtcmVxdWVzdC1zdGF0ZSc7XG5cblxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL3RhYmxlLWJ1aWxkZXIubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5cbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9jbGFzc2VzL01hdFRhYmxlT2JzZXJ2YWJsZURhdGFTb3VyY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NsYXNzZXMvdGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzJztcblxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCB7RmlsdGVyVHlwZX0gZnJvbSAnLi90YWJsZS1idWlsZGVyL2VudW1zL2ZpbHRlclR5cGVzJztcblxuXG5leHBvcnQgKiBmcm9tICcuL3J4anMnXG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzJ1xuIl19
17
+ export * from './action-state';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFHckMsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsc0RBQXNELENBQUM7QUFFckUsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHN0QsY0FBYyxRQUFRLENBQUE7QUFFdEIsY0FBYyxhQUFhLENBQUE7QUFFM0IsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgaHR0cC1yZXF1ZXN0LXN0YXRlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2h0dHAtcmVxdWVzdC1zdGF0ZS9yeGpzJztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1yZXF1ZXN0LXN0YXRlJztcblxuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvdGFibGUtYnVpbGRlci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcblxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NsYXNzZXMvTWF0VGFibGVPYnNlcnZhYmxlRGF0YVNvdXJjZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9jbGFzc2VzL3RhYmxlLWJ1aWxkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9kaXJlY3RpdmVzJztcblxuZXhwb3J0IHtGaWx0ZXJUeXBlfSBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvZW51bXMvZmlsdGVyVHlwZXMnO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vcnhqcydcblxuZXhwb3J0ICogZnJvbSAnLi91dGlsaXRpZXMnXG5cbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXN0YXRlJztcbiJdfQ==
@@ -1,6 +1,5 @@
1
1
  import { flatten } from 'lodash';
2
- import { Observable, combineLatest, Subscription } from 'rxjs';
3
- import { filter, first, map, pairwise, startWith } from 'rxjs/operators';
2
+ import { filter, first, map, pairwise, startWith, Observable, combineLatest, Subscription, concatMap, merge, of, delay } from 'rxjs';
4
3
  export const onceWhen = (predicate) => (src) => {
5
4
  return src.pipe(filter(predicate), first());
6
5
  };
@@ -77,4 +76,16 @@ export function notNull() {
77
76
  return source.pipe(filter((o) => !!o));
78
77
  };
79
78
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy1vcGVyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvcnhqcy9yeGpzLW9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBOEMsTUFBTSxNQUFNLENBQUM7QUFDM0csT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBUSxTQUFTLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUksU0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFrQixFQUFrQixFQUFFO0lBQzdGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBTyxPQUFzQixFQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUNyRixNQUFNLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUUsQ0FBRSxDQUFDO0FBRWhELE1BQU0sQ0FBRSxNQUFNLFdBQVcsR0FBRyxDQUFJLFVBQStCLEVBQUcsRUFBRSxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFLENBQy9GLE1BQU0sQ0FBQyxJQUFJLENBQUUsR0FBRyxDQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFFLENBQUM7QUFFdEQsTUFBTSxVQUFVLE1BQU0sQ0FBZ0Is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QyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsS0FBSztvQkFDUixJQUFHLFFBQVEsRUFBRTt3QkFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO3FCQUNsQjt5QkFBTTt3QkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN2QjtnQkFDSCxDQUFDO2dCQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTthQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNKLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBSSxhQUFpQjtJQUNyRCxPQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU87SUFDckIsT0FBUSxDQUFDLE1BQXdDLEVBQUUsRUFBRTtRQUNuRCxPQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBdUIsRUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUE7SUFDekUsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24sIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCBwYWlyd2lzZSwgc2Nhbiwgc3RhcnRXaXRoLCBzd2l0Y2hBbGwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IG9uY2VXaGVuID0gPFQ+KHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KSA9PiAoc3JjOiBPYnNlcnZhYmxlPFQ+KSA6IE9ic2VydmFibGU8VD4gPT4ge1xuICByZXR1cm4gc3JjLnBpcGUoZmlsdGVyKHByZWRpY2F0ZSksZmlyc3QoKSk7XG59XG5cbmV4cG9ydCBjb25zdCBtYXBBcnJheSA9IDxULCBVPihtYXBGdW5jOiAoc3JjOiBUKSA9PiBVICkgPT4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUW10+KSA9PlxuICBzb3VyY2UucGlwZSggbWFwKCBzcmMgPT4gc3JjLm1hcChtYXBGdW5jKSApICk7XG5cbmV4cG9ydCAgY29uc3QgZmlsdGVyQXJyYXkgPSA8VD4oZmlsdGVyRnVuYzogKHNyYzogVCkgPT4gYm9vbGVhbiApID0+IChzb3VyY2U6IE9ic2VydmFibGU8VFtdPikgPT5cbiAgc291cmNlLnBpcGUoIG1hcCggc3JjID0+IHNyYy5maWx0ZXIoZmlsdGVyRnVuYykgKSApO1xuXG5leHBvcnQgZnVuY3Rpb24gb25XYWl0PFQsViBleHRlbmRzIFQ+KHZhbDogVikgOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihzdWJzY3JpYmVyID0+IHtcbiAgICAgIGxldCBlbWl0dGVkID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYoIWVtaXR0ZWQpIHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsKTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh4KSB7IGVtaXR0ZWQgPSB0cnVlOyBzdWJzY3JpYmVyLm5leHQoeCkgfSxcbiAgICAgICAgZXJyb3IoZXJyKSB7IGVtaXR0ZWQgPSB0cnVlOyBzdWJzY3JpYmVyLmVycm9yKGVycikgfSxcbiAgICAgICAgY29tcGxldGUoKSB7IGVtaXR0ZWQgPSB0cnVlOyBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7IH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVBcnJheXMgPSA8VD4oc291cmNlczogT2JzZXJ2YWJsZTxUW10+W10pOiBPYnNlcnZhYmxlPFRbXT4gPT4ge1xuICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICBzb3VyY2VzLm1hcCggc3JjID0+IHNyYy5waXBlKG9uV2FpdChbXSkpKVxuICApLnBpcGUoXG4gICAgbWFwKCByZXMgPT4gZmxhdHRlbihyZXMpIClcbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hPZmYoIHN3aXRjaFNvdXJjZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgZGVmYXVsdFN0YXRlOiBib29sZWFuID0gdHJ1ZSkge1xuICByZXR1cm4gPFQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NpYmVyID0+IHtcbiAgICAgIGxldCBpc09uID0gZGVmYXVsdFN0YXRlO1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZCggc3dpdGNoU291cmNlLnN1YnNjcmliZSggb24gPT4gaXNPbiA9IG9uICkpO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZChzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh2YWx1ZSkge1xuICAgICAgICAgIGlmKGlzT24pIHtcbiAgICAgICAgICAgIHN1YnNjaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiBzdWJzY2liZXIuZXJyb3IoZXJyb3IpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gc3Vic2NpYmVyLmNvbXBsZXRlKClcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNraXBPbmVXaGVuKCBza2lwcGVyOiBPYnNlcnZhYmxlPGFueT4gKSB7XG4gIHJldHVybiA8VD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA6IE9ic2VydmFibGU8VD4gPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzcmliZXIgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgbGV0IHNraXBOZXh0ID0gZmFsc2U7XG4gICAgICBzdWJzY3JpcHRpb24uYWRkKHNraXBwZXIuc3Vic2NyaWJlKCBfID0+IHNraXBOZXh0ID0gdHJ1ZSkpO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZChzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh2YWx1ZSkge1xuICAgICAgICAgIGlmKHNraXBOZXh0KSB7XG4gICAgICAgICAgICBza2lwTmV4dCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdWJzcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gc3Vic3JpYmVyLmVycm9yKGVycm9yKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHN1YnNyaWJlci5jb21wbGV0ZSgpXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aW91c0FuZEN1cnJlbnQ8VD4oc3RhcnRpbmdWYWx1ZSA6IFQpIDogT3BlcmF0b3JGdW5jdGlvbjxULCBbVCwgVF0+IHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoc3RhcnRXaXRoKHN0YXJ0aW5nVmFsdWUpLCBwYWlyd2lzZSgpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90TnVsbDxUPigpOiBPcGVyYXRvckZ1bmN0aW9uPChUIHwgbnVsbCB8IHVuZGVmaW5lZCksIFQ+IHtcbiAgcmV0dXJuICAoc291cmNlOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPikgPT4ge1xuICAgIHJldHVybiAgc291cmNlLnBpcGUoZmlsdGVyKCAobzogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBvIGlzIFQgPT4gISFvKSApXG4gIH1cbn1cblxuIl19
79
+ export function delayOn(predicate, delayTime) {
80
+ return (src) => {
81
+ return src.pipe(concatMap(r => {
82
+ if (predicate(r)) {
83
+ return merge(of({ r }), of(null).pipe(delay(delayTime))).pipe(notNull(), map(d => d.r));
84
+ }
85
+ else {
86
+ return of(r);
87
+ }
88
+ }));
89
+ };
90
+ }
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy1vcGVyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvcnhqcy9yeGpzLW9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUNMLEdBQUcsRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEVBQ2IsWUFBWSxFQUdaLFNBQVMsRUFDVCxLQUFLLEVBQ0wsRUFBRSxFQUNGLEtBQUssRUFDTixNQUFNLE1BQU0sQ0FBQztBQUdkLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFJLFNBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBa0IsRUFBa0IsRUFBRTtJQUM3RixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQU8sT0FBc0IsRUFBRyxFQUFFLENBQUMsQ0FBQyxNQUF1QixFQUFFLEVBQUUsQ0FDckYsTUFBTSxDQUFDLElBQUksQ0FBRSxHQUFHLENBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFFLENBQUUsQ0FBQztBQUVoRCxNQUFNLENBQUUsTUFBTSxXQUFXLEdBQUcsQ0FBSSxVQUErQixFQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUMvRixNQUFNLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBRSxDQUFDO0FBRXRELE1BQU0sVUFBVSxNQUFNLENB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LEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ1QsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDaEMsQ0FBQyxJQUFJLENBQ0osT0FBTyxFQUFFLEVBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNkLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgZmlsdGVyLFxuICBmaXJzdCxcbiAgbWFwLFxuICBwYWlyd2lzZSxcbiAgc3RhcnRXaXRoLFxuICBPYnNlcnZhYmxlLFxuICBjb21iaW5lTGF0ZXN0LFxuICBTdWJzY3JpcHRpb24sXG4gIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbixcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgY29uY2F0TWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIGRlbGF5XG59IGZyb20gJ3J4anMnO1xuXG5cbmV4cG9ydCBjb25zdCBvbmNlV2hlbiA9IDxUPihwcmVkaWNhdGU6IFByZWRpY2F0ZTxUPikgPT4gKHNyYzogT2JzZXJ2YWJsZTxUPikgOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgcmV0dXJuIHNyYy5waXBlKGZpbHRlcihwcmVkaWNhdGUpLGZpcnN0KCkpO1xufVxuXG5leHBvcnQgY29uc3QgbWFwQXJyYXkgPSA8VCwgVT4obWFwRnVuYzogKHNyYzogVCkgPT4gVSApID0+IChzb3VyY2U6IE9ic2VydmFibGU8VFtdPikgPT5cbiAgc291cmNlLnBpcGUoIG1hcCggc3JjID0+IHNyYy5tYXAobWFwRnVuYykgKSApO1xuXG5leHBvcnQgIGNvbnN0IGZpbHRlckFycmF5ID0gPFQ+KGZpbHRlckZ1bmM6IChzcmM6IFQpID0+IGJvb2xlYW4gKSA9PiAoc291cmNlOiBPYnNlcnZhYmxlPFRbXT4pID0+XG4gIHNvdXJjZS5waXBlKCBtYXAoIHNyYyA9PiBzcmMuZmlsdGVyKGZpbHRlckZ1bmMpICkgKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG9uV2FpdDxULFYgZXh0ZW5kcyBUPih2YWw6IFYpIDogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oc3Vic2NyaWJlciA9PiB7XG4gICAgICBsZXQgZW1pdHRlZCA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmKCFlbWl0dGVkKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgICAgc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQoeCkgeyBlbWl0dGVkID0gdHJ1ZTsgc3Vic2NyaWJlci5uZXh0KHgpIH0sXG4gICAgICAgIGVycm9yKGVycikgeyBlbWl0dGVkID0gdHJ1ZTsgc3Vic2NyaWJlci5lcnJvcihlcnIpIH0sXG4gICAgICAgIGNvbXBsZXRlKCkgeyBlbWl0dGVkID0gdHJ1ZTsgc3Vic2NyaWJlci5jb21wbGV0ZSgpOyB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lQXJyYXlzID0gPFQ+KHNvdXJjZXM6IE9ic2VydmFibGU8VFtdPltdKTogT2JzZXJ2YWJsZTxUW10+ID0+IHtcbiAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgc291cmNlcy5tYXAoIHNyYyA9PiBzcmMucGlwZShvbldhaXQoW10pKSlcbiAgKS5waXBlKFxuICAgIG1hcCggcmVzID0+IGZsYXR0ZW4ocmVzKSApXG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc3dpdGNoT2ZmKCBzd2l0Y2hTb3VyY2U6IE9ic2VydmFibGU8Ym9vbGVhbj4sIGRlZmF1bHRTdGF0ZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgcmV0dXJuIDxUPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIDogT2JzZXJ2YWJsZTxUPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjaWJlciA9PiB7XG4gICAgICBsZXQgaXNPbiA9IGRlZmF1bHRTdGF0ZTtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICAgIHN1YnNjcmlwdGlvbi5hZGQoIHN3aXRjaFNvdXJjZS5zdWJzY3JpYmUoIG9uID0+IGlzT24gPSBvbiApKTtcbiAgICAgIHN1YnNjcmlwdGlvbi5hZGQoc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQodmFsdWUpIHtcbiAgICAgICAgICBpZihpc09uKSB7XG4gICAgICAgICAgICBzdWJzY2liZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gc3Vic2NpYmVyLmVycm9yKGVycm9yKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHN1YnNjaWJlci5jb21wbGV0ZSgpXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBza2lwT25lV2hlbiggc2tpcHBlcjogT2JzZXJ2YWJsZTxhbnk+ICkge1xuICByZXR1cm4gPFQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic3JpYmVyID0+IHtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICAgIGxldCBza2lwTmV4dCA9IGZhbHNlO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZChza2lwcGVyLnN1YnNjcmliZSggXyA9PiBza2lwTmV4dCA9IHRydWUpKTtcbiAgICAgIHN1YnNjcmlwdGlvbi5hZGQoc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQodmFsdWUpIHtcbiAgICAgICAgICBpZihza2lwTmV4dCkge1xuICAgICAgICAgICAgc2tpcE5leHQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3Vic3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHN1YnNyaWJlci5lcnJvcihlcnJvciksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBzdWJzcmliZXIuY29tcGxldGUoKVxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJldmlvdXNBbmRDdXJyZW50PFQ+KHN0YXJ0aW5nVmFsdWUgOiBUKSA6IE9wZXJhdG9yRnVuY3Rpb248VCwgW1QsIFRdPiB7XG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHN0YXJ0V2l0aChzdGFydGluZ1ZhbHVlKSwgcGFpcndpc2UoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vdE51bGw8VD4oKTogT3BlcmF0b3JGdW5jdGlvbjwoVCB8IG51bGwgfCB1bmRlZmluZWQpLCBUPiB7XG4gIHJldHVybiAgKHNvdXJjZTogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pID0+IHtcbiAgICByZXR1cm4gIHNvdXJjZS5waXBlKGZpbHRlciggKG86IFQgfCBudWxsIHwgdW5kZWZpbmVkKTogbyBpcyBUID0+ICEhbykgKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxheU9uPFQ+KHByZWRpY2F0ZTogKHQ6IFQpID0+IGJvb2xlYW4sIGRlbGF5VGltZTogbnVtYmVyKSB7XG4gIHJldHVybiAoc3JjOiBPYnNlcnZhYmxlPFQ+KSA9PiB7XG4gICAgcmV0dXJuIHNyYy5waXBlKFxuICAgICAgY29uY2F0TWFwKHIgPT4ge1xuICAgICAgICBpZiAocHJlZGljYXRlKHIpKSB7XG4gICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgb2YoeyByIH0pLFxuICAgICAgICAgICAgb2YobnVsbCkucGlwZShkZWxheShkZWxheVRpbWUpKVxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG5vdE51bGwoKSxcbiAgICAgICAgICAgIG1hcChkID0+IGQucilcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihyKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9O1xufVxuIl19
@@ -15,8 +15,12 @@ export class DataFilter {
15
15
  appendFilters(filters$) {
16
16
  return new DataFilter(combineArrays([
17
17
  this.filters$ ?? of([]),
18
- filters$.pipe(map(fltrs => fltrs.filter(f => f.active).map(filter => createFilterFunc(filter))))
18
+ filters$.pipe(map(fltrs => fltrs
19
+ // we only want to remove it if it was specifically set to false
20
+ // as apposed to falsy
21
+ .filter(f => f.active !== false)
22
+ .map(filter => createFilterFunc(filter))))
19
23
  ]));
20
24
  }
21
25
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2RhdGEtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsUUFBb0Q7UUFBcEQsYUFBUSxHQUFSLFFBQVEsQ0FBNEM7SUFDeEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFXLEVBQUUsT0FBcUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixPQUFPLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUNwRCxXQUFXLENBQUMsRUFBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFvRDtRQUNoRSxPQUFPLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tYmluZUFycmF5cyB9IGZyb20gJy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY3JlYXRlRmlsdGVyRnVuYywgQ3VzdG9tRmlsdGVyLCBGaWx0ZXJJbmZvIH0gZnJvbSAnLi9maWx0ZXItaW5mbyc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhRmlsdGVyPFQgPSBhbnk+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlcnMkOiBPYnNlcnZhYmxlPCBBcnJheTwgKHZhbDogYW55KSA9PiBib29sZWFuPj4gKSB7XG4gIH1cblxuICBmaWx0ZXIoZGF0YTogYW55W10sIGZpbHRlcnM6IEFycmF5PCh2YWw6IGFueSkgPT4gYm9vbGVhbj4gKTogYW55W10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlciggciA9PiBmaWx0ZXJzLmV2ZXJ5KCBmbHRyID0+IGZsdHIocikpICk7XG4gIH1cblxuICBmaWx0ZXJEYXRhKGRhdGEkOiBPYnNlcnZhYmxlPFRbXT4pIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZGF0YSQsIHRoaXMuZmlsdGVycyRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YSwgZmlsdGVyc10pID0+IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlcnMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIGFwcGVuZEZpbHRlcnMoZmlsdGVycyQ6IE9ic2VydmFibGU8KEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIgKVtdPikgOiBEYXRhRmlsdGVyIHtcbiAgICByZXR1cm4gbmV3IERhdGFGaWx0ZXIoY29tYmluZUFycmF5cyhbXG4gICAgICB0aGlzLmZpbHRlcnMkID8/IG9mKFtdKSxcbiAgICAgIGZpbHRlcnMkLnBpcGUobWFwKGZsdHJzID0+IGZsdHJzLmZpbHRlciggZiA9PiBmLmFjdGl2ZSApLm1hcChmaWx0ZXIgPT4gY3JlYXRlRmlsdGVyRnVuYyhmaWx0ZXIpKSkpXG4gICAgXSkpO1xuICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2RhdGEtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsUUFBb0Q7UUFBcEQsYUFBUSxHQUFSLFFBQVEsQ0FBNEM7SUFDeEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFXLEVBQUUsT0FBcUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixPQUFPLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUNwRCxXQUFXLENBQUMsRUFBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFvRDtRQUNoRSxPQUFPLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLO2dCQUM1QixnRUFBZ0U7Z0JBQ2hFLHNCQUFzQjtpQkFDckIsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUU7aUJBQ2pDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tYmluZUFycmF5cyB9IGZyb20gJy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY3JlYXRlRmlsdGVyRnVuYywgQ3VzdG9tRmlsdGVyLCBGaWx0ZXJJbmZvIH0gZnJvbSAnLi9maWx0ZXItaW5mbyc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhRmlsdGVyPFQgPSBhbnk+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlcnMkOiBPYnNlcnZhYmxlPCBBcnJheTwgKHZhbDogYW55KSA9PiBib29sZWFuPj4gKSB7XG4gIH1cblxuICBmaWx0ZXIoZGF0YTogYW55W10sIGZpbHRlcnM6IEFycmF5PCh2YWw6IGFueSkgPT4gYm9vbGVhbj4gKTogYW55W10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlciggciA9PiBmaWx0ZXJzLmV2ZXJ5KCBmbHRyID0+IGZsdHIocikpICk7XG4gIH1cblxuICBmaWx0ZXJEYXRhKGRhdGEkOiBPYnNlcnZhYmxlPFRbXT4pIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZGF0YSQsIHRoaXMuZmlsdGVycyRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YSwgZmlsdGVyc10pID0+IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlcnMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIGFwcGVuZEZpbHRlcnMoZmlsdGVycyQ6IE9ic2VydmFibGU8KEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIgKVtdPikgOiBEYXRhRmlsdGVyIHtcbiAgICByZXR1cm4gbmV3IERhdGFGaWx0ZXIoY29tYmluZUFycmF5cyhbXG4gICAgICB0aGlzLmZpbHRlcnMkID8/IG9mKFtdKSxcbiAgICAgIGZpbHRlcnMkLnBpcGUobWFwKGZsdHJzID0+IGZsdHJzXG4gICAgICAgICAgLy8gd2Ugb25seSB3YW50IHRvIHJlbW92ZSBpdCBpZiBpdCB3YXMgc3BlY2lmaWNhbGx5IHNldCB0byBmYWxzZVxuICAgICAgICAgIC8vIGFzIGFwcG9zZWQgdG8gZmFsc3lcbiAgICAgICAgICAuZmlsdGVyKCBmID0+IGYuYWN0aXZlICE9PSBmYWxzZSApXG4gICAgICAgICAgLm1hcChmaWx0ZXIgPT4gY3JlYXRlRmlsdGVyRnVuYyhmaWx0ZXIpKSkpXG4gICAgXSkpO1xuICB9XG59XG4iXX0=
@@ -12,12 +12,14 @@ import * as i4 from "../../services/table-template-service";
12
12
  import * as i5 from "@angular/material/sort";
13
13
  import * as i6 from "../header-menu/header-menu.component";
14
14
  import * as i7 from "@ngrx/component";
15
- import * as i8 from "../../../utilities/directives/styler";
16
- import * as i9 from "@angular/common";
17
- import * as i10 from "@angular/cdk/drag-drop";
18
- import * as i11 from "../../directives/resize-column.directive";
19
- import * as i12 from "../../../utilities/pipes/space-case.pipes";
20
- import * as i13 from "../../pipes/column-total.pipe";
15
+ import * as i8 from "@angular/material/tooltip";
16
+ import * as i9 from "../../../utilities/directives/conditional-classes.directive";
17
+ import * as i10 from "../../../utilities/directives/styler";
18
+ import * as i11 from "@angular/common";
19
+ import * as i12 from "@angular/cdk/drag-drop";
20
+ import * as i13 from "../../directives/resize-column.directive";
21
+ import * as i14 from "../../../utilities/pipes/space-case.pipes";
22
+ import * as i15 from "../../pipes/column-total.pipe";
21
23
  export class ColumnBuilderComponent {
22
24
  constructor(transformCreator, table, state, templateService) {
23
25
  this.transformCreator = transformCreator;
@@ -49,6 +51,18 @@ export class ColumnBuilderComponent {
49
51
  return this.customCell?.columnDef?.cell?.template ?? this.bodyTemplate;
50
52
  }
51
53
  ngOnInit() {
54
+ if (this.metaData.fieldType === FieldType.Currency) {
55
+ this.classes = {
56
+ ['negative-currency']: (element) => element[this.metaData.key] < 0,
57
+ ...this.metaData.classes
58
+ };
59
+ }
60
+ else {
61
+ this.classes = this.metaData.classes;
62
+ }
63
+ if (this.metaData.fieldType === FieldType.Boolean) {
64
+ this.metaData = { ...this.metaData, useIcon: true };
65
+ }
52
66
  this.filter = { key: this.metaData.key, fieldType: this.metaData.fieldType };
53
67
  const width$ = this.state.getUserDefinedWidth$(this.metaData.key).pipe(previousAndCurrent(0), map(this.mapWidth));
54
68
  const fullMetaStyles = this.metaData.additional?.styles ?? {};
@@ -75,14 +89,14 @@ export class ColumnBuilderComponent {
75
89
  }
76
90
  }
77
91
  ColumnBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ColumnBuilderComponent, deps: [{ token: i1.TransformCreator }, { token: i2.MatTable }, { token: i3.TableStore }, { token: i4.TableTemplateService }], target: i0.ɵɵFactoryTarget.Component });
78
- ColumnBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: ColumnBuilderComponent, selector: "tb-column-builder", inputs: { metaData: "metaData", customCell: "customCell", data$: "data$" }, viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\">\n\n <ng-template #body let-element='element' >\n\n <mat-cell [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)'>\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"\n !element.isGroupFooter &&\n metaData.fieldType !== FieldType.Expression &&\n (element[metaData.key] == null) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\n \"> - </span>\n </mat-cell>\n\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref >\n <div class=\"header-container\" cdkDragHandle>\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu \n *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async);\" #menu [metaData]='metaData' [filter]='filter' >\n </tb-header-menu>\n </div>\n </mat-header-cell>\n\n </ng-template>\n\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], components: [{ type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i6.HeaderMenuComponent, selector: "tb-header-menu", inputs: ["filter", "metaData"] }], directives: [{ type: i7.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.StylerDirective, selector: "[styler]", inputs: ["styler"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i10.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i11.ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { type: i10.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { type: i2.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "spaceCase": i12.SpaceCasePipe, "async": i9.AsyncPipe, "currency": i9.CurrencyPipe, "columnTotal": i13.ColumnTotalPipe, "number": i9.DecimalPipe }, viewProviders: [
92
+ ColumnBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: ColumnBuilderComponent, selector: "tb-column-builder", inputs: { metaData: "metaData", customCell: "customCell", data$: "data$" }, viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\" >\n\n <ng-template #body let-element='element' >\n <mat-cell [matTooltip]=\"metaData.toolTip ?? ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)' >\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"\n !element.isGroupFooter &&\n metaData.fieldType !== FieldType.Expression &&\n (element[metaData.key] == null) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\n \"> - </span>\n </mat-cell>\n\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref >\n <div class=\"header-container\" cdkDragHandle>\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu\n *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async);\" #menu [metaData]='metaData' [filter]='filter' >\n </tb-header-menu>\n </div>\n </mat-header-cell>\n\n </ng-template>\n\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], components: [{ type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i6.HeaderMenuComponent, selector: "tb-header-menu", inputs: ["filter", "metaData"] }], directives: [{ type: i7.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9.ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { type: i10.StylerDirective, selector: "[styler]", inputs: ["styler"] }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i12.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i13.ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { type: i12.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { type: i2.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "spaceCase": i14.SpaceCasePipe, "async": i11.AsyncPipe, "currency": i11.CurrencyPipe, "columnTotal": i15.ColumnTotalPipe, "number": i11.DecimalPipe }, viewProviders: [
79
93
  { provide: CDK_DROP_LIST, useExisting: CdkDropList },
80
94
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ColumnBuilderComponent, decorators: [{
82
96
  type: Component,
83
97
  args: [{ selector: 'tb-column-builder', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
84
98
  { provide: CDK_DROP_LIST, useExisting: CdkDropList },
85
- ], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\">\n\n <ng-template #body let-element='element' >\n\n <mat-cell [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)'>\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"\n !element.isGroupFooter &&\n metaData.fieldType !== FieldType.Expression &&\n (element[metaData.key] == null) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\n \"> - </span>\n </mat-cell>\n\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref >\n <div class=\"header-container\" cdkDragHandle>\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu \n *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async);\" #menu [metaData]='metaData' [filter]='filter' >\n </tb-header-menu>\n </div>\n </mat-header-cell>\n\n </ng-template>\n\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
99
+ ], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\" >\n\n <ng-template #body let-element='element' >\n <mat-cell [matTooltip]=\"metaData.toolTip ?? ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)' >\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"\n !element.isGroupFooter &&\n metaData.fieldType !== FieldType.Expression &&\n (element[metaData.key] == null) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\n \"> - </span>\n </mat-cell>\n\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref >\n <div class=\"header-container\" cdkDragHandle>\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu\n *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async);\" #menu [metaData]='metaData' [filter]='filter' >\n </tb-header-menu>\n </div>\n </mat-header-cell>\n\n </ng-template>\n\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
86
100
  }], ctorParameters: function () { return [{ type: i1.TransformCreator }, { type: i2.MatTable }, { type: i3.TableStore }, { type: i4.TableTemplateService }]; }, propDecorators: { metaData: [{
87
101
  type: Input
88
102
  }], customCell: [{
@@ -96,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
96
110
  type: ViewChild,
97
111
  args: ['body']
98
112
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFlLFNBQVMsRUFBc0QsTUFBTSxlQUFlLENBQUM7QUFDdEosT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSx5QkFBeUIsQ0FBQztBQU1qRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBdUJwRSxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQ1UsZ0JBQWtDLEVBQ2xDLEtBQW9CLEVBQ3JCLEtBQWlCLEVBQ2hCLGVBQXFDO1FBSHJDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNyQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFzQjtRQWxCL0MsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQThEdEIsYUFBUSxHQUFHLENBQUMsQ0FBQyx3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QUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVksRUFBRSxHQUFXO1FBQ25DLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7bUhBN0RVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGdMQU90QixZQUFZLHVJQ3pDekIsMnFHQXdFZSx3aUZEMUNFO1FBQ2IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7S0FDckQ7MkZBRVUsc0JBQXNCO2tCQVRsQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQzt3QkFDYixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtxQkFDckQ7MExBS1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFbUIsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUtKLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPbkluaXQsIEhvc3RCaW5kaW5nLCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xuaW1wb3J0IHsgVHJhbnNmb3JtQ3JlYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zZm9ybS1jcmVhdG9yJztcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYmxlVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUtdGVtcGxhdGUtc2VydmljZSc7XG5pbXBvcnQgeyBwcmV2aW91c0FuZEN1cnJlbnQgfSBmcm9tICcuLi8uLi8uLi9yeGpzL3J4anMtb3BlcmF0b3JzJztcbmltcG9ydCB7IENka0Ryb3BMaXN0LCBDREtfRFJPUF9MSVNUIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cblxuaW50ZXJmYWNlIHdpZHRoU3R5bGUge1xuICAgIGZsZXg/OiBzdHJpbmc7XG4gICAgbWF4V2lkdGg/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBhbGxTdHlsZXMge1xuICBib2R5OiB3aWR0aFN0eWxlO1xuICBoZWFkZXI6IHdpZHRoU3R5bGU7XG4gIGZvb3Rlcjogd2lkdGhTdHlsZTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGItY29sdW1uLWJ1aWxkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQ0RLX0RST1BfTElTVCwgdXNlRXhpc3Rpbmc6IENka0Ryb3BMaXN0IH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YVxuICBASW5wdXQoKSBjdXN0b21DZWxsITogQ3VzdG9tQ2VsbERpcmVjdGl2ZTtcbiAgQElucHV0KCkgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xuICBvdXRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgaW5uZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIHRyYW5zZm9ybSE6IChvOiBhbnksIC4uLmFyZ3M6IGFueVtdKT0+IGFueSA7XG5cbiAgQFZpZXdDaGlsZCgnYm9keScpIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zZm9ybUNyZWF0b3I6IFRyYW5zZm9ybUNyZWF0b3IsXG4gICAgcHJpdmF0ZSB0YWJsZTogTWF0VGFibGU8YW55PixcbiAgICBwdWJsaWMgc3RhdGU6IFRhYmxlU3RvcmUsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRhYmxlVGVtcGxhdGVTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgZ2V0SW5uZXJUZW1wbGF0ZSgpIDpUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBpZih0aGlzLm1ldGFEYXRhLnRlbXBsYXRlKSByZXR1cm4gdGhpcy5tZXRhRGF0YS50ZW1wbGF0ZTtcbiAgICBpZiAodGhpcy5jdXN0b21DZWxsPy5UZW1wbGF0ZVJlZikgIHJldHVybiB0aGlzLmN1c3RvbUNlbGwuVGVtcGxhdGVSZWY7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlKHRoaXMubWV0YURhdGEuZmllbGRUeXBlKTtcbiAgfVxuICBzaG93ZmlsdGVycyQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRPdXRlclRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlciA9IHtrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlfTtcbiAgICBjb25zdCB3aWR0aCQgPSB0aGlzLnN0YXRlLmdldFVzZXJEZWZpbmVkV2lkdGgkKHRoaXMubWV0YURhdGEua2V5KS5waXBlKFxuICAgICAgcHJldmlvdXNBbmRDdXJyZW50KDApLFxuICAgICAgbWFwKHRoaXMubWFwV2lkdGgpLFxuICAgICk7XG4gICAgY29uc3QgZnVsbE1ldGFTdHlsZXMgPSB0aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LnN0eWxlcyA/PyB7fTtcbiAgICB0aGlzLnN0eWxlcyQgPSB3aWR0aCQucGlwZShtYXAod2lkdGggPT4ge1xuICAgICAgY29uc3Qgc3R5bGVzOiBhbGxTdHlsZXMgPSB7XG4gICAgICAgIGhlYWRlciA6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmhlYWRlciwgLi4ud2lkdGh9LFxuICAgICAgICBmb290ZXI6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmZvb3RlciwgLi4ud2lkdGh9LFxuICAgICAgICBib2R5OiB7Li4uZnVsbE1ldGFTdHlsZXMsLi4udGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0U3R5bGVzPy5ib2R5LCAuLi53aWR0aH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICB9KSk7XG4gICAgdGhpcy5zaG93ZmlsdGVycyQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgfHwgdGhpcy5tZXRhRGF0YS5ub0ZpbHRlcikpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm91dGVyVGVtcGxhdGUgPSB0aGlzLmdldE91dGVyVGVtcGxhdGUoKTtcbiAgICB0aGlzLmlubmVyVGVtcGxhdGUgPSB0aGlzLmdldElubmVyVGVtcGxhdGUoKTtcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ3JlYXRvci5jcmVhdGVUcmFuc2Zvcm1lcih0aGlzLm1ldGFEYXRhKTtcbiAgICB0aGlzLnRhYmxlLmFkZENvbHVtbkRlZih0aGlzLmNvbHVtbkRlZik7XG4gIH1cblxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5tZXRhRGF0YS5jbGljaykge1xuICAgICAgdGhpcy5tZXRhRGF0YS5jbGljayhlbGVtZW50LGtleSk7XG4gICAgfVxuICB9XG5cbiAgbWFwV2lkdGggPSAoW3ByZXZpb3VzVXNlckRlZmluZWRXaWR0aCwgY3VycmVudFVzZXJEZWZpbmVkV2lkdGhdIDogW251bWJlciwgbnVtYmVyXSkgOiB3aWR0aFN0eWxlID0+IHtcblxuICAgIGlmKCBjdXJyZW50VXNlckRlZmluZWRXaWR0aCApe1xuICAgICAgcmV0dXJuICh7ZmxleDpgMCAwICR7Y3VycmVudFVzZXJEZWZpbmVkV2lkdGh9cHhgLCBtYXhXaWR0aDonbm9uZSd9KTtcbiAgICB9IGlmKCB3YXNSZXNldCgpICl7XG4gICAgICByZXR1cm4gKHtmbGV4OicxJ30pO1xuICAgIH1cbiAgICByZXR1cm4gKHt9KTtcbiAgICBmdW5jdGlvbiB3YXNSZXNldCgpe1xuICAgICAgcmV0dXJuIHByZXZpb3VzVXNlckRlZmluZWRXaWR0aCA+PTAgJiYgY3VycmVudFVzZXJEZWZpbmVkV2lkdGggPT0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzdHlsZXMkITpPYnNlcnZhYmxlPGFsbFN0eWxlcz5cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIm1ldGFEYXRhLmtleVwiICpuZ3J4TGV0PVwic3R5bGVzJCBhcyBzdHlsZXNcIj5cblxuICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LWVsZW1lbnQ9J2VsZW1lbnQnID5cblxuICAgICAgPG1hdC1jZWxsIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgW2NsYXNzLmdyb3VwLWZvb3Rlcl09XCJlbGVtZW50LmlzR3JvdXBGb290ZXJcIiAoY2xpY2spPSdjZWxsQ2xpY2tlZChlbGVtZW50LCBtZXRhRGF0YS5rZXkpJz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyVGVtcGxhdGU7Y29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgZWxlbWVudDogZWxlbWVudCwgdHJhbnNmb3JtOiB0cmFuc2Zvcm0gfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibm8tdmFsXCIgKm5nSWY9XCJcbiAgICAgICAgIWVsZW1lbnQuaXNHcm91cEZvb3RlciAmJlxuICAgICAgICBtZXRhRGF0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5FeHByZXNzaW9uICYmXG4gICAgICAgIChlbGVtZW50W21ldGFEYXRhLmtleV0gPT0gbnVsbCkgJiZcbiAgICAgICAgISgoY3VzdG9tQ2VsbCAmJiBjdXN0b21DZWxsLlRlbXBsYXRlUmVmKSB8fCBtZXRhRGF0YS50ZW1wbGF0ZSlcbiAgICAgIFwiPiAtIDwvc3Bhbj5cbiAgICA8L21hdC1jZWxsPlxuXG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uaGVhZGVyQ2VsbDtlbHNlIGhlYWRlcjtcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsLmNvbHVtbkRlZi5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG5cbiAgICAgIDxtYXQtaGVhZGVyLWNlbGwgIGNka0RyYWcgW3N0eWxlcl09J3N0eWxlcy5oZWFkZXInIFtyZXNpemVDb2x1bW5dPVwidHJ1ZVwiIFtrZXldPVwibWV0YURhdGEua2V5XCIgICBjbGFzcz1cImNvbHVtbi1oZWFkIGRyYWctaGVhZGVyXCIgI2hlYWRyZWYgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiIGNka0RyYWdIYW5kbGU+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCB8fCAhY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsIDsgZWxzZSBoZWFkZXJXaXRob3V0TWVudVwiIG1hdC1zb3J0LWhlYWRlciBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcldpdGhvdXRNZW51ID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZDtcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8dGItaGVhZGVyLW1lbnUgXG4gICAgICAgICAgICAqbmdJZj1cIighbWV0YURhdGEuX2ludGVybmFsTm90VXNlckRlZmluZWQgfHwgIWN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbCkgJiYgKHNob3dmaWx0ZXJzJCB8IGFzeW5jKTtcIiAjbWVudSBbbWV0YURhdGFdPSdtZXRhRGF0YScgW2ZpbHRlcl09J2ZpbHRlcicgPlxuICAgICAgICAgIDwvdGItaGVhZGVyLW1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtaGVhZGVyLWNlbGw+XG5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwvbmctdGVtcGxhdGU+XG5cblxuICA8bmctY29udGFpbmVyICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm91dGVyVGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGVsZW1lbnQ6IGVsZW1lbnQgLCBzdHlsZXM6IHN0eWxlcy5ib2R5IH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlIG1hdEZvb3RlckNlbGxEZWY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbDtlbHNlIGZvb3RlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNlbGwuY29sdW1uRGVmLmZvb3RlckNlbGwudGVtcGxhdGU7Y29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgZGF0YTogZGF0YSQsIHN0eWxlcyA6IHN0eWxlcy5mb290ZXIgfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cbiAgICAgIDxtYXQtZm9vdGVyLWNlbGwgIFtzdHlsZXJdPSdzdHlsZXMuZm9vdGVyJyAqbmdyeExldD1cImRhdGEkIGFzIGRhdGFcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5sZW5ndGggJiYgbWV0YURhdGEuYWRkaXRpb25hbD8uZm9vdGVyXCIgW25nU3dpdGNoXT1cIm1ldGFEYXRhLmZpZWxkVHlwZVwiIGNsYXNzPVwiYm9sZFwiPlxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuQ3VycmVuY3lcIj5cbiAgICAgICAgICAgIHt7IGRhdGEgfCBjb2x1bW5Ub3RhbDogbWV0YURhdGEgfCBjdXJyZW5jeSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLk51bWJlclwiPlxuICAgICAgICAgICAge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IG51bWJlciB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9tYXQtZm9vdGVyLWNlbGw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFlLFNBQVMsRUFBaUUsTUFBTSxlQUFlLENBQUM7QUFDakssT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSx5QkFBeUIsQ0FBQztBQU1qRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QnBFLE1BQU0sT0FBTyxzQkFBc0I7SUFlakMsWUFDVSxnQkFBa0MsRUFDbEMsS0FBb0IsRUFDckIsS0FBaUIsRUFDaEIsZUFBcUM7UUFIckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQXNCO1FBbEIvQyxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBNkV0QixhQUFRLEdBQUcsQ0FBQyxDQUFD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RUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtLQUNyRDsyRkFFVSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDO3dCQUNiLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO3FCQUNyRDswTEFLUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVtQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBS0osWUFBWTtzQkFBOUIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgTWF0Q29sdW1uRGVmLCBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEN1c3RvbUNlbGxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEZpbHRlckluZm8gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcbmltcG9ydCB7IFRyYW5zZm9ybUNyZWF0b3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvcic7XG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWJsZVRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmxlLXRlbXBsYXRlLXNlcnZpY2UnO1xuaW1wb3J0IHsgcHJldmlvdXNBbmRDdXJyZW50IH0gZnJvbSAnLi4vLi4vLi4vcnhqcy9yeGpzLW9wZXJhdG9ycyc7XG5pbXBvcnQgeyBDZGtEcm9wTGlzdCwgQ0RLX0RST1BfTElTVCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5cblxuaW50ZXJmYWNlIHdpZHRoU3R5bGUge1xuICAgIGZsZXg/OiBzdHJpbmc7XG4gICAgbWF4V2lkdGg/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBhbGxTdHlsZXMge1xuICBib2R5OiB3aWR0aFN0eWxlO1xuICBoZWFkZXI6IHdpZHRoU3R5bGU7XG4gIGZvb3Rlcjogd2lkdGhTdHlsZTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGItY29sdW1uLWJ1aWxkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQ0RLX0RST1BfTElTVCwgdXNlRXhpc3Rpbmc6IENka0Ryb3BMaXN0IH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YVxuICBASW5wdXQoKSBjdXN0b21DZWxsITogQ3VzdG9tQ2VsbERpcmVjdGl2ZTtcbiAgQElucHV0KCkgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xuICBvdXRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgaW5uZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIHRyYW5zZm9ybSE6IChvOiBhbnksIC4uLmFyZ3M6IGFueVtdKT0+IGFueSA7XG5cbiAgQFZpZXdDaGlsZCgnYm9keScpIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zZm9ybUNyZWF0b3I6IFRyYW5zZm9ybUNyZWF0b3IsXG4gICAgcHJpdmF0ZSB0YWJsZTogTWF0VGFibGU8YW55PixcbiAgICBwdWJsaWMgc3RhdGU6IFRhYmxlU3RvcmUsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRhYmxlVGVtcGxhdGVTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgZ2V0SW5uZXJUZW1wbGF0ZSgpIDpUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBpZih0aGlzLm1ldGFEYXRhLnRlbXBsYXRlKSByZXR1cm4gdGhpcy5tZXRhRGF0YS50ZW1wbGF0ZTtcbiAgICBpZiAodGhpcy5jdXN0b21DZWxsPy5UZW1wbGF0ZVJlZikgIHJldHVybiB0aGlzLmN1c3RvbUNlbGwuVGVtcGxhdGVSZWY7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlKHRoaXMubWV0YURhdGEuZmllbGRUeXBlKTtcbiAgfVxuICBzaG93ZmlsdGVycyQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRPdXRlclRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XG4gIH1cbiAgY2xhc3Nlcz86IERpY3Rpb25hcnk8UHJlZGljYXRlPGFueT4+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmKHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ3VycmVuY3kpIHtcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHtcbiAgICAgICAgWyduZWdhdGl2ZS1jdXJyZW5jeSddOiAoZWxlbWVudCkgPT4gZWxlbWVudFt0aGlzLm1ldGFEYXRhLmtleV0gPCAwLFxuICAgICAgICAuLi50aGlzLm1ldGFEYXRhLmNsYXNzZXNcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzZXMgPSB0aGlzLm1ldGFEYXRhLmNsYXNzZXM7XG4gICAgfVxuXG4gICAgaWYodGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Cb29sZWFuKSB7XG4gICAgICB0aGlzLiBtZXRhRGF0YSA9IHsuLi50aGlzLm1ldGFEYXRhLCB1c2VJY29uOiB0cnVlfTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlciA9IHtrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlfTtcbiAgICBjb25zdCB3aWR0aCQgPSB0aGlzLnN0YXRlLmdldFVzZXJEZWZpbmVkV2lkdGgkKHRoaXMubWV0YURhdGEua2V5KS5waXBlKFxuICAgICAgcHJldmlvdXNBbmRDdXJyZW50KDApLFxuICAgICAgbWFwKHRoaXMubWFwV2lkdGgpLFxuICAgICk7XG4gICAgY29uc3QgZnVsbE1ldGFTdHlsZXMgPSB0aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LnN0eWxlcyA/PyB7fTtcbiAgICB0aGlzLnN0eWxlcyQgPSB3aWR0aCQucGlwZShtYXAod2lkdGggPT4ge1xuICAgICAgY29uc3Qgc3R5bGVzOiBhbGxTdHlsZXMgPSB7XG4gICAgICAgIGhlYWRlciA6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmhlYWRlciwgLi4ud2lkdGh9LFxuICAgICAgICBmb290ZXI6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmZvb3RlciwgLi4ud2lkdGh9LFxuICAgICAgICBib2R5OiB7Li4uZnVsbE1ldGFTdHlsZXMsLi4udGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0U3R5bGVzPy5ib2R5LCAuLi53aWR0aH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICB9KSk7XG4gICAgdGhpcy5zaG93ZmlsdGVycyQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgfHwgdGhpcy5tZXRhRGF0YS5ub0ZpbHRlcikpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm91dGVyVGVtcGxhdGUgPSB0aGlzLmdldE91dGVyVGVtcGxhdGUoKTtcbiAgICB0aGlzLmlubmVyVGVtcGxhdGUgPSB0aGlzLmdldElubmVyVGVtcGxhdGUoKTtcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ3JlYXRvci5jcmVhdGVUcmFuc2Zvcm1lcih0aGlzLm1ldGFEYXRhKTtcbiAgICB0aGlzLnRhYmxlLmFkZENvbHVtbkRlZih0aGlzLmNvbHVtbkRlZik7XG4gIH1cblxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5tZXRhRGF0YS5jbGljaykge1xuICAgICAgdGhpcy5tZXRhRGF0YS5jbGljayhlbGVtZW50LGtleSk7XG4gICAgfVxuICB9XG5cbiAgbWFwV2lkdGggPSAoW3ByZXZpb3VzVXNlckRlZmluZWRXaWR0aCwgY3VycmVudFVzZXJEZWZpbmVkV2lkdGhdIDogW251bWJlciwgbnVtYmVyXSkgOiB3aWR0aFN0eWxlID0+IHtcblxuICAgIGlmKCBjdXJyZW50VXNlckRlZmluZWRXaWR0aCApe1xuICAgICAgcmV0dXJuICh7ZmxleDpgMCAwICR7Y3VycmVudFVzZXJEZWZpbmVkV2lkdGh9cHhgLCBtYXhXaWR0aDonbm9uZSd9KTtcbiAgICB9IGlmKCB3YXNSZXNldCgpICl7XG4gICAgICByZXR1cm4gKHtmbGV4OicxJ30pO1xuICAgIH1cbiAgICByZXR1cm4gKHt9KTtcbiAgICBmdW5jdGlvbiB3YXNSZXNldCgpe1xuICAgICAgcmV0dXJuIHByZXZpb3VzVXNlckRlZmluZWRXaWR0aCA+PTAgJiYgY3VycmVudFVzZXJEZWZpbmVkV2lkdGggPT0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzdHlsZXMkITpPYnNlcnZhYmxlPGFsbFN0eWxlcz5cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIm1ldGFEYXRhLmtleVwiICpuZ3J4TGV0PVwic3R5bGVzJCBhcyBzdHlsZXNcIiA+XG5cbiAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1lbGVtZW50PSdlbGVtZW50JyA+XG4gICAgICA8bWF0LWNlbGwgIFttYXRUb29sdGlwXT1cIm1ldGFEYXRhLnRvb2xUaXAgPz8gJydcIiAgW2NvbmRpdGlvbmFsQ2xhc3Nlc109J21ldGFEYXRhLmNsYXNzZXMnIFtlbGVtZW50XT0nZWxlbWVudCcgW3N0eWxlcl09J3N0eWxlcy5ib2R5JyBbY2xhc3MuZ3JvdXAtZm9vdGVyXT1cImVsZW1lbnQuaXNHcm91cEZvb3RlclwiIChjbGljayk9J2NlbGxDbGlja2VkKGVsZW1lbnQsIG1ldGFEYXRhLmtleSknID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyVGVtcGxhdGU7Y29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgZWxlbWVudDogZWxlbWVudCwgdHJhbnNmb3JtOiB0cmFuc2Zvcm0gfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibm8tdmFsXCIgKm5nSWY9XCJcbiAgICAgICAgIWVsZW1lbnQuaXNHcm91cEZvb3RlciAmJlxuICAgICAgICBtZXRhRGF0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5FeHByZXNzaW9uICYmXG4gICAgICAgIChlbGVtZW50W21ldGFEYXRhLmtleV0gPT0gbnVsbCkgJiZcbiAgICAgICAgISgoY3VzdG9tQ2VsbCAmJiBjdXN0b21DZWxsLlRlbXBsYXRlUmVmKSB8fCBtZXRhRGF0YS50ZW1wbGF0ZSlcbiAgICAgIFwiPiAtIDwvc3Bhbj5cbiAgICA8L21hdC1jZWxsPlxuXG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uaGVhZGVyQ2VsbDtlbHNlIGhlYWRlcjtcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsLmNvbHVtbkRlZi5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG5cbiAgICAgIDxtYXQtaGVhZGVyLWNlbGwgIGNka0RyYWcgW3N0eWxlcl09J3N0eWxlcy5oZWFkZXInIFtyZXNpemVDb2x1bW5dPVwidHJ1ZVwiIFtrZXldPVwibWV0YURhdGEua2V5XCIgICBjbGFzcz1cImNvbHVtbi1oZWFkIGRyYWctaGVhZGVyXCIgI2hlYWRyZWYgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiIGNka0RyYWdIYW5kbGU+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCB8fCAhY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsIDsgZWxzZSBoZWFkZXJXaXRob3V0TWVudVwiIG1hdC1zb3J0LWhlYWRlciBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcldpdGhvdXRNZW51ID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZDtcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8dGItaGVhZGVyLW1lbnVcbiAgICAgICAgICAgICpuZ0lmPVwiKCFtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCB8fCAhY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsKSAmJiAoc2hvd2ZpbHRlcnMkIHwgYXN5bmMpO1wiICNtZW51IFttZXRhRGF0YV09J21ldGFEYXRhJyBbZmlsdGVyXT0nZmlsdGVyJyA+XG4gICAgICAgICAgPC90Yi1oZWFkZXItbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1oZWFkZXItY2VsbD5cblxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuXG4gIDxuZy1jb250YWluZXIgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3V0ZXJUZW1wbGF0ZTsgY29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgZWxlbWVudDogZWxlbWVudCAsIHN0eWxlczogc3R5bGVzLmJvZHkgfVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgbWF0Rm9vdGVyQ2VsbERlZj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5mb290ZXJDZWxsO2Vsc2UgZm9vdGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbC5jb2x1bW5EZWYuZm9vdGVyQ2VsbC50ZW1wbGF0ZTtjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBkYXRhOiBkYXRhJCwgc3R5bGVzIDogc3R5bGVzLmZvb3RlciB9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyPlxuICAgICAgPG1hdC1mb290ZXItY2VsbCAgW3N0eWxlcl09J3N0eWxlcy5mb290ZXInICpuZ3J4TGV0PVwiZGF0YSQgYXMgZGF0YVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/Lmxlbmd0aCAmJiBtZXRhRGF0YS5hZGRpdGlvbmFsPy5mb290ZXJcIiBbbmdTd2l0Y2hdPVwibWV0YURhdGEuZmllbGRUeXBlXCIgY2xhc3M9XCJib2xkXCI+XG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5DdXJyZW5jeVwiPlxuICAgICAgICAgICAge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IGN1cnJlbmN5IH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuTnVtYmVyXCI+XG4gICAgICAgICAgICB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgbnVtYmVyIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L21hdC1mb290ZXItY2VsbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=