amisa-forms
Version:
models of armisa!
74 lines (73 loc) • 3.77 kB
JavaScript
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _TabbingManager_formFactory;
import { ElementTabbing } from "./ElementTabbing";
import { GridEditTabbing } from "./GridEditTabbing";
import { ToolboxTabbing } from "./ToolTipTabbing";
export class TabbingManager {
constructor(formFactory) {
this.toolBoxTabIndex = -1;
this._activeElementIndex = 0;
_TabbingManager_formFactory.set(this, void 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.addElement = (element) => {
if (typeof element.tabIndex === 'number') {
this.elementTabbing.focusAbleElements.push(element);
this.elementTabbing.focusAbleElements.sort((a, b) => a.tabIndex - b.tabIndex);
}
};
this.removeElement = (element) => {
if (typeof element.tabIndex === 'number') {
this.elementTabbing.focusAbleElements = this.elementTabbing.focusAbleElements.filter(i => i !== element);
this.elementTabbing.focusAbleElements.sort((a, b) => a.tabIndex - b.tabIndex);
}
};
__classPrivateFieldSet(this, _TabbingManager_formFactory, formFactory, "f");
this.elementTabbing = new ElementTabbing(this);
this.toolboxTabbing = new ToolboxTabbing(this);
this.gridEditTabbing = new GridEditTabbing(this);
}
get activeElementIndex() {
return this._activeElementIndex;
}
set activeElementIndex(value) {
this._activeElementIndex = value;
}
get formFactory() {
return __classPrivateFieldGet(this, _TabbingManager_formFactory, "f");
}
}
_TabbingManager_formFactory = new WeakMap();