UNPKG

nitropage

Version:

A free and open source, extensible visual page builder based on SolidStart.

47 lines (40 loc) 1.38 kB
import { BlueprintDefaults, Config, Element, Preset, State } from "../../types"; export let lookupRteToolbar = false; export const setLookupRteToolbar = function (value: boolean) { lookupRteToolbar = value; }; export const getElementData = function ( element: Element, state: State, declaration: Config, property: string, preset?: Preset, defaults?: BlueprintDefaults[0], ) { const blueprint = element.blueprintId ? declaration.blueprints[element.blueprintId] : undefined; const getter = blueprint?.data[property]?.getter; if (element.data?.[property]?.override) { const value = element.data[property].value; return getter ? getter(value, state) : value; } if (element.presetId) { const p = preset ?? state.presets[element.presetId]; if (p && p.data?.[property]?.override) { const value = p.data[property].value; return getter ? getter(value, state) : value; } } const type = element.blueprintId; if (!type) { return; } const projectSettings = defaults ?? state.blueprintDefaults.project[type]; // console.log('global', type, property, element.id, globalSettings?.[property]?.value) const value = projectSettings?.[property]?.value; const defaultValue = blueprint?.data[property]?.defaultValue; return getter ? getter(value != null ? value : defaultValue?.(), state) : value; };