@dereekb/dbx-firebase 13.4.1 → 13.5.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.
- package/fesm2022/dereekb-dbx-firebase-oidc.mjs +216 -131
- package/fesm2022/dereekb-dbx-firebase-oidc.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-firebase.mjs +1323 -724
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/login/_login.scss +1 -20
- package/lib/model/_model.scss +0 -1
- package/lib/model/modules/model/_model.scss +0 -19
- package/lib/style/_all-typography.scss +0 -2
- package/lib/style/_theming.scss +1 -5
- package/package.json +13 -13
- package/types/dereekb-dbx-firebase-oidc.d.ts +97 -10
- package/types/dereekb-dbx-firebase.d.ts +650 -105
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable, provideAppInitializer, makeEnvironmentProviders, InjectionToken, Component, model, computed, ChangeDetectionStrategy, signal, Directive, EventEmitter, input, output, Injector,
|
|
2
|
+
import { inject, Injectable, provideAppInitializer, makeEnvironmentProviders, InjectionToken, Component, model, computed, ChangeDetectionStrategy, signal, Directive, EventEmitter, input, output, Injector, viewChild, HostListener, NgModule, ElementRef, forwardRef, effect, DestroyRef, Inject, Optional, Pipe } from '@angular/core';
|
|
3
3
|
import { DbxAnalyticsService } from '@dereekb/dbx-analytics';
|
|
4
4
|
import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, switchMapWhileTrue, loadingStateFromObs, distinctUntilKeysChange, cleanupDestroyable, iterationHasNextAndCanLoadMore, pageItemAccumulatorCurrentPage, accumulatorFlattenPageListLoadingState, useFirst, itemAccumulatorNextPageUntilResultsCount, iteratorNextPageUntilPage, iteratorNextPageUntilMaxPageLoadLimit, pageLoadingStateFromObs, useAsObservable, filterMaybeArray, mapEachAsync, invertObservableDecision, filterItemsWithObservableDecision, switchMapMaybe, beginLoading, mapLoadingStateValueWithOperator, valueFromFinishedLoadingState, skipInitialMaybe, distinctUntilModelKeyChange, successResult, errorResult, isLoadingStateLoading, cleanup, mapLoadingState, throwErrorFromLoadingStateError, maybeValueFromObservableOrValue, distinctUntilHasDifferentValues, MultiSubscriptionObject, startWithBeginLoading, skipAllInitialMaybe } from '@dereekb/rxjs';
|
|
5
5
|
import { switchMap, of, shareReplay, map, distinctUntilChanged, EMPTY, catchError, firstValueFrom, BehaviorSubject, combineLatest, first, from, tap, interval, exhaustMap, filter, take, startWith, Subject, throttleTime, NEVER, defaultIfEmpty, combineLatestWith, mergeMap, Observable } from 'rxjs';
|
|
6
6
|
import * as i2 from '@dereekb/dbx-core';
|
|
7
7
|
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponent, AbstractForwardDbxInjectionContextDirective, DbxInjectionContextDirective, DbxAuthService, DbxActionButtonDirective, completeOnDestroy, cleanSubscription, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxActionAutoTriggerDirective, clean, cleanLoadingContext, provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate, AbstractIfDirective, LockSetComponentStore, newWithInjector, CutTextPipe, DbxActionContextStoreSourceInstance, DbxActionHandlerInstance, cleanSubscriptionWithLockSet, SimpleStorageAccessorFactory, dbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance } from '@dereekb/dbx-core';
|
|
8
|
-
import { Auth, authState, idToken,
|
|
8
|
+
import { Auth, authState, idToken, signInWithPopup, linkWithPopup, linkWithCredential, unlink, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, reauthenticateWithPopup, OAuthProvider, FacebookAuthProvider, GithubAuthProvider, GoogleAuthProvider, TwitterAuthProvider, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
9
9
|
import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeArrayValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, pushArrayItemsIntoArray, forEachKeyValue, countAllInNestedArray, invertDecision, useIterableOrValue, filterUniqueValues, reverseCompareFn, sortByNumberFunction, separateValues, readableError, isMaybeSo, firstValue, splitJoinRemainder, MS_IN_HOUR, SECONDS_IN_MINUTE, MS_IN_DAY, unixDateTimeSecondsNumberForNow, MS_IN_MINUTE, addMilliseconds, unixDateTimeSecondsNumberFromDate, dateFromDateOrTimeSecondsNumber, MS_IN_SECOND, isPast } from '@dereekb/util';
|
|
10
10
|
import { safeFormatToISO8601DateString, msToSeconds, isSameDate } from '@dereekb/date';
|
|
11
11
|
import { sendPasswordResetEmail } from 'firebase/auth';
|
|
12
12
|
import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
|
|
13
13
|
import { AppCheck, provideAppCheck } from '@angular/fire/app-check';
|
|
14
14
|
import * as i1$1 from '@dereekb/dbx-web';
|
|
15
|
-
import { DbxLinkComponent, DbxActionModule, DbxButtonModule, DbxErrorComponent, DbxActionErrorDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxRouterAnchorModule, DbxWidgetService, AbstractDbxSelectionListWrapperDirective, DbxListWrapperComponentImportsModule, provideDbxListViewWrapper, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxSelectionListViewDirective, DbxSelectionValueListViewComponentImportsModule, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxValueListViewItemComponent, TwoColumnsContextStore, DbxAnchorComponent, DbxTwoColumnFullLeftDirective, DbxWidgetViewComponent, DbxTwoColumnComponent, DbxTwoBlockComponent, DbxTwoColumnRightComponent, AbstractPopupDirective, DbxPopupService, DbxPopupContentComponent, DbxPopupControlsComponent, DbxModelTypesService, DbxModelTrackerService, allDbxModelViewTrackerEventModelKeys, DbxListItemAnchorModifierDirective, DbxValueListItemModifierDirective, AbstractPopoverDirective, DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxListEmptyContentComponent, AbstractPopoverRefDirective, DbxPopoverService, DbxIconButtonComponent, DbxLoadingComponent, DbxDetailBlockComponent, DbxClickToCopyTextComponent, DbxDownloadTextViewComponent, DbxModelObjectStateService, DbxListViewWrapper, AbstractDbxWidgetComponent, DbxPopoverInteractionModule, DbxListModifierModule, DbxWebFilePreviewService, DbxActionSnackbarErrorDirective, DbxActionDialogDirective, DbxFileUploadComponent, DbxActionLoadingContextDirective, DbxFileUploadActionSyncDirective } from '@dereekb/dbx-web';
|
|
15
|
+
import { DbxLinkComponent, DbxActionModule, DbxButtonModule, DbxErrorComponent, DbxActionErrorDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxRouterAnchorModule, DbxSectionComponent, DbxWidgetService, AbstractDbxSelectionListWrapperDirective, DbxListWrapperComponentImportsModule, provideDbxListViewWrapper, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxSelectionListViewDirective, DbxSelectionValueListViewComponentImportsModule, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxValueListViewItemComponent, TwoColumnsContextStore, DbxAnchorComponent, DbxTwoColumnFullLeftDirective, DbxWidgetViewComponent, DbxTwoColumnComponent, DbxTwoBlockComponent, DbxTwoColumnRightComponent, AbstractPopupDirective, DbxPopupService, DbxPopupContentComponent, DbxPopupControlsComponent, DbxModelTypesService, DbxModelTrackerService, allDbxModelViewTrackerEventModelKeys, DbxListItemAnchorModifierDirective, DbxValueListItemModifierDirective, AbstractPopoverDirective, DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxListEmptyContentComponent, AbstractPopoverRefDirective, DbxPopoverService, DbxIconButtonComponent, DbxLoadingComponent, DbxDetailBlockComponent, DbxClickToCopyTextComponent, DbxDownloadTextViewComponent, DbxModelObjectStateService, DbxListViewWrapper, AbstractDbxWidgetComponent, DbxPopoverInteractionModule, DbxListModifierModule, DbxWebFilePreviewService, DbxActionSnackbarErrorDirective, DbxActionDialogDirective, DbxFileUploadComponent, DbxActionLoadingContextDirective, DbxFileUploadActionSyncDirective } from '@dereekb/dbx-web';
|
|
16
16
|
import * as i1 from '@angular/material/icon';
|
|
17
17
|
import { MatIconModule, MatIcon } from '@angular/material/icon';
|
|
18
|
+
import { firebaseAuthErrorToReadableError, FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFunctionTypeEnum, clientFirebaseFirestoreContextFactory, SystemStateFirestoreCollections, NotificationFirestoreCollections, StorageFileFirestoreCollections, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, iterationQueryDocChangeWatcher, firebaseQuerySnapshotAccumulator, firebaseQueryItemAccumulator, firestoreModelKeysFromDocuments, firestoreModelIdsFromDocuments, documentReferencesFromDocuments, getDocumentSnapshots, getDataFromDocumentSnapshots, latestSnapshotsFromDocuments, dataFromDocumentSnapshots, loadDocumentsForKeys, loadDocumentsForDocumentReferences, loadDocumentsForIds, firestoreModelKeyCollectionTypePair, buildFirebaseCollectionTypeModelTypeMap, firestoreModelId, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, documentDataWithIdAndKey, isClientFirebaseError, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, inferKeyFromTwoWayFlatFirestoreModelKey, firestoreModelKeyParentKey, AppNotificationTemplateTypeInfoRecordService, NotificationFunctions, unreadNotificationItems, StorageFileFunctions, firestoreModelKey, storageFileIdentity, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
|
|
18
19
|
import * as i1$2 from '@dereekb/dbx-form';
|
|
19
20
|
import { AbstractSyncFormlyFormDirective, emailField, DbxFormlyFormComponentImportsModule, dbxFormlyFormComponentProviders, DBX_FORMLY_FORM_COMPONENT_TEMPLATE, AbstractConfigAsyncFormlyFormDirective, usernamePasswordLoginFields, DbxActionFormDirective, DbxFormSourceDirective, pickableItemChipField, filterPickableItemFieldValuesByLabel } from '@dereekb/dbx-form';
|
|
20
|
-
import { firebaseAuthErrorToReadableError, FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFunctionTypeEnum, clientFirebaseFirestoreContextFactory, SystemStateFirestoreCollections, NotificationFirestoreCollections, StorageFileFirestoreCollections, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, iterationQueryDocChangeWatcher, firebaseQuerySnapshotAccumulator, firebaseQueryItemAccumulator, firestoreModelKeysFromDocuments, firestoreModelIdsFromDocuments, documentReferencesFromDocuments, getDocumentSnapshots, getDataFromDocumentSnapshots, latestSnapshotsFromDocuments, dataFromDocumentSnapshots, loadDocumentsForKeys, loadDocumentsForDocumentReferences, loadDocumentsForIds, firestoreModelKeyCollectionTypePair, buildFirebaseCollectionTypeModelTypeMap, firestoreModelId, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, documentDataWithIdAndKey, isClientFirebaseError, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, inferKeyFromTwoWayFlatFirestoreModelKey, firestoreModelKeyParentKey, AppNotificationTemplateTypeInfoRecordService, NotificationFunctions, unreadNotificationItems, StorageFileFunctions, firestoreModelKey, storageFileIdentity, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
|
|
21
21
|
import { NgTemplateOutlet, DatePipe } from '@angular/common';
|
|
22
22
|
import * as i1$3 from '@angular/material/button';
|
|
23
23
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -35,6 +35,12 @@ import { __decorate, __param } from 'tslib';
|
|
|
35
35
|
import { MatDialog } from '@angular/material/dialog';
|
|
36
36
|
import { BaseError } from 'make-error';
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Converts a Firebase Auth {@link User} into an {@link AuthUserInfo} containing display name, email, phone, photo URL, UID, and metadata timestamps.
|
|
40
|
+
*
|
|
41
|
+
* @param user - The Firebase Auth user to convert.
|
|
42
|
+
* @returns An AuthUserInfo object with the user's profile and metadata.
|
|
43
|
+
*/
|
|
38
44
|
function authUserInfoFromAuthUser(user) {
|
|
39
45
|
return {
|
|
40
46
|
displayName: user?.displayName,
|
|
@@ -43,9 +49,16 @@ function authUserInfoFromAuthUser(user) {
|
|
|
43
49
|
photoURL: user.photoURL,
|
|
44
50
|
uid: user.uid,
|
|
45
51
|
creationTime: safeFormatToISO8601DateString(user.metadata.creationTime),
|
|
46
|
-
lastSignInTime: safeFormatToISO8601DateString(user.metadata.lastSignInTime)
|
|
52
|
+
lastSignInTime: safeFormatToISO8601DateString(user.metadata.lastSignInTime),
|
|
53
|
+
providerData: user.providerData
|
|
47
54
|
};
|
|
48
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Extracts a {@link FirebaseAuthToken} from a Firebase Auth {@link User}, including email verification status and metadata timestamps.
|
|
58
|
+
*
|
|
59
|
+
* @param user - The Firebase Auth user to extract token info from.
|
|
60
|
+
* @returns A FirebaseAuthToken with the user's auth-related properties.
|
|
61
|
+
*/
|
|
49
62
|
function firebaseAuthTokenFromUser(user) {
|
|
50
63
|
return {
|
|
51
64
|
email: user.email,
|
|
@@ -76,6 +89,13 @@ function authUserStateFromFirebaseAuthServiceFunction(stateForLoggedInUser = ()
|
|
|
76
89
|
}), shareReplay(1));
|
|
77
90
|
};
|
|
78
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Creates an AuthUserStateObsFunction that derives the user state from the current ID token using the provided mapping function.
|
|
94
|
+
*
|
|
95
|
+
* @param stateFromToken - Function that maps an IdTokenResult to an AuthUserState.
|
|
96
|
+
* @param defaultState - The fallback state when no token is available. Defaults to 'user'.
|
|
97
|
+
* @returns An AuthUserStateObsFunction that reads state from the ID token.
|
|
98
|
+
*/
|
|
79
99
|
function stateFromTokenForLoggedInUserFunction(stateFromToken, defaultState = 'user') {
|
|
80
100
|
return (dbxFirebaseAuthService) => {
|
|
81
101
|
return readValueFromIdToken(dbxFirebaseAuthService, stateFromToken, defaultState);
|
|
@@ -128,6 +148,16 @@ class DbxFirebaseAuthService {
|
|
|
128
148
|
hasAuthUser$ = this.currentAuthUser$.pipe(map((x) => Boolean(x)), distinctUntilChanged(), shareReplay(1));
|
|
129
149
|
isAnonymousUser$ = this.authUser$.pipe(map((x) => x.isAnonymous), distinctUntilChanged(), shareReplay(1));
|
|
130
150
|
isNotAnonymousUser$ = this.isAnonymousUser$.pipe(isNot(), distinctUntilChanged(), shareReplay(1));
|
|
151
|
+
/**
|
|
152
|
+
* Observable of provider IDs currently linked to the authenticated user.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```ts
|
|
156
|
+
* authService.currentLinkedProviderIds$.subscribe(ids => console.log(ids));
|
|
157
|
+
* // ['google.com', 'facebook.com']
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
currentLinkedProviderIds$ = this.currentAuthUser$.pipe(map((user) => (user ? user.providerData.map((p) => p.providerId) : [])), distinctUntilChanged((a, b) => a.length === b.length && a.every((v, i) => v === b[i])), shareReplay(1));
|
|
131
161
|
isLoggedIn$ = this.hasAuthUser$;
|
|
132
162
|
isNotLoggedIn$ = this.isLoggedIn$.pipe(isNot());
|
|
133
163
|
onLogIn$ = loggedInObsFromIsLoggedIn(this.isLoggedIn$);
|
|
@@ -197,31 +227,73 @@ class DbxFirebaseAuthService {
|
|
|
197
227
|
}
|
|
198
228
|
return result;
|
|
199
229
|
}
|
|
200
|
-
|
|
201
|
-
return this.
|
|
202
|
-
}
|
|
203
|
-
logInWithFacebook() {
|
|
204
|
-
return this.logInWithPopup(new FacebookAuthProvider());
|
|
205
|
-
}
|
|
206
|
-
logInWithTwitter() {
|
|
207
|
-
return this.logInWithPopup(new TwitterAuthProvider());
|
|
208
|
-
}
|
|
209
|
-
logInWithGithub() {
|
|
210
|
-
return this.logInWithPopup(new GithubAuthProvider());
|
|
211
|
-
}
|
|
212
|
-
logInWithApple() {
|
|
213
|
-
throw new Error('todo');
|
|
230
|
+
logInWithPopup(provider, resolver) {
|
|
231
|
+
return signInWithPopup(this.firebaseAuth, provider, resolver);
|
|
214
232
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
233
|
+
/**
|
|
234
|
+
* Links an additional authentication provider to the current user via popup.
|
|
235
|
+
*
|
|
236
|
+
* @param provider - The auth provider to link.
|
|
237
|
+
* @param resolver - Optional popup redirect resolver.
|
|
238
|
+
* @returns A promise resolving to the user credential after linking.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```ts
|
|
242
|
+
* await authService.linkWithPopup(new GoogleAuthProvider());
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
linkWithPopup(provider, resolver) {
|
|
246
|
+
return firstValueFrom(this.currentAuthUser$.pipe(switchMap((x) => {
|
|
247
|
+
if (x) {
|
|
248
|
+
return linkWithPopup(x, provider, resolver);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
throw new Error('User is not logged in currently.');
|
|
252
|
+
}
|
|
253
|
+
})));
|
|
218
254
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
255
|
+
/**
|
|
256
|
+
* Links a credential to the current user. Useful for merging accounts
|
|
257
|
+
* when a credential-already-in-use error provides an {@link AuthCredential}.
|
|
258
|
+
*
|
|
259
|
+
* @param credential - The auth credential to link.
|
|
260
|
+
* @returns A promise resolving to the user credential after linking.
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```ts
|
|
264
|
+
* await authService.linkWithCredential(credential);
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
linkWithCredential(credential) {
|
|
268
|
+
return firstValueFrom(this.currentAuthUser$.pipe(switchMap((x) => {
|
|
269
|
+
if (x) {
|
|
270
|
+
return linkWithCredential(x, credential);
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
throw new Error('User is not logged in currently.');
|
|
274
|
+
}
|
|
275
|
+
})));
|
|
222
276
|
}
|
|
223
|
-
|
|
224
|
-
|
|
277
|
+
/**
|
|
278
|
+
* Unlinks an authentication provider from the current user.
|
|
279
|
+
*
|
|
280
|
+
* @param providerId - The provider ID to unlink (e.g., 'google.com').
|
|
281
|
+
* @returns A promise resolving to the updated user.
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* ```ts
|
|
285
|
+
* await authService.unlinkProvider('google.com');
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
unlinkProvider(providerId) {
|
|
289
|
+
return firstValueFrom(this.currentAuthUser$.pipe(switchMap((x) => {
|
|
290
|
+
if (x) {
|
|
291
|
+
return unlink(x, providerId);
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
throw new Error('User is not logged in currently.');
|
|
295
|
+
}
|
|
296
|
+
})));
|
|
225
297
|
}
|
|
226
298
|
registerWithEmailAndPassword(email, password) {
|
|
227
299
|
return createUserWithEmailAndPassword(this.firebaseAuth, email, password);
|
|
@@ -248,10 +320,10 @@ class DbxFirebaseAuthService {
|
|
|
248
320
|
}
|
|
249
321
|
})));
|
|
250
322
|
}
|
|
251
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
252
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
323
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
324
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAuthService });
|
|
253
325
|
}
|
|
254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAuthService, decorators: [{
|
|
255
327
|
type: Injectable
|
|
256
328
|
}] });
|
|
257
329
|
/**
|
|
@@ -283,6 +355,12 @@ function dbxFirebaseAuthContextInfo(service, user, jwtToken) {
|
|
|
283
355
|
return result;
|
|
284
356
|
}
|
|
285
357
|
|
|
358
|
+
/**
|
|
359
|
+
* Extracts analytics user properties (name, email, creation time) from an {@link AuthUserInfo} instance.
|
|
360
|
+
*
|
|
361
|
+
* @param user - The authenticated user info to extract properties from.
|
|
362
|
+
* @returns AnalyticsUserProperties populated from the user info.
|
|
363
|
+
*/
|
|
286
364
|
function readDbxAnalyticsUserPropertiesFromAuthUserInfo(user) {
|
|
287
365
|
const properties = {
|
|
288
366
|
name: user.displayName ?? '',
|
|
@@ -317,10 +395,10 @@ class DbxFirebaseAnalyticsUserSource {
|
|
|
317
395
|
set userPropertiesFactory(userPropertiesFactory) {
|
|
318
396
|
this._userPropertiesFactory.next(userPropertiesFactory);
|
|
319
397
|
}
|
|
320
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
321
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
398
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
399
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, providedIn: 'root' });
|
|
322
400
|
}
|
|
323
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, decorators: [{
|
|
324
402
|
type: Injectable,
|
|
325
403
|
args: [{
|
|
326
404
|
providedIn: 'root'
|
|
@@ -350,10 +428,10 @@ class DbxFirebaseAnalyticsUserEventsListenerService {
|
|
|
350
428
|
this._loginSub.destroy();
|
|
351
429
|
this._logoutSub.destroy();
|
|
352
430
|
}
|
|
353
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
354
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
431
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAnalyticsUserEventsListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
432
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAnalyticsUserEventsListenerService });
|
|
355
433
|
}
|
|
356
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
434
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAnalyticsUserEventsListenerService, decorators: [{
|
|
357
435
|
type: Injectable
|
|
358
436
|
}] });
|
|
359
437
|
|
|
@@ -449,10 +527,10 @@ class DbxFirebaseAppCheckHttpInterceptor {
|
|
|
449
527
|
}
|
|
450
528
|
return from(this._appCheckRoutes).pipe(first((route) => isEnabledRouteMatch(route), false), map((x) => Boolean(x)));
|
|
451
529
|
}
|
|
452
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
453
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
530
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
531
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor });
|
|
454
532
|
}
|
|
455
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor, decorators: [{
|
|
456
534
|
type: Injectable
|
|
457
535
|
}] });
|
|
458
536
|
|
|
@@ -461,7 +539,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
461
539
|
*/
|
|
462
540
|
const DBX_FIREBASE_LOGIN_TERMS_OF_SERVICE_URLS_CONFIG = new InjectionToken('DBX_FIREBASE_LOGIN_TERMS_OF_SERVICE_URLS_CONFIG');
|
|
463
541
|
|
|
464
|
-
/**
|
|
542
|
+
/**
|
|
543
|
+
* Default terms of service display component with links to Terms and Privacy Policy URLs.
|
|
544
|
+
*/
|
|
465
545
|
class DbxFirebaseLoginTermsSimpleComponent {
|
|
466
546
|
dbxFirebaseLoginTermsConfig = inject(DBX_FIREBASE_LOGIN_TERMS_OF_SERVICE_URLS_CONFIG);
|
|
467
547
|
tosAnchor = {
|
|
@@ -472,8 +552,8 @@ class DbxFirebaseLoginTermsSimpleComponent {
|
|
|
472
552
|
url: this.dbxFirebaseLoginTermsConfig.privacyUrl,
|
|
473
553
|
target: '_blank'
|
|
474
554
|
};
|
|
475
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
476
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
555
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginTermsSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
556
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginTermsSimpleComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
477
557
|
<div class="dbx-firebase-login-terms-view">
|
|
478
558
|
<dbx-link [anchor]="tosAnchor">Terms</dbx-link>
|
|
479
559
|
<span class="dbx-link-spacer"></span>
|
|
@@ -481,7 +561,7 @@ class DbxFirebaseLoginTermsSimpleComponent {
|
|
|
481
561
|
</div>
|
|
482
562
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxLinkComponent, selector: "dbx-link", inputs: ["ref", "href", "anchor"] }] });
|
|
483
563
|
}
|
|
484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
564
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginTermsSimpleComponent, decorators: [{
|
|
485
565
|
type: Component,
|
|
486
566
|
args: [{
|
|
487
567
|
template: `
|
|
@@ -496,7 +576,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
496
576
|
}]
|
|
497
577
|
}] });
|
|
498
578
|
|
|
499
|
-
/**
|
|
579
|
+
/**
|
|
580
|
+
* Default password config requiring a minimum of 6 characters (Firebase Auth minimum).
|
|
581
|
+
*/
|
|
500
582
|
const DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG = {
|
|
501
583
|
minLength: 6
|
|
502
584
|
};
|
|
@@ -530,8 +612,9 @@ class DbxFirebaseAuthLoginService {
|
|
|
530
612
|
/**
|
|
531
613
|
* Used to register a provider. If a provider is already registered, this will override it by default.
|
|
532
614
|
*
|
|
533
|
-
* @param provider
|
|
534
|
-
* @param override
|
|
615
|
+
* @param provider - The login provider to register.
|
|
616
|
+
* @param override - Whether to override an existing provider of the same type. Defaults to true.
|
|
617
|
+
* @returns True if the provider was registered, false if it already existed and override was false.
|
|
535
618
|
*/
|
|
536
619
|
register(provider, override = true) {
|
|
537
620
|
if (override || !this._providers.has(provider.loginMethodType)) {
|
|
@@ -562,6 +645,8 @@ class DbxFirebaseAuthLoginService {
|
|
|
562
645
|
// MARK: Enable/Disable
|
|
563
646
|
/**
|
|
564
647
|
* Enables all providers and any providers that will be registered.
|
|
648
|
+
*
|
|
649
|
+
* @param enableAll - Whether to enable all providers. Defaults to true.
|
|
565
650
|
*/
|
|
566
651
|
setEnableAll(enableAll = true) {
|
|
567
652
|
this._enableAll = enableAll;
|
|
@@ -582,10 +667,10 @@ class DbxFirebaseAuthLoginService {
|
|
|
582
667
|
}
|
|
583
668
|
// MARK: Get
|
|
584
669
|
getRegisteredTypes() {
|
|
585
|
-
return
|
|
670
|
+
return [...this._providers.keys()];
|
|
586
671
|
}
|
|
587
672
|
getEnabledTypes() {
|
|
588
|
-
return this._enableAll ? this.getRegisteredTypes() :
|
|
673
|
+
return this._enableAll ? this.getRegisteredTypes() : [...this._enabled];
|
|
589
674
|
}
|
|
590
675
|
getLoginProvider(type) {
|
|
591
676
|
return this._providers.get(type);
|
|
@@ -599,6 +684,17 @@ class DbxFirebaseAuthLoginService {
|
|
|
599
684
|
getRegisterProviders(types) {
|
|
600
685
|
return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._providers.get(x))).filter((x) => x.registrationComponentClass !== false);
|
|
601
686
|
}
|
|
687
|
+
getLinkProviders(types) {
|
|
688
|
+
return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._providers.get(x))).filter((x) => x.allowLinking !== false);
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* Returns all registered provider assets.
|
|
692
|
+
*
|
|
693
|
+
* @returns A map of login method types to their asset configurations.
|
|
694
|
+
*/
|
|
695
|
+
getAllProviderAssets() {
|
|
696
|
+
return new Map(this._assets);
|
|
697
|
+
}
|
|
602
698
|
getProviderAssets(type) {
|
|
603
699
|
return this._assets.get(type);
|
|
604
700
|
}
|
|
@@ -608,16 +704,20 @@ class DbxFirebaseAuthLoginService {
|
|
|
608
704
|
setPasswordConfig(passwordConfig) {
|
|
609
705
|
this._passwordConfig = passwordConfig;
|
|
610
706
|
}
|
|
611
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
612
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
707
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAuthLoginService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
708
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAuthLoginService });
|
|
613
709
|
}
|
|
614
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseAuthLoginService, decorators: [{
|
|
615
711
|
type: Injectable
|
|
616
712
|
}], ctorParameters: () => [] });
|
|
617
713
|
|
|
618
|
-
/**
|
|
714
|
+
/**
|
|
715
|
+
* Category for built-in login methods (email, phone, anonymous).
|
|
716
|
+
*/
|
|
619
717
|
const DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY = 'default';
|
|
620
|
-
/**
|
|
718
|
+
/**
|
|
719
|
+
* Category for OAuth-based login methods (Google, Facebook, etc.).
|
|
720
|
+
*/
|
|
621
721
|
const OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY = 'oauth';
|
|
622
722
|
|
|
623
723
|
/**
|
|
@@ -632,12 +732,13 @@ class DbxFirebaseLoginContext extends DbxInjectionContext {
|
|
|
632
732
|
* Displays a logo image or icon alongside the login text with configurable colors.
|
|
633
733
|
*/
|
|
634
734
|
class DbxFirebaseLoginButtonComponent {
|
|
635
|
-
config = model(null, ...(ngDevMode ? [{ debugName: "config" }] : []));
|
|
636
|
-
iconUrlSignal = computed(() => this.config()?.iconUrl, ...(ngDevMode ? [{ debugName: "iconUrlSignal" }] : []));
|
|
637
|
-
iconSignal = computed(() => this.config()?.icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : []));
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
735
|
+
config = model(null, ...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
736
|
+
iconUrlSignal = computed(() => this.config()?.iconUrl, ...(ngDevMode ? [{ debugName: "iconUrlSignal" }] : /* istanbul ignore next */ []));
|
|
737
|
+
iconSignal = computed(() => this.config()?.icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
|
|
738
|
+
iconFilterSignal = computed(() => this.config()?.iconFilter, ...(ngDevMode ? [{ debugName: "iconFilterSignal" }] : /* istanbul ignore next */ []));
|
|
739
|
+
textSignal = computed(() => this.config()?.text ?? '', ...(ngDevMode ? [{ debugName: "textSignal" }] : /* istanbul ignore next */ []));
|
|
740
|
+
buttonColorSignal = computed(() => this.config()?.buttonColor ?? 'transparent', ...(ngDevMode ? [{ debugName: "buttonColorSignal" }] : /* istanbul ignore next */ []));
|
|
741
|
+
buttonTextColorSignal = computed(() => this.config()?.buttonTextColor, ...(ngDevMode ? [{ debugName: "buttonTextColorSignal" }] : /* istanbul ignore next */ []));
|
|
641
742
|
setConfig(config) {
|
|
642
743
|
this.config.set(config);
|
|
643
744
|
}
|
|
@@ -654,14 +755,14 @@ class DbxFirebaseLoginButtonComponent {
|
|
|
654
755
|
onActionSuccess = () => {
|
|
655
756
|
// todo: show checkmark on success?
|
|
656
757
|
};
|
|
657
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
658
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
758
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
759
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseLoginButtonComponent, isStandalone: true, selector: "dbx-firebase-login-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, host: { classAttribute: "dbx-firebase-login-button" }, ngImport: i0, template: `
|
|
659
760
|
<ng-container dbxAction [dbxActionHandler]="handleAction" dbxActionValue [dbxActionSuccessHandler]="onActionSuccess">
|
|
660
761
|
<dbx-button dbxActionButton [customTextColor]="buttonTextColorSignal()" [customButtonColor]="buttonColorSignal()" [raised]="true">
|
|
661
762
|
<div class="dbx-firebase-login-button-content">
|
|
662
763
|
<span class="dbx-firebase-login-button-icon dbx-icon-spacer">
|
|
663
764
|
@if (iconUrlSignal()) {
|
|
664
|
-
<img [src]="iconUrlSignal()" />
|
|
765
|
+
<img [src]="iconUrlSignal()" alt="" [style.filter]="iconFilterSignal()" />
|
|
665
766
|
}
|
|
666
767
|
@if (iconSignal()) {
|
|
667
768
|
<mat-icon>{{ iconSignal() }}</mat-icon>
|
|
@@ -671,9 +772,9 @@ class DbxFirebaseLoginButtonComponent {
|
|
|
671
772
|
</div>
|
|
672
773
|
</dbx-button>
|
|
673
774
|
</ng-container>
|
|
674
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
775
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
675
776
|
}
|
|
676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
777
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginButtonComponent, decorators: [{
|
|
677
778
|
type: Component,
|
|
678
779
|
args: [{
|
|
679
780
|
selector: 'dbx-firebase-login-button',
|
|
@@ -683,7 +784,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
683
784
|
<div class="dbx-firebase-login-button-content">
|
|
684
785
|
<span class="dbx-firebase-login-button-icon dbx-icon-spacer">
|
|
685
786
|
@if (iconUrlSignal()) {
|
|
686
|
-
<img [src]="iconUrlSignal()" />
|
|
787
|
+
<img [src]="iconUrlSignal()" alt="" [style.filter]="iconFilterSignal()" />
|
|
687
788
|
}
|
|
688
789
|
@if (iconSignal()) {
|
|
689
790
|
<mat-icon>{{ iconSignal() }}</mat-icon>
|
|
@@ -702,16 +803,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
702
803
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
703
804
|
}]
|
|
704
805
|
}], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }] } });
|
|
705
|
-
/**
|
|
806
|
+
/**
|
|
807
|
+
* Container component that wraps login button content with consistent spacing.
|
|
808
|
+
*/
|
|
706
809
|
class DbxFirebaseLoginButtonContainerComponent {
|
|
707
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
708
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
810
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginButtonContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
811
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginButtonContainerComponent, isStandalone: true, selector: "dbx-firebase-login-button-container", ngImport: i0, template: `
|
|
709
812
|
<div class="dbx-firebase-login-button-container">
|
|
710
813
|
<ng-content></ng-content>
|
|
711
814
|
</div>
|
|
712
815
|
`, isInline: true });
|
|
713
816
|
}
|
|
714
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
817
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginButtonContainerComponent, decorators: [{
|
|
715
818
|
type: Component,
|
|
716
819
|
args: [{
|
|
717
820
|
selector: 'dbx-firebase-login-button-container',
|
|
@@ -723,13 +826,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
723
826
|
standalone: true
|
|
724
827
|
}]
|
|
725
828
|
}] });
|
|
726
|
-
/**
|
|
829
|
+
/**
|
|
830
|
+
* Default template for configured login button components.
|
|
831
|
+
*/
|
|
727
832
|
const DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE = `
|
|
728
833
|
<dbx-firebase-login-button-container>
|
|
729
834
|
<dbx-firebase-login-button [config]="configSignal()"></dbx-firebase-login-button>
|
|
730
835
|
</dbx-firebase-login-button-container>
|
|
731
836
|
`;
|
|
732
|
-
/**
|
|
837
|
+
/**
|
|
838
|
+
* Shared component configuration for OAuth-style login button components.
|
|
839
|
+
*/
|
|
733
840
|
const DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION = {
|
|
734
841
|
template: DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE,
|
|
735
842
|
imports: [DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent],
|
|
@@ -738,25 +845,56 @@ const DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION = {
|
|
|
738
845
|
/**
|
|
739
846
|
* Abstract base directive for login provider buttons that auto-configures appearance
|
|
740
847
|
* from the registered provider assets and delegates login handling to subclasses.
|
|
848
|
+
*
|
|
849
|
+
* Supports login, register, and link modes. In link mode, the button text is derived from
|
|
850
|
+
* the provider's `linkText` or defaults to "Connect " + `providerName`.
|
|
851
|
+
*
|
|
852
|
+
* @example
|
|
853
|
+
* ```typescript
|
|
854
|
+
* export class MyProviderComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
855
|
+
* readonly loginProvider = 'myprovider';
|
|
856
|
+
* handleLogin() { return this.dbxFirebaseAuthService.logInWithPopup(new MyProvider()); }
|
|
857
|
+
* handleLink() { return this.dbxFirebaseAuthService.linkWithPopup(new MyProvider()); }
|
|
858
|
+
* }
|
|
859
|
+
* ```
|
|
741
860
|
*/
|
|
742
861
|
class AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
743
862
|
dbxFirebaseAuthService = inject(DbxFirebaseAuthService);
|
|
744
863
|
dbxFirebaseAuthLoginService = inject(DbxFirebaseAuthLoginService);
|
|
745
864
|
dbxFirebaseLoginContext = inject(DbxFirebaseLoginContext);
|
|
746
|
-
|
|
747
|
-
_config = signal(null, ...(ngDevMode ? [{ debugName: "_config" }] : []));
|
|
748
|
-
configSignal = computed(() => this._config(), ...(ngDevMode ? [{ debugName: "configSignal" }] : []));
|
|
865
|
+
_injectionData = inject(DBX_INJECTION_COMPONENT_DATA, { optional: true });
|
|
866
|
+
_config = signal(null, ...(ngDevMode ? [{ debugName: "_config" }] : /* istanbul ignore next */ []));
|
|
867
|
+
configSignal = computed(() => this._config(), ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
|
|
868
|
+
/**
|
|
869
|
+
* The effective login mode, derived from injection data or defaulting to 'login'.
|
|
870
|
+
*
|
|
871
|
+
* @returns The login mode for this button instance.
|
|
872
|
+
*/
|
|
873
|
+
get effectiveLoginMode() {
|
|
874
|
+
return this._injectionData?.loginMode ?? 'login';
|
|
875
|
+
}
|
|
749
876
|
ngOnInit() {
|
|
750
877
|
const assets = this.assetConfig;
|
|
878
|
+
const text = this._textForMode(assets);
|
|
751
879
|
this._config.set({
|
|
752
|
-
text
|
|
880
|
+
text,
|
|
753
881
|
icon: assets.loginIcon,
|
|
754
882
|
iconUrl: assets.logoUrl,
|
|
883
|
+
iconFilter: assets.logoFilter,
|
|
755
884
|
buttonColor: assets.backgroundColor,
|
|
756
885
|
buttonTextColor: assets.textColor,
|
|
757
|
-
handleLogin: () => this.
|
|
886
|
+
handleLogin: () => this._handleAction()
|
|
758
887
|
});
|
|
759
888
|
}
|
|
889
|
+
/**
|
|
890
|
+
* Handles the link action. Override in subclasses that support linking.
|
|
891
|
+
* Throws by default for providers that do not support linking.
|
|
892
|
+
*
|
|
893
|
+
* @returns A promise that resolves when the link action completes.
|
|
894
|
+
*/
|
|
895
|
+
handleLink() {
|
|
896
|
+
throw new Error(`Linking is not supported for the "${this.loginProvider}" provider.`);
|
|
897
|
+
}
|
|
760
898
|
get providerConfig() {
|
|
761
899
|
return this.dbxFirebaseAuthLoginService.getLoginProvider(this.loginProvider);
|
|
762
900
|
}
|
|
@@ -766,23 +904,47 @@ class AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
|
766
904
|
get config() {
|
|
767
905
|
return this._config();
|
|
768
906
|
}
|
|
769
|
-
|
|
770
|
-
|
|
907
|
+
_textForMode(assets) {
|
|
908
|
+
let text;
|
|
909
|
+
if (this.effectiveLoginMode === 'link') {
|
|
910
|
+
text = assets.linkText ?? (assets.providerName ? `Connect ${assets.providerName}` : '<linkText not configured>');
|
|
911
|
+
}
|
|
912
|
+
else {
|
|
913
|
+
text = assets.loginText ?? '<loginText not configured>';
|
|
914
|
+
}
|
|
915
|
+
return text;
|
|
916
|
+
}
|
|
917
|
+
_handleAction() {
|
|
918
|
+
let promise;
|
|
919
|
+
if (this.effectiveLoginMode === 'link') {
|
|
920
|
+
promise = this.handleLink();
|
|
921
|
+
}
|
|
922
|
+
else {
|
|
923
|
+
promise = this.handleLogin();
|
|
924
|
+
}
|
|
925
|
+
return promise.catch((error) => {
|
|
926
|
+
throw firebaseAuthErrorToReadableError(error);
|
|
927
|
+
});
|
|
928
|
+
}
|
|
929
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractConfiguredDbxFirebaseLoginButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
930
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: AbstractConfiguredDbxFirebaseLoginButtonDirective, isStandalone: true, ngImport: i0 });
|
|
771
931
|
}
|
|
772
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
932
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractConfiguredDbxFirebaseLoginButtonDirective, decorators: [{
|
|
773
933
|
type: Directive
|
|
774
934
|
}] });
|
|
775
935
|
|
|
776
|
-
/**
|
|
936
|
+
/**
|
|
937
|
+
* Login button component for anonymous (guest) authentication.
|
|
938
|
+
*/
|
|
777
939
|
class DbxFirebaseLoginAnonymousComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
778
940
|
loginProvider = 'anonymous';
|
|
779
941
|
handleLogin() {
|
|
780
942
|
return this.dbxFirebaseAuthService.logInAsAnonymous();
|
|
781
943
|
}
|
|
782
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
783
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
944
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginAnonymousComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
945
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginAnonymousComponent, isStandalone: true, selector: "dbx-firebase-login-anonymous", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
784
946
|
}
|
|
785
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
947
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginAnonymousComponent, decorators: [{
|
|
786
948
|
type: Component,
|
|
787
949
|
args: [{
|
|
788
950
|
selector: 'dbx-firebase-login-anonymous',
|
|
@@ -793,13 +955,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
793
955
|
}]
|
|
794
956
|
}] });
|
|
795
957
|
|
|
796
|
-
/**
|
|
958
|
+
/**
|
|
959
|
+
* Creates an Apple OAuthProvider configured with email and name scopes.
|
|
960
|
+
*
|
|
961
|
+
* @returns A configured {@link OAuthProvider} for Apple sign-in.
|
|
962
|
+
*/
|
|
963
|
+
function createAppleAuthProvider() {
|
|
964
|
+
const provider = new OAuthProvider('apple.com');
|
|
965
|
+
provider.addScope('email');
|
|
966
|
+
provider.addScope('name');
|
|
967
|
+
return provider;
|
|
968
|
+
}
|
|
969
|
+
/**
|
|
970
|
+
* Login button component for Apple OAuth authentication.
|
|
971
|
+
*/
|
|
972
|
+
class DbxFirebaseLoginAppleComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
973
|
+
loginProvider = 'apple';
|
|
974
|
+
handleLogin() {
|
|
975
|
+
return this.dbxFirebaseAuthService.logInWithPopup(createAppleAuthProvider());
|
|
976
|
+
}
|
|
977
|
+
handleLink() {
|
|
978
|
+
return this.dbxFirebaseAuthService.linkWithPopup(createAppleAuthProvider());
|
|
979
|
+
}
|
|
980
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginAppleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
981
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginAppleComponent, isStandalone: true, selector: "dbx-firebase-login-apple", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
982
|
+
}
|
|
983
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginAppleComponent, decorators: [{
|
|
984
|
+
type: Component,
|
|
985
|
+
args: [{
|
|
986
|
+
selector: 'dbx-firebase-login-apple',
|
|
987
|
+
imports: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.imports,
|
|
988
|
+
template: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.template,
|
|
989
|
+
changeDetection: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.changeDetection,
|
|
990
|
+
standalone: true
|
|
991
|
+
}]
|
|
992
|
+
}] });
|
|
993
|
+
|
|
994
|
+
/**
|
|
995
|
+
* Formly-based form component for password recovery, containing a single email field.
|
|
996
|
+
*/
|
|
797
997
|
class DbxFirebaseEmailRecoveryFormComponent extends AbstractSyncFormlyFormDirective {
|
|
798
998
|
fields = [emailField({ required: true })];
|
|
799
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
800
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
999
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmailRecoveryFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1000
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseEmailRecoveryFormComponent, isStandalone: true, selector: "dbx-firebase-email-recovery-form", providers: dbxFormlyFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-formly></dbx-formly>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxFormlyFormComponentImportsModule }, { kind: "component", type: i1$2.DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
801
1001
|
}
|
|
802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmailRecoveryFormComponent, decorators: [{
|
|
803
1003
|
type: Component,
|
|
804
1004
|
args: [{
|
|
805
1005
|
selector: 'dbx-firebase-email-recovery-form',
|
|
@@ -823,10 +1023,10 @@ class DbxFirebaseEmailFormComponent extends AbstractConfigAsyncFormlyFormDirecti
|
|
|
823
1023
|
const fields = usernamePasswordLoginFields({ username: 'email', password: passwordConfig, verifyPassword: loginMode === 'register' });
|
|
824
1024
|
return fields;
|
|
825
1025
|
}));
|
|
826
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
827
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1026
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmailFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1027
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseEmailFormComponent, isStandalone: true, selector: "dbx-firebase-email-form", providers: dbxFormlyFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-formly></dbx-formly>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxFormlyFormComponentImportsModule }, { kind: "component", type: i1$2.DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
828
1028
|
}
|
|
829
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1029
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmailFormComponent, decorators: [{
|
|
830
1030
|
type: Component,
|
|
831
1031
|
args: [{
|
|
832
1032
|
selector: 'dbx-firebase-email-form',
|
|
@@ -850,9 +1050,9 @@ class DbxFirebaseLoginEmailContentComponent {
|
|
|
850
1050
|
loginMode: this.config.loginMode,
|
|
851
1051
|
passwordConfig: this.config.passwordConfig
|
|
852
1052
|
};
|
|
853
|
-
_emailFormValueSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "_emailFormValueSignal" }] : []));
|
|
854
|
-
_recoveryFormValueSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "_recoveryFormValueSignal" }] : []));
|
|
855
|
-
_emailModeSignal = signal('login', ...(ngDevMode ? [{ debugName: "_emailModeSignal" }] : []));
|
|
1053
|
+
_emailFormValueSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "_emailFormValueSignal" }] : /* istanbul ignore next */ []));
|
|
1054
|
+
_recoveryFormValueSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "_recoveryFormValueSignal" }] : /* istanbul ignore next */ []));
|
|
1055
|
+
_emailModeSignal = signal('login', ...(ngDevMode ? [{ debugName: "_emailModeSignal" }] : /* istanbul ignore next */ []));
|
|
856
1056
|
emailFormValueSignal = this._emailFormValueSignal.asReadonly();
|
|
857
1057
|
recoveryFormValueSignal = this._recoveryFormValueSignal.asReadonly();
|
|
858
1058
|
emailModeSignal = this._emailModeSignal.asReadonly();
|
|
@@ -910,7 +1110,7 @@ class DbxFirebaseLoginEmailContentComponent {
|
|
|
910
1110
|
context.startWorkingWithPromise(this.dbxFirebaseAuthService.sendPasswordResetEmail(value.email));
|
|
911
1111
|
};
|
|
912
1112
|
// MARK: Recovering
|
|
913
|
-
handleRecoverySuccess = (
|
|
1113
|
+
handleRecoverySuccess = (_x) => {
|
|
914
1114
|
this._emailModeSignal.set('recoversent');
|
|
915
1115
|
};
|
|
916
1116
|
clickedRecoveryAcknowledged() {
|
|
@@ -923,24 +1123,26 @@ class DbxFirebaseLoginEmailContentComponent {
|
|
|
923
1123
|
onCancelReset() {
|
|
924
1124
|
this.doneOrCancelled.next(false);
|
|
925
1125
|
}
|
|
926
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
927
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginEmailContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1127
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseLoginEmailContentComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"dbx-firebase-login-email-content\">\n @switch (emailModeSignal()) {\n @case ('login') {\n <ng-container *ngTemplateOutlet=\"loginView\"></ng-container>\n }\n @case ('recover') {\n <ng-container *ngTemplateOutlet=\"resetPassword\"></ng-container>\n }\n @case ('recoversent') {\n <ng-container *ngTemplateOutlet=\"resetPasswordSent\"></ng-container>\n }\n }\n</div>\n\n<!-- Login View -->\n<ng-template #loginView>\n <ng-container dbxAction [dbxActionHandler]=\"handleLoginAction\">\n <dbx-firebase-email-form [config]=\"formConfig\" dbxActionForm [dbxFormSource]=\"emailFormValueSignal()\"></dbx-firebase-email-form>\n @if (isLoginMode) {\n <div class=\"dbx-firebase-login-email-forgot-prompt\">\n <dbx-link [anchor]=\"forgotAnchor\">Forgot Password?</dbx-link>\n </div>\n }\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-button-wide\" [text]=\"buttonText\" [raised]=\"true\" color=\"primary\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancel()\">Cancel</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </ng-container>\n</ng-template>\n\n<!-- Reset Password View -->\n<ng-template #resetPassword>\n <div class=\"dbx-firebase-login-email-content-recovery\" dbxAction [dbxActionHandler]=\"handleRecoveryAction\" [dbxActionSuccessHandler]=\"handleRecoverySuccess\">\n <dbx-firebase-email-recovery-form dbxActionForm [dbxFormSource]=\"recoveryFormValueSignal()\"></dbx-firebase-email-recovery-form>\n <p class=\"dbx-hint\">An email will be sent to the above address to help you reset your password.</p>\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-button-wide\" text=\"Send Recovery Email\" [raised]=\"true\" color=\"primary\" dbxActionButton></dbx-button>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancelReset()\">Cancel Recovery</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </div>\n</ng-template>\n\n<!-- Reset Password Sent -->\n<ng-template #resetPasswordSent>\n <div class=\"dbx-firebase-login-email-content-recovery-sent\">\n <p class=\"dbx-hint\">A recovery email was sent to the specified address. Please check your email for next steps.</p>\n <button mat-raised-button (click)=\"clickedRecoveryAcknowledged()\">Ok</button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "component", type: DbxLinkComponent, selector: "dbx-link", inputs: ["ref", "href", "anchor"] }, { kind: "directive", type: DbxActionErrorDirective, selector: "[dbxActionError]" }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: DbxFirebaseEmailFormComponent, selector: "dbx-firebase-email-form" }, { kind: "component", type: DbxFirebaseEmailRecoveryFormComponent, selector: "dbx-firebase-email-recovery-form" }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
928
1128
|
}
|
|
929
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginEmailContentComponent, decorators: [{
|
|
930
1130
|
type: Component,
|
|
931
1131
|
args: [{ imports: [NgTemplateOutlet, DbxErrorComponent, DbxLinkComponent, DbxActionErrorDirective, DbxActionFormDirective, MatButtonModule, DbxActionModule, DbxButtonComponent, DbxButtonSpacerDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFormSourceDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-firebase-login-email-content\">\n @switch (emailModeSignal()) {\n @case ('login') {\n <ng-container *ngTemplateOutlet=\"loginView\"></ng-container>\n }\n @case ('recover') {\n <ng-container *ngTemplateOutlet=\"resetPassword\"></ng-container>\n }\n @case ('recoversent') {\n <ng-container *ngTemplateOutlet=\"resetPasswordSent\"></ng-container>\n }\n }\n</div>\n\n<!-- Login View -->\n<ng-template #loginView>\n <ng-container dbxAction [dbxActionHandler]=\"handleLoginAction\">\n <dbx-firebase-email-form [config]=\"formConfig\" dbxActionForm [dbxFormSource]=\"emailFormValueSignal()\"></dbx-firebase-email-form>\n @if (isLoginMode) {\n <div class=\"dbx-firebase-login-email-forgot-prompt\">\n <dbx-link [anchor]=\"forgotAnchor\">Forgot Password?</dbx-link>\n </div>\n }\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-button-wide\" [text]=\"buttonText\" [raised]=\"true\" color=\"primary\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancel()\">Cancel</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </ng-container>\n</ng-template>\n\n<!-- Reset Password View -->\n<ng-template #resetPassword>\n <div class=\"dbx-firebase-login-email-content-recovery\" dbxAction [dbxActionHandler]=\"handleRecoveryAction\" [dbxActionSuccessHandler]=\"handleRecoverySuccess\">\n <dbx-firebase-email-recovery-form dbxActionForm [dbxFormSource]=\"recoveryFormValueSignal()\"></dbx-firebase-email-recovery-form>\n <p class=\"dbx-hint\">An email will be sent to the above address to help you reset your password.</p>\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-button-wide\" text=\"Send Recovery Email\" [raised]=\"true\" color=\"primary\" dbxActionButton></dbx-button>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancelReset()\">Cancel Recovery</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </div>\n</ng-template>\n\n<!-- Reset Password Sent -->\n<ng-template #resetPasswordSent>\n <div class=\"dbx-firebase-login-email-content-recovery-sent\">\n <p class=\"dbx-hint\">A recovery email was sent to the specified address. Please check your email for next steps.</p>\n <button mat-raised-button (click)=\"clickedRecoveryAcknowledged()\">Ok</button>\n </div>\n</ng-template>\n" }]
|
|
932
1132
|
}] });
|
|
933
1133
|
|
|
934
|
-
/**
|
|
1134
|
+
/**
|
|
1135
|
+
* Login button component for email/password authentication. Opens the email login context on click.
|
|
1136
|
+
*/
|
|
935
1137
|
class DbxFirebaseLoginEmailComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
936
1138
|
loginProvider = 'email';
|
|
937
1139
|
handleLogin() {
|
|
938
1140
|
return DbxFirebaseLoginEmailContentComponent.openEmailLoginContext(this.dbxFirebaseLoginContext, { loginMode: 'login', passwordConfig: this.dbxFirebaseAuthLoginService.getPasswordConfig() });
|
|
939
1141
|
}
|
|
940
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
941
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1142
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginEmailComponent, isStandalone: true, selector: "dbx-firebase-login-email", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
942
1144
|
}
|
|
943
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginEmailComponent, decorators: [{
|
|
944
1146
|
type: Component,
|
|
945
1147
|
args: [{
|
|
946
1148
|
selector: 'dbx-firebase-login-email',
|
|
@@ -951,16 +1153,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
951
1153
|
}]
|
|
952
1154
|
}] });
|
|
953
1155
|
|
|
954
|
-
/**
|
|
1156
|
+
/**
|
|
1157
|
+
* Login button component for Facebook OAuth authentication.
|
|
1158
|
+
*/
|
|
955
1159
|
class DbxFirebaseLoginFacebookComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
956
1160
|
loginProvider = 'facebook';
|
|
957
1161
|
handleLogin() {
|
|
958
|
-
return this.dbxFirebaseAuthService.
|
|
1162
|
+
return this.dbxFirebaseAuthService.logInWithPopup(new FacebookAuthProvider());
|
|
959
1163
|
}
|
|
960
|
-
|
|
961
|
-
|
|
1164
|
+
handleLink() {
|
|
1165
|
+
return this.dbxFirebaseAuthService.linkWithPopup(new FacebookAuthProvider());
|
|
1166
|
+
}
|
|
1167
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginFacebookComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1168
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginFacebookComponent, isStandalone: true, selector: "dbx-firebase-login-facebook", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
962
1169
|
}
|
|
963
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginFacebookComponent, decorators: [{
|
|
964
1171
|
type: Component,
|
|
965
1172
|
args: [{
|
|
966
1173
|
selector: 'dbx-firebase-login-facebook',
|
|
@@ -971,16 +1178,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
971
1178
|
}]
|
|
972
1179
|
}] });
|
|
973
1180
|
|
|
974
|
-
/**
|
|
1181
|
+
/**
|
|
1182
|
+
* Login button component for GitHub OAuth authentication.
|
|
1183
|
+
*/
|
|
975
1184
|
class DbxFirebaseLoginGitHubComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
976
1185
|
loginProvider = 'github';
|
|
977
1186
|
handleLogin() {
|
|
978
|
-
return this.dbxFirebaseAuthService.
|
|
1187
|
+
return this.dbxFirebaseAuthService.logInWithPopup(new GithubAuthProvider());
|
|
1188
|
+
}
|
|
1189
|
+
handleLink() {
|
|
1190
|
+
return this.dbxFirebaseAuthService.linkWithPopup(new GithubAuthProvider());
|
|
979
1191
|
}
|
|
980
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
981
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1192
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginGitHubComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1193
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginGitHubComponent, isStandalone: true, selector: "dbx-firebase-login-github", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
982
1194
|
}
|
|
983
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginGitHubComponent, decorators: [{
|
|
984
1196
|
type: Component,
|
|
985
1197
|
args: [{
|
|
986
1198
|
selector: 'dbx-firebase-login-github',
|
|
@@ -991,16 +1203,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
991
1203
|
}]
|
|
992
1204
|
}] });
|
|
993
1205
|
|
|
994
|
-
/**
|
|
1206
|
+
/**
|
|
1207
|
+
* Login button component for Google OAuth authentication.
|
|
1208
|
+
*/
|
|
995
1209
|
class DbxFirebaseLoginGoogleComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
996
1210
|
loginProvider = 'google';
|
|
997
1211
|
handleLogin() {
|
|
998
|
-
return this.dbxFirebaseAuthService.
|
|
1212
|
+
return this.dbxFirebaseAuthService.logInWithPopup(new GoogleAuthProvider());
|
|
1213
|
+
}
|
|
1214
|
+
handleLink() {
|
|
1215
|
+
return this.dbxFirebaseAuthService.linkWithPopup(new GoogleAuthProvider());
|
|
999
1216
|
}
|
|
1000
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1001
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1217
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginGoogleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1218
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginGoogleComponent, isStandalone: true, selector: "dbx-firebase-login-google", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1002
1219
|
}
|
|
1003
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginGoogleComponent, decorators: [{
|
|
1004
1221
|
type: Component,
|
|
1005
1222
|
args: [{
|
|
1006
1223
|
selector: 'dbx-firebase-login-google',
|
|
@@ -1011,16 +1228,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1011
1228
|
}]
|
|
1012
1229
|
}] });
|
|
1013
1230
|
|
|
1014
|
-
/**
|
|
1231
|
+
/**
|
|
1232
|
+
* Login button component for X (formerly Twitter) OAuth authentication.
|
|
1233
|
+
*/
|
|
1015
1234
|
class DbxFirebaseLoginTwitterComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
1016
1235
|
loginProvider = 'twitter';
|
|
1017
1236
|
handleLogin() {
|
|
1018
|
-
return this.dbxFirebaseAuthService.
|
|
1237
|
+
return this.dbxFirebaseAuthService.logInWithPopup(new TwitterAuthProvider());
|
|
1238
|
+
}
|
|
1239
|
+
handleLink() {
|
|
1240
|
+
return this.dbxFirebaseAuthService.linkWithPopup(new TwitterAuthProvider());
|
|
1019
1241
|
}
|
|
1020
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1021
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1242
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginTwitterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1243
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginTwitterComponent, isStandalone: true, selector: "dbx-firebase-login-twitter", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1022
1244
|
}
|
|
1023
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginTwitterComponent, decorators: [{
|
|
1024
1246
|
type: Component,
|
|
1025
1247
|
args: [{
|
|
1026
1248
|
selector: 'dbx-firebase-login-twitter',
|
|
@@ -1031,16 +1253,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1031
1253
|
}]
|
|
1032
1254
|
}] });
|
|
1033
1255
|
|
|
1034
|
-
/**
|
|
1256
|
+
/**
|
|
1257
|
+
* Registration button component for email/password. Opens the email login context in register mode.
|
|
1258
|
+
*/
|
|
1035
1259
|
class DbxFirebaseRegisterEmailComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
1036
1260
|
loginProvider = 'email';
|
|
1037
1261
|
handleLogin() {
|
|
1038
1262
|
return DbxFirebaseLoginEmailContentComponent.openEmailLoginContext(this.dbxFirebaseLoginContext, { loginMode: 'register', passwordConfig: this.dbxFirebaseAuthLoginService.getPasswordConfig() });
|
|
1039
1263
|
}
|
|
1040
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1041
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1264
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseRegisterEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1265
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseRegisterEmailComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1042
1266
|
}
|
|
1043
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseRegisterEmailComponent, decorators: [{
|
|
1044
1268
|
type: Component,
|
|
1045
1269
|
args: [{
|
|
1046
1270
|
imports: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.imports,
|
|
@@ -1056,9 +1280,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1056
1280
|
* @returns Array of DbxFirebaseAuthLoginProvider
|
|
1057
1281
|
*/
|
|
1058
1282
|
function defaultFirebaseAuthLoginProvidersFactory() {
|
|
1059
|
-
//
|
|
1060
|
-
// https://
|
|
1061
|
-
const
|
|
1283
|
+
// Brand logos from @firebase-oss/ui-core via jsdelivr CDN.
|
|
1284
|
+
// https://github.com/firebase/firebaseui-web/tree/master/packages/core/brands
|
|
1285
|
+
const brandLogoBaseUrl = `https://cdn.jsdelivr.net/npm/@firebase-oss/ui-core/brands`;
|
|
1062
1286
|
// NOTE: Colors are from https://brandcolors.net/
|
|
1063
1287
|
return [
|
|
1064
1288
|
{
|
|
@@ -1066,8 +1290,10 @@ function defaultFirebaseAuthLoginProvidersFactory() {
|
|
|
1066
1290
|
loginMethodType: 'email',
|
|
1067
1291
|
componentClass: DbxFirebaseLoginEmailComponent,
|
|
1068
1292
|
registrationComponentClass: DbxFirebaseRegisterEmailComponent,
|
|
1293
|
+
allowLinking: false,
|
|
1069
1294
|
assets: {
|
|
1070
|
-
|
|
1295
|
+
providerName: 'Email',
|
|
1296
|
+
loginIcon: 'mail',
|
|
1071
1297
|
loginText: 'Continue with Email',
|
|
1072
1298
|
backgroundColor: '#ea4335', // gmail red color
|
|
1073
1299
|
textColor: '#FFF'
|
|
@@ -1078,7 +1304,8 @@ function defaultFirebaseAuthLoginProvidersFactory() {
|
|
|
1078
1304
|
loginMethodType: 'google',
|
|
1079
1305
|
componentClass: DbxFirebaseLoginGoogleComponent,
|
|
1080
1306
|
assets: {
|
|
1081
|
-
|
|
1307
|
+
providerName: 'Google',
|
|
1308
|
+
logoUrl: `${brandLogoBaseUrl}/google/logo.svg`,
|
|
1082
1309
|
loginText: 'Continue with Google',
|
|
1083
1310
|
backgroundColor: '#FFF',
|
|
1084
1311
|
textColor: '#757575'
|
|
@@ -1089,9 +1316,11 @@ function defaultFirebaseAuthLoginProvidersFactory() {
|
|
|
1089
1316
|
loginMethodType: 'facebook',
|
|
1090
1317
|
componentClass: DbxFirebaseLoginFacebookComponent,
|
|
1091
1318
|
assets: {
|
|
1092
|
-
|
|
1319
|
+
providerName: 'Facebook',
|
|
1320
|
+
logoUrl: `${brandLogoBaseUrl}/facebook/logo.svg`,
|
|
1321
|
+
logoFilter: 'brightness(0) invert(1)',
|
|
1093
1322
|
loginText: 'Continue with Facebook',
|
|
1094
|
-
backgroundColor: '#
|
|
1323
|
+
backgroundColor: '#1877F2',
|
|
1095
1324
|
textColor: '#FFF'
|
|
1096
1325
|
}
|
|
1097
1326
|
},
|
|
@@ -1100,10 +1329,11 @@ function defaultFirebaseAuthLoginProvidersFactory() {
|
|
|
1100
1329
|
loginMethodType: 'twitter',
|
|
1101
1330
|
componentClass: DbxFirebaseLoginTwitterComponent,
|
|
1102
1331
|
assets: {
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1332
|
+
providerName: 'X',
|
|
1333
|
+
logoUrl: `${brandLogoBaseUrl}/twitter/logo.svg`,
|
|
1334
|
+
loginText: 'Continue with X',
|
|
1335
|
+
backgroundColor: '#FFF',
|
|
1336
|
+
textColor: '#000'
|
|
1107
1337
|
}
|
|
1108
1338
|
},
|
|
1109
1339
|
{
|
|
@@ -1111,37 +1341,33 @@ function defaultFirebaseAuthLoginProvidersFactory() {
|
|
|
1111
1341
|
loginMethodType: 'github',
|
|
1112
1342
|
componentClass: DbxFirebaseLoginGitHubComponent,
|
|
1113
1343
|
assets: {
|
|
1114
|
-
|
|
1115
|
-
|
|
1344
|
+
providerName: 'GitHub',
|
|
1345
|
+
logoUrl: `${brandLogoBaseUrl}/github/logo.svg`,
|
|
1346
|
+
logoFilter: 'brightness(0) invert(1)',
|
|
1347
|
+
loginText: 'Continue with GitHub',
|
|
1116
1348
|
backgroundColor: '#333',
|
|
1117
1349
|
textColor: '#FFF'
|
|
1118
1350
|
}
|
|
1119
1351
|
},
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
componentClass: DbxFirebaseLoginGitHubComponent,
|
|
1134
|
-
assets: {
|
|
1135
|
-
logoUrl: `${baseFirebaseJSUrl}/microsoft.svg`,
|
|
1136
|
-
loginText: 'Continue with Microsoft',
|
|
1137
|
-
backgroundColor: '#ea3e23',
|
|
1138
|
-
textColor: '#FFF'
|
|
1139
|
-
}
|
|
1140
|
-
},*/ {
|
|
1352
|
+
{
|
|
1353
|
+
category: OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY,
|
|
1354
|
+
loginMethodType: 'apple',
|
|
1355
|
+
componentClass: DbxFirebaseLoginAppleComponent,
|
|
1356
|
+
assets: {
|
|
1357
|
+
providerName: 'Apple',
|
|
1358
|
+
logoUrl: `${brandLogoBaseUrl}/apple/logo.svg`,
|
|
1359
|
+
loginText: 'Continue with Apple',
|
|
1360
|
+
backgroundColor: '#FFF',
|
|
1361
|
+
textColor: '#000'
|
|
1362
|
+
}
|
|
1363
|
+
},
|
|
1364
|
+
{
|
|
1141
1365
|
category: DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY,
|
|
1142
1366
|
loginMethodType: 'anonymous',
|
|
1143
1367
|
componentClass: DbxFirebaseLoginAnonymousComponent,
|
|
1368
|
+
allowLinking: false,
|
|
1144
1369
|
assets: {
|
|
1370
|
+
providerName: 'Guest',
|
|
1145
1371
|
loginIcon: 'account_circle',
|
|
1146
1372
|
loginText: 'Continue as Guest',
|
|
1147
1373
|
backgroundColor: '#000',
|
|
@@ -1199,26 +1425,6 @@ function provideDbxFirebaseLogin(config) {
|
|
|
1199
1425
|
return makeEnvironmentProviders(providers);
|
|
1200
1426
|
}
|
|
1201
1427
|
|
|
1202
|
-
/** Login button component for Apple OAuth authentication. */
|
|
1203
|
-
class DbxFirebaseLoginAppleComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
1204
|
-
loginProvider = 'apple';
|
|
1205
|
-
handleLogin() {
|
|
1206
|
-
return this.dbxFirebaseAuthService.logInWithApple();
|
|
1207
|
-
}
|
|
1208
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DbxFirebaseLoginAppleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1209
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: DbxFirebaseLoginAppleComponent, isStandalone: true, selector: "dbx-firebase-login-apple", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1210
|
-
}
|
|
1211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DbxFirebaseLoginAppleComponent, decorators: [{
|
|
1212
|
-
type: Component,
|
|
1213
|
-
args: [{
|
|
1214
|
-
selector: 'dbx-firebase-login-apple',
|
|
1215
|
-
imports: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.imports,
|
|
1216
|
-
template: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.template,
|
|
1217
|
-
changeDetection: DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION.changeDetection,
|
|
1218
|
-
standalone: true
|
|
1219
|
-
}]
|
|
1220
|
-
}] });
|
|
1221
|
-
|
|
1222
1428
|
/**
|
|
1223
1429
|
* Renders a list of login provider buttons, filtered by enabled types and categories.
|
|
1224
1430
|
*
|
|
@@ -1226,17 +1432,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1226
1432
|
*/
|
|
1227
1433
|
class DbxFirebaseLoginListComponent {
|
|
1228
1434
|
dbxFirebaseAuthLoginService = inject(DbxFirebaseAuthLoginService);
|
|
1229
|
-
loginMode = input('login', ...(ngDevMode ? [{ debugName: "loginMode" }] : []));
|
|
1230
|
-
providerTypes = input(...(ngDevMode ? [undefined, { debugName: "providerTypes" }] : []));
|
|
1231
|
-
omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : []));
|
|
1232
|
-
providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : []));
|
|
1435
|
+
loginMode = input('login', ...(ngDevMode ? [{ debugName: "loginMode" }] : /* istanbul ignore next */ []));
|
|
1436
|
+
providerTypes = input(...(ngDevMode ? [undefined, { debugName: "providerTypes" }] : /* istanbul ignore next */ []));
|
|
1437
|
+
omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : /* istanbul ignore next */ []));
|
|
1438
|
+
providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : /* istanbul ignore next */ []));
|
|
1233
1439
|
providerTypesSignal = computed(() => {
|
|
1234
1440
|
const providerTypes = this.providerTypes();
|
|
1235
1441
|
const omitProviderTypes = this.omitProviderTypes();
|
|
1236
1442
|
const baseTypes = providerTypes ? asArray(providerTypes) : this.dbxFirebaseAuthLoginService.getEnabledTypes();
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
}, ...(ngDevMode ? [{ debugName: "providerTypesSignal" }] : []));
|
|
1443
|
+
return omitProviderTypes ? excludeValuesFromArray(baseTypes, asArray(omitProviderTypes)) : baseTypes;
|
|
1444
|
+
}, ...(ngDevMode ? [{ debugName: "providerTypesSignal" }] : /* istanbul ignore next */ []));
|
|
1240
1445
|
providersSignal = computed(() => {
|
|
1241
1446
|
const providerCategories = asArray(this.providerCategories());
|
|
1242
1447
|
let providers = this.dbxFirebaseAuthLoginService.getLoginProviders(this.providerTypesSignal());
|
|
@@ -1245,22 +1450,28 @@ class DbxFirebaseLoginListComponent {
|
|
|
1245
1450
|
providers = providers.filter((x) => containsStringAnyCase(categories, x.category ?? ''));
|
|
1246
1451
|
}
|
|
1247
1452
|
return providers;
|
|
1248
|
-
}, ...(ngDevMode ? [{ debugName: "providersSignal" }] : []));
|
|
1453
|
+
}, ...(ngDevMode ? [{ debugName: "providersSignal" }] : /* istanbul ignore next */ []));
|
|
1249
1454
|
providersInjectionConfigsSignal = computed(() => {
|
|
1250
1455
|
let providers = this.providersSignal();
|
|
1456
|
+
const loginMode = this.loginMode();
|
|
1251
1457
|
let mapFn;
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1458
|
+
switch (loginMode) {
|
|
1459
|
+
case 'register':
|
|
1460
|
+
providers = providers.filter((x) => x.registrationComponentClass !== false);
|
|
1461
|
+
mapFn = (x) => ({ componentClass: (x.registrationComponentClass ?? x.componentClass), loginMethodType: x.loginMethodType, data: { loginMode } });
|
|
1462
|
+
break;
|
|
1463
|
+
case 'link':
|
|
1464
|
+
providers = providers.filter((x) => x.allowLinking !== false);
|
|
1465
|
+
mapFn = (x) => ({ componentClass: x.componentClass, loginMethodType: x.loginMethodType, data: { loginMode } });
|
|
1466
|
+
break;
|
|
1467
|
+
default:
|
|
1468
|
+
mapFn = (x) => ({ componentClass: x.componentClass, loginMethodType: x.loginMethodType, data: { loginMode } });
|
|
1469
|
+
break;
|
|
1470
|
+
}
|
|
1471
|
+
return providers.map(mapFn);
|
|
1472
|
+
}, ...(ngDevMode ? [{ debugName: "providersInjectionConfigsSignal" }] : /* istanbul ignore next */ []));
|
|
1473
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1474
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseLoginListComponent, isStandalone: true, selector: "dbx-firebase-login-list", inputs: { loginMode: { classPropertyName: "loginMode", publicName: "loginMode", isSignal: true, isRequired: false, transformFunction: null }, providerTypes: { classPropertyName: "providerTypes", publicName: "providerTypes", isSignal: true, isRequired: false, transformFunction: null }, omitProviderTypes: { classPropertyName: "omitProviderTypes", publicName: "omitProviderTypes", isSignal: true, isRequired: false, transformFunction: null }, providerCategories: { classPropertyName: "providerCategories", publicName: "providerCategories", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "dbx-firebase-login-list" }, ngImport: i0, template: `
|
|
1264
1475
|
@for (config of providersInjectionConfigsSignal(); track config.loginMethodType) {
|
|
1265
1476
|
<div class="dbx-firebase-login-item">
|
|
1266
1477
|
<dbx-injection [config]="config"></dbx-injection>
|
|
@@ -1268,7 +1479,7 @@ class DbxFirebaseLoginListComponent {
|
|
|
1268
1479
|
}
|
|
1269
1480
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
|
|
1270
1481
|
}
|
|
1271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginListComponent, decorators: [{
|
|
1272
1483
|
type: Component,
|
|
1273
1484
|
args: [{
|
|
1274
1485
|
selector: 'dbx-firebase-login-list',
|
|
@@ -1293,15 +1504,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1293
1504
|
* Apply to a host element to establish a login context scope for child login components.
|
|
1294
1505
|
*/
|
|
1295
1506
|
class DbxFirebaseLoginContextDirective extends AbstractForwardDbxInjectionContextDirective {
|
|
1296
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1297
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
1507
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginContextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
1508
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginContextDirective, isStandalone: true, selector: "[dbxFirebaseLoginContext]", providers: [
|
|
1298
1509
|
{
|
|
1299
1510
|
provide: DbxFirebaseLoginContext,
|
|
1300
1511
|
useExisting: DbxFirebaseLoginContextDirective
|
|
1301
1512
|
}
|
|
1302
1513
|
], usesInheritance: true, ngImport: i0 });
|
|
1303
1514
|
}
|
|
1304
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1515
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginContextDirective, decorators: [{
|
|
1305
1516
|
type: Directive,
|
|
1306
1517
|
args: [{
|
|
1307
1518
|
selector: '[dbxFirebaseLoginContext]',
|
|
@@ -1319,18 +1530,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1319
1530
|
* Pre-configured login component that displays all configured login types.
|
|
1320
1531
|
*/
|
|
1321
1532
|
class DbxFirebaseLoginComponent {
|
|
1322
|
-
loginMode = input('login', ...(ngDevMode ? [{ debugName: "loginMode" }] : []));
|
|
1323
|
-
providerTypes = input(...(ngDevMode ? [undefined, { debugName: "providerTypes" }] : []));
|
|
1324
|
-
omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : []));
|
|
1325
|
-
providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : []));
|
|
1326
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1327
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1533
|
+
loginMode = input('login', ...(ngDevMode ? [{ debugName: "loginMode" }] : /* istanbul ignore next */ []));
|
|
1534
|
+
providerTypes = input(...(ngDevMode ? [undefined, { debugName: "providerTypes" }] : /* istanbul ignore next */ []));
|
|
1535
|
+
omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : /* istanbul ignore next */ []));
|
|
1536
|
+
providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : /* istanbul ignore next */ []));
|
|
1537
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1538
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseLoginComponent, isStandalone: true, selector: "dbx-firebase-login", inputs: { loginMode: { classPropertyName: "loginMode", publicName: "loginMode", isSignal: true, isRequired: false, transformFunction: null }, providerTypes: { classPropertyName: "providerTypes", publicName: "providerTypes", isSignal: true, isRequired: false, transformFunction: null }, omitProviderTypes: { classPropertyName: "omitProviderTypes", publicName: "omitProviderTypes", isSignal: true, isRequired: false, transformFunction: null }, providerCategories: { classPropertyName: "providerCategories", publicName: "providerCategories", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "{ \"dbx-firebase-register\": loginMode() === \"register\", \"dbx-firebase-link\": loginMode() === \"link\" }" }, classAttribute: "d-block dbx-firebase-login" }, ngImport: i0, template: `
|
|
1328
1539
|
<ng-container *dbxInjectionContext dbxFirebaseLoginContext>
|
|
1329
1540
|
<dbx-firebase-login-list [providerTypes]="providerTypes()" [omitProviderTypes]="omitProviderTypes()" [providerCategories]="providerCategories()" [loginMode]="loginMode()"></dbx-firebase-login-list>
|
|
1330
1541
|
</ng-container>
|
|
1331
1542
|
`, isInline: true, dependencies: [{ kind: "directive", type: DbxInjectionContextDirective, selector: "[dbxInjectionContext]", inputs: ["config"] }, { kind: "directive", type: DbxFirebaseLoginContextDirective, selector: "[dbxFirebaseLoginContext]" }, { kind: "component", type: DbxFirebaseLoginListComponent, selector: "dbx-firebase-login-list", inputs: ["loginMode", "providerTypes", "omitProviderTypes", "providerCategories"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1332
1543
|
}
|
|
1333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1544
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginComponent, decorators: [{
|
|
1334
1545
|
type: Component,
|
|
1335
1546
|
args: [{
|
|
1336
1547
|
selector: 'dbx-firebase-login',
|
|
@@ -1343,24 +1554,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1343
1554
|
`,
|
|
1344
1555
|
host: {
|
|
1345
1556
|
class: 'd-block dbx-firebase-login',
|
|
1346
|
-
'[class]': '{ "dbx-firebase-register": loginMode() === "register" }'
|
|
1557
|
+
'[class]': '{ "dbx-firebase-register": loginMode() === "register", "dbx-firebase-link": loginMode() === "link" }'
|
|
1347
1558
|
},
|
|
1348
1559
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
1349
1560
|
}]
|
|
1350
1561
|
}], propDecorators: { loginMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "loginMode", required: false }] }], providerTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "providerTypes", required: false }] }], omitProviderTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "omitProviderTypes", required: false }] }], providerCategories: [{ type: i0.Input, args: [{ isSignal: true, alias: "providerCategories", required: false }] }] } });
|
|
1351
1562
|
|
|
1352
|
-
/**
|
|
1563
|
+
/**
|
|
1564
|
+
* Navigation component that allows users to return to the login method selection list.
|
|
1565
|
+
*/
|
|
1353
1566
|
class DbxFirebaseLoginContextBackButtonComponent {
|
|
1354
1567
|
cancelLogin = output();
|
|
1355
1568
|
anchor = {
|
|
1356
1569
|
onClick: () => this.cancelLogin.emit()
|
|
1357
1570
|
};
|
|
1358
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1359
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1571
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginContextBackButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1572
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginContextBackButtonComponent, isStandalone: true, selector: "dbx-firebase-login-context-back-button", outputs: { cancelLogin: "cancelLogin" }, ngImport: i0, template: `
|
|
1360
1573
|
<dbx-link [anchor]="anchor">Choose other login method.</dbx-link>
|
|
1361
1574
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxRouterAnchorModule }, { kind: "component", type: i1$1.DbxLinkComponent, selector: "dbx-link", inputs: ["ref", "href", "anchor"] }] });
|
|
1362
1575
|
}
|
|
1363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginContextBackButtonComponent, decorators: [{
|
|
1364
1577
|
type: Component,
|
|
1365
1578
|
args: [{
|
|
1366
1579
|
selector: 'dbx-firebase-login-context-back-button',
|
|
@@ -1372,16 +1585,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1372
1585
|
}]
|
|
1373
1586
|
}], propDecorators: { cancelLogin: [{ type: i0.Output, args: ["cancelLogin"] }] } });
|
|
1374
1587
|
|
|
1375
|
-
/**
|
|
1588
|
+
/**
|
|
1589
|
+
* Login button component for Microsoft OAuth authentication.
|
|
1590
|
+
*/
|
|
1376
1591
|
class DbxFirebaseLoginMicrosoftComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
1377
1592
|
loginProvider = 'microsoft';
|
|
1378
1593
|
handleLogin() {
|
|
1379
|
-
return this.dbxFirebaseAuthService.
|
|
1594
|
+
return this.dbxFirebaseAuthService.logInWithPopup(new OAuthProvider('microsoft.com'));
|
|
1595
|
+
}
|
|
1596
|
+
handleLink() {
|
|
1597
|
+
return this.dbxFirebaseAuthService.linkWithPopup(new OAuthProvider('microsoft.com'));
|
|
1380
1598
|
}
|
|
1381
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1382
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1599
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginMicrosoftComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1600
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginMicrosoftComponent, isStandalone: true, selector: "dbx-firebase-login-microsoft", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"configSignal()\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"], outputs: ["configChange"] }, { kind: "component", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1383
1601
|
}
|
|
1384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1602
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginMicrosoftComponent, decorators: [{
|
|
1385
1603
|
type: Component,
|
|
1386
1604
|
args: [{
|
|
1387
1605
|
selector: 'dbx-firebase-login-microsoft',
|
|
@@ -1392,18 +1610,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1392
1610
|
}]
|
|
1393
1611
|
}] });
|
|
1394
1612
|
|
|
1395
|
-
/**
|
|
1613
|
+
/**
|
|
1614
|
+
* Renders the configured terms of service component via dynamic injection from the login service.
|
|
1615
|
+
*/
|
|
1396
1616
|
class DbxFirebaseLoginTermsComponent {
|
|
1397
1617
|
dbxFirebaseAuthLoginService = inject(DbxFirebaseAuthLoginService);
|
|
1398
1618
|
config = {
|
|
1399
1619
|
componentClass: this.dbxFirebaseAuthLoginService.loginTermsComponentClass
|
|
1400
1620
|
};
|
|
1401
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1402
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1621
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginTermsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1622
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseLoginTermsComponent, isStandalone: true, selector: "dbx-firebase-login-terms", host: { classAttribute: "dbx-firebase-login-terms d-block" }, ngImport: i0, template: `
|
|
1403
1623
|
<dbx-injection [config]="config"></dbx-injection>
|
|
1404
1624
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
|
|
1405
1625
|
}
|
|
1406
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1626
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseLoginTermsComponent, decorators: [{
|
|
1407
1627
|
type: Component,
|
|
1408
1628
|
args: [{
|
|
1409
1629
|
selector: 'dbx-firebase-login-terms',
|
|
@@ -1418,19 +1638,183 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1418
1638
|
}]
|
|
1419
1639
|
}] });
|
|
1420
1640
|
|
|
1641
|
+
/**
|
|
1642
|
+
* Map of Firebase provider IDs to known login method types.
|
|
1643
|
+
*
|
|
1644
|
+
* @example
|
|
1645
|
+
* ```ts
|
|
1646
|
+
* FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP['google.com']; // 'google'
|
|
1647
|
+
* ```
|
|
1648
|
+
*/
|
|
1649
|
+
const FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP = {
|
|
1650
|
+
'google.com': 'google',
|
|
1651
|
+
'facebook.com': 'facebook',
|
|
1652
|
+
'github.com': 'github',
|
|
1653
|
+
'twitter.com': 'twitter',
|
|
1654
|
+
'apple.com': 'apple',
|
|
1655
|
+
'microsoft.com': 'microsoft',
|
|
1656
|
+
phone: 'phone',
|
|
1657
|
+
password: 'email'
|
|
1658
|
+
};
|
|
1659
|
+
/**
|
|
1660
|
+
* Map of known login method types to Firebase provider IDs.
|
|
1661
|
+
*
|
|
1662
|
+
* @example
|
|
1663
|
+
* ```ts
|
|
1664
|
+
* LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP['google']; // 'google.com'
|
|
1665
|
+
* ```
|
|
1666
|
+
*/
|
|
1667
|
+
const LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP = {
|
|
1668
|
+
google: 'google.com',
|
|
1669
|
+
facebook: 'facebook.com',
|
|
1670
|
+
github: 'github.com',
|
|
1671
|
+
twitter: 'twitter.com',
|
|
1672
|
+
apple: 'apple.com',
|
|
1673
|
+
microsoft: 'microsoft.com',
|
|
1674
|
+
phone: 'phone',
|
|
1675
|
+
email: 'password'
|
|
1676
|
+
};
|
|
1677
|
+
/**
|
|
1678
|
+
* Converts a Firebase provider ID (e.g., 'google.com') to its corresponding login method type (e.g., 'google').
|
|
1679
|
+
*
|
|
1680
|
+
* @param providerId - The Firebase provider ID.
|
|
1681
|
+
* @returns The matching login method type, or undefined if unknown.
|
|
1682
|
+
*
|
|
1683
|
+
* @example
|
|
1684
|
+
* ```ts
|
|
1685
|
+
* firebaseProviderIdToLoginMethodType('google.com'); // 'google'
|
|
1686
|
+
* firebaseProviderIdToLoginMethodType('unknown.com'); // undefined
|
|
1687
|
+
* ```
|
|
1688
|
+
*/
|
|
1689
|
+
function firebaseProviderIdToLoginMethodType(providerId) {
|
|
1690
|
+
return FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP[providerId];
|
|
1691
|
+
}
|
|
1692
|
+
/**
|
|
1693
|
+
* Converts a login method type (e.g., 'google') to its corresponding Firebase provider ID (e.g., 'google.com').
|
|
1694
|
+
*
|
|
1695
|
+
* @param type - The login method type.
|
|
1696
|
+
* @returns The matching Firebase provider ID, or undefined if unknown.
|
|
1697
|
+
*
|
|
1698
|
+
* @example
|
|
1699
|
+
* ```ts
|
|
1700
|
+
* loginMethodTypeToFirebaseProviderId('google'); // 'google.com'
|
|
1701
|
+
* loginMethodTypeToFirebaseProviderId('unknown'); // undefined
|
|
1702
|
+
* ```
|
|
1703
|
+
*/
|
|
1704
|
+
function loginMethodTypeToFirebaseProviderId(type) {
|
|
1705
|
+
return LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP[type];
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
/**
|
|
1709
|
+
* Component for managing linked authentication providers on a user account.
|
|
1710
|
+
*
|
|
1711
|
+
* Displays two sections:
|
|
1712
|
+
* - **Connected Providers**: Shows currently linked providers with disconnect buttons.
|
|
1713
|
+
* - **Connect Provider**: Shows available OAuth providers that can be linked.
|
|
1714
|
+
*
|
|
1715
|
+
* @example
|
|
1716
|
+
* ```html
|
|
1717
|
+
* <dbx-firebase-manage-auth-providers></dbx-firebase-manage-auth-providers>
|
|
1718
|
+
* ```
|
|
1719
|
+
*/
|
|
1720
|
+
class DbxFirebaseManageAuthProvidersComponent {
|
|
1721
|
+
dbxFirebaseAuthService = inject(DbxFirebaseAuthService);
|
|
1722
|
+
dbxFirebaseAuthLoginService = inject(DbxFirebaseAuthLoginService);
|
|
1723
|
+
_linkedProviderIds = toSignal(this.dbxFirebaseAuthService.currentLinkedProviderIds$, { initialValue: [] });
|
|
1724
|
+
linkedProvidersSignal = computed(() => {
|
|
1725
|
+
const providerIds = this._linkedProviderIds();
|
|
1726
|
+
return providerIds.map((providerId) => {
|
|
1727
|
+
const loginMethodType = firebaseProviderIdToLoginMethodType(providerId);
|
|
1728
|
+
const assets = loginMethodType ? this.dbxFirebaseAuthLoginService.getProviderAssets(loginMethodType) : undefined;
|
|
1729
|
+
const providerName = assets?.providerName ?? providerId;
|
|
1730
|
+
const unlinkText = assets?.unlinkText ?? `Disconnect ${providerName}`;
|
|
1731
|
+
return { providerId, loginMethodType, providerName, unlinkText, assets };
|
|
1732
|
+
});
|
|
1733
|
+
}, ...(ngDevMode ? [{ debugName: "linkedProvidersSignal" }] : /* istanbul ignore next */ []));
|
|
1734
|
+
linkedMethodTypesSignal = computed(() => {
|
|
1735
|
+
return filterMaybeArrayValues(this.linkedProvidersSignal().map((p) => p.loginMethodType));
|
|
1736
|
+
}, ...(ngDevMode ? [{ debugName: "linkedMethodTypesSignal" }] : /* istanbul ignore next */ []));
|
|
1737
|
+
showLinkSectionSignal = computed(() => {
|
|
1738
|
+
const linkedTypes = new Set(this.linkedMethodTypesSignal());
|
|
1739
|
+
const oauthProviders = this.dbxFirebaseAuthLoginService.getLinkProviders(this.dbxFirebaseAuthLoginService.getEnabledTypes());
|
|
1740
|
+
return oauthProviders.some((p) => p.category === OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY && !linkedTypes.has(p.loginMethodType));
|
|
1741
|
+
}, ...(ngDevMode ? [{ debugName: "showLinkSectionSignal" }] : /* istanbul ignore next */ []));
|
|
1742
|
+
/**
|
|
1743
|
+
* Creates a work handler for unlinking a specific provider.
|
|
1744
|
+
*
|
|
1745
|
+
* @param providerId - The Firebase provider ID to unlink (e.g., 'google.com').
|
|
1746
|
+
* @returns A {@link WorkUsingContext} handler that unlinking the provider on execution.
|
|
1747
|
+
*/
|
|
1748
|
+
makeUnlinkHandler(providerId) {
|
|
1749
|
+
return (_, context) => {
|
|
1750
|
+
const promise = this.dbxFirebaseAuthService.unlinkProvider(providerId);
|
|
1751
|
+
context.startWorkingWithPromise(promise);
|
|
1752
|
+
};
|
|
1753
|
+
}
|
|
1754
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseManageAuthProvidersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1755
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseManageAuthProvidersComponent, isStandalone: true, selector: "dbx-firebase-manage-auth-providers", host: { classAttribute: "d-block dbx-firebase-manage-auth-providers" }, ngImport: i0, template: `
|
|
1756
|
+
@if (linkedProvidersSignal().length) {
|
|
1757
|
+
<dbx-section header="Connected Providers">
|
|
1758
|
+
@for (provider of linkedProvidersSignal(); track provider.providerId) {
|
|
1759
|
+
<div class="dbx-firebase-manage-provider-item">
|
|
1760
|
+
<ng-container dbxAction [dbxActionHandler]="makeUnlinkHandler(provider.providerId)" dbxActionValue>
|
|
1761
|
+
<dbx-button dbxActionButton [text]="provider.unlinkText" icon="link_off" color="warn"></dbx-button>
|
|
1762
|
+
</ng-container>
|
|
1763
|
+
</div>
|
|
1764
|
+
}
|
|
1765
|
+
</dbx-section>
|
|
1766
|
+
}
|
|
1767
|
+
@if (showLinkSectionSignal()) {
|
|
1768
|
+
<dbx-section header="Connect Provider">
|
|
1769
|
+
<dbx-firebase-login loginMode="link" [omitProviderTypes]="linkedMethodTypesSignal()" providerCategories="oauth"></dbx-firebase-login>
|
|
1770
|
+
</dbx-section>
|
|
1771
|
+
}
|
|
1772
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginComponent, selector: "dbx-firebase-login", inputs: ["loginMode", "providerTypes", "omitProviderTypes", "providerCategories"] }, { kind: "component", type: DbxSectionComponent, selector: "dbx-section", inputs: ["elevate"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1773
|
+
}
|
|
1774
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseManageAuthProvidersComponent, decorators: [{
|
|
1775
|
+
type: Component,
|
|
1776
|
+
args: [{
|
|
1777
|
+
selector: 'dbx-firebase-manage-auth-providers',
|
|
1778
|
+
standalone: true,
|
|
1779
|
+
imports: [DbxFirebaseLoginComponent, DbxSectionComponent, MatIconModule, DbxActionModule, DbxButtonModule],
|
|
1780
|
+
template: `
|
|
1781
|
+
@if (linkedProvidersSignal().length) {
|
|
1782
|
+
<dbx-section header="Connected Providers">
|
|
1783
|
+
@for (provider of linkedProvidersSignal(); track provider.providerId) {
|
|
1784
|
+
<div class="dbx-firebase-manage-provider-item">
|
|
1785
|
+
<ng-container dbxAction [dbxActionHandler]="makeUnlinkHandler(provider.providerId)" dbxActionValue>
|
|
1786
|
+
<dbx-button dbxActionButton [text]="provider.unlinkText" icon="link_off" color="warn"></dbx-button>
|
|
1787
|
+
</ng-container>
|
|
1788
|
+
</div>
|
|
1789
|
+
}
|
|
1790
|
+
</dbx-section>
|
|
1791
|
+
}
|
|
1792
|
+
@if (showLinkSectionSignal()) {
|
|
1793
|
+
<dbx-section header="Connect Provider">
|
|
1794
|
+
<dbx-firebase-login loginMode="link" [omitProviderTypes]="linkedMethodTypesSignal()" providerCategories="oauth"></dbx-firebase-login>
|
|
1795
|
+
</dbx-section>
|
|
1796
|
+
}
|
|
1797
|
+
`,
|
|
1798
|
+
host: {
|
|
1799
|
+
class: 'd-block dbx-firebase-manage-auth-providers'
|
|
1800
|
+
},
|
|
1801
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
1802
|
+
}]
|
|
1803
|
+
}] });
|
|
1804
|
+
|
|
1421
1805
|
/**
|
|
1422
1806
|
* Pre-configured register component that displays all configured login types and their registration components.
|
|
1423
1807
|
*/
|
|
1424
1808
|
class DbxFirebaseRegisterComponent {
|
|
1425
|
-
providerTypes = input(...(ngDevMode ? [undefined, { debugName: "providerTypes" }] : []));
|
|
1426
|
-
omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : []));
|
|
1427
|
-
providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : []));
|
|
1428
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1429
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1809
|
+
providerTypes = input(...(ngDevMode ? [undefined, { debugName: "providerTypes" }] : /* istanbul ignore next */ []));
|
|
1810
|
+
omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : /* istanbul ignore next */ []));
|
|
1811
|
+
providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : /* istanbul ignore next */ []));
|
|
1812
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseRegisterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1813
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseRegisterComponent, isStandalone: true, selector: "dbx-firebase-register", inputs: { providerTypes: { classPropertyName: "providerTypes", publicName: "providerTypes", isSignal: true, isRequired: false, transformFunction: null }, omitProviderTypes: { classPropertyName: "omitProviderTypes", publicName: "omitProviderTypes", isSignal: true, isRequired: false, transformFunction: null }, providerCategories: { classPropertyName: "providerCategories", publicName: "providerCategories", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1430
1814
|
<dbx-firebase-login loginMode="register" [providerTypes]="providerTypes()" [omitProviderTypes]="omitProviderTypes()" [providerCategories]="providerCategories()"></dbx-firebase-login>
|
|
1431
1815
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseLoginComponent, selector: "dbx-firebase-login", inputs: ["loginMode", "providerTypes", "omitProviderTypes", "providerCategories"] }] });
|
|
1432
1816
|
}
|
|
1433
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1817
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseRegisterComponent, decorators: [{
|
|
1434
1818
|
type: Component,
|
|
1435
1819
|
args: [{
|
|
1436
1820
|
selector: 'dbx-firebase-register',
|
|
@@ -1442,6 +1826,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1442
1826
|
}]
|
|
1443
1827
|
}], propDecorators: { providerTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "providerTypes", required: false }] }], omitProviderTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "omitProviderTypes", required: false }] }], providerCategories: [{ type: i0.Input, args: [{ isSignal: true, alias: "providerCategories", required: false }] }] } });
|
|
1444
1828
|
|
|
1829
|
+
/**
|
|
1830
|
+
* Creates a function that derives an {@link AuthRoleSet} observable from the current user's ID token claims using the configured claims service.
|
|
1831
|
+
*
|
|
1832
|
+
* Optionally adds the current AuthUserState to the role set.
|
|
1833
|
+
*
|
|
1834
|
+
* @param config - Configuration specifying the claims service and optional auth user state inclusion.
|
|
1835
|
+
* @returns A function that, given a DbxFirebaseAuthService, returns an Observable of the decoded AuthRoleSet.
|
|
1836
|
+
*/
|
|
1445
1837
|
function authRolesObsWithClaimsService(config) {
|
|
1446
1838
|
const { addAuthUserStateToRoles: addAuthUserState, claimsService } = config;
|
|
1447
1839
|
return (dbxFirebaseAuthService) => {
|
|
@@ -1452,6 +1844,14 @@ function authRolesObsWithClaimsService(config) {
|
|
|
1452
1844
|
return obs;
|
|
1453
1845
|
};
|
|
1454
1846
|
}
|
|
1847
|
+
/**
|
|
1848
|
+
* Creates a {@link DbxFirebaseAuthServiceDelegate} that derives auth roles and user state from the given claims service configuration.
|
|
1849
|
+
*
|
|
1850
|
+
* Only one of `stateForLoggedInUser`, `stateForLoggedInUserToken`, or `authUserStateObs` may be specified.
|
|
1851
|
+
*
|
|
1852
|
+
* @param config - Configuration with the claims service and optional auth state customization.
|
|
1853
|
+
* @returns A DbxFirebaseAuthServiceDelegate configured for claims-based auth.
|
|
1854
|
+
*/
|
|
1455
1855
|
function defaultDbxFirebaseAuthServiceDelegateWithClaimsService(config) {
|
|
1456
1856
|
if (filterMaybeArrayValues([config.stateForLoggedInUser, config.stateForLoggedInUserToken, config.authUserStateObs]).length > 1) {
|
|
1457
1857
|
throw new Error('Cannot specify a combination of "stateForLoggedInUserToken", "stateForLoggedInUser" and "authUserStateObs". Must specify one at max.');
|
|
@@ -1502,16 +1902,18 @@ const DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN = new InjectionToken('
|
|
|
1502
1902
|
class DbxFirebaseDevelopmentWidgetService {
|
|
1503
1903
|
dbxWidgetService = inject(DbxWidgetService);
|
|
1504
1904
|
_entries = new Map();
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1905
|
+
_defaultEntries = inject(DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, { optional: true });
|
|
1906
|
+
constructor() {
|
|
1907
|
+
if (this._defaultEntries) {
|
|
1908
|
+
this._defaultEntries.forEach((x) => this.register(x, false));
|
|
1508
1909
|
}
|
|
1509
1910
|
}
|
|
1510
1911
|
/**
|
|
1511
1912
|
* Used to register a provider. If a provider is already registered, this will override it by default.
|
|
1512
1913
|
*
|
|
1513
|
-
* @param provider
|
|
1514
|
-
* @param override
|
|
1914
|
+
* @param provider - The development widget entry to register.
|
|
1915
|
+
* @param override - Whether to override an existing entry of the same type. Defaults to true.
|
|
1916
|
+
* @returns True if the entry was registered, false if it already existed and override was false.
|
|
1515
1917
|
*/
|
|
1516
1918
|
register(provider, override = true) {
|
|
1517
1919
|
const type = provider.widget.type;
|
|
@@ -1525,22 +1927,17 @@ class DbxFirebaseDevelopmentWidgetService {
|
|
|
1525
1927
|
}
|
|
1526
1928
|
}
|
|
1527
1929
|
getEntryWidgetIdentifiers() {
|
|
1528
|
-
return
|
|
1930
|
+
return [...this._entries.keys()];
|
|
1529
1931
|
}
|
|
1530
1932
|
getEntries() {
|
|
1531
1933
|
return iterableToArray(this._entries.values());
|
|
1532
1934
|
}
|
|
1533
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1534
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1935
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1936
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentWidgetService });
|
|
1535
1937
|
}
|
|
1536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1938
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentWidgetService, decorators: [{
|
|
1537
1939
|
type: Injectable
|
|
1538
|
-
}], ctorParameters: () => [
|
|
1539
|
-
type: Optional
|
|
1540
|
-
}, {
|
|
1541
|
-
type: Inject,
|
|
1542
|
-
args: [DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN]
|
|
1543
|
-
}] }] });
|
|
1940
|
+
}], ctorParameters: () => [] });
|
|
1544
1941
|
|
|
1545
1942
|
/**
|
|
1546
1943
|
* Whether or not the scheduler should be enabled.
|
|
@@ -1606,10 +2003,10 @@ class DbxFirebaseDevelopmentSchedulerService {
|
|
|
1606
2003
|
setTimer(timerInterval) {
|
|
1607
2004
|
this._timerInterval.next(timerInterval);
|
|
1608
2005
|
}
|
|
1609
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1610
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
2006
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2007
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerService });
|
|
1611
2008
|
}
|
|
1612
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2009
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerService, decorators: [{
|
|
1613
2010
|
type: Injectable
|
|
1614
2011
|
}] });
|
|
1615
2012
|
|
|
@@ -1632,10 +2029,10 @@ class DbxFirebaseDevelopmentPopupContentFormComponent extends AbstractConfigAsyn
|
|
|
1632
2029
|
})
|
|
1633
2030
|
];
|
|
1634
2031
|
}));
|
|
1635
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1636
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
2032
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2033
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentPopupContentFormComponent, isStandalone: true, selector: "dbx-firebase-development-popup-content-form", providers: dbxFormlyFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-formly></dbx-formly>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxFormlyFormComponentImportsModule }, { kind: "component", type: i1$2.DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1637
2034
|
}
|
|
1638
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2035
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentFormComponent, decorators: [{
|
|
1639
2036
|
type: Component,
|
|
1640
2037
|
args: [{
|
|
1641
2038
|
selector: 'dbx-firebase-development-popup-content-form',
|
|
@@ -1654,10 +2051,10 @@ class DbxFirebaseDevelopmentSchedulerListComponent extends AbstractDbxSelectionL
|
|
|
1654
2051
|
defaultSelectionMode: 'view'
|
|
1655
2052
|
});
|
|
1656
2053
|
}
|
|
1657
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1658
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
2054
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2055
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentSchedulerListComponent, isStandalone: true, selector: "dbx-firebase-development-scheduler-list", providers: provideDbxListViewWrapper(DbxFirebaseDevelopmentSchedulerListComponent), usesInheritance: true, ngImport: i0, template: "\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [hasMore]=\"hasMore()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\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 <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n <ng-content end select=\"[end]\"></ng-content>\n </dbx-list>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxListWrapperComponentImportsModule }, { kind: "component", type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state", "config", "disabled", "selectionMode", "hasMore"], outputs: ["contentScrolled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1659
2056
|
}
|
|
1660
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2057
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListComponent, decorators: [{
|
|
1661
2058
|
type: Component,
|
|
1662
2059
|
args: [{
|
|
1663
2060
|
selector: 'dbx-firebase-development-scheduler-list',
|
|
@@ -1673,10 +2070,10 @@ class DbxFirebaseDevelopmentSchedulerListViewComponent extends AbstractDbxSelect
|
|
|
1673
2070
|
componentClass: DbxFirebaseDevelopmentSchedulerListViewItemComponent,
|
|
1674
2071
|
mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, icon: y.icon, itemValue: y })))
|
|
1675
2072
|
};
|
|
1676
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1677
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
2073
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2074
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentSchedulerListViewComponent, isStandalone: true, selector: "dbx-firebase-development-scheduler-list-view", providers: provideDbxListView(DbxFirebaseDevelopmentSchedulerListViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxSelectionValueListViewComponentImportsModule }, { kind: "component", type: i1$1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1678
2075
|
}
|
|
1679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2076
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewComponent, decorators: [{
|
|
1680
2077
|
type: Component,
|
|
1681
2078
|
args: [{
|
|
1682
2079
|
selector: 'dbx-firebase-development-scheduler-list-view',
|
|
@@ -1695,15 +2092,15 @@ class DbxFirebaseDevelopmentSchedulerListViewItemComponent extends AbstractDbxVa
|
|
|
1695
2092
|
handleRun = (value, context) => {
|
|
1696
2093
|
context.startWorkingWithObservable(from(this.dbxFirebaseDevelopmentSchedulerService.runScheduledFunction(this.name)));
|
|
1697
2094
|
};
|
|
1698
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1699
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
2095
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2096
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentSchedulerListViewItemComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1700
2097
|
<div dbxAction dbxActionValue useFastTriggerPreset [dbxActionHandler]="handleRun">
|
|
1701
2098
|
<dbx-button dbxActionButton [text]="'Run ' + name"></dbx-button>
|
|
1702
2099
|
<div *dbxActionHasSuccess="3000" class="dbx-success">Success</div>
|
|
1703
2100
|
</div>
|
|
1704
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionHasSuccessDirective, selector: "[dbxActionHasSuccess]", inputs: ["dbxActionHasSuccess"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2101
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionHasSuccessDirective, selector: "[dbxActionHasSuccess]", inputs: ["dbxActionHasSuccess"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1705
2102
|
}
|
|
1706
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewItemComponent, decorators: [{
|
|
1707
2104
|
type: Component,
|
|
1708
2105
|
args: [{
|
|
1709
2106
|
template: `
|
|
@@ -1719,6 +2116,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1719
2116
|
}] });
|
|
1720
2117
|
|
|
1721
2118
|
const DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY = 'DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET';
|
|
2119
|
+
/**
|
|
2120
|
+
* Creates a development widget entry for the Firebase server scheduler, allowing scheduled tasks to be triggered from the development UI.
|
|
2121
|
+
*
|
|
2122
|
+
* @returns A DbxFirebaseDevelopmentWidgetEntry for the scheduler widget.
|
|
2123
|
+
*/
|
|
1722
2124
|
function developmentFirebaseServerSchedulerWidgetEntry() {
|
|
1723
2125
|
return {
|
|
1724
2126
|
label: 'Run Scheduled Task',
|
|
@@ -1732,14 +2134,14 @@ class DbxFirebaseDevelopmentSchedulerWidgetComponent {
|
|
|
1732
2134
|
dbxFirebaseDevelopmentSchedulerService = inject(DbxFirebaseDevelopmentSchedulerService);
|
|
1733
2135
|
entries$ = this.dbxFirebaseDevelopmentSchedulerService.schedulerList$;
|
|
1734
2136
|
state$ = loadingStateFromObs(this.entries$);
|
|
1735
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1736
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
2137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2138
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentSchedulerWidgetComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
1737
2139
|
<div>
|
|
1738
2140
|
<dbx-firebase-development-scheduler-list [state]="state$"></dbx-firebase-development-scheduler-list>
|
|
1739
2141
|
</div>
|
|
1740
2142
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseDevelopmentSchedulerListComponent, selector: "dbx-firebase-development-scheduler-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1741
2143
|
}
|
|
1742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerWidgetComponent, decorators: [{
|
|
1743
2145
|
type: Component,
|
|
1744
2146
|
args: [{
|
|
1745
2147
|
template: `
|
|
@@ -1786,10 +2188,10 @@ class DbxFirebaseEmulatorService {
|
|
|
1786
2188
|
}
|
|
1787
2189
|
: undefined;
|
|
1788
2190
|
}
|
|
1789
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1790
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
2191
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmulatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2192
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmulatorService });
|
|
1791
2193
|
}
|
|
1792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseEmulatorService, decorators: [{
|
|
1793
2195
|
type: Injectable
|
|
1794
2196
|
}] });
|
|
1795
2197
|
|
|
@@ -1804,7 +2206,7 @@ class DbxFirebaseDevelopmentPopupContentComponent {
|
|
|
1804
2206
|
entries = this.dbxFirebaseDevelopmentWidgetService.getEntries();
|
|
1805
2207
|
_activeEntrySelector = completeOnDestroy(new BehaviorSubject(DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY));
|
|
1806
2208
|
isLoggedIn$ = this.dbxAuthService.isLoggedIn$;
|
|
1807
|
-
entries$ = this.isLoggedIn$.pipe(distinctUntilChanged(), map((
|
|
2209
|
+
entries$ = this.isLoggedIn$.pipe(distinctUntilChanged(), map((_isLoggedIn) => this.entries), shareReplay(1));
|
|
1808
2210
|
formConfig$ = this.entries$.pipe(map((entries) => ({ entries })));
|
|
1809
2211
|
activeEntrySelector$ = this._activeEntrySelector.pipe(distinctUntilChanged());
|
|
1810
2212
|
currentActiveEntry$ = combineLatest([this.entries$, this.activeEntrySelector$]).pipe(map(([entries, selector]) => (selector ? entries.find((e) => e.widget.type === selector) : undefined)), shareReplay(1));
|
|
@@ -1818,7 +2220,7 @@ class DbxFirebaseDevelopmentPopupContentComponent {
|
|
|
1818
2220
|
schedulerIntervalSignal = toSignal(this.schedulerInterval$);
|
|
1819
2221
|
schedulerErrorSignal = toSignal(this.schedulerError$);
|
|
1820
2222
|
activeEntrySignal = toSignal(this.activeEntry$);
|
|
1821
|
-
rightTitleSignal = computed(() => this.activeEntrySignal()?.label, ...(ngDevMode ? [{ debugName: "rightTitleSignal" }] : []));
|
|
2223
|
+
rightTitleSignal = computed(() => this.activeEntrySignal()?.label, ...(ngDevMode ? [{ debugName: "rightTitleSignal" }] : /* istanbul ignore next */ []));
|
|
1822
2224
|
widgetConfigSignal = computed(() => {
|
|
1823
2225
|
const widget = this.activeEntrySignal()?.widget;
|
|
1824
2226
|
let widgetConfig = undefined;
|
|
@@ -1826,7 +2228,7 @@ class DbxFirebaseDevelopmentPopupContentComponent {
|
|
|
1826
2228
|
widgetConfig = { type: widget.type, data: undefined };
|
|
1827
2229
|
}
|
|
1828
2230
|
return widgetConfig;
|
|
1829
|
-
}, ...(ngDevMode ? [{ debugName: "widgetConfigSignal" }] : []));
|
|
2231
|
+
}, ...(ngDevMode ? [{ debugName: "widgetConfigSignal" }] : /* istanbul ignore next */ []));
|
|
1830
2232
|
constructor() {
|
|
1831
2233
|
this.twoColumnsContextStore.setShowRight(this.showRight$);
|
|
1832
2234
|
cleanSubscription(this.twoColumnsContextStore.back$.subscribe(() => {
|
|
@@ -1843,10 +2245,10 @@ class DbxFirebaseDevelopmentPopupContentComponent {
|
|
|
1843
2245
|
clearSelection() {
|
|
1844
2246
|
this._activeEntrySelector.next(undefined);
|
|
1845
2247
|
}
|
|
1846
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1847
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
2248
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2249
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentPopupContentComponent, isStandalone: true, selector: "dbx-firebase-development-popup-content", providers: [TwoColumnsContextStore], ngImport: i0, template: "<dbx-two-column class=\"dbx-firebase-development-popup-content\" [dbxTwoColumnFullLeft]=\"true\">\n <dbx-two-block left>\n <div>\n <h4>Info</h4>\n <p>Scheduler (Running): {{ schedulerRunningSignal() }} : {{ schedulerIntervalSignal() }}s : {{ schedulerErrorSignal() }}</p>\n <div>\n @if (showEmulatorButton) {\n <dbx-anchor [anchor]=\"emulatorUIAnchor\">\n <button mat-flat-button color=\"accent\">Emulator Enabled</button>\n </dbx-anchor>\n }\n </div>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger useInstantTriggerPreset [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form [config]=\"formConfig$\" dbxActionForm [dbxActionFormIsModified]=\"isFormModified\" [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"rightTitleSignal()\">\n <dbx-widget-view [config]=\"widgetConfigSignal()\"></dbx-widget-view>\n </dbx-two-column-right>\n</dbx-two-column>\n", styles: [".dbx-firebase-development-popup-content{height:400px;overflow:hidden}\n"], dependencies: [{ kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "directive", type: DbxTwoColumnFullLeftDirective, selector: "[dbxTwoColumnFullLeft]", inputs: ["dbxTwoColumnFullLeft"] }, { kind: "component", type: DbxWidgetViewComponent, selector: "dbx-widget-view", inputs: ["config"] }, { kind: "component", type: DbxTwoColumnComponent, selector: "dbx-two-column", inputs: ["reverseSizing", "inSectionPage", "hasRightContent"], exportAs: ["columns"] }, { kind: "component", type: DbxTwoBlockComponent, selector: "dbx-two-block", inputs: ["fixedTop"] }, { kind: "component", type: DbxTwoColumnRightComponent, selector: "dbx-two-column-right", inputs: ["full", "header", "block", "showBack", "minRightWidth"] }, { kind: "component", type: DbxFirebaseDevelopmentPopupContentFormComponent, selector: "dbx-firebase-development-popup-content-form" }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxActionAutoTriggerDirective, selector: "dbxActionAutoTrigger,[dbxActionAutoTrigger]", inputs: ["triggerDebounce", "triggerThrottle", "triggerErrorThrottle", "maxErrorsForThrottle", "triggerLimit", "dbxActionAutoTrigger", "useFastTriggerPreset", "useInstantTriggerPreset"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] });
|
|
1848
2250
|
}
|
|
1849
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentComponent, decorators: [{
|
|
1850
2252
|
type: Component,
|
|
1851
2253
|
args: [{ selector: 'dbx-firebase-development-popup-content', imports: [DbxAnchorComponent, DbxTwoColumnFullLeftDirective, DbxWidgetViewComponent, DbxTwoColumnComponent, DbxTwoBlockComponent, DbxTwoColumnRightComponent, DbxWidgetViewComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxActionFormDirective, DbxFormSourceDirective, DbxActionAutoTriggerDirective, MatButtonModule], providers: [TwoColumnsContextStore], standalone: true, template: "<dbx-two-column class=\"dbx-firebase-development-popup-content\" [dbxTwoColumnFullLeft]=\"true\">\n <dbx-two-block left>\n <div>\n <h4>Info</h4>\n <p>Scheduler (Running): {{ schedulerRunningSignal() }} : {{ schedulerIntervalSignal() }}s : {{ schedulerErrorSignal() }}</p>\n <div>\n @if (showEmulatorButton) {\n <dbx-anchor [anchor]=\"emulatorUIAnchor\">\n <button mat-flat-button color=\"accent\">Emulator Enabled</button>\n </dbx-anchor>\n }\n </div>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger useInstantTriggerPreset [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form [config]=\"formConfig$\" dbxActionForm [dbxActionFormIsModified]=\"isFormModified\" [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"rightTitleSignal()\">\n <dbx-widget-view [config]=\"widgetConfigSignal()\"></dbx-widget-view>\n </dbx-two-column-right>\n</dbx-two-column>\n", styles: [".dbx-firebase-development-popup-content{height:400px;overflow:hidden}\n"] }]
|
|
1852
2254
|
}], ctorParameters: () => [] });
|
|
@@ -1868,15 +2270,15 @@ class DbxFirebaseDevelopmentPopupComponent extends AbstractPopupDirective {
|
|
|
1868
2270
|
reopen = () => {
|
|
1869
2271
|
DbxFirebaseDevelopmentPopupComponent.openPopup(this.popupService, this.popup.key);
|
|
1870
2272
|
};
|
|
1871
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1872
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.
|
|
2273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.3", type: DbxFirebaseDevelopmentPopupComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "content", first: true, predicate: DbxFirebaseDevelopmentPopupContentComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1873
2275
|
<dbx-popup-content>
|
|
1874
2276
|
<dbx-popup-controls [header]="header" controls></dbx-popup-controls>
|
|
1875
2277
|
<dbx-firebase-development-popup-content (shouldClose)="closePopup()"></dbx-firebase-development-popup-content>
|
|
1876
2278
|
</dbx-popup-content>
|
|
1877
2279
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxPopupContentComponent, selector: "dbx-popup-content" }, { kind: "component", type: DbxPopupControlsComponent, selector: "dbx-popup-controls", inputs: ["header"] }, { kind: "component", type: DbxFirebaseDevelopmentPopupContentComponent, selector: "dbx-firebase-development-popup-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1878
2280
|
}
|
|
1879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentPopupComponent, decorators: [{
|
|
1880
2282
|
type: Component,
|
|
1881
2283
|
args: [{
|
|
1882
2284
|
template: `
|
|
@@ -1902,10 +2304,10 @@ const DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN = new InjectionToken('DefaultDb
|
|
|
1902
2304
|
*/
|
|
1903
2305
|
class DbxFirebaseDevelopmentService {
|
|
1904
2306
|
enabled = inject(DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, { optional: true }) ?? false;
|
|
1905
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1906
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
2307
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2308
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentService });
|
|
1907
2309
|
}
|
|
1908
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentService, decorators: [{
|
|
1909
2311
|
type: Injectable
|
|
1910
2312
|
}] });
|
|
1911
2313
|
|
|
@@ -1967,10 +2369,10 @@ class DbxFirebaseDevelopmentDirective {
|
|
|
1967
2369
|
});
|
|
1968
2370
|
}
|
|
1969
2371
|
}
|
|
1970
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1971
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
2372
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2373
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDevelopmentDirective, isStandalone: true, selector: "[dbxFirebaseDevelopment]", host: { listeners: { "window:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0 });
|
|
1972
2374
|
}
|
|
1973
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentDirective, decorators: [{
|
|
1974
2376
|
type: Directive,
|
|
1975
2377
|
args: [{
|
|
1976
2378
|
selector: '[dbxFirebaseDevelopment]',
|
|
@@ -1981,7 +2383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1981
2383
|
args: ['window:keydown', ['$event']]
|
|
1982
2384
|
}] } });
|
|
1983
2385
|
|
|
1984
|
-
const importsAndExports$
|
|
2386
|
+
const importsAndExports$1 = [
|
|
1985
2387
|
//
|
|
1986
2388
|
DbxFirebaseDevelopmentPopupContentFormComponent,
|
|
1987
2389
|
DbxFirebaseDevelopmentDirective,
|
|
@@ -1996,8 +2398,8 @@ const importsAndExports$2 = [
|
|
|
1996
2398
|
* Contains components related to logging in.
|
|
1997
2399
|
*/
|
|
1998
2400
|
class DbxFirebaseDevelopmentModule {
|
|
1999
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2000
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
2401
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2402
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentModule, imports: [
|
|
2001
2403
|
//
|
|
2002
2404
|
DbxFirebaseDevelopmentPopupContentFormComponent,
|
|
2003
2405
|
DbxFirebaseDevelopmentDirective,
|
|
@@ -2016,7 +2418,7 @@ class DbxFirebaseDevelopmentModule {
|
|
|
2016
2418
|
DbxFirebaseDevelopmentSchedulerListComponent,
|
|
2017
2419
|
DbxFirebaseDevelopmentSchedulerListViewComponent,
|
|
2018
2420
|
DbxFirebaseDevelopmentSchedulerListViewItemComponent] });
|
|
2019
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
2421
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentModule, imports: [
|
|
2020
2422
|
//
|
|
2021
2423
|
DbxFirebaseDevelopmentPopupContentFormComponent,
|
|
2022
2424
|
DbxFirebaseDevelopmentPopupComponent,
|
|
@@ -2026,11 +2428,11 @@ class DbxFirebaseDevelopmentModule {
|
|
|
2026
2428
|
DbxFirebaseDevelopmentSchedulerListViewComponent,
|
|
2027
2429
|
DbxFirebaseDevelopmentSchedulerListViewItemComponent] });
|
|
2028
2430
|
}
|
|
2029
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDevelopmentModule, decorators: [{
|
|
2030
2432
|
type: NgModule,
|
|
2031
2433
|
args: [{
|
|
2032
|
-
imports: importsAndExports$
|
|
2033
|
-
exports: importsAndExports$
|
|
2434
|
+
imports: importsAndExports$1,
|
|
2435
|
+
exports: importsAndExports$1
|
|
2034
2436
|
}]
|
|
2035
2437
|
}] });
|
|
2036
2438
|
|
|
@@ -2326,10 +2728,10 @@ function provideDbxFirestoreCollection(config) {
|
|
|
2326
2728
|
*/
|
|
2327
2729
|
class DbxFirestoreContextService {
|
|
2328
2730
|
firestoreContext = inject(DBX_FIRESTORE_CONTEXT_TOKEN);
|
|
2329
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2330
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
2731
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirestoreContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2732
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirestoreContextService, providedIn: 'root' });
|
|
2331
2733
|
}
|
|
2332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirestoreContextService, decorators: [{
|
|
2333
2735
|
type: Injectable,
|
|
2334
2736
|
args: [{
|
|
2335
2737
|
providedIn: 'root'
|
|
@@ -2386,6 +2788,13 @@ function provideDbxFirebaseFunctions(config) {
|
|
|
2386
2788
|
return makeEnvironmentProviders(providers);
|
|
2387
2789
|
}
|
|
2388
2790
|
|
|
2791
|
+
/**
|
|
2792
|
+
* Creates a {@link DbxFirebaseCollectionChangeWatcherInstance} that monitors a store's query for document changes and can trigger actions based on those changes.
|
|
2793
|
+
*
|
|
2794
|
+
* @param store - The collection loader accessor to watch for changes.
|
|
2795
|
+
* @param initialMode - The initial trigger mode ('auto' or 'off'). Defaults to 'off'.
|
|
2796
|
+
* @returns A new change watcher instance with observable change state and configurable trigger mode.
|
|
2797
|
+
*/
|
|
2389
2798
|
function dbxFirebaseCollectionChangeWatcher(store, initialMode) {
|
|
2390
2799
|
const _mode = new BehaviorSubject(initialMode ?? 'off');
|
|
2391
2800
|
const _sub = new SubscriptionObject();
|
|
@@ -2485,6 +2894,13 @@ function dbxFirebaseCollectionChangeTriggerForStore(store, triggerFunction) {
|
|
|
2485
2894
|
})
|
|
2486
2895
|
});
|
|
2487
2896
|
}
|
|
2897
|
+
/**
|
|
2898
|
+
* Creates a {@link DbxFirebaseCollectionChangeTriggerInstance} for an existing watcher without taking ownership of its lifecycle.
|
|
2899
|
+
*
|
|
2900
|
+
* @param watcher - The collection change watcher to attach the trigger to.
|
|
2901
|
+
* @param triggerFunction - Optional custom trigger function. Defaults to restarting the store.
|
|
2902
|
+
* @returns A new trigger instance bound to the given watcher.
|
|
2903
|
+
*/
|
|
2488
2904
|
function dbxFirebaseCollectionChangeTriggerForWatcher(watcher, triggerFunction) {
|
|
2489
2905
|
return dbxFirebaseCollectionChangeTrigger({
|
|
2490
2906
|
watcher,
|
|
@@ -2492,6 +2908,12 @@ function dbxFirebaseCollectionChangeTriggerForWatcher(watcher, triggerFunction)
|
|
|
2492
2908
|
triggerFunction
|
|
2493
2909
|
});
|
|
2494
2910
|
}
|
|
2911
|
+
/**
|
|
2912
|
+
* Creates a new {@link DbxFirebaseCollectionChangeTriggerInstance} from the provided configuration.
|
|
2913
|
+
*
|
|
2914
|
+
* @param config - Configuration specifying the watcher, lifecycle options, and trigger function.
|
|
2915
|
+
* @returns A new trigger instance ready to be initialized.
|
|
2916
|
+
*/
|
|
2495
2917
|
function dbxFirebaseCollectionChangeTrigger(config) {
|
|
2496
2918
|
return new DbxFirebaseCollectionChangeTriggerInstance(config);
|
|
2497
2919
|
}
|
|
@@ -2712,9 +3134,21 @@ class DbxFirebaseCollectionLoaderInstance {
|
|
|
2712
3134
|
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilMaxPageLoadLimit(accumulator.itemIteration)));
|
|
2713
3135
|
}
|
|
2714
3136
|
}
|
|
3137
|
+
/**
|
|
3138
|
+
* Creates a new {@link DbxFirebaseCollectionLoaderInstance} from the given configuration.
|
|
3139
|
+
*
|
|
3140
|
+
* @param config - Initial configuration including collection, constraints, pagination, and mode settings.
|
|
3141
|
+
* @returns A new collection loader instance.
|
|
3142
|
+
*/
|
|
2715
3143
|
function dbxFirebaseCollectionLoaderInstance(config) {
|
|
2716
3144
|
return new DbxFirebaseCollectionLoaderInstance(config);
|
|
2717
3145
|
}
|
|
3146
|
+
/**
|
|
3147
|
+
* Convenience function that creates a {@link DbxFirebaseCollectionLoaderInstance} initialized with the given Firestore collection.
|
|
3148
|
+
*
|
|
3149
|
+
* @param collection - The Firestore collection to load from.
|
|
3150
|
+
* @returns A new collection loader instance using the specified collection.
|
|
3151
|
+
*/
|
|
2718
3152
|
function dbxFirebaseCollectionLoaderInstanceWithCollection(collection) {
|
|
2719
3153
|
return new DbxFirebaseCollectionLoaderInstance({ collection });
|
|
2720
3154
|
}
|
|
@@ -2764,9 +3198,21 @@ class DbxLimitedFirebaseDocumentLoaderInstance {
|
|
|
2764
3198
|
this._sub.subscription = useAsObservable(docs, (x) => this._documents.next(asArray(x)));
|
|
2765
3199
|
}
|
|
2766
3200
|
}
|
|
3201
|
+
/**
|
|
3202
|
+
* Creates a new {@link DbxLimitedFirebaseDocumentLoaderInstance} from the given configuration.
|
|
3203
|
+
*
|
|
3204
|
+
* @param config - Configuration providing the limited document accessor.
|
|
3205
|
+
* @returns A new limited document loader instance.
|
|
3206
|
+
*/
|
|
2767
3207
|
function dbxLimitedFirebaseDocumentLoaderInstance(config) {
|
|
2768
3208
|
return new DbxLimitedFirebaseDocumentLoaderInstance(config);
|
|
2769
3209
|
}
|
|
3210
|
+
/**
|
|
3211
|
+
* Convenience function that creates a {@link DbxLimitedFirebaseDocumentLoaderInstance} initialized with the given accessor.
|
|
3212
|
+
*
|
|
3213
|
+
* @param accessor - The limited Firestore document accessor to use.
|
|
3214
|
+
* @returns A new limited document loader instance.
|
|
3215
|
+
*/
|
|
2770
3216
|
function dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor(accessor) {
|
|
2771
3217
|
return new DbxLimitedFirebaseDocumentLoaderInstance({ accessor });
|
|
2772
3218
|
}
|
|
@@ -2776,13 +3222,31 @@ class DbxFirebaseDocumentLoaderInstance extends DbxLimitedFirebaseDocumentLoader
|
|
|
2776
3222
|
this.setDocuments(asObservable(ids).pipe(map((x) => loadDocumentsForIds(this.accessor, asArray(x)))));
|
|
2777
3223
|
}
|
|
2778
3224
|
}
|
|
3225
|
+
/**
|
|
3226
|
+
* Creates a new {@link DbxFirebaseDocumentLoaderInstance} from the given configuration.
|
|
3227
|
+
*
|
|
3228
|
+
* @param config - Configuration providing the full document accessor.
|
|
3229
|
+
* @returns A new document loader instance with full accessor capabilities.
|
|
3230
|
+
*/
|
|
2779
3231
|
function dbxFirebaseDocumentLoaderInstance(config) {
|
|
2780
3232
|
return new DbxFirebaseDocumentLoaderInstance(config);
|
|
2781
3233
|
}
|
|
3234
|
+
/**
|
|
3235
|
+
* Convenience function that creates a {@link DbxFirebaseDocumentLoaderInstance} initialized with the given accessor.
|
|
3236
|
+
*
|
|
3237
|
+
* @param accessor - The full Firestore document accessor to use.
|
|
3238
|
+
* @returns A new document loader instance.
|
|
3239
|
+
*/
|
|
2782
3240
|
function dbxFirebaseDocumentLoaderInstanceWithAccessor(accessor) {
|
|
2783
3241
|
return new DbxFirebaseDocumentLoaderInstance({ accessor });
|
|
2784
3242
|
}
|
|
2785
3243
|
|
|
3244
|
+
/**
|
|
3245
|
+
* Factory function that creates typed model service instance accessors from an observable context.
|
|
3246
|
+
*
|
|
3247
|
+
* @param context$ - Observable of the in-context Firebase models service.
|
|
3248
|
+
* @returns A factory function for creating model service instances by type and key.
|
|
3249
|
+
*/
|
|
2786
3250
|
function dbxFirebaseInContextFirebaseModelServiceInstanceFactory(context$) {
|
|
2787
3251
|
return (type, keyObs) => {
|
|
2788
3252
|
const key$ = asObservable(keyObs);
|
|
@@ -2794,6 +3258,9 @@ function dbxFirebaseInContextFirebaseModelServiceInstanceFactory(context$) {
|
|
|
2794
3258
|
* Creates a new DbxFirebaseInContextFirebaseModelServiceInstance.
|
|
2795
3259
|
*
|
|
2796
3260
|
* Wraps an InModelContextFirebaseModelService observable and provides different piped observables.
|
|
3261
|
+
*
|
|
3262
|
+
* @param modelService$ - Observable of the in-model-context Firebase model service to wrap.
|
|
3263
|
+
* @returns A DbxFirebaseInContextFirebaseModelServiceInstance with derived observables for model data, roles, and permissions.
|
|
2797
3264
|
*/
|
|
2798
3265
|
function dbxFirebaseInContextFirebaseModelServiceInstance(modelService$) {
|
|
2799
3266
|
const key$ = modelService$.pipe(map((x) => x.model.key));
|
|
@@ -2804,7 +3271,7 @@ function dbxFirebaseInContextFirebaseModelServiceInstance(modelService$) {
|
|
|
2804
3271
|
function snapshotStream(mode) {
|
|
2805
3272
|
return model$.pipe(switchMap((x) => x.snapshotStream(mode)), shareReplay(1));
|
|
2806
3273
|
}
|
|
2807
|
-
function snapshotDataStream(mode,
|
|
3274
|
+
function snapshotDataStream(mode, _options) {
|
|
2808
3275
|
return model$.pipe(switchMap((x) => x.snapshotDataStream(mode)), shareReplay(1));
|
|
2809
3276
|
}
|
|
2810
3277
|
// MARK: Roles
|
|
@@ -2859,6 +3326,12 @@ function dbxFirebaseInContextFirebaseModelServiceInstance(modelService$) {
|
|
|
2859
3326
|
*/
|
|
2860
3327
|
class DbxFirebaseModelContextService {
|
|
2861
3328
|
}
|
|
3329
|
+
/**
|
|
3330
|
+
* Creates a factory that resolves model info instances by looking up the collection type from a model key and delegating to the model service.
|
|
3331
|
+
*
|
|
3332
|
+
* @param config - Configuration providing the model service factory and entity map observable.
|
|
3333
|
+
* @returns A factory function that creates model info instances from observable model keys.
|
|
3334
|
+
*/
|
|
2862
3335
|
function dbxFirebaseModelContextServiceInfoInstanceFactory(config) {
|
|
2863
3336
|
const { modelService, entityMap$ } = config;
|
|
2864
3337
|
return (keyObs) => {
|
|
@@ -2932,9 +3405,10 @@ class DbxFirebaseModelTypesServiceConfig {
|
|
|
2932
3405
|
class DbxFirebaseModelTypesService {
|
|
2933
3406
|
dbxFirebaseModelContextService = inject(DbxFirebaseModelContextService);
|
|
2934
3407
|
dbxModelTypesService = inject((DbxModelTypesService));
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
3408
|
+
_initialConfig = inject(DbxFirebaseModelTypesServiceConfig);
|
|
3409
|
+
constructor() {
|
|
3410
|
+
if (this._initialConfig.entries) {
|
|
3411
|
+
this.register(this._initialConfig.entries);
|
|
2938
3412
|
}
|
|
2939
3413
|
}
|
|
2940
3414
|
getDisplayInfo(typeInfo, data) {
|
|
@@ -2979,21 +3453,31 @@ class DbxFirebaseModelTypesService {
|
|
|
2979
3453
|
instancePairsForKeys(keys) {
|
|
2980
3454
|
return dbxFirebaseModelTypesServiceInstancePairForKeysFactory(this)(keys);
|
|
2981
3455
|
}
|
|
2982
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2983
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3457
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypesService });
|
|
2984
3458
|
}
|
|
2985
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypesService, decorators: [{
|
|
2986
3460
|
type: Injectable
|
|
2987
|
-
}], ctorParameters: () => [
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
3461
|
+
}], ctorParameters: () => [] });
|
|
3462
|
+
/**
|
|
3463
|
+
* Creates a factory function that produces an observable of instance pairs for the given model keys.
|
|
3464
|
+
*
|
|
3465
|
+
* @param service - The model types service used to resolve type info and instances.
|
|
3466
|
+
* @returns A factory that accepts model keys and returns an Observable of instance pairs with display info and segue refs.
|
|
3467
|
+
*/
|
|
2991
3468
|
function dbxFirebaseModelTypesServiceInstancePairForKeysFactory(service) {
|
|
2992
3469
|
return (keys) => {
|
|
2993
3470
|
const instances = asArray(keys).map((x) => service.instanceForKey(x).safeInstancePair$);
|
|
2994
3471
|
return instances.length ? combineLatest(instances).pipe(filterMaybeArray(), shareReplay(1)) : of([]);
|
|
2995
3472
|
};
|
|
2996
3473
|
}
|
|
3474
|
+
/**
|
|
3475
|
+
* Creates a {@link DbxFirebaseModelTypesServiceInstance} that provides observables for type info, display info, segue refs, and instance pairs for a single model.
|
|
3476
|
+
*
|
|
3477
|
+
* @param modelInfoInstance$ - Observable of the model info service instance providing data and role access.
|
|
3478
|
+
* @param dbxFirebaseModelTypesService - The model types service for resolving type configurations and display info.
|
|
3479
|
+
* @returns A DbxFirebaseModelTypesServiceInstance with derived observables.
|
|
3480
|
+
*/
|
|
2997
3481
|
function dbxFirebaseModelTypesServiceInstance(modelInfoInstance$, dbxFirebaseModelTypesService) {
|
|
2998
3482
|
const key$ = modelInfoInstance$.pipe(switchMap((x) => x.key$));
|
|
2999
3483
|
const modelType$ = modelInfoInstance$.pipe(switchMap((x) => x.modelType$));
|
|
@@ -3075,10 +3559,10 @@ class DbxFirebaseModelTrackerService {
|
|
|
3075
3559
|
const historyKeys$ = this.loadHistoryKeys();
|
|
3076
3560
|
return historyKeys$.pipe(switchMap((x) => this.dbxFirebaseModelTypesService.instancePairsForKeys(x)));
|
|
3077
3561
|
}
|
|
3078
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3079
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3562
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTrackerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3563
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTrackerService, providedIn: 'root' });
|
|
3080
3564
|
}
|
|
3081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3565
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTrackerService, decorators: [{
|
|
3082
3566
|
type: Injectable,
|
|
3083
3567
|
args: [{
|
|
3084
3568
|
providedIn: 'root'
|
|
@@ -3095,10 +3579,10 @@ class DbxFirebaseModelTypeInstanceListComponent extends AbstractDbxSelectionList
|
|
|
3095
3579
|
defaultSelectionMode: 'view'
|
|
3096
3580
|
});
|
|
3097
3581
|
}
|
|
3098
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3099
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
3582
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypeInstanceListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3583
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseModelTypeInstanceListComponent, isStandalone: true, selector: "dbx-firebase-model-type-instance-list", providers: provideDbxListViewWrapper(DbxFirebaseModelTypeInstanceListComponent), usesInheritance: true, ngImport: i0, template: "\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [hasMore]=\"hasMore()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\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 <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n <ng-content end select=\"[end]\"></ng-content>\n </dbx-list>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxListWrapperComponentImportsModule }, { kind: "component", type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state", "config", "disabled", "selectionMode", "hasMore"], outputs: ["contentScrolled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3100
3584
|
}
|
|
3101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3585
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypeInstanceListComponent, decorators: [{
|
|
3102
3586
|
type: Component,
|
|
3103
3587
|
args: [{
|
|
3104
3588
|
selector: 'dbx-firebase-model-type-instance-list',
|
|
@@ -3114,10 +3598,10 @@ class DbxFirebaseModelTypeInstanceListViewComponent extends AbstractDbxSelection
|
|
|
3114
3598
|
componentClass: DbxFirebaseModelTypeInstanceListViewItemComponent,
|
|
3115
3599
|
mapValuesToItemValues: (x) => of(x.map((y) => ({ itemValue: y, icon: y.displayInfo.icon ?? y.icon, anchor: y.segueRef })))
|
|
3116
3600
|
};
|
|
3117
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3118
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
3601
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypeInstanceListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3602
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseModelTypeInstanceListViewComponent, isStandalone: true, selector: "dbx-firebase-model-type-instance-list-view", providers: provideDbxListView(DbxFirebaseModelTypeInstanceListViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxSelectionValueListViewComponentImportsModule }, { kind: "component", type: i1$1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3119
3603
|
}
|
|
3120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypeInstanceListViewComponent, decorators: [{
|
|
3121
3605
|
type: Component,
|
|
3122
3606
|
args: [{
|
|
3123
3607
|
selector: 'dbx-firebase-model-type-instance-list-view',
|
|
@@ -3130,12 +3614,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
3130
3614
|
}] });
|
|
3131
3615
|
class DbxFirebaseModelTypeInstanceListViewItemComponent extends AbstractDbxValueListViewItemComponent {
|
|
3132
3616
|
title = this.itemValue.displayInfo.title;
|
|
3133
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3134
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
3617
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypeInstanceListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3618
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseModelTypeInstanceListViewItemComponent, isStandalone: true, selector: "dbx-firebase-model-type-instance-list-view-item", usesInheritance: true, ngImport: i0, template: `
|
|
3135
3619
|
<span>{{ title }}</span>
|
|
3136
3620
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3137
3621
|
}
|
|
3138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelTypeInstanceListViewItemComponent, decorators: [{
|
|
3139
3623
|
type: Component,
|
|
3140
3624
|
args: [{
|
|
3141
3625
|
selector: 'dbx-firebase-model-type-instance-list-view-item',
|
|
@@ -3149,18 +3633,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
3149
3633
|
|
|
3150
3634
|
class DbxFirebaseModelHistoryComponent {
|
|
3151
3635
|
dbxFirebaseModelTrackerService = inject(DbxFirebaseModelTrackerService);
|
|
3152
|
-
anchorForItem = input(...(ngDevMode ? [undefined, { debugName: "anchorForItem" }] : []));
|
|
3153
|
-
historyFilter = input(...(ngDevMode ? [undefined, { debugName: "historyFilter" }] : []));
|
|
3636
|
+
anchorForItem = input(...(ngDevMode ? [undefined, { debugName: "anchorForItem" }] : /* istanbul ignore next */ []));
|
|
3637
|
+
historyFilter = input(...(ngDevMode ? [undefined, { debugName: "historyFilter" }] : /* istanbul ignore next */ []));
|
|
3154
3638
|
historyPairs$ = toObservable(this.historyFilter).pipe(switchMap((x) => this.dbxFirebaseModelTrackerService.filterHistoryPairs(x)), shareReplay(1));
|
|
3155
3639
|
state = loadingStateFromObs(this.historyPairs$);
|
|
3156
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3157
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
3640
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3641
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseModelHistoryComponent, isStandalone: true, selector: "dbx-firebase-model-history", inputs: { anchorForItem: { classPropertyName: "anchorForItem", publicName: "anchorForItem", isSignal: true, isRequired: false, transformFunction: null }, historyFilter: { classPropertyName: "historyFilter", publicName: "historyFilter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
3158
3642
|
<dbx-firebase-model-type-instance-list [state]="state" dbxListItemModifier [dbxListItemAnchorModifier]="anchorForItem()">
|
|
3159
3643
|
<ng-content empty select="[empty]"></ng-content>
|
|
3160
3644
|
</dbx-firebase-model-type-instance-list>
|
|
3161
3645
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseModelTypeInstanceListComponent, selector: "dbx-firebase-model-type-instance-list" }, { kind: "directive", type: DbxListItemAnchorModifierDirective, selector: "[dbxListItemAnchorModifier]", inputs: ["dbxListItemAnchorModifier"] }, { kind: "directive", type: DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3162
3646
|
}
|
|
3163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3647
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelHistoryComponent, decorators: [{
|
|
3164
3648
|
type: Component,
|
|
3165
3649
|
args: [{
|
|
3166
3650
|
selector: 'dbx-firebase-model-history',
|
|
@@ -3199,10 +3683,10 @@ class DbxFirebaseModelHistoryPopoverComponent extends AbstractPopoverDirective {
|
|
|
3199
3683
|
emptyText = this.config.emptyText ?? 'History is empty.';
|
|
3200
3684
|
historyFilter = this.config.historyFilter;
|
|
3201
3685
|
anchorForItem = this.config.anchorForItem;
|
|
3202
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3203
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
3686
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelHistoryPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3687
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseModelHistoryPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-history [historyFilter]=\"historyFilter\" [anchorForItem]=\"anchorForItem\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-model-history>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxFirebaseModelHistoryComponent, selector: "dbx-firebase-model-history", inputs: ["anchorForItem", "historyFilter"] }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3204
3688
|
}
|
|
3205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelHistoryPopoverComponent, decorators: [{
|
|
3206
3690
|
type: Component,
|
|
3207
3691
|
args: [{ imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxFirebaseModelHistoryComponent, DbxListEmptyContentComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-history [historyFilter]=\"historyFilter\" [anchorForItem]=\"anchorForItem\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-model-history>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
|
|
3208
3692
|
}] });
|
|
@@ -3210,7 +3694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
3210
3694
|
class DbxFirebaseModelHistoryPopoverButtonComponent extends AbstractPopoverRefDirective {
|
|
3211
3695
|
_dbxPopoverService = inject(DbxPopoverService);
|
|
3212
3696
|
buttonElement = viewChild.required('button', { read: ElementRef });
|
|
3213
|
-
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
|
|
3697
|
+
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
3214
3698
|
_makePopoverRef(origin) {
|
|
3215
3699
|
const config = this.config();
|
|
3216
3700
|
if (!origin) {
|
|
@@ -3225,12 +3709,12 @@ class DbxFirebaseModelHistoryPopoverButtonComponent extends AbstractPopoverRefDi
|
|
|
3225
3709
|
const origin = this.buttonElement();
|
|
3226
3710
|
this.showPopover(origin);
|
|
3227
3711
|
}
|
|
3228
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3229
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.
|
|
3712
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelHistoryPopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3713
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.3", type: DbxFirebaseModelHistoryPopoverButtonComponent, isStandalone: true, selector: "dbx-firebase-model-history-popover-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
3230
3714
|
<dbx-icon-button #button (buttonClick)="showHistoryPopover()" icon="history"></dbx-icon-button>
|
|
3231
3715
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3232
3716
|
}
|
|
3233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelHistoryPopoverButtonComponent, decorators: [{
|
|
3234
3718
|
type: Component,
|
|
3235
3719
|
args: [{
|
|
3236
3720
|
selector: 'dbx-firebase-model-history-popover-button',
|
|
@@ -3329,7 +3813,7 @@ class DbxFirebaseModelEntitiesWidgetService {
|
|
|
3329
3813
|
}
|
|
3330
3814
|
// MARK: Get
|
|
3331
3815
|
getAllRegisteredWidgetIdentities() {
|
|
3332
|
-
return
|
|
3816
|
+
return [...this._entries.keys()];
|
|
3333
3817
|
}
|
|
3334
3818
|
getWidgetEntry(identity) {
|
|
3335
3819
|
const entry = this._entries.get(identity);
|
|
@@ -3351,10 +3835,10 @@ class DbxFirebaseModelEntitiesWidgetService {
|
|
|
3351
3835
|
getSortPriorityMap() {
|
|
3352
3836
|
return this._sortPriorityMap();
|
|
3353
3837
|
}
|
|
3354
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3355
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3838
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3839
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesWidgetService });
|
|
3356
3840
|
}
|
|
3357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3841
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesWidgetService, decorators: [{
|
|
3358
3842
|
type: Injectable
|
|
3359
3843
|
}], ctorParameters: () => [] });
|
|
3360
3844
|
|
|
@@ -3416,7 +3900,7 @@ class DbxFirebaseModelEntitiesEntityComponent {
|
|
|
3416
3900
|
widgetInjectionConfigFactory = dbxFirebaseModelEntityWidgetInjectionConfigFactory();
|
|
3417
3901
|
entitiesWidgetService = inject(DbxFirebaseModelEntitiesWidgetService);
|
|
3418
3902
|
dbxFirebaseModelTypesService = inject(DbxFirebaseModelTypesService);
|
|
3419
|
-
entity = input.required(...(ngDevMode ? [{ debugName: "entity" }] : []));
|
|
3903
|
+
entity = input.required(...(ngDevMode ? [{ debugName: "entity" }] : /* istanbul ignore next */ []));
|
|
3420
3904
|
entity$ = toObservable(this.entity);
|
|
3421
3905
|
currentEntityWithStore$ = this.entity$.pipe(map((x) => {
|
|
3422
3906
|
let result;
|
|
@@ -3460,16 +3944,16 @@ class DbxFirebaseModelEntitiesEntityComponent {
|
|
|
3460
3944
|
displayNameSignal = toSignal(this.displayName$);
|
|
3461
3945
|
displayInfoSignal = toSignal(this.displayInfo$);
|
|
3462
3946
|
modelIdentitySignal = toSignal(this.modelIdentity$);
|
|
3463
|
-
modelTypeSignal = computed(() => this.modelIdentitySignal()?.modelType, ...(ngDevMode ? [{ debugName: "modelTypeSignal" }] : []));
|
|
3947
|
+
modelTypeSignal = computed(() => this.modelIdentitySignal()?.modelType, ...(ngDevMode ? [{ debugName: "modelTypeSignal" }] : /* istanbul ignore next */ []));
|
|
3464
3948
|
widgetInjectionConfigSignal = toSignal(this.widgetInjectionConfig$);
|
|
3465
|
-
entityWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.entityComponentConfig, ...(ngDevMode ? [{ debugName: "entityWidgetConfigSignal" }] : []));
|
|
3466
|
-
commonWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.commonComponentConfig, ...(ngDevMode ? [{ debugName: "commonWidgetConfigSignal" }] : []));
|
|
3467
|
-
debugWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.debugComponentConfig, ...(ngDevMode ? [{ debugName: "debugWidgetConfigSignal" }] : []));
|
|
3949
|
+
entityWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.entityComponentConfig, ...(ngDevMode ? [{ debugName: "entityWidgetConfigSignal" }] : /* istanbul ignore next */ []));
|
|
3950
|
+
commonWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.commonComponentConfig, ...(ngDevMode ? [{ debugName: "commonWidgetConfigSignal" }] : /* istanbul ignore next */ []));
|
|
3951
|
+
debugWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.debugComponentConfig, ...(ngDevMode ? [{ debugName: "debugWidgetConfigSignal" }] : /* istanbul ignore next */ []));
|
|
3468
3952
|
loadingContext = cleanLoadingContext({ obs: this.loadingState$ });
|
|
3469
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3470
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3953
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3954
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseModelEntitiesEntityComponent, isStandalone: true, selector: "dbx-firebase-model-entities-entity", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n @if (displayNameSignal(); as displayName) {\n <span class=\"dbx-small dbx-u dbx-pl2\">{{ displayName }}</span>\n }\n </span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3471
3955
|
}
|
|
3472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3956
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, decorators: [{
|
|
3473
3957
|
type: Component,
|
|
3474
3958
|
args: [{ selector: 'dbx-firebase-model-entities-entity', imports: [DbxInjectionComponent, DbxLoadingComponent, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelContent, MatIcon], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n @if (displayNameSignal(); as displayName) {\n <span class=\"dbx-small dbx-u dbx-pl2\">{{ displayName }}</span>\n }\n </span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n" }]
|
|
3475
3959
|
}], propDecorators: { entity: [{ type: i0.Input, args: [{ isSignal: true, alias: "entity", required: true }] }] } });
|
|
@@ -3485,24 +3969,24 @@ class DbxFirebaseModelEntitiesComponent {
|
|
|
3485
3969
|
/**
|
|
3486
3970
|
* Whether the accordion should allow multiple expanded panels.
|
|
3487
3971
|
*/
|
|
3488
|
-
multi = input(true, ...(ngDevMode ? [{ debugName: "multi" }] : []));
|
|
3972
|
+
multi = input(true, ...(ngDevMode ? [{ debugName: "multi" }] : /* istanbul ignore next */ []));
|
|
3489
3973
|
/**
|
|
3490
3974
|
* If true, will only show entities that have a registered widget entry.
|
|
3491
3975
|
*
|
|
3492
3976
|
* Defaults to true.
|
|
3493
3977
|
*/
|
|
3494
|
-
onlyShowRegisteredTypes = input(true, ...(ngDevMode ? [{ debugName: "onlyShowRegisteredTypes" }] : []));
|
|
3978
|
+
onlyShowRegisteredTypes = input(true, ...(ngDevMode ? [{ debugName: "onlyShowRegisteredTypes" }] : /* istanbul ignore next */ []));
|
|
3495
3979
|
/**
|
|
3496
3980
|
* If true, will show unregistered entities, even if onlyShowRegisteredTypes is true.
|
|
3497
3981
|
*/
|
|
3498
|
-
showUnregisteredTypesSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "showUnregisteredTypesSignal" }] : []));
|
|
3982
|
+
showUnregisteredTypesSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "showUnregisteredTypesSignal" }] : /* istanbul ignore next */ []));
|
|
3499
3983
|
onlyShowRegisteredTypesSignal = computed(() => {
|
|
3500
3984
|
const onlyShowRegisteredTypes = this.onlyShowRegisteredTypes();
|
|
3501
3985
|
const showUnregisteredTypes = this.showUnregisteredTypesSignal();
|
|
3502
3986
|
return !showUnregisteredTypes && onlyShowRegisteredTypes;
|
|
3503
|
-
}, ...(ngDevMode ? [{ debugName: "onlyShowRegisteredTypesSignal" }] : []));
|
|
3987
|
+
}, ...(ngDevMode ? [{ debugName: "onlyShowRegisteredTypesSignal" }] : /* istanbul ignore next */ []));
|
|
3504
3988
|
onlyShowRegisteredTypes$ = toObservable(this.onlyShowRegisteredTypesSignal).pipe(distinctUntilChanged(), shareReplay(1));
|
|
3505
|
-
entities = input(...(ngDevMode ? [undefined, { debugName: "entities" }] : []));
|
|
3989
|
+
entities = input(...(ngDevMode ? [undefined, { debugName: "entities" }] : /* istanbul ignore next */ []));
|
|
3506
3990
|
entities$ = toObservable(this.entities).pipe(switchMapMaybe(), map((x) => x ?? beginLoading()), shareReplay(1));
|
|
3507
3991
|
allEntitiesState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
|
|
3508
3992
|
const sortPriorityMap = this.entitiesWidgetService.getSortPriorityMap();
|
|
@@ -3528,19 +4012,19 @@ class DbxFirebaseModelEntitiesComponent {
|
|
|
3528
4012
|
})), shareReplay(1));
|
|
3529
4013
|
allEntities$ = this.allEntitiesState$.pipe(valueFromFinishedLoadingState(), shareReplay(1));
|
|
3530
4014
|
allEntitiesSignal = toSignal(this.allEntities$, { initialValue: { entities: [], registeredEntities: [], unregisteredEntities: [], onlyShowRegisteredTypes: false } });
|
|
3531
|
-
entitiesWithKeysSignal = computed(() => this.allEntitiesSignal()?.entities, ...(ngDevMode ? [{ debugName: "entitiesWithKeysSignal" }] : []));
|
|
3532
|
-
unregisteredEntitiesCountSignal = computed(() => this.allEntitiesSignal()?.unregisteredEntities?.length ?? 0, ...(ngDevMode ? [{ debugName: "unregisteredEntitiesCountSignal" }] : []));
|
|
4015
|
+
entitiesWithKeysSignal = computed(() => this.allEntitiesSignal()?.entities, ...(ngDevMode ? [{ debugName: "entitiesWithKeysSignal" }] : /* istanbul ignore next */ []));
|
|
4016
|
+
unregisteredEntitiesCountSignal = computed(() => this.allEntitiesSignal()?.unregisteredEntities?.length ?? 0, ...(ngDevMode ? [{ debugName: "unregisteredEntitiesCountSignal" }] : /* istanbul ignore next */ []));
|
|
3533
4017
|
showViewUnregisteredEntitiesButtonSignal = computed(() => {
|
|
3534
4018
|
const { onlyShowRegisteredTypes, unregisteredEntities } = this.allEntitiesSignal() ?? {};
|
|
3535
4019
|
return onlyShowRegisteredTypes && Boolean(unregisteredEntities?.length);
|
|
3536
|
-
}, ...(ngDevMode ? [{ debugName: "showViewUnregisteredEntitiesButtonSignal" }] : []));
|
|
3537
|
-
hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length, ...(ngDevMode ? [{ debugName: "hasNoEntitiesSignal" }] : []));
|
|
4020
|
+
}, ...(ngDevMode ? [{ debugName: "showViewUnregisteredEntitiesButtonSignal" }] : /* istanbul ignore next */ []));
|
|
4021
|
+
hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length, ...(ngDevMode ? [{ debugName: "hasNoEntitiesSignal" }] : /* istanbul ignore next */ []));
|
|
3538
4022
|
context = cleanLoadingContext({ obs: this.allEntitiesState$ });
|
|
3539
4023
|
clickShowUnregisteredEntities() {
|
|
3540
4024
|
this.showUnregisteredTypesSignal.set(true);
|
|
3541
4025
|
}
|
|
3542
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3543
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
4026
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4027
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseModelEntitiesComponent, isStandalone: true, selector: "dbx-firebase-model-entities", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, onlyShowRegisteredTypes: { classPropertyName: "onlyShowRegisteredTypes", publicName: "onlyShowRegisteredTypes", isSignal: true, isRequired: false, transformFunction: null }, entities: { classPropertyName: "entities", publicName: "entities", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
3544
4028
|
<dbx-loading [linear]="true" [context]="context">
|
|
3545
4029
|
<mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
|
|
3546
4030
|
@for (entity of entitiesWithKeysSignal(); track entity.key) {
|
|
@@ -3560,7 +4044,7 @@ class DbxFirebaseModelEntitiesComponent {
|
|
|
3560
4044
|
</dbx-loading>
|
|
3561
4045
|
`, isInline: true, dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxFirebaseModelEntitiesEntityComponent, selector: "dbx-firebase-model-entities-entity", inputs: ["entity"] }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }, { kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3562
4046
|
}
|
|
3563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4047
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, decorators: [{
|
|
3564
4048
|
type: Component,
|
|
3565
4049
|
args: [{
|
|
3566
4050
|
selector: 'dbx-firebase-model-entities',
|
|
@@ -3590,7 +4074,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
3590
4074
|
}], propDecorators: { multi: [{ type: i0.Input, args: [{ isSignal: true, alias: "multi", required: false }] }], onlyShowRegisteredTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlyShowRegisteredTypes", required: false }] }], entities: [{ type: i0.Input, args: [{ isSignal: true, alias: "entities", required: false }] }] } });
|
|
3591
4075
|
|
|
3592
4076
|
const DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY = 'entities';
|
|
3593
|
-
/**
|
|
4077
|
+
/**
|
|
4078
|
+
* Popover component that displays model entities in a scrollable panel with configurable header and empty text.
|
|
4079
|
+
*/
|
|
3594
4080
|
class DbxFirebaseModelEntitiesPopoverComponent extends AbstractPopoverDirective {
|
|
3595
4081
|
entities$ = this.popover.data?.entities$;
|
|
3596
4082
|
static openPopover(popupService, config, popoverKey) {
|
|
@@ -3620,25 +4106,27 @@ class DbxFirebaseModelEntitiesPopoverComponent extends AbstractPopoverDirective
|
|
|
3620
4106
|
header = this.config.header ?? 'Entities';
|
|
3621
4107
|
emptyText = this.config.emptyText ?? 'No entities found in current context.';
|
|
3622
4108
|
onlyShowRegisteredTypes = this.config.onlyShowRegisteredTypes;
|
|
3623
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3624
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
4109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseModelEntitiesPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\" [onlyShowRegisteredTypes]=\"onlyShowRegisteredTypes\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxFirebaseModelEntitiesComponent, selector: "dbx-firebase-model-entities", inputs: ["multi", "onlyShowRegisteredTypes", "entities"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3625
4111
|
}
|
|
3626
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverComponent, decorators: [{
|
|
3627
4113
|
type: Component,
|
|
3628
4114
|
args: [{ imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxFirebaseModelEntitiesComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\" [onlyShowRegisteredTypes]=\"onlyShowRegisteredTypes\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
|
|
3629
4115
|
}] });
|
|
3630
4116
|
|
|
3631
|
-
/**
|
|
4117
|
+
/**
|
|
4118
|
+
* Button component that opens an entities popover showing model entities from the injected source.
|
|
4119
|
+
*/
|
|
3632
4120
|
class DbxFirebaseModelEntitiesPopoverButtonComponent extends AbstractPopoverRefDirective {
|
|
3633
4121
|
_dbxPopoverService = inject(DbxPopoverService);
|
|
3634
4122
|
entitiesSource = inject(DbxFirebaseModelEntitiesSource);
|
|
3635
4123
|
buttonElement = viewChild.required('button', { read: ElementRef });
|
|
3636
|
-
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
|
|
4124
|
+
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
3637
4125
|
buttonDisplaySignal = computed(() => {
|
|
3638
4126
|
const config = this.config();
|
|
3639
4127
|
return config?.buttonDisplay ?? { icon: config?.icon ?? 'data_object' };
|
|
3640
|
-
}, ...(ngDevMode ? [{ debugName: "buttonDisplaySignal" }] : []));
|
|
3641
|
-
buttonStyleSignal = computed(() => this.config()?.buttonStyle, ...(ngDevMode ? [{ debugName: "buttonStyleSignal" }] : []));
|
|
4128
|
+
}, ...(ngDevMode ? [{ debugName: "buttonDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
4129
|
+
buttonStyleSignal = computed(() => this.config()?.buttonStyle, ...(ngDevMode ? [{ debugName: "buttonStyleSignal" }] : /* istanbul ignore next */ []));
|
|
3642
4130
|
_makePopoverRef(origin) {
|
|
3643
4131
|
if (!origin) {
|
|
3644
4132
|
throw new Error('Missing origin.');
|
|
@@ -3655,12 +4143,12 @@ class DbxFirebaseModelEntitiesPopoverButtonComponent extends AbstractPopoverRefD
|
|
|
3655
4143
|
const origin = this.buttonElement();
|
|
3656
4144
|
this.showPopover(origin);
|
|
3657
4145
|
}
|
|
3658
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3659
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.
|
|
4146
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4147
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.3", type: DbxFirebaseModelEntitiesPopoverButtonComponent, isStandalone: true, selector: "dbx-firebase-model-entities-popover-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
3660
4148
|
<dbx-button #button (buttonClick)="showEntitiesPopover()" [buttonStyle]="buttonStyleSignal()" [buttonDisplay]="buttonDisplaySignal()"></dbx-button>
|
|
3661
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4149
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3662
4150
|
}
|
|
3663
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverButtonComponent, decorators: [{
|
|
3664
4152
|
type: Component,
|
|
3665
4153
|
args: [{
|
|
3666
4154
|
selector: 'dbx-firebase-model-entities-popover-button',
|
|
@@ -3708,7 +4196,7 @@ class DbxFirebaseDocumentStoreContextStore extends ComponentStore {
|
|
|
3708
4196
|
lastStoresChangeAt$ = this.select((state) => state.lastStoresChangeAt).pipe(distinctUntilChanged(isSameDate), shareReplay(1));
|
|
3709
4197
|
entriesGroupedByIdentity$ = this.stores$.pipe(switchMap((stores) => {
|
|
3710
4198
|
let entriesObs;
|
|
3711
|
-
const allEntries =
|
|
4199
|
+
const allEntries = [...stores.values()];
|
|
3712
4200
|
const { included: hasIdentity, excluded: noIdentity } = separateValues(allEntries, (x) => x.modelIdentity != null);
|
|
3713
4201
|
if (noIdentity.length > 0) {
|
|
3714
4202
|
entriesObs = combineLatest(noIdentity.map((entryWithoutCachedIdentity) => entryWithoutCachedIdentity.store.modelIdentity$.pipe(first(), map((z) => {
|
|
@@ -3732,10 +4220,10 @@ class DbxFirebaseDocumentStoreContextStore extends ComponentStore {
|
|
|
3732
4220
|
// MARK: State Changes
|
|
3733
4221
|
addStore = this.updater(addStore);
|
|
3734
4222
|
removeStore = this.updater(removeStore);
|
|
3735
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3736
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4223
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4224
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextStore });
|
|
3737
4225
|
}
|
|
3738
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextStore, decorators: [{
|
|
3739
4227
|
type: Injectable
|
|
3740
4228
|
}], ctorParameters: () => [] });
|
|
3741
4229
|
function addStore(state, store) {
|
|
@@ -3774,6 +4262,9 @@ function removeStore(state, store) {
|
|
|
3774
4262
|
/**
|
|
3775
4263
|
* Factory that creates a {@link DbxFirebaseModelEntitiesSource} from a {@link DbxFirebaseDocumentStoreContextStore},
|
|
3776
4264
|
* mapping its entries into model entities grouped by identity.
|
|
4265
|
+
*
|
|
4266
|
+
* @param storeContextStore - The document store context store providing entries grouped by identity.
|
|
4267
|
+
* @returns A DbxFirebaseModelEntitiesSource backed by the given store context.
|
|
3777
4268
|
*/
|
|
3778
4269
|
const dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory = (storeContextStore) => {
|
|
3779
4270
|
const entities$ = storeContextStore.entriesGroupedByIdentity$.pipe(map((entries) => entries.map((entry) => ({ store: entry.store, modelIdentity: entry.modelIdentity }))));
|
|
@@ -3782,10 +4273,12 @@ const dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory = (storeContextS
|
|
|
3782
4273
|
};
|
|
3783
4274
|
return source;
|
|
3784
4275
|
};
|
|
3785
|
-
/**
|
|
4276
|
+
/**
|
|
4277
|
+
* Directive that provides a {@link DbxFirebaseModelEntitiesSource} from the current document store context.
|
|
4278
|
+
*/
|
|
3786
4279
|
class DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective {
|
|
3787
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3788
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
4280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4281
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreContextModelEntitiesSource]", providers: [
|
|
3789
4282
|
{
|
|
3790
4283
|
provide: DbxFirebaseModelEntitiesSource,
|
|
3791
4284
|
useFactory: dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory,
|
|
@@ -3793,7 +4286,7 @@ class DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective {
|
|
|
3793
4286
|
}
|
|
3794
4287
|
], ngImport: i0 });
|
|
3795
4288
|
}
|
|
3796
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, decorators: [{
|
|
3797
4290
|
type: Directive,
|
|
3798
4291
|
args: [{
|
|
3799
4292
|
selector: '[dbxFirebaseDocumentStoreContextModelEntitiesSource]',
|
|
@@ -3815,10 +4308,10 @@ class AbstractDbxFirebaseModelEntityWidgetDirective {
|
|
|
3815
4308
|
entityData = inject(DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN);
|
|
3816
4309
|
store = this.entityData.store;
|
|
3817
4310
|
data$ = this.store.data$;
|
|
3818
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3819
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
4311
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseModelEntityWidgetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4312
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: AbstractDbxFirebaseModelEntityWidgetDirective, isStandalone: true, ngImport: i0 });
|
|
3820
4313
|
}
|
|
3821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseModelEntityWidgetDirective, decorators: [{
|
|
3822
4315
|
type: Directive,
|
|
3823
4316
|
args: [{}]
|
|
3824
4317
|
}] });
|
|
@@ -3828,19 +4321,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
3828
4321
|
*/
|
|
3829
4322
|
class DbxFirebaseModelKeyComponent {
|
|
3830
4323
|
dbxFirebaseModelTypesService = inject(DbxFirebaseModelTypesService);
|
|
3831
|
-
modelKey = input(...(ngDevMode ? [undefined, { debugName: "modelKey" }] : []));
|
|
4324
|
+
modelKey = input(...(ngDevMode ? [undefined, { debugName: "modelKey" }] : /* istanbul ignore next */ []));
|
|
3832
4325
|
modelKeyIdSignal = computed(() => {
|
|
3833
4326
|
const modelKey = this.modelKey();
|
|
3834
4327
|
return modelKey ? firestoreModelId(modelKey) : undefined;
|
|
3835
|
-
}, ...(ngDevMode ? [{ debugName: "modelKeyIdSignal" }] : []));
|
|
4328
|
+
}, ...(ngDevMode ? [{ debugName: "modelKeyIdSignal" }] : /* istanbul ignore next */ []));
|
|
3836
4329
|
oneWayFlatModelKeySignal = computed(() => {
|
|
3837
4330
|
const modelKey = this.modelKey();
|
|
3838
4331
|
return modelKey ? flatFirestoreModelKey(modelKey) : undefined;
|
|
3839
|
-
}, ...(ngDevMode ? [{ debugName: "oneWayFlatModelKeySignal" }] : []));
|
|
4332
|
+
}, ...(ngDevMode ? [{ debugName: "oneWayFlatModelKeySignal" }] : /* istanbul ignore next */ []));
|
|
3840
4333
|
twoWayFlatModelKeySignal = computed(() => {
|
|
3841
4334
|
const modelKey = this.modelKey();
|
|
3842
4335
|
return modelKey ? twoWayFlatFirestoreModelKey(modelKey) : undefined;
|
|
3843
|
-
}, ...(ngDevMode ? [{ debugName: "twoWayFlatModelKeySignal" }] : []));
|
|
4336
|
+
}, ...(ngDevMode ? [{ debugName: "twoWayFlatModelKeySignal" }] : /* istanbul ignore next */ []));
|
|
3844
4337
|
// Convert signal to observable for types service
|
|
3845
4338
|
modelKey$ = toObservable(this.modelKey);
|
|
3846
4339
|
modelTypeInstance$ = this.modelKey$.pipe(switchMap((key) => {
|
|
@@ -3855,13 +4348,13 @@ class DbxFirebaseModelKeyComponent {
|
|
|
3855
4348
|
modelTypeInstanceSignal = toSignal(this.modelTypeInstance$);
|
|
3856
4349
|
modelIdentitySignal = toSignal(this.modelIdentity$);
|
|
3857
4350
|
typeInfoSignal = toSignal(this.typeInfo$);
|
|
3858
|
-
typeCanSegueToView = computed(() => this.typeInfoSignal()?.canSegueToView ?? false, ...(ngDevMode ? [{ debugName: "typeCanSegueToView" }] : []));
|
|
4351
|
+
typeCanSegueToView = computed(() => this.typeInfoSignal()?.canSegueToView ?? false, ...(ngDevMode ? [{ debugName: "typeCanSegueToView" }] : /* istanbul ignore next */ []));
|
|
3859
4352
|
sref$ = this.modelTypeInstance$.pipe(switchMap((x) => x?.segueRef$ ?? of(undefined)));
|
|
3860
4353
|
srefSignal = toSignal(this.sref$);
|
|
3861
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3862
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
4354
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelKeyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4355
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseModelKeyComponent, isStandalone: true, selector: "dbx-firebase-model-key", inputs: { modelKey: { classPropertyName: "modelKey", publicName: "modelKey", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ modelKeyIdSignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKeySignal()\">(Flat) {{ oneWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKeySignal()\">(Encoded Flat) {{ twoWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n", dependencies: [{ kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }] });
|
|
3863
4356
|
}
|
|
3864
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4357
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelKeyComponent, decorators: [{
|
|
3865
4358
|
type: Component,
|
|
3866
4359
|
args: [{ selector: 'dbx-firebase-model-key', standalone: true, imports: [DbxDetailBlockComponent, DbxButtonComponent, DbxClickToCopyTextComponent, DbxAnchorComponent], template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ modelKeyIdSignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKeySignal()\">(Flat) {{ oneWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKeySignal()\">(Encoded Flat) {{ twoWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n" }]
|
|
3867
4360
|
}], propDecorators: { modelKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "modelKey", required: false }] }] } });
|
|
@@ -3885,12 +4378,12 @@ class DbxFirebaseModelEntitiesDebugWidgetComponent extends AbstractDbxFirebaseMo
|
|
|
3885
4378
|
};
|
|
3886
4379
|
}
|
|
3887
4380
|
return content;
|
|
3888
|
-
}, ...(ngDevMode ? [{ debugName: "contentSignal" }] : []));
|
|
4381
|
+
}, ...(ngDevMode ? [{ debugName: "contentSignal" }] : /* istanbul ignore next */ []));
|
|
3889
4382
|
context = cleanLoadingContext(this.store.dataLoadingState$);
|
|
3890
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3891
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
4383
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4384
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseModelEntitiesDebugWidgetComponent, isStandalone: true, selector: "dbx-firebase-model-entities-debug-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [showTitle]=\"false\" [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: DbxFirebaseModelKeyComponent, selector: "dbx-firebase-model-key", inputs: ["modelKey"] }, { kind: "component", type: DbxDownloadTextViewComponent, selector: "dbx-download-text-view", inputs: ["showDownloadButton", "loadingText", "linear", "showTitle", "showPreview", "showExpandPreviewButton", "expandPreview", "content", "contentState"], outputs: ["expandPreviewChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }] });
|
|
3892
4385
|
}
|
|
3893
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, decorators: [{
|
|
3894
4387
|
type: Component,
|
|
3895
4388
|
args: [{ selector: 'dbx-firebase-model-entities-debug-widget', standalone: true, imports: [DbxFirebaseModelKeyComponent, DbxDownloadTextViewComponent, DbxLoadingComponent], template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [showTitle]=\"false\" [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n" }]
|
|
3896
4389
|
}] });
|
|
@@ -3899,12 +4392,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
3899
4392
|
* Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
|
|
3900
4393
|
*/
|
|
3901
4394
|
class DbxFirebaseDocumentStoreDirective {
|
|
3902
|
-
storeName = model(undefined, ...(ngDevMode ? [{ debugName: "storeName" }] : []));
|
|
3903
|
-
documentId = model(undefined, ...(ngDevMode ? [{ debugName: "documentId" }] : []));
|
|
3904
|
-
key = model(undefined, ...(ngDevMode ? [{ debugName: "key" }] : []));
|
|
3905
|
-
flatKey = model(undefined, ...(ngDevMode ? [{ debugName: "flatKey" }] : []));
|
|
3906
|
-
ref = model(undefined, ...(ngDevMode ? [{ debugName: "ref" }] : []));
|
|
3907
|
-
streamMode = model(FirestoreAccessorStreamMode.STREAM, ...(ngDevMode ? [{ debugName: "streamMode" }] : []));
|
|
4395
|
+
storeName = model(undefined, ...(ngDevMode ? [{ debugName: "storeName" }] : /* istanbul ignore next */ []));
|
|
4396
|
+
documentId = model(undefined, ...(ngDevMode ? [{ debugName: "documentId" }] : /* istanbul ignore next */ []));
|
|
4397
|
+
key = model(undefined, ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
4398
|
+
flatKey = model(undefined, ...(ngDevMode ? [{ debugName: "flatKey" }] : /* istanbul ignore next */ []));
|
|
4399
|
+
ref = model(undefined, ...(ngDevMode ? [{ debugName: "ref" }] : /* istanbul ignore next */ []));
|
|
4400
|
+
streamMode = model(FirestoreAccessorStreamMode.STREAM, ...(ngDevMode ? [{ debugName: "streamMode" }] : /* istanbul ignore next */ []));
|
|
3908
4401
|
_storeName$ = toObservable(this.storeName).pipe(skipInitialMaybe());
|
|
3909
4402
|
_documentId$ = toObservable(this.documentId).pipe(skipInitialMaybe());
|
|
3910
4403
|
_key$ = toObservable(this.key).pipe(skipInitialMaybe());
|
|
@@ -3925,6 +4418,7 @@ class DbxFirebaseDocumentStoreDirective {
|
|
|
3925
4418
|
modelIdentity$ = this.store$.pipe(switchMap((x) => x.modelIdentity$));
|
|
3926
4419
|
data$ = this.store$.pipe(switchMap((x) => x.data$));
|
|
3927
4420
|
loadingState$ = this.store$.pipe(switchMap((x) => x.dataLoadingState$));
|
|
4421
|
+
// eslint-disable-next-line @angular-eslint/prefer-inject -- abstract class receives store from subclass constructors
|
|
3928
4422
|
constructor(store) {
|
|
3929
4423
|
this.replaceStore(store);
|
|
3930
4424
|
// sync inputs to store any time the store changes
|
|
@@ -3963,6 +4457,8 @@ class DbxFirebaseDocumentStoreDirective {
|
|
|
3963
4457
|
}
|
|
3964
4458
|
/**
|
|
3965
4459
|
* Replaces the internal store.
|
|
4460
|
+
*
|
|
4461
|
+
* @param store - The new document store to use.
|
|
3966
4462
|
*/
|
|
3967
4463
|
replaceStore(store) {
|
|
3968
4464
|
this._store.next(store);
|
|
@@ -3976,10 +4472,10 @@ class DbxFirebaseDocumentStoreDirective {
|
|
|
3976
4472
|
// we assume that the input model key is a TwoWayFlatFirestoreModelKey, since the TwoWayFlatFirestoreModelKey is safe to encode in the url
|
|
3977
4473
|
return keyFromParams.subscribe((x) => this.setFlatKey(x));
|
|
3978
4474
|
}
|
|
3979
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3980
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
4475
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
4476
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseDocumentStoreDirective, isStandalone: true, inputs: { storeName: { classPropertyName: "storeName", publicName: "storeName", isSignal: true, isRequired: false, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, flatKey: { classPropertyName: "flatKey", publicName: "flatKey", isSignal: true, isRequired: false, transformFunction: null }, ref: { classPropertyName: "ref", publicName: "ref", isSignal: true, isRequired: false, transformFunction: null }, streamMode: { classPropertyName: "streamMode", publicName: "streamMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { storeName: "storeNameChange", documentId: "documentIdChange", key: "keyChange", flatKey: "flatKeyChange", ref: "refChange", streamMode: "streamModeChange" }, ngImport: i0 });
|
|
3981
4477
|
}
|
|
3982
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4478
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
|
|
3983
4479
|
type: Directive
|
|
3984
4480
|
}], ctorParameters: () => [{ type: undefined }], propDecorators: { storeName: [{ type: i0.Input, args: [{ isSignal: true, alias: "storeName", required: false }] }, { type: i0.Output, args: ["storeNameChange"] }], documentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "documentId", required: false }] }, { type: i0.Output, args: ["documentIdChange"] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }, { type: i0.Output, args: ["keyChange"] }], flatKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "flatKey", required: false }] }, { type: i0.Output, args: ["flatKeyChange"] }], ref: [{ type: i0.Input, args: [{ isSignal: true, alias: "ref", required: false }] }, { type: i0.Output, args: ["refChange"] }], streamMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "streamMode", required: false }] }, { type: i0.Output, args: ["streamModeChange"] }] } });
|
|
3985
4481
|
function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
|
|
@@ -4004,7 +4500,7 @@ class DbxFirebaseModelViewedEventDirective {
|
|
|
4004
4500
|
dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective);
|
|
4005
4501
|
dbxModelObjectStateService = inject(DbxModelObjectStateService);
|
|
4006
4502
|
dbxFirebaseModelTypesService = inject(DbxFirebaseModelTypesService);
|
|
4007
|
-
modelViewContext = input(undefined, { ...(ngDevMode ? { debugName: "modelViewContext" } : {}), alias: 'dbxFirebaseModelViewedEvent' });
|
|
4503
|
+
modelViewContext = input(undefined, { ...(ngDevMode ? { debugName: "modelViewContext" } : /* istanbul ignore next */ {}), alias: 'dbxFirebaseModelViewedEvent' });
|
|
4008
4504
|
constructor() {
|
|
4009
4505
|
cleanSubscription(this.dbxFirebaseDocumentStoreDirective.data$
|
|
4010
4506
|
.pipe(
|
|
@@ -4023,10 +4519,10 @@ class DbxFirebaseModelViewedEventDirective {
|
|
|
4023
4519
|
this.dbxModelObjectStateService.emitModelViewEvent({ modelKeyTypeNamePair, context });
|
|
4024
4520
|
}));
|
|
4025
4521
|
}
|
|
4026
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4027
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
4522
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelViewedEventDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4523
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseModelViewedEventDirective, isStandalone: true, selector: "[dbxFirebaseModelViewedEvent]", inputs: { modelViewContext: { classPropertyName: "modelViewContext", publicName: "dbxFirebaseModelViewedEvent", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
4028
4524
|
}
|
|
4029
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4525
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelViewedEventDirective, decorators: [{
|
|
4030
4526
|
type: Directive,
|
|
4031
4527
|
args: [{
|
|
4032
4528
|
selector: '[dbxFirebaseModelViewedEvent]',
|
|
@@ -4038,13 +4534,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
4038
4534
|
* Abstract directive that contains a DbxFirebaseCollectionStore and provides an interface for communicating with other directives.
|
|
4039
4535
|
*/
|
|
4040
4536
|
class DbxFirebaseCollectionStoreDirective {
|
|
4041
|
-
collectionMode = model('query', ...(ngDevMode ? [{ debugName: "collectionMode" }] : []));
|
|
4042
|
-
collectionKeys = model(undefined, ...(ngDevMode ? [{ debugName: "collectionKeys" }] : []));
|
|
4043
|
-
collectionRefs = model(undefined, ...(ngDevMode ? [{ debugName: "collectionRefs" }] : []));
|
|
4044
|
-
maxPages = model(undefined, ...(ngDevMode ? [{ debugName: "maxPages" }] : []));
|
|
4045
|
-
itemsPerPage = model(undefined, ...(ngDevMode ? [{ debugName: "itemsPerPage" }] : []));
|
|
4046
|
-
constraints = model(undefined, ...(ngDevMode ? [{ debugName: "constraints" }] : []));
|
|
4047
|
-
waitForNonNullConstraints = model(undefined, ...(ngDevMode ? [{ debugName: "waitForNonNullConstraints" }] : []));
|
|
4537
|
+
collectionMode = model('query', ...(ngDevMode ? [{ debugName: "collectionMode" }] : /* istanbul ignore next */ []));
|
|
4538
|
+
collectionKeys = model(undefined, ...(ngDevMode ? [{ debugName: "collectionKeys" }] : /* istanbul ignore next */ []));
|
|
4539
|
+
collectionRefs = model(undefined, ...(ngDevMode ? [{ debugName: "collectionRefs" }] : /* istanbul ignore next */ []));
|
|
4540
|
+
maxPages = model(undefined, ...(ngDevMode ? [{ debugName: "maxPages" }] : /* istanbul ignore next */ []));
|
|
4541
|
+
itemsPerPage = model(undefined, ...(ngDevMode ? [{ debugName: "itemsPerPage" }] : /* istanbul ignore next */ []));
|
|
4542
|
+
constraints = model(undefined, ...(ngDevMode ? [{ debugName: "constraints" }] : /* istanbul ignore next */ []));
|
|
4543
|
+
waitForNonNullConstraints = model(undefined, ...(ngDevMode ? [{ debugName: "waitForNonNullConstraints" }] : /* istanbul ignore next */ []));
|
|
4048
4544
|
_collectionMode = toObservable(this.collectionMode).pipe(skipInitialMaybe());
|
|
4049
4545
|
_collectionKeys = toObservable(this.collectionKeys).pipe(skipInitialMaybe());
|
|
4050
4546
|
_collectionRefs = toObservable(this.collectionRefs).pipe(skipInitialMaybe());
|
|
@@ -4055,6 +4551,7 @@ class DbxFirebaseCollectionStoreDirective {
|
|
|
4055
4551
|
_store = completeOnDestroy(new BehaviorSubject(undefined));
|
|
4056
4552
|
store$ = this._store.pipe(filterMaybe(), shareReplay(1));
|
|
4057
4553
|
pageLoadingState$ = this.store$.pipe(switchMap((x) => x.pageLoadingState$));
|
|
4554
|
+
// eslint-disable-next-line @angular-eslint/prefer-inject -- abstract class receives store from subclass constructors
|
|
4058
4555
|
constructor(store) {
|
|
4059
4556
|
this.replaceStore(store);
|
|
4060
4557
|
// sync inputs to store any time the store changes
|
|
@@ -4073,6 +4570,8 @@ class DbxFirebaseCollectionStoreDirective {
|
|
|
4073
4570
|
}
|
|
4074
4571
|
/**
|
|
4075
4572
|
* Replaces the internal store.
|
|
4573
|
+
*
|
|
4574
|
+
* @param store - The new collection store to use.
|
|
4076
4575
|
*/
|
|
4077
4576
|
replaceStore(store) {
|
|
4078
4577
|
this._store.next(store);
|
|
@@ -4104,10 +4603,10 @@ class DbxFirebaseCollectionStoreDirective {
|
|
|
4104
4603
|
restart() {
|
|
4105
4604
|
this.store.restart();
|
|
4106
4605
|
}
|
|
4107
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4108
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
4606
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
4607
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseCollectionStoreDirective, isStandalone: true, inputs: { collectionMode: { classPropertyName: "collectionMode", publicName: "collectionMode", isSignal: true, isRequired: false, transformFunction: null }, collectionKeys: { classPropertyName: "collectionKeys", publicName: "collectionKeys", isSignal: true, isRequired: false, transformFunction: null }, collectionRefs: { classPropertyName: "collectionRefs", publicName: "collectionRefs", isSignal: true, isRequired: false, transformFunction: null }, maxPages: { classPropertyName: "maxPages", publicName: "maxPages", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, constraints: { classPropertyName: "constraints", publicName: "constraints", isSignal: true, isRequired: false, transformFunction: null }, waitForNonNullConstraints: { classPropertyName: "waitForNonNullConstraints", publicName: "waitForNonNullConstraints", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collectionMode: "collectionModeChange", collectionKeys: "collectionKeysChange", collectionRefs: "collectionRefsChange", maxPages: "maxPagesChange", itemsPerPage: "itemsPerPageChange", constraints: "constraintsChange", waitForNonNullConstraints: "waitForNonNullConstraintsChange" }, ngImport: i0 });
|
|
4109
4608
|
}
|
|
4110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionStoreDirective, decorators: [{
|
|
4111
4610
|
type: Directive
|
|
4112
4611
|
}], ctorParameters: () => [{ type: undefined }], propDecorators: { collectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "collectionMode", required: false }] }, { type: i0.Output, args: ["collectionModeChange"] }], collectionKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "collectionKeys", required: false }] }, { type: i0.Output, args: ["collectionKeysChange"] }], collectionRefs: [{ type: i0.Input, args: [{ isSignal: true, alias: "collectionRefs", required: false }] }, { type: i0.Output, args: ["collectionRefsChange"] }], maxPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxPages", required: false }] }, { type: i0.Output, args: ["maxPagesChange"] }], itemsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsPerPage", required: false }] }, { type: i0.Output, args: ["itemsPerPageChange"] }], constraints: [{ type: i0.Input, args: [{ isSignal: true, alias: "constraints", required: false }] }, { type: i0.Output, args: ["constraintsChange"] }], waitForNonNullConstraints: [{ type: i0.Input, args: [{ isSignal: true, alias: "waitForNonNullConstraints", required: false }] }, { type: i0.Output, args: ["waitForNonNullConstraintsChange"] }] } });
|
|
4113
4612
|
function provideDbxFirebaseCollectionStoreDirective(sourceType, storeType) {
|
|
@@ -4128,7 +4627,7 @@ function provideDbxFirebaseCollectionStoreDirective(sourceType, storeType) {
|
|
|
4128
4627
|
*/
|
|
4129
4628
|
class DbxFirebaseCollectionChangeDirective {
|
|
4130
4629
|
dbxFirebaseCollectionStoreDirective = inject((DbxFirebaseCollectionStoreDirective));
|
|
4131
|
-
mode = input('off', { ...(ngDevMode ? { debugName: "mode" } : {}), alias: 'dbxFirebaseCollectionChange', transform: (x) => x || 'off' });
|
|
4630
|
+
mode = input('off', { ...(ngDevMode ? { debugName: "mode" } : /* istanbul ignore next */ {}), alias: 'dbxFirebaseCollectionChange', transform: (x) => x || 'off' });
|
|
4132
4631
|
_watcher = clean(dbxFirebaseCollectionChangeWatcher(this.dbxFirebaseCollectionStoreDirective.store));
|
|
4133
4632
|
_trigger = clean(dbxFirebaseCollectionChangeTriggerForWatcher(this._watcher, () => this.restart()));
|
|
4134
4633
|
mode$ = this._watcher.mode$;
|
|
@@ -4138,7 +4637,7 @@ class DbxFirebaseCollectionChangeDirective {
|
|
|
4138
4637
|
trigger$ = this._watcher.trigger$;
|
|
4139
4638
|
modeEffect = effect(() => {
|
|
4140
4639
|
this._watcher.setMode(this.mode());
|
|
4141
|
-
}, ...(ngDevMode ? [{ debugName: "modeEffect" }] : []));
|
|
4640
|
+
}, ...(ngDevMode ? [{ debugName: "modeEffect" }] : /* istanbul ignore next */ []));
|
|
4142
4641
|
get store() {
|
|
4143
4642
|
return this._watcher.store;
|
|
4144
4643
|
}
|
|
@@ -4148,10 +4647,10 @@ class DbxFirebaseCollectionChangeDirective {
|
|
|
4148
4647
|
restart() {
|
|
4149
4648
|
this.dbxFirebaseCollectionStoreDirective.store.restart();
|
|
4150
4649
|
}
|
|
4151
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4152
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
4650
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4651
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseCollectionChangeDirective, isStandalone: true, selector: "[dbxFirebaseCollectionChange]", inputs: { mode: { classPropertyName: "mode", publicName: "dbxFirebaseCollectionChange", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
4153
4652
|
}
|
|
4154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4653
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, decorators: [{
|
|
4155
4654
|
type: Directive,
|
|
4156
4655
|
args: [{
|
|
4157
4656
|
selector: '[dbxFirebaseCollectionChange]',
|
|
@@ -4166,7 +4665,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
4166
4665
|
*/
|
|
4167
4666
|
class DbxFirebaseCollectionHasChangeDirective extends AbstractIfDirective {
|
|
4168
4667
|
directive = inject(DbxFirebaseCollectionChangeDirective);
|
|
4169
|
-
mode = input('addedAndRemoved', { ...(ngDevMode ? { debugName: "mode" } : {}), alias: 'dbxFirebaseCollectionHasChange', transform: (x) => x || 'addedAndRemoved' });
|
|
4668
|
+
mode = input('addedAndRemoved', { ...(ngDevMode ? { debugName: "mode" } : /* istanbul ignore next */ {}), alias: 'dbxFirebaseCollectionHasChange', transform: (x) => x || 'addedAndRemoved' });
|
|
4170
4669
|
show$ = combineLatest([toObservable(this.mode), this.directive.event$]).pipe(map(([mode, event]) => {
|
|
4171
4670
|
let show = false;
|
|
4172
4671
|
if (event.type !== 'none') {
|
|
@@ -4184,10 +4683,10 @@ class DbxFirebaseCollectionHasChangeDirective extends AbstractIfDirective {
|
|
|
4184
4683
|
}
|
|
4185
4684
|
return show;
|
|
4186
4685
|
}), shareReplay(1));
|
|
4187
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4188
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
4686
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionHasChangeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
4687
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseCollectionHasChangeDirective, isStandalone: true, selector: "[dbxFirebaseCollectionHasChange]", inputs: { mode: { classPropertyName: "mode", publicName: "dbxFirebaseCollectionHasChange", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
|
|
4189
4688
|
}
|
|
4190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionHasChangeDirective, decorators: [{
|
|
4191
4690
|
type: Directive,
|
|
4192
4691
|
args: [{
|
|
4193
4692
|
selector: '[dbxFirebaseCollectionHasChange]',
|
|
@@ -4209,10 +4708,10 @@ class DbxFirebaseCollectionListDirective {
|
|
|
4209
4708
|
}));
|
|
4210
4709
|
}
|
|
4211
4710
|
}
|
|
4212
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4213
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
4711
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4712
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseCollectionListDirective, isStandalone: true, selector: "[dbxFirebaseCollectionList]", ngImport: i0 });
|
|
4214
4713
|
}
|
|
4215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4714
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionListDirective, decorators: [{
|
|
4216
4715
|
type: Directive,
|
|
4217
4716
|
args: [{
|
|
4218
4717
|
selector: '[dbxFirebaseCollectionList]',
|
|
@@ -4224,6 +4723,9 @@ class DbxFirebaseDocumentStoreTwoWayKeyProvider {
|
|
|
4224
4723
|
}
|
|
4225
4724
|
/**
|
|
4226
4725
|
* Configures Providers for a DbxFirebaseDocumentStoreTwoWayKeyProvider.
|
|
4726
|
+
*
|
|
4727
|
+
* @param sourceType - The type to register as the DbxFirebaseDocumentStoreTwoWayKeyProvider.
|
|
4728
|
+
* @returns Array of Angular providers for the two-way key provider.
|
|
4227
4729
|
*/
|
|
4228
4730
|
function provideDbxFirebaseDocumentStoreTwoWayKeyProvider(sourceType) {
|
|
4229
4731
|
const providers = [
|
|
@@ -4241,10 +4743,10 @@ function provideDbxFirebaseDocumentStoreTwoWayKeyProvider(sourceType) {
|
|
|
4241
4743
|
class DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective {
|
|
4242
4744
|
dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
|
|
4243
4745
|
twoWayFlatKey$ = this.dbxFirebaseDocumentStoreDirective.twoWayFlatKey$;
|
|
4244
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4245
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
4746
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4747
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreTwoWayModelKeySource]", providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective), ngImport: i0 });
|
|
4246
4748
|
}
|
|
4247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4749
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, decorators: [{
|
|
4248
4750
|
type: Directive,
|
|
4249
4751
|
args: [{
|
|
4250
4752
|
selector: '[dbxFirebaseDocumentStoreTwoWayModelKeySource]',
|
|
@@ -4262,10 +4764,10 @@ class DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective {
|
|
|
4262
4764
|
constructor() {
|
|
4263
4765
|
cleanSubscription(this.dbxFirebaseDocumentStoreDirective.store.setId(this.dbxFirebaseDocumentStoreTwoWayKeyProvider.twoWayFlatKey$));
|
|
4264
4766
|
}
|
|
4265
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4266
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
4767
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4768
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]", ngImport: i0 });
|
|
4267
4769
|
}
|
|
4268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4770
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, decorators: [{
|
|
4269
4771
|
type: Directive,
|
|
4270
4772
|
args: [{
|
|
4271
4773
|
selector: '[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]',
|
|
@@ -4273,17 +4775,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
4273
4775
|
}]
|
|
4274
4776
|
}], ctorParameters: () => [] });
|
|
4275
4777
|
|
|
4276
|
-
const importsAndExports
|
|
4778
|
+
const importsAndExports = [DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective];
|
|
4277
4779
|
class DbxFirebaseModelStoreModule {
|
|
4278
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4279
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
4280
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
4780
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4781
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelStoreModule, imports: [DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective], exports: [DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective] });
|
|
4782
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelStoreModule });
|
|
4281
4783
|
}
|
|
4282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4784
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelStoreModule, decorators: [{
|
|
4283
4785
|
type: NgModule,
|
|
4284
4786
|
args: [{
|
|
4285
|
-
imports: importsAndExports
|
|
4286
|
-
exports: importsAndExports
|
|
4787
|
+
imports: importsAndExports,
|
|
4788
|
+
exports: importsAndExports
|
|
4287
4789
|
}]
|
|
4288
4790
|
}] });
|
|
4289
4791
|
|
|
@@ -4353,10 +4855,10 @@ class AbstractDbxFirebaseCollectionStore extends LockSetComponentStore {
|
|
|
4353
4855
|
loadAllResults() {
|
|
4354
4856
|
return this.loader$.pipe(switchMap((x) => x.loadAllResults()));
|
|
4355
4857
|
}
|
|
4356
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4357
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4858
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
4859
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseCollectionStore });
|
|
4358
4860
|
}
|
|
4359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, decorators: [{
|
|
4360
4862
|
type: Injectable
|
|
4361
4863
|
}] });
|
|
4362
4864
|
|
|
@@ -4386,6 +4888,11 @@ function firebaseCollectionStoreCrudFunction(fn) {
|
|
|
4386
4888
|
}
|
|
4387
4889
|
|
|
4388
4890
|
const DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR = 'DOES_NOT_EXIST';
|
|
4891
|
+
/**
|
|
4892
|
+
* Creates a readable error indicating that the requested Firebase model document does not exist.
|
|
4893
|
+
*
|
|
4894
|
+
* @returns A readable error with the 'DOES_NOT_EXIST' code and a descriptive message.
|
|
4895
|
+
*/
|
|
4389
4896
|
function modelDoesNotExistError() {
|
|
4390
4897
|
return readableError(DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, 'The document does not exist.');
|
|
4391
4898
|
}
|
|
@@ -4396,6 +4903,8 @@ function modelDoesNotExistError() {
|
|
|
4396
4903
|
const DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN = new InjectionToken('DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN');
|
|
4397
4904
|
/**
|
|
4398
4905
|
* Provides the DbxFirebaseDocumentStoreContextStore.
|
|
4906
|
+
*
|
|
4907
|
+
* @returns Array of Angular providers that create and register a DbxFirebaseDocumentStoreContextStore.
|
|
4399
4908
|
*/
|
|
4400
4909
|
function provideDbxFirebaseDocumentStoreContextStore() {
|
|
4401
4910
|
return [
|
|
@@ -4415,6 +4924,8 @@ function provideDbxFirebaseDocumentStoreContextStore() {
|
|
|
4415
4924
|
* Links a DbxFirebaseDocumentStore to parent DbxFirebaseDocumentStoreContextStore instances.
|
|
4416
4925
|
*
|
|
4417
4926
|
* This should be called in an Angular injection context.
|
|
4927
|
+
*
|
|
4928
|
+
* @param store - The document store to register with all available parent context stores.
|
|
4418
4929
|
*/
|
|
4419
4930
|
function linkDocumentStoreToParentContextStores(store) {
|
|
4420
4931
|
const contextStores = inject(DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, { optional: true });
|
|
@@ -4547,10 +5058,10 @@ class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
|
|
|
4547
5058
|
clearRefs = this.updater((state) => ({ ...state, id: undefined, key: undefined, ref: undefined }));
|
|
4548
5059
|
setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
|
|
4549
5060
|
setFirestoreCollectionLike = this.updater((state, firestoreCollectionLike) => ({ ...state, firestoreCollectionLike }));
|
|
4550
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4551
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5061
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, deps: [{ token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5062
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseDocumentStore });
|
|
4552
5063
|
}
|
|
4553
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5064
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
|
|
4554
5065
|
type: Injectable
|
|
4555
5066
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4556
5067
|
type: Inject,
|
|
@@ -4596,19 +5107,19 @@ let AbstractRootSingleItemDbxFirebaseDocument = class AbstractRootSingleItemDbxF
|
|
|
4596
5107
|
*
|
|
4597
5108
|
* Ref is set with the FirestoreCollection
|
|
4598
5109
|
*/
|
|
4599
|
-
setId = this.updater((state,
|
|
5110
|
+
setId = this.updater((state, _id) => state);
|
|
4600
5111
|
/**
|
|
4601
5112
|
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
4602
5113
|
*
|
|
4603
5114
|
* Ref is set with the FirestoreCollection
|
|
4604
5115
|
*/
|
|
4605
|
-
setKey = this.updater((state,
|
|
5116
|
+
setKey = this.updater((state, _key) => state);
|
|
4606
5117
|
/**
|
|
4607
5118
|
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
4608
5119
|
*
|
|
4609
5120
|
* Ref is set with the FirestoreCollection
|
|
4610
5121
|
*/
|
|
4611
|
-
setRef = this.updater((state,
|
|
5122
|
+
setRef = this.updater((state, _ref) => state);
|
|
4612
5123
|
clearRefs = this.updater((state) => state);
|
|
4613
5124
|
};
|
|
4614
5125
|
AbstractRootSingleItemDbxFirebaseDocument = __decorate([
|
|
@@ -4619,10 +5130,10 @@ AbstractRootSingleItemDbxFirebaseDocument = __decorate([
|
|
|
4619
5130
|
/**
|
|
4620
5131
|
* Creates a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseCreateFunction result and sets the key of the created value.
|
|
4621
5132
|
*
|
|
4622
|
-
* @param store
|
|
4623
|
-
* @param fn
|
|
5133
|
+
* @param store - The document store to capture the created model's key into.
|
|
5134
|
+
* @param fn - The Firebase create function to wrap.
|
|
4624
5135
|
* @param config - Optional config with an `onResult` callback.
|
|
4625
|
-
* @returns
|
|
5136
|
+
* @returns A function that executes the create and sets the resulting key on the store.
|
|
4626
5137
|
*/
|
|
4627
5138
|
function firebaseDocumentStoreCreateFunction(store, fn, config) {
|
|
4628
5139
|
return (params) => loadingStateFromObs(lazyFrom(() => fn(params).then((result) => {
|
|
@@ -4665,9 +5176,10 @@ function firebaseDocumentStoreReadFunction(store, fn) {
|
|
|
4665
5176
|
*
|
|
4666
5177
|
* The store's current key is always injected into the params of the request.
|
|
4667
5178
|
*
|
|
4668
|
-
* @param store
|
|
4669
|
-
* @param fn
|
|
4670
|
-
* @
|
|
5179
|
+
* @param store - The document store whose current key is injected into the request params.
|
|
5180
|
+
* @param fn - The Firebase update function to wrap.
|
|
5181
|
+
* @param config - Optional config with an `onResult` callback.
|
|
5182
|
+
* @returns A function that executes the update with the store's key injected.
|
|
4671
5183
|
*/
|
|
4672
5184
|
function firebaseDocumentStoreUpdateFunction(store, fn, config) {
|
|
4673
5185
|
return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn({
|
|
@@ -4698,6 +5210,12 @@ function firebaseDocumentStoreDeleteFunction(store, fn) {
|
|
|
4698
5210
|
})), shareReplay(1)));
|
|
4699
5211
|
}
|
|
4700
5212
|
|
|
5213
|
+
/**
|
|
5214
|
+
* Creates a component store effect that links a parent document store to a subcollection store, propagating the parent document and lock set.
|
|
5215
|
+
*
|
|
5216
|
+
* @param store - The subcollection component store to connect to a parent store.
|
|
5217
|
+
* @returns An effect function that accepts an observable parent document store and manages the subscription lifecycle.
|
|
5218
|
+
*/
|
|
4701
5219
|
function setParentStoreEffect(store) {
|
|
4702
5220
|
return store.effect((input) => {
|
|
4703
5221
|
return input.pipe(map((parentStore) => {
|
|
@@ -4777,10 +5295,10 @@ class AbstractDbxFirebaseCollectionWithParentStore extends AbstractDbxFirebaseCo
|
|
|
4777
5295
|
*/
|
|
4778
5296
|
_setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
|
|
4779
5297
|
_setParent = this._setParentDocument;
|
|
4780
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4781
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5298
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, deps: [{ token: null, optional: true }, { token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5299
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore });
|
|
4782
5300
|
}
|
|
4783
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, decorators: [{
|
|
4784
5302
|
type: Injectable
|
|
4785
5303
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4786
5304
|
type: Inject,
|
|
@@ -4838,10 +5356,10 @@ class AbstractDbxFirebaseDocumentWithParentStore extends AbstractDbxFirebaseDocu
|
|
|
4838
5356
|
* Sets the parent on the current state.
|
|
4839
5357
|
*/
|
|
4840
5358
|
_setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
|
|
4841
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4842
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5359
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
5360
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore });
|
|
4843
5361
|
}
|
|
4844
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, decorators: [{
|
|
4845
5363
|
type: Injectable
|
|
4846
5364
|
}] });
|
|
4847
5365
|
/**
|
|
@@ -4870,19 +5388,19 @@ class AbstractSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentW
|
|
|
4870
5388
|
*
|
|
4871
5389
|
* Ref is set with the FirestoreCollection
|
|
4872
5390
|
*/
|
|
4873
|
-
setId = this.updater((state,
|
|
5391
|
+
setId = this.updater((state, _id) => state);
|
|
4874
5392
|
/**
|
|
4875
5393
|
* Does nothing on a AbstractSingleItemDbxFirebaseDocument.
|
|
4876
5394
|
*
|
|
4877
5395
|
* Ref is set with the FirestoreCollection
|
|
4878
5396
|
*/
|
|
4879
|
-
setKey = this.updater((state,
|
|
5397
|
+
setKey = this.updater((state, _key) => state);
|
|
4880
5398
|
/**
|
|
4881
5399
|
* Does nothing on a AbstractSingleItemDbxFirebaseDocument.
|
|
4882
5400
|
*
|
|
4883
5401
|
* Ref is set with the FirestoreCollection
|
|
4884
5402
|
*/
|
|
4885
|
-
setRef = this.updater((state,
|
|
5403
|
+
setRef = this.updater((state, _ref) => state);
|
|
4886
5404
|
clearRefs = this.updater((state) => state);
|
|
4887
5405
|
}
|
|
4888
5406
|
|
|
@@ -4890,8 +5408,9 @@ class AbstractSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentW
|
|
|
4890
5408
|
* Abstract directive that contains a DbxFirebaseCollectionWithParentStore and provides an interface for communicating with other directives.
|
|
4891
5409
|
*/
|
|
4892
5410
|
class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
4893
|
-
sourceMode = model(undefined, ...(ngDevMode ? [{ debugName: "sourceMode" }] : []));
|
|
5411
|
+
sourceMode = model(undefined, ...(ngDevMode ? [{ debugName: "sourceMode" }] : /* istanbul ignore next */ []));
|
|
4894
5412
|
_sourceMode$ = toObservable(this.sourceMode).pipe(skipInitialMaybe());
|
|
5413
|
+
// eslint-disable-next-line @angular-eslint/prefer-inject -- abstract class receives store from subclass constructors
|
|
4895
5414
|
constructor(store) {
|
|
4896
5415
|
super(store);
|
|
4897
5416
|
// sync inputs to store any time the store changes
|
|
@@ -4903,10 +5422,10 @@ class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCollectio
|
|
|
4903
5422
|
setSourceMode(sourceMode) {
|
|
4904
5423
|
this.sourceMode.set(sourceMode);
|
|
4905
5424
|
}
|
|
4906
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4907
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
5425
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
5426
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseCollectionWithParentStoreDirective, isStandalone: true, inputs: { sourceMode: { classPropertyName: "sourceMode", publicName: "sourceMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourceMode: "sourceModeChange" }, usesInheritance: true, ngImport: i0 });
|
|
4908
5427
|
}
|
|
4909
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5428
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, decorators: [{
|
|
4910
5429
|
type: Directive
|
|
4911
5430
|
}], ctorParameters: () => [{ type: undefined }], propDecorators: { sourceMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceMode", required: false }] }, { type: i0.Output, args: ["sourceModeChange"] }] } });
|
|
4912
5431
|
function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType, storeType) {
|
|
@@ -4924,10 +5443,10 @@ function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType, storeT
|
|
|
4924
5443
|
* Directive that provides a DbxFirebaseDocumentStoreContextStore.
|
|
4925
5444
|
*/
|
|
4926
5445
|
class DbxFirebaseDocumentStoreContextStoreDirective {
|
|
4927
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4928
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
5446
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5447
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseDocumentStoreContextStoreDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreContextStore]", providers: provideDbxFirebaseDocumentStoreContextStore(), ngImport: i0 });
|
|
4929
5448
|
}
|
|
4930
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseDocumentStoreContextStoreDirective, decorators: [{
|
|
4931
5450
|
type: Directive,
|
|
4932
5451
|
args: [{
|
|
4933
5452
|
selector: '[dbxFirebaseDocumentStoreContextStore]',
|
|
@@ -4936,27 +5455,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
4936
5455
|
}]
|
|
4937
5456
|
}] });
|
|
4938
5457
|
|
|
4939
|
-
/**
|
|
5458
|
+
/**
|
|
5459
|
+
* Collection store for querying SystemState documents.
|
|
5460
|
+
*/
|
|
4940
5461
|
class SystemStateCollectionStore extends AbstractDbxFirebaseCollectionStore {
|
|
4941
5462
|
constructor() {
|
|
4942
5463
|
super({ firestoreCollection: inject(SystemStateFirestoreCollections).systemStateCollection });
|
|
4943
5464
|
}
|
|
4944
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4945
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5465
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: SystemStateCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5466
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: SystemStateCollectionStore });
|
|
4946
5467
|
}
|
|
4947
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5468
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: SystemStateCollectionStore, decorators: [{
|
|
4948
5469
|
type: Injectable
|
|
4949
5470
|
}], ctorParameters: () => [] });
|
|
4950
5471
|
|
|
4951
|
-
/**
|
|
5472
|
+
/**
|
|
5473
|
+
* Directive providing a {@link SystemStateCollectionStore} for querying system state documents.
|
|
5474
|
+
*/
|
|
4952
5475
|
class DbxFirebaseSystemStateCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
4953
5476
|
constructor() {
|
|
4954
5477
|
super(inject(SystemStateCollectionStore));
|
|
4955
5478
|
}
|
|
4956
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4957
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
5479
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseSystemStateCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5480
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseSystemStateCollectionStoreDirective, isStandalone: true, selector: "[dbxFirebaseSystemStateCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseSystemStateCollectionStoreDirective, SystemStateCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
4958
5481
|
}
|
|
4959
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseSystemStateCollectionStoreDirective, decorators: [{
|
|
4960
5483
|
type: Directive,
|
|
4961
5484
|
args: [{
|
|
4962
5485
|
selector: '[dbxFirebaseSystemStateCollection]',
|
|
@@ -4964,15 +5487,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
4964
5487
|
}]
|
|
4965
5488
|
}], ctorParameters: () => [] });
|
|
4966
5489
|
|
|
4967
|
-
/**
|
|
5490
|
+
/**
|
|
5491
|
+
* Document store for a single typed SystemState document.
|
|
5492
|
+
*/
|
|
4968
5493
|
class SystemStateDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
4969
5494
|
constructor() {
|
|
4970
5495
|
super({ firestoreCollection: inject(SystemStateFirestoreCollections).systemStateCollection });
|
|
4971
5496
|
}
|
|
4972
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4973
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5497
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: SystemStateDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5498
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: SystemStateDocumentStore });
|
|
4974
5499
|
}
|
|
4975
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5500
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: SystemStateDocumentStore, decorators: [{
|
|
4976
5501
|
type: Injectable
|
|
4977
5502
|
}], ctorParameters: () => [] });
|
|
4978
5503
|
|
|
@@ -4987,30 +5512,28 @@ class AbstractSystemStateDocumentStoreAccessor {
|
|
|
4987
5512
|
exists$ = this.systemStateDocumentStore.exists$;
|
|
4988
5513
|
doesNotExist$ = this.systemStateDocumentStore.doesNotExist$;
|
|
4989
5514
|
type$ = this.systemStateDocumentStore.id$;
|
|
5515
|
+
// eslint-disable-next-line @angular-eslint/prefer-inject -- abstract class receives type identifier from subclass constructors
|
|
4990
5516
|
constructor(type) {
|
|
4991
5517
|
this.systemStateDocumentStore.setId(type);
|
|
4992
5518
|
}
|
|
4993
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4994
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5519
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractSystemStateDocumentStoreAccessor, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
5520
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractSystemStateDocumentStoreAccessor });
|
|
4995
5521
|
}
|
|
4996
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractSystemStateDocumentStoreAccessor, decorators: [{
|
|
4997
5523
|
type: Injectable
|
|
4998
|
-
}], ctorParameters: () => [{ type: undefined
|
|
4999
|
-
type: Inject,
|
|
5000
|
-
args: [null]
|
|
5001
|
-
}, {
|
|
5002
|
-
type: Optional
|
|
5003
|
-
}] }] });
|
|
5524
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
5004
5525
|
|
|
5005
|
-
/**
|
|
5526
|
+
/**
|
|
5527
|
+
* Directive providing a {@link SystemStateDocumentStore} for accessing a single system state document.
|
|
5528
|
+
*/
|
|
5006
5529
|
class DbxFirebaseSystemStateDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
|
|
5007
5530
|
constructor() {
|
|
5008
5531
|
super(inject((SystemStateDocumentStore)));
|
|
5009
5532
|
}
|
|
5010
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5011
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
5533
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseSystemStateDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5534
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseSystemStateDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseSystemStateDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseSystemStateDocumentStoreDirective, SystemStateDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
5012
5535
|
}
|
|
5013
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5536
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseSystemStateDocumentStoreDirective, decorators: [{
|
|
5014
5537
|
type: Directive,
|
|
5015
5538
|
args: [{
|
|
5016
5539
|
selector: '[dbxFirebaseSystemStateDocument]',
|
|
@@ -5019,11 +5542,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5019
5542
|
}], ctorParameters: () => [] });
|
|
5020
5543
|
|
|
5021
5544
|
class DbxFirebaseModelModule {
|
|
5022
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5023
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
5024
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
5545
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5546
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelModule, exports: [DbxFirebaseModelStoreModule] });
|
|
5547
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelModule, imports: [DbxFirebaseModelStoreModule] });
|
|
5025
5548
|
}
|
|
5026
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5549
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModelModule, decorators: [{
|
|
5027
5550
|
type: NgModule,
|
|
5028
5551
|
args: [{
|
|
5029
5552
|
exports: [DbxFirebaseModelStoreModule]
|
|
@@ -5048,14 +5571,16 @@ class DbxFirebaseNotificationTemplateService {
|
|
|
5048
5571
|
date
|
|
5049
5572
|
};
|
|
5050
5573
|
}
|
|
5051
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5052
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5574
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5575
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationTemplateService });
|
|
5053
5576
|
}
|
|
5054
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5577
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationTemplateService, decorators: [{
|
|
5055
5578
|
type: Injectable
|
|
5056
5579
|
}] });
|
|
5057
5580
|
|
|
5058
|
-
/**
|
|
5581
|
+
/**
|
|
5582
|
+
* Selection list wrapper for notification items with view-only default selection mode.
|
|
5583
|
+
*/
|
|
5059
5584
|
class DbxFirebaseNotificationItemListComponent extends AbstractDbxSelectionListWrapperDirective {
|
|
5060
5585
|
constructor() {
|
|
5061
5586
|
super({
|
|
@@ -5063,10 +5588,10 @@ class DbxFirebaseNotificationItemListComponent extends AbstractDbxSelectionListW
|
|
|
5063
5588
|
defaultSelectionMode: 'view'
|
|
5064
5589
|
});
|
|
5065
5590
|
}
|
|
5066
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5067
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5591
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5592
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationItemListComponent, isStandalone: true, selector: "dbx-firebase-notificationitem-list", providers: provideDbxListViewWrapper(DbxFirebaseNotificationItemListComponent), usesInheritance: true, ngImport: i0, template: "\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [hasMore]=\"hasMore()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\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 <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n <ng-content end select=\"[end]\"></ng-content>\n </dbx-list>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxListWrapperComponentImportsModule }, { kind: "component", type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state", "config", "disabled", "selectionMode", "hasMore"], outputs: ["contentScrolled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5068
5593
|
}
|
|
5069
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemListComponent, decorators: [{
|
|
5070
5595
|
type: Component,
|
|
5071
5596
|
args: [{
|
|
5072
5597
|
selector: 'dbx-firebase-notificationitem-list',
|
|
@@ -5077,16 +5602,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5077
5602
|
standalone: true
|
|
5078
5603
|
}]
|
|
5079
5604
|
}], ctorParameters: () => [] });
|
|
5080
|
-
/**
|
|
5605
|
+
/**
|
|
5606
|
+
* List view component that renders notification items using the selection list pattern.
|
|
5607
|
+
*/
|
|
5081
5608
|
class DbxFirebaseNotificationItemListViewComponent extends AbstractDbxSelectionListViewDirective {
|
|
5082
5609
|
config = {
|
|
5083
5610
|
componentClass: DbxFirebaseNotificationItemListViewItemComponent,
|
|
5084
5611
|
mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, icon: y.icon, itemValue: y })))
|
|
5085
5612
|
};
|
|
5086
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5087
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5613
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5614
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationItemListViewComponent, isStandalone: true, selector: "dbx-firebase-notificationitem-list-view", providers: provideDbxListView(DbxFirebaseNotificationItemListViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxSelectionValueListViewComponentImportsModule }, { kind: "component", type: i1$1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5088
5615
|
}
|
|
5089
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemListViewComponent, decorators: [{
|
|
5090
5617
|
type: Component,
|
|
5091
5618
|
args: [{
|
|
5092
5619
|
selector: 'dbx-firebase-notificationitem-list-view',
|
|
@@ -5097,7 +5624,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5097
5624
|
standalone: true
|
|
5098
5625
|
}]
|
|
5099
5626
|
}] });
|
|
5100
|
-
/**
|
|
5627
|
+
/**
|
|
5628
|
+
* Individual list view item component rendering a notification's subject, message, and date.
|
|
5629
|
+
*/
|
|
5101
5630
|
class DbxFirebaseNotificationItemListViewItemComponent extends AbstractDbxValueListViewItemComponent {
|
|
5102
5631
|
dbxFirebaseNotificationTemplateService = inject(DbxFirebaseNotificationTemplateService);
|
|
5103
5632
|
pairGetter = cachedGetter(() => this.dbxFirebaseNotificationTemplateService.notificationItemSubjectMessagePairForNotificationSummaryItem(this.itemValue));
|
|
@@ -5110,8 +5639,8 @@ class DbxFirebaseNotificationItemListViewItemComponent extends AbstractDbxValueL
|
|
|
5110
5639
|
get date() {
|
|
5111
5640
|
return this.pairGetter().date;
|
|
5112
5641
|
}
|
|
5113
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5114
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5642
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5643
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationItemListViewItemComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
5115
5644
|
<div class="dbx-list-item-padded dbx-list-two-line-item dbx-firebase-notificationitem-list-view-item">
|
|
5116
5645
|
<div class="item-left">
|
|
5117
5646
|
<span class="notificationitem-subject">{{ subject }}</span>
|
|
@@ -5121,7 +5650,7 @@ class DbxFirebaseNotificationItemListViewItemComponent extends AbstractDbxValueL
|
|
|
5121
5650
|
</div>
|
|
5122
5651
|
`, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: CutTextPipe, name: "cutText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5123
5652
|
}
|
|
5124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5653
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemListViewItemComponent, decorators: [{
|
|
5125
5654
|
type: Component,
|
|
5126
5655
|
args: [{
|
|
5127
5656
|
template: `
|
|
@@ -5139,15 +5668,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5139
5668
|
}]
|
|
5140
5669
|
}] });
|
|
5141
5670
|
|
|
5142
|
-
/**
|
|
5671
|
+
/**
|
|
5672
|
+
* Presentational component for notification item content, displaying subject, message, and date.
|
|
5673
|
+
*/
|
|
5143
5674
|
class DbxFirebaseNotificationItemContentComponent {
|
|
5144
|
-
subject = input(...(ngDevMode ? [undefined, { debugName: "subject" }] : []));
|
|
5145
|
-
message = input(...(ngDevMode ? [undefined, { debugName: "message" }] : []));
|
|
5146
|
-
date = input(...(ngDevMode ? [undefined, { debugName: "date" }] : []));
|
|
5147
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5148
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
5675
|
+
subject = input(...(ngDevMode ? [undefined, { debugName: "subject" }] : /* istanbul ignore next */ []));
|
|
5676
|
+
message = input(...(ngDevMode ? [undefined, { debugName: "message" }] : /* istanbul ignore next */ []));
|
|
5677
|
+
date = input(...(ngDevMode ? [undefined, { debugName: "date" }] : /* istanbul ignore next */ []));
|
|
5678
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5679
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseNotificationItemContentComponent, isStandalone: true, selector: "dbx-firebase-notificationitem-content", inputs: { subject: { classPropertyName: "subject", publicName: "subject", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-firebase-notificationitem-content\">\n <div class=\"notificationitem-header dbx-pb2\">\n @if (subject()) {\n <div class=\"notificationitem-subject dbx-pb1\">{{ subject() }}</div>\n }\n <ng-content select=\"[header]\"></ng-content>\n @if (date()) {\n <div class=\"notificationitem-date dbx-label dbx-small\">{{ date() | date: 'medium' }}</div>\n }\n </div>\n <ng-content select=\"[premessage]\"></ng-content>\n <div class=\"notificationitem-message\">{{ message() }}</div>\n <ng-content></ng-content>\n</div>\n", styles: [".dbx-firebase-notificationitem-content .notificationitem-subject{font-size:1.25em}\n"], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5149
5680
|
}
|
|
5150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5681
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemContentComponent, decorators: [{
|
|
5151
5682
|
type: Component,
|
|
5152
5683
|
args: [{ selector: 'dbx-firebase-notificationitem-content', imports: [DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-firebase-notificationitem-content\">\n <div class=\"notificationitem-header dbx-pb2\">\n @if (subject()) {\n <div class=\"notificationitem-subject dbx-pb1\">{{ subject() }}</div>\n }\n <ng-content select=\"[header]\"></ng-content>\n @if (date()) {\n <div class=\"notificationitem-date dbx-label dbx-small\">{{ date() | date: 'medium' }}</div>\n }\n </div>\n <ng-content select=\"[premessage]\"></ng-content>\n <div class=\"notificationitem-message\">{{ message() }}</div>\n <ng-content></ng-content>\n</div>\n", styles: [".dbx-firebase-notificationitem-content .notificationitem-subject{font-size:1.25em}\n"] }]
|
|
5153
5684
|
}], propDecorators: { subject: [{ type: i0.Input, args: [{ isSignal: true, alias: "subject", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: false }] }] } });
|
|
@@ -5159,6 +5690,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5159
5690
|
*/
|
|
5160
5691
|
const FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX = 'dbxFirebaseNotificationItem';
|
|
5161
5692
|
const DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE = `${FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX}Default`;
|
|
5693
|
+
/**
|
|
5694
|
+
* Derives the widget type string for a given notification template type by prepending the standard prefix.
|
|
5695
|
+
*
|
|
5696
|
+
* @param notificationTemplateType - The notification template type to generate a widget type for.
|
|
5697
|
+
* @returns The prefixed widget type string.
|
|
5698
|
+
*/
|
|
5162
5699
|
function dbxWidgetTypeForNotificationTemplateType(notificationTemplateType) {
|
|
5163
5700
|
return `${FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX}-${notificationTemplateType}`;
|
|
5164
5701
|
}
|
|
@@ -5173,8 +5710,9 @@ class DbxFirebaseNotificationItemWidgetService {
|
|
|
5173
5710
|
/**
|
|
5174
5711
|
* Used to register a item widget. If widget for the given type is already registered, this will override it by default.
|
|
5175
5712
|
*
|
|
5176
|
-
* @param provider
|
|
5177
|
-
* @param override
|
|
5713
|
+
* @param provider - The notification item widget entry to register.
|
|
5714
|
+
* @param override - Whether to override an existing widget for the same notification template type. Defaults to true.
|
|
5715
|
+
* @returns True if the widget was registered, false if it already existed and override was false or the template type was unknown.
|
|
5178
5716
|
*/
|
|
5179
5717
|
register(provider, override = true) {
|
|
5180
5718
|
const { componentClass, notificationTemplateType } = provider;
|
|
@@ -5206,10 +5744,10 @@ class DbxFirebaseNotificationItemWidgetService {
|
|
|
5206
5744
|
type: DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE
|
|
5207
5745
|
}, override);
|
|
5208
5746
|
}
|
|
5209
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5210
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5747
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5748
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemWidgetService });
|
|
5211
5749
|
}
|
|
5212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5750
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemWidgetService, decorators: [{
|
|
5213
5751
|
type: Injectable
|
|
5214
5752
|
}] });
|
|
5215
5753
|
|
|
@@ -5218,7 +5756,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5218
5756
|
* display component based on the notification's template type.
|
|
5219
5757
|
*/
|
|
5220
5758
|
class DbxFirebaseNotificationItemViewComponent {
|
|
5221
|
-
item = input(...(ngDevMode ? [undefined, { debugName: "item" }] : []));
|
|
5759
|
+
item = input(...(ngDevMode ? [undefined, { debugName: "item" }] : /* istanbul ignore next */ []));
|
|
5222
5760
|
configSignal = computed(() => {
|
|
5223
5761
|
const data = this.item();
|
|
5224
5762
|
let config = undefined;
|
|
@@ -5231,13 +5769,13 @@ class DbxFirebaseNotificationItemViewComponent {
|
|
|
5231
5769
|
};
|
|
5232
5770
|
}
|
|
5233
5771
|
return config;
|
|
5234
|
-
}, ...(ngDevMode ? [{ debugName: "configSignal" }] : []));
|
|
5235
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5236
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
5772
|
+
}, ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
|
|
5773
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5774
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseNotificationItemViewComponent, isStandalone: true, selector: "dbx-firebase-notificationitem-view", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
5237
5775
|
<dbx-widget-view [config]="configSignal()"></dbx-widget-view>
|
|
5238
5776
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxWidgetViewComponent, selector: "dbx-widget-view", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5239
5777
|
}
|
|
5240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5778
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemViewComponent, decorators: [{
|
|
5241
5779
|
type: Component,
|
|
5242
5780
|
args: [{
|
|
5243
5781
|
selector: 'dbx-firebase-notificationitem-view',
|
|
@@ -5259,14 +5797,16 @@ class AbstractDbxFirebaseNotificationItemWidgetComponent extends AbstractDbxWidg
|
|
|
5259
5797
|
get notificationItem() {
|
|
5260
5798
|
return this.data;
|
|
5261
5799
|
}
|
|
5262
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5263
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
5800
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseNotificationItemWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
5801
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: AbstractDbxFirebaseNotificationItemWidgetComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
|
|
5264
5802
|
}
|
|
5265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5803
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: AbstractDbxFirebaseNotificationItemWidgetComponent, decorators: [{
|
|
5266
5804
|
type: Directive
|
|
5267
5805
|
}] });
|
|
5268
5806
|
|
|
5269
|
-
/**
|
|
5807
|
+
/**
|
|
5808
|
+
* Default notification item view component that renders subject, message, and creation date.
|
|
5809
|
+
*/
|
|
5270
5810
|
class DbxFirebaseNotificationItemDefaultViewComponent extends AbstractDbxFirebaseNotificationItemWidgetComponent {
|
|
5271
5811
|
get subject() {
|
|
5272
5812
|
return this.notificationItem.s;
|
|
@@ -5277,10 +5817,10 @@ class DbxFirebaseNotificationItemDefaultViewComponent extends AbstractDbxFirebas
|
|
|
5277
5817
|
get date() {
|
|
5278
5818
|
return this.notificationItem.cat;
|
|
5279
5819
|
}
|
|
5280
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5281
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5820
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemDefaultViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5821
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationItemDefaultViewComponent, isStandalone: true, selector: "dbx-firebase-notificationitem-view-default", usesInheritance: true, ngImport: i0, template: '<dbx-firebase-notificationitem-content [subject]="subject" [message]="message" [date]="date"></dbx-firebase-notificationitem-content>', isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseNotificationItemContentComponent, selector: "dbx-firebase-notificationitem-content", inputs: ["subject", "message", "date"] }] });
|
|
5282
5822
|
}
|
|
5283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5823
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemDefaultViewComponent, decorators: [{
|
|
5284
5824
|
type: Component,
|
|
5285
5825
|
args: [{
|
|
5286
5826
|
selector: 'dbx-firebase-notificationitem-view-default',
|
|
@@ -5312,10 +5852,10 @@ class DbxFirebaseNotificationItemStorePopoverComponent extends AbstractPopoverDi
|
|
|
5312
5852
|
emptyText = this.params.header ?? 'There are no notifications.';
|
|
5313
5853
|
makeNotificationItemAnchor = this.params.makeNotificationItemAnchor;
|
|
5314
5854
|
notificationItemsLoadingState$ = this.params.notificationItemsLoadingState$;
|
|
5315
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5316
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5855
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5856
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationItemStorePopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-notificationitem-list [state]=\"notificationItemsLoadingState$\" dbxListItemModifier [dbxListItemAnchorModifier]=\"makeNotificationItemAnchor\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-notificationitem-list>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "ngmodule", type: DbxPopoverInteractionModule }, { kind: "component", type: i1$1.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: i1$1.DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: i1$1.DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "ngmodule", type: DbxListModifierModule }, { kind: "directive", type: i1$1.DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "component", type: DbxFirebaseNotificationItemListComponent, selector: "dbx-firebase-notificationitem-list" }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }, { kind: "directive", type: DbxListItemAnchorModifierDirective, selector: "[dbxListItemAnchorModifier]", inputs: ["dbxListItemAnchorModifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5317
5857
|
}
|
|
5318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5858
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverComponent, decorators: [{
|
|
5319
5859
|
type: Component,
|
|
5320
5860
|
args: [{ imports: [DbxPopoverInteractionModule, DbxListModifierModule, DbxFirebaseNotificationItemListComponent, DbxListEmptyContentComponent, DbxListItemAnchorModifierDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-notificationitem-list [state]=\"notificationItemsLoadingState$\" dbxListItemModifier [dbxListItemAnchorModifier]=\"makeNotificationItemAnchor\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-notificationitem-list>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
|
|
5321
5861
|
}] });
|
|
@@ -5339,18 +5879,18 @@ class DbxFirebaseNotificationItemStore extends ComponentStore {
|
|
|
5339
5879
|
// MARK: State Changes
|
|
5340
5880
|
setItems = this.updater((state, items) => ({ ...state, items }));
|
|
5341
5881
|
setSelectedId = this.updater((state, selectedId) => ({ ...state, selectedId }));
|
|
5342
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5343
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5882
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5883
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStore });
|
|
5344
5884
|
}
|
|
5345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5885
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStore, decorators: [{
|
|
5346
5886
|
type: Injectable
|
|
5347
5887
|
}], ctorParameters: () => [] });
|
|
5348
5888
|
|
|
5349
5889
|
class DbxFirebaseNotificationItemStorePopoverButtonComponent extends AbstractPopoverRefDirective {
|
|
5350
5890
|
_dbxPopoverService = inject(DbxPopoverService);
|
|
5351
5891
|
_dbxFirebaseNotificationItemStore = inject(DbxFirebaseNotificationItemStore, { optional: true });
|
|
5352
|
-
buttonElement = viewChild('button', { ...(ngDevMode ? { debugName: "buttonElement" } : {}), read: ElementRef });
|
|
5353
|
-
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
|
|
5892
|
+
buttonElement = viewChild('button', { ...(ngDevMode ? { debugName: "buttonElement" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
5893
|
+
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
5354
5894
|
showNotificationsPopover() {
|
|
5355
5895
|
const origin = this.buttonElement()?.nativeElement;
|
|
5356
5896
|
this.showPopover(origin);
|
|
@@ -5370,12 +5910,12 @@ class DbxFirebaseNotificationItemStorePopoverButtonComponent extends AbstractPop
|
|
|
5370
5910
|
...config
|
|
5371
5911
|
});
|
|
5372
5912
|
}
|
|
5373
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5374
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.
|
|
5913
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5914
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.3", type: DbxFirebaseNotificationItemStorePopoverButtonComponent, isStandalone: true, selector: "dbx-firebase-notification-item-store-popover-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
5375
5915
|
<dbx-icon-button #button (buttonClick)="showNotificationsPopover()" icon="notifications"></dbx-icon-button>
|
|
5376
5916
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5377
5917
|
}
|
|
5378
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverButtonComponent, decorators: [{
|
|
5379
5919
|
type: Component,
|
|
5380
5920
|
args: [{
|
|
5381
5921
|
selector: 'dbx-firebase-notification-item-store-popover-button',
|
|
@@ -5388,7 +5928,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5388
5928
|
}]
|
|
5389
5929
|
}], propDecorators: { buttonElement: [{ type: i0.ViewChild, args: ['button', { ...{ read: ElementRef }, isSignal: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }] } });
|
|
5390
5930
|
|
|
5391
|
-
/**
|
|
5931
|
+
/**
|
|
5932
|
+
* Document store for a single NotificationBox, providing derived observables for creation date, recipients, and update functions.
|
|
5933
|
+
*/
|
|
5392
5934
|
class NotificationBoxDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
5393
5935
|
notificationFunctions = inject(NotificationFunctions);
|
|
5394
5936
|
constructor() {
|
|
@@ -5398,14 +5940,16 @@ class NotificationBoxDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
5398
5940
|
recipients$ = this.data$.pipe(map((x) => x.r), shareReplay(1));
|
|
5399
5941
|
updateNotificationBox = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationBox.updateNotificationBox.update);
|
|
5400
5942
|
updateNotificationBoxRecipient = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationBox.updateNotificationBox.recipient);
|
|
5401
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5402
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5943
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationBoxDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5944
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationBoxDocumentStore });
|
|
5403
5945
|
}
|
|
5404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationBoxDocumentStore, decorators: [{
|
|
5405
5947
|
type: Injectable
|
|
5406
5948
|
}], ctorParameters: () => [] });
|
|
5407
5949
|
|
|
5408
|
-
/**
|
|
5950
|
+
/**
|
|
5951
|
+
* Document store for a single Notification, providing derived observables for creation date, send state, and update functions.
|
|
5952
|
+
*/
|
|
5409
5953
|
class NotificationDocumentStore extends AbstractDbxFirebaseDocumentWithParentStore {
|
|
5410
5954
|
notificationFunctions = inject(NotificationFunctions);
|
|
5411
5955
|
constructor() {
|
|
@@ -5421,22 +5965,24 @@ class NotificationDocumentStore extends AbstractDbxFirebaseDocumentWithParentSto
|
|
|
5421
5965
|
sendAttemptsCount$ = this.data$.pipe(map((x) => x.a), distinctUntilChanged(), shareReplay(1));
|
|
5422
5966
|
isUnique$ = this.data$.pipe(map((x) => x.ut), distinctUntilChanged(), shareReplay(1));
|
|
5423
5967
|
sendNotification = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notification.updateNotification.send);
|
|
5424
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5425
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5968
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5969
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationDocumentStore });
|
|
5426
5970
|
}
|
|
5427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5971
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationDocumentStore, decorators: [{
|
|
5428
5972
|
type: Injectable
|
|
5429
5973
|
}], ctorParameters: () => [] });
|
|
5430
5974
|
|
|
5431
|
-
/**
|
|
5975
|
+
/**
|
|
5976
|
+
* Directive providing a {@link NotificationDocumentStore} for accessing a single notification document.
|
|
5977
|
+
*/
|
|
5432
5978
|
class DbxFirebaseNotificationDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
|
|
5433
5979
|
constructor() {
|
|
5434
5980
|
super(inject(NotificationDocumentStore));
|
|
5435
5981
|
}
|
|
5436
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5437
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
5982
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5983
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationDocumentStoreDirective, NotificationDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
5438
5984
|
}
|
|
5439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5985
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationDocumentStoreDirective, decorators: [{
|
|
5440
5986
|
type: Directive,
|
|
5441
5987
|
args: [{
|
|
5442
5988
|
selector: '[dbxFirebaseNotificationDocument]',
|
|
@@ -5445,7 +5991,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5445
5991
|
}]
|
|
5446
5992
|
}], ctorParameters: () => [] });
|
|
5447
5993
|
|
|
5448
|
-
/**
|
|
5994
|
+
/**
|
|
5995
|
+
* Collection store for Notification documents, scoped to a parent NotificationBox when available.
|
|
5996
|
+
*/
|
|
5449
5997
|
class NotificationCollectionStore extends AbstractDbxFirebaseCollectionWithParentStore {
|
|
5450
5998
|
constructor() {
|
|
5451
5999
|
super({ collectionFactory: inject(NotificationFirestoreCollections).notificationCollectionFactory, collectionGroup: inject(NotificationFirestoreCollections).notificationCollectionGroup });
|
|
@@ -5454,22 +6002,24 @@ class NotificationCollectionStore extends AbstractDbxFirebaseCollectionWithParen
|
|
|
5454
6002
|
this.setParentStore(parent);
|
|
5455
6003
|
}
|
|
5456
6004
|
}
|
|
5457
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5458
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6005
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6006
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationCollectionStore });
|
|
5459
6007
|
}
|
|
5460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6008
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationCollectionStore, decorators: [{
|
|
5461
6009
|
type: Injectable
|
|
5462
6010
|
}], ctorParameters: () => [] });
|
|
5463
6011
|
|
|
5464
|
-
/**
|
|
6012
|
+
/**
|
|
6013
|
+
* Directive providing a {@link NotificationCollectionStore} for querying notifications within a template.
|
|
6014
|
+
*/
|
|
5465
6015
|
class DbxFirebaseNotificationCollectionStoreDirective extends DbxFirebaseCollectionWithParentStoreDirective {
|
|
5466
6016
|
constructor() {
|
|
5467
6017
|
super(inject(NotificationCollectionStore));
|
|
5468
6018
|
}
|
|
5469
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5470
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6019
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6020
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationCollectionStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationCollection]", providers: provideDbxFirebaseCollectionWithParentStoreDirective(DbxFirebaseNotificationCollectionStoreDirective, NotificationCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
5471
6021
|
}
|
|
5472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6022
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationCollectionStoreDirective, decorators: [{
|
|
5473
6023
|
type: Directive,
|
|
5474
6024
|
args: [{
|
|
5475
6025
|
selector: '[dbxFirebaseNotificationCollection]',
|
|
@@ -5478,15 +6028,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5478
6028
|
}]
|
|
5479
6029
|
}], ctorParameters: () => [] });
|
|
5480
6030
|
|
|
5481
|
-
/**
|
|
6031
|
+
/**
|
|
6032
|
+
* Directive providing a {@link NotificationBoxDocumentStore} for accessing a single notification box document.
|
|
6033
|
+
*/
|
|
5482
6034
|
class DbxFirebaseNotificationBoxDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
|
|
5483
6035
|
constructor() {
|
|
5484
6036
|
super(inject(NotificationBoxDocumentStore));
|
|
5485
6037
|
}
|
|
5486
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5487
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6038
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationBoxDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6039
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationBoxDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationBoxDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationBoxDocumentStoreDirective, NotificationBoxDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
5488
6040
|
}
|
|
5489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6041
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationBoxDocumentStoreDirective, decorators: [{
|
|
5490
6042
|
type: Directive,
|
|
5491
6043
|
args: [{
|
|
5492
6044
|
selector: '[dbxFirebaseNotificationBoxDocument]',
|
|
@@ -5495,27 +6047,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5495
6047
|
}]
|
|
5496
6048
|
}], ctorParameters: () => [] });
|
|
5497
6049
|
|
|
5498
|
-
/**
|
|
6050
|
+
/**
|
|
6051
|
+
* Collection store for querying NotificationBox documents.
|
|
6052
|
+
*/
|
|
5499
6053
|
class NotificationBoxCollectionStore extends AbstractDbxFirebaseCollectionStore {
|
|
5500
6054
|
constructor() {
|
|
5501
6055
|
super({ firestoreCollection: inject(NotificationFirestoreCollections).notificationBoxCollection });
|
|
5502
6056
|
}
|
|
5503
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5504
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6057
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationBoxCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6058
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationBoxCollectionStore });
|
|
5505
6059
|
}
|
|
5506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationBoxCollectionStore, decorators: [{
|
|
5507
6061
|
type: Injectable
|
|
5508
6062
|
}], ctorParameters: () => [] });
|
|
5509
6063
|
|
|
5510
|
-
/**
|
|
6064
|
+
/**
|
|
6065
|
+
* Directive providing a {@link NotificationBoxCollectionStore} for querying notification boxes.
|
|
6066
|
+
*/
|
|
5511
6067
|
class DbxFirebaseNotificationBoxCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
5512
6068
|
constructor() {
|
|
5513
6069
|
super(inject(NotificationBoxCollectionStore));
|
|
5514
6070
|
}
|
|
5515
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5516
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6071
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationBoxCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6072
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationBoxCollectionStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationBoxCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationBoxCollectionStoreDirective, NotificationBoxCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
5517
6073
|
}
|
|
5518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationBoxCollectionStoreDirective, decorators: [{
|
|
5519
6075
|
type: Directive,
|
|
5520
6076
|
args: [{
|
|
5521
6077
|
selector: '[dbxFirebaseNotificationBoxCollection]',
|
|
@@ -5524,27 +6080,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5524
6080
|
}]
|
|
5525
6081
|
}], ctorParameters: () => [] });
|
|
5526
6082
|
|
|
5527
|
-
/**
|
|
6083
|
+
/**
|
|
6084
|
+
* Collection store for querying NotificationSummary documents.
|
|
6085
|
+
*/
|
|
5528
6086
|
class NotificationSummaryCollectionStore extends AbstractDbxFirebaseCollectionStore {
|
|
5529
6087
|
constructor() {
|
|
5530
6088
|
super({ firestoreCollection: inject(NotificationFirestoreCollections).notificationSummaryCollection });
|
|
5531
6089
|
}
|
|
5532
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5533
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6090
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationSummaryCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6091
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationSummaryCollectionStore });
|
|
5534
6092
|
}
|
|
5535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationSummaryCollectionStore, decorators: [{
|
|
5536
6094
|
type: Injectable
|
|
5537
6095
|
}], ctorParameters: () => [] });
|
|
5538
6096
|
|
|
5539
|
-
/**
|
|
6097
|
+
/**
|
|
6098
|
+
* Directive providing a {@link NotificationSummaryCollectionStore} for querying notification summaries.
|
|
6099
|
+
*/
|
|
5540
6100
|
class DbxFirebaseNotificationSummaryCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
5541
6101
|
constructor() {
|
|
5542
6102
|
super(inject(NotificationSummaryCollectionStore));
|
|
5543
6103
|
}
|
|
5544
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5545
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationSummaryCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6105
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationSummaryCollectionStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationSummaryCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationSummaryCollectionStoreDirective, NotificationSummaryCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
5546
6106
|
}
|
|
5547
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationSummaryCollectionStoreDirective, decorators: [{
|
|
5548
6108
|
type: Directive,
|
|
5549
6109
|
args: [{
|
|
5550
6110
|
selector: '[dbxFirebaseNotificationSummaryCollection]',
|
|
@@ -5553,7 +6113,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5553
6113
|
}]
|
|
5554
6114
|
}], ctorParameters: () => [] });
|
|
5555
6115
|
|
|
5556
|
-
/**
|
|
6116
|
+
/**
|
|
6117
|
+
* Document store for a single NotificationSummary, providing derived observables for items, timestamps, sync state, and update functions.
|
|
6118
|
+
*/
|
|
5557
6119
|
class NotificationSummaryDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
5558
6120
|
notificationFunctions = inject(NotificationFunctions);
|
|
5559
6121
|
constructor() {
|
|
@@ -5574,22 +6136,24 @@ class NotificationSummaryDocumentStore extends AbstractDbxFirebaseDocumentStore
|
|
|
5574
6136
|
return combineLatest([asObservable(checkLastReadIfCreatedBeforeObs), this.notificationItems$]).pipe(map(([c, items]) => unreadNotificationItems(items, c)));
|
|
5575
6137
|
}
|
|
5576
6138
|
updateNotificationSummary = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationSummary.updateNotificationSummary.update);
|
|
5577
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5578
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6139
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationSummaryDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6140
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationSummaryDocumentStore });
|
|
5579
6141
|
}
|
|
5580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationSummaryDocumentStore, decorators: [{
|
|
5581
6143
|
type: Injectable
|
|
5582
6144
|
}], ctorParameters: () => [] });
|
|
5583
6145
|
|
|
5584
|
-
/**
|
|
6146
|
+
/**
|
|
6147
|
+
* Directive providing a {@link NotificationSummaryDocumentStore} for accessing a single notification summary.
|
|
6148
|
+
*/
|
|
5585
6149
|
class DbxFirebaseNotificationSummaryDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
|
|
5586
6150
|
constructor() {
|
|
5587
6151
|
super(inject(NotificationSummaryDocumentStore));
|
|
5588
6152
|
}
|
|
5589
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5590
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6153
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationSummaryDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6154
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationSummaryDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationSummaryDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationSummaryDocumentStoreDirective, NotificationSummaryDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
5591
6155
|
}
|
|
5592
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationSummaryDocumentStoreDirective, decorators: [{
|
|
5593
6157
|
type: Directive,
|
|
5594
6158
|
args: [{
|
|
5595
6159
|
selector: '[dbxFirebaseNotificationSummaryDocument]',
|
|
@@ -5598,27 +6162,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5598
6162
|
}]
|
|
5599
6163
|
}], ctorParameters: () => [] });
|
|
5600
6164
|
|
|
5601
|
-
/**
|
|
6165
|
+
/**
|
|
6166
|
+
* Collection store for querying NotificationUser documents.
|
|
6167
|
+
*/
|
|
5602
6168
|
class NotificationUserCollectionStore extends AbstractDbxFirebaseCollectionStore {
|
|
5603
6169
|
constructor() {
|
|
5604
6170
|
super({ firestoreCollection: inject(NotificationFirestoreCollections).notificationUserCollection });
|
|
5605
6171
|
}
|
|
5606
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5607
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6172
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationUserCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6173
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationUserCollectionStore });
|
|
5608
6174
|
}
|
|
5609
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationUserCollectionStore, decorators: [{
|
|
5610
6176
|
type: Injectable
|
|
5611
6177
|
}], ctorParameters: () => [] });
|
|
5612
6178
|
|
|
5613
|
-
/**
|
|
6179
|
+
/**
|
|
6180
|
+
* Directive providing a {@link NotificationUserCollectionStore} for querying notification user documents.
|
|
6181
|
+
*/
|
|
5614
6182
|
class DbxFirebaseNotificationUserCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
5615
6183
|
constructor() {
|
|
5616
6184
|
super(inject(NotificationUserCollectionStore));
|
|
5617
6185
|
}
|
|
5618
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5619
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6186
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationUserCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6187
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationUserCollectionStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationUserCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationUserCollectionStoreDirective, NotificationUserCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
5620
6188
|
}
|
|
5621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationUserCollectionStoreDirective, decorators: [{
|
|
5622
6190
|
type: Directive,
|
|
5623
6191
|
args: [{
|
|
5624
6192
|
selector: '[dbxFirebaseNotificationUserCollection]',
|
|
@@ -5627,7 +6195,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5627
6195
|
}]
|
|
5628
6196
|
}], ctorParameters: () => [] });
|
|
5629
6197
|
|
|
5630
|
-
/**
|
|
6198
|
+
/**
|
|
6199
|
+
* Document store for a single NotificationUser with update and resync functions.
|
|
6200
|
+
*/
|
|
5631
6201
|
class NotificationUserDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
5632
6202
|
notificationFunctions = inject(NotificationFunctions);
|
|
5633
6203
|
constructor() {
|
|
@@ -5635,22 +6205,24 @@ class NotificationUserDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
5635
6205
|
}
|
|
5636
6206
|
updateNotificationUser = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationUser.updateNotificationUser.update);
|
|
5637
6207
|
resyncNotificationUser = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationUser.updateNotificationUser.resync);
|
|
5638
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5639
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6208
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationUserDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6209
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationUserDocumentStore });
|
|
5640
6210
|
}
|
|
5641
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: NotificationUserDocumentStore, decorators: [{
|
|
5642
6212
|
type: Injectable
|
|
5643
6213
|
}], ctorParameters: () => [] });
|
|
5644
6214
|
|
|
5645
|
-
/**
|
|
6215
|
+
/**
|
|
6216
|
+
* Directive providing a {@link NotificationUserDocumentStore} for accessing a single notification user document.
|
|
6217
|
+
*/
|
|
5646
6218
|
class DbxFirebaseNotificationUserDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
|
|
5647
6219
|
constructor() {
|
|
5648
6220
|
super(inject(NotificationUserDocumentStore));
|
|
5649
6221
|
}
|
|
5650
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5651
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
6222
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationUserDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6223
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseNotificationUserDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseNotificationUserDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationUserDocumentStoreDirective, NotificationUserDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
5652
6224
|
}
|
|
5653
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseNotificationUserDocumentStoreDirective, decorators: [{
|
|
5654
6226
|
type: Directive,
|
|
5655
6227
|
args: [{
|
|
5656
6228
|
selector: '[dbxFirebaseNotificationUserDocument]',
|
|
@@ -5725,8 +6297,8 @@ class DbxFirebaseStorageFileDownloadStorage {
|
|
|
5725
6297
|
*
|
|
5726
6298
|
* The pair may be expired.
|
|
5727
6299
|
*
|
|
5728
|
-
* @param key
|
|
5729
|
-
* @returns
|
|
6300
|
+
* @param input - The Firestore model ID or key identifying the storage file.
|
|
6301
|
+
* @returns Observable that emits the cached download URL pair, or undefined if not found.
|
|
5730
6302
|
*/
|
|
5731
6303
|
getDownloadUrlPair(input) {
|
|
5732
6304
|
const id = firestoreModelId(input);
|
|
@@ -5765,21 +6337,26 @@ class DbxFirebaseStorageFileDownloadStorage {
|
|
|
5765
6337
|
return this.storageAccessor.remove(storageKey);
|
|
5766
6338
|
}
|
|
5767
6339
|
_getUserDownloadCacheForStorageKey(storageKey, uid) {
|
|
5768
|
-
return this.storageAccessor.get(storageKey).pipe(catchError((
|
|
6340
|
+
return this.storageAccessor.get(storageKey).pipe(catchError((_e) => {
|
|
5769
6341
|
return of(undefined);
|
|
5770
6342
|
}), map((result) => result ?? { uid, pairs: {} }));
|
|
5771
6343
|
}
|
|
5772
6344
|
getStorageKeyForUid(uid) {
|
|
5773
|
-
|
|
5774
|
-
return storageKey;
|
|
6345
|
+
return `sf_dl_cache_${uid}`;
|
|
5775
6346
|
}
|
|
5776
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5777
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6347
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6348
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage });
|
|
5778
6349
|
}
|
|
5779
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage, decorators: [{
|
|
5780
6351
|
type: Injectable
|
|
5781
6352
|
}] });
|
|
5782
6353
|
|
|
6354
|
+
/**
|
|
6355
|
+
* Creates a {@link DbxFirebaseStorageFileDownloadServiceCustomSource} from a function that returns a LoadingState observable.
|
|
6356
|
+
*
|
|
6357
|
+
* @param obsForInput - Function that produces a LoadingState observable for the given download params and storage file ID.
|
|
6358
|
+
* @returns A custom source adapter that bridges observable-based downloads to the promise-based interface.
|
|
6359
|
+
*/
|
|
5783
6360
|
function dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs(obsForInput) {
|
|
5784
6361
|
return {
|
|
5785
6362
|
downloadStorageFileResult: (params, storageFileId) => firstValueFrom(obsForInput(params, storageFileId).pipe(throwErrorFromLoadingStateError(), valueFromFinishedLoadingState()))
|
|
@@ -5866,8 +6443,9 @@ class DbxFirebaseStorageFileDownloadService {
|
|
|
5866
6443
|
*
|
|
5867
6444
|
* These URLs are cached locally to prevent extra/redundant calls to the server.
|
|
5868
6445
|
*
|
|
5869
|
-
* @param storageFileIdOrKey
|
|
5870
|
-
* @
|
|
6446
|
+
* @param storageFileIdOrKey - The storage file ID or key to download.
|
|
6447
|
+
* @param source - Optional custom download source. Falls back to the default internal source if not provided.
|
|
6448
|
+
* @returns Observable that emits the cached or freshly downloaded URL pair.
|
|
5871
6449
|
*/
|
|
5872
6450
|
downloadPairForStorageFileUsingSource(storageFileIdOrKey, source) {
|
|
5873
6451
|
const storageFileId = firestoreModelId(storageFileIdOrKey);
|
|
@@ -5890,6 +6468,8 @@ class DbxFirebaseStorageFileDownloadService {
|
|
|
5890
6468
|
}
|
|
5891
6469
|
/**
|
|
5892
6470
|
* Adds the given download URL pair to the cache.
|
|
6471
|
+
*
|
|
6472
|
+
* @param downloadUrlPair - The download URL pair to store in the local cache.
|
|
5893
6473
|
*/
|
|
5894
6474
|
addPairForStorageFileToCache(downloadUrlPair) {
|
|
5895
6475
|
this.storageFileDownloadStorage.addDownloadUrl(downloadUrlPair).pipe(first()).subscribe();
|
|
@@ -5924,10 +6504,10 @@ class DbxFirebaseStorageFileDownloadService {
|
|
|
5924
6504
|
};
|
|
5925
6505
|
});
|
|
5926
6506
|
}
|
|
5927
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5928
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6507
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6508
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadService });
|
|
5929
6509
|
}
|
|
5930
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6510
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadService, decorators: [{
|
|
5931
6511
|
type: Injectable
|
|
5932
6512
|
}] });
|
|
5933
6513
|
|
|
@@ -5938,31 +6518,31 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
5938
6518
|
/**
|
|
5939
6519
|
* The StorageFileKey to set up the download button for.
|
|
5940
6520
|
*/
|
|
5941
|
-
storageFileKey = input(...(ngDevMode ? [undefined, { debugName: "storageFileKey" }] : []));
|
|
6521
|
+
storageFileKey = input(...(ngDevMode ? [undefined, { debugName: "storageFileKey" }] : /* istanbul ignore next */ []));
|
|
5942
6522
|
/**
|
|
5943
6523
|
* The download URL to use for the download button.
|
|
5944
6524
|
*/
|
|
5945
|
-
storageFileDownloadUrl = input(...(ngDevMode ? [undefined, { debugName: "storageFileDownloadUrl" }] : []));
|
|
6525
|
+
storageFileDownloadUrl = input(...(ngDevMode ? [undefined, { debugName: "storageFileDownloadUrl" }] : /* istanbul ignore next */ []));
|
|
5946
6526
|
/**
|
|
5947
6527
|
* The MIME type to use the embed component.
|
|
5948
6528
|
*/
|
|
5949
|
-
embedMimeType = input(...(ngDevMode ? [undefined, { debugName: "embedMimeType" }] : []));
|
|
6529
|
+
embedMimeType = input(...(ngDevMode ? [undefined, { debugName: "embedMimeType" }] : /* istanbul ignore next */ []));
|
|
5950
6530
|
/**
|
|
5951
6531
|
* Whether or not to show a preview button.
|
|
5952
6532
|
*
|
|
5953
6533
|
* Defaults to true.
|
|
5954
6534
|
*/
|
|
5955
|
-
showPreviewButton = input(true, ...(ngDevMode ? [{ debugName: "showPreviewButton" }] : []));
|
|
6535
|
+
showPreviewButton = input(true, ...(ngDevMode ? [{ debugName: "showPreviewButton" }] : /* istanbul ignore next */ []));
|
|
5956
6536
|
/**
|
|
5957
6537
|
* Whether or not to pre-load the download URL from the source.
|
|
5958
6538
|
*/
|
|
5959
|
-
preload = input(undefined, ...(ngDevMode ? [{ debugName: "preload" }] : []));
|
|
6539
|
+
preload = input(undefined, ...(ngDevMode ? [{ debugName: "preload" }] : /* istanbul ignore next */ []));
|
|
5960
6540
|
/**
|
|
5961
6541
|
* Output event emitted when the download details change.
|
|
5962
6542
|
*/
|
|
5963
6543
|
downloadDetailsChange = output();
|
|
5964
|
-
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
|
|
5965
|
-
source = input(...(ngDevMode ? [undefined, { debugName: "source" }] : []));
|
|
6544
|
+
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6545
|
+
source = input(...(ngDevMode ? [undefined, { debugName: "source" }] : /* istanbul ignore next */ []));
|
|
5966
6546
|
source$ = toObservable(this.source);
|
|
5967
6547
|
configSignal = computed(() => {
|
|
5968
6548
|
const config = this.config();
|
|
@@ -5977,22 +6557,22 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
5977
6557
|
previewText: config?.previewText ?? 'View File'
|
|
5978
6558
|
};
|
|
5979
6559
|
return result;
|
|
5980
|
-
}, ...(ngDevMode ? [{ debugName: "configSignal" }] : []));
|
|
6560
|
+
}, ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
|
|
5981
6561
|
preloadSignal = computed(() => {
|
|
5982
6562
|
const preload = this.preload();
|
|
5983
6563
|
const source = this.source();
|
|
5984
6564
|
return preload ?? source?.preload ?? false;
|
|
5985
|
-
}, ...(ngDevMode ? [{ debugName: "preloadSignal" }] : []));
|
|
5986
|
-
downloadUrlSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "downloadUrlSignal" }] : []));
|
|
5987
|
-
downloadMimeTypeSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "downloadMimeTypeSignal" }] : []));
|
|
5988
|
-
downloadUrlExpiresAtSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "downloadUrlExpiresAtSignal" }] : []));
|
|
6565
|
+
}, ...(ngDevMode ? [{ debugName: "preloadSignal" }] : /* istanbul ignore next */ []));
|
|
6566
|
+
downloadUrlSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "downloadUrlSignal" }] : /* istanbul ignore next */ []));
|
|
6567
|
+
downloadMimeTypeSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "downloadMimeTypeSignal" }] : /* istanbul ignore next */ []));
|
|
6568
|
+
downloadUrlExpiresAtSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "downloadUrlExpiresAtSignal" }] : /* istanbul ignore next */ []));
|
|
5989
6569
|
storageFileKeyFromInput$ = toObservable(this.storageFileKey).pipe(distinctUntilChanged(), shareReplay(1));
|
|
5990
6570
|
storageFileKeyFromSource$ = this.source$.pipe(map((source) => source?.storageFileKey), maybeValueFromObservableOrValue(), distinctUntilChanged(), shareReplay(1));
|
|
5991
6571
|
storageFileKey$ = combineLatest([this.storageFileKeyFromInput$, this.storageFileKeyFromSource$]).pipe(map(([storageFileKeyFromInput, storageFileKeyFromSource]) => {
|
|
5992
6572
|
return storageFileKeyFromInput ?? storageFileKeyFromSource;
|
|
5993
6573
|
}), distinctUntilChanged(), shareReplay(1));
|
|
5994
6574
|
storageFileKeySignal = toSignal(this.storageFileKey$);
|
|
5995
|
-
hasDownloadUrlSignal = computed(() => Boolean(this.downloadUrlSignal()), ...(ngDevMode ? [{ debugName: "hasDownloadUrlSignal" }] : []));
|
|
6575
|
+
hasDownloadUrlSignal = computed(() => Boolean(this.downloadUrlSignal()), ...(ngDevMode ? [{ debugName: "hasDownloadUrlSignal" }] : /* istanbul ignore next */ []));
|
|
5996
6576
|
buttonStyleSignal = computed(() => {
|
|
5997
6577
|
const config = this.configSignal();
|
|
5998
6578
|
const result = {
|
|
@@ -6000,7 +6580,7 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6000
6580
|
...config.buttonStyle
|
|
6001
6581
|
};
|
|
6002
6582
|
return result;
|
|
6003
|
-
}, ...(ngDevMode ? [{ debugName: "buttonStyleSignal" }] : []));
|
|
6583
|
+
}, ...(ngDevMode ? [{ debugName: "buttonStyleSignal" }] : /* istanbul ignore next */ []));
|
|
6004
6584
|
previewButtonStyleSignal = computed(() => {
|
|
6005
6585
|
const config = this.configSignal();
|
|
6006
6586
|
const result = {
|
|
@@ -6008,25 +6588,25 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6008
6588
|
...config.previewButtonStyle
|
|
6009
6589
|
};
|
|
6010
6590
|
return result;
|
|
6011
|
-
}, ...(ngDevMode ? [{ debugName: "previewButtonStyleSignal" }] : []));
|
|
6591
|
+
}, ...(ngDevMode ? [{ debugName: "previewButtonStyleSignal" }] : /* istanbul ignore next */ []));
|
|
6012
6592
|
iconSignal = computed(() => {
|
|
6013
6593
|
const config = this.configSignal();
|
|
6014
6594
|
const hasDownloadUrl = this.hasDownloadUrlSignal();
|
|
6015
6595
|
return hasDownloadUrl ? (config.downloadReadyIcon ?? config.icon) : config.icon;
|
|
6016
|
-
}, ...(ngDevMode ? [{ debugName: "iconSignal" }] : []));
|
|
6596
|
+
}, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
|
|
6017
6597
|
textSignal = computed(() => {
|
|
6018
6598
|
const config = this.configSignal();
|
|
6019
6599
|
const hasDownloadUrl = this.hasDownloadUrlSignal();
|
|
6020
6600
|
return hasDownloadUrl ? (config.downloadReadyText ?? config.text) : config.text;
|
|
6021
|
-
}, ...(ngDevMode ? [{ debugName: "textSignal" }] : []));
|
|
6601
|
+
}, ...(ngDevMode ? [{ debugName: "textSignal" }] : /* istanbul ignore next */ []));
|
|
6022
6602
|
previewIconSignal = computed(() => {
|
|
6023
6603
|
const config = this.configSignal();
|
|
6024
6604
|
return config.previewIcon;
|
|
6025
|
-
}, ...(ngDevMode ? [{ debugName: "previewIconSignal" }] : []));
|
|
6605
|
+
}, ...(ngDevMode ? [{ debugName: "previewIconSignal" }] : /* istanbul ignore next */ []));
|
|
6026
6606
|
previewTextSignal = computed(() => {
|
|
6027
6607
|
const config = this.configSignal();
|
|
6028
6608
|
return config.previewText;
|
|
6029
|
-
}, ...(ngDevMode ? [{ debugName: "previewTextSignal" }] : []));
|
|
6609
|
+
}, ...(ngDevMode ? [{ debugName: "previewTextSignal" }] : /* istanbul ignore next */ []));
|
|
6030
6610
|
anchorSignal = computed(() => {
|
|
6031
6611
|
const downloadUrl = this.downloadUrlSignal();
|
|
6032
6612
|
let result;
|
|
@@ -6036,23 +6616,23 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6036
6616
|
};
|
|
6037
6617
|
}
|
|
6038
6618
|
return result;
|
|
6039
|
-
}, ...(ngDevMode ? [{ debugName: "anchorSignal" }] : []));
|
|
6619
|
+
}, ...(ngDevMode ? [{ debugName: "anchorSignal" }] : /* istanbul ignore next */ []));
|
|
6040
6620
|
storageFileDownloadUrlEffect = effect(() => {
|
|
6041
6621
|
const downloadUrl = this.storageFileDownloadUrl();
|
|
6042
6622
|
if (downloadUrl || downloadUrl === null) {
|
|
6043
6623
|
this.downloadUrlSignal.set(downloadUrl);
|
|
6044
6624
|
}
|
|
6045
|
-
}, { ...(ngDevMode ? { debugName: "storageFileDownloadUrlEffect" } : {}), allowSignalWrites: true });
|
|
6625
|
+
}, { ...(ngDevMode ? { debugName: "storageFileDownloadUrlEffect" } : /* istanbul ignore next */ {}), allowSignalWrites: true });
|
|
6046
6626
|
// Preview
|
|
6047
6627
|
showPreviewButtonSignal = computed(() => {
|
|
6048
6628
|
const config = this.configSignal();
|
|
6049
6629
|
const hasDownloadUrl = this.hasDownloadUrlSignal();
|
|
6050
6630
|
return hasDownloadUrl && (config.showPreviewButton ?? true);
|
|
6051
|
-
}, ...(ngDevMode ? [{ debugName: "showPreviewButtonSignal" }] : []));
|
|
6631
|
+
}, ...(ngDevMode ? [{ debugName: "showPreviewButtonSignal" }] : /* istanbul ignore next */ []));
|
|
6052
6632
|
openCustomPreviewSignal = computed(() => {
|
|
6053
6633
|
const config = this.configSignal();
|
|
6054
6634
|
return config.openCustomPreview;
|
|
6055
|
-
}, ...(ngDevMode ? [{ debugName: "openCustomPreviewSignal" }] : []));
|
|
6635
|
+
}, ...(ngDevMode ? [{ debugName: "openCustomPreviewSignal" }] : /* istanbul ignore next */ []));
|
|
6056
6636
|
handleOpenPreviewDialog = () => {
|
|
6057
6637
|
const openPreview = this.openCustomPreviewSignal();
|
|
6058
6638
|
const srcUrl = this.downloadUrlSignal();
|
|
@@ -6076,7 +6656,7 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6076
6656
|
this.downloadMimeTypeSignal.set(cachedPair.mimeType);
|
|
6077
6657
|
this.downloadUrlExpiresAtSignal.set(cachedPair.expiresAt);
|
|
6078
6658
|
}
|
|
6079
|
-
}, { ...(ngDevMode ? { debugName: "cachedUrlEffect" } : {}), allowSignalWrites: true });
|
|
6659
|
+
}, { ...(ngDevMode ? { debugName: "cachedUrlEffect" } : /* istanbul ignore next */ {}), allowSignalWrites: true });
|
|
6080
6660
|
// Expiration Effect
|
|
6081
6661
|
downloadUrlExpiresAtDate$ = toObservable(this.downloadUrlExpiresAtSignal).pipe(map(dateFromDateOrTimeSecondsNumber), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
6082
6662
|
downloadUrlExpiresAtDateSignal = toSignal(this.downloadUrlExpiresAtDate$);
|
|
@@ -6098,7 +6678,7 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6098
6678
|
this.downloadMimeTypeSignal.set(undefined);
|
|
6099
6679
|
this.downloadUrlExpiresAtSignal.set(undefined);
|
|
6100
6680
|
}
|
|
6101
|
-
}, { ...(ngDevMode ? { debugName: "downloadUrlHasExpiredEffect" } : {}), allowSignalWrites: true });
|
|
6681
|
+
}, { ...(ngDevMode ? { debugName: "downloadUrlHasExpiredEffect" } : /* istanbul ignore next */ {}), allowSignalWrites: true });
|
|
6102
6682
|
// Output Effect
|
|
6103
6683
|
downloadDetailsSignal = computed(() => {
|
|
6104
6684
|
const downloadUrl = this.downloadUrlSignal();
|
|
@@ -6112,18 +6692,18 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6112
6692
|
}
|
|
6113
6693
|
: undefined;
|
|
6114
6694
|
return details;
|
|
6115
|
-
}, ...(ngDevMode ? [{ debugName: "downloadDetailsSignal" }] : []));
|
|
6695
|
+
}, ...(ngDevMode ? [{ debugName: "downloadDetailsSignal" }] : /* istanbul ignore next */ []));
|
|
6116
6696
|
downloadDetailsChangedEffect = effect(() => {
|
|
6117
6697
|
const details = this.downloadDetailsSignal();
|
|
6118
6698
|
this.downloadDetailsChange.emit(details);
|
|
6119
|
-
}, ...(ngDevMode ? [{ debugName: "downloadDetailsChangedEffect" }] : []));
|
|
6699
|
+
}, ...(ngDevMode ? [{ debugName: "downloadDetailsChangedEffect" }] : /* istanbul ignore next */ []));
|
|
6120
6700
|
sourceDownloadDetailsChangeCallbackEffect = effect(() => {
|
|
6121
6701
|
const details = this.downloadDetailsSignal();
|
|
6122
6702
|
const source = this.source();
|
|
6123
6703
|
if (source?.downloadDetailsChangeCallback) {
|
|
6124
6704
|
source.downloadDetailsChangeCallback(details);
|
|
6125
6705
|
}
|
|
6126
|
-
}, { ...(ngDevMode ? { debugName: "sourceDownloadDetailsChangeCallbackEffect" } : {}), allowSignalWrites: true });
|
|
6706
|
+
}, { ...(ngDevMode ? { debugName: "sourceDownloadDetailsChangeCallbackEffect" } : /* istanbul ignore next */ {}), allowSignalWrites: true });
|
|
6127
6707
|
// Handlers
|
|
6128
6708
|
handleGetDownloadUrl = (value, context) => {
|
|
6129
6709
|
const source = this.source();
|
|
@@ -6155,8 +6735,8 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6155
6735
|
handleGetDownloadUrlError(error);
|
|
6156
6736
|
}
|
|
6157
6737
|
};
|
|
6158
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6159
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
6738
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6739
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseStorageFileDownloadButtonComponent, isStandalone: true, selector: "dbx-firebase-storagefile-download-button", inputs: { storageFileKey: { classPropertyName: "storageFileKey", publicName: "storageFileKey", isSignal: true, isRequired: false, transformFunction: null }, storageFileDownloadUrl: { classPropertyName: "storageFileDownloadUrl", publicName: "storageFileDownloadUrl", isSignal: true, isRequired: false, transformFunction: null }, embedMimeType: { classPropertyName: "embedMimeType", publicName: "embedMimeType", isSignal: true, isRequired: false, transformFunction: null }, showPreviewButton: { classPropertyName: "showPreviewButton", publicName: "showPreviewButton", isSignal: true, isRequired: false, transformFunction: null }, preload: { classPropertyName: "preload", publicName: "preload", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { downloadDetailsChange: "downloadDetailsChange" }, ngImport: i0, template: `
|
|
6160
6740
|
<dbx-anchor dbxActionAnchor [anchor]="anchorSignal()" dbxAction [dbxActionAutoTrigger]="preloadSignal()" dbxActionSnackbarError [dbxActionDisabled]="!storageFileKeySignal()" [dbxActionValue]="storageFileKeySignal()" [dbxActionHandler]="handleGetDownloadUrl" [dbxActionSuccessHandler]="handleGetDownloadUrlSuccess" [dbxActionErrorHandler]="handleGetDownloadUrlError">
|
|
6161
6741
|
<dbx-button dbxActionButton [buttonStyle]="buttonStyleSignal()" [icon]="iconSignal()" [text]="textSignal()"></dbx-button>
|
|
6162
6742
|
</dbx-anchor>
|
|
@@ -6166,9 +6746,9 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
|
|
|
6166
6746
|
<dbx-button dbxActionButton [buttonStyle]="previewButtonStyleSignal()" [icon]="previewIconSignal()" [text]="previewTextSignal()"></dbx-button>
|
|
6167
6747
|
</ng-container>
|
|
6168
6748
|
}
|
|
6169
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionHandlerValueDirective, selector: "[dbxActionHandlerValue]", inputs: ["dbxActionHandlerValue"] }, { kind: "directive", type: i2.DbxActionDisabledDirective, selector: "[dbxActionDisabled]", inputs: ["dbxActionDisabled"] }, { kind: "directive", type: i2.DbxActionAutoTriggerDirective, selector: "dbxActionAutoTrigger,[dbxActionAutoTrigger]", inputs: ["triggerDebounce", "triggerThrottle", "triggerErrorThrottle", "maxErrorsForThrottle", "triggerLimit", "dbxActionAutoTrigger", "useFastTriggerPreset", "useInstantTriggerPreset"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "directive", type: i2.DbxActionErrorHandlerDirective, selector: "[dbxActionErrorHandler]", inputs: ["dbxActionErrorHandler"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxActionDialogDirective, selector: "[dbxActionDialog]", inputs: ["dbxActionDialog", "dbxActionDialogIsModified", "dbxActionDialogIsEqual"], exportAs: ["dbxActionDialog"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6749
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionHandlerValueDirective, selector: "[dbxActionHandlerValue]", inputs: ["dbxActionHandlerValue"] }, { kind: "directive", type: i2.DbxActionDisabledDirective, selector: "[dbxActionDisabled]", inputs: ["dbxActionDisabled"] }, { kind: "directive", type: i2.DbxActionAutoTriggerDirective, selector: "dbxActionAutoTrigger,[dbxActionAutoTrigger]", inputs: ["triggerDebounce", "triggerThrottle", "triggerErrorThrottle", "maxErrorsForThrottle", "triggerLimit", "dbxActionAutoTrigger", "useFastTriggerPreset", "useInstantTriggerPreset"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "directive", type: i2.DbxActionErrorHandlerDirective, selector: "[dbxActionErrorHandler]", inputs: ["dbxActionErrorHandler"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxActionDialogDirective, selector: "[dbxActionDialog]", inputs: ["dbxActionDialog", "dbxActionDialogIsModified", "dbxActionDialogIsEqual"], exportAs: ["dbxActionDialog"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6170
6750
|
}
|
|
6171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDownloadButtonComponent, decorators: [{
|
|
6172
6752
|
type: Component,
|
|
6173
6753
|
args: [{
|
|
6174
6754
|
selector: 'dbx-firebase-storagefile-download-button',
|
|
@@ -6239,15 +6819,18 @@ class DbxFirebaseStorageFileUploadStore extends ComponentStore {
|
|
|
6239
6819
|
* Sets the upload result.
|
|
6240
6820
|
*/
|
|
6241
6821
|
setUploadResult = this.updater((state, uploadResult) => ({ ...state, isUploadHandlerWorking: false, uploadProgress: undefined, uploadResult }));
|
|
6242
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6243
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6822
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6823
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadStore });
|
|
6244
6824
|
}
|
|
6245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6825
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadStore, decorators: [{
|
|
6246
6826
|
type: Injectable
|
|
6247
6827
|
}], ctorParameters: () => [] });
|
|
6248
6828
|
|
|
6249
6829
|
/**
|
|
6250
6830
|
* Default implementation of StorageFileUploadHandler.
|
|
6831
|
+
*
|
|
6832
|
+
* @param config - Configuration providing the storage service and file upload config factory.
|
|
6833
|
+
* @returns A StorageFileUploadHandler that manages resumable file uploads.
|
|
6251
6834
|
*/
|
|
6252
6835
|
function storageFileUploadHandler(config) {
|
|
6253
6836
|
const { storageService, storageFileUploadConfigFactory } = config;
|
|
@@ -6316,7 +6899,7 @@ function storageFileUploadFiles(input) {
|
|
|
6316
6899
|
const maxParallelTasks = inputMaxParallelUploads ?? 3;
|
|
6317
6900
|
const multiUploadsSubscriptionObject = new MultiSubscriptionObject();
|
|
6318
6901
|
// begin the upload for each file
|
|
6319
|
-
const allFiles =
|
|
6902
|
+
const allFiles = [...files];
|
|
6320
6903
|
// unsubscribe from all previous uploads
|
|
6321
6904
|
multiUploadsSubscriptionObject.unsub();
|
|
6322
6905
|
const allFilesAndLatestProgress = new Array(allFiles.length);
|
|
@@ -6488,7 +7071,7 @@ function storageFileUploadFiles(input) {
|
|
|
6488
7071
|
}
|
|
6489
7072
|
// run upload task for each file
|
|
6490
7073
|
const fileTuples = allFiles.map((file, index) => [file, index]);
|
|
6491
|
-
runAsyncTasksForValues(fileTuples, runUploadTaskForFile, {
|
|
7074
|
+
void runAsyncTasksForValues(fileTuples, runUploadTaskForFile, {
|
|
6492
7075
|
maxParallelTasks,
|
|
6493
7076
|
retriesAllowed: 0 // no retries allowed
|
|
6494
7077
|
}).then(() => {
|
|
@@ -6526,7 +7109,7 @@ class DbxFirebaseStorageFileUploadActionHandlerDirective {
|
|
|
6526
7109
|
*
|
|
6527
7110
|
* Defaults to false.
|
|
6528
7111
|
*/
|
|
6529
|
-
triggerOnFiles = input(false, ...(ngDevMode ? [{ debugName: "triggerOnFiles" }] : []));
|
|
7112
|
+
triggerOnFiles = input(false, ...(ngDevMode ? [{ debugName: "triggerOnFiles" }] : /* istanbul ignore next */ []));
|
|
6530
7113
|
triggerOnFiles$ = toObservable(this.triggerOnFiles);
|
|
6531
7114
|
/**
|
|
6532
7115
|
* Uploading of all/any files should be cancelled if any file fails to upload.
|
|
@@ -6535,20 +7118,20 @@ class DbxFirebaseStorageFileUploadActionHandlerDirective {
|
|
|
6535
7118
|
*
|
|
6536
7119
|
* Defaults to false.
|
|
6537
7120
|
*/
|
|
6538
|
-
cancelUploadsOnUploadError = input(false, ...(ngDevMode ? [{ debugName: "cancelUploadsOnUploadError" }] : []));
|
|
7121
|
+
cancelUploadsOnUploadError = input(false, ...(ngDevMode ? [{ debugName: "cancelUploadsOnUploadError" }] : /* istanbul ignore next */ []));
|
|
6539
7122
|
/**
|
|
6540
7123
|
* The upload should fail if any file fails to upload, rather than if all files fail to upload.
|
|
6541
7124
|
*
|
|
6542
7125
|
* Defaults to false.
|
|
6543
7126
|
*/
|
|
6544
|
-
actionFailureOnUploadError = input(false, ...(ngDevMode ? [{ debugName: "actionFailureOnUploadError" }] : []));
|
|
6545
|
-
uploadHandler = input.required({ ...(ngDevMode ? { debugName: "uploadHandler" } : {}), alias: 'dbxFirebaseStorageFileUploadActionHandler' });
|
|
7127
|
+
actionFailureOnUploadError = input(false, ...(ngDevMode ? [{ debugName: "actionFailureOnUploadError" }] : /* istanbul ignore next */ []));
|
|
7128
|
+
uploadHandler = input.required({ ...(ngDevMode ? { debugName: "uploadHandler" } : /* istanbul ignore next */ {}), alias: 'dbxFirebaseStorageFileUploadActionHandler' });
|
|
6546
7129
|
_uploadHandlerEffect = effect(() => {
|
|
6547
7130
|
const uploadHandler = this.uploadHandler();
|
|
6548
7131
|
let handlerFunction;
|
|
6549
7132
|
if (uploadHandler) {
|
|
6550
7133
|
handlerFunction = (files, context) => {
|
|
6551
|
-
const { upload, cancel } = storageFileUploadFiles({
|
|
7134
|
+
const { upload, cancel: _cancel } = storageFileUploadFiles({
|
|
6552
7135
|
files,
|
|
6553
7136
|
uploadHandler
|
|
6554
7137
|
});
|
|
@@ -6576,7 +7159,7 @@ class DbxFirebaseStorageFileUploadActionHandlerDirective {
|
|
|
6576
7159
|
handlerFunction = undefined;
|
|
6577
7160
|
}
|
|
6578
7161
|
this._dbxActionHandlerInstance.setHandlerFunction(handlerFunction);
|
|
6579
|
-
}, ...(ngDevMode ? [{ debugName: "_uploadHandlerEffect" }] : []));
|
|
7162
|
+
}, ...(ngDevMode ? [{ debugName: "_uploadHandlerEffect" }] : /* istanbul ignore next */ []));
|
|
6580
7163
|
files$ = this.uploadStore.files$;
|
|
6581
7164
|
uploadHandler$ = toObservable(this.uploadHandler);
|
|
6582
7165
|
constructor() {
|
|
@@ -6614,10 +7197,10 @@ class DbxFirebaseStorageFileUploadActionHandlerDirective {
|
|
|
6614
7197
|
// sync progress amount
|
|
6615
7198
|
this.source.setWorkProgress(this.uploadStore.latestProgressEvent$.pipe(throttleTime(100, undefined, { leading: true, trailing: true }), map((x) => x?.overallProgress), distinctUntilChanged()));
|
|
6616
7199
|
}
|
|
6617
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6618
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
7200
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadActionHandlerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7201
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseStorageFileUploadActionHandlerDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadActionHandler]", inputs: { triggerOnFiles: { classPropertyName: "triggerOnFiles", publicName: "triggerOnFiles", isSignal: true, isRequired: false, transformFunction: null }, cancelUploadsOnUploadError: { classPropertyName: "cancelUploadsOnUploadError", publicName: "cancelUploadsOnUploadError", isSignal: true, isRequired: false, transformFunction: null }, actionFailureOnUploadError: { classPropertyName: "actionFailureOnUploadError", publicName: "actionFailureOnUploadError", isSignal: true, isRequired: false, transformFunction: null }, uploadHandler: { classPropertyName: "uploadHandler", publicName: "dbxFirebaseStorageFileUploadActionHandler", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
6619
7202
|
}
|
|
6620
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadActionHandlerDirective, decorators: [{
|
|
6621
7204
|
type: Directive,
|
|
6622
7205
|
args: [{
|
|
6623
7206
|
selector: '[dbxFirebaseStorageFileUploadActionHandler]',
|
|
@@ -6631,10 +7214,10 @@ class StorageFileCollectionStore extends AbstractDbxFirebaseCollectionStore {
|
|
|
6631
7214
|
super({ firestoreCollection: inject(StorageFileFirestoreCollections).storageFileCollection });
|
|
6632
7215
|
}
|
|
6633
7216
|
initializeAllStorageFilesFromUpload = firebaseCollectionStoreCreateFunction(this, this.storageFileFunctions.storageFile.createStorageFile.allFromUpload);
|
|
6634
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6635
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
7217
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7218
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileCollectionStore });
|
|
6636
7219
|
}
|
|
6637
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileCollectionStore, decorators: [{
|
|
6638
7221
|
type: Injectable
|
|
6639
7222
|
}], ctorParameters: () => [] });
|
|
6640
7223
|
|
|
@@ -6643,10 +7226,10 @@ class DbxFirebaseStorageFileCollectionStoreDirective extends DbxFirebaseCollecti
|
|
|
6643
7226
|
super(inject(StorageFileCollectionStore));
|
|
6644
7227
|
this.setConstraints([]);
|
|
6645
7228
|
}
|
|
6646
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6647
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
7229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7230
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseStorageFileCollectionStoreDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseStorageFileCollectionStoreDirective, StorageFileCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
6648
7231
|
}
|
|
6649
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileCollectionStoreDirective, decorators: [{
|
|
6650
7233
|
type: Directive,
|
|
6651
7234
|
args: [{
|
|
6652
7235
|
selector: '[dbxFirebaseStorageFileCollection]',
|
|
@@ -6667,10 +7250,10 @@ class StorageFileDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
6667
7250
|
processStorageFile = firebaseDocumentStoreUpdateFunction(this, this.storageFileFunctions.storageFile.updateStorageFile.process);
|
|
6668
7251
|
deleteStorageFile = firebaseDocumentStoreDeleteFunction(this, this.storageFileFunctions.storageFile.deleteStorageFile.delete);
|
|
6669
7252
|
downloadStorageFile = firebaseDocumentStoreReadFunction(this, this.storageFileFunctions.storageFile.readStorageFile.download);
|
|
6670
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6671
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
7253
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7254
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileDocumentStore });
|
|
6672
7255
|
}
|
|
6673
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileDocumentStore, decorators: [{
|
|
6674
7257
|
type: Injectable
|
|
6675
7258
|
}], ctorParameters: () => [] });
|
|
6676
7259
|
|
|
@@ -6678,10 +7261,10 @@ class DbxFirebaseStorageFileDocumentStoreDirective extends DbxFirebaseDocumentSt
|
|
|
6678
7261
|
constructor() {
|
|
6679
7262
|
super(inject(StorageFileDocumentStore));
|
|
6680
7263
|
}
|
|
6681
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6682
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
7264
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7265
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseStorageFileDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseStorageFileDocumentStoreDirective, StorageFileDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
6683
7266
|
}
|
|
6684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileDocumentStoreDirective, decorators: [{
|
|
6685
7268
|
type: Directive,
|
|
6686
7269
|
args: [{
|
|
6687
7270
|
selector: '[dbxFirebaseStorageFileDocument]',
|
|
@@ -6697,10 +7280,10 @@ class StorageFileGroupDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
6697
7280
|
}
|
|
6698
7281
|
updateStorageFileGroup = firebaseDocumentStoreUpdateFunction(this, this.storageFileFunctions.storageFileGroup.updateStorageFileGroup.update);
|
|
6699
7282
|
regenerateStorageFileGroupContent = firebaseDocumentStoreCrudFunction(this.storageFileFunctions.storageFileGroup.updateStorageFileGroup.regenerateContent);
|
|
6700
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6701
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
7283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileGroupDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7284
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileGroupDocumentStore });
|
|
6702
7285
|
}
|
|
6703
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: StorageFileGroupDocumentStore, decorators: [{
|
|
6704
7287
|
type: Injectable
|
|
6705
7288
|
}], ctorParameters: () => [] });
|
|
6706
7289
|
|
|
@@ -6708,10 +7291,10 @@ class DbxFirebaseStorageFileGroupDocumentStoreDirective extends DbxFirebaseDocum
|
|
|
6708
7291
|
constructor() {
|
|
6709
7292
|
super(inject(StorageFileGroupDocumentStore));
|
|
6710
7293
|
}
|
|
6711
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6712
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
7294
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileGroupDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7295
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseStorageFileGroupDocumentStoreDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileGroupDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseStorageFileGroupDocumentStoreDirective, StorageFileGroupDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
6713
7296
|
}
|
|
6714
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileGroupDocumentStoreDirective, decorators: [{
|
|
6715
7298
|
type: Directive,
|
|
6716
7299
|
args: [{
|
|
6717
7300
|
selector: '[dbxFirebaseStorageFileGroupDocument]',
|
|
@@ -6728,12 +7311,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
6728
7311
|
class DbxFirebaseStorageFileUploadInitializeDocumentDirective {
|
|
6729
7312
|
uploadStore = inject(DbxFirebaseStorageFileUploadStore);
|
|
6730
7313
|
storageFileDocumentStore = inject(StorageFileDocumentStore);
|
|
6731
|
-
initializeWithExpediteProcessing = input(...(ngDevMode ? [undefined, { debugName: "initializeWithExpediteProcessing" }] : []));
|
|
7314
|
+
initializeWithExpediteProcessing = input(...(ngDevMode ? [undefined, { debugName: "initializeWithExpediteProcessing" }] : /* istanbul ignore next */ []));
|
|
6732
7315
|
source = inject((DbxActionContextStoreSourceInstance), { host: true });
|
|
6733
7316
|
_dbxActionHandlerInstance = clean(new DbxActionHandlerInstance(this.source));
|
|
6734
7317
|
constructor() {
|
|
6735
7318
|
// set the trigger
|
|
6736
|
-
cleanSubscription(this.uploadStore.uploadResult$.subscribe(
|
|
7319
|
+
cleanSubscription(this.uploadStore.uploadResult$.subscribe((result) => {
|
|
6737
7320
|
const successFileResult = result.successFileResults.find((x) => x.fileRef != null);
|
|
6738
7321
|
const fileRef = successFileResult?.fileRef;
|
|
6739
7322
|
if (fileRef) {
|
|
@@ -6750,10 +7333,10 @@ class DbxFirebaseStorageFileUploadInitializeDocumentDirective {
|
|
|
6750
7333
|
});
|
|
6751
7334
|
this._dbxActionHandlerInstance.init();
|
|
6752
7335
|
}
|
|
6753
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6754
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
7336
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadInitializeDocumentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7337
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseStorageFileUploadInitializeDocumentDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadInitializeDocument]", inputs: { initializeWithExpediteProcessing: { classPropertyName: "initializeWithExpediteProcessing", publicName: "initializeWithExpediteProcessing", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["dbxFirebaseStorageFileUploadInitializeDocument"], ngImport: i0 });
|
|
6755
7338
|
}
|
|
6756
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadInitializeDocumentDirective, decorators: [{
|
|
6757
7340
|
type: Directive,
|
|
6758
7341
|
args: [{
|
|
6759
7342
|
selector: '[dbxFirebaseStorageFileUploadInitializeDocument]',
|
|
@@ -6767,18 +7350,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
6767
7350
|
*/
|
|
6768
7351
|
class DbxFirebaseStorageFileUploadStoreDirective {
|
|
6769
7352
|
uploadStore = inject(DbxFirebaseStorageFileUploadStore);
|
|
6770
|
-
multipleUpload = input(...(ngDevMode ? [undefined, { debugName: "multipleUpload" }] : []));
|
|
6771
|
-
fileTypesAccepted = input(...(ngDevMode ? [undefined, { debugName: "fileTypesAccepted" }] : []));
|
|
7353
|
+
multipleUpload = input(...(ngDevMode ? [undefined, { debugName: "multipleUpload" }] : /* istanbul ignore next */ []));
|
|
7354
|
+
fileTypesAccepted = input(...(ngDevMode ? [undefined, { debugName: "fileTypesAccepted" }] : /* istanbul ignore next */ []));
|
|
6772
7355
|
fileTypesAccepted$ = toObservable(this.fileTypesAccepted).pipe(skipAllInitialMaybe(), shareReplay(1));
|
|
6773
7356
|
isMultiUploadAllowed$ = toObservable(this.multipleUpload).pipe(skipAllInitialMaybe(), shareReplay(1));
|
|
6774
7357
|
constructor() {
|
|
6775
7358
|
cleanSubscription(this.fileTypesAccepted$.subscribe((x) => this.uploadStore.setFileTypesAccepted(x)));
|
|
6776
7359
|
cleanSubscription(this.isMultiUploadAllowed$.subscribe((x) => this.uploadStore.setIsMultiUploadAllowed(x)));
|
|
6777
7360
|
}
|
|
6778
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6779
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
7361
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7362
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseStorageFileUploadStoreDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadStore]", inputs: { multipleUpload: { classPropertyName: "multipleUpload", publicName: "multipleUpload", isSignal: true, isRequired: false, transformFunction: null }, fileTypesAccepted: { classPropertyName: "fileTypesAccepted", publicName: "fileTypesAccepted", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DbxFirebaseStorageFileUploadStore], exportAs: ["dbxFirebaseStorageFileUploadStore"], ngImport: i0 });
|
|
6780
7363
|
}
|
|
6781
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadStoreDirective, decorators: [{
|
|
6782
7365
|
type: Directive,
|
|
6783
7366
|
args: [{
|
|
6784
7367
|
selector: '[dbxFirebaseStorageFileUploadStore]',
|
|
@@ -6799,10 +7382,10 @@ class DbxFirebaseStorageFileUploadSyncDirective {
|
|
|
6799
7382
|
cleanSubscription(this.uploadStore.isMultiUploadAllowed$.subscribe((x) => this.uploadComponent.setMultiple(x)));
|
|
6800
7383
|
cleanSubscription(this.uploadComponent.filesChanged.subscribe((files) => this.uploadStore.setFiles(files.matchResult.accepted)));
|
|
6801
7384
|
}
|
|
6802
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6803
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
7385
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadSyncDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7386
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseStorageFileUploadSyncDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadSync]", exportAs: ["dbxFirebaseStorageFileUploadSync"], ngImport: i0 });
|
|
6804
7387
|
}
|
|
6805
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadSyncDirective, decorators: [{
|
|
6806
7389
|
type: Directive,
|
|
6807
7390
|
args: [{
|
|
6808
7391
|
selector: '[dbxFirebaseStorageFileUploadSync]',
|
|
@@ -6811,7 +7394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
6811
7394
|
}]
|
|
6812
7395
|
}], ctorParameters: () => [] });
|
|
6813
7396
|
|
|
6814
|
-
const
|
|
7397
|
+
const IMPORTS_AND_EXPORTS = [
|
|
6815
7398
|
// dbx-core/dbx-web modules/components
|
|
6816
7399
|
DbxActionModule,
|
|
6817
7400
|
DbxLoadingComponent,
|
|
@@ -6840,8 +7423,8 @@ const importsAndExports = [
|
|
|
6840
7423
|
* - DbxFirebaseStorageFileUploadStore
|
|
6841
7424
|
*/
|
|
6842
7425
|
class DbxFirebaseStorageFileUploadModule {
|
|
6843
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6844
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
7426
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7427
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadModule, imports: [
|
|
6845
7428
|
// dbx-core/dbx-web modules/components
|
|
6846
7429
|
DbxActionModule,
|
|
6847
7430
|
DbxLoadingComponent,
|
|
@@ -6872,7 +7455,7 @@ class DbxFirebaseStorageFileUploadModule {
|
|
|
6872
7455
|
// stores
|
|
6873
7456
|
DbxFirebaseStorageFileCollectionStoreDirective,
|
|
6874
7457
|
DbxFirebaseStorageFileDocumentStoreDirective] });
|
|
6875
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
7458
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadModule, imports: [
|
|
6876
7459
|
// dbx-core/dbx-web modules/components
|
|
6877
7460
|
DbxActionModule,
|
|
6878
7461
|
DbxLoadingComponent,
|
|
@@ -6880,27 +7463,29 @@ class DbxFirebaseStorageFileUploadModule {
|
|
|
6880
7463
|
// dbx-core/dbx-web modules/components
|
|
6881
7464
|
DbxActionModule] });
|
|
6882
7465
|
}
|
|
6883
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7466
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageFileUploadModule, decorators: [{
|
|
6884
7467
|
type: NgModule,
|
|
6885
7468
|
args: [{
|
|
6886
|
-
imports:
|
|
6887
|
-
exports:
|
|
7469
|
+
imports: IMPORTS_AND_EXPORTS,
|
|
7470
|
+
exports: IMPORTS_AND_EXPORTS
|
|
6888
7471
|
}]
|
|
6889
7472
|
}] });
|
|
6890
7473
|
|
|
6891
7474
|
/**
|
|
6892
|
-
* Factory function for creating a StorageAccessor for the
|
|
7475
|
+
* Factory function for creating a StorageAccessor for the storage file download cache.
|
|
7476
|
+
*
|
|
7477
|
+
* @param storageAccessorFactory - The factory used to create prefixed storage accessors.
|
|
7478
|
+
* @returns A StorageAccessor scoped to the storage file download cache.
|
|
6893
7479
|
*/
|
|
6894
7480
|
function defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory(storageAccessorFactory) {
|
|
6895
|
-
|
|
7481
|
+
return storageAccessorFactory.createStorageAccessor({
|
|
6896
7482
|
prefix: 'sfds'
|
|
6897
7483
|
});
|
|
6898
|
-
return accessor;
|
|
6899
7484
|
}
|
|
6900
7485
|
/**
|
|
6901
|
-
* Creates EnvironmentProviders for
|
|
7486
|
+
* Creates EnvironmentProviders for the storage file download service and its dependencies.
|
|
6902
7487
|
*
|
|
6903
|
-
* @returns EnvironmentProviders
|
|
7488
|
+
* @returns EnvironmentProviders that register the storage file download storage accessor, storage, and service.
|
|
6904
7489
|
*/
|
|
6905
7490
|
function provideDbxFirebaseStorageFileService() {
|
|
6906
7491
|
const providers = [
|
|
@@ -6936,10 +7521,10 @@ class FlatFirestoreModelKeyPipe {
|
|
|
6936
7521
|
return '';
|
|
6937
7522
|
}
|
|
6938
7523
|
}
|
|
6939
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6940
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
7524
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: FlatFirestoreModelKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
7525
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: FlatFirestoreModelKeyPipe, isStandalone: true, name: "flatFirestoreModelKey" });
|
|
6941
7526
|
}
|
|
6942
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7527
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: FlatFirestoreModelKeyPipe, decorators: [{
|
|
6943
7528
|
type: Pipe,
|
|
6944
7529
|
args: [{ name: 'flatFirestoreModelKey', standalone: true }]
|
|
6945
7530
|
}] });
|
|
@@ -6964,10 +7549,10 @@ class TwoWayFlatFirestoreModelKeyPipe {
|
|
|
6964
7549
|
return '';
|
|
6965
7550
|
}
|
|
6966
7551
|
}
|
|
6967
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6968
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
7552
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: TwoWayFlatFirestoreModelKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
7553
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: TwoWayFlatFirestoreModelKeyPipe, isStandalone: true, name: "twoWayFlatFirestoreModelKey" });
|
|
6969
7554
|
}
|
|
6970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: TwoWayFlatFirestoreModelKeyPipe, decorators: [{
|
|
6971
7556
|
type: Pipe,
|
|
6972
7557
|
args: [{ name: 'twoWayFlatFirestoreModelKey', standalone: true }]
|
|
6973
7558
|
}] });
|
|
@@ -6975,9 +7560,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
6975
7560
|
const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY = 'id';
|
|
6976
7561
|
const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY = 'key';
|
|
6977
7562
|
const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = '0';
|
|
7563
|
+
/**
|
|
7564
|
+
* Creates a {@link DbxFirebaseIdRouteParamRedirectInstance} configured to read a model key from route params.
|
|
7565
|
+
*
|
|
7566
|
+
* @param dbxRouterService - The router service used to read route parameters.
|
|
7567
|
+
* @param defaultParamKey - The route parameter key to read. Defaults to 'key'.
|
|
7568
|
+
* @returns A new route param redirect instance for model keys.
|
|
7569
|
+
*/
|
|
6978
7570
|
function dbxFirebaseKeyRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY) {
|
|
6979
7571
|
return dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey);
|
|
6980
7572
|
}
|
|
7573
|
+
/**
|
|
7574
|
+
* Creates a {@link DbxFirebaseIdRouteParamRedirectInstance} that reads a model ID from route params and optionally redirects to a default value.
|
|
7575
|
+
*
|
|
7576
|
+
* @param dbxRouterService - The router service used to read route parameters.
|
|
7577
|
+
* @param defaultParamKey - The route parameter key to read. Defaults to 'id'.
|
|
7578
|
+
* @returns A new route param redirect instance for model IDs with configurable redirect behavior.
|
|
7579
|
+
*/
|
|
6981
7580
|
function dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY) {
|
|
6982
7581
|
const _paramReader = dbxRouteParamReaderInstance(dbxRouterService, defaultParamKey);
|
|
6983
7582
|
const _paramRedirect = new DbxRouteParamDefaultRedirectInstance(_paramReader);
|
|
@@ -7057,10 +7656,10 @@ class DbxFirebaseStorageService {
|
|
|
7057
7656
|
folder(path) {
|
|
7058
7657
|
return this.storageContext.folder(path);
|
|
7059
7658
|
}
|
|
7060
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
7061
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
7659
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7660
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageService, providedIn: 'root' });
|
|
7062
7661
|
}
|
|
7063
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseStorageService, decorators: [{
|
|
7064
7663
|
type: Injectable,
|
|
7065
7664
|
args: [{
|
|
7066
7665
|
providedIn: 'root'
|
|
@@ -7106,11 +7705,11 @@ function providedDbxFirebaseStorage(config) {
|
|
|
7106
7705
|
}
|
|
7107
7706
|
|
|
7108
7707
|
class DbxFirebaseModule {
|
|
7109
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
7110
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
7111
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
7708
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7709
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModule, exports: [DbxFirebaseModelModule] });
|
|
7710
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModule, imports: [DbxFirebaseModelModule] });
|
|
7112
7711
|
}
|
|
7113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseModule, decorators: [{
|
|
7114
7713
|
type: NgModule,
|
|
7115
7714
|
args: [{
|
|
7116
7715
|
exports: [DbxFirebaseModelModule]
|
|
@@ -7172,5 +7771,5 @@ function provideDbxFirebase(config) {
|
|
|
7172
7771
|
* Generated bundle index. Do not edit.
|
|
7173
7772
|
*/
|
|
7174
7773
|
|
|
7175
|
-
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseModelEntityWidgetDirective, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_TOKEN, DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN, DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListenerService, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, DbxFirebaseDocumentStoreContextStore, DbxFirebaseDocumentStoreContextStoreDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorService, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelEntitiesComponent, DbxFirebaseModelEntitiesDebugWidgetComponent, DbxFirebaseModelEntitiesPopoverButtonComponent, DbxFirebaseModelEntitiesPopoverComponent, DbxFirebaseModelEntitiesSource, DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelKeyComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButtonComponent, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileGroupDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FlatFirestoreModelKeyPipe, NotificationBoxCollectionStore, NotificationBoxDocumentStore, NotificationCollectionStore, NotificationDocumentStore, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, StorageFileCollectionStore, StorageFileDocumentStore, StorageFileGroupDocumentStore, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelEntityWidgetInjectionConfigFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, importsAndExports, isDbxFirebaseModelEntityWithStore, linkDocumentStoreToParentContextStores, modelDoesNotExistError, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreContextStore, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseEmulator, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseModelEntitiesWidgetService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
|
|
7774
|
+
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseModelEntityWidgetDirective, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_TOKEN, DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN, DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListenerService, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, DbxFirebaseDocumentStoreContextStore, DbxFirebaseDocumentStoreContextStoreDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorService, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseManageAuthProvidersComponent, DbxFirebaseModelContextService, DbxFirebaseModelEntitiesComponent, DbxFirebaseModelEntitiesDebugWidgetComponent, DbxFirebaseModelEntitiesPopoverButtonComponent, DbxFirebaseModelEntitiesPopoverComponent, DbxFirebaseModelEntitiesSource, DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelKeyComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButtonComponent, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileGroupDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP, FlatFirestoreModelKeyPipe, IMPORTS_AND_EXPORTS, LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP, NotificationBoxCollectionStore, NotificationBoxDocumentStore, NotificationCollectionStore, NotificationDocumentStore, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, StorageFileCollectionStore, StorageFileDocumentStore, StorageFileGroupDocumentStore, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelEntityWidgetInjectionConfigFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, firebaseProviderIdToLoginMethodType, isDbxFirebaseModelEntityWithStore, linkDocumentStoreToParentContextStores, loginMethodTypeToFirebaseProviderId, modelDoesNotExistError, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreContextStore, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseEmulator, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseModelEntitiesWidgetService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
|
|
7176
7775
|
//# sourceMappingURL=dereekb-dbx-firebase.mjs.map
|