import * as AccUtils from "../accUtils"; import * as ko from "knockout"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojselectsingle"; import "ojs/ojlabel"; type ChartType = { value: string; label: string; }; class DashboardViewModel { val: ko.Observable; chartTypes: Array; chartTypesDP: MutableArrayDataProvider; constructor() { this.val = ko.observable("pie"); this.chartTypes = [ { value: "pie", label: "Pie" }, { value: "bar", label: "Bar" }, ]; this.chartTypesDP = new MutableArrayDataProvider< ChartType["value"], ChartType >(this.chartTypes, { keyAttributes: "value", }); } /** * Optional ViewModel method invoked after the View is inserted into the * document DOM. The application can put logic that requires the DOM being * attached here. * This method might be called multiple times - after the View is created * and inserted into the DOM and after the View is reconnected * after being disconnected. */ connected(): void { AccUtils.announce("Dashboard page loaded."); document.title = "Dashboard"; // implement further logic if needed } /** * Optional ViewModel method invoked after the View is disconnected from the DOM. */ disconnected(): void { // implement if needed } /** * Optional ViewModel method invoked after transition to the new View is complete. * That includes any possible animation between the old and the new View. */ transitionCompleted(): void { // implement if needed } } export = DashboardViewModel;