UNPKG

@webwriter/block-based-code

Version:

Write block-based code (e.g. Scratch) and run it.

443 lines (442 loc) 4.52 MB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name); var __typeError = (msg2) => { throw TypeError(msg2); }; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __decoratorStart = (base2) => [, , , __create(base2?.[__knownSymbol("metadata")] ?? null)]; var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn; var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) }); var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]); var __runInitializers = (array, flags, self2, value) => { for (var i11 = 0, fns = array[flags >> 1], n10 = fns && fns.length; i11 < n10; i11++) flags & 1 ? fns[i11].call(self2) : value = fns[i11].call(self2, value); return value; }; var __decorateElement = (array, flags, name, decorators, target, extra) => { var fn, it, done, ctx, access, k4 = flags & 7, s7 = !!(flags & 8), p6 = !!(flags & 16); var j4 = k4 > 3 ? array.length + 1 : k4 ? s7 ? 1 : 2 : 0, key = __decoratorStrings[k4 + 5]; var initializers = k4 > 3 && (array[j4 - 1] = []), extraInitializers = array[j4] || (array[j4] = []); var desc = k4 && (!p6 && !s7 && (target = target.prototype), k4 < 5 && (k4 > 3 || !p6) && __getOwnPropDesc(k4 < 4 ? target : { get [name]() { return __privateGet(this, extra); }, set [name](x4) { return __privateSet(this, extra, x4); } }, name)); k4 ? p6 && k4 < 4 && __name(extra, (k4 > 2 ? "set " : k4 > 1 ? "get " : "") + name) : __name(target, name); for (var i11 = decorators.length - 1; i11 >= 0; i11--) { ctx = __decoratorContext(k4, name, done = {}, array[3], extraInitializers); if (k4) { ctx.static = s7, ctx.private = p6, access = ctx.access = { has: p6 ? (x4) => __privateIn(target, x4) : (x4) => name in x4 }; if (k4 ^ 3) access.get = p6 ? (x4) => (k4 ^ 1 ? __privateGet : __privateMethod)(x4, target, k4 ^ 4 ? extra : desc.get) : (x4) => x4[name]; if (k4 > 2) access.set = p6 ? (x4, y5) => __privateSet(x4, target, y5, k4 ^ 4 ? extra : desc.set) : (x4, y5) => x4[name] = y5; } it = (0, decorators[i11])(k4 ? k4 < 4 ? p6 ? extra : desc[key] : k4 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; if (k4 ^ 4 || it === void 0) __expectFn(it) && (k4 > 4 ? initializers.unshift(it) : k4 ? p6 ? extra = it : desc[key] = it : target = it); else if (typeof it !== "object" || it === null) __typeError("Object expected"); else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn); } return k4 || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p6 ? k4 ^ 4 ? extra : desc : target; }; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); var __accessCheck = (obj, member, msg2) => member.has(obj) || __typeError("Cannot " + msg2); var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value); var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); // node_modules/blockly/blockly_compressed.js var require_blockly_compressed = __commonJS({ "node_modules/blockly/blockly_compressed.js"(exports, module) { (function(root, factory) { if (typeof define === "function" && define.amd) { define([], factory); } else if (typeof exports === "object") { module.exports = factory(); } else { root.Blockly = factory(); } })(exports, function() { var $5 = {}; var register$$module$build$src$core$registry, validate$$module$build$src$core$registry, unregister$$module$build$src$core$registry, getItem$$module$build$src$core$registry, hasItem$$module$build$src$core$registry, getClass$$module$build$src$core$registry, getObject$$module$build$src$core$registry, getAllItems$$module$build$src$core$registry, getClassFromOptions$$module$build$src$core$registry, warn$$module$build$src$core$utils$deprecation, getNextUniqueId$$module$build$src$core$utils$idgenerator, genUid$$module$build$src$core$utils$idgenerator, isBlockCreate$$module$build$src$core$events$predicates, isBlockDelete$$module$build$src$core$events$predicates, isBlockChange$$module$build$src$core$events$predicates, isBlockFieldIntermediateChange$$module$build$src$core$events$predicates, isBlockMove$$module$build$src$core$events$predicates, isVarCreate$$module$build$src$core$events$predicates, isVarDelete$$module$build$src$core$events$predicates, isVarRename$$module$build$src$core$events$predicates, isBlockDrag$$module$build$src$core$events$predicates, isSelected$$module$build$src$core$events$predicates, isClick$$module$build$src$core$events$predicates, isMarkerMove$$module$build$src$core$events$predicates, isBubbleOpen$$module$build$src$core$events$predicates, isTrashcanOpen$$module$build$src$core$events$predicates, isToolboxItemSelect$$module$build$src$core$events$predicates, isThemeChange$$module$build$src$core$events$predicates, isViewportChange$$module$build$src$core$events$predicates, isCommentCreate$$module$build$src$core$events$predicates, isCommentDelete$$module$build$src$core$events$predicates, isCommentChange$$module$build$src$core$events$predicates, isCommentMove$$module$build$src$core$events$predicates, isCommentResize$$module$build$src$core$events$predicates, isCommentDrag$$module$build$src$core$events$predicates, isCommentCollapse$$module$build$src$core$events$predicates, isFinishedLoading$$module$build$src$core$events$predicates, getRecordUndo$$module$build$src$core$events$utils, fire$$module$build$src$core$events$utils, fireInternal$$module$build$src$core$events$utils, fireNow$$module$build$src$core$events$utils, enqueueEvent$$module$build$src$core$events$utils, filter$$module$build$src$core$events$utils, clearPendingUndo$$module$build$src$core$events$utils, isEnabled$$module$build$src$core$events$utils, setGroupInternal$$module$build$src$core$events$utils, getDescendantIds$$module$build$src$core$events$utils, fromJson$$module$build$src$core$events$utils, get$$module$build$src$core$events$utils, disableOrphans$$module$build$src$core$events$utils, getWorkspaceById$$module$build$src$core$common, getAllWorkspaces$$module$build$src$core$common, registerWorkspace$$module$build$src$core$common, unregisterWorkpace$$module$build$src$core$common, getMainWorkspace$$module$build$src$core$common, setMainWorkspace$$module$build$src$core$common, getSelected$$module$build$src$core$common, getParentContainer$$module$build$src$core$common, setParentContainer$$module$build$src$core$common, svgResize$$module$build$src$core$common, getBlockTypeCounts$$module$build$src$core$common, jsonInitFactory$$module$build$src$core$common, defineBlocksWithJsonArray$$module$build$src$core$common, defineBlocksWithJsonArrayInternal$$module$build$src$core$common, longStart$$module$build$src$core$touch, longStop$$module$build$src$core$touch, clearTouchIdentifier$$module$build$src$core$touch, shouldHandleEvent$$module$build$src$core$touch, getTouchIdentifierFromEvent$$module$build$src$core$touch, checkTouchIdentifier$$module$build$src$core$touch, conditionalBind$$module$build$src$core$browser_events, bind$$module$build$src$core$browser_events, unbind$$module$build$src$core$browser_events, isTargetInput$$module$build$src$core$browser_events, isRightButton$$module$build$src$core$browser_events, mouseToSvg$$module$build$src$core$browser_events, getScrollDeltaPixels$$module$build$src$core$browser_events, removeElem$$module$build$src$core$utils$array, register$$module$build$src$core$css, inject$$module$build$src$core$css, createSvgElement$$module$build$src$core$utils$dom, addClass$$module$build$src$core$utils$dom, removeClasses$$module$build$src$core$utils$dom, removeClass$$module$build$src$core$utils$dom, hasClass$$module$build$src$core$utils$dom, removeNode$$module$build$src$core$utils$dom, insertAfter$$module$build$src$core$utils$dom, setCssTransform$$module$build$src$core$utils$dom, startTextWidthCache$$module$build$src$core$utils$dom, stopTextWidthCache$$module$build$src$core$utils$dom, getTextWidth$$module$build$src$core$utils$dom, getFastTextWidth$$module$build$src$core$utils$dom, getFastTextWidthWithSizeString$$module$build$src$core$utils$dom, measureFontMetrics$$module$build$src$core$utils$dom, getSize$$module$build$src$core$utils$style, getSizeInternal$$module$build$src$core$utils$style, getSizeWithDisplay$$module$build$src$core$utils$style, getComputedStyle$$module$build$src$core$utils$style, getPageOffset$$module$build$src$core$utils$style, getViewportPageOffset$$module$build$src$core$utils$style, getBorderBox$$module$build$src$core$utils$style, scrollIntoContainerView$$module$build$src$core$utils$style, getContainerOffsetToScrollInto$$module$build$src$core$utils$style, getRelativeXY$$module$build$src$core$utils$svg_math, getInjectionDivXY$$module$build$src$core$utils$svg_math, getViewportBBox$$module$build$src$core$utils$svg_math, getDocumentScroll$$module$build$src$core$utils$svg_math, screenToWsCoordinates$$module$build$src$core$utils$svg_math, wsToScreenCoordinates$$module$build$src$core$utils$svg_math, injectDependencies$$module$build$src$core$utils$xml, domToText$$module$build$src$core$utils$xml, sanitizeText$$module$build$src$core$utils$xml, convertToolboxDefToJson$$module$build$src$core$utils$toolbox, validateToolbox$$module$build$src$core$utils$toolbox, convertFlyoutDefToJsonArray$$module$build$src$core$utils$toolbox, hasCategories$$module$build$src$core$utils$toolbox, hasCategoriesInternal$$module$build$src$core$utils$toolbox, isCategoryCollapsible$$module$build$src$core$utils$toolbox, convertToToolboxJson$$module$build$src$core$utils$toolbox, xmlToJsonArray$$module$build$src$core$utils$toolbox, addAttributes$$module$build$src$core$utils$toolbox, parseToolboxTree$$module$build$src$core$utils$toolbox, getStartPositionRect$$module$build$src$core$positionable_helpers, getCornerOppositeToolbox$$module$build$src$core$positionable_helpers, bumpPositionRect$$module$build$src$core$positionable_helpers, register$$module$build$src$core$serialization$registry, unregister$$module$build$src$core$serialization$registry, save$$module$build$src$core$serialization$workspace_comments, append$$module$build$src$core$serialization$workspace_comments, register$$module$build$src$core$clipboard$registry, unregister$$module$build$src$core$clipboard$registry, moveCommentToNotConflict$$module$build$src$core$clipboard$workspace_comment_paster, commentOverlapsOtherExactly$$module$build$src$core$clipboard$workspace_comment_paster, setRole$$module$build$src$core$utils$aria, setState$$module$build$src$core$utils$aria, isSerializable$$module$build$src$core$interfaces$i_serializable, queueRender$$module$build$src$core$render_management, finishQueuedRenders$$module$build$src$core$render_management, triggerQueuedRenders$$module$build$src$core$render_management, alwaysImmediatelyRender$$module$build$src$core$render_management, queueBlock$$module$build$src$core$render_management, doRenders$$module$build$src$core$render_management, dequeueBlock$$module$build$src$core$render_management, shouldRenderRootBlock$$module$build$src$core$render_management, renderBlock$$module$build$src$core$render_management, alert$$module$build$src$core$dialog, setAlert$$module$build$src$core$dialog, confirm$$module$build$src$core$dialog, confirmInternal$$module$build$src$core$dialog, setConfirm$$module$build$src$core$dialog, prompt$$module$build$src$core$dialog, setPrompt$$module$build$src$core$dialog, isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks, isLegacyProcedureCallBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks, isVariableBackedParameterModel$$module$build$src$core$interfaces$i_variable_backed_parameter_model, flyoutCategory$$module$build$src$core$variables, flyoutCategoryBlocks$$module$build$src$core$variables, generateUniqueName$$module$build$src$core$variables, generateUniqueNameInternal$$module$build$src$core$variables, generateUniqueNameFromOptions$$module$build$src$core$variables, createVariableButtonHandler$$module$build$src$core$variables, promptName$$module$build$src$core$variables, nameUsedWithOtherType$$module$build$src$core$variables, nameUsedWithAnyType$$module$build$src$core$variables, nameUsedWithConflictingParam$$module$build$src$core$variables, checkForConflictingParamWithProcedureModels$$module$build$src$core$variables, checkForConflictingParamWithLegacyProcedures$$module$build$src$core$variables, generateVariableFieldDom$$module$build$src$core$variables, createVariable$$module$build$src$core$variables, getAddedVariables$$module$build$src$core$variables, save$$module$build$src$core$serialization$blocks, saveAttributes$$module$build$src$core$serialization$blocks, saveCoords$$module$build$src$core$serialization$blocks, saveExtraState$$module$build$src$core$serialization$blocks, saveIcons$$module$build$src$core$serialization$blocks, saveFields$$module$build$src$core$serialization$blocks, saveInputBlocks$$module$build$src$core$serialization$blocks, saveNextBlocks$$module$build$src$core$serialization$blocks, saveConnection$$module$build$src$core$serialization$blocks, append$$module$build$src$core$serialization$blocks, appendInternal$$module$build$src$core$serialization$blocks, appendPrivate$$module$build$src$core$serialization$blocks, checkNewVariables$$module$build$src$core$serialization$blocks, loadCoords$$module$build$src$core$serialization$blocks, loadAttributes$$module$build$src$core$serialization$blocks, loadExtraState$$module$build$src$core$serialization$blocks, tryToConnectParent$$module$build$src$core$serialization$blocks, loadIcons$$module$build$src$core$serialization$blocks, loadFields$$module$build$src$core$serialization$blocks, loadInputBlocks$$module$build$src$core$serialization$blocks, loadNextBlocks$$module$build$src$core$serialization$blocks, loadConnection$$module$build$src$core$serialization$blocks, initBlock$$module$build$src$core$serialization$blocks, hasBubble$$module$build$src$core$interfaces$i_has_bubble, toRadians$$module$build$src$core$utils$math, toDegrees$$module$build$src$core$utils$math, clamp$$module$build$src$core$utils$math, createDom$$module$build$src$core$dropdowndiv, setBoundsElement$$module$build$src$core$dropdowndiv, getOwner$$module$build$src$core$dropdowndiv, getContentDiv$$module$build$src$core$dropdowndiv, clearContent$$module$build$src$core$dropdowndiv, setColour$$module$build$src$core$dropdowndiv, showPositionedByBlock$$module$build$src$core$dropdowndiv, showPositionedByField$$module$build$src$core$dropdowndiv, getScaledBboxOfBlock$$module$build$src$core$dropdowndiv, getScaledBboxOfField$$module$build$src$core$dropdowndiv, showPositionedByRect$$module$build$src$core$dropdowndiv, show$$module$build$src$core$dropdowndiv, getPositionBelowMetrics$$module$build$src$core$dropdowndiv, getPositionAboveMetrics$$module$build$src$core$dropdowndiv, getPositionTopOfPageMetrics$$module$build$src$core$dropdowndiv, getPositionX$$module$build$src$core$dropdowndiv, isVisible$$module$build$src$core$dropdowndiv, hideIfOwner$$module$build$src$core$dropdowndiv, hide$$module$build$src$core$dropdowndiv, hideWithoutAnimation$$module$build$src$core$dropdowndiv, positionInternal$$module$build$src$core$dropdowndiv, repositionForWindowResize$$module$build$src$core$dropdowndiv, shortestStringLength$$module$build$src$core$utils$string, commonWordPrefix$$module$build$src$core$utils$string, commonWordSuffix$$module$build$src$core$utils$string, wrapLine$$module$build$src$core$utils$string, wrapScore$$module$build$src$core$utils$string, wrapMutate$$module$build$src$core$utils$string, wrapToText$$module$build$src$core$utils$string, setCustomTooltip$$module$build$src$core$tooltip, getCustomTooltip$$module$build$src$core$tooltip, isVisible$$module$build$src$core$tooltip, getDiv$$module$build$src$core$tooltip, getTooltipOfObject$$module$build$src$core$tooltip, getTargetObject$$module$build$src$core$tooltip, createDom$$module$build$src$core$tooltip, bindMouseEvents$$module$build$src$core$tooltip, unbindMouseEvents$$module$build$src$core$tooltip, onMouseOver$$module$build$src$core$tooltip, onMouseOut$$module$build$src$core$tooltip, onMouseMove$$module$build$src$core$tooltip, dispose$$module$build$src$core$tooltip, hide$$module$build$src$core$tooltip, block$$module$build$src$core$tooltip, unblock$$module$build$src$core$tooltip, renderContent$$module$build$src$core$tooltip, renderDefaultContent$$module$build$src$core$tooltip, getPosition$$module$build$src$core$tooltip, show$$module$build$src$core$tooltip, getHsvSaturation$$module$build$src$core$utils$colour, setHsvSaturation$$module$build$src$core$utils$colour, getHsvValue$$module$build$src$core$utils$colour, setHsvValue$$module$build$src$core$utils$colour, parse$$module$build$src$core$utils$colour, rgbToHex$$module$build$src$core$utils$colour, hexToRgb$$module$build$src$core$utils$colour, hsvToHex$$module$build$src$core$utils$colour, blend$$module$build$src$core$utils$colour, hueToHex$$module$build$src$core$utils$colour, tokenizeInterpolationInternal$$module$build$src$core$utils$parsing, tokenizeInterpolation$$module$build$src$core$utils$parsing, replaceMessageReferences$$module$build$src$core$utils$parsing, checkMessageReferences$$module$build$src$core$utils$parsing, parseBlockColour$$module$build$src$core$utils$parsing, getDiv$$module$build$src$core$widgetdiv, testOnly_setDiv$$module$build$src$core$widgetdiv, createDom$$module$build$src$core$widgetdiv, show$$module$build$src$core$widgetdiv, hide$$module$build$src$core$widgetdiv, isVisible$$module$build$src$core$widgetdiv, hideIfOwner$$module$build$src$core$widgetdiv, hideIfOwnerIsInWorkspace$$module$build$src$core$widgetdiv, positionInternal$$module$build$src$core$widgetdiv, positionWithAnchor$$module$build$src$core$widgetdiv, calculateX$$module$build$src$core$widgetdiv, calculateY$$module$build$src$core$widgetdiv, isRepositionable$$module$build$src$core$widgetdiv, repositionForWindowResize$$module$build$src$core$widgetdiv, getCurrentBlock$$module$build$src$core$contextmenu, setCurrentBlock$$module$build$src$core$contextmenu, show$$module$build$src$core$contextmenu, populate_$$module$build$src$core$contextmenu, position_$$module$build$src$core$contextmenu, createWidget_$$module$build$src$core$contextmenu, haltPropagation$$module$build$src$core$contextmenu, hide$$module$build$src$core$contextmenu, dispose$$module$build$src$core$contextmenu, mouseToWorkspacePoint$$module$build$src$core$utils$drag, start$$module$build$src$core$utils$drag, move$$module$build$src$core$utils$drag, workspaceToDom$$module$build$src$core$xml, saveWorkspaceComment$$module$build$src$core$xml, variablesToDom$$module$build$src$core$xml, blockToDomWithXY$$module$build$src$core$xml, fieldToDom$$module$build$src$core$xml, allFieldsToDom$$module$build$src$core$xml, blockToDom$$module$build$src$core$xml, cloneShadow$$module$build$src$core$xml, domToText$$module$build$src$core$xml, domToPrettyText$$module$build$src$core$xml, clearWorkspaceAndLoadFromXml$$module$build$src$core$xml, loadWorkspaceComment$$module$build$src$core$xml, appendDomToWorkspace$$module$build$src$core$xml, domToBlockInternal$$module$build$src$core$xml, domToVariables$$module$build$src$core$xml, mapSupportedXmlTags$$module$build$src$core$xml, applyMutationTagNodes$$module$build$src$core$xml, applyCommentTagNodes$$module$build$src$core$xml, applyDataTagNodes$$module$build$src$core$xml, applyFieldTagNodes$$module$build$src$core$xml, findChildBlocks$$module$build$src$core$xml, applyInputTagNodes$$module$build$src$core$xml, applyNextTagNodes$$module$build$src$core$xml, domToBlockHeadless$$module$build$src$core$xml, domToField$$module$build$src$core$xml, deleteNext$$module$build$src$core$xml, isElement$$module$build$src$core$xml, disposeUiEffect$$module$build$src$core$block_animations, disposeUiStep$$module$build$src$core$block_animations, connectionUiEffect$$module$build$src$core$block_animations, disconnectUiEffect$$module$build$src$core$block_animations, disconnectUiStep$$module$build$src$core$block_animations, disconnectUiStop$$module$build$src$core$block_animations, isDraggable$$module$build$src$core$interfaces$i_draggable, deepMerge$$module$build$src$core$utils$object, register$$module$build$src$core$field_registry, unregister$$module$build$src$core$field_registry, fromJsonInternal$$module$build$src$core$field_registry, unregister$$module$build$src$core$extensions, isRegistered$$module$build$src$core$extensions, apply$$module$build$src$core$extensions, checkNoMutatorProperties$$module$build$src$core$extensions, checkXmlHooks$$module$build$src$core$extensions, checkJsonHooks$$module$build$src$core$extensions, checkMutatorDialog$$module$build$src$core$extensions, checkHasFunctionPair$$module$build$src$core$extensions, checkHasMutatorProperties$$module$build$src$core$extensions, getMutatorProperties$$module$build$src$core$extensions, mutatorPropertiesMatch$$module$build$src$core$extensions, runAfterPageLoad$$module$build$src$core$extensions, checkDropdownOptionsInTable$$module$build$src$core$extensions, extensionParentTooltip$$module$build$src$core$extensions, point$$module$build$src$core$utils$svg_paths, curve$$module$build$src$core$utils$svg_paths, moveTo$$module$build$src$core$utils$svg_paths, moveBy$$module$build$src$core$utils$svg_paths, lineTo$$module$build$src$core$utils$svg_paths, line$$module$build$src$core$utils$svg_paths, lineOnAxis$$module$build$src$core$utils$svg_paths, arc$$module$build$src$core$utils$svg_paths, register$$module$build$src$core$icons$registry, unregister$$module$build$src$core$icons$registry, isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block, isObservable$$module$build$src$core$interfaces$i_observable, allProcedures$$module$build$src$core$procedures, procTupleComparator$$module$build$src$core$procedures, isLegalName$$module$build$src$core$procedures, isNameUsed$$module$build$src$core$procedures, flyoutCategory$$module$build$src$core$procedures, updateMutatorFlyout$$module$build$src$core$procedures, mutatorOpenListener$$module$build$src$core$procedures, mutatorChangeListener$$module$build$src$core$procedures, getCallers$$module$build$src$core$procedures, blockIsModernCallerFor$$module$build$src$core$procedures, isDynamicShape$$module$build$src$core$renderers$common$constants, isPuzzleTab$$module$build$src$core$renderers$common$constants, isNotch$$module$build$src$core$renderers$common$constants, connectReciprocally$$module$build$src$core$connection, getSingleConnection$$module$build$src$core$connection, getConnectionForOrphanedOutput$$module$build$src$core$connection, isIcon$$module$build$src$core$interfaces$i_icon, isCommentIcon$$module$build$src$core$interfaces$i_comment_icon, getParentConnection$$module$build$src$core$keyboard_nav$ast_node, register$$module$build$src$core$renderers$common$block_rendering, unregister$$module$build$src$core$renderers$common$block_rendering, init$$module$build$src$core$renderers$common$block_rendering, stringButtonClickHandler$$module$build$src$core$variables_dynamic, numberButtonClickHandler$$module$build$src$core$variables_dynamic, colourButtonClickHandler$$module$build$src$core$variables_dynamic, flyoutCategory$$module$build$src$core$variables_dynamic, flyoutCategoryBlocks$$module$build$src$core$variables_dynamic, resizeSvgContents$$module$build$src$core$workspace_svg, moveBlockToNotConflict$$module$build$src$core$clipboard$block_paster, blockOverlapsOtherExactly$$module$build$src$core$clipboard$block_paster, blockIsInSnapRadius$$module$build$src$core$clipboard$block_paster, bumpObjectIntoBounds$$module$build$src$core$bump_objects, bumpIntoBoundsHandler$$module$build$src$core$bump_objects, extractObjectFromEvent$$module$build$src$core$bump_objects, bumpTopObjectsIntoBounds$$module$build$src$core$bump_objects, isDeletable$$module$build$src$core$interfaces$i_deletable, copyInternal$$module$build$src$core$clipboard, paste$$module$build$src$core$clipboard, pasteFromData$$module$build$src$core$clipboard, duplicateInternal$$module$build$src$core$clipboard, isCopyable$$module$build$src$core$interfaces$i_copyable, registerEscape$$module$build$src$core$shortcut_items, registerDelete$$module$build$src$core$shortcut_items, registerCopy$$module$build$src$core$shortcut_items, registerCut$$module$build$src$core$shortcut_items, registerPaste$$module$build$src$core$shortcut_items, registerUndo$$module$build$src$core$shortcut_items, registerRedo$$module$build$src$core$shortcut_items, registerDefaultShortcuts$$module$build$src$core$shortcut_items, saveProcedure$$module$build$src$core$serialization$procedures, loadProcedure$$module$build$src$core$serialization$procedures, save$$module$build$src$core$serialization$workspaces, load$$module$build$src$core$serialization$workspaces, inject$$module$build$src$core$inject, createDom$$module$build$src$core$inject, createMainWorkspace$$module$build$src$core$inject, init$$module$build$src$core$inject, onKeyDown$$module$build$src$core$inject, bindDocumentEvents$$module$build$src$core$inject, loadSounds$$module$build$src$core$inject, registerUndo$$module$build$src$core$contextmenu_items, registerRedo$$module$build$src$core$contextmenu_items, registerCleanup$$module$build$src$core$contextmenu_items, toggleOption_$$module$build$src$core$contextmenu_items, registerCollapse$$module$build$src$core$contextmenu_items, registerExpand$$module$build$src$core$contextmenu_items, addDeletableBlocks_$$module$build$src$core$contextmenu_items, getDeletableBlocks_$$module$build$src$core$contextmenu_items, deleteNext_$$module$build$src$core$contextmenu_items, registerDeleteAll$$module$build$src$core$contextmenu_items, registerWorkspaceOptions_$$module$build$src$core$contextmenu_items, registerDuplicate$$module$build$src$core$contextmenu_items, registerComment$$module$build$src$core$contextmenu_items, registerInline$$module$build$src$core$contextmenu_items, registerCollapseExpandBlock$$module$build$src$core$contextmenu_items, registerDisable$$module$build$src$core$contextmenu_items, registerDelete$$module$build$src$core$contextmenu_items, registerHelp$$module$build$src$core$contextmenu_items, registerCommentDelete$$module$build$src$core$contextmenu_items, registerCommentDuplicate$$module$build$src$core$contextmenu_items, registerCommentCreate$$module$build$src$core$contextmenu_items, pixelsToWorkspaceCoords$$module$build$src$core$contextmenu_items, registerBlockOptions_$$module$build$src$core$contextmenu_items, registerCommentOptions$$module$build$src$core$contextmenu_items, registerDefaultOptions$$module$build$src$core$contextmenu_items, isPaster$$module$build$src$core$interfaces$i_paster, isRenderedElement$$module$build$src$core$interfaces$i_rendered_element, isSelectable$$module$build$src$core$interfaces$i_selectable, isSelectableToolboxItem$$module$build$src$core$interfaces$i_selectable_toolbox_item, hideChaff$$module$build$src$core$blockly, $jscomp; register$$module$build$src$core$registry = function(a6, b5, c7, d5) { if (!(a6 instanceof Type$$module$build$src$core$registry) && "string" !== typeof a6 || "" === `${a6}`.trim()) throw Error('Invalid type "' + a6 + '". The type must be a non-empty string or a Blockly.registry.Type.'); a6 = `${a6}`.toLowerCase(); if ("string" !== typeof b5 || "" === b5.trim()) throw Error('Invalid name "' + b5 + '". The name must be a non-empty string.'); const e12 = b5.toLowerCase(); if (!c7) throw Error("Can not register a null value"); let f5 = typeMap$$module$build$src$core$registry[a6], g4 = nameMap$$module$build$src$core$registry[a6]; f5 || (f5 = typeMap$$module$build$src$core$registry[a6] = /* @__PURE__ */ Object.create(null), g4 = nameMap$$module$build$src$core$registry[a6] = /* @__PURE__ */ Object.create(null)); validate$$module$build$src$core$registry(a6, c7); if (!d5 && f5[e12] && f5[e12] !== c7) throw Error('Name "' + e12 + '" with type "' + a6 + '" already registered.'); f5[e12] = c7; g4[e12] = b5; }; validate$$module$build$src$core$registry = function(a6, b5) { switch (a6) { case String(Type$$module$build$src$core$registry.FIELD): if ("function" !== typeof b5.fromJson) throw Error('Type "' + a6 + '" must have a fromJson function'); } }; unregister$$module$build$src$core$registry = function(a6, b5) { a6 = `${a6}`.toLowerCase(); b5 = b5.toLowerCase(); const c7 = typeMap$$module$build$src$core$registry[a6]; c7 && c7[b5] ? (delete typeMap$$module$build$src$core$registry[a6][b5], delete nameMap$$module$build$src$core$registry[a6][b5]) : console.warn("Unable to unregister [" + b5 + "][" + a6 + "] from the registry."); }; getItem$$module$build$src$core$registry = function(a6, b5, c7) { a6 = `${a6}`.toLowerCase(); b5 = b5.toLowerCase(); const d5 = typeMap$$module$build$src$core$registry[a6]; if (!d5 || !d5[b5]) { b5 = "Unable to find [" + b5 + "][" + a6 + "] in the registry."; if (c7) throw Error(b5 + " You must require or register a " + a6 + " plugin."); console.warn(b5); return null; } return d5[b5]; }; hasItem$$module$build$src$core$registry = function(a6, b5) { a6 = `${a6}`.toLowerCase(); b5 = b5.toLowerCase(); return (a6 = typeMap$$module$build$src$core$registry[a6]) ? !!a6[b5] : false; }; getClass$$module$build$src$core$registry = function(a6, b5, c7) { return getItem$$module$build$src$core$registry(a6, b5, c7); }; getObject$$module$build$src$core$registry = function(a6, b5, c7) { return getItem$$module$build$src$core$registry(a6, b5, c7); }; getAllItems$$module$build$src$core$registry = function(a6, b5, c7) { a6 = `${a6}`.toLowerCase(); var d5 = typeMap$$module$build$src$core$registry[a6]; if (!d5) { d5 = `Unable to find [${a6}] in the registry.`; if (c7) throw Error(`${d5} You must require or register a ${a6} plugin.`); console.warn(d5); return null; } if (!b5) return d5; a6 = nameMap$$module$build$src$core$registry[a6]; c7 = /* @__PURE__ */ Object.create(null); for (const e12 of Object.keys(d5)) c7[a6[e12]] = d5[e12]; return c7; }; getClassFromOptions$$module$build$src$core$registry = function(a6, b5, c7) { b5 = b5.plugins[String(a6)] || DEFAULT$$module$build$src$core$registry; return "function" === typeof b5 ? b5 : getClass$$module$build$src$core$registry(a6, b5, c7); }; warn$$module$build$src$core$utils$deprecation = function(a6, b5, c7, d5) { a6 = a6 + " was deprecated in " + b5 + " and will be deleted in " + c7 + "."; d5 && (a6 += "\nUse " + d5 + " instead."); previousWarnings$$module$build$src$core$utils$deprecation.has(a6) || (previousWarnings$$module$build$src$core$utils$deprecation.add(a6), console.warn(a6)); }; getNextUniqueId$$module$build$src$core$utils$idgenerator = function() { return "blockly-" + (nextId$$module$build$src$core$utils$idgenerator++).toString(36); }; genUid$$module$build$src$core$utils$idgenerator = function() { return internal$$module$build$src$core$utils$idgenerator.genUid(); }; isBlockCreate$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BLOCK_CREATE; }; isBlockDelete$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BLOCK_DELETE; }; isBlockChange$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BLOCK_CHANGE; }; isBlockFieldIntermediateChange$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BLOCK_FIELD_INTERMEDIATE_CHANGE; }; isBlockMove$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BLOCK_MOVE; }; isVarCreate$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.VAR_CREATE; }; isVarDelete$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.VAR_DELETE; }; isVarRename$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.VAR_RENAME; }; isBlockDrag$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BLOCK_DRAG; }; isSelected$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.SELECTED; }; isClick$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.CLICK; }; isMarkerMove$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.MARKER_MOVE; }; isBubbleOpen$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.BUBBLE_OPEN; }; isTrashcanOpen$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.TRASHCAN_OPEN; }; isToolboxItemSelect$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.TOOLBOX_ITEM_SELECT; }; isThemeChange$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.THEME_CHANGE; }; isViewportChange$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.VIEWPORT_CHANGE; }; isCommentCreate$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_CREATE; }; isCommentDelete$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_DELETE; }; isCommentChange$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_CHANGE; }; isCommentMove$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_MOVE; }; isCommentResize$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_RESIZE; }; isCommentDrag$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_DRAG; }; isCommentCollapse$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.COMMENT_COLLAPSE; }; isFinishedLoading$$module$build$src$core$events$predicates = function(a6) { return a6.type === EventType$$module$build$src$core$events$type.FINISHED_LOADING; }; $5.setRecordUndo$$module$build$src$core$events$utils = function(a6) { recordUndo$$module$build$src$core$events$utils = a6; }; getRecordUndo$$module$build$src$core$events$utils = function() { return recordUndo$$module$build$src$core$events$utils; }; fire$$module$build$src$core$events$utils = function(a6) { TEST_ONLY$$module$build$src$core$events$utils.fireInternal(a6); }; fireInternal$$module$build$src$core$events$utils = function(a6) { if (isEnabled$$module$build$src$core$events$utils()) { if (!FIRE_QUEUE$$module$build$src$core$events$utils.length) try { requestAnimationFrame(() => { setTimeout(fireNow$$module$build$src$core$events$utils, 0); }); } catch (b5) { setTimeout(fireNow$$module$build$src$core$events$utils, 0); } enqueueEvent$$module$build$src$core$events$utils(a6); } }; fireNow$$module$build$src$core$events$utils = function() { const a6 = filter$$module$build$src$core$events$utils(FIRE_QUEUE$$module$build$src$core$events$utils, true); FIRE_QUEUE$$module$build$src$core$events$utils.length = 0; for (const b5 of a6) { if (!b5.workspaceId) continue; let c7; null == (c7 = getWorkspaceById$$module$build$src$core$common(b5.workspaceId)) || c7.fireChangeListener(b5); } }; enqueueEvent$$module$build$src$core$events$utils = function(a6) { if (isBlockChange$$module$build$src$core$events$predicates(a6) && "mutation" === a6.element) { let b5; for (b5 = FIRE_QUEUE$$module$build$src$core$events$utils.length; 0 < b5; b5--) { const c7 = FIRE_QUEUE$$module$build$src$core$events$utils[b5 - 1]; if (c7.group !== a6.group || c7.workspaceId !== a6.workspaceId || !isBlockMove$$module$build$src$core$events$predicates(c7) || c7.newParentId !== a6.blockId) break; } FIRE_QUEUE$$module$build$src$core$events$utils.splice(b5, 0, a6); } else FIRE_QUEUE$$module$build$src$core$events$utils.push(a6); }; filter$$module$build$src$core$events$utils = function(a6, b5 = true) { b5 || (warn$$module$build$src$core$utils$deprecation("filter(queue, /*forward=*/false)", "v11.2", "v12"), a6 = a6.slice().reverse()); const c7 = []; for (const d5 of a6) if (a6 = c7[c7.length - 1], !d5.isNull()) if (a6 && a6.workspaceId === d5.workspaceId && a6.group === d5.group) if (isBlockMove$$module$build$src$core$events$predicates(d5) && isBlockMove$$module$build$src$core$events$predicates(a6) && d5.blockId === a6.blockId) { if (a6.newParentId = d5.newParentId, a6.newInputName = d5.newInputName, a6.newCoordinate = d5.newCoordinate, a6.reason || d5.reason) { let e12, f5; a6.reason = Array.from(new Set((null != (e12 = a6.reason) ? e12 : []).concat(null != (f5 = d5.reason) ? f5 : []))); } } else isBlockChange$$module$build$src$core$events$predicates(d5) && isBlockChange$$module$build$src$core$events$predicates(a6) && d5.blockId === a6.blockId && d5.element === a6.element && d5.name === a6.name ? a6.newValue = d5.newValue : isViewportChange$$module$build$src$core$events$predicates(d5) && isViewportChange$$module$build$src$core$events$predicates(a6) ? (a6.viewTop = d5.viewTop, a6.viewLeft = d5.viewLeft, a6.scale = d5.scale, a6.oldScale = d5.oldScale) : isClick$$module$build$src$core$events$predicates(d5) && isBubbleOpen$$module$build$src$core$events$predicates(a6) || c7.push(d5); else c7.push(d5); a6 = c7.filter((d5) => !d5.isNull()); b5 || a6.reverse(); return a6; }; clearPendingUndo$$module$build$src$core$events$utils = function() { for (let a6 = 0, b5; b5 = FIRE_QUEUE$$module$build$src$core$events$utils[a6]; a6++) b5.recordUndo = false; }; $5.disable$$module$build$src$core$events$utils = function() { disabled$$module$build$src$core$events$utils++; }; $5.enable$$module$build$src$core$events$utils = function() { disabled$$module$build$src$core$events$utils--; }; isEnabled$$module$build$src$core$events$utils = function() { return 0 === disabled$$module$build$src$core$events$utils; }; $5.getGroup$$module$build$src$core$events$utils = function() { return group$$module$build$src$core$events$utils; }; $5.setGroup$$module$build$src$core$events$utils = function(a6) { TEST_ONLY$$module$build$src$core$events$utils.setGroupInternal(a6); }; setGroupInternal$$module$build$src$core$events$utils = function(a6) { group$$module$build$src$core$events$utils = "boolean" === typeof a6 ? a6 ? genUid$$module$build$src$core$utils$idgenerator() : "" : a6; }; getDescendantIds$$module$build$src$core$events$utils = function(a6) { const b5 = []; a6 = a6.getDescendants(false); for (let c7 = 0, d5; d5 = a6[c7]; c7++) b5[c7] = d5.id; return b5; }; fromJson$$module$build$src$core$events$utils = function(a6, b5) { const c7 = get$$module$build$src$core$events$utils(a6.type); if (!c7) throw Error("Unknown event type."); return c7.fromJson(a6, b5); }; get$$module$build$src$core$events$utils = function(a6) { const b5 = getClass$$module$build$src$core$registry(Type$$module$build$src$core$registry.EVENT, a6); if (!b5) throw Error(`Event type ${a6} not found in registry.`); return b5; }; disableOrphans$$module$build$src$core$events$utils = function(a6) { if ((isBlockMove$$module$build$src$core$events$predicates(a6) || isBlockCreate$$module$build$src$core$events$predicates(a6)) && a6.workspaceId) { var b5 = getWorkspaceById$$module$build$src$core$common(a6.workspaceId); if (!a6.blockId) throw Error("Encountered a blockEvent without a proper blockId"); if (a6 = b5.getBlockById(a6.blockId)) { const c7 = recordUndo$$module$build$src$core$events$utils; try { recordUndo$$module$build$src$core$events$utils = false; const d5 = a6.getParent(); if (d5 && !d5.hasDisabledReason(ORPHANED_BLOCK_DISABLED_REASON$$module$build$src$core$events$utils)) { const e12 = a6.getDescendants(false); for (let f5 = 0, g4; g4 = e12[f5]; f5++) g4.setDisabledReason(false, ORPHANED_BLOCK_DISABLED_REASON$$module$build$src$core$events$utils); } else if ((a6.outputConnection || a6.previousConnection) && !b5.isDragging()) { do a6.setDisabledReason(true, ORPHANED_BLOCK_DISABLED_REASON$$module$build$src$core$events$utils), a6 = a6.getNextBlock(); while (a6); } } finally { recordUndo$$module$build$src$core$events$utils = c7; } } } }; getWorkspaceById$$module$build$src$core$common = function(a6) { return WorkspaceDB_$$module$build$src$core$common[a6] || null; }; getAllWorkspaces$$module$build$src$core$common = function() { const a6 = []; for (const b5 in WorkspaceDB_$$module$build$src$core$common) a6.push(WorkspaceDB_$$module$build$src$core$common[b5]); return a6; }; registerWorkspace$$module$build$src$core$common = function(a6) { WorkspaceDB_$$module$build$src$core$common[a6.id] = a6; }; unregisterWorkpace$$module$build$src$core$common = function(a6) { delete WorkspaceDB_$$module$build$src$core$common[a6.id]; }; getMainWorkspace$$module$build$src$core$common = function() { return mainWorkspace$$module$build$src$core$common; }; setMainWorkspace$$module$build$src$core$common = function(a6) { mainWorkspace$$module$build$src$core$common = a6; }; getSelected$$module$build$src$core$common = function() { return selected$$module$build$src$core$common; }; $5.setSelected$$module$build$src$core$common = function(a6) { if (selected$$module$build$src$core$common !== a6) { var b5, c7, d5, e12, f5, g4, h6 = new (get$$module$build$src$core$events$utils(EventType$$module$build$src$core$events$type.SELECTED))(null != (d5 = null == (b5 = selected$$module$build$src$core$common) ? void 0 : b5.id) ? d5 : null, null != (e12 = null == a6 ? void 0 : a6.id) ? e12 : null, null != (g4 = null != (f5 = null == a6 ? void 0 : a6.workspace.id) ? f5 : null == (c7 = selected$$module$build$src$core$common) ? void 0 : c7.workspace.id) ? g4 : ""); fire$$module$build$src$core$events$utils(h6); var k4; null == (k4 = selected$$module$build$src$core$common) || k4.unselect(); selected$$module$build$src$core$common = a6; var l8; null == (l8 = selected$$module$build$src$core$common) || l8.select(); } }; getParentContainer$$module$build$src$core$common = function() { return parentContainer$$module$build$src$core$common; }; setParentContainer$$module$build$src$core$common = function(a6) { parentContainer$$module$build$src$core$common = a6; }; svgResize$$module$build$src$core$common = function(a6) { for (; a6.options.parentWorkspace; ) a6 = a6.options.parentWorkspace; const b5 = a6.getParentSvg(), c7 = a6.getCachedParentSvgSize(); var d5 = b5.parentElement; if (d5 instanceof HTMLElement) { var e12 = d5.offsetWidth; d5 = d5.offsetHeight; c7.width !== e12 && (b5.setAttribute("width", e12 + "px"), a6.setCachedParentSvgSize(e12, null)); c7.height !== d5 && (b5.setAttribute("height", d5 + "px"), a6.setCachedParentSvgSize(null, d5)); a6.resize(); } }; getBlockTypeCounts$$module$build$src$core$common = function(a6, b5) { const c7 = /* @__PURE__ */ Object.create(null), d5 = a6.getDescendants(true); b5 && (a6 = a6.getNextBlock()) && (a6 = d5.indexOf(a6), d5.splice(a6, d5.length - a6)); for (let e12 = 0, f5; f5 = d5[e12]; e12++) c7[f5.type] ? c7[f5.type]++ : c7[f5.type] = 1; return c7; }; jsonInitFactory$$module$build$src$core$common = function(a6) { return function() { this.jsonInit(a6); }; }; defineBlocksWithJsonArray$$module$build$src$core$common = function(a6) { TEST_ONLY$$module$build$src$core$common.defineBlocksWithJsonArrayInternal(a6); }; defineBlocksWithJsonArrayInternal$$module$build$src$core$common = function(a6) { $5.defineBlocks$$module$build$src$core$common($5.createBlockDefinitionsFromJsonArray$$module$build$src$core$common(a6)); }; $5.createBlockDefinitionsFromJsonArray$$module$build$src$core$common = function(a6) { const b5 = {}; for (let c7 = 0; c7 < a6.length; c7++) { const d5 = a6[c7]; if (!d5) { console.warn(`Block definition #${c7} in JSON array is ${d5}. Skipping`); continue; } const e12 = d5.type; e12 ? b5[e12] = { init: jsonInitFactory$$module$build$src$core$common(d5) } : console.warn(`Block definition #${c7} in JSON array is missing a type attribute. Skipping.`); } return b5; }; $5.defineBlocks$$mo