Something went wrong. Try again.
[PRE-ALPHA] an open source web-based 2D/3D graphing calculator cartesium.org
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import type { GraphDocument2d } from './types';import { copyExpressionPresentation } from '#lib/document/expression-presentation.js';
/** * Build the plain-data transfer object expected by Wasm and the render worker. * Svelte state can contain nested proxies, which the structured-clone algorithm * used by Worker.postMessage cannot clone. */export function toTransferableDocument(document: GraphDocument2d): GraphDocument2d { const copy: GraphDocument2d = { viewport: { ...document.viewport }, expressions: document.expressions.map((expression) => { const result: GraphDocument2d['expressions'][number] = { id: expression.id, input_mode: expression.input_mode, source: expression.source, ...copyExpressionPresentation(expression), enabled: expression.enabled, color: expression.color };
if (expression.slider !== undefined) { const slider: NonNullable<GraphDocument2d['expressions'][number]['slider']> = {};
if (expression.slider.min !== undefined) { slider.min = expression.slider.min; }
if (expression.slider.max !== undefined) { slider.max = expression.slider.max; }
if (expression.slider.step !== undefined) { slider.step = expression.slider.step; }
result.slider = slider; }
return result; }) };
if (document.name !== undefined) { copy.name = document.name; }
if (document.complex_mode !== undefined) { copy.complex_mode = document.complex_mode; }
if (document.grid_cell_size !== undefined) { copy.grid_cell_size = document.grid_cell_size; }
if (document.variable_overrides !== undefined) { copy.variable_overrides = { ...document.variable_overrides }; }
return copy;}