UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

76 lines 15.1 kB
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core'; import { uniq } from 'lodash-es'; import { startWith, switchMap, takeUntil } from 'rxjs'; import { K8sUtilService, publishRef, } from '../../../../core/public-api'; import { CommonLayoutContextService } from '../../../../page-scaffold/public-api'; import { ResourceListBase } from '../../base-list'; import { ResourceSelectContextService } from '../../context.service'; import * as i0 from "@angular/core"; import * as i1 from "../../../../page-scaffold/public-api"; import * as i2 from "../../context.service"; import * as i3 from "../../../../core/public-api"; export class ProjectListComponent extends ResourceListBase { constructor(commonLayoutService, contextService, cdr, k8sUtil) { super(cdr, k8sUtil, contextService); this.commonLayoutService = commonLayoutService; this.type = 'project'; this.projects = []; this.projects$ = this.reload$$.pipe(startWith(null), switchMap(() => this.commonLayoutService.getProjects()), takeUntil(this.destroy$$), publishRef()); this.mapResource = (list) => list.map(item => { const cachedItem = this.projects.find(project => project.name === this.k8sUtil.getName(item)); return { name: this.k8sUtil.getName(item), displayName: this.k8sUtil.getDisplayName(item), status: item.status?.phase === 'Active' ? 'normal' : 'abnormal', admin: cachedItem?.admin || '', timestamp: item.metadata.creationTimestamp, __origin: item, }; }); } ngOnInit() { this.projects = this.contextService.cachedProjects; this.setSelected(); this.projects$.subscribe({ next: projects => { this.load.emit({ project: projects.length, cluster: uniq(projects.reduce((acc, cur) => [ ...acc, ...(cur.spec.clusters || []).map(c => c.name), ], [])).length, }); this.projects = this.mapResource(projects); this.contextService.cachedProjects = this.projects; this.setSelected(); this.loading = false; this.forceLoading = false; this.cdr.markForCheck(); }, error: () => { this.loading = false; this.forceLoading = false; this.cdr.markForCheck(); }, }); } setSelected() { this.selectedProject = this.projects.find(p => p.name === this.value); } static { this.ɵfac = function ProjectListComponent_Factory(t) { return new (t || ProjectListComponent)(i0.ɵɵdirectiveInject(i1.CommonLayoutContextService), i0.ɵɵdirectiveInject(i2.ResourceSelectContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.K8sUtilService)); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProjectListComponent, selectors: [["acl-project-list"]], inputs: { value: "value" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 7, consts: [[3, "selectItem", "reload", "data", "fields", "context", "popupLite", "type", "selectedUid", "loading"]], template: function ProjectListComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "acl-resource-data-grid", 0); i0.ɵɵlistener("selectItem", function ProjectListComponent_Template_acl_resource_data_grid_selectItem_0_listener($event) { return ctx.onSelect($event); })("reload", function ProjectListComponent_Template_acl_resource_data_grid_reload_0_listener() { return ctx.reload(); }); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵproperty("data", ctx.projects)("fields", ctx.fields)("context", ctx.context)("popupLite", ctx.popupLite)("type", ctx.type)("selectedUid", ctx.selectedProject == null ? null : ctx.selectedProject.__origin.metadata.uid)("loading", ctx.forceLoading || !ctx.projects.length && ctx.loading); } }, styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column}.filter[_ngcontent-%COMP%]{display:flex;border-bottom:1px solid rgb(var(--aui-color-n-8));padding-bottom:8px}.filter[_ngcontent-%COMP%] aui-form-item[_ngcontent-%COMP%] .aui-form-item{margin-bottom:0}.filter__project[_ngcontent-%COMP%]{margin-right:50px;padding-bottom:8px}.filter__project[_ngcontent-%COMP%] aui-select[_ngcontent-%COMP%]{width:240px}.filter__cluster[_ngcontent-%COMP%]{flex:1}.cluster-tags[_ngcontent-%COMP%] aui-check-tag[_ngcontent-%COMP%]{margin-bottom:8px;display:inline-flex}.cluster-tags[_ngcontent-%COMP%] aui-check-tag[_ngcontent-%COMP%] .aui-tag{border:none}.cluster-tags[_ngcontent-%COMP%] aui-check-tag[_ngcontent-%COMP%] .aui-tag--info{background-color:rgb(var(--aui-color-n-8))}"], changeDetection: 0 }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectListComponent, [{ type: Component, args: [{ selector: 'acl-project-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<acl-resource-data-grid\n [data]=\"projects\"\n [fields]=\"fields\"\n [context]=\"context\"\n [popupLite]=\"popupLite\"\n (selectItem)=\"onSelect($event)\"\n [type]=\"type\"\n [selectedUid]=\"selectedProject?.__origin.metadata.uid\"\n [loading]=\"forceLoading || (!projects.length && loading)\"\n (reload)=\"reload()\"\n></acl-resource-data-grid>\n", styles: [":host{display:flex;flex-direction:column}.filter{display:flex;border-bottom:1px solid rgb(var(--aui-color-n-8));padding-bottom:8px}.filter aui-form-item ::ng-deep .aui-form-item{margin-bottom:0}.filter__project{margin-right:50px;padding-bottom:8px}.filter__project aui-select{width:240px}.filter__cluster{flex:1}.cluster-tags aui-check-tag{margin-bottom:8px;display:inline-flex}.cluster-tags aui-check-tag::ng-deep .aui-tag{border:none}.cluster-tags aui-check-tag::ng-deep .aui-tag--info{background-color:rgb(var(--aui-color-n-8))}\n"] }] }], () => [{ type: i1.CommonLayoutContextService }, { type: i2.ResourceSelectContextService }, { type: i0.ChangeDetectorRef }, { type: i3.K8sUtilService }], { value: [{ type: Input }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProjectListComponent, { className: "ProjectListComponent" }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9leHBvcnRzL3Byb2plY3QtbGlzdC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYnVzaW5lc3MvcmVzb3VyY2Utc2VsZWN0L2V4cG9ydHMvcHJvamVjdC1saXN0L3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQ0wsY0FBYyxFQUVkLFVBQVUsR0FDWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVVyRSxNQUFNLE9BQU8sb0JBQ1gsU0FBUSxnQkFBZ0I7SUFxQnhCLFlBQ21CLG1CQUErQyxFQUNoRSxjQUE0QyxFQUM1QyxHQUFzQixFQUN0QixPQUF1QjtRQUV2QixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUxuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTRCO1FBZGxFLFNBQUksR0FBRyxTQUFrQixDQUFDO1FBSTFCLGFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBRWpDLGNBQVMsR0FB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QUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7cUZBakVVLG9CQUFvQjtvRUFBcEIsb0JBQW9CO1lDNUJqQyxpREFVQztZQURDLEFBSkEsaUlBQWMsb0JBQWdCLElBQUMsc0dBSXJCLFlBQVEsSUFBQztZQUNwQixpQkFBeUI7O1lBRnhCLEFBREEsQUFEQSxBQUZBLEFBREEsQUFEQSxBQURBLG1DQUFpQixzQkFDQSx3QkFDRSw0QkFDSSxrQkFFViwrRkFDeUMsb0VBQ0c7OztpRkRvQjlDLG9CQUFvQjtjQU5oQyxTQUFTOzJCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO21LQU8vQyxLQUFLO2tCQURKLEtBQUs7O2tGQUpLLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBQcm9qZWN0LFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wYWdlLXNjYWZmb2xkL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgUmVzb3VyY2VMaXN0QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtbGlzdCc7XG5pbXBvcnQgeyBSZXNvdXJjZVNlbGVjdENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udGV4dC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUHJvamVjdERhdGFJdGVtIH0gZnJvbSAnLi8uLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1wcm9qZWN0LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3RMaXN0Q29tcG9uZW50XG4gIGV4dGVuZHMgUmVzb3VyY2VMaXN0QmFzZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBzdHJpbmc7XG5cbiAgc2VsZWN0ZWRQcm9qZWN0OiBQcm9qZWN0RGF0YUl0ZW07XG5cbiAgdHlwZSA9ICdwcm9qZWN0JyBhcyBjb25zdDtcblxuICBzZWxlY3RlZFVpZDogc3RyaW5nO1xuXG4gIHByb2plY3RzOiBQcm9qZWN0RGF0YUl0ZW1bXSA9IFtdO1xuXG4gIHByb2plY3RzJCA9IHRoaXMucmVsb2FkJCQucGlwZShcbiAgICBzdGFydFdpdGgobnVsbCBhcyB2b2lkKSxcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jb21tb25MYXlvdXRTZXJ2aWNlLmdldFByb2plY3RzKCkpLFxuICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uTGF5b3V0U2VydmljZTogQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2UsXG4gICAgY29udGV4dFNlcnZpY2U6IFJlc291cmNlU2VsZWN0Q29udGV4dFNlcnZpY2UsXG4gICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoY2RyLCBrOHNVdGlsLCBjb250ZXh0U2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnByb2plY3RzID0gdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRQcm9qZWN0cztcbiAgICB0aGlzLnNldFNlbGVjdGVkKCk7XG4gICAgdGhpcy5wcm9qZWN0cyQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHByb2plY3RzID0+IHtcbiAgICAgICAgdGhpcy5sb2FkLmVtaXQoe1xuICAgICAgICAgIHByb2plY3Q6IHByb2plY3RzLmxlbmd0aCxcbiAgICAgICAgICBjbHVzdGVyOiB1bmlxKFxuICAgICAgICAgICAgcHJvamVjdHMucmVkdWNlKFxuICAgICAgICAgICAgICAoYWNjLCBjdXIpID0+IFtcbiAgICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgICAgLi4uKGN1ci5zcGVjLmNsdXN0ZXJzIHx8IFtdKS5tYXAoYyA9PiBjLm5hbWUpLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKS5sZW5ndGgsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2plY3RzID0gdGhpcy5tYXBSZXNvdXJjZShwcm9qZWN0cyk7XG4gICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkUHJvamVjdHMgPSB0aGlzLnByb2plY3RzO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkKCk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvcmNlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JjZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByb2plY3QgPSB0aGlzLnByb2plY3RzLmZpbmQocCA9PiBwLm5hbWUgPT09IHRoaXMudmFsdWUpO1xuICB9XG5cbiAgbWFwUmVzb3VyY2UgPSAobGlzdDogUHJvamVjdFtdKTogUHJvamVjdERhdGFJdGVtW10gPT5cbiAgICBsaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGNhY2hlZEl0ZW0gPSB0aGlzLnByb2plY3RzLmZpbmQoXG4gICAgICAgIHByb2plY3QgPT4gcHJvamVjdC5uYW1lID09PSB0aGlzLms4c1V0aWwuZ2V0TmFtZShpdGVtKSxcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiB0aGlzLms4c1V0aWwuZ2V0TmFtZShpdGVtKSxcbiAgICAgICAgZGlzcGxheU5hbWU6IHRoaXMuazhzVXRpbC5nZXREaXNwbGF5TmFtZShpdGVtKSxcbiAgICAgICAgc3RhdHVzOiBpdGVtLnN0YXR1cz8ucGhhc2UgPT09ICdBY3RpdmUnID8gJ25vcm1hbCcgOiAnYWJub3JtYWwnLFxuICAgICAgICBhZG1pbjogY2FjaGVkSXRlbT8uYWRtaW4gfHwgJycsXG4gICAgICAgIHRpbWVzdGFtcDogaXRlbS5tZXRhZGF0YS5jcmVhdGlvblRpbWVzdGFtcCxcbiAgICAgICAgX19vcmlnaW46IGl0ZW0sXG4gICAgICB9O1xuICAgIH0pO1xufVxuIiwiPGFjbC1yZXNvdXJjZS1kYXRhLWdyaWRcbiAgW2RhdGFdPVwicHJvamVjdHNcIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICBbcG9wdXBMaXRlXT1cInBvcHVwTGl0ZVwiXG4gIChzZWxlY3RJdGVtKT1cIm9uU2VsZWN0KCRldmVudClcIlxuICBbdHlwZV09XCJ0eXBlXCJcbiAgW3NlbGVjdGVkVWlkXT1cInNlbGVjdGVkUHJvamVjdD8uX19vcmlnaW4ubWV0YWRhdGEudWlkXCJcbiAgW2xvYWRpbmddPVwiZm9yY2VMb2FkaW5nIHx8ICghcHJvamVjdHMubGVuZ3RoICYmIGxvYWRpbmcpXCJcbiAgKHJlbG9hZCk9XCJyZWxvYWQoKVwiXG4+PC9hY2wtcmVzb3VyY2UtZGF0YS1ncmlkPlxuIl19