UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

116 lines 15.4 kB
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 { TranslatePipe } from '../translate/public-api'; 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 "../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(" ", (ctx_r1.labels == null ? null : ctx_r1.labels[item_r3]) || 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", labels: "labels", 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, TranslatePipe, EffectDirectiveModule, i4.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, TranslatePipe, 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 {{ labels?.[item] || (item | translate) }}\n </aui-checkbox>\n </aui-checkbox-group>\n </aui-menu>\n</ng-template>\n" }] }], null, { options: [{ type: Input }], ignoreOptions: [{ type: Input }], labels: [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2N1c3RvbS1jb2x1bW5zLXNldHRpbmcvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2N1c3RvbS1jb2x1bW5zLXNldHRpbmcvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxjQUFjLEVBQ2QsVUFBVSxHQUNYLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztJQ0ZsRCx1Q0FJQztJQUNDLFlBQ0Y7O0lBQUEsaUJBQWU7Ozs7SUFIYixBQURBLCtCQUFjLGtEQUN5QjtJQUV2QyxjQUNGO0lBREUseUhBQ0Y7Ozs7SUFYRixBQURGLG1DQUF1Qiw0QkFLcEI7SUFIQyw4VEFBcUI7SUFFckIsaU9BQWlCLDhCQUF1QixLQUFDO0lBRXpDLDRHQUlDO0lBSUwsQUFERSxpQkFBcUIsRUFDWjs7O0lBWlAsY0FBcUI7SUFBckIsOENBQXFCO0lBS0YsY0FBVTtJQUFWLHdDQUFVOztBREduQyxNQUFNLGdDQUFnQyxHQUFHLHNDQUFzQyxDQUFDO0FBa0JoRixNQUFNLE9BQU8sMkJBQTJCO0lBaEJ4QztRQW1CVyxrQkFBYSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFRcEMsZUFB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O2tCQURELEtBQUs7WUFJTixhQUFhO2tCQURaLE1BQU07O2tGQWhCSSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdXR0b25Nb2R1bGUsXG4gIENoZWNrYm94TW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbn0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBFZmZlY3REaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi9lZmZlY3QtZGlyZWN0aXZlL21vZHVsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuXG5jb25zdCBUQUJMRV9DVVNUT01fQ09MVU1OU19TRVRUSU5HX0tFWSA9ICdfX1RBQkxFX0NVU1RPTV9DT0xVTU5TX1NFVFRJTkdfS0VZX18nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdGFibGUtY29sdW1uLXNldHRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBDaGVja2JveE1vZHVsZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEVmZmVjdERpcmVjdGl2ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDdXN0b21Db2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgb3B0aW9uczogc3RyaW5nW107XG5cbiAgQElucHV0KCkgaWdub3JlT3B0aW9ucyA9IFsnYWN0aW9uJ107XG5cbiAgQElucHV0KCkgbGFiZWxzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBASW5wdXQoKVxuICBjb2x1bW5zPzogc3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgbWFyZ2luTGVmdCA9ICc4cHgnO1xuXG4gIEBJbnB1dCgpXG4gIGlkOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIGNvbHVtbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIHN0b3JhZ2U6IFN0cmluZ01hcDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JhZ2UgPSBKU09OLnBhcnNlKFxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oVEFCTEVfQ1VTVE9NX0NPTFVNTlNfU0VUVElOR19LRVkpIHx8ICd7fScsXG4gICAgKTtcbiAgICBpZiAodGhpcy5pZCAmJiB0aGlzLnN0b3JhZ2VbdGhpcy5pZF0pIHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VDb2x1bW5zID0gdGhpcy5zdG9yYWdlW3RoaXMuaWRdLnNwbGl0KCcsJyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gc3RvcmFnZUNvbHVtbnMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgdGhpcy5vcHRpb25zLmluY2x1ZGVzKGl0ZW0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29sdW1ucyA9IGZpbHRlcmVkSXRlbXM7XG4gICAgICB0aGlzLmNvbHVtbnNDaGFuZ2UuZW1pdChmaWx0ZXJlZEl0ZW1zKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2x1bW5zPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkSXRlbXMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgdGhpcy5vcHRpb25zLmluY2x1ZGVzKGl0ZW0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29sdW1ucyA9IGZpbHRlcmVkSXRlbXM7XG4gICAgICB0aGlzLmNvbHVtbnNDaGFuZ2UuZW1pdChmaWx0ZXJlZEl0ZW1zKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29sdW1ucykge1xuICAgICAgdGhpcy5jb2x1bW5zID0gWy4uLnRoaXMub3B0aW9uc107XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0ZWRDaGFuZ2VkKGV2ZW50OiBzdHJpbmdbXSkge1xuICAgIHRoaXMuY29sdW1uc0NoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICBpZiAodGhpcy5pZCkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgIFRBQkxFX0NVU1RPTV9DT0xVTU5TX1NFVFRJTkdfS0VZLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgLi4udGhpcy5zdG9yYWdlLFxuICAgICAgICAgIFt0aGlzLmlkXTogZXZlbnQuam9pbignLCcpLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInsgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCB9XCI+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uXG4gICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICBbYXVpRHJvcGRvd25dPVwic2V0dGluZ1wiXG4gICAgW2F1aURyb3Bkb3duSGlkZU9uQ2xpY2tdPVwiZmFsc2VcIlxuICA+XG4gICAgPGF1aS1pY29uIGljb249XCJnZWFyXCI+PC9hdWktaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjc2V0dGluZz5cbiAgPGF1aS1tZW51IHNpemU9XCJzbWFsbFwiPlxuICAgIDxhdWktY2hlY2tib3gtZ3JvdXBcbiAgICAgIFsobmdNb2RlbCldPVwiY29sdW1uc1wiXG4gICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxhdWktY2hlY2tib3hcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiXG4gICAgICAgIFtsYWJlbF09XCJpdGVtXCJcbiAgICAgICAgW2hpZGRlbl09XCJpZ25vcmVPcHRpb25zLmluY2x1ZGVzKGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAge3sgbGFiZWxzPy5baXRlbV0gfHwgKGl0ZW0gfCB0cmFuc2xhdGUpIH19XG4gICAgICA8L2F1aS1jaGVja2JveD5cbiAgICA8L2F1aS1jaGVja2JveC1ncm91cD5cbiAgPC9hdWktbWVudT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=