diff --git a/config/webpack.common.js b/config/webpack.common.js index cdbe3e49..51b4a632 100644 --- a/config/webpack.common.js +++ b/config/webpack.common.js @@ -111,11 +111,8 @@ module.exports = { loader: 'source-map-loader', exclude: [ // these packages have problems with their sourcemaps - helpers.root('node_modules/rxjs'), - helpers.root('node_modules/@angular'), - helpers.root('node_modules/@ngrx'), helpers.root('node_modules/ng2-bootstrap'), - helpers.root('node_modules/ng2-branchy') + helpers.root('node_modules/ng2-tree') ] } @@ -133,12 +130,14 @@ module.exports = { /* * Typescript loader support for .ts and Angular 2 async routes via .async.ts + * Replace templateUrl and stylesUrl with require() * * See: https://github.com/s-panferov/awesome-typescript-loader + * See: https://github.com/TheLarkInn/angular2-template-loader */ { test: /\.ts$/, - loader: 'awesome-typescript-loader', + loaders: ['awesome-typescript-loader', 'angular2-template-loader', '@angularclass/hmr-loader'], exclude: [/\.(spec|e2e)\.ts$/] }, @@ -195,8 +194,14 @@ module.exports = { test: /\.html$/, loader: 'raw-loader', exclude: [helpers.root('src/index.html')] - } + }, + /* File loader for supporting images, for example, in CSS files. + */ + { + test: /\.(jpg|png|gif)$/, + loader: 'file' + } ] }, @@ -298,6 +303,7 @@ module.exports = { new HtmlElementsPlugin({ headTags: require('./head-config.common') }) + ], /* @@ -309,6 +315,7 @@ module.exports = { node: { global: 'window', crypto: 'empty', + process: true, module: false, clearImmediate: false, setImmediate: false diff --git a/config/webpack.dev.js b/config/webpack.dev.js index d8062dae..3cc3cdf4 100644 --- a/config/webpack.dev.js +++ b/config/webpack.dev.js @@ -15,10 +15,13 @@ const DefinePlugin = require('webpack/lib/DefinePlugin'); * Webpack Constants */ const ENV = process.env.ENV = process.env.NODE_ENV = 'development'; +const HOST = process.env.HOST || 'localhost'; +const PORT = process.env.PORT || 3000; + const HMR = helpers.hasProcessFlag('hot'); const METADATA = webpackMerge(commonConfig.metadata, { - host: 'localhost', - port: 3000, + host: HOST, + port: PORT, ENV: ENV, HMR: HMR }); diff --git a/package.json b/package.json index 254447d7..469372d6 100644 --- a/package.json +++ b/package.json @@ -6,15 +6,19 @@ "homepage": "http://akveo.github.io/ng2-admin/", "license": "MIT", "dependencies": { - "@angular/common": "2.0.0-rc.4", - "@angular/compiler": "2.0.0-rc.4", - "@angular/core": "2.0.0-rc.4", - "@angular/forms": "^0.2.0", - "@angular/http": "2.0.0-rc.4", - "@angular/platform-browser": "2.0.0-rc.4", - "@angular/platform-browser-dynamic": "2.0.0-rc.4", - "@angular/platform-server": "2.0.0-rc.4", - "@angular/router": "3.0.0-beta.2", + "@angularclass/webpack-toolkit": "^1.3.3", + "@angularclass/request-idle-callback": "^1.0.7", + "@angularclass/conventions-loader": "^1.0.2", + "angular2-template-loader": "^0.4.0", + "@angular/http": "2.0.0-rc.5", + "@angular/common": "2.0.0-rc.5", + "@angular/compiler": "2.0.0-rc.5", + "@angular/core": "2.0.0-rc.5", + "@angular/forms": "^0.3.0", + "@angular/platform-browser": "2.0.0-rc.5", + "@angular/platform-browser-dynamic": "2.0.0-rc.5", + "@angular/platform-server": "2.0.0-rc.5", + "@angular/router": "github:gdi2290/router-builds", "amcharts3": "github:amcharts/amcharts3", "ammap3": "github:amcharts/ammap3", "animate.css": "^3.5.1", @@ -39,16 +43,18 @@ "leaflet-map": "^0.2.1", "lodash": "^4.12.0", "ng2-bootstrap": "^1.0.20", - "ng2-branchy": "^0.0.2-5", - "ng2-ckeditor": "^1.0.4", + "ng2-tree": "^0.0.2-7", + "ng2-ckeditor": "^1.0.6", "ng2-smart-table": "^0.1.6", "ng2-uploader": "0.5.6", "normalize.css": "^4.1.1", "rxjs": "5.0.0-beta.6", "tether": "^1.2.4", - "zone.js": "~0.6.12" + "zone.js": "~0.6.17" }, "devDependencies": { + "@angularclass/hmr": "^1.0.1", + "@angularclass/hmr-loader": "^1.0.1", "@types/core-js": "^0.9.28", "@types/hammerjs": "^2.0.28", "@types/node": "^4.0.29", @@ -73,8 +79,8 @@ "style-loader": "^0.13.1", "raw-loader": "0.5.1", "source-map-loader": "^0.1.5", + "string-replace-loader": "^1.0.3", "imports-loader": "^0.6.5", - "istanbul-instrumenter-loader": "^0.2.0", "json-loader": "^0.5.4", "es6-promise-loader": "^1.0.1", "css-loader": "^0.23.1", @@ -124,7 +130,7 @@ "server:prod": "http-server dist --cors", "webdriver:update": "npm run webdriver-manager update", "webdriver:start": "npm run webdriver-manager start", - "lint": "npm run tslint 'src/**/*.ts'", + "lint": "npm run tslint \"src/**/*.ts\"", "pree2e": "npm run webdriver:update -- --standalone", "pretest": "npm run lint", "docs": "npm run typedoc -- --options typedoc.json --exclude '**/*.spec.ts' ./src/", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 8a074e89..4a7ad458 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,10 @@ import './app.loader.ts'; -import {Component, ViewEncapsulation} from "@angular/core"; -import {AppState} from "./app.state"; -import {BaThemeConfigProvider, BaThemeConfig} from "./theme"; -import {BaThemeRun} from "./theme/directives"; -import {BaImageLoaderService, BaThemePreloader, BaThemeSpinner} from "./theme/services"; -import {layoutPaths} from "./theme/theme.constants"; +import { Component, ViewEncapsulation } from '@angular/core'; +import { GlobalState } from './global.state'; +import { BaThemeConfigProvider, BaThemeConfig } from './theme'; +import { BaThemeRun } from './theme/directives'; +import { BaImageLoaderService, BaThemePreloader, BaThemeSpinner } from './theme/services'; +import { layoutPaths } from './theme/theme.constants'; /* * App Component @@ -26,9 +26,12 @@ import {layoutPaths} from "./theme/theme.constants"; }) export class App { - isMenuCollapsed:boolean = false; + isMenuCollapsed: boolean = false; - constructor(private _state:AppState, private _imageLoader:BaImageLoaderService, private _spinner:BaThemeSpinner, private _config:BaThemeConfig) { + constructor(private _state: GlobalState, + private _imageLoader: BaImageLoaderService, + private _spinner: BaThemeSpinner) { + this._loadImages(); this._state.subscribe('menu.isCollapsed', (isCollapsed) => { @@ -36,14 +39,14 @@ export class App { }); } - public ngAfterViewInit():void { + public ngAfterViewInit(): void { // hide spinner once all loaders are completed BaThemePreloader.load().then((values) => { this._spinner.hide(); }); } - private _loadImages():void { + private _loadImages(): void { // register some loaders BaThemePreloader.registerLoader(this._imageLoader.load(layoutPaths.images.root + 'sky-bg.jpg')); } diff --git a/src/app/app.menu.ts b/src/app/app.menu.ts new file mode 100644 index 00000000..b310bdbb --- /dev/null +++ b/src/app/app.menu.ts @@ -0,0 +1,5 @@ +import { PAGES_MENU } from './pages/pages.menu'; + +export const MENU = [ + ...PAGES_MENU +]; diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100644 index 00000000..9a161a18 --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,79 @@ +import { NgModule, ApplicationRef } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { HttpModule } from '@angular/http'; +import { RouterModule } from '@angular/router'; +import { removeNgStyles, createNewHosts } from '@angularclass/hmr'; + +/* + * Platform and Environment providers/directives/pipes + */ +import { ENV_PROVIDERS } from './environment'; +import { routing } from './app.routing'; + +// App is our top level component +import { App } from './app.component'; +import { AppState } from './app.service'; +import { GlobalState } from './global.state'; +import { NgaModule } from './theme/nga.module'; +import { PagesModule } from './pages/pages.module'; + +// Application wide providers +const APP_PROVIDERS = [ + AppState, + GlobalState +]; + +/** + * `AppModule` is the main entry point into Angular2's bootstraping process + */ +@NgModule({ + bootstrap: [App], + declarations: [ + App + ], + imports: [ // import Angular's modules + BrowserModule, + HttpModule, + RouterModule, + FormsModule, + ReactiveFormsModule, + NgaModule, + PagesModule, + routing + ], + providers: [ // expose our Services and Providers into Angular's dependency injection + ENV_PROVIDERS, + APP_PROVIDERS + ] +}) + +export class AppModule { + + constructor(public appRef: ApplicationRef, public appState: AppState) { + + } + + hmrOnInit(store) { + if (!store && !store.state) return; + console.log('HMR store', store); + this.appState.state = store.state; + delete store.state; + } + + hmrOnDestroy(store) { + let cmpLocation = this.appRef.components.map(cmp => cmp.location.nativeElement); + // recreate elements + let state = this.appState.state; + store.state = state; + store.disposeOldHosts = createNewHosts(cmpLocation); + // remove styles + removeNgStyles(); + } + + hmrAfterDestroy(store) { + // display new elements + store.disposeOldHosts(); + delete store.disposeOldHosts; + } +} diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts deleted file mode 100644 index af54c8e4..00000000 --- a/src/app/app.routes.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {provideRouter, RouterConfig} from '@angular/router'; -import {LoginRoutes} from "./pages/login/login.routes"; -import {PagesRoutes} from "./pages/pages.routes"; -import {RegisterRoutes} from "./pages/register/register.routes"; - -export const routes:RouterConfig = [ - ...LoginRoutes, - ...RegisterRoutes, - ...PagesRoutes, - { - path: '**', - redirectTo: '/pages/dashboard' - }, -]; - -export const APP_ROUTER_PROVIDERS = [ - provideRouter(routes) -]; diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts new file mode 100644 index 00000000..412e3e47 --- /dev/null +++ b/src/app/app.routing.ts @@ -0,0 +1,7 @@ +import { Routes, RouterModule } from '@angular/router'; + +export const routes: Routes = [ + { path: '', redirectTo: 'pages', pathMatch: 'full' } +]; + +export const routing = RouterModule.forRoot(routes, { useHash: true }); diff --git a/src/app/app.service.ts b/src/app/app.service.ts new file mode 100644 index 00000000..93903845 --- /dev/null +++ b/src/app/app.service.ts @@ -0,0 +1,37 @@ +import { Injectable } from '@angular/core'; +import { HmrState } from 'angular2-hmr'; + +@Injectable() +export class AppState { + _state = { }; + + constructor() { + } + + // already return a clone of the current state + get state() { + return this._state = this._clone(this._state); + } + // never allow mutation + set state(value) { + throw new Error('do not mutate the `.state` directly'); + } + + + get(prop?: any) { + // use our state getter for the clone + const state = this.state; + return state.hasOwnProperty(prop) ? state[prop] : state; + } + + set(prop: string, value: any) { + // internally mutate our state + return this._state[prop] = value; + } + + + _clone(object) { + // simple object clone + return JSON.parse(JSON.stringify( object )); + } +} diff --git a/src/platform/environment.ts b/src/app/environment.ts similarity index 70% rename from src/platform/environment.ts rename to src/app/environment.ts index 9b1cea23..066edef4 100644 --- a/src/platform/environment.ts +++ b/src/app/environment.ts @@ -2,7 +2,7 @@ // Angular 2 // rc2 workaround import { enableDebugTools, disableDebugTools } from '@angular/platform-browser'; -import { enableProdMode } from '@angular/core'; +import { enableProdMode, ApplicationRef } from '@angular/core'; // Environment Providers let PROVIDERS = [ // common env directives @@ -10,7 +10,7 @@ let PROVIDERS = [ // Angular debug tools in the dev console // https://github.com/angular/angular/blob/86405345b781a9dc2438c0fbe3e9409245647019/TOOLS_JS.md -let _decorateComponentRef = function identity(value) { return value; }; +let _decorateModuleRef = function identity(value) { return value; }; if ('production' === ENV) { // Production @@ -24,12 +24,15 @@ if ('production' === ENV) { } else { - _decorateComponentRef = (cmpRef) => { + _decorateModuleRef = (modRef: any) => { + var appRef = modRef.injector.get(ApplicationRef); + var cmpRef = appRef.components[0]; + let _ng = (window).ng; enableDebugTools(cmpRef); (window).ng.probe = _ng.probe; (window).ng.coreTokens = _ng.coreTokens; - return cmpRef; + return modRef; }; // Development @@ -40,7 +43,7 @@ if ('production' === ENV) { } -export const decorateComponentRef = _decorateComponentRef; +export const decorateModuleRef = _decorateModuleRef; export const ENV_PROVIDERS = [ ...PROVIDERS diff --git a/src/app/app.state.ts b/src/app/global.state.ts similarity index 57% rename from src/app/app.state.ts rename to src/app/global.state.ts index b48c5c2e..cf390a48 100644 --- a/src/app/app.state.ts +++ b/src/app/global.state.ts @@ -1,13 +1,13 @@ -import {Injectable} from '@angular/core' -import {Subject} from 'rxjs/Subject'; +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs/Subject'; @Injectable() -export class AppState { +export class GlobalState { private _data = new Subject(); private _dataStream$ = this._data.asObservable(); - private _subscriptions:Map> = new Map>(); + private _subscriptions: Map> = new Map>(); constructor() { this._dataStream$.subscribe((data) => this._onEvent(data)); @@ -16,7 +16,7 @@ export class AppState { notifyDataChanged(event, value) { let current = this._data[event]; - if (current != value) { + if (current !== value) { this._data[event] = value; this._data.next({ @@ -26,15 +26,15 @@ export class AppState { } } - subscribe(event:string, callback:Function) { - var subscribers = this._subscriptions.get(event) || []; + subscribe(event: string, callback: Function) { + let subscribers = this._subscriptions.get(event) || []; subscribers.push(callback); this._subscriptions.set(event, subscribers); } - _onEvent(data:any) { - var subscribers = this._subscriptions.get(data['event']) || []; + _onEvent(data: any) { + let subscribers = this._subscriptions.get(data['event']) || []; subscribers.forEach((callback) => { callback.call(null, data['data']); diff --git a/src/app/index.ts b/src/app/index.ts index b344e030..da53f6ae 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -1,8 +1 @@ -// App -import {AppState} from "./app.state"; -export * from './app.component'; - -// Application wide providers -export const APP_PROVIDERS = [ - AppState -]; +export * from './app.module'; diff --git a/src/app/pages/charts/charts.module.ts b/src/app/pages/charts/charts.module.ts new file mode 100644 index 00000000..b6d5f3b1 --- /dev/null +++ b/src/app/pages/charts/charts.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './charts.routing'; +import { Charts } from './charts.component'; +import { ChartistJs } from './components/chartistJs/chartistJs.component'; + + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Charts, + ChartistJs + ] +}) +export default class ChartsModule {} diff --git a/src/app/pages/charts/charts.routing.ts b/src/app/pages/charts/charts.routing.ts new file mode 100644 index 00000000..b8b227ac --- /dev/null +++ b/src/app/pages/charts/charts.routing.ts @@ -0,0 +1,17 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Charts } from './charts.component'; +import { ChartistJs } from './components/chartistJs/chartistJs.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Charts, + children: [ + { path: 'chartist-js', component: ChartistJs } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/charts/components/chartistJs/chartistJs.component.ts b/src/app/pages/charts/components/chartistJs/chartistJs.component.ts index ad6a21ef..daf1ecbc 100644 --- a/src/app/pages/charts/components/chartistJs/chartistJs.component.ts +++ b/src/app/pages/charts/components/chartistJs/chartistJs.component.ts @@ -1,15 +1,12 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import {ChartistJsService} from './chartistJs.service'; -import {BaChartistChart} from '../../../../theme/components'; @Component({ selector: 'chartist-js', encapsulation: ViewEncapsulation.None, pipes: [], providers: [ChartistJsService], - directives: [BaCard, BaChartistChart], styles: [require('chartist/dist/chartist.css'), require('./chartistJs.scss')], template: require('./chartistJs.html'), }) diff --git a/src/app/pages/components/components.module.ts b/src/app/pages/components/components.module.ts new file mode 100644 index 00000000..a9c3f547 --- /dev/null +++ b/src/app/pages/components/components.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './components.routing'; +import { Components } from './components.component'; +import { TreeView } from './components/treeView/treeView.component'; + + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Components, + TreeView + ] +}) +export default class ComponentsModule {} diff --git a/src/app/pages/components/components.routing.ts b/src/app/pages/components/components.routing.ts new file mode 100644 index 00000000..8fc5d945 --- /dev/null +++ b/src/app/pages/components/components.routing.ts @@ -0,0 +1,17 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Components } from './components.component'; +import { TreeView } from './components/treeView/treeView.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Components, + children: [ + { path: 'treeview', component: TreeView } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/components/components/treeView/treeView.component.ts b/src/app/pages/components/components/treeView/treeView.component.ts index ccded400..4d1b23df 100644 --- a/src/app/pages/components/components/treeView/treeView.component.ts +++ b/src/app/pages/components/components/treeView/treeView.component.ts @@ -1,17 +1,14 @@ import {Component} from '@angular/core'; -import {BranchyComponent, TreeModel} from 'ng2-branchy'; -import {BaCard} from '../../../../theme/components/baCard'; +import {TreeComponent, TreeModel} from 'ng2-tree'; @Component({ selector: 'tree-view', - directives: [BranchyComponent, BaCard], + directives: [TreeComponent], template: require('./treeView.html'), }) export class TreeView { - constructor() { - } private tree: TreeModel = { value: 'Programming languages by programming paradigm', children: [ @@ -34,4 +31,7 @@ export class TreeView { ] }; + constructor() { + } + } diff --git a/src/app/pages/components/components/treeView/treeView.html b/src/app/pages/components/components/treeView/treeView.html index df018c41..250124af 100644 --- a/src/app/pages/components/components/treeView/treeView.html +++ b/src/app/pages/components/components/treeView/treeView.html @@ -1,5 +1,5 @@
- +
diff --git a/src/app/pages/dashboard/calendar/calendar.component.ts b/src/app/pages/dashboard/calendar/calendar.component.ts index 2ea9dca5..a2fbb8b0 100644 --- a/src/app/pages/dashboard/calendar/calendar.component.ts +++ b/src/app/pages/dashboard/calendar/calendar.component.ts @@ -1,6 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaFullCalendar} from '../../../theme/components'; import {CalendarService} from './calendar.service'; @Component({ @@ -8,7 +7,6 @@ import {CalendarService} from './calendar.service'; encapsulation: ViewEncapsulation.None, styles: [require('./calendar.scss')], template: require('./calendar.html'), - directives: [BaFullCalendar], providers: [CalendarService] }) export class Calendar { diff --git a/src/app/pages/dashboard/dashboard.component.ts b/src/app/pages/dashboard/dashboard.component.ts index aec92978..c711d271 100644 --- a/src/app/pages/dashboard/dashboard.component.ts +++ b/src/app/pages/dashboard/dashboard.component.ts @@ -1,19 +1,7 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {PopularApp} from './popularApp'; -import {PieChart} from './pieChart'; -import {TrafficChart} from './trafficChart'; -import {UsersMap} from './usersMap'; -import {LineChart} from './lineChart'; -import {Feed} from './feed'; -import {Todo} from './todo'; -import {Calendar} from './calendar'; -import {BaCard} from '../../theme/components'; - @Component({ selector: 'dashboard', - pipes: [], - directives: [PopularApp, PieChart, TrafficChart, UsersMap, LineChart, Feed, Todo, Calendar, BaCard], encapsulation: ViewEncapsulation.None, styles: [require('./dashboard.scss')], template: require('./dashboard.html') diff --git a/src/app/pages/dashboard/dashboard.module.ts b/src/app/pages/dashboard/dashboard.module.ts new file mode 100644 index 00000000..3732394e --- /dev/null +++ b/src/app/pages/dashboard/dashboard.module.ts @@ -0,0 +1,37 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { Dashboard } from './dashboard.component'; +import { routing } from './dashboard.routing'; + +import { PopularApp } from './popularApp'; +import { PieChart } from './pieChart'; +import { TrafficChart } from './trafficChart'; +import { UsersMap } from './usersMap'; +import { LineChart } from './lineChart'; +import { Feed } from './feed'; +import { Todo } from './todo'; +import { Calendar } from './calendar'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + PopularApp, + PieChart, + TrafficChart, + UsersMap, + LineChart, + Feed, + Todo, + Calendar, + Dashboard + ] +}) +export default class DashboardModule {} diff --git a/src/app/pages/dashboard/dashboard.routing.ts b/src/app/pages/dashboard/dashboard.routing.ts new file mode 100644 index 00000000..56bffa50 --- /dev/null +++ b/src/app/pages/dashboard/dashboard.routing.ts @@ -0,0 +1,16 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Dashboard } from './dashboard.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Dashboard, + children: [ + //{ path: 'treeview', component: TreeViewComponent } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/dashboard/lineChart/lineChart.component.ts b/src/app/pages/dashboard/lineChart/lineChart.component.ts index 540cf438..0ce5aa5e 100644 --- a/src/app/pages/dashboard/lineChart/lineChart.component.ts +++ b/src/app/pages/dashboard/lineChart/lineChart.component.ts @@ -1,13 +1,11 @@ import {Component, ViewEncapsulation} from '@angular/core'; import {LineChartService} from './lineChart.service'; -import {BaAmChart} from '../../../theme/components'; @Component({ selector: 'line-chart', encapsulation: ViewEncapsulation.None, providers: [LineChartService], - directives: [BaAmChart], styles: [require('./lineChart.scss')], template: require('./lineChart.html') }) diff --git a/src/app/pages/dashboard/pieChart/pieChart.component.ts b/src/app/pages/dashboard/pieChart/pieChart.component.ts index c2bd29d9..219562ce 100644 --- a/src/app/pages/dashboard/pieChart/pieChart.component.ts +++ b/src/app/pages/dashboard/pieChart/pieChart.component.ts @@ -1,6 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../theme/components'; import {PieChartService} from './pieChart.service'; import './pieChart.loader.ts'; @@ -8,7 +7,6 @@ import './pieChart.loader.ts'; @Component({ selector: 'pie-chart', encapsulation: ViewEncapsulation.None, - directives: [BaCard], providers: [PieChartService], styles: [require('./pieChart.scss')], template: require('./pieChart.html') diff --git a/src/app/pages/dashboard/usersMap/usersMap.component.ts b/src/app/pages/dashboard/usersMap/usersMap.component.ts index d116b97f..b46edbfe 100644 --- a/src/app/pages/dashboard/usersMap/usersMap.component.ts +++ b/src/app/pages/dashboard/usersMap/usersMap.component.ts @@ -1,13 +1,11 @@ import {Component, ViewEncapsulation} from '@angular/core'; import {UsersMapService} from './usersMap.service'; -import {BaAmChart} from '../../../theme/components'; @Component({ selector: 'users-map', encapsulation: ViewEncapsulation.None, providers: [UsersMapService], - directives: [BaAmChart], styles: [require('./usersMap.scss')], template: require('./usersMap.html') }) diff --git a/src/app/pages/editors/components/ckeditor/ckeditor.component.ts b/src/app/pages/editors/components/ckeditor/ckeditor.component.ts index 94c7a6b2..71a81f04 100644 --- a/src/app/pages/editors/components/ckeditor/ckeditor.component.ts +++ b/src/app/pages/editors/components/ckeditor/ckeditor.component.ts @@ -1,12 +1,11 @@ import {Component} from '@angular/core'; import {CKEditor} from 'ng2-ckeditor'; -import {BaCard} from '../../../../theme/components/baCard'; import './ckeditor.loader.ts'; @Component({ - selector: 'ckeditor', - directives: [CKEditor, BaCard], + selector: 'ckeditor-component', + directives: [CKEditor], template: require('./ckeditor.html') }) diff --git a/src/app/pages/editors/editors.module.ts b/src/app/pages/editors/editors.module.ts new file mode 100644 index 00000000..092205ef --- /dev/null +++ b/src/app/pages/editors/editors.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './editors.routing'; +import { Editors } from './editors.component'; +import { Ckeditor } from './components/ckeditor/ckeditor.component'; + + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Editors, + Ckeditor + ] +}) +export default class EditorsModule {} diff --git a/src/app/pages/editors/editors.routing.ts b/src/app/pages/editors/editors.routing.ts new file mode 100644 index 00000000..27904275 --- /dev/null +++ b/src/app/pages/editors/editors.routing.ts @@ -0,0 +1,17 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Editors } from './editors.component'; +import { Ckeditor } from './components/ckeditor/ckeditor.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Editors, + children: [ + { path: 'ckeditor', component: Ckeditor } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts b/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts index 55d8f6e5..351936bf 100644 --- a/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts +++ b/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts @@ -1,10 +1,8 @@ import {Component} from '@angular/core'; -import {BaMultiCheckbox, BaCheckbox} from '../../../../../../theme/components'; @Component({ selector: 'checkbox-inputs', template: require('./checkboxInputs.html'), - directives: [BaMultiCheckbox, BaCheckbox] }) export class CheckboxInputs { public checkboxModel = [{ diff --git a/src/app/pages/forms/components/inputs/components/validationInputs/validationInputs.component.ts b/src/app/pages/forms/components/inputs/components/validationInputs/validationInputs.component.ts index cc1198ca..f43418f4 100644 --- a/src/app/pages/forms/components/inputs/components/validationInputs/validationInputs.component.ts +++ b/src/app/pages/forms/components/inputs/components/validationInputs/validationInputs.component.ts @@ -1,9 +1,7 @@ import {Component} from '@angular/core'; -import {BaMultiCheckbox} from '../../../../../../theme/components'; @Component({ selector: 'validation-inputs', - directives: [BaMultiCheckbox], template: require('./validationInputs.html'), }) export class ValidationInputs { @@ -27,7 +25,7 @@ export class ValidationInputs { label: 'name', baCheckboxClass: 'class' }; - + constructor() { } } diff --git a/src/app/pages/forms/components/inputs/inputs.component.ts b/src/app/pages/forms/components/inputs/inputs.component.ts index e2914188..a033f376 100644 --- a/src/app/pages/forms/components/inputs/inputs.component.ts +++ b/src/app/pages/forms/components/inputs/inputs.component.ts @@ -1,6 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import {StandardInputs} from './components/standardInputs'; import {ValidationInputs} from './components/validationInputs'; @@ -12,7 +11,7 @@ import {Rating} from './components/ratinginputs'; @Component({ selector: 'inputs', encapsulation: ViewEncapsulation.None, - directives: [BaCard, StandardInputs, ValidationInputs, GroupInputs, CheckboxInputs, Rating], + directives: [StandardInputs, ValidationInputs, GroupInputs, CheckboxInputs, Rating], template: require('./inputs.html'), }) export class Inputs { diff --git a/src/app/pages/forms/components/layouts/components/basicForm/basicForm.component.ts b/src/app/pages/forms/components/layouts/components/basicForm/basicForm.component.ts index 0af7eb8f..3a3d60a0 100644 --- a/src/app/pages/forms/components/layouts/components/basicForm/basicForm.component.ts +++ b/src/app/pages/forms/components/layouts/components/basicForm/basicForm.component.ts @@ -1,9 +1,7 @@ import {Component} from '@angular/core'; -import {BaCheckbox} from '../../../../../../theme/components'; @Component({ selector: 'basic-form', - directives: [BaCheckbox], template: require('./basicForm.html'), }) export class BasicForm { diff --git a/src/app/pages/forms/components/layouts/components/horizontalForm/horizontalForm.component.ts b/src/app/pages/forms/components/layouts/components/horizontalForm/horizontalForm.component.ts index d639fa30..4eec8323 100644 --- a/src/app/pages/forms/components/layouts/components/horizontalForm/horizontalForm.component.ts +++ b/src/app/pages/forms/components/layouts/components/horizontalForm/horizontalForm.component.ts @@ -1,9 +1,7 @@ import {Component} from '@angular/core'; -import {BaCheckbox} from '../../../../../../theme/components'; @Component({ selector: 'horizontal-form', - directives: [BaCheckbox], template: require('./horizontalForm.html'), }) export class HorizontalForm { diff --git a/src/app/pages/forms/components/layouts/components/inlineForm/inlineForm.component.ts b/src/app/pages/forms/components/layouts/components/inlineForm/inlineForm.component.ts index 7d91cac8..029f4422 100644 --- a/src/app/pages/forms/components/layouts/components/inlineForm/inlineForm.component.ts +++ b/src/app/pages/forms/components/layouts/components/inlineForm/inlineForm.component.ts @@ -1,13 +1,11 @@ import {Component} from '@angular/core'; -import {BaCheckbox} from '../../../../../../theme/components'; @Component({ selector: 'inline-form', - directives: [BaCheckbox], template: require('./inlineForm.html'), }) export class InlineForm { - + constructor() { } } diff --git a/src/app/pages/forms/components/layouts/layouts.component.ts b/src/app/pages/forms/components/layouts/layouts.component.ts index ec134a8b..363134af 100644 --- a/src/app/pages/forms/components/layouts/layouts.component.ts +++ b/src/app/pages/forms/components/layouts/layouts.component.ts @@ -1,18 +1,16 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import {InlineForm} from './components/inlineForm'; import {BlockForm} from './components/blockForm'; import {HorizontalForm} from './components/horizontalForm'; import {BasicForm} from './components/basicForm'; import {WithoutLabelsForm} from './components/withoutLabelsForm'; -import {BaPictureUploader} from '../../../../theme/components'; @Component({ selector: 'layouts', encapsulation: ViewEncapsulation.None, - directives: [BaCard, InlineForm, BlockForm, HorizontalForm, BasicForm, WithoutLabelsForm, BaPictureUploader], + directives: [InlineForm, BlockForm, HorizontalForm, BasicForm, WithoutLabelsForm], styles: [], template: require('./layouts.html'), }) diff --git a/src/app/pages/forms/forms.module.ts b/src/app/pages/forms/forms.module.ts new file mode 100644 index 00000000..e3dee6a7 --- /dev/null +++ b/src/app/pages/forms/forms.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule as AngularFormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './forms.routing'; +import { Forms } from './forms.component'; +import { Inputs } from './components/inputs'; +import { Layouts } from './components/layouts'; + + +@NgModule({ + imports: [ + CommonModule, + AngularFormsModule, + NgaModule, + routing + ], + declarations: [ + Layouts, + Inputs, + Forms + ] +}) +export default class FormsModule {} diff --git a/src/app/pages/forms/forms.routing.ts b/src/app/pages/forms/forms.routing.ts new file mode 100644 index 00000000..9cd58baf --- /dev/null +++ b/src/app/pages/forms/forms.routing.ts @@ -0,0 +1,19 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Forms } from './forms.component'; +import { Inputs } from './components/inputs/inputs.component'; +import { Layouts } from './components/layouts/layouts.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Forms, + children: [ + { path: 'inputs', component: Inputs }, + { path: 'layouts', component: Layouts } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/login/login.module.ts b/src/app/pages/login/login.module.ts new file mode 100644 index 00000000..d6e17afe --- /dev/null +++ b/src/app/pages/login/login.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { Login } from './login.component'; +import { routing } from './login.routing'; + + +@NgModule({ + imports: [ + CommonModule, + ReactiveFormsModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Login + ] +}) +export default class LoginModule {} diff --git a/src/app/pages/login/login.routes.ts b/src/app/pages/login/login.routes.ts deleted file mode 100644 index 2bf1df36..00000000 --- a/src/app/pages/login/login.routes.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {RouterConfig} from '@angular/router'; -import {Login} from './login.component'; - -//noinspection TypeScriptValidateTypes -export const LoginRoutes: RouterConfig = [ - { - path: 'login', - component: Login - } -]; diff --git a/src/app/pages/login/login.routing.ts b/src/app/pages/login/login.routing.ts new file mode 100644 index 00000000..2749e97f --- /dev/null +++ b/src/app/pages/login/login.routing.ts @@ -0,0 +1,13 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Login } from './login.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Login + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts b/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts index 329922ba..784da6a5 100644 --- a/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts +++ b/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts @@ -1,15 +1,12 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; -import {BaAmChart} from '../../../../theme/components'; -import {BubbleMapsService} from "./bubbleMaps.service"; +import {BubbleMapsService} from './bubbleMaps.service'; @Component({ selector: 'bubble-maps', pipes: [], providers: [BubbleMapsService], encapsulation: ViewEncapsulation.None, - directives: [BaCard, BaAmChart], styles: [require('./bubbleMaps.scss')], template: require('./bubbleMaps.html'), }) diff --git a/src/app/pages/maps/components/googleMaps/googleMaps.component.ts b/src/app/pages/maps/components/googleMaps/googleMaps.component.ts index 4c56561f..8edc8ab6 100644 --- a/src/app/pages/maps/components/googleMaps/googleMaps.component.ts +++ b/src/app/pages/maps/components/googleMaps/googleMaps.component.ts @@ -1,12 +1,10 @@ import {Component, ElementRef} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import {GoogleMapsLoader} from './googleMaps.loader'; @Component({ selector: 'google-maps', pipes: [], providers: [], - directives: [BaCard], styles: [require('./googleMaps.scss')], template: require('./googleMaps.html'), }) diff --git a/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts b/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts index 512a7d94..cc3975de 100644 --- a/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts +++ b/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts @@ -1,5 +1,4 @@ import {Component, ViewEncapsulation, ElementRef} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import './leafletMaps.loader'; @@ -9,8 +8,7 @@ import './leafletMaps.loader'; providers: [], encapsulation: ViewEncapsulation.None, styles: [require('./leafletMaps.scss')], - template: require('./leafletMaps.html'), - directives: [BaCard], + template: require('./leafletMaps.html') }) export class LeafletMaps { diff --git a/src/app/pages/maps/components/lineMaps/lineMaps.component.ts b/src/app/pages/maps/components/lineMaps/lineMaps.component.ts index 4d7b598d..e78bb216 100644 --- a/src/app/pages/maps/components/lineMaps/lineMaps.component.ts +++ b/src/app/pages/maps/components/lineMaps/lineMaps.component.ts @@ -1,5 +1,4 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard, BaAmChart} from '../../../../theme/components'; import {LineMapsService} from './lineMaps.service'; @@ -9,8 +8,7 @@ import {LineMapsService} from './lineMaps.service'; providers: [LineMapsService], encapsulation: ViewEncapsulation.None, styles: [require('./lineMaps.scss')], - template: require('./lineMaps.html'), - directives: [BaCard, BaAmChart], + template: require('./lineMaps.html') }) export class LineMaps { diff --git a/src/app/pages/maps/maps.module.ts b/src/app/pages/maps/maps.module.ts new file mode 100644 index 00000000..120a22c4 --- /dev/null +++ b/src/app/pages/maps/maps.module.ts @@ -0,0 +1,29 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './maps.routing'; +import { Maps } from './maps.component'; +import { BubbleMaps } from './components/bubbleMaps/bubbleMaps.component'; +import { GoogleMaps } from './components/googleMaps/googleMaps.component'; +import { LeafletMaps } from './components/leafletMaps/leafletMaps.component'; +import { LineMaps } from './components/lineMaps/lineMaps.component'; + + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Maps, + BubbleMaps, + GoogleMaps, + LeafletMaps, + LineMaps + ] +}) +export default class MapsModule {} diff --git a/src/app/pages/maps/maps.routing.ts b/src/app/pages/maps/maps.routing.ts new file mode 100644 index 00000000..3530a1e4 --- /dev/null +++ b/src/app/pages/maps/maps.routing.ts @@ -0,0 +1,23 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Maps } from './maps.component'; +import { BubbleMaps } from './components/bubbleMaps/bubbleMaps.component'; +import { GoogleMaps } from './components/googleMaps/googleMaps.component'; +import { LeafletMaps } from './components/leafletMaps/leafletMaps.component'; +import { LineMaps } from './components/lineMaps/lineMaps.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Maps, + children: [ + { path: 'bubblemaps', component: BubbleMaps }, + { path: 'googlemaps', component: GoogleMaps }, + { path: 'leafletmaps', component: LeafletMaps }, + { path: 'linemaps', component: LineMaps } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/pages.component.ts b/src/app/pages/pages.component.ts index 3f2a77c4..683d534e 100644 --- a/src/app/pages/pages.component.ts +++ b/src/app/pages/pages.component.ts @@ -1,11 +1,8 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaPageTop, BaContentTop, BaSidebar, BaBackTop} from '../theme/components'; - @Component({ selector: 'pages', encapsulation: ViewEncapsulation.None, styles: [], - directives: [BaPageTop, BaSidebar, BaContentTop, BaBackTop], template: ` diff --git a/src/app/pages/pages.routes.ts b/src/app/pages/pages.menu.ts similarity index 72% rename from src/app/pages/pages.routes.ts rename to src/app/pages/pages.menu.ts index 36c1008c..29bd8f82 100644 --- a/src/app/pages/pages.routes.ts +++ b/src/app/pages/pages.menu.ts @@ -1,38 +1,9 @@ -import {RouterConfig} from '@angular/router'; -import {Dashboard} from './dashboard/dashboard.component'; -import {Charts} from './charts/charts.component'; -import {ChartistJs} from './charts/components/chartistJs/chartistJs.component'; -import {Pages} from './pages.component'; -import {Ui} from './ui/ui.component'; -import {Typography} from './ui/components/typography/typography.component'; -import {Buttons} from './ui/components/buttons/buttons.component'; -import {Icons} from './ui/components/incons/icons.component'; -import {Grid} from './ui/components/grid/grid.component'; -import {Forms} from './forms/forms.component'; -import {Inputs} from './forms/components/inputs/inputs.component'; -import {Layouts} from './forms/components/layouts/layouts.component'; -import {BasicTables} from './tables/components/basicTables/basicTables.component'; -import {Tables} from './tables/tables.component'; -import {Maps} from './maps/maps.component'; -import {GoogleMaps} from './maps/components/googleMaps/googleMaps.component'; -import {LeafletMaps} from './maps/components/leafletMaps/leafletMaps.component'; -import {BubbleMaps} from './maps/components/bubbleMaps/bubbleMaps.component'; -import {LineMaps} from './maps/components/lineMaps/lineMaps.component'; -import {Editors} from './editors/editors.component'; -import {Ckeditor} from './editors/components/ckeditor/ckeditor.component'; -import {Components} from './components/components.component'; -import {TreeView} from './components/components/treeView/treeView.component'; -import {SmartTables} from './tables/components/smartTables/smartTables.component'; - -//noinspection TypeScriptValidateTypes -export const PagesRoutes:RouterConfig = [ +export const PAGES_MENU = [ { path: 'pages', - component: Pages, children: [ { path: 'dashboard', - component: Dashboard, data: { menu: { title: 'Dashboard', @@ -45,7 +16,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'editors', - component: Editors, data: { menu: { title: 'Editors', @@ -58,7 +28,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'ckeditor', - component: Ckeditor, data: { menu: { title: 'CKEditor', @@ -69,7 +38,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'components', - component: Components, data: { menu: { title: 'Components', @@ -82,7 +50,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'treeview', - component: TreeView, data: { menu: { title: 'Tree View', @@ -93,7 +60,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'charts', - component: Charts, data: { menu: { title: 'Charts', @@ -106,7 +72,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'chartist-js', - component: ChartistJs, data: { menu: { title: 'Chartist.Js', @@ -117,7 +82,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'ui', - component: Ui, data: { menu: { title: 'UI Features', @@ -130,7 +94,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'typography', - component: Typography, data: { menu: { title: 'Typography', @@ -139,7 +102,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'buttons', - component: Buttons, data: { menu: { title: 'Buttons', @@ -148,7 +110,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'icons', - component: Icons, data: { menu: { title: 'Icons', @@ -157,7 +118,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'grid', - component: Grid, data: { menu: { title: 'Grid', @@ -168,7 +128,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'forms', - component: Forms, data: { menu: { title: 'Form Elements', @@ -181,7 +140,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'inputs', - component: Inputs, data: { menu: { title: 'Form Inputs', @@ -190,7 +148,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'layouts', - component: Layouts, data: { menu: { title: 'Form Layouts', @@ -201,7 +158,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'tables', - component: Tables, data: { menu: { title: 'Tables', @@ -214,7 +170,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'basictables', - component: BasicTables, data: { menu: { title: 'Basic Tables', @@ -223,7 +178,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'smarttables', - component: SmartTables, data: { menu: { title: 'Smart Tables', @@ -234,7 +188,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'maps', - component: Maps, data: { menu: { title: 'Maps', @@ -247,7 +200,6 @@ export const PagesRoutes:RouterConfig = [ children: [ { path: 'googlemaps', - component: GoogleMaps, data: { menu: { title: 'Google Maps', @@ -256,7 +208,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'leafletmaps', - component: LeafletMaps, data: { menu: { title: 'Leaflet Maps', @@ -265,7 +216,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'bubblemaps', - component: BubbleMaps, data: { menu: { title: 'Bubble Maps', @@ -274,7 +224,6 @@ export const PagesRoutes:RouterConfig = [ }, { path: 'linemaps', - component: LineMaps, data: { menu: { title: 'Line Maps', diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts new file mode 100644 index 00000000..2a70364b --- /dev/null +++ b/src/app/pages/pages.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { routing } from './pages.routing'; +import { NgaModule } from '../theme/nga.module'; + +import { Pages } from './pages.component'; + +@NgModule({ + imports: [CommonModule, NgaModule, routing], + declarations: [Pages] +}) +export class PagesModule { +} diff --git a/src/app/pages/pages.routing.ts b/src/app/pages/pages.routing.ts new file mode 100644 index 00000000..731c30ca --- /dev/null +++ b/src/app/pages/pages.routing.ts @@ -0,0 +1,30 @@ +import { Routes, RouterModule } from '@angular/router'; +import { Pages } from './pages.component'; +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: 'login', + loadChildren: () => require('es6-promise-loader!app/pages/login/login.module')('default') + }, + { + path: 'register', + loadChildren: () => require('es6-promise-loader!app/pages/register/register.module')('default') + }, + { + path: 'pages', + component: Pages, + children: [ + { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, + { path: 'dashboard', loadChildren: () => require('es6-promise-loader!app/pages/dashboard/dashboard.module')('default') }, + { path: 'editors', loadChildren: () => require('es6-promise-loader!app/pages/editors/editors.module')('default') }, + //{ path: 'components', loadChildren: () => require('es6-promise-loader!app/pages/components/components.module')('default') } + { path: 'charts', loadChildren: () => require('es6-promise-loader!app/pages/charts/charts.module')('default') }, + { path: 'ui', loadChildren: () => require('es6-promise-loader!app/pages/ui/ui.module')('default') }, + { path: 'forms', loadChildren: () => require('es6-promise-loader!app/pages/forms/forms.module')('default') }, + { path: 'tables', loadChildren: () => require('es6-promise-loader!app/pages/tables/tables.module')('default') }, + { path: 'maps', loadChildren: () => require('es6-promise-loader!app/pages/maps/maps.module')('default') } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/register/register.module.ts b/src/app/pages/register/register.module.ts new file mode 100644 index 00000000..623c0c6c --- /dev/null +++ b/src/app/pages/register/register.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { Register } from './register.component'; +import { routing } from './register.routing'; + + +@NgModule({ + imports: [ + CommonModule, + ReactiveFormsModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Register + ] +}) +export default class RegisterModule {} diff --git a/src/app/pages/register/register.routes.ts b/src/app/pages/register/register.routes.ts deleted file mode 100644 index a6d577a8..00000000 --- a/src/app/pages/register/register.routes.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {RouterConfig} from '@angular/router'; -import {Register} from './register.component'; - -//noinspection TypeScriptValidateTypes -export const RegisterRoutes: RouterConfig = [ - { - path: 'register', - component: Register - } -]; diff --git a/src/app/pages/register/register.routing.ts b/src/app/pages/register/register.routing.ts new file mode 100644 index 00000000..c1ae1444 --- /dev/null +++ b/src/app/pages/register/register.routing.ts @@ -0,0 +1,13 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Register } from './register.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Register + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/tables/components/basicTables/basicTables.component.ts b/src/app/pages/tables/components/basicTables/basicTables.component.ts index c644401e..771d32fc 100644 --- a/src/app/pages/tables/components/basicTables/basicTables.component.ts +++ b/src/app/pages/tables/components/basicTables/basicTables.component.ts @@ -1,7 +1,6 @@ import {Component, ViewEncapsulation} from '@angular/core'; import {BasicTablesService} from './basicTables.service'; -import {BaCard} from '../../../../theme/components'; import {HoverTable} from './components/hoverTable'; import {BorderedTable} from './components/borderedTable'; import {CondensedTable} from './components/condensedTable'; @@ -12,7 +11,7 @@ import {ResponsiveTable} from './components/responsiveTable'; @Component({ selector: 'basic-tables', encapsulation: ViewEncapsulation.None, - directives: [BaCard, HoverTable, BorderedTable, CondensedTable, StripedTable, ContextualTable, ResponsiveTable], + directives: [HoverTable, BorderedTable, CondensedTable, StripedTable, ContextualTable, ResponsiveTable], styles: [require('./basicTables.scss')], template: require('./basicTables.html'), providers: [BasicTablesService] diff --git a/src/app/pages/tables/components/basicTables/components/borderedTable/borderedTable.component.ts b/src/app/pages/tables/components/basicTables/components/borderedTable/borderedTable.component.ts index 7310912d..683427bd 100644 --- a/src/app/pages/tables/components/basicTables/components/borderedTable/borderedTable.component.ts +++ b/src/app/pages/tables/components/basicTables/components/borderedTable/borderedTable.component.ts @@ -1,12 +1,10 @@ import {Component} from '@angular/core'; -import {BaAppPicturePipe} from '../../../../../../theme/pipes'; import {BasicTablesService} from '../../basicTables.service'; @Component({ selector: 'bordered-table', template: require('./borderedTable.html'), - pipes: [BaAppPicturePipe] }) export class BorderedTable { diff --git a/src/app/pages/tables/components/basicTables/components/condensedTable/condensedTable.component.ts b/src/app/pages/tables/components/basicTables/components/condensedTable/condensedTable.component.ts index b5f1e7f9..8fb0cf3d 100644 --- a/src/app/pages/tables/components/basicTables/components/condensedTable/condensedTable.component.ts +++ b/src/app/pages/tables/components/basicTables/components/condensedTable/condensedTable.component.ts @@ -1,12 +1,10 @@ import {Component} from '@angular/core'; -import {BaAppPicturePipe} from '../../../../../../theme/pipes'; import {BasicTablesService} from '../../basicTables.service'; @Component({ selector: 'condensed-table', - template: require('./condensedTable.html'), - pipes: [BaAppPicturePipe] + template: require('./condensedTable.html') }) export class CondensedTable { diff --git a/src/app/pages/tables/components/basicTables/components/hoverTable/hoverTable.component.ts b/src/app/pages/tables/components/basicTables/components/hoverTable/hoverTable.component.ts index 4ba47c48..37826143 100644 --- a/src/app/pages/tables/components/basicTables/components/hoverTable/hoverTable.component.ts +++ b/src/app/pages/tables/components/basicTables/components/hoverTable/hoverTable.component.ts @@ -1,12 +1,10 @@ import {Component} from '@angular/core'; -import {BaAppPicturePipe} from '../../../../../../theme/pipes'; import {BasicTablesService} from '../../basicTables.service'; @Component({ selector: 'hover-table', - template: require('./hoverTable.html'), - pipes: [BaAppPicturePipe] + template: require('./hoverTable.html') }) export class HoverTable { diff --git a/src/app/pages/tables/components/basicTables/components/stripedTable/stripedTable.component.ts b/src/app/pages/tables/components/basicTables/components/stripedTable/stripedTable.component.ts index f7c39c70..6dfb2ac1 100644 --- a/src/app/pages/tables/components/basicTables/components/stripedTable/stripedTable.component.ts +++ b/src/app/pages/tables/components/basicTables/components/stripedTable/stripedTable.component.ts @@ -1,12 +1,10 @@ import {Component} from '@angular/core'; -import {BaAppPicturePipe} from '../../../../../../theme/pipes'; import {BasicTablesService} from '../../basicTables.service'; @Component({ selector: 'striped-table', - template: require('./stripedTable.html'), - pipes: [BaAppPicturePipe] + template: require('./stripedTable.html') }) export class StripedTable { diff --git a/src/app/pages/tables/components/smartTables/smartTables.component.ts b/src/app/pages/tables/components/smartTables/smartTables.component.ts index 85a7a48e..b54bb15d 100644 --- a/src/app/pages/tables/components/smartTables/smartTables.component.ts +++ b/src/app/pages/tables/components/smartTables/smartTables.component.ts @@ -1,6 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import {NG2_SMART_TABLE_DIRECTIVES, LocalDataSource} from 'ng2-smart-table'; import { SmartTablesService } from './smartTables.service'; @@ -8,7 +7,7 @@ import { SmartTablesService } from './smartTables.service'; @Component({ selector: 'basic-tables', encapsulation: ViewEncapsulation.None, - directives: [BaCard, NG2_SMART_TABLE_DIRECTIVES], + directives: [NG2_SMART_TABLE_DIRECTIVES], styles: [require('./smartTables.scss')], template: require('./smartTables.html'), providers: [SmartTablesService] diff --git a/src/app/pages/tables/tables.module.ts b/src/app/pages/tables/tables.module.ts new file mode 100644 index 00000000..a3636b10 --- /dev/null +++ b/src/app/pages/tables/tables.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './tables.routing'; +import { Tables } from './tables.component'; +import { BasicTables } from './components/basicTables/basicTables.component'; +import { SmartTables } from './components/smartTables/smartTables.component'; + + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Tables, + BasicTables, + SmartTables + ] +}) +export default class TablesModule {} diff --git a/src/app/pages/tables/tables.routing.ts b/src/app/pages/tables/tables.routing.ts new file mode 100644 index 00000000..2c8755c7 --- /dev/null +++ b/src/app/pages/tables/tables.routing.ts @@ -0,0 +1,19 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Tables } from './tables.component'; +import { BasicTables } from './components/basicTables/basicTables.component'; +import { SmartTables } from './components/smartTables/smartTables.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Tables, + children: [ + { path: 'basictables', component: BasicTables }, + { path: 'smarttables', component: SmartTables } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/pages/ui/components/buttons/buttons.component.ts b/src/app/pages/ui/components/buttons/buttons.component.ts index 7df748af..bddc8544 100644 --- a/src/app/pages/ui/components/buttons/buttons.component.ts +++ b/src/app/pages/ui/components/buttons/buttons.component.ts @@ -1,6 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; import {FlatButtons} from './components/flatButtons'; import {RaisedButtons} from './components/raisedButtons'; import {SizedButtons} from './components/sizedButtons'; @@ -14,7 +13,6 @@ import {GroupButtons} from './components/groupButtons'; selector: 'buttons', encapsulation: ViewEncapsulation.None, directives: [ - BaCard, FlatButtons, RaisedButtons, SizedButtons, diff --git a/src/app/pages/ui/components/grid/grid.component.ts b/src/app/pages/ui/components/grid/grid.component.ts index eae1892c..f9685b33 100644 --- a/src/app/pages/ui/components/grid/grid.component.ts +++ b/src/app/pages/ui/components/grid/grid.component.ts @@ -1,11 +1,8 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; - @Component({ selector: 'grid', encapsulation: ViewEncapsulation.None, - directives: [BaCard], styles: [require('./grid.scss')], template: require('./grid.html'), }) diff --git a/src/app/pages/ui/components/incons/icons.component.ts b/src/app/pages/ui/components/icons/icons.component.ts similarity index 72% rename from src/app/pages/ui/components/incons/icons.component.ts rename to src/app/pages/ui/components/icons/icons.component.ts index 8f03dd03..2bab5b49 100644 --- a/src/app/pages/ui/components/incons/icons.component.ts +++ b/src/app/pages/ui/components/icons/icons.component.ts @@ -1,14 +1,10 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaCard} from '../../../../theme/components'; -import {BaKameleonPicturePipe} from '../../../../theme/pipes'; import {IconsService} from './icons.service'; @Component({ selector: 'icons', encapsulation: ViewEncapsulation.None, - directives: [BaCard], - pipes: [BaKameleonPicturePipe], providers: [IconsService], styles: [require('./icons.scss')], template: require('./icons.html'), diff --git a/src/app/pages/ui/components/incons/icons.html b/src/app/pages/ui/components/icons/icons.html similarity index 100% rename from src/app/pages/ui/components/incons/icons.html rename to src/app/pages/ui/components/icons/icons.html diff --git a/src/app/pages/ui/components/incons/icons.scss b/src/app/pages/ui/components/icons/icons.scss similarity index 100% rename from src/app/pages/ui/components/incons/icons.scss rename to src/app/pages/ui/components/icons/icons.scss diff --git a/src/app/pages/ui/components/incons/icons.service.ts b/src/app/pages/ui/components/icons/icons.service.ts similarity index 100% rename from src/app/pages/ui/components/incons/icons.service.ts rename to src/app/pages/ui/components/icons/icons.service.ts diff --git a/src/app/pages/ui/components/incons/index.ts b/src/app/pages/ui/components/icons/index.ts similarity index 100% rename from src/app/pages/ui/components/incons/index.ts rename to src/app/pages/ui/components/icons/index.ts diff --git a/src/app/pages/ui/components/typography/typography.component.ts b/src/app/pages/ui/components/typography/typography.component.ts index 6b264fb3..36e8c18d 100644 --- a/src/app/pages/ui/components/typography/typography.component.ts +++ b/src/app/pages/ui/components/typography/typography.component.ts @@ -1,13 +1,8 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {BaAppPicturePipe} from '../../../../theme/pipes'; -import {BaCard} from '../../../../theme/components'; - @Component({ selector: 'typography', - pipes: [BaAppPicturePipe], - directives: [BaCard], providers: [], styles: [], template: require('./typography.html'), diff --git a/src/app/pages/ui/ui.module.ts b/src/app/pages/ui/ui.module.ts new file mode 100644 index 00000000..dce52836 --- /dev/null +++ b/src/app/pages/ui/ui.module.ts @@ -0,0 +1,29 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgaModule } from '../../theme/nga.module'; + +import { routing } from './ui.routing'; +import { Ui } from './ui.component'; +import { Buttons } from './components/buttons/buttons.component'; +import { Grid } from './components/grid/grid.component'; +import { Icons } from './components/icons/icons.component'; +import { Typography } from './components/typography/typography.component'; + + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + NgaModule, + routing + ], + declarations: [ + Buttons, + Grid, + Icons, + Typography, + Ui + ] +}) +export default class UiModule {} diff --git a/src/app/pages/ui/ui.routing.ts b/src/app/pages/ui/ui.routing.ts new file mode 100644 index 00000000..54931272 --- /dev/null +++ b/src/app/pages/ui/ui.routing.ts @@ -0,0 +1,23 @@ +import { Routes, RouterModule } from '@angular/router'; + +import { Ui } from './ui.component'; +import { Buttons } from './components/buttons/buttons.component'; +import { Grid } from './components/grid/grid.component'; +import { Icons } from './components/icons/icons.component'; +import { Typography } from './components/typography/typography.component'; + +// noinspection TypeScriptValidateTypes +const routes: Routes = [ + { + path: '', + component: Ui, + children: [ + { path: 'buttons', component: Buttons }, + { path: 'grid', component: Grid }, + { path: 'icons', component: Icons }, + { path: 'typography', component: Typography } + ] + } +]; + +export const routing = RouterModule.forChild(routes); diff --git a/src/app/theme/components/baContentTop/baContentTop.component.ts b/src/app/theme/components/baContentTop/baContentTop.component.ts index 67697a73..faf47b1a 100644 --- a/src/app/theme/components/baContentTop/baContentTop.component.ts +++ b/src/app/theme/components/baContentTop/baContentTop.component.ts @@ -1,6 +1,6 @@ import {Component} from '@angular/core'; -import {AppState} from "../../../app.state"; +import {GlobalState} from '../../../global.state'; @Component({ selector: 'ba-content-top', @@ -11,7 +11,7 @@ export class BaContentTop { public activePageTitle:string = ''; - constructor(private _state:AppState) { + constructor(private _state:GlobalState) { this._state.subscribe('menu.activeLink', (activeLink) => { if (activeLink) { this.activePageTitle = activeLink.title; diff --git a/src/app/theme/components/baMenu/baMenu.component.ts b/src/app/theme/components/baMenu/baMenu.component.ts index 471eca23..90702253 100644 --- a/src/app/theme/components/baMenu/baMenu.component.ts +++ b/src/app/theme/components/baMenu/baMenu.component.ts @@ -1,11 +1,11 @@ import {Component, ViewEncapsulation, Input, Output, EventEmitter} from '@angular/core'; -import {Router, RouterConfig, NavigationEnd} from '@angular/router'; +import {Router, Routes, NavigationEnd} from '@angular/router'; import {Subscription} from 'rxjs/Rx'; import {BaSlimScroll} from '../../../theme/directives'; import {BaMenuService} from './baMenu.service'; import {BaMenuItem} from './components/baMenuItem'; -import {AppState} from '../../../app.state'; +import {GlobalState} from '../../../global.state'; @Component({ selector: 'ba-menu', @@ -17,7 +17,7 @@ import {AppState} from '../../../app.state'; }) export class BaMenu { - @Input() menuRoutes:RouterConfig = []; + @Input() menuRoutes:Routes = []; @Input() sidebarCollapsed:boolean = false; @Input() menuHeight:number; @@ -30,7 +30,7 @@ export class BaMenu { protected _onRouteChange:Subscription; public outOfArea:number = -200; - constructor(private _router:Router, private _service:BaMenuService, private _state:AppState) { + constructor(private _router:Router, private _service:BaMenuService, private _state:GlobalState) { this._onRouteChange = this._router.events.subscribe((event) => { if (event instanceof NavigationEnd) { diff --git a/src/app/theme/components/baMenu/baMenu.service.ts b/src/app/theme/components/baMenu/baMenu.service.ts index 498f63aa..245da3ed 100644 --- a/src/app/theme/components/baMenu/baMenu.service.ts +++ b/src/app/theme/components/baMenu/baMenu.service.ts @@ -1,5 +1,5 @@ import {Injectable} from '@angular/core'; -import {Router, UrlTree, RouterConfig} from '@angular/router'; +import {Router, Routes} from '@angular/router'; @Injectable() export class BaMenuService { @@ -9,7 +9,7 @@ export class BaMenuService { constructor(private _router:Router) { } - public convertRoutesToMenus(routes:RouterConfig):any[] { + public convertRoutesToMenus(routes:Routes):any[] { let items = this._convertArrayToItems(routes); return this._skipEmpty(items); } diff --git a/src/app/theme/components/baPageTop/baPageTop.component.ts b/src/app/theme/components/baPageTop/baPageTop.component.ts index 205bb88a..2eb0d520 100644 --- a/src/app/theme/components/baPageTop/baPageTop.component.ts +++ b/src/app/theme/components/baPageTop/baPageTop.component.ts @@ -1,6 +1,6 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {AppState} from '../../../app.state'; +import {GlobalState} from '../../../global.state'; import {BaProfilePicturePipe} from '../../pipes'; import {BaMsgCenter} from '../../components/baMsgCenter'; import {BaScrollPosition} from '../../directives'; @@ -18,7 +18,7 @@ export class BaPageTop { public isScrolled:boolean = false; public isMenuCollapsed:boolean = false; - constructor(private _state:AppState) { + constructor(private _state:GlobalState) { this._state.subscribe('menu.isCollapsed', (isCollapsed) => { this.isMenuCollapsed = isCollapsed; }); diff --git a/src/app/theme/components/baSidebar/baSidebar.component.ts b/src/app/theme/components/baSidebar/baSidebar.component.ts index c6376c38..33805d6d 100644 --- a/src/app/theme/components/baSidebar/baSidebar.component.ts +++ b/src/app/theme/components/baSidebar/baSidebar.component.ts @@ -1,8 +1,8 @@ import {Component, ElementRef, HostListener, ViewEncapsulation} from '@angular/core'; -import {AppState} from '../../../app.state'; +import {GlobalState} from '../../../global.state'; import {layoutSizes} from '../../../theme'; import {BaMenu} from '../baMenu'; -import {routes} from '../../../../app/app.routes'; +import {MENU} from '../../../../app/app.menu'; import * as _ from 'lodash'; @Component({ @@ -16,14 +16,14 @@ import * as _ from 'lodash'; export class BaSidebar { // here we declare which routes we want to use as a menu in our sidebar - public routes = _.cloneDeep(routes); // we're creating a deep copy since we are going to change that object + public routes = _.cloneDeep(MENU); // we're creating a deep copy since we are going to change that object public menuHeight:number; public isMenuCollapsed:boolean = false; public isMenuShouldCollapsed:boolean = false; - constructor(private _elementRef:ElementRef, private _state:AppState) { + constructor(private _elementRef:ElementRef, private _state:GlobalState) { this._state.subscribe('menu.isCollapsed', (isCollapsed) => { this.isMenuCollapsed = isCollapsed; diff --git a/src/app/theme/nga.module.ts b/src/app/theme/nga.module.ts new file mode 100644 index 00000000..a9a68ee7 --- /dev/null +++ b/src/app/theme/nga.module.ts @@ -0,0 +1,117 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; +import { HttpModule } from '@angular/http'; + +import { + BaThemeConfig +} from './theme.config'; + +import { + BaThemeConfigProvider +} from './theme.configProvider'; + +import { + BaAmChart, + BaBackTop, + BaCard, + BaChartistChart, + BaCheckbox, + BaContentTop, + BaFullCalendar, + BaMenu, + BaMsgCenter, + BaMultiCheckbox, + BaPageTop, + BaPictureUploader, + BaSidebar +} from './components'; + +import { + BaScrollPosition, + BaSlimScroll, + BaThemeRun +} from './directives'; + +import { + BaAppPicturePipe, + BaKameleonPicturePipe, + BaProfilePicturePipe +} from './pipes'; + +import { + BaImageLoaderService, + BaThemePreloader, + BaThemeSpinner +} from './services'; + +import { + EmailValidator, + EqualPasswordsValidator +} from './validators'; + +const NGA_COMPONENTS = [ + BaAmChart, + BaBackTop, + BaCard, + BaChartistChart, + BaCheckbox, + BaContentTop, + BaFullCalendar, + BaMenu, + BaMsgCenter, + BaMultiCheckbox, + BaPageTop, + BaPictureUploader, + BaSidebar +]; + +const NGA_DIRECTIVES = [ + BaScrollPosition, + BaSlimScroll, + BaThemeRun +]; + +const NGA_PIPES = [ + BaAppPicturePipe, + BaKameleonPicturePipe, + BaProfilePicturePipe +]; + +const NGA_SERVICES = [ + BaImageLoaderService, + BaThemePreloader, + BaThemeSpinner +]; + +const NGA_VALIDATORS = [ + EmailValidator, + EqualPasswordsValidator +]; + +@NgModule({ + declarations: [ + ...NGA_PIPES, + ...NGA_DIRECTIVES, + ...NGA_COMPONENTS + ], + imports: [ + CommonModule, + HttpModule, + FormsModule, + ReactiveFormsModule, + ], + providers: [ + BaThemeConfigProvider, + BaThemeConfig, + ...NGA_VALIDATORS, + ...NGA_SERVICES + ], + exports: [ + ...NGA_PIPES, + ...NGA_DIRECTIVES, + ...NGA_COMPONENTS + ] +}) +export class NgaModule { +} diff --git a/src/custom-typings.d.ts b/src/custom-typings.d.ts index 0ddf536e..e571fb70 100644 --- a/src/custom-typings.d.ts +++ b/src/custom-typings.d.ts @@ -76,7 +76,7 @@ interface WebpackModule { data?: any, idle: any, accept(dependencies?: string | string[], callback?: (updatedDependencies?: any) => void): void; - decline(dependencies?: string | string[]): void; + decline(deps?: any | string | string[]): void; dispose(callback?: (data?: any) => void): void; addDisposeHandler(callback?: (data?: any) => void): void; removeDisposeHandler(callback?: (data?: any) => void): void; diff --git a/src/main.browser.ts b/src/main.browser.ts index f1de52a0..85a6e274 100644 --- a/src/main.browser.ts +++ b/src/main.browser.ts @@ -1,56 +1,26 @@ /* - * Providers provided by Angular + * Angular bootstraping */ -import { bootstrap } from '@angular/platform-browser-dynamic'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { decorateModuleRef } from './app/environment'; +import { ApplicationRef } from '@angular/core'; +import { bootloader } from '@angularclass/hmr'; /* - * Platform and Environment - * our providers/directives/pipes + * App Module + * our top level module that holds all of our components */ -import { PLATFORM_PROVIDERS } from './platform/browser'; -import { ENV_PROVIDERS, decorateComponentRef } from './platform/environment'; - +import { AppModule } from './app'; /* - * App Component - * our top level component that holds all of our components + * Bootstrap our Angular app with a top level NgModule */ -import { App, APP_PROVIDERS } from './app'; - -/* - * Bootstrap our Angular app with a top level component `App` and inject - * our Services and Providers into Angular's dependency injection - */ -export function main(initialHmrState?: any): Promise { - - return bootstrap(App, [ - // To add more vendor providers please look in the platform/ folder - ...PLATFORM_PROVIDERS, - ...ENV_PROVIDERS, - ...APP_PROVIDERS, - ]) - .then(decorateComponentRef) +export function main(): Promise { + return platformBrowserDynamic() + .bootstrapModule(AppModule) + .then(decorateModuleRef) .catch(err => console.error(err)); } -/* - * Vendors - * For vendors for example jQuery, Lodash, angular2-jwt just import them anywhere in your app - * You can also import them in vendors to ensure that they are bundled in one file - * Also see custom-typings.d.ts as you also need to do `npm install @types/x` where `x` is your module - */ - - -/* - * Hot Module Reload - * experimental version by @gdi2290 - */ -if ('development' === ENV && HMR === true) { - // activate hot module reload - let ngHmr = require('angular2-hmr'); - ngHmr.hotModuleReplacement(main, module); -} else { - // bootstrap when document is ready - document.addEventListener('DOMContentLoaded', () => main()); -} +bootloader(main); diff --git a/src/platform/browser-directives.ts b/src/platform/browser-directives.ts deleted file mode 100644 index 63f1a90b..00000000 --- a/src/platform/browser-directives.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * These are globally available directives in any template - */ -// Angular 2 -import { PLATFORM_DIRECTIVES } from '@angular/core'; -// Angular 2 Router -import { ROUTER_DIRECTIVES } from '@angular/router'; -// Angular 2 forms -import { REACTIVE_FORM_DIRECTIVES } from '@angular/forms'; - -// application_directives: directives that are global through out the application -export const APPLICATION_DIRECTIVES = [ - ...ROUTER_DIRECTIVES, - ...REACTIVE_FORM_DIRECTIVES -]; - -export const DIRECTIVES = [ - { provide: PLATFORM_DIRECTIVES, multi: true, useValue: APPLICATION_DIRECTIVES } -]; diff --git a/src/platform/browser-pipes.ts b/src/platform/browser-pipes.ts deleted file mode 100644 index a08bfe02..00000000 --- a/src/platform/browser-pipes.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * These are globally available pipes in any template - */ - -import { PLATFORM_PIPES } from '@angular/core'; - -// application_pipes: pipes that are global through out the application -export const APPLICATION_PIPES = [ - -]; - -export const PIPES = [ - { provide: PLATFORM_PIPES, multi: true, useValue: APPLICATION_PIPES } -]; diff --git a/src/platform/browser-providers.ts b/src/platform/browser-providers.ts deleted file mode 100644 index c1eaae5f..00000000 --- a/src/platform/browser-providers.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * These are globally available services in any component or any other service - */ - -// Angular 2 -import { HashLocationStrategy, LocationStrategy } from '@angular/common'; -// Angular 2 Http -import { HTTP_PROVIDERS } from '@angular/http'; -// Angular 2 Router -import { provideRouter } from '@angular/router'; -// Angular 2 forms -import { disableDeprecatedForms, provideForms } from '@angular/forms'; - - -import { routes } from '../app/app.routes'; - -/* - * Application Providers/Directives/Pipes - * providers/directives/pipes that only live in our browser environment - */ -export const APPLICATION_PROVIDERS = [ - // new Angular 2 forms - disableDeprecatedForms(), - provideForms(), - - provideRouter(routes), - - ...HTTP_PROVIDERS, - - { provide: LocationStrategy, useClass: HashLocationStrategy } -]; - -export const PROVIDERS = [ - ...APPLICATION_PROVIDERS -]; diff --git a/src/platform/browser.ts b/src/platform/browser.ts deleted file mode 100644 index 8376c65c..00000000 --- a/src/platform/browser.ts +++ /dev/null @@ -1,14 +0,0 @@ -export * from './browser-directives'; -export * from './browser-pipes'; -export * from './browser-providers'; - -import { DIRECTIVES } from './browser-directives'; -import { PIPES } from './browser-pipes'; -import { PROVIDERS } from './browser-providers'; - - -export const PLATFORM_PROVIDERS = [ - ...PROVIDERS, - ...DIRECTIVES, - ...PIPES -]; diff --git a/src/vendor.browser.ts b/src/vendor.browser.ts index 379786f2..6730261c 100644 --- a/src/vendor.browser.ts +++ b/src/vendor.browser.ts @@ -1,7 +1,7 @@ // For vendors for example jQuery, Lodash, angular2-jwt just import them here unless you plan on // chunking vendors files for async loading. You would need to import the async loaded vendors // at the entry point of the async loaded file. Also see custom-typings.d.ts as you also need to -// run `npm install @types/x` where `x` is your module +// run `typings install x` where `x` is your module // Angular 2 import '@angular/platform-browser'; @@ -12,6 +12,9 @@ import '@angular/forms'; import '@angular/http'; import '@angular/router'; +// AngularClass +import '@angularclass/hmr'; + // RxJS import 'rxjs/add/operator/map'; import 'rxjs/add/operator/mergeMap'; @@ -24,9 +27,6 @@ import 'lodash'; if ('production' === ENV) { // Production - } else { // Development - require('angular2-hmr'); - } diff --git a/tsconfig.json b/tsconfig.json index 86493b48..51b761cb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,13 +5,17 @@ "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, "sourceMap": true, "noEmitHelpers": true, - "lib": ["es6", "dom"], "strictNullChecks": false, "baseUrl": "./src", "paths": [ ], + "lib": [ + "dom", + "es6" + ], "types": [ "core-js", "hammerjs", @@ -22,7 +26,8 @@ ] }, "exclude": [ - "node_modules" + "node_modules", + "dist" ], "awesomeTypescriptLoaderOptions": { "forkChecker": true,