9cbd9163e8a1a6001781176c0be725ed4f93cfa7
[ccsdk/features.git] / sdnr / wt / odlux / apps / configurationApp / src / handlers / configurationAppRootHandler.ts
1 /**
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt odlux
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18
19 import { combineActionHandler } from '../../../../framework/src/flux/middleware';
20
21 import { IConnectedNetworkElementsState, connectedNetworkElementsActionHandler } from './connectedNetworkElementsHandler';
22 import { IDeviceDescriptionState, deviceDescriptionHandler } from './deviceDescriptionHandler';
23 import { IViewDescriptionState, viewDescriptionHandler } from './viewDescriptionHandler';
24 import { IValueSelectorState, valueSelectorHandler } from './valueSelectorHandler';
25
26 interface IConfigurationAppStoreState {
27   connectedNetworkElements: IConnectedNetworkElementsState; // used for ne selection
28   deviceDescription: IDeviceDescriptionState;               // contains ui and device descriptions
29   viewDescription: IViewDescriptionState;                   // contains current ui description
30   valueSelector: IValueSelectorState;
31 }
32
33 declare module '../../../../framework/src/store/applicationStore' {
34   interface IApplicationStoreState {
35     configuration: IConfigurationAppStoreState;
36   }
37 }
38
39 const actionHandlers = {
40   connectedNetworkElements: connectedNetworkElementsActionHandler,
41   deviceDescription: deviceDescriptionHandler,
42   viewDescription: viewDescriptionHandler,
43   valueSelector: valueSelectorHandler,
44 };
45
46 export const configurationAppRootHandler = combineActionHandler<IConfigurationAppStoreState>(actionHandlers);
47 export default configurationAppRootHandler;