Setting up ngrx store 59/75459/1
authorArundathi Patil <arundpil@in.ibm.com>
Tue, 8 Jan 2019 13:25:05 +0000 (18:55 +0530)
committerIBM602-PC0F1E3C\Arundathi <arundpil@in.ibm.com>
Tue, 8 Jan 2019 13:25:25 +0000 (18:55 +0530)
Registred application state reducer to app module

Issue-ID: CCSDK-816
Change-Id: I0e108456d674f070bc8c4002938d929ccce8fbe3
Signed-off-by: Arundathi Patil <arundpil@in.ibm.com>
15 files changed:
cds-ui/client/src/app/app.module.ts
cds-ui/client/src/app/common/core/core.module.ts
cds-ui/client/src/app/common/core/store/README.md [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/models/blueprint.model.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/models/imports.model.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/models/metadata.model.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/state/app.state.ts [new file with mode: 0644]
cds-ui/client/src/app/common/core/store/state/blueprint.state.ts [new file with mode: 0644]

index d61731d..1df9d07 100644 (file)
@@ -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]
index 9b812a0..f72a8a2 100644 (file)
@@ -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 (file)
index 0000000..c9584c8
--- /dev/null
@@ -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 (file)
index 0000000..6a0ab80
--- /dev/null
@@ -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 (file)
index 0000000..e1b1c2f
--- /dev/null
@@ -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 (file)
index 0000000..e0e98d5
--- /dev/null
@@ -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 (file)
index 0000000..a061a43
--- /dev/null
@@ -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 (file)
index 0000000..556b33d
--- /dev/null
@@ -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 (file)
index 0000000..9510ed3
--- /dev/null
@@ -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 (file)
index 0000000..6ee4275
--- /dev/null
@@ -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 (file)
index 0000000..0038860
--- /dev/null
@@ -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 (file)
index 0000000..edcf1c3
--- /dev/null
@@ -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 (file)
index 0000000..d23221c
--- /dev/null
@@ -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 (file)
index 0000000..66e19c9
--- /dev/null
@@ -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 (file)
index 0000000..9130726
--- /dev/null
@@ -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