@dereekb/dbx-firebase 9.19.5 → 9.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/model/index.mjs +2 -2
- package/esm2020/lib/model/model.module.mjs +6 -5
- package/esm2020/lib/model/modules/index.mjs +3 -0
- package/esm2020/lib/model/modules/model/index.mjs +6 -0
- package/esm2020/lib/model/modules/model/model.tracker.service.mjs +30 -0
- package/esm2020/lib/model/modules/model/model.types.list.component.mjs +67 -0
- package/esm2020/lib/model/modules/model/model.types.module.mjs +21 -0
- package/esm2020/lib/model/modules/model/model.types.service.mjs +114 -0
- package/esm2020/lib/model/modules/model/model.types.view.directive.mjs +51 -0
- package/esm2020/lib/model/modules/store/index.mjs +17 -0
- package/esm2020/lib/model/modules/store/model.store.module.mjs +23 -0
- package/esm2020/lib/model/modules/store/store.collection.change.directive.mjs +52 -0
- package/esm2020/lib/model/modules/store/store.collection.change.if.directive.mjs +57 -0
- package/esm2020/lib/model/modules/store/store.collection.directive.mjs +54 -0
- package/esm2020/lib/model/{store → modules/store}/store.collection.list.directive.mjs +1 -1
- package/esm2020/lib/model/modules/store/store.collection.mjs +55 -0
- package/esm2020/lib/model/modules/store/store.document.auth.directive.mjs +33 -0
- package/esm2020/lib/model/modules/store/store.document.crud.mjs +80 -0
- package/esm2020/lib/model/modules/store/store.document.directive.mjs +61 -0
- package/esm2020/lib/model/modules/store/store.document.mjs +109 -0
- package/esm2020/lib/model/modules/store/store.document.router.directive.mjs +67 -0
- package/esm2020/lib/model/modules/store/store.document.router.key.directive.mjs +67 -0
- package/esm2020/lib/model/modules/store/store.subcollection.directive.mjs +30 -0
- package/esm2020/lib/model/modules/store/store.subcollection.document.mjs +98 -0
- package/esm2020/lib/model/modules/store/store.subcollection.mjs +79 -0
- package/esm2020/lib/model/modules/store/store.subcollection.rxjs.mjs +23 -0
- package/esm2020/lib/model/service/index.mjs +3 -1
- package/esm2020/lib/model/service/model.context.instance.mjs +54 -0
- package/esm2020/lib/model/service/model.context.mjs +2 -35
- package/esm2020/lib/model/service/model.context.service.mjs +38 -0
- package/esm2020/lib/model/system/systemstate.collection.store.directive.mjs +2 -2
- package/esm2020/lib/model/system/systemstate.collection.store.mjs +2 -2
- package/esm2020/lib/model/system/systemstate.document.store.directive.mjs +2 -2
- package/esm2020/lib/model/system/systemstate.document.store.mjs +2 -2
- package/fesm2015/dereekb-dbx-firebase.mjs +364 -65
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +365 -65
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/model/index.d.ts +1 -1
- package/lib/model/model.module.d.ts +3 -2
- package/lib/model/modules/index.d.ts +2 -0
- package/lib/model/modules/model/index.d.ts +5 -0
- package/lib/model/modules/model/model.tracker.service.d.ts +13 -0
- package/lib/model/modules/model/model.types.list.component.d.ts +22 -0
- package/lib/model/modules/model/model.types.module.d.ts +10 -0
- package/lib/model/modules/model/model.types.service.d.ts +88 -0
- package/lib/model/modules/model/model.types.view.directive.d.ts +19 -0
- package/lib/model/{store → modules/store}/index.d.ts +0 -0
- package/lib/model/{store → modules/store}/model.store.module.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.collection.change.directive.d.ts +1 -1
- package/lib/model/{store → modules/store}/store.collection.change.if.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.collection.d.ts +2 -2
- package/lib/model/{store → modules/store}/store.collection.directive.d.ts +1 -1
- package/lib/model/{store → modules/store}/store.collection.list.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.document.auth.directive.d.ts +1 -1
- package/lib/model/{store → modules/store}/store.document.crud.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.document.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.document.directive.d.ts +5 -3
- package/lib/model/{store → modules/store}/store.document.router.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.document.router.key.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.document.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.rxjs.d.ts +0 -0
- package/lib/model/service/index.d.ts +2 -0
- package/lib/model/service/model.context.d.ts +16 -16
- package/lib/model/service/model.context.instance.d.ts +31 -0
- package/lib/model/service/model.context.service.d.ts +31 -0
- package/lib/model/system/systemstate.collection.store.d.ts +1 -1
- package/lib/model/system/systemstate.collection.store.directive.d.ts +1 -1
- package/lib/model/system/systemstate.document.store.d.ts +1 -1
- package/lib/model/system/systemstate.document.store.directive.d.ts +1 -1
- package/package.json +5 -5
- package/esm2020/lib/model/store/index.mjs +0 -17
- package/esm2020/lib/model/store/model.store.module.mjs +0 -23
- package/esm2020/lib/model/store/store.collection.change.directive.mjs +0 -52
- package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +0 -57
- package/esm2020/lib/model/store/store.collection.directive.mjs +0 -54
- package/esm2020/lib/model/store/store.collection.mjs +0 -55
- package/esm2020/lib/model/store/store.document.auth.directive.mjs +0 -33
- package/esm2020/lib/model/store/store.document.crud.mjs +0 -80
- package/esm2020/lib/model/store/store.document.directive.mjs +0 -59
- package/esm2020/lib/model/store/store.document.mjs +0 -109
- package/esm2020/lib/model/store/store.document.router.directive.mjs +0 -67
- package/esm2020/lib/model/store/store.document.router.key.directive.mjs +0 -67
- package/esm2020/lib/model/store/store.subcollection.directive.mjs +0 -30
- package/esm2020/lib/model/store/store.subcollection.document.mjs +0 -98
- package/esm2020/lib/model/store/store.subcollection.mjs +0 -79
- package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +0 -23
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './loader';
|
|
2
2
|
export * from './service';
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './modules';
|
|
4
4
|
export * from './system';
|
|
5
5
|
export * from './error';
|
|
6
6
|
export * from './model.module';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL3N5c3RlbSc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwubW9kdWxlJztcbiJdfQ==
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { DbxFirebaseModelTypesModule } from './modules/model/model.types.module';
|
|
3
|
+
import { DbxFirebaseModelStoreModule } from './modules/store/model.store.module';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class DbxFirebaseModelModule {
|
|
5
6
|
}
|
|
6
7
|
DbxFirebaseModelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
DbxFirebaseModelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelModule, exports: [DbxFirebaseModelStoreModule] });
|
|
8
|
-
DbxFirebaseModelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelModule, imports: [DbxFirebaseModelStoreModule] });
|
|
8
|
+
DbxFirebaseModelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelModule, exports: [DbxFirebaseModelStoreModule, DbxFirebaseModelTypesModule] });
|
|
9
|
+
DbxFirebaseModelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelModule, imports: [DbxFirebaseModelStoreModule, DbxFirebaseModelTypesModule] });
|
|
9
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelModule, decorators: [{
|
|
10
11
|
type: NgModule,
|
|
11
12
|
args: [{
|
|
12
|
-
exports: [DbxFirebaseModelStoreModule]
|
|
13
|
+
exports: [DbxFirebaseModelStoreModule, DbxFirebaseModelTypesModule]
|
|
13
14
|
}]
|
|
14
15
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBS2pGLE1BQU0sT0FBTyxzQkFBc0I7O29IQUF0QixzQkFBc0I7cUhBQXRCLHNCQUFzQixZQUZ2QiwyQkFBMkIsRUFBRSwyQkFBMkI7cUhBRXZELHNCQUFzQixZQUZ2QiwyQkFBMkIsRUFBRSwyQkFBMkI7NEZBRXZELHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsU3RvcmVNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvc3RvcmUvbW9kZWwuc3RvcmUubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW0RieEZpcmViYXNlTW9kZWxTdG9yZU1vZHVsZSwgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './model';
|
|
2
|
+
export * from './store';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlJztcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './model.tracker.service';
|
|
2
|
+
export * from './model.types.service';
|
|
3
|
+
export * from './model.types.module';
|
|
4
|
+
export * from './model.types.list.component';
|
|
5
|
+
export * from './model.types.view.directive';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWwudHJhY2tlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnR5cGVzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnR5cGVzLmxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwudHlwZXMudmlldy5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { map, switchMap } from 'rxjs';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { allDbxModelViewTrackerEventModelKeys, DbxModelTrackerService } from '@dereekb/dbx-web';
|
|
4
|
+
import { DbxFirebaseModelTypesService } from './model.types.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@dereekb/dbx-web";
|
|
7
|
+
import * as i2 from "./model.types.service";
|
|
8
|
+
export class DbxFirebaseModelTrackerService {
|
|
9
|
+
constructor(dbxModelTrackerService, dbxFirebaseModelTypesService) {
|
|
10
|
+
this.dbxModelTrackerService = dbxModelTrackerService;
|
|
11
|
+
this.dbxFirebaseModelTypesService = dbxFirebaseModelTypesService;
|
|
12
|
+
}
|
|
13
|
+
// TODO: Expose as observables directly that update when history events change.
|
|
14
|
+
loadHistoryKeys() {
|
|
15
|
+
return this.dbxModelTrackerService.getAllViewEvents().pipe(map(allDbxModelViewTrackerEventModelKeys));
|
|
16
|
+
}
|
|
17
|
+
loadHistoryPairs() {
|
|
18
|
+
const historyKeys$ = this.loadHistoryKeys();
|
|
19
|
+
return historyKeys$.pipe(switchMap((x) => this.dbxFirebaseModelTypesService.instancePairsForKeys(x)));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
DbxFirebaseModelTrackerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTrackerService, deps: [{ token: i1.DbxModelTrackerService }, { token: i2.DbxFirebaseModelTypesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
+
DbxFirebaseModelTrackerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTrackerService, providedIn: 'root' });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTrackerService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i1.DbxModelTrackerService }, { type: i2.DbxFirebaseModelTypesService }]; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHJhY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9tb2RlbC50cmFja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNEJBQTRCLEVBQTRDLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLL0csTUFBTSxPQUFPLDhCQUE4QjtJQVl6QyxZQUFxQixzQkFBOEMsRUFBVyw0QkFBMEQ7UUFBbkgsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUFXLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7SUFBRyxDQUFDO0lBWDVJLCtFQUErRTtJQUUvRSxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQzs7NEhBVlUsOEJBQThCO2dJQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTs0RkFFUCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFsbERieE1vZGVsVmlld1RyYWNrZXJFdmVudE1vZGVsS2V5cywgRGJ4TW9kZWxUcmFja2VyU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSwgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpciB9IGZyb20gJy4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxUcmFja2VyU2VydmljZSB7XG4gIC8vIFRPRE86IEV4cG9zZSBhcyBvYnNlcnZhYmxlcyBkaXJlY3RseSB0aGF0IHVwZGF0ZSB3aGVuIGhpc3RvcnkgZXZlbnRzIGNoYW5nZS5cblxuICBsb2FkSGlzdG9yeUtleXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4TW9kZWxUcmFja2VyU2VydmljZS5nZXRBbGxWaWV3RXZlbnRzKCkucGlwZShtYXAoYWxsRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50TW9kZWxLZXlzKSk7XG4gIH1cblxuICBsb2FkSGlzdG9yeVBhaXJzKCk6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpcltdPiB7XG4gICAgY29uc3QgaGlzdG9yeUtleXMkID0gdGhpcy5sb2FkSGlzdG9yeUtleXMoKTtcbiAgICByZXR1cm4gaGlzdG9yeUtleXMkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB0aGlzLmRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UuaW5zdGFuY2VQYWlyc0ZvcktleXMoeCkpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRieE1vZGVsVHJhY2tlclNlcnZpY2U6IERieE1vZGVsVHJhY2tlclNlcnZpY2UsIHJlYWRvbmx5IGRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2U6IERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListViewItemComponent, AbstractDbxSelectionListViewDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, provideDbxListViewWrapper } from '@dereekb/dbx-web';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@dereekb/dbx-web";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
/**
|
|
8
|
+
* Renders an item as configured from the DbxFirebaseModelTypesServiceInstancePair.
|
|
9
|
+
*/
|
|
10
|
+
export class DbxFirebaseModelTypeInstanceComponent extends AbstractDbxSelectionListWrapperDirective {
|
|
11
|
+
constructor() {
|
|
12
|
+
super({
|
|
13
|
+
componentClass: DbxFirebaseModelTypeInstanceViewComponent,
|
|
14
|
+
defaultSelectionMode: 'view'
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
DbxFirebaseModelTypeInstanceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypeInstanceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
DbxFirebaseModelTypeInstanceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseModelTypeInstanceComponent, selector: "dbx-firebase-model-type-instance-list", providers: provideDbxListViewWrapper(DbxFirebaseModelTypeInstanceComponent), usesInheritance: true, ngImport: i0, template: "\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n", isInline: true, dependencies: [{ kind: "component", type: i1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state$", "config", "disabled", "selectionMode"], outputs: ["contentScrolled"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypeInstanceComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'dbx-firebase-model-type-instance-list',
|
|
24
|
+
template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE,
|
|
25
|
+
providers: provideDbxListViewWrapper(DbxFirebaseModelTypeInstanceComponent)
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return []; } });
|
|
28
|
+
export class DbxFirebaseModelTypeInstanceViewComponent extends AbstractDbxSelectionListViewDirective {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.config = {
|
|
32
|
+
componentClass: DbxFirebaseModelTypeInstanceViewItemComponent,
|
|
33
|
+
mapValuesToItemValues: (x) => of(x.map((y) => ({ itemValue: y, icon: y.displayInfo.icon ?? y.icon, anchor: y.segueRef })))
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
DbxFirebaseModelTypeInstanceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypeInstanceViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
DbxFirebaseModelTypeInstanceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseModelTypeInstanceViewComponent, selector: "ng-component", providers: provideDbxListView(DbxFirebaseModelTypeInstanceViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "component", type: i1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }] });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypeInstanceViewComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{
|
|
42
|
+
template: DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE,
|
|
43
|
+
providers: provideDbxListView(DbxFirebaseModelTypeInstanceViewComponent)
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
export class DbxFirebaseModelTypeInstanceViewItemComponent extends AbstractDbxValueListViewItemComponent {
|
|
47
|
+
get title() {
|
|
48
|
+
return this.itemValue.displayInfo.title;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
DbxFirebaseModelTypeInstanceViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypeInstanceViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
DbxFirebaseModelTypeInstanceViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseModelTypeInstanceViewItemComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
53
|
+
<div>
|
|
54
|
+
<p>{{ title }}</p>
|
|
55
|
+
</div>
|
|
56
|
+
`, isInline: true });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypeInstanceViewItemComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{
|
|
60
|
+
template: `
|
|
61
|
+
<div>
|
|
62
|
+
<p>{{ title }}</p>
|
|
63
|
+
</div>
|
|
64
|
+
`
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMubGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLmxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLHFDQUFxQyxFQUFFLHFDQUFxQyxFQUFFLHVDQUF1QyxFQUFtQyxrQkFBa0IsRUFBRSxtREFBbUQsRUFBc0IseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1VixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSzFCOztHQUVHO0FBTUgsTUFBTSxPQUFPLHFDQUFzQyxTQUFRLHdDQUFrRjtJQUMzSTtRQUNFLEtBQUssQ0FBQztZQUNKLGNBQWMsRUFBRSx5Q0FBeUM7WUFDekQsb0JBQW9CLEVBQUUsTUFBTTtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOzttSUFOVSxxQ0FBcUM7dUhBQXJDLHFDQUFxQyxnRUFGckMseUJBQXlCLENBQUMscUNBQXFDLENBQUM7NEZBRWhFLHFDQUFxQztrQkFMakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUNBQXVDO29CQUNqRCxRQUFRLEVBQUUsdUNBQXVDO29CQUNqRCxTQUFTLEVBQUUseUJBQXlCLHVDQUF1QztpQkFDNUU7O0FBY0QsTUFBTSxPQUFPLHlDQUEwQyxTQUFRLHFDQUErRTtJQUo5STs7UUFLVyxXQUFNLEdBQXVFO1lBQ3BGLGNBQWMsRUFBRSw2Q0FBNkM7WUFDN0QscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzSCxDQUFDO0tBQ0g7O3VJQUxZLHlDQUF5QzsySEFBekMseUNBQXlDLHVDQUZ6QyxrQkFBa0IsQ0FBQyx5Q0FBeUMsQ0FBQzs0RkFFN0QseUNBQXlDO2tCQUpyRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFNBQVMsRUFBRSxrQkFBa0IsMkNBQTJDO2lCQUN6RTs7QUFlRCxNQUFNLE9BQU8sNkNBQThDLFNBQVEscUNBQStFO0lBQ2hKLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7OzJJQUhVLDZDQUE2QzsrSEFBN0MsNkNBQTZDLDJFQU45Qzs7OztHQUlUOzRGQUVVLDZDQUE2QztrQkFQekQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7R0FJVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0V3JhcHBlckRpcmVjdGl2ZSwgQWJzdHJhY3REYnhWYWx1ZUxpc3RWaWV3SXRlbUNvbXBvbmVudCwgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0Vmlld0RpcmVjdGl2ZSwgREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFLCBEYnhTZWxlY3Rpb25WYWx1ZUxpc3RWaWV3Q29uZmlnLCBwcm92aWRlRGJ4TGlzdFZpZXcsIERFRkFVTFRfREJYX1NFTEVDVElPTl9WQUxVRV9MSVNUX0RJUkVDVElWRV9URU1QTEFURSwgRGJ4VmFsdWVBc0xpc3RJdGVtLCBwcm92aWRlRGJ4TGlzdFZpZXdXcmFwcGVyIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpciB9IGZyb20gJy4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIERieEZpcmVzdG9yZU1vZGVsVHlwZUluc3RhbmNlSXRlbSA9IERieFZhbHVlQXNMaXN0SXRlbTxEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2VQYWlyPjtcblxuLyoqXG4gKiBSZW5kZXJzIGFuIGl0ZW0gYXMgY29uZmlndXJlZCBmcm9tIHRoZSBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2VQYWlyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwtdHlwZS1pbnN0YW5jZS1saXN0JyxcbiAgdGVtcGxhdGU6IERFRkFVTFRfTElTVF9XUkFQUEVSX0RJUkVDVElWRV9URU1QTEFURSxcbiAgcHJvdmlkZXJzOiBwcm92aWRlRGJ4TGlzdFZpZXdXcmFwcGVyKERieEZpcmViYXNlTW9kZWxUeXBlSW5zdGFuY2VDb21wb25lbnQpXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxUeXBlSW5zdGFuY2VDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RXcmFwcGVyRGlyZWN0aXZlPERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZVBhaXI+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZpcmViYXNlTW9kZWxUeXBlSW5zdGFuY2VWaWV3Q29tcG9uZW50LFxuICAgICAgZGVmYXVsdFNlbGVjdGlvbk1vZGU6ICd2aWV3J1xuICAgIH0pO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogREVGQVVMVF9EQlhfU0VMRUNUSU9OX1ZBTFVFX0xJU1RfRElSRUNUSVZFX1RFTVBMQVRFLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhMaXN0VmlldyhEYnhGaXJlYmFzZU1vZGVsVHlwZUluc3RhbmNlVmlld0NvbXBvbmVudClcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbFR5cGVJbnN0YW5jZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlPERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZVBhaXI+IHtcbiAgcmVhZG9ubHkgY29uZmlnOiBEYnhTZWxlY3Rpb25WYWx1ZUxpc3RWaWV3Q29uZmlnPERieEZpcmVzdG9yZU1vZGVsVHlwZUluc3RhbmNlSXRlbT4gPSB7XG4gICAgY29tcG9uZW50Q2xhc3M6IERieEZpcmViYXNlTW9kZWxUeXBlSW5zdGFuY2VWaWV3SXRlbUNvbXBvbmVudCxcbiAgICBtYXBWYWx1ZXNUb0l0ZW1WYWx1ZXM6ICh4KSA9PiBvZih4Lm1hcCgoeSkgPT4gKHsgaXRlbVZhbHVlOiB5LCBpY29uOiB5LmRpc3BsYXlJbmZvLmljb24gPz8geS5pY29uLCBhbmNob3I6IHkuc2VndWVSZWYgfSkpKVxuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPHA+e3sgdGl0bGUgfX08L3A+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbFR5cGVJbnN0YW5jZVZpZXdJdGVtQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhWYWx1ZUxpc3RWaWV3SXRlbUNvbXBvbmVudDxEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2VQYWlyPiB7XG4gIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWUuZGlzcGxheUluZm8udGl0bGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { DbxListLayoutModule, DbxModelInfoModule } from '@dereekb/dbx-web';
|
|
4
|
+
import { DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent } from './model.types.list.component';
|
|
5
|
+
import { DbxfirebaseModelViewedEventDirective } from './model.types.view.directive';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
const declarations = [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent];
|
|
8
|
+
export class DbxFirebaseModelTypesModule {
|
|
9
|
+
}
|
|
10
|
+
DbxFirebaseModelTypesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
DbxFirebaseModelTypesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesModule, declarations: [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent], imports: [CommonModule, DbxModelInfoModule, DbxListLayoutModule], exports: [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent] });
|
|
12
|
+
DbxFirebaseModelTypesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesModule, imports: [CommonModule, DbxModelInfoModule, DbxListLayoutModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [CommonModule, DbxModelInfoModule, DbxListLayoutModule],
|
|
17
|
+
declarations,
|
|
18
|
+
exports: declarations
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9tb2RlbC50eXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0ssT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRXBGLE1BQU0sWUFBWSxHQUFHLENBQUMsb0NBQW9DLEVBQUUscUNBQXFDLEVBQUUseUNBQXlDLEVBQUUsNkNBQTZDLENBQUMsQ0FBQztBQU83TCxNQUFNLE9BQU8sMkJBQTJCOzt5SEFBM0IsMkJBQTJCOzBIQUEzQiwyQkFBMkIsaUJBUGxCLG9DQUFvQyxFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxhQUcvSyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLGFBSDNDLG9DQUFvQyxFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QzswSEFPOUssMkJBQTJCLFlBSjVCLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUI7NEZBSXBELDJCQUEyQjtrQkFMdkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7b0JBQ2hFLFlBQVk7b0JBQ1osT0FBTyxFQUFFLFlBQVk7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhMaXN0TGF5b3V0TW9kdWxlLCBEYnhNb2RlbEluZm9Nb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxUeXBlSW5zdGFuY2VDb21wb25lbnQsIERieEZpcmViYXNlTW9kZWxUeXBlSW5zdGFuY2VWaWV3Q29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsVHlwZUluc3RhbmNlVmlld0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL21vZGVsLnR5cGVzLmxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IERieGZpcmViYXNlTW9kZWxWaWV3ZWRFdmVudERpcmVjdGl2ZSB9IGZyb20gJy4vbW9kZWwudHlwZXMudmlldy5kaXJlY3RpdmUnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbRGJ4ZmlyZWJhc2VNb2RlbFZpZXdlZEV2ZW50RGlyZWN0aXZlLCBEYnhGaXJlYmFzZU1vZGVsVHlwZUluc3RhbmNlQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsVHlwZUluc3RhbmNlVmlld0NvbXBvbmVudCwgRGJ4RmlyZWJhc2VNb2RlbFR5cGVJbnN0YW5jZVZpZXdJdGVtQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGJ4TW9kZWxJbmZvTW9kdWxlLCBEYnhMaXN0TGF5b3V0TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zLFxuICBleHBvcnRzOiBkZWNsYXJhdGlvbnNcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { distinctUntilChanged, map, shareReplay, switchMap, combineLatest } from 'rxjs';
|
|
2
|
+
import { DbxModelTypesService } from '@dereekb/dbx-web';
|
|
3
|
+
import { asArray } from '@dereekb/util';
|
|
4
|
+
import { Optional, Injectable } from '@angular/core';
|
|
5
|
+
import { DbxFirebaseModelContextService } from '../../service/model.context.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../service/model.context.service";
|
|
8
|
+
import * as i2 from "@dereekb/dbx-web";
|
|
9
|
+
/**
|
|
10
|
+
* Configuration provided in the root module for configuring entries.
|
|
11
|
+
*/
|
|
12
|
+
export class DbxFirebaseModelTypesServiceConfig {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Provides model type information about models registered within Firebase.
|
|
16
|
+
*
|
|
17
|
+
* Automatically configures the DbxModelTypesService.
|
|
18
|
+
*/
|
|
19
|
+
export class DbxFirebaseModelTypesService {
|
|
20
|
+
constructor(dbxFirebaseModelContextService, dbxModelTypesService, config) {
|
|
21
|
+
this.dbxFirebaseModelContextService = dbxFirebaseModelContextService;
|
|
22
|
+
this.dbxModelTypesService = dbxModelTypesService;
|
|
23
|
+
if (config) {
|
|
24
|
+
this.register(config.entries);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
getDisplayInfo(typeInfo, data) {
|
|
28
|
+
let displayInfo;
|
|
29
|
+
if (data != null) {
|
|
30
|
+
displayInfo = typeInfo.displayInfoFactory(data);
|
|
31
|
+
displayInfo.icon = displayInfo.icon || typeInfo.icon; // set default icon
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
displayInfo = this.getDefaultDisplayInfo(typeInfo);
|
|
35
|
+
}
|
|
36
|
+
return displayInfo;
|
|
37
|
+
}
|
|
38
|
+
getDefaultDisplayInfo(typeInfo) {
|
|
39
|
+
// TODO: Make configurable
|
|
40
|
+
return {
|
|
41
|
+
title: typeInfo.label ?? '',
|
|
42
|
+
icon: 'warning'
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// MARK: Register
|
|
46
|
+
register(entries) {
|
|
47
|
+
const typeConfigs = asArray(entries).map((x) => ({ ...x, modelType: x.identity.modelType }));
|
|
48
|
+
this.dbxModelTypesService.addTypeConfigs(typeConfigs);
|
|
49
|
+
}
|
|
50
|
+
// MARK: Retrieval
|
|
51
|
+
currentInfoForType(type) {
|
|
52
|
+
return this.dbxModelTypesService.typesMap$.pipe(map((x) => x[type]));
|
|
53
|
+
}
|
|
54
|
+
infoForType(type) {
|
|
55
|
+
return this.currentInfoForType(type).pipe(map((x) => {
|
|
56
|
+
if (!x) {
|
|
57
|
+
console.error(`DbxFirebaseModelTypesService: contained no info for type "${type}". Ensure the correct type was entered, and that the type is registered with the DbxFirebaseModelTypesService.`);
|
|
58
|
+
throw x;
|
|
59
|
+
}
|
|
60
|
+
return x;
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
instanceForKey(key$) {
|
|
64
|
+
return new DbxFirebaseModelTypesServiceInstance(this.dbxFirebaseModelContextService.modelInfoInstance(key$), this);
|
|
65
|
+
}
|
|
66
|
+
instancePairsForKeys(keys) {
|
|
67
|
+
return dbxFirebaseModelTypesServiceInstancePairForKeysFactory(this)(keys);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
DbxFirebaseModelTypesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesService, deps: [{ token: i1.DbxFirebaseModelContextService }, { token: i2.DbxModelTypesService }, { token: DbxFirebaseModelTypesServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
71
|
+
DbxFirebaseModelTypesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesService, providedIn: 'root' });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelTypesService, decorators: [{
|
|
73
|
+
type: Injectable,
|
|
74
|
+
args: [{
|
|
75
|
+
providedIn: 'root'
|
|
76
|
+
}]
|
|
77
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseModelContextService }, { type: i2.DbxModelTypesService }, { type: DbxFirebaseModelTypesServiceConfig, decorators: [{
|
|
78
|
+
type: Optional
|
|
79
|
+
}] }]; } });
|
|
80
|
+
export function dbxFirebaseModelTypesServiceInstancePairForKeysFactory(service) {
|
|
81
|
+
return (keys) => {
|
|
82
|
+
const instances = asArray(keys).map((x) => service.instanceForKey(x).instancePair$);
|
|
83
|
+
return combineLatest(instances);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* DbxFirebaseModelTypesService instance
|
|
88
|
+
*/
|
|
89
|
+
export class DbxFirebaseModelTypesServiceInstance {
|
|
90
|
+
constructor(modelInfoInstance$, dbxFirebaseModelTypesService) {
|
|
91
|
+
this.modelInfoInstance$ = modelInfoInstance$;
|
|
92
|
+
this.dbxFirebaseModelTypesService = dbxFirebaseModelTypesService;
|
|
93
|
+
this.key$ = this.modelInfoInstance$.pipe(switchMap((x) => x.key$));
|
|
94
|
+
this.modelType$ = this.modelInfoInstance$.pipe(switchMap((x) => x.modelType$));
|
|
95
|
+
this.snapshotData$ = this.modelInfoInstance$.pipe(switchMap((x) => x.snapshotData$));
|
|
96
|
+
this.typeInfo$ = this.modelType$.pipe(switchMap((x) => this.dbxFirebaseModelTypesService.infoForType(x)), distinctUntilChanged(), shareReplay(1));
|
|
97
|
+
this.identity$ = this.typeInfo$.pipe(map((x) => x.identity), distinctUntilChanged());
|
|
98
|
+
this.segueRef$ = combineLatest([this.key$, this.typeInfo$]).pipe(map(([key, info]) => (info.sref ? info.sref(key) : undefined)), shareReplay(1));
|
|
99
|
+
this.displayInfo$ = combineLatest([this.typeInfo$, this.snapshotData$]).pipe(map(([typeInfo, data]) => this.dbxFirebaseModelTypesService.getDisplayInfo(typeInfo, data)), shareReplay(1));
|
|
100
|
+
this.clickableSegueRef$ = combineLatest([this.segueRef$, this.displayInfo$]).pipe(map(([segueRef, displayInfo]) => {
|
|
101
|
+
let ref = undefined;
|
|
102
|
+
if (segueRef) {
|
|
103
|
+
ref = {
|
|
104
|
+
...segueRef,
|
|
105
|
+
title: displayInfo.title,
|
|
106
|
+
icon: displayInfo.icon
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return ref;
|
|
110
|
+
}), shareReplay(1));
|
|
111
|
+
this.instancePair$ = combineLatest([this.clickableSegueRef$, this.displayInfo$, this.key$]).pipe(map(([segueRef, displayInfo, key]) => ({ segueRef, displayInfo, key, instance: this })), shareReplay(1));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwudHlwZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBHLE9BQU8sRUFBc0Msb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RixPQUFPLEVBQWdCLE9BQU8sRUFBb0QsTUFBTSxlQUFlLENBQUM7QUFJeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFHckY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGtDQUFrQztDQUV2RDtBQXdCRDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUFxQiw4QkFBOEQsRUFBVyxvQkFBb0UsRUFBYyxNQUEyQztRQUF0TSxtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO1FBQVcseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFnRDtRQUNoSyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBSSxRQUFxQyxFQUFFLElBQU87UUFDOUQsSUFBSSxXQUF3QyxDQUFDO1FBRTdDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNoQixXQUFXLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELFdBQVcsQ0FBQyxJQUFJLEdBQUcsV0FB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bWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVDb2xsZWN0aW9uVHlwZSwgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksIEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGJ4TW9kZWxUeXBlSW5mbywgRGJ4TW9kZWxUeXBlc01hcCwgRGJ4TW9kZWxUeXBlc1NlcnZpY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSwgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0LCBNYXliZSwgTW9kZWxUeXBlU3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDbGlja2FibGVBbmNob3JMaW5rU2VndWVSZWYsIEljb25BbmRUaXRsZSwgU2VndWVSZWYgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgR3JhbnRlZFJvbGUgfSBmcm9tICdAZGVyZWVrYi9tb2RlbCc7XG5pbXBvcnQgeyBPcHRpb25hbCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9tb2RlbC5jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsSW5mb1NlcnZpY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvbW9kZWwuY29udGV4dCc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm92aWRlZCBpbiB0aGUgcm9vdCBtb2R1bGUgZm9yIGNvbmZpZ3VyaW5nIGVudHJpZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlQ29uZmlnIHtcbiAgYWJzdHJhY3QgZW50cmllczogRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUVudHJ5W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUVudHJ5PFQgPSB1bmtub3duPiBleHRlbmRzIE9taXQ8RGJ4TW9kZWxUeXBlSW5mbywgJ2NhblNlZ3VlVG9WaWV3JyB8ICdtb2RlbFR5cGUnPiB7XG4gIC8qKlxuICAgKiBJZGVudGl0eSBvZiB0aGUgaXRlbSBiZWluZyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk6IEZpcmVzdG9yZU1vZGVsSWRlbnRpdHk7XG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm8gZm9yIHRoZSBpbnB1dCBkYXRhLlxuICAgKlxuICAgKiBJZiBubyBpY29uIGlzIHByb3ZpZGVkLCBpdCB1c2VzIHRoZSBkZWZhdWx0IGljb24gY29uZmlndXJlZCBpbiB0aGlzIGVudHJ5LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvRmFjdG9yeTogRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbywgVD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvIGV4dGVuZHMgSWNvbkFuZFRpdGxlIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvPFQgPSB1bmtub3duPiBleHRlbmRzIERieE1vZGVsVHlwZUluZm8sIFBpY2s8RGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUVudHJ5PFQ+LCAnaWRlbnRpdHknIHwgJ2Rpc3BsYXlJbmZvRmFjdG9yeSc+IHt9XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlTW9kZWxUeXBlc01hcCA9IERieE1vZGVsVHlwZXNNYXA8RGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvPjtcblxuLyoqXG4gKiBQcm92aWRlcyBtb2RlbCB0eXBlIGluZm9ybWF0aW9uIGFib3V0IG1vZGVscyByZWdpc3RlcmVkIHdpdGhpbiBGaXJlYmFzZS5cbiAqXG4gKiBBdXRvbWF0aWNhbGx5IGNvbmZpZ3VyZXMgdGhlIERieE1vZGVsVHlwZXNTZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlOiBEYnhGaXJlYmFzZU1vZGVsQ29udGV4dFNlcnZpY2UsIHJlYWRvbmx5IGRieE1vZGVsVHlwZXNTZXJ2aWNlOiBEYnhNb2RlbFR5cGVzU2VydmljZTxEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8+LCBAT3B0aW9uYWwoKSBjb25maWc/OiBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5yZWdpc3Rlcihjb25maWcuZW50cmllcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGlzcGxheUluZm88VD4odHlwZUluZm86IERieEZpcmViYXNlTW9kZWxUeXBlSW5mbzxUPiwgZGF0YTogVCkge1xuICAgIGxldCBkaXNwbGF5SW5mbzogRGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvO1xuXG4gICAgaWYgKGRhdGEgIT0gbnVsbCkge1xuICAgICAgZGlzcGxheUluZm8gPSB0eXBlSW5mby5kaXNwbGF5SW5mb0ZhY3RvcnkoZGF0YSk7XG4gICAgICBkaXNwbGF5SW5mby5pY29uID0gZGlzcGxheUluZm8uaWNvbiB8fCB0eXBlSW5mby5pY29uOyAvLyBzZXQgZGVmYXVsdCBpY29uXG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BsYXlJbmZvID0gdGhpcy5nZXREZWZhdWx0RGlzcGxheUluZm8odHlwZUluZm8pO1xuICAgIH1cblxuICAgIHJldHVybiBkaXNwbGF5SW5mbztcbiAgfVxuXG4gIGdldERlZmF1bHREaXNwbGF5SW5mbzxUID0gdW5rbm93bj4odHlwZUluZm86IERieEZpcmViYXNlTW9kZWxUeXBlSW5mbzxUPikge1xuICAgIC8vIFRPRE86IE1ha2UgY29uZmlndXJhYmxlXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0eXBlSW5mby5sYWJlbCA/PyAnJyxcbiAgICAgIGljb246ICd3YXJuaW5nJ1xuICAgIH07XG4gIH1cblxuICAvLyBNQVJLOiBSZWdpc3RlclxuICByZWdpc3RlcihlbnRyaWVzOiBBcnJheU9yVmFsdWU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUVudHJ5Pikge1xuICAgIGNvbnN0IHR5cGVDb25maWdzID0gYXNBcnJheShlbnRyaWVzKS5tYXAoKHgpID0+ICh7IC4uLngsIG1vZGVsVHlwZTogeC5pZGVudGl0eS5tb2RlbFR5cGUgfSkpO1xuICAgIHRoaXMuZGJ4TW9kZWxUeXBlc1NlcnZpY2UuYWRkVHlwZUNvbmZpZ3ModHlwZUNvbmZpZ3MpO1xuICB9XG5cbiAgLy8gTUFSSzogUmV0cmlldmFsXG4gIGN1cnJlbnRJbmZvRm9yVHlwZSh0eXBlOiBNb2RlbFR5cGVTdHJpbmcgfCBGaXJlc3RvcmVDb2xsZWN0aW9uVHlwZSk6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvPj4ge1xuICAgIHJldHVybiB0aGlzLmRieE1vZGVsVHlwZXNTZXJ2aWNlLnR5cGVzTWFwJC5waXBlKG1hcCgoeCkgPT4geFt0eXBlXSkpO1xuICB9XG5cbiAgaW5mb0ZvclR5cGUodHlwZTogTW9kZWxUeXBlU3RyaW5nIHwgRmlyZXN0b3JlQ29sbGVjdGlvblR5cGUpOiBPYnNlcnZhYmxlPERieEZpcmViYXNlTW9kZWxUeXBlSW5mbz4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmZvRm9yVHlwZSh0eXBlKS5waXBlKFxuICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgIGlmICgheCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2U6IGNvbnRhaW5lZCBubyBpbmZvIGZvciB0eXBlIFwiJHt0eXBlfVwiLiBFbnN1cmUgdGhlIGNvcnJlY3QgdHlwZSB3YXMgZW50ZXJlZCwgYW5kIHRoYXQgdGhlIHR5cGUgaXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmApO1xuICAgICAgICAgIHRocm93IHg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geCBhcyBEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm87XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBpbnN0YW5jZUZvcktleTxEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8YW55PiA9IGFueSwgUiBleHRlbmRzIEdyYW50ZWRSb2xlID0gR3JhbnRlZFJvbGU+KGtleSQ6IE9ic2VydmFibGVPclZhbHVlPEZpcmVzdG9yZU1vZGVsS2V5Pik6IERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZTxELCBSPiB7XG4gICAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2U8RCwgUj4odGhpcy5kYnhGaXJlYmFzZU1vZGVsQ29udGV4dFNlcnZpY2UubW9kZWxJbmZvSW5zdGFuY2U8RCwgUj4oa2V5JCksIHRoaXMpO1xuICB9XG5cbiAgaW5zdGFuY2VQYWlyc0ZvcktleXMoa2V5czogQXJyYXlPclZhbHVlPE9ic2VydmFibGVPclZhbHVlPEZpcmVzdG9yZU1vZGVsS2V5Pj4pIHtcbiAgICByZXR1cm4gZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpckZvcktleXNGYWN0b3J5KHRoaXMpKGtleXMpO1xuICB9XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gcGFpciBmb3IgYW4gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpcjxEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8YW55PiA9IGFueSwgUiBleHRlbmRzIEdyYW50ZWRSb2xlID0gR3JhbnRlZFJvbGU+IHtcbiAgcmVhZG9ubHkga2V5OiBGaXJlc3RvcmVNb2RlbEtleTtcbiAgcmVhZG9ubHkgaW5zdGFuY2U6IERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZTxELCBSPjtcbiAgcmVhZG9ubHkgZGlzcGxheUluZm86IERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbztcbiAgcmVhZG9ubHkgc2VndWVSZWY6IE1heWJlPENsaWNrYWJsZUFuY2hvckxpbmtTZWd1ZVJlZj47XG59XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZVBhaXJGb3JLZXlzRmFjdG9yeSA9IChrZXlzOiBBcnJheU9yVmFsdWU8T2JzZXJ2YWJsZU9yVmFsdWU8RmlyZXN0b3JlTW9kZWxLZXk+PikgPT4gT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2VQYWlyW10+O1xuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpckZvcktleXNGYWN0b3J5KHNlcnZpY2U6IERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpOiBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2VQYWlyRm9yS2V5c0ZhY3Rvcnkge1xuICByZXR1cm4gKGtleXM6IEFycmF5T3JWYWx1ZTxPYnNlcnZhYmxlT3JWYWx1ZTxGaXJlc3RvcmVNb2RlbEtleT4+KSA9PiB7XG4gICAgY29uc3QgaW5zdGFuY2VzID0gYXNBcnJheShrZXlzKS5tYXAoKHgpID0+IHNlcnZpY2UuaW5zdGFuY2VGb3JLZXkoeCkuaW5zdGFuY2VQYWlyJCk7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoaW5zdGFuY2VzKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2U8RCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PGFueT4gPSBhbnksIFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlPiB7XG4gIHJlYWRvbmx5IGtleSQgPSB0aGlzLm1vZGVsSW5mb0luc3RhbmNlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5rZXkkKSk7XG4gIHJlYWRvbmx5IG1vZGVsVHlwZSQgPSB0aGlzLm1vZGVsSW5mb0luc3RhbmNlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5tb2RlbFR5cGUkKSk7XG4gIHJlYWRvbmx5IHNuYXBzaG90RGF0YSQgPSB0aGlzLm1vZGVsSW5mb0luc3RhbmNlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdERhdGEkKSk7XG5cbiAgcmVhZG9ubHkgdHlwZUluZm8kID0gdGhpcy5tb2RlbFR5cGUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB0aGlzLmRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UuaW5mb0ZvclR5cGUoeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpZGVudGl0eSQgPSB0aGlzLnR5cGVJbmZvJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pZGVudGl0eSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlZ3VlUmVmJDogT2JzZXJ2YWJsZTxNYXliZTxTZWd1ZVJlZj4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5rZXkkLCB0aGlzLnR5cGVJbmZvJF0pLnBpcGUoXG4gICAgbWFwKChba2V5LCBpbmZvXSkgPT4gKGluZm8uc3JlZiA/IGluZm8uc3JlZihrZXkpIDogdW5kZWZpbmVkKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5SW5mbyQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudHlwZUluZm8kLCB0aGlzLnNuYXBzaG90RGF0YSRdKS5waXBlKFxuICAgIG1hcCgoW3R5cGVJbmZvLCBkYXRhXSkgPT4gdGhpcy5kYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmdldERpc3BsYXlJbmZvKHR5cGVJbmZvLCBkYXRhKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjbGlja2FibGVTZWd1ZVJlZiQ6IE9ic2VydmFibGU8TWF5YmU8Q2xpY2thYmxlQW5jaG9yTGlua1NlZ3VlUmVmPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlZ3VlUmVmJCwgdGhpcy5kaXNwbGF5SW5mbyRdKS5waXBlKFxuICAgIG1hcCgoW3NlZ3VlUmVmLCBkaXNwbGF5SW5mb10pID0+IHtcbiAgICAgIGxldCByZWY6IE1heWJlPENsaWNrYWJsZUFuY2hvckxpbmtTZWd1ZVJlZj4gPSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChzZWd1ZVJlZikge1xuICAgICAgICByZWYgPSB7XG4gICAgICAgICAgLi4uc2VndWVSZWYsXG4gICAgICAgICAgdGl0bGU6IGRpc3BsYXlJbmZvLnRpdGxlLFxuICAgICAgICAgIGljb246IGRpc3BsYXlJbmZvLmljb25cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlZjtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGluc3RhbmNlUGFpciQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpcj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNsaWNrYWJsZVNlZ3VlUmVmJCwgdGhpcy5kaXNwbGF5SW5mbyQsIHRoaXMua2V5JF0pLnBpcGUoXG4gICAgbWFwKChbc2VndWVSZWYsIGRpc3BsYXlJbmZvLCBrZXldKSA9PiAoeyBzZWd1ZVJlZiwgZGlzcGxheUluZm8sIGtleSwgaW5zdGFuY2U6IHRoaXMgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbW9kZWxJbmZvSW5zdGFuY2UkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbEluZm9TZXJ2aWNlSW5zdGFuY2U8RCwgUj4+LCByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlOiBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { distinctUntilModelKeyChange } from '@dereekb/rxjs';
|
|
2
|
+
import { DbxModelObjectStateService } from '@dereekb/dbx-web';
|
|
3
|
+
import { Directive, Input } from '@angular/core';
|
|
4
|
+
import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
|
|
5
|
+
import { combineLatestWith, first, map, switchMap } from 'rxjs';
|
|
6
|
+
import { DbxFirebaseDocumentStoreDirective } from '../store/store.document.directive';
|
|
7
|
+
import { DbxFirebaseModelTypesService } from './model.types.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../store/store.document.directive";
|
|
10
|
+
import * as i2 from "@dereekb/dbx-web";
|
|
11
|
+
import * as i3 from "./model.types.service";
|
|
12
|
+
/**
|
|
13
|
+
* Used with a DbxFirebaseDocumentStoreDirective to emit model viewed events.
|
|
14
|
+
*/
|
|
15
|
+
export class DbxfirebaseModelViewedEventDirective extends AbstractSubscriptionDirective {
|
|
16
|
+
constructor(dbxFirebaseDocumentStoreDirective, dbxModelObjectStateService, dbxFirebaseModelTypesService) {
|
|
17
|
+
super();
|
|
18
|
+
this.dbxFirebaseDocumentStoreDirective = dbxFirebaseDocumentStoreDirective;
|
|
19
|
+
this.dbxModelObjectStateService = dbxModelObjectStateService;
|
|
20
|
+
this.dbxFirebaseModelTypesService = dbxFirebaseModelTypesService;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.sub = this.dbxFirebaseDocumentStoreDirective.data$
|
|
24
|
+
.pipe(
|
|
25
|
+
//
|
|
26
|
+
distinctUntilModelKeyChange(), combineLatestWith(this.dbxFirebaseDocumentStoreDirective.modelIdentity$.pipe(switchMap((x) => this.dbxFirebaseModelTypesService.infoForType(x.modelType)), first()), this.dbxFirebaseDocumentStoreDirective.key$), map(([data, typeInfo, key]) => {
|
|
27
|
+
const displayInfo = this.dbxFirebaseModelTypesService.getDisplayInfo(typeInfo, data);
|
|
28
|
+
const pair = {
|
|
29
|
+
key,
|
|
30
|
+
type: typeInfo.modelType,
|
|
31
|
+
name: displayInfo.title
|
|
32
|
+
};
|
|
33
|
+
return pair;
|
|
34
|
+
}))
|
|
35
|
+
.subscribe((modelKeyTypeNamePair) => {
|
|
36
|
+
this.dbxModelObjectStateService.emitModelViewEvent({ modelKeyTypeNamePair, context: this.context || undefined });
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
DbxfirebaseModelViewedEventDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxfirebaseModelViewedEventDirective, deps: [{ token: i1.DbxFirebaseDocumentStoreDirective }, { token: i2.DbxModelObjectStateService }, { token: i3.DbxFirebaseModelTypesService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
+
DbxfirebaseModelViewedEventDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxfirebaseModelViewedEventDirective, selector: "[dbxFirebaseModelViewedEvent]", inputs: { context: ["dbxFirebaseModelViewedEvent", "context"] }, usesInheritance: true, ngImport: i0 });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxfirebaseModelViewedEventDirective, decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: '[dbxFirebaseModelViewedEvent]'
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseDocumentStoreDirective }, { type: i2.DbxModelObjectStateService }, { type: i3.DbxFirebaseModelTypesService }]; }, propDecorators: { context: [{
|
|
48
|
+
type: Input,
|
|
49
|
+
args: ['dbxFirebaseModelViewedEvent']
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMudmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLnZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQUdyRTs7R0FFRztBQUlILE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSw2QkFBNkI7SUFJckYsWUFBcUIsaUNBQW9FLEVBQVcsMEJBQXNELEVBQVcsNEJBQTBEO1FBQzdOLEtBQUssRUFBRSxDQUFDO1FBRFcsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFtQztRQUFXLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFBVyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO0lBRS9OLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSzthQUNwRCxJQUFJO1FBQ0gsRUFBRTtRQUNGLDJCQUEyQixFQUFFLEVBQzdCLGlCQUFpQixDQUNmLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzVFLEtBQUssRUFBRSxDQUNSLEVBQ0QsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FDNUMsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRixNQUFNLElBQUksR0FBeUI7Z0JBQ2pDLEdBQUc7Z0JBQ0gsSUFBSSxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUs7YUFDeEIsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztrSUFuQ1Usb0NBQW9DO3NIQUFwQyxvQ0FBb0M7NEZBQXBDLG9DQUFvQztrQkFIaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO2lCQUMxQzs0TUFHQyxPQUFPO3NCQUROLEtBQUs7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlzdGluY3RVbnRpbE1vZGVsS2V5Q2hhbmdlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhNb2RlbE9iamVjdFN0YXRlU2VydmljZSwgTW9kZWxWaWV3Q29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3RXaXRoLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4uL3N0b3JlL3N0b3JlLmRvY3VtZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsS2V5VHlwZU5hbWVQYWlyIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogVXNlZCB3aXRoIGEgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlIHRvIGVtaXQgbW9kZWwgdmlld2VkIGV2ZW50cy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlTW9kZWxWaWV3ZWRFdmVudF0nXG59KVxuZXhwb3J0IGNsYXNzIERieGZpcmViYXNlTW9kZWxWaWV3ZWRFdmVudERpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdkYnhGaXJlYmFzZU1vZGVsVmlld2VkRXZlbnQnKVxuICBjb250ZXh0PzogTW9kZWxWaWV3Q29udGV4dCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSwgcmVhZG9ubHkgZGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2U6IERieE1vZGVsT2JqZWN0U3RhdGVTZXJ2aWNlLCByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlOiBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuZGF0YSRcbiAgICAgIC5waXBlKFxuICAgICAgICAvL1xuICAgICAgICBkaXN0aW5jdFVudGlsTW9kZWxLZXlDaGFuZ2UoKSxcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgoXG4gICAgICAgICAgdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUubW9kZWxJZGVudGl0eSQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoeCkgPT4gdGhpcy5kYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmluZm9Gb3JUeXBlKHgubW9kZWxUeXBlKSksXG4gICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLmRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZS5rZXkkXG4gICAgICAgICksXG4gICAgICAgIG1hcCgoW2RhdGEsIHR5cGVJbmZvLCBrZXldKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGlzcGxheUluZm8gPSB0aGlzLmRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UuZ2V0RGlzcGxheUluZm8odHlwZUluZm8sIGRhdGEpO1xuXG4gICAgICAgICAgY29uc3QgcGFpcjogTW9kZWxLZXlUeXBlTmFtZVBhaXIgPSB7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB0eXBlOiB0eXBlSW5mby5tb2RlbFR5cGUsXG4gICAgICAgICAgICBuYW1lOiBkaXNwbGF5SW5mby50aXRsZVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXR1cm4gcGFpcjtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG1vZGVsS2V5VHlwZU5hbWVQYWlyKSA9PiB7XG4gICAgICAgIHRoaXMuZGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2UuZW1pdE1vZGVsVmlld0V2ZW50KHsgbW9kZWxLZXlUeXBlTmFtZVBhaXIsIGNvbnRleHQ6IHRoaXMuY29udGV4dCB8fCB1bmRlZmluZWQgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './model.store.module';
|
|
2
|
+
export * from './store.collection';
|
|
3
|
+
export * from './store.collection.change.directive';
|
|
4
|
+
export * from './store.collection.change.if.directive';
|
|
5
|
+
export * from './store.collection.directive';
|
|
6
|
+
export * from './store.collection.list.directive';
|
|
7
|
+
export * from './store.document';
|
|
8
|
+
export * from './store.document.crud';
|
|
9
|
+
export * from './store.document.auth.directive';
|
|
10
|
+
export * from './store.document.directive';
|
|
11
|
+
export * from './store.document.router.directive';
|
|
12
|
+
export * from './store.document.router.key.directive';
|
|
13
|
+
export * from './store.subcollection';
|
|
14
|
+
export * from './store.subcollection.document';
|
|
15
|
+
export * from './store.subcollection.directive';
|
|
16
|
+
export * from './store.subcollection.rxjs';
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGVsLnN0b3JlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5pZi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24ubGlzdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5kb2N1bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmRvY3VtZW50LmNydWQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5hdXRoLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmRvY3VtZW50LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmRvY3VtZW50LnJvdXRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5yb3V0ZXIua2V5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLnN1YmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLmRvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLnJ4anMnO1xuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DbxFirebaseCollectionChangeDirective } from './store.collection.change.directive';
|
|
3
|
+
import { DbxFirebaseCollectionHasChangeDirective } from './store.collection.change.if.directive';
|
|
4
|
+
import { DbxFirebaseCollectionListDirective } from './store.collection.list.directive';
|
|
5
|
+
import { DbxFirebaseDocumentAuthIdDirective } from './store.document.auth.directive';
|
|
6
|
+
import { DbxFirebaseDocumentStoreRouteIdDirective } from './store.document.router.directive';
|
|
7
|
+
import { DbxFirebaseDocumentStoreRouteKeyDirective } from './store.document.router.key.directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const declarations = [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective];
|
|
10
|
+
export class DbxFirebaseModelStoreModule {
|
|
11
|
+
}
|
|
12
|
+
DbxFirebaseModelStoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
DbxFirebaseModelStoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, declarations: [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective], exports: [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective] });
|
|
14
|
+
DbxFirebaseModelStoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
imports: [],
|
|
19
|
+
declarations,
|
|
20
|
+
exports: declarations
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuc3RvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9tb2RlbC5zdG9yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFFbEcsTUFBTSxZQUFZLEdBQUcsQ0FBQyx5Q0FBeUMsRUFBRSxrQ0FBa0MsRUFBRSxvQ0FBb0MsRUFBRSx1Q0FBdUMsRUFBRSx3Q0FBd0MsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0FBT2xRLE1BQU0sT0FBTywyQkFBMkI7O3lIQUEzQiwyQkFBMkI7MEhBQTNCLDJCQUEyQixpQkFQbEIseUNBQXlDLEVBQUUsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQUUsdUNBQXVDLEVBQUUsd0NBQXdDLEVBQUUsa0NBQWtDLGFBQTFPLHlDQUF5QyxFQUFFLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUFFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLGtDQUFrQzswSEFPblAsMkJBQTJCOzRGQUEzQiwyQkFBMkI7a0JBTHZDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWTtvQkFDWixPQUFPLEVBQUUsWUFBWTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uSGFzQ2hhbmdlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5pZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbi5saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50QXV0aElkRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5hdXRoLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUlkRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5yb3V0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlS2V5RGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5yb3V0ZXIua2V5LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IGRlY2xhcmF0aW9ucyA9IFtEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleURpcmVjdGl2ZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTGlzdERpcmVjdGl2ZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlRGlyZWN0aXZlLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25IYXNDaGFuZ2VEaXJlY3RpdmUsIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlSWREaXJlY3RpdmUsIERieEZpcmViYXNlRG9jdW1lbnRBdXRoSWREaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zLFxuICBleHBvcnRzOiBkZWNsYXJhdGlvbnNcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbFN0b3JlTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { DbxFirebaseCollectionStoreDirective } from './store.collection.directive';
|
|
3
|
+
import { dbxFirebaseCollectionChangeWatcher } from '../../loader/collection.change.watcher';
|
|
4
|
+
import { dbxFirebaseCollectionChangeTriggerForWatcher } from '../../loader/collection.change.trigger';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./store.collection.directive";
|
|
7
|
+
/**
|
|
8
|
+
* Used to watch query doc changes and respond to them accordingly.
|
|
9
|
+
*/
|
|
10
|
+
export class DbxFirebaseCollectionChangeDirective {
|
|
11
|
+
constructor(dbxFirebaseCollectionStoreDirective) {
|
|
12
|
+
this.dbxFirebaseCollectionStoreDirective = dbxFirebaseCollectionStoreDirective;
|
|
13
|
+
this._watcher = dbxFirebaseCollectionChangeWatcher(this.dbxFirebaseCollectionStoreDirective.store);
|
|
14
|
+
this._trigger = dbxFirebaseCollectionChangeTriggerForWatcher(this._watcher, () => this.restart());
|
|
15
|
+
this.mode$ = this._watcher.mode$;
|
|
16
|
+
this.event$ = this._watcher.event$;
|
|
17
|
+
this.hasChangeAvailable$ = this._watcher.hasChangeAvailable$;
|
|
18
|
+
this.triggered$ = this._watcher.triggered$;
|
|
19
|
+
this.trigger$ = this._watcher.trigger$;
|
|
20
|
+
}
|
|
21
|
+
get store() {
|
|
22
|
+
return this._watcher.store;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this._trigger.init();
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this._watcher.destroy();
|
|
29
|
+
this._trigger.destroy();
|
|
30
|
+
}
|
|
31
|
+
get mode() {
|
|
32
|
+
return this._watcher.mode;
|
|
33
|
+
}
|
|
34
|
+
set mode(mode) {
|
|
35
|
+
this._watcher.mode = mode || 'off';
|
|
36
|
+
}
|
|
37
|
+
restart() {
|
|
38
|
+
this.dbxFirebaseCollectionStoreDirective.store.restart();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
DbxFirebaseCollectionChangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, deps: [{ token: i1.DbxFirebaseCollectionStoreDirective }], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
+
DbxFirebaseCollectionChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseCollectionChangeDirective, selector: "[dbxFirebaseCollectionChange]", inputs: { mode: ["dbxFirebaseCollectionChange", "mode"] }, ngImport: i0 });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, decorators: [{
|
|
44
|
+
type: Directive,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: '[dbxFirebaseCollectionChange]'
|
|
47
|
+
}]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseCollectionStoreDirective }]; }, propDecorators: { mode: [{
|
|
49
|
+
type: Input,
|
|
50
|
+
args: ['dbxFirebaseCollectionChange']
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXBFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sRUFBc0Msa0NBQWtDLEVBQTBGLE1BQU0sd0NBQXdDLENBQUM7QUFFeE4sT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUV0Rzs7R0FFRztBQUlILE1BQU0sT0FBTyxvQ0FBb0M7SUFjL0MsWUFBcUIsbUNBQWlGO1FBQWpGLHdDQUFtQyxHQUFuQyxtQ0FBbUMsQ0FBOEM7UUFiOUYsYUFBUSxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RixhQUFRLEdBQUcsNENBQTRDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU1RixVQUFLLEdBQThELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3ZGLFdBQU0sR0FBd0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkYsd0JBQW1CLEdBQXdCLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7UUFDN0UsZUFBVSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUMzRCxhQUFRLEdBQXFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBTTRDLENBQUM7SUFKMUcsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBSUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQStEO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNELENBQUM7O2tJQXBDVSxvQ0FBb0M7c0hBQXBDLG9DQUFvQzs0RkFBcEMsb0NBQW9DO2tCQUhoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7aUJBQzFDOzBIQTJCSyxJQUFJO3NCQURQLEtBQUs7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyLCBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyRXZlbnQsIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXJUcmlnZ2VyTW9kZSB9IGZyb20gJy4uLy4uL2xvYWRlci9jb2xsZWN0aW9uLmNoYW5nZS53YXRjaGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJGb3JXYXRjaGVyIH0gZnJvbSAnLi4vLi4vbG9hZGVyL2NvbGxlY3Rpb24uY2hhbmdlLnRyaWdnZXInO1xuXG4vKipcbiAqIFVzZWQgdG8gd2F0Y2ggcXVlcnkgZG9jIGNoYW5nZXMgYW5kIHJlc3BvbmQgdG8gdGhlbSBhY2NvcmRpbmdseS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZV0nXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZURpcmVjdGl2ZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiBpbXBsZW1lbnRzIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXI8Uz4sIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfd2F0Y2hlciA9IGRieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXIodGhpcy5kYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZS5zdG9yZSk7XG4gIHByaXZhdGUgX3RyaWdnZXIgPSBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VyRm9yV2F0Y2hlcih0aGlzLl93YXRjaGVyLCAoKSA9PiB0aGlzLnJlc3RhcnQoKSk7XG5cbiAgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlPiA9IHRoaXMuX3dhdGNoZXIubW9kZSQ7XG4gIHJlYWRvbmx5IGV2ZW50JDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyRXZlbnQ+ID0gdGhpcy5fd2F0Y2hlci5ldmVudCQ7XG4gIHJlYWRvbmx5IGhhc0NoYW5nZUF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl93YXRjaGVyLmhhc0NoYW5nZUF2YWlsYWJsZSQ7XG4gIHJlYWRvbmx5IHRyaWdnZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl93YXRjaGVyLnRyaWdnZXJlZCQ7XG4gIHJlYWRvbmx5IHRyaWdnZXIkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5fd2F0Y2hlci50cmlnZ2VyJDtcblxuICBnZXQgc3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dhdGNoZXIuc3RvcmU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8VCwgRCwgUz4pIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlci5pbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl93YXRjaGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLl90cmlnZ2VyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlJylcbiAgZ2V0IG1vZGUoKTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fd2F0Y2hlci5tb2RlO1xuICB9XG5cbiAgc2V0IG1vZGUobW9kZTogTWF5YmU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlIHwgJyc+KSB7XG4gICAgdGhpcy5fd2F0Y2hlci5tb2RlID0gbW9kZSB8fCAnb2ZmJztcbiAgfVxuXG4gIHJlc3RhcnQoKSB7XG4gICAgdGhpcy5kYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZS5zdG9yZS5yZXN0YXJ0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { TemplateRef, ViewContainerRef, Directive, Input } from '@angular/core';
|
|
2
|
+
import { AbstractIfDirective } from '@dereekb/dbx-core';
|
|
3
|
+
import { shareReplay, BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
4
|
+
import { DbxFirebaseCollectionChangeDirective } from './store.collection.change.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./store.collection.change.directive";
|
|
7
|
+
/**
|
|
8
|
+
* Structural directive that displays the content when the target change is detected.
|
|
9
|
+
*
|
|
10
|
+
* Can specify which changes to appear on.
|
|
11
|
+
*/
|
|
12
|
+
export class DbxFirebaseCollectionHasChangeDirective extends AbstractIfDirective {
|
|
13
|
+
constructor(templateRef, viewContainer, directive) {
|
|
14
|
+
super(templateRef, viewContainer);
|
|
15
|
+
this.directive = directive;
|
|
16
|
+
this._mode = new BehaviorSubject('addedAndRemoved');
|
|
17
|
+
this.show$ = combineLatest([this._mode, this.directive.event$]).pipe(map(([mode, event]) => {
|
|
18
|
+
let show = false;
|
|
19
|
+
if (event.type !== 'none') {
|
|
20
|
+
switch (mode) {
|
|
21
|
+
case 'all':
|
|
22
|
+
show = true;
|
|
23
|
+
break;
|
|
24
|
+
case 'addedAndRemoved':
|
|
25
|
+
show = event.type === 'addedAndRemoved' || event.type === 'added' || event.type === 'removed';
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
show = event.type === mode;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return show;
|
|
33
|
+
}), shareReplay(1));
|
|
34
|
+
}
|
|
35
|
+
get mode() {
|
|
36
|
+
return this._mode.value;
|
|
37
|
+
}
|
|
38
|
+
set mode(mode) {
|
|
39
|
+
this._mode.next(mode || 'addedAndRemoved');
|
|
40
|
+
}
|
|
41
|
+
ngOnDestroy() {
|
|
42
|
+
super.ngOnDestroy();
|
|
43
|
+
this._mode.complete();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
DbxFirebaseCollectionHasChangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionHasChangeDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.DbxFirebaseCollectionChangeDirective }], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
+
DbxFirebaseCollectionHasChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseCollectionHasChangeDirective, selector: "[dbxFirebaseCollectionHasChange]", inputs: { mode: ["dbxFirebaseCollectionHasChange", "mode"] }, usesInheritance: true, ngImport: i0 });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionHasChangeDirective, decorators: [{
|
|
49
|
+
type: Directive,
|
|
50
|
+
args: [{
|
|
51
|
+
selector: '[dbxFirebaseCollectionHasChange]'
|
|
52
|
+
}]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.DbxFirebaseCollectionChangeDirective }]; }, propDecorators: { mode: [{
|
|
54
|
+
type: Input,
|
|
55
|
+
args: ['dbxFirebaseCollectionHasChange']
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5pZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQU0zRjs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHVDQUF3QyxTQUFRLG1CQUFtQjtJQTBCOUUsWUFBWSxXQUFpQyxFQUFFLGFBQStCLEVBQWtCLFNBQXdEO1FBQ3RKLEtBQUssQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFENEQsY0FBUyxHQUFULFNBQVMsQ0FBK0M7UUF6QmhKLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBOEMsaUJBQWlCLENBQUMsQ0FBQztRQUUzRixVQUFLLEdBQXdCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNwQixJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7WUFFakIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDekIsUUFBUSxJQUFJLEVBQUU7b0JBQ1osS0FBSyxLQUFLO3dCQUNSLElBQUksR0FBRyxJQUFJLENBQUM7d0JBQ1osTUFBTTtvQkFDUixLQUFLLGlCQUFpQjt3QkFDcEIsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEtBQUssaUJBQWlCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7d0JBQzlGLE1BQU07b0JBQ1I7d0JBQ0UsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO3dCQUMzQixNQUFNO2lCQUNUO2FBQ0Y7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQUVELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQTZEO1FBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3FJQTFDVSx1Q0FBdUM7eUhBQXZDLHVDQUF1Qzs0RkFBdkMsdUNBQXVDO2tCQUhuRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7aUJBQzdDO29MQWdDSyxJQUFJO3NCQURQLEtBQUs7dUJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RJZkRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmNoYW5nZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyQ2hhbmdlVHlwZSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29sbGVjdGlvbkhhc0NoYW5nZURpcmVjdGl2ZU1vZGUgPSAnYWxsJyB8IEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlckNoYW5nZVR5cGU7XG5cbi8qKlxuICogU3RydWN0dXJhbCBkaXJlY3RpdmUgdGhhdCBkaXNwbGF5cyB0aGUgY29udGVudCB3aGVuIHRoZSB0YXJnZXQgY2hhbmdlIGlzIGRldGVjdGVkLlxuICpcbiAqIENhbiBzcGVjaWZ5IHdoaWNoIGNoYW5nZXMgdG8gYXBwZWFyIG9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VDb2xsZWN0aW9uSGFzQ2hhbmdlXSdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uSGFzQ2hhbmdlRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RJZkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX21vZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieEZpcmViYXNlQ29sbGVjdGlvbkhhc0NoYW5nZURpcmVjdGl2ZU1vZGU+KCdhZGRlZEFuZFJlbW92ZWQnKTtcblxuICByZWFkb25seSBzaG93JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX21vZGUsIHRoaXMuZGlyZWN0aXZlLmV2ZW50JF0pLnBpcGUoXG4gICAgbWFwKChbbW9kZSwgZXZlbnRdKSA9PiB7XG4gICAgICBsZXQgc2hvdyA9IGZhbHNlO1xuXG4gICAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ25vbmUnKSB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgICAgICBzaG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2FkZGVkQW5kUmVtb3ZlZCc6XG4gICAgICAgICAgICBzaG93ID0gZXZlbnQudHlwZSA9PT0gJ2FkZGVkQW5kUmVtb3ZlZCcgfHwgZXZlbnQudHlwZSA9PT0gJ2FkZGVkJyB8fCBldmVudC50eXBlID09PSAncmVtb3ZlZCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc2hvdyA9IGV2ZW50LnR5cGUgPT09IG1vZGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2hvdztcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiwgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgcHVibGljIHJlYWRvbmx5IGRpcmVjdGl2ZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlRGlyZWN0aXZlPHVua25vd24+KSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXIpO1xuICB9XG5cbiAgQElucHV0KCdkYnhGaXJlYmFzZUNvbGxlY3Rpb25IYXNDaGFuZ2UnKVxuICBnZXQgbW9kZSgpOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25IYXNDaGFuZ2VEaXJlY3RpdmVNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZS52YWx1ZTtcbiAgfVxuXG4gIHNldCBtb2RlKG1vZGU6IE1heWJlPERieEZpcmViYXNlQ29sbGVjdGlvbkhhc0NoYW5nZURpcmVjdGl2ZU1vZGUgfCAnJz4pIHtcbiAgICB0aGlzLl9tb2RlLm5leHQobW9kZSB8fCAnYWRkZWRBbmRSZW1vdmVkJyk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX21vZGUuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|