@blockly/block-plus-minus
Version:
A group of blocks that replace the built-in mutator UI with a +/- based UI.
28 lines (25 loc) • 836 B
JavaScript
/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as Blockly from 'blockly/core';
/**
* Returns the extra state of the given block (either as XML or a JSO, depending
* on the block's definition).
* @param {!Blockly.BlockSvg} block The block to get the extra state of.
* @returns {string} A stringified version of the extra state of the given
* block.
*/
export function getExtraBlockState(block) {
// TODO: This is a dupe of the BlockChange.getExtraBlockState code, do we
// want to make that public?
if (block.saveExtraState) {
const state = block.saveExtraState();
return state ? JSON.stringify(state) : '';
} else if (block.mutationToDom) {
const state = block.mutationToDom();
return state ? Blockly.Xml.domToText(state) : '';
}
return '';
}