Класс ItemNode
Класс представляет визуальное представление (DOM-узел) элемента.
Конструктор
constructor(item: Item, nodeOptions: ItemNodeOptions): ItemNode
Создает объект класса ItemNode.
Для создания DOM-узлов элемента используйте метод item.createNode() или опцию nodeOptions в конструкторе класса Item.
item— элемент (объект класса Item), для которого будет создан DOM-узел.nodeOptions— опции элемента, которые определяются структуройItemNodeOptions.
export type ItemNodeOptions = {
itemOrder?: ItemNodeOrder,
open?: boolean,
dynamic?: boolean,
title?: string | TextNodeOptions,
subtitle?: string | TextNodeOptions,
supertitle?: string | TextNodeOptions,
caption?: string | TextNodeOptions,
captionOptions?: CaptionOptions,
avatar?: string,
avatarOptions?: AvatarOptions,
textColor?: string,
link?: string,
linkTitle?: string | TextNodeOptions,
badges?: ItemBadgeOptions[],
badgesOptions?: BadgesOptions,
};
itemOrder?: ItemNodeOrderСортировка элементов внутри DOM-узла. Определяется структурой
ItemNodeOrder:export type ItemNodeOrder = ( { [field: string]: 'asc' | 'desc' | 'asc nulls first' | 'asc nulls last' | 'desc nulls first' | 'desc nulls last' } | (a: ItemNode, b: ItemNode) => number );В обычном случае указываются поля элемента, по которым необходимо сортировать.
const options = { itemOrder: { title: 'asc', sort: 'asc', id: 'desc' } };Если сортировки по полям не хватает, можно определить свою функцию, определяющую порядок сортировки.
const options = { itemOrder: (nodeA: ItemNode, nodeB: ItemNode) => { const itemA = nodeA.getItem(); const itemB = nodeB.getItem(); return itemA.getSort() - itemB.getSort(); } };open?: booleanОпределяет развернутость DOM-узла с вложенными элементами. Для динамических узлов значение
trueприводит к автоматической загрузке вложенных элементов.dynamic?: booleanОпределяет динамический узел. При нажатии на такой узел будет выполнен запрос на бэкенд для загрузки вложенных элементов-потомков.
title?: string | TextNodeOptionsЗаголовок DOM-узла. Определяется либо строкой, либо структурой TextNodeOptions.
Если значение не задано, заголовок будет искаться у элемента, к которому относится DOM-узел.subtitle?: string | TextNodeOptionsПодзаголовок DOM-узла. Определяется либо строкой, либо структурой TextNodeOptions.
Если значение не задано, подзаголовок будет искаться у элемента, к которому относится DOM-узел.supertitle?: string | TextNodeOptionsНадзаголовок DOM-узла. Определяется либо строкой, либо структурой TextNodeOptions.
Если значение не задано, надзаголовок будет искаться у элемента, к которому относится DOM-узел.caption?: string | TextNodeOptionsПодпись DOM-узла. Определяется либо строкой, либо структурой TextNodeOptions.
Если значение не задано, подпись будет искаться у элемента, к которому относится DOM-узел.captionOptions?: CaptionOptionsДополнительные настройки подписи элемента. Определяются структурой CaptionOptions.
Если значение не задано, настройки будут искаться у элемента, к которому относится DOM-узел.avatar?: stringАватар DOM-узла. Указывается либо путь к изображению, либо файл в формате Data URL.
Если значение не задано, аватар будет искаться у элемента, к которому относится DOM-узел.avatarOptions?: AvatarOptionsДополнительные настройки аватара DOM-узла.
Определяются структурой AvatarOptions. Если значение не задано, настройки аватара будут искаться у элемента, к которому относится DOM-узел.
textColor?: stringЦвет текста заголовка DOM-узла. Если значение не задано, цвет текста заголовка будет искаться у элемента, к которому относится DOM-узел.
link?: stringАдрес ссылки "подробнее". Если значение не задано, адрес ссылки будет искаться у элемента, к которому относится DOM-узел.
linkTitle?: string | TextNodeOptionsЗаголовок ссылки "подробнее". Если значение не задано, заголовок ссылки будет искаться у элемента, к которому относится DOM-узел.
badges?: ItemBadgeOptions[]Массив бейджей DOM-узла. Каждый бейдж определяется структурой ItemBadgeOptions.
Если значение не задано, бейджи будут искаться у элемента, к которому относится DOM-узел.badgesOptions?: BadgesOptionsДополнительные настройки для блока с бейджами. Определяются структурой BadgesOptions.
Если значение не задано, настройки будут искаться у элемента, к которому относится DOM-узел.
Методы
| Метод | Описание | С версии |
|---|---|---|
| getItem(): Item | Возвращает элемент, к которому относится DOM-узел. | |
| getDialog(): Dialog | Возвращает диалог, в котором отрисован DOM-узел. | |
| getTab(): Tab | Возвращает вкладку, в которой отрисован DOM-узел. | |
| isRoot(): boolean | Возвращает true, если DOM-узел корневой.
Корневые узлы создаются автоматически для всех вкладок. Они не имеют визуального представления. | |
| getParentNode(): ?ItemNode | Возвращает родительский DOM-узел. | |
| getNextSibling(): ?ItemNode | Возвращает следующий соседний DOM-узел. | |
| getPreviousSibling(): ?ItemNode | Возвращает предыдущий соседний DOM-узел. | |
| addChildren(children: ItemOptions[]): void | Добавляет вложенные DOM-узлы. | |
| addChild(child: ItemNode): ItemNode | Добавляет вложенный DOM-узел. | |
| getDepthLevel(): number | Возвращает уровень вложенности DOM-узла. | |
| addItem(item: Item, nodeOptions: ItemNodeOptions): ItemNode | Добавляет дочерний элемент. | |
| hasItem(item: Item): boolean | Возвращает true, если среди потомков есть указанный элемент. | |
| removeChild(child: ItemNode): boolean | Удаляет дочерний DOM-узел. | |
| removeChildren(): void | Удаляет все дочерние DOM-узлы. | |
| hasChild(child: ItemNode): boolean | Возвращает true, если указанный DOM-узел является потомком. | |
| isChildOf(parent: ItemNode): boolean | Возвращает true, если указанный DOM-узел является родителем. | |
| getFirstChild(): ?ItemNode | Возвращает первый дочерний DOM-узел. | |
| getLastChild(): ?ItemNode | Возвращает последний дочерний DOM-узел. | |
| getChildren(): OrderedArray | Возвращает сортированную коллекцию всех потомков. | |
| hasChildren(): boolean | Возвращает true, если DOM-узел имеет потомков. | |
| loadChildren(): Promise | Загружает дочерние элементы с бэкенда. | |
| isOpen(): boolean | Возвращает true, если DOM-узел развернут (открыт). | |
| setDynamic(dynamic: boolean): void | Устанавливает или отменяет динамичность DOM-узла. | |
| isDynamic(): boolean | Возвращает true, если DOM-узел является динамическим. При нажатии на такой узел будет выполнен запрос на бэкенд для загрузки вложенных элементов-потомков. | |
| isLoaded(): boolean | Возвращает true, если DOM-узел уже загрузил с бэкенда вложенные элементы. | |
| expand(): void | Разворачивает DOM-узел, если он имеет потомков. | |
| collapse(): void | Сворачивает DOM-узел, если он имеет потомков. | |
| isRendered(): boolean | Возвращает true, если DOM-узел был вставлен в диалог и отрисован. | |
| getTitle(): string | Возвращает заголовок DOM-узла. Если для DOM-узла значение не задано, заголовок будет искаться у элемента, к которому относится DOM-узел. | |
| setTitle(title: string | TextNodeOptions): void | Устанавливает заголовок DOM-узла. Заголовок определяется либо строкой, либо структурой TextNodeOptions. | |
| getSubtitle(): ?string | Возвращает подзаголовок DOM-узла.
Если для DOM-узла значение не задано, подзаголовок будет искаться у элемента, к которому относится DOM-узел. | |
| setSubtitle(subtitle: string | TextNodeOptions): void | Устанавливает подзаголовок DOM-узла. Подзаголовок определяется либо строкой, либо структурой TextNodeOptions. | |
| getSupertitle(): ?string | Возвращает надзаголовок DOM-узла.
Если для DOM-узла значение не задано, надзаголовок будет искаться у элемента, к которому относится DOM-узел. | |
| setSupertitle(supertitle: string | TextNodeOptions): void | Устанавливает надзаголовок DOM-узла. Надзаголовок определяется либо строкой, либо структурой TextNodeOptions. | |
| getCaption(): ?string | Возвращает подпись DOM-узла.
Если для DOM-узла значение не задано, подпись будет искаться у элемента, к которому относится DOM-узел. | |
| setCaption(caption: string | TextNodeOptions): void | Устанавливает подпись DOM-узла. Подпись определяется либо строкой, либо структурой TextNodeOptions. | |
| getAvatar(): ?string | Возвращает аватар DOM-узла.
Если для DOM-узла значение не задано, аватар будет искаться у элемента, к которому относится DOM-узел. | |
| setAvatar(avatar: ?string): void | Устанавливает аватар DOM-узла. Указывается либо путь к изображению, либо файл в формате Data URL. | |
| getAvatarOption(option: $Keys | Возвращает значение настройки для аватара DOM-узла.
Название опции option определяется ключами структуры AvatarOptions.
Если для DOM-узла значение не задано, опция будет искаться у элемента. | 21.600.0 |
| setAvatarOption(option: $Keys | Устанавливает значение опции для аватара DOM-узла.
Название опции option определяется ключами структуры AvatarOptions. | 21.600.0 |
| setAvatarOptions(options: AvatarOptions): void | Устанавливает настройки для аватара DOM-узла.
Настройки option определяются структурой AvatarOptions. | 21.600.0 |
| getTextColor(): ?string | Возвращает цвет текста заголовка DOM-узла.
Если для DOM-узла значение не задано, цвет текста заголовка будет искаться у элемента, к которому относится DOM-узел. | |
| setTextColor(textColor: ?string): void | Устанавливает цвет текста заголовка DOM-узла. | |
| getLink(): ?string | Возвращает адрес ссылки "подробнее".
Если для DOM-узла значение не задано, адрес ссылки будет искаться у элемента, к которому относится DOM-узел. | |
| setLink(link: string): void | Устанавливает адрес ссылки "подробнее". | |
| getLinkTitle(): ?string | Возвращает заголовок ссылки "подробнее".
Если для DOM-узла значение не задано, заголовок ссылки будет искаться у элемента, к которому относится DOM-узел. | |
| setLinkTitle(title: string | TextNodeOptions): void | Устанавливает заголовок ссылки "подробнее". Заголовок определяется либо строкой, либо структурой TextNodeOptions. | |
| getBadges(): ItemBadge[] | Возвращает массив бейджей (объекты класса ItemBadge) DOM-узла. Если для DOM-узла значение не задано, бейджи будут искаться у элемента, к которому относится DOM-узел. | |
| setBadges(badges: ?ItemBadgeOptions[]): void | Устанавливает бейджи DOM-узла. Каждый бейдж определяется структурой ItemBadgeOptions. | |
| focus(): void | Устанавливает фокус на DOM-узле. | |
| unfocus(): void | Сбрасывает фокус на DOM-узле. | |
| isFocused(): boolean | Возвращает true, если на DOM-узле установлен фокус. | |
| click(): void | Эмулирует нажатие пользователя DOM-узел. | |
| scrollIntoView(): void | Скроллирует содержимое вкладки, чтобы DOM-узел находился в области видимости. |