@dereekb/dbx-firebase 12.5.8 → 12.5.10
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/esm2022/lib/modules/storagefile/container/index.mjs +2 -1
- package/esm2022/lib/modules/storagefile/container/storagefile.download.button.component.mjs +210 -0
- package/esm2022/lib/modules/storagefile/index.mjs +3 -1
- package/esm2022/lib/modules/storagefile/service/index.mjs +3 -0
- package/esm2022/lib/modules/storagefile/service/storagefile.download.service.mjs +120 -0
- package/esm2022/lib/modules/storagefile/service/storagefile.download.storage.service.mjs +89 -0
- package/esm2022/lib/modules/storagefile/storagefile.providers.mjs +33 -0
- package/esm2022/lib/modules/storagefile/store/storagefile.document.store.mjs +3 -2
- package/esm2022/lib/providers.mjs +6 -2
- package/fesm2022/dereekb-dbx-firebase.mjs +440 -7
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/modules/storagefile/container/index.d.ts +1 -0
- package/lib/modules/storagefile/container/storagefile.download.button.component.d.ts +87 -0
- package/lib/modules/storagefile/index.d.ts +2 -0
- package/lib/modules/storagefile/service/index.d.ts +2 -0
- package/lib/modules/storagefile/service/storagefile.download.service.d.ts +48 -0
- package/lib/modules/storagefile/service/storagefile.download.storage.service.d.ts +52 -0
- package/lib/modules/storagefile/storagefile.providers.d.ts +13 -0
- package/lib/modules/storagefile/storagefile.upload.module.d.ts +1 -1
- package/lib/modules/storagefile/store/storagefile.document.store.d.ts +1 -0
- package/lib/providers.d.ts +4 -0
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ import { provideDbxFirebaseNotifications } from './modules/notification/notifica
|
|
|
11
11
|
import { provideDbxFirebaseModelContextService } from './model/service/model.context.providers';
|
|
12
12
|
import { provideDbxFirebaseModelTypesService } from './model/modules/model/model.types.providers';
|
|
13
13
|
import { provideDbxFirebaseAnalyticsUserEventsListenerService } from './analytics';
|
|
14
|
+
import { provideDbxFirebaseStorageFileService } from './modules/storagefile/storagefile.providers';
|
|
14
15
|
/**
|
|
15
16
|
* All-in-one provider for providing the main configurations for DbxFirebase.
|
|
16
17
|
*
|
|
@@ -21,7 +22,7 @@ import { provideDbxFirebaseAnalyticsUserEventsListenerService } from './analytic
|
|
|
21
22
|
* @returns EnvironmentProviders for the DbxFirebase configuration.
|
|
22
23
|
*/
|
|
23
24
|
export function provideDbxFirebase(config) {
|
|
24
|
-
const { app, emulator, storage, auth, functions, firestores, modelContextService, modelTypesService, development, notifications, provideAnalyticsUserEventsListener } = config;
|
|
25
|
+
const { app, emulator, storage, auth, functions, firestores, modelContextService, modelTypesService, development, notifications, provideAnalyticsUserEventsListener, provideStorageFileService } = config;
|
|
25
26
|
const providers = [provideDbxFirebaseApp(app), provideDbxFirebaseEmulator(emulator), providedDbxFirebaseStorage(storage), provideDbxFirebaseAuth(auth), provideDbxFirebaseFunctions(functions), provideDbxFirebaseModelContextService(modelContextService), provideDbxFirebaseModelTypesService(modelTypesService)];
|
|
26
27
|
asArray(firestores).forEach((firestore) => {
|
|
27
28
|
providers.push(provideDbxFirestoreCollection(firestore));
|
|
@@ -35,6 +36,9 @@ export function provideDbxFirebase(config) {
|
|
|
35
36
|
if (notifications != null) {
|
|
36
37
|
providers.push(provideDbxFirebaseNotifications(notifications));
|
|
37
38
|
}
|
|
39
|
+
if (provideStorageFileService) {
|
|
40
|
+
providers.push(provideDbxFirebaseStorageFileService());
|
|
41
|
+
}
|
|
38
42
|
return makeEnvironmentProviders(providers);
|
|
39
43
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBNkIsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFxQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzVHLE9BQU8sRUFBRSwwQkFBMEIsRUFBMEMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1SCxPQUFPLEVBQUUscUJBQXFCLEVBQW9DLE1BQU0sK0JBQStCLENBQUM7QUFDeEcsT0FBTyxFQUFvRCw2QkFBNkIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNJLE9BQU8sRUFBRSwyQkFBMkIsRUFBMEMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3SCxPQUFPLEVBQXdDLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEgsT0FBTyxFQUFFLDZCQUE2QixFQUE0QyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlILE9BQU8sRUFBRSwrQkFBK0IsRUFBOEMsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1SSxPQUFPLEVBQUUscUNBQXFDLEVBQW9ELE1BQU0seUNBQXlDLENBQUM7QUFDbEosT0FBTyxFQUFFLG1DQUFtQyxFQUFrRCxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xKLE9BQU8sRUFBRSxvREFBb0QsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQTRDbkc7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQTJELE1BQXNDO0lBQ2pJLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGtDQUFrQyxFQUFFLHlCQUF5QixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTFNLE1BQU0sU0FBUyxHQUEyQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsbUNBQW1DLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBRTVVLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxTQUFTLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLGtDQUFrQyxFQUFFLENBQUM7UUFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxvREFBb0QsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEFycmF5T3JWYWx1ZSwgYXNBcnJheSwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIEZpcmViYXNlRnVuY3Rpb25zTWFwIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlQXV0aCwgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VBdXRoQ29uZmlnIH0gZnJvbSAnLi9hdXRoLy9maXJlYmFzZS5hdXRoLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VFbXVsYXRvciwgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VFbXVsYXRvcnNDb25maWcgfSBmcm9tICcuL2ZpcmViYXNlL2ZpcmViYXNlLmVtdWxhdG9yLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VBcHAsIHR5cGUgUHJvdmlkZURieEZpcmViYXNlQXBwQ29uZmlnIH0gZnJvbSAnLi9maXJlYmFzZS9maXJlYmFzZS5wcm92aWRlcnMnO1xuaW1wb3J0IHsgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VGaXJlc3RvcmVDb2xsZWN0aW9uQ29uZmlnLCBwcm92aWRlRGJ4RmlyZXN0b3JlQ29sbGVjdGlvbiB9IGZyb20gJy4vZmlyZXN0b3JlL2ZpcmViYXNlLmZpcmVzdG9yZS5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlRnVuY3Rpb25zLCB0eXBlIFByb3ZpZGVEYnhGaXJlYmFzZUZ1bmN0aW9uc0NvbmZpZyB9IGZyb20gJy4vZnVuY3Rpb24vZmlyZWJhc2UuZnVuY3Rpb24ucHJvdmlkZXJzJztcbmltcG9ydCB7IHR5cGUgUHJvdmlkZURieEZpcmViYXNlU3RvcmFnZUNvbmZpZywgcHJvdmlkZWREYnhGaXJlYmFzZVN0b3JhZ2UgfSBmcm9tICcuL3N0b3JhZ2UvZmlyZWJhc2Uuc3RvcmFnZS5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnQsIHR5cGUgUHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnRDb25maWcgfSBmcm9tICcuL2RldmVsb3BtZW50L2RldmVsb3BtZW50LnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VOb3RpZmljYXRpb25zLCB0eXBlIFByb3ZpZGVEYnhGaXJlYmFzZU5vdGlmaWNhdGlvbnNDb25maWcgfSBmcm9tICcuL21vZHVsZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlTW9kZWxDb250ZXh0U2VydmljZSwgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9zZXJ2aWNlL21vZGVsLmNvbnRleHQucHJvdmlkZXJzJztcbmltcG9ydCB7IHByb3ZpZGVEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIFByb3ZpZGVEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VBbmFseXRpY3NVc2VyRXZlbnRzTGlzdGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3MnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlU3RvcmFnZUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3N0b3JhZ2VmaWxlL3N0b3JhZ2VmaWxlLnByb3ZpZGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZURieEZpcmViYXNlQ29uZmlnPFQsIE0gZXh0ZW5kcyBGaXJlYmFzZUZ1bmN0aW9uc01hcCA9IEZpcmViYXNlRnVuY3Rpb25zTWFwPiB7XG4gIC8vIFJlcXVpcmVkIENvbmZpZ3VyYXRpb25zXG4gIHJlYWRvbmx5IGFwcDogUHJvdmlkZURieEZpcmViYXNlQXBwQ29uZmlnO1xuICByZWFkb25seSBlbXVsYXRvcjogUHJvdmlkZURieEZpcmViYXNlRW11bGF0b3JzQ29uZmlnO1xuICByZWFkb25seSBzdG9yYWdlOiBQcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlQ29uZmlnO1xuICByZWFkb25seSBhdXRoOiBQcm92aWRlRGJ4RmlyZWJhc2VBdXRoQ29uZmlnO1xuICByZWFkb25seSBmdW5jdGlvbnM6IFByb3ZpZGVEYnhGaXJlYmFzZUZ1bmN0aW9uc0NvbmZpZzxULCBNPjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlczogQXJyYXlPclZhbHVlPFByb3ZpZGVEYnhGaXJlYmFzZUZpcmVzdG9yZUNvbGxlY3Rpb25Db25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlKCkuXG4gICAqL1xuICByZWFkb25seSBtb2RlbENvbnRleHRTZXJ2aWNlOiBQcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlQ29uZmlnPGFueT47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSgpLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxUeXBlc1NlcnZpY2U6IFByb3ZpZGVEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlQ29uZmlnO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnQuXG4gICAqXG4gICAqIElmIGZhbHNlLCBwcm92aWRlRGJ4RmlyZWJhc2VEZXZlbG9wbWVudCgpIHdpbGwgbm90IGJlIHByb3ZpZGVkL2NhbGxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRldmVsb3BtZW50PzogUHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnRDb25maWcgfCBmYWxzZTtcblxuICAvLyBPcHRpb25hbFxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlTm90aWZpY2F0aW9ucygpLlxuICAgKlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHByb3ZpZGVEYnhGaXJlYmFzZU5vdGlmaWNhdGlvbnMoKSB3aWxsIG5vdCBiZSBwcm92aWRlZC9jYWxsZWQuXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25zPzogUHJvdmlkZURieEZpcmViYXNlTm90aWZpY2F0aW9uc0NvbmZpZztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgcHJvdmlkZURieEZpcmViYXNlQW5hbHl0aWNzVXNlckV2ZW50c0xpc3RlbmVyU2VydmljZSgpIHdpbGwgYmUgcHJvdmlkZWQvY2FsbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZUFuYWx5dGljc1VzZXJFdmVudHNMaXN0ZW5lcj86IE1heWJlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBwcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVNlcnZpY2UoKSB3aWxsIGJlIHByb3ZpZGVkL2NhbGxlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVTdG9yYWdlRmlsZVNlcnZpY2U/OiBNYXliZTxib29sZWFuPjtcbn1cblxuLyoqXG4gKiBBbGwtaW4tb25lIHByb3ZpZGVyIGZvciBwcm92aWRpbmcgdGhlIG1haW4gY29uZmlndXJhdGlvbnMgZm9yIERieEZpcmViYXNlLlxuICpcbiAqIFJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgYWxyZWFkeSBiZSBwcm92aWRlZC9jYWxsZWQ6XG4gKiAtIHByb3ZpZGVEYnhNb2RlbFNlcnZpY2UoKVxuICpcbiAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlKCkuXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVycyBmb3IgdGhlIERieEZpcmViYXNlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2U8VCwgTSBleHRlbmRzIEZpcmViYXNlRnVuY3Rpb25zTWFwID0gRmlyZWJhc2VGdW5jdGlvbnNNYXA+KGNvbmZpZzogUHJvdmlkZURieEZpcmViYXNlQ29uZmlnPFQsIE0+KSB7XG4gIGNvbnN0IHsgYXBwLCBlbXVsYXRvciwgc3RvcmFnZSwgYXV0aCwgZnVuY3Rpb25zLCBmaXJlc3RvcmVzLCBtb2RlbENvbnRleHRTZXJ2aWNlLCBtb2RlbFR5cGVzU2VydmljZSwgZGV2ZWxvcG1lbnQsIG5vdGlmaWNhdGlvbnMsIHByb3ZpZGVBbmFseXRpY3NVc2VyRXZlbnRzTGlzdGVuZXIsIHByb3ZpZGVTdG9yYWdlRmlsZVNlcnZpY2UgfSA9IGNvbmZpZztcblxuICBjb25zdCBwcm92aWRlcnM6IEVudmlyb25tZW50UHJvdmlkZXJzW10gPSBbcHJvdmlkZURieEZpcmViYXNlQXBwKGFwcCksIHByb3ZpZGVEYnhGaXJlYmFzZUVtdWxhdG9yKGVtdWxhdG9yKSwgcHJvdmlkZWREYnhGaXJlYmFzZVN0b3JhZ2Uoc3RvcmFnZSksIHByb3ZpZGVEYnhGaXJlYmFzZUF1dGgoYXV0aCksIHByb3ZpZGVEYnhGaXJlYmFzZUZ1bmN0aW9ucyhmdW5jdGlvbnMpLCBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlKG1vZGVsQ29udGV4dFNlcnZpY2UpLCBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZShtb2RlbFR5cGVzU2VydmljZSldO1xuXG4gIGFzQXJyYXkoZmlyZXN0b3JlcykuZm9yRWFjaCgoZmlyZXN0b3JlKSA9PiB7XG4gICAgcHJvdmlkZXJzLnB1c2gocHJvdmlkZURieEZpcmVzdG9yZUNvbGxlY3Rpb24oZmlyZXN0b3JlKSk7XG4gIH0pO1xuXG4gIGlmIChwcm92aWRlQW5hbHl0aWNzVXNlckV2ZW50c0xpc3RlbmVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2gocHJvdmlkZURieEZpcmViYXNlQW5hbHl0aWNzVXNlckV2ZW50c0xpc3RlbmVyU2VydmljZSgpKTtcbiAgfVxuXG4gIGlmIChkZXZlbG9wbWVudCAhPT0gZmFsc2UpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlRGJ4RmlyZWJhc2VEZXZlbG9wbWVudChkZXZlbG9wbWVudCA/PyB7fSkpO1xuICB9XG5cbiAgaWYgKG5vdGlmaWNhdGlvbnMgIT0gbnVsbCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVEYnhGaXJlYmFzZU5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucykpO1xuICB9XG5cbiAgaWYgKHByb3ZpZGVTdG9yYWdlRmlsZVNlcnZpY2UpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVNlcnZpY2UoKSk7XG4gIH1cblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG4iXX0=
|
|
@@ -2,23 +2,23 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { inject, Injectable, APP_INITIALIZER, makeEnvironmentProviders, InjectionToken, Component, Optional, Inject, model, computed, ChangeDetectionStrategy, signal, Directive, input, EventEmitter, output, NgModule, Injector, viewChild, HostListener, ElementRef, forwardRef, effect, 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, skipInitialMaybe, distinctUntilModelKeyChange, successResult, beginLoading, errorResult, isLoadingStateLoading, cleanup, mapLoadingState, mapLoadingStateValueWithOperator, distinctUntilHasDifferentValues, MultiSubscriptionObject, startWithBeginLoading, skipAllInitialMaybe } from '@dereekb/rxjs';
|
|
5
|
-
import { switchMap, of, shareReplay, map, distinctUntilChanged, EMPTY, catchError, firstValueFrom, BehaviorSubject, combineLatest, first, from, tap, interval, exhaustMap, filter, take, startWith, Subject, throttleTime, NEVER, combineLatestWith, Observable } from 'rxjs';
|
|
5
|
+
import { switchMap, of, shareReplay, map, distinctUntilChanged, EMPTY, catchError, firstValueFrom, BehaviorSubject, combineLatest, first, from, tap, interval, exhaustMap, filter, take, startWith, Subject, throttleTime, NEVER, combineLatestWith, mergeMap, Observable } from 'rxjs';
|
|
6
6
|
import * as i2 from '@dereekb/dbx-core';
|
|
7
|
-
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, DbxInjectionComponent, AbstractForwardDbxInjectionContextDirective, DbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxAuthService, DbxActionButtonDirective, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxActionAutoTriggerDirective, provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate, AbstractSubscriptionDirective, AbstractIfDirective, LockSetComponentStore, newWithInjector, CutTextPipe, DbxActionContextStoreSourceInstance, DbxActionHandlerInstance, dbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance } from '@dereekb/dbx-core';
|
|
7
|
+
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, DbxInjectionComponent, AbstractForwardDbxInjectionContextDirective, DbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxAuthService, DbxActionButtonDirective, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxActionAutoTriggerDirective, provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate, AbstractSubscriptionDirective, AbstractIfDirective, LockSetComponentStore, newWithInjector, CutTextPipe, DbxActionContextStoreSourceInstance, DbxActionHandlerInstance, SimpleStorageAccessorFactory, dbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance } from '@dereekb/dbx-core';
|
|
8
8
|
import { Auth, authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, reauthenticateWithPopup, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
9
|
-
import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeArrayValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, pushArrayItemsIntoArray, forEachKeyValue, countAllInNestedArray, invertDecision, readableError, isMaybeSo, firstValue, separateValues } from '@dereekb/util';
|
|
9
|
+
import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeArrayValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, pushArrayItemsIntoArray, forEachKeyValue, countAllInNestedArray, invertDecision, readableError, isMaybeSo, firstValue, MS_IN_DAY, SECONDS_IN_MINUTE, MS_IN_HOUR, MS_IN_MINUTE, unixTimeNumberForNow, addMilliseconds, unixTimeNumberFromDate, dateFromDateOrTimeNumber, MS_IN_SECOND, isPast, separateValues } 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, provideDbxListViewWrapper, DbxListWrapperComponentImportsModule, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxSelectionListViewDirective, provideDbxListView, DbxSelectionValueListViewComponentImportsModule, 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, DbxModelObjectStateService, DbxListViewWrapper, AbstractDbxWidgetComponent, DbxPopoverInteractionModule, DbxListModifierModule, DbxFileUploadComponent, DbxLoadingComponent, DbxActionLoadingContextDirective,
|
|
15
|
+
import { DbxLinkComponent, DbxActionModule, DbxButtonModule, DbxErrorComponent, DbxActionErrorDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxRouterAnchorModule, DbxWidgetService, AbstractDbxSelectionListWrapperDirective, provideDbxListViewWrapper, DbxListWrapperComponentImportsModule, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxSelectionListViewDirective, provideDbxListView, DbxSelectionValueListViewComponentImportsModule, 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, DbxModelObjectStateService, DbxListViewWrapper, AbstractDbxWidgetComponent, DbxPopoverInteractionModule, DbxListModifierModule, DbxEmbedDialogComponent, DbxActionSnackbarErrorDirective, DbxActionDialogDirective, DbxFileUploadComponent, DbxLoadingComponent, DbxActionLoadingContextDirective, DbxFileUploadActionSyncDirective } from '@dereekb/dbx-web';
|
|
16
16
|
import * as i1 from '@angular/material/icon';
|
|
17
17
|
import { MatIconModule } from '@angular/material/icon';
|
|
18
18
|
import * as i1$2 from '@dereekb/dbx-form';
|
|
19
19
|
import { AbstractSyncFormlyFormDirective, emailField, dbxFormlyFormComponentProviders, DbxFormlyFormComponentImportsModule, DBX_FORMLY_FORM_COMPONENT_TEMPLATE, AbstractConfigAsyncFormlyFormDirective, usernamePasswordLoginFields, DbxActionFormDirective, DbxFormSourceDirective, pickableItemChipField, filterPickableItemFieldValuesByLabel } from '@dereekb/dbx-form';
|
|
20
20
|
import * as i1$4 from '@dereekb/firebase';
|
|
21
|
-
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, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, documentDataWithIdAndKey, isClientFirebaseError, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, inferKeyFromTwoWayFlatFirestoreModelKey, firestoreModelKeyParentKey, AppNotificationTemplateTypeInfoRecordService, NotificationFunctions, unreadNotificationItems, StorageFileFunctions, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
|
|
21
|
+
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, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, documentDataWithIdAndKey, isClientFirebaseError, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, inferKeyFromTwoWayFlatFirestoreModelKey, firestoreModelKeyParentKey, AppNotificationTemplateTypeInfoRecordService, NotificationFunctions, unreadNotificationItems, firestoreModelId, StorageFileFunctions, firestoreModelKey, storageFileIdentity, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
|
|
22
22
|
import { NgTemplateOutlet, DatePipe } from '@angular/common';
|
|
23
23
|
import * as i1$3 from '@angular/material/button';
|
|
24
24
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -32,6 +32,7 @@ import { provideFirestore, persistentMultipleTabManager, persistentSingleTabMana
|
|
|
32
32
|
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
33
33
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
34
34
|
import { ComponentStore } from '@ngrx/component-store';
|
|
35
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
35
36
|
import { BaseError } from 'make-error';
|
|
36
37
|
|
|
37
38
|
function authUserInfoFromAuthUser(user) {
|
|
@@ -5303,6 +5304,405 @@ function provideDbxFirebaseNotifications(config) {
|
|
|
5303
5304
|
return makeEnvironmentProviders(providers);
|
|
5304
5305
|
}
|
|
5305
5306
|
|
|
5307
|
+
/**
|
|
5308
|
+
* Token that corresponds to a StorageAccessor<DbxFirebaseStorageFileDownloadUserCache> that is used by DbxModelViewTrackerStorage.
|
|
5309
|
+
*/
|
|
5310
|
+
const DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxFirebaseStorageFileDownloadStorageAccessor');
|
|
5311
|
+
/**
|
|
5312
|
+
* Used for managing DbxModelViewTrackerEvent storage.
|
|
5313
|
+
*/
|
|
5314
|
+
class DbxFirebaseStorageFileDownloadStorage {
|
|
5315
|
+
static DEFAULT_MAX_DOWNLOAD_URLS = 100;
|
|
5316
|
+
authService = inject(DbxFirebaseAuthService);
|
|
5317
|
+
storageAccessor = inject(DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN);
|
|
5318
|
+
addDownloadUrl({ id, downloadUrl, expiresAt }) {
|
|
5319
|
+
return this.getCurrentUserDownloadCache().pipe(mergeMap((cache) => {
|
|
5320
|
+
const { uid, pairs: currentPairs } = cache;
|
|
5321
|
+
const storageKey = this.getStorageKeyForUid(uid);
|
|
5322
|
+
const pairs = {
|
|
5323
|
+
...currentPairs,
|
|
5324
|
+
[id]: `${expiresAt}_${downloadUrl}`
|
|
5325
|
+
};
|
|
5326
|
+
return this.storageAccessor.set(storageKey, {
|
|
5327
|
+
uid,
|
|
5328
|
+
pairs
|
|
5329
|
+
});
|
|
5330
|
+
}), first());
|
|
5331
|
+
}
|
|
5332
|
+
/**
|
|
5333
|
+
* Returns the cached download URL pair for the given key.
|
|
5334
|
+
*
|
|
5335
|
+
* The pair may be expired.
|
|
5336
|
+
*
|
|
5337
|
+
* @param key
|
|
5338
|
+
* @returns
|
|
5339
|
+
*/
|
|
5340
|
+
getDownloadUrlPair(input) {
|
|
5341
|
+
const id = firestoreModelId(input);
|
|
5342
|
+
return this.authService.uid$.pipe(switchMap((uid) => {
|
|
5343
|
+
return this.getUserDownloadCache(uid).pipe(map((cache) => {
|
|
5344
|
+
const pair = cache?.pairs[id];
|
|
5345
|
+
let result;
|
|
5346
|
+
if (pair) {
|
|
5347
|
+
const [expiresAt, downloadUrl] = pair.split('_', 2);
|
|
5348
|
+
result = {
|
|
5349
|
+
id,
|
|
5350
|
+
downloadUrl,
|
|
5351
|
+
expiresAt: Number(expiresAt)
|
|
5352
|
+
};
|
|
5353
|
+
}
|
|
5354
|
+
return result;
|
|
5355
|
+
}));
|
|
5356
|
+
}), first());
|
|
5357
|
+
}
|
|
5358
|
+
getAllDownloadUrlPairsRecord(uid) {
|
|
5359
|
+
return this.getUserDownloadCache(uid).pipe(map((x) => x.pairs));
|
|
5360
|
+
}
|
|
5361
|
+
getCurrentUserDownloadCache() {
|
|
5362
|
+
return this.authService.uid$.pipe(switchMap((uid) => this.getUserDownloadCache(uid)));
|
|
5363
|
+
}
|
|
5364
|
+
getUserDownloadCache(uid) {
|
|
5365
|
+
const storageKey = this.getStorageKeyForUid(uid);
|
|
5366
|
+
return this._getUserDownloadCacheForStorageKey(storageKey, uid);
|
|
5367
|
+
}
|
|
5368
|
+
clearCurrentUserDownloadCache() {
|
|
5369
|
+
return this.authService.uid$.pipe(switchMap((uid) => this.clearUserDownloadCache(uid)));
|
|
5370
|
+
}
|
|
5371
|
+
clearUserDownloadCache(uid) {
|
|
5372
|
+
const storageKey = this.getStorageKeyForUid(uid);
|
|
5373
|
+
return this.storageAccessor.remove(storageKey);
|
|
5374
|
+
}
|
|
5375
|
+
_getUserDownloadCacheForStorageKey(storageKey, uid) {
|
|
5376
|
+
return this.storageAccessor.get(storageKey).pipe(catchError((e) => {
|
|
5377
|
+
return of(undefined);
|
|
5378
|
+
}), map((result) => result ?? { uid, pairs: {} }));
|
|
5379
|
+
}
|
|
5380
|
+
getStorageKeyForUid(uid) {
|
|
5381
|
+
const storageKey = `sf_dl_cache_${uid}`;
|
|
5382
|
+
return storageKey;
|
|
5383
|
+
}
|
|
5384
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5385
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage });
|
|
5386
|
+
}
|
|
5387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage, decorators: [{
|
|
5388
|
+
type: Injectable
|
|
5389
|
+
}] });
|
|
5390
|
+
|
|
5391
|
+
/**
|
|
5392
|
+
* Service used for retrieving download links for StorageFiles.
|
|
5393
|
+
*/
|
|
5394
|
+
class DbxFirebaseStorageFileDownloadService {
|
|
5395
|
+
/**
|
|
5396
|
+
* Expiration duration for cached download URLs.
|
|
5397
|
+
*/
|
|
5398
|
+
_expiresAfterTime = 3 * MS_IN_DAY;
|
|
5399
|
+
/**
|
|
5400
|
+
* When reading cached values, this buffer is added to the expiration time to prevent the URL from expiring while it is being used.
|
|
5401
|
+
*/
|
|
5402
|
+
_expiresAfterTimeBuffer = SECONDS_IN_MINUTE * 10;
|
|
5403
|
+
storageFileFunctions = inject(StorageFileFunctions);
|
|
5404
|
+
storageFileDownloadStorage = inject(DbxFirebaseStorageFileDownloadStorage);
|
|
5405
|
+
// MARK: Config
|
|
5406
|
+
getExpiresAfterTime() {
|
|
5407
|
+
return this._expiresAfterTime;
|
|
5408
|
+
}
|
|
5409
|
+
setExpiresAfterTime(expiresAfter) {
|
|
5410
|
+
const maxAllowed = MS_IN_DAY * 20;
|
|
5411
|
+
if (expiresAfter > maxAllowed) {
|
|
5412
|
+
throw new Error(`Expires after time cannot be greater than 20 days.`);
|
|
5413
|
+
}
|
|
5414
|
+
else if (expiresAfter < MS_IN_HOUR) {
|
|
5415
|
+
throw new Error(`Expires after time cannot be less than 1 hour.`);
|
|
5416
|
+
}
|
|
5417
|
+
this._expiresAfterTime = expiresAfter;
|
|
5418
|
+
}
|
|
5419
|
+
// MARK: Download
|
|
5420
|
+
/**
|
|
5421
|
+
* Returns an observable that returns the cached download URL pair for the StorageFile, and emits null once it expires.
|
|
5422
|
+
*
|
|
5423
|
+
* @param storageFileIdOrKey
|
|
5424
|
+
* @returns
|
|
5425
|
+
*/
|
|
5426
|
+
getCachedDownloadPairForStorageFile(storageFileIdOrKey) {
|
|
5427
|
+
const storageFileId = firestoreModelId(storageFileIdOrKey);
|
|
5428
|
+
return this.storageFileDownloadStorage.getDownloadUrlPair(storageFileId).pipe(switchMap((pair) => {
|
|
5429
|
+
let result;
|
|
5430
|
+
if (pair) {
|
|
5431
|
+
const expiresAt = pair.expiresAt - this._expiresAfterTimeBuffer;
|
|
5432
|
+
// every minute emit the result again
|
|
5433
|
+
result = interval(MS_IN_MINUTE)
|
|
5434
|
+
.pipe(map(() => {
|
|
5435
|
+
const now = unixTimeNumberForNow();
|
|
5436
|
+
const isExpired = now > expiresAt;
|
|
5437
|
+
return isExpired ? null : pair; // emit null once expired
|
|
5438
|
+
}))
|
|
5439
|
+
.pipe(filter((x) => x == null), first(), startWith(pair), distinctUntilChanged(), shareReplay(1));
|
|
5440
|
+
}
|
|
5441
|
+
else {
|
|
5442
|
+
result = of(null);
|
|
5443
|
+
}
|
|
5444
|
+
return result;
|
|
5445
|
+
}));
|
|
5446
|
+
}
|
|
5447
|
+
/**
|
|
5448
|
+
* Retrieves the download URL for the StorageFile using the default parameters.
|
|
5449
|
+
*
|
|
5450
|
+
* These URLs are cached locally to prevent extra/redundant calls to the server.
|
|
5451
|
+
*
|
|
5452
|
+
* @param storageFileIdOrKey
|
|
5453
|
+
* @returns
|
|
5454
|
+
*/
|
|
5455
|
+
downloadPairForStorageFile(storageFileIdOrKey) {
|
|
5456
|
+
const storageFileId = firestoreModelId(storageFileIdOrKey);
|
|
5457
|
+
const obs = this.getCachedDownloadPairForStorageFile(storageFileId).pipe(switchMap((cachedPair) => {
|
|
5458
|
+
let result;
|
|
5459
|
+
const downloadAndCacheResult = () => {
|
|
5460
|
+
const expiresAt = addMilliseconds(new Date(), this._expiresAfterTime);
|
|
5461
|
+
return from(this.createDownloadPairForStorageFile(storageFileIdOrKey, { expiresAt })).pipe(tap((downloadUrlPair) => {
|
|
5462
|
+
// add to the cache
|
|
5463
|
+
this.storageFileDownloadStorage.addDownloadUrl(downloadUrlPair).pipe(first()).subscribe();
|
|
5464
|
+
}));
|
|
5465
|
+
};
|
|
5466
|
+
if (cachedPair) {
|
|
5467
|
+
result = of(cachedPair);
|
|
5468
|
+
}
|
|
5469
|
+
else {
|
|
5470
|
+
result = downloadAndCacheResult();
|
|
5471
|
+
}
|
|
5472
|
+
return result;
|
|
5473
|
+
}), first(), shareReplay(1));
|
|
5474
|
+
return obs;
|
|
5475
|
+
}
|
|
5476
|
+
/**
|
|
5477
|
+
* Creates a new download URL for the StorageFile.
|
|
5478
|
+
*
|
|
5479
|
+
* @param storageFileIdOrKey
|
|
5480
|
+
* @param inputParams
|
|
5481
|
+
* @returns
|
|
5482
|
+
*/
|
|
5483
|
+
createDownloadPairForStorageFile(storageFileIdOrKey, inputParams) {
|
|
5484
|
+
const storageFileId = firestoreModelId(storageFileIdOrKey);
|
|
5485
|
+
const expiresAt = inputParams?.expiresAt ?? addMilliseconds(new Date(), this._expiresAfterTime);
|
|
5486
|
+
const params = {
|
|
5487
|
+
...inputParams,
|
|
5488
|
+
key: firestoreModelKey(storageFileIdentity, storageFileId)
|
|
5489
|
+
};
|
|
5490
|
+
return this.storageFileFunctions.storageFile.readStorageFile.download(params).then((x) => {
|
|
5491
|
+
return {
|
|
5492
|
+
id: storageFileId,
|
|
5493
|
+
downloadUrl: x.url,
|
|
5494
|
+
expiresAt: unixTimeNumberFromDate(expiresAt)
|
|
5495
|
+
};
|
|
5496
|
+
});
|
|
5497
|
+
}
|
|
5498
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5499
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadService });
|
|
5500
|
+
}
|
|
5501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadService, decorators: [{
|
|
5502
|
+
type: Injectable
|
|
5503
|
+
}] });
|
|
5504
|
+
|
|
5505
|
+
class DbxFirebaseStorageFileDownloadButton {
|
|
5506
|
+
dbxFirebaseStorageFileDownloadService = inject(DbxFirebaseStorageFileDownloadService);
|
|
5507
|
+
matDialog = inject(MatDialog);
|
|
5508
|
+
/**
|
|
5509
|
+
* The StorageFileKey to set up the download button for.
|
|
5510
|
+
*/
|
|
5511
|
+
storageFileKey = input();
|
|
5512
|
+
/**
|
|
5513
|
+
* The download URL to use for the download button.
|
|
5514
|
+
*/
|
|
5515
|
+
storageFileDownloadUrl = input();
|
|
5516
|
+
/**
|
|
5517
|
+
* The MIME type to use the embed component.
|
|
5518
|
+
*/
|
|
5519
|
+
embedMimeType = input();
|
|
5520
|
+
/**
|
|
5521
|
+
* Whether or not to show a preview button.
|
|
5522
|
+
*
|
|
5523
|
+
* Defaults to true.
|
|
5524
|
+
*/
|
|
5525
|
+
showPreviewButton = input(true);
|
|
5526
|
+
/**
|
|
5527
|
+
* Output event emitted when the download URL changes.
|
|
5528
|
+
*/
|
|
5529
|
+
downloadUrlChange = output();
|
|
5530
|
+
config = input();
|
|
5531
|
+
configSignal = computed(() => {
|
|
5532
|
+
const config = this.config();
|
|
5533
|
+
const result = {
|
|
5534
|
+
buttonStyle: config?.buttonStyle,
|
|
5535
|
+
previewButtonStyle: config?.previewButtonStyle,
|
|
5536
|
+
icon: config?.icon ?? 'cloud_download',
|
|
5537
|
+
text: config?.text ?? 'Start Download',
|
|
5538
|
+
downloadReadyIcon: config?.downloadReadyIcon ?? 'download',
|
|
5539
|
+
downloadReadyText: config?.downloadReadyText ?? 'Save File',
|
|
5540
|
+
previewIcon: config?.previewIcon ?? 'preview',
|
|
5541
|
+
previewText: config?.previewText ?? 'View File'
|
|
5542
|
+
};
|
|
5543
|
+
return result;
|
|
5544
|
+
});
|
|
5545
|
+
preloadSignal = computed(() => {
|
|
5546
|
+
const config = this.configSignal();
|
|
5547
|
+
return config.preload ?? false;
|
|
5548
|
+
});
|
|
5549
|
+
downloadUrlSignal = signal(undefined);
|
|
5550
|
+
downloadUrlExpiresAtSignal = signal(undefined);
|
|
5551
|
+
storageFileKey$ = toObservable(this.storageFileKey).pipe(distinctUntilChanged(), shareReplay(1));
|
|
5552
|
+
hasDownloadUrlSignal = computed(() => Boolean(this.downloadUrlSignal()));
|
|
5553
|
+
buttonStyleSignal = computed(() => {
|
|
5554
|
+
const config = this.configSignal();
|
|
5555
|
+
const result = {
|
|
5556
|
+
type: 'raised',
|
|
5557
|
+
...config.buttonStyle
|
|
5558
|
+
};
|
|
5559
|
+
return result;
|
|
5560
|
+
});
|
|
5561
|
+
previewButtonStyleSignal = computed(() => {
|
|
5562
|
+
const config = this.configSignal();
|
|
5563
|
+
const result = {
|
|
5564
|
+
type: 'raised',
|
|
5565
|
+
...config.previewButtonStyle
|
|
5566
|
+
};
|
|
5567
|
+
return result;
|
|
5568
|
+
});
|
|
5569
|
+
iconSignal = computed(() => {
|
|
5570
|
+
const config = this.configSignal();
|
|
5571
|
+
const hasDownloadUrl = this.hasDownloadUrlSignal();
|
|
5572
|
+
return hasDownloadUrl ? (config.downloadReadyIcon ?? config.icon) : config.icon;
|
|
5573
|
+
});
|
|
5574
|
+
textSignal = computed(() => {
|
|
5575
|
+
const config = this.configSignal();
|
|
5576
|
+
const hasDownloadUrl = this.hasDownloadUrlSignal();
|
|
5577
|
+
return hasDownloadUrl ? (config.downloadReadyText ?? config.text) : config.text;
|
|
5578
|
+
});
|
|
5579
|
+
previewIconSignal = computed(() => {
|
|
5580
|
+
const config = this.configSignal();
|
|
5581
|
+
return config.previewIcon;
|
|
5582
|
+
});
|
|
5583
|
+
previewTextSignal = computed(() => {
|
|
5584
|
+
const config = this.configSignal();
|
|
5585
|
+
return config.previewText;
|
|
5586
|
+
});
|
|
5587
|
+
anchorSignal = computed(() => {
|
|
5588
|
+
const downloadUrl = this.downloadUrlSignal();
|
|
5589
|
+
let result;
|
|
5590
|
+
if (downloadUrl) {
|
|
5591
|
+
result = {
|
|
5592
|
+
url: downloadUrl
|
|
5593
|
+
};
|
|
5594
|
+
}
|
|
5595
|
+
return result;
|
|
5596
|
+
});
|
|
5597
|
+
storageFileDownloadUrlEffect = effect(() => {
|
|
5598
|
+
const downloadUrl = this.storageFileDownloadUrl();
|
|
5599
|
+
if (downloadUrl || downloadUrl === null) {
|
|
5600
|
+
this.downloadUrlSignal.set(downloadUrl);
|
|
5601
|
+
}
|
|
5602
|
+
}, {
|
|
5603
|
+
allowSignalWrites: true
|
|
5604
|
+
});
|
|
5605
|
+
// Preview
|
|
5606
|
+
showPreviewButtonSignal = computed(() => {
|
|
5607
|
+
const config = this.configSignal();
|
|
5608
|
+
const hasDownloadUrl = this.hasDownloadUrlSignal();
|
|
5609
|
+
return hasDownloadUrl && (config.showPreviewButton ?? true);
|
|
5610
|
+
});
|
|
5611
|
+
handleOpenPreviewDialog = () => {
|
|
5612
|
+
const srcUrl = this.downloadUrlSignal();
|
|
5613
|
+
const embedMimeType = this.embedMimeType();
|
|
5614
|
+
return DbxEmbedDialogComponent.openDialog(this.matDialog, {
|
|
5615
|
+
srcUrl,
|
|
5616
|
+
embedMimeType,
|
|
5617
|
+
sanitizeUrl: true
|
|
5618
|
+
});
|
|
5619
|
+
};
|
|
5620
|
+
// Cached Url Effect
|
|
5621
|
+
// When the key changes, check the cache to see if it is already available, and populate the download url if it is.
|
|
5622
|
+
cachedUrlForStorageFileKey$ = this.storageFileKey$.pipe(switchMap((key) => (key ? this.dbxFirebaseStorageFileDownloadService.getCachedDownloadPairForStorageFile(key) : of(null))), shareReplay(1));
|
|
5623
|
+
cachedUrlForStorageFileKeySignal = toSignal(this.cachedUrlForStorageFileKey$);
|
|
5624
|
+
cachedUrlEffect = effect(() => {
|
|
5625
|
+
const cachedPair = this.cachedUrlForStorageFileKeySignal();
|
|
5626
|
+
if (cachedPair) {
|
|
5627
|
+
this.downloadUrlSignal.set(cachedPair.downloadUrl);
|
|
5628
|
+
this.downloadUrlExpiresAtSignal.set(cachedPair.expiresAt);
|
|
5629
|
+
}
|
|
5630
|
+
}, {
|
|
5631
|
+
allowSignalWrites: true
|
|
5632
|
+
});
|
|
5633
|
+
// Expiration Effect
|
|
5634
|
+
downloadUrlExpiresAt$ = toObservable(this.downloadUrlExpiresAtSignal).pipe(map(dateFromDateOrTimeNumber), distinctUntilChanged(), shareReplay(1));
|
|
5635
|
+
downloadUrlHasExpired$ = this.downloadUrlExpiresAt$.pipe(switchMap((x) => {
|
|
5636
|
+
let obs;
|
|
5637
|
+
if (x) {
|
|
5638
|
+
obs = interval(MS_IN_SECOND).pipe(map(() => isPast(x)), distinctUntilChanged(), shareReplay(1));
|
|
5639
|
+
}
|
|
5640
|
+
else {
|
|
5641
|
+
obs = of(false);
|
|
5642
|
+
}
|
|
5643
|
+
return obs;
|
|
5644
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
5645
|
+
downloadUrlHasExpiredSignal = toSignal(this.downloadUrlHasExpired$);
|
|
5646
|
+
downloadUrlHasExpiredEffect = effect(() => {
|
|
5647
|
+
const expired = this.downloadUrlHasExpiredSignal();
|
|
5648
|
+
if (expired) {
|
|
5649
|
+
this.downloadUrlSignal.set(undefined);
|
|
5650
|
+
this.downloadUrlExpiresAtSignal.set(undefined);
|
|
5651
|
+
}
|
|
5652
|
+
}, {
|
|
5653
|
+
allowSignalWrites: true
|
|
5654
|
+
});
|
|
5655
|
+
// Output Effect
|
|
5656
|
+
downloadUrlChangeEffect = effect(() => {
|
|
5657
|
+
const downloadUrl = this.downloadUrlSignal();
|
|
5658
|
+
this.downloadUrlChange.emit(downloadUrl);
|
|
5659
|
+
});
|
|
5660
|
+
// Handlers
|
|
5661
|
+
handleGetDownloadUrl = (value) => {
|
|
5662
|
+
return this.dbxFirebaseStorageFileDownloadService.downloadPairForStorageFile(value);
|
|
5663
|
+
};
|
|
5664
|
+
handleGetDownloadUrlSuccess = (value) => {
|
|
5665
|
+
this.downloadUrlSignal.set(value.downloadUrl);
|
|
5666
|
+
this.downloadUrlExpiresAtSignal.set(value.expiresAt);
|
|
5667
|
+
};
|
|
5668
|
+
handleGetDownloadUrlError = (error) => {
|
|
5669
|
+
this.downloadUrlSignal.set(undefined);
|
|
5670
|
+
this.downloadUrlExpiresAtSignal.set(undefined);
|
|
5671
|
+
};
|
|
5672
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5673
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseStorageFileDownloadButton, 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 }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { downloadUrlChange: "downloadUrlChange" }, ngImport: i0, template: `
|
|
5674
|
+
<dbx-anchor dbxActionAnchor [anchor]="anchorSignal()" dbxAction [dbxActionAutoTrigger]="preloadSignal()" dbxActionSnackbarError [dbxActionDisabled]="!storageFileKey()" [dbxActionValue]="storageFileKey" [dbxActionHandler]="handleGetDownloadUrl" [dbxActionSuccessHandler]="handleGetDownloadUrlSuccess" [dbxActionErrorHandler]="handleGetDownloadUrlError">
|
|
5675
|
+
<dbx-button dbxActionButton [buttonStyle]="buttonStyleSignal()" [icon]="iconSignal()" [text]="textSignal()"></dbx-button>
|
|
5676
|
+
</dbx-anchor>
|
|
5677
|
+
@if (showPreviewButtonSignal()) {
|
|
5678
|
+
<ng-container dbxAction [dbxActionDialog]="handleOpenPreviewDialog" dbxActionHandlerValue>
|
|
5679
|
+
<span class="dbx-button-spacer"></span>
|
|
5680
|
+
<dbx-button dbxActionButton [buttonStyle]="previewButtonStyleSignal()" [icon]="previewIconSignal()" [text]="previewTextSignal()"></dbx-button>
|
|
5681
|
+
</ng-container>
|
|
5682
|
+
}
|
|
5683
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", 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 });
|
|
5684
|
+
}
|
|
5685
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadButton, decorators: [{
|
|
5686
|
+
type: Component,
|
|
5687
|
+
args: [{
|
|
5688
|
+
selector: 'dbx-firebase-storagefile-download-button',
|
|
5689
|
+
template: `
|
|
5690
|
+
<dbx-anchor dbxActionAnchor [anchor]="anchorSignal()" dbxAction [dbxActionAutoTrigger]="preloadSignal()" dbxActionSnackbarError [dbxActionDisabled]="!storageFileKey()" [dbxActionValue]="storageFileKey" [dbxActionHandler]="handleGetDownloadUrl" [dbxActionSuccessHandler]="handleGetDownloadUrlSuccess" [dbxActionErrorHandler]="handleGetDownloadUrlError">
|
|
5691
|
+
<dbx-button dbxActionButton [buttonStyle]="buttonStyleSignal()" [icon]="iconSignal()" [text]="textSignal()"></dbx-button>
|
|
5692
|
+
</dbx-anchor>
|
|
5693
|
+
@if (showPreviewButtonSignal()) {
|
|
5694
|
+
<ng-container dbxAction [dbxActionDialog]="handleOpenPreviewDialog" dbxActionHandlerValue>
|
|
5695
|
+
<span class="dbx-button-spacer"></span>
|
|
5696
|
+
<dbx-button dbxActionButton [buttonStyle]="previewButtonStyleSignal()" [icon]="previewIconSignal()" [text]="previewTextSignal()"></dbx-button>
|
|
5697
|
+
</ng-container>
|
|
5698
|
+
}
|
|
5699
|
+
`,
|
|
5700
|
+
imports: [DbxButtonComponent, DbxActionModule, DbxActionSnackbarErrorDirective, DbxActionDialogDirective, DbxAnchorComponent],
|
|
5701
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5702
|
+
standalone: true
|
|
5703
|
+
}]
|
|
5704
|
+
}] });
|
|
5705
|
+
|
|
5306
5706
|
/**
|
|
5307
5707
|
* Store used for selecting a specific NotificationItem from a list of notification items.
|
|
5308
5708
|
*/
|
|
@@ -5778,6 +6178,7 @@ class StorageFileDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
5778
6178
|
updateStorageFile = firebaseDocumentStoreUpdateFunction(this, this.storageFileFunctions.storageFile.updateStorageFile.update);
|
|
5779
6179
|
processStorageFile = firebaseDocumentStoreUpdateFunction(this, this.storageFileFunctions.storageFile.updateStorageFile.process);
|
|
5780
6180
|
deleteStorageFile = firebaseDocumentStoreDeleteFunction(this, this.storageFileFunctions.storageFile.deleteStorageFile.delete);
|
|
6181
|
+
downloadStorageFile = firebaseDocumentStoreReadFunction(this, this.storageFileFunctions.storageFile.readStorageFile.download);
|
|
5781
6182
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageFileDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5782
6183
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageFileDocumentStore });
|
|
5783
6184
|
}
|
|
@@ -5976,6 +6377,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
5976
6377
|
}]
|
|
5977
6378
|
}] });
|
|
5978
6379
|
|
|
6380
|
+
/**
|
|
6381
|
+
* Factory function for creating a StorageAccessor for the model view tracker.
|
|
6382
|
+
*/
|
|
6383
|
+
function defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory(storageAccessorFactory) {
|
|
6384
|
+
const accessor = storageAccessorFactory.createStorageAccessor({
|
|
6385
|
+
prefix: 'sfds'
|
|
6386
|
+
});
|
|
6387
|
+
return accessor;
|
|
6388
|
+
}
|
|
6389
|
+
/**
|
|
6390
|
+
* Creates EnvironmentProviders for providing DbxModelTrackerService, DbxModelObjectStateService and sets up the NgRx store for DbxModelTrackerEffects.
|
|
6391
|
+
*
|
|
6392
|
+
* @returns EnvironmentProviders
|
|
6393
|
+
*/
|
|
6394
|
+
function provideDbxFirebaseStorageFileService() {
|
|
6395
|
+
const providers = [
|
|
6396
|
+
// Storage accessor
|
|
6397
|
+
{
|
|
6398
|
+
provide: DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN,
|
|
6399
|
+
useFactory: defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory,
|
|
6400
|
+
deps: [SimpleStorageAccessorFactory]
|
|
6401
|
+
},
|
|
6402
|
+
// Service
|
|
6403
|
+
DbxFirebaseStorageFileDownloadStorage,
|
|
6404
|
+
DbxFirebaseStorageFileDownloadService
|
|
6405
|
+
];
|
|
6406
|
+
return makeEnvironmentProviders(providers);
|
|
6407
|
+
}
|
|
6408
|
+
|
|
5979
6409
|
class FlatFirestoreModelKeyPipe {
|
|
5980
6410
|
transform(input) {
|
|
5981
6411
|
if (input != null) {
|
|
@@ -6221,7 +6651,7 @@ function provideDbxFirebaseModelTypesService(config) {
|
|
|
6221
6651
|
* @returns EnvironmentProviders for the DbxFirebase configuration.
|
|
6222
6652
|
*/
|
|
6223
6653
|
function provideDbxFirebase(config) {
|
|
6224
|
-
const { app, emulator, storage, auth, functions, firestores, modelContextService, modelTypesService, development, notifications, provideAnalyticsUserEventsListener } = config;
|
|
6654
|
+
const { app, emulator, storage, auth, functions, firestores, modelContextService, modelTypesService, development, notifications, provideAnalyticsUserEventsListener, provideStorageFileService } = config;
|
|
6225
6655
|
const providers = [provideDbxFirebaseApp(app), provideDbxFirebaseEmulator(emulator), providedDbxFirebaseStorage(storage), provideDbxFirebaseAuth(auth), provideDbxFirebaseFunctions(functions), provideDbxFirebaseModelContextService(modelContextService), provideDbxFirebaseModelTypesService(modelTypesService)];
|
|
6226
6656
|
asArray(firestores).forEach((firestore) => {
|
|
6227
6657
|
providers.push(provideDbxFirestoreCollection(firestore));
|
|
@@ -6235,6 +6665,9 @@ function provideDbxFirebase(config) {
|
|
|
6235
6665
|
if (notifications != null) {
|
|
6236
6666
|
providers.push(provideDbxFirebaseNotifications(notifications));
|
|
6237
6667
|
}
|
|
6668
|
+
if (provideStorageFileService) {
|
|
6669
|
+
providers.push(provideDbxFirebaseStorageFileService());
|
|
6670
|
+
}
|
|
6238
6671
|
return makeEnvironmentProviders(providers);
|
|
6239
6672
|
}
|
|
6240
6673
|
|
|
@@ -6242,5 +6675,5 @@ function provideDbxFirebase(config) {
|
|
|
6242
6675
|
* Generated bundle index. Do not edit.
|
|
6243
6676
|
*/
|
|
6244
6677
|
|
|
6245
|
-
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_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_LOGIN_COMPONENTS, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, 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_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, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryModule, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesModule, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationModule, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePipeModule, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStorageModule, 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, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, importsAndExports$1 as importsAndExports, modelDoesNotExistError, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseEmulator, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseNotifications, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
|
|
6678
|
+
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_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_LOGIN_COMPONENTS, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, 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_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, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryModule, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesModule, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationModule, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePipeModule, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButton, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStorageModule, 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, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, importsAndExports$1 as importsAndExports, modelDoesNotExistError, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseEmulator, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
|
|
6246
6679
|
//# sourceMappingURL=dereekb-dbx-firebase.mjs.map
|