@ng-atomic/common 17.6.1 → 17.7.1
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/services/auth/auth.service.mjs +8 -2
- package/esm2022/services/fab/fab.service.mjs +26 -0
- package/esm2022/services/fab/index.mjs +2 -0
- package/esm2022/services/fab/ng-atomic-common-services-fab.mjs +5 -0
- package/esm2022/services/root-property/root-property.service.mjs +18 -6
- package/esm2022/services/ui/ui.helpers.mjs +47 -2
- package/fesm2022/ng-atomic-common-services-auth.mjs +7 -1
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-fab.mjs +33 -0
- package/fesm2022/ng-atomic-common-services-fab.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-root-property.mjs +17 -5
- package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-ui.mjs +47 -2
- package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
- package/package.json +8 -2
- package/services/auth/auth.service.d.ts +2 -0
- package/services/fab/fab.service.d.ts +11 -0
- package/services/fab/index.d.ts +1 -0
- package/services/ui/ui.helpers.d.ts +3 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable, inject } from '@angular/core';
|
|
2
2
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut } from '@angular/fire/auth';
|
|
3
|
+
import { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';
|
|
4
4
|
import { distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class AuthService {
|
|
@@ -18,6 +18,12 @@ export class AuthService {
|
|
|
18
18
|
const provider = new GoogleAuthProvider();
|
|
19
19
|
return signInWithPopup(this.#auth, provider);
|
|
20
20
|
}
|
|
21
|
+
signInWithEmailAndPassword(email, password) {
|
|
22
|
+
return signInWithEmailAndPassword(this.#auth, email, password);
|
|
23
|
+
}
|
|
24
|
+
createUserWithEmailAndPassword(email, password) {
|
|
25
|
+
return createUserWithEmailAndPassword(this.#auth, email, password);
|
|
26
|
+
}
|
|
21
27
|
signInWithCustomToken(customToken) {
|
|
22
28
|
return signInWithCustomToken(this.#auth, customToken);
|
|
23
29
|
}
|
|
@@ -51,4 +57,4 @@ export function injectTwitterId$() {
|
|
|
51
57
|
export function injectClaim$(claim) {
|
|
52
58
|
return inject(AuthService).auth$.pipe(switchMap(auth => auth ? auth?.getIdTokenResult() : of(null)), map(token => token?.claims?.[claim] ?? false), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
|
|
53
59
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzTixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQTJCekYsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFLRSxVQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLFVBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLFNBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBMkI3QjtJQTdCQyxLQUFLLENBQWdCO0lBSXJCLGlCQUFpQjtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUMzQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBb0IsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUN4RCxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxLQUFhLEVBQUUsUUFBZ0I7UUFDNUQsT0FBTyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBbUI7UUFDdkMsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBb0IsQ0FBQztJQUMzRSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQTlCVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFrQ0QsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFDOUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLGtCQUFrQixFQUFFLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUNqRCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2Qsa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFhLEtBQWE7SUFDcEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFDN0Msb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLGtCQUFrQixFQUFFLENBQ2QsQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwsIHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEF1dGgsIGF1dGhTdGF0ZSwgc2lnbkluV2l0aEN1c3RvbVRva2VuLCBHb29nbGVBdXRoUHJvdmlkZXIsIFR3aXR0ZXJBdXRoUHJvdmlkZXIsIHNpZ25JbldpdGhQb3B1cCwgc2lnbk91dCwgVXNlckNyZWRlbnRpYWwsIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkLCBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQgfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUd2l0dGVyQ3JlZGVudGlhbCB7XG4gIGNvbnRleHQ6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgZXhwaXJlc0luOiBzdHJpbmc7XG4gIGZlZGVyYXRlZElkOiBzdHJpbmc7XG4gIGZ1bGxOYW1lOiBzdHJpbmc7XG4gIGlkVG9rZW46IHN0cmluZztcbiAga2luZDogJ2lkZW50aXR5dG9vbGtpdCNWZXJpZnlBc3NlcnRpb25SZXNwb25zZSc7XG4gIGxvY2FsSWQ6IHN0cmluZztcbiAgb2F1dGhBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBvYXV0aFRva2VuU2VjcmV0OiBzdHJpbmc7XG4gIHBob3RvVXJsOiBzdHJpbmc7XG4gIHByb3ZpZGVySWQ6ICd0d2l0dGVyLmNvbSc7XG4gIHJhd1VzZXJJbmZvOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICBzY3JlZW5OYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFJlc3VsdCA9IFVzZXJDcmVkZW50aWFsICYge190b2tlblJlc3BvbnNlOiBUd2l0dGVyQ3JlZGVudGlhbH07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcblxuICAjYXV0aCA9IGluamVjdChBdXRoKTtcbiAgYXV0aCQgPSBhdXRoU3RhdGUodGhpcy4jYXV0aCk7XG4gIGF1dGggPSB0b1NpZ25hbCh0aGlzLmF1dGgkKTtcblxuICBzaWduSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFJlc3VsdD4ge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKTtcbiAgICByZXR1cm4gc2lnbkluV2l0aFBvcHVwKHRoaXMuI2F1dGgsIHByb3ZpZGVyKSBhcyBQcm9taXNlPFJlc3VsdD5cbiAgfVxuXG4gIHNpZ25JbldpdGhHb29nbGUoKSB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgR29vZ2xlQXV0aFByb3ZpZGVyKCk7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLiNhdXRoLCBwcm92aWRlcik7XG4gIH1cblxuICBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZChlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuI2F1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy4jYXV0aCwgZW1haWwsIHBhc3N3b3JkKTtcbiAgfVxuXG4gIHNpZ25JbldpdGhDdXN0b21Ub2tlbihjdXN0b21Ub2tlbjogc3RyaW5nKTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEN1c3RvbVRva2VuKHRoaXMuI2F1dGgsIGN1c3RvbVRva2VuKSBhcyBQcm9taXNlPFJlc3VsdD47XG4gIH1cblxuICBzaWduT3V0KCkge1xuICAgIHJldHVybiBzaWduT3V0KHRoaXMuI2F1dGgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBdXRoU3RhdGUkKCkge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEF1dGhTdGF0ZSgpIHtcbiAgcmV0dXJuIHRvU2lnbmFsKGluamVjdEF1dGhTdGF0ZSQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVc2VySWQkKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIG1hcChhdXRoID0+IGF1dGg/LnVpZCA/PyBudWxsKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VXNlcklkKCk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPiB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3RVc2VySWQkKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VHdpdHRlcklkJCgpIHtcbiAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkuYXV0aCQucGlwZShcbiAgICBtYXAoYXV0aCA9PiBhdXRoPy5wcm92aWRlckRhdGE/LlswXT8udWlkID8/IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RDbGFpbSQ8VCA9IHN0cmluZz4oY2xhaW06IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIHN3aXRjaE1hcChhdXRoID0+IGF1dGggPyBhdXRoPy5nZXRJZFRva2VuUmVzdWx0KCkgOiBvZihudWxsKSksXG4gICAgbWFwKHRva2VuID0+IHRva2VuPy5jbGFpbXM/LltjbGFpbV0gPz8gZmFsc2UpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICkgYXMgYW55O1xufSJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FabService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.hidden = signal(false);
|
|
6
|
+
this.actions = signal([]);
|
|
7
|
+
}
|
|
8
|
+
show() {
|
|
9
|
+
this.hidden.set(false);
|
|
10
|
+
}
|
|
11
|
+
hide() {
|
|
12
|
+
this.hidden.set(true);
|
|
13
|
+
}
|
|
14
|
+
toggle() {
|
|
15
|
+
this.hidden.update(hidden => !hidden);
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FabService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FabService, providedIn: 'root' }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FabService, decorators: [{
|
|
21
|
+
type: Injectable,
|
|
22
|
+
args: [{
|
|
23
|
+
providedIn: 'root'
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2ZhYi9mYWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7S0FhekM7SUFYQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQWRVLFVBQVU7a0hBQVYsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGYWJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgaGlkZGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgYWN0aW9ucyA9IHNpZ25hbDxBY3Rpb25bXT4oW10pO1xuXG4gIHNob3coKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaGlkZGVuLnVwZGF0ZShoaWRkZW4gPT4gIWhpZGRlbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './fab.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2ZhYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmFiLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1mYWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2ZhYi9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLWZhYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -30,12 +30,24 @@ export class RootPropertyService {
|
|
|
30
30
|
'--background-color': '#fff',
|
|
31
31
|
'--menu-width': '64px',
|
|
32
32
|
'--page-width-lv1': '360px',
|
|
33
|
-
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px -
|
|
34
|
-
'--page-width-lv3': 'max(calc(min(100vw, 1600px) -
|
|
33
|
+
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',
|
|
34
|
+
'--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',
|
|
35
|
+
'--page-width-lv4': '100vw',
|
|
36
|
+
'--page-height-lv1': '100vh',
|
|
37
|
+
};
|
|
38
|
+
case 'large': return {
|
|
39
|
+
'--primary-color': '#404040',
|
|
40
|
+
'--on-primary-color': '#f0f0f0',
|
|
41
|
+
'--surface-color': '#fff',
|
|
42
|
+
'--on-surface-color': '#404040',
|
|
43
|
+
'--background-color': '#fff',
|
|
44
|
+
'--menu-width': '220px',
|
|
45
|
+
'--page-width-lv1': '360px',
|
|
46
|
+
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',
|
|
47
|
+
'--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',
|
|
35
48
|
'--page-width-lv4': '100vw',
|
|
36
49
|
'--page-height-lv1': '100vh',
|
|
37
50
|
};
|
|
38
|
-
case 'large':
|
|
39
51
|
case 'xLarge': return {
|
|
40
52
|
'--primary-color': '#404040',
|
|
41
53
|
'--on-primary-color': '#f0f0f0',
|
|
@@ -44,8 +56,8 @@ export class RootPropertyService {
|
|
|
44
56
|
'--background-color': '#fff',
|
|
45
57
|
'--menu-width': '220px',
|
|
46
58
|
'--page-width-lv1': '360px',
|
|
47
|
-
'--page-width-lv2': 'max(calc(min(100vw
|
|
48
|
-
'--page-width-lv3': 'max(calc(min(100vw
|
|
59
|
+
'--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',
|
|
60
|
+
'--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',
|
|
49
61
|
'--page-width-lv4': '100vw',
|
|
50
62
|
'--page-height-lv1': '100vh',
|
|
51
63
|
};
|
|
@@ -119,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
119
131
|
type: Injectable,
|
|
120
132
|
args: [{ providedIn: 'root' }]
|
|
121
133
|
}] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm9wZXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9yb290LXByb3BlcnR5L3Jvb3QtcHJvcGVydHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcxRCxNQUFNLE9BQU8sbUJBQW1CO2FBQ2QsV0FBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDdkMsT0FBTyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNwQixRQUFRLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQzFCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTztvQkFDcEIsaUJBQWlCLEVBQUUsU0FBUztvQkFDNUIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0IsaUJBQWlCLEVBQUUsTUFBTTtvQkFDekIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0Isb0JBQW9CLEVBQUUsTUFBTTtvQkFDNUIsY0FBYyxFQUFFLE9BQU87b0JBQ3ZCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JB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c1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIEVsZW1lbnRSZWYsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBQcm92aWRlciwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWxheSwgZmlsdGVyLCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUm9vdFByb3BlcnR5U2VydmljZSB7XG4gIHN0YXRpYyByZWFkb25seSBDb25maWcgPSBtYWtlQ29uZmlnKCgpID0+IHtcbiAgICByZXR1cm4gKF8sIGNvbnRleHQpID0+IHtcbiAgICAgIHN3aXRjaCAoY29udGV4dC5icmVha3BvaW50KSB7XG4gICAgICAgIGNhc2UgJ3hTbWFsbCc6IHJldHVybiB7XG4gICAgICAgICAgJy0tcHJpbWFyeS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1vbi1wcmltYXJ5LWNvbG9yJzogJyNmMGYwZjAnLFxuICAgICAgICAgICctLXN1cmZhY2UtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tb24tc3VyZmFjZS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnMjIwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYxJzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Mic6ICcxMDB2dycsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnMTAwdncnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHY0JzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLWhlaWdodC1sdjEnOiAnMTAwdmgnLFxuICAgICAgICB9O1xuICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIGNhc2UgJ21lZGl1bSc6IHJldHVybiB7XG4gICAgICAgICAgJy0tcHJpbWFyeS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1vbi1wcmltYXJ5LWNvbG9yJzogJyNmMGYwZjAnLFxuICAgICAgICAgICctLXN1cmZhY2UtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tb24tc3VyZmFjZS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnNjRweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjEnOiAnMzYwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYyJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDM2MHB4IC0gNjRweCksIDM2MHB4KScsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnbWF4KGNhbGMobWluKDEwMHZ3LCAxNjAwcHgpIC0gNjRweCksIDM2MHB4KScsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjQnOiAnMTAwdncnLFxuICAgICAgICAgICctLXBhZ2UtaGVpZ2h0LWx2MSc6ICcxMDB2aCcsXG4gICAgICAgIH07XG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgY2FzZSAneExhcmdlJzogcmV0dXJuIHtcbiAgICAgICAgICAnLS1wcmltYXJ5LWNvbG9yJzogJyM0MDQwNDAnLFxuICAgICAgICAgICctLW9uLXByaW1hcnktY29sb3InOiAnI2YwZjBmMCcsXG4gICAgICAgICAgJy0tc3VyZmFjZS1jb2xvcic6ICcjZmZmJyxcbiAgICAgICAgICAnLS1vbi1zdXJmYWNlLWNvbG9yJzogJyM0MDQwNDAnLFxuICAgICAgICAgICctLWJhY2tncm91bmQtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tbWVudS13aWR0aCc6ICcyMjBweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjEnOiAnMzYwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYyJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDM2MHB4IC0gMjIwcHgpLCAzNjBweCknLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYzJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDIyMHB4KSwgMzYwcHgpJyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2NCc6ICcxMDB2dycsXG4gICAgICAgICAgJy0tcGFnZS1oZWlnaHQtbHYxJzogJzEwMHZoJyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbJ3Jvb3QnLCAncHJvcGVydGllcyddKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gUm9vdFByb3BlcnR5U2VydmljZS5Db25maWcuaW5qZWN0KCk7XG5cbiAgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY29uZmlnPy4oKSA/PyB7fSkpIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVJvb3RQcm9wZXJ0eShcbiAgcmVzb2x2ZXJGYWN0b3J5RmFjdG9yeT86IFBhcmFtZXRlcnM8dHlwZW9mIFJvb3RQcm9wZXJ0eVNlcnZpY2UuQ29uZmlnLnByb3ZpZGU+WzBdLFxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiBpbmplY3QoUm9vdFByb3BlcnR5U2VydmljZSk7XG4gICAgICB9LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICBSb290UHJvcGVydHlTZXJ2aWNlLkNvbmZpZy5wcm92aWRlKHJlc29sdmVyRmFjdG9yeUZhY3RvcnkpLFxuICBdXG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ1thdG9taWNTdHlsZV0nIH0pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNTdHlsZURpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5ICNlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290UHJvcGVydHlTZXJ2aWNlOiBSb290UHJvcGVydHlTZXJ2aWNlKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucm9vdFByb3BlcnR5U2VydmljZS5jb25maWc/LigpID8/IHt9KSkge1xuICAgICAgICB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUm9vdFByb3BlcnR5R3VhcmQge1xuXHRyZWFkb25seSBwcm9wZXJ0aWVzID0gUm9vdFByb3BlcnR5U2VydmljZS5Db25maWcuaW5qZWN0KCk7XG5cdHJlYWRvbmx5IHByb3BlcnRpZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMucHJvcGVydGllcyk7XG5cdHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG5cdGNhbkFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXHRcdGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybiBvZihudWxsKTtcdFxuXHRcdHJldHVybiB0aGlzLnByb3BlcnRpZXMkLnBpcGUoXG5cdFx0XHRmaWx0ZXIocHJvcGVydGllcyA9PiBwcm9wZXJ0aWVzWyctLWJhY2tncm91bmQtY29sb3InXSAgPT09ICcjZjBmMGYwJyksXG5cdFx0XHRkZWxheSg1MDApLFxuXHRcdFx0bWFwKCgpID0+IHRydWUpLFxuXHRcdCk7XG5cdH1cbn0iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm9wZXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9yb290LXByb3BlcnR5L3Jvb3QtcHJvcGVydHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcxRCxNQUFNLE9BQU8sbUJBQW1CO2FBQ2QsV0FBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDdkMsT0FBTyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNwQixRQUFRLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQzFCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTztvQkFDcEIsaUJBQWlCLEVBQUUsU0FBUztvQkFDNUIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0IsaUJBQWlCLEVBQUUsTUFBTTtvQkFDekIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0Isb0JBQW9CLEVBQUUsTUFBTTtvQkFDNUIsY0FBYyxFQUFFLE9BQU87b0JBQ3ZCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JB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LFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEtBQU0sU0FBUyxDQUFDLEVBQ3JFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDVixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2YsQ0FBQztJQUNILENBQUM7OEdBWlcsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FETCxNQUFNOzsyRkFDbEIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIEVsZW1lbnRSZWYsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBQcm92aWRlciwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWxheSwgZmlsdGVyLCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUm9vdFByb3BlcnR5U2VydmljZSB7XG4gIHN0YXRpYyByZWFkb25seSBDb25maWcgPSBtYWtlQ29uZmlnKCgpID0+IHtcbiAgICByZXR1cm4gKF8sIGNvbnRleHQpID0+IHtcbiAgICAgIHN3aXRjaCAoY29udGV4dC5icmVha3BvaW50KSB7XG4gICAgICAgIGNhc2UgJ3hTbWFsbCc6IHJldHVybiB7XG4gICAgICAgICAgJy0tcHJpbWFyeS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1vbi1wcmltYXJ5LWNvbG9yJzogJyNmMGYwZjAnLFxuICAgICAgICAgICctLXN1cmZhY2UtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tb24tc3VyZmFjZS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnMjIwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYxJzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Mic6ICcxMDB2dycsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnMTAwdncnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHY0JzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLWhlaWdodC1sdjEnOiAnMTAwdmgnLFxuICAgICAgICB9O1xuICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIGNhc2UgJ21lZGl1bSc6IHJldHVybiB7XG4gICAgICAgICAgJy0tcHJpbWFyeS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1vbi1wcmltYXJ5LWNvbG9yJzogJyNmMGYwZjAnLFxuICAgICAgICAgICctLXN1cmZhY2UtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tb24tc3VyZmFjZS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnNjRweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjEnOiAnMzYwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYyJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDM2MHB4IC0gdmFyKC0tbWVudS13aWR0aCkpLCAzNjBweCknLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYzJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIHZhcigtLW1lbnUtd2lkdGgpKSwgMzYwcHgpJyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2NCc6ICcxMDB2dycsXG4gICAgICAgICAgJy0tcGFnZS1oZWlnaHQtbHYxJzogJzEwMHZoJyxcbiAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnbGFyZ2UnOiByZXR1cm4ge1xuICAgICAgICAgICctLXByaW1hcnktY29sb3InOiAnIzQwNDA0MCcsXG4gICAgICAgICAgJy0tb24tcHJpbWFyeS1jb2xvcic6ICcjZjBmMGYwJyxcbiAgICAgICAgICAnLS1zdXJmYWNlLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW9uLXN1cmZhY2UtY29sb3InOiAnIzQwNDA0MCcsXG4gICAgICAgICAgJy0tYmFja2dyb3VuZC1jb2xvcic6ICcjZmZmJyxcbiAgICAgICAgICAnLS1tZW51LXdpZHRoJzogJzIyMHB4JyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2MSc6ICczNjBweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjInOiAnbWF4KGNhbGMobWluKDEwMHZ3LCAxNjAwcHgpIC0gdmFyKC0tcGFnZS13aWR0aC1sdjEpIC0gdmFyKC0tbWVudS13aWR0aCkpLCB2YXIoLS1wYWdlLXdpZHRoLWx2MSkpJyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Myc6ICdtYXgoY2FsYyhtaW4oMTAwdncsIDE2MDBweCkgLSB2YXIoLS1tZW51LXdpZHRoKSksIHZhcigtLXBhZ2Utd2lkdGgtbHYxKSknLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHY0JzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLWhlaWdodC1sdjEnOiAnMTAwdmgnLFxuICAgICAgICB9O1xuICAgICAgICBjYXNlICd4TGFyZ2UnOiByZXR1cm4ge1xuICAgICAgICAgICctLXByaW1hcnktY29sb3InOiAnIzQwNDA0MCcsXG4gICAgICAgICAgJy0tb24tcHJpbWFyeS1jb2xvcic6ICcjZjBmMGYwJyxcbiAgICAgICAgICAnLS1zdXJmYWNlLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW9uLXN1cmZhY2UtY29sb3InOiAnIzQwNDA0MCcsXG4gICAgICAgICAgJy0tYmFja2dyb3VuZC1jb2xvcic6ICcjZmZmJyxcbiAgICAgICAgICAnLS1tZW51LXdpZHRoJzogJzIyMHB4JyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2MSc6ICczNjBweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjInOiAnbWF4KGNhbGMobWluKDEwMHZ3KSAtIHZhcigtLXBhZ2Utd2lkdGgtbHYxKSAtIHZhcigtLW1lbnUtd2lkdGgpKSwgdmFyKC0tcGFnZS13aWR0aC1sdjEpKScsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnbWF4KGNhbGMobWluKDEwMHZ3KSAtIHZhcigtLW1lbnUtd2lkdGgpKSwgdmFyKC0tcGFnZS13aWR0aC1sdjEpKScsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjQnOiAnMTAwdncnLFxuICAgICAgICAgICctLXBhZ2UtaGVpZ2h0LWx2MSc6ICcxMDB2aCcsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcbiAgfSwgWydyb290JywgJ3Byb3BlcnRpZXMnXSk7XG4gIHJlYWRvbmx5IGNvbmZpZyA9IFJvb3RQcm9wZXJ0eVNlcnZpY2UuQ29uZmlnLmluamVjdCgpO1xuXG4gIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmNvbmZpZz8uKCkgPz8ge30pKSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSb290UHJvcGVydHkoXG4gIHJlc29sdmVyRmFjdG9yeUZhY3Rvcnk/OiBQYXJhbWV0ZXJzPHR5cGVvZiBSb290UHJvcGVydHlTZXJ2aWNlLkNvbmZpZy5wcm92aWRlPlswXSxcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4gaW5qZWN0KFJvb3RQcm9wZXJ0eVNlcnZpY2UpO1xuICAgICAgfSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgUm9vdFByb3BlcnR5U2VydmljZS5Db25maWcucHJvdmlkZShyZXNvbHZlckZhY3RvcnlGYWN0b3J5KSxcbiAgXVxufVxuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICdbYXRvbWljU3R5bGVdJyB9KVxuZXhwb3J0IGNsYXNzIE5nQXRvbWljU3R5bGVEaXJlY3RpdmUge1xuICByZWFkb25seSAjZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdFByb3BlcnR5U2VydmljZTogUm9vdFByb3BlcnR5U2VydmljZSkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnJvb3RQcm9wZXJ0eVNlcnZpY2UuY29uZmlnPy4oKSA/PyB7fSkpIHtcbiAgICAgICAgdGhpcy4jZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFJvb3RQcm9wZXJ0eUd1YXJkIHtcblx0cmVhZG9ubHkgcHJvcGVydGllcyA9IFJvb3RQcm9wZXJ0eVNlcnZpY2UuQ29uZmlnLmluamVjdCgpO1xuXHRyZWFkb25seSBwcm9wZXJ0aWVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnByb3BlcnRpZXMpO1xuXHRyZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuXHRjYW5BY3RpdmF0ZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblx0XHRpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm4gb2YobnVsbCk7XHRcblx0XHRyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzJC5waXBlKFxuXHRcdFx0ZmlsdGVyKHByb3BlcnRpZXMgPT4gcHJvcGVydGllc1snLS1iYWNrZ3JvdW5kLWNvbG9yJ10gID09PSAnI2YwZjBmMCcpLFxuXHRcdFx0ZGVsYXkoNTAwKSxcblx0XHRcdG1hcCgoKSA9PiB0cnVlKSxcblx0XHQpO1xuXHR9XG59Il19
|
|
@@ -24,6 +24,7 @@ export var NavActionId;
|
|
|
24
24
|
(function (NavActionId) {
|
|
25
25
|
NavActionId["TOGGLE_SIDE_NAV"] = "[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV";
|
|
26
26
|
NavActionId["BACK"] = "[@ng-atomic/common/services/ui] BACK";
|
|
27
|
+
NavActionId["CLOSE"] = "[@ng-atomic/common/services/ui] CLOSE";
|
|
27
28
|
})(NavActionId || (NavActionId = {}));
|
|
28
29
|
export function injectIsRootPage$() {
|
|
29
30
|
const router = inject(Router);
|
|
@@ -50,6 +51,7 @@ export function injectIsRootPage() {
|
|
|
50
51
|
export function injectNavStartActions(isRootPage = signal(false)) {
|
|
51
52
|
const context = injectUiContext();
|
|
52
53
|
const navigationHistory = inject(NavigationHistoryService);
|
|
54
|
+
let isInitial;
|
|
53
55
|
return computed(() => {
|
|
54
56
|
switch (context().breakpoint) {
|
|
55
57
|
case 'xLarge':
|
|
@@ -60,7 +62,7 @@ export function injectNavStartActions(isRootPage = signal(false)) {
|
|
|
60
62
|
return [];
|
|
61
63
|
}
|
|
62
64
|
else {
|
|
63
|
-
if (navigationHistory.isInitial()) {
|
|
65
|
+
if (isInitial ??= navigationHistory.isInitial()) {
|
|
64
66
|
return [];
|
|
65
67
|
}
|
|
66
68
|
else {
|
|
@@ -89,6 +91,49 @@ export function injectNavStartActions(isRootPage = signal(false)) {
|
|
|
89
91
|
}
|
|
90
92
|
});
|
|
91
93
|
}
|
|
94
|
+
export function injectSideAppNavStartActions(isRootPage = signal(false)) {
|
|
95
|
+
const context = injectUiContext();
|
|
96
|
+
const navigationHistory = inject(NavigationHistoryService);
|
|
97
|
+
let isInitial;
|
|
98
|
+
return computed(() => {
|
|
99
|
+
switch (context().breakpoint) {
|
|
100
|
+
case 'xLarge':
|
|
101
|
+
case 'large':
|
|
102
|
+
case 'medium':
|
|
103
|
+
case 'small': {
|
|
104
|
+
if (isRootPage()) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
if (isInitial ??= navigationHistory.isInitial()) {
|
|
109
|
+
return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
case 'xSmall': {
|
|
117
|
+
if (isRootPage()) {
|
|
118
|
+
return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (isInitial ??= navigationHistory.isInitial()) {
|
|
122
|
+
return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
default: {
|
|
130
|
+
if (isRootPage())
|
|
131
|
+
return [];
|
|
132
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
92
137
|
export function injectUiContext() {
|
|
93
138
|
return inject(UiService).uiContext;
|
|
94
139
|
}
|
|
@@ -196,4 +241,4 @@ export function debugInjector(injector = inject(Injector)) {
|
|
|
196
241
|
break;
|
|
197
242
|
}
|
|
198
243
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1DLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFekYsTUFBTSxVQUFVLE1BQU0sQ0FBeUMsTUFBaUIsRUFBRSxJQUFtQjtJQUNuRyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsSUFB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QyxDQUFBO0lBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFXLEVBQUU7UUFDckQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQyxDQUFBO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQUUsTUFBTTtLQUN2QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFByb3ZpZGVyLCBQcm92aWRlclRva2VuLCBTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaXNTaWduYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFVJQ29udGV4dCwgVWlTZXJ2aWNlIH0gZnJvbSBcIi4vdWkuc2VydmljZVwiO1xuaW1wb3J0IHsgZ2V0LCBzZXQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5nLWF0b21pYy9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgY29tcHV0ZWRBc3luYyB9IGZyb20gXCJuZ3h0ZW5zaW9uL2NvbXB1dGVkLWFzeW5jXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvbmF2aWdhdGlvbi1oaXN0b3J5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY29wZWQ8VCBleHRlbmRzIG9iamVjdCwgVEtleSBleHRlbmRzIGtleW9mIFQ+KHNvdXJjZTogU2lnbmFsPFQ+LCBwYXRoOiBUS2V5IHwgW1RLZXldKTogU2lnbmFsPFRbVEtleV0+IHtcbiAgY29uc3Qgc2NvcGVkU2lnbmFsID0gc2lnbmFsPFRbVEtleV0+KGdldChzb3VyY2UoKSwgcGF0aCkpO1xuICBlZmZlY3QoKCkgPT4ge1xuICAgIHNjb3BlZFNpZ25hbC5zZXQoZ2V0KHNvdXJjZSgpLCBwYXRoLCBzb3VyY2UoKSkgYXMgVFtUS2V5XSk7XG4gIH0sIHthbGxvd1NpZ25hbFdyaXRlczogdHJ1ZX0pO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gc2NvcGVkU2lnbmFsKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJlYWtwb2ludCgpIHtcbiAgcmV0dXJuIGluamVjdChVaVNlcnZpY2UpLmJyZWFrcG9pbnQuYnJlYWtwb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzTW9iaWxlKCkge1xuICBjb25zdCBicmVha3BvaW50ID0gaW5qZWN0QnJlYWtwb2ludCgpO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gIFsneFNtYWxsJywgJ3NtYWxsJ10uaW5jbHVkZXMoYnJlYWtwb2ludCgpKSk7XG59XG5cbmV4cG9ydCBlbnVtIE5hdkFjdGlvbklkIHtcbiAgVE9HR0xFX1NJREVfTkFWID0gJ1tAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aV0gVE9HR0xFX1NJREVfTkFWJyxcbiAgQkFDSyA9ICdbQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvdWldIEJBQ0snLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNSb290UGFnZSQoKSB7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb25zdCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJldHVybiByb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnRzID0gW107XG4gICAgICBsZXQgcm91dGVfID0gcm91dGU7IFxuICAgICAgd2hpbGUocm91dGVfKSB7XG4gICAgICAgIGlmICghcm91dGVfLnBhcmVudCkgYnJlYWs7XG4gICAgICAgIHJvdXRlXyA9IHJvdXRlXy5wYXJlbnQ7XG4gICAgICAgIGlmIChyb3V0ZV8uY29tcG9uZW50KSB7XG4gICAgICAgICAgY29tcG9uZW50cy5wdXNoKHJvdXRlXy5jb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gISEoY29tcG9uZW50cz8ubGVuZ3RoID09PSAxKTtcbiAgICB9KSxcbiAgICBtYXAoKHJvdXRlKSA9PiAhIXJvdXRlKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzUm9vdFBhZ2UoKSB7XG4gIGNvbnN0IGlzUm9vdFBhZ2UkID0gaW5qZWN0SXNSb290UGFnZSQoKTtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZXR1cm4gY29tcHV0ZWRBc3luYygoKSA9PiBpc1Jvb3RQYWdlJCwge2luamVjdG9yfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROYXZTdGFydEFjdGlvbnMoXG4gIGlzUm9vdFBhZ2U6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSksXG4pOiBTaWduYWw8QWN0aW9uW10+IHtcbiAgY29uc3QgY29udGV4dCA9IGluamVjdFVpQ29udGV4dCgpO1xuICBjb25zdCBuYXZpZ2F0aW9uSGlzdG9yeSA9IGluamVjdChOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UpO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaChjb250ZXh0KCkuYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSAneExhcmdlJzpcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICBjYXNlICdzbWFsbCc6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2UoKSkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbkhpc3RvcnkuaXNJbml0aWFsKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgJ3hTbWFsbCc6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2UoKSkge1xuICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuVE9HR0xFX1NJREVfTkFWLCBuYW1lOiAn44Oh44OL44Ol44O8JywgaWNvbjogJ21lbnUnIH1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSGlzdG9yeS5pc0luaXRpYWwoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2UoKSkgcmV0dXJuIFtdO1xuICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVaUNvbnRleHQoKTogU2lnbmFsPFVJQ29udGV4dD4ge1xuICByZXR1cm4gaW5qZWN0KFVpU2VydmljZSkudWlDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBVaUNvbmZpZ1JlZHVjZXI8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZywgQyBleHRlbmRzIFVJQ29udGV4dCA9IGFueT4gPSAoY29uZmlnOiBULCBjb250ZXh0OiBDKSA9PiBUO1xuZXhwb3J0IGNvbnN0IFVJX0NPTkZJR19SRURVQ0VSID0gbmV3IEluamVjdGlvblRva2VuPFVpQ29uZmlnUmVkdWNlcjxhbnk+PignVUlfQ09ORklHX1JFRFVDRVInKTtcbmV4cG9ydCB0eXBlIFJlZHVjZXJGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmcsIEsgZXh0ZW5kcyBUID0gYW55PiBcbiAgPSAoaW5qZWN0b3I6IEluamVjdG9yLCBob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiAoY29uZmlnOiBLLCBjb250ZXh0OiBVSUNvbnRleHQpID0+IFQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsPFQ+KHNpZ25hbE9yVmFsdWU6IFNpZ25hbDxUPiB8IFQpOiBUIHtcbiAgcmV0dXJuIGlzU2lnbmFsKHNpZ25hbE9yVmFsdWUpID8gc2lnbmFsT3JWYWx1ZSgpIDogc2lnbmFsT3JWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0UmVkdWNlclBhdGgocmVkdWNlcjogRnVuY3Rpb24sIHBhdGg6IHN0cmluZ1tdKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWR1Y2VyLCAncGF0aCcsIHsgdmFsdWU6IHBhdGgsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIHJlZHVjZXI7XG59XG5cbmZ1bmN0aW9uIGdldFJlZHVjZXJQYXRoKHJlZHVjZXI6IEZ1bmN0aW9uKSB7XG4gIHJldHVybiByZWR1Y2VyWydwYXRoJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVWlDb25maWc8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZz4oXG4gIHJlZHVjZXJGYWN0b3J5OiBSZWR1Y2VyRmFjdG9yeTxUPixcbiAgcGF0aDogc3RyaW5nW10gPSBbXSxcbiAgbmFtZSA9ICduYW1lJyxcbik6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBVSV9DT05GSUdfUkVEVUNFUixcbiAgICB1c2VGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBmdW5jdGlvbiBfcmVkdWNlckZhY3RvcnkoaG9zdEluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBjb25zdCByZWR1Y2VyID0gcmVkdWNlckZhY3RvcnkoaW5qZWN0b3IsIGhvc3RJbmplY3Rvcik7IFxuICAgICAgICByZXR1cm4gKGNvbmZpZzogVCwgY29udGV4dDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm4gIHJlZHVjZXIoY29uZmlnLCBjb250ZXh0KTtcbiAgICAgICAgICByZXR1cm4gc2V0KGNvbmZpZyBhcyBvYmplY3QsIHBhdGgsIHJlZHVjZXIoZ2V0PGFueSwgYW55Pihjb25maWcsIHBhdGgpLCBjb250ZXh0KSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3JlZHVjZXJGYWN0b3J5LCAnbmFtZScsIHsgdmFsdWU6IG5hbWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgIHNldFJlZHVjZXJQYXRoKF9yZWR1Y2VyRmFjdG9yeSwgcGF0aCk7XG4gICAgICByZXR1cm4gX3JlZHVjZXJGYWN0b3J5O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJvb3RDb25maWc8VCBleHRlbmRzIG9iamVjdD4ocGF0aHM6IHN0cmluZ1tdID0gW10pOiBTaWduYWw8VD4ge1xuICBjb25zdCB1aUNvbnRleHQgPSBpbmplY3RVaUNvbnRleHQoKTtcbiAgY29uc3QgZmFjdG9yaWVzID0gaW5qZWN0UmVkdWNlckZhY3RvaXJpZXMocGF0aHMpO1xuICBjb25zdCBob3N0SW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCByZWR1Y2VycyA9IGZhY3Rvcmllcy5tYXAoZmFjdG9yeSA9PiB7XG4gICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChob3N0SW5qZWN0b3IsICgpID0+IGZhY3RvcnkoaG9zdEluamVjdG9yKSk7XG4gIH0pO1xuICBpZiAoIXJlZHVjZXJzKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCByb290Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1aUNvbnRleHQoKTtcbiAgICByZXR1cm4gcmVkdWNlcnMucmVkdWNlKChhY2MsIHJlZHVjZXIpID0+IHtcbiAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaG9zdEluamVjdG9yLCAoKSA9PiByZWR1Y2VyKGFjYywgY29udGV4dCkpO1xuICAgIH0sIHt9IGFzIFQpO1xuICB9KTtcbiAgcmV0dXJuIHJvb3RDb25maWc7XG59XG5cbi8vIFRPRE8oQG5vbnRhbmdlbnQpOiBpdGVtc+OBquOBqeOBruWPluW+l+OBjOWFqOOBpuOBruOCs+ODs+ODneODvOODjeODs+ODiOOBp+ihjOOCj+OCjOOCi+OBruOBp+ioiOeul+OCkuacgOmBqeWMluOBmeOCi+OAglxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KHBhdGhzOiBzdHJpbmdbXSA9IFtdKTogU2lnbmFsPFQ+IHtcbiAgY29uc3Qgcm9vdENvbmZpZyA9IGluamVjdFJvb3RDb25maWc8VD4ocGF0aHMpO1xuICByZXR1cm4gc2NvcGVkKHJvb3RDb25maWcsIHBhdGhzIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KGRlZmF1bHRVc2VGYWN0b3J5OiBSZWR1Y2VyRmFjdG9yeTxUPiwgcGF0aDogc3RyaW5nW10pIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBmdW5jdGlvbiBwcm92aWRlQ29uZmlnKHVzZUZhY3Rvcnk/OiBSZWR1Y2VyRmFjdG9yeTxUPiwgbGFiZWwgPSB1c2VGYWN0b3J5ID8gJ2N1c3RvbScgOiAnZGVmYXVsdCcpIHtcbiAgICAgIHVzZUZhY3RvcnkgPz89IGRlZmF1bHRVc2VGYWN0b3J5O1xuICAgICAgcmV0dXJuIHByb3ZpZGVVaUNvbmZpZzxUPih1c2VGYWN0b3J5LCBwYXRoLCBgWyR7cGF0aC5qb2luKCcuJyl9XSAke2xhYmVsfWApO1xuICAgIH0sXG4gICAgaW5qZWN0OiBmdW5jdGlvbiBpbmplY3RDb25maWcoKSB7XG4gICAgICByZXR1cm4gaW5qZWN0VWlDb25maWc8VD4ocGF0aCk7XG4gICAgfSxcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmplY3RSZWR1Y2VycygpOiAoKGhvc3RJbmplY3RvcjogSW5qZWN0b3IpID0+IFVpQ29uZmlnUmVkdWNlcjxhbnk+KVtdIHtcbiAgcmV0dXJuIGluamVjdERlZXBNdWx0aTwoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4+KFVJX0NPTkZJR19SRURVQ0VSKTtcbn1cblxuZnVuY3Rpb24gaW5qZWN0UmVkdWNlckZhY3RvaXJpZXMocGF0aDogc3RyaW5nW10gPSBbXSk6ICgoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4pW10ge1xuICByZXR1cm4gaW5qZWN0UmVkdWNlcnMoKS5maWx0ZXIoZmFjdG9yeSA9PiB7XG4gICAgcmV0dXJuIGdldFJlZHVjZXJQYXRoKGZhY3RvcnkpLmV2ZXJ5KChwLCBpKSA9PiBwYXRoW2ldID09PSBwKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWVwTXVsdGk8VD4odG9rZW46IFByb3ZpZGVyVG9rZW48VD4sIGluamVjdG9yOiBJbmplY3RvciA9IGluamVjdChJbmplY3RvcikpOiBUW10ge1xuICBjb25zdCB2YWx1ZU9yQXJyYXkgPSBpbmplY3Rvci5nZXQodG9rZW4gYXMgUHJvdmlkZXJUb2tlbjxUW10+LCBbXSwge29wdGlvbmFsOiB0cnVlfSk7XG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheSh2YWx1ZU9yQXJyYXkpID8gdmFsdWVPckFycmF5IDogW3ZhbHVlT3JBcnJheV07XG4gIGNvbnN0IHBhcmVudEluamVjdG9yID0gaW5qZWN0b3IuZ2V0KEluamVjdG9yLCBudWxsLCB7c2tpcFNlbGY6IHRydWV9KTtcbiAgaWYgKCFwYXJlbnRJbmplY3RvcikgcmV0dXJuIGl0ZW1zO1xuICByZXR1cm4gWy4uLm5ldyBTZXQoWy4uLmluamVjdERlZXBNdWx0aSh0b2tlbiwgcGFyZW50SW5qZWN0b3IpLCAuLi5pdGVtc10pXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnSW5qZWN0b3IoaW5qZWN0b3I6IEluamVjdG9yIHwgbnVsbCA9IGluamVjdChJbmplY3RvcikpIHtcbiAgICAgIGNvbnN0IGdldFBhcmVudCA9IChpbmplY3RvcjogSW5qZWN0b3IsIG4gPSAwKTogSW5qZWN0b3IgfCBudWxsID0+IHtcbiAgICAgIHdoaWxlIChpbmplY3RvciAmJiBuLS0gPiAwKSB7XG4gICAgICAgIGluamVjdG9yID0gaW5qZWN0b3IuZ2V0KEluamVjdG9yLCBudWxsLCB7IHNraXBTZWxmOiB0cnVlIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGluamVjdG9yO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEluamVjdG9yTmFtZSA9IChpbmplY3RvcjogSW5qZWN0b3IpOiBzdHJpbmcgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGluamVjdG9yLmdldChFbGVtZW50UmVmLCBudWxsKT8ubmF0aXZlRWxlbWVudD8udGFnTmFtZT8udG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChuYW1lKSByZXR1cm4gYDwke25hbWV9PmA7XG4gICAgICByZXR1cm4gYCR7aW5qZWN0b3JbJ3NvdXJjZSddfWA7XG4gICAgfVxuXG4gICAgY29uc3QgaXNOb2RlSW5qZWN0b3IgPSAoaW5qZWN0b3I6IEluamVjdG9yKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYsIG51bGwpICE9PSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcFRvTmFtZXMgPSAocmVkdWNlcnM6IGFueSkgPT4gKHJlZHVjZXJzID8/IFtdKS5tYXAocmVkdWNlciA9PiByZWR1Y2VyLm5hbWUpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XG4gICAgICBpbmplY3RvciA9IGdldFBhcmVudChpbmplY3RvciwgaSk7XG4gICAgICBpZiAoaW5qZWN0b3IgPT09IEluamVjdG9yLk5VTEwpIGJyZWFrO1xuICAgIH1cbn1cbiJdfQ==
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1DLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFekYsTUFBTSxVQUFVLE1BQU0sQ0FBeUMsTUFBaUIsRUFBRSxJQUFtQjtJQUNuRyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsSUFB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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBQcm92aWRlciwgUHJvdmlkZXJUb2tlbiwgU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlzU2lnbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVSUNvbnRleHQsIFVpU2VydmljZSB9IGZyb20gXCIuL3VpLnNlcnZpY2VcIjtcbmltcG9ydCB7IGdldCwgc2V0IH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcIkBuZy1hdG9taWMvY29yZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IGNvbXB1dGVkQXN5bmMgfSBmcm9tIFwibmd4dGVuc2lvbi9jb21wdXRlZC1hc3luY1wiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkhpc3RvcnlTZXJ2aWNlIH0gZnJvbSBcIkBuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL25hdmlnYXRpb24taGlzdG9yeVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2NvcGVkPFQgZXh0ZW5kcyBvYmplY3QsIFRLZXkgZXh0ZW5kcyBrZXlvZiBUPihzb3VyY2U6IFNpZ25hbDxUPiwgcGF0aDogVEtleSB8IFtUS2V5XSk6IFNpZ25hbDxUW1RLZXldPiB7XG4gIGNvbnN0IHNjb3BlZFNpZ25hbCA9IHNpZ25hbDxUW1RLZXldPihnZXQoc291cmNlKCksIHBhdGgpKTtcbiAgZWZmZWN0KCgpID0+IHtcbiAgICBzY29wZWRTaWduYWwuc2V0KGdldChzb3VyY2UoKSwgcGF0aCwgc291cmNlKCkpIGFzIFRbVEtleV0pO1xuICB9LCB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9KTtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHNjb3BlZFNpZ25hbCgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEJyZWFrcG9pbnQoKSB7XG4gIHJldHVybiBpbmplY3QoVWlTZXJ2aWNlKS5icmVha3BvaW50LmJyZWFrcG9pbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc01vYmlsZSgpIHtcbiAgY29uc3QgYnJlYWtwb2ludCA9IGluamVjdEJyZWFrcG9pbnQoKTtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICBbJ3hTbWFsbCcsICdzbWFsbCddLmluY2x1ZGVzKGJyZWFrcG9pbnQoKSkpO1xufVxuXG5leHBvcnQgZW51bSBOYXZBY3Rpb25JZCB7XG4gIFRPR0dMRV9TSURFX05BViA9ICdbQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvdWldIFRPR0dMRV9TSURFX05BVicsXG4gIEJBQ0sgPSAnW0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpXSBCQUNLJyxcbiAgQ0xPU0UgPSAnW0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpXSBDTE9TRScsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc1Jvb3RQYWdlJCgpIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmV0dXJuIHJvdXRlci5ldmVudHMucGlwZShcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgbWFwKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXTtcbiAgICAgIGxldCByb3V0ZV8gPSByb3V0ZTsgXG4gICAgICB3aGlsZShyb3V0ZV8pIHtcbiAgICAgICAgaWYgKCFyb3V0ZV8ucGFyZW50KSBicmVhaztcbiAgICAgICAgcm91dGVfID0gcm91dGVfLnBhcmVudDtcbiAgICAgICAgaWYgKHJvdXRlXy5jb21wb25lbnQpIHtcbiAgICAgICAgICBjb21wb25lbnRzLnB1c2gocm91dGVfLmNvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAhIShjb21wb25lbnRzPy5sZW5ndGggPT09IDEpO1xuICAgIH0pLFxuICAgIG1hcCgocm91dGUpID0+ICEhcm91dGUpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNSb290UGFnZSgpIHtcbiAgY29uc3QgaXNSb290UGFnZSQgPSBpbmplY3RJc1Jvb3RQYWdlJCgpO1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHJldHVybiBjb21wdXRlZEFzeW5jKCgpID0+IGlzUm9vdFBhZ2UkLCB7aW5qZWN0b3J9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5hdlN0YXJ0QWN0aW9ucyhcbiAgaXNSb290UGFnZTogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKSxcbik6IFNpZ25hbDxBY3Rpb25bXT4ge1xuICBjb25zdCBjb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IG5hdmlnYXRpb25IaXN0b3J5ID0gaW5qZWN0KE5hdmlnYXRpb25IaXN0b3J5U2VydmljZSk7XG4gIGxldCBpc0luaXRpYWw6IGJvb2xlYW47XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoKGNvbnRleHQoKS5icmVha3BvaW50KSB7XG4gICAgICBjYXNlICd4TGFyZ2UnOlxuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgIGNhc2UgJ3NtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpc0luaXRpYWwgPz89IG5hdmlnYXRpb25IaXN0b3J5LmlzSW5pdGlhbCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQkFDSywgbmFtZTogJ0JBQ0snLCBpY29uOiAnYXJyb3dfYmFjaycgfV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjYXNlICd4U21hbGwnOiB7XG4gICAgICAgIGlmIChpc1Jvb3RQYWdlKCkpIHtcbiAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLlRPR0dMRV9TSURFX05BViwgbmFtZTogJ+ODoeODi+ODpeODvCcsIGljb246ICdtZW51JyB9XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbkhpc3RvcnkuaXNJbml0aWFsKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuVE9HR0xFX1NJREVfTkFWLCBuYW1lOiAn44Oh44OL44Ol44O8JywgaWNvbjogJ21lbnUnIH1dXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQkFDSywgbmFtZTogJ0JBQ0snLCBpY29uOiAnYXJyb3dfYmFjaycgfV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGlmIChpc1Jvb3RQYWdlKCkpIHJldHVybiBbXTtcbiAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U2lkZUFwcE5hdlN0YXJ0QWN0aW9ucyhcbiAgaXNSb290UGFnZTogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKSxcbik6IFNpZ25hbDxBY3Rpb25bXT4ge1xuICBjb25zdCBjb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IG5hdmlnYXRpb25IaXN0b3J5ID0gaW5qZWN0KE5hdmlnYXRpb25IaXN0b3J5U2VydmljZSk7XG4gIGxldCBpc0luaXRpYWw6IGJvb2xlYW47XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoKGNvbnRleHQoKS5icmVha3BvaW50KSB7XG4gICAgICBjYXNlICd4TGFyZ2UnOlxuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgIGNhc2UgJ3NtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpc0luaXRpYWwgPz89IG5hdmlnYXRpb25IaXN0b3J5LmlzSW5pdGlhbCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkNMT1NFLCBuYW1lOiAnQ0xPU0UnLCBpY29uOiAnY2xvc2UnIH1dO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FzZSAneFNtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGlzSW5pdGlhbCA/Pz0gbmF2aWdhdGlvbkhpc3RvcnkuaXNJbml0aWFsKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQ0xPU0UsIG5hbWU6ICdDTE9TRScsIGljb246ICdjbG9zZScgfV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQkFDSywgbmFtZTogJ0JBQ0snLCBpY29uOiAnYXJyb3dfYmFjaycgfV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGlmIChpc1Jvb3RQYWdlKCkpIHJldHVybiBbXTtcbiAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29udGV4dCgpOiBTaWduYWw8VUlDb250ZXh0PiB7XG4gIHJldHVybiBpbmplY3QoVWlTZXJ2aWNlKS51aUNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIFVpQ29uZmlnUmVkdWNlcjxUIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nLCBDIGV4dGVuZHMgVUlDb250ZXh0ID0gYW55PiA9IChjb25maWc6IFQsIGNvbnRleHQ6IEMpID0+IFQ7XG5leHBvcnQgY29uc3QgVUlfQ09ORklHX1JFRFVDRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48VWlDb25maWdSZWR1Y2VyPGFueT4+KCdVSV9DT05GSUdfUkVEVUNFUicpO1xuZXhwb3J0IHR5cGUgUmVkdWNlckZhY3Rvcnk8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZywgSyBleHRlbmRzIFQgPSBhbnk+IFxuICA9IChpbmplY3RvcjogSW5qZWN0b3IsIGhvc3RJbmplY3RvcjogSW5qZWN0b3IpID0+IChjb25maWc6IEssIGNvbnRleHQ6IFVJQ29udGV4dCkgPT4gVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGw8VD4oc2lnbmFsT3JWYWx1ZTogU2lnbmFsPFQ+IHwgVCk6IFQge1xuICByZXR1cm4gaXNTaWduYWwoc2lnbmFsT3JWYWx1ZSkgPyBzaWduYWxPclZhbHVlKCkgOiBzaWduYWxPclZhbHVlO1xufVxuXG5mdW5jdGlvbiBzZXRSZWR1Y2VyUGF0aChyZWR1Y2VyOiBGdW5jdGlvbiwgcGF0aDogc3RyaW5nW10pIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlZHVjZXIsICdwYXRoJywgeyB2YWx1ZTogcGF0aCwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICByZXR1cm4gcmVkdWNlcjtcbn1cblxuZnVuY3Rpb24gZ2V0UmVkdWNlclBhdGgocmVkdWNlcjogRnVuY3Rpb24pIHtcbiAgcmV0dXJuIHJlZHVjZXJbJ3BhdGgnXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVVaUNvbmZpZzxUIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nPihcbiAgcmVkdWNlckZhY3Rvcnk6IFJlZHVjZXJGYWN0b3J5PFQ+LFxuICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICBuYW1lID0gJ25hbWUnLFxuKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFVJX0NPTkZJR19SRURVQ0VSLFxuICAgIHVzZUZhY3Rvcnk6IChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGZ1bmN0aW9uIF9yZWR1Y2VyRmFjdG9yeShob3N0SW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIGNvbnN0IHJlZHVjZXIgPSByZWR1Y2VyRmFjdG9yeShpbmplY3RvciwgaG9zdEluamVjdG9yKTsgXG4gICAgICAgIHJldHVybiAoY29uZmlnOiBULCBjb250ZXh0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApIHJldHVybiAgcmVkdWNlcihjb25maWcsIGNvbnRleHQpO1xuICAgICAgICAgIHJldHVybiBzZXQoY29uZmlnIGFzIG9iamVjdCwgcGF0aCwgcmVkdWNlcihnZXQ8YW55LCBhbnk+KGNvbmZpZywgcGF0aCksIGNvbnRleHQpKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfcmVkdWNlckZhY3RvcnksICduYW1lJywgeyB2YWx1ZTogbmFtZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICAgICAgc2V0UmVkdWNlclBhdGgoX3JlZHVjZXJGYWN0b3J5LCBwYXRoKTtcbiAgICAgIHJldHVybiBfcmVkdWNlckZhY3Rvcnk7XG4gICAgfSxcbiAgICBkZXBzOiBbSW5qZWN0b3JdLFxuICAgIG11bHRpOiB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Um9vdENvbmZpZzxUIGV4dGVuZHMgb2JqZWN0PihwYXRoczogc3RyaW5nW10gPSBbXSk6IFNpZ25hbDxUPiB7XG4gIGNvbnN0IHVpQ29udGV4dCA9IGluamVjdFVpQ29udGV4dCgpO1xuICBjb25zdCBmYWN0b3JpZXMgPSBpbmplY3RSZWR1Y2VyRmFjdG9pcmllcyhwYXRocyk7XG4gIGNvbnN0IGhvc3RJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IHJlZHVjZXJzID0gZmFjdG9yaWVzLm1hcChmYWN0b3J5ID0+IHtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGhvc3RJbmplY3RvciwgKCkgPT4gZmFjdG9yeShob3N0SW5qZWN0b3IpKTtcbiAgfSk7XG4gIGlmICghcmVkdWNlcnMpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHJvb3RDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVpQ29udGV4dCgpO1xuICAgIHJldHVybiByZWR1Y2Vycy5yZWR1Y2UoKGFjYywgcmVkdWNlcikgPT4ge1xuICAgICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChob3N0SW5qZWN0b3IsICgpID0+IHJlZHVjZXIoYWNjLCBjb250ZXh0KSk7XG4gICAgfSwge30gYXMgVCk7XG4gIH0pO1xuICByZXR1cm4gcm9vdENvbmZpZztcbn1cblxuLy8gVE9ETyhAbm9udGFuZ2VudCk6IGl0ZW1z44Gq44Gp44Gu5Y+W5b6X44GM5YWo44Gm44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gn6KGM44KP44KM44KL44Gu44Gn6KiI566X44KS5pyA6YGp5YyW44GZ44KL44CCXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VWlDb25maWc8VCBleHRlbmRzIG9iamVjdD4ocGF0aHM6IHN0cmluZ1tdID0gW10pOiBTaWduYWw8VD4ge1xuICBjb25zdCByb290Q29uZmlnID0gaW5qZWN0Um9vdENvbmZpZzxUPihwYXRocyk7XG4gIHJldHVybiBzY29wZWQocm9vdENvbmZpZywgcGF0aHMgYXMgYW55KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDb25maWc8VCBleHRlbmRzIG9iamVjdD4oZGVmYXVsdFVzZUZhY3Rvcnk6IFJlZHVjZXJGYWN0b3J5PFQ+LCBwYXRoOiBzdHJpbmdbXSkge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IGZ1bmN0aW9uIHByb3ZpZGVDb25maWcodXNlRmFjdG9yeT86IFJlZHVjZXJGYWN0b3J5PFQ+LCBsYWJlbCA9IHVzZUZhY3RvcnkgPyAnY3VzdG9tJyA6ICdkZWZhdWx0Jykge1xuICAgICAgdXNlRmFjdG9yeSA/Pz0gZGVmYXVsdFVzZUZhY3Rvcnk7XG4gICAgICByZXR1cm4gcHJvdmlkZVVpQ29uZmlnPFQ+KHVzZUZhY3RvcnksIHBhdGgsIGBbJHtwYXRoLmpvaW4oJy4nKX1dICR7bGFiZWx9YCk7XG4gICAgfSxcbiAgICBpbmplY3Q6IGZ1bmN0aW9uIGluamVjdENvbmZpZygpIHtcbiAgICAgIHJldHVybiBpbmplY3RVaUNvbmZpZzxUPihwYXRoKTtcbiAgICB9LFxuICB9XG59XG5cbmZ1bmN0aW9uIGluamVjdFJlZHVjZXJzKCk6ICgoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4pW10ge1xuICByZXR1cm4gaW5qZWN0RGVlcE11bHRpPChob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiBVaUNvbmZpZ1JlZHVjZXI8YW55Pj4oVUlfQ09ORklHX1JFRFVDRVIpO1xufVxuXG5mdW5jdGlvbiBpbmplY3RSZWR1Y2VyRmFjdG9pcmllcyhwYXRoOiBzdHJpbmdbXSA9IFtdKTogKChob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiBVaUNvbmZpZ1JlZHVjZXI8YW55PilbXSB7XG4gIHJldHVybiBpbmplY3RSZWR1Y2VycygpLmZpbHRlcihmYWN0b3J5ID0+IHtcbiAgICByZXR1cm4gZ2V0UmVkdWNlclBhdGgoZmFjdG9yeSkuZXZlcnkoKHAsIGkpID0+IHBhdGhbaV0gPT09IHApO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZXBNdWx0aTxUPih0b2tlbjogUHJvdmlkZXJUb2tlbjxUPiwgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKSk6IFRbXSB7XG4gIGNvbnN0IHZhbHVlT3JBcnJheSA9IGluamVjdG9yLmdldCh0b2tlbiBhcyBQcm92aWRlclRva2VuPFRbXT4sIFtdLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgY29uc3QgaXRlbXMgPSBBcnJheS5pc0FycmF5KHZhbHVlT3JBcnJheSkgPyB2YWx1ZU9yQXJyYXkgOiBbdmFsdWVPckFycmF5XTtcbiAgY29uc3QgcGFyZW50SW5qZWN0b3IgPSBpbmplY3Rvci5nZXQoSW5qZWN0b3IsIG51bGwsIHtza2lwU2VsZjogdHJ1ZX0pO1xuICBpZiAoIXBhcmVudEluamVjdG9yKSByZXR1cm4gaXRlbXM7XG4gIHJldHVybiBbLi4ubmV3IFNldChbLi4uaW5qZWN0RGVlcE11bHRpKHRva2VuLCBwYXJlbnRJbmplY3RvciksIC4uLml0ZW1zXSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWdJbmplY3RvcihpbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gaW5qZWN0KEluamVjdG9yKSkge1xuICAgICAgY29uc3QgZ2V0UGFyZW50ID0gKGluamVjdG9yOiBJbmplY3RvciwgbiA9IDApOiBJbmplY3RvciB8IG51bGwgPT4ge1xuICAgICAgd2hpbGUgKGluamVjdG9yICYmIG4tLSA+IDApIHtcbiAgICAgICAgaW5qZWN0b3IgPSBpbmplY3Rvci5nZXQoSW5qZWN0b3IsIG51bGwsIHsgc2tpcFNlbGY6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5qZWN0b3I7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SW5qZWN0b3JOYW1lID0gKGluamVjdG9yOiBJbmplY3Rvcik6IHN0cmluZyA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYsIG51bGwpPy5uYXRpdmVFbGVtZW50Py50YWdOYW1lPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWUpIHJldHVybiBgPCR7bmFtZX0+YDtcbiAgICAgIHJldHVybiBgJHtpbmplY3Rvclsnc291cmNlJ119YDtcbiAgICB9XG5cbiAgICBjb25zdCBpc05vZGVJbmplY3RvciA9IChpbmplY3RvcjogSW5qZWN0b3IpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoRWxlbWVudFJlZiwgbnVsbCkgIT09IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbWFwVG9OYW1lcyA9IChyZWR1Y2VyczogYW55KSA9PiAocmVkdWNlcnMgPz8gW10pLm1hcChyZWR1Y2VyID0+IHJlZHVjZXIubmFtZSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcbiAgICAgIGluamVjdG9yID0gZ2V0UGFyZW50KGluamVjdG9yLCBpKTtcbiAgICAgIGlmIChpbmplY3RvciA9PT0gSW5qZWN0b3IuTlVMTCkgYnJlYWs7XG4gICAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
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
|
-
import { Auth, authState, TwitterAuthProvider, signInWithPopup, GoogleAuthProvider, signInWithCustomToken, signOut } from '@angular/fire/auth';
|
|
4
|
+
import { Auth, authState, TwitterAuthProvider, signInWithPopup, GoogleAuthProvider, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithCustomToken, signOut } from '@angular/fire/auth';
|
|
5
5
|
import { map, distinctUntilChanged, shareReplay, switchMap, of } from 'rxjs';
|
|
6
6
|
|
|
7
7
|
class AuthService {
|
|
@@ -19,6 +19,12 @@ class AuthService {
|
|
|
19
19
|
const provider = new GoogleAuthProvider();
|
|
20
20
|
return signInWithPopup(this.#auth, provider);
|
|
21
21
|
}
|
|
22
|
+
signInWithEmailAndPassword(email, password) {
|
|
23
|
+
return signInWithEmailAndPassword(this.#auth, email, password);
|
|
24
|
+
}
|
|
25
|
+
createUserWithEmailAndPassword(email, password) {
|
|
26
|
+
return createUserWithEmailAndPassword(this.#auth, email, password);
|
|
27
|
+
}
|
|
22
28
|
signInWithCustomToken(customToken) {
|
|
23
29
|
return signInWithCustomToken(this.#auth, customToken);
|
|
24
30
|
}
|
|
@@ -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 } 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 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).auth$.pipe(\n switchMap(auth => auth ? auth?.getIdTokenResult() : of(null)),\n map(token => token?.claims?.[claim] ?? false),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n ) as any;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MA8Ba,WAAW,CAAA;AAHxB,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,QAAA,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;
|
|
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).auth$.pipe(\n switchMap(auth => auth ? auth?.getIdTokenResult() : of(null)),\n map(token => token?.claims?.[claim] ?? false),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n ) as any;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { signal, Injectable } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class FabService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.hidden = signal(false);
|
|
7
|
+
this.actions = signal([]);
|
|
8
|
+
}
|
|
9
|
+
show() {
|
|
10
|
+
this.hidden.set(false);
|
|
11
|
+
}
|
|
12
|
+
hide() {
|
|
13
|
+
this.hidden.set(true);
|
|
14
|
+
}
|
|
15
|
+
toggle() {
|
|
16
|
+
this.hidden.update(hidden => !hidden);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FabService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FabService, providedIn: 'root' }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FabService, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{
|
|
24
|
+
providedIn: 'root'
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Generated bundle index. Do not edit.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
export { FabService };
|
|
33
|
+
//# sourceMappingURL=ng-atomic-common-services-fab.mjs.map
|
|
@@ -0,0 +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 actions = signal<Action[]>([]);\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":";;;MAMa,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;AAazC,KAAA;IAXC,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;8GAdU,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;;;ACLD;;AAEG;;;;"}
|
|
@@ -31,12 +31,24 @@ class RootPropertyService {
|
|
|
31
31
|
'--background-color': '#fff',
|
|
32
32
|
'--menu-width': '64px',
|
|
33
33
|
'--page-width-lv1': '360px',
|
|
34
|
-
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px -
|
|
35
|
-
'--page-width-lv3': 'max(calc(min(100vw, 1600px) -
|
|
34
|
+
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',
|
|
35
|
+
'--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',
|
|
36
|
+
'--page-width-lv4': '100vw',
|
|
37
|
+
'--page-height-lv1': '100vh',
|
|
38
|
+
};
|
|
39
|
+
case 'large': return {
|
|
40
|
+
'--primary-color': '#404040',
|
|
41
|
+
'--on-primary-color': '#f0f0f0',
|
|
42
|
+
'--surface-color': '#fff',
|
|
43
|
+
'--on-surface-color': '#404040',
|
|
44
|
+
'--background-color': '#fff',
|
|
45
|
+
'--menu-width': '220px',
|
|
46
|
+
'--page-width-lv1': '360px',
|
|
47
|
+
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',
|
|
48
|
+
'--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',
|
|
36
49
|
'--page-width-lv4': '100vw',
|
|
37
50
|
'--page-height-lv1': '100vh',
|
|
38
51
|
};
|
|
39
|
-
case 'large':
|
|
40
52
|
case 'xLarge': return {
|
|
41
53
|
'--primary-color': '#404040',
|
|
42
54
|
'--on-primary-color': '#f0f0f0',
|
|
@@ -45,8 +57,8 @@ class RootPropertyService {
|
|
|
45
57
|
'--background-color': '#fff',
|
|
46
58
|
'--menu-width': '220px',
|
|
47
59
|
'--page-width-lv1': '360px',
|
|
48
|
-
'--page-width-lv2': 'max(calc(min(100vw
|
|
49
|
-
'--page-width-lv3': 'max(calc(min(100vw
|
|
60
|
+
'--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',
|
|
61
|
+
'--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',
|
|
50
62
|
'--page-width-lv4': '100vw',
|
|
51
63
|
'--page-height-lv1': '100vh',
|
|
52
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-root-property.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/ng-atomic-common-services-root-property.ts"],"sourcesContent":["import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Directive, ENVIRONMENT_INITIALIZER, ElementRef, Injectable, PLATFORM_ID, Provider, effect, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { makeConfig } from '@ng-atomic/common/services/ui';\nimport { Observable, delay, filter, map, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RootPropertyService {\n static readonly Config = makeConfig(() => {\n return (_, context) => {\n switch (context.breakpoint) {\n case 'xSmall': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '100vw',\n '--page-width-lv2': '100vw',\n '--page-width-lv3': '100vw',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'small':\n case 'medium': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '64px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px -
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-root-property.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/ng-atomic-common-services-root-property.ts"],"sourcesContent":["import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Directive, ENVIRONMENT_INITIALIZER, ElementRef, Injectable, PLATFORM_ID, Provider, effect, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { makeConfig } from '@ng-atomic/common/services/ui';\nimport { Observable, delay, filter, map, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RootPropertyService {\n static readonly Config = makeConfig(() => {\n return (_, context) => {\n switch (context.breakpoint) {\n case 'xSmall': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '100vw',\n '--page-width-lv2': '100vw',\n '--page-width-lv3': '100vw',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'small':\n case 'medium': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '64px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'large': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'xLarge': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n }\n };\n }, ['root', 'properties']);\n readonly config = RootPropertyService.Config.inject();\n\n readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n effect(() => {\n if (isPlatformBrowser(this.platformId)) {\n for (const [key, value] of Object.entries(this.config?.() ?? {})) {\n document.documentElement.style.setProperty(key, value);\n }\n }\n });\n }\n}\n\nexport function provideRootProperty(\n resolverFactoryFactory?: Parameters<typeof RootPropertyService.Config.provide>[0],\n): Provider[] {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => {\n return () => inject(RootPropertyService);\n },\n multi: true,\n },\n RootPropertyService.Config.provide(resolverFactoryFactory),\n ]\n}\n\n@Directive({ standalone: true, selector: '[atomicStyle]' })\nexport class NgAtomicStyleDirective {\n readonly #el = inject(ElementRef);\n readonly platformId = inject(PLATFORM_ID);\n\n constructor(private rootPropertyService: RootPropertyService) {\n effect(() => {\n for (const [key, value] of Object.entries(this.rootPropertyService.config?.() ?? {})) {\n this.#el.nativeElement.style.setProperty(key, value);\n }\n });\n }\n}\n\n\n@Injectable({providedIn: 'root'})\nexport class RootPropertyGuard {\n\treadonly properties = RootPropertyService.Config.inject();\n\treadonly properties$ = toObservable(this.properties);\n\treadonly platformId = inject(PLATFORM_ID);\n\n\tcanActivate(): Observable<boolean> {\n\t\tif (isPlatformServer(this.platformId)) return of(null);\t\n\t\treturn this.properties$.pipe(\n\t\t\tfilter(properties => properties['--background-color'] === '#f0f0f0'),\n\t\t\tdelay(500),\n\t\t\tmap(() => true),\n\t\t);\n\t}\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ var NavActionId;
|
|
|
50
50
|
(function (NavActionId) {
|
|
51
51
|
NavActionId["TOGGLE_SIDE_NAV"] = "[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV";
|
|
52
52
|
NavActionId["BACK"] = "[@ng-atomic/common/services/ui] BACK";
|
|
53
|
+
NavActionId["CLOSE"] = "[@ng-atomic/common/services/ui] CLOSE";
|
|
53
54
|
})(NavActionId || (NavActionId = {}));
|
|
54
55
|
function injectIsRootPage$() {
|
|
55
56
|
const router = inject(Router);
|
|
@@ -76,6 +77,7 @@ function injectIsRootPage() {
|
|
|
76
77
|
function injectNavStartActions(isRootPage = signal(false)) {
|
|
77
78
|
const context = injectUiContext();
|
|
78
79
|
const navigationHistory = inject(NavigationHistoryService);
|
|
80
|
+
let isInitial;
|
|
79
81
|
return computed(() => {
|
|
80
82
|
switch (context().breakpoint) {
|
|
81
83
|
case 'xLarge':
|
|
@@ -86,7 +88,7 @@ function injectNavStartActions(isRootPage = signal(false)) {
|
|
|
86
88
|
return [];
|
|
87
89
|
}
|
|
88
90
|
else {
|
|
89
|
-
if (navigationHistory.isInitial()) {
|
|
91
|
+
if (isInitial ??= navigationHistory.isInitial()) {
|
|
90
92
|
return [];
|
|
91
93
|
}
|
|
92
94
|
else {
|
|
@@ -115,6 +117,49 @@ function injectNavStartActions(isRootPage = signal(false)) {
|
|
|
115
117
|
}
|
|
116
118
|
});
|
|
117
119
|
}
|
|
120
|
+
function injectSideAppNavStartActions(isRootPage = signal(false)) {
|
|
121
|
+
const context = injectUiContext();
|
|
122
|
+
const navigationHistory = inject(NavigationHistoryService);
|
|
123
|
+
let isInitial;
|
|
124
|
+
return computed(() => {
|
|
125
|
+
switch (context().breakpoint) {
|
|
126
|
+
case 'xLarge':
|
|
127
|
+
case 'large':
|
|
128
|
+
case 'medium':
|
|
129
|
+
case 'small': {
|
|
130
|
+
if (isRootPage()) {
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
if (isInitial ??= navigationHistory.isInitial()) {
|
|
135
|
+
return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
case 'xSmall': {
|
|
143
|
+
if (isRootPage()) {
|
|
144
|
+
return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
if (isInitial ??= navigationHistory.isInitial()) {
|
|
148
|
+
return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
default: {
|
|
156
|
+
if (isRootPage())
|
|
157
|
+
return [];
|
|
158
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
118
163
|
function injectUiContext() {
|
|
119
164
|
return inject(UiService).uiContext;
|
|
120
165
|
}
|
|
@@ -227,5 +272,5 @@ function debugInjector(injector = inject(Injector)) {
|
|
|
227
272
|
* Generated bundle index. Do not edit.
|
|
228
273
|
*/
|
|
229
274
|
|
|
230
|
-
export { NavActionId, UI_CONFIG_REDUCER, UiService, call, debugInjector, injectBreakpoint, injectDeepMulti, injectIsMobile, injectIsRootPage, injectIsRootPage$, injectNavStartActions, injectRootConfig, injectUiConfig, injectUiContext, makeConfig, provideUiConfig, scoped };
|
|
275
|
+
export { NavActionId, UI_CONFIG_REDUCER, UiService, call, debugInjector, injectBreakpoint, injectDeepMulti, injectIsMobile, injectIsRootPage, injectIsRootPage$, injectNavStartActions, injectRootConfig, injectSideAppNavStartActions, injectUiConfig, injectUiContext, makeConfig, provideUiConfig, scoped };
|
|
231
276
|
//# sourceMappingURL=ng-atomic-common-services-ui.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-ui.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.helpers.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ng-atomic-common-services-ui.ts"],"sourcesContent":["\nimport { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart } from '@angular/router';\nimport { filter, map, startWith } from 'rxjs';\nimport { isPlatformBrowser } from '@angular/common';\nimport { RouterService } from '@ng-atomic/common/services/router';\nimport { Breakpoint, BreakpointService } from '@ng-atomic/common/services/breakpoint';\n\nexport interface UIContext {\n breakpoint: Breakpoint;\n paths: any[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UiService {\n readonly breakpoint = inject(BreakpointService);\n readonly router = inject(RouterService);\n readonly platformId = inject(PLATFORM_ID);\n\n readonly paths$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map((event: NavigationStart) => event.url),\n startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''),\n map(url => this.router.parseUrl(url)),\n map(urlTree => urlTree.root.children?.primary?.segments ?? []),\n );\n readonly paths = toSignal(this.paths$);\n\n readonly snapshot$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map(() => this.router.routerState.snapshot.root),\n );\n readonly snapshot = toSignal(this.snapshot$);\n\n readonly uiContext = computed(() => ({\n breakpoint: this.breakpoint.breakpoint(),\n paths: this.paths(),\n }));\n}\n","import { ElementRef, InjectionToken, Injector, Provider, ProviderToken, Signal, computed, effect, inject, isSignal, runInInjectionContext, signal } from \"@angular/core\";\nimport { UIContext, UiService } from \"./ui.service\";\nimport { get, set } from \"lodash-es\";\nimport { Action } from \"@ng-atomic/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { map, shareReplay, startWith } from \"rxjs\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { computedAsync } from \"ngxtension/computed-async\";\nimport { NavigationHistoryService } from \"@ng-atomic/common/services/navigation-history\";\n\nexport function scoped<T extends object, TKey extends keyof T>(source: Signal<T>, path: TKey | [TKey]): Signal<T[TKey]> {\n const scopedSignal = signal<T[TKey]>(get(source(), path));\n effect(() => {\n scopedSignal.set(get(source(), path, source()) as T[TKey]);\n }, {allowSignalWrites: true});\n return computed(() => scopedSignal());\n}\n\nexport function injectBreakpoint() {\n return inject(UiService).breakpoint.breakpoint;\n}\n\nexport function injectIsMobile() {\n const breakpoint = injectBreakpoint();\n return computed(() => ['xSmall', 'small'].includes(breakpoint()));\n}\n\nexport enum NavActionId {\n TOGGLE_SIDE_NAV = '[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV',\n BACK = '[@ng-atomic/common/services/ui] BACK',\n}\n\nexport function injectIsRootPage$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n startWith(null),\n map(() => {\n const components = [];\n let route_ = route; \n while(route_) {\n if (!route_.parent) break;\n route_ = route_.parent;\n if (route_.component) {\n components.push(route_.component);\n }\n }\n return !!(components?.length === 1);\n }),\n map((route) => !!route),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectIsRootPage() {\n const isRootPage$ = injectIsRootPage$();\n const injector = inject(Injector);\n return computedAsync(() => isRootPage$, {injector});\n}\n\nexport function injectNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (navigationHistory.isInitial()) {\n return [];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (navigationHistory.isInitial()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }]\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n}\n\nexport function injectUiContext(): Signal<UIContext> {\n return inject(UiService).uiContext;\n}\n\nexport type UiConfigReducer<T extends object | string, C extends UIContext = any> = (config: T, context: C) => T;\nexport const UI_CONFIG_REDUCER = new InjectionToken<UiConfigReducer<any>>('UI_CONFIG_REDUCER');\nexport type ReducerFactory<T extends object | string, K extends T = any> \n = (injector: Injector, hostInjector: Injector) => (config: K, context: UIContext) => T;\n\nexport function call<T>(signalOrValue: Signal<T> | T): T {\n return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;\n}\n\nfunction setReducerPath(reducer: Function, path: string[]) {\n Object.defineProperty(reducer, 'path', { value: path, configurable: true });\n return reducer;\n}\n\nfunction getReducerPath(reducer: Function) {\n return reducer['path'];\n}\n\nexport function provideUiConfig<T extends object | string>(\n reducerFactory: ReducerFactory<T>,\n path: string[] = [],\n name = 'name',\n): Provider {\n return {\n provide: UI_CONFIG_REDUCER,\n useFactory: (injector: Injector) => {\n function _reducerFactory(hostInjector: Injector) {\n const reducer = reducerFactory(injector, hostInjector); \n return (config: T, context: any) => {\n if (path.length === 0) return reducer(config, context);\n return set(config as object, path, reducer(get<any, any>(config, path), context));\n }\n };\n Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });\n setReducerPath(_reducerFactory, path);\n return _reducerFactory;\n },\n deps: [Injector],\n multi: true,\n };\n}\n\nexport function injectRootConfig<T extends object>(paths: string[] = []): Signal<T> {\n const uiContext = injectUiContext();\n const factories = injectReducerFactoiries(paths);\n const hostInjector = inject(Injector);\n const reducers = factories.map(factory => {\n return runInInjectionContext(hostInjector, () => factory(hostInjector));\n });\n if (!reducers) return undefined;\n const rootConfig = computed(() => {\n const context = uiContext();\n return reducers.reduce((acc, reducer) => {\n return runInInjectionContext(hostInjector, () => reducer(acc, context));\n }, {} as T);\n });\n return rootConfig;\n}\n\n// TODO(@nontangent): itemsなどの取得が全てのコンポーネントで行われるので計算を最適化する。\nexport function injectUiConfig<T extends object>(paths: string[] = []): Signal<T> {\n const rootConfig = injectRootConfig<T>(paths);\n return scoped(rootConfig, paths as any);\n}\n\nexport function makeConfig<T extends object>(defaultUseFactory: ReducerFactory<T>, path: string[]) {\n return {\n provide: function provideConfig(useFactory?: ReducerFactory<T>, label = useFactory ? 'custom' : 'default') {\n useFactory ??= defaultUseFactory;\n return provideUiConfig<T>(useFactory, path, `[${path.join('.')}] ${label}`);\n },\n inject: function injectConfig() {\n return injectUiConfig<T>(path);\n },\n }\n}\n\nfunction injectReducers(): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectDeepMulti<(hostInjector: Injector) => UiConfigReducer<any>>(UI_CONFIG_REDUCER);\n}\n\nfunction injectReducerFactoiries(path: string[] = []): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectReducers().filter(factory => {\n return getReducerPath(factory).every((p, i) => path[i] === p);\n });\n}\n\nexport function injectDeepMulti<T>(token: ProviderToken<T>, injector: Injector = inject(Injector)): T[] {\n const valueOrArray = injector.get(token as ProviderToken<T[]>, [], {optional: true});\n const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];\n const parentInjector = injector.get(Injector, null, {skipSelf: true});\n if (!parentInjector) return items;\n return [...new Set([...injectDeepMulti(token, parentInjector), ...items])];\n}\n\nexport function debugInjector(injector: Injector | null = inject(Injector)) {\n const getParent = (injector: Injector, n = 0): Injector | null => {\n while (injector && n-- > 0) {\n injector = injector.get(Injector, null, { skipSelf: true });\n }\n return injector;\n }\n\n const getInjectorName = (injector: Injector): string => {\n const name = injector.get(ElementRef, null)?.nativeElement?.tagName?.toLowerCase();\n if (name) return `<${name}>`;\n return `${injector['source']}`;\n }\n\n const isNodeInjector = (injector: Injector): boolean => {\n return injector.get(ElementRef, null) !== null;\n }\n\n const mapToNames = (reducers: any) => (reducers ?? []).map(reducer => reducer.name);\n\n for (let i = 0; i < 20; i++) {\n injector = getParent(injector, i);\n if (injector === Injector.NULL) break;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAea,SAAS,CAAA;AADtB,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEjC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACvC,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,eAAe,CAAC,EACjD,GAAG,CAAC,CAAC,KAAsB,KAAK,KAAK,CAAC,GAAG,CAAC,EAC1C,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE,CAAC,EAC/E,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACrC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAC/D,CAAC;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,eAAe,CAAC,EACjD,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjD,CAAC;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEpC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,OAAO;AACnC,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AACxC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACpB,SAAA,CAAC,CAAC,CAAC;AACL,KAAA;8GAxBY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAT,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,SAAS,cADI,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACJlB,SAAA,MAAM,CAAyC,MAAiB,EAAE,IAAmB,EAAA;AACnG,IAAA,MAAM,YAAY,GAAG,MAAM,CAAU,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAK;AACV,QAAA,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAY,CAAC,CAAC;AAC7D,KAAC,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9B,OAAO,QAAQ,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;AACxC,CAAC;SAEe,gBAAgB,GAAA;IAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;AACjD,CAAC;SAEe,cAAc,GAAA;AAC5B,IAAA,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;AACtC,IAAA,OAAO,QAAQ,CAAC,MAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;IAEW,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iDAAmE,CAAA;AACnE,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,sCAA6C,CAAA;AAC/C,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;SAEe,iBAAiB,GAAA;AAC/B,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9B,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACrC,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAK;QACP,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,QAAA,OAAM,MAAM,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM;AAC1B,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,IAAI,MAAM,CAAC,SAAS,EAAE;AACpB,gBAAA,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnC,aAAA;AACF,SAAA;QACD,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC;KACrC,CAAC,EACF,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,EACvB,WAAW,CAAC,CAAC,CAAC,EACd,kBAAkB,EAAE,CACrB,CAAC;AACJ,CAAC;SAEe,gBAAgB,GAAA;AAC9B,IAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;AACxC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,aAAa,CAAC,MAAM,WAAW,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;AACtD,CAAC;SAEe,qBAAqB,CACnC,aAA8B,MAAM,CAAU,KAAK,CAAC,EAAA;AAEpD,IAAA,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;AAClC,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC,MAAK;AACnB,QAAA,QAAO,OAAO,EAAE,CAAC,UAAU;AACzB,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO,EAAE;gBACZ,IAAI,UAAU,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,iBAAiB,CAAC,SAAS,EAAE,EAAE;AACjC,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA;AAAM,yBAAA;AACL,wBAAA,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACrE,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,KAAK,QAAQ,EAAE;gBACb,IAAI,UAAU,EAAE,EAAE;AAChB,oBAAA,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1E,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,iBAAiB,CAAC,SAAS,EAAE,EAAE;AACjC,wBAAA,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AACzE,qBAAA;AAAM,yBAAA;AACL,wBAAA,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACrE,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,SAAS;AACP,gBAAA,IAAI,UAAU,EAAE;AAAE,oBAAA,OAAO,EAAE,CAAC;AAC5B,gBAAA,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACrE,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAC;AACL,CAAC;SAEe,eAAe,GAAA;AAC7B,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;AACrC,CAAC;MAGY,iBAAiB,GAAG,IAAI,cAAc,CAAuB,mBAAmB,EAAE;AAIzF,SAAU,IAAI,CAAI,aAA4B,EAAA;AAClD,IAAA,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,OAAiB,EAAE,IAAc,EAAA;AACvD,IAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,OAAiB,EAAA;AACvC,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAEK,SAAU,eAAe,CAC7B,cAAiC,EACjC,OAAiB,EAAE,EACnB,IAAI,GAAG,MAAM,EAAA;IAEb,OAAO;AACL,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAI;YACjC,SAAS,eAAe,CAAC,YAAsB,EAAA;gBAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACvD,gBAAA,OAAO,CAAC,MAAS,EAAE,OAAY,KAAI;AACjC,oBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,wBAAA,OAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,oBAAA,OAAO,GAAG,CAAC,MAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAW,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACpF,iBAAC,CAAA;aACF;YAAA,CAAC;AACF,YAAA,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACpF,YAAA,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACtC,YAAA,OAAO,eAAe,CAAC;SACxB;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AAChB,QAAA,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAEe,SAAA,gBAAgB,CAAmB,KAAA,GAAkB,EAAE,EAAA;AACrE,IAAA,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AACpC,IAAA,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACjD,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,IAAG;AACvC,QAAA,OAAO,qBAAqB,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1E,KAAC,CAAC,CAAC;AACH,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,SAAS,CAAC;AAChC,IAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;AACtC,YAAA,OAAO,qBAAqB,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;SACzE,EAAE,EAAO,CAAC,CAAC;AACd,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;AACgB,SAAA,cAAc,CAAmB,KAAA,GAAkB,EAAE,EAAA;AACnE,IAAA,MAAM,UAAU,GAAG,gBAAgB,CAAI,KAAK,CAAC,CAAC;AAC9C,IAAA,OAAO,MAAM,CAAC,UAAU,EAAE,KAAY,CAAC,CAAC;AAC1C,CAAC;AAEe,SAAA,UAAU,CAAmB,iBAAoC,EAAE,IAAc,EAAA;IAC/F,OAAO;AACL,QAAA,OAAO,EAAE,SAAS,aAAa,CAAC,UAA8B,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,EAAA;YACvG,UAAU,KAAK,iBAAiB,CAAC;AACjC,YAAA,OAAO,eAAe,CAAI,UAAU,EAAE,IAAI,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAA,CAAE,CAAC,CAAC;SAC7E;QACD,MAAM,EAAE,SAAS,YAAY,GAAA;AAC3B,YAAA,OAAO,cAAc,CAAI,IAAI,CAAC,CAAC;SAChC;KACF,CAAA;AACH,CAAC;AAED,SAAS,cAAc,GAAA;AACrB,IAAA,OAAO,eAAe,CAAmD,iBAAiB,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAA,GAAiB,EAAE,EAAA;AAClD,IAAA,OAAO,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,IAAG;QACvC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,KAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,eAAe,CAAI,KAAuB,EAAE,QAAqB,GAAA,MAAM,CAAC,QAAQ,CAAC,EAAA;AAC/F,IAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,KAA2B,EAAE,EAAE,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AACrF,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC;AAC1E,IAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AACtE,IAAA,IAAI,CAAC,cAAc;AAAE,QAAA,OAAO,KAAK,CAAC;AAClC,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;SAEe,aAAa,CAAC,WAA4B,MAAM,CAAC,QAAQ,CAAC,EAAA;IACpE,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,CAAC,GAAG,CAAC,KAAqB;AACjE,QAAA,OAAO,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;AAC1B,YAAA,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;AAClB,KAAC,CAAA;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,QAAkB,KAAY;AACrD,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACnF,QAAA,IAAI,IAAI;YAAE,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAG,CAAC;AAC7B,QAAA,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjC,KAAC,CAAA;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,QAAkB,KAAa;QACrD,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;AACjD,KAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,QAAa,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3B,QAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI;YAAE,MAAM;AACvC,KAAA;AACL;;AChOA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-ui.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.helpers.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ng-atomic-common-services-ui.ts"],"sourcesContent":["\nimport { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart } from '@angular/router';\nimport { filter, map, startWith } from 'rxjs';\nimport { isPlatformBrowser } from '@angular/common';\nimport { RouterService } from '@ng-atomic/common/services/router';\nimport { Breakpoint, BreakpointService } from '@ng-atomic/common/services/breakpoint';\n\nexport interface UIContext {\n breakpoint: Breakpoint;\n paths: any[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UiService {\n readonly breakpoint = inject(BreakpointService);\n readonly router = inject(RouterService);\n readonly platformId = inject(PLATFORM_ID);\n\n readonly paths$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map((event: NavigationStart) => event.url),\n startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''),\n map(url => this.router.parseUrl(url)),\n map(urlTree => urlTree.root.children?.primary?.segments ?? []),\n );\n readonly paths = toSignal(this.paths$);\n\n readonly snapshot$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map(() => this.router.routerState.snapshot.root),\n );\n readonly snapshot = toSignal(this.snapshot$);\n\n readonly uiContext = computed(() => ({\n breakpoint: this.breakpoint.breakpoint(),\n paths: this.paths(),\n }));\n}\n","import { ElementRef, InjectionToken, Injector, Provider, ProviderToken, Signal, computed, effect, inject, isSignal, runInInjectionContext, signal } from \"@angular/core\";\nimport { UIContext, UiService } from \"./ui.service\";\nimport { get, set } from \"lodash-es\";\nimport { Action } from \"@ng-atomic/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { map, shareReplay, startWith } from \"rxjs\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { computedAsync } from \"ngxtension/computed-async\";\nimport { NavigationHistoryService } from \"@ng-atomic/common/services/navigation-history\";\n\nexport function scoped<T extends object, TKey extends keyof T>(source: Signal<T>, path: TKey | [TKey]): Signal<T[TKey]> {\n const scopedSignal = signal<T[TKey]>(get(source(), path));\n effect(() => {\n scopedSignal.set(get(source(), path, source()) as T[TKey]);\n }, {allowSignalWrites: true});\n return computed(() => scopedSignal());\n}\n\nexport function injectBreakpoint() {\n return inject(UiService).breakpoint.breakpoint;\n}\n\nexport function injectIsMobile() {\n const breakpoint = injectBreakpoint();\n return computed(() => ['xSmall', 'small'].includes(breakpoint()));\n}\n\nexport enum NavActionId {\n TOGGLE_SIDE_NAV = '[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV',\n BACK = '[@ng-atomic/common/services/ui] BACK',\n CLOSE = '[@ng-atomic/common/services/ui] CLOSE',\n}\n\nexport function injectIsRootPage$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n startWith(null),\n map(() => {\n const components = [];\n let route_ = route; \n while(route_) {\n if (!route_.parent) break;\n route_ = route_.parent;\n if (route_.component) {\n components.push(route_.component);\n }\n }\n return !!(components?.length === 1);\n }),\n map((route) => !!route),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectIsRootPage() {\n const isRootPage$ = injectIsRootPage$();\n const injector = inject(Injector);\n return computedAsync(() => isRootPage$, {injector});\n}\n\nexport function injectNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n let isInitial: boolean;\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (navigationHistory.isInitial()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }]\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n}\n\nexport function injectSideAppNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n let isInitial: boolean;\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n \n}\n\nexport function injectUiContext(): Signal<UIContext> {\n return inject(UiService).uiContext;\n}\n\nexport type UiConfigReducer<T extends object | string, C extends UIContext = any> = (config: T, context: C) => T;\nexport const UI_CONFIG_REDUCER = new InjectionToken<UiConfigReducer<any>>('UI_CONFIG_REDUCER');\nexport type ReducerFactory<T extends object | string, K extends T = any> \n = (injector: Injector, hostInjector: Injector) => (config: K, context: UIContext) => T;\n\nexport function call<T>(signalOrValue: Signal<T> | T): T {\n return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;\n}\n\nfunction setReducerPath(reducer: Function, path: string[]) {\n Object.defineProperty(reducer, 'path', { value: path, configurable: true });\n return reducer;\n}\n\nfunction getReducerPath(reducer: Function) {\n return reducer['path'];\n}\n\nexport function provideUiConfig<T extends object | string>(\n reducerFactory: ReducerFactory<T>,\n path: string[] = [],\n name = 'name',\n): Provider {\n return {\n provide: UI_CONFIG_REDUCER,\n useFactory: (injector: Injector) => {\n function _reducerFactory(hostInjector: Injector) {\n const reducer = reducerFactory(injector, hostInjector); \n return (config: T, context: any) => {\n if (path.length === 0) return reducer(config, context);\n return set(config as object, path, reducer(get<any, any>(config, path), context));\n }\n };\n Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });\n setReducerPath(_reducerFactory, path);\n return _reducerFactory;\n },\n deps: [Injector],\n multi: true,\n };\n}\n\nexport function injectRootConfig<T extends object>(paths: string[] = []): Signal<T> {\n const uiContext = injectUiContext();\n const factories = injectReducerFactoiries(paths);\n const hostInjector = inject(Injector);\n const reducers = factories.map(factory => {\n return runInInjectionContext(hostInjector, () => factory(hostInjector));\n });\n if (!reducers) return undefined;\n const rootConfig = computed(() => {\n const context = uiContext();\n return reducers.reduce((acc, reducer) => {\n return runInInjectionContext(hostInjector, () => reducer(acc, context));\n }, {} as T);\n });\n return rootConfig;\n}\n\n// TODO(@nontangent): itemsなどの取得が全てのコンポーネントで行われるので計算を最適化する。\nexport function injectUiConfig<T extends object>(paths: string[] = []): Signal<T> {\n const rootConfig = injectRootConfig<T>(paths);\n return scoped(rootConfig, paths as any);\n}\n\nexport function makeConfig<T extends object>(defaultUseFactory: ReducerFactory<T>, path: string[]) {\n return {\n provide: function provideConfig(useFactory?: ReducerFactory<T>, label = useFactory ? 'custom' : 'default') {\n useFactory ??= defaultUseFactory;\n return provideUiConfig<T>(useFactory, path, `[${path.join('.')}] ${label}`);\n },\n inject: function injectConfig() {\n return injectUiConfig<T>(path);\n },\n }\n}\n\nfunction injectReducers(): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectDeepMulti<(hostInjector: Injector) => UiConfigReducer<any>>(UI_CONFIG_REDUCER);\n}\n\nfunction injectReducerFactoiries(path: string[] = []): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectReducers().filter(factory => {\n return getReducerPath(factory).every((p, i) => path[i] === p);\n });\n}\n\nexport function injectDeepMulti<T>(token: ProviderToken<T>, injector: Injector = inject(Injector)): T[] {\n const valueOrArray = injector.get(token as ProviderToken<T[]>, [], {optional: true});\n const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];\n const parentInjector = injector.get(Injector, null, {skipSelf: true});\n if (!parentInjector) return items;\n return [...new Set([...injectDeepMulti(token, parentInjector), ...items])];\n}\n\nexport function debugInjector(injector: Injector | null = inject(Injector)) {\n const getParent = (injector: Injector, n = 0): Injector | null => {\n while (injector && n-- > 0) {\n injector = injector.get(Injector, null, { skipSelf: true });\n }\n return injector;\n }\n\n const getInjectorName = (injector: Injector): string => {\n const name = injector.get(ElementRef, null)?.nativeElement?.tagName?.toLowerCase();\n if (name) return `<${name}>`;\n return `${injector['source']}`;\n }\n\n const isNodeInjector = (injector: Injector): boolean => {\n return injector.get(ElementRef, null) !== null;\n }\n\n const mapToNames = (reducers: any) => (reducers ?? []).map(reducer => reducer.name);\n\n for (let i = 0; i < 20; i++) {\n injector = getParent(injector, i);\n if (injector === Injector.NULL) break;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-atomic/common",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.7.1",
|
|
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.7.1",
|
|
16
16
|
"dayjs": "1.11.10",
|
|
17
17
|
"flat": "^6.0.0",
|
|
18
18
|
"lodash-es": "^4.17.15",
|
|
@@ -245,6 +245,12 @@
|
|
|
245
245
|
"esm": "./esm2022/services/csv/ng-atomic-common-services-csv.mjs",
|
|
246
246
|
"default": "./fesm2022/ng-atomic-common-services-csv.mjs"
|
|
247
247
|
},
|
|
248
|
+
"./services/fab": {
|
|
249
|
+
"types": "./services/fab/index.d.ts",
|
|
250
|
+
"esm2022": "./esm2022/services/fab/ng-atomic-common-services-fab.mjs",
|
|
251
|
+
"esm": "./esm2022/services/fab/ng-atomic-common-services-fab.mjs",
|
|
252
|
+
"default": "./fesm2022/ng-atomic-common-services-fab.mjs"
|
|
253
|
+
},
|
|
248
254
|
"./services/form": {
|
|
249
255
|
"types": "./services/form/index.d.ts",
|
|
250
256
|
"esm2022": "./esm2022/services/form/ng-atomic-common-services-form.mjs",
|
|
@@ -30,6 +30,8 @@ export declare class AuthService {
|
|
|
30
30
|
auth: Signal<import("@firebase/auth").User>;
|
|
31
31
|
signInWithTwitter(): Promise<Result>;
|
|
32
32
|
signInWithGoogle(): Promise<UserCredential>;
|
|
33
|
+
signInWithEmailAndPassword(email: string, password: string): Promise<UserCredential>;
|
|
34
|
+
createUserWithEmailAndPassword(email: string, password: string): Promise<UserCredential>;
|
|
33
35
|
signInWithCustomToken(customToken: string): Promise<Result>;
|
|
34
36
|
signOut(): Promise<void>;
|
|
35
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Action } from '@ng-atomic/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class FabService {
|
|
4
|
+
readonly hidden: import("@angular/core").WritableSignal<boolean>;
|
|
5
|
+
readonly actions: import("@angular/core").WritableSignal<Action<any>[]>;
|
|
6
|
+
show(): void;
|
|
7
|
+
hide(): void;
|
|
8
|
+
toggle(): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FabService, never>;
|
|
10
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FabService>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fab.service';
|
|
@@ -6,11 +6,13 @@ export declare function injectBreakpoint(): Signal<import("../../../../../../../
|
|
|
6
6
|
export declare function injectIsMobile(): Signal<boolean>;
|
|
7
7
|
export declare enum NavActionId {
|
|
8
8
|
TOGGLE_SIDE_NAV = "[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV",
|
|
9
|
-
BACK = "[@ng-atomic/common/services/ui] BACK"
|
|
9
|
+
BACK = "[@ng-atomic/common/services/ui] BACK",
|
|
10
|
+
CLOSE = "[@ng-atomic/common/services/ui] CLOSE"
|
|
10
11
|
}
|
|
11
12
|
export declare function injectIsRootPage$(): import("rxjs").Observable<boolean>;
|
|
12
13
|
export declare function injectIsRootPage(): Signal<boolean>;
|
|
13
14
|
export declare function injectNavStartActions(isRootPage?: Signal<boolean>): Signal<Action[]>;
|
|
15
|
+
export declare function injectSideAppNavStartActions(isRootPage?: Signal<boolean>): Signal<Action[]>;
|
|
14
16
|
export declare function injectUiContext(): Signal<UIContext>;
|
|
15
17
|
export type UiConfigReducer<T extends object | string, C extends UIContext = any> = (config: T, context: C) => T;
|
|
16
18
|
export declare const UI_CONFIG_REDUCER: InjectionToken<UiConfigReducer<any, any>>;
|