import {WPTableRowSelectionState, WorkPackageTableRow} from './wp-fast-table/wp-table.interfaces'; import {MultiState, initStates, State} from "../helpers/reactive-fassade"; import {WorkPackageResource} from "./api/api-v3/hal-resources/work-package-resource.service"; import {opServicesModule} from "../angular-modules"; import {SchemaResource} from './api/api-v3/hal-resources/schema-resource.service'; import {WorkPackageEditForm} from './wp-edit-form/work-package-edit-form'; import {WorkPackageTableMetadata} from './wp-fast-table/wp-table-metadata'; export class States { workPackages = new MultiState(); schemas = new MultiState(); // Work package table states table = { // Metadata of the current table result // (page, links, grouping information) metadata: new State(), // Set of rows in strict order of appearance rows: new State(), // Set of columns in strict order of appearance columns: new State(), // Table row selection state selection: new State(), // Current state of collapsed groups (if any) collapsedGroups: new State<{[index:string]: boolean}>(), }; // Query states query = { // All available columns for selection availableColumns: new State() }; // Current focused work package (e.g, row preselected for details button) focusedWorkPackage = new State(); // Open editing forms editing = new MultiState(); constructor() { initStates(this, function (msg: any) { if (~location.hostname.indexOf("localhost")) { (console.trace as any)(msg); // RR: stupid hack to avoid compiler error } }); } } opServicesModule.service('states', States);