armisa-models
Version:
models of armisa!
49 lines (48 loc) • 2.02 kB
JavaScript
"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;