@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
87 lines (86 loc) • 4.81 kB
TypeScript
import React from "react";
/** @internal Свойства для {@link Button} */
export interface IButtonProperties {
/** Отображаемый текст. */
text?: string;
/**
* Позволяет показать указанную иконку слева от текста.
* Класс должен оределять ширину и высоту фона, представляющего собой иконку.
* Предпочтительная ширина иконка - 18px (это ширина иконки загрузки), но можно использовать и иконку любых других размеров.
* Если размер иконки не 18x18, то вы должны установить в свойстве loadingIconClass свою загрузочную иконку,
* иначе текст будет прыгать во время загрузки.
* По умолчанию: null.
*/
iconClass?: string;
/**
* Показывать ли иконку загрузки во время загрузки вместо иконки указанной в свойстве iconClass.
* По умолчанию: false.
*/
loading?: boolean;
/**
* Пользовательский класс для загрузочной иконки (свойство loading должно быть истинно).
* По умолчанию: "dv-ico icon-spin loader-animate".
*/
loadingIconClass?: string;
/** Видна ли кнопка. По умолчанию: true. */
visible?: boolean;
/** Дополнительный класс. */
className?: string;
/** Событие клика. Оно Вызывается также при нажатии клавиш Enter или Space (пробел), когда кнопка находится в фокусе. */
onClick?: (ev: React.MouseEvent<any>) => void;
/** Флаг, указывающий на то, что событие нажатия на кнопку мыши сработает в обработчике событий onClick (по умолчанию в onMouseUp) */
eventOnClick?: boolean;
/** Обработчик нажатия клавиши. */
onKeyDown?: (ev?: any) => void;
/** Вызывается при получении кнопкой фокуса. */
onFocus?: (ev?: any) => void;
/** Вызывается при потери кнопкой фокуса. */
onBlur?: (ev?: any) => void;
/**
* Должна ли кнопка иметь ширину 100% или нет.
* По умолчанию: true.
*/
stretchWidth?: boolean;
/** Всплывающая подсказка. */
title?: string;
/**
* Отображать кнопку с указанным стилем Primary.
* По умолчанию: false
*/
primaryButton?: boolean;
/**
* Как текст кнопки и её иконка должны быть выровнены.
* По умолчанию: ButtonAlignModes.Center
*/
align?: ButtonAlignModes;
/** Значение свойства TabIndex для навигации по клавише Tab. */
tabIndex?: number;
/** Содержимое кнопки (может быть использовано вместо свойства text). */
children?: any;
/** Поддержка для присоединения к корневому элементу. */
attach?: (instance: HTMLElement) => any;
/** Значение атрибута data-button-name для автотестирования. */
name?: string;
/**
* Выключена ли конпка или включена.
* Если кнопка выключена, то она будет иметь особый внешний вид и событие onClick не будет вызываться.
* По умолчанию: false.
*/
disabled?: boolean;
/**
* Цвет кнопки (переписывает цвет, установленный в соответсвии сосвойством primaryButton
* при необходимости, например, для кнопок завершения задания)
*/
backgroundColor?: string;
/** Цвет текста кнопки. */
textColor?: string;
/** Атрибут для cypress-тестирования */
dataTestId?: string;
}
/** @internal Режимы выравнивания кнопки. */
export declare enum ButtonAlignModes {
Center = 0,
Left = 1
}
/** @internal Представляет собой кнопку с иконкой. */
export declare const Button: (props: IButtonProperties) => JSX.Element;