vchikalkin 32f265fc8d optimize package/ui/elements imports
optimize antd/link imports

ui/elements/text: use antd component

ui/element: optimize input, input-number, switch, checkbox imports

fix Number typename

ui/elements: optimize Radio, Segmented, Select

move type Status to store types

fix TableInsurance builders

packages/ui: remove antd dir

Output/Results: fix elements margin

revert Loading status to elements

packages/ui: remove value from props

remove unnecessary loading prop
2023-05-16 11:31:45 +03:00

48 lines
1.6 KiB
TypeScript

import type { CalculationStatuses, Status } from './types';
import type { Elements as ElementsActions } from '@/Components/Calculation/config/map/actions';
import type { Elements as ElementsValues } from '@/Components/Calculation/config/map/values';
import defaultStatuses from '@/config/default-statuses';
import type RootStore from '@/stores/root';
import { makeAutoObservable } from 'mobx';
export default class StatusStore {
private root: RootStore;
private statuses: CalculationStatuses = defaultStatuses;
private overrided: Partial<CalculationStatuses> = {};
constructor(rootStore: RootStore) {
makeAutoObservable(this);
this.root = rootStore;
}
public hydrate = (initialStatuses: CalculationStatuses) => {
this.statuses = initialStatuses;
};
public getStatus(elementName: ElementsActions | ElementsValues) {
const status = this.overrided[elementName] || this.statuses[elementName];
if (this.root.$process.has('Unlimited') && status === 'Disabled') {
return 'Default';
}
return status;
}
public setStatus = (elementName: ElementsActions | ElementsValues, status: Status) => {
this.statuses[elementName] = status;
};
public resetStatus = (elementName: ElementsActions | ElementsValues) => {
this.statuses[elementName] = defaultStatuses[elementName];
};
public overrideStatus = (elementName: ElementsActions | ElementsValues, status: Status) => {
this.overrided[elementName] = status;
};
public clearOverridedStatus = (elementName: ElementsActions | ElementsValues) => {
this.overrided[elementName] = undefined;
};
}