@yelon/bis 20.0.0 → 20.0.2
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/bis.mjs +13 -61
- package/fesm2022/bis.mjs.map +1 -1
- package/fesm2022/layout.mjs +30 -164
- package/fesm2022/layout.mjs.map +1 -1
- package/layout/style/index.less +1 -1
- package/package.json +11 -11
package/fesm2022/bis.mjs
CHANGED
|
@@ -630,12 +630,7 @@ class YunzaiLayoutWebsite01Component {
|
|
|
630
630
|
<div class="yz-layout-website-01">
|
|
631
631
|
<div class="yz-layout-website-01-nav__user">
|
|
632
632
|
@if (isLogin) {
|
|
633
|
-
<a
|
|
634
|
-
class="yz-layout-website-01-link"
|
|
635
|
-
nz-dropdown
|
|
636
|
-
[nzDropdownMenu]="menu"
|
|
637
|
-
[nzOverlayStyle]="{ width: '120px' }"
|
|
638
|
-
>
|
|
633
|
+
<a class="yz-layout-website-01-link" nz-dropdown [nzDropdownMenu]="menu" [nzOverlayStyle]="{ width: '120px' }">
|
|
639
634
|
<span nz-icon nzType="user" nzTheme="outline"></span>{{ _username }}<span nz-icon nzType="down"></span>
|
|
640
635
|
</a>
|
|
641
636
|
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
@@ -643,15 +638,11 @@ class YunzaiLayoutWebsite01Component {
|
|
|
643
638
|
@for (link of _links; track $index) {
|
|
644
639
|
<li nz-menu-item class="yz-layout-website-01-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
645
640
|
}
|
|
646
|
-
<li nz-menu-item [nzDanger]="true" class="yz-layout-website-01-link__li" (click)="logout()"
|
|
647
|
-
>{{ 'menu.account.logout' | i18n }}
|
|
648
|
-
</li>
|
|
641
|
+
<li nz-menu-item [nzDanger]="true" class="yz-layout-website-01-link__li" (click)="logout()">{{ 'menu.account.logout' | i18n }} </li>
|
|
649
642
|
</ul>
|
|
650
643
|
</nz-dropdown-menu>
|
|
651
644
|
} @else {
|
|
652
|
-
<a class="yz-layout-website-01-link" (click)="login()">
|
|
653
|
-
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
654
|
-
>
|
|
645
|
+
<a class="yz-layout-website-01-link" (click)="login()"> <span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a>
|
|
655
646
|
}
|
|
656
647
|
</div>
|
|
657
648
|
|
|
@@ -683,12 +674,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
683
674
|
<div class="yz-layout-website-01">
|
|
684
675
|
<div class="yz-layout-website-01-nav__user">
|
|
685
676
|
@if (isLogin) {
|
|
686
|
-
<a
|
|
687
|
-
class="yz-layout-website-01-link"
|
|
688
|
-
nz-dropdown
|
|
689
|
-
[nzDropdownMenu]="menu"
|
|
690
|
-
[nzOverlayStyle]="{ width: '120px' }"
|
|
691
|
-
>
|
|
677
|
+
<a class="yz-layout-website-01-link" nz-dropdown [nzDropdownMenu]="menu" [nzOverlayStyle]="{ width: '120px' }">
|
|
692
678
|
<span nz-icon nzType="user" nzTheme="outline"></span>{{ _username }}<span nz-icon nzType="down"></span>
|
|
693
679
|
</a>
|
|
694
680
|
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
@@ -696,15 +682,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
696
682
|
@for (link of _links; track $index) {
|
|
697
683
|
<li nz-menu-item class="yz-layout-website-01-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
698
684
|
}
|
|
699
|
-
<li nz-menu-item [nzDanger]="true" class="yz-layout-website-01-link__li" (click)="logout()"
|
|
700
|
-
>{{ 'menu.account.logout' | i18n }}
|
|
701
|
-
</li>
|
|
685
|
+
<li nz-menu-item [nzDanger]="true" class="yz-layout-website-01-link__li" (click)="logout()">{{ 'menu.account.logout' | i18n }} </li>
|
|
702
686
|
</ul>
|
|
703
687
|
</nz-dropdown-menu>
|
|
704
688
|
} @else {
|
|
705
|
-
<a class="yz-layout-website-01-link" (click)="login()">
|
|
706
|
-
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
707
|
-
>
|
|
689
|
+
<a class="yz-layout-website-01-link" (click)="login()"> <span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a>
|
|
708
690
|
}
|
|
709
691
|
</div>
|
|
710
692
|
|
|
@@ -813,13 +795,7 @@ class YunzaiLayoutWebsite02Component {
|
|
|
813
795
|
<ng-template *ngTemplateOutlet="_slogan" />
|
|
814
796
|
</div>
|
|
815
797
|
@if (isLogin) {
|
|
816
|
-
<a
|
|
817
|
-
class="yz-layout-website-02-link"
|
|
818
|
-
nz-dropdown
|
|
819
|
-
[nzDropdownMenu]="menu"
|
|
820
|
-
[nzDisabled]="!_userMenuShow"
|
|
821
|
-
[nzPlacement]="'bottomRight'"
|
|
822
|
-
>
|
|
798
|
+
<a class="yz-layout-website-02-link" nz-dropdown [nzDropdownMenu]="menu" [nzDisabled]="!_userMenuShow" [nzPlacement]="'bottomRight'">
|
|
823
799
|
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
824
800
|
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
825
801
|
</a>
|
|
@@ -828,15 +804,11 @@ class YunzaiLayoutWebsite02Component {
|
|
|
828
804
|
@for (link of _links; track $index) {
|
|
829
805
|
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
830
806
|
}
|
|
831
|
-
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
832
|
-
'menu.account.logout' | i18n
|
|
833
|
-
}}</li>
|
|
807
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{ 'menu.account.logout' | i18n }}</li>
|
|
834
808
|
</ul>
|
|
835
809
|
</nz-dropdown-menu>
|
|
836
810
|
} @else {
|
|
837
|
-
<a class="yz-layout-website-02-link" (click)="login()">
|
|
838
|
-
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
839
|
-
>
|
|
811
|
+
<a class="yz-layout-website-02-link" (click)="login()"> <span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a>
|
|
840
812
|
}
|
|
841
813
|
</div>
|
|
842
814
|
</div>
|
|
@@ -870,13 +842,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
870
842
|
<ng-template *ngTemplateOutlet="_slogan" />
|
|
871
843
|
</div>
|
|
872
844
|
@if (isLogin) {
|
|
873
|
-
<a
|
|
874
|
-
class="yz-layout-website-02-link"
|
|
875
|
-
nz-dropdown
|
|
876
|
-
[nzDropdownMenu]="menu"
|
|
877
|
-
[nzDisabled]="!_userMenuShow"
|
|
878
|
-
[nzPlacement]="'bottomRight'"
|
|
879
|
-
>
|
|
845
|
+
<a class="yz-layout-website-02-link" nz-dropdown [nzDropdownMenu]="menu" [nzDisabled]="!_userMenuShow" [nzPlacement]="'bottomRight'">
|
|
880
846
|
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
881
847
|
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
882
848
|
</a>
|
|
@@ -885,15 +851,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
885
851
|
@for (link of _links; track $index) {
|
|
886
852
|
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
887
853
|
}
|
|
888
|
-
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
889
|
-
'menu.account.logout' | i18n
|
|
890
|
-
}}</li>
|
|
854
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{ 'menu.account.logout' | i18n }}</li>
|
|
891
855
|
</ul>
|
|
892
856
|
</nz-dropdown-menu>
|
|
893
857
|
} @else {
|
|
894
|
-
<a class="yz-layout-website-02-link" (click)="login()">
|
|
895
|
-
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
896
|
-
>
|
|
858
|
+
<a class="yz-layout-website-02-link" (click)="login()"> <span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a>
|
|
897
859
|
}
|
|
898
860
|
</div>
|
|
899
861
|
</div>
|
|
@@ -903,17 +865,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
903
865
|
</main>
|
|
904
866
|
</div>
|
|
905
867
|
`,
|
|
906
|
-
imports: [
|
|
907
|
-
RouterOutlet,
|
|
908
|
-
I18nPipe,
|
|
909
|
-
NzI18nModule,
|
|
910
|
-
NgFor,
|
|
911
|
-
NgIf,
|
|
912
|
-
NzDropDownModule,
|
|
913
|
-
NzIconModule,
|
|
914
|
-
NgTemplateOutlet,
|
|
915
|
-
NzAvatarModule
|
|
916
|
-
]
|
|
868
|
+
imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet, NzAvatarModule]
|
|
917
869
|
}]
|
|
918
870
|
}], propDecorators: { logoSrc: [{
|
|
919
871
|
type: Input
|
package/fesm2022/bis.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bis.mjs","sources":["../../../../packages/bis/src/bis.module.ts","../../../../packages/bis/src/provide.ts","../../../../packages/bis/src/helper.ts","../../../../packages/bis/src/refresh-token.ts","../../../../packages/bis/src/yunzai-default.interceptor.ts","../../../../packages/bis/src/startup.service.ts","../../../../packages/bis/src/yunzai-analysis-addon.guard.ts","../../../../packages/bis/src/yunzai-act.guard.ts","../../../../packages/bis/src/website/layout-website-01.component.ts","../../../../packages/bis/src/website/layout-website-02.component.ts","../../../../packages/bis/bis.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { YunzaiLayoutModule } from '@yelon/bis/layout';\nimport { YunzaiWidgetsModule } from '@yelon/bis/yunzai-widgets';\n@NgModule({\n imports: [YunzaiLayoutModule, YunzaiWidgetsModule],\n exports: [YunzaiLayoutModule, YunzaiWidgetsModule]\n})\nexport class BisModule {}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\n\nimport { BisModule } from './bis.module';\n\nexport function provideYunzaiBis(): EnvironmentProviders {\n const provides: EnvironmentProviders[] = [];\n provides.push(importProvidersFrom(BisModule));\n return makeEnvironmentProviders(provides);\n}\n","import { HttpHeaders, HttpResponseBase } from '@angular/common/http';\nimport { inject, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { YUNZAI_I18N_TOKEN } from '@yelon/theme';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\n\nexport const CODEMESSAGE: Record<number, string> = {\n 200: '服务器成功返回请求的数据。',\n 201: '新建或修改数据成功。',\n 202: '一个请求已经进入后台排队(异步任务)。',\n 204: '删除数据成功。',\n 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',\n 401: '用户没有权限(令牌、用户名、密码错误)。',\n 403: '用户得到授权,但是访问是被禁止的。',\n 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',\n 406: '请求的格式不可得。',\n 410: '请求的资源被永久删除,且不会再得到的。',\n 422: '当创建一个对象时,发生一个验证错误。',\n 500: '服务器发生错误,请检查服务器。',\n 502: '网关错误。',\n 503: '服务不可用,服务器暂时过载或维护。',\n 504: '网关超时。'\n};\n\nexport function getAdditionalHeaders(headers?: HttpHeaders): Record<string, string> {\n const res: Record<string, string> = {};\n const lang = inject(YUNZAI_I18N_TOKEN).currentLang;\n if (!headers?.has('Accept-Language') && lang) {\n res['Accept-Language'] = lang;\n }\n\n return res;\n}\n\nexport function checkStatus(injector: Injector, ev: HttpResponseBase): void {\n if ((ev.status >= 200 && ev.status < 300) || ev.status === 401) {\n return;\n }\n const errortext = CODEMESSAGE[ev.status] || ev.statusText;\n injector.get(NzNotificationService).error(`请求错误 ${ev.status}: ${ev.url}`, errortext);\n}\n\nexport interface ReThrowHttpError {\n body: any;\n _throw: true;\n}\n\nexport function goTo(injector: Injector, url: string): void {\n setTimeout(() => injector.get(Router).navigateByUrl(url));\n}\n\nexport function toLogin(injector: Injector): void {\n injector.get(NzNotificationService).error(`未登录或登录已过期,请重新登录。`, ``);\n goTo(injector, injector.get(YA_SERVICE_TOKEN).login_url!);\n}\n","import { HttpClient, HttpHandlerFn, HttpRequest, HttpResponseBase } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, Provider } from '@angular/core';\nimport { BehaviorSubject, catchError, filter, Observable, switchMap, take, throwError } from 'rxjs';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { log } from '@yelon/util';\n\nimport { toLogin } from './helper';\n\nlet refreshToking = false;\nlet refreshToken$: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\nexport const tryRefreshToken = (\n injector: Injector,\n ev: HttpResponseBase,\n req: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<any> => {\n // 连刷新Token的请求都错了,那就是真错了\n if (['/auth/oauth/getOrCreateToken/webapp'].some(url => req.url.includes(url))) {\n toLogin(injector);\n return throwError(() => ev);\n }\n // 2、如果 `refreshToking` 为 `true` 表示已经在请求刷新 Token 中,后续所有请求转入等待状态,直至结果返回后再重新发起请求\n if (refreshToking) {\n return refreshToken$.pipe(\n filter(v => !!v),\n take(1),\n switchMap(() => next(reAttachToken(injector, req)))\n );\n }\n // 3、尝试调用刷新 Token\n refreshToking = true;\n refreshToken$.next(null);\n\n return refreshTokenRequest(injector).pipe(\n switchMap(res => {\n // 通知后续请求继续执行\n refreshToking = false;\n refreshToken$.next(res);\n // 重新保存新 token\n injector.get(YA_SERVICE_TOKEN).set(res);\n // 重新发起请求\n return next(reAttachToken(injector, req));\n }),\n catchError(err => {\n refreshToking = false;\n toLogin(injector);\n return throwError(() => err);\n })\n );\n};\n\nfunction reAttachToken(injector: Injector, req: HttpRequest<any>): HttpRequest<any> {\n const token = injector.get(YA_SERVICE_TOKEN).get()?.access_token;\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n}\n\nfunction refreshTokenRequest(injector: Injector): Observable<any> {\n const model = injector.get(YA_SERVICE_TOKEN).get();\n const form = new FormData();\n if (model?.refresh_token) {\n form.set('refresh_token', model.refresh_token);\n }\n form.set('grant_type', 'refresh_token');\n form.set('scope', 'webapp');\n return injector.get(HttpClient).post(`/auth/oauth/getOrCreateToken/webapp`, form);\n}\n\nfunction buildAuthRefresh(injector: Injector): void {\n const tokenSrv = injector.get(YA_SERVICE_TOKEN);\n tokenSrv.refresh\n .pipe(\n filter(() => !refreshToking),\n switchMap(res => {\n log(res);\n refreshToking = true;\n return refreshTokenRequest(injector);\n })\n )\n .subscribe({\n next: res => {\n res.expired = +new Date() + 1000 * 60 * 5;\n refreshToking = false;\n tokenSrv.set(res);\n },\n error: () => toLogin(injector)\n });\n}\n\nexport function provideYunzaiBindAuthRefresh(): Provider[] {\n return [\n {\n provide: APP_INITIALIZER,\n useFactory: (injector: Injector) => () => buildAuthRefresh(injector),\n deps: [Injector],\n multi: true\n }\n ];\n}\n","import {\n HttpErrorResponse,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n HttpResponseBase\n} from '@angular/common/http';\nimport { Injector, inject } from '@angular/core';\nimport { Observable, of, throwError, mergeMap, catchError } from 'rxjs';\n\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport { IGNORE_BASE_URL } from '@yelon/theme';\nimport { YUNZAI_CONFIG, YunzaiConfigService } from '@yelon/util';\n\nimport { checkStatus, getAdditionalHeaders, goTo, ReThrowHttpError, toLogin } from './helper';\nimport { tryRefreshToken } from './refresh-token';\n\nfunction handleData(\n injector: Injector,\n ev: HttpResponseBase,\n req: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<any> {\n checkStatus(injector, ev);\n const config = injector.get(YUNZAI_CONFIG).bis!;\n switch (ev.status) {\n case 200:\n return of(ev);\n case 401:\n if (config.refreshTokenEnabled && config.refreshTokenType === 're-request') {\n const unAuthorizationReq = req.clone();\n unAuthorizationReq.headers.delete('Authorization');\n return tryRefreshToken(injector, ev, unAuthorizationReq, next);\n }\n toLogin(injector);\n break;\n case 403:\n case 404:\n case 500:\n goTo(injector, `/exception/${ev.status}?url=${req.urlWithParams}`);\n break;\n default:\n if (ev instanceof HttpErrorResponse) {\n console.warn(\n '未可知错误,大部分是由于后端不支持跨域CORS或无效配置引起,请参考 https://ng.yunzainfo.com/docs/server 解决跨域问题',\n ev\n );\n }\n break;\n }\n if (ev instanceof HttpErrorResponse) {\n return throwError(() => ev);\n } else if ((ev as unknown as ReThrowHttpError)._throw) {\n return throwError(() => (ev as unknown as ReThrowHttpError).body);\n } else {\n return of(ev);\n }\n}\n\nexport const yunzaiDefaultInterceptor: HttpInterceptorFn = (req, next) => {\n const config = mergeBisConfig(inject(YunzaiConfigService));\n const { baseUrl } = config;\n let url = req.url;\n if (!req.context.get(IGNORE_BASE_URL) && !url.startsWith('https://') && !url.startsWith('http://')) {\n url = baseUrl + (baseUrl!.endsWith('/') && url.startsWith('/') ? url.substring(1) : url);\n }\n if (url.includes('.json') && url.includes('assets')) {\n url = req.url;\n }\n const newReq = req.clone({ url, setHeaders: getAdditionalHeaders(req.headers) });\n const injector = inject(Injector);\n return next(newReq).pipe(\n mergeMap(ev => {\n if (ev instanceof HttpResponseBase) {\n return handleData(injector, ev, newReq, next);\n }\n return of(ev);\n }),\n catchError((err: HttpErrorResponse) => handleData(injector, err, newReq, next))\n );\n};\n","import { HttpClient } from '@angular/common/http';\nimport { EnvironmentProviders, inject, Injectable, provideAppInitializer, Provider } from '@angular/core';\nimport { catchError, combineLatest, EMPTY, map, mergeMap, Observable, of } from 'rxjs';\n\nimport { ACLService } from '@yelon/acl';\nimport { ITokenModel, YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport {\n Menu,\n MenuService,\n SettingsService,\n TitleService,\n YUNZAI_I18N_TOKEN,\n YunzaiHttpI18NService\n} from '@yelon/theme';\nimport {\n deepCopy,\n useLocalStorageCurrent,\n useLocalStorageDefaultRoute,\n useLocalStorageHeader,\n useLocalStorageProjectInfo,\n useLocalStorageTenant,\n useLocalStorageUser,\n WINDOW,\n YunzaiConfigService,\n YunzaiMenu,\n YunzaiMenuAttribute\n} from '@yelon/util';\n\nexport interface LoadParam {\n force?: boolean;\n}\n\n// export function provideYunzaiStartup(): Provider[] {\n// return [\n// YunzaiStartupService,\n// {\n// provide: APP_INITIALIZER,\n// useFactory: (startupService: YunzaiStartupService) => () => startupService.load(),\n// deps: [YunzaiStartupService],\n// multi: true\n// }\n// ];\n// }\n\nexport function provideYunzaiStartup(): Array<Provider | EnvironmentProviders> {\n const appInitializer = (): Observable<void> => {\n const startupService = inject(YunzaiStartupService);\n return startupService.load();\n };\n\n return [YunzaiStartupService, provideAppInitializer(appInitializer)];\n}\n\n@Injectable()\nexport class YunzaiStartupService {\n private readonly config = mergeBisConfig(inject(YunzaiConfigService));\n private readonly menuService = inject(MenuService);\n private readonly aclService = inject(ACLService);\n private readonly titleService = inject(TitleService);\n private readonly tokenService = inject(YA_SERVICE_TOKEN);\n private readonly httpClient = inject(HttpClient);\n private readonly settingService = inject(SettingsService);\n private readonly i18n = inject<YunzaiHttpI18NService>(YUNZAI_I18N_TOKEN);\n private readonly win = inject(WINDOW);\n private readonly configService = inject(YunzaiConfigService);\n\n load(param?: LoadParam): Observable<void> {\n let defaultLang: string = this.settingService.layout.lang || this.i18n.defaultLang || 'zh-CN';\n const [setTenant] = useLocalStorageTenant();\n const [setUser, getUser] = useLocalStorageUser();\n const [setHeader] = useLocalStorageHeader();\n const [setProject] = useLocalStorageProjectInfo();\n const [setDefaultRoute] = useLocalStorageDefaultRoute();\n const [setCurrent] = useLocalStorageCurrent();\n\n return this.token(param).pipe(\n mergeMap((token: any) => {\n if (token === false) {\n return this.i18n.loadLocaleData(defaultLang).pipe(\n map((langData: any) => {\n this.i18n.use(defaultLang, langData);\n this.settingService.setLayout('lang', defaultLang);\n }),\n mergeMap(() => EMPTY)\n );\n }\n this.configService.set('auth', {\n token_send_key: 'Authorization',\n token_send_template: `${token.token_type} \\${access_token}`,\n token_send_place: 'header'\n });\n this.tokenService.set(token);\n return of(void 0);\n }),\n mergeMap(() => {\n return combineLatest([\n this.httpClient.get(`/auth/user`),\n this.httpClient.get(`/auth/allheader/v2`),\n this.httpClient.get(`/app-manager/project/info`)\n ]).pipe(\n map(([user, header, project]: any) => {\n setUser(user.principal);\n setTenant(user.tenantId);\n setHeader(header.data);\n setProject(project.data);\n return void 0;\n })\n );\n }),\n mergeMap(() => {\n return this.i18n.loadLangData(defaultLang).pipe(\n map((langData: any) => {\n this.i18n.use(defaultLang, langData);\n return void 0;\n })\n );\n }),\n mergeMap(() => {\n const yunzaiUser = getUser()!;\n const yunzaiMenus: YunzaiMenu[] = deepCopy(yunzaiUser.menu).filter(\n m => m.systemCode && m.systemCode === this.config.systemCode\n );\n const currentMenu = yunzaiMenus.pop();\n if (currentMenu) {\n this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });\n this.settingService.setUser({\n name: yunzaiUser.realname,\n avatar:\n this.config.baseUrl && yunzaiUser.avatarId\n ? `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}`\n : '',\n email: yunzaiUser.email\n });\n this.titleService.default = currentMenu && currentMenu.text ? currentMenu.text : 'default application name';\n this.titleService.setTitle(currentMenu && currentMenu.text ? currentMenu.text : 'no title');\n const abilities: string[] = [];\n generateAbility([currentMenu], abilities, '');\n this.aclService.attachRole(\n yunzaiUser?.roles\n .map((role: any) => {\n return role.roleValue;\n })\n .filter((a: any) => !!a) || []\n );\n this.aclService.attachAbility(abilities);\n this.menuService.add([currentMenu as Menu]);\n setCurrent({\n name: currentMenu.text,\n intro: currentMenu.intro || '',\n icon: currentMenu.appIconUrl || './assets/tmp/img/avatar.jpg'\n });\n const attributes = currentMenu.attribute;\n if (attributes) {\n const attr: YunzaiMenuAttribute = JSON.parse(attributes);\n if (attr && attr.defaultRoute) {\n setDefaultRoute(attr.defaultRoute);\n } else {\n setDefaultRoute('/displayIndex');\n }\n } else {\n setDefaultRoute('/displayIndex');\n }\n }\n return of(void 0);\n }),\n catchError((error: any) => {\n console.error('Error occurred:', error);\n return of(void 0);\n })\n );\n }\n\n token(param?: LoadParam): Observable<ITokenModel | boolean> {\n const auto = this.configService.get('auth')?.auto;\n const force = param?.force || undefined;\n if (this.config.loginForm) {\n if (this.tokenService.get()?.access_token || force || auto) {\n return this.httpClient.post(`/auth/oauth/token?_allow_anonymous=true`, this.config.loginForm).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n return of(false);\n } else {\n const uri = encodeURIComponent(this.win.location.href);\n return this.httpClient\n .get(`/cas-proxy/app/validate_full?callback=${uri}&_allow_anonymous=true×tamp=${new Date().getTime()}`)\n .pipe(\n map((response: any) => {\n switch (response.errcode) {\n case 2000:\n return response.data;\n case 2001:\n if (!force && !auto) {\n // 自动认证为false情况下会出现: 后台已经下线,但是用户进入网页存储了上次的cookie,Token,所以网页还是登录状态\n // 在这里如果2001时自动清理客户端过时的token以保证页面显示登录状态正常\n localStorage.clear();\n this.tokenService.clear();\n return false;\n }\n this.win.location.href = response.msg;\n throw Error(\"Cookie Error: Can't find Cas Cookie,So jump to login!\");\n default:\n if (response.data) {\n console.error(response.data);\n throw Error(response.data);\n } else if (response.msg) {\n console.error(response.msg);\n throw Error(response.msg);\n } else {\n console.error('cas unknown error');\n throw Error('Unknown Error: Cas auth exception!');\n }\n }\n })\n );\n }\n }\n}\n\nexport function mapYzSideToYelonMenu(menus: YunzaiMenu[]): void {\n menus.forEach((menu: any) => {\n if (menu.children && menu.hideChildren) {\n menu.children.forEach((c: any) => (c.hide = true));\n }\n menu.badgeDot = menu.badge_dot || null;\n menu.badgeStatus = menu.badge_status || null;\n menu.shortcutRoot = menu.shortcut_root || null;\n menu.reuse = true;\n if (menu.children) {\n mapYzSideToYelonMenu(menu.children);\n }\n });\n}\n\nexport function generateAbility(menus: YunzaiMenu[], abilities: string[], prefix: string): void {\n menus.forEach(menu => {\n if (menu.link) {\n prefix += menu.link;\n } else {\n prefix += '';\n }\n if (menu.menuAuths) {\n menu.menuAuths.forEach((a: string) => {\n abilities.push(`${prefix}:${a}`);\n abilities.push(a);\n });\n }\n\n if (menu.children) {\n generateAbility(menu.children, abilities, prefix);\n }\n });\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn } from '@angular/router';\n\nimport { ITokenService, YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';\nimport { Menu } from '@yelon/theme';\nimport {\n deepCopy,\n PathToRegexpService,\n useLocalStorageUser,\n WINDOW,\n YunzaiBusinessConfig,\n YunzaiConfigService,\n YunzaiUser\n} from '@yelon/util';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YunzaiAnalysisAddonGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: any[] = [];\n private links: Array<{ title: string; link: string }> = [];\n private value: any = {};\n\n private configService: YunzaiConfigService = inject(YunzaiConfigService);\n private pathToRegexp: PathToRegexpService = inject(PathToRegexpService);\n private win: any = inject(WINDOW);\n private tokenService: ITokenService = inject(YA_SERVICE_TOKEN);\n\n constructor() {\n this.bis = mergeBisConfig(this.configService);\n const [, getUser] = useLocalStorageUser();\n const user: YunzaiUser = getUser()!;\n this.menus = deepCopy((user.menu as any) || []).filter(\n (m: Menu) => m.systemCode && m.systemCode === this.bis.systemCode\n ) as Menu[];\n if (user) {\n this.value = {\n systemCode: this.bis.systemCode,\n userid: user.id,\n realname: user.realname,\n usertype: user.userType,\n usercode: user.userCode,\n username: user.username,\n account: user.username,\n deptid: user.deptId,\n deptname: user.deptName,\n token: this.tokenService.get()?.access_token\n };\n }\n if (this.menus && this.menus.length > 0) {\n this.value['system'] = (this.menus[0] as Menu).text;\n }\n this.getAllLinks(this.menus, this.links);\n }\n\n process(url: string): boolean {\n let flag = false;\n this.links.forEach(link => {\n if (link.link === url.split('?')[0]) {\n flag = true;\n this.value['routename'] = link.title;\n this.value['routeurl'] = link.link;\n if (this.win['yunzai']) {\n this.win['yunzai'].setExtra(this.value);\n }\n return;\n }\n const regexp: RegExp = this.pathToRegexp.stringToRegexp(link, null, null);\n if (regexp.test(url.split('?')[0])) {\n flag = true;\n this.value['routename'] = link.title;\n this.value['routeurl'] = link.link;\n if (this.win['yunzai']) {\n this.win['yunzai'].setExtra(this.value);\n }\n return;\n }\n });\n if (!flag) {\n this.value['routename'] = url;\n this.value['routeurl'] = url;\n if (this.win['yunzai']) {\n this.win['yunzai'].setExtra(this.value);\n }\n }\n return true;\n }\n\n getAllLinks(menu: Menu[], links: Array<{ title: string; link: string }>): void {\n menu.forEach((sider: Menu) => {\n if (sider.link) {\n links.push({ title: sider.text ? sider.text : sider.link, link: sider.link });\n }\n if (sider.children && sider.children.length > 0) {\n this.getAllLinks(sider.children, links);\n }\n });\n }\n}\n\nexport const analysisAddonCanActive: CanActivateFn = (_, state) =>\n inject(YunzaiAnalysisAddonGuardService).process(state.url);\nexport const analysisAddonCanActiveChild: CanActivateChildFn = (_, state) =>\n inject(YunzaiAnalysisAddonGuardService).process(state.url);\n","import { Injectable, inject } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, Router } from '@angular/router';\n\nimport { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';\nimport { Menu } from '@yelon/theme';\nimport {\n deepCopy,\n log,\n YunzaiBusinessConfig,\n YunzaiConfigService,\n PathToRegexpService,\n useLocalStorageUser,\n YunzaiUser\n} from '@yelon/util';\n\n@Injectable({ providedIn: 'root' })\nexport class ActGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: any[] = [];\n private links: string[] = [];\n\n private configService: YunzaiConfigService = inject(YunzaiConfigService);\n private pathToRegexp: PathToRegexpService = inject(PathToRegexpService);\n private router: Router = inject(Router);\n\n constructor() {\n log('act: ');\n this.bis = mergeBisConfig(this.configService);\n log('act: config ', this.bis);\n const [, getUser] = useLocalStorageUser();\n const user: YunzaiUser = getUser()!;\n log('act: user ', user);\n this.menus = deepCopy((user.menu as any) || []).filter(\n (m: Menu) => m.systemCode && m.systemCode === this.bis.systemCode\n ) as Menu[];\n log('act: menus ', this.menus);\n this.getAllLinks(this.menus, this.links);\n log('act: links ', this.links);\n }\n\n process(url: string): boolean {\n log('act: can activate ', url);\n if (this.preHandle(url)) {\n return true;\n }\n log('act: can activate child prehandle success');\n let canactivate = false;\n this.links.forEach((link: string) => {\n // path = /xxx\n if (link === url.split('?')[0]) {\n canactivate = true;\n log(`act: link value ${link} equals url value ${url}`);\n return;\n }\n // paht = /xxx/:xx\n const regexp: RegExp = this.pathToRegexp.stringToRegexp(link, null, null);\n log(`act: ${link} test ${url.split('?')[0]}`);\n if (regexp.test(url.split('?')[0])) {\n canactivate = true;\n log(`act: test value ${canactivate}`);\n return;\n }\n });\n if (canactivate) {\n log(`act: test sucess`);\n return true;\n } else {\n log(`act: test error`);\n this.router.navigate(['displayIndex']);\n return false;\n }\n }\n\n preHandle(url: string): boolean {\n return (\n url.includes('error') ||\n url.includes('exception') ||\n url.includes('displayIndex') ||\n url === '' ||\n url === null ||\n url === '/' ||\n url.includes('iframePage')\n );\n }\n\n getAllLinks(menu: Menu[], links: string[]): void {\n menu.forEach((sider: Menu) => {\n if (sider.link) {\n links.push(sider.link);\n }\n if (sider.children && sider.children.length > 0) {\n this.getAllLinks(sider.children, links);\n }\n });\n }\n}\n\nexport const actGuardCanActive: CanActivateFn = (_, state) => inject(ActGuardService).process(state.url);\nexport const actGuardCanActiveChild: CanActivateChildFn = (_, state) => inject(ActGuardService).process(state.url);\n","import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { I18nPipe } from '@yelon/theme';\nimport {\n YunzaiProfile,\n useLocalStorageProjectInfo,\n useLocalStorageUser,\n WINDOW,\n YunzaiConfigService\n} from '@yelon/util';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { YunzaiStartupService } from '../startup.service';\n\n@Component({\n selector: 'yunzai-layout-website-01',\n template: `\n <div class=\"yz-layout-website-01\">\n <div class=\"yz-layout-website-01-nav__user\">\n @if (isLogin) {\n <a\n class=\"yz-layout-website-01-link\"\n nz-dropdown\n [nzDropdownMenu]=\"menu\"\n [nzOverlayStyle]=\"{ width: '120px' }\"\n >\n <span nz-icon nzType=\"user\" nzTheme=\"outline\"></span>{{ _username }}<span nz-icon nzType=\"down\"></span>\n </a>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu [nzSelectable]=\"true\">\n @for (link of _links; track $index) {\n <li nz-menu-item class=\"yz-layout-website-01-link__li\" (click)=\"to(link.url)\">{{ link.name }}</li>\n }\n <li nz-menu-item [nzDanger]=\"true\" class=\"yz-layout-website-01-link__li\" (click)=\"logout()\"\n >{{ 'menu.account.logout' | i18n }}\n </li>\n </ul>\n </nz-dropdown-menu>\n } @else {\n <a class=\"yz-layout-website-01-link\" (click)=\"login()\">\n <span nz-icon nzType=\"login\" nzTheme=\"outline\"></span>{{ 'app.login.login' | i18n }}</a\n >\n }\n </div>\n\n <header class=\"yz-layout-website-01-nav\">\n @if (_logoSrc) {\n <img [alt]=\"_logoAlt\" class=\"yz-layout-website-01-nav__logo\" [src]=\"_logoSrc\" />\n } @else {\n <div class=\"yz-layout-website-01-nav__logo__full\">LOGO</div>\n }\n\n <div class=\"yz-layout-website-01-nav__content\">\n <ng-template *ngTemplateOutlet=\"_contentTpl\" />\n </div>\n <div class=\"yz-layout-website-01-nav__slogan\">\n {{ _slogan }}\n </div>\n </header>\n <main class=\"yz-layout-website-01-container\">\n <router-outlet />\n </main>\n </div>\n `,\n\n imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]\n})\nexport class YunzaiLayoutWebsite01Component {\n @Input() logoSrc?: string | any;\n @Input() logoAlt?: string = 'logo';\n @Input() slogan?: string = '';\n @Input() contentTpl?: TemplateRef<void> | any;\n\n private readonly tokenService = inject(YA_SERVICE_TOKEN);\n private readonly configService = inject(YunzaiConfigService);\n private readonly startupSrv = inject(YunzaiStartupService);\n private readonly win = inject(WINDOW);\n\n get _logoSrc(): string | any {\n return this.logoSrc;\n }\n\n get _logoAlt(): string {\n return this.logoAlt || 'logo';\n }\n\n get _slogan(): string {\n return this.slogan || '';\n }\n\n get _contentTpl(): TemplateRef<void> | any {\n return this.contentTpl;\n }\n\n get _username(): string {\n const [, getUser] = useLocalStorageUser();\n return getUser()?.realname || '';\n }\n\n get isLogin(): boolean {\n const [, getUser] = useLocalStorageUser();\n return !!this.tokenService.get()?.access_token && !!getUser();\n }\n\n get _links(): YunzaiProfile[] {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n return getProjectInfo()?.profileList || [];\n }\n\n login(): void {\n this.startupSrv.load({ force: true }).subscribe(() => {});\n }\n\n logout(): void {\n const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';\n this.win.location.href = `${baseUrl}/cas-proxy/app/logout?callback=${encodeURIComponent(this.win.location.href)}`;\n }\n\n to(url?: string): void {\n if (url) this.win.location.href = url;\n }\n}\n","import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { I18nPipe } from '@yelon/theme';\nimport {\n useLocalStorageProjectInfo,\n useLocalStorageUser,\n WINDOW,\n YunzaiConfigService,\n YunzaiProfile\n} from '@yelon/util';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { YunzaiStartupService } from '../startup.service';\n\n@Component({\n selector: 'yunzai-layout-website-02',\n template: `\n <div class=\"yz-layout-website-02\">\n <header class=\"yz-layout-website-02-nav\">\n <div class=\"yz-layout-website-02-inner-content\">\n @if (_logoSrc) {\n <img [alt]=\"_logoAlt\" class=\"yz-layout-website-02-nav__logo\" [src]=\"_logoSrc\" />\n } @else {\n <div class=\"yz-layout-website-02-nav__logo__full\">LOGO</div>\n }\n\n <div class=\"yz-layout-website-02-nav__content\">\n <ng-template *ngTemplateOutlet=\"_contentTpl\" />\n </div>\n\n <div class=\"yz-layout-website-02-nav-right\">\n <div class=\"yz-layout-website-02-nav__slogan\">\n <ng-template *ngTemplateOutlet=\"_slogan\" />\n </div>\n @if (isLogin) {\n <a\n class=\"yz-layout-website-02-link\"\n nz-dropdown\n [nzDropdownMenu]=\"menu\"\n [nzDisabled]=\"!_userMenuShow\"\n [nzPlacement]=\"'bottomRight'\"\n >\n <nz-avatar nzIcon=\"user\" [nzSrc]=\"_avatar\" /><b>欢迎访问:{{ _username }}</b>\n <span nz-icon nzType=\"down\" *ngIf=\"_userMenuShow\"></span>\n </a>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n @for (link of _links; track $index) {\n <li nz-menu-item class=\"yz-layout-website-02-link__li\" (click)=\"to(link.url)\">{{ link.name }}</li>\n }\n <li nz-menu-item nzDanger class=\"yz-layout-website-02-link__li\" (click)=\"logout()\">{{\n 'menu.account.logout' | i18n\n }}</li>\n </ul>\n </nz-dropdown-menu>\n } @else {\n <a class=\"yz-layout-website-02-link\" (click)=\"login()\">\n <span nz-icon nzType=\"login\" nzTheme=\"outline\"></span>{{ 'app.login.login' | i18n }}</a\n >\n }\n </div>\n </div>\n </header>\n <main class=\"yz-layout-website-02-container\">\n <router-outlet />\n </main>\n </div>\n `,\n\n imports: [\n RouterOutlet,\n I18nPipe,\n NzI18nModule,\n NgFor,\n NgIf,\n NzDropDownModule,\n NzIconModule,\n NgTemplateOutlet,\n NzAvatarModule\n ]\n})\nexport class YunzaiLayoutWebsite02Component {\n @Input() logoSrc?: string | any;\n @Input() logoAlt?: string = 'logo';\n @Input() userMenuShow?: boolean = false;\n @Input() slogan?: TemplateRef<void> | any;\n @Input() contentTpl?: TemplateRef<void> | any;\n\n private readonly tokenService = inject(YA_SERVICE_TOKEN);\n private readonly configService = inject(YunzaiConfigService);\n private readonly startupSrv = inject(YunzaiStartupService);\n private readonly win = inject(WINDOW);\n\n get _logoSrc(): string | any {\n return this.logoSrc;\n }\n\n get _logoAlt(): string {\n return this.logoAlt || 'logo';\n }\n\n get _userMenuShow(): boolean {\n return this.userMenuShow || false;\n }\n\n get _slogan(): TemplateRef<void> | any {\n return this.slogan;\n }\n\n get _contentTpl(): TemplateRef<void> | any {\n return this.contentTpl;\n }\n\n get _username(): string {\n const [, getUser] = useLocalStorageUser();\n return getUser()?.realname || '';\n }\n\n get _avatar(): string | undefined {\n const [, getUser] = useLocalStorageUser();\n const baseUrl: string = this.configService.get('bis')?.baseUrl || '/backstage';\n const avatarUrl = getUser()?.avatarId ? `${baseUrl}/filecenter/file/${getUser()?.avatarId}` : undefined;\n return avatarUrl;\n }\n\n get isLogin(): boolean {\n const [, getUser] = useLocalStorageUser();\n return !!this.tokenService.get()?.access_token && !!getUser();\n }\n\n get _links(): YunzaiProfile[] {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n return getProjectInfo()?.profileList || [];\n }\n\n login(): void {\n this.startupSrv.load({ force: true }).subscribe(() => {});\n }\n\n logout(): void {\n const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';\n this.win.location.href = `${baseUrl}/cas-proxy/app/logout?callback=${encodeURIComponent(this.win.location.href)}`;\n }\n\n to(url?: string): void {\n if (url) this.win.location.href = url;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bis.mjs","sources":["../../../../packages/bis/src/bis.module.ts","../../../../packages/bis/src/provide.ts","../../../../packages/bis/src/helper.ts","../../../../packages/bis/src/refresh-token.ts","../../../../packages/bis/src/yunzai-default.interceptor.ts","../../../../packages/bis/src/startup.service.ts","../../../../packages/bis/src/yunzai-analysis-addon.guard.ts","../../../../packages/bis/src/yunzai-act.guard.ts","../../../../packages/bis/src/website/layout-website-01.component.ts","../../../../packages/bis/src/website/layout-website-02.component.ts","../../../../packages/bis/bis.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { YunzaiLayoutModule } from '@yelon/bis/layout';\nimport { YunzaiWidgetsModule } from '@yelon/bis/yunzai-widgets';\n@NgModule({\n imports: [YunzaiLayoutModule, YunzaiWidgetsModule],\n exports: [YunzaiLayoutModule, YunzaiWidgetsModule]\n})\nexport class BisModule {}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\n\nimport { BisModule } from './bis.module';\n\nexport function provideYunzaiBis(): EnvironmentProviders {\n const provides: EnvironmentProviders[] = [];\n provides.push(importProvidersFrom(BisModule));\n return makeEnvironmentProviders(provides);\n}\n","import { HttpHeaders, HttpResponseBase } from '@angular/common/http';\nimport { inject, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { YUNZAI_I18N_TOKEN } from '@yelon/theme';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\n\nexport const CODEMESSAGE: Record<number, string> = {\n 200: '服务器成功返回请求的数据。',\n 201: '新建或修改数据成功。',\n 202: '一个请求已经进入后台排队(异步任务)。',\n 204: '删除数据成功。',\n 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',\n 401: '用户没有权限(令牌、用户名、密码错误)。',\n 403: '用户得到授权,但是访问是被禁止的。',\n 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',\n 406: '请求的格式不可得。',\n 410: '请求的资源被永久删除,且不会再得到的。',\n 422: '当创建一个对象时,发生一个验证错误。',\n 500: '服务器发生错误,请检查服务器。',\n 502: '网关错误。',\n 503: '服务不可用,服务器暂时过载或维护。',\n 504: '网关超时。'\n};\n\nexport function getAdditionalHeaders(headers?: HttpHeaders): Record<string, string> {\n const res: Record<string, string> = {};\n const lang = inject(YUNZAI_I18N_TOKEN).currentLang;\n if (!headers?.has('Accept-Language') && lang) {\n res['Accept-Language'] = lang;\n }\n\n return res;\n}\n\nexport function checkStatus(injector: Injector, ev: HttpResponseBase): void {\n if ((ev.status >= 200 && ev.status < 300) || ev.status === 401) {\n return;\n }\n const errortext = CODEMESSAGE[ev.status] || ev.statusText;\n injector.get(NzNotificationService).error(`请求错误 ${ev.status}: ${ev.url}`, errortext);\n}\n\nexport interface ReThrowHttpError {\n body: any;\n _throw: true;\n}\n\nexport function goTo(injector: Injector, url: string): void {\n setTimeout(() => injector.get(Router).navigateByUrl(url));\n}\n\nexport function toLogin(injector: Injector): void {\n injector.get(NzNotificationService).error(`未登录或登录已过期,请重新登录。`, ``);\n goTo(injector, injector.get(YA_SERVICE_TOKEN).login_url!);\n}\n","import { HttpClient, HttpHandlerFn, HttpRequest, HttpResponseBase } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, Provider } from '@angular/core';\nimport { BehaviorSubject, catchError, filter, Observable, switchMap, take, throwError } from 'rxjs';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { log } from '@yelon/util';\n\nimport { toLogin } from './helper';\n\nlet refreshToking = false;\nlet refreshToken$: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\nexport const tryRefreshToken = (injector: Injector, ev: HttpResponseBase, req: HttpRequest<any>, next: HttpHandlerFn): Observable<any> => {\n // 连刷新Token的请求都错了,那就是真错了\n if (['/auth/oauth/getOrCreateToken/webapp'].some(url => req.url.includes(url))) {\n toLogin(injector);\n return throwError(() => ev);\n }\n // 2、如果 `refreshToking` 为 `true` 表示已经在请求刷新 Token 中,后续所有请求转入等待状态,直至结果返回后再重新发起请求\n if (refreshToking) {\n return refreshToken$.pipe(\n filter(v => !!v),\n take(1),\n switchMap(() => next(reAttachToken(injector, req)))\n );\n }\n // 3、尝试调用刷新 Token\n refreshToking = true;\n refreshToken$.next(null);\n\n return refreshTokenRequest(injector).pipe(\n switchMap(res => {\n // 通知后续请求继续执行\n refreshToking = false;\n refreshToken$.next(res);\n // 重新保存新 token\n injector.get(YA_SERVICE_TOKEN).set(res);\n // 重新发起请求\n return next(reAttachToken(injector, req));\n }),\n catchError(err => {\n refreshToking = false;\n toLogin(injector);\n return throwError(() => err);\n })\n );\n};\n\nfunction reAttachToken(injector: Injector, req: HttpRequest<any>): HttpRequest<any> {\n const token = injector.get(YA_SERVICE_TOKEN).get()?.access_token;\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n}\n\nfunction refreshTokenRequest(injector: Injector): Observable<any> {\n const model = injector.get(YA_SERVICE_TOKEN).get();\n const form = new FormData();\n if (model?.refresh_token) {\n form.set('refresh_token', model.refresh_token);\n }\n form.set('grant_type', 'refresh_token');\n form.set('scope', 'webapp');\n return injector.get(HttpClient).post(`/auth/oauth/getOrCreateToken/webapp`, form);\n}\n\nfunction buildAuthRefresh(injector: Injector): void {\n const tokenSrv = injector.get(YA_SERVICE_TOKEN);\n tokenSrv.refresh\n .pipe(\n filter(() => !refreshToking),\n switchMap(res => {\n log(res);\n refreshToking = true;\n return refreshTokenRequest(injector);\n })\n )\n .subscribe({\n next: res => {\n res.expired = +new Date() + 1000 * 60 * 5;\n refreshToking = false;\n tokenSrv.set(res);\n },\n error: () => toLogin(injector)\n });\n}\n\nexport function provideYunzaiBindAuthRefresh(): Provider[] {\n return [\n {\n provide: APP_INITIALIZER,\n useFactory: (injector: Injector) => () => buildAuthRefresh(injector),\n deps: [Injector],\n multi: true\n }\n ];\n}\n","import {\n HttpErrorResponse,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n HttpResponseBase\n} from '@angular/common/http';\nimport { Injector, inject } from '@angular/core';\nimport { Observable, of, throwError, mergeMap, catchError } from 'rxjs';\n\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport { IGNORE_BASE_URL } from '@yelon/theme';\nimport { YUNZAI_CONFIG, YunzaiConfigService } from '@yelon/util';\n\nimport { checkStatus, getAdditionalHeaders, goTo, ReThrowHttpError, toLogin } from './helper';\nimport { tryRefreshToken } from './refresh-token';\n\nfunction handleData(\n injector: Injector,\n ev: HttpResponseBase,\n req: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<any> {\n checkStatus(injector, ev);\n const config = injector.get(YUNZAI_CONFIG).bis!;\n switch (ev.status) {\n case 200:\n return of(ev);\n case 401:\n if (config.refreshTokenEnabled && config.refreshTokenType === 're-request') {\n const unAuthorizationReq = req.clone();\n unAuthorizationReq.headers.delete('Authorization');\n return tryRefreshToken(injector, ev, unAuthorizationReq, next);\n }\n toLogin(injector);\n break;\n case 403:\n case 404:\n case 500:\n goTo(injector, `/exception/${ev.status}?url=${req.urlWithParams}`);\n break;\n default:\n if (ev instanceof HttpErrorResponse) {\n console.warn(\n '未可知错误,大部分是由于后端不支持跨域CORS或无效配置引起,请参考 https://ng.yunzainfo.com/docs/server 解决跨域问题',\n ev\n );\n }\n break;\n }\n if (ev instanceof HttpErrorResponse) {\n return throwError(() => ev);\n } else if ((ev as unknown as ReThrowHttpError)._throw) {\n return throwError(() => (ev as unknown as ReThrowHttpError).body);\n } else {\n return of(ev);\n }\n}\n\nexport const yunzaiDefaultInterceptor: HttpInterceptorFn = (req, next) => {\n const config = mergeBisConfig(inject(YunzaiConfigService));\n const { baseUrl } = config;\n let url = req.url;\n if (!req.context.get(IGNORE_BASE_URL) && !url.startsWith('https://') && !url.startsWith('http://')) {\n url = baseUrl + (baseUrl!.endsWith('/') && url.startsWith('/') ? url.substring(1) : url);\n }\n if (url.includes('.json') && url.includes('assets')) {\n url = req.url;\n }\n const newReq = req.clone({ url, setHeaders: getAdditionalHeaders(req.headers) });\n const injector = inject(Injector);\n return next(newReq).pipe(\n mergeMap(ev => {\n if (ev instanceof HttpResponseBase) {\n return handleData(injector, ev, newReq, next);\n }\n return of(ev);\n }),\n catchError((err: HttpErrorResponse) => handleData(injector, err, newReq, next))\n );\n};\n","import { HttpClient } from '@angular/common/http';\nimport { EnvironmentProviders, inject, Injectable, provideAppInitializer, Provider } from '@angular/core';\nimport { catchError, combineLatest, EMPTY, map, mergeMap, Observable, of } from 'rxjs';\n\nimport { ACLService } from '@yelon/acl';\nimport { ITokenModel, YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport {\n Menu,\n MenuService,\n SettingsService,\n TitleService,\n YUNZAI_I18N_TOKEN,\n YunzaiHttpI18NService\n} from '@yelon/theme';\nimport {\n deepCopy,\n useLocalStorageCurrent,\n useLocalStorageDefaultRoute,\n useLocalStorageHeader,\n useLocalStorageProjectInfo,\n useLocalStorageTenant,\n useLocalStorageUser,\n WINDOW,\n YunzaiConfigService,\n YunzaiMenu,\n YunzaiMenuAttribute\n} from '@yelon/util';\n\nexport interface LoadParam {\n force?: boolean;\n}\n\n// export function provideYunzaiStartup(): Provider[] {\n// return [\n// YunzaiStartupService,\n// {\n// provide: APP_INITIALIZER,\n// useFactory: (startupService: YunzaiStartupService) => () => startupService.load(),\n// deps: [YunzaiStartupService],\n// multi: true\n// }\n// ];\n// }\n\nexport function provideYunzaiStartup(): Array<Provider | EnvironmentProviders> {\n const appInitializer = (): Observable<void> => {\n const startupService = inject(YunzaiStartupService);\n return startupService.load();\n };\n\n return [YunzaiStartupService, provideAppInitializer(appInitializer)];\n}\n\n@Injectable()\nexport class YunzaiStartupService {\n private readonly config = mergeBisConfig(inject(YunzaiConfigService));\n private readonly menuService = inject(MenuService);\n private readonly aclService = inject(ACLService);\n private readonly titleService = inject(TitleService);\n private readonly tokenService = inject(YA_SERVICE_TOKEN);\n private readonly httpClient = inject(HttpClient);\n private readonly settingService = inject(SettingsService);\n private readonly i18n = inject<YunzaiHttpI18NService>(YUNZAI_I18N_TOKEN);\n private readonly win = inject(WINDOW);\n private readonly configService = inject(YunzaiConfigService);\n\n load(param?: LoadParam): Observable<void> {\n let defaultLang: string = this.settingService.layout.lang || this.i18n.defaultLang || 'zh-CN';\n const [setTenant] = useLocalStorageTenant();\n const [setUser, getUser] = useLocalStorageUser();\n const [setHeader] = useLocalStorageHeader();\n const [setProject] = useLocalStorageProjectInfo();\n const [setDefaultRoute] = useLocalStorageDefaultRoute();\n const [setCurrent] = useLocalStorageCurrent();\n\n return this.token(param).pipe(\n mergeMap((token: any) => {\n if (token === false) {\n return this.i18n.loadLocaleData(defaultLang).pipe(\n map((langData: any) => {\n this.i18n.use(defaultLang, langData);\n this.settingService.setLayout('lang', defaultLang);\n }),\n mergeMap(() => EMPTY)\n );\n }\n this.configService.set('auth', {\n token_send_key: 'Authorization',\n token_send_template: `${token.token_type} \\${access_token}`,\n token_send_place: 'header'\n });\n this.tokenService.set(token);\n return of(void 0);\n }),\n mergeMap(() => {\n return combineLatest([\n this.httpClient.get(`/auth/user`),\n this.httpClient.get(`/auth/allheader/v2`),\n this.httpClient.get(`/app-manager/project/info`)\n ]).pipe(\n map(([user, header, project]: any) => {\n setUser(user.principal);\n setTenant(user.tenantId);\n setHeader(header.data);\n setProject(project.data);\n return void 0;\n })\n );\n }),\n mergeMap(() => {\n return this.i18n.loadLangData(defaultLang).pipe(\n map((langData: any) => {\n this.i18n.use(defaultLang, langData);\n return void 0;\n })\n );\n }),\n mergeMap(() => {\n const yunzaiUser = getUser()!;\n const yunzaiMenus: YunzaiMenu[] = deepCopy(yunzaiUser.menu).filter(\n m => m.systemCode && m.systemCode === this.config.systemCode\n );\n const currentMenu = yunzaiMenus.pop();\n if (currentMenu) {\n this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });\n this.settingService.setUser({\n name: yunzaiUser.realname,\n avatar:\n this.config.baseUrl && yunzaiUser.avatarId\n ? `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}`\n : '',\n email: yunzaiUser.email\n });\n this.titleService.default = currentMenu && currentMenu.text ? currentMenu.text : 'default application name';\n this.titleService.setTitle(currentMenu && currentMenu.text ? currentMenu.text : 'no title');\n const abilities: string[] = [];\n generateAbility([currentMenu], abilities, '');\n this.aclService.attachRole(\n yunzaiUser?.roles\n .map((role: any) => {\n return role.roleValue;\n })\n .filter((a: any) => !!a) || []\n );\n this.aclService.attachAbility(abilities);\n this.menuService.add([currentMenu as Menu]);\n setCurrent({\n name: currentMenu.text,\n intro: currentMenu.intro || '',\n icon: currentMenu.appIconUrl || './assets/tmp/img/avatar.jpg'\n });\n const attributes = currentMenu.attribute;\n if (attributes) {\n const attr: YunzaiMenuAttribute = JSON.parse(attributes);\n if (attr && attr.defaultRoute) {\n setDefaultRoute(attr.defaultRoute);\n } else {\n setDefaultRoute('/displayIndex');\n }\n } else {\n setDefaultRoute('/displayIndex');\n }\n }\n return of(void 0);\n }),\n catchError((error: any) => {\n console.error('Error occurred:', error);\n return of(void 0);\n })\n );\n }\n\n token(param?: LoadParam): Observable<ITokenModel | boolean> {\n const auto = this.configService.get('auth')?.auto;\n const force = param?.force || undefined;\n if (this.config.loginForm) {\n if (this.tokenService.get()?.access_token || force || auto) {\n return this.httpClient.post(`/auth/oauth/token?_allow_anonymous=true`, this.config.loginForm).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n return of(false);\n } else {\n const uri = encodeURIComponent(this.win.location.href);\n return this.httpClient\n .get(`/cas-proxy/app/validate_full?callback=${uri}&_allow_anonymous=true×tamp=${new Date().getTime()}`)\n .pipe(\n map((response: any) => {\n switch (response.errcode) {\n case 2000:\n return response.data;\n case 2001:\n if (!force && !auto) {\n // 自动认证为false情况下会出现: 后台已经下线,但是用户进入网页存储了上次的cookie,Token,所以网页还是登录状态\n // 在这里如果2001时自动清理客户端过时的token以保证页面显示登录状态正常\n localStorage.clear();\n this.tokenService.clear();\n return false;\n }\n this.win.location.href = response.msg;\n throw Error(\"Cookie Error: Can't find Cas Cookie,So jump to login!\");\n default:\n if (response.data) {\n console.error(response.data);\n throw Error(response.data);\n } else if (response.msg) {\n console.error(response.msg);\n throw Error(response.msg);\n } else {\n console.error('cas unknown error');\n throw Error('Unknown Error: Cas auth exception!');\n }\n }\n })\n );\n }\n }\n}\n\nexport function mapYzSideToYelonMenu(menus: YunzaiMenu[]): void {\n menus.forEach((menu: any) => {\n if (menu.children && menu.hideChildren) {\n menu.children.forEach((c: any) => (c.hide = true));\n }\n menu.badgeDot = menu.badge_dot || null;\n menu.badgeStatus = menu.badge_status || null;\n menu.shortcutRoot = menu.shortcut_root || null;\n menu.reuse = true;\n if (menu.children) {\n mapYzSideToYelonMenu(menu.children);\n }\n });\n}\n\nexport function generateAbility(menus: YunzaiMenu[], abilities: string[], prefix: string): void {\n menus.forEach(menu => {\n if (menu.link) {\n prefix += menu.link;\n } else {\n prefix += '';\n }\n if (menu.menuAuths) {\n menu.menuAuths.forEach((a: string) => {\n abilities.push(`${prefix}:${a}`);\n abilities.push(a);\n });\n }\n\n if (menu.children) {\n generateAbility(menu.children, abilities, prefix);\n }\n });\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn } from '@angular/router';\n\nimport { ITokenService, YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';\nimport { Menu } from '@yelon/theme';\nimport {\n deepCopy,\n PathToRegexpService,\n useLocalStorageUser,\n WINDOW,\n YunzaiBusinessConfig,\n YunzaiConfigService,\n YunzaiUser\n} from '@yelon/util';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YunzaiAnalysisAddonGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: any[] = [];\n private links: Array<{ title: string; link: string }> = [];\n private value: any = {};\n\n private configService: YunzaiConfigService = inject(YunzaiConfigService);\n private pathToRegexp: PathToRegexpService = inject(PathToRegexpService);\n private win: any = inject(WINDOW);\n private tokenService: ITokenService = inject(YA_SERVICE_TOKEN);\n\n constructor() {\n this.bis = mergeBisConfig(this.configService);\n const [, getUser] = useLocalStorageUser();\n const user: YunzaiUser = getUser()!;\n this.menus = deepCopy((user.menu as any) || []).filter(\n (m: Menu) => m.systemCode && m.systemCode === this.bis.systemCode\n ) as Menu[];\n if (user) {\n this.value = {\n systemCode: this.bis.systemCode,\n userid: user.id,\n realname: user.realname,\n usertype: user.userType,\n usercode: user.userCode,\n username: user.username,\n account: user.username,\n deptid: user.deptId,\n deptname: user.deptName,\n token: this.tokenService.get()?.access_token\n };\n }\n if (this.menus && this.menus.length > 0) {\n this.value['system'] = (this.menus[0] as Menu).text;\n }\n this.getAllLinks(this.menus, this.links);\n }\n\n process(url: string): boolean {\n let flag = false;\n this.links.forEach(link => {\n if (link.link === url.split('?')[0]) {\n flag = true;\n this.value['routename'] = link.title;\n this.value['routeurl'] = link.link;\n if (this.win['yunzai']) {\n this.win['yunzai'].setExtra(this.value);\n }\n return;\n }\n const regexp: RegExp = this.pathToRegexp.stringToRegexp(link, null, null);\n if (regexp.test(url.split('?')[0])) {\n flag = true;\n this.value['routename'] = link.title;\n this.value['routeurl'] = link.link;\n if (this.win['yunzai']) {\n this.win['yunzai'].setExtra(this.value);\n }\n return;\n }\n });\n if (!flag) {\n this.value['routename'] = url;\n this.value['routeurl'] = url;\n if (this.win['yunzai']) {\n this.win['yunzai'].setExtra(this.value);\n }\n }\n return true;\n }\n\n getAllLinks(menu: Menu[], links: Array<{ title: string; link: string }>): void {\n menu.forEach((sider: Menu) => {\n if (sider.link) {\n links.push({ title: sider.text ? sider.text : sider.link, link: sider.link });\n }\n if (sider.children && sider.children.length > 0) {\n this.getAllLinks(sider.children, links);\n }\n });\n }\n}\n\nexport const analysisAddonCanActive: CanActivateFn = (_, state) =>\n inject(YunzaiAnalysisAddonGuardService).process(state.url);\nexport const analysisAddonCanActiveChild: CanActivateChildFn = (_, state) =>\n inject(YunzaiAnalysisAddonGuardService).process(state.url);\n","import { Injectable, inject } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, Router } from '@angular/router';\n\nimport { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';\nimport { Menu } from '@yelon/theme';\nimport {\n deepCopy,\n log,\n YunzaiBusinessConfig,\n YunzaiConfigService,\n PathToRegexpService,\n useLocalStorageUser,\n YunzaiUser\n} from '@yelon/util';\n\n@Injectable({ providedIn: 'root' })\nexport class ActGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: any[] = [];\n private links: string[] = [];\n\n private configService: YunzaiConfigService = inject(YunzaiConfigService);\n private pathToRegexp: PathToRegexpService = inject(PathToRegexpService);\n private router: Router = inject(Router);\n\n constructor() {\n log('act: ');\n this.bis = mergeBisConfig(this.configService);\n log('act: config ', this.bis);\n const [, getUser] = useLocalStorageUser();\n const user: YunzaiUser = getUser()!;\n log('act: user ', user);\n this.menus = deepCopy((user.menu as any) || []).filter(\n (m: Menu) => m.systemCode && m.systemCode === this.bis.systemCode\n ) as Menu[];\n log('act: menus ', this.menus);\n this.getAllLinks(this.menus, this.links);\n log('act: links ', this.links);\n }\n\n process(url: string): boolean {\n log('act: can activate ', url);\n if (this.preHandle(url)) {\n return true;\n }\n log('act: can activate child prehandle success');\n let canactivate = false;\n this.links.forEach((link: string) => {\n // path = /xxx\n if (link === url.split('?')[0]) {\n canactivate = true;\n log(`act: link value ${link} equals url value ${url}`);\n return;\n }\n // paht = /xxx/:xx\n const regexp: RegExp = this.pathToRegexp.stringToRegexp(link, null, null);\n log(`act: ${link} test ${url.split('?')[0]}`);\n if (regexp.test(url.split('?')[0])) {\n canactivate = true;\n log(`act: test value ${canactivate}`);\n return;\n }\n });\n if (canactivate) {\n log(`act: test sucess`);\n return true;\n } else {\n log(`act: test error`);\n this.router.navigate(['displayIndex']);\n return false;\n }\n }\n\n preHandle(url: string): boolean {\n return (\n url.includes('error') ||\n url.includes('exception') ||\n url.includes('displayIndex') ||\n url === '' ||\n url === null ||\n url === '/' ||\n url.includes('iframePage')\n );\n }\n\n getAllLinks(menu: Menu[], links: string[]): void {\n menu.forEach((sider: Menu) => {\n if (sider.link) {\n links.push(sider.link);\n }\n if (sider.children && sider.children.length > 0) {\n this.getAllLinks(sider.children, links);\n }\n });\n }\n}\n\nexport const actGuardCanActive: CanActivateFn = (_, state) => inject(ActGuardService).process(state.url);\nexport const actGuardCanActiveChild: CanActivateChildFn = (_, state) => inject(ActGuardService).process(state.url);\n","import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { I18nPipe } from '@yelon/theme';\nimport { YunzaiProfile, useLocalStorageProjectInfo, useLocalStorageUser, WINDOW, YunzaiConfigService } from '@yelon/util';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { YunzaiStartupService } from '../startup.service';\n\n@Component({\n selector: 'yunzai-layout-website-01',\n template: `\n <div class=\"yz-layout-website-01\">\n <div class=\"yz-layout-website-01-nav__user\">\n @if (isLogin) {\n <a class=\"yz-layout-website-01-link\" nz-dropdown [nzDropdownMenu]=\"menu\" [nzOverlayStyle]=\"{ width: '120px' }\">\n <span nz-icon nzType=\"user\" nzTheme=\"outline\"></span>{{ _username }}<span nz-icon nzType=\"down\"></span>\n </a>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu [nzSelectable]=\"true\">\n @for (link of _links; track $index) {\n <li nz-menu-item class=\"yz-layout-website-01-link__li\" (click)=\"to(link.url)\">{{ link.name }}</li>\n }\n <li nz-menu-item [nzDanger]=\"true\" class=\"yz-layout-website-01-link__li\" (click)=\"logout()\">{{ 'menu.account.logout' | i18n }} </li>\n </ul>\n </nz-dropdown-menu>\n } @else {\n <a class=\"yz-layout-website-01-link\" (click)=\"login()\"> <span nz-icon nzType=\"login\" nzTheme=\"outline\"></span>{{ 'app.login.login' | i18n }}</a>\n }\n </div>\n\n <header class=\"yz-layout-website-01-nav\">\n @if (_logoSrc) {\n <img [alt]=\"_logoAlt\" class=\"yz-layout-website-01-nav__logo\" [src]=\"_logoSrc\" />\n } @else {\n <div class=\"yz-layout-website-01-nav__logo__full\">LOGO</div>\n }\n\n <div class=\"yz-layout-website-01-nav__content\">\n <ng-template *ngTemplateOutlet=\"_contentTpl\" />\n </div>\n <div class=\"yz-layout-website-01-nav__slogan\">\n {{ _slogan }}\n </div>\n </header>\n <main class=\"yz-layout-website-01-container\">\n <router-outlet />\n </main>\n </div>\n `,\n\n imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]\n})\nexport class YunzaiLayoutWebsite01Component {\n @Input() logoSrc?: string | any;\n @Input() logoAlt?: string = 'logo';\n @Input() slogan?: string = '';\n @Input() contentTpl?: TemplateRef<void> | any;\n\n private readonly tokenService = inject(YA_SERVICE_TOKEN);\n private readonly configService = inject(YunzaiConfigService);\n private readonly startupSrv = inject(YunzaiStartupService);\n private readonly win = inject(WINDOW);\n\n get _logoSrc(): string | any {\n return this.logoSrc;\n }\n\n get _logoAlt(): string {\n return this.logoAlt || 'logo';\n }\n\n get _slogan(): string {\n return this.slogan || '';\n }\n\n get _contentTpl(): TemplateRef<void> | any {\n return this.contentTpl;\n }\n\n get _username(): string {\n const [, getUser] = useLocalStorageUser();\n return getUser()?.realname || '';\n }\n\n get isLogin(): boolean {\n const [, getUser] = useLocalStorageUser();\n return !!this.tokenService.get()?.access_token && !!getUser();\n }\n\n get _links(): YunzaiProfile[] {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n return getProjectInfo()?.profileList || [];\n }\n\n login(): void {\n this.startupSrv.load({ force: true }).subscribe(() => {});\n }\n\n logout(): void {\n const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';\n this.win.location.href = `${baseUrl}/cas-proxy/app/logout?callback=${encodeURIComponent(this.win.location.href)}`;\n }\n\n to(url?: string): void {\n if (url) this.win.location.href = url;\n }\n}\n","import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { I18nPipe } from '@yelon/theme';\nimport { useLocalStorageProjectInfo, useLocalStorageUser, WINDOW, YunzaiConfigService, YunzaiProfile } from '@yelon/util';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { YunzaiStartupService } from '../startup.service';\n\n@Component({\n selector: 'yunzai-layout-website-02',\n template: `\n <div class=\"yz-layout-website-02\">\n <header class=\"yz-layout-website-02-nav\">\n <div class=\"yz-layout-website-02-inner-content\">\n @if (_logoSrc) {\n <img [alt]=\"_logoAlt\" class=\"yz-layout-website-02-nav__logo\" [src]=\"_logoSrc\" />\n } @else {\n <div class=\"yz-layout-website-02-nav__logo__full\">LOGO</div>\n }\n\n <div class=\"yz-layout-website-02-nav__content\">\n <ng-template *ngTemplateOutlet=\"_contentTpl\" />\n </div>\n\n <div class=\"yz-layout-website-02-nav-right\">\n <div class=\"yz-layout-website-02-nav__slogan\">\n <ng-template *ngTemplateOutlet=\"_slogan\" />\n </div>\n @if (isLogin) {\n <a class=\"yz-layout-website-02-link\" nz-dropdown [nzDropdownMenu]=\"menu\" [nzDisabled]=\"!_userMenuShow\" [nzPlacement]=\"'bottomRight'\">\n <nz-avatar nzIcon=\"user\" [nzSrc]=\"_avatar\" /><b>欢迎访问:{{ _username }}</b>\n <span nz-icon nzType=\"down\" *ngIf=\"_userMenuShow\"></span>\n </a>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n @for (link of _links; track $index) {\n <li nz-menu-item class=\"yz-layout-website-02-link__li\" (click)=\"to(link.url)\">{{ link.name }}</li>\n }\n <li nz-menu-item nzDanger class=\"yz-layout-website-02-link__li\" (click)=\"logout()\">{{ 'menu.account.logout' | i18n }}</li>\n </ul>\n </nz-dropdown-menu>\n } @else {\n <a class=\"yz-layout-website-02-link\" (click)=\"login()\"> <span nz-icon nzType=\"login\" nzTheme=\"outline\"></span>{{ 'app.login.login' | i18n }}</a>\n }\n </div>\n </div>\n </header>\n <main class=\"yz-layout-website-02-container\">\n <router-outlet />\n </main>\n </div>\n `,\n\n imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet, NzAvatarModule]\n})\nexport class YunzaiLayoutWebsite02Component {\n @Input() logoSrc?: string | any;\n @Input() logoAlt?: string = 'logo';\n @Input() userMenuShow?: boolean = false;\n @Input() slogan?: TemplateRef<void> | any;\n @Input() contentTpl?: TemplateRef<void> | any;\n\n private readonly tokenService = inject(YA_SERVICE_TOKEN);\n private readonly configService = inject(YunzaiConfigService);\n private readonly startupSrv = inject(YunzaiStartupService);\n private readonly win = inject(WINDOW);\n\n get _logoSrc(): string | any {\n return this.logoSrc;\n }\n\n get _logoAlt(): string {\n return this.logoAlt || 'logo';\n }\n\n get _userMenuShow(): boolean {\n return this.userMenuShow || false;\n }\n\n get _slogan(): TemplateRef<void> | any {\n return this.slogan;\n }\n\n get _contentTpl(): TemplateRef<void> | any {\n return this.contentTpl;\n }\n\n get _username(): string {\n const [, getUser] = useLocalStorageUser();\n return getUser()?.realname || '';\n }\n\n get _avatar(): string | undefined {\n const [, getUser] = useLocalStorageUser();\n const baseUrl: string = this.configService.get('bis')?.baseUrl || '/backstage';\n const avatarUrl = getUser()?.avatarId ? `${baseUrl}/filecenter/file/${getUser()?.avatarId}` : undefined;\n return avatarUrl;\n }\n\n get isLogin(): boolean {\n const [, getUser] = useLocalStorageUser();\n return !!this.tokenService.get()?.access_token && !!getUser();\n }\n\n get _links(): YunzaiProfile[] {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n return getProjectInfo()?.profileList || [];\n }\n\n login(): void {\n this.startupSrv.load({ force: true }).subscribe(() => {});\n }\n\n logout(): void {\n const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';\n this.win.location.href = `${baseUrl}/cas-proxy/app/logout?callback=${encodeURIComponent(this.win.location.href)}`;\n }\n\n to(url?: string): void {\n if (url) this.win.location.href = url;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/layout.mjs
CHANGED
|
@@ -186,14 +186,7 @@ class YunzaiNavApplicationComponent {
|
|
|
186
186
|
<ng-template #search>
|
|
187
187
|
<div nz-row class="yz-application-list-search">
|
|
188
188
|
<nz-input-group [nzPrefix]="prefixTemplate">
|
|
189
|
-
<input
|
|
190
|
-
data-event-id="_nav_search"
|
|
191
|
-
type="text"
|
|
192
|
-
nz-input
|
|
193
|
-
placeholder="{{ 'application.search' | i18n }}"
|
|
194
|
-
[(ngModel)]="state.search"
|
|
195
|
-
(ngModelChange)="onSearch()"
|
|
196
|
-
/>
|
|
189
|
+
<input data-event-id="_nav_search" type="text" nz-input placeholder="{{ 'application.search' | i18n }}" [(ngModel)]="state.search" (ngModelChange)="onSearch()" />
|
|
197
190
|
<ng-template #prefixTemplate>
|
|
198
191
|
<nz-icon nzType="search" nzTheme="outline"></nz-icon>
|
|
199
192
|
</ng-template>
|
|
@@ -208,13 +201,7 @@ class YunzaiNavApplicationComponent {
|
|
|
208
201
|
<li>
|
|
209
202
|
<h5>{{ topic.name | i18n }}</h5>
|
|
210
203
|
@for (nav of topic.children; track nav) {
|
|
211
|
-
<a
|
|
212
|
-
data-event-id="_nav_item"
|
|
213
|
-
[attr.data-name]="nav.name | i18n"
|
|
214
|
-
href="javascript:;"
|
|
215
|
-
(click)="open(nav)"
|
|
216
|
-
>{{ nav.name | i18n }}</a
|
|
217
|
-
>
|
|
204
|
+
<a data-event-id="_nav_item" [attr.data-name]="nav.name | i18n" href="javascript:;" (click)="open(nav)">{{ nav.name | i18n }}</a>
|
|
218
205
|
}
|
|
219
206
|
</li>
|
|
220
207
|
}
|
|
@@ -222,31 +209,19 @@ class YunzaiNavApplicationComponent {
|
|
|
222
209
|
</div>
|
|
223
210
|
</ng-template>
|
|
224
211
|
|
|
225
|
-
<div data-event-id="_nav_app" id="navBtn" class="yunzai-default__nav-item" (click)="diffChange()"
|
|
226
|
-
>{{ 'mode.nav' | i18n }}
|
|
227
|
-
</div>
|
|
212
|
+
<div data-event-id="_nav_app" id="navBtn" class="yunzai-default__nav-item" (click)="diffChange()">{{ 'mode.nav' | i18n }} </div>
|
|
228
213
|
|
|
229
214
|
<div class="yz-application" id="navDropdown" nz-row *ngIf="state.active">
|
|
230
215
|
<div nz-col [nzSpan]="3" class="yz-application-topic">
|
|
231
216
|
<div class="yz-application-topic-list">
|
|
232
217
|
@if (showAllMenu) {
|
|
233
|
-
<div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')"
|
|
234
|
-
>{{ 'mode.nav.all' | i18n }}
|
|
235
|
-
</div>
|
|
218
|
+
<div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')">{{ 'mode.nav.all' | i18n }} </div>
|
|
236
219
|
}
|
|
237
220
|
@if (showMineMenu) {
|
|
238
|
-
<div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')"
|
|
239
|
-
>{{ 'mode.nav.mine' | i18n }}
|
|
240
|
-
</div>
|
|
221
|
+
<div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')">{{ 'mode.nav.mine' | i18n }} </div>
|
|
241
222
|
}
|
|
242
223
|
@for (nav of state.topics; track nav) {
|
|
243
|
-
<div
|
|
244
|
-
data-event-id="_nav_topic"
|
|
245
|
-
[attr.data-name]="nav.name | i18n"
|
|
246
|
-
class="yz-application-text"
|
|
247
|
-
(click)="attachNav('other', nav)"
|
|
248
|
-
>{{ nav.name | i18n }}
|
|
249
|
-
</div>
|
|
224
|
+
<div data-event-id="_nav_topic" [attr.data-name]="nav.name | i18n" class="yz-application-text" (click)="attachNav('other', nav)">{{ nav.name | i18n }} </div>
|
|
250
225
|
}
|
|
251
226
|
</div>
|
|
252
227
|
</div>
|
|
@@ -293,14 +268,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
293
268
|
<ng-template #search>
|
|
294
269
|
<div nz-row class="yz-application-list-search">
|
|
295
270
|
<nz-input-group [nzPrefix]="prefixTemplate">
|
|
296
|
-
<input
|
|
297
|
-
data-event-id="_nav_search"
|
|
298
|
-
type="text"
|
|
299
|
-
nz-input
|
|
300
|
-
placeholder="{{ 'application.search' | i18n }}"
|
|
301
|
-
[(ngModel)]="state.search"
|
|
302
|
-
(ngModelChange)="onSearch()"
|
|
303
|
-
/>
|
|
271
|
+
<input data-event-id="_nav_search" type="text" nz-input placeholder="{{ 'application.search' | i18n }}" [(ngModel)]="state.search" (ngModelChange)="onSearch()" />
|
|
304
272
|
<ng-template #prefixTemplate>
|
|
305
273
|
<nz-icon nzType="search" nzTheme="outline"></nz-icon>
|
|
306
274
|
</ng-template>
|
|
@@ -315,13 +283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
315
283
|
<li>
|
|
316
284
|
<h5>{{ topic.name | i18n }}</h5>
|
|
317
285
|
@for (nav of topic.children; track nav) {
|
|
318
|
-
<a
|
|
319
|
-
data-event-id="_nav_item"
|
|
320
|
-
[attr.data-name]="nav.name | i18n"
|
|
321
|
-
href="javascript:;"
|
|
322
|
-
(click)="open(nav)"
|
|
323
|
-
>{{ nav.name | i18n }}</a
|
|
324
|
-
>
|
|
286
|
+
<a data-event-id="_nav_item" [attr.data-name]="nav.name | i18n" href="javascript:;" (click)="open(nav)">{{ nav.name | i18n }}</a>
|
|
325
287
|
}
|
|
326
288
|
</li>
|
|
327
289
|
}
|
|
@@ -329,31 +291,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
329
291
|
</div>
|
|
330
292
|
</ng-template>
|
|
331
293
|
|
|
332
|
-
<div data-event-id="_nav_app" id="navBtn" class="yunzai-default__nav-item" (click)="diffChange()"
|
|
333
|
-
>{{ 'mode.nav' | i18n }}
|
|
334
|
-
</div>
|
|
294
|
+
<div data-event-id="_nav_app" id="navBtn" class="yunzai-default__nav-item" (click)="diffChange()">{{ 'mode.nav' | i18n }} </div>
|
|
335
295
|
|
|
336
296
|
<div class="yz-application" id="navDropdown" nz-row *ngIf="state.active">
|
|
337
297
|
<div nz-col [nzSpan]="3" class="yz-application-topic">
|
|
338
298
|
<div class="yz-application-topic-list">
|
|
339
299
|
@if (showAllMenu) {
|
|
340
|
-
<div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')"
|
|
341
|
-
>{{ 'mode.nav.all' | i18n }}
|
|
342
|
-
</div>
|
|
300
|
+
<div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')">{{ 'mode.nav.all' | i18n }} </div>
|
|
343
301
|
}
|
|
344
302
|
@if (showMineMenu) {
|
|
345
|
-
<div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')"
|
|
346
|
-
>{{ 'mode.nav.mine' | i18n }}
|
|
347
|
-
</div>
|
|
303
|
+
<div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')">{{ 'mode.nav.mine' | i18n }} </div>
|
|
348
304
|
}
|
|
349
305
|
@for (nav of state.topics; track nav) {
|
|
350
|
-
<div
|
|
351
|
-
data-event-id="_nav_topic"
|
|
352
|
-
[attr.data-name]="nav.name | i18n"
|
|
353
|
-
class="yz-application-text"
|
|
354
|
-
(click)="attachNav('other', nav)"
|
|
355
|
-
>{{ nav.name | i18n }}
|
|
356
|
-
</div>
|
|
306
|
+
<div data-event-id="_nav_topic" [attr.data-name]="nav.name | i18n" class="yz-application-text" (click)="attachNav('other', nav)">{{ nav.name | i18n }} </div>
|
|
357
307
|
}
|
|
358
308
|
</div>
|
|
359
309
|
</div>
|
|
@@ -441,14 +391,7 @@ class YunzaiLayoutNavGroupComponent {
|
|
|
441
391
|
@for (menu of state.topics; track menu) {
|
|
442
392
|
<nz-tab [nzTitle]="groupTitleTpl">
|
|
443
393
|
<ng-template #groupTitleTpl>
|
|
444
|
-
<a
|
|
445
|
-
data-event-id="_nav_topic"
|
|
446
|
-
[attr.data-name]="menu.name | i18n"
|
|
447
|
-
nz-dropdown
|
|
448
|
-
[nzDropdownMenu]="menuTpl"
|
|
449
|
-
[nzTrigger]="'click'"
|
|
450
|
-
[nzOverlayClassName]="'yz-application-dropdown'"
|
|
451
|
-
>
|
|
394
|
+
<a data-event-id="_nav_topic" [attr.data-name]="menu.name | i18n" nz-dropdown [nzDropdownMenu]="menuTpl" [nzTrigger]="'click'" [nzOverlayClassName]="'yz-application-dropdown'">
|
|
452
395
|
@if (menu.icon) {
|
|
453
396
|
<nz-icon [nzType]="menu.icon" nzTheme="outline"></nz-icon>
|
|
454
397
|
}
|
|
@@ -463,12 +406,7 @@ class YunzaiLayoutNavGroupComponent {
|
|
|
463
406
|
@for (item of menu.children; track item) {
|
|
464
407
|
<ng-container>
|
|
465
408
|
@if (item.auth) {
|
|
466
|
-
<li
|
|
467
|
-
data-event-id="_nav_item"
|
|
468
|
-
[attr.data-name]="item.name | i18n"
|
|
469
|
-
nz-menu-item
|
|
470
|
-
(click)="open(item)"
|
|
471
|
-
>
|
|
409
|
+
<li data-event-id="_nav_item" [attr.data-name]="item.name | i18n" nz-menu-item (click)="open(item)">
|
|
472
410
|
@if (item.icon) {
|
|
473
411
|
<nz-icon [nzType]="item.icon" nzTheme="outline"></nz-icon>
|
|
474
412
|
}
|
|
@@ -497,14 +435,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
497
435
|
@for (menu of state.topics; track menu) {
|
|
498
436
|
<nz-tab [nzTitle]="groupTitleTpl">
|
|
499
437
|
<ng-template #groupTitleTpl>
|
|
500
|
-
<a
|
|
501
|
-
data-event-id="_nav_topic"
|
|
502
|
-
[attr.data-name]="menu.name | i18n"
|
|
503
|
-
nz-dropdown
|
|
504
|
-
[nzDropdownMenu]="menuTpl"
|
|
505
|
-
[nzTrigger]="'click'"
|
|
506
|
-
[nzOverlayClassName]="'yz-application-dropdown'"
|
|
507
|
-
>
|
|
438
|
+
<a data-event-id="_nav_topic" [attr.data-name]="menu.name | i18n" nz-dropdown [nzDropdownMenu]="menuTpl" [nzTrigger]="'click'" [nzOverlayClassName]="'yz-application-dropdown'">
|
|
508
439
|
@if (menu.icon) {
|
|
509
440
|
<nz-icon [nzType]="menu.icon" nzTheme="outline"></nz-icon>
|
|
510
441
|
}
|
|
@@ -519,12 +450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
519
450
|
@for (item of menu.children; track item) {
|
|
520
451
|
<ng-container>
|
|
521
452
|
@if (item.auth) {
|
|
522
|
-
<li
|
|
523
|
-
data-event-id="_nav_item"
|
|
524
|
-
[attr.data-name]="item.name | i18n"
|
|
525
|
-
nz-menu-item
|
|
526
|
-
(click)="open(item)"
|
|
527
|
-
>
|
|
453
|
+
<li data-event-id="_nav_item" [attr.data-name]="item.name | i18n" nz-menu-item (click)="open(item)">
|
|
528
454
|
@if (item.icon) {
|
|
529
455
|
<nz-icon [nzType]="item.icon" nzTheme="outline"></nz-icon>
|
|
530
456
|
}
|
|
@@ -741,14 +667,7 @@ class YunzaiLayoutBasicComponent {
|
|
|
741
667
|
<theme-btn />
|
|
742
668
|
</layout-default-header-item>
|
|
743
669
|
<layout-default-header-item direction="right" hidden="mobile">
|
|
744
|
-
<div
|
|
745
|
-
data-event-id="_nav_settings"
|
|
746
|
-
layout-default-header-item-trigger
|
|
747
|
-
nz-dropdown
|
|
748
|
-
[nzDropdownMenu]="settingsMenu"
|
|
749
|
-
nzTrigger="click"
|
|
750
|
-
nzPlacement="bottomRight"
|
|
751
|
-
>
|
|
670
|
+
<div data-event-id="_nav_settings" layout-default-header-item-trigger nz-dropdown [nzDropdownMenu]="settingsMenu" nzTrigger="click" nzPlacement="bottomRight">
|
|
752
671
|
<nz-icon nzType="setting" nzTheme="outline"></nz-icon>
|
|
753
672
|
</div>
|
|
754
673
|
<nz-dropdown-menu #settingsMenu="nzDropdownMenu">
|
|
@@ -759,12 +678,7 @@ class YunzaiLayoutBasicComponent {
|
|
|
759
678
|
|
|
760
679
|
@if (headerStyleList.length > 1) {
|
|
761
680
|
@for (i of headerStyleList; track $index) {
|
|
762
|
-
<div
|
|
763
|
-
data-event-id="_nav_mode"
|
|
764
|
-
nz-menu-item
|
|
765
|
-
[attr.data-type]="i.value"
|
|
766
|
-
(click)="onNavTypeChange(i.value)"
|
|
767
|
-
>
|
|
681
|
+
<div data-event-id="_nav_mode" nz-menu-item [attr.data-type]="i.value" (click)="onNavTypeChange(i.value)">
|
|
768
682
|
<ng-container [ngSwitch]="i.value">
|
|
769
683
|
<ng-container *ngSwitchCase="NavType.APPLICATION">
|
|
770
684
|
<nz-icon nzType="appstore" nzTheme="outline" class="mr-sm" />
|
|
@@ -808,12 +722,7 @@ class YunzaiLayoutBasicComponent {
|
|
|
808
722
|
</layout-default>
|
|
809
723
|
<ng-template #asideUserTpl>
|
|
810
724
|
<div data-event-id="_route_user" class="yunzai-default__aside-user">
|
|
811
|
-
<nz-avatar
|
|
812
|
-
class="yunzai-default__aside-user-avatar"
|
|
813
|
-
[nzSize]="40"
|
|
814
|
-
[nzSrc]="aside.icon"
|
|
815
|
-
(click)="aboutApplication()"
|
|
816
|
-
/>
|
|
725
|
+
<nz-avatar class="yunzai-default__aside-user-avatar" [nzSize]="40" [nzSrc]="aside.icon" (click)="aboutApplication()" />
|
|
817
726
|
<div class="yunzai-default__aside-user-info" nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu">
|
|
818
727
|
<strong>{{ aside.name | i18n }}</strong>
|
|
819
728
|
<p>{{ aside.intro | i18n }}</p>
|
|
@@ -833,31 +742,18 @@ class YunzaiLayoutBasicComponent {
|
|
|
833
742
|
<router-outlet />
|
|
834
743
|
</ng-template>
|
|
835
744
|
|
|
836
|
-
<nz-modal
|
|
837
|
-
nzTitle="关于本应用"
|
|
838
|
-
[(nzVisible)]="applicationModal.isVisible"
|
|
839
|
-
[nzOkText]="null"
|
|
840
|
-
[nzCancelText]="'关闭'"
|
|
841
|
-
[nzWidth]="700"
|
|
842
|
-
(nzOnCancel)="applicationModal.isVisible = false"
|
|
843
|
-
>
|
|
745
|
+
<nz-modal nzTitle="关于本应用" [(nzVisible)]="applicationModal.isVisible" [nzOkText]="null" [nzCancelText]="'关闭'" [nzWidth]="700" (nzOnCancel)="applicationModal.isVisible = false">
|
|
844
746
|
<ng-container *nzModalContent>
|
|
845
747
|
<nz-skeleton [nzLoading]="applicationModal.loading" [nzActive]="true">
|
|
846
748
|
<nz-descriptions nzBordered [nzSize]="'middle'" [nzColumn]="{ xxl: 2, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }">
|
|
847
749
|
<nz-descriptions-item nzTitle="应用名称">{{ applicationInfo?.showName }}</nz-descriptions-item>
|
|
848
750
|
<nz-descriptions-item nzTitle="应用标识">{{ applicationInfo?.name }}</nz-descriptions-item>
|
|
849
751
|
<nz-descriptions-item nzTitle="版本总数">{{ applicationInfo?.versionNum }}</nz-descriptions-item>
|
|
850
|
-
<nz-descriptions-item nzTitle="应用首次部署时间">{{
|
|
851
|
-
applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss'
|
|
852
|
-
}}</nz-descriptions-item>
|
|
752
|
+
<nz-descriptions-item nzTitle="应用首次部署时间">{{ applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>
|
|
853
753
|
<nz-descriptions-item nzTitle="当前版本">{{ applicationInfo?.currentVersion }}</nz-descriptions-item>
|
|
854
|
-
<nz-descriptions-item nzTitle="当前版本部署时间">{{
|
|
855
|
-
applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss'
|
|
856
|
-
}}</nz-descriptions-item>
|
|
754
|
+
<nz-descriptions-item nzTitle="当前版本部署时间">{{ applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>
|
|
857
755
|
<nz-descriptions-item nzTitle="最新版本">{{ applicationInfo?.lastVersion }}</nz-descriptions-item>
|
|
858
|
-
<nz-descriptions-item nzTitle="最新版本发布时间">{{
|
|
859
|
-
applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss'
|
|
860
|
-
}}</nz-descriptions-item>
|
|
756
|
+
<nz-descriptions-item nzTitle="最新版本发布时间">{{ applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>
|
|
861
757
|
</nz-descriptions>
|
|
862
758
|
</nz-skeleton>
|
|
863
759
|
</ng-container>
|
|
@@ -895,14 +791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
895
791
|
<theme-btn />
|
|
896
792
|
</layout-default-header-item>
|
|
897
793
|
<layout-default-header-item direction="right" hidden="mobile">
|
|
898
|
-
<div
|
|
899
|
-
data-event-id="_nav_settings"
|
|
900
|
-
layout-default-header-item-trigger
|
|
901
|
-
nz-dropdown
|
|
902
|
-
[nzDropdownMenu]="settingsMenu"
|
|
903
|
-
nzTrigger="click"
|
|
904
|
-
nzPlacement="bottomRight"
|
|
905
|
-
>
|
|
794
|
+
<div data-event-id="_nav_settings" layout-default-header-item-trigger nz-dropdown [nzDropdownMenu]="settingsMenu" nzTrigger="click" nzPlacement="bottomRight">
|
|
906
795
|
<nz-icon nzType="setting" nzTheme="outline"></nz-icon>
|
|
907
796
|
</div>
|
|
908
797
|
<nz-dropdown-menu #settingsMenu="nzDropdownMenu">
|
|
@@ -913,12 +802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
913
802
|
|
|
914
803
|
@if (headerStyleList.length > 1) {
|
|
915
804
|
@for (i of headerStyleList; track $index) {
|
|
916
|
-
<div
|
|
917
|
-
data-event-id="_nav_mode"
|
|
918
|
-
nz-menu-item
|
|
919
|
-
[attr.data-type]="i.value"
|
|
920
|
-
(click)="onNavTypeChange(i.value)"
|
|
921
|
-
>
|
|
805
|
+
<div data-event-id="_nav_mode" nz-menu-item [attr.data-type]="i.value" (click)="onNavTypeChange(i.value)">
|
|
922
806
|
<ng-container [ngSwitch]="i.value">
|
|
923
807
|
<ng-container *ngSwitchCase="NavType.APPLICATION">
|
|
924
808
|
<nz-icon nzType="appstore" nzTheme="outline" class="mr-sm" />
|
|
@@ -962,12 +846,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
962
846
|
</layout-default>
|
|
963
847
|
<ng-template #asideUserTpl>
|
|
964
848
|
<div data-event-id="_route_user" class="yunzai-default__aside-user">
|
|
965
|
-
<nz-avatar
|
|
966
|
-
class="yunzai-default__aside-user-avatar"
|
|
967
|
-
[nzSize]="40"
|
|
968
|
-
[nzSrc]="aside.icon"
|
|
969
|
-
(click)="aboutApplication()"
|
|
970
|
-
/>
|
|
849
|
+
<nz-avatar class="yunzai-default__aside-user-avatar" [nzSize]="40" [nzSrc]="aside.icon" (click)="aboutApplication()" />
|
|
971
850
|
<div class="yunzai-default__aside-user-info" nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu">
|
|
972
851
|
<strong>{{ aside.name | i18n }}</strong>
|
|
973
852
|
<p>{{ aside.intro | i18n }}</p>
|
|
@@ -987,31 +866,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
987
866
|
<router-outlet />
|
|
988
867
|
</ng-template>
|
|
989
868
|
|
|
990
|
-
<nz-modal
|
|
991
|
-
nzTitle="关于本应用"
|
|
992
|
-
[(nzVisible)]="applicationModal.isVisible"
|
|
993
|
-
[nzOkText]="null"
|
|
994
|
-
[nzCancelText]="'关闭'"
|
|
995
|
-
[nzWidth]="700"
|
|
996
|
-
(nzOnCancel)="applicationModal.isVisible = false"
|
|
997
|
-
>
|
|
869
|
+
<nz-modal nzTitle="关于本应用" [(nzVisible)]="applicationModal.isVisible" [nzOkText]="null" [nzCancelText]="'关闭'" [nzWidth]="700" (nzOnCancel)="applicationModal.isVisible = false">
|
|
998
870
|
<ng-container *nzModalContent>
|
|
999
871
|
<nz-skeleton [nzLoading]="applicationModal.loading" [nzActive]="true">
|
|
1000
872
|
<nz-descriptions nzBordered [nzSize]="'middle'" [nzColumn]="{ xxl: 2, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }">
|
|
1001
873
|
<nz-descriptions-item nzTitle="应用名称">{{ applicationInfo?.showName }}</nz-descriptions-item>
|
|
1002
874
|
<nz-descriptions-item nzTitle="应用标识">{{ applicationInfo?.name }}</nz-descriptions-item>
|
|
1003
875
|
<nz-descriptions-item nzTitle="版本总数">{{ applicationInfo?.versionNum }}</nz-descriptions-item>
|
|
1004
|
-
<nz-descriptions-item nzTitle="应用首次部署时间">{{
|
|
1005
|
-
applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss'
|
|
1006
|
-
}}</nz-descriptions-item>
|
|
876
|
+
<nz-descriptions-item nzTitle="应用首次部署时间">{{ applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>
|
|
1007
877
|
<nz-descriptions-item nzTitle="当前版本">{{ applicationInfo?.currentVersion }}</nz-descriptions-item>
|
|
1008
|
-
<nz-descriptions-item nzTitle="当前版本部署时间">{{
|
|
1009
|
-
applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss'
|
|
1010
|
-
}}</nz-descriptions-item>
|
|
878
|
+
<nz-descriptions-item nzTitle="当前版本部署时间">{{ applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>
|
|
1011
879
|
<nz-descriptions-item nzTitle="最新版本">{{ applicationInfo?.lastVersion }}</nz-descriptions-item>
|
|
1012
|
-
<nz-descriptions-item nzTitle="最新版本发布时间">{{
|
|
1013
|
-
applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss'
|
|
1014
|
-
}}</nz-descriptions-item>
|
|
880
|
+
<nz-descriptions-item nzTitle="最新版本发布时间">{{ applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>
|
|
1015
881
|
</nz-descriptions>
|
|
1016
882
|
</nz-skeleton>
|
|
1017
883
|
</ng-container>
|
package/fesm2022/layout.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.mjs","sources":["../../../../packages/bis/layout/layout-nav-application.component.ts","../../../../packages/bis/layout/layout-nav-group.component.ts","../../../../packages/bis/layout/layout-nav-tile.component.ts","../../../../packages/bis/layout/layout-basic.component.ts","../../../../packages/bis/layout/layout.module.ts","../../../../packages/bis/layout/layout.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport { _HttpClient, I18nPipe, YunzaiHttpI18NService } from '@yelon/theme';\nimport {\n LayoutNavApplicationState,\n useLocalStorageHeader,\n WINDOW,\n YunzaiConfigService,\n YunzaiNavTopic\n} from '@yelon/util';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\n@Component({\n selector: `yunzai-layout-nav-application`,\n template: `\n <ng-template #search>\n <div nz-row class=\"yz-application-list-search\">\n <nz-input-group [nzPrefix]=\"prefixTemplate\">\n <input\n data-event-id=\"_nav_search\"\n type=\"text\"\n nz-input\n placeholder=\"{{ 'application.search' | i18n }}\"\n [(ngModel)]=\"state.search\"\n (ngModelChange)=\"onSearch()\"\n />\n <ng-template #prefixTemplate>\n <nz-icon nzType=\"search\" nzTheme=\"outline\"></nz-icon>\n </ng-template>\n </nz-input-group>\n </div>\n </ng-template>\n\n <ng-template #ld>\n <div class=\"yz-application-list\">\n <ul>\n @for (topic of state.list; track topic) {\n <li>\n <h5>{{ topic.name | i18n }}</h5>\n @for (nav of topic.children; track nav) {\n <a\n data-event-id=\"_nav_item\"\n [attr.data-name]=\"nav.name | i18n\"\n href=\"javascript:;\"\n (click)=\"open(nav)\"\n >{{ nav.name | i18n }}</a\n >\n }\n </li>\n }\n </ul>\n </div>\n </ng-template>\n\n <div data-event-id=\"_nav_app\" id=\"navBtn\" class=\"yunzai-default__nav-item\" (click)=\"diffChange()\"\n >{{ 'mode.nav' | i18n }}\n </div>\n\n <div class=\"yz-application\" id=\"navDropdown\" nz-row *ngIf=\"state.active\">\n <div nz-col [nzSpan]=\"3\" class=\"yz-application-topic\">\n <div class=\"yz-application-topic-list\">\n @if (showAllMenu) {\n <div data-event-id=\"_nav_topic\" data-name=\"全部应用\" class=\"yz-application-text\" (click)=\"attachNav('all')\"\n >{{ 'mode.nav.all' | i18n }}\n </div>\n }\n @if (showMineMenu) {\n <div data-event-id=\"_nav_topic\" data-name=\"我的应用\" class=\"yz-application-text\" (click)=\"attachNav('mine')\"\n >{{ 'mode.nav.mine' | i18n }}\n </div>\n }\n @for (nav of state.topics; track nav) {\n <div\n data-event-id=\"_nav_topic\"\n [attr.data-name]=\"nav.name | i18n\"\n class=\"yz-application-text\"\n (click)=\"attachNav('other', nav)\"\n >{{ nav.name | i18n }}\n </div>\n }\n </div>\n </div>\n <div nz-col [nzSpan]=\"21\" class=\"yz-application-container\">\n @switch (state.type) {\n @case ('all') {\n <div>\n <ng-template [ngTemplateOutlet]=\"search\" />\n <ng-template [ngTemplateOutlet]=\"ld\" />\n </div>\n }\n @case ('mine') {\n <div>\n <ng-template [ngTemplateOutlet]=\"search\" />\n <ng-template [ngTemplateOutlet]=\"ld\" />\n </div>\n }\n @case ('other') {\n <div class=\"yz-application-list yz-application-list-other\">\n <div class=\"yz-application-list-item\">\n <ul>\n @for (nav of state.list; track nav) {\n <li data-event-id=\"_nav_item\" [attr.data-name]=\"nav.name | i18n\" (click)=\"open(nav)\">\n <a href=\"javascript:;\">\n <h4>{{ nav.name | i18n }}</h4>\n <p>{{ nav.intro | i18n }}</p>\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n }\n }\n </div>\n </div>\n `,\n imports: [I18nPipe, FormsModule, NzFormModule, NzInputModule, CommonModule, NzGridModule, NzIconModule]\n})\nexport class YunzaiNavApplicationComponent implements OnInit, OnDestroy {\n private readonly config = mergeBisConfig(inject(YunzaiConfigService));\n private readonly http = inject(_HttpClient);\n private readonly win = inject(WINDOW);\n private readonly i18n = inject(YunzaiHttpI18NService);\n private readonly destroy$ = new Subject();\n\n state: LayoutNavApplicationState = {\n active: false,\n type: 'all',\n topic: undefined,\n topics: [],\n list: [],\n search: null\n };\n\n get showAllMenu(): boolean {\n if (this.config.nav) return this.config.nav!.all!;\n return true;\n }\n\n get showMineMenu(): boolean {\n if (this.config.nav) return this.config.nav!.mine!;\n return true;\n }\n\n ngOnInit(): void {\n this.fetchAllTopic();\n this.attachNav('all');\n this.win.addEventListener('click', (event: any) => {\n const { target } = event;\n const btn = this.win.document.getElementById('navBtn');\n const dropdown = this.win.document.getElementById('navDropdown');\n if (btn && dropdown && !dropdown.contains(target) && !btn.contains(target)) {\n this.state.active = false;\n }\n });\n }\n\n fetchAllTopic(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.topics = getTopics()!;\n }\n\n attachNav(type: 'all' | 'mine' | 'other', topic?: YunzaiNavTopic): void {\n this.state.type = type;\n this.clearSearch();\n if (type === 'all') {\n this.displayAllNav();\n }\n if (type === 'mine') {\n this.displayMineNav();\n }\n if (type === 'other' && topic) {\n this.displayOtherNav(topic);\n }\n }\n\n clearSearch(): void {\n this.state.search = null;\n }\n\n displayAllNav(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.list = getTopics()!;\n }\n\n displayMineNav(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.list = getTopics()!\n .filter((topic: YunzaiNavTopic) => {\n topic.children = topic.children.filter((child: YunzaiNavTopic) => {\n return child.auth;\n });\n return topic;\n })\n .filter((topic: YunzaiNavTopic) => {\n return topic.children.length > 0;\n });\n }\n\n displayOtherNav(topic: YunzaiNavTopic): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.topic = topic;\n const temp: YunzaiNavTopic[] = getTopics()!;\n this.state.list = temp.filter(t => t.key === topic.key)[0].children;\n }\n\n diffChange(flag?: boolean): void {\n if (flag) {\n this.state.active = flag;\n } else {\n this.state.active = !this.state.active;\n }\n }\n\n open(topic: YunzaiNavTopic): void {\n if (topic.key) {\n this.http\n .post(`/app-manager/web-scan/save`, {\n appId: topic.key,\n createDate: new Date()\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe();\n }\n switch (topic.target) {\n case 'href':\n this.win.location.href = topic.url;\n break;\n case 'blank':\n this.win.open(topic.url);\n break;\n case 'target':\n this.win.open(topic.url);\n break;\n default:\n this.win.location.href = topic.url;\n break;\n }\n }\n\n onSearch(): void {\n const [, getTopics] = useLocalStorageHeader();\n const temp: YunzaiNavTopic[] = getTopics()!;\n if (this.state.search) {\n this.state.list = temp\n .filter((topic: YunzaiNavTopic) => {\n if (this.i18n.fanyi(topic.name).includes(this.state.search!)) {\n return topic;\n } else {\n topic.children = topic.children.filter((child: YunzaiNavTopic) => {\n return this.i18n.fanyi(child.name).includes(this.state.search!);\n });\n return topic;\n }\n })\n .filter((topic: YunzaiNavTopic) => {\n return topic.children.length > 0;\n });\n } else {\n const [, getTopics] = useLocalStorageHeader();\n this.state.list = getTopics()!;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n}\n","import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { _HttpClient, I18nPipe } from '@yelon/theme';\nimport { LayoutNavGroupState, useLocalStorageHeader, WINDOW, YunzaiNavTopic } from '@yelon/util';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\n@Component({\n selector: `yunzai-layout-nav-group`,\n template: `\n <div class=\"yz-application-group\">\n <nz-tabset>\n @for (menu of state.topics; track menu) {\n <nz-tab [nzTitle]=\"groupTitleTpl\">\n <ng-template #groupTitleTpl>\n <a\n data-event-id=\"_nav_topic\"\n [attr.data-name]=\"menu.name | i18n\"\n nz-dropdown\n [nzDropdownMenu]=\"menuTpl\"\n [nzTrigger]=\"'click'\"\n [nzOverlayClassName]=\"'yz-application-dropdown'\"\n >\n @if (menu.icon) {\n <nz-icon [nzType]=\"menu.icon\" nzTheme=\"outline\"></nz-icon>\n }\n {{ menu.name | i18n }}\n @if (menu.children && menu.children.length > 0) {\n <nz-icon nzType=\"down\" nzTheme=\"outline\"></nz-icon>\n }\n </a>\n <nz-dropdown-menu #menuTpl=\"nzDropdownMenu\">\n @if (menu.children && menu.children.length > 0) {\n <ul nz-menu nzSelectable>\n @for (item of menu.children; track item) {\n <ng-container>\n @if (item.auth) {\n <li\n data-event-id=\"_nav_item\"\n [attr.data-name]=\"item.name | i18n\"\n nz-menu-item\n (click)=\"open(item)\"\n >\n @if (item.icon) {\n <nz-icon [nzType]=\"item.icon\" nzTheme=\"outline\"></nz-icon>\n }\n {{ item.name | i18n }}\n </li>\n }\n </ng-container>\n }\n </ul>\n }\n </nz-dropdown-menu>\n </ng-template>\n </nz-tab>\n }\n </nz-tabset>\n </div>\n `,\n\n imports: [NzIconModule, NzDropDownModule, I18nPipe, NzTabsModule]\n})\nexport class YunzaiLayoutNavGroupComponent implements OnInit, OnDestroy {\n private readonly http = inject(_HttpClient);\n private destroy$ = new Subject();\n private readonly win = inject(WINDOW);\n state: LayoutNavGroupState = {\n topics: []\n };\n\n ngOnInit(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.topics = getTopics() || [];\n }\n\n open(topic: YunzaiNavTopic): void {\n if (topic.key) {\n this.http\n .post(`/app-manager/web-scan/save`, {\n appId: topic.key,\n createDate: new Date()\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe();\n }\n switch (topic.target) {\n case 'href':\n this.win.location.href = topic.url;\n break;\n case 'blank':\n this.win.open(topic.url);\n break;\n case 'target':\n this.win.open(topic.url);\n break;\n default:\n this.win.location.href = topic.url;\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: `yunzai-layout-nav-tile`,\n template: `<ng-template />`\n})\nexport class YunzaiLayoutNavTileComponent {}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, inject, OnInit } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ReuseTabModule } from '@yelon/abc/reuse-tab';\nimport { YunzaiWidgetsModule } from '@yelon/bis/yunzai-widgets';\nimport { StompService } from '@yelon/socket';\nimport { I18nPipe } from '@yelon/theme';\nimport { LayoutDefaultModule, LayoutDefaultOptions, LayoutDisplayService } from '@yelon/theme/layout-default';\nimport { ThemeBtnModule } from '@yelon/theme/theme-btn';\nimport {\n hasFavicon,\n LayoutBasicAside,\n LayoutBasicDisplay,\n log,\n NavType,\n setFavicon,\n useLocalStorageCurrent,\n useLocalStorageDefaultRoute,\n useLocalStorageHeaderType,\n useLocalStorageProjectInfo,\n WINDOW,\n YUNZAI_CONFIG,\n YunzaiBusinessConfig,\n YunzaiConfig,\n YunzaiHeaderStyle,\n YunzaiProjectInfo\n} from '@yelon/util';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { YunzaiNavApplicationComponent } from './layout-nav-application.component';\nimport { YunzaiLayoutNavGroupComponent } from './layout-nav-group.component';\nimport { YunzaiLayoutNavTileComponent } from './layout-nav-tile.component';\n\nexport interface LayoutBasicState {\n options: LayoutDefaultOptions;\n aside: LayoutBasicAside;\n display: LayoutBasicDisplay;\n navType: NavType;\n}\n\nexport interface ApplicationInfoInterface {\n id?: string;\n name?: string;\n showName?: string;\n lastVersion?: string;\n versionNum?: string;\n currentVersion?: string;\n firstDeploymentDate?: string;\n currentDeploymentDate?: string;\n lastPushDate?: string;\n}\n\n@Component({\n selector: `yunzai-layout-basic`,\n template: `\n <layout-default [options]=\"options\" [asideUser]=\"asideUserTpl\" [content]=\"displayReusetab ? contentTpl : noneTpl\">\n <layout-default-header-item direction=\"left\">\n <ng-container [ngSwitch]=\"navType\">\n <ng-container *ngSwitchCase=\"NavType.APPLICATION\">\n <yunzai-layout-nav-application />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.GROUP\">\n <yunzai-layout-nav-group />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.TILE\">\n <yunzai-layout-nav-tile />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.BLANK\" />\n <ng-container *ngSwitchCase=\"NavType.TABS\" />\n <ng-container *ngSwitchDefault>\n <yunzai-layout-nav-application />\n </ng-container>\n </ng-container>\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n <yunzai-header-notify />\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n <theme-btn />\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n <div\n data-event-id=\"_nav_settings\"\n layout-default-header-item-trigger\n nz-dropdown\n [nzDropdownMenu]=\"settingsMenu\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n >\n <nz-icon nzType=\"setting\" nzTheme=\"outline\"></nz-icon>\n </div>\n <nz-dropdown-menu #settingsMenu=\"nzDropdownMenu\">\n <div nz-menu style=\"width: 200px;\">\n <div data-event-id=\"_nav_mode\" nz-menu-item>\n {{ 'mode.nav' | i18n }}\n </div>\n\n @if (headerStyleList.length > 1) {\n @for (i of headerStyleList; track $index) {\n <div\n data-event-id=\"_nav_mode\"\n nz-menu-item\n [attr.data-type]=\"i.value\"\n (click)=\"onNavTypeChange(i.value)\"\n >\n <ng-container [ngSwitch]=\"i.value\">\n <ng-container *ngSwitchCase=\"NavType.APPLICATION\">\n <nz-icon nzType=\"appstore\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.GROUP\">\n <nz-icon nzType=\"group\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.TILE\">\n <nz-icon nzType=\"dash\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.BLANK\">\n <nz-icon nzType=\"border\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.TABS\">\n <nz-icon nzType=\"insert-row-above\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <nz-icon nzType=\"appstore\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n {{ 'mode.nav.' + i.value | i18n }}\n </ng-container>\n </div>\n }\n }\n\n <div data-event-id=\"_nav_fullscreen\" nz-menu-item>\n <yunzai-header-fullscreen />\n </div>\n <div data-event-id=\"_nav_clearstorage\" nz-menu-item>\n <yunzai-header-clear-storage />\n </div>\n <div data-event-id=\"_nav_i18n\" nz-menu-item>\n <yunzai-header-i18n />\n </div>\n </div>\n </nz-dropdown-menu>\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\">\n <yunzai-header-user />\n </layout-default-header-item>\n </layout-default>\n <ng-template #asideUserTpl>\n <div data-event-id=\"_route_user\" class=\"yunzai-default__aside-user\">\n <nz-avatar\n class=\"yunzai-default__aside-user-avatar\"\n [nzSize]=\"40\"\n [nzSrc]=\"aside.icon\"\n (click)=\"aboutApplication()\"\n />\n <div class=\"yunzai-default__aside-user-info\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"userMenu\">\n <strong>{{ aside.name | i18n }}</strong>\n <p>{{ aside.intro | i18n }}</p>\n </div>\n </div>\n <nz-dropdown-menu #userMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li data-event-id=\"_route_backhome\" nz-menu-item routerLink=\"/\">{{ 'back.home' | i18n }}</li>\n </ul>\n </nz-dropdown-menu>\n </ng-template>\n <ng-template #contentTpl>\n <reuse-tab #reuseTab [style]=\"reusetabCSS\" />\n <router-outlet (activate)=\"reuseTab.activate($event)\" (attach)=\"reuseTab.activate($event)\" />\n </ng-template>\n <ng-template #noneTpl>\n <router-outlet />\n </ng-template>\n\n <nz-modal\n nzTitle=\"关于本应用\"\n [(nzVisible)]=\"applicationModal.isVisible\"\n [nzOkText]=\"null\"\n [nzCancelText]=\"'关闭'\"\n [nzWidth]=\"700\"\n (nzOnCancel)=\"applicationModal.isVisible = false\"\n >\n <ng-container *nzModalContent>\n <nz-skeleton [nzLoading]=\"applicationModal.loading\" [nzActive]=\"true\">\n <nz-descriptions nzBordered [nzSize]=\"'middle'\" [nzColumn]=\"{ xxl: 2, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }\">\n <nz-descriptions-item nzTitle=\"应用名称\">{{ applicationInfo?.showName }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"应用标识\">{{ applicationInfo?.name }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"版本总数\">{{ applicationInfo?.versionNum }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"应用首次部署时间\">{{\n applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss'\n }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"当前版本\">{{ applicationInfo?.currentVersion }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"当前版本部署时间\">{{\n applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss'\n }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"最新版本\">{{ applicationInfo?.lastVersion }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"最新版本发布时间\">{{\n applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss'\n }}</nz-descriptions-item>\n </nz-descriptions>\n </nz-skeleton>\n </ng-container>\n </nz-modal>\n `,\n imports: [\n LayoutDefaultModule,\n RouterModule,\n ReuseTabModule,\n CommonModule,\n I18nPipe,\n NzDropDownModule,\n NzAvatarModule,\n NzIconModule,\n NzModalModule,\n NzSkeletonModule,\n NzDescriptionsModule,\n ThemeBtnModule,\n YunzaiWidgetsModule,\n YunzaiNavApplicationComponent,\n YunzaiLayoutNavGroupComponent,\n YunzaiLayoutNavTileComponent\n ]\n})\nexport class YunzaiLayoutBasicComponent implements OnInit {\n private readonly stomp = inject(StompService);\n private readonly win = inject(WINDOW);\n private readonly layoutDisplayService = inject(LayoutDisplayService);\n private readonly conf: YunzaiConfig = inject(YUNZAI_CONFIG);\n\n public NavType = NavType;\n private state: LayoutBasicState = {\n options: {\n logoExpanded: `./assets/logo-full.svg`,\n logoCollapsed: `./assets/logo.svg`\n },\n aside: {\n name: '',\n intro: '',\n icon: ''\n },\n display: {\n nav: true,\n aside: true,\n reusetab: true\n },\n navType: NavType.APPLICATION\n };\n\n headerStyleList: YunzaiHeaderStyle[] = [];\n\n applicationInfo!: ApplicationInfoInterface;\n\n applicationModal = {\n isVisible: false,\n loading: false\n };\n\n private readonly httpClient = inject(HttpClient);\n private config!: YunzaiBusinessConfig;\n\n get options(): LayoutDefaultOptions {\n return this.state.options;\n }\n\n get navType(): NavType {\n return this.state.navType;\n }\n\n get aside(): LayoutBasicAside {\n return this.state.aside;\n }\n\n get displayReusetab(): boolean {\n return this.state.display.reusetab;\n }\n\n get reusetabCSS(): any {\n let cascadingStyleSheet = {};\n if (!this.state.display.nav) {\n cascadingStyleSheet = {\n ...cascadingStyleSheet,\n top: '0px'\n };\n }\n if (!this.state.display.aside) {\n cascadingStyleSheet = {\n ...cascadingStyleSheet,\n left: '0px'\n };\n }\n return cascadingStyleSheet;\n }\n\n ngOnInit(): void {\n this.config = this.conf.bis!;\n this.initLogo();\n this.initFavicon();\n this.initNavType();\n this.initAside();\n this.addLayoutDisplayListener();\n this.stomp.listen();\n this.toIndex();\n }\n\n initFavicon(): void {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n if (projectInfo.faviconUrl) {\n hasFavicon(projectInfo.faviconUrl).then((has: boolean) => {\n if (has) {\n setFavicon(projectInfo.faviconUrl);\n } else {\n setFavicon('./assets/favicon.ico');\n }\n });\n }\n }\n\n initAside(): void {\n const [, getCurrent] = useLocalStorageCurrent();\n const aside: LayoutBasicAside = getCurrent()!;\n this.state.aside = { ...aside };\n }\n\n initLogo(): void {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n this.state.options.logoExpanded = projectInfo.maxLogoUrl ? projectInfo.maxLogoUrl : `./assets/logo-full.svg`;\n this.state.options.logoCollapsed = projectInfo.miniLogoUrl ? projectInfo.miniLogoUrl : `./assets/logo.svg`;\n }\n\n initNavType(): void {\n const [, getHeaderType] = useLocalStorageHeaderType();\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n const navType: NavType | null = getHeaderType();\n const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n if (navType !== null) {\n this.state.navType = navType;\n } else {\n this.state.navType = NavType.APPLICATION;\n }\n if (projectInfo.headerStyle && projectInfo.headerStyle.length > 0) {\n this.headerStyleList = projectInfo.headerStyle;\n const hasThis = this.headerStyleList.some(item => item.value === this.state.navType);\n if (!hasThis) {\n this.state.navType = projectInfo.headerStyle[0].value as NavType;\n const [setHeaderType] = useLocalStorageHeaderType();\n setHeaderType(this.state.navType);\n }\n }\n }\n\n toIndex(): void {\n const [, getDefaultRoute] = useLocalStorageDefaultRoute();\n const defaultRoute = getDefaultRoute()!;\n log('YunzaiLayoutBasicComponent: ', `todo: the default route was ${defaultRoute}, 但是还没想好如何实现.`);\n }\n\n onNavTypeChange(type: NavType | string): void {\n const [setHeaderType] = useLocalStorageHeaderType();\n setHeaderType(type as NavType);\n this.win.location.reload();\n }\n\n addLayoutDisplayListener(): void {\n this.layoutDisplayService.listen('reuseTab', (display: boolean) => {\n this.state.display.reusetab = display;\n });\n this.layoutDisplayService.listen('nav', (display: boolean) => {\n this.state.display.nav = display;\n });\n\n this.layoutDisplayService.listen('aside', (display: boolean) => {\n this.state.display.aside = display;\n });\n }\n\n // 关于本应用\n aboutApplication(): void {\n const urlArr = window.location.pathname.split(`${this.config.baseUrl}/`);\n if (urlArr.length > 1) {\n // 应用标识,截取路径中 /backstage/后第一个字符串\n // 例: http://222.30.194.61/backstage/auth/page/oafportal/#/base/menu 中 auth\n const name = urlArr[1].split('/')[0];\n this.applicationModal.isVisible = true;\n this.applicationModal.loading = true;\n this.httpClient.get(`/basic/api/app/aboutApp?name=${name}`).subscribe(\n (response: any) => {\n this.applicationModal.loading = false;\n if (response.data) {\n this.applicationInfo = response.data;\n }\n },\n () => {\n this.applicationModal.loading = false;\n }\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { I18nPipe } from '@yelon/theme';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\nimport { YunzaiLayoutBasicComponent } from './layout-basic.component';\nimport { YunzaiLayoutNavGroupComponent } from './layout-nav-group.component';\nimport { YunzaiLayoutNavTileComponent } from './layout-nav-tile.component';\n\nconst COMPONENTS = [YunzaiLayoutNavTileComponent, YunzaiLayoutNavGroupComponent, YunzaiLayoutBasicComponent];\n\n@NgModule({\n imports: [\n I18nPipe,\n FormsModule,\n NzFormModule,\n NzInputModule,\n CommonModule,\n NzGridModule,\n NzIconModule,\n NzDropDownModule,\n NzTabsModule,\n ...COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class YunzaiLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","i5","i6","i8"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6Ha,6BAA6B,CAAA;IACvB,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACpD,IAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAC1B,IAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACpB,IAAA,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACpC,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AAEzC,IAAA,KAAK,GAA8B;AACjC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,MAAM,EAAE;KACT;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,GAAI;AACjD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,IAAK;AAClD,QAAA,OAAO,IAAI;IACb;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAU,KAAI;AAChD,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AACxB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;AACtD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;YAChE,IAAI,GAAG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1E,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;YAC3B;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,aAAa,GAAA;AACX,QAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;AAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAG;IAClC;IAEA,SAAS,CAAC,IAA8B,EAAE,KAAsB,EAAA;AAC9D,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;QACtB,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,IAAI,CAAC,aAAa,EAAE;QACtB;AACA,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE;QACvB;AACA,QAAA,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC7B;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;IAC1B;IAEA,aAAa,GAAA;AACX,QAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;AAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,EAAG;IAChC;IAEA,cAAc,GAAA;AACZ,QAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;AAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;AACxB,aAAA,MAAM,CAAC,CAAC,KAAqB,KAAI;AAChC,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAqB,KAAI;gBAC/D,OAAO,KAAK,CAAC,IAAI;AACnB,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,KAAK;AACd,QAAA,CAAC;AACA,aAAA,MAAM,CAAC,CAAC,KAAqB,KAAI;AAChC,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AAClC,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,eAAe,CAAC,KAAqB,EAAA;AACnC,QAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;AAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;AACxB,QAAA,MAAM,IAAI,GAAqB,SAAS,EAAG;QAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IACrE;AAEA,IAAA,UAAU,CAAC,IAAc,EAAA;QACvB,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;QAC1B;aAAO;YACL,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QACxC;IACF;AAEA,IAAA,IAAI,CAAC,KAAqB,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC;iBACF,IAAI,CAAC,4BAA4B,EAAE;gBAClC,KAAK,EAAE,KAAK,CAAC,GAAG;gBAChB,UAAU,EAAE,IAAI,IAAI;aACrB;AACA,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,EAAE;QAChB;AACA,QAAA,QAAQ,KAAK,CAAC,MAAM;AAClB,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG;gBAClC;AACF,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB;AACF,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB;AACF,YAAA;gBACE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG;gBAClC;;IAEN;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;AAC7C,QAAA,MAAM,IAAI,GAAqB,SAAS,EAAG;AAC3C,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;AACf,iBAAA,MAAM,CAAC,CAAC,KAAqB,KAAI;gBAChC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,EAAE;AAC5D,oBAAA,OAAO,KAAK;gBACd;qBAAO;AACL,oBAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAqB,KAAI;AAC/D,wBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC;AACjE,oBAAA,CAAC,CAAC;AACF,oBAAA,OAAO,KAAK;gBACd;AACF,YAAA,CAAC;AACA,iBAAA,MAAM,CAAC,CAAC,KAAqB,KAAI;AAChC,gBAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AAClC,YAAA,CAAC,CAAC;QACN;aAAO;AACL,YAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;AAC7C,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,EAAG;QAChC;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;uGApJW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACmB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uCAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA5F,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA1GzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA,6BAAA,CAA+B;AACzC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGT,EAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY;AACvG,iBAAA;;;MC3DY,6BAA6B,CAAA;AACvB,IAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AACnC,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACf,IAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACrC,IAAA,KAAK,GAAwB;AAC3B,QAAA,MAAM,EAAE;KACT;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB,EAAE;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE;IACvC;AAEA,IAAA,IAAI,CAAC,KAAqB,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC;iBACF,IAAI,CAAC,4BAA4B,EAAE;gBAClC,KAAK,EAAE,KAAK,CAAC,GAAG;gBAChB,UAAU,EAAE,IAAI,IAAI;aACrB;AACA,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,EAAE;QAChB;AACA,QAAA,QAAQ,KAAK,CAAC,MAAM;AAClB,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG;gBAClC;AACF,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB;AACF,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB;AACF,YAAA;gBACE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG;gBAClC;;IAEN;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;uGAzCW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtD9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAY,YAAY,0tBAAtB,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;2FAEvC,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAxDzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA,uBAAA,CAAyB;AACnC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDT,EAAA,CAAA;oBAED,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY;AACjE,iBAAA;;;MC1DY,4BAA4B,CAAA;uGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,kFAF7B,CAAA,eAAA,CAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEhB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA,sBAAA,CAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAA,eAAA;AACX,iBAAA;;;MCgOY,0BAA0B,CAAA;AACpB,IAAA,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;AAC5B,IAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACpB,IAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnD,IAAA,IAAI,GAAiB,MAAM,CAAC,aAAa,CAAC;IAEpD,OAAO,GAAG,OAAO;AAChB,IAAA,KAAK,GAAqB;AAChC,QAAA,OAAO,EAAE;AACP,YAAA,YAAY,EAAE,CAAA,sBAAA,CAAwB;AACtC,YAAA,aAAa,EAAE,CAAA,iBAAA;AAChB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE;AACP,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE;AACX,SAAA;QACD,OAAO,EAAE,OAAO,CAAC;KAClB;IAED,eAAe,GAAwB,EAAE;AAEzC,IAAA,eAAe;AAEf,IAAA,gBAAgB,GAAG;AACjB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,OAAO,EAAE;KACV;AAEgB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,IAAA,MAAM;AAEd,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;IAC3B;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;IAC3B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;IACzB;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ;IACpC;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,IAAI,mBAAmB,GAAG,EAAE;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;AAC3B,YAAA,mBAAmB,GAAG;AACpB,gBAAA,GAAG,mBAAmB;AACtB,gBAAA,GAAG,EAAE;aACN;QACH;QACA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;AAC7B,YAAA,mBAAmB,GAAG;AACpB,gBAAA,GAAG,mBAAmB;AACtB,gBAAA,IAAI,EAAE;aACP;QACH;AACA,QAAA,OAAO,mBAAmB;IAC5B;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAI;QAC5B,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,wBAAwB,EAAE;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACnB,IAAI,CAAC,OAAO,EAAE;IAChB;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,GAAG,cAAc,CAAC,GAAG,0BAA0B,EAAE;AACvD,QAAA,MAAM,WAAW,GAAsB,cAAc,EAAG;AACxD,QAAA,IAAI,WAAW,CAAC,UAAU,EAAE;YAC1B,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAY,KAAI;gBACvD,IAAI,GAAG,EAAE;AACP,oBAAA,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;gBACpC;qBAAO;oBACL,UAAU,CAAC,sBAAsB,CAAC;gBACpC;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,SAAS,GAAA;AACP,QAAA,MAAM,GAAG,UAAU,CAAC,GAAG,sBAAsB,EAAE;AAC/C,QAAA,MAAM,KAAK,GAAqB,UAAU,EAAG;QAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE;IACjC;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,GAAG,cAAc,CAAC,GAAG,0BAA0B,EAAE;AACvD,QAAA,MAAM,WAAW,GAAsB,cAAc,EAAG;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,GAAG,wBAAwB;QAC5G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,GAAG,mBAAmB;IAC5G;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,GAAG,aAAa,CAAC,GAAG,yBAAyB,EAAE;AACrD,QAAA,MAAM,GAAG,cAAc,CAAC,GAAG,0BAA0B,EAAE;AACvD,QAAA,MAAM,OAAO,GAAmB,aAAa,EAAE;AAC/C,QAAA,MAAM,WAAW,GAAsB,cAAc,EAAG;AACxD,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;QAC9B;aAAO;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW;QAC1C;AACA,QAAA,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,YAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,WAAW;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACpF,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAgB;AAChE,gBAAA,MAAM,CAAC,aAAa,CAAC,GAAG,yBAAyB,EAAE;AACnD,gBAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACnC;QACF;IACF;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,GAAG,eAAe,CAAC,GAAG,2BAA2B,EAAE;AACzD,QAAA,MAAM,YAAY,GAAG,eAAe,EAAG;AACvC,QAAA,GAAG,CAAC,8BAA8B,EAAE,+BAA+B,YAAY,CAAA,aAAA,CAAe,CAAC;IACjG;AAEA,IAAA,eAAe,CAAC,IAAsB,EAAA;AACpC,QAAA,MAAM,CAAC,aAAa,CAAC,GAAG,yBAAyB,EAAE;QACnD,aAAa,CAAC,IAAe,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;IAC5B;IAEA,wBAAwB,GAAA;QACtB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAgB,KAAI;YAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO;AACvC,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAgB,KAAI;YAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO;AAClC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAgB,KAAI;YAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACpC,QAAA,CAAC,CAAC;IACJ;;IAGA,gBAAgB,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA,CAAA,CAAG,CAAC;AACxE,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;;;AAGrB,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI;AACtC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI;AACpC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,IAAI,CAAA,CAAE,CAAC,CAAC,SAAS,CACnE,CAAC,QAAa,KAAI;AAChB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK;AACrC,gBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjB,oBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI;gBACtC;YACF,CAAC,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK;AACvC,YAAA,CAAC,CACF;QACH;IACF;uGA/KW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxK3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEC,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,SAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,KAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,6BAA6B,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC7B,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC7B,4BAA4B,iHAX5B,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;2FAcC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBA1KtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA,mBAAA,CAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJT,EAAA,CAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,YAAY;wBACZ,cAAc;wBACd,YAAY;wBACZ,QAAQ;wBACR,gBAAgB;wBAChB,cAAc;wBACd,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,oBAAoB;wBACpB,cAAc;wBACd,mBAAmB;wBACnB,6BAA6B;wBAC7B,6BAA6B;wBAC7B;AACD;AACF,iBAAA;;;ACpND,MAAM,UAAU,GAAG,CAAC,4BAA4B,EAAE,6BAA6B,EAAE,0BAA0B,CAAC;MAiB/F,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAb3B,QAAQ;YACR,WAAW;YACX,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,gBAAgB;YAChB,YAAY,EAZI,4BAA4B,EAAE,6BAA6B,EAAE,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAAvF,4BAA4B,EAAE,6BAA6B,EAAE,0BAA0B,CAAA,EAAA,CAAA;AAiB9F,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAZ3B,WAAW;YACX,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,gBAAgB;YAChB,YAAY,EAZkC,6BAA6B,EAAE,0BAA0B,CAAA,EAAA,CAAA;;2FAiB9F,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAf9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,QAAQ;wBACR,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,YAAY;wBACZ,YAAY;wBACZ,YAAY;wBACZ,gBAAgB;wBAChB,YAAY;AACZ,wBAAA,GAAG;AACJ,qBAAA;AACD,oBAAA,OAAO,EAAE;AACV,iBAAA;;;AChCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"layout.mjs","sources":["../../../../packages/bis/layout/layout-nav-application.component.ts","../../../../packages/bis/layout/layout-nav-group.component.ts","../../../../packages/bis/layout/layout-nav-tile.component.ts","../../../../packages/bis/layout/layout-basic.component.ts","../../../../packages/bis/layout/layout.module.ts","../../../../packages/bis/layout/layout.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport { _HttpClient, I18nPipe, YunzaiHttpI18NService } from '@yelon/theme';\nimport { LayoutNavApplicationState, useLocalStorageHeader, WINDOW, YunzaiConfigService, YunzaiNavTopic } from '@yelon/util';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\n@Component({\n selector: `yunzai-layout-nav-application`,\n template: `\n <ng-template #search>\n <div nz-row class=\"yz-application-list-search\">\n <nz-input-group [nzPrefix]=\"prefixTemplate\">\n <input data-event-id=\"_nav_search\" type=\"text\" nz-input placeholder=\"{{ 'application.search' | i18n }}\" [(ngModel)]=\"state.search\" (ngModelChange)=\"onSearch()\" />\n <ng-template #prefixTemplate>\n <nz-icon nzType=\"search\" nzTheme=\"outline\"></nz-icon>\n </ng-template>\n </nz-input-group>\n </div>\n </ng-template>\n\n <ng-template #ld>\n <div class=\"yz-application-list\">\n <ul>\n @for (topic of state.list; track topic) {\n <li>\n <h5>{{ topic.name | i18n }}</h5>\n @for (nav of topic.children; track nav) {\n <a data-event-id=\"_nav_item\" [attr.data-name]=\"nav.name | i18n\" href=\"javascript:;\" (click)=\"open(nav)\">{{ nav.name | i18n }}</a>\n }\n </li>\n }\n </ul>\n </div>\n </ng-template>\n\n <div data-event-id=\"_nav_app\" id=\"navBtn\" class=\"yunzai-default__nav-item\" (click)=\"diffChange()\">{{ 'mode.nav' | i18n }} </div>\n\n <div class=\"yz-application\" id=\"navDropdown\" nz-row *ngIf=\"state.active\">\n <div nz-col [nzSpan]=\"3\" class=\"yz-application-topic\">\n <div class=\"yz-application-topic-list\">\n @if (showAllMenu) {\n <div data-event-id=\"_nav_topic\" data-name=\"全部应用\" class=\"yz-application-text\" (click)=\"attachNav('all')\">{{ 'mode.nav.all' | i18n }} </div>\n }\n @if (showMineMenu) {\n <div data-event-id=\"_nav_topic\" data-name=\"我的应用\" class=\"yz-application-text\" (click)=\"attachNav('mine')\">{{ 'mode.nav.mine' | i18n }} </div>\n }\n @for (nav of state.topics; track nav) {\n <div data-event-id=\"_nav_topic\" [attr.data-name]=\"nav.name | i18n\" class=\"yz-application-text\" (click)=\"attachNav('other', nav)\">{{ nav.name | i18n }} </div>\n }\n </div>\n </div>\n <div nz-col [nzSpan]=\"21\" class=\"yz-application-container\">\n @switch (state.type) {\n @case ('all') {\n <div>\n <ng-template [ngTemplateOutlet]=\"search\" />\n <ng-template [ngTemplateOutlet]=\"ld\" />\n </div>\n }\n @case ('mine') {\n <div>\n <ng-template [ngTemplateOutlet]=\"search\" />\n <ng-template [ngTemplateOutlet]=\"ld\" />\n </div>\n }\n @case ('other') {\n <div class=\"yz-application-list yz-application-list-other\">\n <div class=\"yz-application-list-item\">\n <ul>\n @for (nav of state.list; track nav) {\n <li data-event-id=\"_nav_item\" [attr.data-name]=\"nav.name | i18n\" (click)=\"open(nav)\">\n <a href=\"javascript:;\">\n <h4>{{ nav.name | i18n }}</h4>\n <p>{{ nav.intro | i18n }}</p>\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n }\n }\n </div>\n </div>\n `,\n imports: [I18nPipe, FormsModule, NzFormModule, NzInputModule, CommonModule, NzGridModule, NzIconModule]\n})\nexport class YunzaiNavApplicationComponent implements OnInit, OnDestroy {\n private readonly config = mergeBisConfig(inject(YunzaiConfigService));\n private readonly http = inject(_HttpClient);\n private readonly win = inject(WINDOW);\n private readonly i18n = inject(YunzaiHttpI18NService);\n private readonly destroy$ = new Subject();\n\n state: LayoutNavApplicationState = {\n active: false,\n type: 'all',\n topic: undefined,\n topics: [],\n list: [],\n search: null\n };\n\n get showAllMenu(): boolean {\n if (this.config.nav) return this.config.nav!.all!;\n return true;\n }\n\n get showMineMenu(): boolean {\n if (this.config.nav) return this.config.nav!.mine!;\n return true;\n }\n\n ngOnInit(): void {\n this.fetchAllTopic();\n this.attachNav('all');\n this.win.addEventListener('click', (event: any) => {\n const { target } = event;\n const btn = this.win.document.getElementById('navBtn');\n const dropdown = this.win.document.getElementById('navDropdown');\n if (btn && dropdown && !dropdown.contains(target) && !btn.contains(target)) {\n this.state.active = false;\n }\n });\n }\n\n fetchAllTopic(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.topics = getTopics()!;\n }\n\n attachNav(type: 'all' | 'mine' | 'other', topic?: YunzaiNavTopic): void {\n this.state.type = type;\n this.clearSearch();\n if (type === 'all') {\n this.displayAllNav();\n }\n if (type === 'mine') {\n this.displayMineNav();\n }\n if (type === 'other' && topic) {\n this.displayOtherNav(topic);\n }\n }\n\n clearSearch(): void {\n this.state.search = null;\n }\n\n displayAllNav(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.list = getTopics()!;\n }\n\n displayMineNav(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.list = getTopics()!\n .filter((topic: YunzaiNavTopic) => {\n topic.children = topic.children.filter((child: YunzaiNavTopic) => {\n return child.auth;\n });\n return topic;\n })\n .filter((topic: YunzaiNavTopic) => {\n return topic.children.length > 0;\n });\n }\n\n displayOtherNav(topic: YunzaiNavTopic): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.topic = topic;\n const temp: YunzaiNavTopic[] = getTopics()!;\n this.state.list = temp.filter(t => t.key === topic.key)[0].children;\n }\n\n diffChange(flag?: boolean): void {\n if (flag) {\n this.state.active = flag;\n } else {\n this.state.active = !this.state.active;\n }\n }\n\n open(topic: YunzaiNavTopic): void {\n if (topic.key) {\n this.http\n .post(`/app-manager/web-scan/save`, {\n appId: topic.key,\n createDate: new Date()\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe();\n }\n switch (topic.target) {\n case 'href':\n this.win.location.href = topic.url;\n break;\n case 'blank':\n this.win.open(topic.url);\n break;\n case 'target':\n this.win.open(topic.url);\n break;\n default:\n this.win.location.href = topic.url;\n break;\n }\n }\n\n onSearch(): void {\n const [, getTopics] = useLocalStorageHeader();\n const temp: YunzaiNavTopic[] = getTopics()!;\n if (this.state.search) {\n this.state.list = temp\n .filter((topic: YunzaiNavTopic) => {\n if (this.i18n.fanyi(topic.name).includes(this.state.search!)) {\n return topic;\n } else {\n topic.children = topic.children.filter((child: YunzaiNavTopic) => {\n return this.i18n.fanyi(child.name).includes(this.state.search!);\n });\n return topic;\n }\n })\n .filter((topic: YunzaiNavTopic) => {\n return topic.children.length > 0;\n });\n } else {\n const [, getTopics] = useLocalStorageHeader();\n this.state.list = getTopics()!;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n}\n","import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { _HttpClient, I18nPipe } from '@yelon/theme';\nimport { LayoutNavGroupState, useLocalStorageHeader, WINDOW, YunzaiNavTopic } from '@yelon/util';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\n@Component({\n selector: `yunzai-layout-nav-group`,\n template: `\n <div class=\"yz-application-group\">\n <nz-tabset>\n @for (menu of state.topics; track menu) {\n <nz-tab [nzTitle]=\"groupTitleTpl\">\n <ng-template #groupTitleTpl>\n <a data-event-id=\"_nav_topic\" [attr.data-name]=\"menu.name | i18n\" nz-dropdown [nzDropdownMenu]=\"menuTpl\" [nzTrigger]=\"'click'\" [nzOverlayClassName]=\"'yz-application-dropdown'\">\n @if (menu.icon) {\n <nz-icon [nzType]=\"menu.icon\" nzTheme=\"outline\"></nz-icon>\n }\n {{ menu.name | i18n }}\n @if (menu.children && menu.children.length > 0) {\n <nz-icon nzType=\"down\" nzTheme=\"outline\"></nz-icon>\n }\n </a>\n <nz-dropdown-menu #menuTpl=\"nzDropdownMenu\">\n @if (menu.children && menu.children.length > 0) {\n <ul nz-menu nzSelectable>\n @for (item of menu.children; track item) {\n <ng-container>\n @if (item.auth) {\n <li data-event-id=\"_nav_item\" [attr.data-name]=\"item.name | i18n\" nz-menu-item (click)=\"open(item)\">\n @if (item.icon) {\n <nz-icon [nzType]=\"item.icon\" nzTheme=\"outline\"></nz-icon>\n }\n {{ item.name | i18n }}\n </li>\n }\n </ng-container>\n }\n </ul>\n }\n </nz-dropdown-menu>\n </ng-template>\n </nz-tab>\n }\n </nz-tabset>\n </div>\n `,\n\n imports: [NzIconModule, NzDropDownModule, I18nPipe, NzTabsModule]\n})\nexport class YunzaiLayoutNavGroupComponent implements OnInit, OnDestroy {\n private readonly http = inject(_HttpClient);\n private destroy$ = new Subject();\n private readonly win = inject(WINDOW);\n state: LayoutNavGroupState = {\n topics: []\n };\n\n ngOnInit(): void {\n const [, getTopics] = useLocalStorageHeader();\n this.state.topics = getTopics() || [];\n }\n\n open(topic: YunzaiNavTopic): void {\n if (topic.key) {\n this.http\n .post(`/app-manager/web-scan/save`, {\n appId: topic.key,\n createDate: new Date()\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe();\n }\n switch (topic.target) {\n case 'href':\n this.win.location.href = topic.url;\n break;\n case 'blank':\n this.win.open(topic.url);\n break;\n case 'target':\n this.win.open(topic.url);\n break;\n default:\n this.win.location.href = topic.url;\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: `yunzai-layout-nav-tile`,\n template: `<ng-template />`\n})\nexport class YunzaiLayoutNavTileComponent {}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, inject, OnInit } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ReuseTabModule } from '@yelon/abc/reuse-tab';\nimport { YunzaiWidgetsModule } from '@yelon/bis/yunzai-widgets';\nimport { StompService } from '@yelon/socket';\nimport { I18nPipe } from '@yelon/theme';\nimport { LayoutDefaultModule, LayoutDefaultOptions, LayoutDisplayService } from '@yelon/theme/layout-default';\nimport { ThemeBtnModule } from '@yelon/theme/theme-btn';\nimport {\n hasFavicon,\n LayoutBasicAside,\n LayoutBasicDisplay,\n log,\n NavType,\n setFavicon,\n useLocalStorageCurrent,\n useLocalStorageDefaultRoute,\n useLocalStorageHeaderType,\n useLocalStorageProjectInfo,\n WINDOW,\n YUNZAI_CONFIG,\n YunzaiBusinessConfig,\n YunzaiConfig,\n YunzaiHeaderStyle,\n YunzaiProjectInfo\n} from '@yelon/util';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { YunzaiNavApplicationComponent } from './layout-nav-application.component';\nimport { YunzaiLayoutNavGroupComponent } from './layout-nav-group.component';\nimport { YunzaiLayoutNavTileComponent } from './layout-nav-tile.component';\n\nexport interface LayoutBasicState {\n options: LayoutDefaultOptions;\n aside: LayoutBasicAside;\n display: LayoutBasicDisplay;\n navType: NavType;\n}\n\nexport interface ApplicationInfoInterface {\n id?: string;\n name?: string;\n showName?: string;\n lastVersion?: string;\n versionNum?: string;\n currentVersion?: string;\n firstDeploymentDate?: string;\n currentDeploymentDate?: string;\n lastPushDate?: string;\n}\n\n@Component({\n selector: `yunzai-layout-basic`,\n template: `\n <layout-default [options]=\"options\" [asideUser]=\"asideUserTpl\" [content]=\"displayReusetab ? contentTpl : noneTpl\">\n <layout-default-header-item direction=\"left\">\n <ng-container [ngSwitch]=\"navType\">\n <ng-container *ngSwitchCase=\"NavType.APPLICATION\">\n <yunzai-layout-nav-application />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.GROUP\">\n <yunzai-layout-nav-group />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.TILE\">\n <yunzai-layout-nav-tile />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.BLANK\" />\n <ng-container *ngSwitchCase=\"NavType.TABS\" />\n <ng-container *ngSwitchDefault>\n <yunzai-layout-nav-application />\n </ng-container>\n </ng-container>\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n <yunzai-header-notify />\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n <theme-btn />\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n <div data-event-id=\"_nav_settings\" layout-default-header-item-trigger nz-dropdown [nzDropdownMenu]=\"settingsMenu\" nzTrigger=\"click\" nzPlacement=\"bottomRight\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\"></nz-icon>\n </div>\n <nz-dropdown-menu #settingsMenu=\"nzDropdownMenu\">\n <div nz-menu style=\"width: 200px;\">\n <div data-event-id=\"_nav_mode\" nz-menu-item>\n {{ 'mode.nav' | i18n }}\n </div>\n\n @if (headerStyleList.length > 1) {\n @for (i of headerStyleList; track $index) {\n <div data-event-id=\"_nav_mode\" nz-menu-item [attr.data-type]=\"i.value\" (click)=\"onNavTypeChange(i.value)\">\n <ng-container [ngSwitch]=\"i.value\">\n <ng-container *ngSwitchCase=\"NavType.APPLICATION\">\n <nz-icon nzType=\"appstore\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.GROUP\">\n <nz-icon nzType=\"group\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.TILE\">\n <nz-icon nzType=\"dash\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.BLANK\">\n <nz-icon nzType=\"border\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"NavType.TABS\">\n <nz-icon nzType=\"insert-row-above\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <nz-icon nzType=\"appstore\" nzTheme=\"outline\" class=\"mr-sm\" />\n </ng-container>\n {{ 'mode.nav.' + i.value | i18n }}\n </ng-container>\n </div>\n }\n }\n\n <div data-event-id=\"_nav_fullscreen\" nz-menu-item>\n <yunzai-header-fullscreen />\n </div>\n <div data-event-id=\"_nav_clearstorage\" nz-menu-item>\n <yunzai-header-clear-storage />\n </div>\n <div data-event-id=\"_nav_i18n\" nz-menu-item>\n <yunzai-header-i18n />\n </div>\n </div>\n </nz-dropdown-menu>\n </layout-default-header-item>\n <layout-default-header-item direction=\"right\">\n <yunzai-header-user />\n </layout-default-header-item>\n </layout-default>\n <ng-template #asideUserTpl>\n <div data-event-id=\"_route_user\" class=\"yunzai-default__aside-user\">\n <nz-avatar class=\"yunzai-default__aside-user-avatar\" [nzSize]=\"40\" [nzSrc]=\"aside.icon\" (click)=\"aboutApplication()\" />\n <div class=\"yunzai-default__aside-user-info\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"userMenu\">\n <strong>{{ aside.name | i18n }}</strong>\n <p>{{ aside.intro | i18n }}</p>\n </div>\n </div>\n <nz-dropdown-menu #userMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li data-event-id=\"_route_backhome\" nz-menu-item routerLink=\"/\">{{ 'back.home' | i18n }}</li>\n </ul>\n </nz-dropdown-menu>\n </ng-template>\n <ng-template #contentTpl>\n <reuse-tab #reuseTab [style]=\"reusetabCSS\" />\n <router-outlet (activate)=\"reuseTab.activate($event)\" (attach)=\"reuseTab.activate($event)\" />\n </ng-template>\n <ng-template #noneTpl>\n <router-outlet />\n </ng-template>\n\n <nz-modal nzTitle=\"关于本应用\" [(nzVisible)]=\"applicationModal.isVisible\" [nzOkText]=\"null\" [nzCancelText]=\"'关闭'\" [nzWidth]=\"700\" (nzOnCancel)=\"applicationModal.isVisible = false\">\n <ng-container *nzModalContent>\n <nz-skeleton [nzLoading]=\"applicationModal.loading\" [nzActive]=\"true\">\n <nz-descriptions nzBordered [nzSize]=\"'middle'\" [nzColumn]=\"{ xxl: 2, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }\">\n <nz-descriptions-item nzTitle=\"应用名称\">{{ applicationInfo?.showName }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"应用标识\">{{ applicationInfo?.name }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"版本总数\">{{ applicationInfo?.versionNum }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"应用首次部署时间\">{{ applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"当前版本\">{{ applicationInfo?.currentVersion }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"当前版本部署时间\">{{ applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"最新版本\">{{ applicationInfo?.lastVersion }}</nz-descriptions-item>\n <nz-descriptions-item nzTitle=\"最新版本发布时间\">{{ applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>\n </nz-descriptions>\n </nz-skeleton>\n </ng-container>\n </nz-modal>\n `,\n imports: [\n LayoutDefaultModule,\n RouterModule,\n ReuseTabModule,\n CommonModule,\n I18nPipe,\n NzDropDownModule,\n NzAvatarModule,\n NzIconModule,\n NzModalModule,\n NzSkeletonModule,\n NzDescriptionsModule,\n ThemeBtnModule,\n YunzaiWidgetsModule,\n YunzaiNavApplicationComponent,\n YunzaiLayoutNavGroupComponent,\n YunzaiLayoutNavTileComponent\n ]\n})\nexport class YunzaiLayoutBasicComponent implements OnInit {\n private readonly stomp = inject(StompService);\n private readonly win = inject(WINDOW);\n private readonly layoutDisplayService = inject(LayoutDisplayService);\n private readonly conf: YunzaiConfig = inject(YUNZAI_CONFIG);\n\n public NavType = NavType;\n private state: LayoutBasicState = {\n options: {\n logoExpanded: `./assets/logo-full.svg`,\n logoCollapsed: `./assets/logo.svg`\n },\n aside: {\n name: '',\n intro: '',\n icon: ''\n },\n display: {\n nav: true,\n aside: true,\n reusetab: true\n },\n navType: NavType.APPLICATION\n };\n\n headerStyleList: YunzaiHeaderStyle[] = [];\n\n applicationInfo!: ApplicationInfoInterface;\n\n applicationModal = {\n isVisible: false,\n loading: false\n };\n\n private readonly httpClient = inject(HttpClient);\n private config!: YunzaiBusinessConfig;\n\n get options(): LayoutDefaultOptions {\n return this.state.options;\n }\n\n get navType(): NavType {\n return this.state.navType;\n }\n\n get aside(): LayoutBasicAside {\n return this.state.aside;\n }\n\n get displayReusetab(): boolean {\n return this.state.display.reusetab;\n }\n\n get reusetabCSS(): any {\n let cascadingStyleSheet = {};\n if (!this.state.display.nav) {\n cascadingStyleSheet = {\n ...cascadingStyleSheet,\n top: '0px'\n };\n }\n if (!this.state.display.aside) {\n cascadingStyleSheet = {\n ...cascadingStyleSheet,\n left: '0px'\n };\n }\n return cascadingStyleSheet;\n }\n\n ngOnInit(): void {\n this.config = this.conf.bis!;\n this.initLogo();\n this.initFavicon();\n this.initNavType();\n this.initAside();\n this.addLayoutDisplayListener();\n this.stomp.listen();\n this.toIndex();\n }\n\n initFavicon(): void {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n if (projectInfo.faviconUrl) {\n hasFavicon(projectInfo.faviconUrl).then((has: boolean) => {\n if (has) {\n setFavicon(projectInfo.faviconUrl);\n } else {\n setFavicon('./assets/favicon.ico');\n }\n });\n }\n }\n\n initAside(): void {\n const [, getCurrent] = useLocalStorageCurrent();\n const aside: LayoutBasicAside = getCurrent()!;\n this.state.aside = { ...aside };\n }\n\n initLogo(): void {\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n this.state.options.logoExpanded = projectInfo.maxLogoUrl ? projectInfo.maxLogoUrl : `./assets/logo-full.svg`;\n this.state.options.logoCollapsed = projectInfo.miniLogoUrl ? projectInfo.miniLogoUrl : `./assets/logo.svg`;\n }\n\n initNavType(): void {\n const [, getHeaderType] = useLocalStorageHeaderType();\n const [, getProjectInfo] = useLocalStorageProjectInfo();\n const navType: NavType | null = getHeaderType();\n const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n if (navType !== null) {\n this.state.navType = navType;\n } else {\n this.state.navType = NavType.APPLICATION;\n }\n if (projectInfo.headerStyle && projectInfo.headerStyle.length > 0) {\n this.headerStyleList = projectInfo.headerStyle;\n const hasThis = this.headerStyleList.some(item => item.value === this.state.navType);\n if (!hasThis) {\n this.state.navType = projectInfo.headerStyle[0].value as NavType;\n const [setHeaderType] = useLocalStorageHeaderType();\n setHeaderType(this.state.navType);\n }\n }\n }\n\n toIndex(): void {\n const [, getDefaultRoute] = useLocalStorageDefaultRoute();\n const defaultRoute = getDefaultRoute()!;\n log('YunzaiLayoutBasicComponent: ', `todo: the default route was ${defaultRoute}, 但是还没想好如何实现.`);\n }\n\n onNavTypeChange(type: NavType | string): void {\n const [setHeaderType] = useLocalStorageHeaderType();\n setHeaderType(type as NavType);\n this.win.location.reload();\n }\n\n addLayoutDisplayListener(): void {\n this.layoutDisplayService.listen('reuseTab', (display: boolean) => {\n this.state.display.reusetab = display;\n });\n this.layoutDisplayService.listen('nav', (display: boolean) => {\n this.state.display.nav = display;\n });\n\n this.layoutDisplayService.listen('aside', (display: boolean) => {\n this.state.display.aside = display;\n });\n }\n\n // 关于本应用\n aboutApplication(): void {\n const urlArr = window.location.pathname.split(`${this.config.baseUrl}/`);\n if (urlArr.length > 1) {\n // 应用标识,截取路径中 /backstage/后第一个字符串\n // 例: http://222.30.194.61/backstage/auth/page/oafportal/#/base/menu 中 auth\n const name = urlArr[1].split('/')[0];\n this.applicationModal.isVisible = true;\n this.applicationModal.loading = true;\n this.httpClient.get(`/basic/api/app/aboutApp?name=${name}`).subscribe(\n (response: any) => {\n this.applicationModal.loading = false;\n if (response.data) {\n this.applicationInfo = response.data;\n }\n },\n () => {\n this.applicationModal.loading = false;\n }\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { I18nPipe } from '@yelon/theme';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\nimport { YunzaiLayoutBasicComponent } from './layout-basic.component';\nimport { YunzaiLayoutNavGroupComponent } from './layout-nav-group.component';\nimport { YunzaiLayoutNavTileComponent } from './layout-nav-tile.component';\n\nconst COMPONENTS = [YunzaiLayoutNavTileComponent, YunzaiLayoutNavGroupComponent, YunzaiLayoutBasicComponent];\n\n@NgModule({\n imports: [\n I18nPipe,\n FormsModule,\n NzFormModule,\n NzInputModule,\n CommonModule,\n NzGridModule,\n NzIconModule,\n NzDropDownModule,\n NzTabsModule,\n ...COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class YunzaiLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","i5","i6","i8"],"mappings":"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"}
|
package/layout/style/index.less
CHANGED
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
font-weight: @yz-application-list-ul-h5-font-weight;
|
|
79
79
|
line-height: @yz-application-list-ul-h5-line-height;
|
|
80
80
|
padding: @yz-application-list-ul-h5-padding;
|
|
81
|
-
color: @yz-application-
|
|
81
|
+
color: @yz-application-list-ul-h5-color;
|
|
82
82
|
border-bottom: @yz-application-list-ul-h5-border-bottom;
|
|
83
83
|
}
|
|
84
84
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yelon/bis",
|
|
3
|
-
"version": "20.0.
|
|
3
|
+
"version": "20.0.2",
|
|
4
4
|
"author": "devcui<devcui@outlook.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"ng-zorro-antd": "^20.1.0",
|
|
25
|
-
"@yelon/acl": "^20.0.
|
|
26
|
-
"@yelon/auth": "^20.0.
|
|
27
|
-
"@yelon/theme": "^20.0.
|
|
28
|
-
"@yelon/mock": "^20.0.
|
|
29
|
-
"@yelon/cache": "^20.0.
|
|
30
|
-
"@yelon/chart": "^20.0.
|
|
31
|
-
"@yelon/form": "^20.0.
|
|
32
|
-
"@yelon/testing": "^20.0.
|
|
33
|
-
"@yelon/util": "^20.0.
|
|
34
|
-
"@yelon/bcs": "^20.0.
|
|
25
|
+
"@yelon/acl": "^20.0.2",
|
|
26
|
+
"@yelon/auth": "^20.0.2",
|
|
27
|
+
"@yelon/theme": "^20.0.2",
|
|
28
|
+
"@yelon/mock": "^20.0.2",
|
|
29
|
+
"@yelon/cache": "^20.0.2",
|
|
30
|
+
"@yelon/chart": "^20.0.2",
|
|
31
|
+
"@yelon/form": "^20.0.2",
|
|
32
|
+
"@yelon/testing": "^20.0.2",
|
|
33
|
+
"@yelon/util": "^20.0.2",
|
|
34
|
+
"@yelon/bcs": "^20.0.2",
|
|
35
35
|
"tslib": "^2.3.0"
|
|
36
36
|
},
|
|
37
37
|
"module": "fesm2022/bis.mjs",
|