@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
55 lines (54 loc) • 4.11 kB
TypeScript
import { IReadonlyAccessor } from '@docsvision/webclient/Helpers/DynamicModel/IReadonlyAccessor';
import React from 'react';
/** @internal Свойства для {@link SortableItems} */
export interface ISortableItemsProps<T = any> {
/** Модели данных, которые необходимо сортировать. */
items: T[];
/** Функция, осуществляющая отрисовку элемента данных. */
renderItem: (item: T, index?: number, items?: T[]) => any;
/** Вызывается при изменении порядка дочерних элементов */
onReorder: (sortedItems: T[]) => void;
/** Доступ к полю идентификатору в модели данных. */
idAccessor: IReadonlyAccessor<T, string>;
/** Ось сортировки {@link http://api.jqueryui.com/sortable/#option-axis} */
axis?: 'x' | 'y';
/** Указывает, какой блок выступает границами сортировки {@link http://api.jqueryui.com/sortable/#option-containment} */
containment?: HTMLElement | JQuery | 'parent' | 'document' | 'window' | string;
/** Стиль курсора во время изменения порядка элементов {@link http://api.jqueryui.com/sortable/#option-cursor} */
cursor?: string;
/** Стиль курсора во время изменения порядка элементов {@link http://api.jqueryui.com/sortable/#option-disabled} */
disabled?: boolean;
/** Должен ли хелпер иметь размер {@link http://api.jqueryui.com/sortable/#option-forceHelperSize} */
forceHelperSize?: boolean;
/** Должен ли плейсхолдер иметь размер {@link http://api.jqueryui.com/sortable/#option-forcePlaceholderSize} */
forcePlaceholderSize?: boolean;
/**
* Указывает селектор внутри дочернего элемента, за который можно будет его таскать (по умолчанию таскается весь дочерний элемент)
* {@link http://api.jqueryui.com/sortable/#option-handle}
*/
handle?: string;
/** Прозрачность перетаскиваемого элемента {@link http://api.jqueryui.com/sortable/#option-opacity} */
opacity?: number;
/** Если true, то страница скроллится, когда перетаскиваемый элемент на её краю {@link http://api.jqueryui.com/sortable/#option-scroll} */
scroll?: boolean;
/**
* Как далеко должна быть мышка от края (в пикселях), чтобы при перетаскивании страница скролилась бы (см. scroll)
* {@link http://api.jqueryui.com/sortable/#option-scrollSensitivity}
*/
scrollSensitivity?: number;
/** Скорость скролла окна при перетаскивании (см. scroll) {@link http://api.jqueryui.com/sortable/#option-scrollSpeed} */
scrollSpeed?: number;
/**
* Указывает режим, который регулирует, передвинулся ли перетаскиваемый элемент за другой элемент или нет
* {@link http://api.jqueryui.com/sortable/#option-tolerance}
*/
tolerance?: 'intersect' | 'pointer';
/** ZIndex перетаскиваемого элемента {@link http://api.jqueryui.com/sortable/#option-zIndex} */
zIndex?: number;
/** Остановить сортировку, если перетаскиваемый элемент вне родителя */
draggableInParent?: boolean;
}
/** Обертка вокруг {@see Sortable}, определяющая другой интерфейс (не требующий оборачивать элементы в {@see ISortableItem}). */
export declare class SortableItems<T = any> extends React.Component<ISortableItemsProps<T>, undefined> {
render(): JSX.Element;
}