UNPKG

armisa-models

Version:
42 lines (34 loc) 1.27 kB
import { Tabbing } from "."; import { ElementsOfFormFactory } from ".."; import { MainStateManager } from "../../../MainStateManager"; interface ITabbing { refElement: React.RefObject<HTMLElement>; tabIndex?: number; } export interface IFocusAbleGridEditFactory { mainStateManager: MainStateManager; any: any; elementsOfForm: ElementsOfFormFactory; tabbing: ITabbing; } export class GridEditTabbing { public focusAbleGridEdit: IFocusAbleGridEditFactory[]; constructor( public tabbing: Tabbing, ) { this.focusAbleGridEdit = []; } public focus = () => { const find = this.focusAbleGridEdit.find(i => i.tabbing.tabIndex === this.tabbing.activeElementIndex); if (find && find.tabbing && find.tabbing.refElement && find.tabbing.refElement.current) { find.tabbing.refElement.current.focus(); } } public isGridActiveControl = (): boolean => { if (this.focusAbleGridEdit && this.focusAbleGridEdit.length > 0) { const activeTabIndexs = this.focusAbleGridEdit.map(i => i.tabbing.tabIndex); return activeTabIndexs.includes(this.tabbing.activeElementIndex); } return false; } }