summaryrefslogtreecommitdiffstats
path: root/cds-ui/client
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2019-01-09 01:16:37 +0000
committerGerrit Code Review <gerrit@onap.org>2019-01-09 01:16:37 +0000
commitdb35bf8fada1634eb45cde49a617f98b98694b60 (patch)
tree9e2ddf13595b45fc0141ce4216749fc993a53502 /cds-ui/client
parent2772941b61cb2435ebdfd9d9b252734bce59ffea (diff)
parent59537f121d269293ca021b133ea453129676ff86 (diff)
Merge "Setting up ngrx store"
Diffstat (limited to 'cds-ui/client')
-rw-r--r--cds-ui/client/src/app/app.module.ts16
-rw-r--r--cds-ui/client/src/app/common/core/core.module.ts9
-rw-r--r--cds-ui/client/src/app/common/core/store/README.md22
-rw-r--r--cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts70
-rw-r--r--cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts56
-rw-r--r--cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts25
-rw-r--r--cds-ui/client/src/app/common/core/store/models/blueprint.model.ts30
-rw-r--r--cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts32
-rw-r--r--cds-ui/client/src/app/common/core/store/models/imports.model.ts24
-rw-r--r--cds-ui/client/src/app/common/core/store/models/metadata.model.ts28
-rw-r--r--cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts31
-rw-r--r--cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts56
-rw-r--r--cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts31
-rw-r--r--cds-ui/client/src/app/common/core/store/state/app.state.ts33
-rw-r--r--cds-ui/client/src/app/common/core/store/state/blueprint.state.ts31
15 files changed, 482 insertions, 12 deletions
diff --git a/cds-ui/client/src/app/app.module.ts b/cds-ui/client/src/app/app.module.ts
index d61731dde..1df9d0756 100644
--- a/cds-ui/client/src/app/app.module.ts
+++ b/cds-ui/client/src/app/app.module.ts
@@ -31,24 +31,15 @@ import { HttpClientModule } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { SharedModule } from './common/shared/shared.module';
-
-
-// import { blueprintReducer } from './common/store/reducers/blueprint.reducer';
-// import { HeaderComponent, AboutComponent, PageNotFoundComponent, HomeComponent } from './common/shared/components/index';
-// import { SharedModule } from './common/shared/shared.module';
+import { CoreModule } from './common/core/core.module';
@NgModule({
declarations: [
- AppComponent,
- // HeaderComponent,
- // AboutComponent,
- // PageNotFoundComponent,
- // HomeComponent
+ AppComponent
],
imports: [
BrowserModule,
CommonModule,
- // StoreModule.forRoot({blueprint: blueprintReducer}),
AppRoutingModule,
ReactiveFormsModule,
BrowserAnimationsModule,
@@ -69,7 +60,8 @@ import { SharedModule } from './common/shared/shared.module';
MatFormFieldModule,
MatStepperModule,
HttpClientModule,
- SharedModule
+ SharedModule,
+ CoreModule
],
providers: [],
bootstrap: [AppComponent]
diff --git a/cds-ui/client/src/app/common/core/core.module.ts b/cds-ui/client/src/app/common/core/core.module.ts
index 9b812a0b3..f72a8a27c 100644
--- a/cds-ui/client/src/app/common/core/core.module.ts
+++ b/cds-ui/client/src/app/common/core/core.module.ts
@@ -21,8 +21,14 @@ limitations under the License.
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
+import { StoreModule, Store } from '@ngrx/store';
+import { EffectsModule } from '@ngrx/effects';
+import { StoreRouterConnectingModule } from '@ngrx/router-store';
import { HttpClientModule } from '@angular/common/http';
+import { appReducers } from './store/reducers/app.reducer';
+import { BlueprintEffects } from './store/effects/blueprint.effects';
+
import { ApiService } from './services/api.service';
// import { BlueprintService } from './services/blueprint.service';
@@ -31,6 +37,9 @@ import { ApiService } from './services/api.service';
],
imports: [
CommonModule,
+ StoreModule.forRoot(appReducers),
+ EffectsModule.forRoot([BlueprintEffects]),
+ StoreRouterConnectingModule.forRoot({stateKey: 'router'}),
HttpClientModule
],
providers : [ ApiService ]
diff --git a/cds-ui/client/src/app/common/core/store/README.md b/cds-ui/client/src/app/common/core/store/README.md
new file mode 100644
index 000000000..c9584c84a
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/README.md
@@ -0,0 +1,22 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+This folder contains the code related to ngrx/store, for application state management. \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts b/cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts
new file mode 100644
index 000000000..6a0ab8065
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts
@@ -0,0 +1,70 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+import { Injectable } from '@angular/core';
+import { Action, Store } from '@ngrx/store';
+import { IBlueprint } from '../models/blueprint.model';
+import { IBlueprintState } from '../models/blueprintState.model';
+
+export const LOAD_BLUEPRINT = 'LOAD_BLUEPRINT';
+export const LOAD_BLUEPRINT_SUCCESS = 'LOAD_BLUEPRINT_SUCCESS';
+export const LOAD_BLUEPRINT_FAILURE = 'LOAD_BLUEPRINT_FAILURE';
+export const UPDATE_BLUEPRINT ='UPDATE_BLUEPRINT';
+export const UPDATE_BLUEPRINT_SUCCESS = 'UPDATE_BLUEPRINT_SUCCESS';
+export const UPDATE_BLUEPRINT_FAILURE = 'UPDATE_BLUEPRINT_FAILURE';
+export const SAVE_BLUEPRINT = 'SAVE_BLUEPRINT';
+export const SAVE_BLUEPRINT_SUCCESS = 'SAVE_BLUEPRINT_SUCCESS';
+export const SAVE_BLUEPRINT_FAILURE = 'SAVE_BLUEPRINT_FAILURE';
+
+export const SET_BLUEPRINT = 'SET Blueprint';
+export const REMOVE_BLUEPRINT = 'Remove Blueprint';
+
+
+export class LoadBlueprint implements Action {
+ readonly type = LOAD_BLUEPRINT;
+ constructor(public startLoadSuccess?: boolean) {}
+}
+
+export class LoadBlueprintSuccess implements Action {
+ readonly type = LOAD_BLUEPRINT_SUCCESS;
+ constructor(public payload: IBlueprint) {}
+}
+
+export class LoadBlueprintFailure implements Action {
+ readonly type = LOAD_BLUEPRINT_FAILURE;
+ constructor(public error: any) {}
+}
+
+// export class SetBlueprint implements Action {
+// readonly type = SET_BLUEPRINT;
+// constructor(public payload: Blueprint) {}
+// }
+
+// export class RemoveBlueprint implements Action {
+// readonly type = REMOVE_BLUEPRINT;
+// constructor(public payload: Blueprint) {}
+// }
+
+export class UpdateBlueprint implements Action {
+ readonly type = UPDATE_BLUEPRINT;
+ constructor(public payload: IBlueprint) {}
+}
+
+export type Actions = LoadBlueprint | LoadBlueprintSuccess | LoadBlueprintFailure; \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts b/cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts
new file mode 100644
index 000000000..e1b1c2fd9
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts
@@ -0,0 +1,56 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { Injectable } from '@angular/core';
+import { Effect, ofType, Actions } from '@ngrx/effects';
+import { Store, select } from '@ngrx/store';
+import { of } from 'rxjs';
+import { switchMap, map, withLatestFrom, catchError } from 'rxjs/operators';
+
+import { IAppState } from '../state/app.state';
+import * as BlueprintActions from '../actions/blueprint.action';
+// import { IBlueprintHttp } from '../models/blueprint-http.model';
+// import { BlueprintService } from '../../services/blueprint.service';
+// import { BlueprintService } from '../../../feature-modules/blueprint/blueprint.service';
+
+@Injectable()
+export class BlueprintEffects {
+
+
+ constructor(
+ // private blueprintService: BlueprintService,
+ private _actions$: Actions,
+ private _store: Store<IAppState>
+ ) {}
+
+ // @Effect()
+ // getBlueprint$ = this._actions$.pipe(
+ // ofType<BlueprintActions.LoadBlueprint>(BlueprintActions.LOAD_BLUEPRINT),
+ // switchMap(() =>
+ // this.blueprintService.loadBlueprint().pipe(
+ // map((blueprintResponse: any) => new BlueprintActions.LoadBlueprintSuccess(blueprintResponse)),
+ // catchError((error : any) => of(new BlueprintActions.LoadBlueprintSuccess(error)))
+ // ),
+ // ,
+ // switchMap((blueprintResponse: any) => of(new BlueprintActions.LoadBlueprintSuccess(blueprintResponse)))
+// ),
+// )
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts b/cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts
new file mode 100644
index 000000000..e0e98d580
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts
@@ -0,0 +1,25 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+import { IBlueprint } from '../models/blueprint.model';
+
+export interface IBlueprintHttp {
+ blueprint: IBlueprint;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/models/blueprint.model.ts b/cds-ui/client/src/app/common/core/store/models/blueprint.model.ts
new file mode 100644
index 000000000..a061a4364
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/models/blueprint.model.ts
@@ -0,0 +1,30 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { IMetaData } from './metadata.model';
+import { IImportModel } from './imports.model';
+
+
+export interface IBlueprint {
+ metadata: IMetaData;
+ fileImports: Array<IImportModel>
+ toplogyTemplates: string;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts b/cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts
new file mode 100644
index 000000000..556b33d19
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts
@@ -0,0 +1,32 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { IMetaData } from './metadata.model';
+import { IImportModel } from './imports.model';
+import { IBlueprint } from './blueprint.model';
+
+
+export interface IBlueprintState {
+ blueprint: IBlueprint,
+ isLoadSuccess: boolean;
+ isUpdateSuccess: boolean;
+ isSaveSuccess: boolean;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/models/imports.model.ts b/cds-ui/client/src/app/common/core/store/models/imports.model.ts
new file mode 100644
index 000000000..9510ed3cf
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/models/imports.model.ts
@@ -0,0 +1,24 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+export interface IImportModel {
+ file: string;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/models/metadata.model.ts b/cds-ui/client/src/app/common/core/store/models/metadata.model.ts
new file mode 100644
index 000000000..6ee427504
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/models/metadata.model.ts
@@ -0,0 +1,28 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+export interface IMetaData {
+ template_author: string;
+ author_email: String;
+ user_groups: string;
+ template_name: string;
+ template_version: string;
+ template_tags: string;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts b/cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts
new file mode 100644
index 000000000..003886068
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts
@@ -0,0 +1,31 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { ActionReducerMap } from '@ngrx/store';
+import { routerReducer } from '@ngrx/router-store';
+
+import { IAppState } from '../state/app.state';
+import { blueprintReducer } from '../reducers/blueprint.reducer';
+
+export const appReducers: ActionReducerMap<IAppState, any> = {
+ router: routerReducer,
+ blueprint: blueprintReducer
+}; \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts b/cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts
new file mode 100644
index 000000000..edcf1c38a
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts
@@ -0,0 +1,56 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { Action } from '@ngrx/store';
+import { IBlueprint } from '../models/blueprint.model';
+import { IBlueprintState } from '../models/blueprintState.model';
+import { initialBlueprintState } from '../state/blueprint.state';
+import * as BlueprintActions from '../actions/blueprint.action';
+
+// const initialState: BlueprintState = {
+// blueprint: {
+// metadata: {
+// template_author: '',
+// author_email: '',
+// user_groups: '',
+// template_name: '',
+// template_version: '',
+// template_tags: ''
+// },
+// fileImports: [{file:''}],
+// toplogyTemplates: 'temp'
+// },
+// isLoadSuccess: false,
+// isUpdateSuccess: false,
+// isSaveSuccess: false
+// }
+
+
+export function blueprintReducer(state: IBlueprintState = initialBlueprintState, action: BlueprintActions.Actions) : IBlueprintState {
+ switch(action.type) {
+ case BlueprintActions.LOAD_BLUEPRINT_SUCCESS:
+ return {...state,
+ blueprint: action.payload
+ }
+ default:
+ return state;
+ }
+}
diff --git a/cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts b/cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts
new file mode 100644
index 000000000..d23221cce
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts
@@ -0,0 +1,31 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+import { createSelector } from '@ngrx/store';
+
+import { IAppState } from '../state/app.state';
+import { IBlueprintState } from '../models/blueprintState.model';
+
+const selectBlueprintFromAppState = (state: IAppState) => state.blueprint;
+
+export const selectBlueprint = createSelector(
+ selectBlueprintFromAppState,
+ (state: IBlueprintState) => state.blueprint
+); \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/state/app.state.ts b/cds-ui/client/src/app/common/core/store/state/app.state.ts
new file mode 100644
index 000000000..66e19c9be
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/state/app.state.ts
@@ -0,0 +1,33 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { RouterReducerState } from '@ngrx/router-store';
+import { IBlueprintState } from '../models/blueprintState.model';
+import { initialBlueprintState } from './blueprint.state';
+
+export interface IAppState {
+ router? : RouterReducerState,
+ blueprint: IBlueprintState
+}
+
+export const initialAppState: IAppState = {
+ blueprint: initialBlueprintState
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/core/store/state/blueprint.state.ts b/cds-ui/client/src/app/common/core/store/state/blueprint.state.ts
new file mode 100644
index 000000000..913072665
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/store/state/blueprint.state.ts
@@ -0,0 +1,31 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { IBlueprintState } from '../models/blueprintState.model';
+import { IBlueprint } from '../models/blueprint.model';
+
+
+export const initialBlueprintState : IBlueprintState = {
+ blueprint : {} as IBlueprint,
+ isLoadSuccess: false,
+ isUpdateSuccess: false,
+ isSaveSuccess: false,
+} \ No newline at end of file