@ng-atomic/common 17.8.0 → 17.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/pipes/smart-field/smart-field.pipe.mjs +1 -1
- package/esm2022/services/app/app.service.mjs +30 -0
- package/esm2022/services/app/index.mjs +2 -0
- package/esm2022/services/app/ng-atomic-common-services-app.mjs +5 -0
- package/esm2022/services/auth/auth.service.mjs +7 -2
- package/esm2022/services/fab/fab.service.mjs +17 -3
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-app.mjs +37 -0
- package/fesm2022/ng-atomic-common-services-app.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-auth.mjs +8 -3
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-fab.mjs +16 -2
- package/fesm2022/ng-atomic-common-services-fab.mjs.map +1 -1
- package/package.json +8 -2
- package/pipes/smart-field/smart-field.pipe.d.ts +1 -0
- package/services/app/app.service.d.ts +20 -0
- package/services/app/index.d.ts +1 -0
- package/services/auth/auth.service.d.ts +2 -0
- package/services/fab/fab.service.d.ts +8 -1
|
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
30
30
|
type: Pipe,
|
|
31
31
|
args: [{ name: 'smartField', standalone: true, pure: true }]
|
|
32
32
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmllbGQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvcGlwZXMvc21hcnQtZmllbGQvc21hcnQtZmllbGQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQzs7QUFvSDdCLGtCQUFrQjtBQUNsQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWUsK0JBQStCLENBQUMsQ0FBQztBQUVoRyxrQkFBa0I7QUFDbEIsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQThCO0lBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFJRCxrQkFBa0I7QUFDbEIsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFjO0lBQzVDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBYyxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVELGtCQUFrQjtBQUVsQixNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVZLFFBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUk7WUFDMUQsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUMzQixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzNCLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDNUIsQ0FBQztLQUtIO0lBSEMsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFvQixJQUFJLENBQUMsR0FBRztRQUNqRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FUVSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IFNpZ25hbE9yVmFsdWUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zaWduYWwnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbjxUPiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IFQ7XG59XG5cbmludGVyZmFjZSBCYXNlRmllbGQge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgaGludD86IFNpZ25hbE9yVmFsdWU8c3RyaW5nPjtcbiAgYWN0aW9ucz86IEFjdGlvbltdIHwgU2lnbmFsPEFjdGlvbltdPjtcbn1cblxuaW50ZXJmYWNlIFRleHRGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICd0ZXh0JztcbiAgYXV0b0NvbXBsZXRlPzogU2lnbmFsT3JWYWx1ZTxzdHJpbmdbXT47XG59XG5cbmludGVyZmFjZSBQYXNzd29yZEZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3Bhc3N3b3JkJztcbn1cblxuaW50ZXJmYWNlIE51bWJlckZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ251bWJlcic7XG59XG5cbmludGVyZmFjZSBUZXh0YXJlYUZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3RleHRhcmVhJztcbiAgcm93cz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIERhdGVJbnB1dEZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ2RhdGUnO1xufVxuXG5pbnRlcmZhY2UgRGF0ZVJhbmdlSW5wdXRGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdkYXRlLXJhbmdlJztcbn1cblxuaW50ZXJmYWNlIFNlbGVjdEZpZWxkPFQ+IGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3NlbGVjdCc7XG4gIG9wdGlvbnM6IE9wdGlvbjxUPltdIHwgU2lnbmFsPE9wdGlvbjxUPltdPjtcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGltZVJhbmdlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAndGltZS1yYW5nZSc7XG59XG5cbi8vKiBAZGVwcmVjYXRlZCB1c2UgbXVsdGlwbGUgb3B0aW9uICovXG5pbnRlcmZhY2UgTXVsdGlTZWxlY3RGaWVsZDxUPiBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdtdWx0aS1zZWxlY3QnO1xuICBvcHRpb25zOiBPcHRpb248VD5bXSB8IFNpZ25hbDxPcHRpb248VD5bXT47XG59XG5cbmludGVyZmFjZSBGaWxlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAnZmlsZSc7XG4gIHByb2dyZXNzPzogU2lnbmFsPG51bWJlciB8IG51bGw+O1xufVxuXG5pbnRlcmZhY2UgQWN0aW9uRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAnYWN0aW9uJztcbiAgYWN0aW9uczogQWN0aW9uW10gfCBTaWduYWw8QWN0aW9uW10+O1xuICBidXR0b25UeXBlPzogJ2ZsYXQnIHwgJ3JhaXNlZCcgfCAnc3Ryb2tlZCcgfCAnaWNvbic7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEFncmVlbWVudEZpZWxkIHtcbiAgdHlwZTogJ2FncmVlbWVudCc7XG4gIGxhYmVsVGVtcDogbnVsbCB8IGFueTtcbn1cblxuaW50ZXJmYWNlIFNsaWRlckZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3NsaWRlcic7XG4gIHNsaWRlcjoge1xuICAgIG1pbj86IG51bWJlcjtcbiAgICBtYXg/OiBudW1iZXI7XG4gICAgc3RlcD86IG51bWJlcjtcbiAgfVxufVxuXG5pbnRlcmZhY2UgSGlkZGVuRmllbGQge1xuICB0eXBlOiAnaGlkZGVuJztcbn1cblxuaW50ZXJmYWNlIFByZXZpZXdGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdwcmV2aWV3Jztcbn1cblxuaW50ZXJmYWNlIFByZXZpZXdJbWFnZUZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3ByZXZpZXc6aW1hZ2UnO1xufVxuXG5leHBvcnQgdHlwZSBGb3JtRmllbGQ8ViA9IGFueT4gPSBcbiAgfCBUZXh0RmllbGRcbiAgfCBQYXNzd29yZEZpZWxkXG4gIHwgVGV4dGFyZWFGaWVsZFxuICB8IERhdGVJbnB1dEZpZWxkXG4gIHwgRGF0ZVJhbmdlSW5wdXRGaWVsZFxuICB8IFNlbGVjdEZpZWxkPFY+XG4gIHwgVGltZVJhbmdlRmllbGRcbiAgfCBNdWx0aVNlbGVjdEZpZWxkPFY+XG4gIHwgRmlsZUZpZWxkXG4gIHwgQWN0aW9uRmllbGRcbiAgfCBIaWRkZW5GaWVsZFxuICB8IE51bWJlckZpZWxkXG4gIHwgUHJldmlld0ZpZWxkXG4gIHwgQWdyZWVtZW50RmllbGRcbiAgfCBTbGlkZXJGaWVsZFxuICB8IFByZXZpZXdJbWFnZUZpZWxkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1GaWVsZE1hcCB7XG4gIFtrZXk6IHN0cmluZ106IEZvcm1GaWVsZDxhbnk+IHwgRm9ybUZpZWxkTWFwO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBjb25zdCBGT1JNX0ZJRUxEX01BUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtRmllbGRNYXA+KCdbQG5nLWF0b21pY10gU21hcnQgRm9ybSBGaWVsZCcpO1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRm9ybUZpZWxkTWFwKHVzZUZhY3Rvcnk6ICgpID0+IEZvcm1GaWVsZE1hcCkge1xuICByZXR1cm4geyBwcm92aWRlOiBGT1JNX0ZJRUxEX01BUCwgdXNlRmFjdG9yeSB9O1xufVxuXG50eXBlIEVudW08VD4gPSBSZWNvcmQ8c3RyaW5nLCBUPjtcblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPcHRpb25zPFQ+KF9lbnVtOiBFbnVtPFQ+KTogT3B0aW9uPFQ+W10ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhfZW51bSkubWFwKHZhbHVlID0+ICh7dmFsdWUsIG5hbWU6IHZhbHVlfSkgYXMgT3B0aW9uPFQ+KTtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5AUGlwZSh7bmFtZTogJ3NtYXJ0RmllbGQnLCBzdGFuZGFsb25lOiB0cnVlLCBwdXJlOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBTbWFydEZpZWxkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgbWFwID0gaW5qZWN0KEZPUk1fRklFTERfTUFQLCB7b3B0aW9uYWw6IHRydWV9KSA/PyB7XG4gICAgY3JlYXRlZEF0OiB7IHR5cGU6ICdkYXRlJyB9LFxuICAgIHVwZGF0ZWRBdDogeyB0eXBlOiAnZGF0ZScgfSxcbiAgICBkZWxldGVkQXQ6IHsgdHlwZTogJ2RhdGUnIH0sXG4gIH07XG5cbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBtYXA6IEZvcm1GaWVsZE1hcCA9IHRoaXMubWFwKTogRm9ybUZpZWxkPGFueT4ge1xuICAgIHJldHVybiBnZXQobWFwLCBrZXkpID8/IHt0eXBlOiAnaW5wdXQnfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { LoadingService } from '@ng-atomic/common/services/loading';
|
|
4
|
+
import { SideAppService } from '@ng-atomic/common/services/side-app';
|
|
5
|
+
import { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';
|
|
6
|
+
import { FabService } from '@ng-atomic/common/services/fab';
|
|
7
|
+
import { SnackBarService } from '@ng-atomic/common/services/snack-bar';
|
|
8
|
+
import { Clipboard } from '@angular/cdk/clipboard';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class AppService {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.loading = inject(LoadingService);
|
|
13
|
+
this.sideApp = inject(SideAppService);
|
|
14
|
+
this.sideNavMode = inject(SideNavModeService);
|
|
15
|
+
this.sideNav = inject(SideNavModeService);
|
|
16
|
+
this.router = inject(Router);
|
|
17
|
+
this.fab = inject(FabService);
|
|
18
|
+
this.snackBar = inject(SnackBarService);
|
|
19
|
+
this.clipboard = inject(Clipboard);
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, providedIn: 'root' }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC9hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVyxZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixRQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN4Qzs4R0FUWSxVQUFVO2tIQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvbG9hZGluZyc7XG5pbXBvcnQgeyBTaWRlQXBwU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3NpZGUtYXBwJztcbmltcG9ydCB7IFNpZGVOYXZNb2RlU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3NpZGUtbmF2LW1vZGUnO1xuaW1wb3J0IHsgRmFiU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL2ZhYic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zbmFjay1iYXInO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xuICByZWFkb25seSBsb2FkaW5nID0gaW5qZWN0KExvYWRpbmdTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgc2lkZUFwcCA9IGluamVjdChTaWRlQXBwU2VydmljZSk7XG4gIHJlYWRvbmx5IHNpZGVOYXZNb2RlID0gaW5qZWN0KFNpZGVOYXZNb2RlU2VydmljZSk7XG4gIHJlYWRvbmx5IHNpZGVOYXYgPSBpbmplY3QoU2lkZU5hdk1vZGVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHJlYWRvbmx5IGZhYiA9IGluamVjdChGYWJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgc25hY2tCYXIgPSBpbmplY3QoU25hY2tCYXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgY2xpcGJvYXJkID0gaW5qZWN0KENsaXBib2FyZCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './app.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLnNlcnZpY2UnO1xuXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Injectable, inject } from '@angular/core';
|
|
2
2
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';
|
|
4
|
+
import { get } from 'lodash-es';
|
|
4
5
|
import { distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class AuthService {
|
|
@@ -8,6 +9,7 @@ export class AuthService {
|
|
|
8
9
|
this.#auth = inject(Auth);
|
|
9
10
|
this.auth$ = authState(this.#auth);
|
|
10
11
|
this.auth = toSignal(this.auth$);
|
|
12
|
+
this.customClaims$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdTokenResult() : of(null)), map(token => token?.claims ?? {}), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
11
13
|
}
|
|
12
14
|
#auth;
|
|
13
15
|
signInWithTwitter() {
|
|
@@ -55,6 +57,9 @@ export function injectTwitterId$() {
|
|
|
55
57
|
return inject(AuthService).auth$.pipe(map(auth => auth?.providerData?.[0]?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
56
58
|
}
|
|
57
59
|
export function injectClaim$(claim) {
|
|
58
|
-
return inject(AuthService).
|
|
60
|
+
return inject(AuthService).customClaims$.pipe(map(token => claim ? get(token, claim) : token), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
59
61
|
}
|
|
60
|
-
|
|
62
|
+
export function injectClaim(claim) {
|
|
63
|
+
return toSignal(injectClaim$(claim));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzTixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkJ6RixNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUtFLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsVUFBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsU0FBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUIsa0JBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0IsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFB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Q0FDZCxDQUFDO0FBQ1gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQWEsS0FBYTtJQUNuRCxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsLCB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBdXRoLCBhdXRoU3RhdGUsIHNpZ25JbldpdGhDdXN0b21Ub2tlbiwgR29vZ2xlQXV0aFByb3ZpZGVyLCBUd2l0dGVyQXV0aFByb3ZpZGVyLCBzaWduSW5XaXRoUG9wdXAsIHNpZ25PdXQsIFVzZXJDcmVkZW50aWFsLCBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZCwgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR3aXR0ZXJDcmVkZW50aWFsIHtcbiAgY29udGV4dDogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbFZlcmlmaWVkOiBib29sZWFuO1xuICBleHBpcmVzSW46IHN0cmluZztcbiAgZmVkZXJhdGVkSWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgaWRUb2tlbjogc3RyaW5nO1xuICBraW5kOiAnaWRlbnRpdHl0b29sa2l0I1ZlcmlmeUFzc2VydGlvblJlc3BvbnNlJztcbiAgbG9jYWxJZDogc3RyaW5nO1xuICBvYXV0aEFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG9hdXRoVG9rZW5TZWNyZXQ6IHN0cmluZztcbiAgcGhvdG9Vcmw6IHN0cmluZztcbiAgcHJvdmlkZXJJZDogJ3R3aXR0ZXIuY29tJztcbiAgcmF3VXNlckluZm86IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIHNjcmVlbk5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzdWx0ID0gVXNlckNyZWRlbnRpYWwgJiB7X3Rva2VuUmVzcG9uc2U6IFR3aXR0ZXJDcmVkZW50aWFsfTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuXG4gICNhdXRoID0gaW5qZWN0KEF1dGgpO1xuICBhdXRoJCA9IGF1dGhTdGF0ZSh0aGlzLiNhdXRoKTtcbiAgYXV0aCA9IHRvU2lnbmFsKHRoaXMuYXV0aCQpO1xuXG4gIGN1c3RvbUNsYWltcyQgPSB0aGlzLmF1dGgkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGF1dGggPT4gYXV0aCA/IGF1dGguZ2V0SWRUb2tlblJlc3VsdCgpIDogb2YobnVsbCkpLFxuICAgIG1hcCh0b2tlbiA9PiB0b2tlbj8uY2xhaW1zID8/IHt9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xuXG4gIHNpZ25JbldpdGhUd2l0dGVyKCk6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgVHdpdHRlckF1dGhQcm92aWRlcigpO1xuICAgIHJldHVybiBzaWduSW5XaXRoUG9wdXAodGhpcy4jYXV0aCwgcHJvdmlkZXIpIGFzIFByb21pc2U8UmVzdWx0PlxuICB9XG5cbiAgc2lnbkluV2l0aEdvb2dsZSgpIHtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKTtcbiAgICByZXR1cm4gc2lnbkluV2l0aFBvcHVwKHRoaXMuI2F1dGgsIHByb3ZpZGVyKTtcbiAgfVxuXG4gIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy4jYXV0aCwgZW1haWwsIHBhc3N3b3JkKTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJXaXRoRW1haWxBbmRQYXNzd29yZChlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVVzZXJXaXRoRW1haWxBbmRQYXNzd29yZCh0aGlzLiNhdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgc2lnbkluV2l0aEN1c3RvbVRva2VuKGN1c3RvbVRva2VuOiBzdHJpbmcpOiBQcm9taXNlPFJlc3VsdD4ge1xuICAgIHJldHVybiBzaWduSW5XaXRoQ3VzdG9tVG9rZW4odGhpcy4jYXV0aCwgY3VzdG9tVG9rZW4pIGFzIFByb21pc2U8UmVzdWx0PjtcbiAgfVxuXG4gIHNpZ25PdXQoKSB7XG4gICAgcmV0dXJuIHNpZ25PdXQodGhpcy4jYXV0aCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEF1dGhTdGF0ZSQoKSB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmF1dGgkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QXV0aFN0YXRlKCkge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0QXV0aFN0YXRlJCgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVzZXJJZCQoKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmF1dGgkLnBpcGUoXG4gICAgbWFwKGF1dGggPT4gYXV0aD8udWlkID8/IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVc2VySWQoKTogU2lnbmFsPHN0cmluZyB8IG51bGw+IHtcbiAgcmV0dXJuIHRvU2lnbmFsKGluamVjdFVzZXJJZCQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RUd2l0dGVySWQkKCkge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIG1hcChhdXRoID0+IGF1dGg/LnByb3ZpZGVyRGF0YT8uWzBdPy51aWQgPz8gbnVsbCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENsYWltJDxUID0gc3RyaW5nPihjbGFpbTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmN1c3RvbUNsYWltcyQucGlwZShcbiAgICBtYXAodG9rZW4gPT4gY2xhaW0gPyBnZXQodG9rZW4sIGNsYWltKSA6IHRva2VuKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApIGFzIGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENsYWltPFQgPSBzdHJpbmc+KGNsYWltOiBzdHJpbmcpOiBTaWduYWw8VD4ge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0Q2xhaW0kPFQ+KGNsYWltKSk7XG59XG4iXX0=
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
import { Injectable, signal } from '@angular/core';
|
|
1
|
+
import { inject, Injectable, signal } from '@angular/core';
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
4
|
+
import { filter, map, switchMap, tap } from 'rxjs';
|
|
2
5
|
import * as i0 from "@angular/core";
|
|
3
6
|
export class FabService {
|
|
4
7
|
constructor() {
|
|
5
8
|
this.hidden = signal(false);
|
|
6
|
-
this.
|
|
9
|
+
this.router = inject(Router);
|
|
10
|
+
this.route = inject(ActivatedRoute);
|
|
11
|
+
this.route$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd), map(() => this.findLastChild(this.route)));
|
|
12
|
+
this.actions$ = this.route$.pipe(switchMap((route) => route.data), map(data => data.fabActions || []), tap(actions => console.debug('actions:', actions)));
|
|
13
|
+
this.actions = toSignal(this.actions$);
|
|
14
|
+
}
|
|
15
|
+
findLastChild(route) {
|
|
16
|
+
let child = route;
|
|
17
|
+
while (child.firstChild) {
|
|
18
|
+
child = child.firstChild;
|
|
19
|
+
}
|
|
20
|
+
return child;
|
|
7
21
|
}
|
|
8
22
|
show() {
|
|
9
23
|
this.hidden.set(false);
|
|
@@ -23,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
23
37
|
providedIn: 'root'
|
|
24
38
|
}]
|
|
25
39
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2ZhYi9mYWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9ELE1BQU0sT0FBTyxVQUFVO0lBSHZCO1FBSVcsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQy9DLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBRU8sYUFBUSxHQUF5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ2hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQ2xDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ25ELENBQUM7UUFDTyxZQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQXFCNUM7SUFuQlMsYUFBYSxDQUFDLEtBQXFCO1FBQ3pDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDdkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDMUI7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQWxDVSxVQUFVO2tIQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGYWJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgaGlkZGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICByZWFkb25seSByb3V0ZSQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBtYXAoKCkgPT4gdGhpcy5maW5kTGFzdENoaWxkKHRoaXMucm91dGUpKSxcbiAgKTtcblxuICByZWFkb25seSBhY3Rpb25zJDogT2JzZXJ2YWJsZTxBY3Rpb25bXT4gPSB0aGlzLnJvdXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgocm91dGUpID0+IHJvdXRlLmRhdGEpLFxuICAgIG1hcChkYXRhID0+IGRhdGEuZmFiQWN0aW9ucyB8fCBbXSksXG4gICAgdGFwKGFjdGlvbnMgPT4gY29uc29sZS5kZWJ1ZygnYWN0aW9uczonLCBhY3Rpb25zKSksXG4gICk7XG4gIHJlYWRvbmx5IGFjdGlvbnMgPSB0b1NpZ25hbCh0aGlzLmFjdGlvbnMkKTtcblxuICBwcml2YXRlIGZpbmRMYXN0Q2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogQWN0aXZhdGVkUm91dGUge1xuICAgIGxldCBjaGlsZCA9IHJvdXRlO1xuICAgIHdoaWxlIChjaGlsZC5maXJzdENoaWxkKSB7XG4gICAgICBjaGlsZCA9IGNoaWxkLmZpcnN0Q2hpbGQ7XG4gICAgfVxuICAgIHJldHVybiBjaGlsZDtcbiAgfVxuXG4gIHNob3coKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaGlkZGVuLnVwZGF0ZShoaWRkZW4gPT4gIWhpZGRlbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-pipes-smart-field.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/smart-field.pipe.ts","../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/ng-atomic-common-pipes-smart-field.ts"],"sourcesContent":["import { InjectionToken, Pipe, PipeTransform, Signal, inject } from '@angular/core';\nimport { Action } from '@ng-atomic/core';\nimport { SignalOrValue } from '@ng-atomic/common/pipes/signal';\nimport get from 'lodash.get';\n\n\nexport interface Option<T> {\n name: string;\n value: T;\n}\n\ninterface BaseField {\n placeholder?: string;\n hint?: SignalOrValue<string>;\n actions?: Action[] | Signal<Action[]>;\n}\n\ninterface TextField extends BaseField {\n type: 'text';\n autoComplete?: SignalOrValue<string[]>;\n}\n\ninterface PasswordField extends BaseField {\n type: 'password';\n}\n\ninterface NumberField extends BaseField {\n type: 'number';\n}\n\ninterface TextareaField extends BaseField {\n type: 'textarea';\n rows?: number;\n}\n\ninterface DateInputField extends BaseField {\n type: 'date';\n}\n\ninterface DateRangeInputField extends BaseField {\n type: 'date-range';\n}\n\ninterface SelectField<T> extends BaseField {\n type: 'select';\n options: Option<T>[] | Signal<Option<T>[]>;\n multiple?: boolean;\n}\n\ninterface TimeRangeField extends BaseField {\n type: 'time-range';\n}\n\n//* @deprecated use multiple option */\ninterface MultiSelectField<T> extends BaseField {\n type: 'multi-select';\n options: Option<T>[] | Signal<Option<T>[]>;\n}\n\ninterface FileField extends BaseField {\n type: 'file';\n progress?: Signal<number | null>;\n}\n\ninterface ActionField extends BaseField {\n type: 'action';\n actions: Action[] | Signal<Action[]>;\n disabled?: boolean;\n}\n\ninterface AgreementField {\n type: 'agreement';\n labelTemp: null | any;\n}\n\ninterface SliderField extends BaseField {\n type: 'slider';\n slider: {\n min?: number;\n max?: number;\n step?: number;\n }\n}\n\ninterface HiddenField {\n type: 'hidden';\n}\n\ninterface PreviewField extends BaseField {\n type: 'preview';\n}\n\ninterface PreviewImageField extends BaseField {\n type: 'preview:image';\n}\n\nexport type FormField<V = any> = \n | TextField\n | PasswordField\n | TextareaField\n | DateInputField\n | DateRangeInputField\n | SelectField<V>\n | TimeRangeField\n | MultiSelectField<V>\n | FileField\n | ActionField\n | HiddenField\n | NumberField\n | PreviewField\n | AgreementField\n | SliderField\n | PreviewImageField;\n\nexport interface FormFieldMap {\n [key: string]: FormField<any> | FormFieldMap;\n}\n\n/** @deprecated */\nexport const FORM_FIELD_MAP = new InjectionToken<FormFieldMap>('[@ng-atomic] Smart Form Field');\n\n/** @deprecated */\nexport function provideFormFieldMap(useFactory: () => FormFieldMap) {\n return { provide: FORM_FIELD_MAP, useFactory };\n}\n\ntype Enum<T> = Record<string, T>;\n\n/** @deprecated */\nexport function buildOptions<T>(_enum: Enum<T>): Option<T>[] {\n return Object.values(_enum).map(value => ({value, name: value}) as Option<T>);\n}\n\n/** @deprecated */\n@Pipe({name: 'smartField', standalone: true, pure: true})\nexport class SmartFieldPipe implements PipeTransform {\n protected map = inject(FORM_FIELD_MAP, {optional: true}) ?? {\n createdAt: { type: 'date' },\n updatedAt: { type: 'date' },\n deletedAt: { type: 'date' },\n };\n\n transform(key: string, map: FormFieldMap = this.map): FormField<any> {\n return get(map, key) ?? {type: 'input'};\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-pipes-smart-field.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/smart-field.pipe.ts","../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/ng-atomic-common-pipes-smart-field.ts"],"sourcesContent":["import { InjectionToken, Pipe, PipeTransform, Signal, inject } from '@angular/core';\nimport { Action } from '@ng-atomic/core';\nimport { SignalOrValue } from '@ng-atomic/common/pipes/signal';\nimport get from 'lodash.get';\n\n\nexport interface Option<T> {\n name: string;\n value: T;\n}\n\ninterface BaseField {\n placeholder?: string;\n hint?: SignalOrValue<string>;\n actions?: Action[] | Signal<Action[]>;\n}\n\ninterface TextField extends BaseField {\n type: 'text';\n autoComplete?: SignalOrValue<string[]>;\n}\n\ninterface PasswordField extends BaseField {\n type: 'password';\n}\n\ninterface NumberField extends BaseField {\n type: 'number';\n}\n\ninterface TextareaField extends BaseField {\n type: 'textarea';\n rows?: number;\n}\n\ninterface DateInputField extends BaseField {\n type: 'date';\n}\n\ninterface DateRangeInputField extends BaseField {\n type: 'date-range';\n}\n\ninterface SelectField<T> extends BaseField {\n type: 'select';\n options: Option<T>[] | Signal<Option<T>[]>;\n multiple?: boolean;\n}\n\ninterface TimeRangeField extends BaseField {\n type: 'time-range';\n}\n\n//* @deprecated use multiple option */\ninterface MultiSelectField<T> extends BaseField {\n type: 'multi-select';\n options: Option<T>[] | Signal<Option<T>[]>;\n}\n\ninterface FileField extends BaseField {\n type: 'file';\n progress?: Signal<number | null>;\n}\n\ninterface ActionField extends BaseField {\n type: 'action';\n actions: Action[] | Signal<Action[]>;\n buttonType?: 'flat' | 'raised' | 'stroked' | 'icon';\n disabled?: boolean;\n}\n\ninterface AgreementField {\n type: 'agreement';\n labelTemp: null | any;\n}\n\ninterface SliderField extends BaseField {\n type: 'slider';\n slider: {\n min?: number;\n max?: number;\n step?: number;\n }\n}\n\ninterface HiddenField {\n type: 'hidden';\n}\n\ninterface PreviewField extends BaseField {\n type: 'preview';\n}\n\ninterface PreviewImageField extends BaseField {\n type: 'preview:image';\n}\n\nexport type FormField<V = any> = \n | TextField\n | PasswordField\n | TextareaField\n | DateInputField\n | DateRangeInputField\n | SelectField<V>\n | TimeRangeField\n | MultiSelectField<V>\n | FileField\n | ActionField\n | HiddenField\n | NumberField\n | PreviewField\n | AgreementField\n | SliderField\n | PreviewImageField;\n\nexport interface FormFieldMap {\n [key: string]: FormField<any> | FormFieldMap;\n}\n\n/** @deprecated */\nexport const FORM_FIELD_MAP = new InjectionToken<FormFieldMap>('[@ng-atomic] Smart Form Field');\n\n/** @deprecated */\nexport function provideFormFieldMap(useFactory: () => FormFieldMap) {\n return { provide: FORM_FIELD_MAP, useFactory };\n}\n\ntype Enum<T> = Record<string, T>;\n\n/** @deprecated */\nexport function buildOptions<T>(_enum: Enum<T>): Option<T>[] {\n return Object.values(_enum).map(value => ({value, name: value}) as Option<T>);\n}\n\n/** @deprecated */\n@Pipe({name: 'smartField', standalone: true, pure: true})\nexport class SmartFieldPipe implements PipeTransform {\n protected map = inject(FORM_FIELD_MAP, {optional: true}) ?? {\n createdAt: { type: 'date' },\n updatedAt: { type: 'date' },\n deletedAt: { type: 'date' },\n };\n\n transform(key: string, map: FormFieldMap = this.map): FormField<any> {\n return get(map, key) ?? {type: 'input'};\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAuHA;MACa,cAAc,GAAG,IAAI,cAAc,CAAe,+BAA+B,EAAE;AAEhG;AACM,SAAU,mBAAmB,CAAC,UAA8B,EAAA;AAChE,IAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAID;AACM,SAAU,YAAY,CAAI,KAAc,EAAA;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAC,CAAc,CAAC,CAAC;AAChF,CAAC;AAED;MAEa,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;QAEY,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI;AAC1D,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC5B,CAAC;AAKH,KAAA;AAHC,IAAA,SAAS,CAAC,GAAW,EAAE,GAAoB,GAAA,IAAI,CAAC,GAAG,EAAA;AACjD,QAAA,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;KACzC;8GATU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;mBAAC,EAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAA;;;ACvIxD;;AAEG;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { LoadingService } from '@ng-atomic/common/services/loading';
|
|
5
|
+
import { SideAppService } from '@ng-atomic/common/services/side-app';
|
|
6
|
+
import { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';
|
|
7
|
+
import { FabService } from '@ng-atomic/common/services/fab';
|
|
8
|
+
import { SnackBarService } from '@ng-atomic/common/services/snack-bar';
|
|
9
|
+
import { Clipboard } from '@angular/cdk/clipboard';
|
|
10
|
+
|
|
11
|
+
class AppService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.loading = inject(LoadingService);
|
|
14
|
+
this.sideApp = inject(SideAppService);
|
|
15
|
+
this.sideNavMode = inject(SideNavModeService);
|
|
16
|
+
this.sideNav = inject(SideNavModeService);
|
|
17
|
+
this.router = inject(Router);
|
|
18
|
+
this.fab = inject(FabService);
|
|
19
|
+
this.snackBar = inject(SnackBarService);
|
|
20
|
+
this.clipboard = inject(Clipboard);
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, providedIn: 'root' }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, decorators: [{
|
|
26
|
+
type: Injectable,
|
|
27
|
+
args: [{
|
|
28
|
+
providedIn: 'root'
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Generated bundle index. Do not edit.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
export { AppService };
|
|
37
|
+
//# sourceMappingURL=ng-atomic-common-services-app.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-app.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/app/app.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/app/ng-atomic-common-services-app.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LoadingService } from '@ng-atomic/common/services/loading';\nimport { SideAppService } from '@ng-atomic/common/services/side-app';\nimport { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';\nimport { FabService } from '@ng-atomic/common/services/fab';\nimport { SnackBarService } from '@ng-atomic/common/services/snack-bar';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppService {\n readonly loading = inject(LoadingService);\n readonly sideApp = inject(SideAppService);\n readonly sideNavMode = inject(SideNavModeService);\n readonly sideNav = inject(SideNavModeService);\n readonly router = inject(Router);\n readonly fab = inject(FabService);\n readonly snackBar = inject(SnackBarService);\n readonly clipboard = inject(Clipboard);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MAYa,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,KAAA;8GATY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -2,13 +2,15 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { Auth, authState, TwitterAuthProvider, signInWithPopup, GoogleAuthProvider, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithCustomToken, signOut } from '@angular/fire/auth';
|
|
5
|
-
import {
|
|
5
|
+
import { get } from 'lodash-es';
|
|
6
|
+
import { switchMap, of, map, distinctUntilChanged, shareReplay } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
class AuthService {
|
|
8
9
|
constructor() {
|
|
9
10
|
this.#auth = inject(Auth);
|
|
10
11
|
this.auth$ = authState(this.#auth);
|
|
11
12
|
this.auth = toSignal(this.auth$);
|
|
13
|
+
this.customClaims$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdTokenResult() : of(null)), map(token => token?.claims ?? {}), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
12
14
|
}
|
|
13
15
|
#auth;
|
|
14
16
|
signInWithTwitter() {
|
|
@@ -56,12 +58,15 @@ function injectTwitterId$() {
|
|
|
56
58
|
return inject(AuthService).auth$.pipe(map(auth => auth?.providerData?.[0]?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
57
59
|
}
|
|
58
60
|
function injectClaim$(claim) {
|
|
59
|
-
return inject(AuthService).
|
|
61
|
+
return inject(AuthService).customClaims$.pipe(map(token => claim ? get(token, claim) : token), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
62
|
+
}
|
|
63
|
+
function injectClaim(claim) {
|
|
64
|
+
return toSignal(injectClaim$(claim));
|
|
60
65
|
}
|
|
61
66
|
|
|
62
67
|
/**
|
|
63
68
|
* Generated bundle index. Do not edit.
|
|
64
69
|
*/
|
|
65
70
|
|
|
66
|
-
export { AuthService, injectAuthState, injectAuthState$, injectClaim$, injectTwitterId$, injectUserId, injectUserId$ };
|
|
71
|
+
export { AuthService, injectAuthState, injectAuthState$, injectClaim, injectClaim$, injectTwitterId$, injectUserId, injectUserId$ };
|
|
67
72
|
//# sourceMappingURL=ng-atomic-common-services-auth.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-auth.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/auth/auth.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/auth/ng-atomic-common-services-auth.ts"],"sourcesContent":["import { Injectable, Signal, inject } from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, UserCredential, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';\nimport { Observable, distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';\n\nexport interface TwitterCredential {\n context: string;\n displayName: string;\n email: string;\n emailVerified: boolean;\n expiresIn: string;\n federatedId: string;\n fullName: string;\n idToken: string;\n kind: 'identitytoolkit#VerifyAssertionResponse';\n localId: string;\n oauthAccessToken: string;\n oauthTokenSecret: string;\n photoUrl: string;\n providerId: 'twitter.com';\n rawUserInfo: string;\n refreshToken: string;\n screenName: string;\n}\n\nexport type Result = UserCredential & {_tokenResponse: TwitterCredential};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n #auth = inject(Auth);\n auth$ = authState(this.#auth);\n auth = toSignal(this.auth$);\n\n signInWithTwitter(): Promise<Result> {\n const provider = new TwitterAuthProvider();\n return signInWithPopup(this.#auth, provider) as Promise<Result>\n }\n\n signInWithGoogle() {\n const provider = new GoogleAuthProvider();\n return signInWithPopup(this.#auth, provider);\n }\n\n signInWithEmailAndPassword(email: string, password: string) {\n return signInWithEmailAndPassword(this.#auth, email, password);\n }\n\n createUserWithEmailAndPassword(email: string, password: string) {\n return createUserWithEmailAndPassword(this.#auth, email, password);\n }\n\n signInWithCustomToken(customToken: string): Promise<Result> {\n return signInWithCustomToken(this.#auth, customToken) as Promise<Result>;\n }\n\n signOut() {\n return signOut(this.#auth);\n }\n}\n\nexport function injectAuthState$() {\n return inject(AuthService).auth$;\n}\n\nexport function injectAuthState() {\n return toSignal(injectAuthState$());\n}\n\nexport function injectUserId$(): Observable<string | null> {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectUserId(): Signal<string | null> {\n return toSignal(injectUserId$());\n}\n\nexport function injectTwitterId$() {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.providerData?.[0]?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectClaim$<T = string>(claim: string): Observable<T> {\n return inject(AuthService).
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-auth.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/auth/auth.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/auth/ng-atomic-common-services-auth.ts"],"sourcesContent":["import { Injectable, Signal, inject } from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, UserCredential, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';\nimport { get } from 'lodash-es';\nimport { Observable, distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';\n\nexport interface TwitterCredential {\n context: string;\n displayName: string;\n email: string;\n emailVerified: boolean;\n expiresIn: string;\n federatedId: string;\n fullName: string;\n idToken: string;\n kind: 'identitytoolkit#VerifyAssertionResponse';\n localId: string;\n oauthAccessToken: string;\n oauthTokenSecret: string;\n photoUrl: string;\n providerId: 'twitter.com';\n rawUserInfo: string;\n refreshToken: string;\n screenName: string;\n}\n\nexport type Result = UserCredential & {_tokenResponse: TwitterCredential};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n #auth = inject(Auth);\n auth$ = authState(this.#auth);\n auth = toSignal(this.auth$);\n\n customClaims$ = this.auth$.pipe(\n switchMap(auth => auth ? auth.getIdTokenResult() : of(null)),\n map(token => token?.claims ?? {}),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n\n signInWithTwitter(): Promise<Result> {\n const provider = new TwitterAuthProvider();\n return signInWithPopup(this.#auth, provider) as Promise<Result>\n }\n\n signInWithGoogle() {\n const provider = new GoogleAuthProvider();\n return signInWithPopup(this.#auth, provider);\n }\n\n signInWithEmailAndPassword(email: string, password: string) {\n return signInWithEmailAndPassword(this.#auth, email, password);\n }\n\n createUserWithEmailAndPassword(email: string, password: string) {\n return createUserWithEmailAndPassword(this.#auth, email, password);\n }\n\n signInWithCustomToken(customToken: string): Promise<Result> {\n return signInWithCustomToken(this.#auth, customToken) as Promise<Result>;\n }\n\n signOut() {\n return signOut(this.#auth);\n }\n}\n\nexport function injectAuthState$() {\n return inject(AuthService).auth$;\n}\n\nexport function injectAuthState() {\n return toSignal(injectAuthState$());\n}\n\nexport function injectUserId$(): Observable<string | null> {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectUserId(): Signal<string | null> {\n return toSignal(injectUserId$());\n}\n\nexport function injectTwitterId$() {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.providerData?.[0]?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectClaim$<T = string>(claim: string): Observable<T> {\n return inject(AuthService).customClaims$.pipe(\n map(token => claim ? get(token, claim) : token),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n ) as any;\n}\n\nexport function injectClaim<T = string>(claim: string): Signal<T> {\n return toSignal(injectClaim$<T>(claim));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable } from '@angular/core';
|
|
2
|
+
import { signal, inject, Injectable } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
|
|
5
|
+
import { filter, map, switchMap, tap } from 'rxjs';
|
|
3
6
|
|
|
4
7
|
class FabService {
|
|
5
8
|
constructor() {
|
|
6
9
|
this.hidden = signal(false);
|
|
7
|
-
this.
|
|
10
|
+
this.router = inject(Router);
|
|
11
|
+
this.route = inject(ActivatedRoute);
|
|
12
|
+
this.route$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd), map(() => this.findLastChild(this.route)));
|
|
13
|
+
this.actions$ = this.route$.pipe(switchMap((route) => route.data), map(data => data.fabActions || []), tap(actions => console.debug('actions:', actions)));
|
|
14
|
+
this.actions = toSignal(this.actions$);
|
|
15
|
+
}
|
|
16
|
+
findLastChild(route) {
|
|
17
|
+
let child = route;
|
|
18
|
+
while (child.firstChild) {
|
|
19
|
+
child = child.firstChild;
|
|
20
|
+
}
|
|
21
|
+
return child;
|
|
8
22
|
}
|
|
9
23
|
show() {
|
|
10
24
|
this.hidden.set(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-fab.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/fab/fab.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/fab/ng-atomic-common-services-fab.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { Action } from '@ng-atomic/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FabService {\n readonly hidden = signal(false);\n readonly
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-fab.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/fab/fab.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/fab/ng-atomic-common-services-fab.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Action } from '@ng-atomic/core';\nimport { filter, map, Observable, switchMap, tap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FabService {\n readonly hidden = signal(false);\n protected readonly router = inject(Router);\n protected readonly route = inject(ActivatedRoute);\n readonly route$ = this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => this.findLastChild(this.route)),\n );\n\n readonly actions$: Observable<Action[]> = this.route$.pipe(\n switchMap((route) => route.data),\n map(data => data.fabActions || []),\n tap(actions => console.debug('actions:', actions)),\n );\n readonly actions = toSignal(this.actions$);\n\n private findLastChild(route: ActivatedRoute): ActivatedRoute {\n let child = route;\n while (child.firstChild) {\n child = child.firstChild;\n }\n return child;\n }\n\n show() {\n this.hidden.set(false);\n }\n\n hide() {\n this.hidden.set(true);\n }\n\n toggle() {\n this.hidden.update(hidden => !hidden);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MASa,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACb,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACvC,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAC;QAEO,IAAQ,CAAA,QAAA,GAAyB,IAAI,CAAC,MAAM,CAAC,IAAI,CACxD,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EAChC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAClC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CACnD,CAAC;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAqB5C,KAAA;AAnBS,IAAA,aAAa,CAAC,KAAqB,EAAA;QACzC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,OAAO,KAAK,CAAC,UAAU,EAAE;AACvB,YAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;KACvC;8GAlCU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-atomic/common",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.10.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/cdk": "^17.0.0",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"@angular/router": "^17.0.0",
|
|
13
13
|
"@ngrx/component-store": "^17.0.0",
|
|
14
14
|
"@ngrx/entity": "^17.0.0",
|
|
15
|
-
"@nx-ddd/core": "17.
|
|
15
|
+
"@nx-ddd/core": "17.10.0",
|
|
16
16
|
"dayjs": "1.11.10",
|
|
17
17
|
"flat": "^6.0.0",
|
|
18
18
|
"lodash-es": "^4.17.15",
|
|
@@ -221,6 +221,12 @@
|
|
|
221
221
|
"esm": "./esm2022/pipes/yen/ng-atomic-common-pipes-yen.mjs",
|
|
222
222
|
"default": "./fesm2022/ng-atomic-common-pipes-yen.mjs"
|
|
223
223
|
},
|
|
224
|
+
"./services/app": {
|
|
225
|
+
"types": "./services/app/index.d.ts",
|
|
226
|
+
"esm2022": "./esm2022/services/app/ng-atomic-common-services-app.mjs",
|
|
227
|
+
"esm": "./esm2022/services/app/ng-atomic-common-services-app.mjs",
|
|
228
|
+
"default": "./fesm2022/ng-atomic-common-services-app.mjs"
|
|
229
|
+
},
|
|
224
230
|
"./services/auth": {
|
|
225
231
|
"types": "./services/auth/index.d.ts",
|
|
226
232
|
"esm2022": "./esm2022/services/auth/ng-atomic-common-services-auth.mjs",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Router } from '@angular/router';
|
|
2
|
+
import { LoadingService } from '@ng-atomic/common/services/loading';
|
|
3
|
+
import { SideAppService } from '@ng-atomic/common/services/side-app';
|
|
4
|
+
import { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';
|
|
5
|
+
import { FabService } from '@ng-atomic/common/services/fab';
|
|
6
|
+
import { SnackBarService } from '@ng-atomic/common/services/snack-bar';
|
|
7
|
+
import { Clipboard } from '@angular/cdk/clipboard';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class AppService {
|
|
10
|
+
readonly loading: LoadingService;
|
|
11
|
+
readonly sideApp: SideAppService;
|
|
12
|
+
readonly sideNavMode: SideNavModeService;
|
|
13
|
+
readonly sideNav: SideNavModeService;
|
|
14
|
+
readonly router: Router;
|
|
15
|
+
readonly fab: FabService;
|
|
16
|
+
readonly snackBar: SnackBarService;
|
|
17
|
+
readonly clipboard: Clipboard;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppService, never>;
|
|
19
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AppService>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app.service';
|
|
@@ -28,6 +28,7 @@ export declare class AuthService {
|
|
|
28
28
|
#private;
|
|
29
29
|
auth$: Observable<import("@firebase/auth").User>;
|
|
30
30
|
auth: Signal<import("@firebase/auth").User>;
|
|
31
|
+
customClaims$: Observable<import("@firebase/auth").ParsedToken>;
|
|
31
32
|
signInWithTwitter(): Promise<Result>;
|
|
32
33
|
signInWithGoogle(): Promise<UserCredential>;
|
|
33
34
|
signInWithEmailAndPassword(email: string, password: string): Promise<UserCredential>;
|
|
@@ -43,3 +44,4 @@ export declare function injectUserId$(): Observable<string | null>;
|
|
|
43
44
|
export declare function injectUserId(): Signal<string | null>;
|
|
44
45
|
export declare function injectTwitterId$(): Observable<string>;
|
|
45
46
|
export declare function injectClaim$<T = string>(claim: string): Observable<T>;
|
|
47
|
+
export declare function injectClaim<T = string>(claim: string): Signal<T>;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
1
2
|
import { Action } from '@ng-atomic/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export declare class FabService {
|
|
4
6
|
readonly hidden: import("@angular/core").WritableSignal<boolean>;
|
|
5
|
-
readonly
|
|
7
|
+
protected readonly router: Router;
|
|
8
|
+
protected readonly route: ActivatedRoute;
|
|
9
|
+
readonly route$: Observable<ActivatedRoute>;
|
|
10
|
+
readonly actions$: Observable<Action[]>;
|
|
11
|
+
readonly actions: import("@angular/core").Signal<Action<any>[]>;
|
|
12
|
+
private findLastChild;
|
|
6
13
|
show(): void;
|
|
7
14
|
hide(): void;
|
|
8
15
|
toggle(): void;
|