UNPKG

amisa-forms

Version:
74 lines (73 loc) 3.77 kB
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();