UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

152 lines 17.2 kB
import { ConfirmType, DialogService } from '@alauda/ui'; import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, isDevMode, } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { BehaviorSubject, combineLatest } from 'rxjs'; import { K8sApiService } from '../../../api/k8s-api.service'; import { AuthorizationStateService } from '../../../authorization/state.service'; import { K8sResourceAction, PLATFORM_OPS_MODE, RESOURCE_TYPES, skipError, } from '../../../core/public-api'; import { EFFECT_DIRECTIVE_MODULE } from '../../../effect-directive/module'; import { K8sPermissionService } from '../../../permission/public-api'; import { TranslateModule, TranslateService, } from '../../../translate/public-api'; import { NoticeComponent } from './notice.component'; import * as i0 from "@angular/core"; import * as i1 from "./notice.component"; import * as i2 from "../../../api/k8s-api.service"; import * as i3 from "../../../permission/public-api"; import * as i4 from "../../../translate/public-api"; import * as i5 from "../../../authorization/state.service"; import * as i6 from "@alauda/ui"; import * as i7 from "../../../translate/translate.pipe"; import * as i8 from "../../../effect-directive/e2e-attribute-binding.directive"; const _c0 = ["maintenance"]; const _c1 = ["announcement"]; function MaintenanceComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "a", 2); i0.ɵɵtext(1); i0.ɵɵpipe(2, "translate"); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵproperty("href", (ctx_r0.isDevMode ? "" : "/console-platform") + "/manage-platform/platform-setting/online-ops", i0.ɵɵsanitizeUrl); i0.ɵɵadvance(); i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "maintenance_mode")); } } function MaintenanceComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 3); i0.ɵɵtext(1); i0.ɵɵpipe(2, "async"); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵadvance(); i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.announcement$)); } } export class MaintenanceComponent { constructor(notice, k8sApi, k8sPermission, translate, auth, dialog) { this.notice = notice; this.k8sApi = k8sApi; this.k8sPermission = k8sPermission; this.translate = translate; this.auth = auth; this.dialog = dialog; this.isDevMode = isDevMode(); this.noticeId = 'maintenanceModeNotice'; this.announcement$ = new BehaviorSubject(''); combineLatest([ this.k8sPermission.isAllowed({ type: RESOURCE_TYPES.PRODUCT_BASE, action: K8sResourceAction.UPDATE, }), this.k8sApi .watchGlobalResource({ type: RESOURCE_TYPES.CONFIG_MAP, name: PLATFORM_OPS_MODE, namespaced: true, }) .pipe(skipError({ data: {} })), this.translate.locale$, ]) .pipe(takeUntilDestroyed()) .subscribe(([isPlatformRule, config]) => { const enable = config?.data?.enabled === 'true'; if (enable) { if (isPlatformRule) { notice.open({ id: this.noticeId, content: this.translate.get('maintenance_mode_top_notice_msg'), suffix: this.maintenance, }); } else { this.announcement$.next(config?.data?.announcement); if (this.hasConfirm) { return; } this.dialog .confirm({ confirmType: ConfirmType.Warning, title: this.translate.get('platform_maintenance_announcement'), content: this.announcement, confirmText: this.translate.get('logout'), cancelButton: false, }) .then(() => { this.auth.logoutWithAudit(); }) .finally(() => { this.hasConfirm = false; }); this.hasConfirm = true; } } else { notice.close(this.noticeId); this.dialog.closeAll(); } }); } static { this.ɵfac = function MaintenanceComponent_Factory(t) { return new (t || MaintenanceComponent)(i0.ɵɵdirectiveInject(i1.NoticeComponent), i0.ɵɵdirectiveInject(i2.K8sApiService), i0.ɵɵdirectiveInject(i3.K8sPermissionService), i0.ɵɵdirectiveInject(i4.TranslateService), i0.ɵɵdirectiveInject(i5.AuthorizationStateService), i0.ɵɵdirectiveInject(i6.DialogService)); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MaintenanceComponent, selectors: [["acl-page-header-notice-maintenance"]], viewQuery: function MaintenanceComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 5); i0.ɵɵviewQuery(_c1, 5); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.maintenance = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.announcement = _t.first); } }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["maintenance", ""], ["announcement", ""], ["target", "_blank", 3, "href"], [1, "tw-break-words"]], template: function MaintenanceComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, MaintenanceComponent_ng_template_0_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(2, MaintenanceComponent_ng_template_2_Template, 3, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor); } }, dependencies: [TranslateModule, i7.TranslatePipe, AsyncPipe, i8.E2eAttributeBindingDirective], encapsulation: 2, changeDetection: 0 }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MaintenanceComponent, [{ type: Component, args: [{ selector: 'acl-page-header-notice-maintenance', template: ` <ng-template #maintenance> <a target="_blank" [href]=" (isDevMode ? '' : '/console-platform') + '/manage-platform/platform-setting/online-ops' " >{{ 'maintenance_mode' | translate }}</a > </ng-template> <ng-template #announcement> <div class="tw-break-words">{{ announcement$ | async }}</div> </ng-template> `, standalone: true, imports: [TranslateModule, AsyncPipe, ...EFFECT_DIRECTIVE_MODULE], changeDetection: ChangeDetectionStrategy.OnPush, }] }], () => [{ type: i1.NoticeComponent }, { type: i2.K8sApiService }, { type: i3.K8sPermissionService }, { type: i4.TranslateService }, { type: i5.AuthorizationStateService }, { type: i6.DialogService }], { maintenance: [{ type: ViewChild, args: ['maintenance'] }], announcement: [{ type: ViewChild, args: ['announcement'] }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MaintenanceComponent, { className: "MaintenanceComponent" }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbnRlbmFuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvcGFnZS9ub3RpY2VzL21haW50ZW5hbmNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxTQUFTLEdBQ1YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixHQUNqQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7OztJQU0vQyw0QkFNRztJQUFBLFlBQW9DOztJQUFBLGlCQUN0Qzs7O0lBTEMsdUlBR0M7SUFDQSxjQUFvQztJQUFwQyw4REFB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QkFDTixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3FGQXRFVSxvQkFBb0I7b0VBQXBCLG9CQUFvQjs7Ozs7Ozs7WUFSN0IsQUFWQSxzSEFBMEIseUdBVUM7NEJBS25CLGVBQWUsb0JBQUUsU0FBUzs7aUZBR3pCLG9CQUFvQjtjQXJCaEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtnQkFDRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxHQUFHLHVCQUF1QixDQUFDO2dCQUNqRSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtrTkFHQyxXQUFXO2tCQURWLFNBQVM7bUJBQUMsYUFBYTtZQUl4QixZQUFZO2tCQURYLFNBQVM7bUJBQUMsY0FBYzs7a0ZBSmQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlybVR5cGUsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEs4c0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvazhzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhvcml6YXRpb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hdXRob3JpemF0aW9uL3N0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ29uZmlnTWFwLFxuICBLOHNSZXNvdXJjZUFjdGlvbixcbiAgUExBVEZPUk1fT1BTX01PREUsXG4gIFJFU09VUkNFX1RZUEVTLFxuICBza2lwRXJyb3IsXG59IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBFRkZFQ1RfRElSRUNUSVZFX01PRFVMRSB9IGZyb20gJy4uLy4uLy4uL2VmZmVjdC1kaXJlY3RpdmUvbW9kdWxlJztcbmltcG9ydCB7IEs4c1Blcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcGVybWlzc2lvbi9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBOb3RpY2VDb21wb25lbnQgfSBmcm9tICcuL25vdGljZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcGFnZS1oZWFkZXItbm90aWNlLW1haW50ZW5hbmNlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGUgI21haW50ZW5hbmNlPlxuICAgICAgPGFcbiAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgW2hyZWZdPVwiXG4gICAgICAgICAgKGlzRGV2TW9kZSA/ICcnIDogJy9jb25zb2xlLXBsYXRmb3JtJykgK1xuICAgICAgICAgICcvbWFuYWdlLXBsYXRmb3JtL3BsYXRmb3JtLXNldHRpbmcvb25saW5lLW9wcydcbiAgICAgICAgXCJcbiAgICAgICAgPnt7ICdtYWludGVuYW5jZV9tb2RlJyB8IHRyYW5zbGF0ZSB9fTwvYVxuICAgICAgPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhbm5vdW5jZW1lbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwidHctYnJlYWstd29yZHNcIj57eyBhbm5vdW5jZW1lbnQkIHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBBc3luY1BpcGUsIC4uLkVGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1haW50ZW5hbmNlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnbWFpbnRlbmFuY2UnKVxuICBtYWludGVuYW5jZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdhbm5vdW5jZW1lbnQnKVxuICBhbm5vdW5jZW1lbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgaXNEZXZNb2RlID0gaXNEZXZNb2RlKCk7XG4gIG5vdGljZUlkID0gJ21haW50ZW5hbmNlTW9kZU5vdGljZSc7XG4gIGFubm91bmNlbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgaGFzQ29uZmlybTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBub3RpY2U6IE5vdGljZUNvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c0FwaTogSzhzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c1Blcm1pc3Npb246IEs4c1Blcm1pc3Npb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aDogQXV0aG9yaXphdGlvblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogRGlhbG9nU2VydmljZSxcbiAgKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLms4c1Blcm1pc3Npb24uaXNBbGxvd2VkKHtcbiAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuUFJPRFVDVF9CQVNFLFxuICAgICAgICBhY3Rpb246IEs4c1Jlc291cmNlQWN0aW9uLlVQREFURSxcbiAgICAgIH0pLFxuICAgICAgdGhpcy5rOHNBcGlcbiAgICAgICAgLndhdGNoR2xvYmFsUmVzb3VyY2U8Q29uZmlnTWFwPih7XG4gICAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuQ09ORklHX01BUCxcbiAgICAgICAgICBuYW1lOiBQTEFURk9STV9PUFNfTU9ERSxcbiAgICAgICAgICBuYW1lc3BhY2VkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShza2lwRXJyb3IoeyBkYXRhOiB7fSB9IGFzIENvbmZpZ01hcCkpLFxuICAgICAgdGhpcy50cmFuc2xhdGUubG9jYWxlJCxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChbaXNQbGF0Zm9ybVJ1bGUsIGNvbmZpZ10pID0+IHtcbiAgICAgICAgY29uc3QgZW5hYmxlID0gY29uZmlnPy5kYXRhPy5lbmFibGVkID09PSAndHJ1ZSc7XG4gICAgICAgIGlmIChlbmFibGUpIHtcbiAgICAgICAgICBpZiAoaXNQbGF0Zm9ybVJ1bGUpIHtcbiAgICAgICAgICAgIG5vdGljZS5vcGVuKHtcbiAgICAgICAgICAgICAgaWQ6IHRoaXMubm90aWNlSWQsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlLmdldCgnbWFpbnRlbmFuY2VfbW9kZV90b3Bfbm90aWNlX21zZycpLFxuICAgICAgICAgICAgICBzdWZmaXg6IHRoaXMubWFpbnRlbmFuY2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hbm5vdW5jZW1lbnQkLm5leHQoY29uZmlnPy5kYXRhPy5hbm5vdW5jZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzQ29uZmlybSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAgICAgICAuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgY29uZmlybVR5cGU6IENvbmZpcm1UeXBlLldhcm5pbmcsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmdldCgncGxhdGZvcm1fbWFpbnRlbmFuY2VfYW5ub3VuY2VtZW50JyksXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5hbm5vdW5jZW1lbnQsXG4gICAgICAgICAgICAgICAgY29uZmlybVRleHQ6IHRoaXMudHJhbnNsYXRlLmdldCgnbG9nb3V0JyksXG4gICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0aC5sb2dvdXRXaXRoQXVkaXQoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzQ29uZmlybSA9IGZhbHNlO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaGFzQ29uZmlybSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vdGljZS5jbG9zZSh0aGlzLm5vdGljZUlkKTtcbiAgICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19