@solar-angular/planets 19.3.4 → 19.4.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/fesm2022/solar-angular-planets-earth.mjs +15 -15
- package/fesm2022/solar-angular-planets-earth.mjs.map +1 -1
- package/fesm2022/solar-angular-planets-mercury.mjs +3 -3
- package/fesm2022/solar-angular-planets-mercury.mjs.map +1 -1
- package/fesm2022/solar-angular-planets-sun.mjs +3 -3
- package/fesm2022/solar-angular-planets-sun.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -127,10 +127,10 @@ class EarthService {
|
|
|
127
127
|
params: { keySize }
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
131
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EarthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
131
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EarthService, providedIn: 'root' }); }
|
|
132
132
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EarthService, decorators: [{
|
|
134
134
|
type: Injectable,
|
|
135
135
|
args: [{
|
|
136
136
|
providedIn: 'root'
|
|
@@ -157,10 +157,10 @@ class CategoryPipe {
|
|
|
157
157
|
}
|
|
158
158
|
return this.latestValue;
|
|
159
159
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
161
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: CategoryPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
161
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: CategoryPipe, isStandalone: true, name: "category", pure: false }); }
|
|
162
162
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: CategoryPipe, decorators: [{
|
|
164
164
|
type: Pipe,
|
|
165
165
|
args: [{
|
|
166
166
|
name: 'category',
|
|
@@ -172,10 +172,10 @@ class UnitCategoryPipe extends CategoryPipe {
|
|
|
172
172
|
transform(value) {
|
|
173
173
|
return super.transform(value, Origin.Unit);
|
|
174
174
|
}
|
|
175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
176
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: UnitCategoryPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
176
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: UnitCategoryPipe, isStandalone: true, name: "unit", pure: false }); }
|
|
177
177
|
}
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: UnitCategoryPipe, decorators: [{
|
|
179
179
|
type: Pipe,
|
|
180
180
|
args: [{
|
|
181
181
|
name: 'unit',
|
|
@@ -288,10 +288,10 @@ class ObjectStorageService {
|
|
|
288
288
|
reportProgress: true,
|
|
289
289
|
});
|
|
290
290
|
}
|
|
291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
292
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
291
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ObjectStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
292
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ObjectStorageService, providedIn: 'root' }); }
|
|
293
293
|
}
|
|
294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
294
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ObjectStorageService, decorators: [{
|
|
295
295
|
type: Injectable,
|
|
296
296
|
args: [{
|
|
297
297
|
providedIn: 'root'
|
|
@@ -302,10 +302,10 @@ class WeightPipe {
|
|
|
302
302
|
transform(value, unitId) {
|
|
303
303
|
return formatWeight(value, unitId);
|
|
304
304
|
}
|
|
305
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
306
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WeightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
306
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: WeightPipe, isStandalone: true, name: "weight" }); }
|
|
307
307
|
}
|
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WeightPipe, decorators: [{
|
|
309
309
|
type: Pipe,
|
|
310
310
|
args: [{
|
|
311
311
|
name: 'weight',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solar-angular-planets-earth.mjs","sources":["../../../packages/planets/earth/earth.service.ts","../../../packages/planets/earth/earth.pipe.ts","../../../packages/planets/earth/earth.resolver.ts","../../../packages/planets/earth/guards/auth.guard.ts","../../../packages/planets/earth/guards/permission.guard.ts","../../../packages/planets/earth/guards/unauth.guard.ts","../../../packages/planets/earth/menus.ts","../../../packages/planets/earth/object-storage.service.ts","../../../packages/planets/earth/pipes/weight.pipe.ts","../../../packages/planets/earth/solar-angular-planets-earth.ts"],"sourcesContent":["import { HttpClient, HttpContext } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { UrlSegment } from '@angular/router';\nimport { SOLAR_CONFIG } from '@solar-angular/core';\nimport { AUTH_REDIRECT_TOKEN, CACHEABLE_TOKEN, CacheManager, CATCH_HTTP_ERROR_TOKEN } from '@solar-angular/http';\nimport { tree2list } from '@solar-kit/core';\nimport { AccountName, Address, Category, Channel, Menu, Origin, UploadKeys, UserInfo } from '@solar-kit/planets/earth';\nimport { filterResult, Result } from '@solar-kit/planets/sun';\nimport { catchError, map, of, tap } from 'rxjs';\n\nfunction normalizeMenus(menus: Menu[]) {\n const dashboard = {\n id: 0,\n fullName: 'Dashboard',\n icon: 'dashboard',\n seq: 0,\n url: 'dashboard',\n } as Menu;\n\n menus = menus.concat(dashboard);\n\n menus.forEach(o => {\n o.level = 1;\n o.children = menus.filter(child => child.pid === o.id).sort((a, b) => a.seq - b.seq);\n o.children!.forEach(child => child.parent = o);\n });\n\n // 设置 level\n menus.forEach(o => {\n let menu = o;\n while (menu?.parent) { // 如果有上一级,就自增一\n o.level!++;\n menu = menu.parent;\n }\n });\n\n // 设置末端子节点的 path\n menus.filter(o => o.children?.length === 0).forEach(o => {\n let segment = '', menu: Menu | undefined = o;\n\n while (menu) {\n segment = '/' + menu.url + segment;\n menu = menu.parent;\n }\n\n o.path = segment;\n });\n\n menus.sort((a, b) => a.seq - b.seq);\n\n return menus;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EarthService {\n readonly config = inject(SOLAR_CONFIG);\n readonly http = inject(HttpClient);\n readonly cacheManager = inject(CacheManager);\n\n checkAuth() {\n // 这里直接用 menus API 来判断是否已认证\n return this.http.get<Result<Menu[]>>(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {\n context: new HttpContext()\n .set(CACHEABLE_TOKEN, true)\n .set(AUTH_REDIRECT_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }).pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n checkPermission(segments: UrlSegment[]) {\n return this.http.get<Result<Menu[]>>(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {\n context: new HttpContext()\n .set(CACHEABLE_TOKEN, true)\n .set(AUTH_REDIRECT_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }).pipe(\n map(({ data }) => {\n const tree = normalizeMenus(data);\n const list = tree2list(tree);\n // 我们的权限菜单只有两级,我们只判断前两个 path 片段\n const path = '/' + segments\n .filter((_, index) => index <= 1)\n .map(o => o.path.replace(/;.+$/, '')) // path 中可能有参数,我们只取前面的部分:/a;id=1 => /a\n .join('/');\n return list.some(menu => menu.path === path);\n }),\n catchError(() => of(false))\n );\n }\n\n account() {\n return this.http.get<Result<AccountName>>(`${this.config.earthUrl}/api/acc/info`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n user() {\n return this.http.get<Result<UserInfo>>(`${this.config.earthUrl}/api/usr/info`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n menus() {\n return this.http.get<Result<Menu[]>>(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n }).pipe(\n filterResult(),\n map(({ data }) => normalizeMenus(data))\n );\n }\n\n /**\n * 变更密码\n * @param o\n * @returns\n */\n changePassword(o: { oldPsw: string, newPsw: string }) {\n return this.http.post<Result>(`${this.config.earthUrl}/api/user/psw`, o).pipe(\n tap(({ code }) => {\n if (code === 0) {\n this.cacheManager.revokeAll();\n }\n })\n );\n }\n\n channels(origin: Origin) {\n return this.http.get<Result<Channel[]>>(`${this.config.earthUrl}/api/channel/${origin}`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n categories(origin: Origin) {\n return this.http.get<Result<Category[]>>(`${this.config.earthUrl}/api/category/${origin}`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n address(pid?: number) {\n return this.http.get<Result<Address[]>>(`${this.config.earthUrl}/api/addrs`, {\n params: pid ? { pid } : undefined,\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n avatarUploadKey() {\n return this.http.get<Result<UploadKeys>>(`${this.config.earthUrl}/api/qiniu/avatar/upload-key`);\n }\n\n mediaUploadKeys(keySize = 1) {\n return this.http.get<Result<UploadKeys>>(`${this.config.earthUrl}/api/qiniu/media/upload-keys`, {\n params: { keySize }\n });\n }\n}\n","import { ChangeDetectorRef, inject, Pipe, PipeTransform } from '@angular/core';\nimport { Category, Origin } from '@solar-kit/planets/earth';\nimport { filterResult } from '@solar-kit/planets/sun';\nimport { EarthService } from './earth.service';\n\n@Pipe({\n name: 'category',\n pure: false,\n standalone: true\n})\nexport class CategoryPipe implements PipeTransform {\n protected latestId: Category['id'] | null = null;\n protected latestOrigin: Origin | null = null;\n protected latestValue: Category | null = null;\n protected readonly service = inject(EarthService);\n protected readonly cdr = inject(ChangeDetectorRef);\n\n transform(id: Category['id'], origin: Origin) {\n if (id !== this.latestId || origin !== this.latestOrigin) {\n this.latestId = id;\n this.latestOrigin = origin;\n\n // 这个 API 是带缓存的,不用担心重复执行\n this.service.categories(origin).pipe(\n filterResult()\n ).subscribe(({ data }) => {\n this.latestValue = data.find(o => o.id === id) ?? null;\n this.cdr.markForCheck();\n });\n }\n\n return this.latestValue;\n }\n\n}\n\n@Pipe({\n name: 'unit',\n pure: false,\n standalone: true\n})\nexport class UnitCategoryPipe extends CategoryPipe implements PipeTransform {\n override transform(value: Category['id']) {\n return super.transform(value, Origin.Unit);\n }\n}\n","import { inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\nimport { Category, Channel, Origin } from '@solar-kit/planets/earth';\nimport { unpackResult } from '@solar-kit/planets/sun';\nimport { EarthService } from './earth.service';\n\nexport function channelResolver(origin: Origin): ResolveFn<Channel[]> {\n return () => inject(EarthService).channels(origin).pipe(unpackResult());\n}\n\nexport function categoryResolver(origin: Origin): ResolveFn<Category[]> {\n return () => inject(EarthService).categories(origin).pipe(unpackResult());\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { EarthService } from '../earth.service';\n\ninterface AuthMatchGuardOptions {\n /** 是否在登陆后重定向回当前页 */\n redirect?: boolean;\n}\n\n/**\n * 认证路由守卫\n * 认证后才允许进入,否则将导航到登录页(/login)\n * @param options\n */\nexport function authMatchGuard(options?: AuthMatchGuardOptions): CanMatchFn {\n return (_route: Route, segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const router = inject(Router);\n const earthService = inject(EarthService);\n\n const redirectUrl = {\n redirect: router.createUrlTree(\n ['/' + segments.join('/')],\n {\n queryParams: Object.fromEntries(new URLSearchParams(location.search))\n }\n ).toString()\n };\n\n return earthService.checkAuth().pipe(\n map(bool => {\n if (!bool) {\n return router.createUrlTree([\n '/login',\n options?.redirect === undefined || options.redirect ? redirectUrl : {}\n ]);\n }\n\n return bool;\n })\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { EarthService } from '../earth.service';\n\n/**\n * 权限路由守卫\n * 有权限才允许进入,否则导航到无权限页(/forbidden)\n */\nexport function permissionMatchGuard(): CanMatchFn {\n return (_route: Route, segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const router = inject(Router);\n const earthService = inject(EarthService);\n\n return earthService.checkPermission(segments).pipe(\n map(bool =>\n bool || router.parseUrl('/forbidden')\n )\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { EarthService } from '../earth.service';\n\n/**\n * 未认证路由守卫\n * 未认证才允许进入,否则将导航到首页\n */\nexport function unauthMatchGuard(): CanMatchFn {\n return (_route: Route, _segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const router = inject(Router);\n const earthService = inject(EarthService);\n\n return earthService.checkAuth().pipe(\n map(bool => bool ? router.parseUrl('/') : true),\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { Menu } from '@solar-kit/planets/earth';\nimport { map } from 'rxjs';\nimport { EarthService } from './earth.service';\n\nexport function currentMenus() {\n const earthService = inject(EarthService);\n const activatedRoute = inject(ActivatedRoute);\n // 如果 path='',那么 url 是空的,此时需要取父路由\n const route = activatedRoute.snapshot.url.length ? activatedRoute : activatedRoute.parent!;\n\n return toSignal(\n earthService.menus().pipe(\n map(data => {\n const menus: Menu[] = [];\n const lastPath = route.snapshot.url[route.snapshot.url.length - 1].path\n let end = data.find(o => o.url === lastPath);\n\n while (end) {\n menus.unshift(end);\n end = end.parent;\n }\n\n return menus;\n }),\n ),\n { initialValue: [] }\n )\n}\n","import { HttpClient, HttpContext } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { API_TOKEN } from '@solar-angular/http';\nimport { UploadKeys } from '@solar-kit/planets/earth';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectStorageService {\n private readonly http = inject(HttpClient);\n\n /**\n * 目前只支持了 qiniu oss\n * @param filePath\n * @param options\n * @returns\n */\n upload(file: Blob, key: string, options: Pick<UploadKeys, 'host' | 'token'>) {\n const formData = new FormData();\n formData.set('key', key);\n formData.set('file', file);\n formData.set('token', options.token);\n\n return this.http.post<{ hash: string, key: string }>(`https://${options.host}`, formData, {\n context: new HttpContext().set(API_TOKEN, false)\n });\n }\n\n uploadWithEvents(file: Blob, key: string, options: Pick<UploadKeys, 'host' | 'token'>) {\n const formData = new FormData();\n formData.set('key', key);\n formData.set('file', file);\n formData.set('token', options.token);\n\n return this.http.post<{ hash: string, key: string }>(`https://${options.host}`, formData, {\n context: new HttpContext().set(API_TOKEN, false),\n observe: 'events',\n reportProgress: true,\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatWeight, Unit } from '@solar-kit/planets/earth';\n\n@Pipe({\n name: 'weight',\n standalone: true\n})\nexport class WeightPipe implements PipeTransform {\n transform(value: number, unitId: Unit['id']): number {\n return formatWeight(value, unitId);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"solar-angular-planets-earth.mjs","sources":["../../../packages/planets/earth/earth.service.ts","../../../packages/planets/earth/earth.pipe.ts","../../../packages/planets/earth/earth.resolver.ts","../../../packages/planets/earth/guards/auth.guard.ts","../../../packages/planets/earth/guards/permission.guard.ts","../../../packages/planets/earth/guards/unauth.guard.ts","../../../packages/planets/earth/menus.ts","../../../packages/planets/earth/object-storage.service.ts","../../../packages/planets/earth/pipes/weight.pipe.ts","../../../packages/planets/earth/solar-angular-planets-earth.ts"],"sourcesContent":["import { HttpClient, HttpContext } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { UrlSegment } from '@angular/router';\nimport { SOLAR_CONFIG } from '@solar-angular/core';\nimport { AUTH_REDIRECT_TOKEN, CACHEABLE_TOKEN, CacheManager, CATCH_HTTP_ERROR_TOKEN } from '@solar-angular/http';\nimport { tree2list } from '@solar-kit/core';\nimport { AccountName, Address, Category, Channel, Menu, Origin, UploadKeys, UserInfo } from '@solar-kit/planets/earth';\nimport { filterResult, Result } from '@solar-kit/planets/sun';\nimport { catchError, map, of, tap } from 'rxjs';\n\nfunction normalizeMenus(menus: Menu[]) {\n const dashboard = {\n id: 0,\n fullName: 'Dashboard',\n icon: 'dashboard',\n seq: 0,\n url: 'dashboard',\n } as Menu;\n\n menus = menus.concat(dashboard);\n\n menus.forEach(o => {\n o.level = 1;\n o.children = menus.filter(child => child.pid === o.id).sort((a, b) => a.seq - b.seq);\n o.children!.forEach(child => child.parent = o);\n });\n\n // 设置 level\n menus.forEach(o => {\n let menu = o;\n while (menu?.parent) { // 如果有上一级,就自增一\n o.level!++;\n menu = menu.parent;\n }\n });\n\n // 设置末端子节点的 path\n menus.filter(o => o.children?.length === 0).forEach(o => {\n let segment = '', menu: Menu | undefined = o;\n\n while (menu) {\n segment = '/' + menu.url + segment;\n menu = menu.parent;\n }\n\n o.path = segment;\n });\n\n menus.sort((a, b) => a.seq - b.seq);\n\n return menus;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EarthService {\n readonly config = inject(SOLAR_CONFIG);\n readonly http = inject(HttpClient);\n readonly cacheManager = inject(CacheManager);\n\n checkAuth() {\n // 这里直接用 menus API 来判断是否已认证\n return this.http.get<Result<Menu[]>>(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {\n context: new HttpContext()\n .set(CACHEABLE_TOKEN, true)\n .set(AUTH_REDIRECT_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }).pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n checkPermission(segments: UrlSegment[]) {\n return this.http.get<Result<Menu[]>>(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {\n context: new HttpContext()\n .set(CACHEABLE_TOKEN, true)\n .set(AUTH_REDIRECT_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }).pipe(\n map(({ data }) => {\n const tree = normalizeMenus(data);\n const list = tree2list(tree);\n // 我们的权限菜单只有两级,我们只判断前两个 path 片段\n const path = '/' + segments\n .filter((_, index) => index <= 1)\n .map(o => o.path.replace(/;.+$/, '')) // path 中可能有参数,我们只取前面的部分:/a;id=1 => /a\n .join('/');\n return list.some(menu => menu.path === path);\n }),\n catchError(() => of(false))\n );\n }\n\n account() {\n return this.http.get<Result<AccountName>>(`${this.config.earthUrl}/api/acc/info`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n user() {\n return this.http.get<Result<UserInfo>>(`${this.config.earthUrl}/api/usr/info`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n menus() {\n return this.http.get<Result<Menu[]>>(`${this.config.earthUrl}/api/role-menus/${this.config.clientId}`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n }).pipe(\n filterResult(),\n map(({ data }) => normalizeMenus(data))\n );\n }\n\n /**\n * 变更密码\n * @param o\n * @returns\n */\n changePassword(o: { oldPsw: string, newPsw: string }) {\n return this.http.post<Result>(`${this.config.earthUrl}/api/user/psw`, o).pipe(\n tap(({ code }) => {\n if (code === 0) {\n this.cacheManager.revokeAll();\n }\n })\n );\n }\n\n channels(origin: Origin) {\n return this.http.get<Result<Channel[]>>(`${this.config.earthUrl}/api/channel/${origin}`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n categories(origin: Origin) {\n return this.http.get<Result<Category[]>>(`${this.config.earthUrl}/api/category/${origin}`, {\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n address(pid?: number) {\n return this.http.get<Result<Address[]>>(`${this.config.earthUrl}/api/addrs`, {\n params: pid ? { pid } : undefined,\n context: new HttpContext().set(CACHEABLE_TOKEN, true)\n });\n }\n\n avatarUploadKey() {\n return this.http.get<Result<UploadKeys>>(`${this.config.earthUrl}/api/qiniu/avatar/upload-key`);\n }\n\n mediaUploadKeys(keySize = 1) {\n return this.http.get<Result<UploadKeys>>(`${this.config.earthUrl}/api/qiniu/media/upload-keys`, {\n params: { keySize }\n });\n }\n}\n","import { ChangeDetectorRef, inject, Pipe, PipeTransform } from '@angular/core';\nimport { Category, Origin } from '@solar-kit/planets/earth';\nimport { filterResult } from '@solar-kit/planets/sun';\nimport { EarthService } from './earth.service';\n\n@Pipe({\n name: 'category',\n pure: false,\n standalone: true\n})\nexport class CategoryPipe implements PipeTransform {\n protected latestId: Category['id'] | null = null;\n protected latestOrigin: Origin | null = null;\n protected latestValue: Category | null = null;\n protected readonly service = inject(EarthService);\n protected readonly cdr = inject(ChangeDetectorRef);\n\n transform(id: Category['id'], origin: Origin) {\n if (id !== this.latestId || origin !== this.latestOrigin) {\n this.latestId = id;\n this.latestOrigin = origin;\n\n // 这个 API 是带缓存的,不用担心重复执行\n this.service.categories(origin).pipe(\n filterResult()\n ).subscribe(({ data }) => {\n this.latestValue = data.find(o => o.id === id) ?? null;\n this.cdr.markForCheck();\n });\n }\n\n return this.latestValue;\n }\n\n}\n\n@Pipe({\n name: 'unit',\n pure: false,\n standalone: true\n})\nexport class UnitCategoryPipe extends CategoryPipe implements PipeTransform {\n override transform(value: Category['id']) {\n return super.transform(value, Origin.Unit);\n }\n}\n","import { inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\nimport { Category, Channel, Origin } from '@solar-kit/planets/earth';\nimport { unpackResult } from '@solar-kit/planets/sun';\nimport { EarthService } from './earth.service';\n\nexport function channelResolver(origin: Origin): ResolveFn<Channel[]> {\n return () => inject(EarthService).channels(origin).pipe(unpackResult());\n}\n\nexport function categoryResolver(origin: Origin): ResolveFn<Category[]> {\n return () => inject(EarthService).categories(origin).pipe(unpackResult());\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { EarthService } from '../earth.service';\n\ninterface AuthMatchGuardOptions {\n /** 是否在登陆后重定向回当前页 */\n redirect?: boolean;\n}\n\n/**\n * 认证路由守卫\n * 认证后才允许进入,否则将导航到登录页(/login)\n * @param options\n */\nexport function authMatchGuard(options?: AuthMatchGuardOptions): CanMatchFn {\n return (_route: Route, segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const router = inject(Router);\n const earthService = inject(EarthService);\n\n const redirectUrl = {\n redirect: router.createUrlTree(\n ['/' + segments.join('/')],\n {\n queryParams: Object.fromEntries(new URLSearchParams(location.search))\n }\n ).toString()\n };\n\n return earthService.checkAuth().pipe(\n map(bool => {\n if (!bool) {\n return router.createUrlTree([\n '/login',\n options?.redirect === undefined || options.redirect ? redirectUrl : {}\n ]);\n }\n\n return bool;\n })\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { EarthService } from '../earth.service';\n\n/**\n * 权限路由守卫\n * 有权限才允许进入,否则导航到无权限页(/forbidden)\n */\nexport function permissionMatchGuard(): CanMatchFn {\n return (_route: Route, segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const router = inject(Router);\n const earthService = inject(EarthService);\n\n return earthService.checkPermission(segments).pipe(\n map(bool =>\n bool || router.parseUrl('/forbidden')\n )\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { EarthService } from '../earth.service';\n\n/**\n * 未认证路由守卫\n * 未认证才允许进入,否则将导航到首页\n */\nexport function unauthMatchGuard(): CanMatchFn {\n return (_route: Route, _segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const router = inject(Router);\n const earthService = inject(EarthService);\n\n return earthService.checkAuth().pipe(\n map(bool => bool ? router.parseUrl('/') : true),\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { Menu } from '@solar-kit/planets/earth';\nimport { map } from 'rxjs';\nimport { EarthService } from './earth.service';\n\nexport function currentMenus() {\n const earthService = inject(EarthService);\n const activatedRoute = inject(ActivatedRoute);\n // 如果 path='',那么 url 是空的,此时需要取父路由\n const route = activatedRoute.snapshot.url.length ? activatedRoute : activatedRoute.parent!;\n\n return toSignal(\n earthService.menus().pipe(\n map(data => {\n const menus: Menu[] = [];\n const lastPath = route.snapshot.url[route.snapshot.url.length - 1].path\n let end = data.find(o => o.url === lastPath);\n\n while (end) {\n menus.unshift(end);\n end = end.parent;\n }\n\n return menus;\n }),\n ),\n { initialValue: [] }\n )\n}\n","import { HttpClient, HttpContext } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { API_TOKEN } from '@solar-angular/http';\nimport { UploadKeys } from '@solar-kit/planets/earth';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectStorageService {\n private readonly http = inject(HttpClient);\n\n /**\n * 目前只支持了 qiniu oss\n * @param filePath\n * @param options\n * @returns\n */\n upload(file: Blob, key: string, options: Pick<UploadKeys, 'host' | 'token'>) {\n const formData = new FormData();\n formData.set('key', key);\n formData.set('file', file);\n formData.set('token', options.token);\n\n return this.http.post<{ hash: string, key: string }>(`https://${options.host}`, formData, {\n context: new HttpContext().set(API_TOKEN, false)\n });\n }\n\n uploadWithEvents(file: Blob, key: string, options: Pick<UploadKeys, 'host' | 'token'>) {\n const formData = new FormData();\n formData.set('key', key);\n formData.set('file', file);\n formData.set('token', options.token);\n\n return this.http.post<{ hash: string, key: string }>(`https://${options.host}`, formData, {\n context: new HttpContext().set(API_TOKEN, false),\n observe: 'events',\n reportProgress: true,\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatWeight, Unit } from '@solar-kit/planets/earth';\n\n@Pipe({\n name: 'weight',\n standalone: true\n})\nexport class WeightPipe implements PipeTransform {\n transform(value: number, unitId: Unit['id']): number {\n return formatWeight(value, unitId);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -58,10 +58,10 @@ class MercuryService {
|
|
|
58
58
|
.set(CATCH_HTTP_ERROR_TOKEN, false)
|
|
59
59
|
}).pipe(tap(({ code }) => code === 0 && this.cacheManager.revokeAll()));
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
62
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MercuryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
62
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MercuryService, providedIn: 'root' }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MercuryService, decorators: [{
|
|
65
65
|
type: Injectable,
|
|
66
66
|
args: [{
|
|
67
67
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solar-angular-planets-mercury.mjs","sources":["../../../packages/planets/mercury/mercury.service.ts","../../../packages/planets/mercury/auth.interceptor.ts","../../../packages/planets/mercury/solar-angular-planets-mercury.ts"],"sourcesContent":["import { HttpClient, HttpContext, HttpParams } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { SOLAR_CONFIG } from '@solar-angular/core';\nimport { AUTH_TOKEN, CATCH_HTTP_ERROR_TOKEN, CATCH_RESULT_ERROR_TOKEN, CacheManager } from '@solar-angular/http';\nimport { Result } from '@solar-kit/planets/sun';\nimport { tap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MercuryService {\n protected readonly config = inject(SOLAR_CONFIG);\n protected readonly http = inject(HttpClient);\n protected readonly cacheManager = inject(CacheManager);\n\n auth(username: string, password: string, remember: boolean, options: { clientSecret: string, captcha: string }) {\n return this.http.post<Result>(`${this.config.mercuryUrl}/auth`,\n new HttpParams({\n fromObject: {\n username,\n password,\n remember,\n grant_type: 'password',\n client_id: this.config.clientId,\n captcha: encodeURIComponent(options.captcha)\n }\n }).toString(),\n {\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n 'Content-type': 'application/x-www-form-urlencoded; charset=utf-8',\n Authorization: 'Basic ' + btoa(`${this.config.clientId}:${options.clientSecret}`)\n },\n context: new HttpContext()\n .set(AUTH_TOKEN, false)\n .set(CATCH_RESULT_ERROR_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }\n );\n }\n\n refreshCertificate() {\n return this.http.post<Result>(`${this.config.mercuryUrl}/auth`, null, {\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n Authorization: 'Basic ' + btoa(`${this.config.clientId}:refresh`)\n },\n params: {\n client_id: this.config.clientId,\n grant_type: 'refresh_token',\n },\n context: new HttpContext()\n .set(AUTH_TOKEN, false)\n .set(CATCH_RESULT_ERROR_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n });\n }\n\n leave() {\n return this.http.post<Result>(`${this.config.mercuryUrl}/leave`, null, {\n context: new HttpContext()\n .set(AUTH_TOKEN, false)\n .set(CATCH_RESULT_ERROR_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }).pipe(\n tap(({ code }) => code === 0 && this.cacheManager.revokeAll())\n );\n }\n\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandlerFn, HttpInterceptorFn, HttpRequest, HttpStatusCode } from '@angular/common/http';\nimport { inject, Injector, runInInjectionContext } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AUTH_REDIRECT_TOKEN, AUTH_TOKEN, CacheManager, CATCH_HTTP_ERROR_TOKEN } from '@solar-angular/http';\nimport { Result } from '@solar-kit/planets/sun';\nimport { catchError, finalize, map, Observable, retry, share, switchMap } from 'rxjs';\nimport { MercuryService } from './mercury.service';\n\n/**\n * Mercury 认证拦截器\n * - 使用 {@link AUTH_TOKEN} 跳过该拦截器\n * - 使用 {@link AUTH_REDIRECT_TOKEN} 关闭认证失败自动跳转到 `/login`\n * @returns\n */\nexport function useAuthInterceptor(onUnauth: () => void): HttpInterceptorFn {\n /** 令牌刷新器 */\n let refreshToken$: Observable<Result> | null = null;\n\n return (request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> => {\n const router = inject(Router);\n const cacheManager = inject(CacheManager);\n const mercuryService = inject(MercuryService);\n const injector = inject(Injector);\n\n if (!request.context.get(AUTH_TOKEN)) {\n return next(request);\n }\n\n if (refreshToken$) {\n return refreshToken$.pipe(\n switchMap(() => next(request))\n );\n }\n\n return next(request).pipe(\n retry({\n count: 1,\n delay: (error: HttpErrorResponse) => {\n if (error.status !== HttpStatusCode.Unauthorized) {\n throw error;\n }\n\n refreshToken$ ||= mercuryService.refreshCertificate().pipe(\n map(result => {\n if (result?.code !== 0) {\n throw result;\n }\n\n return result;\n }),\n catchError(error => {\n // 如果刷新令牌都出错了,则这些等待刷新令牌的请求也不需要捕获 HTTP 错误了\n request.context.set(CATCH_HTTP_ERROR_TOKEN, false);\n\n if (request.context.get(AUTH_REDIRECT_TOKEN)) {\n runInInjectionContext(injector, () => onUnauth())\n router.navigate(['/login', { redirect: router.url }]);\n }\n\n cacheManager.revokeAll();\n\n throw error;\n }),\n finalize(() => refreshToken$ = null),\n share()\n );\n\n return refreshToken$;\n }\n })\n );\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAUa,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC7B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAwDvD;AAtDC,IAAA,IAAI,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAiB,EAAE,OAAkD,EAAA;AAC5G,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,
|
|
1
|
+
{"version":3,"file":"solar-angular-planets-mercury.mjs","sources":["../../../packages/planets/mercury/mercury.service.ts","../../../packages/planets/mercury/auth.interceptor.ts","../../../packages/planets/mercury/solar-angular-planets-mercury.ts"],"sourcesContent":["import { HttpClient, HttpContext, HttpParams } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { SOLAR_CONFIG } from '@solar-angular/core';\nimport { AUTH_TOKEN, CATCH_HTTP_ERROR_TOKEN, CATCH_RESULT_ERROR_TOKEN, CacheManager } from '@solar-angular/http';\nimport { Result } from '@solar-kit/planets/sun';\nimport { tap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MercuryService {\n protected readonly config = inject(SOLAR_CONFIG);\n protected readonly http = inject(HttpClient);\n protected readonly cacheManager = inject(CacheManager);\n\n auth(username: string, password: string, remember: boolean, options: { clientSecret: string, captcha: string }) {\n return this.http.post<Result>(`${this.config.mercuryUrl}/auth`,\n new HttpParams({\n fromObject: {\n username,\n password,\n remember,\n grant_type: 'password',\n client_id: this.config.clientId,\n captcha: encodeURIComponent(options.captcha)\n }\n }).toString(),\n {\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n 'Content-type': 'application/x-www-form-urlencoded; charset=utf-8',\n Authorization: 'Basic ' + btoa(`${this.config.clientId}:${options.clientSecret}`)\n },\n context: new HttpContext()\n .set(AUTH_TOKEN, false)\n .set(CATCH_RESULT_ERROR_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }\n );\n }\n\n refreshCertificate() {\n return this.http.post<Result>(`${this.config.mercuryUrl}/auth`, null, {\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n Authorization: 'Basic ' + btoa(`${this.config.clientId}:refresh`)\n },\n params: {\n client_id: this.config.clientId,\n grant_type: 'refresh_token',\n },\n context: new HttpContext()\n .set(AUTH_TOKEN, false)\n .set(CATCH_RESULT_ERROR_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n });\n }\n\n leave() {\n return this.http.post<Result>(`${this.config.mercuryUrl}/leave`, null, {\n context: new HttpContext()\n .set(AUTH_TOKEN, false)\n .set(CATCH_RESULT_ERROR_TOKEN, false)\n .set(CATCH_HTTP_ERROR_TOKEN, false)\n }).pipe(\n tap(({ code }) => code === 0 && this.cacheManager.revokeAll())\n );\n }\n\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandlerFn, HttpInterceptorFn, HttpRequest, HttpStatusCode } from '@angular/common/http';\nimport { inject, Injector, runInInjectionContext } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AUTH_REDIRECT_TOKEN, AUTH_TOKEN, CacheManager, CATCH_HTTP_ERROR_TOKEN } from '@solar-angular/http';\nimport { Result } from '@solar-kit/planets/sun';\nimport { catchError, finalize, map, Observable, retry, share, switchMap } from 'rxjs';\nimport { MercuryService } from './mercury.service';\n\n/**\n * Mercury 认证拦截器\n * - 使用 {@link AUTH_TOKEN} 跳过该拦截器\n * - 使用 {@link AUTH_REDIRECT_TOKEN} 关闭认证失败自动跳转到 `/login`\n * @returns\n */\nexport function useAuthInterceptor(onUnauth: () => void): HttpInterceptorFn {\n /** 令牌刷新器 */\n let refreshToken$: Observable<Result> | null = null;\n\n return (request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> => {\n const router = inject(Router);\n const cacheManager = inject(CacheManager);\n const mercuryService = inject(MercuryService);\n const injector = inject(Injector);\n\n if (!request.context.get(AUTH_TOKEN)) {\n return next(request);\n }\n\n if (refreshToken$) {\n return refreshToken$.pipe(\n switchMap(() => next(request))\n );\n }\n\n return next(request).pipe(\n retry({\n count: 1,\n delay: (error: HttpErrorResponse) => {\n if (error.status !== HttpStatusCode.Unauthorized) {\n throw error;\n }\n\n refreshToken$ ||= mercuryService.refreshCertificate().pipe(\n map(result => {\n if (result?.code !== 0) {\n throw result;\n }\n\n return result;\n }),\n catchError(error => {\n // 如果刷新令牌都出错了,则这些等待刷新令牌的请求也不需要捕获 HTTP 错误了\n request.context.set(CATCH_HTTP_ERROR_TOKEN, false);\n\n if (request.context.get(AUTH_REDIRECT_TOKEN)) {\n runInInjectionContext(injector, () => onUnauth())\n router.navigate(['/login', { redirect: router.url }]);\n }\n\n cacheManager.revokeAll();\n\n throw error;\n }),\n finalize(() => refreshToken$ = null),\n share()\n );\n\n return refreshToken$;\n }\n })\n );\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ class GenderPipe {
|
|
|
8
8
|
[1 /* Gender.Man */]: '男',
|
|
9
9
|
}[value];
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GenderPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: GenderPipe, isStandalone: true, name: "gender" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GenderPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'gender',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solar-angular-planets-sun.mjs","sources":["../../../packages/planets/sun/gender.pipe.ts","../../../packages/planets/sun/solar-angular-planets-sun.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { Gender } from '@solar-kit/planets/sun';\n\n@Pipe({\n name: 'gender',\n standalone: true\n})\nexport class GenderPipe implements PipeTransform {\n\n transform(value: Gender): string {\n return {\n [Gender.Woman]: '女',\n [Gender.Man]: '男',\n }[value];\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAOa,UAAU,CAAA;AAErB,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,OAAO;AACL,YAAA,CAAA,CAAA,sBAAgB,GAAG;AACnB,YAAA,CAAA,CAAA,oBAAc,GAAG;SAClB,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"solar-angular-planets-sun.mjs","sources":["../../../packages/planets/sun/gender.pipe.ts","../../../packages/planets/sun/solar-angular-planets-sun.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { Gender } from '@solar-kit/planets/sun';\n\n@Pipe({\n name: 'gender',\n standalone: true\n})\nexport class GenderPipe implements PipeTransform {\n\n transform(value: Gender): string {\n return {\n [Gender.Woman]: '女',\n [Gender.Man]: '男',\n }[value];\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAOa,UAAU,CAAA;AAErB,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,OAAO;AACL,YAAA,CAAA,CAAA,sBAAgB,GAAG;AACnB,YAAA,CAAA,CAAA,oBAAc,GAAG;SAClB,CAAC,KAAK,CAAC;IACV;+GAPW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACND;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solar-angular/planets",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.4.1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@solar-angular/core": "19.
|
|
10
|
-
"@solar-angular/http": "19.
|
|
9
|
+
"@solar-angular/core": "19.4.1",
|
|
10
|
+
"@solar-angular/http": "19.4.1",
|
|
11
11
|
"tslib": "^2.3.0"
|
|
12
12
|
},
|
|
13
13
|
"peerDependencies": {
|