UNPKG

@alfalab/react-canvas-pattern-lock

Version:
143 lines (139 loc) 3.17 kB
// Generated by dts-bundle-generator v7.2.0 import React from 'react'; export type TNodes = Array<{ row: number; col: number; }>; export type OnCompleteCallback = (nodes: TNodes) => void; export type Hover = { inner: string; outer: string; }; export type ThemeParams = { /** * Цвета. */ colors: { /** * Цвет линии. */ accent: string; /** * Основной цвет узла и линии. */ primary: string; /** * Цвет канваса. */ bg: string; /** * Внешний цвет заливки узла. */ ringBg: string; /** * Внешний цвет заливки выбранного узла. */ selectedRingBg: string; /** * Ховер узла. */ hover: Hover; }; /** * Размеры. */ dimens: { /** * Радиус внешнего кольца узла. */ nodeRadius: number; /** * Толщина линии, соединяющей узлы. */ lineWidth: number; /** * Радиус внутренней окружности узла. */ nodeCore: number; }; }; export type Theme = Record<string, ThemeParams>; export type TPatternLockInstance = { destroy: () => void; /** * Подписаться на событие завершения ввода. */ onComplete: (fn: OnCompleteCallback) => void; /** * Подписаться на событие начала ввода кода. */ onStart: (fn: () => void) => void; /** * Функция изменения темы. */ setThemeState: (themeName: string) => void; /** * Установить состояние по умолчанию. */ setInitialState: () => void; }; export type ReactPatternLockProps = { /** * Метод выравнивания узлов. * @default space-available */ justifyNodes?: "space-around" | "space-between"; /** * Ширина в пикселях. * @default 315 */ width?: number; /** * Высота в пикселях. * @default 315 */ height?: number; /** * Количество столбцов. * @default 3 */ rows?: number; /** * Количество строк. * @default 3 */ cols?: number; /** * Коллбек, вызываемый после завершения ввода кода. */ onComplete?: (code: number[], nodes: TNodes) => void; /** * Коллбек, вызываемый при начале ввода кода. */ onDragStart?: () => void; /** * Состояние темы. */ themeState?: string; /** * Тема. */ theme?: Theme; /** * Дополнительные границы в пикселях. * Свойство позволяет расширить область прослушивания touch события. * По-умолчанию область ограничена размерами canvas. */ extraBounds?: [ number, number, number, number ]; /** * Включает ховер-эффект */ hover?: boolean; }; export declare const ReactCanvasPatternLock: React.ForwardRefExoticComponent<ReactPatternLockProps & React.RefAttributes<TPatternLockInstance>>; export {};