@solar-angular/planets 19.2.0 → 19.3.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/earth/menus.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Menu } from '@solar-kit/planets/earth';
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function currentMenus(): import("@angular/core").Signal<Menu[]>;
|
|
@@ -6,8 +6,9 @@ import { HttpClient, HttpContext } from '@angular/common/http';
|
|
|
6
6
|
import { SOLAR_CONFIG } from '@solar-angular/core';
|
|
7
7
|
import { CacheManager, CACHEABLE_TOKEN, AUTH_REDIRECT_TOKEN, CATCH_HTTP_ERROR_TOKEN, API_TOKEN } from '@solar-angular/http';
|
|
8
8
|
import { tree2list } from '@solar-kit/core';
|
|
9
|
-
import { map, catchError, of, tap
|
|
9
|
+
import { map, catchError, of, tap } from 'rxjs';
|
|
10
10
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
11
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
11
12
|
|
|
12
13
|
function normalizeMenus(menus) {
|
|
13
14
|
const dashboard = {
|
|
@@ -240,12 +241,12 @@ function unauthMatchGuard() {
|
|
|
240
241
|
};
|
|
241
242
|
}
|
|
242
243
|
|
|
243
|
-
function
|
|
244
|
+
function currentMenus() {
|
|
244
245
|
const earthService = inject(EarthService);
|
|
245
246
|
const activatedRoute = inject(ActivatedRoute);
|
|
246
247
|
// 如果 path='',那么 url 是空的,此时需要取父路由
|
|
247
248
|
const route = activatedRoute.snapshot.url.length ? activatedRoute : activatedRoute.parent;
|
|
248
|
-
return earthService.menus().pipe(map(data => {
|
|
249
|
+
return toSignal(earthService.menus().pipe(map(data => {
|
|
249
250
|
const menus = [];
|
|
250
251
|
const lastPath = route.snapshot.url[route.snapshot.url.length - 1].path;
|
|
251
252
|
let end = data.find(o => o.url === lastPath);
|
|
@@ -254,7 +255,7 @@ function injectMenus() {
|
|
|
254
255
|
end = end.parent;
|
|
255
256
|
}
|
|
256
257
|
return menus;
|
|
257
|
-
}),
|
|
258
|
+
})), { initialValue: [] });
|
|
258
259
|
}
|
|
259
260
|
|
|
260
261
|
class ObjectStorageService {
|
|
@@ -316,5 +317,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
316
317
|
* Generated bundle index. Do not edit.
|
|
317
318
|
*/
|
|
318
319
|
|
|
319
|
-
export { CategoryPipe, EarthService, ObjectStorageService, UnitCategoryPipe, WeightPipe, authMatchGuard, categoryResolver, channelResolver,
|
|
320
|
+
export { CategoryPipe, EarthService, ObjectStorageService, UnitCategoryPipe, WeightPipe, authMatchGuard, categoryResolver, channelResolver, currentMenus, permissionMatchGuard, unauthMatchGuard };
|
|
320
321
|
//# sourceMappingURL=solar-angular-planets-earth.mjs.map
|
|
@@ -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 { ActivatedRoute } from '@angular/router';\nimport { Menu } from '@solar-kit/planets/earth';\nimport { map, shareReplay } from 'rxjs';\nimport { EarthService } from './earth.service';\n\nexport function injectMenus() {\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 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 shareReplay(1)\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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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solar-angular/planets",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.3.0",
|
|
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.3.0",
|
|
10
|
+
"@solar-angular/http": "19.3.0",
|
|
11
11
|
"tslib": "^2.3.0"
|
|
12
12
|
},
|
|
13
13
|
"peerDependencies": {
|