From 545ae4be005ef7f3b6454e3ecf768e4be711e8bd Mon Sep 17 00:00:00 2001
From: Xiao Gui <xgui3783@gmail.com>
Date: Mon, 2 Dec 2019 11:56:31 +0100
Subject: [PATCH] bugfix: aot-build named function

---
 src/services/state/dataStore.store.ts       | 11 ++++++++++-
 src/services/state/ngViewerState.store.ts   | 11 ++++++++++-
 src/services/state/pluginState.store.ts     | 11 ++++++++++-
 src/services/state/uiState.store.ts         | 11 ++++++++++-
 src/services/state/userConfigState.store.ts | 12 ++++++++++--
 src/services/state/viewerConfig.store.ts    | 11 ++++++++++-
 src/services/state/viewerState.store.ts     | 11 ++++++++++-
 7 files changed, 70 insertions(+), 8 deletions(-)

diff --git a/src/services/state/dataStore.store.ts b/src/services/state/dataStore.store.ts
index 5ebec4c83..44be3e2f2 100644
--- a/src/services/state/dataStore.store.ts
+++ b/src/services/state/dataStore.store.ts
@@ -42,7 +42,16 @@ export const getStateStore = ({ state: state = defaultState } = {}) => (prevStat
   }
 }
 
-export const stateStore = getStateStore()
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore() {
+  return getStateStore()
+}
 
 export interface ActionInterface extends Action{
   favDataEntries: DataEntry[]
diff --git a/src/services/state/ngViewerState.store.ts b/src/services/state/ngViewerState.store.ts
index 507c6cdc5..2aefbdd5f 100644
--- a/src/services/state/ngViewerState.store.ts
+++ b/src/services/state/ngViewerState.store.ts
@@ -141,7 +141,16 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState:State
   }
 }
 
-export const stateStore = getStateStore()
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore(){
+  return getStateStore()
+}
 
 @Injectable({
   providedIn: 'root'
diff --git a/src/services/state/pluginState.store.ts b/src/services/state/pluginState.store.ts
index 3170e2284..70de862ce 100644
--- a/src/services/state/pluginState.store.ts
+++ b/src/services/state/pluginState.store.ts
@@ -47,4 +47,13 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState:State
   }
 }
 
-export const stateStore = getStateStore()
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore() {
+  return getStateStore()
+}
diff --git a/src/services/state/uiState.store.ts b/src/services/state/uiState.store.ts
index e0a0b4202..cfb0dd3e7 100644
--- a/src/services/state/uiState.store.ts
+++ b/src/services/state/uiState.store.ts
@@ -107,7 +107,16 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState:State
   }
 }
 
-export const stateStore = getStateStore()
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore() {
+  return getStateStore()
+}
 
 export interface StateInterface{
   mouseOverSegments: {
diff --git a/src/services/state/userConfigState.store.ts b/src/services/state/userConfigState.store.ts
index d93048869..9efc4417e 100644
--- a/src/services/state/userConfigState.store.ts
+++ b/src/services/state/userConfigState.store.ts
@@ -71,8 +71,16 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState: Stat
   }
 }
 
-export const stateStore = getStateStore()
-
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore() {
+  return getStateStore()
+}
 
 @Injectable({
   providedIn: 'root'
diff --git a/src/services/state/viewerConfig.store.ts b/src/services/state/viewerConfig.store.ts
index 7a3899744..b492042fc 100644
--- a/src/services/state/viewerConfig.store.ts
+++ b/src/services/state/viewerConfig.store.ts
@@ -90,4 +90,13 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState:State
   }
 }
 
-export const stateStore = getStateStore()
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore(){
+  return getStateStore()
+}
diff --git a/src/services/state/viewerState.store.ts b/src/services/state/viewerState.store.ts
index b9be474d9..35185f591 100644
--- a/src/services/state/viewerState.store.ts
+++ b/src/services/state/viewerState.store.ts
@@ -181,7 +181,16 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState:Parti
   }
 }
 
-export const stateStore = getStateStore()
+// must export a named function for aot compilation
+// see https://github.com/angular/angular/issues/15587
+// https://github.com/amcdnl/ngrx-actions/issues/23 
+// or just google for:
+//
+// angular function expressions are not supported in decorators
+
+export function stateStore() {
+  return getStateStore()
+}
 
 export const LOAD_DEDICATED_LAYER = 'LOAD_DEDICATED_LAYER'
 export const UNLOAD_DEDICATED_LAYER = 'UNLOAD_DEDICATED_LAYER'
-- 
GitLab