@dereekb/dbx-web 9.19.4 → 9.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/calendar/package.json +2 -2
  2. package/esm2020/lib/extension/index.mjs +2 -1
  3. package/esm2020/lib/extension/model/index.mjs +9 -0
  4. package/esm2020/lib/extension/model/model.module.mjs +66 -0
  5. package/esm2020/lib/extension/model/model.state.service.mjs +25 -0
  6. package/esm2020/lib/extension/model/model.tracker.mjs +7 -0
  7. package/esm2020/lib/extension/model/model.tracker.service.mjs +42 -0
  8. package/esm2020/lib/extension/model/model.tracker.view.storage.mjs +65 -0
  9. package/esm2020/lib/extension/model/model.types.mjs +2 -0
  10. package/esm2020/lib/extension/model/model.types.service.mjs +68 -0
  11. package/esm2020/lib/extension/model/state/actions/actions.mjs +3 -0
  12. package/esm2020/lib/extension/model/state/actions/index.mjs +4 -0
  13. package/esm2020/lib/extension/model/state/actions/model.actions.mjs +3 -0
  14. package/esm2020/lib/extension/model/state/effects/tracker.effects.mjs +30 -0
  15. package/esm2020/lib/extension/model/state/index.mjs +6 -0
  16. package/esm2020/lib/extension/model/state/reducers/index.mjs +13 -0
  17. package/esm2020/lib/extension/model/state/reducers/model.module.config.mjs +8 -0
  18. package/esm2020/lib/extension/model/state/state.mjs +2 -0
  19. package/fesm2015/dereekb-dbx-web.mjs +305 -4
  20. package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
  21. package/fesm2020/dereekb-dbx-web.mjs +311 -4
  22. package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
  23. package/lib/extension/index.d.ts +1 -0
  24. package/lib/extension/model/index.d.ts +8 -0
  25. package/lib/extension/model/model.module.d.ts +19 -0
  26. package/lib/extension/model/model.state.service.d.ts +14 -0
  27. package/lib/extension/model/model.tracker.d.ts +18 -0
  28. package/lib/extension/model/model.tracker.service.d.ts +20 -0
  29. package/lib/extension/model/model.tracker.view.storage.d.ts +23 -0
  30. package/lib/extension/model/model.types.d.ts +27 -0
  31. package/lib/extension/model/model.types.service.d.ts +32 -0
  32. package/lib/extension/model/state/actions/actions.d.ts +1 -0
  33. package/lib/extension/model/state/actions/index.d.ts +3 -0
  34. package/lib/extension/model/state/actions/model.actions.d.ts +8 -0
  35. package/lib/extension/model/state/effects/tracker.effects.d.ts +16 -0
  36. package/lib/extension/model/state/index.d.ts +5 -0
  37. package/lib/extension/model/state/reducers/index.d.ts +15 -0
  38. package/lib/extension/model/state/reducers/model.module.config.d.ts +5 -0
  39. package/lib/extension/model/state/state.d.ts +2 -0
  40. package/mapbox/package.json +3 -3
  41. package/package.json +4 -3
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web/calendar",
3
- "version": "9.19.4",
3
+ "version": "9.20.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.2.0",
6
6
  "@angular/core": "^14.2.0",
@@ -8,7 +8,7 @@
8
8
  "rxjs": "^7.5.0",
9
9
  "@angular/material": "^14.2.0",
10
10
  "angular-calendar": "^0.30.1",
11
- "@dereekb/dbx-web": "9.19.4"
11
+ "@dereekb/dbx-web": "9.20.0"
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.3.0"
@@ -1,2 +1,3 @@
1
+ export * from './model';
1
2
  export * from './widget';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi93aWRnZXQnO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldCc7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export * from './state';
2
+ export * from './model.module';
3
+ export * from './model.state.service';
4
+ export * from './model.tracker.service';
5
+ export * from './model.tracker';
6
+ export * from './model.tracker.view.storage';
7
+ export * from './model.types.service';
8
+ export * from './model.types';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC50cmFja2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC50cmFja2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwudHJhY2tlci52aWV3LnN0b3JhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwudHlwZXMnO1xuIl19
@@ -0,0 +1,66 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { DbxInjectionComponentModule, SimpleStorageAccessorFactory } from '@dereekb/dbx-core';
4
+ import { EffectsModule } from '@ngrx/effects';
5
+ import { StoreModule } from '@ngrx/store';
6
+ import { DbxListLayoutModule } from '../../layout/list/list.layout.module';
7
+ import { DbxModelTrackerService } from './model.tracker.service';
8
+ import { DbxModelViewTrackerStorage } from './model.tracker.view.storage';
9
+ import { fromDbxModel } from './state';
10
+ import { DbxModelTrackerEffects } from './state/effects/tracker.effects';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@ngrx/effects";
13
+ import * as i2 from "@ngrx/store";
14
+ export function appObjectViewTrackerStorageFactory(storageAccessorFactory) {
15
+ const accessor = storageAccessorFactory.createStorageAccessor({
16
+ prefix: 'mtvs'
17
+ });
18
+ return new DbxModelViewTrackerStorage(accessor);
19
+ }
20
+ /**
21
+ * Contains components related to displaying content related to models identified only by their model key.
22
+ */
23
+ export class DbxModelInfoModule {
24
+ static forRoot() {
25
+ return {
26
+ ngModule: DbxModelInfoModule,
27
+ providers: [
28
+ DbxModelTrackerService,
29
+ {
30
+ provide: DbxModelViewTrackerStorage,
31
+ useFactory: appObjectViewTrackerStorageFactory,
32
+ deps: [SimpleStorageAccessorFactory]
33
+ }
34
+ ]
35
+ };
36
+ }
37
+ }
38
+ DbxModelInfoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelInfoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
+ DbxModelInfoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxModelInfoModule, imports: [
40
+ //
41
+ CommonModule,
42
+ DbxListLayoutModule,
43
+ DbxInjectionComponentModule, i1.EffectsFeatureModule, i2.StoreFeatureModule] });
44
+ DbxModelInfoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelInfoModule, imports: [
45
+ //
46
+ CommonModule,
47
+ DbxListLayoutModule,
48
+ DbxInjectionComponentModule,
49
+ EffectsModule.forFeature([DbxModelTrackerEffects]),
50
+ StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelInfoModule, decorators: [{
52
+ type: NgModule,
53
+ args: [{
54
+ imports: [
55
+ //
56
+ CommonModule,
57
+ DbxListLayoutModule,
58
+ DbxInjectionComponentModule,
59
+ EffectsModule.forFeature([DbxModelTrackerEffects]),
60
+ StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)
61
+ ],
62
+ declarations: [],
63
+ exports: []
64
+ }]
65
+ }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9tb2RlbC9tb2RlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBRXpFLE1BQU0sVUFBVSxrQ0FBa0MsQ0FBQyxzQkFBb0Q7SUFDckcsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUMscUJBQXFCLENBQThCO1FBQ3pGLE1BQU0sRUFBRSxNQUFNO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRDs7R0FFRztBQWFILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1Qsc0JBQXNCO2dCQUN0QjtvQkFDRSxPQUFPLEVBQUUsMEJBQTBCO29CQUNuQyxVQUFVLEVBQUUsa0NBQWtDO29CQUM5QyxJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDckM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztnSEFiVSxrQkFBa0I7aUhBQWxCLGtCQUFrQjtRQVYzQixFQUFFO1FBQ0YsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQiwyQkFBMkI7aUhBT2xCLGtCQUFrQjtRQVYzQixFQUFFO1FBQ0YsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0IsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7NEZBSzdELGtCQUFrQjtrQkFaOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsRUFBRTt3QkFDRixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQzt3QkFDbEQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7cUJBQ3ZFO29CQUNELFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50TW9kdWxlLCBTaW1wbGVTdG9yYWdlQWNjZXNzb3JGYWN0b3J5IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEYnhMaXN0TGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vbGF5b3V0L2xpc3QvbGlzdC5sYXlvdXQubW9kdWxlJztcbmltcG9ydCB7IERieE1vZGVsVmlld1RyYWNrZXJFdmVudFNldCB9IGZyb20gJy4vbW9kZWwudHJhY2tlcic7XG5pbXBvcnQgeyBEYnhNb2RlbFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC50cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4TW9kZWxWaWV3VHJhY2tlclN0b3JhZ2UgfSBmcm9tICcuL21vZGVsLnRyYWNrZXIudmlldy5zdG9yYWdlJztcbmltcG9ydCB7IGZyb21EYnhNb2RlbCB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0IHsgRGJ4TW9kZWxUcmFja2VyRWZmZWN0cyB9IGZyb20gJy4vc3RhdGUvZWZmZWN0cy90cmFja2VyLmVmZmVjdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwT2JqZWN0Vmlld1RyYWNrZXJTdG9yYWdlRmFjdG9yeShzdG9yYWdlQWNjZXNzb3JGYWN0b3J5OiBTaW1wbGVTdG9yYWdlQWNjZXNzb3JGYWN0b3J5KTogRGJ4TW9kZWxWaWV3VHJhY2tlclN0b3JhZ2Uge1xuICBjb25zdCBhY2Nlc3NvciA9IHN0b3JhZ2VBY2Nlc3NvckZhY3RvcnkuY3JlYXRlU3RvcmFnZUFjY2Vzc29yPERieE1vZGVsVmlld1RyYWNrZXJFdmVudFNldD4oe1xuICAgIHByZWZpeDogJ210dnMnXG4gIH0pO1xuXG4gIHJldHVybiBuZXcgRGJ4TW9kZWxWaWV3VHJhY2tlclN0b3JhZ2UoYWNjZXNzb3IpO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGNvbXBvbmVudHMgcmVsYXRlZCB0byBkaXNwbGF5aW5nIGNvbnRlbnQgcmVsYXRlZCB0byBtb2RlbHMgaWRlbnRpZmllZCBvbmx5IGJ5IHRoZWlyIG1vZGVsIGtleS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIC8vXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERieExpc3RMYXlvdXRNb2R1bGUsXG4gICAgRGJ4SW5qZWN0aW9uQ29tcG9uZW50TW9kdWxlLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbRGJ4TW9kZWxUcmFja2VyRWZmZWN0c10pLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZnJvbURieE1vZGVsLmZlYXR1cmVLZXksIGZyb21EYnhNb2RlbC5yZWR1Y2VycylcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4TW9kZWxJbmZvTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYnhNb2RlbEluZm9Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERieE1vZGVsSW5mb01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBEYnhNb2RlbFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGJ4TW9kZWxWaWV3VHJhY2tlclN0b3JhZ2UsXG4gICAgICAgICAgdXNlRmFjdG9yeTogYXBwT2JqZWN0Vmlld1RyYWNrZXJTdG9yYWdlRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbU2ltcGxlU3RvcmFnZUFjY2Vzc29yRmFjdG9yeV1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Store } from '@ngrx/store';
3
+ import { onDbxModel } from './state';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngrx/store";
6
+ export class DbxModelObjectStateService {
7
+ constructor(store) {
8
+ this.store = store;
9
+ }
10
+ /**
11
+ * Emit a model viewed event.
12
+ */
13
+ emitModelViewEvent({ modelKeyTypeNamePair }) {
14
+ this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair }));
15
+ }
16
+ }
17
+ DbxModelObjectStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelObjectStateService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ DbxModelObjectStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelObjectStateService, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelObjectStateService, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root'
23
+ }]
24
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vbW9kZWwvbW9kZWwuc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBT3JDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBcUIsS0FBK0I7UUFBL0IsVUFBSyxHQUFMLEtBQUssQ0FBMEI7SUFBRyxDQUFDO0lBRXhEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsRUFBRSxvQkFBb0IsRUFBOEI7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQzs7d0hBUlUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGekIsTUFBTTs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBvbkRieE1vZGVsIH0gZnJvbSAnLi9zdGF0ZSc7XG5pbXBvcnQgeyBEYnhNb2RlbE9iamVjdFZpZXdlZFBhcmFtcyB9IGZyb20gJy4vc3RhdGUvYWN0aW9ucy9tb2RlbC5hY3Rpb25zJztcbmltcG9ydCB7IERieE1vZGVsRnVsbFN0YXRlIH0gZnJvbSAnLi9zdGF0ZS9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieE1vZGVsT2JqZWN0U3RhdGVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc3RvcmU6IFN0b3JlPERieE1vZGVsRnVsbFN0YXRlPikge31cblxuICAvKipcbiAgICogRW1pdCBhIG1vZGVsIHZpZXdlZCBldmVudC5cbiAgICovXG4gIGVtaXRNb2RlbFZpZXdFdmVudCh7IG1vZGVsS2V5VHlwZU5hbWVQYWlyIH06IERieE1vZGVsT2JqZWN0Vmlld2VkUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvbkRieE1vZGVsLkRieE1vZGVsU3RhdGVNb2RlbEFjdGlvbnMuZW1pdE9iamVjdFZpZXdFdmVudCh7IG1vZGVsS2V5VHlwZU5hbWVQYWlyIH0pKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export function allDbxModelViewTrackerEventSetModelKeys(eventSet) {
2
+ return allDbxModelViewTrackerEventModelKeys(eventSet.e);
3
+ }
4
+ export function allDbxModelViewTrackerEventModelKeys(events) {
5
+ return events.map((y) => y.m.key);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHJhY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vbW9kZWwvbW9kZWwudHJhY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsTUFBTSxVQUFVLHVDQUF1QyxDQUFDLFFBQXFDO0lBQzNGLE9BQU8sb0NBQW9DLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxNQUFNLFVBQVUsb0NBQW9DLENBQUMsTUFBa0M7SUFDckYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbml4RGF0ZVRpbWVOdW1iZXIsIE1vZGVsS2V5VHlwZVBhaXIsIE1heWJlLCBNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieE1vZGVsVmlld1RyYWNrZXJFdmVudCB7XG4gIGQ/OiBVbml4RGF0ZVRpbWVOdW1iZXI7XG4gIG06IE1vZGVsS2V5VHlwZVBhaXI7XG4gIGZvbGRlcj86IE1heWJlPHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50U2V0IHtcbiAgLyoqXG4gICAqIFRoZSBsYXRlc3QgZGF0ZS90aW1lIG51bWJlci5cbiAgICovXG4gIGw6IFVuaXhEYXRlVGltZU51bWJlcjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgZXZlbnRzLlxuICAgKi9cbiAgZTogRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRTZXRNb2RlbEtleXMoZXZlbnRTZXQ6IERieE1vZGVsVmlld1RyYWNrZXJFdmVudFNldCk6IE1vZGVsS2V5W10ge1xuICByZXR1cm4gYWxsRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50TW9kZWxLZXlzKGV2ZW50U2V0LmUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50TW9kZWxLZXlzKGV2ZW50czogRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50W10pOiBNb2RlbEtleVtdIHtcbiAgcmV0dXJuIGV2ZW50cy5tYXAoKHkpID0+IHkubS5rZXkpO1xufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DbxModelViewTrackerStorage } from './model.tracker.view.storage';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./model.tracker.view.storage";
5
+ /**
6
+ * Service used for tracking/logging different kinds of events on objects.
7
+ */
8
+ export class DbxModelTrackerService {
9
+ constructor(viewTrackerStorage) {
10
+ this.viewTrackerStorage = viewTrackerStorage;
11
+ }
12
+ get defaultFolder() {
13
+ return this._defaultFolder;
14
+ }
15
+ set defaultFolder(folder) {
16
+ this._defaultFolder = folder ?? undefined;
17
+ }
18
+ // MARK: View
19
+ trackViewedObject(modelKeyTypeNamePair, folder = this._defaultFolder) {
20
+ this.viewTrackerStorage
21
+ .addEvent({
22
+ m: modelKeyTypeNamePair,
23
+ folder
24
+ })
25
+ .subscribe();
26
+ }
27
+ getAllViewEvents(folder = this._defaultFolder) {
28
+ return this.viewTrackerStorage.getAllEvents(folder);
29
+ }
30
+ getViewEventSet(folder = this._defaultFolder) {
31
+ return this.viewTrackerStorage.getEventSet(folder);
32
+ }
33
+ }
34
+ DbxModelTrackerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTrackerService, deps: [{ token: i1.DbxModelViewTrackerStorage }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ DbxModelTrackerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTrackerService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTrackerService, decorators: [{
37
+ type: Injectable,
38
+ args: [{
39
+ providedIn: 'root'
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.DbxModelViewTrackerStorage }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHJhY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9tb2RlbC9tb2RlbC50cmFja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRTFFOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUE2QixrQkFBOEM7UUFBOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUE0QjtJQUFHLENBQUM7SUFFL0UsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxNQUFxQjtRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sSUFBSSxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQUVELGFBQWE7SUFDYixpQkFBaUIsQ0FBQyxvQkFBMEMsRUFBRSxTQUF3QixJQUFJLENBQUMsY0FBYztRQUN2RyxJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLFFBQVEsQ0FBQztZQUNSLENBQUMsRUFBRSxvQkFBb0I7WUFDdkIsTUFBTTtTQUNQLENBQUM7YUFDRCxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBd0IsSUFBSSxDQUFDLGNBQWM7UUFDMUQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0IsSUFBSSxDQUFDLGNBQWM7UUFDekQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7O29IQTdCVSxzQkFBc0I7d0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXliZSwgTW9kZWxLZXlUeXBlTmFtZVBhaXIgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieE1vZGVsVmlld1RyYWNrZXJFdmVudCwgRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50U2V0IH0gZnJvbSAnLi9tb2RlbC50cmFja2VyJztcbmltcG9ydCB7IERieE1vZGVsVmlld1RyYWNrZXJTdG9yYWdlIH0gZnJvbSAnLi9tb2RlbC50cmFja2VyLnZpZXcuc3RvcmFnZSc7XG5cbi8qKlxuICogU2VydmljZSB1c2VkIGZvciB0cmFja2luZy9sb2dnaW5nIGRpZmZlcmVudCBraW5kcyBvZiBldmVudHMgb24gb2JqZWN0cy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4TW9kZWxUcmFja2VyU2VydmljZSB7XG4gIHByaXZhdGUgX2RlZmF1bHRGb2xkZXI6IE1heWJlPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2aWV3VHJhY2tlclN0b3JhZ2U6IERieE1vZGVsVmlld1RyYWNrZXJTdG9yYWdlKSB7fVxuXG4gIGdldCBkZWZhdWx0Rm9sZGVyKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0Rm9sZGVyO1xuICB9XG5cbiAgc2V0IGRlZmF1bHRGb2xkZXIoZm9sZGVyOiBNYXliZTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fZGVmYXVsdEZvbGRlciA9IGZvbGRlciA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBNQVJLOiBWaWV3XG4gIHRyYWNrVmlld2VkT2JqZWN0KG1vZGVsS2V5VHlwZU5hbWVQYWlyOiBNb2RlbEtleVR5cGVOYW1lUGFpciwgZm9sZGVyOiBNYXliZTxzdHJpbmc+ID0gdGhpcy5fZGVmYXVsdEZvbGRlcik6IHZvaWQge1xuICAgIHRoaXMudmlld1RyYWNrZXJTdG9yYWdlXG4gICAgICAuYWRkRXZlbnQoe1xuICAgICAgICBtOiBtb2RlbEtleVR5cGVOYW1lUGFpcixcbiAgICAgICAgZm9sZGVyXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0QWxsVmlld0V2ZW50cyhmb2xkZXI6IE1heWJlPHN0cmluZz4gPSB0aGlzLl9kZWZhdWx0Rm9sZGVyKTogT2JzZXJ2YWJsZTxEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLnZpZXdUcmFja2VyU3RvcmFnZS5nZXRBbGxFdmVudHMoZm9sZGVyKTtcbiAgfVxuXG4gIGdldFZpZXdFdmVudFNldChmb2xkZXI6IE1heWJlPHN0cmluZz4gPSB0aGlzLl9kZWZhdWx0Rm9sZGVyKTogT2JzZXJ2YWJsZTxEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRTZXQ+IHtcbiAgICByZXR1cm4gdGhpcy52aWV3VHJhY2tlclN0b3JhZ2UuZ2V0RXZlbnRTZXQoZm9sZGVyKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { unixTimeNumberForNow } from '@dereekb/date';
3
+ import { StorageAccessor } from '@dereekb/dbx-core';
4
+ import { encodeModelKeyTypePair, ModelRelationUtility } from '@dereekb/util';
5
+ import { of } from 'rxjs';
6
+ import { map, mergeMap, catchError } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@dereekb/dbx-core";
9
+ /**
10
+ * Used for managing DbxModelViewTrackerEvent storage.
11
+ */
12
+ export class DbxModelViewTrackerStorage {
13
+ constructor(storageAccessor) {
14
+ this.storageAccessor = storageAccessor;
15
+ }
16
+ get storageKey() {
17
+ return DbxModelViewTrackerStorage.OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY;
18
+ }
19
+ get maxEventsToKeep() {
20
+ return DbxModelViewTrackerStorage.MAX_EVENTS;
21
+ }
22
+ addEvent(event) {
23
+ const storageKey = this.getStorageKeyForFolder(event.folder);
24
+ return this._getEventSetForStorageKey(storageKey).pipe(mergeMap((set) => {
25
+ const nextEvent = {
26
+ d: event.d ?? unixTimeNumberForNow(),
27
+ m: event.m
28
+ };
29
+ const e = ModelRelationUtility.removeDuplicates(set.e, (x) => encodeModelKeyTypePair(x.m), [encodeModelKeyTypePair(nextEvent.m)]);
30
+ e.push(nextEvent);
31
+ e.sort((a, b) => (b.d ?? 0) - (a.d ?? 0));
32
+ return this.storageAccessor.set(storageKey, {
33
+ l: Math.max(set.l ?? 0, nextEvent.d),
34
+ e: e.slice(0, this.maxEventsToKeep)
35
+ });
36
+ }));
37
+ }
38
+ getAllEvents(folder) {
39
+ return this.getEventSet(folder).pipe(map((x) => x.e));
40
+ }
41
+ getEventSet(folder) {
42
+ const storageKey = this.getStorageKeyForFolder(folder);
43
+ return this._getEventSetForStorageKey(storageKey);
44
+ }
45
+ _getEventSetForStorageKey(storageKey) {
46
+ return this.storageAccessor.get(storageKey).pipe(catchError((e) => {
47
+ return of(undefined);
48
+ }), map((result) => result ?? { e: [], l: 0 }));
49
+ }
50
+ getStorageKeyForFolder(folder) {
51
+ const storageKey = `${this.storageKey}_${folder ?? 'default'}`;
52
+ return storageKey;
53
+ }
54
+ }
55
+ DbxModelViewTrackerStorage.OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';
56
+ DbxModelViewTrackerStorage.MAX_EVENTS = 60;
57
+ DbxModelViewTrackerStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelViewTrackerStorage, deps: [{ token: i1.StorageAccessor }], target: i0.ɵɵFactoryTarget.Injectable });
58
+ DbxModelViewTrackerStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelViewTrackerStorage, providedIn: 'root' });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelViewTrackerStorage, decorators: [{
60
+ type: Injectable,
61
+ args: [{
62
+ providedIn: 'root'
63
+ }]
64
+ }], ctorParameters: function () { return [{ type: i1.StorageAccessor }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHJhY2tlci52aWV3LnN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL21vZGVsLnRyYWNrZXIudmlldy5zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQXdDLHNCQUFzQixFQUFFLG9CQUFvQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUczRDs7R0FFRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFJckMsWUFBcUIsZUFBNkQ7UUFBN0Qsb0JBQWUsR0FBZixlQUFlLENBQThDO0lBQUcsQ0FBQztJQUV0RixJQUFjLFVBQVU7UUFDdEIsT0FBTywwQkFBMEIsQ0FBQyxvQ0FBb0MsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQTBCLENBQUMsVUFBVSxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBK0I7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3BELFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxTQUFTLEdBQUc7Z0JBQ2hCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixFQUFFO2dCQUNwQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDWCxDQUFDO1lBRUYsTUFBTSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUU7Z0JBQzFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ3BDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXNCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXNCO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8seUJBQXlCLENBQUMsVUFBa0I7UUFDbEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzlDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQXNCO1FBQzNDLE1BQU0sVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLElBQUksU0FBUyxFQUFFLENBQUM7UUFDL0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7QUF2RGUsK0RBQW9DLEdBQUcsMkJBQTJCLENBQUM7QUFDbkUscUNBQVUsR0FBRyxFQUFFLENBQUM7d0hBRnJCLDBCQUEwQjs0SEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVuaXhUaW1lTnVtYmVyRm9yTm93IH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBTdG9yYWdlQWNjZXNzb3IgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBVbml4RGF0ZVRpbWVOdW1iZXIsIE1vZGVsS2V5VHlwZVBhaXIsIGVuY29kZU1vZGVsS2V5VHlwZVBhaXIsIE1vZGVsUmVsYXRpb25VdGlsaXR5LCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRTZXQsIERieE1vZGVsVmlld1RyYWNrZXJFdmVudCB9IGZyb20gJy4vbW9kZWwudHJhY2tlcic7XG5cbi8qKlxuICogVXNlZCBmb3IgbWFuYWdpbmcgRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50IHN0b3JhZ2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieE1vZGVsVmlld1RyYWNrZXJTdG9yYWdlIHtcbiAgc3RhdGljIHJlYWRvbmx5IE9CSkVDVF9WSUVXX1RSQUNLRVJfU1RPUkFHRV9MSVNUX0tFWSA9ICdkYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRzJztcbiAgc3RhdGljIHJlYWRvbmx5IE1BWF9FVkVOVFMgPSA2MDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzdG9yYWdlQWNjZXNzb3I6IFN0b3JhZ2VBY2Nlc3NvcjxEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRTZXQ+KSB7fVxuXG4gIHByb3RlY3RlZCBnZXQgc3RvcmFnZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBEYnhNb2RlbFZpZXdUcmFja2VyU3RvcmFnZS5PQkpFQ1RfVklFV19UUkFDS0VSX1NUT1JBR0VfTElTVF9LRVk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG1heEV2ZW50c1RvS2VlcCgpOiBudW1iZXIge1xuICAgIHJldHVybiBEYnhNb2RlbFZpZXdUcmFja2VyU3RvcmFnZS5NQVhfRVZFTlRTO1xuICB9XG5cbiAgYWRkRXZlbnQoZXZlbnQ6IERieE1vZGVsVmlld1RyYWNrZXJFdmVudCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSB0aGlzLmdldFN0b3JhZ2VLZXlGb3JGb2xkZXIoZXZlbnQuZm9sZGVyKTtcbiAgICByZXR1cm4gdGhpcy5fZ2V0RXZlbnRTZXRGb3JTdG9yYWdlS2V5KHN0b3JhZ2VLZXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoc2V0KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRFdmVudCA9IHtcbiAgICAgICAgICBkOiBldmVudC5kID8/IHVuaXhUaW1lTnVtYmVyRm9yTm93KCksXG4gICAgICAgICAgbTogZXZlbnQubVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGUgPSBNb2RlbFJlbGF0aW9uVXRpbGl0eS5yZW1vdmVEdXBsaWNhdGVzKHNldC5lLCAoeCkgPT4gZW5jb2RlTW9kZWxLZXlUeXBlUGFpcih4Lm0pLCBbZW5jb2RlTW9kZWxLZXlUeXBlUGFpcihuZXh0RXZlbnQubSldKTtcbiAgICAgICAgZS5wdXNoKG5leHRFdmVudCk7XG4gICAgICAgIGUuc29ydCgoYSwgYikgPT4gKGIuZCA/PyAwKSAtIChhLmQgPz8gMCkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VBY2Nlc3Nvci5zZXQoc3RvcmFnZUtleSwge1xuICAgICAgICAgIGw6IE1hdGgubWF4KHNldC5sID8/IDAsIG5leHRFdmVudC5kKSxcbiAgICAgICAgICBlOiBlLnNsaWNlKDAsIHRoaXMubWF4RXZlbnRzVG9LZWVwKVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEFsbEV2ZW50cyhmb2xkZXI/OiBNYXliZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEV2ZW50U2V0KGZvbGRlcikucGlwZShtYXAoKHgpID0+IHguZSkpO1xuICB9XG5cbiAgZ2V0RXZlbnRTZXQoZm9sZGVyPzogTWF5YmU8c3RyaW5nPik6IE9ic2VydmFibGU8RGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50U2V0PiB7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IHRoaXMuZ2V0U3RvcmFnZUtleUZvckZvbGRlcihmb2xkZXIpO1xuICAgIHJldHVybiB0aGlzLl9nZXRFdmVudFNldEZvclN0b3JhZ2VLZXkoc3RvcmFnZUtleSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFdmVudFNldEZvclN0b3JhZ2VLZXkoc3RvcmFnZUtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEYnhNb2RlbFZpZXdUcmFja2VyRXZlbnRTZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlQWNjZXNzb3IuZ2V0KHN0b3JhZ2VLZXkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJlc3VsdCkgPT4gcmVzdWx0ID8/IHsgZTogW10sIGw6IDAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0U3RvcmFnZUtleUZvckZvbGRlcihmb2xkZXI/OiBNYXliZTxzdHJpbmc+KTogc3RyaW5nIHtcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7dGhpcy5zdG9yYWdlS2V5fV8ke2ZvbGRlciA/PyAnZGVmYXVsdCd9YDtcbiAgICByZXR1cm4gc3RvcmFnZUtleTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL21vZGVsLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWd1ZVJlZiB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgTW9kZWxLZXksIE1vZGVsVHlwZVN0cmluZyB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieE1vZGVsVHlwZUNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogUG9wdXAgbGFiZWwgdGhhdCBjYW4gYmUgdXNlZCBmb3IgdGhlc2UgdHlwZXMuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgdXNlZCBpbiBhbmFseXRpY3MgZXZlbnRzLiBJZiBub3QgcHJvdmlkZWQsIGxhYmVsIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGFuYWx5dGljc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNb2RlbCB0eXBlIHRoaXMgY29uZmlndXJhdGlvbiBpcyBmb3IuXG4gICAqL1xuICBtb2RlbFR5cGU6IE1vZGVsVHlwZVN0cmluZztcbiAgLyoqXG4gICAqIFNyZWYgZmFjdG9yeSBmb3Igdmlld2luZyBvYmplY3RzIG9mIHRoaXMgdHlwZS5cbiAgICovXG4gIHNyZWY/OiBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8U2VndWVSZWYsIE1vZGVsS2V5PjtcbiAgLyoqXG4gICAqIEljb24gdXNlZCB0byByZXByZXNlbnQgdGhpcyBtb2RlbC5cbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4TW9kZWxUeXBlQ29uZmlndXJhdGlvbk1hcCB7XG4gIFtrZXk6IHN0cmluZ106IERieE1vZGVsVHlwZUNvbmZpZ3VyYXRpb247XG59XG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Store } from '@ngrx/store';
3
+ import { map, shareReplay } from 'rxjs/operators';
4
+ import { capitalCase } from 'change-case';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { useIterableOrValue } from '@dereekb/util';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngrx/store";
9
+ export class DbxModelTypesService {
10
+ constructor(store) {
11
+ this.store = store;
12
+ this._configs = new BehaviorSubject({});
13
+ // MARK: Accessors
14
+ this.typesMap$ = this._configs.pipe(map((types) => {
15
+ const typesMap = {};
16
+ Object.keys(types).forEach((type) => {
17
+ const config = types[type];
18
+ const label = config.label || capitalCase(type);
19
+ const analyticsName = config.analyticsName || label;
20
+ typesMap[type] = {
21
+ ...config,
22
+ label,
23
+ analyticsName,
24
+ icon: config.icon ?? DbxModelTypesService.DEFAULT_ICON,
25
+ canSegueToView: Boolean(config.sref)
26
+ };
27
+ });
28
+ return typesMap;
29
+ }), shareReplay(1));
30
+ this.iconMap$ = this.typesMap$.pipe(map((types) => {
31
+ const iconsMap = {};
32
+ Object.keys(types).forEach((type) => {
33
+ iconsMap[type] = types[type].icon;
34
+ });
35
+ return iconsMap;
36
+ }), shareReplay(1));
37
+ }
38
+ // MARK: Configuration
39
+ addTypeConfigs(configs) {
40
+ const types = {
41
+ ...this._configs.value
42
+ };
43
+ useIterableOrValue(configs, (config) => {
44
+ types[config.modelType] = config;
45
+ });
46
+ this._configs.next(types);
47
+ }
48
+ addTypeConfigsMap(configs) {
49
+ const newConfig = {
50
+ ...this._configs.value,
51
+ ...configs
52
+ };
53
+ this._configs.next(newConfig);
54
+ }
55
+ iconForType(type) {
56
+ return this.iconMap$.pipe(map((x) => x[type]));
57
+ }
58
+ }
59
+ DbxModelTypesService.DEFAULT_ICON = 'help_outline';
60
+ DbxModelTypesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTypesService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ DbxModelTypesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTypesService, providedIn: 'root' });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTypesService, decorators: [{
63
+ type: Injectable,
64
+ args: [{
65
+ providedIn: 'root'
66
+ }]
67
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vbW9kZWwvbW9kZWwudHlwZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUEyQyxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBdUI1RixNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLFlBQXFCLEtBQStCO1FBQS9CLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBSjVDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsRUFBRSxDQUFDLENBQUM7UUE0QnpFLGtCQUFrQjtRQUNULGNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWixNQUFNLFFBQVEsR0FBa0MsRUFBRSxDQUFDO1lBRW5ELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFM0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDO2dCQUVwRCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQ2YsR0FBRyxNQUFNO29CQUNULEtBQUs7b0JBQ0wsYUFBYTtvQkFDYixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxvQkFBb0IsQ0FBQyxZQUFZO29CQUN0RCxjQUFjLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7aUJBQ2hDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBK0IsQ0FBQztRQUN6QyxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGFBQVEsR0FBaUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ25FLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osTUFBTSxRQUFRLEdBQStCLEVBQUUsQ0FBQztZQUVoRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBNEIsQ0FBQztRQUN0QyxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQTVEcUQsQ0FBQztJQUV4RCxzQkFBc0I7SUFDdEIsY0FBYyxDQUFDLE9BQWdEO1FBQzdELE1BQU0sS0FBSyxHQUFHO1lBQ1osR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUs7U0FDdkIsQ0FBQztRQUVGLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQXFDO1FBQ3JELE1BQU0sU0FBUyxHQUFpQztZQUM5QyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztZQUN0QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQXdDRCxXQUFXLENBQUMsSUFBcUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7QUFsRWUsaUNBQVksR0FBRyxjQUFjLENBQUM7a0hBSG5DLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNhcGl0YWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcnJheU9yVmFsdWUsIEJ1aWxkaW5nLCBNb2RlbFR5cGVTdHJpbmcsIHVzZUl0ZXJhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4TW9kZWxGdWxsU3RhdGUsIGZyb21EYnhNb2RlbCB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0IHsgRGJ4TW9kZWxUeXBlQ29uZmlndXJhdGlvbiwgRGJ4TW9kZWxUeXBlQ29uZmlndXJhdGlvbk1hcCB9IGZyb20gJy4vbW9kZWwudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieE1vZGVsVHlwZUluZm8gZXh0ZW5kcyBEYnhNb2RlbFR5cGVDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGEgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgZm9yIHNlZ3Vlc1xuICAgKiB0byBhIHZpZXcgZm9yIG9iamVjdHMgb2YgdGhpcyB0eXBlLlxuICAgKi9cbiAgY2FuU2VndWVUb1ZpZXc6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4TW9kZWxUeXBlc01hcDxJIGV4dGVuZHMgRGJ4TW9kZWxUeXBlSW5mbz4ge1xuICByZWFkb25seSBbdHlwZTogc3RyaW5nXTogSTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhNb2RlbEljb25zTWFwIHtcbiAgcmVhZG9ubHkgW3R5cGU6IHN0cmluZ106IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4TW9kZWxUeXBlc1NlcnZpY2U8SSBleHRlbmRzIERieE1vZGVsVHlwZUluZm8gPSBEYnhNb2RlbFR5cGVJbmZvPiB7XG4gIHByaXZhdGUgX2NvbmZpZ3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieE1vZGVsVHlwZUNvbmZpZ3VyYXRpb25NYXA+KHt9KTtcblxuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JQ09OID0gJ2hlbHBfb3V0bGluZSc7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc3RvcmU6IFN0b3JlPERieE1vZGVsRnVsbFN0YXRlPikge31cblxuICAvLyBNQVJLOiBDb25maWd1cmF0aW9uXG4gIGFkZFR5cGVDb25maWdzKGNvbmZpZ3M6IEFycmF5T3JWYWx1ZTxEYnhNb2RlbFR5cGVDb25maWd1cmF0aW9uPikge1xuICAgIGNvbnN0IHR5cGVzID0ge1xuICAgICAgLi4udGhpcy5fY29uZmlncy52YWx1ZVxuICAgIH07XG5cbiAgICB1c2VJdGVyYWJsZU9yVmFsdWUoY29uZmlncywgKGNvbmZpZykgPT4ge1xuICAgICAgdHlwZXNbY29uZmlnLm1vZGVsVHlwZV0gPSBjb25maWc7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9jb25maWdzLm5leHQodHlwZXMpO1xuICB9XG5cbiAgYWRkVHlwZUNvbmZpZ3NNYXAoY29uZmlnczogRGJ4TW9kZWxUeXBlQ29uZmlndXJhdGlvbk1hcCkge1xuICAgIGNvbnN0IG5ld0NvbmZpZzogRGJ4TW9kZWxUeXBlQ29uZmlndXJhdGlvbk1hcCA9IHtcbiAgICAgIC4uLnRoaXMuX2NvbmZpZ3MudmFsdWUsXG4gICAgICAuLi5jb25maWdzXG4gICAgfTtcblxuICAgIHRoaXMuX2NvbmZpZ3MubmV4dChuZXdDb25maWcpO1xuICB9XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IHR5cGVzTWFwJCA9IHRoaXMuX2NvbmZpZ3MucGlwZShcbiAgICBtYXAoKHR5cGVzKSA9PiB7XG4gICAgICBjb25zdCB0eXBlc01hcDogQnVpbGRpbmc8RGJ4TW9kZWxUeXBlc01hcDxJPj4gPSB7fTtcblxuICAgICAgT2JqZWN0LmtleXModHlwZXMpLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdHlwZXNbdHlwZV07XG5cbiAgICAgICAgY29uc3QgbGFiZWwgPSBjb25maWcubGFiZWwgfHwgY2FwaXRhbENhc2UodHlwZSk7XG4gICAgICAgIGNvbnN0IGFuYWx5dGljc05hbWUgPSBjb25maWcuYW5hbHl0aWNzTmFtZSB8fCBsYWJlbDtcblxuICAgICAgICB0eXBlc01hcFt0eXBlXSA9IHtcbiAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgYW5hbHl0aWNzTmFtZSxcbiAgICAgICAgICBpY29uOiBjb25maWcuaWNvbiA/PyBEYnhNb2RlbFR5cGVzU2VydmljZS5ERUZBVUxUX0lDT04sXG4gICAgICAgICAgY2FuU2VndWVUb1ZpZXc6IEJvb2xlYW4oY29uZmlnLnNyZWYpXG4gICAgICAgIH0gYXMgSTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdHlwZXNNYXAgYXMgRGJ4TW9kZWxUeXBlc01hcDxJPjtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGljb25NYXAkOiBPYnNlcnZhYmxlPERieE1vZGVsSWNvbnNNYXA+ID0gdGhpcy50eXBlc01hcCQucGlwZShcbiAgICBtYXAoKHR5cGVzKSA9PiB7XG4gICAgICBjb25zdCBpY29uc01hcDogQnVpbGRpbmc8RGJ4TW9kZWxJY29uc01hcD4gPSB7fTtcblxuICAgICAgT2JqZWN0LmtleXModHlwZXMpLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgICAgaWNvbnNNYXBbdHlwZV0gPSB0eXBlc1t0eXBlXS5pY29uO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBpY29uc01hcCBhcyBEYnhNb2RlbEljb25zTWFwO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgaWNvbkZvclR5cGUodHlwZTogTW9kZWxUeXBlU3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pY29uTWFwJC5waXBlKG1hcCgoeCkgPT4geFt0eXBlXSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { createAction } from '@ngrx/store';
2
+ export const dbxModelResetState = createAction('[App/Model] Reset State');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vbW9kZWwvc3RhdGUvYWN0aW9ucy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFHbEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBjb25zdCBkYnhNb2RlbFJlc2V0U3RhdGUgPSBjcmVhdGVBY3Rpb24oJ1tBcHAvTW9kZWxdIFJlc2V0IFN0YXRlJyk7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import * as DbxModelStateActions from './actions';
2
+ import * as DbxModelStateModelActions from './model.actions';
3
+ export { DbxModelStateActions, DbxModelStateModelActions };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL3N0YXRlL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLG9CQUFvQixNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEtBQUsseUJBQXlCLE1BQU0saUJBQWlCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBEYnhNb2RlbFN0YXRlQWN0aW9ucyBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0ICogYXMgRGJ4TW9kZWxTdGF0ZU1vZGVsQWN0aW9ucyBmcm9tICcuL21vZGVsLmFjdGlvbnMnO1xuXG5leHBvcnQgeyBEYnhNb2RlbFN0YXRlQWN0aW9ucywgRGJ4TW9kZWxTdGF0ZU1vZGVsQWN0aW9ucyB9O1xuIl19
@@ -0,0 +1,3 @@
1
+ import { createAction, props } from '@ngrx/store';
2
+ export const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props());
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vbW9kZWwvc3RhdGUvYWN0aW9ucy9tb2RlbC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVWxELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLEVBQThCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsS2V5VHlwZU5hbWVQYWlyLCBNb2RlbEtleVR5cGVQYWlyIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieE1vZGVsT2JqZWN0Vmlld2VkUGFyYW1zIHtcbiAgbW9kZWxLZXlUeXBlTmFtZVBhaXI6IE1vZGVsS2V5VHlwZU5hbWVQYWlyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieE1vZGVsR29Ub09iamVjdFZpZXdQYXJhbXMge1xuICBtb2RlbEtleVR5cGVQYWlyOiBNb2RlbEtleVR5cGVQYWlyO1xufVxuXG5leHBvcnQgY29uc3QgZW1pdE9iamVjdFZpZXdFdmVudCA9IGNyZWF0ZUFjdGlvbignW0FwcC9Nb2RlbC9UeXBlXSBPYmplY3QgVmlld2VkJywgcHJvcHM8RGJ4TW9kZWxPYmplY3RWaWV3ZWRQYXJhbXM+KCkpO1xuIl19
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Actions, ofType, createEffect } from '@ngrx/effects';
3
+ import { distinctUntilChanged, filter, map, tap } from 'rxjs/operators';
4
+ import { onDbxAppAuth } from '@dereekb/dbx-core';
5
+ import { DbxModelTrackerService } from '../../model.tracker.service';
6
+ import { onDbxModel } from '..';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngrx/effects";
9
+ import * as i2 from "../../model.tracker.service";
10
+ /**
11
+ * Used to pass Object Store events to the ObjectTracker.
12
+ */
13
+ export class DbxModelTrackerEffects {
14
+ constructor(actions$, dbxModelTrackerService) {
15
+ this.actions$ = actions$;
16
+ this.dbxModelTrackerService = dbxModelTrackerService;
17
+ this.trackModelViewed$ = createEffect(() => this.actions$.pipe(ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent), distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type), tap((x) => {
18
+ this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair);
19
+ })), { dispatch: false });
20
+ this.changeTrackerFolderToMatchAuth$ = createEffect(() => this.actions$.pipe(ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier), map((x) => x.id), filter((x) => Boolean(x)), distinctUntilChanged(), tap((accountId) => {
21
+ this.dbxModelTrackerService.defaultFolder = accountId;
22
+ })), { dispatch: false });
23
+ }
24
+ }
25
+ DbxModelTrackerEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTrackerEffects, deps: [{ token: i1.Actions }, { token: i2.DbxModelTrackerService }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ DbxModelTrackerEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTrackerEffects });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxModelTrackerEffects, decorators: [{
28
+ type: Injectable
29
+ }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.DbxModelTrackerService }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tlci5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9tb2RlbC9zdGF0ZS9lZmZlY3RzL3RyYWNrZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQzs7OztBQUVoQzs7R0FFRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBNkIsUUFBaUIsRUFBbUIsc0JBQThDO1FBQWxGLGFBQVEsR0FBUixRQUFRLENBQVM7UUFBbUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUV0RyxzQkFBaUIsR0FBRyxZQUFZLENBQ3ZDLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLEVBQ2hFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUNsSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FDSCxFQUNILEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUNwQixDQUFDO1FBRU8sb0NBQStCLEdBQUcsWUFBWSxDQUNyRCxHQUFHLEVBQUUsQ0FDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUM1RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDekIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztJQTFCZ0gsQ0FBQzs7b0hBRHhHLHNCQUFzQjt3SEFBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvbkRieEFwcEF1dGggfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhNb2RlbFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbW9kZWwudHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IG9uRGJ4TW9kZWwgfSBmcm9tICcuLic7XG5cbi8qKlxuICogVXNlZCB0byBwYXNzIE9iamVjdCBTdG9yZSBldmVudHMgdG8gdGhlIE9iamVjdFRyYWNrZXIuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhNb2RlbFRyYWNrZXJFZmZlY3RzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSByZWFkb25seSBkYnhNb2RlbFRyYWNrZXJTZXJ2aWNlOiBEYnhNb2RlbFRyYWNrZXJTZXJ2aWNlKSB7fVxuXG4gIHJlYWRvbmx5IHRyYWNrTW9kZWxWaWV3ZWQkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShvbkRieE1vZGVsLkRieE1vZGVsU3RhdGVNb2RlbEFjdGlvbnMuZW1pdE9iamVjdFZpZXdFdmVudCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5tb2RlbEtleVR5cGVOYW1lUGFpci5rZXkgPT09IGI/Lm1vZGVsS2V5VHlwZU5hbWVQYWlyLmtleSAmJiBhPy50eXBlID09PSBiPy50eXBlKSxcbiAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgdGhpcy5kYnhNb2RlbFRyYWNrZXJTZXJ2aWNlLnRyYWNrVmlld2VkT2JqZWN0KHgubW9kZWxLZXlUeXBlTmFtZVBhaXIpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcmVhZG9ubHkgY2hhbmdlVHJhY2tlckZvbGRlclRvTWF0Y2hBdXRoJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUob25EYnhBcHBBdXRoLkRieEFwcEF1dGhVc2VyQWN0aW9ucy5zZXRVc2VySWRlbnRpZmllciksXG4gICAgICAgIG1hcCgoeCkgPT4geC5pZCksXG4gICAgICAgIGZpbHRlcigoeCkgPT4gQm9vbGVhbih4KSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRhcCgoYWNjb3VudElkKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYnhNb2RlbFRyYWNrZXJTZXJ2aWNlLmRlZmF1bHRGb2xkZXIgPSBhY2NvdW50SWQ7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './state';
2
+ export * from './actions';
3
+ import * as onDbxModel from './actions';
4
+ import * as fromDbxModel from './reducers';
5
+ export { onDbxModel, fromDbxModel };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL3N0YXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsV0FBVyxDQUFDO0FBRTFCLE9BQU8sS0FBSyxVQUFVLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxZQUFZLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucyc7XG5cbmltcG9ydCAqIGFzIG9uRGJ4TW9kZWwgZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21EYnhNb2RlbCBmcm9tICcuL3JlZHVjZXJzJztcblxuZXhwb3J0IHsgb25EYnhNb2RlbCwgZnJvbURieE1vZGVsIH07XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';
2
+ import * as fromObjectModuleConfig from './model.module.config';
3
+ export const featureKey = 'app.model';
4
+ export function reducers(state, action) {
5
+ return combineReducers({
6
+ [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer
7
+ })(state, action);
8
+ }
9
+ // MARK: Context
10
+ export const selectDbxModelFeature = createFeatureSelector(featureKey);
11
+ // MARK: Module Config
12
+ export const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state) => state[fromObjectModuleConfig.stateFeatureKey]);
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL3N0YXRlL3JlZHVjZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdGLE9BQU8sS0FBSyxzQkFBc0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdoRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBVXRDLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBZ0MsRUFBRSxNQUFjO0lBQ3ZFLE9BQU8sZUFBZSxDQUFDO1FBQ3JCLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsc0JBQXNCLENBQUMsT0FBTztLQUN6RSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcscUJBQXFCLENBQXVCLFVBQVUsQ0FBQyxDQUFDO0FBRTdGLHNCQUFzQjtBQUN0QixNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY29tYmluZVJlZHVjZXJzLCBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5pbXBvcnQgKiBhcyBmcm9tT2JqZWN0TW9kdWxlQ29uZmlnIGZyb20gJy4vbW9kZWwubW9kdWxlLmNvbmZpZyc7XG5pbXBvcnQgeyBEYnhNb2RlbE1vZHVsZVN0YXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kZWwubW9kdWxlLmNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBmZWF0dXJlS2V5ID0gJ2FwcC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4TW9kZWxTdGF0ZSB7XG4gIFtmcm9tT2JqZWN0TW9kdWxlQ29uZmlnLnN0YXRlRmVhdHVyZUtleV06IERieE1vZGVsTW9kdWxlU3RhdGVDb25maWd1cmF0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgW2ZlYXR1cmVLZXldOiBEYnhNb2RlbFN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlcnMoc3RhdGU6IERieE1vZGVsU3RhdGUgfCB1bmRlZmluZWQsIGFjdGlvbjogQWN0aW9uKSB7XG4gIHJldHVybiBjb21iaW5lUmVkdWNlcnMoe1xuICAgIFtmcm9tT2JqZWN0TW9kdWxlQ29uZmlnLnN0YXRlRmVhdHVyZUtleV06IGZyb21PYmplY3RNb2R1bGVDb25maWcucmVkdWNlclxuICB9KShzdGF0ZSwgYWN0aW9uKTtcbn1cblxuLy8gTUFSSzogQ29udGV4dFxuZXhwb3J0IGNvbnN0IHNlbGVjdERieE1vZGVsRmVhdHVyZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxTdGF0ZSwgRGJ4TW9kZWxTdGF0ZT4oZmVhdHVyZUtleSk7XG5cbi8vIE1BUks6IE1vZHVsZSBDb25maWdcbmV4cG9ydCBjb25zdCBzZWxlY3REYnhNb2RlbEZlYXR1cmVPYmplY3RNb2R1bGVDb25maWcgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3REYnhNb2RlbEZlYXR1cmUsIChzdGF0ZTogRGJ4TW9kZWxTdGF0ZSkgPT4gc3RhdGVbZnJvbU9iamVjdE1vZHVsZUNvbmZpZy5zdGF0ZUZlYXR1cmVLZXldKTtcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { createReducer, on } from '@ngrx/store';
2
+ import { DbxModelStateActions } from '../actions';
3
+ export const stateFeatureKey = 'model.module.config';
4
+ export const initialState = {
5
+ types: {}
6
+ };
7
+ export const reducer = createReducer(initialState, on(DbxModelStateActions.dbxModelResetState, () => initialState));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwubW9kdWxlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vbW9kZWwvc3RhdGUvcmVkdWNlcnMvbW9kZWwubW9kdWxlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJbEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBcUM7SUFDNUQsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FDbEMsWUFBWSxFQUNaLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFycmF5T3JWYWx1ZSwgdXNlSXRlcmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuaW1wb3J0IHsgRGJ4TW9kZWxTdGF0ZUFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhNb2RlbE1vZHVsZVN0YXRlQ29uZmlndXJhdGlvbiB7fVxuXG5leHBvcnQgY29uc3Qgc3RhdGVGZWF0dXJlS2V5ID0gJ21vZGVsLm1vZHVsZS5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlOiBEYnhNb2RlbE1vZHVsZVN0YXRlQ29uZmlndXJhdGlvbiA9IHtcbiAgdHlwZXM6IHt9XG59O1xuXG5leHBvcnQgY29uc3QgcmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxTdGF0ZSxcbiAgb24oRGJ4TW9kZWxTdGF0ZUFjdGlvbnMuZGJ4TW9kZWxSZXNldFN0YXRlLCAoKSA9PiBpbml0aWFsU3RhdGUpXG4pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL21vZGVsL3N0YXRlL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcm9tRGJ4TW9kZWwgZnJvbSAnLi9yZWR1Y2Vycyc7XG5cbmV4cG9ydCB0eXBlIERieE1vZGVsRnVsbFN0YXRlID0gZnJvbURieE1vZGVsLlN0YXRlO1xuIl19