For testing

For testing, you can replicate messages from the parent platform

// WARNING!!
// These are examples for testing, parent platform may use a
// different format for message passing in the future without notice.

addEventListener('message', (event) => {
    if (typeof event.data !== 'string') return;
    if (!event.data.startsWith('layer:')) return;
    console.log(event.data);
});

// pass in a set of JSON stringified parameters,
// field names and values should be consistent with your parameters

postMessage('layer:parameters:{"number_parameter_id":"1"}', '*');
postMessage('layer:paramchange:{"id":"number_parameter_id","value":"2"}', '*');

// trigger preview recording

postMessage('layer:preview', '*');

// setting '?controlled=true' on the URL will activate `$layer.controlled`