import { Injectable } from 'ng-metadata/core'; import { PageService, QuayPage, QuayPageProfile } from './page.service'; @Injectable(PageService.name) export class PageServiceImpl implements ng.IServiceProvider { private pages: {[pageName: string]: QuayPage} = {}; public create(pageName: string, templateName: string, controller?: any, flags: any = {}, profiles: string[] = ['old-layout', 'layout']): void { for (var i = 0; i < profiles.length; ++i) { this.pages[profiles[i] + ':' + pageName] = { 'name': pageName, 'controller': controller, 'templateName': templateName, 'flags': flags }; } } public get(pageName: string, profiles: QuayPageProfile[]): [QuayPageProfile, QuayPage] | null { for (let i = 0; i < profiles.length; ++i) { var current = profiles[i]; var key = current.id + ':' + pageName; var page = this.pages[key]; if (page) { return [current, page]; } } return null; } public $get(): PageService { return this; } }