armisa-models
Version:
models of armisa!
105 lines (104 loc) • 4.94 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubPagesFactory = void 0;
const Argument_1 = require("./Argument");
const SubPageItem_1 = require("./SubPageItem");
class SubPagesFactory {
constructor(mainStateFactory) {
this.mainStateFactory = mainStateFactory;
this.title = '';
this.forceUpdate = () => { };
this.subPages = [];
this.subPagesOrder = [];
this.gotoHomePage = () => {
this.activeSubPage = undefined;
this.forceUpdate();
};
this.addNewSubPageComponetSelf = (pageKey, args, customPayload, finedInRows, ExtraStackMenuComponent, typeOfForm) => {
const Component = this.mainStateFactory.mainStateManager.pageLoadKeyFactory.get(pageKey);
const result = new SubPageItem_1.SubPageItem(this, pageKey, undefined, Component.Page);
if (typeof args === 'number') {
result.argument = Argument_1.Argument.Id(args, finedInRows);
}
else if (typeof args === 'string') {
result.argument = Argument_1.Argument.Code(args, finedInRows);
}
else {
result.argument = Argument_1.Argument.Object(args, finedInRows);
}
result.argument.typeOfForm = typeOfForm;
result.argument.ExtraStackMenuComponent = ExtraStackMenuComponent || Component.ExtraPageToolStripItems;
result.argument.customPayload = customPayload;
this.subPages.push(result);
this.subPagesOrder.push(result);
this.activeSubPage = result;
this.forceUpdate();
};
/**
*
* @param pageKey
* @param args add itemsPerPage to object of argument to pass to page parameter of next page :)
*/
this.addNewSubPageComponet = (pageKey, args, customPayload, finedInRows, ExtraStackMenuComponent, typeOfForm) => {
const Component = this.mainStateFactory.mainStateManager.pageLoadKeyFactory.get(pageKey);
const result = new SubPageItem_1.SubPageItem(this, pageKey, undefined, Component.Page);
if (typeof args === 'number') {
result.argument = Argument_1.Argument.Id(args, finedInRows);
}
else if (typeof args === 'string') {
result.argument = Argument_1.Argument.Code(args, finedInRows);
}
else {
result.argument = Argument_1.Argument.Object(args, finedInRows);
}
result.argument.typeOfForm = typeOfForm;
result.argument.ExtraStackMenuComponent = ExtraStackMenuComponent || Component.ExtraPageToolStripItems;
result.argument.customPayload = customPayload;
this.subPages.push(result);
this.subPagesOrder.push(result);
this.activeSubPage = result;
this.forceUpdate();
};
/**
*
* @param pageKey
* @param argument add itemsPerPage to object of argument to pass to page parameter of next page :)
*/
this.addNewSubPage = (pageKey, argument, finedInRows) => {
const Component = this.mainStateFactory.mainStateManager.lazyLoadFactory.get(pageKey);
const result = new SubPageItem_1.SubPageItem(this, pageKey, Component, undefined);
if (typeof argument === 'number') {
result.argument = Argument_1.Argument.Id(argument, finedInRows);
}
else if (typeof argument === 'string') {
result.argument = Argument_1.Argument.Code(argument, finedInRows);
}
else if (typeof argument === 'object') {
result.argument = Argument_1.Argument.Object(argument, finedInRows);
}
this.subPages.push(result);
this.subPagesOrder.push(result);
this.activeSubPage = result;
this.forceUpdate();
};
this.selectThisSubPageItem = (subPageItem) => {
const newSubPage = this.subPagesOrder.filter((t) => t !== subPageItem);
newSubPage.push(subPageItem);
this.subPagesOrder = newSubPage;
this.activeSubPage = subPageItem;
this.forceUpdate();
};
this.closeThisSubPageItem = (subPageItem) => {
this.subPages = this.subPages.filter((t) => t !== subPageItem);
this.subPagesOrder = this.subPagesOrder.filter((t) => t !== subPageItem);
if (this.subPagesOrder.length > 0) {
this.activeSubPage = this.subPagesOrder[this.subPagesOrder.length - 1];
}
else {
this.activeSubPage = undefined;
}
this.forceUpdate();
};
}
}
exports.SubPagesFactory = SubPagesFactory;