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
48 lines
1.6 KiB
TypeScript
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;
|
|
};
|
|
}
|