UNPKG

armisa-models

Version:
49 lines (48 loc) 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Tabbing = void 0; const ElementTabbing_1 = require("./ElementTabbing"); const GridEditTabbing_1 = require("./GridEditTabbing"); const ToolTipTabbing_1 = require("./ToolTipTabbing"); class Tabbing { get activeElementIndex() { return this._activeElementIndex; } set activeElementIndex(value) { this._activeElementIndex = value; } constructor(elementsOfFormFactory) { this.elementsOfFormFactory = elementsOfFormFactory; this.toolBoxTabIndex = -1; this._activeElementIndex = 0; this.userClickOnElement = (element) => { const focusAbleElement = this.elementTabbing.isThereAnyElement(element); if (focusAbleElement && typeof focusAbleElement.tabIndex === 'number' && focusAbleElement.element) { this.elementTabbing.setFocus(focusAbleElement); } else { this.elementTabbing.focusToZeroTabIndexOrFirstElementOrToolbox(); } }; ///it lock at active element index and try to give it focus this.focus = () => { if (this.toolboxTabbing.isEmpty() && this.elementTabbing.isEmpty()) { this.elementsOfFormFactory.mainStateManager.authFactory.searchBoxRef?.current?.focus(); return; } if (this.activeElementIndex === -1) { this.toolboxTabbing.focus(true); } else if (this.gridEditTabbing.isGridActiveControl()) { this.gridEditTabbing.focus(); } else { this.elementTabbing.focus(); } }; this.elementTabbing = new ElementTabbing_1.ElementTabbing(this); this.toolboxTabbing = new ToolTipTabbing_1.ToolboxTabbing(this); this.gridEditTabbing = new GridEditTabbing_1.GridEditTabbing(this); } } exports.Tabbing = Tabbing;