@dereekb/dbx-firebase 12.6.12 → 12.6.14

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 (33) hide show
  1. package/esm2022/lib/model/modules/model/entities/index.mjs +7 -2
  2. package/esm2022/lib/model/modules/model/entities/model.entities.component.mjs +4 -7
  3. package/esm2022/lib/model/modules/model/entities/model.entities.entity.component.mjs +58 -12
  4. package/esm2022/lib/model/modules/model/entities/model.entities.mjs +10 -1
  5. package/esm2022/lib/model/modules/model/entities/model.entities.popover.button.component.mjs +3 -3
  6. package/esm2022/lib/model/modules/model/entities/model.entities.popover.component.mjs +4 -2
  7. package/esm2022/lib/model/modules/model/entities/model.entities.providers.mjs +20 -0
  8. package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.mjs +18 -0
  9. package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs +27 -0
  10. package/esm2022/lib/model/modules/model/entities/model.entities.widget.mjs +51 -0
  11. package/esm2022/lib/model/modules/model/entities/model.entities.widget.service.mjs +34 -10
  12. package/esm2022/lib/model/modules/model/index.mjs +2 -1
  13. package/esm2022/lib/model/modules/model/model.key.component.mjs +47 -0
  14. package/esm2022/lib/model/modules/model/model.types.service.mjs +5 -3
  15. package/esm2022/lib/model/modules/store/store.document.mjs +6 -6
  16. package/esm2022/lib/providers.mjs +7 -3
  17. package/fesm2022/dereekb-dbx-firebase.mjs +265 -46
  18. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  19. package/lib/model/modules/model/entities/index.d.ts +6 -1
  20. package/lib/model/modules/model/entities/model.entities.component.d.ts +3 -6
  21. package/lib/model/modules/model/entities/model.entities.d.ts +7 -0
  22. package/lib/model/modules/model/entities/model.entities.entity.component.d.ts +30 -12
  23. package/lib/model/modules/model/entities/model.entities.providers.d.ts +22 -0
  24. package/lib/model/modules/model/entities/model.entities.widget.d.ts +30 -0
  25. package/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.d.ts +12 -0
  26. package/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.d.ts +14 -0
  27. package/lib/model/modules/model/entities/model.entities.widget.service.d.ts +27 -5
  28. package/lib/model/modules/model/index.d.ts +1 -0
  29. package/lib/model/modules/model/model.key.component.d.ts +24 -0
  30. package/lib/model/modules/model/model.types.service.d.ts +4 -3
  31. package/lib/model/modules/store/store.document.d.ts +1 -1
  32. package/lib/providers.d.ts +5 -0
  33. package/package.json +1 -1
@@ -1,5 +1,10 @@
1
1
  export * from './model.entities.component';
2
- export * from './model.entities.popover.component';
3
2
  export * from './model.entities.popover.button.component';
3
+ export * from './model.entities.popover.component';
4
+ export * from './model.entities.providers';
4
5
  export * from './model.entities.source.directive';
6
+ export * from './model.entities';
7
+ export * from './model.entities.widget.entity.abstract.directive';
8
+ export * from './model.entities.widget.entity.debug.component';
9
+ export * from './model.entities.widget';
5
10
  export * from './model.entities.widget.service';
@@ -5,15 +5,12 @@ import { Maybe } from '@dereekb/util';
5
5
  import { LoadingState } from '@dereekb/rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class DbxFirebaseModelEntitiesComponent implements OnDestroy {
8
- /**
9
- * All input entities.
10
- */
11
- readonly entities: import("@angular/core").InputSignal<Observable<LoadingState<DbxFirebaseModelEntity[]>> | undefined>;
12
- readonly entities$: Observable<LoadingState<DbxFirebaseModelEntity[]>>;
13
8
  /**
14
9
  * Whether the accordion should allow multiple expanded panels.
15
10
  */
16
11
  readonly multi: import("@angular/core").InputSignal<boolean>;
12
+ readonly entities: import("@angular/core").InputSignal<Observable<LoadingState<DbxFirebaseModelEntity[]>> | undefined>;
13
+ readonly entities$: Observable<LoadingState<DbxFirebaseModelEntity[]>>;
17
14
  readonly entitiesWithKeysState$: Observable<LoadingState<DbxFirebaseModelEntityWithKeyAndStore[]>>;
18
15
  readonly entitiesWithKeys$: Observable<Maybe<DbxFirebaseModelEntityWithKeyAndStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>>[]>>;
19
16
  readonly entitiesWithKeysSignal: import("@angular/core").Signal<Maybe<DbxFirebaseModelEntityWithKeyAndStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>>[]>>;
@@ -21,5 +18,5 @@ export declare class DbxFirebaseModelEntitiesComponent implements OnDestroy {
21
18
  readonly context: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, LoadingState<DbxFirebaseModelEntityWithKeyAndStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>>[]>, import("@dereekb/rxjs").LoadingContextEvent & LoadingState<DbxFirebaseModelEntityWithKeyAndStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>>[]>>;
22
19
  ngOnDestroy(): void;
23
20
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelEntitiesComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelEntitiesComponent, "dbx-firebase-model-entities", never, { "entities": { "alias": "entities"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; }, {}, never, ["[empty]"], true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelEntitiesComponent, "dbx-firebase-model-entities", never, { "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "entities": { "alias": "entities"; "required": false; "isSignal": true; }; }, {}, never, ["[empty]"], true, never>;
25
22
  }
@@ -33,6 +33,13 @@ export interface DbxFirebaseModelEntityWithStore<T = any, D extends FirestoreDoc
33
33
  */
34
34
  readonly store: DbxFirebaseDocumentReadOnlyStore<T, D>;
35
35
  }
36
+ /**
37
+ * Returns true if the input entity has a defined store.
38
+ *
39
+ * @param entity
40
+ * @returns
41
+ */
42
+ export declare function isDbxFirebaseModelEntityWithStore<T = any, D extends FirestoreDocument<T> = FirestoreDocument<T>>(entity: DbxFirebaseModelEntity): entity is DbxFirebaseModelEntityWithStore<T, D>;
36
43
  /**
37
44
  * An entity that has a key.
38
45
  */
@@ -1,18 +1,36 @@
1
- import { DbxFirebaseModelEntity } from './model.entities';
1
+ import { OnDestroy } from '@angular/core';
2
+ import { DbxFirebaseModelEntity, DbxFirebaseModelEntityWithStore } from './model.entities';
3
+ import { Observable } from 'rxjs';
2
4
  import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
3
- import { DbxFirebaseModelTypesService } from '../model.types.service';
5
+ import { DbxFirebaseModelTypesService, type DbxFirebaseModelDisplayInfo, type DbxFirebaseModelTypeInfo } from '../model.types.service';
6
+ import { type Maybe } from '@dereekb/util';
4
7
  import * as i0 from "@angular/core";
5
- export declare class DbxFirebaseModelEntitiesEntityComponent {
6
- readonly widgetService: DbxFirebaseModelEntitiesWidgetService;
7
- readonly modelTypesService: DbxFirebaseModelTypesService;
8
- /**
9
- * The input entity
10
- */
8
+ export declare class DbxFirebaseModelEntitiesEntityComponent implements OnDestroy {
9
+ readonly widgetInjectionConfigFactory: import("./model.entities.widget").DbxFirebaseModelEntitiesWidgetInjectionConfigFactory;
10
+ readonly entitiesWidgetService: DbxFirebaseModelEntitiesWidgetService;
11
+ readonly dbxFirebaseModelTypesService: DbxFirebaseModelTypesService;
11
12
  readonly entity: import("@angular/core").InputSignal<DbxFirebaseModelEntity>;
12
- readonly modelIdentity: import("@angular/core").Signal<import("dist/packages/firebase/src").FirestoreModelIdentity>;
13
- readonly entity$: import("rxjs").Observable<DbxFirebaseModelEntity>;
14
- readonly store$: import("rxjs").Observable<import("@dereekb/dbx-firebase").DbxFirebaseDocumentReadOnlyStore<any, any>>;
15
- readonly loadingState$: import("rxjs").Observable<import("@dereekb/rxjs").LoadingState<any>>;
13
+ readonly entity$: Observable<DbxFirebaseModelEntity>;
14
+ readonly currentEntityWithStore$: Observable<DbxFirebaseModelEntityWithStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>> | null>;
15
+ readonly modelIdentity$: Observable<import("dist/packages/firebase/src").FirestoreModelTypeRef<string> & import("dist/packages/firebase/src").FirestoreCollectionNameRef<string> & import("dist/packages/firebase/src").FirestoreCollectionTypeRef & {
16
+ readonly type: import("dist/packages/firebase/src").FirestoreModelIdentityType;
17
+ }>;
18
+ readonly store$: Observable<import("@dereekb/dbx-firebase").DbxFirebaseDocumentReadOnlyStore<any, any>>;
19
+ readonly loadingState$: Observable<import("@dereekb/rxjs").LoadingState<any>>;
20
+ readonly currentData$: Observable<any>;
21
+ readonly currentWidgetEntry$: Observable<import("./model.entities.widget.service").DbxFirebaseModelEntitiesWidgetEntry>;
22
+ readonly currentTypeInfo$: Observable<Maybe<DbxFirebaseModelTypeInfo>>;
23
+ readonly hasTypeInfo$: Observable<boolean>;
24
+ readonly displayInfo$: Observable<DbxFirebaseModelDisplayInfo>;
25
+ readonly widgetInjectionConfig$: Observable<import("./model.entities.widget").DbxFirebaseModelEntitiesWidgetInjectionConfig | null>;
26
+ readonly hasTypeInfoSignal: import("@angular/core").Signal<boolean | undefined>;
27
+ readonly displayInfoSignal: import("@angular/core").Signal<import("@dereekb/dbx-core").IconAndTitle | undefined>;
28
+ readonly widgetInjectionConfigSignal: import("@angular/core").Signal<import("./model.entities.widget").DbxFirebaseModelEntitiesWidgetInjectionConfig | null | undefined>;
29
+ readonly entityWidgetConfigSignal: import("@angular/core").Signal<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<unknown>>>;
30
+ readonly commonWidgetConfigSignal: import("@angular/core").Signal<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<unknown>>>;
31
+ readonly debugWidgetConfigSignal: import("@angular/core").Signal<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<unknown>>>;
32
+ readonly loadingContext: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, import("@dereekb/rxjs").LoadingState<any>, import("@dereekb/rxjs").LoadingContextEvent & import("@dereekb/rxjs").LoadingState<any>>;
33
+ ngOnDestroy(): void;
16
34
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelEntitiesEntityComponent, never>;
17
35
  static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelEntitiesEntityComponent, "dbx-firebase-model-entities-entity", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
18
36
  }
@@ -0,0 +1,22 @@
1
+ import { type EnvironmentProviders, type Injector } from '@angular/core';
2
+ import { DbxFirebaseModelEntitiesWidgetServiceConfig } from './model.entities.widget.service';
3
+ /**
4
+ * Factory for DbxFirebaseModelEntitiesWidgetServiceConfig.
5
+ */
6
+ export type DbxFirebaseModelEntitiesWidgetServiceConfigFactory = (injector: Injector) => DbxFirebaseModelEntitiesWidgetServiceConfig;
7
+ /**
8
+ * Configuration for provideDbxFirebaseModelEntitiesWidgetService().
9
+ */
10
+ export interface ProvideDbxFirebaseModelEntitiesWidgetServiceConfig {
11
+ /**
12
+ * Factory for DbxFirebaseModelEntitiesWidgetServiceConfig.
13
+ */
14
+ readonly dbxFirebaseModelEntitiesWidgetServiceConfigFactory: DbxFirebaseModelEntitiesWidgetServiceConfigFactory;
15
+ }
16
+ /**
17
+ * Creates EnvironmentProviders for DbxFirebaseModelEntitiesWidgetService.
18
+ *
19
+ * @param config Configuration
20
+ * @returns EnvironmentProviders
21
+ */
22
+ export declare function provideDbxFirebaseModelEntitiesWidgetService(config: ProvideDbxFirebaseModelEntitiesWidgetServiceConfig): EnvironmentProviders;
@@ -0,0 +1,30 @@
1
+ import { InjectionToken, type Injector } from '@angular/core';
2
+ import { type DbxFirebaseModelEntityWithStore } from './model.entities';
3
+ import { type DbxFirebaseModelEntitiesWidgetEntry } from './model.entities.widget.service';
4
+ import { type DbxInjectionComponentConfig } from '@dereekb/dbx-core';
5
+ import { type Maybe } from '@dereekb/util';
6
+ /**
7
+ * Injection token for providing DbxFirebaseModelEntityWithStore context to dynamically loaded widgets.
8
+ */
9
+ export declare const DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN: InjectionToken<DbxFirebaseModelEntityWithStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>>>;
10
+ /**
11
+ * Contains the DbxInjectionComponentConfig for the different injected components a DbxFirebaseModelEntity
12
+ */
13
+ export interface DbxFirebaseModelEntitiesWidgetInjectionConfig {
14
+ readonly entry: DbxFirebaseModelEntitiesWidgetEntry;
15
+ readonly entity: DbxFirebaseModelEntityWithStore;
16
+ readonly entityComponentConfig?: Maybe<DbxInjectionComponentConfig<unknown>>;
17
+ readonly commonComponentConfig?: Maybe<DbxInjectionComponentConfig<unknown>>;
18
+ readonly debugComponentConfig?: Maybe<DbxInjectionComponentConfig<unknown>>;
19
+ }
20
+ /**
21
+ * Factory function used to create a DbxFirebaseModelEntitiesWidgetInjectionConfig given the input.
22
+ */
23
+ export type DbxFirebaseModelEntitiesWidgetInjectionConfigFactory = (entry: DbxFirebaseModelEntitiesWidgetEntry, entity: DbxFirebaseModelEntityWithStore) => DbxFirebaseModelEntitiesWidgetInjectionConfig;
24
+ /**
25
+ * Creates a DbxFirebaseModelEntitiesWidgetInjectionConfigFactory.
26
+ *
27
+ * @param injector Optional injector to use for the components.
28
+ * @returns
29
+ */
30
+ export declare function dbxFirebaseModelEntityWidgetInjectionConfigFactory(injector?: Maybe<Injector>): DbxFirebaseModelEntitiesWidgetInjectionConfigFactory;
@@ -0,0 +1,12 @@
1
+ import { DbxFirebaseModelEntityWithStore } from './model.entities';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * An abstract DbxFirebase widget component that injects the entity data and provides some common accessors.
5
+ */
6
+ export declare abstract class AbstractDbxFirebaseModelEntitiesWidgetDirective {
7
+ readonly entityData: DbxFirebaseModelEntityWithStore;
8
+ readonly store: import("@dereekb/dbx-firebase").DbxFirebaseDocumentReadOnlyStore<any, import("dist/packages/firebase/src").FirestoreDocument<any, import("dist/packages/firebase/src").FirestoreModelIdentity>>;
9
+ readonly data$: import("rxjs").Observable<any>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxFirebaseModelEntitiesWidgetDirective, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxFirebaseModelEntitiesWidgetDirective, never, never, {}, {}, never, never, false, never>;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { AbstractDbxFirebaseModelEntitiesWidgetDirective } from './model.entities.widget.entity.abstract.directive';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * A debug widget component that displays entity data and metadata.
6
+ */
7
+ export declare class DbxFirebaseModelEntitiesDebugWidgetComponent extends AbstractDbxFirebaseModelEntitiesWidgetDirective implements OnDestroy {
8
+ readonly currentKey: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<string>>;
9
+ readonly currentData: import("@angular/core").Signal<any>;
10
+ readonly context: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, import("@dereekb/rxjs").LoadingState<any>, import("@dereekb/rxjs").LoadingContextEvent & import("@dereekb/rxjs").LoadingState<any>>;
11
+ ngOnDestroy(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelEntitiesDebugWidgetComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelEntitiesDebugWidgetComponent, "dbx-firebase-model-entities-debug-widget", never, {}, {}, never, never, true, never>;
14
+ }
@@ -8,9 +8,17 @@ export interface DbxFirebaseModelEntitiesWidgetEntry {
8
8
  */
9
9
  readonly identity: FirestoreModelIdentity;
10
10
  /**
11
- * Widget component class to use.
11
+ * Widget component that is specific to this entity.
12
12
  */
13
- readonly componentClass: Type<unknown>;
13
+ readonly entityComponentClass?: Maybe<Type<unknown>>;
14
+ /**
15
+ * Overrides the "common" widget component used for all entities.
16
+ */
17
+ readonly commonComponentClass?: Maybe<Type<unknown>>;
18
+ /**
19
+ * Optional widget component that is specific to this entity that provides additional debug information, and is displayed after the common widget.
20
+ */
21
+ readonly debugComponentClass?: Maybe<Type<unknown>>;
14
22
  }
15
23
  /**
16
24
  * Configuration provided in the root module for configuring entries.
@@ -20,24 +28,38 @@ export declare abstract class DbxFirebaseModelEntitiesWidgetServiceConfig {
20
28
  * Entries to register.
21
29
  */
22
30
  abstract entries: DbxFirebaseModelEntitiesWidgetEntry[];
31
+ /**
32
+ * The default "common" widget component used for all entities.
33
+ */
34
+ abstract commonComponentClass?: Maybe<Type<unknown>>;
35
+ /**
36
+ * The default "debug" widget component used for all entities.
37
+ */
38
+ abstract debugComponentClass?: Maybe<Type<unknown>>;
23
39
  }
24
40
  /**
25
41
  * Service used to register widgets used for model entities.
26
42
  */
27
43
  export declare class DbxFirebaseModelEntitiesWidgetService {
44
+ private _commonComponentClass;
45
+ private _debugComponentClass;
28
46
  private readonly _entries;
29
47
  constructor(initialConfig?: DbxFirebaseModelEntitiesWidgetServiceConfig);
48
+ getCommonComponentClass(): Maybe<Type<unknown>>;
49
+ setCommonComponentClass(componentClass: Maybe<Type<unknown>>): void;
50
+ getDebugComponentClass(): Maybe<Type<unknown>>;
51
+ setDebugComponentClass(componentClass: Maybe<Type<unknown>>): void;
30
52
  /**
31
53
  * Used to register one or more entries.
32
54
  *
33
55
  * If an entry with the same identity is already registered, this will override it by default.
34
56
  *
35
- * @param entries
36
- * @param override
57
+ * @param entries The entries to register
58
+ * @param override Whether to override existing entries (default: true)
37
59
  */
38
60
  register(entries: ArrayOrValue<DbxFirebaseModelEntitiesWidgetEntry>, override?: boolean): void;
39
61
  getAllRegisteredWidgetIdentities(): FirestoreModelIdentity[];
40
- getWidgetEntry(identity: FirestoreModelIdentity): Maybe<DbxFirebaseModelEntitiesWidgetEntry>;
62
+ getWidgetEntry(identity: FirestoreModelIdentity): DbxFirebaseModelEntitiesWidgetEntry;
41
63
  getWidgetEntries(identities: Iterable<FirestoreModelIdentity>): DbxFirebaseModelEntitiesWidgetEntry[];
42
64
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelEntitiesWidgetService, [{ optional: true; }]>;
43
65
  static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseModelEntitiesWidgetService>;
@@ -1,5 +1,6 @@
1
1
  export * from './history';
2
2
  export * from './entities';
3
+ export * from './model.key.component';
3
4
  export * from './model.types.service';
4
5
  export * from './model.types.module';
5
6
  export * from './model.types.list.component';
@@ -0,0 +1,24 @@
1
+ import { DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceInstance } from './model.types.service';
2
+ import { Maybe } from '@dereekb/util';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * An interactive display for a FirestoreModelKey.
6
+ */
7
+ export declare class DbxFirebaseModelKeyComponent {
8
+ readonly dbxFirebaseModelTypesService: DbxFirebaseModelTypesService;
9
+ readonly modelKey: import("@angular/core").InputSignal<string | undefined>;
10
+ readonly oneWayFlatModelKey: import("@angular/core").Signal<string | undefined>;
11
+ readonly twoWayFlatModelKey: import("@angular/core").Signal<string | undefined>;
12
+ readonly modelKey$: import("rxjs").Observable<string | undefined>;
13
+ readonly modelTypeInstance$: import("rxjs").Observable<DbxFirebaseModelTypesServiceInstance<any, string> | undefined>;
14
+ readonly modelIdentity$: import("rxjs").Observable<import("@dereekb/firebase").FirestoreModelIdentity | undefined>;
15
+ readonly typeInfo$: import("rxjs").Observable<Maybe<import("./model.types.service").DbxFirebaseModelTypeInfo<unknown>>>;
16
+ readonly modelTypeInstanceSignal: import("@angular/core").Signal<DbxFirebaseModelTypesServiceInstance<any, string> | undefined>;
17
+ readonly modelIdentitySignal: import("@angular/core").Signal<import("@dereekb/firebase").FirestoreModelIdentity | undefined>;
18
+ readonly typeInfoSignal: import("@angular/core").Signal<Maybe<import("./model.types.service").DbxFirebaseModelTypeInfo<unknown>>>;
19
+ readonly typeCanSegueToView: import("@angular/core").Signal<boolean>;
20
+ readonly sref$: import("rxjs").Observable<Maybe<import("@dereekb/dbx-core").SegueRef<object>>>;
21
+ readonly srefSignal: import("@angular/core").Signal<Maybe<import("@dereekb/dbx-core").SegueRef<object>>>;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelKeyComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelKeyComponent, "dbx-firebase-model-key", never, { "modelKey": { "alias": "modelKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
24
+ }
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { FirestoreCollectionType, FirestoreDocument, FirestoreDocumentData, FirestoreModelIdentity, FirestoreModelKey } from '@dereekb/firebase';
3
3
  import { DbxModelTypeInfo, DbxModelTypesMap, DbxModelTypesService } from '@dereekb/dbx-web';
4
- import { ArrayOrValue, FactoryWithRequiredInput, Maybe, ModelTypeString } from '@dereekb/util';
4
+ import { ArrayOrValue, FactoryWithRequiredInput, Maybe } from '@dereekb/util';
5
5
  import { ClickableAnchorLinkSegueRef, IconAndTitle, SegueRef } from '@dereekb/dbx-core';
6
6
  import { ObservableOrValue } from '@dereekb/rxjs';
7
7
  import { GrantedRole } from '@dereekb/model';
@@ -51,8 +51,8 @@ export declare class DbxFirebaseModelTypesService {
51
51
  icon: string;
52
52
  };
53
53
  register(entries: ArrayOrValue<DbxFirebaseModelTypesServiceEntry>): void;
54
- currentInfoForType(type: ModelTypeString | FirestoreCollectionType): Observable<Maybe<DbxFirebaseModelTypeInfo>>;
55
- infoForType(type: ModelTypeString | FirestoreCollectionType): Observable<DbxFirebaseModelTypeInfo>;
54
+ currentInfoForType(type: FirestoreCollectionType): Observable<Maybe<DbxFirebaseModelTypeInfo>>;
55
+ infoForType(type: FirestoreCollectionType): Observable<DbxFirebaseModelTypeInfo>;
56
56
  instanceForKey<D extends FirestoreDocument<any> = any, R extends GrantedRole = GrantedRole>(key$: ObservableOrValue<FirestoreModelKey>): DbxFirebaseModelTypesServiceInstance<D, R>;
57
57
  instancePairsForKeys(keys: ArrayOrValue<ObservableOrValue<FirestoreModelKey>>): Observable<DbxFirebaseModelTypesServiceInstancePair<any, string>[]>;
58
58
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTypesService, never>;
@@ -78,6 +78,7 @@ export interface DbxFirebaseModelTypesServiceInstance<D extends FirestoreDocumen
78
78
  readonly key$: Observable<string>;
79
79
  readonly modelType$: Observable<string>;
80
80
  readonly snapshotData$: Observable<Maybe<FirestoreDocumentData<D>>>;
81
+ readonly safeTypeInfo$: Observable<Maybe<DbxFirebaseModelTypeInfo<unknown>>>;
81
82
  readonly typeInfo$: Observable<DbxFirebaseModelTypeInfo<unknown>>;
82
83
  readonly identity$: Observable<FirestoreModelIdentity>;
83
84
  readonly segueRef$: Observable<Maybe<SegueRef>>;
@@ -37,9 +37,9 @@ export declare class AbstractDbxFirebaseDocumentStore<T, D extends FirestoreDocu
37
37
  readonly twoWayFlatKey$: Observable<FlatFirestoreModelKey>;
38
38
  readonly snapshot$: Observable<DocumentSnapshot<T>>;
39
39
  readonly snapshotLoadingState$: Observable<LoadingState<DocumentSnapshot<T>>>;
40
+ readonly dataLoadingState$: Observable<LoadingState<DocumentDataWithIdAndKey<T>>>;
40
41
  readonly currentData$: Observable<Maybe<DocumentDataWithIdAndKey<T>>>;
41
42
  readonly data$: Observable<DocumentDataWithIdAndKey<T>>;
42
- readonly dataLoadingState$: Observable<LoadingState<DocumentDataWithIdAndKey<T>>>;
43
43
  readonly isLoadingData$: Observable<boolean>;
44
44
  /**
45
45
  * Returns false while hasRef$ is false, and then returns exists$.
@@ -11,6 +11,7 @@ import { type ProvideDbxFirebaseDevelopmentConfig } from './development/developm
11
11
  import { type ProvideDbxFirebaseNotificationsConfig } from './modules/notification/notification.providers';
12
12
  import { type ProvideDbxFirebaseModelContextServiceConfig } from './model/service/model.context.providers';
13
13
  import { type ProvideDbxFirebaseModelTypesServiceConfig } from './model/modules/model/model.types.providers';
14
+ import { type ProvideDbxFirebaseModelEntitiesWidgetServiceConfig } from './model/modules/model/entities/model.entities.providers';
14
15
  export interface ProvideDbxFirebaseConfig<T, M extends FirebaseFunctionsMap = FirebaseFunctionsMap> {
15
16
  readonly app: ProvideDbxFirebaseAppConfig;
16
17
  readonly emulator: ProvideDbxFirebaseEmulatorsConfig;
@@ -26,6 +27,10 @@ export interface ProvideDbxFirebaseConfig<T, M extends FirebaseFunctionsMap = Fi
26
27
  * Configuration for provideDbxFirebaseModelTypesService().
27
28
  */
28
29
  readonly modelTypesService: ProvideDbxFirebaseModelTypesServiceConfig;
30
+ /**
31
+ * Configuration for provideDbxFirebaseModelEntitiesWidgetService().
32
+ */
33
+ readonly modelEntitiesWidgetService?: Maybe<ProvideDbxFirebaseModelEntitiesWidgetServiceConfig>;
29
34
  /**
30
35
  * Configuration for provideDbxFirebaseDevelopment.
31
36
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-firebase",
3
- "version": "12.6.12",
3
+ "version": "12.6.14",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^18.0.0",
6
6
  "@dereekb/dbx-analytics": "*",