import { ChangeDetectorRef, ElementRef, EventEmitter, QueryList, OnChanges, SimpleChanges } from '@angular/core'; import { BehaviorSubject, Subject } from 'rxjs'; import { GasTable } from '../gas-table.namespace'; import { GasIcon } from '../../../utils/gas-icons/icon/gas-icon.namespace'; import { GasSimpleTableComponent } from '../gas-simple-table/gas-simple-table.component'; /** * Данный компонент отвечает за настройку колонок в таблице */ export declare class GasTableColumnSettingsComponent implements OnChanges { private changeDetectorRef; applyColumnManage$: EventEmitter>; resetColumnManage$: EventEmitter; columnsVisibilityPopupTitle: string; hiddenTableColumnsKeys: string[]; simpleTableComponent: GasSimpleTableComponent; visibleResetColumnButton: boolean; initColumnProperty: QueryList; updateColumnsVisibilityProperty: boolean; readonly columnsConfigActionIcon = GasIcon.Core.Settings; readonly columnsConfigExpandIcon = GasIcon.Arrows.ChevronDown; closeSubject$: Subject; columnsCheckboxes$: BehaviorSubject; private currentCheckboxes; private applyColumnSettings$; constructor(changeDetectorRef: ChangeDetectorRef); /** * Следит за изменением переменных для обновления отображения колонок */ ngOnChanges(changes: SimpleChanges): void; /** * @param list - список html-элементов которые требуются для инициализации колонок * Метод пробегается по списку, создает для каждого объект с настройками и все помещает в сабжект this.columnsCheckboxes$ * после чего вызывает метод updateCurrentColumnVisibility для отрисовки таблицы */ initColumnManage(list: QueryList): void; /** * Открытие/закрытие поповера * При закрытии окна с настройками колонок проверяем, были ли приянты изменения * если нет - то нужно поменять значения чекбоксов, которые пользователь кликал * на противоположные значения */ togglePopover(opened: boolean): void; /** * Сохранение настроек. Перебирает выбранные пользователем чекбоксы, вызывает метод updateCurrentColumnVisibility * для перерисовки и эммитит наверх значение выбранных колонок */ applyColumnManage(): void; /** * Сбрасывает настройки колонок к начальным и эммитит наверх событие */ resetColumnManage(): void; /** * @param key - ключ выбранной колонки * Меняет значение поля checked для каждого отмеченного чекбокса */ onChangeColumnManage(key: string): void; /** * Перебирает колонки и для каждой обновляет представление */ updateColumnsVisibility(): void; /** * Обновляет представление таблицы путем навешивания соответствующих классов */ updateCurrentColumnVisibility(index: number, checked: boolean): void; }