@paperbits/common
Version:
Paperbits common components.
34 lines (26 loc) • 912 B
text/typescript
import { BehaviorHandle } from "./behavior";
export interface FocusOptions {
childSelector: string;
}
export class FocusBehavior {
public static attach(element: HTMLElement, options: boolean | FocusOptions): BehaviorHandle {
setTimeout(() => {
const type = typeof options;
if (type === "boolean" && options) {
element.focus();
return;
}
const extendedOptions = <FocusOptions>options;
if (type === "object" && extendedOptions.childSelector) {
element = <HTMLElement>element.querySelector(extendedOptions.childSelector);
if (element) {
element.focus();
}
}
}, 100);
const handle: BehaviorHandle = {
detach: () => { }
}
return handle;
}
}