c37c9dbc3b063d73b4db866644be9e4ce0dac6dc
[sdc/sdc-workflow-designer.git] /
1 /*
2 * Copyright © 2018 European Support Limited
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 import { createSelector } from 'reselect';
18
19 import { INPUTS } from 'features/version/inputOutput/inputOutputConstants';
20
21 export const getInputOutput = state => state.currentVersion.inputOutput;
22 export const getInputs = createSelector(getInputOutput, data => data.inputs);
23 export const getOutputs = createSelector(getInputOutput, data => data.outputs);
24 export const getCurrent = createSelector(
25     getInputOutput,
26     inputOutput => inputOutput.current
27 );
28
29 export const getIsShowInputs = createSelector(
30     getCurrent,
31     current => current === INPUTS
32 );
33
34 export const getSearch = createSelector(
35     getInputOutput,
36     inputOutput => inputOutput.search
37 );
38
39 export const getDataRows = createSelector(
40     [getInputOutput, getCurrent],
41     (inputOutput, current) => {
42         if (inputOutput.search) {
43             return inputOutput[current].filter(dataRow =>
44                 dataRow.name
45                     .toLowerCase()
46                     .includes(inputOutput.search.toLowerCase())
47             );
48         }
49
50         return inputOutput[current];
51     }
52 );
53
54 export const getTypes = createSelector(
55     getInputOutput,
56     inputOutput => inputOutput.types
57 );
58
59 export const getError = createSelector(
60     [getInputOutput, getCurrent],
61     (inputOutput, current) => inputOutput.error[current]
62 );