2021-10-20 02:20:45 +00:00
|
|
|
import { resolveReferences } from '@/_helpers/utils';
|
|
|
|
|
|
2022-01-14 08:27:31 +00:00
|
|
|
export const resolveProperties = (component, currentState, defaultValue, customResolvables) => {
|
|
|
|
|
if (currentState) {
|
2021-10-20 02:20:45 +00:00
|
|
|
return Object.entries(component.definition.properties).reduce(
|
|
|
|
|
(properties, entry) => ({
|
|
|
|
|
...properties,
|
2022-06-03 12:17:43 +00:00
|
|
|
...{
|
|
|
|
|
[entry[0]]: entry[1]?.skipResolve
|
|
|
|
|
? entry[1].value
|
|
|
|
|
: resolveReferences(entry[1].value, currentState, defaultValue, customResolvables),
|
|
|
|
|
},
|
2021-10-20 02:20:45 +00:00
|
|
|
}),
|
|
|
|
|
{}
|
|
|
|
|
);
|
|
|
|
|
} else return {};
|
|
|
|
|
};
|
|
|
|
|
|
2022-01-14 08:27:31 +00:00
|
|
|
export const resolveStyles = (component, currentState, defaultValue, customResolvables) => {
|
|
|
|
|
if (currentState) {
|
2021-10-20 02:20:45 +00:00
|
|
|
const styles = component.definition.styles;
|
|
|
|
|
return Object.entries(styles).reduce((resolvedStyles, entry) => {
|
|
|
|
|
const key = entry[0];
|
2022-06-03 12:17:43 +00:00
|
|
|
const value = entry[1]?.skipResolve
|
|
|
|
|
? entry[1].value
|
|
|
|
|
: resolveReferences(entry[1].value, currentState, defaultValue, customResolvables);
|
2021-10-20 02:20:45 +00:00
|
|
|
return {
|
|
|
|
|
...resolvedStyles,
|
|
|
|
|
...{ [key]: value },
|
|
|
|
|
};
|
|
|
|
|
}, {});
|
|
|
|
|
} else {
|
|
|
|
|
return {};
|
|
|
|
|
}
|
|
|
|
|
};
|
2022-06-02 06:21:52 +00:00
|
|
|
|
|
|
|
|
export const resolveGeneralProperties = (component, currentState, defaultValue, customResolvables) => {
|
|
|
|
|
if (currentState) {
|
|
|
|
|
const generalProperties = component.definition?.general ?? {};
|
|
|
|
|
return Object.entries(generalProperties).reduce((resolvedGeneral, entry) => {
|
|
|
|
|
const key = entry[0];
|
2022-06-03 12:17:43 +00:00
|
|
|
const value = entry[1]?.skipResolve
|
|
|
|
|
? entry[1].value
|
|
|
|
|
: resolveReferences(entry[1].value, currentState, defaultValue, customResolvables);
|
2022-06-02 06:21:52 +00:00
|
|
|
return {
|
|
|
|
|
...resolvedGeneral,
|
|
|
|
|
...{ [key]: value },
|
|
|
|
|
};
|
|
|
|
|
}, {});
|
|
|
|
|
} else {
|
|
|
|
|
return {};
|
|
|
|
|
}
|
|
|
|
|
};
|