@yelon/bis 18.1.3 → 18.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/public_api.mjs +2 -1
- package/esm2022/src/website/layout-website-01.component.mjs +3 -4
- package/esm2022/src/website/layout-website-02.component.mjs +204 -0
- package/fesm2022/bis.mjs +193 -4
- package/fesm2022/bis.mjs.map +1 -1
- package/index.less +1 -0
- package/layout/style/layout-website-02.less +83 -0
- package/package.json +11 -11
- package/public_api.d.ts +1 -0
- package/src/website/layout-website-02.component.d.ts +29 -0
- package/theme-default.less +17 -0
package/esm2022/public_api.mjs
CHANGED
|
@@ -7,4 +7,5 @@ export * from './src/startup.service';
|
|
|
7
7
|
export * from './src/yunzai-analysis-addon.guard';
|
|
8
8
|
export * from './src/yunzai-act.guard';
|
|
9
9
|
export * from './src/website/layout-website-01.component';
|
|
10
|
-
|
|
10
|
+
export * from './src/website/layout-website-02.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3Byb3ZpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYmlzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMveXVuemFpLWRlZmF1bHQuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcmVmcmVzaC10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zdGFydHVwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMveXVuemFpLWFuYWx5c2lzLWFkZG9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3l1bnphaS1hY3QuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvd2Vic2l0ZS9sYXlvdXQtd2Vic2l0ZS0wMS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvd2Vic2l0ZS9sYXlvdXQtd2Vic2l0ZS0wMi5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import {
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
3
|
import { RouterOutlet } from '@angular/router';
|
|
4
4
|
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
5
5
|
import { YunzaiStartupService } from '../startup.service';
|
|
@@ -104,7 +104,7 @@ export class YunzaiLayoutWebsite01Component {
|
|
|
104
104
|
<router-outlet />
|
|
105
105
|
</main>
|
|
106
106
|
</div>
|
|
107
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }]
|
|
107
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
108
108
|
}
|
|
109
109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: YunzaiLayoutWebsite01Component, decorators: [{
|
|
110
110
|
type: Component,
|
|
@@ -158,7 +158,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
158
158
|
</main>
|
|
159
159
|
</div>
|
|
160
160
|
`,
|
|
161
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
162
161
|
standalone: true,
|
|
163
162
|
imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]
|
|
164
163
|
}]
|
|
@@ -171,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
171
170
|
}], contentTpl: [{
|
|
172
171
|
type: Input
|
|
173
172
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdlYnNpdGUtMDEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy93ZWJzaXRlL2xheW91dC13ZWJzaXRlLTAxLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUVMLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLG1CQUFtQixFQUNwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQXVEbEQsTUFBTSxPQUFPLDhCQUE4QjtJQXJEM0M7UUF1RFcsWUFBTyxHQUFZLE1BQU0sQ0FBQztRQUMxQixXQUFNLEdBQVksRUFBRSxDQUFDO1FBR2IsaUJBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxRQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBNkN2QztJQTNDQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLE9BQU8sT0FBTyxFQUFFLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsR0FBRywwQkFBMEIsRUFBRSxDQUFDO1FBQ3pELE9BQU8sY0FBYyxFQUFFLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLFlBQVksQ0FBQztRQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxPQUFPLHVCQUF1QixDQUFDO0lBQzdELENBQUM7SUFFRCxFQUFFLENBQUMsR0FBWTtRQUNiLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDeEMsQ0FBQzs4R0FyRFUsOEJBQThCO2tHQUE5Qiw4QkFBOEIsb0xBbkQvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsNERBRVMsWUFBWSxzSkFBRSxRQUFRLDRDQUFFLFlBQVksOEJBQWUsZ0JBQWdCLDI3QkFBRSxZQUFZLGtOQUFFLGdCQUFnQjs7MkZBRWxHLDhCQUE4QjtrQkFyRDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7aUJBQy9HOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgWUFfU0VSVklDRV9UT0tFTiB9IGZyb20gJ0B5ZWxvbi9hdXRoJztcbmltcG9ydCB7IFl1bnphaVN0YXJ0dXBTZXJ2aWNlIH0gZnJvbSAnLi4vc3RhcnR1cC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7XG4gIFl1bnphaVByb2ZpbGUsXG4gIHVzZUxvY2FsU3RvcmFnZVByb2plY3RJbmZvLFxuICB1c2VMb2NhbFN0b3JhZ2VVc2VyLFxuICBXSU5ET1csXG4gIFl1bnphaUNvbmZpZ1NlcnZpY2Vcbn0gZnJvbSAnQHllbG9uL3V0aWwnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56RHJvcERvd25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2Ryb3Bkb3duJztcbmltcG9ydCB7IE56STE4bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dW56YWktbGF5b3V0LXdlYnNpdGUtMDEnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAxLW5hdl9fdXNlclwiPlxuICAgICAgICBAaWYgKGlzTG9naW4pIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1saW5rXCJcbiAgICAgICAgICAgIG56LWRyb3Bkb3duXG4gICAgICAgICAgICBbbnpEcm9wZG93bk1lbnVdPVwibWVudVwiXG4gICAgICAgICAgICBbbnpPdmVybGF5U3R5bGVdPVwieyB3aWR0aDogJzEyMHB4JyB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBuei1pY29uIG56VHlwZT1cInVzZXJcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj57eyBfdXNlcm5hbWUgfX08c3BhbiBuei1pY29uIG56VHlwZT1cImRvd25cIj48L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxuei1kcm9wZG93bi1tZW51ICNtZW51PVwibnpEcm9wZG93bk1lbnVcIj5cbiAgICAgICAgICAgIDx1bCBuei1tZW51IG56U2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgQGZvciAobGluayBvZiBfbGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaSBuei1tZW51LWl0ZW0gY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1saW5rX19saVwiIChjbGljayk9XCJ0byhsaW5rLnVybClcIj57eyBsaW5rLm5hbWUgfX08L2xpPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxsaSBuei1tZW51LWl0ZW0gbnpEYW5nZXIgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1saW5rX19saVwiIChjbGljayk9XCJsb2dvdXQoKVwiXG4gICAgICAgICAgICAgICAgPnt7ICdtZW51LmFjY291bnQubG9nb3V0JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9uei1kcm9wZG93bi1tZW51PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8YSBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAxLWxpbmtcIiAoY2xpY2spPVwibG9naW4oKVwiPlxuICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJsb2dpblwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPnt7ICdhcHAubG9naW4ubG9naW4nIHwgaTE4biB9fTwvYVxuICAgICAgICAgID5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1uYXZcIj5cbiAgICAgICAgQGlmIChfbG9nb1NyYykge1xuICAgICAgICAgIDxpbWcgW2FsdF09XCJfbG9nb0FsdFwiIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDEtbmF2X19sb2dvXCIgW3NyY109XCJfbG9nb1NyY1wiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1uYXZfX2xvZ29fX2Z1bGxcIj5MT0dPPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDEtbmF2X19jb250ZW50XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2NvbnRlbnRUcGxcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAxLW5hdl9fc2xvZ2FuXCI+XG4gICAgICAgICAge3sgX3Nsb2dhbiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuICAgICAgPG1haW4gY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1jb250YWluZXJcIj5cbiAgICAgICAgPHJvdXRlci1vdXRsZXQgLz5cbiAgICAgIDwvbWFpbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JvdXRlck91dGxldCwgSTE4blBpcGUsIE56STE4bk1vZHVsZSwgTmdGb3IsIE5nSWYsIE56RHJvcERvd25Nb2R1bGUsIE56SWNvbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgWXVuemFpTGF5b3V0V2Vic2l0ZTAxQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbG9nb1NyYz86IHN0cmluZyB8IE56U2FmZUFueTtcbiAgQElucHV0KCkgbG9nb0FsdD86IHN0cmluZyA9ICdsb2dvJztcbiAgQElucHV0KCkgc2xvZ2FuPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUcGw/OiBUZW1wbGF0ZVJlZjx2b2lkPiB8IE56U2FmZUFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChZQV9TRVJWSUNFX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFl1bnphaUNvbmZpZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0dXBTcnYgPSBpbmplY3QoWXVuemFpU3RhcnR1cFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbiA9IGluamVjdChXSU5ET1cpO1xuXG4gIGdldCBfbG9nb1NyYygpOiBzdHJpbmcgfCBOelNhZmVBbnkge1xuICAgIHJldHVybiB0aGlzLmxvZ29TcmM7XG4gIH1cblxuICBnZXQgX2xvZ29BbHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2dvQWx0IHx8ICdsb2dvJztcbiAgfVxuXG4gIGdldCBfc2xvZ2FuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2xvZ2FuIHx8ICcnO1xuICB9XG5cbiAgZ2V0IF9jb250ZW50VHBsKCk6IFRlbXBsYXRlUmVmPHZvaWQ+IHwgTnpTYWZlQW55IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHBsO1xuICB9XG5cbiAgZ2V0IF91c2VybmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IFtfLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICByZXR1cm4gZ2V0VXNlcigpPy5yZWFsbmFtZSB8fCAnJztcbiAgfVxuXG4gIGdldCBpc0xvZ2luKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtfLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICByZXR1cm4gISF0aGlzLnRva2VuU2VydmljZS5nZXQoKT8uYWNjZXNzX3Rva2VuICYmICEhZ2V0VXNlcigpO1xuICB9XG5cbiAgZ2V0IF9saW5rcygpOiBZdW56YWlQcm9maWxlW10ge1xuICAgIGNvbnN0IFtfLCBnZXRQcm9qZWN0SW5mb10gPSB1c2VMb2NhbFN0b3JhZ2VQcm9qZWN0SW5mbygpO1xuICAgIHJldHVybiBnZXRQcm9qZWN0SW5mbygpPy5wcm9maWxlTGlzdCB8fCBbXTtcbiAgfVxuXG4gIGxvZ2luKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnR1cFNydi5sb2FkKHsgZm9yY2U6IHRydWUgfSkuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgfVxuXG4gIGxvZ291dCgpOiB2b2lkIHtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYmlzJyk/LmJhc2VVcmwgfHwgJy9iYWNrc3RhZ2UnO1xuICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSBgJHtiYXNlVXJsfS9jYXMtcHJveHkvYXBwL2xvZ291dGA7XG4gIH1cblxuICB0byh1cmw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodXJsKSB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { RouterOutlet } from '@angular/router';
|
|
4
|
+
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
5
|
+
import { YunzaiStartupService } from '../startup.service';
|
|
6
|
+
import { I18nPipe } from '@yelon/theme';
|
|
7
|
+
import { useLocalStorageProjectInfo, useLocalStorageUser, WINDOW, YunzaiConfigService } from '@yelon/util';
|
|
8
|
+
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
|
|
9
|
+
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
|
|
10
|
+
import { NzI18nModule } from 'ng-zorro-antd/i18n';
|
|
11
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "ng-zorro-antd/menu";
|
|
14
|
+
import * as i2 from "ng-zorro-antd/dropdown";
|
|
15
|
+
import * as i3 from "ng-zorro-antd/icon";
|
|
16
|
+
import * as i4 from "ng-zorro-antd/avatar";
|
|
17
|
+
export class YunzaiLayoutWebsite02Component {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.logoAlt = 'logo';
|
|
20
|
+
this.userMenuShow = false;
|
|
21
|
+
this.tokenService = inject(YA_SERVICE_TOKEN);
|
|
22
|
+
this.configService = inject(YunzaiConfigService);
|
|
23
|
+
this.startupSrv = inject(YunzaiStartupService);
|
|
24
|
+
this.win = inject(WINDOW);
|
|
25
|
+
}
|
|
26
|
+
get _logoSrc() {
|
|
27
|
+
return this.logoSrc;
|
|
28
|
+
}
|
|
29
|
+
get _logoAlt() {
|
|
30
|
+
return this.logoAlt || 'logo';
|
|
31
|
+
}
|
|
32
|
+
get _userMenuShow() {
|
|
33
|
+
return this.userMenuShow || false;
|
|
34
|
+
}
|
|
35
|
+
get _slogan() {
|
|
36
|
+
return this.slogan;
|
|
37
|
+
}
|
|
38
|
+
get _contentTpl() {
|
|
39
|
+
return this.contentTpl;
|
|
40
|
+
}
|
|
41
|
+
get _username() {
|
|
42
|
+
const [_, getUser] = useLocalStorageUser();
|
|
43
|
+
return getUser()?.realname || '';
|
|
44
|
+
}
|
|
45
|
+
get _avatar() {
|
|
46
|
+
const [_, getUser] = useLocalStorageUser();
|
|
47
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
48
|
+
const avatarUrl = getUser()?.avatarId ? `${baseUrl}/filecenter/file/${getUser()?.avatarId}` : undefined;
|
|
49
|
+
return avatarUrl;
|
|
50
|
+
}
|
|
51
|
+
get isLogin() {
|
|
52
|
+
const [_, getUser] = useLocalStorageUser();
|
|
53
|
+
return !!this.tokenService.get()?.access_token && !!getUser();
|
|
54
|
+
}
|
|
55
|
+
get _links() {
|
|
56
|
+
const [_, getProjectInfo] = useLocalStorageProjectInfo();
|
|
57
|
+
return getProjectInfo()?.profileList || [];
|
|
58
|
+
}
|
|
59
|
+
login() {
|
|
60
|
+
this.startupSrv.load({ force: true }).subscribe(() => { });
|
|
61
|
+
}
|
|
62
|
+
logout() {
|
|
63
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
64
|
+
this.win.location.href = `${baseUrl}/cas-proxy/app/logout`;
|
|
65
|
+
}
|
|
66
|
+
to(url) {
|
|
67
|
+
if (url)
|
|
68
|
+
this.win.location.href = url;
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: YunzaiLayoutWebsite02Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: YunzaiLayoutWebsite02Component, isStandalone: true, selector: "yunzai-layout-website-02", inputs: { logoSrc: "logoSrc", logoAlt: "logoAlt", userMenuShow: "userMenuShow", slogan: "slogan", contentTpl: "contentTpl" }, ngImport: i0, template: `
|
|
72
|
+
<div class="yz-layout-website-02">
|
|
73
|
+
<header class="yz-layout-website-02-nav">
|
|
74
|
+
<div class="yz-layout-website-02-inner-content">
|
|
75
|
+
@if (_logoSrc) {
|
|
76
|
+
<img [alt]="_logoAlt" class="yz-layout-website-02-nav__logo" [src]="_logoSrc" />
|
|
77
|
+
} @else {
|
|
78
|
+
<div class="yz-layout-website-02-nav__logo__full">LOGO</div>
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
<div class="yz-layout-website-02-nav__content">
|
|
82
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div class="yz-layout-website-02-nav-right">
|
|
86
|
+
<div class="yz-layout-website-02-nav__slogan">
|
|
87
|
+
<ng-template *ngTemplateOutlet="_slogan" />
|
|
88
|
+
</div>
|
|
89
|
+
@if (isLogin) {
|
|
90
|
+
<a
|
|
91
|
+
class="yz-layout-website-02-link"
|
|
92
|
+
nz-dropdown
|
|
93
|
+
[nzDropdownMenu]="menu"
|
|
94
|
+
[nzDisabled]="!_userMenuShow"
|
|
95
|
+
[nzPlacement]="'bottomRight'"
|
|
96
|
+
>
|
|
97
|
+
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
98
|
+
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
99
|
+
</a>
|
|
100
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
101
|
+
<ul nz-menu nzSelectable>
|
|
102
|
+
@for (link of _links; track $index) {
|
|
103
|
+
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
104
|
+
}
|
|
105
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
106
|
+
'menu.account.logout' | i18n
|
|
107
|
+
}}</li>
|
|
108
|
+
</ul>
|
|
109
|
+
</nz-dropdown-menu>
|
|
110
|
+
} @else {
|
|
111
|
+
<a class="yz-layout-website-02-link" (click)="login()">
|
|
112
|
+
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
113
|
+
>
|
|
114
|
+
}
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</header>
|
|
118
|
+
<main class="yz-layout-website-02-container">
|
|
119
|
+
<router-outlet />
|
|
120
|
+
</main>
|
|
121
|
+
</div>
|
|
122
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i4.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }] }); }
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: YunzaiLayoutWebsite02Component, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{
|
|
127
|
+
selector: 'yunzai-layout-website-02',
|
|
128
|
+
template: `
|
|
129
|
+
<div class="yz-layout-website-02">
|
|
130
|
+
<header class="yz-layout-website-02-nav">
|
|
131
|
+
<div class="yz-layout-website-02-inner-content">
|
|
132
|
+
@if (_logoSrc) {
|
|
133
|
+
<img [alt]="_logoAlt" class="yz-layout-website-02-nav__logo" [src]="_logoSrc" />
|
|
134
|
+
} @else {
|
|
135
|
+
<div class="yz-layout-website-02-nav__logo__full">LOGO</div>
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
<div class="yz-layout-website-02-nav__content">
|
|
139
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<div class="yz-layout-website-02-nav-right">
|
|
143
|
+
<div class="yz-layout-website-02-nav__slogan">
|
|
144
|
+
<ng-template *ngTemplateOutlet="_slogan" />
|
|
145
|
+
</div>
|
|
146
|
+
@if (isLogin) {
|
|
147
|
+
<a
|
|
148
|
+
class="yz-layout-website-02-link"
|
|
149
|
+
nz-dropdown
|
|
150
|
+
[nzDropdownMenu]="menu"
|
|
151
|
+
[nzDisabled]="!_userMenuShow"
|
|
152
|
+
[nzPlacement]="'bottomRight'"
|
|
153
|
+
>
|
|
154
|
+
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
155
|
+
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
156
|
+
</a>
|
|
157
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
158
|
+
<ul nz-menu nzSelectable>
|
|
159
|
+
@for (link of _links; track $index) {
|
|
160
|
+
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
161
|
+
}
|
|
162
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
163
|
+
'menu.account.logout' | i18n
|
|
164
|
+
}}</li>
|
|
165
|
+
</ul>
|
|
166
|
+
</nz-dropdown-menu>
|
|
167
|
+
} @else {
|
|
168
|
+
<a class="yz-layout-website-02-link" (click)="login()">
|
|
169
|
+
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
170
|
+
>
|
|
171
|
+
}
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</header>
|
|
175
|
+
<main class="yz-layout-website-02-container">
|
|
176
|
+
<router-outlet />
|
|
177
|
+
</main>
|
|
178
|
+
</div>
|
|
179
|
+
`,
|
|
180
|
+
standalone: true,
|
|
181
|
+
imports: [
|
|
182
|
+
RouterOutlet,
|
|
183
|
+
I18nPipe,
|
|
184
|
+
NzI18nModule,
|
|
185
|
+
NgFor,
|
|
186
|
+
NgIf,
|
|
187
|
+
NzDropDownModule,
|
|
188
|
+
NzIconModule,
|
|
189
|
+
NgTemplateOutlet,
|
|
190
|
+
NzAvatarModule
|
|
191
|
+
]
|
|
192
|
+
}]
|
|
193
|
+
}], propDecorators: { logoSrc: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], logoAlt: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], userMenuShow: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], slogan: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], contentTpl: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}] } });
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdlYnNpdGUtMDIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy93ZWJzaXRlL2xheW91dC13ZWJzaXRlLTAyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLG1CQUFtQixFQUVwQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBcUVsRCxNQUFNLE9BQU8sOEJBQThCO0lBbkUzQztRQXFFVyxZQUFPLEdBQVksTUFBTSxDQUFDO1FBQzFCLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBSXZCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENB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LFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbURUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osS0FBSzt3QkFDTCxJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFlBX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICdAeWVsb24vYXV0aCc7XG5pbXBvcnQgeyBZdW56YWlTdGFydHVwU2VydmljZSB9IGZyb20gJy4uL3N0YXJ0dXAuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuUGlwZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQge1xuICB1c2VMb2NhbFN0b3JhZ2VQcm9qZWN0SW5mbyxcbiAgdXNlTG9jYWxTdG9yYWdlVXNlcixcbiAgV0lORE9XLFxuICBZdW56YWlDb25maWdTZXJ2aWNlLFxuICBZdW56YWlQcm9maWxlXG59IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IE56QXZhdGFyTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9hdmF0YXInO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56RHJvcERvd25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2Ryb3Bkb3duJztcbmltcG9ydCB7IE56STE4bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dW56YWktbGF5b3V0LXdlYnNpdGUtMDInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMlwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAyLW5hdlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItaW5uZXItY29udGVudFwiPlxuICAgICAgICAgIEBpZiAoX2xvZ29TcmMpIHtcbiAgICAgICAgICAgIDxpbWcgW2FsdF09XCJfbG9nb0FsdFwiIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbmF2X19sb2dvXCIgW3NyY109XCJfbG9nb1NyY1wiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbmF2X19sb2dvX19mdWxsXCI+TE9HTzwvZGl2PlxuICAgICAgICAgIH1cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1uYXZfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIl9jb250ZW50VHBsXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1uYXYtcmlnaHRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1uYXZfX3Nsb2dhblwiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfc2xvZ2FuXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChpc0xvZ2luKSB7XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1saW5rXCJcbiAgICAgICAgICAgICAgICBuei1kcm9wZG93blxuICAgICAgICAgICAgICAgIFtuekRyb3Bkb3duTWVudV09XCJtZW51XCJcbiAgICAgICAgICAgICAgICBbbnpEaXNhYmxlZF09XCIhX3VzZXJNZW51U2hvd1wiXG4gICAgICAgICAgICAgICAgW256UGxhY2VtZW50XT1cIidib3R0b21SaWdodCdcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG56LWF2YXRhciBuekljb249XCJ1c2VyXCIgW256U3JjXT1cIl9hdmF0YXJcIiAvPjxiPuasoui/juiuv+mXru+8mnt7IF91c2VybmFtZSB9fTwvYj5cbiAgICAgICAgICAgICAgICA8c3BhbiBuei1pY29uIG56VHlwZT1cImRvd25cIiAqbmdJZj1cIl91c2VyTWVudVNob3dcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPG56LWRyb3Bkb3duLW1lbnUgI21lbnU9XCJuekRyb3Bkb3duTWVudVwiPlxuICAgICAgICAgICAgICAgIDx1bCBuei1tZW51IG56U2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgX2xpbmtzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIG56LW1lbnUtaXRlbSBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAyLWxpbmtfX2xpXCIgKGNsaWNrKT1cInRvKGxpbmsudXJsKVwiPnt7IGxpbmsubmFtZSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8bGkgbnotbWVudS1pdGVtIG56RGFuZ2VyIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbGlua19fbGlcIiAoY2xpY2spPVwibG9nb3V0KClcIj57e1xuICAgICAgICAgICAgICAgICAgICAnbWVudS5hY2NvdW50LmxvZ291dCcgfCBpMThuXG4gICAgICAgICAgICAgICAgICB9fTwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9uei1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbGlua1wiIChjbGljayk9XCJsb2dpbigpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJsb2dpblwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPnt7ICdhcHAubG9naW4ubG9naW4nIHwgaTE4biB9fTwvYVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG4gICAgICA8bWFpbiBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAyLWNvbnRhaW5lclwiPlxuICAgICAgICA8cm91dGVyLW91dGxldCAvPlxuICAgICAgPC9tYWluPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIEkxOG5QaXBlLFxuICAgIE56STE4bk1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBOZ0lmLFxuICAgIE56RHJvcERvd25Nb2R1bGUsXG4gICAgTnpJY29uTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTnpBdmF0YXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBZdW56YWlMYXlvdXRXZWJzaXRlMDJDb21wb25lbnQge1xuICBASW5wdXQoKSBsb2dvU3JjPzogc3RyaW5nIHwgTnpTYWZlQW55O1xuICBASW5wdXQoKSBsb2dvQWx0Pzogc3RyaW5nID0gJ2xvZ28nO1xuICBASW5wdXQoKSB1c2VyTWVudVNob3c/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNsb2dhbj86IFRlbXBsYXRlUmVmPHZvaWQ+IHwgTnpTYWZlQW55O1xuICBASW5wdXQoKSBjb250ZW50VHBsPzogVGVtcGxhdGVSZWY8dm9pZD4gfCBOelNhZmVBbnk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlblNlcnZpY2UgPSBpbmplY3QoWUFfU0VSVklDRV9UT0tFTik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZSA9IGluamVjdChZdW56YWlDb25maWdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFydHVwU3J2ID0gaW5qZWN0KFl1bnphaVN0YXJ0dXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW4gPSBpbmplY3QoV0lORE9XKTtcblxuICBnZXQgX2xvZ29TcmMoKTogc3RyaW5nIHwgTnpTYWZlQW55IHtcbiAgICByZXR1cm4gdGhpcy5sb2dvU3JjO1xuICB9XG5cbiAgZ2V0IF9sb2dvQWx0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9nb0FsdCB8fCAnbG9nbyc7XG4gIH1cblxuICBnZXQgX3VzZXJNZW51U2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWVudVNob3cgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgX3Nsb2dhbigpOiBUZW1wbGF0ZVJlZjx2b2lkPiB8IE56U2FmZUFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2xvZ2FuO1xuICB9XG5cbiAgZ2V0IF9jb250ZW50VHBsKCk6IFRlbXBsYXRlUmVmPHZvaWQ+IHwgTnpTYWZlQW55IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHBsO1xuICB9XG5cbiAgZ2V0IF91c2VybmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IFtfLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICByZXR1cm4gZ2V0VXNlcigpPy5yZWFsbmFtZSB8fCAnJztcbiAgfVxuXG4gIGdldCBfYXZhdGFyKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgW18sIGdldFVzZXJdID0gdXNlTG9jYWxTdG9yYWdlVXNlcigpO1xuICAgIGNvbnN0IGJhc2VVcmw6IHN0cmluZyA9IHRoaXMuY29uZmlnU2VydmljZS5nZXQoJ2JpcycpPy5iYXNlVXJsIHx8ICcvYmFja3N0YWdlJztcbiAgICBjb25zdCBhdmF0YXJVcmwgPSBnZXRVc2VyKCk/LmF2YXRhcklkID8gYCR7YmFzZVVybH0vZmlsZWNlbnRlci9maWxlLyR7Z2V0VXNlcigpPy5hdmF0YXJJZH1gIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBhdmF0YXJVcmw7XG4gIH1cblxuICBnZXQgaXNMb2dpbigpOiBib29sZWFuIHtcbiAgICBjb25zdCBbXywgZ2V0VXNlcl0gPSB1c2VMb2NhbFN0b3JhZ2VVc2VyKCk7XG4gICAgcmV0dXJuICEhdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk/LmFjY2Vzc190b2tlbiAmJiAhIWdldFVzZXIoKTtcbiAgfVxuXG4gIGdldCBfbGlua3MoKTogWXVuemFpUHJvZmlsZVtdIHtcbiAgICBjb25zdCBbXywgZ2V0UHJvamVjdEluZm9dID0gdXNlTG9jYWxTdG9yYWdlUHJvamVjdEluZm8oKTtcbiAgICByZXR1cm4gZ2V0UHJvamVjdEluZm8oKT8ucHJvZmlsZUxpc3QgfHwgW107XG4gIH1cblxuICBsb2dpbigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0dXBTcnYubG9hZCh7IGZvcmNlOiB0cnVlIH0pLnN1YnNjcmliZSgoKSA9PiB7fSk7XG4gIH1cblxuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXQoJ2JpcycpPy5iYXNlVXJsIHx8ICcvYmFja3N0YWdlJztcbiAgICB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gYCR7YmFzZVVybH0vY2FzLXByb3h5L2FwcC9sb2dvdXRgO1xuICB9XG5cbiAgdG8odXJsPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHVybCkgdGhpcy53aW4ubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgfVxufVxuIl19
|
package/fesm2022/bis.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgModule, importProvidersFrom, makeEnvironmentProviders, inject, APP_INITIALIZER, Injector, Injectable, Inject, Component,
|
|
2
|
+
import { NgModule, importProvidersFrom, makeEnvironmentProviders, inject, APP_INITIALIZER, Injector, Injectable, Inject, Component, Input } from '@angular/core';
|
|
3
3
|
import { YunzaiLayoutModule } from '@yelon/bis/layout';
|
|
4
4
|
import { YunzaiWidgetsModule } from '@yelon/bis/yunzai-widgets';
|
|
5
5
|
import * as i2 from '@angular/router';
|
|
@@ -20,6 +20,8 @@ import { NzI18nModule } from 'ng-zorro-antd/i18n';
|
|
|
20
20
|
import * as i3 from 'ng-zorro-antd/icon';
|
|
21
21
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
22
22
|
import * as i1$1 from 'ng-zorro-antd/menu';
|
|
23
|
+
import * as i4 from 'ng-zorro-antd/avatar';
|
|
24
|
+
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
|
|
23
25
|
|
|
24
26
|
class BisModule {
|
|
25
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BisModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -671,7 +673,7 @@ class YunzaiLayoutWebsite01Component {
|
|
|
671
673
|
<router-outlet />
|
|
672
674
|
</main>
|
|
673
675
|
</div>
|
|
674
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2$1.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }]
|
|
676
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2$1.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
675
677
|
}
|
|
676
678
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: YunzaiLayoutWebsite01Component, decorators: [{
|
|
677
679
|
type: Component,
|
|
@@ -725,7 +727,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
725
727
|
</main>
|
|
726
728
|
</div>
|
|
727
729
|
`,
|
|
728
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
729
730
|
standalone: true,
|
|
730
731
|
imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]
|
|
731
732
|
}]
|
|
@@ -739,9 +740,197 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
739
740
|
type: Input
|
|
740
741
|
}] } });
|
|
741
742
|
|
|
743
|
+
class YunzaiLayoutWebsite02Component {
|
|
744
|
+
constructor() {
|
|
745
|
+
this.logoAlt = 'logo';
|
|
746
|
+
this.userMenuShow = false;
|
|
747
|
+
this.tokenService = inject(YA_SERVICE_TOKEN);
|
|
748
|
+
this.configService = inject(YunzaiConfigService);
|
|
749
|
+
this.startupSrv = inject(YunzaiStartupService);
|
|
750
|
+
this.win = inject(WINDOW);
|
|
751
|
+
}
|
|
752
|
+
get _logoSrc() {
|
|
753
|
+
return this.logoSrc;
|
|
754
|
+
}
|
|
755
|
+
get _logoAlt() {
|
|
756
|
+
return this.logoAlt || 'logo';
|
|
757
|
+
}
|
|
758
|
+
get _userMenuShow() {
|
|
759
|
+
return this.userMenuShow || false;
|
|
760
|
+
}
|
|
761
|
+
get _slogan() {
|
|
762
|
+
return this.slogan;
|
|
763
|
+
}
|
|
764
|
+
get _contentTpl() {
|
|
765
|
+
return this.contentTpl;
|
|
766
|
+
}
|
|
767
|
+
get _username() {
|
|
768
|
+
const [_, getUser] = useLocalStorageUser();
|
|
769
|
+
return getUser()?.realname || '';
|
|
770
|
+
}
|
|
771
|
+
get _avatar() {
|
|
772
|
+
const [_, getUser] = useLocalStorageUser();
|
|
773
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
774
|
+
const avatarUrl = getUser()?.avatarId ? `${baseUrl}/filecenter/file/${getUser()?.avatarId}` : undefined;
|
|
775
|
+
return avatarUrl;
|
|
776
|
+
}
|
|
777
|
+
get isLogin() {
|
|
778
|
+
const [_, getUser] = useLocalStorageUser();
|
|
779
|
+
return !!this.tokenService.get()?.access_token && !!getUser();
|
|
780
|
+
}
|
|
781
|
+
get _links() {
|
|
782
|
+
const [_, getProjectInfo] = useLocalStorageProjectInfo();
|
|
783
|
+
return getProjectInfo()?.profileList || [];
|
|
784
|
+
}
|
|
785
|
+
login() {
|
|
786
|
+
this.startupSrv.load({ force: true }).subscribe(() => { });
|
|
787
|
+
}
|
|
788
|
+
logout() {
|
|
789
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
790
|
+
this.win.location.href = `${baseUrl}/cas-proxy/app/logout`;
|
|
791
|
+
}
|
|
792
|
+
to(url) {
|
|
793
|
+
if (url)
|
|
794
|
+
this.win.location.href = url;
|
|
795
|
+
}
|
|
796
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: YunzaiLayoutWebsite02Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
797
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: YunzaiLayoutWebsite02Component, isStandalone: true, selector: "yunzai-layout-website-02", inputs: { logoSrc: "logoSrc", logoAlt: "logoAlt", userMenuShow: "userMenuShow", slogan: "slogan", contentTpl: "contentTpl" }, ngImport: i0, template: `
|
|
798
|
+
<div class="yz-layout-website-02">
|
|
799
|
+
<header class="yz-layout-website-02-nav">
|
|
800
|
+
<div class="yz-layout-website-02-inner-content">
|
|
801
|
+
@if (_logoSrc) {
|
|
802
|
+
<img [alt]="_logoAlt" class="yz-layout-website-02-nav__logo" [src]="_logoSrc" />
|
|
803
|
+
} @else {
|
|
804
|
+
<div class="yz-layout-website-02-nav__logo__full">LOGO</div>
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
<div class="yz-layout-website-02-nav__content">
|
|
808
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
809
|
+
</div>
|
|
810
|
+
|
|
811
|
+
<div class="yz-layout-website-02-nav-right">
|
|
812
|
+
<div class="yz-layout-website-02-nav__slogan">
|
|
813
|
+
<ng-template *ngTemplateOutlet="_slogan" />
|
|
814
|
+
</div>
|
|
815
|
+
@if (isLogin) {
|
|
816
|
+
<a
|
|
817
|
+
class="yz-layout-website-02-link"
|
|
818
|
+
nz-dropdown
|
|
819
|
+
[nzDropdownMenu]="menu"
|
|
820
|
+
[nzDisabled]="!_userMenuShow"
|
|
821
|
+
[nzPlacement]="'bottomRight'"
|
|
822
|
+
>
|
|
823
|
+
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
824
|
+
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
825
|
+
</a>
|
|
826
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
827
|
+
<ul nz-menu nzSelectable>
|
|
828
|
+
@for (link of _links; track $index) {
|
|
829
|
+
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
830
|
+
}
|
|
831
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
832
|
+
'menu.account.logout' | i18n
|
|
833
|
+
}}</li>
|
|
834
|
+
</ul>
|
|
835
|
+
</nz-dropdown-menu>
|
|
836
|
+
} @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
|
+
>
|
|
840
|
+
}
|
|
841
|
+
</div>
|
|
842
|
+
</div>
|
|
843
|
+
</header>
|
|
844
|
+
<main class="yz-layout-website-02-container">
|
|
845
|
+
<router-outlet />
|
|
846
|
+
</main>
|
|
847
|
+
</div>
|
|
848
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2$1.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i4.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }] }); }
|
|
849
|
+
}
|
|
850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: YunzaiLayoutWebsite02Component, decorators: [{
|
|
851
|
+
type: Component,
|
|
852
|
+
args: [{
|
|
853
|
+
selector: 'yunzai-layout-website-02',
|
|
854
|
+
template: `
|
|
855
|
+
<div class="yz-layout-website-02">
|
|
856
|
+
<header class="yz-layout-website-02-nav">
|
|
857
|
+
<div class="yz-layout-website-02-inner-content">
|
|
858
|
+
@if (_logoSrc) {
|
|
859
|
+
<img [alt]="_logoAlt" class="yz-layout-website-02-nav__logo" [src]="_logoSrc" />
|
|
860
|
+
} @else {
|
|
861
|
+
<div class="yz-layout-website-02-nav__logo__full">LOGO</div>
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
<div class="yz-layout-website-02-nav__content">
|
|
865
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
866
|
+
</div>
|
|
867
|
+
|
|
868
|
+
<div class="yz-layout-website-02-nav-right">
|
|
869
|
+
<div class="yz-layout-website-02-nav__slogan">
|
|
870
|
+
<ng-template *ngTemplateOutlet="_slogan" />
|
|
871
|
+
</div>
|
|
872
|
+
@if (isLogin) {
|
|
873
|
+
<a
|
|
874
|
+
class="yz-layout-website-02-link"
|
|
875
|
+
nz-dropdown
|
|
876
|
+
[nzDropdownMenu]="menu"
|
|
877
|
+
[nzDisabled]="!_userMenuShow"
|
|
878
|
+
[nzPlacement]="'bottomRight'"
|
|
879
|
+
>
|
|
880
|
+
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
881
|
+
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
882
|
+
</a>
|
|
883
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
884
|
+
<ul nz-menu nzSelectable>
|
|
885
|
+
@for (link of _links; track $index) {
|
|
886
|
+
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
887
|
+
}
|
|
888
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
889
|
+
'menu.account.logout' | i18n
|
|
890
|
+
}}</li>
|
|
891
|
+
</ul>
|
|
892
|
+
</nz-dropdown-menu>
|
|
893
|
+
} @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
|
+
>
|
|
897
|
+
}
|
|
898
|
+
</div>
|
|
899
|
+
</div>
|
|
900
|
+
</header>
|
|
901
|
+
<main class="yz-layout-website-02-container">
|
|
902
|
+
<router-outlet />
|
|
903
|
+
</main>
|
|
904
|
+
</div>
|
|
905
|
+
`,
|
|
906
|
+
standalone: true,
|
|
907
|
+
imports: [
|
|
908
|
+
RouterOutlet,
|
|
909
|
+
I18nPipe,
|
|
910
|
+
NzI18nModule,
|
|
911
|
+
NgFor,
|
|
912
|
+
NgIf,
|
|
913
|
+
NzDropDownModule,
|
|
914
|
+
NzIconModule,
|
|
915
|
+
NgTemplateOutlet,
|
|
916
|
+
NzAvatarModule
|
|
917
|
+
]
|
|
918
|
+
}]
|
|
919
|
+
}], propDecorators: { logoSrc: [{
|
|
920
|
+
type: Input
|
|
921
|
+
}], logoAlt: [{
|
|
922
|
+
type: Input
|
|
923
|
+
}], userMenuShow: [{
|
|
924
|
+
type: Input
|
|
925
|
+
}], slogan: [{
|
|
926
|
+
type: Input
|
|
927
|
+
}], contentTpl: [{
|
|
928
|
+
type: Input
|
|
929
|
+
}] } });
|
|
930
|
+
|
|
742
931
|
/**
|
|
743
932
|
* Generated bundle index. Do not edit.
|
|
744
933
|
*/
|
|
745
934
|
|
|
746
|
-
export { ActGuardService, BisModule, CODEMESSAGE, YunzaiAnalysisAddonGuardService, YunzaiLayoutWebsite01Component, YunzaiStartupService, actGuardCanActive, actGuardCanActiveChild, analysisAddonCanActive, analysisAddonCanActiveChild, checkStatus, generateAbility, getAdditionalHeaders, goTo, mapYzSideToYelonMenu, provideYunzaiBindAuthRefresh, provideYunzaiBis, provideYunzaiStartup, toLogin, tryRefreshToken, yunzaiDefaultInterceptor };
|
|
935
|
+
export { ActGuardService, BisModule, CODEMESSAGE, YunzaiAnalysisAddonGuardService, YunzaiLayoutWebsite01Component, YunzaiLayoutWebsite02Component, YunzaiStartupService, actGuardCanActive, actGuardCanActiveChild, analysisAddonCanActive, analysisAddonCanActiveChild, checkStatus, generateAbility, getAdditionalHeaders, goTo, mapYzSideToYelonMenu, provideYunzaiBindAuthRefresh, provideYunzaiBis, provideYunzaiStartup, toLogin, tryRefreshToken, yunzaiDefaultInterceptor };
|
|
747
936
|
//# sourceMappingURL=bis.mjs.map
|
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/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 { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\n\nexport const CODEMESSAGE: { [key: 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): { [name: string]: string } {\n const res: { [name: 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: NzSafeAny;\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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { toLogin } from './helper';\n\nlet refreshToking = false;\nlet refreshToken$: BehaviorSubject<NzSafeAny> = new BehaviorSubject<NzSafeAny>(null);\n\nexport const tryRefreshToken = (\n injector: Injector,\n ev: HttpResponseBase,\n req: HttpRequest<NzSafeAny>,\n next: HttpHandlerFn\n): Observable<NzSafeAny> => {\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<NzSafeAny>): HttpRequest<NzSafeAny> {\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<NzSafeAny> {\n const model = injector.get(YA_SERVICE_TOKEN).get();\n const form = new FormData();\n form.set('refresh_token', model?.refresh_token!);\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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\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<NzSafeAny>,\n next: HttpHandlerFn\n): Observable<NzSafeAny> {\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 { APP_INITIALIZER, inject, Injectable, 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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface LoadParam {\n force?: boolean;\n}\n\nexport 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\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: NzSafeAny) => {\n if (token === false) {\n return this.i18n.loadLocaleData(defaultLang).pipe(\n map((langData: NzSafeAny) => {\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]: NzSafeAny) => {\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: NzSafeAny) => {\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: `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}` || '',\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: NzSafeAny) => {\n return role.roleValue;\n })\n .filter((a: NzSafeAny) => !!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: NzSafeAny) => {\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: NzSafeAny) => {\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: NzSafeAny) => {\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: NzSafeAny) => {\n if (menu.children && menu.hideChildren) {\n menu.children.forEach((c: NzSafeAny) => (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, 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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YunzaiAnalysisAddonGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: NzSafeAny[] = [];\n private links: Array<{ title: string; link: string }> = [];\n private value: NzSafeAny = {};\n\n constructor(\n private configService: YunzaiConfigService,\n private pathToRegexp: PathToRegexpService,\n @Inject(WINDOW) private win: NzSafeAny,\n @Inject(YA_SERVICE_TOKEN) private tokenService: ITokenService\n ) {\n this.bis = mergeBisConfig(this.configService);\n const [, getUser] = useLocalStorageUser();\n const user: YunzaiUser = getUser()!;\n this.menus = deepCopy((user.menu as NzSafeAny) || []).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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({ providedIn: 'root' })\nexport class ActGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: NzSafeAny[] = [];\n private links: string[] = [];\n\n constructor(\n private configService: YunzaiConfigService,\n private pathToRegexp: PathToRegexpService,\n private router: Router\n ) {\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 // @ts-ignore\n this.menus = deepCopy((user.menu as NzSafeAny) || []).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 { ChangeDetectionStrategy, Component, inject, Input, TemplateRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { YunzaiStartupService } from '../startup.service';\nimport { I18nPipe } from '@yelon/theme';\nimport {\n YunzaiProfile,\n useLocalStorageProjectInfo,\n useLocalStorageUser,\n WINDOW,\n YunzaiConfigService\n} from '@yelon/util';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\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>\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 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 changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]\n})\nexport class YunzaiLayoutWebsite01Component {\n @Input() logoSrc?: string | NzSafeAny;\n @Input() logoAlt?: string = 'logo';\n @Input() slogan?: string = '';\n @Input() contentTpl?: TemplateRef<void> | NzSafeAny;\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 | NzSafeAny {\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> | NzSafeAny {\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`;\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":["i1","i2"],"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 { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\n\nexport const CODEMESSAGE: { [key: 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): { [name: string]: string } {\n const res: { [name: 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: NzSafeAny;\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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { toLogin } from './helper';\n\nlet refreshToking = false;\nlet refreshToken$: BehaviorSubject<NzSafeAny> = new BehaviorSubject<NzSafeAny>(null);\n\nexport const tryRefreshToken = (\n injector: Injector,\n ev: HttpResponseBase,\n req: HttpRequest<NzSafeAny>,\n next: HttpHandlerFn\n): Observable<NzSafeAny> => {\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<NzSafeAny>): HttpRequest<NzSafeAny> {\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<NzSafeAny> {\n const model = injector.get(YA_SERVICE_TOKEN).get();\n const form = new FormData();\n form.set('refresh_token', model?.refresh_token!);\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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\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<NzSafeAny>,\n next: HttpHandlerFn\n): Observable<NzSafeAny> {\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 { APP_INITIALIZER, inject, Injectable, 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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface LoadParam {\n force?: boolean;\n}\n\nexport 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\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: NzSafeAny) => {\n if (token === false) {\n return this.i18n.loadLocaleData(defaultLang).pipe(\n map((langData: NzSafeAny) => {\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]: NzSafeAny) => {\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: NzSafeAny) => {\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: `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}` || '',\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: NzSafeAny) => {\n return role.roleValue;\n })\n .filter((a: NzSafeAny) => !!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: NzSafeAny) => {\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: NzSafeAny) => {\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: NzSafeAny) => {\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: NzSafeAny) => {\n if (menu.children && menu.hideChildren) {\n menu.children.forEach((c: NzSafeAny) => (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, 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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YunzaiAnalysisAddonGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: NzSafeAny[] = [];\n private links: Array<{ title: string; link: string }> = [];\n private value: NzSafeAny = {};\n\n constructor(\n private configService: YunzaiConfigService,\n private pathToRegexp: PathToRegexpService,\n @Inject(WINDOW) private win: NzSafeAny,\n @Inject(YA_SERVICE_TOKEN) private tokenService: ITokenService\n ) {\n this.bis = mergeBisConfig(this.configService);\n const [, getUser] = useLocalStorageUser();\n const user: YunzaiUser = getUser()!;\n this.menus = deepCopy((user.menu as NzSafeAny) || []).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';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({ providedIn: 'root' })\nexport class ActGuardService {\n private bis: YunzaiBusinessConfig = BUSINESS_DEFAULT_CONFIG;\n private menus: NzSafeAny[] = [];\n private links: string[] = [];\n\n constructor(\n private configService: YunzaiConfigService,\n private pathToRegexp: PathToRegexpService,\n private router: Router\n ) {\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 // @ts-ignore\n this.menus = deepCopy((user.menu as NzSafeAny) || []).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';\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { YunzaiStartupService } from '../startup.service';\nimport { I18nPipe } from '@yelon/theme';\nimport {\n YunzaiProfile,\n useLocalStorageProjectInfo,\n useLocalStorageUser,\n WINDOW,\n YunzaiConfigService\n} from '@yelon/util';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\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>\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 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 standalone: true,\n imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]\n})\nexport class YunzaiLayoutWebsite01Component {\n @Input() logoSrc?: string | NzSafeAny;\n @Input() logoAlt?: string = 'logo';\n @Input() slogan?: string = '';\n @Input() contentTpl?: TemplateRef<void> | NzSafeAny;\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 | NzSafeAny {\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> | NzSafeAny {\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`;\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';\nimport { YA_SERVICE_TOKEN } from '@yelon/auth';\nimport { YunzaiStartupService } from '../startup.service';\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 { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\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 standalone: true,\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 | NzSafeAny;\n @Input() logoAlt?: string = 'logo';\n @Input() userMenuShow?: boolean = false;\n @Input() slogan?: TemplateRef<void> | NzSafeAny;\n @Input() contentTpl?: TemplateRef<void> | NzSafeAny;\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 | NzSafeAny {\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> | NzSafeAny {\n return this.slogan;\n }\n\n get _contentTpl(): TemplateRef<void> | NzSafeAny {\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`;\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":["i1","i2"],"mappings":"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"}
|
package/index.less
CHANGED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
.yz-layout-website-02 {
|
|
2
|
+
min-height: 100%;
|
|
3
|
+
position: relative;
|
|
4
|
+
|
|
5
|
+
&-inner-content {
|
|
6
|
+
max-width: @yz-layout-website-02-inner-content-max-width;
|
|
7
|
+
height: 100%;
|
|
8
|
+
padding: @yz-layout-website-02-inner-content-padding;
|
|
9
|
+
margin: 0 auto;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&-nav {
|
|
16
|
+
position: relative;
|
|
17
|
+
background: @yz-layout-website-02-nav-background;
|
|
18
|
+
z-index: 1;
|
|
19
|
+
height: @yz-layout-website-02-nav-height;
|
|
20
|
+
|
|
21
|
+
&__logo {
|
|
22
|
+
max-height: @yz-layout-website-02-nav-logo-max-height;
|
|
23
|
+
max-width: @yz-layout-website-02-nav-logo-max-width;
|
|
24
|
+
|
|
25
|
+
&__full {
|
|
26
|
+
color: @yz-layout-website-02-nav-logo-full-color;
|
|
27
|
+
font-size: @yz-layout-website-02-nav-logo-full-font-size;
|
|
28
|
+
font-weight: @yz-layout-website-02-nav-logo-full-font-weight;
|
|
29
|
+
line-height: @yz-layout-website-02-nav-logo-full-line-height;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&-right {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&-link {
|
|
40
|
+
color: @yz-layout-website-02-link-color !important;
|
|
41
|
+
font-size: @yz-layout-website-02-link-font-size;
|
|
42
|
+
margin-left: @yz-layout-website-02-link-margin-left;
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
|
|
46
|
+
b {
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
text-overflow: ellipsis;
|
|
49
|
+
white-space: nowrap;
|
|
50
|
+
display: inline-block;
|
|
51
|
+
max-width: @yz-layout-website-02-link-username-max-width;
|
|
52
|
+
margin: 0 8px;
|
|
53
|
+
font-weight: 600;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
span {
|
|
57
|
+
margin-right: 8px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&:hover {
|
|
61
|
+
color: @yz-layout-website-02-link-hover-color !important;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&[disabled] {
|
|
65
|
+
cursor: auto;
|
|
66
|
+
|
|
67
|
+
&:hover {
|
|
68
|
+
color: @yz-layout-website-02-link-color !important;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&__li {
|
|
73
|
+
text-align: center;
|
|
74
|
+
justify-content: center;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@media screen and (max-width: 768px) {
|
|
80
|
+
.yz-layout-website-02-nav__slogan {
|
|
81
|
+
display: none;
|
|
82
|
+
}
|
|
83
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yelon/bis",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.2.0",
|
|
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": "^18.1.1",
|
|
25
|
-
"@yelon/acl": "^18.
|
|
26
|
-
"@yelon/auth": "^18.
|
|
27
|
-
"@yelon/theme": "^18.
|
|
28
|
-
"@yelon/mock": "^18.
|
|
29
|
-
"@yelon/cache": "^18.
|
|
30
|
-
"@yelon/chart": "^18.
|
|
31
|
-
"@yelon/form": "^18.
|
|
32
|
-
"@yelon/testing": "^18.
|
|
33
|
-
"@yelon/util": "^18.
|
|
34
|
-
"@yelon/bcs": "^18.
|
|
25
|
+
"@yelon/acl": "^18.2.0",
|
|
26
|
+
"@yelon/auth": "^18.2.0",
|
|
27
|
+
"@yelon/theme": "^18.2.0",
|
|
28
|
+
"@yelon/mock": "^18.2.0",
|
|
29
|
+
"@yelon/cache": "^18.2.0",
|
|
30
|
+
"@yelon/chart": "^18.2.0",
|
|
31
|
+
"@yelon/form": "^18.2.0",
|
|
32
|
+
"@yelon/testing": "^18.2.0",
|
|
33
|
+
"@yelon/util": "^18.2.0",
|
|
34
|
+
"@yelon/bcs": "^18.2.0",
|
|
35
35
|
"tslib": "^2.3.0"
|
|
36
36
|
},
|
|
37
37
|
"module": "fesm2022/bis.mjs",
|
package/public_api.d.ts
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import { YunzaiProfile } from '@yelon/util';
|
|
3
|
+
import { NzSafeAny } from 'ng-zorro-antd/core/types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class YunzaiLayoutWebsite02Component {
|
|
6
|
+
logoSrc?: string | NzSafeAny;
|
|
7
|
+
logoAlt?: string;
|
|
8
|
+
userMenuShow?: boolean;
|
|
9
|
+
slogan?: TemplateRef<void> | NzSafeAny;
|
|
10
|
+
contentTpl?: TemplateRef<void> | NzSafeAny;
|
|
11
|
+
private readonly tokenService;
|
|
12
|
+
private readonly configService;
|
|
13
|
+
private readonly startupSrv;
|
|
14
|
+
private readonly win;
|
|
15
|
+
get _logoSrc(): string | NzSafeAny;
|
|
16
|
+
get _logoAlt(): string;
|
|
17
|
+
get _userMenuShow(): boolean;
|
|
18
|
+
get _slogan(): TemplateRef<void> | NzSafeAny;
|
|
19
|
+
get _contentTpl(): TemplateRef<void> | NzSafeAny;
|
|
20
|
+
get _username(): string;
|
|
21
|
+
get _avatar(): string | undefined;
|
|
22
|
+
get isLogin(): boolean;
|
|
23
|
+
get _links(): YunzaiProfile[];
|
|
24
|
+
login(): void;
|
|
25
|
+
logout(): void;
|
|
26
|
+
to(url?: string): void;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<YunzaiLayoutWebsite02Component, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<YunzaiLayoutWebsite02Component, "yunzai-layout-website-02", never, { "logoSrc": { "alias": "logoSrc"; "required": false; }; "logoAlt": { "alias": "logoAlt"; "required": false; }; "userMenuShow": { "alias": "userMenuShow"; "required": false; }; "slogan": { "alias": "slogan"; "required": false; }; "contentTpl": { "alias": "contentTpl"; "required": false; }; }, {}, never, never, true, never>;
|
|
29
|
+
}
|
package/theme-default.less
CHANGED
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
@yz-application-list-item-li-hover-color: #fff;
|
|
48
48
|
@yz-application-list-item-li-hover-bgColor: @yz-application-list-ul-a-hover-bgColor;
|
|
49
49
|
// website layout
|
|
50
|
+
// layout-website-01
|
|
50
51
|
@yz-layout-website-01-linear-bg: #94080b;
|
|
51
52
|
@yz-layout-website-01-linear-bg-percent: 3%;
|
|
52
53
|
@yz-layout-website-01-linear-min-height: 1000px;
|
|
@@ -65,3 +66,19 @@
|
|
|
65
66
|
@yz-layout-website-01-nav-slogan-font-size: 44px;
|
|
66
67
|
@yz-layout-website-01-nav-slogan-font-weight: 600;
|
|
67
68
|
@yz-layout-website-01-nav-slogan-margin-right: 50px;
|
|
69
|
+
// layout-website-02
|
|
70
|
+
@yz-layout-website-02-inner-content-max-width: 1500px;
|
|
71
|
+
@yz-layout-website-02-inner-content-padding: 0 20px;
|
|
72
|
+
@yz-layout-website-02-nav-background: #891616;
|
|
73
|
+
@yz-layout-website-02-nav-height: 90px;
|
|
74
|
+
@yz-layout-website-02-nav-logo-max-height: 60px;
|
|
75
|
+
@yz-layout-website-02-nav-logo-max-width: 50%;
|
|
76
|
+
@yz-layout-website-02-nav-logo-full-color: #fff;
|
|
77
|
+
@yz-layout-website-02-nav-logo-full-font-size: 40px;
|
|
78
|
+
@yz-layout-website-02-nav-logo-full-font-weight: 600;
|
|
79
|
+
@yz-layout-website-02-nav-logo-full-line-height: 40px;
|
|
80
|
+
@yz-layout-website-02-link-color: #fff;
|
|
81
|
+
@yz-layout-website-02-link-font-size: 14px;
|
|
82
|
+
@yz-layout-website-02-link-margin-left: 20px;
|
|
83
|
+
@yz-layout-website-02-link-username-max-width: 150px;
|
|
84
|
+
@yz-layout-website-02-link-hover-color: #d98910;
|