diff --git a/.gitignore b/.gitignore index dc0fb63..0313a28 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ # dependencies /node_modules +/node_modules_bak # IDEs and editors /.idea diff --git a/.travis.yml b/.travis.yml index fb6d1f5..e11d01d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ sudo: required language: node_js +addons: + chrome: stable node_js: - node branches: @@ -8,6 +10,7 @@ branches: before_script: - npm install -g @angular/cli script: +- npm run travis-test - ng build --prod after_success: - ci/publish_docker.sh diff --git a/package.json b/package.json index ed086b2..4aa7a54 100644 --- a/package.json +++ b/package.json @@ -6,56 +6,61 @@ "start": "ng serve", "build": "ng build", "test": "ng test --browsers=Chrome --source-map=false", + "travis-test": "ng test --watch=false --environment=prod --browsers=ChromeHeadlessNoSandbox --reporters=progress,kjhtml", "lint": "ng lint", "e2e": "ng e2e", "compodoc": "npx compodoc", - "generate-docs": "compodoc -p tsconfig.json --includes additional_docs/", + "generate-docs": "compodoc -p tsconfig.compodoc.json --includes additional_docs/", "serve-docs": "compodoc -s tsconfig.json" }, "private": true, "dependencies": { - "@angular/animations": "^6.1.9", - "@angular/cdk": "^6.4.2", - "@angular/common": "^6.1.9", - "@angular/compiler": "^6.1.9", - "@angular/core": "^6.1.9", - "@angular/forms": "^6.1.9", - "@angular/http": "^6.1.9", - "@angular/platform-browser": "^6.1.9", - "@angular/platform-browser-dynamic": "^6.1.9", - "@angular/router": "^6.1.9", - "@ngrx/store": "^6.0.1", + "@angular/animations": "^7.0.1", + "@angular/cdk": "^7.0.1", + "@angular/common": "^7.0.1", + "@angular/compiler": "^7.0.1", + "@angular/core": "^7.0.1", + "@angular/forms": "^7.0.1", + "@angular/http": "^7.0.1", + "@angular/platform-browser": "^7.0.1", + "@angular/platform-browser-dynamic": "^7.0.1", + "@angular/router": "^7.0.1", + "@ngrx/store": "^6.1.0", + "brace": "^0.11.1", + "bulma-badge": "^2.0.0", "bulma-checkradio": "^2.1.0", "bulma-divider": "^2.0.1", - "cloudiator-rest-api": "0.0.2-SNAPSHOT.201810100853", + "cloudiator-rest-api": "1.2.1", "core-js": "^2.5.4", + "cytoscape": "^3.2.20", + "file-saver": "^2.0.0-rc.4", "rxjs": "^6.3.3", "zone.js": "^0.8.26" }, "devDependencies": { - "@angular-devkit/build-angular": "^0.8.3", - "@angular/cli": "~6.0.8", - "@angular/compiler-cli": "^6.1.9", - "@angular/language-service": "^6.1.9", + "@angular-devkit/build-angular": "^0.10.3", + "@angular/cli": "^7.0.3", + "@angular/compiler-cli": "^7.0.1", + "@angular/language-service": "^7.0.1", "@compodoc/compodoc": "^1.1.3", - "@types/jasmine": "^2.8.9", - "@types/jasminewd2": "^2.0.5", - "@types/node": "~8.9.4", - "bulma": "^0.7.1", - "codelyzer": "~4.2.1", + "@types/jasmine": "~2.8.8", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^10.12.0", + "bulma": "^0.7.2", + "codelyzer": "^4.5.0", "hoek": "^5.0.3", - "jasmine-core": "~2.99.1", + "jasmine-core": "^2.99.1", "jasmine-spec-reporter": "~4.2.1", - "karma": "^3.0.0", + "karma": "~3.0.0", "karma-chrome-launcher": "~2.2.0", - "karma-coverage-istanbul-reporter": "^2.0.4", - "karma-jasmine": "~1.1.1", + "karma-coverage-istanbul-reporter": "^2.0.1", + "karma-jasmine": "~1.1.2", "karma-jasmine-html-reporter": "^0.2.2", "karma-phantomjs-launcher": "^1.0.4", "karma-teamcity-reporter": "^1.1.0", "protractor": "^5.4.1", - "ts-node": "~5.0.1", - "tslint": "~5.9.1", - "typescript": "~2.7.2" + "ts-node": "^7.0.1", + "tslint": "^5.11.0", + "typescript": "~3.1.3" } } diff --git a/src/app/actions/runtime-config.actions.ts b/src/app/actions/runtime-config.actions.ts deleted file mode 100644 index a13b191..0000000 --- a/src/app/actions/runtime-config.actions.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {Action} from '@ngrx/store'; -import {AuthMode, RuntimeConfig} from '../model/RuntimeConfig'; - -export const SET_API_PATH = '[RuntimeConfig] set api path'; -export const SET_AUTH_MODE = '[RuntimeConfig] set auth mode'; -export const SET_X_API_KEY = '[RuntimeConfig] set x api key'; -export const SET_RUNTIME_CONFIG = '[RuntimeConfig] set runtime config'; - -export class SetApiPathAction implements Action { - readonly type = SET_API_PATH; - - constructor(public apiPath: string) { - } -} - -export class SetAuthModeAction implements Action { - readonly type = SET_AUTH_MODE; - - constructor(public authMode: AuthMode) { - } -} - -export class SetXApiKeyAction implements Action { - readonly type = SET_X_API_KEY; - - constructor(public xApiKey: string) { - } -} - -export class SetRuntimeConfigAction implements Action { - readonly type = SET_RUNTIME_CONFIG; - - constructor(public config: RuntimeConfig) { - - } -} - - -export type All = SetApiPathAction | SetAuthModeAction | SetXApiKeyAction | SetRuntimeConfigAction; diff --git a/src/app/actions/user-settings.actions.ts b/src/app/actions/user-settings.actions.ts deleted file mode 100644 index 88387d6..0000000 --- a/src/app/actions/user-settings.actions.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Action} from '@ngrx/store'; - -export const GET = '[UserSettings] get settings'; -export const SET_SETTINGS = '[UserSettings] set settings'; - -export class GetUserSettingsAction implements Action { - readonly type = GET; - - constructor() { - } -} - -export class SetUserSettingsAction implements Action { - readonly type = SET_SETTINGS; - - constructor(public settings: any) { - } -} - - -export type All = GetUserSettingsAction | SetUserSettingsAction; diff --git a/src/app/app-dialog/app-dialog.module.ts b/src/app/app-dialog/app-dialog.module.ts new file mode 100644 index 0000000..4e677e6 --- /dev/null +++ b/src/app/app-dialog/app-dialog.module.ts @@ -0,0 +1,29 @@ +import {NgModule} from '@angular/core'; +import {OverlayModule} from '@angular/cdk/overlay'; +import {ToastComponent} from './dialogs/toast/toast.component'; +import {DialogService} from './services/dialog.service'; +import {ToastService} from './services/toast.service'; +import {ConfirmNewCloudDialogComponent} from './dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component'; +import {DeleteCloudDialogComponent} from './dialogs/delete-cloud-dialog/delete-cloud-dialog.component'; + +@NgModule({ + declarations: [ + ToastComponent, + ConfirmNewCloudDialogComponent, + DeleteCloudDialogComponent + ], + imports: [ + OverlayModule + ], + providers: [ + DialogService, + ToastService + ], + entryComponents: [ + ToastComponent, + ConfirmNewCloudDialogComponent, + DeleteCloudDialogComponent + ] +}) +export class AppDialogModule { +} diff --git a/src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.html b/src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.html similarity index 100% rename from src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.html rename to src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.html diff --git a/src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.scss b/src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.scss similarity index 100% rename from src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.scss rename to src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.scss diff --git a/src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.spec.ts b/src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.spec.ts similarity index 92% rename from src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.spec.ts rename to src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.spec.ts index ee60646..b96846c 100644 --- a/src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.spec.ts +++ b/src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.spec.ts @@ -1,7 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { ConfirmNewCloudDialogComponent } from './confirm-new-cloud-dialog.component'; -import {DialogRef} from '../../model/dialogRef'; +import {DialogRef} from '../../../model/dialogRef'; import {DIALOG_DATA} from '../../services/dialog.service'; describe('ConfirmNewCloudDialogComponent', () => { @@ -11,6 +11,7 @@ describe('ConfirmNewCloudDialogComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ ConfirmNewCloudDialogComponent ], + imports: [], providers: [ {provide: DialogRef, useVale: {}}, { provide: DIALOG_DATA, useValue: {}} diff --git a/src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.ts b/src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.ts similarity index 91% rename from src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.ts rename to src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.ts index 96280a1..8c31485 100644 --- a/src/app/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.ts +++ b/src/app/app-dialog/dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component.ts @@ -1,5 +1,5 @@ import {Component, Inject, OnInit} from '@angular/core'; -import {DialogRef} from '../../model/dialogRef'; +import {DialogRef} from '../../../model/dialogRef'; import {DIALOG_DATA} from '../../services/dialog.service'; @Component({ diff --git a/src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.html b/src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.html similarity index 100% rename from src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.html rename to src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.html diff --git a/src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.scss b/src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.scss similarity index 100% rename from src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.scss rename to src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.scss diff --git a/src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.spec.ts b/src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.spec.ts similarity index 94% rename from src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.spec.ts rename to src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.spec.ts index bbf8b58..14410a5 100644 --- a/src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.spec.ts +++ b/src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.spec.ts @@ -1,7 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { DeleteCloudDialogComponent } from './delete-cloud-dialog.component'; -import {DialogRef} from '../../model/dialogRef'; +import {DialogRef} from '../../../model/dialogRef'; import {DIALOG_DATA} from '../../services/dialog.service'; describe('DeleteCloudDialogComponent', () => { diff --git a/src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.ts b/src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.ts similarity index 91% rename from src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.ts rename to src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.ts index 7eef3ad..f0837cf 100644 --- a/src/app/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.ts +++ b/src/app/app-dialog/dialogs/delete-cloud-dialog/delete-cloud-dialog.component.ts @@ -1,5 +1,5 @@ import {Component, Inject, OnInit} from '@angular/core'; -import {DialogRef} from '../../model/dialogRef'; +import {DialogRef} from '../../../model/dialogRef'; import {DIALOG_DATA} from '../../services/dialog.service'; @Component({ diff --git a/src/app/dialogs/toast/toast.component.html b/src/app/app-dialog/dialogs/toast/toast.component.html similarity index 100% rename from src/app/dialogs/toast/toast.component.html rename to src/app/app-dialog/dialogs/toast/toast.component.html diff --git a/src/app/dialogs/toast/toast.component.scss b/src/app/app-dialog/dialogs/toast/toast.component.scss similarity index 100% rename from src/app/dialogs/toast/toast.component.scss rename to src/app/app-dialog/dialogs/toast/toast.component.scss diff --git a/src/app/dialogs/toast/toast.component.spec.ts b/src/app/app-dialog/dialogs/toast/toast.component.spec.ts similarity index 93% rename from src/app/dialogs/toast/toast.component.spec.ts rename to src/app/app-dialog/dialogs/toast/toast.component.spec.ts index 340ccfc..3cf2f63 100644 --- a/src/app/dialogs/toast/toast.component.spec.ts +++ b/src/app/app-dialog/dialogs/toast/toast.component.spec.ts @@ -1,7 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { ToastComponent } from './toast.component'; -import {DialogRef} from '../../model/dialogRef'; +import {DialogRef} from '../../../model/dialogRef'; import {DIALOG_DATA} from '../../services/dialog.service'; describe('ToastComponent', () => { diff --git a/src/app/dialogs/toast/toast.component.ts b/src/app/app-dialog/dialogs/toast/toast.component.ts similarity index 71% rename from src/app/dialogs/toast/toast.component.ts rename to src/app/app-dialog/dialogs/toast/toast.component.ts index 4ca12c0..44be46f 100644 --- a/src/app/dialogs/toast/toast.component.ts +++ b/src/app/app-dialog/dialogs/toast/toast.component.ts @@ -1,7 +1,7 @@ import {Component, Inject, OnInit} from '@angular/core'; -import {DialogRef} from '../../model/dialogRef'; +import {DialogRef} from '../../../model/dialogRef'; import {DIALOG_DATA} from '../../services/dialog.service'; -import {Toast} from '../../model/toast'; +import {Toast} from '../../../model/toast'; @Component({ selector: 'app-toast', @@ -13,7 +13,7 @@ export class ToastComponent implements OnInit { toast: Toast; constructor(public dialogRef: DialogRef, - @Inject(DIALOG_DATA) public data: Toast) { } + @Inject(DIALOG_DATA) public data: Toast) { } ngOnInit() { this.toast = this.data; diff --git a/src/app/services/dialog.service.spec.ts b/src/app/app-dialog/services/dialog.service.spec.ts similarity index 66% rename from src/app/services/dialog.service.spec.ts rename to src/app/app-dialog/services/dialog.service.spec.ts index 0763634..1123243 100644 --- a/src/app/services/dialog.service.spec.ts +++ b/src/app/app-dialog/services/dialog.service.spec.ts @@ -1,17 +1,15 @@ import {TestBed, inject} from '@angular/core/testing'; import {DialogService} from './dialog.service'; -import {Injector} from '@angular/core'; -import {Overlay} from '@angular/cdk/overlay'; +import {AppDialogModule} from '../app-dialog.module'; describe('DialogService', () => { beforeEach(() => { TestBed.configureTestingModule({ - providers: [ - DialogService, - Injector, - Overlay - ] + imports: [ + AppDialogModule + ], + providers: [] }); }); diff --git a/src/app/services/dialog.service.ts b/src/app/app-dialog/services/dialog.service.ts similarity index 97% rename from src/app/services/dialog.service.ts rename to src/app/app-dialog/services/dialog.service.ts index 6fb1861..a799689 100644 --- a/src/app/services/dialog.service.ts +++ b/src/app/app-dialog/services/dialog.service.ts @@ -1,7 +1,7 @@ import {Injectable, InjectionToken, Injector} from '@angular/core'; import {ComponentType, Overlay, OverlayConfig, OverlayRef} from '@angular/cdk/overlay'; import {ComponentPortal, PortalInjector} from '@angular/cdk/portal'; -import {DialogRef} from '../model/dialogRef'; +import {DialogRef} from '../../model/dialogRef'; /** * Describes the Dialog Configurations that are accessible from outside @@ -26,9 +26,7 @@ export const DIALOG_DATA = new InjectionToken('DIALOG_DATA'); /** * Service to open modal Dialogs */ -@Injectable({ - providedIn: 'root' -}) +@Injectable() export class DialogService { /** diff --git a/src/app/services/toast.service.spec.ts b/src/app/app-dialog/services/toast.service.spec.ts similarity index 58% rename from src/app/services/toast.service.spec.ts rename to src/app/app-dialog/services/toast.service.spec.ts index 689ce5c..b7348dd 100644 --- a/src/app/services/toast.service.spec.ts +++ b/src/app/app-dialog/services/toast.service.spec.ts @@ -1,19 +1,15 @@ import {TestBed, inject} from '@angular/core/testing'; import {ToastService} from './toast.service'; -import {Overlay} from '@angular/cdk/overlay'; -import {DialogService} from './dialog.service'; -import {Injector} from '@angular/core'; +import {AppDialogModule} from '../app-dialog.module'; describe('ToastService', () => { beforeEach(() => { TestBed.configureTestingModule({ - providers: [ - DialogService, - ToastService, - Overlay, - Injector - ] + imports: [ + AppDialogModule + ], + providers: [] }); }); diff --git a/src/app/services/toast.service.ts b/src/app/app-dialog/services/toast.service.ts similarity index 85% rename from src/app/services/toast.service.ts rename to src/app/app-dialog/services/toast.service.ts index 854dc02..22fe959 100644 --- a/src/app/services/toast.service.ts +++ b/src/app/app-dialog/services/toast.service.ts @@ -1,18 +1,16 @@ import {Injectable} from '@angular/core'; -import {Toast} from '../model/toast'; +import {Toast} from '../../model/toast'; import {DialogService} from './dialog.service'; import {ToastComponent} from '../dialogs/toast/toast.component'; -import {DialogRef} from '../model/dialogRef'; +import {DialogRef} from '../../model/dialogRef'; import {interval, Subscription} from 'rxjs'; -import {environment} from '../../environments/environment'; +import {environment} from '../../../environments/environment'; /** * Handler for notifications. Currently only supports one notification at a time. */ -@Injectable({ - providedIn: 'root' -}) +@Injectable() export class ToastService { private toastRef: DialogRef = null; diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 2ae1e70..d2b7bec 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -6,6 +6,7 @@ import {CloudViewComponent} from './components/clouds/cloud-view/cloud-view.comp import {HardwareOverviewComponent} from './components/hardware/hardware-overview/hardware-overview.component'; import {ImagesOverviewComponent} from './components/images/images-overview/images-overview.component'; import {LocationsOverviewComponent} from './components/locations/locations-overview/locations-overview.component'; +import {YamlEditorComponent} from './components/editor/yaml-editor/yaml-editor.component'; const routes: Routes = [ @@ -19,6 +20,8 @@ const routes: Routes = [ {path: 'locations', component: LocationsOverviewComponent}, + {path: 'editor', component: YamlEditorComponent}, + {path: 'clouds', component: CloudOverviewComponent}, {path: '', component: CloudOverviewComponent}, diff --git a/src/app/app-store.module.ts b/src/app/app-store.module.ts deleted file mode 100644 index 13b2a02..0000000 --- a/src/app/app-store.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {NgModule} from '@angular/core'; -import {StoreModule} from '@ngrx/store'; -import {reducers, globalInitialState} from './reducers'; - - -@NgModule({ - imports: [StoreModule.forRoot(reducers, {initialState: globalInitialState})], - exports: [] -}) -export class AppStoreModule { -} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index b9944cb..0fa736a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -3,7 +3,6 @@ import {NgModule} from '@angular/core'; import {AppComponent} from './components/app/app.component'; import {AppRoutingModule} from './app-routing.module'; -import {AppStoreModule} from './app-store.module'; import {ApiModule, Configuration, ConfigurationParameters} from 'cloudiator-rest-api'; import {HttpClientModule} from '@angular/common/http'; import {CloudOverviewComponent} from './components/clouds/cloud-overview/cloud-overview.component'; @@ -11,19 +10,15 @@ import {NewCloudComponent} from './components/clouds/new-cloud/new-cloud.compone import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {CloudViewComponent} from './components/clouds/cloud-view/cloud-view.component'; import {CloudCardComponent} from './components/clouds/cloud-card/cloud-card.component'; -import {DialogService} from './services/dialog.service'; -import {DeleteCloudDialogComponent} from './dialogs/delete-cloud-dialog/delete-cloud-dialog.component'; -import {Overlay, OverlayModule} from '@angular/cdk/overlay'; -import {ConfirmNewCloudDialogComponent} from './dialogs/confirm-new-cloud-dialog/confirm-new-cloud-dialog.component'; import {environment} from '../environments/environment'; -import {CloudDataService} from './services/cloud-data.service'; -import {RuntimeConfigService} from './services/runtime-config.service'; -import {ToastComponent} from './dialogs/toast/toast.component'; -import {ToastService} from './services/toast.service'; import {HardwareOverviewComponent} from './components/hardware/hardware-overview/hardware-overview.component'; import {CdkTableModule} from '@angular/cdk/table'; import {ImagesOverviewComponent} from './components/images/images-overview/images-overview.component'; import { LocationsOverviewComponent } from './components/locations/locations-overview/locations-overview.component'; +import { YamlEditorComponent } from './components/editor/yaml-editor/yaml-editor.component'; +import { YamlGraphComponent } from './components/editor/yaml-graph/yaml-graph.component'; +import {AppDialogModule} from './app-dialog/app-dialog.module'; +import {RootStoreModule} from './root-store'; export function apiConfigFactory(): Configuration { const params: ConfigurationParameters = { @@ -40,36 +35,24 @@ export function apiConfigFactory(): Configuration { NewCloudComponent, CloudViewComponent, CloudCardComponent, - DeleteCloudDialogComponent, - ConfirmNewCloudDialogComponent, - ToastComponent, HardwareOverviewComponent, ImagesOverviewComponent, LocationsOverviewComponent, + YamlEditorComponent, + YamlGraphComponent, ], imports: [ BrowserModule, AppRoutingModule, - AppStoreModule, + RootStoreModule, ApiModule.forRoot(apiConfigFactory), HttpClientModule, FormsModule, ReactiveFormsModule, - OverlayModule, - CdkTableModule - ], - providers: [ - Overlay, - DialogService, - CloudDataService, - RuntimeConfigService, - ToastService - ], - entryComponents: [ - ToastComponent, - DeleteCloudDialogComponent, - ConfirmNewCloudDialogComponent, + CdkTableModule, + AppDialogModule ], + providers: [], bootstrap: [AppComponent] }) export class AppModule { diff --git a/src/app/components/app/app.component.html b/src/app/components/app/app.component.html index e800360..79f7aa8 100644 --- a/src/app/components/app/app.component.html +++ b/src/app/components/app/app.component.html @@ -32,6 +32,11 @@ Locations + + + Editor + +