@alauda-fe/common
Version:
Alauda frontend team common codes.
114 lines • 15.2 kB
JavaScript
import { ButtonModule, CheckboxModule, DropdownModule, IconModule, } from '@alauda/ui';
import { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { EffectDirectiveModule } from '../effect-directive/module';
import { TranslateModule } from '../translate/translate.module';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
import * as i3 from "@alauda/ui";
import * as i4 from "../translate/translate.pipe";
import * as i5 from "../effect-directive/e2e-attribute-binding.directive";
const _c0 = a0 => ({ "margin-left": a0 });
function TableCustomColumnsComponent_ng_template_3_aui_checkbox_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "aui-checkbox", 7);
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
const item_r3 = ctx.$implicit;
const ctx_r1 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("label", item_r3)("hidden", ctx_r1.ignoreOptions.includes(item_r3));
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, item_r3), " ");
} }
function TableCustomColumnsComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
const _r1 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-menu", 4)(1, "aui-checkbox-group", 5);
i0.ɵɵtwoWayListener("ngModelChange", function TableCustomColumnsComponent_ng_template_3_Template_aui_checkbox_group_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.columns, $event) || (ctx_r1.columns = $event); return i0.ɵɵresetView($event); });
i0.ɵɵlistener("ngModelChange", function TableCustomColumnsComponent_ng_template_3_Template_aui_checkbox_group_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectedChanged($event)); });
i0.ɵɵtemplate(2, TableCustomColumnsComponent_ng_template_3_aui_checkbox_2_Template, 3, 5, "aui-checkbox", 6);
i0.ɵɵelementEnd()();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵadvance();
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.columns);
i0.ɵɵadvance();
i0.ɵɵproperty("ngForOf", ctx_r1.options);
} }
const TABLE_CUSTOM_COLUMNS_SETTING_KEY = '__TABLE_CUSTOM_COLUMNS_SETTING_KEY__';
export class TableCustomColumnsComponent {
constructor() {
this.ignoreOptions = ['action'];
this.marginLeft = '8px';
this.columnsChange = new EventEmitter();
}
ngOnInit() {
this.storage = JSON.parse(localStorage.getItem(TABLE_CUSTOM_COLUMNS_SETTING_KEY) || '{}');
if (this.id && this.storage[this.id]) {
const storageColumns = this.storage[this.id].split(',');
const filteredItems = storageColumns.filter(item => this.options.includes(item));
this.columns = filteredItems;
this.columnsChange.emit(filteredItems);
return;
}
if (this.columns?.length) {
const filteredItems = this.columns.filter(item => this.options.includes(item));
this.columns = filteredItems;
this.columnsChange.emit(filteredItems);
return;
}
if (!this.columns) {
this.columns = [...this.options];
}
}
selectedChanged(event) {
this.columnsChange.emit(event);
if (this.id) {
localStorage.setItem(TABLE_CUSTOM_COLUMNS_SETTING_KEY, JSON.stringify({
...this.storage,
[this.id]: event.join(','),
}));
}
}
static { this.ɵfac = function TableCustomColumnsComponent_Factory(t) { return new (t || TableCustomColumnsComponent)(); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCustomColumnsComponent, selectors: [["acl-table-column-setting"]], inputs: { options: "options", ignoreOptions: "ignoreOptions", columns: "columns", marginLeft: "marginLeft", id: "id" }, outputs: { columnsChange: "columnsChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 5, vars: 6, consts: [["setting", ""], [3, "ngStyle"], ["aui-button", "", 3, "square", "auiDropdown", "auiDropdownHideOnClick"], ["icon", "gear"], ["size", "small"], ["direction", "column", 3, "ngModelChange", "ngModel"], [3, "label", "hidden", 4, "ngFor", "ngForOf"], [3, "label", "hidden"]], template: function TableCustomColumnsComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 1)(1, "button", 2);
i0.ɵɵelement(2, "aui-icon", 3);
i0.ɵɵelementEnd()();
i0.ɵɵtemplate(3, TableCustomColumnsComponent_ng_template_3_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
} if (rf & 2) {
const setting_r4 = i0.ɵɵreference(4);
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(4, _c0, ctx.marginLeft));
i0.ɵɵadvance();
i0.ɵɵproperty("square", true)("auiDropdown", setting_r4)("auiDropdownHideOnClick", false);
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgStyle, FormsModule, i2.NgControlStatus, i2.NgModel, DropdownModule, i3.DropdownDirective, i3.MenuComponent, ButtonModule, i3.ButtonComponent, IconModule, i3.IconComponent, CheckboxModule, i3.CheckboxComponent, i3.CheckboxGroupComponent, TranslateModule, i4.TranslatePipe, EffectDirectiveModule, i5.E2eAttributeBindingDirective], encapsulation: 2, changeDetection: 0 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableCustomColumnsComponent, [{
type: Component,
args: [{ selector: 'acl-table-column-setting', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
CommonModule,
FormsModule,
DropdownModule,
ButtonModule,
IconModule,
CheckboxModule,
TranslateModule,
EffectDirectiveModule,
], template: "<div [ngStyle]=\"{ 'margin-left': marginLeft }\">\n <button\n aui-button\n [square]=\"true\"\n [auiDropdown]=\"setting\"\n [auiDropdownHideOnClick]=\"false\"\n >\n <aui-icon icon=\"gear\"></aui-icon>\n </button>\n</div>\n<ng-template #setting\n ><aui-menu size=\"small\">\n <aui-checkbox-group\n [(ngModel)]=\"columns\"\n direction=\"column\"\n (ngModelChange)=\"selectedChanged($event)\"\n >\n <aui-checkbox\n *ngFor=\"let item of options\"\n [label]=\"item\"\n [hidden]=\"ignoreOptions.includes(item)\"\n >\n {{ item | translate }}\n </aui-checkbox>\n </aui-checkbox-group>\n </aui-menu></ng-template\n>\n" }]
}], null, { options: [{
type: Input
}], ignoreOptions: [{
type: Input
}], columns: [{
type: Input
}], marginLeft: [{
type: Input
}], id: [{
type: Input
}], columnsChange: [{
type: Output
}] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableCustomColumnsComponent, { className: "TableCustomColumnsComponent" }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2N1c3RvbS1jb2x1bW5zLXNldHRpbmcvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2N1c3RvbS1jb2x1bW5zLXNldHRpbmcvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxjQUFjLEVBQ2QsVUFBVSxHQUNYLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7SUNGMUQsdUNBSUM7SUFDQyxZQUNGOztJQUFBLGlCQUFlOzs7O0lBSGIsQUFEQSwrQkFBYyxrREFDeUI7SUFFdkMsY0FDRjtJQURFLDhEQUNGOzs7O0lBWEYsQUFERCxtQ0FBdUIsNEJBS3JCO0lBSEMsOFRBQXFCO0lBRXJCLGlPQUFpQiw4QkFBdUIsS0FBQztJQUV6Qyw0R0FJQztJQUlMLEFBREUsaUJBQXFCLEVBQ1o7OztJQVpQLGNBQXFCO0lBQXJCLDhDQUFxQjtJQUtGLGNBQVU7SUFBVix3Q0FBVTs7QURHbkMsTUFBTSxnQ0FBZ0MsR0FBRyxzQ0FBc0MsQ0FBQztBQWtCaEYsTUFBTSxPQUFPLDJCQUEyQjtJQWhCeEM7UUFtQlcsa0JBQWEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTXBDLGVB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O2tCQURaLE1BQU07O2tGQWRJLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBJY29uTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEVmZmVjdERpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJy4uL2VmZmVjdC1kaXJlY3RpdmUvbW9kdWxlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS90cmFuc2xhdGUubW9kdWxlJztcblxuY29uc3QgVEFCTEVfQ1VTVE9NX0NPTFVNTlNfU0VUVElOR19LRVkgPSAnX19UQUJMRV9DVVNUT01fQ09MVU1OU19TRVRUSU5HX0tFWV9fJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRhYmxlLWNvbHVtbi1zZXR0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEVmZmVjdERpcmVjdGl2ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDdXN0b21Db2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgb3B0aW9uczogc3RyaW5nW107XG5cbiAgQElucHV0KCkgaWdub3JlT3B0aW9ucyA9IFsnYWN0aW9uJ107XG5cbiAgQElucHV0KClcbiAgY29sdW1ucz86IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIG1hcmdpbkxlZnQgPSAnOHB4JztcblxuICBASW5wdXQoKVxuICBpZDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBjb2x1bW5zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBzdG9yYWdlOiBTdHJpbmdNYXA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlID0gSlNPTi5wYXJzZShcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRBQkxFX0NVU1RPTV9DT0xVTU5TX1NFVFRJTkdfS0VZKSB8fCAne30nLFxuICAgICk7XG4gICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5zdG9yYWdlW3RoaXMuaWRdKSB7XG4gICAgICBjb25zdCBzdG9yYWdlQ29sdW1ucyA9IHRoaXMuc3RvcmFnZVt0aGlzLmlkXS5zcGxpdCgnLCcpO1xuICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IHN0b3JhZ2VDb2x1bW5zLmZpbHRlcihpdGVtID0+XG4gICAgICAgIHRoaXMub3B0aW9ucy5pbmNsdWRlcyhpdGVtKSxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBmaWx0ZXJlZEl0ZW1zO1xuICAgICAgdGhpcy5jb2x1bW5zQ2hhbmdlLmVtaXQoZmlsdGVyZWRJdGVtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sdW1ucz8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gdGhpcy5jb2x1bW5zLmZpbHRlcihpdGVtID0+XG4gICAgICAgIHRoaXMub3B0aW9ucy5pbmNsdWRlcyhpdGVtKSxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBmaWx0ZXJlZEl0ZW1zO1xuICAgICAgdGhpcy5jb2x1bW5zQ2hhbmdlLmVtaXQoZmlsdGVyZWRJdGVtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNvbHVtbnMpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IFsuLi50aGlzLm9wdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdGVkQ2hhbmdlZChldmVudDogc3RyaW5nW10pIHtcbiAgICB0aGlzLmNvbHVtbnNDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBUQUJMRV9DVVNUT01fQ09MVU1OU19TRVRUSU5HX0tFWSxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIC4uLnRoaXMuc3RvcmFnZSxcbiAgICAgICAgICBbdGhpcy5pZF06IGV2ZW50LmpvaW4oJywnKSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQgfVwiPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvblxuICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgW2F1aURyb3Bkb3duXT1cInNldHRpbmdcIlxuICAgIFthdWlEcm9wZG93bkhpZGVPbkNsaWNrXT1cImZhbHNlXCJcbiAgPlxuICAgIDxhdWktaWNvbiBpY29uPVwiZ2VhclwiPjwvYXVpLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3NldHRpbmdcbiAgPjxhdWktbWVudSBzaXplPVwic21hbGxcIj5cbiAgICA8YXVpLWNoZWNrYm94LWdyb3VwXG4gICAgICBbKG5nTW9kZWwpXT1cImNvbHVtbnNcIlxuICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8YXVpLWNoZWNrYm94XG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnNcIlxuICAgICAgICBbbGFiZWxdPVwiaXRlbVwiXG4gICAgICAgIFtoaWRkZW5dPVwiaWdub3JlT3B0aW9ucy5pbmNsdWRlcyhpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGl0ZW0gfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLWNoZWNrYm94PlxuICAgIDwvYXVpLWNoZWNrYm94LWdyb3VwPlxuICA8L2F1aS1tZW51PjwvbmctdGVtcGxhdGVcbj5cbiJdfQ==