import { OnInit } from '@angular/core'; import { KbqTreeSelection } from '@koobiq/components/tree'; import { DestroyService } from '@mosaic-design/infosec-components/services'; import { BaseTreeDisplayStateManagerService } from '@mosaic-design/infosec-components/types'; import * as i0 from "@angular/core"; /** * @description Директива сохранения состояния дерева. Предназначена для использования в компоненте kbq-tree-selection. * Директива при навешивании на дерево сохраняет данные через наш менеджер состояний передаваемый через DI на BE, * и восстанавливает состояние дерева при инициализации. * настройки хранилища задаются в значении директивы * Состояние дерева не сохраняется при фильтрации. * Дерево сохраняет состояние даже если нода выделена программно в скрытой ветке. В этом случае ветка раскроется * до этой ноды и сохранит текущее состояние. * Так же раскрывая ноду часть узлов может быть схлопнута, часть нет. * Зависит от того какое состояние пользователь задал у дочерних элементов. * При создании ноды в схлопнутой папке если ноду нельзя выделить, то дерево не раскроется. */ export declare class IcSaveTreeDisplayStateDirective implements OnInit { private tree; private treeDisplayStateManagerService; private destroy$; private storageSettings; private treeState; private treeControl; private dataSource; private selectedNodes; private isRestoringStateNow; private currentFilterValue; set icSaveTreeDisplayState(storageSettings: StorageSettings); constructor(tree: KbqTreeSelection, treeDisplayStateManagerService: BaseTreeDisplayStateManagerService, destroy$: DestroyService); ngOnInit(): void; /** * Сохранить новое состояние дерева в менеджере состояний * * @param data - новое состояние элементов дерева */ private saveNewState; /** * Получить уникальный идентификатор элемента дерева * * @description Данный метод необходим из-за того, что нельзя гарантировать наличие поля id в элементе дерева * @param node - элемент дерева * @returns */ private getNodeId; /** * Применить новые настройки состояния дерева */ private restoreState; /** * Открытие всех родительских элементов дерева * * @param node - элемент дерева */ private setVisibleToRoot; /** * Открытие всех родительских элементов для выбранных элементов дерева * * @param selectedNodes - выбранные элементы дерева * @param saveState - флаг сохранения состояний */ private openPathForRoot; /** * Открыть ветку дерева * * @param node элемент дерева */ private openTreeBranch; /** * Получить родительский элемент по элементу дерева если он есть * * @param node - элемент дерева * @returns родительский элемент если он существует */ private getParent; /** * Проверить принадлежит ли элемент к SelectionModelOption * * @param item выбранный элемент * @returns принадлежит ли элемент к SelectionModelOption */ private isSelectionModelOption; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[icSaveTreeDisplayState]", never, { "icSaveTreeDisplayState": { "alias": "icSaveTreeDisplayState"; "required": false; }; }, {}, never, never, true, never>; }