@solar-angular/planets 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/earth/earth.pipe.d.ts +19 -0
- package/earth/earth.resolver.d.ts +4 -0
- package/earth/earth.service.d.ts +32 -0
- package/earth/guards/auth.guard.d.ts +12 -0
- package/earth/guards/index.d.ts +3 -0
- package/earth/guards/permission.guard.d.ts +6 -0
- package/earth/guards/unauth.guard.d.ts +6 -0
- package/earth/index.d.ts +6 -0
- package/earth/menu.service.d.ts +14 -0
- package/earth/object-storage.service.d.ts +21 -0
- package/esm2022/earth/earth.pipe.mjs +51 -0
- package/esm2022/earth/earth.resolver.mjs +10 -0
- package/esm2022/earth/earth.service.mjs +134 -0
- package/esm2022/earth/guards/auth.guard.mjs +30 -0
- package/esm2022/earth/guards/index.mjs +4 -0
- package/esm2022/earth/guards/permission.guard.mjs +16 -0
- package/esm2022/earth/guards/unauth.guard.mjs +16 -0
- package/esm2022/earth/index.mjs +7 -0
- package/esm2022/earth/menu.service.mjs +37 -0
- package/esm2022/earth/object-storage.service.mjs +44 -0
- package/esm2022/earth/solar-angular-planets-earth.mjs +5 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/mercury/auth.interceptor.mjs +53 -0
- package/esm2022/mercury/index.mjs +3 -0
- package/esm2022/mercury/mercury.service.mjs +68 -0
- package/esm2022/mercury/solar-angular-planets-mercury.mjs +5 -0
- package/esm2022/solar-angular-planets.mjs +5 -0
- package/esm2022/sun/gender.pipe.mjs +20 -0
- package/esm2022/sun/index.mjs +2 -0
- package/esm2022/sun/solar-angular-planets-sun.mjs +5 -0
- package/fesm2022/solar-angular-planets-earth.mjs +318 -0
- package/fesm2022/solar-angular-planets-earth.mjs.map +1 -0
- package/fesm2022/solar-angular-planets-mercury.mjs +123 -0
- package/fesm2022/solar-angular-planets-mercury.mjs.map +1 -0
- package/fesm2022/solar-angular-planets-sun.mjs +27 -0
- package/fesm2022/solar-angular-planets-sun.mjs.map +1 -0
- package/fesm2022/solar-angular-planets.mjs +6 -0
- package/fesm2022/solar-angular-planets.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/mercury/auth.interceptor.d.ts +8 -0
- package/mercury/index.d.ts +2 -0
- package/mercury/mercury.service.d.ts +17 -0
- package/package.json +48 -0
- package/sun/gender.pipe.d.ts +8 -0
- package/sun/index.d.ts +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChangeDetectorRef, PipeTransform } from '@angular/core';
|
|
2
|
+
import { Category, Origin } from '@solar-kit/planets/earth';
|
|
3
|
+
import { EarthService } from './earth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CategoryPipe implements PipeTransform {
|
|
6
|
+
protected latestId: Category['id'] | null;
|
|
7
|
+
protected latestOrigin: Origin | null;
|
|
8
|
+
protected latestValue: Category | null;
|
|
9
|
+
protected readonly service: EarthService;
|
|
10
|
+
protected readonly cdr: ChangeDetectorRef;
|
|
11
|
+
transform(id: Category['id'], origin: Origin): Category | null;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CategoryPipe, never>;
|
|
13
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<CategoryPipe, "category", true>;
|
|
14
|
+
}
|
|
15
|
+
export declare class UnitCategoryPipe extends CategoryPipe implements PipeTransform {
|
|
16
|
+
transform(value: Category['id']): Category | null;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UnitCategoryPipe, never>;
|
|
18
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<UnitCategoryPipe, "unit", true>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ResolveFn } from '@angular/router';
|
|
2
|
+
import { Category, Channel, Origin } from '@solar-kit/planets/earth';
|
|
3
|
+
export declare function channelResolver(origin: Origin): ResolveFn<Channel[]>;
|
|
4
|
+
export declare function categoryResolver(origin: Origin): ResolveFn<Category[]>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { UrlSegment } from '@angular/router';
|
|
3
|
+
import { CacheManager } from '@solar-angular/http';
|
|
4
|
+
import { AccountName, Address, Category, Channel, Menu, Origin, UploadKeys, UserInfo } from '@solar-kit/planets/earth';
|
|
5
|
+
import { Result } from '@solar-kit/planets/sun';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class EarthService {
|
|
8
|
+
readonly config: import("@solar-angular/core").SolarConfig;
|
|
9
|
+
readonly http: HttpClient;
|
|
10
|
+
readonly cacheManager: CacheManager;
|
|
11
|
+
checkAuth(): import("rxjs").Observable<boolean>;
|
|
12
|
+
checkPermission(segments: UrlSegment[]): import("rxjs").Observable<boolean>;
|
|
13
|
+
account(): import("rxjs").Observable<Result<AccountName>>;
|
|
14
|
+
user(): import("rxjs").Observable<Result<UserInfo>>;
|
|
15
|
+
menus(): import("rxjs").Observable<Menu[]>;
|
|
16
|
+
/**
|
|
17
|
+
* 变更密码
|
|
18
|
+
* @param o
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
changePassword(o: {
|
|
22
|
+
oldPsw: string;
|
|
23
|
+
newPsw: string;
|
|
24
|
+
}): import("rxjs").Observable<Result<null>>;
|
|
25
|
+
channels(origin: Origin): import("rxjs").Observable<Result<Channel[]>>;
|
|
26
|
+
categories(origin: Origin): import("rxjs").Observable<Result<Category[]>>;
|
|
27
|
+
address(pid?: number): import("rxjs").Observable<Result<Address[]>>;
|
|
28
|
+
avatarUploadKey(): import("rxjs").Observable<Result<UploadKeys>>;
|
|
29
|
+
mediaUploadKeys(keySize?: number): import("rxjs").Observable<Result<UploadKeys>>;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EarthService, never>;
|
|
31
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<EarthService>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CanMatchFn } from '@angular/router';
|
|
2
|
+
interface AuthMatchGuardOptions {
|
|
3
|
+
/** 是否在登陆后重定向回当前页 */
|
|
4
|
+
redirect?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* 认证路由守卫
|
|
8
|
+
* 认证后才允许进入,否则将导航到登录页(/login)
|
|
9
|
+
* @param options
|
|
10
|
+
*/
|
|
11
|
+
export declare function authMatchGuard(options?: AuthMatchGuardOptions): CanMatchFn;
|
|
12
|
+
export {};
|
package/earth/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Menu } from '@solar-kit/planets/earth';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class MenuService {
|
|
5
|
+
private readonly earthService;
|
|
6
|
+
private readonly router;
|
|
7
|
+
private get pureUrl();
|
|
8
|
+
/**
|
|
9
|
+
* 当前的菜单数组
|
|
10
|
+
*/
|
|
11
|
+
readonly menus$: Observable<Menu[]>;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { UploadKeys } from '@solar-kit/planets/earth';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ObjectStorageService {
|
|
4
|
+
private readonly http;
|
|
5
|
+
/**
|
|
6
|
+
* 目前只支持了 qiniu oss
|
|
7
|
+
* @param filePath
|
|
8
|
+
* @param options
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
upload(file: Blob, key: string, options: Pick<UploadKeys, 'host' | 'token'>): import("rxjs").Observable<{
|
|
12
|
+
hash: string;
|
|
13
|
+
key: string;
|
|
14
|
+
}>;
|
|
15
|
+
uploadWithEvents(file: Blob, key: string, options: Pick<UploadKeys, 'host' | 'token'>): import("rxjs").Observable<import("@angular/common/http").HttpEvent<{
|
|
16
|
+
hash: string;
|
|
17
|
+
key: string;
|
|
18
|
+
}>>;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ObjectStorageService, never>;
|
|
20
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ObjectStorageService>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ChangeDetectorRef, inject, Pipe } from '@angular/core';
|
|
2
|
+
import { filterResult } from '@solar-kit/planets/sun';
|
|
3
|
+
import { EarthService } from './earth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CategoryPipe {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.latestId = null;
|
|
8
|
+
this.latestOrigin = null;
|
|
9
|
+
this.latestValue = null;
|
|
10
|
+
this.service = inject(EarthService);
|
|
11
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
12
|
+
}
|
|
13
|
+
transform(id, origin) {
|
|
14
|
+
if (id !== this.latestId || origin !== this.latestOrigin) {
|
|
15
|
+
this.latestId = id;
|
|
16
|
+
this.latestOrigin = origin;
|
|
17
|
+
// 这个 API 是带缓存的,不用担心重复执行
|
|
18
|
+
this.service.categories(origin).pipe(filterResult()).subscribe(({ data }) => {
|
|
19
|
+
this.latestValue = data.find(o => o.id === id) ?? null;
|
|
20
|
+
this.cdr.markForCheck();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return this.latestValue;
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CategoryPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
26
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: CategoryPipe, isStandalone: true, name: "category", pure: false }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CategoryPipe, decorators: [{
|
|
29
|
+
type: Pipe,
|
|
30
|
+
args: [{
|
|
31
|
+
name: 'category',
|
|
32
|
+
pure: false,
|
|
33
|
+
standalone: true
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
export class UnitCategoryPipe extends CategoryPipe {
|
|
37
|
+
transform(value) {
|
|
38
|
+
return super.transform(value, 13 /* Origin.Unit */);
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnitCategoryPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
41
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UnitCategoryPipe, isStandalone: true, name: "unit", pure: false }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnitCategoryPipe, decorators: [{
|
|
44
|
+
type: Pipe,
|
|
45
|
+
args: [{
|
|
46
|
+
name: 'unit',
|
|
47
|
+
pure: false,
|
|
48
|
+
standalone: true
|
|
49
|
+
}]
|
|
50
|
+
}] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFydGgucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldHMvZWFydGgvZWFydGgucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLFlBQVk7SUFMekI7UUFNWSxhQUFRLEdBQTBCLElBQUksQ0FBQztRQUN2QyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbkMsZ0JBQVcsR0FBb0IsSUFBSSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0IsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBbUJwRDtJQWpCQyxTQUFTLENBQUMsRUFBa0IsRUFBRSxNQUFjO1FBQzFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztZQUUzQix3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNsQyxZQUFZLEVBQUUsQ0FDZixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7K0dBdEJVLFlBQVk7NkdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFMeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQWdDRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBWTtJQUN2QyxTQUFTLENBQUMsS0FBcUI7UUFDdEMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssdUJBQWMsQ0FBQztJQUM3QyxDQUFDOytHQUhVLGdCQUFnQjs2R0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUw1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhdGVnb3J5LCBPcmlnaW4gfSBmcm9tICdAc29sYXIta2l0L3BsYW5ldHMvZWFydGgnO1xuaW1wb3J0IHsgZmlsdGVyUmVzdWx0IH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL3N1bic7XG5pbXBvcnQgeyBFYXJ0aFNlcnZpY2UgfSBmcm9tICcuL2VhcnRoLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjYXRlZ29yeScsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIENhdGVnb3J5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgbGF0ZXN0SWQ6IENhdGVnb3J5WydpZCddIHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBsYXRlc3RPcmlnaW46IE9yaWdpbiB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgbGF0ZXN0VmFsdWU6IENhdGVnb3J5IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KEVhcnRoU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHRyYW5zZm9ybShpZDogQ2F0ZWdvcnlbJ2lkJ10sIG9yaWdpbjogT3JpZ2luKSB7XG4gICAgaWYgKGlkICE9PSB0aGlzLmxhdGVzdElkIHx8IG9yaWdpbiAhPT0gdGhpcy5sYXRlc3RPcmlnaW4pIHtcbiAgICAgIHRoaXMubGF0ZXN0SWQgPSBpZDtcbiAgICAgIHRoaXMubGF0ZXN0T3JpZ2luID0gb3JpZ2luO1xuXG4gICAgICAvLyDov5nkuKogQVBJIOaYr+W4pue8k+WtmOeahO+8jOS4jeeUqOaLheW/g+mHjeWkjeaJp+ihjFxuICAgICAgdGhpcy5zZXJ2aWNlLmNhdGVnb3JpZXMob3JpZ2luKS5waXBlKFxuICAgICAgICBmaWx0ZXJSZXN1bHQoKVxuICAgICAgKS5zdWJzY3JpYmUoKHsgZGF0YSB9KSA9PiB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSBkYXRhLmZpbmQobyA9PiBvLmlkID09PSBpZCkgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZTtcbiAgfVxuXG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3VuaXQnLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBVbml0Q2F0ZWdvcnlQaXBlIGV4dGVuZHMgQ2F0ZWdvcnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIG92ZXJyaWRlIHRyYW5zZm9ybSh2YWx1ZTogQ2F0ZWdvcnlbJ2lkJ10pIHtcbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKHZhbHVlLCBPcmlnaW4uVW5pdCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { unpackResult } from '@solar-kit/planets/sun';
|
|
3
|
+
import { EarthService } from './earth.service';
|
|
4
|
+
export function channelResolver(origin) {
|
|
5
|
+
return () => inject(EarthService).channels(origin).pipe(unpackResult());
|
|
6
|
+
}
|
|
7
|
+
export function categoryResolver(origin) {
|
|
8
|
+
return () => inject(EarthService).categories(origin).pipe(unpackResult());
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFydGgucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXRzL2VhcnRoL2VhcnRoLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWM7SUFDNUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBYztJQUM3QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZUZuIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENhdGVnb3J5LCBDaGFubmVsLCBPcmlnaW4gfSBmcm9tICdAc29sYXIta2l0L3BsYW5ldHMvZWFydGgnO1xuaW1wb3J0IHsgdW5wYWNrUmVzdWx0IH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL3N1bic7XG5pbXBvcnQgeyBFYXJ0aFNlcnZpY2UgfSBmcm9tICcuL2VhcnRoLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hhbm5lbFJlc29sdmVyKG9yaWdpbjogT3JpZ2luKTogUmVzb2x2ZUZuPENoYW5uZWxbXT4ge1xuICByZXR1cm4gKCkgPT4gaW5qZWN0KEVhcnRoU2VydmljZSkuY2hhbm5lbHMob3JpZ2luKS5waXBlKHVucGFja1Jlc3VsdCgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhdGVnb3J5UmVzb2x2ZXIob3JpZ2luOiBPcmlnaW4pOiBSZXNvbHZlRm48Q2F0ZWdvcnlbXT4ge1xuICByZXR1cm4gKCkgPT4gaW5qZWN0KEVhcnRoU2VydmljZSkuY2F0ZWdvcmllcyhvcmlnaW4pLnBpcGUodW5wYWNrUmVzdWx0KCkpO1xufVxuIl19
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { HttpClient, HttpContext } from '@angular/common/http';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { SOLAR_CONFIG, tree2list } from '@solar-angular/core';
|
|
4
|
+
import { AUTH_REDIRECT_TOKEN, CACHEABLE_TOKEN, CacheManager, CATCH_HTTP_ERROR_TOKEN } from '@solar-angular/http';
|
|
5
|
+
import { filterResult } from '@solar-kit/planets/sun';
|
|
6
|
+
import { catchError, map, of, tap } from 'rxjs';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
function normalizeMenus(menus) {
|
|
9
|
+
const dashboard = {
|
|
10
|
+
id: 0,
|
|
11
|
+
fullName: 'Dashboard',
|
|
12
|
+
icon: 'dashboard',
|
|
13
|
+
seq: 0,
|
|
14
|
+
url: 'dashboard',
|
|
15
|
+
};
|
|
16
|
+
menus = menus.concat(dashboard);
|
|
17
|
+
menus.forEach(o => {
|
|
18
|
+
o.level = 1;
|
|
19
|
+
o.children = menus.filter(child => child.pid === o.id).sort((a, b) => a.seq - b.seq);
|
|
20
|
+
o.children.forEach(child => child.parent = o);
|
|
21
|
+
});
|
|
22
|
+
// 设置 level
|
|
23
|
+
menus.forEach(o => {
|
|
24
|
+
let menu = o;
|
|
25
|
+
while (menu?.parent) { // 如果有上一级,就自增一
|
|
26
|
+
o.level++;
|
|
27
|
+
menu = menu.parent;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
// 设置末端子节点的 path
|
|
31
|
+
menus.filter(o => o.children?.length === 0).forEach(o => {
|
|
32
|
+
let segment = '', menu = o;
|
|
33
|
+
while (menu) {
|
|
34
|
+
segment = '/' + menu.url + segment;
|
|
35
|
+
menu = menu.parent;
|
|
36
|
+
}
|
|
37
|
+
o.path = segment;
|
|
38
|
+
});
|
|
39
|
+
menus.sort((a, b) => a.seq - b.seq);
|
|
40
|
+
return menus;
|
|
41
|
+
}
|
|
42
|
+
export class EarthService {
|
|
43
|
+
constructor() {
|
|
44
|
+
this.config = inject(SOLAR_CONFIG);
|
|
45
|
+
this.http = inject(HttpClient);
|
|
46
|
+
this.cacheManager = inject(CacheManager);
|
|
47
|
+
}
|
|
48
|
+
checkAuth() {
|
|
49
|
+
// 这里直接用 menus API 来判断是否已认证
|
|
50
|
+
return this.http.get(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {
|
|
51
|
+
context: new HttpContext()
|
|
52
|
+
.set(CACHEABLE_TOKEN, true)
|
|
53
|
+
.set(AUTH_REDIRECT_TOKEN, false)
|
|
54
|
+
.set(CATCH_HTTP_ERROR_TOKEN, false)
|
|
55
|
+
}).pipe(map(() => true), catchError(() => of(false)));
|
|
56
|
+
}
|
|
57
|
+
checkPermission(segments) {
|
|
58
|
+
return this.http.get(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {
|
|
59
|
+
context: new HttpContext()
|
|
60
|
+
.set(CACHEABLE_TOKEN, true)
|
|
61
|
+
.set(AUTH_REDIRECT_TOKEN, false)
|
|
62
|
+
.set(CATCH_HTTP_ERROR_TOKEN, false)
|
|
63
|
+
}).pipe(map(({ data }) => {
|
|
64
|
+
const tree = normalizeMenus(data);
|
|
65
|
+
const list = tree2list(tree);
|
|
66
|
+
// 我们的权限菜单只有两级,我们只判断前两个 path 片段
|
|
67
|
+
const path = '/' + segments
|
|
68
|
+
.filter((_, index) => index <= 1)
|
|
69
|
+
.map(o => o.path.replace(/;.+$/, '')) // path 中可能有参数,我们只取前面的部分:/a;id=1 => /a
|
|
70
|
+
.join('/');
|
|
71
|
+
return list.some(menu => menu.path === path);
|
|
72
|
+
}), catchError(() => of(false)));
|
|
73
|
+
}
|
|
74
|
+
account() {
|
|
75
|
+
return this.http.get(`${this.config.earthUrl}/api/acc/info`, {
|
|
76
|
+
context: new HttpContext().set(CACHEABLE_TOKEN, true)
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
user() {
|
|
80
|
+
return this.http.get(`${this.config.earthUrl}/api/usr/info`, {
|
|
81
|
+
context: new HttpContext().set(CACHEABLE_TOKEN, true)
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
menus() {
|
|
85
|
+
return this.http.get(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {
|
|
86
|
+
context: new HttpContext().set(CACHEABLE_TOKEN, true)
|
|
87
|
+
}).pipe(filterResult(), map(({ data }) => normalizeMenus(data)));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 变更密码
|
|
91
|
+
* @param o
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
changePassword(o) {
|
|
95
|
+
return this.http.post(`${this.config.earthUrl}/api/user/psw`, o).pipe(tap(({ code }) => {
|
|
96
|
+
if (code === 0) {
|
|
97
|
+
this.cacheManager.revokeAll();
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
channels(origin) {
|
|
102
|
+
return this.http.get(`${this.config.earthUrl}/api/channel/${origin}`, {
|
|
103
|
+
context: new HttpContext().set(CACHEABLE_TOKEN, true)
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
categories(origin) {
|
|
107
|
+
return this.http.get(`${this.config.earthUrl}/api/category/${origin}`, {
|
|
108
|
+
context: new HttpContext().set(CACHEABLE_TOKEN, true)
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
address(pid) {
|
|
112
|
+
return this.http.get(`${this.config.earthUrl}/api/addrs`, {
|
|
113
|
+
params: pid ? { pid } : undefined,
|
|
114
|
+
context: new HttpContext().set(CACHEABLE_TOKEN, true)
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
avatarUploadKey() {
|
|
118
|
+
return this.http.get(`${this.config.earthUrl}/api/qiniu/avatar/upload-key`);
|
|
119
|
+
}
|
|
120
|
+
mediaUploadKeys(keySize = 1) {
|
|
121
|
+
return this.http.get(`${this.config.earthUrl}/api/qiniu/media/upload-keys`, {
|
|
122
|
+
params: { keySize }
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EarthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
126
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EarthService, providedIn: 'root' }); }
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EarthService, decorators: [{
|
|
129
|
+
type: Injectable,
|
|
130
|
+
args: [{
|
|
131
|
+
providedIn: 'root'
|
|
132
|
+
}]
|
|
133
|
+
}] });
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFydGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldHMvZWFydGgvZWFydGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFaEQsU0FBUyxjQUFjLENBQUMsS0FBYTtJQUNuQyxNQUFNLFNBQVMsR0FBRztRQUNoQixFQUFFLEVBQUUsQ0FBQztRQUNMLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxXQUFXO1FBQ2pCLEdBQUcsRUFBRSxDQUFDO1FBQ04sR0FBRyxFQUFFLFdBQVc7S0FDVCxDQUFDO0lBRVYsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNoQixDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxD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QUFJLENBQUMsR0FBRyxDQUFxQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxpQkFBaUIsTUFBTSxFQUFFLEVBQUU7WUFDekYsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLFlBQVksRUFBRTtZQUMzRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsOEJBQThCLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQU8sR0FBRyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLDhCQUE4QixFQUFFO1lBQzlGLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXRHVSxZQUFZO21IQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNPTEFSX0NPTkZJRywgdHJlZTJsaXN0IH0gZnJvbSAnQHNvbGFyLWFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBVVRIX1JFRElSRUNUX1RPS0VOLCBDQUNIRUFCTEVfVE9LRU4sIENhY2hlTWFuYWdlciwgQ0FUQ0hfSFRUUF9FUlJPUl9UT0tFTiB9IGZyb20gJ0Bzb2xhci1hbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgQWNjb3VudE5hbWUsIEFkZHJlc3MsIENhdGVnb3J5LCBDaGFubmVsLCBNZW51LCBPcmlnaW4sIFVwbG9hZEtleXMsIFVzZXJJbmZvIH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL2VhcnRoJztcbmltcG9ydCB7IGZpbHRlclJlc3VsdCwgUmVzdWx0IH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL3N1bic7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcblxuZnVuY3Rpb24gbm9ybWFsaXplTWVudXMobWVudXM6IE1lbnVbXSkge1xuICBjb25zdCBkYXNoYm9hcmQgPSB7XG4gICAgaWQ6IDAsXG4gICAgZnVsbE5hbWU6ICdEYXNoYm9hcmQnLFxuICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgIHNlcTogMCxcbiAgICB1cmw6ICdkYXNoYm9hcmQnLFxuICB9IGFzIE1lbnU7XG5cbiAgbWVudXMgPSBtZW51cy5jb25jYXQoZGFzaGJvYXJkKTtcblxuICBtZW51cy5mb3JFYWNoKG8gPT4ge1xuICAgIG8ubGV2ZWwgPSAxO1xuICAgIG8uY2hpbGRyZW4gPSBtZW51cy5maWx0ZXIoY2hpbGQgPT4gY2hpbGQucGlkID09PSBvLmlkKS5zb3J0KChhLCBiKSA9PiBhLnNlcSAtIGIuc2VxKTtcbiAgICBvLmNoaWxkcmVuIS5mb3JFYWNoKGNoaWxkID0+IGNoaWxkLnBhcmVudCA9IG8pO1xuICB9KTtcblxuICAvLyDorr7nva4gbGV2ZWxcbiAgbWVudXMuZm9yRWFjaChvID0+IHtcbiAgICBsZXQgbWVudSA9IG87XG4gICAgd2hpbGUgKG1lbnU/LnBhcmVudCkgeyAvLyDlpoLmnpzmnInkuIrkuIDnuqfvvIzlsLHoh6rlop7kuIBcbiAgICAgIG8ubGV2ZWwhKys7XG4gICAgICBtZW51ID0gbWVudS5wYXJlbnQ7XG4gICAgfVxuICB9KTtcblxuICAvLyDorr7nva7mnKvnq6/lrZDoioLngrnnmoQgcGF0aFxuICBtZW51cy5maWx0ZXIobyA9PiBvLmNoaWxkcmVuPy5sZW5ndGggPT09IDApLmZvckVhY2gobyA9PiB7XG4gICAgbGV0IHNlZ21lbnQgPSAnJywgbWVudTogTWVudSB8IHVuZGVmaW5lZCA9IG87XG5cbiAgICB3aGlsZSAobWVudSkge1xuICAgICAgc2VnbWVudCA9ICcvJyArIG1lbnUudXJsICsgc2VnbWVudDtcbiAgICAgIG1lbnUgPSBtZW51LnBhcmVudDtcbiAgICB9XG5cbiAgICBvLnBhdGggPSBzZWdtZW50O1xuICB9KTtcblxuICBtZW51cy5zb3J0KChhLCBiKSA9PiBhLnNlcSAtIGIuc2VxKTtcblxuICByZXR1cm4gbWVudXM7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVhcnRoU2VydmljZSB7XG4gIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChTT0xBUl9DT05GSUcpO1xuICByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICByZWFkb25seSBjYWNoZU1hbmFnZXIgPSBpbmplY3QoQ2FjaGVNYW5hZ2VyKTtcblxuICBjaGVja0F1dGgoKSB7XG4gICAgLy8g6L+Z6YeM55u05o6l55SoIG1lbnVzIEFQSSDmnaXliKTmlq3mmK/lkKblt7LorqTor4FcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxSZXN1bHQ8TWVudVtdPj4oYCR7dGhpcy5jb25maWcuZWFydGhVcmx9L2FwaS9yb2xlLW1lbnVzLyR7dGhpcy5jb25maWcuY2xpZW50SWR9YCwge1xuICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KClcbiAgICAgICAgLnNldChDQUNIRUFCTEVfVE9LRU4sIHRydWUpXG4gICAgICAgIC5zZXQoQVVUSF9SRURJUkVDVF9UT0tFTiwgZmFsc2UpXG4gICAgICAgIC5zZXQoQ0FUQ0hfSFRUUF9FUlJPUl9UT0tFTiwgZmFsc2UpXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxuICAgICk7XG4gIH1cblxuICBjaGVja1Blcm1pc3Npb24oc2VnbWVudHM6IFVybFNlZ21lbnRbXSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlc3VsdDxNZW51W10+PihgJHt0aGlzLmNvbmZpZy5lYXJ0aFVybH0vYXBpL3JvbGUtbWVudXMvJHt0aGlzLmNvbmZpZy5jbGllbnRJZH1gLCB7XG4gICAgICBjb250ZXh0OiBuZXcgSHR0cENvbnRleHQoKVxuICAgICAgICAuc2V0KENBQ0hFQUJMRV9UT0tFTiwgdHJ1ZSlcbiAgICAgICAgLnNldChBVVRIX1JFRElSRUNUX1RPS0VOLCBmYWxzZSlcbiAgICAgICAgLnNldChDQVRDSF9IVFRQX0VSUk9SX1RPS0VOLCBmYWxzZSlcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICBjb25zdCB0cmVlID0gbm9ybWFsaXplTWVudXMoZGF0YSk7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0cmVlMmxpc3QodHJlZSk7XG4gICAgICAgIC8vIOaIkeS7rOeahOadg+mZkOiPnOWNleWPquacieS4pOe6p++8jOaIkeS7rOWPquWIpOaWreWJjeS4pOS4qiBwYXRoIOeJh+autVxuICAgICAgICBjb25zdCBwYXRoID0gJy8nICsgc2VnbWVudHNcbiAgICAgICAgICAuZmlsdGVyKChfLCBpbmRleCkgPT4gaW5kZXggPD0gMSlcbiAgICAgICAgICAubWFwKG8gPT4gby5wYXRoLnJlcGxhY2UoLzsuKyQvLCAnJykpIC8vIHBhdGgg5Lit5Y+v6IO95pyJ5Y+C5pWw77yM5oiR5Lus5Y+q5Y+W5YmN6Z2i55qE6YOo5YiG77yaL2E7aWQ9MSA9PiAvYVxuICAgICAgICAgIC5qb2luKCcvJyk7XG4gICAgICAgIHJldHVybiBsaXN0LnNvbWUobWVudSA9PiBtZW51LnBhdGggPT09IHBhdGgpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGZhbHNlKSlcbiAgICApO1xuICB9XG5cbiAgYWNjb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxSZXN1bHQ8QWNjb3VudE5hbWU+PihgJHt0aGlzLmNvbmZpZy5lYXJ0aFVybH0vYXBpL2FjYy9pbmZvYCwge1xuICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KENBQ0hFQUJMRV9UT0tFTiwgdHJ1ZSlcbiAgICB9KTtcbiAgfVxuXG4gIHVzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UmVzdWx0PFVzZXJJbmZvPj4oYCR7dGhpcy5jb25maWcuZWFydGhVcmx9L2FwaS91c3IvaW5mb2AsIHtcbiAgICAgIGNvbnRleHQ6IG5ldyBIdHRwQ29udGV4dCgpLnNldChDQUNIRUFCTEVfVE9LRU4sIHRydWUpXG4gICAgfSk7XG4gIH1cblxuICBtZW51cygpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxSZXN1bHQ8TWVudVtdPj4oYCR7dGhpcy5jb25maWcuZWFydGhVcmx9L2FwaS9yb2xlLW1lbnVzLyR7dGhpcy5jb25maWcuY2xpZW50SWR9YCwge1xuICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KENBQ0hFQUJMRV9UT0tFTiwgdHJ1ZSlcbiAgICB9KS5waXBlKFxuICAgICAgZmlsdGVyUmVzdWx0KCksXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBub3JtYWxpemVNZW51cyhkYXRhKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOWPmOabtOWvhueggVxuICAgKiBAcGFyYW0gb1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgY2hhbmdlUGFzc3dvcmQobzogeyBvbGRQc3c6IHN0cmluZywgbmV3UHN3OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxSZXN1bHQ+KGAke3RoaXMuY29uZmlnLmVhcnRoVXJsfS9hcGkvdXNlci9wc3dgLCBvKS5waXBlKFxuICAgICAgdGFwKCh7IGNvZGUgfSkgPT4ge1xuICAgICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuY2FjaGVNYW5hZ2VyLnJldm9rZUFsbCgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjaGFubmVscyhvcmlnaW46IE9yaWdpbikge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlc3VsdDxDaGFubmVsW10+PihgJHt0aGlzLmNvbmZpZy5lYXJ0aFVybH0vYXBpL2NoYW5uZWwvJHtvcmlnaW59YCwge1xuICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KENBQ0hFQUJMRV9UT0tFTiwgdHJ1ZSlcbiAgICB9KTtcbiAgfVxuXG4gIGNhdGVnb3JpZXMob3JpZ2luOiBPcmlnaW4pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxSZXN1bHQ8Q2F0ZWdvcnlbXT4+KGAke3RoaXMuY29uZmlnLmVhcnRoVXJsfS9hcGkvY2F0ZWdvcnkvJHtvcmlnaW59YCwge1xuICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KENBQ0hFQUJMRV9UT0tFTiwgdHJ1ZSlcbiAgICB9KTtcbiAgfVxuXG4gIGFkZHJlc3MocGlkPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UmVzdWx0PEFkZHJlc3NbXT4+KGAke3RoaXMuY29uZmlnLmVhcnRoVXJsfS9hcGkvYWRkcnNgLCB7XG4gICAgICBwYXJhbXM6IHBpZCA/IHsgcGlkIH0gOiB1bmRlZmluZWQsXG4gICAgICBjb250ZXh0OiBuZXcgSHR0cENvbnRleHQoKS5zZXQoQ0FDSEVBQkxFX1RPS0VOLCB0cnVlKVxuICAgIH0pO1xuICB9XG5cbiAgYXZhdGFyVXBsb2FkS2V5KCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlc3VsdDxVcGxvYWRLZXlzPj4oYCR7dGhpcy5jb25maWcuZWFydGhVcmx9L2FwaS9xaW5pdS9hdmF0YXIvdXBsb2FkLWtleWApO1xuICB9XG5cbiAgbWVkaWFVcGxvYWRLZXlzKGtleVNpemUgPSAxKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UmVzdWx0PFVwbG9hZEtleXM+PihgJHt0aGlzLmNvbmZpZy5lYXJ0aFVybH0vYXBpL3Fpbml1L21lZGlhL3VwbG9hZC1rZXlzYCwge1xuICAgICAgcGFyYW1zOiB7IGtleVNpemUgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { EarthService } from '../earth.service';
|
|
5
|
+
/**
|
|
6
|
+
* 认证路由守卫
|
|
7
|
+
* 认证后才允许进入,否则将导航到登录页(/login)
|
|
8
|
+
* @param options
|
|
9
|
+
*/
|
|
10
|
+
export function authMatchGuard(options) {
|
|
11
|
+
return (_route, segments) => {
|
|
12
|
+
const router = inject(Router);
|
|
13
|
+
const earthService = inject(EarthService);
|
|
14
|
+
const redirectUrl = {
|
|
15
|
+
redirect: router.createUrlTree(['/' + segments.join('/')], {
|
|
16
|
+
queryParams: Object.fromEntries(new URLSearchParams(location.search))
|
|
17
|
+
}).toString()
|
|
18
|
+
};
|
|
19
|
+
return earthService.checkAuth().pipe(map(bool => {
|
|
20
|
+
if (!bool) {
|
|
21
|
+
return router.createUrlTree([
|
|
22
|
+
'/login',
|
|
23
|
+
options?.redirect === undefined || options.redirect ? redirectUrl : {}
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
return bool;
|
|
27
|
+
}));
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldHMvZWFydGgvZ3VhcmRzL2F1dGguZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQXFCLE1BQU0sRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRixPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU9oRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUErQjtJQUM1RCxPQUFPLENBQUMsTUFBYSxFQUFFLFFBQXNCLEVBQWtGLEVBQUU7UUFDL0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxQyxNQUFNLFdBQVcsR0FBRztZQUNsQixRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FDNUIsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMxQjtnQkFDRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEUsQ0FDRixDQUFDLFFBQVEsRUFBRTtTQUNiLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNULElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7b0JBQzFCLFFBQVE7b0JBQ1IsT0FBTyxFQUFFLFFBQVEsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN2RSxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuTWF0Y2hGbiwgUm91dGUsIFJvdXRlciwgVXJsU2VnbWVudCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVhcnRoU2VydmljZSB9IGZyb20gJy4uL2VhcnRoLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQXV0aE1hdGNoR3VhcmRPcHRpb25zIHtcbiAgLyoqIOaYr+WQpuWcqOeZu+mZhuWQjumHjeWumuWQkeWbnuW9k+WJjemhtSAqL1xuICByZWRpcmVjdD86IGJvb2xlYW47XG59XG5cbi8qKlxuICog6K6k6K+B6Lev55Sx5a6I5Y2rXG4gKiDorqTor4HlkI7miY3lhYHorrjov5vlhaXvvIzlkKbliJnlsIblr7zoiKrliLDnmbvlvZXpobXvvIgvbG9naW7vvIlcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdXRoTWF0Y2hHdWFyZChvcHRpb25zPzogQXV0aE1hdGNoR3VhcmRPcHRpb25zKTogQ2FuTWF0Y2hGbiB7XG4gIHJldHVybiAoX3JvdXRlOiBSb3V0ZSwgc2VnbWVudHM6IFVybFNlZ21lbnRbXSk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSA9PiB7XG4gICAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgY29uc3QgZWFydGhTZXJ2aWNlID0gaW5qZWN0KEVhcnRoU2VydmljZSk7XG5cbiAgICBjb25zdCByZWRpcmVjdFVybCA9IHtcbiAgICAgIHJlZGlyZWN0OiByb3V0ZXIuY3JlYXRlVXJsVHJlZShcbiAgICAgICAgWycvJyArIHNlZ21lbnRzLmpvaW4oJy8nKV0sXG4gICAgICAgIHtcbiAgICAgICAgICBxdWVyeVBhcmFtczogT2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKSlcbiAgICAgICAgfVxuICAgICAgKS50b1N0cmluZygpXG4gICAgfTtcblxuICAgIHJldHVybiBlYXJ0aFNlcnZpY2UuY2hlY2tBdXRoKCkucGlwZShcbiAgICAgIG1hcChib29sID0+IHtcbiAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgcmV0dXJuIHJvdXRlci5jcmVhdGVVcmxUcmVlKFtcbiAgICAgICAgICAgICcvbG9naW4nLFxuICAgICAgICAgICAgb3B0aW9ucz8ucmVkaXJlY3QgPT09IHVuZGVmaW5lZCB8fCBvcHRpb25zLnJlZGlyZWN0ID8gcmVkaXJlY3RVcmwgOiB7fVxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJvb2w7XG4gICAgICB9KVxuICAgICk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './auth.guard';
|
|
2
|
+
export * from './permission.guard';
|
|
3
|
+
export * from './unauth.guard';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXRzL2VhcnRoL2d1YXJkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vdW5hdXRoLmd1YXJkJztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { EarthService } from '../earth.service';
|
|
5
|
+
/**
|
|
6
|
+
* 权限路由守卫
|
|
7
|
+
* 有权限才允许进入,否则导航到无权限页(/forbidden)
|
|
8
|
+
*/
|
|
9
|
+
export function permissionMatchGuard() {
|
|
10
|
+
return (_route, segments) => {
|
|
11
|
+
const router = inject(Router);
|
|
12
|
+
const earthService = inject(EarthService);
|
|
13
|
+
return earthService.checkPermission(segments).pipe(map(bool => bool || router.parseUrl('/forbidden')));
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldHMvZWFydGgvZ3VhcmRzL3Blcm1pc3Npb24uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQXFCLE1BQU0sRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRixPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8sQ0FBQyxNQUFhLEVBQUUsUUFBc0IsRUFBa0YsRUFBRTtRQUMvSCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFDLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNULElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUN0QyxDQUNGLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5NYXRjaEZuLCBSb3V0ZSwgUm91dGVyLCBVcmxTZWdtZW50LCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWFydGhTZXJ2aWNlIH0gZnJvbSAnLi4vZWFydGguc2VydmljZSc7XG5cbi8qKlxuICog5p2D6ZmQ6Lev55Sx5a6I5Y2rXG4gKiDmnInmnYPpmZDmiY3lhYHorrjov5vlhaXvvIzlkKbliJnlr7zoiKrliLDml6DmnYPpmZDpobXvvIgvZm9yYmlkZGVu77yJXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtaXNzaW9uTWF0Y2hHdWFyZCgpOiBDYW5NYXRjaEZuIHtcbiAgcmV0dXJuIChfcm91dGU6IFJvdXRlLCBzZWdtZW50czogVXJsU2VnbWVudFtdKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gfCBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gfCBVcmxUcmVlID0+IHtcbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBjb25zdCBlYXJ0aFNlcnZpY2UgPSBpbmplY3QoRWFydGhTZXJ2aWNlKTtcblxuICAgIHJldHVybiBlYXJ0aFNlcnZpY2UuY2hlY2tQZXJtaXNzaW9uKHNlZ21lbnRzKS5waXBlKFxuICAgICAgbWFwKGJvb2wgPT5cbiAgICAgICAgYm9vbCB8fCByb3V0ZXIucGFyc2VVcmwoJy9mb3JiaWRkZW4nKVxuICAgICAgKVxuICAgICk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { EarthService } from '../earth.service';
|
|
5
|
+
/**
|
|
6
|
+
* 未认证路由守卫
|
|
7
|
+
* 未认证才允许进入,否则将导航到首页
|
|
8
|
+
*/
|
|
9
|
+
export function unauthMatchGuard() {
|
|
10
|
+
return (_route, _segments) => {
|
|
11
|
+
const router = inject(Router);
|
|
12
|
+
const earthService = inject(EarthService);
|
|
13
|
+
return earthService.checkAuth().pipe(map(bool => bool ? router.parseUrl('/') : true));
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0cy9lYXJ0aC9ndWFyZHMvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFxQixNQUFNLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLENBQUMsTUFBYSxFQUFFLFNBQXVCLEVBQWtGLEVBQUU7UUFDaEksTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxQyxPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ2hELENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5NYXRjaEZuLCBSb3V0ZSwgUm91dGVyLCBVcmxTZWdtZW50LCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWFydGhTZXJ2aWNlIH0gZnJvbSAnLi4vZWFydGguc2VydmljZSc7XG5cbi8qKlxuICog5pyq6K6k6K+B6Lev55Sx5a6I5Y2rXG4gKiDmnKrorqTor4HmiY3lhYHorrjov5vlhaXvvIzlkKbliJnlsIblr7zoiKrliLDpppbpobVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuYXV0aE1hdGNoR3VhcmQoKTogQ2FuTWF0Y2hGbiB7XG4gIHJldHVybiAoX3JvdXRlOiBSb3V0ZSwgX3NlZ21lbnRzOiBVcmxTZWdtZW50W10pOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUgPT4ge1xuICAgIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIGNvbnN0IGVhcnRoU2VydmljZSA9IGluamVjdChFYXJ0aFNlcnZpY2UpO1xuXG4gICAgcmV0dXJuIGVhcnRoU2VydmljZS5jaGVja0F1dGgoKS5waXBlKFxuICAgICAgbWFwKGJvb2wgPT4gYm9vbCA/IHJvdXRlci5wYXJzZVVybCgnLycpIDogdHJ1ZSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './earth.pipe';
|
|
2
|
+
export * from './earth.resolver';
|
|
3
|
+
export * from './earth.service';
|
|
4
|
+
export * from './guards';
|
|
5
|
+
export * from './menu.service';
|
|
6
|
+
export * from './object-storage.service';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXRzL2VhcnRoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VhcnRoLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lYXJ0aC5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL2VhcnRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3Qtc3RvcmFnZS5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { EarthService } from './earth.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class MenuService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.earthService = inject(EarthService);
|
|
9
|
+
this.router = inject(Router);
|
|
10
|
+
/**
|
|
11
|
+
* 当前的菜单数组
|
|
12
|
+
*/
|
|
13
|
+
this.menus$ = this.earthService.menus().pipe(map(data => {
|
|
14
|
+
const menus = [];
|
|
15
|
+
const url = this.pureUrl;
|
|
16
|
+
let end = data.find(o => o.url === url);
|
|
17
|
+
while (end) {
|
|
18
|
+
menus.unshift(end);
|
|
19
|
+
end = end.parent;
|
|
20
|
+
}
|
|
21
|
+
return menus;
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
get pureUrl() {
|
|
25
|
+
// 只取最后一段 /m/staff;a=b?c=d => staff
|
|
26
|
+
return this.router.url.replace(/(^.+\/)|((;|\?).+$)/g, '');
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuService, providedIn: 'root' }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuService, decorators: [{
|
|
32
|
+
type: Injectable,
|
|
33
|
+
args: [{
|
|
34
|
+
providedIn: 'root'
|
|
35
|
+
}]
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0cy9lYXJ0aC9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUltQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBT3pDOztXQUVHO1FBQ00sV0FBTSxHQUF1QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1QsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDekIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFeEMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDWCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUNuQixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0tBQ0g7SUF0QkMsSUFBWSxPQUFPO1FBQ2pCLG1DQUFtQztRQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQVBVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWVudSB9IGZyb20gJ0Bzb2xhci1raXQvcGxhbmV0cy9lYXJ0aCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVhcnRoU2VydmljZSB9IGZyb20gJy4vZWFydGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBlYXJ0aFNlcnZpY2UgPSBpbmplY3QoRWFydGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBwcml2YXRlIGdldCBwdXJlVXJsKCkge1xuICAgIC8vIOWPquWPluacgOWQjuS4gOautSAvbS9zdGFmZjthPWI/Yz1kID0+IHN0YWZmXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLnVybC5yZXBsYWNlKC8oXi4rXFwvKXwoKDt8XFw/KS4rJCkvZywgJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIOW9k+WJjeeahOiPnOWNleaVsOe7hFxuICAgKi9cbiAgcmVhZG9ubHkgbWVudXMkOiBPYnNlcnZhYmxlPE1lbnVbXT4gPSB0aGlzLmVhcnRoU2VydmljZS5tZW51cygpLnBpcGUoXG4gICAgbWFwKGRhdGEgPT4ge1xuICAgICAgY29uc3QgbWVudXM6IE1lbnVbXSA9IFtdO1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5wdXJlVXJsO1xuICAgICAgbGV0IGVuZCA9IGRhdGEuZmluZChvID0+IG8udXJsID09PSB1cmwpO1xuXG4gICAgICB3aGlsZSAoZW5kKSB7XG4gICAgICAgIG1lbnVzLnVuc2hpZnQoZW5kKTtcbiAgICAgICAgZW5kID0gZW5kLnBhcmVudDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1lbnVzO1xuICAgIH0pXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { HttpClient, HttpContext } from '@angular/common/http';
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
3
|
+
import { API_TOKEN } from '@solar-angular/http';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ObjectStorageService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.http = inject(HttpClient);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 目前只支持了 qiniu oss
|
|
11
|
+
* @param filePath
|
|
12
|
+
* @param options
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
upload(file, key, options) {
|
|
16
|
+
const formData = new FormData();
|
|
17
|
+
formData.set('key', key);
|
|
18
|
+
formData.set('file', file);
|
|
19
|
+
formData.set('token', options.token);
|
|
20
|
+
return this.http.post(`https://${options.host}`, formData, {
|
|
21
|
+
context: new HttpContext().set(API_TOKEN, false)
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
uploadWithEvents(file, key, options) {
|
|
25
|
+
const formData = new FormData();
|
|
26
|
+
formData.set('key', key);
|
|
27
|
+
formData.set('file', file);
|
|
28
|
+
formData.set('token', options.token);
|
|
29
|
+
return this.http.post(`https://${options.host}`, formData, {
|
|
30
|
+
context: new HttpContext().set(API_TOKEN, false),
|
|
31
|
+
observe: 'events',
|
|
32
|
+
reportProgress: true,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectStorageService, providedIn: 'root' }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectStorageService, decorators: [{
|
|
39
|
+
type: Injectable,
|
|
40
|
+
args: [{
|
|
41
|
+
providedIn: 'root'
|
|
42
|
+
}]
|
|
43
|
+
}] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldHMvZWFydGgvb2JqZWN0LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNaEQsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUltQixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBK0I1QztJQTdCQzs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxJQUFVLEVBQUUsR0FBVyxFQUFFLE9BQTJDO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWdDLFdBQVcsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUN4RixPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztTQUNqRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBVSxFQUFFLEdBQVcsRUFBRSxPQUEyQztRQUNuRixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNCLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFnQyxXQUFXLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUU7WUFDeEYsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7WUFDaEQsT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EvQlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUElfVE9LRU4gfSBmcm9tICdAc29sYXItYW5ndWxhci9odHRwJztcbmltcG9ydCB7IFVwbG9hZEtleXMgfSBmcm9tICdAc29sYXIta2l0L3BsYW5ldHMvZWFydGgnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RTdG9yYWdlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAvKipcbiAgICog55uu5YmN5Y+q5pSv5oyB5LqGIHFpbml1IG9zc1xuICAgKiBAcGFyYW0gZmlsZVBhdGhcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHVwbG9hZChmaWxlOiBCbG9iLCBrZXk6IHN0cmluZywgb3B0aW9uczogUGljazxVcGxvYWRLZXlzLCAnaG9zdCcgfCAndG9rZW4nPikge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuc2V0KCdrZXknLCBrZXkpO1xuICAgIGZvcm1EYXRhLnNldCgnZmlsZScsIGZpbGUpO1xuICAgIGZvcm1EYXRhLnNldCgndG9rZW4nLCBvcHRpb25zLnRva2VuKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IGhhc2g6IHN0cmluZywga2V5OiBzdHJpbmcgfT4oYGh0dHBzOi8vJHtvcHRpb25zLmhvc3R9YCwgZm9ybURhdGEsIHtcbiAgICAgIGNvbnRleHQ6IG5ldyBIdHRwQ29udGV4dCgpLnNldChBUElfVE9LRU4sIGZhbHNlKVxuICAgIH0pO1xuICB9XG5cbiAgdXBsb2FkV2l0aEV2ZW50cyhmaWxlOiBCbG9iLCBrZXk6IHN0cmluZywgb3B0aW9uczogUGljazxVcGxvYWRLZXlzLCAnaG9zdCcgfCAndG9rZW4nPikge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuc2V0KCdrZXknLCBrZXkpO1xuICAgIGZvcm1EYXRhLnNldCgnZmlsZScsIGZpbGUpO1xuICAgIGZvcm1EYXRhLnNldCgndG9rZW4nLCBvcHRpb25zLnRva2VuKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IGhhc2g6IHN0cmluZywga2V5OiBzdHJpbmcgfT4oYGh0dHBzOi8vJHtvcHRpb25zLmhvc3R9YCwgZm9ybURhdGEsIHtcbiAgICAgIGNvbnRleHQ6IG5ldyBIdHRwQ29udGV4dCgpLnNldChBUElfVE9LRU4sIGZhbHNlKSxcbiAgICAgIG9ic2VydmU6ICdldmVudHMnLFxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sYXItYW5ndWxhci1wbGFuZXRzLWVhcnRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0cy9lYXJ0aC9zb2xhci1hbmd1bGFyLXBsYW5ldHMtZWFydGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export default void 0;
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB2b2lkIDA7XG4iXX0=
|