UNPKG

@npio/internals

Version:

A free visual website editor, powered with your own SolidJS components.

56 lines (48 loc) 1.69 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 pageSettings = state.blueprintDefaults.page[type]; if (pageSettings && pageSettings[property]?.override) { // console.log('page', type, property, element.id, pageSettings[property].value) const value = pageSettings[property].value; return getter ? getter(value, state) : value; } */ 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; };