68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
import initialFilters from 'client/stores/CalculationStore/config/initialFilters';
|
|
import initialOptions from 'client/stores/CalculationStore/config/initialOptions';
|
|
import initialStatuses from 'client/stores/CalculationStore/config/initialStatuses';
|
|
import initialValues from 'client/stores/CalculationStore/config/initialValues';
|
|
import { merge } from 'lodash';
|
|
|
|
const valuesData = {
|
|
values: initialValues,
|
|
statuses: initialStatuses,
|
|
validations: {},
|
|
options: initialOptions,
|
|
filters: initialFilters,
|
|
};
|
|
|
|
const valuesActions = {
|
|
getValue(sourceValueName) {
|
|
return this.values[sourceValueName];
|
|
},
|
|
setValue(sourceValueName, newValue) {
|
|
this.values[sourceValueName] = newValue;
|
|
},
|
|
setValues(values) {
|
|
this.values = values;
|
|
},
|
|
|
|
getStatus(elementName) {
|
|
if (this.stores.calculationProcess.bypass.status) {
|
|
const { target, value } = this.stores.calculationProcess.bypass.status;
|
|
if (target.indexOf(elementName) > -1) {
|
|
return value;
|
|
}
|
|
}
|
|
return this.statuses[elementName];
|
|
},
|
|
setStatus(elementName, status) {
|
|
this.statuses[elementName] = status;
|
|
},
|
|
|
|
getValidation(elementName) {
|
|
return this.validations[elementName];
|
|
},
|
|
setValidation(elementName, validation) {
|
|
this.validations[elementName] = validation;
|
|
},
|
|
|
|
getOptions(elementName) {
|
|
return this.options[elementName];
|
|
},
|
|
setOptions(elementName, options) {
|
|
this.options[elementName] = options;
|
|
},
|
|
applyOptions(options) {
|
|
this.options = merge(this.options, options);
|
|
},
|
|
|
|
getFilter(elementName) {
|
|
return this.filters[elementName];
|
|
},
|
|
setFilter(elementName, filters) {
|
|
this.filters[elementName] = filters;
|
|
},
|
|
// applyFilters(filters) {
|
|
// this.filters = { ...this.filters, ...filters };
|
|
// },
|
|
};
|
|
|
|
export default Object.assign(valuesData, valuesActions);
|