UNPKG

armisa-models

Version:
105 lines (104 loc) 4.94 kB
"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;