@alfalab/react-canvas-pattern-lock
Version:
Android's react pattern lock
143 lines (139 loc) • 3.17 kB
TypeScript
// 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 {};