@dereekb/dbx-firebase 9.15.3 → 9.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/development/development.popup.content.component.mjs +19 -9
- package/esm2020/lib/firebase/emulators.mjs +1 -1
- package/esm2020/lib/firebase/firebase.emulator.module.mjs +2 -1
- package/esm2020/lib/firebase/firebase.emulator.service.mjs +31 -0
- package/esm2020/lib/firebase/index.mjs +2 -1
- package/fesm2015/dereekb-dbx-firebase.mjs +564 -527
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +525 -490
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/development/development.popup.content.component.d.ts +6 -2
- package/lib/firebase/emulators.d.ts +3 -1
- package/lib/firebase/firebase.emulator.service.d.ts +12 -0
- package/lib/firebase/index.d.ts +1 -0
- package/package.json +6 -6
|
@@ -7,20 +7,24 @@ import { DbxFirebaseDevelopmentWidgetService } from './development.widget.servic
|
|
|
7
7
|
import { DbxFirebaseDevelopmentSchedulerService } from './development.scheduler.service';
|
|
8
8
|
import { msToSeconds } from '@dereekb/date';
|
|
9
9
|
import { DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY } from './development.scheduler.widget.component';
|
|
10
|
+
import { DbxFirebaseEmulatorService } from '../firebase';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "@dereekb/dbx-web";
|
|
12
13
|
import * as i2 from "@dereekb/dbx-core";
|
|
13
14
|
import * as i3 from "./development.widget.service";
|
|
14
15
|
import * as i4 from "./development.scheduler.service";
|
|
15
|
-
import * as i5 from "
|
|
16
|
-
import * as i6 from "
|
|
17
|
-
import * as i7 from "@angular/
|
|
16
|
+
import * as i5 from "../firebase";
|
|
17
|
+
import * as i6 from "@angular/common";
|
|
18
|
+
import * as i7 from "@angular/material/button";
|
|
19
|
+
import * as i8 from "@dereekb/dbx-form";
|
|
20
|
+
import * as i9 from "./development.popup.content.form.component";
|
|
18
21
|
export class DbxFirebaseDevelopmentPopupContentComponent {
|
|
19
|
-
constructor(twoColumnsContextStore, dbxAuthService, dbxFirebaseDevelopmentWidgetService, dbxFirebaseDevelopmentSchedulerService) {
|
|
22
|
+
constructor(twoColumnsContextStore, dbxAuthService, dbxFirebaseDevelopmentWidgetService, dbxFirebaseDevelopmentSchedulerService, dbxFirebaseEmulatorService) {
|
|
20
23
|
this.twoColumnsContextStore = twoColumnsContextStore;
|
|
21
24
|
this.dbxAuthService = dbxAuthService;
|
|
22
25
|
this.dbxFirebaseDevelopmentWidgetService = dbxFirebaseDevelopmentWidgetService;
|
|
23
26
|
this.dbxFirebaseDevelopmentSchedulerService = dbxFirebaseDevelopmentSchedulerService;
|
|
27
|
+
this.dbxFirebaseEmulatorService = dbxFirebaseEmulatorService;
|
|
24
28
|
this._backSub = new SubscriptionObject();
|
|
25
29
|
this.entries = this.dbxFirebaseDevelopmentWidgetService.getEntries();
|
|
26
30
|
this._activeEntrySelector = new BehaviorSubject(DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY);
|
|
@@ -45,6 +49,12 @@ export class DbxFirebaseDevelopmentPopupContentComponent {
|
|
|
45
49
|
return this._activeEntrySelector.pipe(map((currentSelector) => value.specifier !== currentSelector), first());
|
|
46
50
|
};
|
|
47
51
|
}
|
|
52
|
+
get showEmulatorButton() {
|
|
53
|
+
return this.dbxFirebaseEmulatorService.useEmulators === true;
|
|
54
|
+
}
|
|
55
|
+
get emulatorUIAnchor() {
|
|
56
|
+
return this.dbxFirebaseEmulatorService.emulatorUIAnchor ?? {};
|
|
57
|
+
}
|
|
48
58
|
ngOnInit() {
|
|
49
59
|
this.twoColumnsContextStore.setShowRight(this.showRight$);
|
|
50
60
|
this._backSub.subscription = this.twoColumnsContextStore.back$.subscribe(() => {
|
|
@@ -58,10 +68,10 @@ export class DbxFirebaseDevelopmentPopupContentComponent {
|
|
|
58
68
|
this._activeEntrySelector.next(undefined);
|
|
59
69
|
}
|
|
60
70
|
}
|
|
61
|
-
DbxFirebaseDevelopmentPopupContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentComponent, deps: [{ token: i1.TwoColumnsContextStore }, { token: i2.DbxAuthService }, { token: i3.DbxFirebaseDevelopmentWidgetService }, { token: i4.DbxFirebaseDevelopmentSchedulerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
DbxFirebaseDevelopmentPopupContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFirebaseDevelopmentPopupContentComponent, 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): {{ schedulerRunning$ | async }} : {{ schedulerInterval$ | async }}s : {{ schedulerError$ | async }}</p>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger instantTrigger dbxActionLogger [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form dbxActionForm [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\" [dbxActionFormModified]=\"isFormModified\" [config]=\"formConfig$ | async\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"(rightTitle$ | async) || ''\">\n <dbx-widget-view [config]=\"widgetConfig$ | async\"></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: i1.DbxWidgetViewComponent, selector: "dbx-widget-view", inputs: ["config"] }, { kind: "component", type: i1.DbxTwoBlocksComponent, selector: "dbx-two-block", inputs: ["fixedTop"] }, { kind: "component", type: i1.DbxTwoColumnComponent, selector: "dbx-two-column", inputs: ["reverseSizing", "inSectionPage"], exportAs: ["columns"] }, { kind: "component", type: i1.DbxTwoColumnRightComponent, selector: "dbx-two-column-right", inputs: ["header", "block", "showBack", "minRightWidth"] }, { kind: "directive", type: i1.DbxTwoColumnFullLeftDirective, selector: "[dbxTwoColumnFullLeft]", inputs: ["dbxTwoColumnFullLeft"] }, { kind: "directive", type:
|
|
71
|
+
DbxFirebaseDevelopmentPopupContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentComponent, deps: [{ token: i1.TwoColumnsContextStore }, { token: i2.DbxAuthService }, { token: i3.DbxFirebaseDevelopmentWidgetService }, { token: i4.DbxFirebaseDevelopmentSchedulerService }, { token: i5.DbxFirebaseEmulatorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
DbxFirebaseDevelopmentPopupContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFirebaseDevelopmentPopupContentComponent, 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): {{ schedulerRunning$ | async }} : {{ schedulerInterval$ | async }}s : {{ schedulerError$ | async }}</p>\n <div>\n <dbx-anchor [anchor]=\"emulatorUIAnchor\" *ngIf=\"showEmulatorButton\">\n <button mat-flat-button color=\"accent\">Emulator Enabled</button>\n </dbx-anchor>\n </div>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger instantTrigger dbxActionLogger [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form dbxActionForm [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\" [dbxActionFormModified]=\"isFormModified\" [config]=\"formConfig$ | async\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"(rightTitle$ | async) || ''\">\n <dbx-widget-view [config]=\"widgetConfig$ | async\"></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: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.DbxWidgetViewComponent, selector: "dbx-widget-view", inputs: ["config"] }, { kind: "component", type: i1.DbxTwoBlocksComponent, selector: "dbx-two-block", inputs: ["fixedTop"] }, { kind: "component", type: i1.DbxTwoColumnComponent, selector: "dbx-two-column", inputs: ["reverseSizing", "inSectionPage"], exportAs: ["columns"] }, { kind: "component", type: i1.DbxTwoColumnRightComponent, selector: "dbx-two-column-right", inputs: ["header", "block", "showBack", "minRightWidth"] }, { kind: "directive", type: i1.DbxTwoColumnFullLeftDirective, selector: "[dbxTwoColumnFullLeft]", inputs: ["dbxTwoColumnFullLeft"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i1.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "directive", type: i8.DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: i8.DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormValidator", "dbxActionFormModified", "formDisabledOnWorking"] }, { 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.DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: i2.DbxActionAutoTriggerDirective, selector: "dbxActionAutoTrigger, [dbxActionAutoTrigger]", inputs: ["dbxActionAutoTrigger", "triggerDebounce", "triggerThrottle", "triggerErrorThrottle", "fastTrigger", "instantTrigger", "triggerLimit"] }, { kind: "directive", type: i2.DbxActionContextLoggerDirective, selector: "[dbxActionLogger],[dbxActionContextLogger]" }, { kind: "component", type: i9.DbxFirebaseDevelopmentPopupContentFormComponent, selector: "dbx-firebase-development-popup-content-form" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
|
|
63
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentComponent, decorators: [{
|
|
64
74
|
type: Component,
|
|
65
|
-
args: [{ selector: 'dbx-firebase-development-popup-content', providers: [TwoColumnsContextStore], 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): {{ schedulerRunning$ | async }} : {{ schedulerInterval$ | async }}s : {{ schedulerError$ | async }}</p>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger instantTrigger dbxActionLogger [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form dbxActionForm [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\" [dbxActionFormModified]=\"isFormModified\" [config]=\"formConfig$ | async\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"(rightTitle$ | async) || ''\">\n <dbx-widget-view [config]=\"widgetConfig$ | async\"></dbx-widget-view>\n </dbx-two-column-right>\n</dbx-two-column>\n", styles: [".dbx-firebase-development-popup-content{height:400px;overflow:hidden}\n"] }]
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i1.TwoColumnsContextStore }, { type: i2.DbxAuthService }, { type: i3.DbxFirebaseDevelopmentWidgetService }, { type: i4.DbxFirebaseDevelopmentSchedulerService }]; } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQucG9wdXAuY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2RldmVsb3BtZW50L2RldmVsb3BtZW50LnBvcHVwLmNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBMkIsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXFCLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxFQUFFLFdBQVcsRUFBc0Isa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdEQUFnRCxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7OztBQVE1RyxNQUFNLE9BQU8sMkNBQTJDO0lBK0N0RCxZQUFxQixzQkFBOEMsRUFBVyxjQUE4QixFQUFXLG1DQUF3RSxFQUFXLHNDQUE4RTtRQUFuUSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FB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LGNBQWM7UUFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7O3dJQTFFVSwyQ0FBMkM7NEhBQTNDLDJDQUEyQyxpRUFGM0MsQ0FBQyxzQkFBc0IsQ0FBQywwQkNqQnJDLHc4QkFpQkE7MkZERWEsMkNBQTJDO2tCQU52RCxTQUFTOytCQUNFLHdDQUF3QyxhQUd2QyxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGJ4QXV0aFNlcnZpY2UsIEhhbmRsZUFjdGlvbldpdGhDb250ZXh0IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4V2lkZ2V0RGF0YVBhaXIsIFR3b0NvbHVtbnNDb250ZXh0U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IERldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvblNwZWNpZmllciB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBJc01vZGlmaWVkRnVuY3Rpb24sIFN1YnNjcmlwdGlvbk9iamVjdCwgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgZmlyc3QsIEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9kZXZlbG9wbWVudC53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZSB9IGZyb20gJy4vZGV2ZWxvcG1lbnQuc2NoZWR1bGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29udGVudEZvcm1WYWx1ZSB9IGZyb20gJy4vZGV2ZWxvcG1lbnQucG9wdXAuY29udGVudC5mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBtc1RvU2Vjb25kcyB9IGZyb20gJ0BkZXJlZWtiL2RhdGUnO1xuaW1wb3J0IHsgREVWRUxPUE1FTlRfRklSRUJBU0VfU0VSVkVSX1NDSEVEVUxFUl9XSURHRVRfS0VZIH0gZnJvbSAnLi9kZXZlbG9wbWVudC5zY2hlZHVsZXIud2lkZ2V0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1kZXZlbG9wbWVudC1wb3B1cC1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmVsb3BtZW50LnBvcHVwLmNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZXZlbG9wbWVudC5wb3B1cC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtUd29Db2x1bW5zQ29udGV4dFN0b3JlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9iYWNrU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGVudHJpZXMgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlLmdldEVudHJpZXMoKTtcblxuICBwcml2YXRlIF9hY3RpdmVFbnRyeVNlbGVjdG9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25TcGVjaWZpZXI+PihERVZFTE9QTUVOVF9GSVJFQkFTRV9TRVJWRVJfU0NIRURVTEVSX1dJREdFVF9LRVkpO1xuXG4gIHJlYWRvbmx5IGlzTG9nZ2VkSW4kID0gdGhpcy5kYnhBdXRoU2VydmljZS5pc0xvZ2dlZEluJDtcblxuICByZWFkb25seSBlbnRyaWVzJCA9IHRoaXMuaXNMb2dnZWRJbiQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoaXNMb2dnZWRJbikgPT4gdGhpcy5lbnRyaWVzKSxcbiAgICB0YXBMb2coJ0VudHJpZXMnKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1Db25maWckID0gdGhpcy5lbnRyaWVzJC5waXBlKG1hcCgoZW50cmllcykgPT4gKHsgZW50cmllcyB9KSkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeVNlbGVjdG9yJCA9IHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgY3VycmVudEFjdGl2ZUVudHJ5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZW50cmllcyQsIHRoaXMuYWN0aXZlRW50cnlTZWxlY3RvciRdKS5waXBlKFxuICAgIG1hcCgoW2VudHJpZXMsIHNlbGVjdG9yXSkgPT4gKHNlbGVjdG9yID8gZW50cmllcy5maW5kKChlKSA9PiBlLndpZGdldC50eXBlID09PSBzZWxlY3RvcikgOiB1bmRlZmluZWQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dSaWdodCQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShtYXAoKHgpID0+IHggIT0gbnVsbCkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeSQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgcmlnaHRUaXRsZSQgPSB0aGlzLmFjdGl2ZUVudHJ5JC5waXBlKG1hcCgoeCkgPT4geC5sYWJlbCkpO1xuICByZWFkb25seSB3aWRnZXRDb25maWckOiBPYnNlcnZhYmxlPERieFdpZGdldERhdGFQYWlyPiA9IHRoaXMuYWN0aXZlRW50cnkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAoeyBkYXRhOiB1bmRlZmluZWQsIHR5cGU6IHgud2lkZ2V0LnR5cGUgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2NoZWR1bGVyUnVubmluZyQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnJ1bm5pbmckO1xuICByZWFkb25seSBzY2hlZHVsZXJJbnRlcnZhbCQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnRpbWVySW50ZXJ2YWwkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBtc1RvU2Vjb25kcyh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgc2NoZWR1bGVyRXJyb3IkID0gdGhpcy5kYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZS5lcnJvciQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gJ0Vycm9yIE9jY3VyZWQnIDogJ09rJykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZm9ybURhdGEkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtVmFsdWU+ID0gdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKChzcGVjaWZpZXIpID0+ICh7IHNwZWNpZmllciB9KSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB0d29Db2x1bW5zQ29udGV4dFN0b3JlOiBUd29Db2x1bW5zQ29udGV4dFN0b3JlLCByZWFkb25seSBkYnhBdXRoU2VydmljZTogRGJ4QXV0aFNlcnZpY2UsIHJlYWRvbmx5IGRieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlOiBEYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZSwgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2U6IERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudHdvQ29sdW1uc0NvbnRleHRTdG9yZS5zZXRTaG93UmlnaHQodGhpcy5zaG93UmlnaHQkKTtcbiAgICB0aGlzLl9iYWNrU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMudHdvQ29sdW1uc0NvbnRleHRTdG9yZS5iYWNrJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlRm9ybVVwZGF0ZTogSGFuZGxlQWN0aW9uV2l0aENvbnRleHQ8RGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29udGVudEZvcm1WYWx1ZSwgdm9pZD4gPSAodmFsdWUsIGNvbnRleHQpID0+IHtcbiAgICB0aGlzLl9hY3RpdmVFbnRyeVNlbGVjdG9yLm5leHQodmFsdWUuc3BlY2lmaWVyKTtcbiAgICBjb250ZXh0LnN1Y2Nlc3MoKTtcbiAgfTtcblxuICByZWFkb25seSBpc0Zvcm1Nb2RpZmllZDogSXNNb2RpZmllZEZ1bmN0aW9uPERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtVmFsdWU+ID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IucGlwZShcbiAgICAgIG1hcCgoY3VycmVudFNlbGVjdG9yKSA9PiB2YWx1ZS5zcGVjaWZpZXIgIT09IGN1cnJlbnRTZWxlY3RvciksXG4gICAgICBmaXJzdCgpXG4gICAgKTtcbiAgfTtcblxuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICB0aGlzLl9hY3RpdmVFbnRyeVNlbGVjdG9yLm5leHQodW5kZWZpbmVkKTtcbiAgfVxufVxuIiwiPGRieC10d28tY29sdW1uIGNsYXNzPVwiZGJ4LWZpcmViYXNlLWRldmVsb3BtZW50LXBvcHVwLWNvbnRlbnRcIiBbZGJ4VHdvQ29sdW1uRnVsbExlZnRdPVwidHJ1ZVwiPlxuICA8ZGJ4LXR3by1ibG9jayBsZWZ0PlxuICAgIDxkaXY+XG4gICAgICA8aDQ+SW5mbzwvaDQ+XG4gICAgICA8cD5TY2hlZHVsZXIgKFJ1bm5pbmcpOiB7eyBzY2hlZHVsZXJSdW5uaW5nJCB8IGFzeW5jIH19IDoge3sgc2NoZWR1bGVySW50ZXJ2YWwkIHwgYXN5bmMgfX1zIDoge3sgc2NoZWR1bGVyRXJyb3IkIHwgYXN5bmMgfX08L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxoND5Ub29sczwvaDQ+XG4gICAgICA8ZGl2IGRieEFjdGlvbiBkYnhBY3Rpb25FbmZvcmNlTW9kaWZpZWQgZGJ4QWN0aW9uQXV0b1RyaWdnZXIgaW5zdGFudFRyaWdnZXIgZGJ4QWN0aW9uTG9nZ2VyIFtkYnhBY3Rpb25IYW5kbGVyXT1cImhhbmRsZUZvcm1VcGRhdGVcIj5cbiAgICAgICAgPGRieC1maXJlYmFzZS1kZXZlbG9wbWVudC1wb3B1cC1jb250ZW50LWZvcm0gZGJ4QWN0aW9uRm9ybSBbZGJ4Rm9ybVNvdXJjZV09XCJmb3JtRGF0YSRcIiBkYnhGb3JtU291cmNlTW9kZT1cImFsd2F5c1wiIFtkYnhBY3Rpb25Gb3JtTW9kaWZpZWRdPVwiaXNGb3JtTW9kaWZpZWRcIiBbY29uZmlnXT1cImZvcm1Db25maWckIHwgYXN5bmNcIj48L2RieC1maXJlYmFzZS1kZXZlbG9wbWVudC1wb3B1cC1jb250ZW50LWZvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kYngtdHdvLWJsb2NrPlxuICA8ZGJ4LXR3by1jb2x1bW4tcmlnaHQgcmlnaHQgW2hlYWRlcl09XCIocmlnaHRUaXRsZSQgfCBhc3luYykgfHwgJydcIj5cbiAgICA8ZGJ4LXdpZGdldC12aWV3IFtjb25maWddPVwid2lkZ2V0Q29uZmlnJCB8IGFzeW5jXCI+PC9kYngtd2lkZ2V0LXZpZXc+XG4gIDwvZGJ4LXR3by1jb2x1bW4tcmlnaHQ+XG48L2RieC10d28tY29sdW1uPlxuIl19
|
|
75
|
+
args: [{ selector: 'dbx-firebase-development-popup-content', providers: [TwoColumnsContextStore], 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): {{ schedulerRunning$ | async }} : {{ schedulerInterval$ | async }}s : {{ schedulerError$ | async }}</p>\n <div>\n <dbx-anchor [anchor]=\"emulatorUIAnchor\" *ngIf=\"showEmulatorButton\">\n <button mat-flat-button color=\"accent\">Emulator Enabled</button>\n </dbx-anchor>\n </div>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger instantTrigger dbxActionLogger [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form dbxActionForm [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\" [dbxActionFormModified]=\"isFormModified\" [config]=\"formConfig$ | async\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"(rightTitle$ | async) || ''\">\n <dbx-widget-view [config]=\"widgetConfig$ | async\"></dbx-widget-view>\n </dbx-two-column-right>\n</dbx-two-column>\n", styles: [".dbx-firebase-development-popup-content{height:400px;overflow:hidden}\n"] }]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.TwoColumnsContextStore }, { type: i2.DbxAuthService }, { type: i3.DbxFirebaseDevelopmentWidgetService }, { type: i4.DbxFirebaseDevelopmentSchedulerService }, { type: i5.DbxFirebaseEmulatorService }]; } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQucG9wdXAuY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2RldmVsb3BtZW50L2RldmVsb3BtZW50LnBvcHVwLmNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixjQUFjLEVBQTJCLE1BQU0sbUJBQW1CLENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxXQUFXLEVBQXNCLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqSCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnREFBZ0QsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLDJDQUEyQztJQXVEdEQsWUFBcUIsc0JBQThDLEVBQVcsY0FBOEIsRUFBVyxtQ0FBd0Us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QUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQWNELGNBQWM7UUFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7O3dJQWxGVSwyQ0FBMkM7NEhBQTNDLDJDQUEyQyxpRUFGM0MsQ0FBQyxzQkFBc0IsQ0FBQywwQkNsQnJDLHlwQ0FzQkE7MkZERmEsMkNBQTJDO2tCQU52RCxTQUFTOytCQUNFLHdDQUF3QyxhQUd2QyxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpY2thYmxlQW5jaG9yLCBEYnhBdXRoU2VydmljZSwgSGFuZGxlQWN0aW9uV2l0aENvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhXaWRnZXREYXRhUGFpciwgVHdvQ29sdW1uc0NvbnRleHRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uU3BlY2lmaWVyIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIElzTW9kaWZpZWRGdW5jdGlvbiwgU3Vic2NyaXB0aW9uT2JqZWN0LCB0YXBMb2cgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBmaXJzdCwgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFdpZGdldFNlcnZpY2UgfSBmcm9tICcuL2RldmVsb3BtZW50LndpZGdldC5zZXJ2aWNlJztcbmltcG9ydCB7IERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlIH0gZnJvbSAnLi9kZXZlbG9wbWVudC5zY2hlZHVsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybVZhbHVlIH0gZnJvbSAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IG1zVG9TZWNvbmRzIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBERVZFTE9QTUVOVF9GSVJFQkFTRV9TRVJWRVJfU0NIRURVTEVSX1dJREdFVF9LRVkgfSBmcm9tICcuL2RldmVsb3BtZW50LnNjaGVkdWxlci53aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IERieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV2ZWxvcG1lbnQucG9wdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHdvQ29sdW1uc0NvbnRleHRTdG9yZV1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYmFja1N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBlbnRyaWVzID0gdGhpcy5kYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZS5nZXRFbnRyaWVzKCk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlRW50cnlTZWxlY3RvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uU3BlY2lmaWVyPj4oREVWRUxPUE1FTlRfRklSRUJBU0VfU0VSVkVSX1NDSEVEVUxFUl9XSURHRVRfS0VZKTtcblxuICBnZXQgc2hvd0VtdWxhdG9yQnV0dG9uKCkge1xuICAgIHJldHVybiB0aGlzLmRieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlLnVzZUVtdWxhdG9ycyA9PT0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBlbXVsYXRvclVJQW5jaG9yKCk6IENsaWNrYWJsZUFuY2hvciB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4RmlyZWJhc2VFbXVsYXRvclNlcnZpY2UuZW11bGF0b3JVSUFuY2hvciA/PyB7fTtcbiAgfVxuXG4gIHJlYWRvbmx5IGlzTG9nZ2VkSW4kID0gdGhpcy5kYnhBdXRoU2VydmljZS5pc0xvZ2dlZEluJDtcblxuICByZWFkb25seSBlbnRyaWVzJCA9IHRoaXMuaXNMb2dnZWRJbiQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoaXNMb2dnZWRJbikgPT4gdGhpcy5lbnRyaWVzKSxcbiAgICB0YXBMb2coJ0VudHJpZXMnKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1Db25maWckID0gdGhpcy5lbnRyaWVzJC5waXBlKG1hcCgoZW50cmllcykgPT4gKHsgZW50cmllcyB9KSkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeVNlbGVjdG9yJCA9IHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgY3VycmVudEFjdGl2ZUVudHJ5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZW50cmllcyQsIHRoaXMuYWN0aXZlRW50cnlTZWxlY3RvciRdKS5waXBlKFxuICAgIG1hcCgoW2VudHJpZXMsIHNlbGVjdG9yXSkgPT4gKHNlbGVjdG9yID8gZW50cmllcy5maW5kKChlKSA9PiBlLndpZGdldC50eXBlID09PSBzZWxlY3RvcikgOiB1bmRlZmluZWQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dSaWdodCQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShtYXAoKHgpID0+IHggIT0gbnVsbCkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeSQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgcmlnaHRUaXRsZSQgPSB0aGlzLmFjdGl2ZUVudHJ5JC5waXBlKG1hcCgoeCkgPT4geC5sYWJlbCkpO1xuICByZWFkb25seSB3aWRnZXRDb25maWckOiBPYnNlcnZhYmxlPERieFdpZGdldERhdGFQYWlyPiA9IHRoaXMuYWN0aXZlRW50cnkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAoeyBkYXRhOiB1bmRlZmluZWQsIHR5cGU6IHgud2lkZ2V0LnR5cGUgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2NoZWR1bGVyUnVubmluZyQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnJ1bm5pbmckO1xuICByZWFkb25seSBzY2hlZHVsZXJJbnRlcnZhbCQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnRpbWVySW50ZXJ2YWwkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBtc1RvU2Vjb25kcyh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgc2NoZWR1bGVyRXJyb3IkID0gdGhpcy5kYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZS5lcnJvciQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gJ0Vycm9yIE9jY3VyZWQnIDogJ09rJykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZm9ybURhdGEkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtVmFsdWU+ID0gdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKChzcGVjaWZpZXIpID0+ICh7IHNwZWNpZmllciB9KSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB0d29Db2x1bW5zQ29udGV4dFN0b3JlOiBUd29Db2x1bW5zQ29udGV4dFN0b3JlLCByZWFkb25seSBkYnhBdXRoU2VydmljZTogRGJ4QXV0aFNlcnZpY2UsIHJlYWRvbmx5IGRieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlOiBEYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZSwgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2U6IERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLCByZWFkb25seSBkYnhGaXJlYmFzZUVtdWxhdG9yU2VydmljZTogRGJ4RmlyZWJhc2VFbXVsYXRvclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50d29Db2x1bW5zQ29udGV4dFN0b3JlLnNldFNob3dSaWdodCh0aGlzLnNob3dSaWdodCQpO1xuICAgIHRoaXMuX2JhY2tTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy50d29Db2x1bW5zQ29udGV4dFN0b3JlLmJhY2skLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3RpdmVFbnRyeVNlbGVjdG9yLmNvbXBsZXRlKCk7XG4gIH1cblxuICByZWFkb25seSBoYW5kbGVGb3JtVXBkYXRlOiBIYW5kbGVBY3Rpb25XaXRoQ29udGV4dDxEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybVZhbHVlLCB2b2lkPiA9ICh2YWx1ZSwgY29udGV4dCkgPT4ge1xuICAgIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IubmV4dCh2YWx1ZS5zcGVjaWZpZXIpO1xuICAgIGNvbnRleHQuc3VjY2VzcygpO1xuICB9O1xuXG4gIHJlYWRvbmx5IGlzRm9ybU1vZGlmaWVkOiBJc01vZGlmaWVkRnVuY3Rpb248RGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29udGVudEZvcm1WYWx1ZT4gPSAodmFsdWUpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5waXBlKFxuICAgICAgbWFwKChjdXJyZW50U2VsZWN0b3IpID0+IHZhbHVlLnNwZWNpZmllciAhPT0gY3VycmVudFNlbGVjdG9yKSxcbiAgICAgIGZpcnN0KClcbiAgICApO1xuICB9O1xuXG4gIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IubmV4dCh1bmRlZmluZWQpO1xuICB9XG59XG4iLCI8ZGJ4LXR3by1jb2x1bW4gY2xhc3M9XCJkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudFwiIFtkYnhUd29Db2x1bW5GdWxsTGVmdF09XCJ0cnVlXCI+XG4gIDxkYngtdHdvLWJsb2NrIGxlZnQ+XG4gICAgPGRpdj5cbiAgICAgIDxoND5JbmZvPC9oND5cbiAgICAgIDxwPlNjaGVkdWxlciAoUnVubmluZyk6IHt7IHNjaGVkdWxlclJ1bm5pbmckIHwgYXN5bmMgfX0gOiB7eyBzY2hlZHVsZXJJbnRlcnZhbCQgfCBhc3luYyB9fXMgOiB7eyBzY2hlZHVsZXJFcnJvciQgfCBhc3luYyB9fTwvcD5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkYngtYW5jaG9yIFthbmNob3JdPVwiZW11bGF0b3JVSUFuY2hvclwiICpuZ0lmPVwic2hvd0VtdWxhdG9yQnV0dG9uXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIj5FbXVsYXRvciBFbmFibGVkPC9idXR0b24+XG4gICAgICAgIDwvZGJ4LWFuY2hvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aDQ+VG9vbHM8L2g0PlxuICAgICAgPGRpdiBkYnhBY3Rpb24gZGJ4QWN0aW9uRW5mb3JjZU1vZGlmaWVkIGRieEFjdGlvbkF1dG9UcmlnZ2VyIGluc3RhbnRUcmlnZ2VyIGRieEFjdGlvbkxvZ2dlciBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVGb3JtVXBkYXRlXCI+XG4gICAgICAgIDxkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudC1mb3JtIGRieEFjdGlvbkZvcm0gW2RieEZvcm1Tb3VyY2VdPVwiZm9ybURhdGEkXCIgZGJ4Rm9ybVNvdXJjZU1vZGU9XCJhbHdheXNcIiBbZGJ4QWN0aW9uRm9ybU1vZGlmaWVkXT1cImlzRm9ybU1vZGlmaWVkXCIgW2NvbmZpZ109XCJmb3JtQ29uZmlnJCB8IGFzeW5jXCI+PC9kYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudC1mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGJ4LXR3by1ibG9jaz5cbiAgPGRieC10d28tY29sdW1uLXJpZ2h0IHJpZ2h0IFtoZWFkZXJdPVwiKHJpZ2h0VGl0bGUkIHwgYXN5bmMpIHx8ICcnXCI+XG4gICAgPGRieC13aWRnZXQtdmlldyBbY29uZmlnXT1cIndpZGdldENvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LXdpZGdldC12aWV3PlxuICA8L2RieC10d28tY29sdW1uLXJpZ2h0PlxuPC9kYngtdHdvLWNvbHVtbj5cbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class DbxFirebaseParsedEmulatorsConfig {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW11bGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZW11bGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDQSxNQUFNLE9BQWdCLGdDQUFnQztDQVNyRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VFbXVsYXRvckNvbmZpZyB7XG4gIC8qKlxuICAgKiBQb3J0IHRvIHRhcmdldC5cbiAgICovXG4gIHBvcnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIERlZmF1bHRzIHRvIGxvY2FsaG9zdCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICBob3N0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRW11bGF0b3JzQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGVuYWJsZSB0aGUgZW11bGF0b3JzLlxuICAgKi9cbiAgdXNlRW11bGF0b3JzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmF1bHQgaG9zdCB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGxvY2FsaG9zdCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICBob3N0Pzogc3RyaW5nO1xuICAvKipcbiAgICogZW11bGF0b3IgVUkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgdWk/OiBEYnhGaXJlYmFzZUVtdWxhdG9yQ29uZmlnO1xuICAvKipcbiAgICogQXV0aCBlbXVsYXRvciBjb25maWd1cmF0aW9uXG4gICAqL1xuICBhdXRoPzogRGJ4RmlyZWJhc2VFbXVsYXRvckNvbmZpZztcbiAgLyoqXG4gICAqIEZpcmVzdG9yZSBlbXVsYXRvciBjb25maWd1cmF0aW9uXG4gICAqL1xuICBmaXJlc3RvcmU/OiBEYnhGaXJlYmFzZUVtdWxhdG9yQ29uZmlnO1xuICAvKipcbiAgICogRmlyZXN0b3JlIGVtdWxhdG9yIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHN0b3JhZ2U/OiBEYnhGaXJlYmFzZUVtdWxhdG9yQ29uZmlnO1xuICAvKipcbiAgICogRnVuY3Rpb25zIGVtdWxhdG9yIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGZ1bmN0aW9ucz86IERieEZpcmViYXNlRW11bGF0b3JDb25maWc7XG4gIC8qKlxuICAgKiBEYXRhYmFzZSBlbXVsYXRvciBjb25maWd1cmF0aW9uXG4gICAqL1xuICBkYXRhYmFzZT86IERieEZpcmViYXNlRW11bGF0b3JDb25maWc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZyBpbXBsZW1lbnRzIERieEZpcmViYXNlRW11bGF0b3JzQ29uZmlnIHtcbiAgYWJzdHJhY3QgdXNlRW11bGF0b3JzOiBib29sZWFuO1xuICBob3N0Pzogc3RyaW5nO1xuICB1aT86IFJlcXVpcmVkPERieEZpcmViYXNlRW11bGF0b3JDb25maWc+O1xuICBhdXRoPzogUmVxdWlyZWQ8RGJ4RmlyZWJhc2VFbXVsYXRvckNvbmZpZz47XG4gIGZpcmVzdG9yZT86IFJlcXVpcmVkPERieEZpcmViYXNlRW11bGF0b3JDb25maWc+O1xuICBzdG9yYWdlPzogUmVxdWlyZWQ8RGJ4RmlyZWJhc2VFbXVsYXRvckNvbmZpZz47XG4gIGZ1bmN0aW9ucz86IFJlcXVpcmVkPERieEZpcmViYXNlRW11bGF0b3JDb25maWc+O1xuICBkYXRhYmFzZT86IFJlcXVpcmVkPERieEZpcmViYXNlRW11bGF0b3JDb25maWc+O1xufVxuIl19
|
|
@@ -12,6 +12,7 @@ export class DbxFirebaseEmulatorModule {
|
|
|
12
12
|
}
|
|
13
13
|
const finalConfig = {
|
|
14
14
|
useEmulators: config.useEmulators !== false,
|
|
15
|
+
ui: emulatorConfig(config.ui),
|
|
15
16
|
auth: emulatorConfig(config.auth),
|
|
16
17
|
firestore: emulatorConfig(config.firestore),
|
|
17
18
|
storage: emulatorConfig(config.storage),
|
|
@@ -35,4 +36,4 @@ DbxFirebaseEmulatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0
|
|
|
35
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseEmulatorModule, decorators: [{
|
|
36
37
|
type: NgModule
|
|
37
38
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuZW11bGF0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UuZW11bGF0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBeUQsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3RIOztHQUVHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO1FBRS9DLFNBQVMsY0FBYyxDQUFDLFFBQTBDO1lBQ2hFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUYsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFxQztZQUNwRCxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksS0FBSyxLQUFLO1lBQzNDLEVBQUUsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDakMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzNDLE9BQU8sRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUN2QyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDM0MsUUFBUSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQzFDLENBQUM7UUFFRixPQUFPO1lBQ0wsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGdDQUFnQztvQkFDekMsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7c0hBM0JVLHlCQUF5Qjt1SEFBekIseUJBQXlCO3VIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUVtdWxhdG9yQ29uZmlnLCBEYnhGaXJlYmFzZUVtdWxhdG9yc0NvbmZpZywgRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcgfSBmcm9tICcuL2VtdWxhdG9ycyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIFVzZWQgdG8gY29uZmlndXJlIHRoZSBEYnhGaXJlYmFzZUVtdWxhdG9yc0NvbmZpZyBwcm92aWRlci5cbiAqL1xuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUVtdWxhdG9yTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBEYnhGaXJlYmFzZUVtdWxhdG9yc0NvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4RmlyZWJhc2VFbXVsYXRvck1vZHVsZT4ge1xuICAgIGNvbnN0IGRlZmF1bHRIb3N0ID0gY29uZmlnLmhvc3QgPz8gJ2xvY2FsaG9zdCc7XG5cbiAgICBmdW5jdGlvbiBlbXVsYXRvckNvbmZpZyhlbXVsYXRvcjogTWF5YmU8RGJ4RmlyZWJhc2VFbXVsYXRvckNvbmZpZz4pOiBSZXF1aXJlZDxEYnhGaXJlYmFzZUVtdWxhdG9yQ29uZmlnPiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gZW11bGF0b3IgPyB7IGhvc3Q6IGVtdWxhdG9yLmhvc3QgPz8gZGVmYXVsdEhvc3QsIHBvcnQ6IGVtdWxhdG9yLnBvcnQgfSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5hbENvbmZpZzogRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcgPSB7XG4gICAgICB1c2VFbXVsYXRvcnM6IGNvbmZpZy51c2VFbXVsYXRvcnMgIT09IGZhbHNlLFxuICAgICAgdWk6IGVtdWxhdG9yQ29uZmlnKGNvbmZpZy51aSksXG4gICAgICBhdXRoOiBlbXVsYXRvckNvbmZpZyhjb25maWcuYXV0aCksXG4gICAgICBmaXJlc3RvcmU6IGVtdWxhdG9yQ29uZmlnKGNvbmZpZy5maXJlc3RvcmUpLFxuICAgICAgc3RvcmFnZTogZW11bGF0b3JDb25maWcoY29uZmlnLnN0b3JhZ2UpLFxuICAgICAgZnVuY3Rpb25zOiBlbXVsYXRvckNvbmZpZyhjb25maWcuZnVuY3Rpb25zKSxcbiAgICAgIGRhdGFiYXNlOiBlbXVsYXRvckNvbmZpZyhjb25maWcuZGF0YWJhc2UpXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGJ4RmlyZWJhc2VFbXVsYXRvck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsXG4gICAgICAgICAgdXNlVmFsdWU6IGZpbmFsQ29uZmlnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./emulators";
|
|
5
|
+
export class DbxFirebaseEmulatorService {
|
|
6
|
+
constructor(emulatorsConfig) {
|
|
7
|
+
this.emulatorsConfig = emulatorsConfig;
|
|
8
|
+
}
|
|
9
|
+
get useEmulators() {
|
|
10
|
+
return this.emulatorsConfig.useEmulators || false;
|
|
11
|
+
}
|
|
12
|
+
get emulatorUIAnchor() {
|
|
13
|
+
const ui = this.emulatorsConfig.ui;
|
|
14
|
+
console.log('Config: ', ui, this.emulatorsConfig);
|
|
15
|
+
return ui
|
|
16
|
+
? {
|
|
17
|
+
url: `http://${ui.host ?? 'localhost'}:${ui.port}`,
|
|
18
|
+
target: '_blank'
|
|
19
|
+
}
|
|
20
|
+
: undefined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
DbxFirebaseEmulatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseEmulatorService, deps: [{ token: i1.DbxFirebaseParsedEmulatorsConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
+
DbxFirebaseEmulatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseEmulatorService, providedIn: 'root' });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFirebaseEmulatorService, decorators: [{
|
|
26
|
+
type: Injectable,
|
|
27
|
+
args: [{
|
|
28
|
+
providedIn: 'root'
|
|
29
|
+
}]
|
|
30
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseParsedEmulatorsConfig }]; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuZW11bGF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmViYXNlL2ZpcmViYXNlLmVtdWxhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUsvRCxNQUFNLE9BQU8sMEJBQTBCO0lBa0JyQyxZQUFxQixlQUFpRDtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBa0M7SUFBRyxDQUFDO0lBakIxRSxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFFbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVsRCxPQUFPLEVBQUU7WUFDUCxDQUFDLENBQUM7Z0JBQ0UsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDbEQsTUFBTSxFQUFFLFFBQVE7YUFDakI7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7O3VIQWhCVSwwQkFBMEI7MkhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlja2FibGVBbmNob3IsIENsaWNrYWJsZVVybCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZyB9IGZyb20gJy4vZW11bGF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VFbXVsYXRvclNlcnZpY2Uge1xuICBnZXQgdXNlRW11bGF0b3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVtdWxhdG9yc0NvbmZpZy51c2VFbXVsYXRvcnMgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgZW11bGF0b3JVSUFuY2hvcigpOiBNYXliZTxDbGlja2FibGVVcmw+IHtcbiAgICBjb25zdCB1aSA9IHRoaXMuZW11bGF0b3JzQ29uZmlnLnVpO1xuXG4gICAgY29uc29sZS5sb2coJ0NvbmZpZzogJywgdWksIHRoaXMuZW11bGF0b3JzQ29uZmlnKTtcblxuICAgIHJldHVybiB1aVxuICAgICAgPyB7XG4gICAgICAgICAgdXJsOiBgaHR0cDovLyR7dWkuaG9zdCA/PyAnbG9jYWxob3N0J306JHt1aS5wb3J0fWAsXG4gICAgICAgICAgdGFyZ2V0OiAnX2JsYW5rJ1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVtdWxhdG9yc0NvbmZpZzogRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcpIHt9XG59XG4iXX0=
|
|
@@ -2,5 +2,6 @@ export * from './appcheck';
|
|
|
2
2
|
export * from './emulators';
|
|
3
3
|
export * from './firebase.module';
|
|
4
4
|
export * from './firebase.emulator.module';
|
|
5
|
+
export * from './firebase.emulator.service';
|
|
5
6
|
export * from './options';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9maXJlYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwY2hlY2snO1xuZXhwb3J0ICogZnJvbSAnLi9lbXVsYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5lbXVsYXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5lbXVsYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XG4iXX0=
|