{"version":3,"sources":["core/touch.ts","core/browser_events.ts","core/common.ts","core/utils/dom.ts","core/utils/math.ts","core/utils/deprecation.ts","core/utils/style.ts","core/dropdowndiv.ts","core/registry.ts","core/utils/idgenerator.ts","core/events/utils.ts","core/utils/xml.ts","core/dialog.ts","core/variables.ts","core/css.ts","core/utils/svg_math.ts","core/xml.ts","core/utils/string.ts","core/tooltip.ts","core/utils/colour.ts","core/utils/parsing.ts","core/widgetdiv.ts","core/field_registry.ts","core/utils/aria.ts","core/field_dropdown.ts","core/utils/object.ts","core/utils/toolbox.ts","core/extensions.ts","core/utils/array.ts","core/utils/svg_paths.ts","core/utils.ts","core/serialization/registry.ts","core/serialization/blocks.ts","core/connection.ts","core/keyboard_nav/ast_node.ts","core/block_animations.ts","core/clipboard.ts","core/contextmenu.ts","core/positionable_helpers.ts","core/shortcut_items.ts","core/procedures.ts","core/renderers/common/constants.ts","core/renderers/common/debug.ts","core/renderers/common/block_rendering.ts","core/variables_dynamic.ts","core/workspace_svg.ts","core/serialization/workspaces.ts","core/bump_objects.ts","core/inject.ts","core/contextmenu_items.ts","core/block_dragger.ts","core/blockly.ts","src/com/google/javascript/jscomp/js/base.js","src/com/google/javascript/jscomp/js/util/defines.js","src/com/google/javascript/jscomp/js/util/defineproperty.js","src/com/google/javascript/jscomp/js/util/global.js","src/com/google/javascript/jscomp/js/util/shouldpolyfill.js","src/com/google/javascript/jscomp/js/util/polyfill.js","src/com/google/javascript/jscomp/js/es6/globalthis.js","src/com/google/javascript/jscomp/js/es6/util/arrayiterator.js","src/com/google/javascript/jscomp/js/es6/symbol.js","src/com/google/javascript/jscomp/js/es6/util/iteratorfromarray.js","src/com/google/javascript/jscomp/js/es6/array/values.js","src/com/google/javascript/jscomp/js/util/owns.js","src/com/google/javascript/jscomp/js/es6/object/values.js","src/com/google/javascript/jscomp/js/es6/array/flat.js","src/com/google/javascript/jscomp/js/es6/object/entries.js","closure/goog/goog.js","closure/goog/base_minimal.js","core/utils/useragent.ts","core/blocks.ts","core/utils/rect.ts","core/utils/coordinate.ts","core/utils/size.ts","core/input_types.ts","core/msg.ts","core/events/events_abstract.ts","core/events/events_var_base.ts","core/events/events_var_create.ts","core/variable_model.ts","core/workspace_comment.ts","core/events/events_ui_base.ts","core/events/events_selected.ts","core/utils/svg.ts","core/workspace_comment_svg.ts","core/events/events_block_base.ts","core/events/events_block_change.ts","core/marker_manager.ts","core/utils/sentinel.ts","core/field.ts","core/utils/keycodes.ts","core/menu.ts","core/menuitem.ts","core/events/events_bubble_open.ts","core/scrollbar.ts","core/bubble.ts","core/config.ts","core/icon.ts","core/theme.ts","core/theme/classic.ts","core/options.ts","core/mutator.ts","core/events/events_trashcan_open.ts","core/component_manager.ts","core/serialization/exceptions.ts","core/serialization/priorities.ts","core/events/events_block_create.ts","core/events/events_block_delete.ts","core/connection_type.ts","core/constants.ts","core/field_label.ts","core/input.ts","core/block.ts","core/comment.ts","core/contextmenu_registry.ts","core/internal_constants.ts","core/keyboard_nav/marker.ts","core/keyboard_nav/cursor.ts","core/keyboard_nav/basic_cursor.ts","core/keyboard_nav/tab_navigate_cursor.ts","core/rendered_connection.ts","core/warning.ts","core/block_svg.ts","core/drag_target.ts","core/delete_area.ts","core/sprites.ts","core/trashcan.ts","core/events/events_toolbox_item_select.ts","core/toolbox/toolbox_item.ts","core/toolbox/category.ts","core/toolbox/separator.ts","core/toolbox/collapsible_category.ts","core/toolbox/toolbox.ts","core/theme/zelos.ts","core/theme/themes.ts","core/events/events_click.ts","core/bubble_dragger.ts","core/workspace_dragger.ts","core/gesture.ts","core/shortcut_registry.ts","core/events/events_theme_change.ts","core/events/events_viewport.ts","core/connection_db.ts","core/grid.ts","core/names.ts","core/renderers/measurables/types.ts","core/renderers/measurables/base.ts","core/renderers/measurables/row.ts","core/renderers/measurables/bottom_row.ts","core/renderers/measurables/connection.ts","core/renderers/measurables/input_connection.ts","core/renderers/measurables/external_value_input.ts","core/renderers/measurables/field.ts","core/renderers/measurables/hat.ts","core/renderers/measurables/icon.ts","core/renderers/measurables/in_row_spacer.ts","core/renderers/measurables/inline_input.ts","core/renderers/measurables/statement_input.ts","core/renderers/measurables/input_row.ts","core/renderers/measurables/jagged_edge.ts","core/renderers/measurables/next_connection.ts","core/renderers/measurables/output_connection.ts","core/renderers/measurables/previous_connection.ts","core/renderers/measurables/round_corner.ts","core/renderers/measurables/spacer_row.ts","core/renderers/measurables/square_corner.ts","core/renderers/measurables/top_row.ts","core/renderers/common/debugger.ts","core/renderers/common/drawer.ts","core/renderers/common/info.ts","core/events/events_marker_move.ts","core/renderers/common/marker_svg.ts","core/renderers/common/path_object.ts","core/insertion_marker_manager.ts","core/renderers/common/renderer.ts","core/theme_manager.ts","core/touch_gesture.ts","core/connection_checker.ts","core/events/events_var_delete.ts","core/events/events_var_rename.ts","core/variable_map.ts","core/workspace.ts","core/workspace_audio.ts","core/zoom_controls.ts","core/serialization/variables.ts","core/renderers/zelos/constants.ts","core/renderers/zelos/drawer.ts","core/field_image.ts","core/field_textinput.ts","core/renderers/zelos/measurables/bottom_row.ts","core/renderers/zelos/measurables/inputs.ts","core/renderers/zelos/measurables/row_elements.ts","core/renderers/zelos/measurables/top_row.ts","core/renderers/zelos/info.ts","core/renderers/zelos/marker_svg.ts","core/renderers/zelos/path_object.ts","core/renderers/zelos/renderer.ts","core/renderers/zelos/zelos.ts","core/renderers/thrasos/info.ts","core/renderers/thrasos/renderer.ts","core/renderers/thrasos/thrasos.ts","core/renderers/minimalist/constants.ts","core/renderers/minimalist/drawer.ts","core/renderers/minimalist/info.ts","core/renderers/minimalist/renderer.ts","core/renderers/minimalist/minimalist.ts","core/renderers/geras/constants.ts","core/renderers/geras/highlighter.ts","core/renderers/geras/drawer.ts","core/renderers/geras/highlight_constants.ts","core/renderers/geras/measurables/inline_input.ts","core/renderers/geras/measurables/statement_input.ts","core/renderers/geras/info.ts","core/renderers/geras/path_object.ts","core/renderers/geras/renderer.ts","core/renderers/geras/geras.ts","core/workspace_drag_surface_svg.ts","core/block_drag_surface.ts","core/scrollbar_pair.ts","core/generator.ts","core/flyout_button.ts","core/metrics_manager.ts","core/flyout_metrics_manager.ts","core/flyout_base.ts","core/flyout_vertical.ts","core/flyout_horizontal.ts","core/field_variable.ts","core/field_number.ts","core/field_multilineinput.ts","core/field_label_serializable.ts","core/field_colour.ts","core/field_checkbox.ts","core/field_angle.ts","core/events/events_block_move.ts","core/events/events_comment_base.ts","core/events/events_comment_change.ts","core/events/events_comment_create.ts","core/events/events_comment_delete.ts","core/events/events_comment_move.ts","core/events/events_block_drag.ts","core/events/events_ui.ts","core/events/workspace_events.ts","core/events/events.ts","core/main.js"],"names":["longStart","e","gesture","longStop","changedTouches","length","longPid_","setTimeout","button","clientX","clientY","handleRightClick","LONGPRESS","clearTimeout","clearTouchIdentifier","touchIdentifier_","shouldHandleEvent","isMouseOrTouchEvent","checkTouchIdentifier","getTouchIdentifierFromEvent","PointerEvent","String","pointerId","MouseEvent","undefined","identifier","type","setClientFromTouch","startsWith","touchPoint","isTouchEvent","splitEventByTouches","events","i","newEvent","target","stopPropagation","preventDefault","push","conditionalBind","node","name","thisObject","func","opt_noCaptureIdentifier","opt_noPreventDefault","wrapFunc","captureIdentifier","event","call","handled","bindData","globalThis","TOUCH_MAP","addEventListener","touchWrapFunc","preventDef","bind","TouchEvent","unbind","callback","bindDatum","pop","removeEventListener","isTargetInput","HTMLElement","isContentEditable","getAttribute","HTMLInputElement","HTMLTextAreaElement","isRightButton","ctrlKey","MAC","mouseToSvg","svg","matrix","svgPoint","createSVGPoint","x","y","getScreenCTM","inverse","matrixTransform","getScrollDeltaPixels","deltaMode","deltaX","deltaY","LINE_MODE_MULTIPLIER","PAGE_MODE_MULTIPLIER","getWorkspaceById","id","WorkspaceDB_","getAllWorkspaces","workspaces","workspaceId","registerWorkspace","workspace","unregisterWorkpace","getMainWorkspace","mainWorkspace","setMainWorkspace","getSelected","selected","setSelected","newSelection","getParentContainer","parentContainer","setParentContainer","newParent","svgResize","options","parentWorkspace","getParentSvg","cachedSize","getCachedParentSvgSize","div","parentElement","width","offsetWidth","height","offsetHeight","setAttribute","setCachedParentSvgSize","resize","getBlockTypeCounts","block","opt_stripFollowing","typeCountsMap","Object","create","descendants","getDescendants","nextBlock","getNextBlock","index","indexOf","splice","checkBlock","jsonInitFactory","jsonDef","jsonInit","defineBlocksWithJsonArray","jsonArray","TEST_ONLY","defineBlocksWithJsonArrayInternal","defineBlocks","createBlockDefinitionsFromJsonArray","blocks","elem","console","warn","init","keys","definition","Blocks","createSvgElement","attrs","opt_parent","document","createElementNS","SVG_NS","key","appendChild","addClass","element","className","classNames","split","every","classList","contains","add","removeClasses","remove","removeClass","hasClass","removeNode","parentNode","removeChild","insertAfter","newNode","refNode","siblingNode","nextSibling","Error","insertBefore","containsNode","parent","descendant","compareDocumentPosition","NodeType","DOCUMENT_POSITION_CONTAINED_BY","setCssTransform","transform","style","startTextWidthCache","cacheReference","cacheWidths","stopTextWidthCache","getTextWidth","textElement","textContent","baseVal","getComputedTextLength","getFastTextWidth","fontSize","fontWeight","fontFamily","getFastTextWidthWithSizeString","text","canvasContext","computeCanvas","createElement","body","getContext","font","measureText","measureFontMetrics","span","result","baseline","alignItems","offsetTop","toRadians","angleDegrees","Math","PI","toDegrees","angleRadians","clamp","lowerBound","number","upperBound","temp","max","min","deprecationDate","deletionDate","opt_use","msg","getSize","getSizeInternal","getComputedStyle","getSizeWithDisplay","originalDisplay","display","originalVisibility","visibility","originalPosition","position","Size","property","styles","window","getPropertyValue","getCascadedStyle","currentStyle","getPageOffset","el","pos","Coordinate","box","getBoundingClientRect","documentElement","scrollCoord","pageXOffset","scrollLeft","pageYOffset","scrollTop","left","top","getViewportPageOffset","getBorderBox","parseFloat","right","bottom","Rect","scrollIntoContainerView","container","opt_center","offset","getContainerOffsetToScrollInto","elementPos","containerPos","containerBorder","relX","relY","elementSize","spaceX","clientWidth","spaceY","clientHeight","createDom","content","arrow","opacity","transition","ANIMATION_TIME","setBoundsElement","boundsElem","boundsElement","getContentDiv","clearContent","setColour","backgroundColour","borderColour","backgroundColor","borderColor","showPositionedByBlock","field","opt_onHide","opt_secondaryYOffset","showPositionedByRect","getScaledBboxOfBlock","showPositionedByField","positionToField","getScaledBboxOfField","blockSvg","getSvgRoot","scale","scaledHeight","scaledWidth","xy","bBox","getScaledBBox","primaryX","primaryY","secondaryY","sourceBlock","getSourceBlock","show","RTL","newOwner","rtl","secondaryX","owner","onHide","direction","renderedClassName","getRenderer","getClassName","themeClassName","getTheme","positionInternal","getPositionBelowMetrics","boundsInfo","divSize","xCoords","getPositionX","initialX","divX","initialY","finalX","finalY","PADDING_Y","arrowX","arrowY","ARROW_SIZE","BORDER_SIZE","arrowAtTop","arrowVisible","getPositionAboveMetrics","getPositionTopOfPageMetrics","sourceX","boundsLeft","boundsRight","divWidth","relativeArrowX","horizPadding","ARROW_HORIZONTAL_PADDING","isVisible","hideIfOwner","divOwner","opt_withoutAnimation","hideWithoutAnimation","hide","animateOutTimer","markFocused","metrics","internal","getPositionMetrics","floor","repositionForWindowResize","register","registryItem","opt_allowOverrides","Type","trim","toLowerCase","caselessName","typeRegistry","typeMap","nameRegistry","nameMap","validate","FIELD","fromJson","unregister","getItem","opt_throwIfMissing","hasItem","getClass","getObject","getAllItems","opt_cased","casedRegistry","getClassFromOptions","plugin","plugins","toString","typeName","DEFAULT","getNextUniqueId","nextId","genUid","setRecordUndo","newValue","recordUndo","getRecordUndo","fire","fireInternal","isEnabled","FIRE_QUEUE","fireNow","queue","filter","eventWorkspace","fireChangeListener","queueIn","forward","slice","reverse","mergedQueue","hash","isNull","isUiEvent","eventType","UI","blockId","join","lastEntry","lastEvent","MOVE","moveEvent","newParentId","newInputName","newCoordinate","CHANGE","VIEWPORT_CHANGE","viewportEvent","viewTop","viewLeft","oldScale","CLICK","BUBBLE_OPEN","unshift","clearPendingUndo","disable","disabled","enable","getGroup","group","setGroup","state","setGroupInternal","getDescendantIds","ids","json","eventClass","get","EVENT","disableOrphans","CREATE","getBlockById","initialUndoFlag","getParent","children","child","setEnabled","outputConnection","previousConnection","isDragging","getDocument","xmlDocument","setDocument","tagName","NAME_SPACE","createTextNode","textToDomDocument","parseFromString","oParser","DOMParser","domToText","dom","serializeToString","oSerializer","XMLSerializer","alert","message","opt_callback","alertImplementation","setAlert","alertFunction","confirm","confirmInternal","confirmImplementation","setConfirm","confirmFunction","prompt","defaultValue","promptImplementation","setPrompt","promptFunction","allUsedVarModels","ws","getAllBlocks","variables","Set","blockVariables","getVarModels","j","variable","getId","Array","from","values","allDeveloperVariables","getDeveloperVariables","devVars","flyoutCategory","xmlList","registerButtonCallback","createVariableButtonHandler","getTargetWorkspace","blockList","flyoutCategoryBlocks","concat","variableModelList","getVariablesOfType","mostRecentVariable","generateVariableFieldDom","value","textToDom","sort","VariableModel","compareByName","generateUniqueName","generateUniqueNameInternal","generateUniqueNameFromOptions","VAR_LETTER_OPTIONS","charAt","getAllVariableNames","startChar","usedNames","letters","suffix","letterIndex","inUse","potName","Number","opt_type","promptAndCheckWithAlert","defaultName","promptName","Msg","existing","nameUsedWithAnyType","replace","createVariable","renameVariable","promptText","newName","nameUsedWithOtherType","renameVariableById","defaultText","newVar","allVariables","getVariableMap","getAllVariables","variableModel","getOrCreateVariablePackage","opt_name","getVariable","potentialVariableMap","getPotentialVariableMap","getVariableById","isFlyout","targetWorkspace","getAddedVariables","originalVariables","allCurrentVariables","addedVariables","cssContent","injected","inject","hasCss","pathToMedia","mediaPath","cssNode","cssTextNode","head","firstChild","getRelativeXY","parseInt","r","match","XY_REGEX","styleComponents","XY_STYLE_REGEX","getInjectionDivXY","is3dSupported","getViewportBBox","scrollOffset","getDocumentScroll","win","screenToWsCoordinates","screenCoordinates","screenX","screenY","boundingRect","getInjectionDiv","injectionDiv","clientOffsetPixels","mainOffsetPixels","getOriginOffsetInPixels","difference","finalOffsetPixels","finalOffsetMainWs","workspaceToDom","opt_noId","treeXml","variablesElement","variablesToDom","hasChildNodes","comments","getTopComments","comment","toXmlWithXY","getTopBlocks","blockToDomWithXY","variableList","isInsertionMarker","getChildren","DocumentFragment","getWidth","blockToDom","getRelativeToSurfaceXY","round","fieldToDom","isSerializable","toXml","allFieldsToDom","inputList","input","fieldRow","fieldDom","isShadow","mutationToDom","mutation","hasAttributes","commentText","getCommentText","size","commentModel","pinned","commentElement","data","dataElement","empty","inputTypes","DUMMY","childBlock","connection","targetBlock","VALUE","STATEMENT","childShadow","getShadowDom","cloneShadow","childElem","nodeType","ELEMENT_NODE","inputsInline","inputsInlineDefault","isCollapsed","isDeletable","isMovable","isEditable","nextElem","nextShadow","nextConnection","shadow","cloneNode","textNode","nodeName","removeAttribute","TEXT_NODE","domToPrettyText","lines","blob","indent","line","substring","doc","getElementsByTagName","clearWorkspaceAndLoadFromXml","xml","setResizesEnabled","clear","blockIds","domToWorkspace","newBlockIds","existingGroup","variablesFirst","xmlChild","childNodes","xmlChildElement","domToBlock","blockX","hasAttribute","blockY","isNaN","moveBy","TypeError","rendered","WorkspaceCommentSvg","fromXmlRendered","WorkspaceComment","fromXml","domToVariables","FINISHED_LOADING","appendDomToWorkspace","getBlocksBoundingBox","bbox","farY","topX","newLeftX","Infinity","newRightX","newY","blockXY","offsetY","ySeparation","offsetX","xmlBlock","variablesBeforeCreation","topBlock","domToBlockHeadless","topBlockSvg","setConnectionTracking","initSvg","render","disposed","updateDisabled","resizeContents","initModel","newVariables","thisVariable","VAR_CREATE","xmlVariables","mapSupportedXmlTags","childNodeMap","next","applyMutationTagNodes","xmlChildren","shouldCallInitSvg","domToMutation","applyCommentTagNodes","setCommentText","getCommentIcon","isInFlyout","setVisible","applyDataTagNodes","applyFieldTagNodes","domToField","findChildBlocks","xmlNode","childBlockInfo","childBlockElement","childShadowElement","applyInputTagNodes","prototypeName","getInput","setShadowDom","applyNextTagNodes","isConnected","parentConnection","connectedToParentNext","outerHTML","newBlock","xmlChildNameMap","connect","inline","setInputsInline","deletable","setDeletable","movable","setMovable","editable","setEditable","collapsed","setCollapsed","setShadow","fieldName","getField","deleteNext","str","prefix","shortestStringLength","array","reduce","a","b","commonWordPrefix","opt_shortest","wordPrefix","len","letter","commonWordSuffix","substr","wrap","limit","wrapLine","words","score","lastText","lineCount","lastScore","wordBreaks","steps","insertedBreaks","wrapMutate","wrapScore","wrapToText","lineLengths","linePunctuation","maxLength","pow","abs","bestScore","bestBreaks","mutatedWordBreaks","mutatedScore","isNumber","test","setCustomTooltip","customFn","customTooltip","getCustomTooltip","visible","getDiv","containerDiv","getTooltipOfObject","object","obj","getTargetObject","tooltip","bindMouseEvents","mouseOverWrapper_","onMouseOver","mouseOutWrapper_","onMouseOut","onMouseMove","unbindMouseEvents","blocked","newElement","currentTarget","poisonedElement","mouseOutPid","_e","showPid","dx","lastX","pageX","dy","lastY","pageY","sqrt","RADIUS_OK","HOVER_MS","dispose","unblock","renderContent","renderDefaultContent","tip","LIMIT","getPosition","windowWidth","windowHeight","anchorX","OFFSET_X","anchorY","OFFSET_Y","scrollY","MARGINS","scrollX","getHsvSaturation","hsvSaturation","setHsvSaturation","newSaturation","getHsvValue","hsvValue","setHsvValue","parse","hex","names","rgb","g","rgbToHex","hexToRgb","colour","hsvToHex","h","s","v","red","green","blue","sextant","remainder","val1","val2","val3","blend","colour1","colour2","factor","hex1","hex2","rgb1","rgb2","hueToHex","hue","tokenizeInterpolationInternal","parseInterpolationTokens","tokens","chars","buffer","c","rawKey","keyUpper","toUpperCase","bklyKey","rawValue","prototype","apply","mergedTokens","tokenizeInterpolation","replaceMessageReferences","interpolatedResult","checkMessageReferences","validSoFar","msgTable","m","msgKey","parseBlockColour","dereferenced","errorMsg","testOnly_setDiv","newDiv","newDispose","rendererClassName","oldOwner","positionWithAnchor","viewportBBox","anchorBBox","widgetSize","calculateY","calculateX","fieldClass","fromJsonInternal","fieldObject","setRole","roleName","ROLE_ATTRIBUTE","setState","stateName","isArray","ARIA_PREFIX","validateOptions","foundError","tuple","error","src","inherits","childCtor","parentCtor","superClass_","setPrototypeOf","constructor","mixin","source","deepMerge","convertToolboxDefToJson","toolboxDef","Element","parseToolboxTree","convertToToolboxJson","validateToolbox","toolboxJson","toolboxKind","toolboxContents","FLYOUT_TOOLBOX_KIND","CATEGORY_TOOLBOX_KIND","convertFlyoutDefToJsonArray","flyoutDef","xmlToJsonArray","hasCategories","hasCategoriesInternal","categories","item","isCategoryCollapsible","categoryInfo","contents","Node","addAttributes","arr","attributes","attr","parsedToolboxDef","initFn","allExtensions","registerMixin","mixinObj","registerMutator","opt_helperFn","opt_blockList","errorPrefix","checkHasMutatorProperties","hasMutatorDialog","checkMutatorDialog","setMutator","Mutator","isRegistered","isMutator","extensionFn","mutatorProperties","checkNoMutatorProperties","getMutatorProperties","mutatorPropertiesMatch","mutationName","properties","checkXmlHooks","checkHasFunctionPair","checkJsonHooks","saveExtraState","loadExtraState","compose","decompose","func1","func2","hasXmlHooks","hasJsonHooks","oldProperties","newProperties","runAfterPageLoad","fn","readyState","readyStateCheckInterval","setInterval","clearInterval","buildTooltipForDropdown","dropdownName","lookupTable","blockTypesChecked","checkDropdownOptionsInTable","setTooltip","getFieldValue","warning","dropdown","FieldDropdown","isOptionListDynamic","getOptions","optionKey","buildTooltipWithFieldText","msgTemplate","getText","extensionParentTooltip","tooltipWhenNotConnected","getInputsInline","removeElem","point","curve","command","points","moveTo","lineTo","lineOnAxis","val","arc","flags","radius","arrayRemove","serializer","SERIALIZER","save","addCoordinates","addInputBlocks","addNextBlocks","doFullSerialization","saveCoords","saveAttributes","saveIcons","saveFields","saveInputBlocks","saveNextBlocks","extraState","fields","saveState","inputs","connectionState","saveConnection","getShadowState","append","appendInternal","prevRecordUndo","appendPrivate","BLOCK_CREATE","MissingBlockType","loadCoords","loadAttributes","tryToConnectParent","loadIcons","loadFields","loadInputBlocks","loadNextBlocks","initBlock","RealChildOfShadow","childConnection","MissingConnection","connected","checker","connectionChecker","BadConnectionCheck","getErrorMessage","canConnectWithReason","fieldState","loadState","inputName","loadConnection","setShadowState","icons","getIcons","computeIconLocation","connectReciprocally","first","second","targetConnection","getSingleConnection","orphanBlock","foundConnection","output","typeChecker","getConnectionChecker","canConnect","getConnectionForOrphanedOutput","startBlock","getParentConnection","topConnection","disposeUiEffect","svgGroup","getAudioManager","play","getSvgXY","clone","disposeUiStep","cloneRect","Date","rect","start","workspaceScale","percent","getTime","connectionUiEffect","ripple","Svg","CIRCLE","connectionUiStep","disconnectPid","disconnectUiEffect","disconnectUiStop","getHeightWidth","magnitude","atan","DISPLACEMENT","disconnectGroup","disconnectUiStep","DURATION","skew","sin","WIGGLES","skew_","translate_","copy","toCopy","copyInternal","copyData","toCopyData","paste","typeCounts","isCapacityAvailable","saveInfo","duplicate","toDuplicate","duplicateInternal","oldCopyData","pastedThing","getCurrentBlock","currentBlock","setCurrentBlock","dummyOwner","menu","populate_","menu_","position_","focus","Menu","Role","MENU","option","menuItem","MenuItem","setRightToLeft","MENUITEM","addChild","enabled","onAction","actionHandler","scope","createWidget_","menuSize","menuDom","haltPropagation","callbackFactory","config","snapRadius","select","commentDeleteOption","deleteOption","commentDuplicateOption","duplicateOption","workspaceCommentOption","wsCommentOption","wsCommentOption.callback","DEFAULT_SIZE","finalOffset","getStartPositionRect","horizontalPadding","verticalPadding","hasVerticalScrollbar","scrollbar","canScrollVertically","horizontal","horizontalPosition","LEFT","absoluteMetrics","Scrollbar","scrollbarThickness","viewMetrics","vertical","verticalPosition","TOP","canScrollHorizontally","getCornerOppositeToolbox","toolboxMetrics","hPosition","Position","horizontalLayout","RIGHT","vPosition","BOTTOM","bumpPositionRect","startRect","margin","bumpDir","savedPositions","otherEl","intersects","bumpDirection","UP","registerEscape","ShortcutRegistry","registry","escapeAction","ESCAPE","preconditionFn","readOnly","hideChaff","keyCodes","KeyCodes","ESC","registerDelete","deleteShortcut","DELETE","Gesture","inProgress","checkAndDelete","BACKSPACE","registerCopy","ctrlC","createSerializedKey","C","CTRL","altC","ALT","metaC","META","copyShortcut","COPY","registerCut","ctrlX","X","altX","metaX","cutShortcut","CUT","BlockSvg","registerPaste","ctrlV","V","altV","metaV","pasteShortcut","PASTE","registerUndo","ctrlZ","Z","altZ","metaZ","undoShortcut","UNDO","undo","registerRedo","ctrlShiftZ","SHIFT","altShiftZ","metaShiftZ","ctrlY","Y","redoShortcut","REDO","registerDefaultShortcuts","allProcedures","root","proceduresNoReturn","getBlocksByType","map","getProcedureDef","proceduresReturn","procTupleComparator","ta","tb","localeCompare","sensitivity","findLegalName","isLegalName","opt_exclude","isNameUsed","procedureBlock","procName","Names","equals","rename","UnattachedFieldError","legalName","oldName","getValue","renameProcedure","populateProcedures","procedureList","templateName","args","arg","nameField","updateMutatorFlyout","xmlElement","argBlock","argValue","DEFAULT_ARG","fieldContent","updateToolbox","mutatorOpenListener","bubbleType","isOpen","mutator","getWorkspace","addChangeListener","mutatorChangeListener","BLOCK_DELETE","BLOCK_CHANGE","getCallers","callers","getProcedureCall","mutateCallers","defBlock","oldRecordUndo","caller","oldMutation","oldMutationDom","newMutationDom","newMutation","getDefinition","isDynamicShape","shape","isDynamic","isDebuggerEnabled","useDebugger","startDebugger","stopDebugger","rendererClass","RENDERER","theme","opt_rendererOverrides","renderer","stringButtonClickHandler","numberButtonClickHandler","colourButtonClickHandler","firstVariable","resizeSvgContents","serializerMap","load","deserializers","entries","priority","WorkspaceSvg","deserializer","pluginState","bumpObjectIntoBounds","scrollMetrics","objectMetrics","getBoundingRectangle","newYPosition","leftClamp","rightClamp","newXPosition","bumpIntoBoundsHandler","metricsManager","getMetricsManager","hasFixedEdges","BUMP_EVENTS","scrollMetricsInWsCoords","getScrollMetrics","extractObjectFromEvent","oldGroup","wasBumped","bumpTopObjectsIntoBounds","BLOCK_MOVE","getRootBlock","COMMENT_CREATE","COMMENT_MOVE","getCommentById","commentId","topBlocks","getTopBoundedElements","opt_options","getElementById","querySelector","Options","subContainer","tabIndex","State","LABEL","blockDragSurface","BlockDragSurfaceSvg","workspaceDragSurface","WorkspaceDragSurfaceSvg","createMainWorkspace","SVG","HTML_NS","XLINK_NS","defs","DEFS","rnd","random","gridPattern","Grid","gridOptions","wsOptions","zoomOptions","startScale","languageTree","flyout","addFlyout","hasTrashcan","addTrashcan","controls","addZoomControls","getThemeManager","subscribe","translate","workspaceResizeHandler","setResizeHandlerWrapper","bindDocumentEvents","toolbox","getToolbox","getFlyout","scrollToStart","trashcan","zoomControls_","moveOptions","scrollbars","ScrollbarPair","setMetrics","hasSounds","loadSounds","onKeyDown","documentEventsBound","updateInverseScreenCTM","IPAD","unbindSounds","soundBinds","audioMgr","preload","ContextMenuRegistry","undoOption","displayText","getUndoStack","scopeType","ScopeType","WORKSPACE","weight","redoOption","getRedoStack","registerCleanup","cleanOption","cleanUp","toggleOption_","shouldCollapse","timeoutFn","timeoutCounter","ms","DELAY","registerCollapse","collapseOption","collapse","registerExpand","expandOption","addDeletableBlocks_","deleteList","getDeletableBlocks_","deleteNext_","eventGroup","shift","isDeadOrDying","registerDeleteAll","deletableBlocksLength","cancelCurrentGesture","deletableBlocks","ok","registerWorkspaceOptions_","registerDuplicate","isDuplicatable","BLOCK","registerComment","commentOption","registerInline","inlineOption","registerCollapseExpandBlock","collapseExpandOption","registerDisable","disableOption","getInheritedDisabled","descendantCount","registerHelp","helpOption","url","helpUrl","showHelp","registerBlockOptions_","registerDefaultOptions","initIconData","dragIconData","location","getIconLocation","icon","opt_onlyClosePopups","resizeSvgContentsLocal","realResizeSvgContents","bindEvent_","unbindEvent_","bindEventWithChecks_","global","declareModuleId","namespace","goog","$jscomp$tmp$exports$module$name","COMPILED","define","goog.define","DEBUG","DISALLOW_TEST_ONLY_CODE","provide","goog.provide","module","goog.module","goog.module.get","declareLegacyNamespace","goog.module.declareLegacyNamespace","setTestOnly","goog.setTestOnly","opt_message","require","goog.require","requireType","goog.requireType","TOUCH_ENABLED","rawUserAgent","isJavaFx","isWebKit","isGecko","isAndroid","isIPad","isIPhone","isMac","isTablet","isMobile","raw","has","rawUpper","maxTouchPoints","JavaFx","GECKO","ANDROID","IPHONE","MOBILE","draggingConnections","other","tx","ty","distance","sum","getBoundsInfo","boundPosition","boundSize","clientTop","CONNECTION_CHECKER","CURSOR","TOOLBOX","THEME","TOOLBOX_ITEM","FLYOUTS_VERTICAL_TOOLBOX","FLYOUTS_HORIZONTAL_TOOLBOX","METRICS_MANAGER","BLOCK_DRAGGER","soup","soupLength","VAR_DELETE","VAR_RENAME","BLOCK_DRAG","SELECTED","MARKER_MOVE","TRASHCAN_OPEN","TOOLBOX_ITEM_SELECT","THEME_CHANGE","COMMENT_DELETE","COMMENT_CHANGE","setLocale","locale","forEach","k","Abstract","toJson","isBlank","run","_forward","getEventWorkspace_","VarBase","AbstractEvent","opt_variable","varId","VarCreate","varType","varName","deleteVariableById","opt_id","id_","var1","var2","CATEGORY_NAME","editable_","movable_","deletable_","disposed_","isComment","addTopComment","xy_","height_","width_","content_","fireCreateEvent","removeTopComment","getHeight","setHeight","setWidth","getXY","recordNew","getContent","setContent","xmlComment","info","parseAttributes","w","xmlX","xmlY","commentX","NaN","commentY","xmlH","xmlW","xmlId","UiBase","opt_workspaceId","Selected","opt_oldElementId","opt_newElementId","oldElementId","newElementId","ANIMATE","CLIPPATH","FECOMPOSITE","FECOMPONENTTRANSFER","FEFLOOD","FEFUNCA","FEGAUSSIANBLUR","FEPOINTLIGHT","FESPECULARLIGHTING","FILTER","FOREIGNOBJECT","G","IMAGE","LINE","PATH","PATTERN","POLYGON","RECT","TEXT","TSPAN","RESIZE_SIZE","BORDER_RADIUS","TEXTAREA_OFFSET","onMouseMoveWrapper_","onMouseUpWrapper_","eventsInit_","deleteIconBorder_","deleteGroup_","resizeGroup_","foreignObject_","svgHandleTarget_","svgRectTarget_","textarea_","rendered_","autoLayout_","focused_","svgGroup_","svgRect_","useDragSurface_","getBlockDragSurface","unselect","disposeInternal_","opt_noSelect","pathMouseDown_","updateMovable","getBubbleCanvas","getGesture","handleBubbleStart","showContextMenu","oldId","addSelect","removeSelect","blurFocus","setFocus","addFocus","removeFocus","dragSurfaceGroup","surfaceTranslation","getSurfaceTranslation","moveToDragSurface","clearTransformAttributes_","translateSurface","setBlocksAndShow","moveDuringDrag","dragSurface","newLoc","commentBounds","setDragging","adding","setDeleteStyle","setAutoLayout","_enable","createEditor_","addResizeDom_","addDeleteDom_","setSize_","resizeMouseDown_","deleteMouseDown_","deleteMouseOut_","deleteMouseUp_","TOP_OFFSET","textarea","unbindDragEvents_","startDrag","resizeMouseUp_","resizeMouseMove_","newXY","moveDrag","resizeComment_","topOffset","textOffset","blur","opt_wsWidth","wsWidth","BlockBase","opt_block","BlockChange","opt_element","opt_oldValue","opt_newValue","oldValue","setValue","oldState","getExtraBlockState_","JSON","stringify","MarkerManager","cursorSvg_","cursor_","markers","Map","markerSvg_","registerMarker","marker","unregisterMarker","setDrawer","makeMarkerDrawer","setMarkerSvg","getDrawer","set","delete","getCursor","getMarker","setCursor","cursor","drawer","setCursorSvg","cursorSvg","getBlockCanvas","markerSvg","updateMarkers","keyboardAccessibilityMode","draw","markerIds","markerId","LOCAL_MARKER","Sentinel","Field","opt_validator","opt_config","constants_","mouseDownWrapper_","textContent_","textElement_","borderRect_","fieldGroup_","tooltip_","validator_","maxDisplayLength","sourceBlock_","enabled_","visible_","isDirty_","suffixField","prefixField","clickTarget_","EDITABLE","SERIALIZABLE","value_","DEFAULT_VALUE","size_","SKIP_SETUP","configure_","setValidator","setSourceBlock","getConstants","initView","updateEditable","bindEvents_","createBorderRect_","createTextElement_","FIELD_BORDER_RECT_RADIUS","FIELD_TEXT_BASELINE_CENTER","clickTarget","getClickTarget_","onMouseDown_","fieldElement","_doFullSerialization","legacyState","saveLegacyState","loadLegacyState","callingClass","isClickable","showEditor_","isCurrentlyEditable","handler","getValidator","getBorderRect","getTextElement","getTextContent","applyColour","render_","nodeValue","getDisplayText_","updateSize_","showEditor","opt_e","opt_margin","constants","xOffset","FIELD_BORDER_RECT_X_PADDING","totalWidth","totalHeight","FIELD_TEXT_HEIGHT","contentWidth","FIELD_TEXT_FONTSIZE","FIELD_TEXT_FONTWEIGHT","FIELD_TEXT_FONTFAMILY","FIELD_BORDER_RECT_HEIGHT","positionTextElement_","positionBorderRect_","halfHeight","FIELD_TEXT_BASELINE","getAbsoluteXY_","NBSP","getText_","markDirty","forceRerender","bumpNeighbours","updateMarkers_","validatedValue","doClassValidation_","processValidation_","localValidator","doValueUpdate_","doValueInvalid_","_invalidValue","setStartField","newTip","getTooltip","referencesVariables","refreshVariableName","getParentInput","parentInput","idx","fieldRows","getFlipRtl","isTabNavigable","onShortcut","_shortcut","menuItems_","roleName_","element_","onKeyDownHandler_","mouseLeaveHandler_","mouseEnterHandler_","clickHandler_","mouseOverHandler_","highlightedItem_","openingCoords","handleMouseOver_","handleClick_","handleMouseEnter_","handleMouseLeave_","handleKeyEvent_","getElement","preventScroll","blur_","getMenuItem_","menuElem","currentElement","setHighlighted","currentHighlighted","ACTIVEDESCENDANT","highlightNext","highlightHelper_","highlightPrevious","highlightFirst_","highlightLast_","startIndex","delta","oldCoords","newCoords","performAction","shiftKey","metaKey","altKey","highlighted","keyCode","ENTER","SPACE","DOWN","PAGE_UP","HOME","PAGE_DOWN","END","scrollHeight","opt_value","rightToLeft_","highlight_","checked_","checkable_","actionHandler_","checkbox","contentDom","DISABLED","setCheckable","checkable","setChecked","checked","highlight","nameDep","menuGenerator","svgArrow_","arrow_","imageElement_","selectedMenuItem_","generatedOptions_","menuGenerator_","trimOptions_","selectedOption_","shouldAddBorderRect_","FIELD_DROPDOWN_SVG_ARROW","createSVGArrow_","createTextArrow_","FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW","ARROW_CHAR","FIELD_DROPDOWN_SVG_ARROW_SIZE","setAttributeNS","FIELD_DROPDOWN_SVG_ARROW_DATAURI","dropdownCreate_","menuElement","FIELD_DROPDOWN_COLOURED_DIV","primaryColour","getColour","colourTertiary","dropdownDispose_","LISTBOX","image","Image","alt","OPTION","handleMenuActionEvent_","onItemSelected_","hasImages","label","strings","shortest","prefixLength","suffixLength","applyTrim_","opt_useCache","isValueValid","colourSecondary","fill","colourPrimary","renderSelectedImage_","renderSelectedText_","imageJson","imageHeight","imageWidth","hasBorder","FIELD_DROPDOWN_BORDER_RECT_HEIGHT","IMAGE_Y_PADDING","xPadding","arrowWidth","positionSVGArrow_","textWidth","textPadding","FIELD_DROPDOWN_SVG_ARROW_PADDING","svgArrowSize","newOptions","CHECKMARK_OVERHANG","MAX_MENU_HEIGHT_VH","IMAGE_Y_OFFSET","BubbleOpen","opt_isOpen","opt_bubbleType","BubbleType","opt_pair","opt_class","oldHostMetrics_","ratio","startDragHandle","handlePosition_","handleLength_","scrollbarLength_","startDragMouse_","containerVisible_","isVisible_","outerSvg_","svgHandle_","svgBackground_","lengthAttribute_","positionAttribute_","pair_","margin_","DEFAULT_SCROLLBAR_MARGIN","origin_","createDom_","onMouseDownBarWrapper_","onMouseDownBar_","onMouseDownHandleWrapper_","onMouseDownHandle_","cleanUp_","unsubscribe","constrainHandleLength_","setHandleLength_","newLength","constrainHandlePosition_","setHandlePosition","newPosition","setScrollbarLength_","newSize","setPosition","tempX","tempY","opt_metrics","hostMetrics","getMetrics","metricsAreEquivalent_","resizeHorizontal_","resizeVertical_","updateMetrics_","requiresViewResize_","viewWidth","viewHeight","absoluteLeft","absoluteTop","resizeViewHorizontal","resizeContentHorizontal","viewSize","xCoordinate","scrollWidth","handleLength","maxScrollDistance","maxHandleOffset","handleOffset","resizeViewVertical","resizeContentVertical","setContainerVisible","visibilityChanged","updateDisplay_","mouseXY","getInverseScreenCTM","mouseLocation","handleXY","handleStart","handlePosition","pageLength","setupDragSurface","onMouseUpHandle_","onMouseMoveHandle_","currentMouse","resetDragSurface","getRatio_","updateMetrics","setOrigin","Bubble","anchorXY","bubbleWidth","bubbleHeight","bubbleBack_","bubbleArrow_","bubbleGroup_","relativeTop_","relativeLeft_","onMouseDownResizeWrapper_","onMouseDownBubbleWrapper_","moveCallback_","resizeCallback_","workspace_","shape_","angle","ARROW_ANGLE","arrow_radians_","canvas","setAnchorLocation","getBBox","BORDER_WIDTH","setBubbleSize","positionBubble_","renderArrow_","hasResize","embossFilterId","bubbleEmboss","resizeSize","bubbleMouseDown_","setSvgId","promote","bubbleMouseUp_","registerResizeEvent","registerMoveEvent","lastChild","anchorXY_","layoutBubble_","getViewMetrics","optimalLeft","getOptimalRelativeLeft_","optimalTop","getOptimalRelativeTop_","topPosition","MIN_BLOCK_HEIGHT","startPosition","endPosition","bottomPosition","closerPosition","fartherPosition","topPositionOverlap","getOverlap_","startPositionOverlap","closerPositionOverlap","fartherPositionOverlap","mostOverlap","relativeMin","relativeLeft","bubbleRight","workspaceRight","workspaceLeft","bubbleLeft","relativeTop","bubbleTop","bubbleBottom","workspaceTop","workspaceBottom","getBubbleSize","doubleBorderWidth","relBubbleX","relBubbleY","relAnchorX","relAnchorY","rise","hypotenuse","acos","rightAngle","rightRise","rightRun","cos","bubbleSize","thickness","ARROW_THICKNESS","backoffRatio","ANCHOR_RADIUS","baseX1","baseY1","baseX2","baseY2","swirlAngle","swirlRise","ARROW_BEND","swirlRun","hexColour","paragraph","tspanElement","createNonEditableBubble","paragraphElement","iconXY","bubble","pathObject","svgPath","maxWidth","DEFAULT_SNAP_RADIUS","dragRadius","flyoutDragRadius","connectingSnapRadius","currentConnectionPreference","bumpDelay","Icon","iconGroup_","collapseHidden","SIZE","iconXY_","bubble_","block_","createIcon","getBlock","drawIcon_","iconClick_","setIconLocation","getCorrectedSize","_group","_visible","Theme","opt_blockStyles","opt_categoryStyles","opt_componentStyles","startHats","blockStyles","categoryStyles","componentStyles","fontStyle","setBlockStyle","blockStyleName","blockStyle","setCategoryStyle","categoryStyleName","categoryStyle","getComponentStyle","componentName","setComponentStyle","styleValue","setFontStyle","setStartHats","defineTheme","themeObj","base","defaultBlockStyles","Classic","toolboxJsonDef","hasCollapse","hasComments","hasDisable","rawHasTrashcan","rawHasCollapse","rawHasComments","rawHasDisable","rawHasSounds","maxTrashcanContents","toolboxAtStart","toolboxPosition","endsWith","rawOneBasedIndex","oneBasedIndex","maxBlocks","maxInstances","parseMoveOptions_","hasScrollbars","parseGridOptions_","parseZoomOptions_","parseThemeOptions_","rendererOverrides","move","wheel","drag","zoom","maxScale","minScale","scaleSpeed","pinch","grid","spacing","snap","quarkNames","workspaceHeight_","workspaceWidth_","updateWorkspacePid_","sourceListener_","rootBlock_","svgDialog_","quarkNames_","setBlock","quarkXml","quarkName","workspaceOptions","hasFlyout","newWorkspaceSvg","internalIsMutator","flyoutSvg","background","svgBlockCanvas_","resizeBubble_","workspaceSize","getCanvas","flyoutScrollMetrics","translation","onBubbleMove_","recordDragTargets","tree","CORNER_RADIUS","saveConnections","thisRootBlock","this.sourceListener_","workspaceChanged_","updateWorkspace_","removeChangeListener","shouldIgnoreMutatorEvent_","MARGIN","oldExtraState","savedRendered","newExtraState","mutationGroup","updateBlockStyle","workspaceBlocks","setStyle","getStyleName","flyoutBlocks","reconnect","connectionChild","connectionParent","currentParent","disconnect","findParentWs","outerWs","getInjectionDivXY_","aria","arrayUtils","browserEvents","deprecation","extensions","idGenerator","math","parsing","stringUtils","svgMath","svgPaths","userAgent","TrashcanOpen","Capability","name_","POSITIONABLE","DRAG_TARGET","DELETE_AREA","AUTOHIDEABLE","ComponentManager","componentData","capabilityToComponentIds","addComponent","componentInfo","component","capabilities","stringCapabilities","capability","removeComponent","addCapability","getComponent","hasCapability","removeCapability","getComponents","sorted","componentIds","components","componentDataList","componentDatum","DeserializationError","toDevString","reason","childState","VARIABLES","BLOCKS","saveBlock","BlockSerializer","blockStates","BlockCreate","BlockDelete","oldXml","wasShadow","oldJson","ConnectionType","Connection","shadowDom_","check_","shadowState_","connect_","INPUT","INPUT_VALUE","parentBlock","orphan","shadowState","stashShadowState_","applyShadowState_","setParent","orphanConnection","getConnectionForOrphanedConnection","onFailedConnect","setShadowStateInternal_","unplug","isSuperior","NEXT_STATEMENT","_otherConnection","otherConnection","disconnectInternal_","respawnShadow_","createShadowBlock_","onCheckChanged_","setCheck","check","getCheck","shadowDom","returnCurrent","neighbours","_maxLimit","serializeShadow_","attemptToConnect","blockShadow","OUTPUT_VALUE","lastConnectionInStack","CAN_CONNECT","REASON_SELF_CONNECTION","REASON_WRONG_TYPE","REASON_TARGET_NULL","REASON_CHECKS_FAILED","REASON_DIFFERENT_WORKSPACES","REASON_SHADOW_PARENT","REASON_DRAG_CHECKS_FAILED","REASON_PREVIOUS_AND_OUTPUT","COLLAPSED_INPUT_NAME","COLLAPSED_FIELD_NAME","FieldLabel","class_","class","setClass","cssClass","Input","align","Align","appendField","insertFieldAt","removeField","opt_quiet","renderList","renderedConnection","startTrackingAll","stopTrackingAll","setAlign","ASTNode","opt_params","wsCoordinate_","type_","isConnection_","isConnectionType_","location_","processParams_","params","wsCoordinate","getLocation","getType","getWsCoordinate","isConnection","findNextForInput_","curIdx","NAVIGATE_ALL_FIELDS","createFieldNode","createInputNode","findNextForField_","fieldIdx","newInput","findPrevForInput_","findPrevForField_","navigateBetweenStacks_","curLocation","curLocationAsBlock","curRoot","resultIndex","createStackNode","findTopASTNodeForBlock_","createConnectionNode","createBlockNode","getOutAstNodeForBlock_","getTopStackBlock","findFirstFieldOrInput_","types","STACK","OUTPUT","PREVIOUS","NEXT","in","prev","out","blockPos","DEFAULT_OFFSET_Y","createWorkspaceNode","PREVIOUS_STATEMENT","createTopNode","astNode","Block","hue_","colour_","styleName_","suppressPrefixSuffix","contextMenu","parentBlock_","childBlocks_","collapsed_","isShadow_","outputShape_","disposing","isInsertionMarker_","hat","onchangeWrapper_","statementInputCount","setBlockById","isInMutator","assign","addTopBlock","addTypedBlock","doInit_","onchange","setOnChange","healStack","removeTopBlock","removeTypedBlock","removeBlockById","connections","getConnections_","opt_healStack","unplugFromRow_","unplugFromStack_","thisConnection","getOnlyValueConnection_","previousTarget","nextTarget","_all","myConnections","ignoreShadows","getInputWithBlock","getSurroundParent","prevBlock","getPreviousBlock","getFirstStatementConnection","rootBlock","previous","ordered","childBlocks","hasBlockLimits","setInsertionMarker","insertionMarker","isDisposed","getMatchingConnection","otherBlock","conn","otherConnections","setHelpUrl","getHue","parsed","onchangeFn","getVars","vars","model","updateVarName","renameVarById","newId","setFieldValue","setPreviousStatement","newBoolean","opt_check","makeConnection_","setNextStatement","setOutput","setOutputShape","outputShape","getOutputShape","ancestor","opt_maxLength","opt_emptyToken","shouldAddParentheses","checks","checkRoot","rootNode","emptyFieldPlaceholder","prevNavigateFields","current","acc","appendValueInput","appendInput_","appendStatementInput","appendDummyInput","warningPrefix","jsonInitStyle_","jsonInitColour_","interpolate_","localizedText","localizedValue","extensionNames","styleError","opt_disableCheck","overwrites","lastDummyAlign","validateTokens_","elements","interpolateArguments_","fieldStack","isInputKeyword_","inputFromJson_","fieldFromJson_","argsCount","visitedArgsHash","visitedArgsCount","token","stringToFieldJson_","dummyInput","alignmentLookup","CENTRE","alignment","moveInputBefore","refName","inputIndex","refIndex","moveNumberedInputBefore","RangeError","removeInput","getInputTargetBlock","setWarningText","_text","_opt_id","_mutator","allInputsFilled","opt_shadowBlocksAreFilled","Comment","cachedText_","paragraphElement_","onInputWrapper_","onChangeWrapper_","onWheelWrapper_","model_","resizeTextarea_","startEdit_","disposeBubble_","createBubble_","onBubbleResize_","widthMinusBorder","heightMinusBorder","createEditableBubble_","createNonEditableBubble_","updateText","registry_","reset","getContextMenuOptions","menuOptions","precondition","menuOption","COLLAPSE_CHARS","DRAG_STACK","OPPOSITE_TYPE","RENAME_VARIABLE_ID","DELETE_VARIABLE_ID","Marker","drawer_","curNode_","getCurNode","setCurNode","oldNode","Cursor","curNode","BasicCursor","getNextNode_","validNode_","getPreviousNode_","isValid","siblingOrParent","findSiblingOrParent_","getRightMostChild_","nextNode","registrationName","TabNavigateCursor","BUMP_RANDOMNESS","RenderedConnection","highlightPath","db_","connectionDBList","dbOpposite_","offsetInBlock_","trackedState_","TrackedState","WILL_TRACK","TRACKED","removeConnection","distanceFrom","xDiff","yDiff","bumpAwayFrom","staticConnection","addConnection","moveToOffset","blockTL","setOffsetInBlock","getOffsetInBlock","tighten","svgRoot","moveConnections","closest","maxLimit","dxy","searchForClosest","renderConstants","shapeFor","yLen","TAB_OFFSET_FROM_TOP","pathDown","xLen","NOTCH_OFFSET_LEFT","pathLeft","unhighlight","setTracking","doTracking","UNTRACKED","getNeighbours","parentRendered","childRendered","Warning","text_","setText","allWarnings","renderingDebugger","warningTextDb","commentIcon_","renderIsInProgress_","customContextMenu","getBlockStyle","makePathObject","getColourSecondary","getColourTertiary","oldParent","isClearing","oldXY","eventsEnabled","curXY","moveOffDragSurface","clearAndHide","snapToGrid","getGrid","shouldSnap","getSpacing","half","blockBounds","updateCollapsed_","collapsedInputName","collapsedFieldName","tab","tabCursor","currentNode","nextField","handleBlockStart","open","generateContextMenu","INSERTION_MARKER_COLOUR","updateInsertionMarker","animate","blockWorkspace","n","shouldHaveComment","timeout","changedState","collapsedParent","COLLAPSED_WARNING_ID","oldText","newText","updateHighlighted","updateSelected","updateDraggingDelete","styleObj","getBlockStyleForColour","bringToFront","removed","track","all","renderedConn","renderedOther","scheduleSnapAndBump","positionNearConnection","sourceConnection","opt_bubble","updateConnectionLocations_","nextHeightWidth","tabHeight","NOTCH_HEIGHT","fadeForReplacement","updateReplacementFade","highlightShapeForInput","updateShapeForInputHighlight","INLINE","DragTarget","onDragEnter","_dragElement","onDragOver","onDragExit","onDrop","getClientRect","shouldPreventMove","DeleteArea","wouldDelete_","wouldDelete","couldConnect","couldDeleteBlock","updateWouldDelete_","SPRITE","Trashcan","contents_","isLidOpen","minOpenness_","lidTask_","svgLid_","top_","left_","lidOpen_","initialized_","flyoutWorkspaceOptions","HorizontalFlyout","VerticalFlyout","onDelete_","clip","WIDTH","BODY_HEIGHT","LID_HEIGHT","SPRITE_LEFT","SPRITE_TOP","blockMouseDownWhenOpenable_","click","mouseOver_","mouseOut_","animateLid_","getComponentManager","setLidOpen","hasContents_","contentsIsOpen","openFlyout","string","fireUiEvent_","closeFlyout","autoHide","onlyClosePopups","emptyContents","setMinOpenness_","cornerPosition","MARGIN_HORIZONTAL","MARGIN_VERTICAL","positionRect","trashRect","MARGIN_HOTSPOT","frames","ANIMATION_FRAMES","setLidAngle_","MAX_LID_ANGLE","OPACITY_MIN","OPACITY_MAX","ANIMATION_LENGTH","lidAngle","openAtRight","newMin","closeLid","trashcanOpen","uiEvent","cleanedJson","cleanBlockJson_","HAS_BLOCKS_LID_ANGLE","cleanRec","blockInfo","ToolboxItemSelect","opt_oldItem","opt_newItem","oldItem","newItem","ToolboxItem","toolboxItemDef","parentToolbox","level_","parent_","getLevel","toolboxItemDef_","parentToolbox_","getClickTarget","isSelectable","isCollapsible","setVisible_","_isVisible","ToolboxCategory","categoryDef","labelDom_","iconDom_","rowContents_","rowDiv_","htmlDiv_","isDisabled_","isHidden_","flyoutItems_","cssConfig_","makeDefaultCssConfig_","parseCategoryDef_","parseContents_","flyoutItem","itemDef","getColour_","createContainer_","TREEITEM","LEVEL","createRowContainer_","pointerEvents","createRowContentsContainer_","createIconDom_","PRESENTATION","createLabelDom_","LABELLEDBY","addColourBorder_","rowDiv","nestedPadding","paddingRight","paddingLeft","contentsContainer","toolboxIcon","isHorizontal","toolboxLabel","refreshTheme","border","borderWidth","borderRight","borderLeft","styleName","getColourfromStyle_","parseColour_","colourValue","openIcon_","iconDiv","closedIconClass","closeIcon_","openIconClass","getSelectedItem","clearSelection","allAncestorsExpanded_","category","isExpanded","onClick","isSelected","defaultColour","defaultBackgroundColour","setDisabled","isDisabled","getName","getContents","updateFlyoutContents","newDefinition","kind","custom","categorystyle","cssconfig","hidden","ToolboxSeparator","separatorDef","CollapsibleToolboxCategory","subcategoriesDiv_","expanded_","toolboxItems_","cssConfig","prevIsFlyoutItem","createToolboxItem_","registryName","toolboxItem","ToolboxItemClass","setExpanded","subCategories","getChildToolboxItems","createSubCategoriesDom_","GROUP","subcategories","newCategory","newCategoryDiv","EXPANDED","handleToolboxItemResize","childToolboxItems","toggleExpanded","Toolbox","contentsDiv_","HtmlDiv","previouslySelectedItem_","selectedItem_","flyout_","boundEvents_","toolboxDef_","horizontalLayout_","contentMap_","createFlyout_","themeManager","createContentsContainer_","TREE","attachEvents_","toolboxContainer","flexDirection","clickEvent","onClick_","keyDownEvent","onKeyDown_","itemId","getToolboxItemById","setSelectedItem","selectNext_","selectPrevious_","selectParent_","selectChild_","untypedItem","FlyoutClass","renderContents_","fragment","createDocumentFragment","addToolboxItem_","toolboxItemDom","getToolboxItems","addStyle","removeStyle","toolboxRect","BIG_NUM","_couldConnect","updateCursorDeleteStyle_","getPreviouslySelectedItem","workspaceMetrics","toolboxDiv","newX","childAsCategory","refreshSelection","autoClose","shouldDeselectItem_","deselectItem_","shouldSelectItem_","selectItem_","updateFlyout_","fireSelectEvent_","selectItemByPosition","oldElement","collapsibleItem","nextItemIdx","nextItem","prevItemIdx","prevItem","Zelos","Click","opt_targetType","targetType","ClickTarget","BubbleDragger","dragTarget_","wouldDeleteBubble_","startXY_","dragSurface_","startBubbleDrag","dragBubble","currentDragDeltaXY","pixelsToWorkspaceUnits_","oldDragTarget","getDragTarget","oldWouldDeleteBubble","shouldDelete_","updateCursorDuringBubbleDrag_","dragTarget","componentManager","isDeleteArea","endBubbleDrag","fireMoveEvent_","setOldCoordinate","pixelCoord","WorkspaceDragger","horizontalScrollEnabled_","isMovableHorizontally","verticalScrollEnabled_","isMovableVertically","startScrollXY_","endDrag","scroll","creatorWorkspace","mouseDownXY_","startWorkspace_","targetBlock_","startBlock_","startField_","startBubble_","hasExceededDragRadius_","workspaceDragger_","blockDragger_","bubbleDragger_","onUpWrapper_","onMoveWrapper_","isEnding_","hasStarted_","calledUpdateIsDragging_","mostRecentEvent_","currentDragDeltaXY_","healStack_","clearGesture","updateFromEvent_","currentXY","updateDragDelta_","changed","updateIsDragging_","currentDragDelta","limitRadius","updateIsDraggingFromFlyout_","isBlockCreatable","isScrollable","isDragTowardWorkspace","updateScreenCalculationsIfScrolled","createBlock","updateIsDraggingBubble_","startDraggingBubble_","updateIsDraggingBlock_","startDraggingBlock_","updateIsDraggingWorkspace_","wsMovable","isDraggable","BlockDraggerClass","doStart","cancel","pointerType","handleMove","handleUp","log","isBubbleClick_","doBubbleClick_","isFieldClick_","doFieldClick_","isBlockClick_","doBlockClick_","isWorkspaceClick_","doWorkspaceClick_","bringBlockToFront_","handleWsStart","setStartWorkspace_","fireWorkspaceClick_","handleFlyoutStart","setStartFlyout_","setStartBlock","setStartBubble","setTargetBlock_","hasStartBubble","hasStartBlock","fieldClickable","hasStarted","getInsertionMarkers","getCurrentDragger","currentGesture_","shortcuts","keyMap","shortcut","registeredShortcut","addKeyMapping","allowCollision","shortcutName","removeAllKeyMappings","opt_allowCollision","shortcutNames","removeKeyMapping","shortcutIdx","setKeyMap","newKeyMap","getKeyMap","legacyKeyMap","getRegistry","legacyRegistry","serializeKeyEvent_","getShortcutNamesByKeyCode","getKeyCodesByShortcutName","serializedKey","modifier","modifierKeys","getModifierState","checkModifiers_","modifiers","modifierKeyCode","ThemeChange","opt_themeName","themeName","ViewportChange","opt_top","opt_left","opt_scale","opt_oldScale","ConnectionDB","connections_","yPos","calculateIndexForYPos_","findIndexOfConnection_","bestGuess","pointer","pointerMin","pointerMax","pointerMid","maxRadius","checkConnection_","yIndex","currentX","db","currentY","isInYRange_","baseY","baseX","closestIndex","bestConnection","bestRadius","dbList","pattern","line2","line1","getPatternId","update","safeSpacing","end","setLineAttributes","x1","x2","y1","y2","reservedWordsList","opt_variablePrefix","dbReverse","variableMap_","variablePrefix_","reservedWords","setVariableMap","getNameForUserVariable_","populateVariables","NameType","VARIABLE","nameOrId","normalizedName","DEVELOPER_VARIABLE","typeDb","safeName","getDistinctName","getUserNames","userNames","safeName_","encodeURI","name1","name2","DEVELOPER_VARIABLE_TYPE","TypesContainer","NONE","HAT","ICON","SPACER","BETWEEN_ROW_SPACER","IN_ROW_SPACER","EXTERNAL_VALUE_INPUT","INLINE_INPUT","STATEMENT_INPUT","CONNECTION","PREVIOUS_CONNECTION","NEXT_CONNECTION","OUTPUT_CONNECTION","CORNER","LEFT_SQUARE_CORNER","LEFT_ROUND_CORNER","RIGHT_SQUARE_CORNER","RIGHT_ROUND_CORNER","JAGGED_EDGE","ROW","TOP_ROW","BOTTOM_ROW","INPUT_ROW","LEFT_CORNER","RIGHT_CORNER","nextTypeValue_","hasOwnProperty","isField","isHat","isIcon","isSpacer","isInRowSpacer","isInput","isExternalInput","isInlineInput","isStatementInput","isPreviousConnection","isNextConnection","isPreviousOrNextConnection","isLeftRoundedCorner","isRightRoundedCorner","isLeftSquareCorner","isRightSquareCorner","isCorner","isJaggedEdge","isRow","row","isBetweenRowSpacer","isTopRow","isBottomRow","isTopOrBottomRow","isInputRow","Types","Measurable","centerline","xPos","notchOffset","Row","widthWithConnectedBlocks","minWidth","minHeight","hasStatement","hasExternalInput","statementEdge","hasJaggedEdge","hasDummyInput","hasInlineInput","getLastInput","measure","startsWithElemSpacer","endsWithElemSpacer","getFirstSpacer","getLastSpacer","BottomRow","hasNextConnection","descenderHeight","hasLeftSquareCorner","hasRightSquareCorner","_block","connectionModel","InputConnection","connectionOffsetY","connectionOffsetX","connectedBlock","connectedBlockWidth","connectedBlockHeight","ExternalValueInput","MEDIUM_PADDING","EXTERNAL_VALUE_INPUT_PADDING","connectionHeight","connectionWidth","flipRtl","Hat","START_HAT","ascenderHeight","InRowSpacer","SPACER_DEFAULT_HEIGHT","InlineInput","EMPTY_INLINE_INPUT_HEIGHT","EMPTY_INLINE_INPUT_PADDING","StatementInput","STATEMENT_BOTTOM_SPACER","EMPTY_STATEMENT_INPUT_HEIGHT","STATEMENT_INPUT_NOTCH_OFFSET","InputRow","connectedBlockWidths","JaggedEdge","JAGGED_TEETH","NextConnection","OutputConnection","startX","PreviousConnection","RoundCorner","opt_position","SpacerRow","precedesStatement","followsStatement","SquareCorner","NO_PADDING","TopRow","capline","hasPreviousConnection","hasHat","ADD_START_HATS","ConstantProvider","SMALL_PADDING","MEDIUM_LARGE_PADDING","LARGE_PADDING","TAB_HEIGHT","TAB_VERTICAL_OVERLAP","TAB_WIDTH","NOTCH_WIDTH","MIN_BLOCK_WIDTH","EMPTY_BLOCK_SPACER_HEIGHT","STATEMENT_INPUT_PADDING_LEFT","BETWEEN_STATEMENT_PADDING_Y","START_HAT_HEIGHT","START_HAT_WIDTH","JAGGED_TEETH_HEIGHT","JAGGED_TEETH_WIDTH","FIELD_BORDER_RECT_Y_PADDING","FIELD_BORDER_RECT_COLOUR","FIELD_COLOUR_FULL_BLOCK","FIELD_TEXTINPUT_BOX_SHADOW","FIELD_COLOUR_DEFAULT_WIDTH","defs_","embossFilter_","disabledPatternId","disabledPattern_","debugFilterId","cssNode_","debugFilter_","CURSOR_COLOUR","MARKER_COLOUR","CURSOR_WS_WIDTH","WS_CURSOR_HEIGHT","CURSOR_STACK_PADDING","CURSOR_BLOCK_PADDING","CURSOR_STROKE_WIDTH","FULL_BLOCK_FIELDS","INSERTION_MARKER_OPACITY","SHAPES","PUZZLE","NOTCH","TALL_INPUT_FIELD_OFFSET_Y","DUMMY_INPUT_SHADOW_MIN_HEIGHT","DUMMY_INPUT_MIN_HEIGHT","TOP_ROW_MIN_HEIGHT","TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT","BOTTOM_ROW_MIN_HEIGHT","BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT","START_POINT","FIELD_COLOUR_DEFAULT_HEIGHT","FIELD_CHECKBOX_X_OFFSET","randomIdentifier","makeJaggedTeeth","makeNotch","makeStartHat","PUZZLE_TAB","makePuzzleTab","INSIDE_CORNERS","makeInsideCorners","OUTSIDE_CORNERS","makeOutsideCorners","setTheme","validatedBlockStyle_","setDynamicProperties_","setFontConstants_","setComponentConstants_","fontMetrics","createBlockStyle_","valid","parsedColour","generateSecondaryColour_","generateTertiaryColour_","inputColour","mainPath","path","makeMainPath","up","back","control1Y","overlap","control2Y","endPoint1","endPoint2","pathUp","dir","outerWidth","innerWidth","pathRight","innerTopLeftCorner","innerBottomLeftCorner","pathTop","pathBottom","topLeft","topRight","bottomLeft","bottomRight","rightHeight","selector","injectCSS_","embossFilter","feSpecularLighting","disabledPattern","createDebugFilter","debugFilter","debugComponentTransfer","cssArray","getCSS_","cssNodeId","Debug","debugElements_","svgRoot_","randomColour_","clearElems","drawSpacerRow","cursorY","isRtl","rowSpacers","isNegativeSpacing","drawSpacerElem","rowHeight","elemSpacers","drawRenderedElem","elems","drawConnection","drawRenderedRow","rows","connectedBlockBounds","drawRowWithElements","drawBoundingBox","widthWithChildren","drawDebug","rightSide","drawRender","Drawer","inlinePath_","outlinePath_","info_","topLeft_","hideHiddenIcons_","drawOutline_","drawInternals_","setPath","flipRTL","recordSizeOnBlock_","iconInfo","hiddenIcons","drawTop_","drawJaggedEdge_","drawStatementInput_","drawValueInput_","drawRightSideRow_","drawBottom_","drawLeft_","topRow","positionPreviousConnection_","startY","positionExternalValueConnection_","innerHeight","positionStatementInputConnection_","bottomRow","positionNextConnection_","rightCornerYOffset","outlinePath","positionOutputConnection_","tabBottom","drawInlineInput_","layoutField_","fieldInfo","connectionTop","connectionBottom","positionInlineInputConnection_","connX","connInfo","RenderInfo","inputRows","renderer_","isInline","createRows_","addElemSpacing_","addRowSpacing_","computeBounds_","alignRowElements_","finalize_","populateTopRow_","activeRow","lastInput","shouldStartNewRow_","addInput_","populateBottomRow_","hasPrevious","cornerClass","leftSquareCorner","rightSquareCorner","oldElems","getInRowSpacing_","widestStatementRowFields","blockWidth","widestRowWithConnectedBlocks","statementInput","alignStatementRow_","currentWidth","missingSpace","getDesiredRowWidth_","desiredWidth","addAlignmentPadding_","_row","firstSpacer","lastSpacer","oldRows","makeSpacerRow_","getSpacerRowHeight_","getSpacerRowWidth_","spacer","_prev","_next","getElemCenterline_","recordElemPositions_","xCursor","yCursor","MarkerMove","isCursor","opt_oldNode","opt_newNode","CURSOR_CLASS","MARKER_CLASS","HEIGHT_MULTIPLIER","MarkerSvg","markerSvgRect_","markerSvgLine_","markerInput_","markerBlock_","currentMarkerSvg","createDomInternal_","setParent_","applyColour_","showAtLocation_","fireMarkerEvent_","beginElement","connectionType","curNodeAsConnection","showWithBlock_","showWithOutput_","showWithInput_","showWithNext_","showWithPrevious_","showWithField_","showWithCoordinates_","showWithStack_","showWithBlockPrevOutput_","markerHeight","markerOffset","connectionShape","positionPrevious_","positionOutput_","positionBlock_","showCurrent_","positionLine_","positionRect_","positionInput_","heightWidth","yPadding","markerPath","flipRtl_","curBlock","getBlinkProperties_","blinkProperties","attributeName","_curNode","firstElementChild","PathObject","pathString","updateShadow_","updateDisabled_","setClass_","_conn","DUPLICATE_BLOCK_ERROR","InsertionMarkerManager","localConnection_","closestConnection_","lastMarker_","lastOnStack_","wouldDeleteBlock_","fadedBlock_","highlightedBlock_","markerConnection_","topBlock_","firstMarker_","createMarkerBlock_","availableConnections_","initAvailableConnections_","updateAvailableConnections","wouldDeleteBlock","wouldConnectBlock","applyConnections","hidePreview_","inferiorConnection","candidate","getCandidate_","shouldUpdatePreviews_","maybeHidePreview_","maybeShowPreview_","imType","sourceInput","resultInput","sourceField","resultField","available","lastOnStack","candidateLocal","local","candidateClosest","curDistance","getStartRadius_","myConnection","neighbour","showPreview_","getConnectionPreviewMethod","method","PREVIEW_TYPE","INPUT_OUTLINE","showInsertionInputOutline_","INSERTION_MARKER","showInsertionMarker_","REPLACEMENT_FADE","showReplacementFade_","shouldHighlightConnection","closestChanged","localChanged","hideReplacementFade_","hideInsertionInputOutline_","hideInsertionMarker_","isLastInStack","imConn","imBlock","markerNext","markerPrev","markerOutput","isFirstInOutputStack","isFirstInStatementStack","innerConnection","previousBlockNextConnection","PreviewType","Renderer","overrides","makeConstants_","refreshDom","previousConstants","makeRenderInfo_","makeDrawer_","makeDebugger_","orphanCanConnectAtEnd","localType","ThemeManager","subscribedWorkspaces_","componentDB","prevTheme","oldClassName","newClassName","componentList","propertyName","subscribeWorkspace","unsubscribeWorkspace","owner_","ZOOM_IN_MULTIPLIER","ZOOM_OUT_MULTIPLIER","TouchGesture","arguments","isMultiTouch_","cachedPoints","startDistance_","previousScale_","isPinchZoomEnabled_","onStartWrapper_","handleTouchStart","isMultiTouch","handleTouchMove","handleTouchEnd","getTouchPoint","pointers","point0","point1","handlePinch_","moveDistance","gestureScale","onCreateVariableButtonClick_String","onCreateVariableButtonClick_Number","onCreateVariableButtonClick_Colour","ConnectionChecker","opt_distance","safety","doSafetyChecks","doTypeChecks","doDragChecks","errorCode","superiorBlock","inferiorBlock","superiorConnection","checkArrayOne","checkArrayTwo","canConnectToPrevious_","VarDelete","VarRename","VariableMap","variableMap","conflictVar","renameVariableWithConflict_","renameVariableAndUses_","deleteVariable","variableId","tempVar","variableName","uses","getVariableUsesById","procedureName","deleteText","confirmText","deleteVariableInternal","list","getVariableTypes","variableTypes","flat","Workspace","internalIsFlyout","MAX_UNDO","topBlocks_","topComments_","commentDB","listeners_","undoStack_","redoStack_","blockDB","typedBlocksDB","potentialVariableMap_","connectionCheckerClass","sortObjects_","aXY","bXY","SCAN_ANGLE","filtered","remainingCapacity","remainingCapacityOfType","maxInstanceOfType","copyableBlocksCount","redo","inputStack","outputStack","inputEvent","clearUndo","createPotentialVariableMap","getById","getAll","SOUND_LIMIT","WorkspaceAudio","sounds","lastSound_","filenames","audioTest","filename","ext","canPlayType","sound","volume","playPromise","then","pause","catch","opt_volume","now","mySound","ZoomControls","zoomResetGroup","zoomOutGroup","zoomInGroup","onZoomOutWrapper_","onZoomInWrapper_","onZoomResetWrapper_","HEIGHT_","WIDTH_","SMALL_SPACING_","LARGE_SPACING_","MARGIN_HORIZONTAL_","MARGIN_VERTICAL_","createZoomOutSvg_","createZoomInSvg_","createZoomResetSvg_","zoomInTranslateY","zoomOutTranslateY","zoomoutSvg","zoom_","zoominSvg","amount","zoomCenter","fireZoomEvent_","zoomresetSvg","resetZoom_","beginCanvasTransition","scrollCenter","endCanvasTransition","ZOOM_TO_FIT_MARGIN","opt_blockDragSurface","opt_wsDragSurface","resizeHandlerWrapper_","resizesEnabled_","startScrollY","startScrollX","dragDeltaXY_","oldScale_","oldLeft_","oldTop_","workspaceDragSurface_","blockDragSurface_","toolbox_","isDragSurfaceActive_","inverseScreenCTM_","configureContextMenu","lastRecordedPageScroll_","injectionDiv_","inverseScreenCTMDirty_","highlightedBlocks_","toolboxCategoryCallbacks","flyoutButtonCallbacks","cachedParentSvg_","topBoundedElements_","dragTargetAreas_","metricsManager_","MetricsManagerClass","setTopLevelWorkspaceMetrics_","componentManager_","useWorkspaceDragSurface_","audioManager_","grid_","markerManager_","Variables","registerToolboxCategoryCallback","VariablesDynamic","Procedures","themeManager_","cachedParentSvgSize_","getMarkerManager","setMetricsManager","updateBlockStyles_","refreshToolboxSelection","ctm","opt_backgroundClass","svgBubbleCanvas_","onMouseWheel_","ToolboxClass","CursorClass","parentSvg","newTrashcan","svgTrashcan","_workspace","svgZoomControls","opt_own","updateScreenCalculations_","positionables","getUiMetrics","positionable","currScroll","maybeFireViewportChangeEvent","translateAndScaleGroup","trans","previousElement","previousSibling","coord","setContentsAndShow","imList","highlightBlock","opt_state","pasteBlock_","pasteWorkspaceComment_","jsonBlock","collide","allBlocks","otherXY","dragTargets","targetArea","clientRect","canWheelZoom","canWheelMove","scrollDelta","commandKey","PIXELS_PER_ZOOM_STEP","topElements","boundary","topElement","blockBoundary","setBrowserFocus","activeElement","setActive","scaleChange","newScale","getCTM","center","f","setScale","svgWidth","svgHeight","zoomToFit","workspaceWidth","workspaceHeight","blocksBox","doubleMargin","blocksWidth","blocksHeight","ratioX","ratioY","centerOnBlock","pixelX","multiplier","pixelY","reflow","resizeView","resizeContent","getScale","maxYScroll","maxYDisplacement","maxXDisplacement","addTopBoundedElement","removeTopBoundedElement","reenabled","getButtonCallback","removeButtonCallback","getToolboxCategoryCallback","removeToolboxCategoryCallback","isStart","autoHideables","autoHideable","xyRatio","VariableSerializer","variableStates","varState","BaseConstantProvider","GRID_UNIT","CURSOR_RADIUS","HEXAGONAL","ROUND","SQUARE","SHAPE_IN_SHAPE_PADDING","SELECTED_GLOW_COLOUR","SELECTED_GLOW_SIZE","REPLACEMENT_GLOW_COLOUR","REPLACEMENT_GLOW_SIZE","selectedGlowFilterId","selectedGlowFilter_","replacementGlowFilterId","SQUARED","ROUNDED","replacementGlowFilter_","STATEMENT_INPUT_SPACER_MIN_WIDTH","MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH","makeHexagonal","makeRounded","makeSquared","rightWidth","selectedGlowSize","replacementGlowSize","pathRightDown","pathRightUp","blockHeight","remainingHeight","maxHeight","_height","curveWidth","quarterHeight","innerTopRightCorner","innerBottomRightCorner","pathTopRight","pathBottomRight","selectedGlowFilter","selectedComponentTransfer","replacementGlowFilter","replacementComponentTransfer","BaseDrawer","beginDrawing","outputShapeType","endDrawing","hasStatementInput","drawFlatTop_","drawRightDynamicConnection_","drawFlatBottom_","drawLeftDynamicConnection_","cornerHeight","setOutlinePath","connectedBottomNextConnection","FieldImage","opt_alt","opt_onClick","opt_flipRtl","altText_","Y_PADDING","imageHeight_","setAlt","setOnClickHandler","FieldTextInput","spellcheck_","htmlInput_","isTextValid_","isBeingEdited_","onKeyInputWrapper_","onKeyDownWrapper_","fullBlockClickTarget_","spellcheck","nFields","nConnections","resizeEditor_","htmlInput","INVALID","setSpellcheck","_opt_e","opt_quietInput","quietInput","showPromptEditor_","showInlineEditor_","getValueFromEditorText_","widgetDispose_","widgetCreate_","borderRadius","BORDERRADIUS","strokeColour","boxShadow","getEditorText_","bindInputEvents_","onFinishEditing_","unbindInputEvents_","_value","onHtmlInputKeyDown_","onHtmlInputChange_","TAB","setEditorValue_","BaseBottomRow","BaseStatementInput","RightConnectionShape","BaseTopRow","BaseRenderInfo","isMultiRow","rightAlignedDummyInputs_","WeakMap","adjustXPosition_","alignmentDivider","notchTotalWidth","minXPos","prevSpacer","nextSpacer","hasPrevNotch","hasNextNotch","prevInRowSpacer","finalizeOutputConnection_","outputConnectionShape","rightConnectionWidth","finalizeHorizontalAlignment_","totalNegativeSpacing","lastElem","leftNegPadding","getNegativeSpacing_","firstElem","rightNegPadding","minBlockWidth","outerShape","innerShape","finalizeVerticalAlignment_","firstRow","hasSingleTextOrImageField","hasNonShadowConnectedBlocks","minVerticalTightNestingHeight","BaseMarkerSvg","markerCircle_","showWithInputOutput_","offsetInBlock","positionCircle_","BasePathObject","svgPathSelected_","outlines","remainingOutlines","outline","getOutlinePath_","removeOutlinePath_","BaseRenderer","hasExternalInputs","heightWithoutHat","diff","DARK_PATH_OFFSET","MAX_BOTTOM_WIDTH","Highlighter","inlineSteps_","steps_","RTL_","highlightConstants_","getHighlightConstants","highlightOffset_","OFFSET","outsideCornerPaths_","OUTSIDE_CORNER","insideCornerPaths_","INSIDE_CORNER","puzzleTabPaths_","notchPaths_","startPaths_","jaggedTeethPaths_","getPath","drawTopCorner","drawValueInput","belowTabHeight","drawStatementInput","drawRightSideRow","rightEdge","drawBottomRow","cornerElem","drawLeft","drawInlineInput","connectionRight","bottomHighlightWidth","aboveTabHeight","highlighter_","setHighlightPath","HighlightConstantProvider","constantProvider","makeInsideCorner","makeOutsideCorner","distance45outside","SQRT1_2","pathTopRtl","pathBottomRtl","pathBottomLtr","distance45inside","topLeftCornerHighlightRtl","topLeftCornerHighlightLtr","bottomLeftStartY","bottomLeftPath","highlightRtlUp","highlightRtlDown","verticalOverlap","highlightLtrUp","highlightLtrDown","hatHeight","pathRtl","pathLtr","BaseInlineInput","nextRightEdge","rowNextRightEdges","prevInput","prevRightEdge","colourDark","svgPathDark","svgPathLight","makeHighlightConstants_","fixedX","fixedY","newSurface","blockCanvas","bubbleCanvas","scale_","surfaceXY_","childSurfaceXY_","svg_","dragGroup_","roundX","roundY","translateSurfaceInternal_","translateBy","getWsTranslation","opt_newSurface","currentBlockElement","bumpIntoBounds","addHorizontal","addVertical","corner_","vScroll","hScroll","isPair","resizeH","resizeV","setX","setY","Generator","FUNCTION_NAME_PLACEHOLDER_","STATEMENT_SUFFIX","STATEMENT_PREFIX","INFINITE_LOOP_TRAP","INDENT","COMMENT_WRAP","ORDER_OVERRIDES","isInitialized","RESERVED_WORDS_","definitions_","functionNames_","nameDB_","FUNCTION_NAME_PLACEHOLDER_REGEXP_","RegExp","workspaceToCode","code","blockToCode","scrubNakedValue","injectId","codeString","finish","prefixLines","allNestedComments","opt_thisOnly","scrub_","SyntaxError","valueToCode","outerOrder","innerOrder","parensNeeded","outerOrderClass","innerOrderClass","statementToCode","addLoopTrap","branch","addReservedWords","provideFunction_","desiredName","functionName","PROCEDURE","codeText","oldCodeText","_opt_thisOnly","defineProperties","variableDB_","nameDb","FlyoutButton","isLabel_","svgText_","callbackKey_","cssClass_","svgText","TEXT_MARGIN_X","TEXT_MARGIN_Y","updateTransform_","onMouseUp_","isLabel","getButtonText","MetricsManager","getDimensionsPx_","getFlyoutMetrics","flyoutDimensions","getToolboxMetrics","toolboxDimensions","getSvgMetrics","getAbsoluteMetrics","flyoutMetrics","doesToolboxExist","doesFlyoutExist","atLeft","atTop","opt_getWorkspaceCoordinates","svgMetrics","getContentMetrics","blockBox","getComputedFixedEdges_","opt_viewMetrics","hScrollEnabled","vScrollEnabled","edges","getPaddedContent_","contentMetrics","contentBottom","contentRight","halfWidth","opt_contentMetrics","fixedEdges","paddedContent","contentHeight","contentTop","contentLeft","toolboxWidth","toolboxHeight","flyoutWidth","flyoutHeight","FlyoutMetricsManager","getBoundingBox_","blockBoundingBox","FlyoutItemType","Flyout","eventWrappers_","filterWrapper_","reflowWrapper_","mats_","buttons_","permanentlyDisabled_","recycledBlocks_","SCROLLBAR_MARGIN","dragAngleRange_","setMetrics_","toolboxPosition_","tabWidth_","rectMap_","GAP_X","GAP_Y","wheel_","filterForCapacity_","getFlyoutScale","positionAt_","listen","clearOldBlocks_","getDynamicCategoryContents_","parsedContent","flyoutInfo","createFlyoutInfo_","layout_","gaps","deselectAll","emptyRecycledBlocks_","defaultGap","contentInfo","categoryName","parsedDynamicContent","createFlyoutBlock_","addBlockGap_","addSeparatorGap_","createButton_","BUTTON","fnToApply","btnInfo","curButton","getRecycledBlock_","blockType","gap","sepInfo","newGap","oldBlocks","blockIsRecyclable_","recycleBlock_","addBlockListeners_","blockMouseDown_","originalBlock","placeNewBlock_","initFlyoutButton_","buttonSvg","createRect_","blockHW","moveRectToBlock_","reflowInternal_","oldBlock","svgRootOld","positionNewBlock_","flyoutOffsetPixels","oldBlockPos","oldBlockOffsetPixels","getX","getY","targetWorkspaceViewMetrics","setBackgroundPath_","atRight","cursorX","moveX","dragDirection","atan2","range","flyoutRect","oldX","buttons","FieldVariable","opt_variableTypes","opt_defaultType","defaultType_","variable_","dropdownCreate","defaultVariableName","setTypes_","defaultType","variableType","typeIsAllowed_","typeList","getVariableTypes_","isInArray","FieldNumber","opt_min","opt_max","opt_precision","min_","max_","precision_","decimalPlaces_","setConstraints","setMinInternal_","setMaxInternal_","setPrecisionInternal_","precision","setMin","getMin","setMax","getMax","setPrecision","precisionString","toLocaleString","maximumFractionDigits","decimalIndex","getPrecision","isFinite","toFixed","VALUEMIN","VALUEMAX","FieldMultilineInput","textGroup_","maxLines_","isOverflowedY_","maxLines","setMaxLines","textLines","displayLinesNumber","currentChild","lineHeight","nodes","tspan","actualEditorLines","dummyTextElement","lineWidth","paddingX","paddingY","padding","getMaxLines","FieldLabelSerializable","FieldColour","onMouseLeaveWrapper_","onMouseEnterWrapper_","onClickWrapper_","highlightedIndex_","picker_","titles_","colours_","columns_","colourOptions","colourTitles","columns","setColours","colours","opt_titles","setColumns","cell","moveHighlightBy_","getHighlighted_","COLOURS","COLUMNS","setHighlightedCell_","onMouseMove_","onMouseEnter_","onMouseLeave_","col","titles","TITLES","selectedColour","table","GRID","ROWCOUNT","COLCOUNT","title","GRIDCELL","FieldCheckbox","checkChar_","CHECK_CHAR","checkCharacter","getValueBoolean","setCheckCharacter","character","convertValueToBool_","FieldAngle","moveSurfaceWrapper_","clickSurfaceWrapper_","clickWrapper_","symbol_","line_","gauge_","editor_","clockwise_","CLOCKWISE","offset_","wrap_","WRAP","round_","mode","Mode","COMPASS","PROTRACTOR","clockwise","updateGraph_","HALF","circle","RADIUS","hide_","ownerSVGElement","displayMouseOrKeyboardValue_","wrapValue_","clockwiseFlag","angle1","largeFlag","BlockMove","currentLocation_","oldParentId","parentId","oldInputName","oldCoordinate","coordinate","blockConnection","CommentBase","opt_comment","CommentCreateDeleteHelper","CommentChange","opt_oldContents","opt_newContents","oldContents_","newContents_","CommentCreate","CommentDelete","CommentMove","comment_","oldCoordinate_","newCoordinate_","BlockDrag","opt_isStart","opt_blocks","Ui","FinishedLoading","opt_workspace","BlockDragger","draggingBlock_","draggedConnectionManager_","dragIconData_","fireDragStartEvent_","shouldDisconnect_","disconnectBlock_","dragIcons_","oldWouldDeleteBlock","updateCursorDuringBlockDrag_","fireDragEndEvent_","newValues","getNewLocationAfterDrag_","newLocation","maybeDeleteBlock_","deleted","updateBlockAfterMove_","updateToolboxStyle_","isEnd","VERSION","ALIGN_LEFT","ALIGN_CENTRE","ALIGN_RIGHT","DUMMY_INPUT","TOOLBOX_AT_TOP","TOOLBOX_AT_BOTTOM","TOOLBOX_AT_LEFT","TOOLBOX_AT_RIGHT","VARIABLE_CATEGORY_NAME","VARIABLE_DYNAMIC_CATEGORY_NAME","PROCEDURE_CATEGORY_NAME","Workspace.prototype.newBlock","WorkspaceSvg.prototype.newBlock","WorkspaceSvg.newTrashcan","WorkspaceCommentSvg.prototype.showContextMenu","Mutator.prototype.newWorkspaceSvg","Names.prototype.populateProcedures","procedures","flattenedProcedures","DropDownDiv","dropDownDiv","connectionTypes","serialization","serializationBlocks","exceptions","serializationExceptions","priorities","serializationPriorities","serializationRegistry","serializationVariables","serializationWorkspaces","ContextMenu","ContextMenuItems","Css","Events","Extensions","ShortcutItems","Themes","Tooltip","Touch","WidgetDiv","Xml","blockAnimations","blockRendering","bumpObjects","clipboard","common","dialog","fieldRegistry","geras","minimalist","thrasos","uiPosition","utils","zelos","Blockly","eventUtils","newAlert","newConfirm","newPrompt","HSV_SATURATION","HSV_VALUE","record","DIV"],"mappings":"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","file":"blockly_compressed.js","sourcesContent":["/**\n * @license\n * Copyright 2016 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Touch handling for Blockly.\n *\n * @namespace Blockly.Touch\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Touch');\n\nimport type {Gesture} from './gesture.js';\n\n\n/**\n * A mock event, created from either a mouse or touch event,\n * with no more than one entry in the changedTouches array.\n */\ninterface PseudoEvent {\n type: string;\n changedTouches: Touch[];\n target: Element;\n stopPropagation: () => void;\n preventDefault: () => void;\n}\n\n/** Length in ms for a touch to become a long press. */\nconst LONGPRESS = 750;\n\n/**\n * Whether touch is enabled in the browser.\n * Copied from Closure's goog.events.BrowserFeature.TOUCH_ENABLED\n */\nexport const TOUCH_ENABLED = 'ontouchstart' in globalThis ||\n !!(globalThis['document'] && document.documentElement &&\n 'ontouchstart' in\n document.documentElement) || // IE10 uses non-standard touch events,\n // so it has a different check.\n !!(globalThis['navigator'] &&\n (globalThis['navigator']['maxTouchPoints'] ||\n (globalThis['navigator'] as any)['msMaxTouchPoints']));\n\n/** Which touch events are we currently paying attention to? */\nlet touchIdentifier_: string|null = null;\n\n/**\n * The TOUCH_MAP lookup dictionary specifies additional touch events to fire,\n * in conjunction with mouse events.\n *\n * @alias Blockly.Touch.TOUCH_MAP\n */\nexport const TOUCH_MAP: {[key: string]: string[]} = globalThis['PointerEvent'] ?\n {\n 'mousedown': ['pointerdown'],\n 'mouseenter': ['pointerenter'],\n 'mouseleave': ['pointerleave'],\n 'mousemove': ['pointermove'],\n 'mouseout': ['pointerout'],\n 'mouseover': ['pointerover'],\n 'mouseup': ['pointerup', 'pointercancel'],\n 'touchend': ['pointerup'],\n 'touchcancel': ['pointercancel'],\n } :\n {\n 'mousedown': ['touchstart'],\n 'mousemove': ['touchmove'],\n 'mouseup': ['touchend', 'touchcancel'],\n };\n\n/** PID of queued long-press task. */\nlet longPid_: AnyDuringMigration = 0;\n\n/**\n * Context menus on touch devices are activated using a long-press.\n * Unfortunately the contextmenu touch event is currently (2015) only supported\n * by Chrome. This function is fired on any touchstart event, queues a task,\n * which after about a second opens the context menu. The tasks is killed\n * if the touch event terminates early.\n *\n * @param e Touch start event.\n * @param gesture The gesture that triggered this longStart.\n * @alias Blockly.Touch.longStart\n * @internal\n */\nexport function longStart(e: Event, gesture: Gesture) {\n longStop();\n // Punt on multitouch events.\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'Event'.\n if ((e as AnyDuringMigration).changedTouches &&\n (e as AnyDuringMigration).changedTouches.length !== 1) {\n return;\n }\n longPid_ = setTimeout(function() {\n // TODO(#6097): Make types accurate, possibly by refactoring touch handling.\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'Event'.\n const typelessEvent = e as AnyDuringMigration;\n // Additional check to distinguish between touch events and pointer events\n if (typelessEvent.changedTouches) {\n // TouchEvent\n typelessEvent.button = 2; // Simulate a right button click.\n // e was a touch event. It needs to pretend to be a mouse event.\n typelessEvent.clientX = typelessEvent.changedTouches[0].clientX;\n typelessEvent.clientY = typelessEvent.changedTouches[0].clientY;\n }\n\n // Let the gesture route the right-click correctly.\n if (gesture) {\n gesture.handleRightClick(e);\n }\n }, LONGPRESS);\n}\n\n/**\n * Nope, that's not a long-press. Either touchend or touchcancel was fired,\n * or a drag hath begun. Kill the queued long-press task.\n *\n * @alias Blockly.Touch.longStop\n * @internal\n */\nexport function longStop() {\n if (longPid_) {\n clearTimeout(longPid_);\n longPid_ = 0;\n }\n}\n\n/**\n * Clear the touch identifier that tracks which touch stream to pay attention\n * to. This ends the current drag/gesture and allows other pointers to be\n * captured.\n *\n * @alias Blockly.Touch.clearTouchIdentifier\n */\nexport function clearTouchIdentifier() {\n touchIdentifier_ = null;\n}\n\n/**\n * Decide whether Blockly should handle or ignore this event.\n * Mouse and touch events require special checks because we only want to deal\n * with one touch stream at a time. All other events should always be handled.\n *\n * @param e The event to check.\n * @returns True if this event should be passed through to the registered\n * handler; false if it should be blocked.\n * @alias Blockly.Touch.shouldHandleEvent\n */\nexport function shouldHandleEvent(e: Event|PseudoEvent): boolean {\n return !isMouseOrTouchEvent(e) || checkTouchIdentifier(e);\n}\n\n/**\n * Get the touch identifier from the given event. If it was a mouse event, the\n * identifier is the string 'mouse'.\n *\n * @param e Pointer event, mouse event, or touch event.\n * @returns The pointerId, or touch identifier from the first changed touch, if\n * defined. Otherwise 'mouse'.\n * @alias Blockly.Touch.getTouchIdentifierFromEvent\n */\nexport function getTouchIdentifierFromEvent(e: Event|PseudoEvent): string {\n if (e instanceof PointerEvent) {\n return String(e.pointerId);\n }\n\n if (e instanceof MouseEvent) {\n return 'mouse';\n }\n\n /**\n * TODO(#6097): Fix types. This is a catch-all for everything but mouse\n * and pointer events.\n */\n const pseudoEvent = /** {!PseudoEvent} */ e;\n\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'. AnyDuringMigration because: Property\n // 'changedTouches' does not exist on type 'PseudoEvent | Event'.\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'. AnyDuringMigration because: Property\n // 'changedTouches' does not exist on type 'PseudoEvent | Event'.\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'.\n return (pseudoEvent as AnyDuringMigration).changedTouches &&\n (pseudoEvent as AnyDuringMigration).changedTouches[0] &&\n (pseudoEvent as AnyDuringMigration).changedTouches[0].identifier !==\n undefined &&\n (pseudoEvent as AnyDuringMigration).changedTouches[0].identifier !==\n null ?\n String((pseudoEvent as AnyDuringMigration).changedTouches[0].identifier) :\n 'mouse';\n}\n\n/**\n * Check whether the touch identifier on the event matches the current saved\n * identifier. If there is no identifier, that means it's a mouse event and\n * we'll use the identifier \"mouse\". This means we won't deal well with\n * multiple mice being used at the same time. That seems okay.\n * If the current identifier was unset, save the identifier from the\n * event. This starts a drag/gesture, during which touch events with other\n * identifiers will be silently ignored.\n *\n * @param e Mouse event or touch event.\n * @returns Whether the identifier on the event matches the current saved\n * identifier.\n * @alias Blockly.Touch.checkTouchIdentifier\n */\nexport function checkTouchIdentifier(e: Event|PseudoEvent): boolean {\n const identifier = getTouchIdentifierFromEvent(e);\n\n // if (touchIdentifier_) is insufficient because Android touch\n // identifiers may be zero.\n if (touchIdentifier_ !== undefined && touchIdentifier_ !== null) {\n // We're already tracking some touch/mouse event. Is this from the same\n // source?\n return touchIdentifier_ === identifier;\n }\n if (e.type === 'mousedown' || e.type === 'touchstart' ||\n e.type === 'pointerdown') {\n // No identifier set yet, and this is the start of a drag. Set it and\n // return.\n touchIdentifier_ = identifier;\n return true;\n }\n // There was no identifier yet, but this wasn't a start event so we're going\n // to ignore it. This probably means that another drag finished while this\n // pointer was down.\n return false;\n}\n\n/**\n * Set an event's clientX and clientY from its first changed touch. Use this to\n * make a touch event work in a mouse event handler.\n *\n * @param e A touch event.\n * @alias Blockly.Touch.setClientFromTouch\n */\nexport function setClientFromTouch(e: Event|PseudoEvent) {\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'.\n if (e.type.startsWith('touch') && (e as AnyDuringMigration).changedTouches) {\n // Map the touch event's properties to the event.\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'.\n const touchPoint = (e as AnyDuringMigration).changedTouches[0];\n // AnyDuringMigration because: Property 'clientX' does not exist on type\n // 'PseudoEvent | Event'.\n (e as AnyDuringMigration).clientX = touchPoint.clientX;\n // AnyDuringMigration because: Property 'clientY' does not exist on type\n // 'PseudoEvent | Event'.\n (e as AnyDuringMigration).clientY = touchPoint.clientY;\n }\n}\n\n/**\n * Check whether a given event is a mouse, touch, or pointer event.\n *\n * @param e An event.\n * @returns True if it is a mouse, touch, or pointer event; false otherwise.\n * @alias Blockly.Touch.isMouseOrTouchEvent\n */\nexport function isMouseOrTouchEvent(e: Event|PseudoEvent): boolean {\n return e.type.startsWith('touch') || e.type.startsWith('mouse') ||\n e.type.startsWith('pointer');\n}\n\n/**\n * Check whether a given event is a touch event or a pointer event.\n *\n * @param e An event.\n * @returns True if it is a touch or pointer event; false otherwise.\n * @alias Blockly.Touch.isTouchEvent\n */\nexport function isTouchEvent(e: Event|PseudoEvent): boolean {\n return e.type.startsWith('touch') || e.type.startsWith('pointer');\n}\n\n/**\n * Split an event into an array of events, one per changed touch or mouse\n * point.\n *\n * @param e A mouse event or a touch event with one or more changed touches.\n * @returns An array of events or pseudo events.\n * Each pseudo-touch event will have exactly one changed touch and there\n * will be no real touch events.\n * @alias Blockly.Touch.splitEventByTouches\n */\nexport function splitEventByTouches(e: Event): Array {\n const events = [];\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'.\n if ((e as AnyDuringMigration).changedTouches) {\n // AnyDuringMigration because: Property 'changedTouches' does not exist on\n // type 'PseudoEvent | Event'.\n for (let i = 0; i < (e as AnyDuringMigration).changedTouches.length; i++) {\n const newEvent = {\n type: e.type,\n // AnyDuringMigration because: Property 'changedTouches' does not exist\n // on type 'PseudoEvent | Event'.\n changedTouches: [(e as AnyDuringMigration).changedTouches[i]],\n target: e.target,\n stopPropagation() {\n e.stopPropagation();\n },\n preventDefault() {\n e.preventDefault();\n },\n };\n events[i] = newEvent;\n }\n } else {\n events.push(e);\n }\n // AnyDuringMigration because: Type '(Event | { type: string; changedTouches:\n // Touch[]; target: EventTarget | null; stopPropagation(): void;\n // preventDefault(): void; })[]' is not assignable to type '(PseudoEvent |\n // Event)[]'.\n return events as AnyDuringMigration;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Browser event handling.\n *\n * @namespace Blockly.browserEvents\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.browserEvents');\n\nimport * as Touch from './touch.js';\nimport * as userAgent from './utils/useragent.js';\n\n\n/**\n * Blockly opaque event data used to unbind events when using\n * `bind` and `conditionalBind`.\n *\n * @alias Blockly.browserEvents.Data\n */\nexport type Data = [EventTarget, string, (e: Event) => void][];\n\n/**\n * The multiplier for scroll wheel deltas using the line delta mode.\n * See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode\n * for more information on deltaMode.\n */\nconst LINE_MODE_MULTIPLIER = 40;\n\n/**\n * The multiplier for scroll wheel deltas using the page delta mode.\n * See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode\n * for more information on deltaMode.\n */\nconst PAGE_MODE_MULTIPLIER = 125;\n\n/**\n * Bind an event handler that can be ignored if it is not part of the active\n * touch stream.\n * Use this for events that either start or continue a multi-part gesture (e.g.\n * mousedown or mousemove, which may be part of a drag or click).\n *\n * @param node Node upon which to listen.\n * @param name Event name to listen to (e.g. 'mousedown').\n * @param thisObject The value of 'this' in the function.\n * @param func Function to call when event is triggered.\n * @param opt_noCaptureIdentifier True if triggering on this event should not\n * block execution of other event handlers on this touch or other\n * simultaneous touches. False by default.\n * @param opt_noPreventDefault True if triggering on this event should prevent\n * the default handler. False by default. If opt_noPreventDefault is\n * provided, opt_noCaptureIdentifier must also be provided.\n * @returns Opaque data that can be passed to unbindEvent_.\n * @alias Blockly.browserEvents.conditionalBind\n */\nexport function conditionalBind(\n node: EventTarget, name: string, thisObject: Object|null, func: Function,\n opt_noCaptureIdentifier?: boolean, opt_noPreventDefault?: boolean): Data {\n let handled = false;\n /**\n *\n * @param e\n */\n function wrapFunc(e: Event) {\n const captureIdentifier = !opt_noCaptureIdentifier;\n // Handle each touch point separately. If the event was a mouse event, this\n // will hand back an array with one element, which we're fine handling.\n const events = Touch.splitEventByTouches(e);\n for (let i = 0; i < events.length; i++) {\n const event = events[i];\n if (captureIdentifier && !Touch.shouldHandleEvent(event)) {\n continue;\n }\n Touch.setClientFromTouch(event);\n if (thisObject) {\n func.call(thisObject, event);\n } else {\n func(event);\n }\n handled = true;\n }\n }\n\n const bindData: Data = [];\n if (globalThis['PointerEvent'] && name in Touch.TOUCH_MAP) {\n for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {\n const type = Touch.TOUCH_MAP[name][i];\n node.addEventListener(type, wrapFunc, false);\n bindData.push([node, type, wrapFunc]);\n }\n } else {\n node.addEventListener(name, wrapFunc, false);\n bindData.push([node, name, wrapFunc]);\n\n // Add equivalent touch event.\n if (name in Touch.TOUCH_MAP) {\n const touchWrapFunc = (e: Event) => {\n wrapFunc(e);\n // Calling preventDefault stops the browser from scrolling/zooming the\n // page.\n const preventDef = !opt_noPreventDefault;\n if (handled && preventDef) {\n e.preventDefault();\n }\n };\n for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {\n const type = Touch.TOUCH_MAP[name][i];\n node.addEventListener(type, touchWrapFunc, false);\n bindData.push([node, type, touchWrapFunc]);\n }\n }\n }\n return bindData;\n}\n\n/**\n * Bind an event handler that should be called regardless of whether it is part\n * of the active touch stream.\n * Use this for events that are not part of a multi-part gesture (e.g.\n * mouseover for tooltips).\n *\n * @param node Node upon which to listen.\n * @param name Event name to listen to (e.g. 'mousedown').\n * @param thisObject The value of 'this' in the function.\n * @param func Function to call when event is triggered.\n * @returns Opaque data that can be passed to unbindEvent_.\n * @alias Blockly.browserEvents.bind\n */\nexport function bind(\n node: EventTarget, name: string, thisObject: Object|null,\n func: Function): Data {\n /**\n *\n * @param e\n */\n function wrapFunc(e: Event) {\n if (thisObject) {\n func.call(thisObject, e);\n } else {\n func(e);\n }\n }\n\n const bindData: Data = [];\n if (globalThis['PointerEvent'] && name in Touch.TOUCH_MAP) {\n for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {\n const type = Touch.TOUCH_MAP[name][i];\n node.addEventListener(type, wrapFunc, false);\n bindData.push([node, type, wrapFunc]);\n }\n } else {\n node.addEventListener(name, wrapFunc, false);\n bindData.push([node, name, wrapFunc]);\n\n // Add equivalent touch event.\n if (name in Touch.TOUCH_MAP) {\n const touchWrapFunc = (e: Event) => {\n // Punt on multitouch events.\n if (e instanceof TouchEvent && e.changedTouches &&\n e.changedTouches.length === 1) {\n // Map the touch event's properties to the event.\n const touchPoint = e.changedTouches[0];\n // TODO (6311): We are trying to make a touch event look like a mouse\n // event, which is not allowed, because it requires adding more\n // properties to the event. How do we want to deal with this?\n (e as AnyDuringMigration).clientX = touchPoint.clientX;\n (e as AnyDuringMigration).clientY = touchPoint.clientY;\n }\n wrapFunc(e);\n\n // Stop the browser from scrolling/zooming the page.\n e.preventDefault();\n };\n for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {\n const type = Touch.TOUCH_MAP[name][i];\n node.addEventListener(type, touchWrapFunc, false);\n bindData.push([node, type, touchWrapFunc]);\n }\n }\n }\n return bindData;\n}\n\n/**\n * Unbind one or more events event from a function call.\n *\n * @param bindData Opaque data from bindEvent_.\n * This list is emptied during the course of calling this function.\n * @returns The function call.\n * @alias Blockly.browserEvents.unbind\n */\nexport function unbind(bindData: Data): (e: Event) => void {\n // Accessing an element of the last property of the array is unsafe if the\n // bindData is an empty array. But that should never happen because developers\n // should only pass Data from bind or conditionalBind.\n const callback = bindData[bindData.length - 1][2];\n while (bindData.length) {\n const bindDatum = bindData.pop();\n const node = bindDatum![0];\n const name = bindDatum![1];\n const func = bindDatum![2];\n node.removeEventListener(name, func, false);\n }\n return callback;\n}\n\n/**\n * Returns true if this event is targeting a text input widget?\n *\n * @param e An event.\n * @returns True if text input.\n * @alias Blockly.browserEvents.isTargetInput\n */\nexport function isTargetInput(e: Event): boolean {\n if (e.target instanceof HTMLElement) {\n if (e.target.isContentEditable ||\n e.target.getAttribute('data-is-text-input') === 'true') {\n return true;\n }\n\n if (e.target instanceof HTMLInputElement) {\n const target = e.target;\n return target.type === 'text' || target.type === 'number' ||\n target.type === 'email' || target.type === 'password' ||\n target.type === 'search' || target.type === 'tel' ||\n target.type === 'url';\n }\n\n if (e.target instanceof HTMLTextAreaElement) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true this event is a right-click.\n *\n * @param e Mouse event.\n * @returns True if right-click.\n * @alias Blockly.browserEvents.isRightButton\n */\nexport function isRightButton(e: MouseEvent): boolean {\n if (e.ctrlKey && userAgent.MAC) {\n // Control-clicking on Mac OS X is treated as a right-click.\n // WebKit on Mac OS X fails to change button to 2 (but Gecko does).\n return true;\n }\n return e.button === 2;\n}\n\n/**\n * Returns the converted coordinates of the given mouse event.\n * The origin (0,0) is the top-left corner of the Blockly SVG.\n *\n * @param e Mouse event.\n * @param svg SVG element.\n * @param matrix Inverted screen CTM to use.\n * @returns Object with .x and .y properties.\n * @alias Blockly.browserEvents.mouseToSvg\n */\nexport function mouseToSvg(\n e: MouseEvent, svg: SVGSVGElement, matrix: SVGMatrix|null): SVGPoint {\n const svgPoint = svg.createSVGPoint();\n svgPoint.x = e.clientX;\n svgPoint.y = e.clientY;\n\n if (!matrix) {\n matrix = svg.getScreenCTM()!.inverse();\n }\n return svgPoint.matrixTransform(matrix);\n}\n\n/**\n * Returns the scroll delta of a mouse event in pixel units.\n *\n * @param e Mouse event.\n * @returns Scroll delta object with .x and .y properties.\n * @alias Blockly.browserEvents.getScrollDeltaPixels\n */\nexport function getScrollDeltaPixels(e: WheelEvent): {x: number, y: number} {\n switch (e.deltaMode) {\n case 0x00: // Pixel mode.\n default:\n return {x: e.deltaX, y: e.deltaY};\n case 0x01: // Line mode.\n return {\n x: e.deltaX * LINE_MODE_MULTIPLIER,\n y: e.deltaY * LINE_MODE_MULTIPLIER,\n };\n case 0x02: // Page mode.\n return {\n x: e.deltaX * PAGE_MODE_MULTIPLIER,\n y: e.deltaY * PAGE_MODE_MULTIPLIER,\n };\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Common functions used both internally and externally, but which\n * must not be at the top level to avoid circular dependencies.\n *\n * @namespace Blockly.common\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.common');\n\n/* eslint-disable-next-line no-unused-vars */\nimport type {Block} from './block.js';\nimport {BlockDefinition, Blocks} from './blocks.js';\nimport type {Connection} from './connection.js';\nimport type {ICopyable} from './interfaces/i_copyable.js';\nimport type {Workspace} from './workspace.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\n/** Database of all workspaces. */\nconst WorkspaceDB_ = Object.create(null);\n\n\n/**\n * Find the workspace with the specified ID.\n *\n * @param id ID of workspace to find.\n * @returns The sought after workspace or null if not found.\n */\nexport function getWorkspaceById(id: string): Workspace|null {\n return WorkspaceDB_[id] || null;\n}\n\n/**\n * Find all workspaces.\n *\n * @returns Array of workspaces.\n */\nexport function getAllWorkspaces(): Workspace[] {\n const workspaces = [];\n for (const workspaceId in WorkspaceDB_) {\n workspaces.push(WorkspaceDB_[workspaceId]);\n }\n return workspaces;\n}\n\n/**\n * Register a workspace in the workspace db.\n *\n * @param workspace\n */\nexport function registerWorkspace(workspace: Workspace) {\n WorkspaceDB_[workspace.id] = workspace;\n}\n\n/**\n * Unregister a workspace from the workspace db.\n *\n * @param workspace\n */\nexport function unregisterWorkpace(workspace: Workspace) {\n delete WorkspaceDB_[workspace.id];\n}\n\n/**\n * The main workspace most recently used.\n * Set by Blockly.WorkspaceSvg.prototype.markFocused\n */\nlet mainWorkspace: Workspace;\n\n/**\n * Returns the last used top level workspace (based on focus). Try not to use\n * this function, particularly if there are multiple Blockly instances on a\n * page.\n *\n * @returns The main workspace.\n * @alias Blockly.common.getMainWorkspace\n */\nexport function getMainWorkspace(): Workspace {\n return mainWorkspace;\n}\n\n/**\n * Sets last used main workspace.\n *\n * @param workspace The most recently used top level workspace.\n * @alias Blockly.common.setMainWorkspace\n */\nexport function setMainWorkspace(workspace: Workspace) {\n mainWorkspace = workspace;\n}\n\n/**\n * Currently selected copyable object.\n */\nlet selected: ICopyable|null = null;\n\n/**\n * Returns the currently selected copyable object.\n *\n * @alias Blockly.common.getSelected\n */\nexport function getSelected(): ICopyable|null {\n return selected;\n}\n\n/**\n * Sets the currently selected block. This function does not visually mark the\n * block as selected or fire the required events. If you wish to\n * programmatically select a block, use `BlockSvg#select`.\n *\n * @param newSelection The newly selected block.\n * @alias Blockly.common.setSelected\n * @internal\n */\nexport function setSelected(newSelection: ICopyable|null) {\n selected = newSelection;\n}\n\n/**\n * Container element in which to render the WidgetDiv, DropDownDiv and Tooltip.\n */\nlet parentContainer: Element|null;\n\n/**\n * Get the container element in which to render the WidgetDiv, DropDownDiv and\n * Tooltip.\n *\n * @returns The parent container.\n * @alias Blockly.common.getParentContainer\n */\nexport function getParentContainer(): Element|null {\n return parentContainer;\n}\n\n/**\n * Set the parent container. This is the container element that the WidgetDiv,\n * DropDownDiv, and Tooltip are rendered into the first time `Blockly.inject`\n * is called.\n * This method is a NOP if called after the first `Blockly.inject`.\n *\n * @param newParent The container element.\n * @alias Blockly.common.setParentContainer\n */\nexport function setParentContainer(newParent: Element) {\n parentContainer = newParent;\n}\n\n/**\n * Size the SVG image to completely fill its container. Call this when the view\n * actually changes sizes (e.g. on a window resize/device orientation change).\n * See workspace.resizeContents to resize the workspace when the contents\n * change (e.g. when a block is added or removed).\n * Record the height/width of the SVG image.\n *\n * @param workspace Any workspace in the SVG.\n * @alias Blockly.common.svgResize\n */\nexport function svgResize(workspace: WorkspaceSvg) {\n let mainWorkspace = workspace;\n while (mainWorkspace.options.parentWorkspace) {\n mainWorkspace = mainWorkspace.options.parentWorkspace;\n }\n const svg = mainWorkspace.getParentSvg();\n const cachedSize = mainWorkspace.getCachedParentSvgSize();\n const div = svg.parentElement;\n if (!(div instanceof HTMLElement)) {\n // Workspace deleted, or something.\n return;\n }\n\n const width = div.offsetWidth;\n const height = div.offsetHeight;\n if (cachedSize.width !== width) {\n svg.setAttribute('width', width + 'px');\n mainWorkspace.setCachedParentSvgSize(width, null);\n }\n if (cachedSize.height !== height) {\n svg.setAttribute('height', height + 'px');\n mainWorkspace.setCachedParentSvgSize(null, height);\n }\n mainWorkspace.resize();\n}\n\n/**\n * All of the connections on blocks that are currently being dragged.\n */\nexport const draggingConnections: Connection[] = [];\n\n/**\n * Get a map of all the block's descendants mapping their type to the number of\n * children with that type.\n *\n * @param block The block to map.\n * @param opt_stripFollowing Optionally ignore all following\n * statements (blocks that are not inside a value or statement input\n * of the block).\n * @returns Map of types to type counts for descendants of the bock.\n * @alias Blockly.common.getBlockTypeCounts\n */\nexport function getBlockTypeCounts(\n block: Block, opt_stripFollowing?: boolean): {[key: string]: number} {\n const typeCountsMap = Object.create(null);\n const descendants = block.getDescendants(true);\n if (opt_stripFollowing) {\n const nextBlock = block.getNextBlock();\n if (nextBlock) {\n const index = descendants.indexOf(nextBlock);\n descendants.splice(index, descendants.length - index);\n }\n }\n for (let i = 0, checkBlock; checkBlock = descendants[i]; i++) {\n if (typeCountsMap[checkBlock.type]) {\n typeCountsMap[checkBlock.type]++;\n } else {\n typeCountsMap[checkBlock.type] = 1;\n }\n }\n return typeCountsMap;\n}\n\n/**\n * Helper function for defining a block from JSON. The resulting function has\n * the correct value of jsonDef at the point in code where jsonInit is called.\n *\n * @param jsonDef The JSON definition of a block.\n * @returns A function that calls jsonInit with the correct value\n * of jsonDef.\n */\nfunction jsonInitFactory(jsonDef: AnyDuringMigration): () => void {\n return function(this: Block) {\n this.jsonInit(jsonDef);\n };\n}\n\n/**\n * Define blocks from an array of JSON block definitions, as might be generated\n * by the Blockly Developer Tools.\n *\n * @param jsonArray An array of JSON block definitions.\n * @alias Blockly.common.defineBlocksWithJsonArray\n */\nexport function defineBlocksWithJsonArray(jsonArray: AnyDuringMigration[]) {\n TEST_ONLY.defineBlocksWithJsonArrayInternal(jsonArray);\n}\n\n/**\n * Private version of defineBlocksWithJsonArray for stubbing in tests.\n */\nfunction defineBlocksWithJsonArrayInternal(jsonArray: AnyDuringMigration[]) {\n defineBlocks(createBlockDefinitionsFromJsonArray(jsonArray));\n}\n\n/**\n * Define blocks from an array of JSON block definitions, as might be generated\n * by the Blockly Developer Tools.\n *\n * @param jsonArray An array of JSON block definitions.\n * @returns A map of the block\n * definitions created.\n * @alias Blockly.common.defineBlocksWithJsonArray\n */\nexport function createBlockDefinitionsFromJsonArray(\n jsonArray: AnyDuringMigration[]): {[key: string]: BlockDefinition} {\n const blocks: {[key: string]: BlockDefinition} = {};\n for (let i = 0; i < jsonArray.length; i++) {\n const elem = jsonArray[i];\n if (!elem) {\n console.warn(`Block definition #${i} in JSON array is ${elem}. Skipping`);\n continue;\n }\n const type = elem['type'];\n if (!type) {\n console.warn(\n `Block definition #${i} in JSON array is missing a type attribute. ` +\n 'Skipping.');\n continue;\n }\n blocks[type] = {init: jsonInitFactory(elem)};\n }\n return blocks;\n}\n\n/**\n * Add the specified block definitions to the block definitions\n * dictionary (Blockly.Blocks).\n *\n * @param blocks A map of block\n * type names to block definitions.\n * @alias Blockly.common.defineBlocks\n */\nexport function defineBlocks(blocks: {[key: string]: BlockDefinition}) {\n // Iterate over own enumerable properties.\n for (const type of Object.keys(blocks)) {\n const definition = blocks[type];\n if (type in Blocks) {\n console.warn(`Block definiton \"${type}\" overwrites previous definition.`);\n }\n Blocks[type] = definition;\n }\n}\n\nexport const TEST_ONLY = {defineBlocksWithJsonArrayInternal};\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods for DOM manipulation.\n * These methods are not specific to Blockly, and could be factored out into\n * a JavaScript framework such as Closure.\n *\n * @namespace Blockly.utils.dom\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.dom');\n\nimport type {Svg} from './svg.js';\n\n\n/**\n * Required name space for SVG elements.\n *\n * @alias Blockly.utils.dom.SVG_NS\n */\nexport const SVG_NS = 'http://www.w3.org/2000/svg';\n\n/**\n * Required name space for HTML elements.\n *\n * @alias Blockly.utils.dom.HTML_NS\n */\nexport const HTML_NS = 'http://www.w3.org/1999/xhtml';\n\n/**\n * Required name space for XLINK elements.\n *\n * @alias Blockly.utils.dom.XLINK_NS\n */\nexport const XLINK_NS = 'http://www.w3.org/1999/xlink';\n\n/**\n * Node type constants.\n * https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n *\n * @alias Blockly.utils.dom.NodeType\n */\nexport enum NodeType {\n ELEMENT_NODE = 1,\n TEXT_NODE = 3,\n COMMENT_NODE = 8,\n DOCUMENT_POSITION_CONTAINED_BY = 16\n}\n\n/** Temporary cache of text widths. */\nlet cacheWidths: {[key: string]: number}|null = null;\n\n/** Number of current references to cache. */\nlet cacheReference = 0;\n\n/** A HTML canvas context used for computing text width. */\nlet canvasContext: CanvasRenderingContext2D|null = null;\n\n/**\n * Helper method for creating SVG elements.\n *\n * @param name Element's tag name.\n * @param attrs Dictionary of attribute names and values.\n * @param opt_parent Optional parent on which to append the element.\n * @returns if name is a string or a more specific type if it a member of Svg.\n * @alias Blockly.utils.dom.createSvgElement\n */\nexport function createSvgElement(\n name: string|Svg, attrs: {[key: string]: string|number},\n opt_parent?: Element|null): T {\n const e = document.createElementNS(SVG_NS, String(name)) as T;\n for (const key in attrs) {\n e.setAttribute(key, `${attrs[key]}`);\n }\n if (opt_parent) {\n opt_parent.appendChild(e);\n }\n return e;\n}\n\n/**\n * Add a CSS class to a element.\n *\n * Handles multiple space-separated classes for legacy reasons.\n *\n * @param element DOM element to add class to.\n * @param className Name of class to add.\n * @returns True if class was added, false if already present.\n * @alias Blockly.utils.dom.addClass\n */\nexport function addClass(element: Element, className: string): boolean {\n const classNames = className.split(' ');\n if (classNames.every((name) => element.classList.contains(name))) {\n return false;\n }\n element.classList.add(...classNames);\n return true;\n}\n\n/**\n * Removes multiple classes from an element.\n *\n * @param element DOM element to remove classes from.\n * @param classNames A string of one or multiple class names for an element.\n * @alias Blockly.utils.dom.removeClasses\n */\nexport function removeClasses(element: Element, classNames: string) {\n element.classList.remove(...classNames.split(' '));\n}\n\n/**\n * Remove a CSS class from a element.\n *\n * Handles multiple space-separated classes for legacy reasons.\n *\n * @param element DOM element to remove class from.\n * @param className Name of class to remove.\n * @returns True if class was removed, false if never present.\n * @alias Blockly.utils.dom.removeClass\n */\nexport function removeClass(element: Element, className: string): boolean {\n const classNames = className.split(' ');\n if (classNames.every((name) => !element.classList.contains(name))) {\n return false;\n }\n element.classList.remove(...classNames);\n return true;\n}\n\n/**\n * Checks if an element has the specified CSS class.\n *\n * @param element DOM element to check.\n * @param className Name of class to check.\n * @returns True if class exists, false otherwise.\n * @alias Blockly.utils.dom.hasClass\n */\nexport function hasClass(element: Element, className: string): boolean {\n return element.classList.contains(className);\n}\n\n/**\n * Removes a node from its parent. No-op if not attached to a parent.\n *\n * @param node The node to remove.\n * @returns The node removed if removed; else, null.\n * @alias Blockly.utils.dom.removeNode\n */\n// Copied from Closure goog.dom.removeNode\nexport function removeNode(node: Node|null): Node|null {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n\n/**\n * Insert a node after a reference node.\n * Contrast with node.insertBefore function.\n *\n * @param newNode New element to insert.\n * @param refNode Existing element to precede new node.\n * @alias Blockly.utils.dom.insertAfter\n */\nexport function insertAfter(newNode: Element, refNode: Element) {\n const siblingNode = refNode.nextSibling;\n const parentNode = refNode.parentNode;\n if (!parentNode) {\n throw Error('Reference node has no parent.');\n }\n if (siblingNode) {\n parentNode.insertBefore(newNode, siblingNode);\n } else {\n parentNode.appendChild(newNode);\n }\n}\n\n/**\n * Whether a node contains another node.\n *\n * @param parent The node that should contain the other node.\n * @param descendant The node to test presence of.\n * @returns Whether the parent node contains the descendant node.\n * @alias Blockly.utils.dom.containsNode\n */\nexport function containsNode(parent: Node, descendant: Node): boolean {\n return !!(\n parent.compareDocumentPosition(descendant) &\n NodeType.DOCUMENT_POSITION_CONTAINED_BY);\n}\n\n/**\n * Sets the CSS transform property on an element. This function sets the\n * non-vendor-prefixed and vendor-prefixed versions for backwards compatibility\n * with older browsers. See https://caniuse.com/#feat=transforms2d\n *\n * @param element Element to which the CSS transform will be applied.\n * @param transform The value of the CSS `transform` property.\n * @alias Blockly.utils.dom.setCssTransform\n */\nexport function setCssTransform(\n element: HTMLElement|SVGElement, transform: string) {\n element.style['transform'] = transform;\n element.style['-webkit-transform' as any] = transform;\n}\n\n/**\n * Start caching text widths. Every call to this function MUST also call\n * stopTextWidthCache. Caches must not survive between execution threads.\n *\n * @alias Blockly.utils.dom.startTextWidthCache\n */\nexport function startTextWidthCache() {\n cacheReference++;\n if (!cacheWidths) {\n cacheWidths = Object.create(null);\n }\n}\n\n/**\n * Stop caching field widths. Unless caching was already on when the\n * corresponding call to startTextWidthCache was made.\n *\n * @alias Blockly.utils.dom.stopTextWidthCache\n */\nexport function stopTextWidthCache() {\n cacheReference--;\n if (!cacheReference) {\n cacheWidths = null;\n }\n}\n\n/**\n * Gets the width of a text element, caching it in the process.\n *\n * @param textElement An SVG 'text' element.\n * @returns Width of element.\n * @alias Blockly.utils.dom.getTextWidth\n */\nexport function getTextWidth(textElement: SVGTextElement): number {\n const key = textElement.textContent + '\\n' + textElement.className.baseVal;\n let width;\n // Return the cached width if it exists.\n if (cacheWidths) {\n width = cacheWidths[key];\n if (width) {\n return width;\n }\n }\n\n // Attempt to compute fetch the width of the SVG text element.\n try {\n width = textElement.getComputedTextLength();\n } catch (e) {\n // In other cases where we fail to get the computed text. Instead, use an\n // approximation and do not cache the result. At some later point in time\n // when the block is inserted into the visible DOM, this method will be\n // called again and, at that point in time, will not throw an exception.\n return textElement.textContent!.length * 8;\n }\n\n // Cache the computed width and return.\n if (cacheWidths) {\n cacheWidths[key] = width;\n }\n return width;\n}\n\n/**\n * Gets the width of a text element using a faster method than `getTextWidth`.\n * This method requires that we know the text element's font family and size in\n * advance. Similar to `getTextWidth`, we cache the width we compute.\n *\n * @param textElement An SVG 'text' element.\n * @param fontSize The font size to use.\n * @param fontWeight The font weight to use.\n * @param fontFamily The font family to use.\n * @returns Width of element.\n * @alias Blockly.utils.dom.getFastTextWidth\n */\nexport function getFastTextWidth(\n textElement: SVGTextElement, fontSize: number, fontWeight: string,\n fontFamily: string): number {\n return getFastTextWidthWithSizeString(\n textElement, fontSize + 'pt', fontWeight, fontFamily);\n}\n\n/**\n * Gets the width of a text element using a faster method than `getTextWidth`.\n * This method requires that we know the text element's font family and size in\n * advance. Similar to `getTextWidth`, we cache the width we compute.\n * This method is similar to `getFastTextWidth` but expects the font size\n * parameter to be a string.\n *\n * @param textElement An SVG 'text' element.\n * @param fontSize The font size to use.\n * @param fontWeight The font weight to use.\n * @param fontFamily The font family to use.\n * @returns Width of element.\n * @alias Blockly.utils.dom.getFastTextWidthWithSizeString\n */\nexport function getFastTextWidthWithSizeString(\n textElement: SVGTextElement, fontSize: string, fontWeight: string,\n fontFamily: string): number {\n const text = textElement.textContent;\n const key = text + '\\n' + textElement.className.baseVal;\n let width;\n\n // Return the cached width if it exists.\n if (cacheWidths) {\n width = cacheWidths[key];\n if (width) {\n return width;\n }\n }\n\n if (!canvasContext) {\n // Inject the canvas element used for computing text widths.\n const computeCanvas = (document.createElement('canvas'));\n computeCanvas.className = 'blocklyComputeCanvas';\n document.body.appendChild(computeCanvas);\n\n // Initialize the HTML canvas context and set the font.\n // The context font must match blocklyText's fontsize and font-family\n // set in CSS.\n canvasContext = computeCanvas.getContext('2d') as CanvasRenderingContext2D;\n }\n // Set the desired font size and family.\n canvasContext.font = fontWeight + ' ' + fontSize + ' ' + fontFamily;\n\n // Measure the text width using the helper canvas context.\n if (text) {\n width = canvasContext.measureText(text).width;\n } else {\n width = 0;\n }\n\n // Cache the computed width and return.\n if (cacheWidths) {\n cacheWidths[key] = width;\n }\n return width;\n}\n\n/**\n * Measure a font's metrics. The height and baseline values.\n *\n * @param text Text to measure the font dimensions of.\n * @param fontSize The font size to use.\n * @param fontWeight The font weight to use.\n * @param fontFamily The font family to use.\n * @returns Font measurements.\n * @alias Blockly.utils.dom.measureFontMetrics\n */\nexport function measureFontMetrics(\n text: string, fontSize: string, fontWeight: string,\n fontFamily: string): {height: number, baseline: number} {\n const span = (document.createElement('span'));\n span.style.font = fontWeight + ' ' + fontSize + ' ' + fontFamily;\n span.textContent = text;\n\n const block = (document.createElement('div'));\n block.style.width = '1px';\n block.style.height = '0';\n\n const div = (document.createElement('div'));\n div.setAttribute('style', 'position: fixed; top: 0; left: 0; display: flex;');\n div.appendChild(span);\n div.appendChild(block);\n\n document.body.appendChild(div);\n const result = {\n height: 0,\n baseline: 0,\n };\n try {\n div.style.alignItems = 'baseline';\n result.baseline = block.offsetTop - span.offsetTop;\n div.style.alignItems = 'flex-end';\n result.height = block.offsetTop - span.offsetTop;\n } finally {\n document.body.removeChild(div);\n }\n return result;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods for math.\n * These methods are not specific to Blockly, and could be factored out into\n * a JavaScript framework such as Closure.\n *\n * @namespace Blockly.utils.math\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.math');\n\n\n/**\n * Converts degrees to radians.\n * Copied from Closure's goog.math.toRadians.\n *\n * @param angleDegrees Angle in degrees.\n * @returns Angle in radians.\n * @alias Blockly.utils.math.toRadians\n */\nexport function toRadians(angleDegrees: number): number {\n return angleDegrees * Math.PI / 180;\n}\n\n/**\n * Converts radians to degrees.\n * Copied from Closure's goog.math.toDegrees.\n *\n * @param angleRadians Angle in radians.\n * @returns Angle in degrees.\n * @alias Blockly.utils.math.toDegrees\n */\nexport function toDegrees(angleRadians: number): number {\n return angleRadians * 180 / Math.PI;\n}\n\n/**\n * Clamp the provided number between the lower bound and the upper bound.\n *\n * @param lowerBound The desired lower bound.\n * @param number The number to clamp.\n * @param upperBound The desired upper bound.\n * @returns The clamped number.\n * @alias Blockly.utils.math.clamp\n */\nexport function clamp(\n lowerBound: number, number: number, upperBound: number): number {\n if (upperBound < lowerBound) {\n const temp = upperBound;\n upperBound = lowerBound;\n lowerBound = temp;\n }\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Helper function for warning developers about deprecations.\n * This method is not specific to Blockly.\n *\n * @namespace Blockly.utils.deprecation\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.deprecation');\n\n\n/**\n * Warn developers that a function or property is deprecated.\n *\n * @param name The name of the function or property.\n * @param deprecationDate The date of deprecation. Prefer 'version n.0.0'\n * format, and fall back to 'month yyyy' or 'quarter yyyy' format.\n * @param deletionDate The date of deletion. Prefer 'version n.0.0'\n * format, and fall back to 'month yyyy' or 'quarter yyyy' format.\n * @param opt_use The name of a function or property to use instead, if any.\n * @alias Blockly.utils.deprecation.warn\n * @internal\n */\nexport function warn(\n name: string, deprecationDate: string, deletionDate: string,\n opt_use?: string) {\n let msg = name + ' was deprecated in ' + deprecationDate +\n ' and will be deleted in ' + deletionDate + '.';\n if (opt_use) {\n msg += '\\nUse ' + opt_use + ' instead.';\n }\n console.warn(msg);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utilities for element styles.\n * These methods are not specific to Blockly, and could be factored out into\n * a JavaScript framework such as Closure.\n *\n * @namespace Blockly.utils.style\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.style');\n\nimport * as deprecation from './deprecation.js';\nimport {Coordinate} from './coordinate.js';\nimport {Rect} from './rect.js';\nimport {Size} from './size.js';\n\n\n/**\n * Gets the height and width of an element.\n * Similar to Closure's goog.style.getSize\n *\n * @param element Element to get size of.\n * @returns Object with width/height properties.\n * @alias Blockly.utils.style.getSize\n */\nexport function getSize(element: Element): Size {\n return TEST_ONLY.getSizeInternal(element);\n}\n\n/**\n * Private version of getSize for stubbing in tests.\n */\nfunction getSizeInternal(element: Element): Size {\n if (getComputedStyle(element, 'display') !== 'none') {\n return getSizeWithDisplay(element);\n }\n\n // Evaluate size with a temporary element.\n // AnyDuringMigration because: Property 'style' does not exist on type\n // 'Element'.\n const style = (element as AnyDuringMigration).style;\n const originalDisplay = style.display;\n const originalVisibility = style.visibility;\n const originalPosition = style.position;\n\n style.visibility = 'hidden';\n style.position = 'absolute';\n style.display = 'inline';\n\n const offsetWidth = (element as HTMLElement).offsetWidth;\n const offsetHeight = (element as HTMLElement).offsetHeight;\n\n style.display = originalDisplay;\n style.position = originalPosition;\n style.visibility = originalVisibility;\n\n return new Size(offsetWidth, offsetHeight);\n}\n\n/**\n * Gets the height and width of an element when the display is not none.\n *\n * @param element Element to get size of.\n * @returns Object with width/height properties.\n */\nfunction getSizeWithDisplay(element: Element): Size {\n const offsetWidth = (element as HTMLElement).offsetWidth;\n const offsetHeight = (element as HTMLElement).offsetHeight;\n return new Size(offsetWidth, offsetHeight);\n}\n\n/**\n * Retrieves a computed style value of a node. It returns empty string\n * if the property requested is an SVG one and it has not been\n * explicitly set (firefox and webkit).\n *\n * Copied from Closure's goog.style.getComputedStyle\n *\n * @param element Element to get style of.\n * @param property Property to get (camel-case).\n * @returns Style value.\n * @alias Blockly.utils.style.getComputedStyle\n */\nexport function getComputedStyle(element: Element, property: string): string {\n const styles = window.getComputedStyle(element);\n // element.style[..] is undefined for browser specific styles\n // as 'filter'.\n return (styles as AnyDuringMigration)[property] ||\n styles.getPropertyValue(property);\n}\n\n/**\n * Gets the cascaded style value of a node, or null if the value cannot be\n * computed (only Internet Explorer can do this).\n *\n * Copied from Closure's goog.style.getCascadedStyle\n *\n * @param element Element to get style of.\n * @param style Property to get (camel-case).\n * @returns Style value.\n * @deprecated No longer provided by Blockly.\n * @alias Blockly.utils.style.getCascadedStyle\n */\nexport function getCascadedStyle(element: Element, style: string): string {\n deprecation.warn(\n 'Blockly.utils.style.getCascadedStyle', 'version 9', 'version 10');\n // AnyDuringMigration because: Property 'currentStyle' does not exist on type\n // 'Element'. AnyDuringMigration because: Property 'currentStyle' does not\n // exist on type 'Element'.\n return (element as AnyDuringMigration).currentStyle ?\n (element as AnyDuringMigration).currentStyle[style] :\n '' as string;\n}\n\n/**\n * Returns a Coordinate object relative to the top-left of the HTML document.\n * Similar to Closure's goog.style.getPageOffset\n *\n * @param el Element to get the page offset for.\n * @returns The page offset.\n * @alias Blockly.utils.style.getPageOffset\n */\nexport function getPageOffset(el: Element): Coordinate {\n const pos = new Coordinate(0, 0);\n const box = el.getBoundingClientRect();\n const documentElement = document.documentElement;\n // Must add the scroll coordinates in to get the absolute page offset\n // of element since getBoundingClientRect returns relative coordinates to\n // the viewport.\n const scrollCoord = new Coordinate(\n window.pageXOffset || documentElement.scrollLeft,\n window.pageYOffset || documentElement.scrollTop);\n pos.x = box.left + scrollCoord.x;\n pos.y = box.top + scrollCoord.y;\n\n return pos;\n}\n\n/**\n * Calculates the viewport coordinates relative to the document.\n * Similar to Closure's goog.style.getViewportPageOffset\n *\n * @returns The page offset of the viewport.\n * @alias Blockly.utils.style.getViewportPageOffset\n */\nexport function getViewportPageOffset(): Coordinate {\n const body = document.body;\n const documentElement = document.documentElement;\n const scrollLeft = body.scrollLeft || documentElement.scrollLeft;\n const scrollTop = body.scrollTop || documentElement.scrollTop;\n return new Coordinate(scrollLeft, scrollTop);\n}\n\n/**\n * Gets the computed border widths (on all sides) in pixels\n * Copied from Closure's goog.style.getBorderBox\n *\n * @param element The element to get the border widths for.\n * @returns The computed border widths.\n * @alias Blockly.utils.style.getBorderBox\n */\nexport function getBorderBox(element: Element): Rect {\n const left = parseFloat(getComputedStyle(element, 'borderLeftWidth'));\n const right = parseFloat(getComputedStyle(element, 'borderRightWidth'));\n const top = parseFloat(getComputedStyle(element, 'borderTopWidth'));\n const bottom = parseFloat(getComputedStyle(element, 'borderBottomWidth'));\n\n return new Rect(top, bottom, left, right);\n}\n\n/**\n * Changes the scroll position of `container` with the minimum amount so\n * that the content and the borders of the given `element` become visible.\n * If the element is bigger than the container, its top left corner will be\n * aligned as close to the container's top left corner as possible.\n * Copied from Closure's goog.style.scrollIntoContainerView\n *\n * @param element The element to make visible.\n * @param container The container to scroll. If not set, then the document\n * scroll element will be used.\n * @param opt_center Whether to center the element in the container.\n * Defaults to false.\n * @alias Blockly.utils.style.scrollIntoContainerView\n */\nexport function scrollIntoContainerView(\n element: Element, container: Element, opt_center?: boolean) {\n const offset = getContainerOffsetToScrollInto(element, container, opt_center);\n container.scrollLeft = offset.x;\n container.scrollTop = offset.y;\n}\n\n/**\n * Calculate the scroll position of `container` with the minimum amount so\n * that the content and the borders of the given `element` become visible.\n * If the element is bigger than the container, its top left corner will be\n * aligned as close to the container's top left corner as possible.\n * Copied from Closure's goog.style.getContainerOffsetToScrollInto\n *\n * @param element The element to make visible.\n * @param container The container to scroll. If not set, then the document\n * scroll element will be used.\n * @param opt_center Whether to center the element in the container.\n * Defaults to false.\n * @returns The new scroll position of the container.\n * @alias Blockly.utils.style.getContainerOffsetToScrollInto\n */\nexport function getContainerOffsetToScrollInto(\n element: Element, container: Element, opt_center?: boolean): Coordinate {\n // Absolute position of the element's border's top left corner.\n const elementPos = getPageOffset(element);\n // Absolute position of the container's border's top left corner.\n const containerPos = getPageOffset(container);\n const containerBorder = getBorderBox(container);\n // Relative pos. of the element's border box to the container's content box.\n const relX = elementPos.x - containerPos.x - containerBorder.left;\n const relY = elementPos.y - containerPos.y - containerBorder.top;\n // How much the element can move in the container, i.e. the difference between\n // the element's bottom-right-most and top-left-most position where it's\n // fully visible.\n const elementSize = getSizeWithDisplay(element);\n const spaceX = container.clientWidth - elementSize.width;\n const spaceY = container.clientHeight - elementSize.height;\n let scrollLeft = container.scrollLeft;\n let scrollTop = container.scrollTop;\n if (opt_center) {\n // All browsers round non-integer scroll positions down.\n scrollLeft += relX - spaceX / 2;\n scrollTop += relY - spaceY / 2;\n } else {\n // This formula was designed to give the correct scroll values in the\n // following cases:\n // - element is higher than container (spaceY < 0) => scroll down by relY\n // - element is not higher that container (spaceY >= 0):\n // - it is above container (relY < 0) => scroll up by abs(relY)\n // - it is below container (relY > spaceY) => scroll down by relY - spaceY\n // - it is in the container => don't scroll\n scrollLeft += Math.min(relX, Math.max(relX - spaceX, 0));\n scrollTop += Math.min(relY, Math.max(relY - spaceY, 0));\n }\n return new Coordinate(scrollLeft, scrollTop);\n}\n\nexport const TEST_ONLY = {\n getSizeInternal,\n};\n","/**\n * @license\n * Copyright 2016 Massachusetts Institute of Technology\n * All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * A div that floats on top of the workspace, for drop-down menus.\n *\n * @class\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.dropDownDiv');\n\nimport type {BlockSvg} from './block_svg.js';\nimport * as common from './common.js';\nimport * as dom from './utils/dom.js';\nimport type {Field} from './field.js';\nimport * as math from './utils/math.js';\nimport {Rect} from './utils/rect.js';\nimport type {Size} from './utils/size.js';\nimport * as style from './utils/style.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\n/**\n * Arrow size in px. Should match the value in CSS\n * (need to position pre-render).\n */\nexport const ARROW_SIZE = 16;\n\n/**\n * Drop-down border size in px. Should match the value in CSS (need to position\n * the arrow).\n */\nexport const BORDER_SIZE = 1;\n\n/**\n * Amount the arrow must be kept away from the edges of the main drop-down div,\n * in px.\n */\nexport const ARROW_HORIZONTAL_PADDING = 12;\n\n/** Amount drop-downs should be padded away from the source, in px. */\nexport const PADDING_Y = 16;\n\n/** Length of animations in seconds. */\nexport const ANIMATION_TIME = 0.25;\n\n/**\n * Timer for animation out, to be cleared if we need to immediately hide\n * without disrupting new shows.\n */\nlet animateOutTimer: ReturnType|null = null;\n\n/** Callback for when the drop-down is hidden. */\nlet onHide: Function|null = null;\n\n/** A class name representing the current owner's workspace renderer. */\nlet renderedClassName = '';\n\n/** A class name representing the current owner's workspace theme. */\nlet themeClassName = '';\n\n/** The content element. */\nlet div: HTMLDivElement;\n\n/** The content element. */\nlet content: HTMLDivElement;\n\n/** The arrow element. */\nlet arrow: HTMLDivElement;\n\n/**\n * Drop-downs will appear within the bounds of this element if possible.\n * Set in setBoundsElement.\n */\nlet boundsElement: Element|null = null;\n\n/** The object currently using the drop-down. */\nlet owner: Field|null = null;\n\n/** Whether the dropdown was positioned to a field or the source block. */\nlet positionToField: boolean|null = null;\n\n/**\n * Dropdown bounds info object used to encapsulate sizing information about a\n * bounding element (bounding box and width/height).\n */\nexport interface BoundsInfo {\n top: number;\n left: number;\n bottom: number;\n right: number;\n width: number;\n height: number;\n}\n\n/** Dropdown position metrics. */\nexport interface PositionMetrics {\n initialX: number;\n initialY: number;\n finalX: number;\n finalY: number;\n arrowX: number|null;\n arrowY: number|null;\n arrowAtTop: boolean|null;\n arrowVisible: boolean;\n}\n\n/**\n * Create and insert the DOM element for this div.\n *\n * @internal\n */\nexport function createDom() {\n if (div) {\n return; // Already created.\n }\n div = document.createElement('div');\n div.className = 'blocklyDropDownDiv';\n const parentDiv = common.getParentContainer() || document.body;\n parentDiv.appendChild(div);\n\n content = document.createElement('div');\n content.className = 'blocklyDropDownContent';\n div.appendChild(content);\n\n arrow = document.createElement('div');\n arrow.className = 'blocklyDropDownArrow';\n div.appendChild(arrow);\n\n div.style.opacity = '0';\n // Transition animation for transform: translate() and opacity.\n div.style.transition = 'transform ' + ANIMATION_TIME + 's, ' +\n 'opacity ' + ANIMATION_TIME + 's';\n\n // Handle focusin/out events to add a visual indicator when\n // a child is focused or blurred.\n div.addEventListener('focusin', function() {\n dom.addClass(div, 'blocklyFocused');\n });\n div.addEventListener('focusout', function() {\n dom.removeClass(div, 'blocklyFocused');\n });\n}\n\n/**\n * Set an element to maintain bounds within. Drop-downs will appear\n * within the box of this element if possible.\n *\n * @param boundsElem Element to bind drop-down to.\n */\nexport function setBoundsElement(boundsElem: Element|null) {\n boundsElement = boundsElem;\n}\n\n/**\n * Provide the div for inserting content into the drop-down.\n *\n * @returns Div to populate with content.\n */\nexport function getContentDiv(): Element {\n return content;\n}\n\n/** Clear the content of the drop-down. */\nexport function clearContent() {\n content.textContent = '';\n content.style.width = '';\n}\n\n/**\n * Set the colour for the drop-down.\n *\n * @param backgroundColour Any CSS colour for the background.\n * @param borderColour Any CSS colour for the border.\n */\nexport function setColour(backgroundColour: string, borderColour: string) {\n div.style.backgroundColor = backgroundColour;\n div.style.borderColor = borderColour;\n}\n\n/**\n * Shortcut to show and place the drop-down with positioning determined\n * by a particular block. The primary position will be below the block,\n * and the secondary position above the block. Drop-down will be\n * constrained to the block's workspace.\n *\n * @param field The field showing the drop-down.\n * @param block Block to position the drop-down around.\n * @param opt_onHide Optional callback for when the drop-down is hidden.\n * @param opt_secondaryYOffset Optional Y offset for above-block positioning.\n * @returns True if the menu rendered below block; false if above.\n */\nexport function showPositionedByBlock(\n field: Field, block: BlockSvg, opt_onHide?: Function,\n opt_secondaryYOffset?: number): boolean {\n return showPositionedByRect(\n getScaledBboxOfBlock(block), field, opt_onHide, opt_secondaryYOffset);\n}\n\n/**\n * Shortcut to show and place the drop-down with positioning determined\n * by a particular field. The primary position will be below the field,\n * and the secondary position above the field. Drop-down will be\n * constrained to the block's workspace.\n *\n * @param field The field to position the dropdown against.\n * @param opt_onHide Optional callback for when the drop-down is hidden.\n * @param opt_secondaryYOffset Optional Y offset for above-block positioning.\n * @returns True if the menu rendered below block; false if above.\n */\nexport function showPositionedByField(\n field: Field, opt_onHide?: Function,\n opt_secondaryYOffset?: number): boolean {\n positionToField = true;\n return showPositionedByRect(\n getScaledBboxOfField(field), field, opt_onHide, opt_secondaryYOffset);\n}\n/**\n * Get the scaled bounding box of a block.\n *\n * @param block The block.\n * @returns The scaled bounding box of the block.\n */\nfunction getScaledBboxOfBlock(block: BlockSvg): Rect {\n const blockSvg = block.getSvgRoot();\n const scale = block.workspace.scale;\n const scaledHeight = block.height * scale;\n const scaledWidth = block.width * scale;\n const xy = style.getPageOffset(blockSvg);\n return new Rect(xy.y, xy.y + scaledHeight, xy.x, xy.x + scaledWidth);\n}\n\n/**\n * Get the scaled bounding box of a field.\n *\n * @param field The field.\n * @returns The scaled bounding box of the field.\n */\nfunction getScaledBboxOfField(field: Field): Rect {\n const bBox = field.getScaledBBox();\n return new Rect(bBox.top, bBox.bottom, bBox.left, bBox.right);\n}\n\n/**\n * Helper method to show and place the drop-down with positioning determined\n * by a scaled bounding box. The primary position will be below the rect,\n * and the secondary position above the rect. Drop-down will be constrained to\n * the block's workspace.\n *\n * @param bBox The scaled bounding box.\n * @param field The field to position the dropdown against.\n * @param opt_onHide Optional callback for when the drop-down is hidden.\n * @param opt_secondaryYOffset Optional Y offset for above-block positioning.\n * @returns True if the menu rendered below block; false if above.\n */\nfunction showPositionedByRect(\n bBox: Rect, field: Field, opt_onHide?: Function,\n opt_secondaryYOffset?: number): boolean {\n // If we can fit it, render below the block.\n const primaryX = bBox.left + (bBox.right - bBox.left) / 2;\n const primaryY = bBox.bottom;\n // If we can't fit it, render above the entire parent block.\n const secondaryX = primaryX;\n let secondaryY = bBox.top;\n if (opt_secondaryYOffset) {\n secondaryY += opt_secondaryYOffset;\n }\n const sourceBlock = field.getSourceBlock() as BlockSvg;\n // Set bounds to main workspace; show the drop-down.\n let workspace = sourceBlock.workspace;\n while (workspace.options.parentWorkspace) {\n workspace = workspace.options.parentWorkspace;\n }\n setBoundsElement(workspace.getParentSvg().parentNode as Element | null);\n return show(\n field, sourceBlock.RTL, primaryX, primaryY, secondaryX, secondaryY,\n opt_onHide);\n}\n\n/**\n * Show and place the drop-down.\n * The drop-down is placed with an absolute \"origin point\" (x, y) - i.e.,\n * the arrow will point at this origin and box will positioned below or above\n * it. If we can maintain the container bounds at the primary point, the arrow\n * will point there, and the container will be positioned below it.\n * If we can't maintain the container bounds at the primary point, fall-back to\n * the secondary point and position above.\n *\n * @param newOwner The object showing the drop-down\n * @param rtl Right-to-left (true) or left-to-right (false).\n * @param primaryX Desired origin point x, in absolute px.\n * @param primaryY Desired origin point y, in absolute px.\n * @param secondaryX Secondary/alternative origin point x, in absolute px.\n * @param secondaryY Secondary/alternative origin point y, in absolute px.\n * @param opt_onHide Optional callback for when the drop-down is hidden.\n * @returns True if the menu rendered at the primary origin point.\n * @internal\n */\nexport function show(\n newOwner: Field, rtl: boolean, primaryX: number, primaryY: number,\n secondaryX: number, secondaryY: number, opt_onHide?: Function): boolean {\n owner = newOwner;\n onHide = opt_onHide || null;\n // Set direction.\n div.style.direction = rtl ? 'rtl' : 'ltr';\n\n const mainWorkspace = common.getMainWorkspace() as WorkspaceSvg;\n renderedClassName = mainWorkspace.getRenderer().getClassName();\n themeClassName = mainWorkspace.getTheme().getClassName();\n if (renderedClassName) {\n dom.addClass(div, renderedClassName);\n }\n if (themeClassName) {\n dom.addClass(div, themeClassName);\n }\n\n // When we change `translate` multiple times in close succession,\n // Chrome may choose to wait and apply them all at once.\n // Since we want the translation to initial X, Y to be immediate,\n // and the translation to final X, Y to be animated,\n // we saw problems where both would be applied after animation was turned on,\n // making the dropdown appear to fly in from (0, 0).\n // Using both `left`, `top` for the initial translation and then `translate`\n // for the animated transition to final X, Y is a workaround.\n return positionInternal(primaryX, primaryY, secondaryX, secondaryY);\n}\n\nconst internal = {\n /**\n * Get sizing info about the bounding element.\n *\n * @returns An object containing size information about the bounding element\n * (bounding box and width/height).\n */\n getBoundsInfo: function(): BoundsInfo {\n const boundPosition = style.getPageOffset(boundsElement as Element);\n const boundSize = style.getSize(boundsElement as Element);\n\n return {\n left: boundPosition.x,\n right: boundPosition.x + boundSize.width,\n top: boundPosition.y,\n bottom: boundPosition.y + boundSize.height,\n width: boundSize.width,\n height: boundSize.height,\n };\n },\n\n /**\n * Helper to position the drop-down and the arrow, maintaining bounds.\n * See explanation of origin points in show.\n *\n * @param primaryX Desired origin point x, in absolute px.\n * @param primaryY Desired origin point y, in absolute px.\n * @param secondaryX Secondary/alternative origin point x, in absolute px.\n * @param secondaryY Secondary/alternative origin point y, in absolute px.\n * @returns Various final metrics, including rendered positions for drop-down\n * and arrow.\n */\n getPositionMetrics: function(\n primaryX: number, primaryY: number, secondaryX: number,\n secondaryY: number): PositionMetrics {\n const boundsInfo = internal.getBoundsInfo();\n const divSize = style.getSize(div as Element);\n\n // Can we fit in-bounds below the target?\n if (primaryY + divSize.height < boundsInfo.bottom) {\n return getPositionBelowMetrics(primaryX, primaryY, boundsInfo, divSize);\n }\n // Can we fit in-bounds above the target?\n if (secondaryY - divSize.height > boundsInfo.top) {\n return getPositionAboveMetrics(\n secondaryX, secondaryY, boundsInfo, divSize);\n }\n // Can we fit outside the workspace bounds (but inside the window)\n // below?\n if (primaryY + divSize.height < document.documentElement.clientHeight) {\n return getPositionBelowMetrics(primaryX, primaryY, boundsInfo, divSize);\n }\n // Can we fit outside the workspace bounds (but inside the window)\n // above?\n if (secondaryY - divSize.height > document.documentElement.clientTop) {\n return getPositionAboveMetrics(\n secondaryX, secondaryY, boundsInfo, divSize);\n }\n\n // Last resort, render at top of page.\n return getPositionTopOfPageMetrics(primaryX, boundsInfo, divSize);\n },\n};\n\n/**\n * Get the metrics for positioning the div below the source.\n *\n * @param primaryX Desired origin point x, in absolute px.\n * @param primaryY Desired origin point y, in absolute px.\n * @param boundsInfo An object containing size information about the bounding\n * element (bounding box and width/height).\n * @param divSize An object containing information about the size of the\n * DropDownDiv (width & height).\n * @returns Various final metrics, including rendered positions for drop-down\n * and arrow.\n */\nfunction getPositionBelowMetrics(\n primaryX: number, primaryY: number, boundsInfo: BoundsInfo,\n divSize: Size): PositionMetrics {\n const xCoords =\n getPositionX(primaryX, boundsInfo.left, boundsInfo.right, divSize.width);\n\n const arrowY = -(ARROW_SIZE / 2 + BORDER_SIZE);\n const finalY = primaryY + PADDING_Y;\n\n return {\n initialX: xCoords.divX,\n initialY: primaryY,\n finalX: xCoords.divX, // X position remains constant during animation.\n finalY,\n arrowX: xCoords.arrowX,\n arrowY,\n arrowAtTop: true,\n arrowVisible: true,\n };\n}\n\n/**\n * Get the metrics for positioning the div above the source.\n *\n * @param secondaryX Secondary/alternative origin point x, in absolute px.\n * @param secondaryY Secondary/alternative origin point y, in absolute px.\n * @param boundsInfo An object containing size information about the bounding\n * element (bounding box and width/height).\n * @param divSize An object containing information about the size of the\n * DropDownDiv (width & height).\n * @returns Various final metrics, including rendered positions for drop-down\n * and arrow.\n */\nfunction getPositionAboveMetrics(\n secondaryX: number, secondaryY: number, boundsInfo: BoundsInfo,\n divSize: Size): PositionMetrics {\n const xCoords = getPositionX(\n secondaryX, boundsInfo.left, boundsInfo.right, divSize.width);\n\n const arrowY = divSize.height - BORDER_SIZE * 2 - ARROW_SIZE / 2;\n const finalY = secondaryY - divSize.height - PADDING_Y;\n const initialY = secondaryY - divSize.height; // No padding on Y.\n\n return {\n initialX: xCoords.divX,\n initialY,\n finalX: xCoords.divX, // X position remains constant during animation.\n finalY,\n arrowX: xCoords.arrowX,\n arrowY,\n arrowAtTop: false,\n arrowVisible: true,\n };\n}\n\n/**\n * Get the metrics for positioning the div at the top of the page.\n *\n * @param sourceX Desired origin point x, in absolute px.\n * @param boundsInfo An object containing size information about the bounding\n * element (bounding box and width/height).\n * @param divSize An object containing information about the size of the\n * DropDownDiv (width & height).\n * @returns Various final metrics, including rendered positions for drop-down\n * and arrow.\n */\nfunction getPositionTopOfPageMetrics(\n sourceX: number, boundsInfo: BoundsInfo, divSize: Size): PositionMetrics {\n const xCoords =\n getPositionX(sourceX, boundsInfo.left, boundsInfo.right, divSize.width);\n\n // No need to provide arrow-specific information because it won't be visible.\n return {\n initialX: xCoords.divX,\n initialY: 0,\n finalX: xCoords.divX, // X position remains constant during animation.\n finalY: 0, // Y position remains constant during animation.\n arrowAtTop: null,\n arrowX: null,\n arrowY: null,\n arrowVisible: false,\n };\n}\n\n/**\n * Get the x positions for the left side of the DropDownDiv and the arrow,\n * accounting for the bounds of the workspace.\n *\n * @param sourceX Desired origin point x, in absolute px.\n * @param boundsLeft The left edge of the bounding element, in absolute px.\n * @param boundsRight The right edge of the bounding element, in absolute px.\n * @param divWidth The width of the div in px.\n * @returns An object containing metrics for the x positions of the left side of\n * the DropDownDiv and the arrow.\n * @internal\n */\nexport function getPositionX(\n sourceX: number, boundsLeft: number, boundsRight: number,\n divWidth: number): {divX: number, arrowX: number} {\n let divX = sourceX;\n // Offset the topLeft coord so that the dropdowndiv is centered.\n divX -= divWidth / 2;\n // Fit the dropdowndiv within the bounds of the workspace.\n divX = math.clamp(boundsLeft, divX, boundsRight - divWidth);\n\n let arrowX = sourceX;\n // Offset the arrow coord so that the arrow is centered.\n arrowX -= ARROW_SIZE / 2;\n // Convert the arrow position to be relative to the top left of the div.\n let relativeArrowX = arrowX - divX;\n const horizPadding = ARROW_HORIZONTAL_PADDING;\n // Clamp the arrow position so that it stays attached to the dropdowndiv.\n relativeArrowX = math.clamp(\n horizPadding, relativeArrowX, divWidth - horizPadding - ARROW_SIZE);\n\n return {arrowX: relativeArrowX, divX};\n}\n\n/**\n * Is the container visible?\n *\n * @returns True if visible.\n */\nexport function isVisible(): boolean {\n return !!owner;\n}\n\n/**\n * Hide the menu only if it is owned by the provided object.\n *\n * @param divOwner Object which must be owning the drop-down to hide.\n * @param opt_withoutAnimation True if we should hide the dropdown without\n * animating.\n * @returns True if hidden.\n */\nexport function hideIfOwner(\n divOwner: Field, opt_withoutAnimation?: boolean): boolean {\n if (owner === divOwner) {\n if (opt_withoutAnimation) {\n hideWithoutAnimation();\n } else {\n hide();\n }\n return true;\n }\n return false;\n}\n\n/** Hide the menu, triggering animation. */\nexport function hide() {\n // Start the animation by setting the translation and fading out.\n // Reset to (initialX, initialY) - i.e., no translation.\n div.style.transform = 'translate(0, 0)';\n div.style.opacity = '0';\n // Finish animation - reset all values to default.\n animateOutTimer = setTimeout(function() {\n hideWithoutAnimation();\n }, ANIMATION_TIME * 1000);\n if (onHide) {\n onHide();\n onHide = null;\n }\n}\n\n/** Hide the menu, without animation. */\nexport function hideWithoutAnimation() {\n if (!isVisible()) {\n return;\n }\n if (animateOutTimer) {\n clearTimeout(animateOutTimer);\n }\n\n // Reset style properties in case this gets called directly\n // instead of hide() - see discussion on #2551.\n div.style.transform = '';\n div.style.left = '';\n div.style.top = '';\n div.style.opacity = '0';\n div.style.display = 'none';\n div.style.backgroundColor = '';\n div.style.borderColor = '';\n\n if (onHide) {\n onHide();\n onHide = null;\n }\n clearContent();\n owner = null;\n\n if (renderedClassName) {\n dom.removeClass(div, renderedClassName);\n renderedClassName = '';\n }\n if (themeClassName) {\n dom.removeClass(div, themeClassName);\n themeClassName = '';\n }\n (common.getMainWorkspace() as WorkspaceSvg).markFocused();\n}\n\n/**\n * Set the dropdown div's position.\n *\n * @param primaryX Desired origin point x, in absolute px.\n * @param primaryY Desired origin point y, in absolute px.\n * @param secondaryX Secondary/alternative origin point x, in absolute px.\n * @param secondaryY Secondary/alternative origin point y, in absolute px.\n * @returns True if the menu rendered at the primary origin point.\n */\nfunction positionInternal(\n primaryX: number, primaryY: number, secondaryX: number,\n secondaryY: number): boolean {\n const metrics =\n internal.getPositionMetrics(primaryX, primaryY, secondaryX, secondaryY);\n\n // Update arrow CSS.\n if (metrics.arrowVisible) {\n arrow.style.display = '';\n arrow.style.transform = 'translate(' + metrics.arrowX + 'px,' +\n metrics.arrowY + 'px) rotate(45deg)';\n arrow.setAttribute(\n 'class',\n metrics.arrowAtTop ? 'blocklyDropDownArrow blocklyArrowTop' :\n 'blocklyDropDownArrow blocklyArrowBottom');\n } else {\n arrow.style.display = 'none';\n }\n\n const initialX = Math.floor(metrics.initialX);\n const initialY = Math.floor(metrics.initialY);\n const finalX = Math.floor(metrics.finalX);\n const finalY = Math.floor(metrics.finalY);\n\n // First apply initial translation.\n div.style.left = initialX + 'px';\n div.style.top = initialY + 'px';\n\n // Show the div.\n div.style.display = 'block';\n div.style.opacity = '1';\n // Add final translate, animated through `transition`.\n // Coordinates are relative to (initialX, initialY),\n // where the drop-down is absolutely positioned.\n const dx = finalX - initialX;\n const dy = finalY - initialY;\n div.style.transform = 'translate(' + dx + 'px,' + dy + 'px)';\n\n return !!metrics.arrowAtTop;\n}\n\n/**\n * Repositions the dropdownDiv on window resize. If it doesn't know how to\n * calculate the new position, it will just hide it instead.\n *\n * @internal\n */\nexport function repositionForWindowResize() {\n // This condition mainly catches the dropdown div when it is being used as a\n // dropdown. It is important not to close it in this case because on Android,\n // when a field is focused, the soft keyboard opens triggering a window resize\n // event and we want the dropdown div to stick around so users can type into\n // it.\n if (owner) {\n const block = owner.getSourceBlock() as BlockSvg;\n const bBox = positionToField ? getScaledBboxOfField(owner) :\n getScaledBboxOfBlock(block);\n // If we can fit it, render below the block.\n const primaryX = bBox.left + (bBox.right - bBox.left) / 2;\n const primaryY = bBox.bottom;\n // If we can't fit it, render above the entire parent block.\n const secondaryX = primaryX;\n const secondaryY = bBox.top;\n positionInternal(primaryX, primaryY, secondaryX, secondaryY);\n } else {\n hide();\n }\n}\n\nexport const TEST_ONLY = internal;\n","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * This file is a universal registry that provides generic methods\n * for registering and unregistering different types of classes.\n *\n * @namespace Blockly.registry\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.registry');\n\nimport type {Abstract} from './events/events_abstract.js';\nimport type {Field} from './field.js';\nimport type {IBlockDragger} from './interfaces/i_block_dragger.js';\nimport type {IConnectionChecker} from './interfaces/i_connection_checker.js';\nimport type {IFlyout} from './interfaces/i_flyout.js';\nimport type {IMetricsManager} from './interfaces/i_metrics_manager.js';\nimport type {ISerializer} from './interfaces/i_serializer.js';\nimport type {IToolbox} from './interfaces/i_toolbox.js';\nimport type {Cursor} from './keyboard_nav/cursor.js';\nimport type {Options} from './options.js';\nimport type {Renderer} from './renderers/common/renderer.js';\nimport type {Theme} from './theme.js';\nimport type {ToolboxItem} from './toolbox/toolbox_item.js';\n\n\n/**\n * A map of maps. With the keys being the type and name of the class we are\n * registering and the value being the constructor function.\n * e.g. {'field': {'field_angle': Blockly.FieldAngle}}\n */\nconst typeMap: {\n [key: string]:\n {[key: string]: (new () => AnyDuringMigration)|AnyDuringMigration}\n} = Object.create(null);\nexport const TEST_ONLY = {typeMap};\n\n/**\n * A map of maps. With the keys being the type and caseless name of the class we\n * are registring, and the value being the most recent cased name for that\n * registration.\n */\nconst nameMap: {[key: string]: {[key: string]: string}} = Object.create(null);\n\n/**\n * The string used to register the default class for a type of plugin.\n *\n * @alias Blockly.registry.DEFAULT\n */\nexport const DEFAULT = 'default';\n\n/**\n * A name with the type of the element stored in the generic.\n *\n * @alias Blockly.registry.Type\n */\nexport class Type<_T> {\n /** @param name The name of the registry type. */\n constructor(private readonly name: string) {}\n\n /**\n * Returns the name of the type.\n *\n * @returns The name.\n */\n toString(): string {\n return this.name;\n }\n\n static CONNECTION_CHECKER = new Type('connectionChecker');\n\n static CURSOR = new Type('cursor');\n\n static EVENT = new Type('event');\n\n static FIELD = new Type('field');\n\n static RENDERER = new Type('renderer');\n\n static TOOLBOX = new Type('toolbox');\n\n static THEME = new Type('theme');\n\n static TOOLBOX_ITEM = new Type('toolboxItem');\n\n static FLYOUTS_VERTICAL_TOOLBOX = new Type('flyoutsVerticalToolbox');\n\n static FLYOUTS_HORIZONTAL_TOOLBOX =\n new Type('flyoutsHorizontalToolbox');\n\n static METRICS_MANAGER = new Type('metricsManager');\n\n static BLOCK_DRAGGER = new Type('blockDragger');\n\n /** @internal */\n static SERIALIZER = new Type('serializer');\n}\n\n/**\n * Registers a class based on a type and name.\n *\n * @param type The type of the plugin.\n * (e.g. Field, Renderer)\n * @param name The plugin's name. (Ex. field_angle, geras)\n * @param registryItem The class or object to register.\n * @param opt_allowOverrides True to prevent an error when overriding an already\n * registered item.\n * @throws {Error} if the type or name is empty, a name with the given type has\n * already been registered, or if the given class or object is not valid for\n * its type.\n * @alias Blockly.registry.register\n */\nexport function register(\n type: string|Type, name: string,\n registryItem: (new (...p1: AnyDuringMigration[]) => T)|null|\n AnyDuringMigration,\n opt_allowOverrides?: boolean): void {\n if (!(type instanceof Type) && typeof type !== 'string' ||\n String(type).trim() === '') {\n throw Error(\n 'Invalid type \"' + type + '\". The type must be a' +\n ' non-empty string or a Blockly.registry.Type.');\n }\n type = String(type).toLowerCase();\n\n if (typeof name !== 'string' || name.trim() === '') {\n throw Error(\n 'Invalid name \"' + name + '\". The name must be a' +\n ' non-empty string.');\n }\n const caselessName = name.toLowerCase();\n if (!registryItem) {\n throw Error('Can not register a null value');\n }\n let typeRegistry = typeMap[type];\n let nameRegistry = nameMap[type];\n // If the type registry has not been created, create it.\n if (!typeRegistry) {\n typeRegistry = typeMap[type] = Object.create(null);\n nameRegistry = nameMap[type] = Object.create(null);\n }\n\n // Validate that the given class has all the required properties.\n validate(type, registryItem);\n\n // Don't throw an error if opt_allowOverrides is true.\n if (!opt_allowOverrides && typeRegistry[caselessName]) {\n throw Error(\n 'Name \"' + caselessName + '\" with type \"' + type +\n '\" already registered.');\n }\n typeRegistry[caselessName] = registryItem;\n nameRegistry[caselessName] = name;\n}\n\n/**\n * Checks the given registry item for properties that are required based on the\n * type.\n *\n * @param type The type of the plugin. (e.g. Field, Renderer)\n * @param registryItem A class or object that we are checking for the required\n * properties.\n */\nfunction validate(type: string, registryItem: Function|AnyDuringMigration) {\n switch (type) {\n case String(Type.FIELD):\n if (typeof registryItem.fromJson !== 'function') {\n throw Error('Type \"' + type + '\" must have a fromJson function');\n }\n break;\n }\n}\n\n/**\n * Unregisters the registry item with the given type and name.\n *\n * @param type The type of the plugin.\n * (e.g. Field, Renderer)\n * @param name The plugin's name. (Ex. field_angle, geras)\n * @alias Blockly.registry.unregister\n */\nexport function unregister(type: string|Type, name: string) {\n type = String(type).toLowerCase();\n name = name.toLowerCase();\n const typeRegistry = typeMap[type];\n if (!typeRegistry || !typeRegistry[name]) {\n console.warn(\n 'Unable to unregister [' + name + '][' + type + '] from the ' +\n 'registry.');\n return;\n }\n delete typeMap[type][name];\n delete nameMap[type][name];\n}\n\n/**\n * Gets the registry item for the given name and type. This can be either a\n * class or an object.\n *\n * @param type The type of the plugin.\n * (e.g. Field, Renderer)\n * @param name The plugin's name. (Ex. field_angle, geras)\n * @param opt_throwIfMissing Whether or not to throw an error if we are unable\n * to find the plugin.\n * @returns The class or object with the given name and type or null if none\n * exists.\n */\nfunction getItem(\n type: string|Type, name: string, opt_throwIfMissing?: boolean):\n (new (...p1: AnyDuringMigration[]) => T)|null|AnyDuringMigration {\n type = String(type).toLowerCase();\n name = name.toLowerCase();\n const typeRegistry = typeMap[type];\n if (!typeRegistry || !typeRegistry[name]) {\n const msg = 'Unable to find [' + name + '][' + type + '] in the registry.';\n if (opt_throwIfMissing) {\n throw new Error(\n msg + ' You must require or register a ' + type + ' plugin.');\n } else {\n console.warn(msg);\n }\n return null;\n }\n return typeRegistry[name];\n}\n\n/**\n * Returns whether or not the registry contains an item with the given type and\n * name.\n *\n * @param type The type of the plugin.\n * (e.g. Field, Renderer)\n * @param name The plugin's name. (Ex. field_angle, geras)\n * @returns True if the registry has an item with the given type and name, false\n * otherwise.\n * @alias Blockly.registry.hasItem\n */\nexport function hasItem(type: string|Type, name: string): boolean {\n type = String(type).toLowerCase();\n name = name.toLowerCase();\n const typeRegistry = typeMap[type];\n if (!typeRegistry) {\n return false;\n }\n return !!typeRegistry[name];\n}\n\n/**\n * Gets the class for the given name and type.\n *\n * @param type The type of the plugin.\n * (e.g. Field, Renderer)\n * @param name The plugin's name. (Ex. field_angle, geras)\n * @param opt_throwIfMissing Whether or not to throw an error if we are unable\n * to find the plugin.\n * @returns The class with the given name and type or null if none exists.\n * @alias Blockly.registry.getClass\n */\nexport function getClass(\n type: string|Type, name: string, opt_throwIfMissing?: boolean):\n (new (...p1: AnyDuringMigration[]) => T)|null {\n return getItem(type, name, opt_throwIfMissing) as (\n new (...p1: AnyDuringMigration[]) => T) |\n null;\n}\n\n/**\n * Gets the object for the given name and type.\n *\n * @param type The type of the plugin.\n * (e.g. Category)\n * @param name The plugin's name. (Ex. logic_category)\n * @param opt_throwIfMissing Whether or not to throw an error if we are unable\n * to find the object.\n * @returns The object with the given name and type or null if none exists.\n * @alias Blockly.registry.getObject\n */\nexport function getObject(\n type: string|Type, name: string, opt_throwIfMissing?: boolean): T|null {\n return getItem(type, name, opt_throwIfMissing) as T;\n}\n\n/**\n * Returns a map of items registered with the given type.\n *\n * @param type The type of the plugin. (e.g. Category)\n * @param opt_cased Whether or not to return a map with cased keys (rather than\n * caseless keys). False by default.\n * @param opt_throwIfMissing Whether or not to throw an error if we are unable\n * to find the object. False by default.\n * @returns A map of objects with the given type, or null if none exists.\n * @alias Blockly.registry.getAllItems\n */\nexport function getAllItems(\n type: string|Type, opt_cased?: boolean, opt_throwIfMissing?: boolean):\n {[key: string]: T|null|(new (...p1: AnyDuringMigration[]) => T)}|null {\n type = String(type).toLowerCase();\n const typeRegistry = typeMap[type];\n if (!typeRegistry) {\n const msg = `Unable to find [${type}] in the registry.`;\n if (opt_throwIfMissing) {\n throw new Error(`${msg} You must require or register a ${type} plugin.`);\n } else {\n console.warn(msg);\n }\n return null;\n }\n if (!opt_cased) {\n return typeRegistry;\n }\n const nameRegistry = nameMap[type];\n const casedRegistry = Object.create(null);\n const keys = Object.keys(typeRegistry);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n casedRegistry[nameRegistry[key]] = typeRegistry[key];\n }\n return casedRegistry;\n}\n\n/**\n * Gets the class from Blockly options for the given type.\n * This is used for plugins that override a built in feature. (e.g. Toolbox)\n *\n * @param type The type of the plugin.\n * @param options The option object to check for the given plugin.\n * @param opt_throwIfMissing Whether or not to throw an error if we are unable\n * to find the plugin.\n * @returns The class for the plugin.\n * @alias Blockly.registry.getClassFromOptions\n */\nexport function getClassFromOptions(\n type: Type, options: Options, opt_throwIfMissing?: boolean):\n (new (...p1: AnyDuringMigration[]) => T)|null {\n const typeName = type.toString();\n const plugin = options.plugins[typeName] || DEFAULT;\n\n // If the user passed in a plugin class instead of a registered plugin name.\n if (typeof plugin === 'function') {\n return plugin;\n }\n return getClass(type, plugin, opt_throwIfMissing);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Generators for unique IDs.\n *\n * @namespace Blockly.utils.idGenerator\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.idGenerator');\n\n/**\n * Legal characters for the universally unique IDs. Should be all on\n * a US keyboard. No characters that conflict with XML or JSON.\n * Requests to remove additional 'problematic' characters from this\n * soup will be denied. That's your failure to properly escape in\n * your own environment. Issues #251, #625, #682, #1304.\n */\nconst soup = '!#$%()*+,-./:;=?@[]^_`{|}~' +\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n/**\n * Namespace object for internal implementations we want to be able to\n * stub in tests. Do not use externally.\n *\n * @internal\n */\nconst internal = {\n /**\n * Generate a random unique ID. This should be globally unique.\n * 87 characters ^ 20 length is greater than 128 bits (better than a UUID).\n *\n * @returns A globally unique ID string.\n */\n genUid: () => {\n const length = 20;\n const soupLength = soup.length;\n const id = [];\n for (let i = 0; i < length; i++) {\n id[i] = soup.charAt(Math.random() * soupLength);\n }\n return id.join('');\n },\n};\nexport const TEST_ONLY = internal;\n\n/** Next unique ID to use. */\nlet nextId = 0;\n\n/**\n * Generate the next unique element IDs.\n * IDs are compatible with the HTML4 'id' attribute restrictions:\n * Use only ASCII letters, digits, '_', '-' and '.'\n *\n * For UUIDs use genUid (below) instead; this ID generator should\n * primarily be used for IDs that end up in the DOM.\n *\n * @returns The next unique identifier.\n * @alias Blockly.utils.idGenerator.getNextUniqueId\n */\nexport function getNextUniqueId(): string {\n return 'blockly-' + (nextId++).toString(36);\n}\n\n/**\n * Generate a random unique ID.\n *\n * @see internal.genUid\n * @returns A globally unique ID string.\n * @alias Blockly.utils.idGenerator.genUid\n */\nexport function genUid(): string {\n return internal.genUid();\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Helper methods for events that are fired as a result of\n * actions in Blockly's editor.\n *\n * @namespace Blockly.Events.utils\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Events.utils');\n\nimport type {Block} from '../block.js';\nimport * as common from '../common.js';\nimport * as registry from '../registry.js';\nimport * as idGenerator from '../utils/idgenerator.js';\nimport type {Workspace} from '../workspace.js';\nimport type {WorkspaceSvg} from '../workspace_svg.js';\n\nimport type {Abstract} from './events_abstract.js';\nimport type {BlockChange} from './events_block_change.js';\nimport type {BlockCreate} from './events_block_create.js';\nimport type {BlockMove} from './events_block_move.js';\nimport type {CommentCreate} from './events_comment_create.js';\nimport type {CommentMove} from './events_comment_move.js';\nimport type {ViewportChange} from './events_viewport.js';\n\n\n/** Group ID for new events. Grouped events are indivisible. */\nlet group = '';\n\n/** Sets whether the next event should be added to the undo stack. */\nlet recordUndo = true;\n\n/**\n * Sets whether events should be added to the undo stack.\n *\n * @param newValue True if events should be added to the undo stack.\n * @alias Blockly.Events.utils.setRecordUndo\n */\nexport function setRecordUndo(newValue: boolean) {\n recordUndo = newValue;\n}\n\n/**\n * Returns whether or not events will be added to the undo stack.\n *\n * @returns True if events will be added to the undo stack.\n * @alias Blockly.Events.utils.getRecordUndo\n */\nexport function getRecordUndo(): boolean {\n return recordUndo;\n}\n\n/** Allow change events to be created and fired. */\nlet disabled = 0;\n\n/**\n * Name of event that creates a block. Will be deprecated for BLOCK_CREATE.\n *\n * @alias Blockly.Events.utils.CREATE\n */\nexport const CREATE = 'create';\n\n/**\n * Name of event that creates a block.\n *\n * @alias Blockly.Events.utils.BLOCK_CREATE\n */\nexport const BLOCK_CREATE = CREATE;\n\n/**\n * Name of event that deletes a block. Will be deprecated for BLOCK_DELETE.\n *\n * @alias Blockly.Events.utils.DELETE\n */\nexport const DELETE = 'delete';\n\n/**\n * Name of event that deletes a block.\n *\n * @alias Blockly.Events.utils.BLOCK_DELETE\n */\nexport const BLOCK_DELETE = DELETE;\n\n/**\n * Name of event that changes a block. Will be deprecated for BLOCK_CHANGE.\n *\n * @alias Blockly.Events.utils.CHANGE\n */\nexport const CHANGE = 'change';\n\n/**\n * Name of event that changes a block.\n *\n * @alias Blockly.Events.utils.BLOCK_CHANGE\n */\nexport const BLOCK_CHANGE = CHANGE;\n\n/**\n * Name of event that moves a block. Will be deprecated for BLOCK_MOVE.\n *\n * @alias Blockly.Events.utils.MOVE\n */\nexport const MOVE = 'move';\n\n/**\n * Name of event that moves a block.\n *\n * @alias Blockly.Events.utils.BLOCK_MOVE\n */\nexport const BLOCK_MOVE = MOVE;\n\n/**\n * Name of event that creates a variable.\n *\n * @alias Blockly.Events.utils.VAR_CREATE\n */\nexport const VAR_CREATE = 'var_create';\n\n/**\n * Name of event that deletes a variable.\n *\n * @alias Blockly.Events.utils.VAR_DELETE\n */\nexport const VAR_DELETE = 'var_delete';\n\n/**\n * Name of event that renames a variable.\n *\n * @alias Blockly.Events.utils.VAR_RENAME\n */\nexport const VAR_RENAME = 'var_rename';\n\n/**\n * Name of generic event that records a UI change.\n *\n * @alias Blockly.Events.utils.UI\n */\nexport const UI = 'ui';\n\n/**\n * Name of event that record a block drags a block.\n *\n * @alias Blockly.Events.utils.BLOCK_DRAG\n */\nexport const BLOCK_DRAG = 'drag';\n\n/**\n * Name of event that records a change in selected element.\n *\n * @alias Blockly.Events.utils.SELECTED\n */\nexport const SELECTED = 'selected';\n\n/**\n * Name of event that records a click.\n *\n * @alias Blockly.Events.utils.CLICK\n */\nexport const CLICK = 'click';\n\n/**\n * Name of event that records a marker move.\n *\n * @alias Blockly.Events.utils.MARKER_MOVE\n */\nexport const MARKER_MOVE = 'marker_move';\n\n/**\n * Name of event that records a bubble open.\n *\n * @alias Blockly.Events.utils.BUBBLE_OPEN\n */\nexport const BUBBLE_OPEN = 'bubble_open';\n\n/**\n * Name of event that records a trashcan open.\n *\n * @alias Blockly.Events.utils.TRASHCAN_OPEN\n */\nexport const TRASHCAN_OPEN = 'trashcan_open';\n\n/**\n * Name of event that records a toolbox item select.\n *\n * @alias Blockly.Events.utils.TOOLBOX_ITEM_SELECT\n */\nexport const TOOLBOX_ITEM_SELECT = 'toolbox_item_select';\n\n/**\n * Name of event that records a theme change.\n *\n * @alias Blockly.Events.utils.THEME_CHANGE\n */\nexport const THEME_CHANGE = 'theme_change';\n\n/**\n * Name of event that records a viewport change.\n *\n * @alias Blockly.Events.utils.VIEWPORT_CHANGE\n */\nexport const VIEWPORT_CHANGE = 'viewport_change';\n\n/**\n * Name of event that creates a comment.\n *\n * @alias Blockly.Events.utils.COMMENT_CREATE\n */\nexport const COMMENT_CREATE = 'comment_create';\n\n/**\n * Name of event that deletes a comment.\n *\n * @alias Blockly.Events.utils.COMMENT_DELETE\n */\nexport const COMMENT_DELETE = 'comment_delete';\n\n/**\n * Name of event that changes a comment.\n *\n * @alias Blockly.Events.utils.COMMENT_CHANGE\n */\nexport const COMMENT_CHANGE = 'comment_change';\n\n/**\n * Name of event that moves a comment.\n *\n * @alias Blockly.Events.utils.COMMENT_MOVE\n */\nexport const COMMENT_MOVE = 'comment_move';\n\n/**\n * Name of event that records a workspace load.\n *\n * @alias Blockly.Events.utils.FINISHED_LOADING\n */\nexport const FINISHED_LOADING = 'finished_loading';\n\n/**\n * Type of events that cause objects to be bumped back into the visible\n * portion of the workspace.\n *\n * Not to be confused with bumping so that disconnected connections do not\n * appear connected.\n *\n * @alias Blockly.Events.utils.BumpEvent\n */\nexport type BumpEvent = BlockCreate|BlockMove|CommentCreate|CommentMove;\n\n/**\n * List of events that cause objects to be bumped back into the visible\n * portion of the workspace.\n *\n * Not to be confused with bumping so that disconnected connections do not\n * appear connected.\n *\n * @alias Blockly.Events.utils.BUMP_EVENTS\n */\nexport const BUMP_EVENTS: string[] =\n [BLOCK_CREATE, BLOCK_MOVE, COMMENT_CREATE, COMMENT_MOVE];\n\n/** List of events queued for firing. */\nconst FIRE_QUEUE: Abstract[] = [];\n\n/**\n * Create a custom event and fire it.\n *\n * @param event Custom data for event.\n * @alias Blockly.Events.utils.fire\n */\nexport function fire(event: Abstract) {\n TEST_ONLY.fireInternal(event);\n}\n\n/**\n * Private version of fireInternal for stubbing in tests.\n */\nfunction fireInternal(event: Abstract) {\n if (!isEnabled()) {\n return;\n }\n if (!FIRE_QUEUE.length) {\n // First event added; schedule a firing of the event queue.\n setTimeout(fireNow, 0);\n }\n FIRE_QUEUE.push(event);\n}\n\n\n/** Fire all queued events. */\nfunction fireNow() {\n const queue = filter(FIRE_QUEUE, true);\n FIRE_QUEUE.length = 0;\n for (let i = 0, event; event = queue[i]; i++) {\n if (!event.workspaceId) {\n continue;\n }\n const eventWorkspace = common.getWorkspaceById(event.workspaceId);\n if (eventWorkspace) {\n eventWorkspace.fireChangeListener(event);\n }\n }\n}\n\n/**\n * Filter the queued events and merge duplicates.\n *\n * @param queueIn Array of events.\n * @param forward True if forward (redo), false if backward (undo).\n * @returns Array of filtered events.\n * @alias Blockly.Events.utils.filter\n */\nexport function filter(queueIn: Abstract[], forward: boolean): Abstract[] {\n let queue = queueIn.slice();\n // Shallow copy of queue.\n if (!forward) {\n // Undo is merged in reverse order.\n queue.reverse();\n }\n const mergedQueue = [];\n const hash = Object.create(null);\n // Merge duplicates.\n for (let i = 0, event; event = queue[i]; i++) {\n if (!event.isNull()) {\n // Treat all UI events as the same type in hash table.\n const eventType = event.isUiEvent ? UI : event.type;\n // TODO(#5927): Check whether `blockId` exists before accessing it.\n const blockId = (event as AnyDuringMigration).blockId;\n const key = [eventType, blockId, event.workspaceId].join(' ');\n\n const lastEntry = hash[key];\n const lastEvent = lastEntry ? lastEntry.event : null;\n if (!lastEntry) {\n // Each item in the hash table has the event and the index of that event\n // in the input array. This lets us make sure we only merge adjacent\n // move events.\n hash[key] = {event, index: i};\n mergedQueue.push(event);\n } else if (event.type === MOVE && lastEntry.index === i - 1) {\n const moveEvent = event as BlockMove;\n // Merge move events.\n lastEvent.newParentId = moveEvent.newParentId;\n lastEvent.newInputName = moveEvent.newInputName;\n lastEvent.newCoordinate = moveEvent.newCoordinate;\n lastEntry.index = i;\n } else if (\n event.type === CHANGE &&\n (event as BlockChange).element === lastEvent.element &&\n (event as BlockChange).name === lastEvent.name) {\n const changeEvent = event as BlockChange;\n // Merge change events.\n lastEvent.newValue = changeEvent.newValue;\n } else if (event.type === VIEWPORT_CHANGE) {\n const viewportEvent = event as ViewportChange;\n // Merge viewport change events.\n lastEvent.viewTop = viewportEvent.viewTop;\n lastEvent.viewLeft = viewportEvent.viewLeft;\n lastEvent.scale = viewportEvent.scale;\n lastEvent.oldScale = viewportEvent.oldScale;\n } else if (event.type === CLICK && lastEvent.type === BUBBLE_OPEN) {\n // Drop click events caused by opening/closing bubbles.\n } else {\n // Collision: newer events should merge into this event to maintain\n // order.\n hash[key] = {event, index: i};\n mergedQueue.push(event);\n }\n }\n }\n // Filter out any events that have become null due to merging.\n queue = mergedQueue.filter(function(e) {\n return !e.isNull();\n });\n if (!forward) {\n // Restore undo order.\n queue.reverse();\n }\n // Move mutation events to the top of the queue.\n // Intentionally skip first event.\n for (let i = 1, event; event = queue[i]; i++) {\n // AnyDuringMigration because: Property 'element' does not exist on type\n // 'Abstract'.\n if (event.type === CHANGE &&\n (event as AnyDuringMigration).element === 'mutation') {\n queue.unshift(queue.splice(i, 1)[0]);\n }\n }\n return queue;\n}\n\n/**\n * Modify pending undo events so that when they are fired they don't land\n * in the undo stack. Called by Workspace.clearUndo.\n *\n * @alias Blockly.Events.utils.clearPendingUndo\n */\nexport function clearPendingUndo() {\n for (let i = 0, event; event = FIRE_QUEUE[i]; i++) {\n event.recordUndo = false;\n }\n}\n\n/**\n * Stop sending events. Every call to this function MUST also call enable.\n *\n * @alias Blockly.Events.utils.disable\n */\nexport function disable() {\n disabled++;\n}\n\n/**\n * Start sending events. Unless events were already disabled when the\n * corresponding call to disable was made.\n *\n * @alias Blockly.Events.utils.enable\n */\nexport function enable() {\n disabled--;\n}\n\n/**\n * Returns whether events may be fired or not.\n *\n * @returns True if enabled.\n * @alias Blockly.Events.utils.isEnabled\n */\nexport function isEnabled(): boolean {\n return disabled === 0;\n}\n\n/**\n * Current group.\n *\n * @returns ID string.\n * @alias Blockly.Events.utils.getGroup\n */\nexport function getGroup(): string {\n return group;\n}\n\n/**\n * Start or stop a group.\n *\n * @param state True to start new group, false to end group.\n * String to set group explicitly.\n * @alias Blockly.Events.utils.setGroup\n */\nexport function setGroup(state: boolean|string) {\n TEST_ONLY.setGroupInternal(state);\n}\n\n/**\n * Private version of setGroup for stubbing in tests.\n */\nfunction setGroupInternal(state: boolean|string) {\n if (typeof state === 'boolean') {\n group = state ? idGenerator.genUid() : '';\n } else {\n group = state;\n }\n}\n\n/**\n * Compute a list of the IDs of the specified block and all its descendants.\n *\n * @param block The root block.\n * @returns List of block IDs.\n * @alias Blockly.Events.utils.getDescendantIds\n * @internal\n */\nexport function getDescendantIds(block: Block): string[] {\n const ids = [];\n const descendants = block.getDescendants(false);\n for (let i = 0, descendant; descendant = descendants[i]; i++) {\n ids[i] = descendant.id;\n }\n return ids;\n}\n\n/**\n * Decode the JSON into an event.\n *\n * @param json JSON representation.\n * @param workspace Target workspace for event.\n * @returns The event represented by the JSON.\n * @throws {Error} if an event type is not found in the registry.\n * @alias Blockly.Events.utils.fromJson\n */\nexport function fromJson(\n json: AnyDuringMigration, workspace: Workspace): Abstract {\n const eventClass = get(json['type']);\n if (!eventClass) {\n throw Error('Unknown event type.');\n }\n const event = new eventClass();\n event.fromJson(json);\n event.workspaceId = workspace.id;\n return event;\n}\n\n/**\n * Gets the class for a specific event type from the registry.\n *\n * @param eventType The type of the event to get.\n * @returns The event class with the given type.\n * @alias Blockly.Events.utils.get\n */\nexport function get(eventType: string):\n (new (...p1: AnyDuringMigration[]) => Abstract) {\n const event = registry.getClass(registry.Type.EVENT, eventType);\n if (!event) {\n throw new Error(`Event type ${eventType} not found in registry.`);\n }\n return event;\n}\n\n/**\n * Enable/disable a block depending on whether it is properly connected.\n * Use this on applications where all blocks should be connected to a top block.\n * Recommend setting the 'disable' option to 'false' in the config so that\n * users don't try to re-enable disabled orphan blocks.\n *\n * @param event Custom data for event.\n * @alias Blockly.Events.utils.disableOrphans\n */\nexport function disableOrphans(event: Abstract) {\n if (event.type === MOVE || event.type === CREATE) {\n const blockEvent = event as BlockMove | BlockCreate;\n if (!blockEvent.workspaceId) {\n return;\n }\n const eventWorkspace =\n common.getWorkspaceById(blockEvent.workspaceId) as WorkspaceSvg;\n if (!blockEvent.blockId) {\n throw new Error('Encountered a blockEvent without a proper blockId');\n }\n let block = eventWorkspace.getBlockById(blockEvent.blockId);\n if (block) {\n // Changing blocks as part of this event shouldn't be undoable.\n const initialUndoFlag = recordUndo;\n try {\n recordUndo = false;\n const parent = block.getParent();\n if (parent && parent.isEnabled()) {\n const children = block.getDescendants(false);\n for (let i = 0, child; child = children[i]; i++) {\n child.setEnabled(true);\n }\n } else if (\n (block.outputConnection || block.previousConnection) &&\n !eventWorkspace.isDragging()) {\n do {\n block.setEnabled(false);\n block = block.getNextBlock();\n } while (block);\n }\n } finally {\n recordUndo = initialUndoFlag;\n }\n }\n }\n}\n\nexport const TEST_ONLY = {\n FIRE_QUEUE,\n fireNow,\n fireInternal,\n setGroupInternal,\n};\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * XML element manipulation.\n * These methods are not specific to Blockly, and could be factored out into\n * a JavaScript framework such as Closure.\n *\n * @namespace Blockly.utils.xml\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.xml');\n\n\n/**\n * Namespace for Blockly's XML.\n *\n * @alias Blockly.utils.xml.NAME_SPACE\n */\nexport const NAME_SPACE = 'https://developers.google.com/blockly/xml';\n\n/**\n * The Document object to use. By default this is just document, but\n * the Node.js build of Blockly (see scripts/package/node/core.js)\n * calls setDocument to supply a Document implementation from the\n * jsdom package instead.\n */\nlet xmlDocument: Document = globalThis['document'];\n\n/**\n * Get the document object to use for XML serialization.\n *\n * @returns The document object.\n * @alias Blockly.utils.xml.getDocument\n */\nexport function getDocument(): Document {\n return xmlDocument;\n}\n\n/**\n * Get the document object to use for XML serialization.\n *\n * @param document The document object to use.\n * @alias Blockly.utils.xml.setDocument\n */\nexport function setDocument(document: Document) {\n xmlDocument = document;\n}\n\n/**\n * Create DOM element for XML.\n *\n * @param tagName Name of DOM element.\n * @returns New DOM element.\n * @alias Blockly.utils.xml.createElement\n */\nexport function createElement(tagName: string): Element {\n return xmlDocument.createElementNS(NAME_SPACE, tagName);\n}\n\n/**\n * Create text element for XML.\n *\n * @param text Text content.\n * @returns New DOM text node.\n * @alias Blockly.utils.xml.createTextNode\n */\nexport function createTextNode(text: string): Text {\n return xmlDocument.createTextNode(text);\n}\n\n/**\n * Converts an XML string into a DOM tree.\n *\n * @param text XML string.\n * @returns The DOM document.\n * @throws if XML doesn't parse.\n * @alias Blockly.utils.xml.textToDomDocument\n */\nexport function textToDomDocument(text: string): Document {\n const oParser = new DOMParser();\n return oParser.parseFromString(text, 'text/xml');\n}\n\n/**\n * Converts a DOM structure into plain text.\n * Currently the text format is fairly ugly: all one line with no whitespace.\n *\n * @param dom A tree of XML nodes.\n * @returns Text representation.\n * @alias Blockly.utils.xml.domToText\n */\nexport function domToText(dom: Node): string {\n const oSerializer = new XMLSerializer();\n return oSerializer.serializeToString(dom);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Wrapper functions around JS functions for showing alert/confirmation dialogs.\n *\n * @namespace Blockly.dialog\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.dialog');\n\n\nlet alertImplementation = function(message: string, opt_callback?: () => void) {\n window.alert(message);\n if (opt_callback) {\n opt_callback();\n }\n};\n\nlet confirmImplementation = function(\n message: string, callback: (result: boolean) => void) {\n callback(window.confirm(message));\n};\n\nlet promptImplementation = function(\n message: string, defaultValue: string,\n callback: (result: string|null) => void) {\n callback(window.prompt(message, defaultValue));\n};\n\n/**\n * Wrapper to window.alert() that app developers may override via setAlert to\n * provide alternatives to the modal browser window.\n *\n * @param message The message to display to the user.\n * @param opt_callback The callback when the alert is dismissed.\n * @alias Blockly.dialog.alert\n */\nexport function alert(message: string, opt_callback?: () => void) {\n alertImplementation(message, opt_callback);\n}\n\n/**\n * Sets the function to be run when Blockly.dialog.alert() is called.\n *\n * @param alertFunction The function to be run.\n * @see Blockly.dialog.alert\n * @alias Blockly.dialog.setAlert\n */\nexport function setAlert(alertFunction: (p1: string, p2?: () => void) => void) {\n alertImplementation = alertFunction;\n}\n\n/**\n * Wrapper to window.confirm() that app developers may override via setConfirm\n * to provide alternatives to the modal browser window.\n *\n * @param message The message to display to the user.\n * @param callback The callback for handling user response.\n * @alias Blockly.dialog.confirm\n */\nexport function confirm(message: string, callback: (p1: boolean) => void) {\n TEST_ONLY.confirmInternal(message, callback);\n}\n\n/**\n * Private version of confirm for stubbing in tests.\n */\nfunction confirmInternal(message: string, callback: (p1: boolean) => void) {\n confirmImplementation(message, callback);\n}\n\n\n/**\n * Sets the function to be run when Blockly.dialog.confirm() is called.\n *\n * @param confirmFunction The function to be run.\n * @see Blockly.dialog.confirm\n * @alias Blockly.dialog.setConfirm\n */\nexport function setConfirm(\n confirmFunction: (p1: string, p2: (p1: boolean) => void) => void) {\n confirmImplementation = confirmFunction;\n}\n\n/**\n * Wrapper to window.prompt() that app developers may override via setPrompt to\n * provide alternatives to the modal browser window. Built-in browser prompts\n * are often used for better text input experience on mobile device. We strongly\n * recommend testing mobile when overriding this.\n *\n * @param message The message to display to the user.\n * @param defaultValue The value to initialize the prompt with.\n * @param callback The callback for handling user response.\n * @alias Blockly.dialog.prompt\n */\nexport function prompt(\n message: string, defaultValue: string,\n callback: (p1: string|null) => void) {\n promptImplementation(message, defaultValue, callback);\n}\n\n/**\n * Sets the function to be run when Blockly.dialog.prompt() is called.\n *\n * @param promptFunction The function to be run.\n * @see Blockly.dialog.prompt\n * @alias Blockly.dialog.setPrompt\n */\nexport function setPrompt(\n promptFunction: (p1: string, p2: string, p3: (p1: string|null) => void) =>\n void) {\n promptImplementation = promptFunction;\n}\n\nexport const TEST_ONLY = {\n confirmInternal,\n};\n","/**\n * @license\n * Copyright 2012 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility functions for handling variables.\n *\n * @namespace Blockly.Variables\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Variables');\n\nimport {Blocks} from './blocks.js';\nimport * as dialog from './dialog.js';\nimport {Msg} from './msg.js';\nimport * as utilsXml from './utils/xml.js';\nimport {VariableModel} from './variable_model.js';\nimport type {Workspace} from './workspace.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\nimport * as Xml from './xml.js';\n\n\n/**\n * String for use in the \"custom\" attribute of a category in toolbox XML.\n * This string indicates that the category should be dynamically populated with\n * variable blocks.\n * See also Blockly.Procedures.CATEGORY_NAME and\n * Blockly.VariablesDynamic.CATEGORY_NAME.\n *\n * @alias Blockly.Variables.CATEGORY_NAME\n */\nexport const CATEGORY_NAME = 'VARIABLE';\n\n/**\n * Find all user-created variables that are in use in the workspace.\n * For use by generators.\n * To get a list of all variables on a workspace, including unused variables,\n * call Workspace.getAllVariables.\n *\n * @param ws The workspace to search for variables.\n * @returns Array of variable models.\n * @alias Blockly.Variables.allUsedVarModels\n */\nexport function allUsedVarModels(ws: Workspace): VariableModel[] {\n const blocks = ws.getAllBlocks(false);\n const variables = new Set();\n // Iterate through every block and add each variable to the set.\n for (let i = 0; i < blocks.length; i++) {\n const blockVariables = blocks[i].getVarModels();\n if (blockVariables) {\n for (let j = 0; j < blockVariables.length; j++) {\n const variable = blockVariables[j];\n const id = variable.getId();\n if (id) {\n variables.add(variable);\n }\n }\n }\n }\n // Convert the set into a list.\n return Array.from(variables.values());\n}\n\n/**\n * Find all developer variables used by blocks in the workspace.\n * Developer variables are never shown to the user, but are declared as global\n * variables in the generated code.\n * To declare developer variables, define the getDeveloperVariables function on\n * your block and return a list of variable names.\n * For use by generators.\n *\n * @param workspace The workspace to search.\n * @returns A list of non-duplicated variable names.\n * @alias Blockly.Variables.allDeveloperVariables\n */\nexport function allDeveloperVariables(workspace: Workspace): string[] {\n const blocks = workspace.getAllBlocks(false);\n const variables = new Set();\n for (let i = 0, block; block = blocks[i]; i++) {\n const getDeveloperVariables = block.getDeveloperVariables;\n if (getDeveloperVariables) {\n const devVars = getDeveloperVariables();\n for (let j = 0; j < devVars.length; j++) {\n variables.add(devVars[j]);\n }\n }\n }\n // Convert the set into a list.\n return Array.from(variables.values());\n}\n\n/**\n * Construct the elements (blocks and button) required by the flyout for the\n * variable category.\n *\n * @param workspace The workspace containing variables.\n * @returns Array of XML elements.\n * @alias Blockly.Variables.flyoutCategory\n */\nexport function flyoutCategory(workspace: WorkspaceSvg): Element[] {\n let xmlList = new Array();\n const button = document.createElement('button');\n button.setAttribute('text', '%{BKY_NEW_VARIABLE}');\n button.setAttribute('callbackKey', 'CREATE_VARIABLE');\n\n workspace.registerButtonCallback('CREATE_VARIABLE', function(button) {\n createVariableButtonHandler(button.getTargetWorkspace());\n });\n\n xmlList.push(button);\n\n const blockList = flyoutCategoryBlocks(workspace);\n xmlList = xmlList.concat(blockList);\n return xmlList;\n}\n\n/**\n * Construct the blocks required by the flyout for the variable category.\n *\n * @param workspace The workspace containing variables.\n * @returns Array of XML block elements.\n * @alias Blockly.Variables.flyoutCategoryBlocks\n */\nexport function flyoutCategoryBlocks(workspace: Workspace): Element[] {\n const variableModelList = workspace.getVariablesOfType('');\n\n const xmlList = [];\n if (variableModelList.length > 0) {\n // New variables are added to the end of the variableModelList.\n const mostRecentVariable = variableModelList[variableModelList.length - 1];\n if (Blocks['variables_set']) {\n const block = utilsXml.createElement('block');\n block.setAttribute('type', 'variables_set');\n block.setAttribute('gap', Blocks['math_change'] ? '8' : '24');\n block.appendChild(generateVariableFieldDom(mostRecentVariable));\n xmlList.push(block);\n }\n if (Blocks['math_change']) {\n const block = utilsXml.createElement('block');\n block.setAttribute('type', 'math_change');\n block.setAttribute('gap', Blocks['variables_get'] ? '20' : '8');\n block.appendChild(generateVariableFieldDom(mostRecentVariable));\n const value = Xml.textToDom(\n '' +\n '' +\n '1' +\n '' +\n '');\n block.appendChild(value);\n xmlList.push(block);\n }\n\n if (Blocks['variables_get']) {\n variableModelList.sort(VariableModel.compareByName);\n for (let i = 0, variable; variable = variableModelList[i]; i++) {\n const block = utilsXml.createElement('block');\n block.setAttribute('type', 'variables_get');\n block.setAttribute('gap', '8');\n block.appendChild(generateVariableFieldDom(variable));\n xmlList.push(block);\n }\n }\n }\n return xmlList;\n}\n\n/** @alias Blockly.Variables.VAR_LETTER_OPTIONS */\nexport const VAR_LETTER_OPTIONS = 'ijkmnopqrstuvwxyzabcdefgh';\n\n/**\n * Return a new variable name that is not yet being used. This will try to\n * generate single letter variable names in the range 'i' to 'z' to start with.\n * If no unique name is located it will try 'i' to 'z', 'a' to 'h',\n * then 'i2' to 'z2' etc. Skip 'l'.\n *\n * @param workspace The workspace to be unique in.\n * @returns New variable name.\n * @alias Blockly.Variables.generateUniqueName\n */\nexport function generateUniqueName(workspace: Workspace): string {\n return TEST_ONLY.generateUniqueNameInternal(workspace);\n}\n\n/**\n * Private version of generateUniqueName for stubbing in tests.\n */\nfunction generateUniqueNameInternal(workspace: Workspace): string {\n return generateUniqueNameFromOptions(\n VAR_LETTER_OPTIONS.charAt(0), workspace.getAllVariableNames());\n}\n\n/**\n * Returns a unique name that is not present in the usedNames array. This\n * will try to generate single letter names in the range a - z (skip l). It\n * will start with the character passed to startChar.\n *\n * @param startChar The character to start the search at.\n * @param usedNames A list of all of the used names.\n * @returns A unique name that is not present in the usedNames array.\n * @alias Blockly.Variables.generateUniqueNameFromOptions\n */\nexport function generateUniqueNameFromOptions(\n startChar: string, usedNames: string[]): string {\n if (!usedNames.length) {\n return startChar;\n }\n\n const letters = VAR_LETTER_OPTIONS;\n let suffix = '';\n let letterIndex = letters.indexOf(startChar);\n let potName = startChar;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let inUse = false;\n for (let i = 0; i < usedNames.length; i++) {\n if (usedNames[i].toLowerCase() === potName) {\n inUse = true;\n break;\n }\n }\n if (!inUse) {\n return potName;\n }\n\n letterIndex++;\n if (letterIndex === letters.length) {\n // Reached the end of the character sequence so back to 'i'.\n letterIndex = 0;\n suffix = `${Number(suffix) + 1}`;\n }\n potName = letters.charAt(letterIndex) + suffix;\n }\n}\n\n/**\n * Handles \"Create Variable\" button in the default variables toolbox category.\n * It will prompt the user for a variable name, including re-prompts if a name\n * is already in use among the workspace's variables.\n *\n * Custom button handlers can delegate to this function, allowing variables\n * types and after-creation processing. More complex customization (e.g.,\n * prompting for variable type) is beyond the scope of this function.\n *\n * @param workspace The workspace on which to create the variable.\n * @param opt_callback A callback. It will be passed an acceptable new variable\n * name, or null if change is to be aborted (cancel button), or undefined if\n * an existing variable was chosen.\n * @param opt_type The type of the variable like 'int', 'string', or ''. This\n * will default to '', which is a specific type.\n * @alias Blockly.Variables.createVariableButtonHandler\n */\nexport function createVariableButtonHandler(\n workspace: Workspace, opt_callback?: (p1?: string|null) => void,\n opt_type?: string) {\n const type = opt_type || '';\n // This function needs to be named so it can be called recursively.\n function promptAndCheckWithAlert(defaultName: string) {\n promptName(Msg['NEW_VARIABLE_TITLE'], defaultName, function(text) {\n if (text) {\n const existing = nameUsedWithAnyType(text, workspace);\n if (existing) {\n let msg;\n if (existing.type === type) {\n msg = Msg['VARIABLE_ALREADY_EXISTS'].replace('%1', existing.name);\n } else {\n msg = Msg['VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE'];\n msg = msg.replace('%1', existing.name).replace('%2', existing.type);\n }\n dialog.alert(msg, function() {\n promptAndCheckWithAlert(text);\n });\n } else {\n // No conflict\n workspace.createVariable(text, type);\n if (opt_callback) {\n opt_callback(text);\n }\n }\n } else {\n // User canceled prompt.\n if (opt_callback) {\n opt_callback(null);\n }\n }\n });\n }\n promptAndCheckWithAlert('');\n}\n\n/**\n * Opens a prompt that allows the user to enter a new name for a variable.\n * Triggers a rename if the new name is valid. Or re-prompts if there is a\n * collision.\n *\n * @param workspace The workspace on which to rename the variable.\n * @param variable Variable to rename.\n * @param opt_callback A callback. It will be passed an acceptable new variable\n * name, or null if change is to be aborted (cancel button), or undefined if\n * an existing variable was chosen.\n * @alias Blockly.Variables.renameVariable\n */\nexport function renameVariable(\n workspace: Workspace, variable: VariableModel,\n opt_callback?: (p1?: string|null) => void) {\n // This function needs to be named so it can be called recursively.\n function promptAndCheckWithAlert(defaultName: string) {\n const promptText =\n Msg['RENAME_VARIABLE_TITLE'].replace('%1', variable.name);\n promptName(promptText, defaultName, function(newName) {\n if (newName) {\n const existing =\n nameUsedWithOtherType(newName, variable.type, workspace);\n if (existing) {\n const msg = Msg['VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE']\n .replace('%1', existing.name)\n .replace('%2', existing.type);\n dialog.alert(msg, function() {\n promptAndCheckWithAlert(newName);\n });\n } else {\n workspace.renameVariableById(variable.getId(), newName);\n if (opt_callback) {\n opt_callback(newName);\n }\n }\n } else {\n // User canceled prompt.\n if (opt_callback) {\n opt_callback(null);\n }\n }\n });\n }\n promptAndCheckWithAlert('');\n}\n\n/**\n * Prompt the user for a new variable name.\n *\n * @param promptText The string of the prompt.\n * @param defaultText The default value to show in the prompt's field.\n * @param callback A callback. It will be passed the new variable name, or null\n * if the user picked something illegal.\n * @alias Blockly.Variables.promptName\n */\nexport function promptName(\n promptText: string, defaultText: string,\n callback: (p1: string|null) => void) {\n dialog.prompt(promptText, defaultText, function(newVar) {\n // Merge runs of whitespace. Strip leading and trailing whitespace.\n // Beyond this, all names are legal.\n if (newVar) {\n newVar = newVar.replace(/[\\s\\xa0]+/g, ' ').trim();\n if (newVar === Msg['RENAME_VARIABLE'] || newVar === Msg['NEW_VARIABLE']) {\n // Ok, not ALL names are legal...\n newVar = null;\n }\n }\n callback(newVar);\n });\n}\n/**\n * Check whether there exists a variable with the given name but a different\n * type.\n *\n * @param name The name to search for.\n * @param type The type to exclude from the search.\n * @param workspace The workspace to search for the variable.\n * @returns The variable with the given name and a different type, or null if\n * none was found.\n */\nfunction nameUsedWithOtherType(\n name: string, type: string, workspace: Workspace): VariableModel|null {\n const allVariables = workspace.getVariableMap().getAllVariables();\n\n name = name.toLowerCase();\n for (let i = 0, variable; variable = allVariables[i]; i++) {\n if (variable.name.toLowerCase() === name && variable.type !== type) {\n return variable;\n }\n }\n return null;\n}\n\n/**\n * Check whether there exists a variable with the given name of any type.\n *\n * @param name The name to search for.\n * @param workspace The workspace to search for the variable.\n * @returns The variable with the given name, or null if none was found.\n * @alias Blockly.Variables.nameUsedWithAnyType\n */\nexport function nameUsedWithAnyType(\n name: string, workspace: Workspace): VariableModel|null {\n const allVariables = workspace.getVariableMap().getAllVariables();\n\n name = name.toLowerCase();\n for (let i = 0, variable; variable = allVariables[i]; i++) {\n if (variable.name.toLowerCase() === name) {\n return variable;\n }\n }\n return null;\n}\n\n/**\n * Generate DOM objects representing a variable field.\n *\n * @param variableModel The variable model to represent.\n * @returns The generated DOM.\n * @alias Blockly.Variables.generateVariableFieldDom\n */\nexport function generateVariableFieldDom(variableModel: VariableModel):\n Element {\n /* Generates the following XML:\n * foo\n */\n const field = utilsXml.createElement('field');\n field.setAttribute('name', 'VAR');\n field.setAttribute('id', variableModel.getId());\n field.setAttribute('variabletype', variableModel.type);\n const name = utilsXml.createTextNode(variableModel.name);\n field.appendChild(name);\n return field;\n}\n\n/**\n * Helper function to look up or create a variable on the given workspace.\n * If no variable exists, creates and returns it.\n *\n * @param workspace The workspace to search for the variable. It may be a\n * flyout workspace or main workspace.\n * @param id The ID to use to look up or create the variable, or null.\n * @param opt_name The string to use to look up or create the variable.\n * @param opt_type The type to use to look up or create the variable.\n * @returns The variable corresponding to the given ID or name + type\n * combination.\n * @alias Blockly.Variables.getOrCreateVariablePackage\n */\nexport function getOrCreateVariablePackage(\n workspace: Workspace, id: string|null, opt_name?: string,\n opt_type?: string): VariableModel {\n let variable = getVariable(workspace, id, opt_name, opt_type);\n if (!variable) {\n variable = createVariable(workspace, id, opt_name, opt_type);\n }\n return variable;\n}\n\n/**\n * Look up a variable on the given workspace.\n * Always looks in the main workspace before looking in the flyout workspace.\n * Always prefers lookup by ID to lookup by name + type.\n *\n * @param workspace The workspace to search for the variable. It may be a\n * flyout workspace or main workspace.\n * @param id The ID to use to look up the variable, or null.\n * @param opt_name The string to use to look up the variable.\n * Only used if lookup by ID fails.\n * @param opt_type The type to use to look up the variable.\n * Only used if lookup by ID fails.\n * @returns The variable corresponding to the given ID or name + type\n * combination, or null if not found.\n * @alias Blockly.Variables.getVariable\n */\nexport function getVariable(\n workspace: Workspace, id: string|null, opt_name?: string,\n opt_type?: string): VariableModel|null {\n const potentialVariableMap = workspace.getPotentialVariableMap();\n let variable = null;\n // Try to just get the variable, by ID if possible.\n if (id) {\n // Look in the real variable map before checking the potential variable map.\n variable = workspace.getVariableById(id);\n if (!variable && potentialVariableMap) {\n variable = potentialVariableMap.getVariableById(id);\n }\n if (variable) {\n return variable;\n }\n }\n // If there was no ID, or there was an ID but it didn't match any variables,\n // look up by name and type.\n if (opt_name) {\n if (opt_type === undefined) {\n throw Error('Tried to look up a variable by name without a type');\n }\n // Otherwise look up by name and type.\n variable = workspace.getVariable(opt_name, opt_type);\n if (!variable && potentialVariableMap) {\n variable = potentialVariableMap.getVariable(opt_name, opt_type);\n }\n }\n return variable;\n}\n\n/**\n * Helper function to create a variable on the given workspace.\n *\n * @param workspace The workspace in which to create the variable. It may be a\n * flyout workspace or main workspace.\n * @param id The ID to use to create the variable, or null.\n * @param opt_name The string to use to create the variable.\n * @param opt_type The type to use to create the variable.\n * @returns The variable corresponding to the given ID or name + type\n * combination.\n */\nfunction createVariable(\n workspace: Workspace, id: string|null, opt_name?: string,\n opt_type?: string): VariableModel {\n const potentialVariableMap = workspace.getPotentialVariableMap();\n // Variables without names get uniquely named for this workspace.\n if (!opt_name) {\n const ws =\n (workspace.isFlyout ? (workspace as WorkspaceSvg).targetWorkspace :\n workspace);\n opt_name = generateUniqueName(ws!);\n }\n\n // Create a potential variable if in the flyout.\n let variable = null;\n if (potentialVariableMap) {\n variable = potentialVariableMap.createVariable(opt_name, opt_type, id);\n } else {\n // In the main workspace, create a real variable.\n variable = workspace.createVariable(opt_name, opt_type, id);\n }\n return variable;\n}\n\n/**\n * Helper function to get the list of variables that have been added to the\n * workspace after adding a new block, using the given list of variables that\n * were in the workspace before the new block was added.\n *\n * @param workspace The workspace to inspect.\n * @param originalVariables The array of variables that existed in the workspace\n * before adding the new block.\n * @returns The new array of variables that were freshly added to the workspace\n * after creating the new block, or [] if no new variables were added to the\n * workspace.\n * @alias Blockly.Variables.getAddedVariables\n * @internal\n */\nexport function getAddedVariables(\n workspace: Workspace, originalVariables: VariableModel[]): VariableModel[] {\n const allCurrentVariables = workspace.getAllVariables();\n const addedVariables = [];\n if (originalVariables.length !== allCurrentVariables.length) {\n for (let i = 0; i < allCurrentVariables.length; i++) {\n const variable = allCurrentVariables[i];\n // For any variable that is present in allCurrentVariables but not\n // present in originalVariables, add the variable to addedVariables.\n if (originalVariables.indexOf(variable) === -1) {\n addedVariables.push(variable);\n }\n }\n }\n return addedVariables;\n}\n\nexport const TEST_ONLY = {\n generateUniqueNameInternal,\n};\n","/**\n * @license\n * Copyright 2013 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Inject Blockly's CSS synchronously.\n *\n * @namespace Blockly.Css\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Css');\n\n\n/** Has CSS already been injected? */\nlet injected = false;\n\n/**\n * Add some CSS to the blob that will be injected later. Allows optional\n * components such as fields and the toolbox to store separate CSS.\n *\n * @param cssContent Multiline CSS string or an array of single lines of CSS.\n * @alias Blockly.Css.register\n */\nexport function register(cssContent: string) {\n if (injected) {\n throw Error('CSS already injected');\n }\n content += '\\n' + cssContent;\n}\n\n/**\n * Inject the CSS into the DOM. This is preferable over using a regular CSS\n * file since:\n * a) It loads synchronously and doesn't force a redraw later.\n * b) It speeds up loading by not blocking on a separate HTTP transfer.\n * c) The CSS content may be made dynamic depending on init options.\n *\n * @param hasCss If false, don't inject CSS (providing CSS becomes the\n * document's responsibility).\n * @param pathToMedia Path from page to the Blockly media directory.\n * @alias Blockly.Css.inject\n */\nexport function inject(hasCss: boolean, pathToMedia: string) {\n // Only inject the CSS once.\n if (injected) {\n return;\n }\n injected = true;\n if (!hasCss) {\n return;\n }\n // Strip off any trailing slash (either Unix or Windows).\n const mediaPath = pathToMedia.replace(/[\\\\/]$/, '');\n const cssContent = content.replace(/<<>>/g, mediaPath);\n // Cleanup the collected css content after injecting it to the DOM.\n content = '';\n\n // Inject CSS tag at start of head.\n const cssNode = document.createElement('style');\n cssNode.id = 'blockly-common-style';\n const cssTextNode = document.createTextNode(cssContent);\n cssNode.appendChild(cssTextNode);\n document.head.insertBefore(cssNode, document.head.firstChild);\n}\n\n/**\n * The CSS content for Blockly.\n *\n * @alias Blockly.Css.content\n */\nlet content = `\n.blocklySvg {\n background-color: #fff;\n outline: none;\n overflow: hidden; /* IE overflows by default. */\n position: absolute;\n display: block;\n}\n\n.blocklyWidgetDiv {\n display: none;\n position: absolute;\n z-index: 99999; /* big value for bootstrap3 compatibility */\n}\n\n.injectionDiv {\n height: 100%;\n position: relative;\n overflow: hidden; /* So blocks in drag surface disappear at edges */\n touch-action: none;\n}\n\n.blocklyNonSelectable {\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n}\n\n.blocklyWsDragSurface {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n/* Added as a separate rule with multiple classes to make it more specific\n than a bootstrap rule that selects svg:root. See issue #1275 for context.\n*/\n.blocklyWsDragSurface.blocklyOverflowVisible {\n overflow: visible;\n}\n\n.blocklyBlockDragSurface {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: visible !important;\n z-index: 50; /* Display below toolbox, but above everything else. */\n}\n\n.blocklyBlockCanvas.blocklyCanvasTransitioning,\n.blocklyBubbleCanvas.blocklyCanvasTransitioning {\n transition: transform .5s;\n}\n\n.blocklyTooltipDiv {\n background-color: #ffffc7;\n border: 1px solid #ddc;\n box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);\n color: #000;\n display: none;\n font: 9pt sans-serif;\n opacity: .9;\n padding: 2px;\n position: absolute;\n z-index: 100000; /* big value for bootstrap3 compatibility */\n}\n\n.blocklyDropDownDiv {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1000;\n display: none;\n border: 1px solid;\n border-color: #dadce0;\n background-color: #fff;\n border-radius: 2px;\n padding: 4px;\n box-shadow: 0 0 3px 1px rgba(0,0,0,.3);\n}\n\n.blocklyDropDownDiv.blocklyFocused {\n box-shadow: 0 0 6px 1px rgba(0,0,0,.3);\n}\n\n.blocklyDropDownContent {\n max-height: 300px; // @todo: spec for maximum height.\n overflow: auto;\n overflow-x: hidden;\n position: relative;\n}\n\n.blocklyDropDownArrow {\n position: absolute;\n left: 0;\n top: 0;\n width: 16px;\n height: 16px;\n z-index: -1;\n background-color: inherit;\n border-color: inherit;\n}\n\n.blocklyDropDownButton {\n display: inline-block;\n float: left;\n padding: 0;\n margin: 4px;\n border-radius: 4px;\n outline: none;\n border: 1px solid;\n transition: box-shadow .1s;\n cursor: pointer;\n}\n\n.blocklyArrowTop {\n border-top: 1px solid;\n border-left: 1px solid;\n border-top-left-radius: 4px;\n border-color: inherit;\n}\n\n.blocklyArrowBottom {\n border-bottom: 1px solid;\n border-right: 1px solid;\n border-bottom-right-radius: 4px;\n border-color: inherit;\n}\n\n.blocklyResizeSE {\n cursor: se-resize;\n fill: #aaa;\n}\n\n.blocklyResizeSW {\n cursor: sw-resize;\n fill: #aaa;\n}\n\n.blocklyResizeLine {\n stroke: #515A5A;\n stroke-width: 1;\n}\n\n.blocklyHighlightedConnectionPath {\n fill: none;\n stroke: #fc3;\n stroke-width: 4px;\n}\n\n.blocklyPathLight {\n fill: none;\n stroke-linecap: round;\n stroke-width: 1;\n}\n\n.blocklySelected>.blocklyPathLight {\n display: none;\n}\n\n.blocklyDraggable {\n /* backup for browsers (e.g. IE11) that don't support grab */\n cursor: url(\"<<>>/handopen.cur\"), auto;\n cursor: grab;\n cursor: -webkit-grab;\n}\n\n /* backup for browsers (e.g. IE11) that don't support grabbing */\n.blocklyDragging {\n /* backup for browsers (e.g. IE11) that don't support grabbing */\n cursor: url(\"<<>>/handclosed.cur\"), auto;\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n /* Changes cursor on mouse down. Not effective in Firefox because of\n https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */\n.blocklyDraggable:active {\n /* backup for browsers (e.g. IE11) that don't support grabbing */\n cursor: url(\"<<>>/handclosed.cur\"), auto;\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n/* Change the cursor on the whole drag surface in case the mouse gets\n ahead of block during a drag. This way the cursor is still a closed hand.\n */\n.blocklyBlockDragSurface .blocklyDraggable {\n /* backup for browsers (e.g. IE11) that don't support grabbing */\n cursor: url(\"<<>>/handclosed.cur\"), auto;\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n.blocklyDragging.blocklyDraggingDelete {\n cursor: url(\"<<>>/handdelete.cur\"), auto;\n}\n\n.blocklyDragging>.blocklyPath,\n.blocklyDragging>.blocklyPathLight {\n fill-opacity: .8;\n stroke-opacity: .8;\n}\n\n.blocklyDragging>.blocklyPathDark {\n display: none;\n}\n\n.blocklyDisabled>.blocklyPath {\n fill-opacity: .5;\n stroke-opacity: .5;\n}\n\n.blocklyDisabled>.blocklyPathLight,\n.blocklyDisabled>.blocklyPathDark {\n display: none;\n}\n\n.blocklyInsertionMarker>.blocklyPath,\n.blocklyInsertionMarker>.blocklyPathLight,\n.blocklyInsertionMarker>.blocklyPathDark {\n fill-opacity: .2;\n stroke: none;\n}\n\n.blocklyMultilineText {\n font-family: monospace;\n}\n\n.blocklyNonEditableText>text {\n pointer-events: none;\n}\n\n.blocklyFlyout {\n position: absolute;\n z-index: 20;\n}\n\n.blocklyText text {\n cursor: default;\n}\n\n/*\n Don't allow users to select text. It gets annoying when trying to\n drag a block and selected text moves instead.\n*/\n.blocklySvg text,\n.blocklyBlockDragSurface text {\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n cursor: inherit;\n}\n\n.blocklyHidden {\n display: none;\n}\n\n.blocklyFieldDropdown:not(.blocklyHidden) {\n display: block;\n}\n\n.blocklyIconGroup {\n cursor: default;\n}\n\n.blocklyIconGroup:not(:hover),\n.blocklyIconGroupReadonly {\n opacity: .6;\n}\n\n.blocklyIconShape {\n fill: #00f;\n stroke: #fff;\n stroke-width: 1px;\n}\n\n.blocklyIconSymbol {\n fill: #fff;\n}\n\n.blocklyMinimalBody {\n margin: 0;\n padding: 0;\n}\n\n.blocklyHtmlInput {\n border: none;\n border-radius: 4px;\n height: 100%;\n margin: 0;\n outline: none;\n padding: 0;\n width: 100%;\n text-align: center;\n display: block;\n box-sizing: border-box;\n}\n\n/* Edge and IE introduce a close icon when the input value is longer than a\n certain length. This affects our sizing calculations of the text input.\n Hiding the close icon to avoid that. */\n.blocklyHtmlInput::-ms-clear {\n display: none;\n}\n\n.blocklyMainBackground {\n stroke-width: 1;\n stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */\n}\n\n.blocklyMutatorBackground {\n fill: #fff;\n stroke: #ddd;\n stroke-width: 1;\n}\n\n.blocklyFlyoutBackground {\n fill: #ddd;\n fill-opacity: .8;\n}\n\n.blocklyMainWorkspaceScrollbar {\n z-index: 20;\n}\n\n.blocklyFlyoutScrollbar {\n z-index: 30;\n}\n\n.blocklyScrollbarHorizontal,\n.blocklyScrollbarVertical {\n position: absolute;\n outline: none;\n}\n\n.blocklyScrollbarBackground {\n opacity: 0;\n}\n\n.blocklyScrollbarHandle {\n fill: #ccc;\n}\n\n.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,\n.blocklyScrollbarHandle:hover {\n fill: #bbb;\n}\n\n/* Darken flyout scrollbars due to being on a grey background. */\n/* By contrast, workspace scrollbars are on a white background. */\n.blocklyFlyout .blocklyScrollbarHandle {\n fill: #bbb;\n}\n\n.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,\n.blocklyFlyout .blocklyScrollbarHandle:hover {\n fill: #aaa;\n}\n\n.blocklyInvalidInput {\n background: #faa;\n}\n\n.blocklyVerticalMarker {\n stroke-width: 3px;\n fill: rgba(255,255,255,.5);\n pointer-events: none;\n}\n\n.blocklyComputeCanvas {\n position: absolute;\n width: 0;\n height: 0;\n}\n\n.blocklyNoPointerEvents {\n pointer-events: none;\n}\n\n.blocklyContextMenu {\n border-radius: 4px;\n max-height: 100%;\n}\n\n.blocklyDropdownMenu {\n border-radius: 2px;\n padding: 0 !important;\n}\n\n.blocklyDropdownMenu .blocklyMenuItem {\n /* 28px on the left for icon or checkbox. */\n padding-left: 28px;\n}\n\n/* BiDi override for the resting state. */\n.blocklyDropdownMenu .blocklyMenuItemRtl {\n /* Flip left/right padding for BiDi. */\n padding-left: 5px;\n padding-right: 28px;\n}\n\n.blocklyWidgetDiv .blocklyMenu {\n background: #fff;\n border: 1px solid transparent;\n box-shadow: 0 0 3px 1px rgba(0,0,0,.3);\n font: normal 13px Arial, sans-serif;\n margin: 0;\n outline: none;\n padding: 4px 0;\n position: absolute;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 100%;\n z-index: 20000; /* Arbitrary, but some apps depend on it... */\n}\n\n.blocklyWidgetDiv .blocklyMenu.blocklyFocused {\n box-shadow: 0 0 6px 1px rgba(0,0,0,.3);\n}\n\n.blocklyDropDownDiv .blocklyMenu {\n background: inherit; /* Compatibility with gapi, reset from goog-menu */\n border: inherit; /* Compatibility with gapi, reset from goog-menu */\n font: normal 13px \"Helvetica Neue\", Helvetica, sans-serif;\n outline: none;\n position: relative; /* Compatibility with gapi, reset from goog-menu */\n z-index: 20000; /* Arbitrary, but some apps depend on it... */\n}\n\n/* State: resting. */\n.blocklyMenuItem {\n border: none;\n color: #000;\n cursor: pointer;\n list-style: none;\n margin: 0;\n /* 7em on the right for shortcut. */\n min-width: 7em;\n padding: 6px 15px;\n white-space: nowrap;\n}\n\n/* State: disabled. */\n.blocklyMenuItemDisabled {\n color: #ccc;\n cursor: inherit;\n}\n\n/* State: hover. */\n.blocklyMenuItemHighlight {\n background-color: rgba(0,0,0,.1);\n}\n\n/* State: selected/checked. */\n.blocklyMenuItemCheckbox {\n height: 16px;\n position: absolute;\n width: 16px;\n}\n\n.blocklyMenuItemSelected .blocklyMenuItemCheckbox {\n background: url(<<>>/sprites.png) no-repeat -48px -16px;\n float: left;\n margin-left: -24px;\n position: static; /* Scroll with the menu. */\n}\n\n.blocklyMenuItemRtl .blocklyMenuItemCheckbox {\n float: right;\n margin-right: -24px;\n}\n`;\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods realted to figuring out positions of SVG elements.\n *\n * @namespace Blockly.utils.svgMath\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.svgMath');\n\nimport type {WorkspaceSvg} from '../workspace_svg.js';\n\nimport {Coordinate} from './coordinate.js';\nimport * as deprecation from './deprecation.js';\nimport {Rect} from './rect.js';\nimport * as style from './style.js';\n\n\n/**\n * Static regex to pull the x,y values out of an SVG translate() directive.\n * Note that Firefox and IE (9,10) return 'translate(12)' instead of\n * 'translate(12, 0)'.\n * Note that IE (9,10) returns 'translate(16 8)' instead of 'translate(16, 8)'.\n * Note that IE has been reported to return scientific notation (0.123456e-42).\n */\nconst XY_REGEX = /translate\\(\\s*([-+\\d.e]+)([ ,]\\s*([-+\\d.e]+)\\s*)?/;\n\n/**\n * Static regex to pull the x,y values out of a translate() or translate3d()\n * style property.\n * Accounts for same exceptions as XY_REGEX.\n */\nconst XY_STYLE_REGEX =\n /transform:\\s*translate(?:3d)?\\(\\s*([-+\\d.e]+)\\s*px([ ,]\\s*([-+\\d.e]+)\\s*px)?/;\n\n/**\n * Return the coordinates of the top-left corner of this element relative to\n * its parent. Only for SVG elements and children (e.g. rect, g, path).\n *\n * @param element SVG element to find the coordinates of.\n * @returns Object with .x and .y properties.\n * @alias Blockly.utils.svgMath.getRelativeXY\n */\nexport function getRelativeXY(element: Element): Coordinate {\n const xy = new Coordinate(0, 0);\n // First, check for x and y attributes.\n // Checking for the existence of x/y properties is faster than getAttribute.\n // However, x/y contains an SVGAnimatedLength object, so rely on getAttribute\n // to get the number.\n const x = (element as any).x && element.getAttribute('x');\n const y = (element as any).y && element.getAttribute('y');\n if (x) {\n xy.x = parseInt(x);\n }\n if (y) {\n xy.y = parseInt(y);\n }\n // Second, check for transform=\"translate(...)\" attribute.\n const transform = element.getAttribute('transform');\n const r = transform && transform.match(XY_REGEX);\n if (r) {\n xy.x += Number(r[1]);\n if (r[3]) {\n xy.y += Number(r[3]);\n }\n }\n\n // Then check for style = transform: translate(...) or translate3d(...)\n const style = element.getAttribute('style');\n if (style && style.indexOf('translate') > -1) {\n const styleComponents = style.match(XY_STYLE_REGEX);\n if (styleComponents) {\n xy.x += Number(styleComponents[1]);\n if (styleComponents[3]) {\n xy.y += Number(styleComponents[3]);\n }\n }\n }\n return xy;\n}\n\n/**\n * Return the coordinates of the top-left corner of this element relative to\n * the div Blockly was injected into.\n *\n * @param element SVG element to find the coordinates of. If this is not a child\n * of the div Blockly was injected into, the behaviour is undefined.\n * @returns Object with .x and .y properties.\n * @alias Blockly.utils.svgMath.getInjectionDivXY\n */\nexport function getInjectionDivXY(element: Element): Coordinate {\n let x = 0;\n let y = 0;\n while (element) {\n const xy = getRelativeXY(element);\n x = x + xy.x;\n y = y + xy.y;\n const classes = element.getAttribute('class') || '';\n if ((' ' + classes + ' ').indexOf(' injectionDiv ') !== -1) {\n break;\n }\n element = element.parentNode as Element;\n }\n return new Coordinate(x, y);\n}\n\n/**\n * Check if 3D transforms are supported by adding an element\n * and attempting to set the property.\n *\n * @returns True if 3D transforms are supported.\n * @deprecated No longer provided by Blockly.\n * @alias Blockly.utils.svgMath.is3dSupported\n */\nexport function is3dSupported(): boolean {\n // All browsers support translate3d in 2022.\n deprecation.warn(\n 'Blockly.utils.svgMath.is3dSupported', 'version 9', 'version 10');\n return true;\n}\n\n/**\n * Get the position of the current viewport in window coordinates. This takes\n * scroll into account.\n *\n * @returns An object containing window width, height, and scroll position in\n * window coordinates.\n * @alias Blockly.utils.svgMath.getViewportBBox\n * @internal\n */\nexport function getViewportBBox(): Rect {\n // Pixels, in window coordinates.\n const scrollOffset = style.getViewportPageOffset();\n return new Rect(\n scrollOffset.y, document.documentElement.clientHeight + scrollOffset.y,\n scrollOffset.x, document.documentElement.clientWidth + scrollOffset.x);\n}\n\n/**\n * Gets the document scroll distance as a coordinate object.\n * Copied from Closure's goog.dom.getDocumentScroll.\n *\n * @returns Object with values 'x' and 'y'.\n * @alias Blockly.utils.svgMath.getDocumentScroll\n */\nexport function getDocumentScroll(): Coordinate {\n const el = document.documentElement;\n const win = window;\n return new Coordinate(\n win.pageXOffset || el.scrollLeft, win.pageYOffset || el.scrollTop);\n}\n\n/**\n * Converts screen coordinates to workspace coordinates.\n *\n * @param ws The workspace to find the coordinates on.\n * @param screenCoordinates The screen coordinates to be converted to workspace\n * coordinates\n * @returns The workspace coordinates.\n * @alias Blockly.utils.svgMath.screenToWsCoordinates\n */\nexport function screenToWsCoordinates(\n ws: WorkspaceSvg, screenCoordinates: Coordinate): Coordinate {\n const screenX = screenCoordinates.x;\n const screenY = screenCoordinates.y;\n\n const injectionDiv = ws.getInjectionDiv();\n // Bounding rect coordinates are in client coordinates, meaning that they\n // are in pixels relative to the upper left corner of the visible browser\n // window. These coordinates change when you scroll the browser window.\n const boundingRect = injectionDiv.getBoundingClientRect();\n\n // The client coordinates offset by the injection div's upper left corner.\n const clientOffsetPixels =\n new Coordinate(screenX - boundingRect.left, screenY - boundingRect.top);\n\n // The offset in pixels between the main workspace's origin and the upper\n // left corner of the injection div.\n const mainOffsetPixels = ws.getOriginOffsetInPixels();\n\n // The position of the new comment in pixels relative to the origin of the\n // main workspace.\n const finalOffsetPixels =\n Coordinate.difference(clientOffsetPixels, mainOffsetPixels);\n // The position in main workspace coordinates.\n const finalOffsetMainWs = finalOffsetPixels.scale(1 / ws.scale);\n return finalOffsetMainWs;\n}\n\nexport const TEST_ONLY = {\n XY_REGEX,\n XY_STYLE_REGEX,\n};\n","/**\n * @license\n * Copyright 2012 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * XML reader and writer.\n *\n * @namespace Blockly.Xml\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Xml');\n\nimport type {Block} from './block.js';\nimport type {BlockSvg} from './block_svg.js';\nimport type {Connection} from './connection.js';\nimport * as eventUtils from './events/utils.js';\nimport type {Field} from './field.js';\nimport {inputTypes} from './input_types.js';\nimport * as dom from './utils/dom.js';\nimport {Size} from './utils/size.js';\nimport * as utilsXml from './utils/xml.js';\nimport type {VariableModel} from './variable_model.js';\nimport * as Variables from './variables.js';\nimport type {Workspace} from './workspace.js';\nimport {WorkspaceComment} from './workspace_comment.js';\nimport {WorkspaceCommentSvg} from './workspace_comment_svg.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\n/**\n * Encode a block tree as XML.\n *\n * @param workspace The workspace containing blocks.\n * @param opt_noId True if the encoder should skip the block IDs.\n * @returns XML DOM element.\n * @alias Blockly.Xml.workspaceToDom\n */\nexport function workspaceToDom(\n workspace: Workspace, opt_noId?: boolean): Element {\n const treeXml = utilsXml.createElement('xml');\n const variablesElement =\n variablesToDom(Variables.allUsedVarModels(workspace));\n if (variablesElement.hasChildNodes()) {\n treeXml.appendChild(variablesElement);\n }\n const comments = workspace.getTopComments(true);\n for (let i = 0; i < comments.length; i++) {\n const comment = comments[i];\n treeXml.appendChild(comment.toXmlWithXY(opt_noId));\n }\n const blocks = workspace.getTopBlocks(true);\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i];\n treeXml.appendChild(blockToDomWithXY(block, opt_noId));\n }\n return treeXml;\n}\n\n/**\n * Encode a list of variables as XML.\n *\n * @param variableList List of all variable models.\n * @returns Tree of XML elements.\n * @alias Blockly.Xml.variablesToDom\n */\nexport function variablesToDom(variableList: VariableModel[]): Element {\n const variables = utilsXml.createElement('variables');\n for (let i = 0; i < variableList.length; i++) {\n const variable = variableList[i];\n const element = utilsXml.createElement('variable');\n element.appendChild(utilsXml.createTextNode(variable.name));\n if (variable.type) {\n element.setAttribute('type', variable.type);\n }\n element.id = variable.getId();\n variables.appendChild(element);\n }\n return variables;\n}\n\n/**\n * Encode a block subtree as XML with XY coordinates.\n *\n * @param block The root block to encode.\n * @param opt_noId True if the encoder should skip the block ID.\n * @returns Tree of XML elements or an empty document fragment if the block was\n * an insertion marker.\n * @alias Blockly.Xml.blockToDomWithXY\n */\nexport function blockToDomWithXY(block: Block, opt_noId?: boolean): Element|\n DocumentFragment {\n if (block.isInsertionMarker()) { // Skip over insertion markers.\n block = block.getChildren(false)[0];\n if (!block) {\n // Disappears when appended.\n return new DocumentFragment();\n }\n }\n\n let width = 0; // Not used in LTR.\n if (block.workspace.RTL) {\n width = block.workspace.getWidth();\n }\n\n const element = blockToDom(block, opt_noId);\n const xy = block.getRelativeToSurfaceXY();\n // AnyDuringMigration because: Property 'setAttribute' does not exist on type\n // 'Element | DocumentFragment'.\n (element as AnyDuringMigration)\n .setAttribute('x', Math.round(block.workspace.RTL ? width - xy.x : xy.x));\n // AnyDuringMigration because: Property 'setAttribute' does not exist on type\n // 'Element | DocumentFragment'.\n (element as AnyDuringMigration).setAttribute('y', Math.round(xy.y));\n return element;\n}\n\n/**\n * Encode a field as XML.\n *\n * @param field The field to encode.\n * @returns XML element, or null if the field did not need to be serialized.\n */\nfunction fieldToDom(field: Field): Element|null {\n if (field.isSerializable()) {\n const container = utilsXml.createElement('field');\n container.setAttribute('name', field.name || '');\n return field.toXml(container);\n }\n return null;\n}\n\n/**\n * Encode all of a block's fields as XML and attach them to the given tree of\n * XML elements.\n *\n * @param block A block with fields to be encoded.\n * @param element The XML element to which the field DOM should be attached.\n */\nfunction allFieldsToDom(block: Block, element: Element) {\n for (let i = 0; i < block.inputList.length; i++) {\n const input = block.inputList[i];\n for (let j = 0; j < input.fieldRow.length; j++) {\n const field = input.fieldRow[j];\n const fieldDom = fieldToDom(field);\n if (fieldDom) {\n element.appendChild(fieldDom);\n }\n }\n }\n}\n\n/**\n * Encode a block subtree as XML.\n *\n * @param block The root block to encode.\n * @param opt_noId True if the encoder should skip the block ID.\n * @returns Tree of XML elements or an empty document fragment if the block was\n * an insertion marker.\n * @alias Blockly.Xml.blockToDom\n */\nexport function blockToDom(block: Block, opt_noId?: boolean): Element|\n DocumentFragment {\n // Skip over insertion markers.\n if (block.isInsertionMarker()) {\n const child = block.getChildren(false)[0];\n if (child) {\n return blockToDom(child);\n } else {\n // Disappears when appended.\n return new DocumentFragment();\n }\n }\n\n const element = utilsXml.createElement(block.isShadow() ? 'shadow' : 'block');\n element.setAttribute('type', block.type);\n if (!opt_noId) {\n // It's important to use setAttribute here otherwise IE11 won't serialize\n // the block's ID when domToText is called.\n element.setAttribute('id', block.id);\n }\n if (block.mutationToDom) {\n // Custom data for an advanced block.\n const mutation = block.mutationToDom();\n if (mutation && (mutation.hasChildNodes() || mutation.hasAttributes())) {\n element.appendChild(mutation);\n }\n }\n\n allFieldsToDom(block, element);\n\n const commentText = block.getCommentText();\n if (commentText) {\n const size = block.commentModel.size;\n const pinned = block.commentModel.pinned;\n\n const commentElement = utilsXml.createElement('comment');\n commentElement.appendChild(utilsXml.createTextNode(commentText));\n // AnyDuringMigration because: Argument of type 'boolean' is not assignable\n // to parameter of type 'string'.\n commentElement.setAttribute('pinned', pinned as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type 'number' is not assignable\n // to parameter of type 'string'.\n commentElement.setAttribute('h', size.height as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type 'number' is not assignable\n // to parameter of type 'string'.\n commentElement.setAttribute('w', size.width as AnyDuringMigration);\n\n element.appendChild(commentElement);\n }\n\n if (block.data) {\n const dataElement = utilsXml.createElement('data');\n dataElement.appendChild(utilsXml.createTextNode(block.data));\n element.appendChild(dataElement);\n }\n\n for (let i = 0; i < block.inputList.length; i++) {\n const input = block.inputList[i];\n let container: Element;\n let empty = true;\n if (input.type === inputTypes.DUMMY) {\n continue;\n } else {\n const childBlock = input.connection!.targetBlock();\n if (input.type === inputTypes.VALUE) {\n container = utilsXml.createElement('value');\n } else if (input.type === inputTypes.STATEMENT) {\n container = utilsXml.createElement('statement');\n }\n const childShadow = input.connection!.getShadowDom();\n if (childShadow && (!childBlock || !childBlock.isShadow())) {\n container!.appendChild(cloneShadow(childShadow, opt_noId));\n }\n if (childBlock) {\n const childElem = blockToDom(childBlock, opt_noId);\n if (childElem.nodeType === dom.NodeType.ELEMENT_NODE) {\n container!.appendChild(childElem);\n empty = false;\n }\n }\n }\n container!.setAttribute('name', input.name);\n if (!empty) {\n element.appendChild(container!);\n }\n }\n if (block.inputsInline !== undefined &&\n block.inputsInline !== block.inputsInlineDefault) {\n element.setAttribute('inline', block.inputsInline.toString());\n }\n if (block.isCollapsed()) {\n element.setAttribute('collapsed', 'true');\n }\n if (!block.isEnabled()) {\n element.setAttribute('disabled', 'true');\n }\n if (!block.isDeletable() && !block.isShadow()) {\n element.setAttribute('deletable', 'false');\n }\n if (!block.isMovable() && !block.isShadow()) {\n element.setAttribute('movable', 'false');\n }\n if (!block.isEditable()) {\n element.setAttribute('editable', 'false');\n }\n\n const nextBlock = block.getNextBlock();\n let container: Element;\n if (nextBlock) {\n const nextElem = blockToDom(nextBlock, opt_noId);\n if (nextElem.nodeType === dom.NodeType.ELEMENT_NODE) {\n container = utilsXml.createElement('next');\n container.appendChild(nextElem);\n element.appendChild(container);\n }\n }\n const nextShadow =\n block.nextConnection && block.nextConnection.getShadowDom();\n if (nextShadow && (!nextBlock || !nextBlock.isShadow())) {\n container!.appendChild(cloneShadow(nextShadow, opt_noId));\n }\n\n return element;\n}\n\n/**\n * Deeply clone the shadow's DOM so that changes don't back-wash to the block.\n *\n * @param shadow A tree of XML elements.\n * @param opt_noId True if the encoder should skip the block ID.\n * @returns A tree of XML elements.\n */\nfunction cloneShadow(shadow: Element, opt_noId?: boolean): Element {\n shadow = shadow.cloneNode(true) as Element;\n // Walk the tree looking for whitespace. Don't prune whitespace in a tag.\n let node: Node|null = shadow;\n let textNode;\n while (node) {\n if (opt_noId && node.nodeName === 'shadow') {\n // Strip off IDs from shadow blocks. There should never be a 'block' as\n // a child of a 'shadow', so no need to check that.\n (node as Element).removeAttribute('id');\n }\n if (node.firstChild) {\n node = node.firstChild;\n } else {\n while (node && !node.nextSibling) {\n textNode = node;\n node = node.parentNode;\n if (textNode.nodeType === dom.NodeType.TEXT_NODE &&\n (textNode as Text).data.trim() === '' &&\n node?.firstChild !== textNode) {\n // Prune whitespace after a tag.\n dom.removeNode(textNode);\n }\n }\n if (node) {\n textNode = node;\n node = node.nextSibling;\n if (textNode.nodeType === dom.NodeType.TEXT_NODE &&\n (textNode as Text).data.trim() === '') {\n // Prune whitespace before a tag.\n dom.removeNode(textNode);\n }\n }\n }\n }\n return shadow;\n}\n\n/**\n * Converts a DOM structure into plain text.\n * Currently the text format is fairly ugly: all one line with no whitespace,\n * unless the DOM itself has whitespace built-in.\n *\n * @param dom A tree of XML nodes.\n * @returns Text representation.\n * @alias Blockly.Xml.domToText\n */\nexport function domToText(dom: Node): string {\n const text = utilsXml.domToText(dom);\n // Unpack self-closing tags. These tags fail when embedded in HTML.\n // -> \n return text.replace(/<(\\w+)([^<]*)\\/>/g, '<$1$2>');\n}\n\n/**\n * Converts a DOM structure into properly indented text.\n *\n * @param dom A tree of XML elements.\n * @returns Text representation.\n * @alias Blockly.Xml.domToPrettyText\n */\nexport function domToPrettyText(dom: Node): string {\n // This function is not guaranteed to be correct for all XML.\n // But it handles the XML that Blockly generates.\n const blob = domToText(dom);\n // Place every open and close tag on its own line.\n const lines = blob.split('<');\n // Indent every line.\n let indent = '';\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n if (line[0] === '/') {\n indent = indent.substring(2);\n }\n lines[i] = indent + '<' + line;\n if (line[0] !== '/' && line.slice(-2) !== '/>') {\n indent += ' ';\n }\n }\n // Pull simple tags back together.\n // E.g. \n let text = lines.join('\\n');\n text = text.replace(/(<(\\w+)\\b[^>]*>[^\\n]*)\\n *<\\/\\2>/g, '$1');\n // Trim leading blank line.\n return text.replace(/^\\n/, '');\n}\n\n/**\n * Converts an XML string into a DOM structure.\n *\n * @param text An XML string.\n * @returns A DOM object representing the singular child of the document\n * element.\n * @throws if the text doesn't parse.\n * @alias Blockly.Xml.textToDom\n */\nexport function textToDom(text: string): Element {\n const doc = utilsXml.textToDomDocument(text);\n if (!doc || !doc.documentElement ||\n doc.getElementsByTagName('parsererror').length) {\n throw Error('textToDom was unable to parse: ' + text);\n }\n return doc.documentElement;\n}\n\n/**\n * Clear the given workspace then decode an XML DOM and\n * create blocks on the workspace.\n *\n * @param xml XML DOM.\n * @param workspace The workspace.\n * @returns An array containing new block IDs.\n * @alias Blockly.Xml.clearWorkspaceAndLoadFromXml\n */\nexport function clearWorkspaceAndLoadFromXml(\n xml: Element, workspace: WorkspaceSvg): string[] {\n workspace.setResizesEnabled(false);\n workspace.clear();\n // AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not\n // assignable to parameter of type 'Workspace'.\n const blockIds = domToWorkspace(xml, workspace as AnyDuringMigration);\n workspace.setResizesEnabled(true);\n return blockIds;\n}\n\n/**\n * Decode an XML DOM and create blocks on the workspace.\n *\n * @param xml XML DOM.\n * @param workspace The workspace.\n * @returns An array containing new block IDs.\n * @suppress {strictModuleDepCheck} Suppress module check while workspace\n * comments are not bundled in.\n * @alias Blockly.Xml.domToWorkspace\n */\nexport function domToWorkspace(xml: Element, workspace: Workspace): string[] {\n let width = 0; // Not used in LTR.\n if (workspace.RTL) {\n width = workspace.getWidth();\n }\n const newBlockIds = []; // A list of block IDs added by this call.\n dom.startTextWidthCache();\n const existingGroup = eventUtils.getGroup();\n if (!existingGroup) {\n eventUtils.setGroup(true);\n }\n\n // Disable workspace resizes as an optimization.\n // Assume it is rendered so we can check.\n if ((workspace as WorkspaceSvg).setResizesEnabled) {\n (workspace as WorkspaceSvg).setResizesEnabled(false);\n }\n let variablesFirst = true;\n try {\n for (let i = 0, xmlChild; xmlChild = xml.childNodes[i]; i++) {\n const name = xmlChild.nodeName.toLowerCase();\n const xmlChildElement = xmlChild as Element;\n if (name === 'block' ||\n name === 'shadow' && !eventUtils.getRecordUndo()) {\n // Allow top-level shadow blocks if recordUndo is disabled since\n // that means an undo is in progress. Such a block is expected\n // to be moved to a nested destination in the next operation.\n const block = domToBlock(xmlChildElement, workspace);\n newBlockIds.push(block.id);\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n const blockX = xmlChildElement.hasAttribute('x') ?\n parseInt(xmlChildElement.getAttribute('x') as AnyDuringMigration) :\n 10;\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n const blockY = xmlChildElement.hasAttribute('y') ?\n parseInt(xmlChildElement.getAttribute('y') as AnyDuringMigration) :\n 10;\n if (!isNaN(blockX) && !isNaN(blockY)) {\n block.moveBy(workspace.RTL ? width - blockX : blockX, blockY);\n }\n variablesFirst = false;\n } else if (name === 'shadow') {\n throw TypeError('Shadow block cannot be a top-level block.');\n } else if (name === 'comment') {\n if (workspace.rendered) {\n WorkspaceCommentSvg.fromXmlRendered(\n xmlChildElement, workspace as WorkspaceSvg, width);\n } else {\n WorkspaceComment.fromXml(xmlChildElement, workspace);\n }\n } else if (name === 'variables') {\n if (variablesFirst) {\n domToVariables(xmlChildElement, workspace);\n } else {\n throw Error(\n '\\'variables\\' tag must exist once before block and ' +\n 'shadow tag elements in the workspace XML, but it was found in ' +\n 'another location.');\n }\n variablesFirst = false;\n }\n }\n } finally {\n if (!existingGroup) {\n eventUtils.setGroup(false);\n }\n dom.stopTextWidthCache();\n }\n // Re-enable workspace resizing.\n if ((workspace as WorkspaceSvg).setResizesEnabled) {\n (workspace as WorkspaceSvg).setResizesEnabled(true);\n }\n eventUtils.fire(new (eventUtils.get(eventUtils.FINISHED_LOADING))(workspace));\n return newBlockIds;\n}\n\n/**\n * Decode an XML DOM and create blocks on the workspace. Position the new\n * blocks immediately below prior blocks, aligned by their starting edge.\n *\n * @param xml The XML DOM.\n * @param workspace The workspace to add to.\n * @returns An array containing new block IDs.\n * @alias Blockly.Xml.appendDomToWorkspace\n */\nexport function appendDomToWorkspace(\n xml: Element, workspace: WorkspaceSvg): string[] {\n // First check if we have a WorkspaceSvg, otherwise the blocks have no shape\n // and the position does not matter.\n // Assume it is rendered so we can check.\n if (!(workspace as WorkspaceSvg).getBlocksBoundingBox) {\n return domToWorkspace(xml, workspace);\n }\n\n const bbox = (workspace as WorkspaceSvg).getBlocksBoundingBox();\n // Load the new blocks into the workspace and get the IDs of the new blocks.\n const newBlockIds = domToWorkspace(xml, workspace);\n if (bbox && bbox.top !== bbox.bottom) { // Check if any previous block.\n let offsetY = 0; // Offset to add to y of the new block.\n let offsetX = 0;\n const farY = bbox.bottom; // Bottom position.\n const topX = workspace.RTL ? bbox.right : bbox.left; // X of bounding box.\n // Check position of the new blocks.\n let newLeftX = Infinity; // X of top left corner.\n let newRightX = -Infinity; // X of top right corner.\n let newY = Infinity; // Y of top corner.\n const ySeparation = 10;\n for (let i = 0; i < newBlockIds.length; i++) {\n const blockXY =\n workspace.getBlockById(newBlockIds[i])!.getRelativeToSurfaceXY();\n if (blockXY.y < newY) {\n newY = blockXY.y;\n }\n if (blockXY.x < newLeftX) { // if we left align also on x\n newLeftX = blockXY.x;\n }\n if (blockXY.x > newRightX) { // if we right align also on x\n newRightX = blockXY.x;\n }\n }\n offsetY = farY - newY + ySeparation;\n offsetX = workspace.RTL ? topX - newRightX : topX - newLeftX;\n for (let i = 0; i < newBlockIds.length; i++) {\n const block = workspace.getBlockById(newBlockIds[i]);\n block!.moveBy(offsetX, offsetY);\n }\n }\n return newBlockIds;\n}\n\n/**\n * Decode an XML block tag and create a block (and possibly sub blocks) on the\n * workspace.\n *\n * @param xmlBlock XML block element.\n * @param workspace The workspace.\n * @returns The root block created.\n * @alias Blockly.Xml.domToBlock\n */\nexport function domToBlock(xmlBlock: Element, workspace: Workspace): Block {\n // Create top-level block.\n eventUtils.disable();\n const variablesBeforeCreation = workspace.getAllVariables();\n let topBlock;\n try {\n topBlock = domToBlockHeadless(xmlBlock, workspace);\n // Generate list of all blocks.\n if (workspace.rendered) {\n const topBlockSvg = topBlock as BlockSvg;\n const blocks = topBlock.getDescendants(false);\n topBlockSvg.setConnectionTracking(false);\n // Render each block.\n for (let i = blocks.length - 1; i >= 0; i--) {\n (blocks[i] as BlockSvg).initSvg();\n }\n for (let i = blocks.length - 1; i >= 0; i--) {\n (blocks[i] as BlockSvg).render(false);\n }\n // Populating the connection database may be deferred until after the\n // blocks have rendered.\n setTimeout(function() {\n if (!topBlockSvg.disposed) {\n topBlockSvg.setConnectionTracking(true);\n }\n }, 1);\n topBlockSvg.updateDisabled();\n // Allow the scrollbars to resize and move based on the new contents.\n // TODO(@picklesrus): #387. Remove when domToBlock avoids resizing.\n (workspace as WorkspaceSvg).resizeContents();\n } else {\n const blocks = topBlock.getDescendants(false);\n for (let i = blocks.length - 1; i >= 0; i--) {\n blocks[i].initModel();\n }\n }\n } finally {\n eventUtils.enable();\n }\n if (eventUtils.isEnabled()) {\n // AnyDuringMigration because: Property 'get' does not exist on type\n // '(name: string) => void'.\n const newVariables =\n Variables.getAddedVariables(workspace, variablesBeforeCreation);\n // Fire a VarCreate event for each (if any) new variable created.\n for (let i = 0; i < newVariables.length; i++) {\n const thisVariable = newVariables[i];\n eventUtils.fire(\n new (eventUtils.get(eventUtils.VAR_CREATE))(thisVariable));\n }\n // Block events come after var events, in case they refer to newly created\n // variables.\n eventUtils.fire(new (eventUtils.get(eventUtils.CREATE))(topBlock));\n }\n return topBlock;\n}\n\n/**\n * Decode an XML list of variables and add the variables to the workspace.\n *\n * @param xmlVariables List of XML variable elements.\n * @param workspace The workspace to which the variable should be added.\n * @alias Blockly.Xml.domToVariables\n */\nexport function domToVariables(xmlVariables: Element, workspace: Workspace) {\n for (let i = 0; i < xmlVariables.children.length; i++) {\n const xmlChild = xmlVariables.children[i];\n const type = xmlChild.getAttribute('type');\n const id = xmlChild.getAttribute('id');\n const name = xmlChild.textContent;\n\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n workspace.createVariable(name as AnyDuringMigration, type, id);\n }\n}\n\n/** A mapping of nodeName to node for child nodes of xmlBlock. */\ninterface childNodeTagMap {\n mutation: Element[];\n comment: Element[];\n data: Element[];\n field: Element[];\n input: Element[];\n next: Element[];\n}\n\n/**\n * Creates a mapping of childNodes for each supported XML tag for the provided\n * xmlBlock. Logs a warning for any encountered unsupported tags.\n *\n * @param xmlBlock XML block element.\n * @returns The childNode map from nodeName to node.\n */\nfunction mapSupportedXmlTags(xmlBlock: Element): childNodeTagMap {\n const childNodeMap = {\n mutation: new Array(),\n comment: new Array(),\n data: new Array(),\n field: new Array(),\n input: new Array(),\n next: new Array(),\n };\n for (let i = 0; i < xmlBlock.children.length; i++) {\n const xmlChild = xmlBlock.children[i];\n if (xmlChild.nodeType === dom.NodeType.TEXT_NODE) {\n // Ignore any text at the level. It's all whitespace anyway.\n continue;\n }\n switch (xmlChild.nodeName.toLowerCase()) {\n case 'mutation':\n childNodeMap.mutation.push(xmlChild);\n break;\n case 'comment':\n childNodeMap.comment.push(xmlChild);\n break;\n case 'data':\n childNodeMap.data.push(xmlChild);\n break;\n case 'title':\n // Titles were renamed to field in December 2013.\n // Fall through.\n case 'field':\n childNodeMap.field.push(xmlChild);\n break;\n case 'value':\n case 'statement':\n childNodeMap.input.push(xmlChild);\n break;\n case 'next':\n childNodeMap.next.push(xmlChild);\n break;\n default:\n // Unknown tag; ignore. Same principle as HTML parsers.\n console.warn('Ignoring unknown tag: ' + xmlChild.nodeName);\n }\n }\n return childNodeMap;\n}\n\n/**\n * Applies mutation tag child nodes to the given block.\n *\n * @param xmlChildren Child nodes.\n * @param block The block to apply the child nodes on.\n * @returns True if mutation may have added some elements that need\n * initialization (requiring initSvg call).\n */\nfunction applyMutationTagNodes(xmlChildren: Element[], block: Block): boolean {\n let shouldCallInitSvg = false;\n for (let i = 0; i < xmlChildren.length; i++) {\n const xmlChild = xmlChildren[i];\n // Custom data for an advanced block.\n if (block.domToMutation) {\n block.domToMutation(xmlChild);\n if ((block as BlockSvg).initSvg) {\n // Mutation may have added some elements that need initializing.\n shouldCallInitSvg = true;\n }\n }\n }\n return shouldCallInitSvg;\n}\n\n/**\n * Applies comment tag child nodes to the given block.\n *\n * @param xmlChildren Child nodes.\n * @param block The block to apply the child nodes on.\n */\nfunction applyCommentTagNodes(xmlChildren: Element[], block: Block) {\n for (let i = 0; i < xmlChildren.length; i++) {\n const xmlChild = xmlChildren[i];\n const text = xmlChild.textContent;\n const pinned = xmlChild.getAttribute('pinned') === 'true';\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n const width = parseInt(xmlChild.getAttribute('w') as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n const height = parseInt(xmlChild.getAttribute('h') as AnyDuringMigration);\n\n block.setCommentText(text);\n block.commentModel.pinned = pinned;\n if (!isNaN(width) && !isNaN(height)) {\n block.commentModel.size = new Size(width, height);\n }\n\n if (pinned && (block as BlockSvg).getCommentIcon && !block.isInFlyout) {\n const blockSvg = block as BlockSvg;\n setTimeout(function() {\n blockSvg.getCommentIcon()!.setVisible(true);\n }, 1);\n }\n }\n}\n\n/**\n * Applies data tag child nodes to the given block.\n *\n * @param xmlChildren Child nodes.\n * @param block The block to apply the child nodes on.\n */\nfunction applyDataTagNodes(xmlChildren: Element[], block: Block) {\n for (let i = 0; i < xmlChildren.length; i++) {\n const xmlChild = xmlChildren[i];\n block.data = xmlChild.textContent;\n }\n}\n\n/**\n * Applies field tag child nodes to the given block.\n *\n * @param xmlChildren Child nodes.\n * @param block The block to apply the child nodes on.\n */\nfunction applyFieldTagNodes(xmlChildren: Element[], block: Block) {\n for (let i = 0; i < xmlChildren.length; i++) {\n const xmlChild = xmlChildren[i];\n const nodeName = xmlChild.getAttribute('name');\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n domToField(block, nodeName as AnyDuringMigration, xmlChild);\n }\n}\n\n/**\n * Finds any enclosed blocks or shadows within this XML node.\n *\n * @param xmlNode The XML node to extract child block info from.\n * @returns Any found child block.\n */\nfunction findChildBlocks(xmlNode: Element):\n {childBlockElement: Element|null, childShadowElement: Element|null} {\n const childBlockInfo = {childBlockElement: null, childShadowElement: null};\n for (let i = 0; i < xmlNode.childNodes.length; i++) {\n const xmlChild = xmlNode.childNodes[i];\n if (xmlChild.nodeType === dom.NodeType.ELEMENT_NODE) {\n if (xmlChild.nodeName.toLowerCase() === 'block') {\n // AnyDuringMigration because: Type 'Element' is not assignable to type\n // 'null'.\n childBlockInfo.childBlockElement =\n xmlChild as Element as AnyDuringMigration;\n } else if (xmlChild.nodeName.toLowerCase() === 'shadow') {\n // AnyDuringMigration because: Type 'Element' is not assignable to type\n // 'null'.\n childBlockInfo.childShadowElement =\n xmlChild as Element as AnyDuringMigration;\n }\n }\n }\n return childBlockInfo;\n}\n/**\n * Applies input child nodes (value or statement) to the given block.\n *\n * @param xmlChildren Child nodes.\n * @param workspace The workspace containing the given block.\n * @param block The block to apply the child nodes on.\n * @param prototypeName The prototype name of the block.\n */\nfunction applyInputTagNodes(\n xmlChildren: Element[], workspace: Workspace, block: Block,\n prototypeName: string) {\n for (let i = 0; i < xmlChildren.length; i++) {\n const xmlChild = xmlChildren[i];\n const nodeName = xmlChild.getAttribute('name');\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string'.\n const input = block.getInput(nodeName as AnyDuringMigration);\n if (!input) {\n console.warn(\n 'Ignoring non-existent input ' + nodeName + ' in block ' +\n prototypeName);\n break;\n }\n const childBlockInfo = findChildBlocks(xmlChild);\n if (childBlockInfo.childBlockElement) {\n if (!input.connection) {\n throw TypeError('Input connection does not exist.');\n }\n domToBlockHeadless(\n childBlockInfo.childBlockElement, workspace, input.connection, false);\n }\n // Set shadow after so we don't create a shadow we delete immediately.\n if (childBlockInfo.childShadowElement) {\n input.connection?.setShadowDom(childBlockInfo.childShadowElement);\n }\n }\n}\n\n/**\n * Applies next child nodes to the given block.\n *\n * @param xmlChildren Child nodes.\n * @param workspace The workspace containing the given block.\n * @param block The block to apply the child nodes on.\n */\nfunction applyNextTagNodes(\n xmlChildren: Element[], workspace: Workspace, block: Block) {\n for (let i = 0; i < xmlChildren.length; i++) {\n const xmlChild = xmlChildren[i];\n const childBlockInfo = findChildBlocks(xmlChild);\n if (childBlockInfo.childBlockElement) {\n if (!block.nextConnection) {\n throw TypeError('Next statement does not exist.');\n }\n // If there is more than one XML 'next' tag.\n if (block.nextConnection.isConnected()) {\n throw TypeError('Next statement is already connected.');\n }\n // Create child block.\n domToBlockHeadless(\n childBlockInfo.childBlockElement, workspace, block.nextConnection,\n true);\n }\n // Set shadow after so we don't create a shadow we delete immediately.\n if (childBlockInfo.childShadowElement && block.nextConnection) {\n block.nextConnection.setShadowDom(childBlockInfo.childShadowElement);\n }\n }\n}\n\n/**\n * Decode an XML block tag and create a block (and possibly sub blocks) on the\n * workspace.\n *\n * @param xmlBlock XML block element.\n * @param workspace The workspace.\n * @param parentConnection The parent connection to to connect this block to\n * after instantiating.\n * @param connectedToParentNext Whether the provided parent connection is a next\n * connection, rather than output or statement.\n * @returns The root block created.\n */\nfunction domToBlockHeadless(\n xmlBlock: Element, workspace: Workspace, parentConnection?: Connection,\n connectedToParentNext?: boolean): Block {\n let block = null;\n const prototypeName = xmlBlock.getAttribute('type');\n if (!prototypeName) {\n throw TypeError('Block type unspecified: ' + xmlBlock.outerHTML);\n }\n const id = xmlBlock.getAttribute('id');\n // AnyDuringMigration because: Argument of type 'string | null' is not\n // assignable to parameter of type 'string | undefined'.\n block = workspace.newBlock(prototypeName, id as AnyDuringMigration);\n\n // Preprocess childNodes so tags can be processed in a consistent order.\n const xmlChildNameMap = mapSupportedXmlTags(xmlBlock);\n\n const shouldCallInitSvg =\n applyMutationTagNodes(xmlChildNameMap.mutation, block);\n applyCommentTagNodes(xmlChildNameMap.comment, block);\n applyDataTagNodes(xmlChildNameMap.data, block);\n\n // Connect parent after processing mutation and before setting fields.\n if (parentConnection) {\n if (connectedToParentNext) {\n if (block.previousConnection) {\n parentConnection.connect(block.previousConnection);\n } else {\n throw TypeError('Next block does not have previous statement.');\n }\n } else {\n if (block.outputConnection) {\n parentConnection.connect(block.outputConnection);\n } else if (block.previousConnection) {\n parentConnection.connect(block.previousConnection);\n } else {\n throw TypeError(\n 'Child block does not have output or previous statement.');\n }\n }\n }\n\n applyFieldTagNodes(xmlChildNameMap.field, block);\n applyInputTagNodes(xmlChildNameMap.input, workspace, block, prototypeName);\n applyNextTagNodes(xmlChildNameMap.next, workspace, block);\n\n if (shouldCallInitSvg) {\n // This shouldn't even be called here\n // (ref: https://github.com/google/blockly/pull/4296#issuecomment-884226021\n // But the XML serializer/deserializer is iceboxed so I'm not going to fix\n // it.\n (block as BlockSvg).initSvg();\n }\n\n const inline = xmlBlock.getAttribute('inline');\n if (inline) {\n block.setInputsInline(inline === 'true');\n }\n const disabled = xmlBlock.getAttribute('disabled');\n if (disabled) {\n block.setEnabled(disabled !== 'true' && disabled !== 'disabled');\n }\n const deletable = xmlBlock.getAttribute('deletable');\n if (deletable) {\n block.setDeletable(deletable === 'true');\n }\n const movable = xmlBlock.getAttribute('movable');\n if (movable) {\n block.setMovable(movable === 'true');\n }\n const editable = xmlBlock.getAttribute('editable');\n if (editable) {\n block.setEditable(editable === 'true');\n }\n const collapsed = xmlBlock.getAttribute('collapsed');\n if (collapsed) {\n block.setCollapsed(collapsed === 'true');\n }\n if (xmlBlock.nodeName.toLowerCase() === 'shadow') {\n // Ensure all children are also shadows.\n const children = block.getChildren(false);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (!child.isShadow()) {\n throw TypeError('Shadow block not allowed non-shadow child.');\n }\n }\n // Ensure this block doesn't have any variable inputs.\n if (block.getVarModels().length) {\n throw TypeError('Shadow blocks cannot have variable references.');\n }\n block.setShadow(true);\n }\n return block;\n}\n\n/**\n * Decode an XML field tag and set the value of that field on the given block.\n *\n * @param block The block that is currently being deserialized.\n * @param fieldName The name of the field on the block.\n * @param xml The field tag to decode.\n */\nfunction domToField(block: Block, fieldName: string, xml: Element) {\n const field = block.getField(fieldName);\n if (!field) {\n console.warn(\n 'Ignoring non-existent field ' + fieldName + ' in block ' + block.type);\n return;\n }\n field.fromXml(xml);\n}\n\n/**\n * Remove any 'next' block (statements in a stack).\n *\n * @param xmlBlock XML block element or an empty DocumentFragment if the block\n * was an insertion marker.\n * @alias Blockly.Xml.deleteNext\n */\nexport function deleteNext(xmlBlock: Element|DocumentFragment) {\n for (let i = 0; i < xmlBlock.childNodes.length; i++) {\n const child = xmlBlock.childNodes[i];\n if (child.nodeName.toLowerCase() === 'next') {\n xmlBlock.removeChild(child);\n break;\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods for string manipulation.\n * These methods are not specific to Blockly, and could be factored out into\n * a JavaScript framework such as Closure.\n *\n * @namespace Blockly.utils.string\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.string');\n\nimport * as deprecation from './deprecation.js';\n\n\n/**\n * Fast prefix-checker.\n * Copied from Closure's goog.string.startsWith.\n *\n * @param str The string to check.\n * @param prefix A string to look for at the start of `str`.\n * @returns True if `str` begins with `prefix`.\n * @alias Blockly.utils.string.startsWith\n * @deprecated Use built-in **string.startsWith** instead.\n */\nexport function startsWith(str: string, prefix: string): boolean {\n deprecation.warn(\n 'Blockly.utils.string.startsWith()', 'April 2022', 'April 2023',\n 'Use built-in string.startsWith');\n return str.startsWith(prefix);\n}\n\n/**\n * Given an array of strings, return the length of the shortest one.\n *\n * @param array Array of strings.\n * @returns Length of shortest string.\n * @alias Blockly.utils.string.shortestStringLength\n */\nexport function shortestStringLength(array: string[]): number {\n if (!array.length) {\n return 0;\n }\n return array\n .reduce(function(a, b) {\n return a.length < b.length ? a : b;\n })\n .length;\n}\n\n/**\n * Given an array of strings, return the length of the common prefix.\n * Words may not be split. Any space after a word is included in the length.\n *\n * @param array Array of strings.\n * @param opt_shortest Length of shortest string.\n * @returns Length of common prefix.\n * @alias Blockly.utils.string.commonWordPrefix\n */\nexport function commonWordPrefix(\n array: string[], opt_shortest?: number): number {\n if (!array.length) {\n return 0;\n } else if (array.length === 1) {\n return array[0].length;\n }\n let wordPrefix = 0;\n const max = opt_shortest || shortestStringLength(array);\n let len;\n for (len = 0; len < max; len++) {\n const letter = array[0][len];\n for (let i = 1; i < array.length; i++) {\n if (letter !== array[i][len]) {\n return wordPrefix;\n }\n }\n if (letter === ' ') {\n wordPrefix = len + 1;\n }\n }\n for (let i = 1; i < array.length; i++) {\n const letter = array[i][len];\n if (letter && letter !== ' ') {\n return wordPrefix;\n }\n }\n return max;\n}\n\n/**\n * Given an array of strings, return the length of the common suffix.\n * Words may not be split. Any space after a word is included in the length.\n *\n * @param array Array of strings.\n * @param opt_shortest Length of shortest string.\n * @returns Length of common suffix.\n * @alias Blockly.utils.string.commonWordSuffix\n */\nexport function commonWordSuffix(\n array: string[], opt_shortest?: number): number {\n if (!array.length) {\n return 0;\n } else if (array.length === 1) {\n return array[0].length;\n }\n let wordPrefix = 0;\n const max = opt_shortest || shortestStringLength(array);\n let len;\n for (len = 0; len < max; len++) {\n const letter = array[0].substr(-len - 1, 1);\n for (let i = 1; i < array.length; i++) {\n if (letter !== array[i].substr(-len - 1, 1)) {\n return wordPrefix;\n }\n }\n if (letter === ' ') {\n wordPrefix = len + 1;\n }\n }\n for (let i = 1; i < array.length; i++) {\n const letter = array[i].charAt(array[i].length - len - 1);\n if (letter && letter !== ' ') {\n return wordPrefix;\n }\n }\n return max;\n}\n\n/**\n * Wrap text to the specified width.\n *\n * @param text Text to wrap.\n * @param limit Width to wrap each line.\n * @returns Wrapped text.\n * @alias Blockly.utils.string.wrap\n */\nexport function wrap(text: string, limit: number): string {\n const lines = text.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n lines[i] = wrapLine(lines[i], limit);\n }\n return lines.join('\\n');\n}\n\n/**\n * Wrap single line of text to the specified width.\n *\n * @param text Text to wrap.\n * @param limit Width to wrap each line.\n * @returns Wrapped text.\n */\nfunction wrapLine(text: string, limit: number): string {\n if (text.length <= limit) {\n // Short text, no need to wrap.\n return text;\n }\n // Split the text into words.\n const words = text.trim().split(/\\s+/);\n // Set limit to be the length of the largest word.\n for (let i = 0; i < words.length; i++) {\n if (words[i].length > limit) {\n limit = words[i].length;\n }\n }\n\n let lastScore;\n let score = -Infinity;\n let lastText;\n let lineCount = 1;\n do {\n lastScore = score;\n lastText = text;\n // Create a list of booleans representing if a space (false) or\n // a break (true) appears after each word.\n let wordBreaks = [];\n // Seed the list with evenly spaced linebreaks.\n const steps = words.length / lineCount;\n let insertedBreaks = 1;\n for (let i = 0; i < words.length - 1; i++) {\n if (insertedBreaks < (i + 1.5) / steps) {\n insertedBreaks++;\n wordBreaks[i] = true;\n } else {\n wordBreaks[i] = false;\n }\n }\n wordBreaks = wrapMutate(words, wordBreaks, limit);\n score = wrapScore(words, wordBreaks, limit);\n text = wrapToText(words, wordBreaks);\n lineCount++;\n } while (score > lastScore);\n return lastText;\n}\n\n/**\n * Compute a score for how good the wrapping is.\n *\n * @param words Array of each word.\n * @param wordBreaks Array of line breaks.\n * @param limit Width to wrap each line.\n * @returns Larger the better.\n */\nfunction wrapScore(\n words: string[], wordBreaks: boolean[], limit: number): number {\n // If this function becomes a performance liability, add caching.\n // Compute the length of each line.\n const lineLengths = [0];\n const linePunctuation = [];\n for (let i = 0; i < words.length; i++) {\n lineLengths[lineLengths.length - 1] += words[i].length;\n if (wordBreaks[i] === true) {\n lineLengths.push(0);\n linePunctuation.push(words[i].charAt(words[i].length - 1));\n } else if (wordBreaks[i] === false) {\n lineLengths[lineLengths.length - 1]++;\n }\n }\n const maxLength = Math.max(...lineLengths);\n\n let score = 0;\n for (let i = 0; i < lineLengths.length; i++) {\n // Optimize for width.\n // -2 points per char over limit (scaled to the power of 1.5).\n score -= Math.pow(Math.abs(limit - lineLengths[i]), 1.5) * 2;\n // Optimize for even lines.\n // -1 point per char smaller than max (scaled to the power of 1.5).\n score -= Math.pow(maxLength - lineLengths[i], 1.5);\n // Optimize for structure.\n // Add score to line endings after punctuation.\n if ('.?!'.indexOf(linePunctuation[i]) !== -1) {\n score += limit / 3;\n } else if (',;)]}'.indexOf(linePunctuation[i]) !== -1) {\n score += limit / 4;\n }\n }\n // All else being equal, the last line should not be longer than the\n // previous line. For example, this looks wrong:\n // aaa bbb\n // ccc ddd eee\n if (lineLengths.length > 1 &&\n lineLengths[lineLengths.length - 1] <=\n lineLengths[lineLengths.length - 2]) {\n score += 0.5;\n }\n return score;\n}\n/**\n * Mutate the array of line break locations until an optimal solution is found.\n * No line breaks are added or deleted, they are simply moved around.\n *\n * @param words Array of each word.\n * @param wordBreaks Array of line breaks.\n * @param limit Width to wrap each line.\n * @returns New array of optimal line breaks.\n */\nfunction wrapMutate(\n words: string[], wordBreaks: boolean[], limit: number): boolean[] {\n let bestScore = wrapScore(words, wordBreaks, limit);\n let bestBreaks;\n // Try shifting every line break forward or backward.\n for (let i = 0; i < wordBreaks.length - 1; i++) {\n if (wordBreaks[i] === wordBreaks[i + 1]) {\n continue;\n }\n const mutatedWordBreaks = (new Array()).concat(wordBreaks);\n mutatedWordBreaks[i] = !mutatedWordBreaks[i];\n mutatedWordBreaks[i + 1] = !mutatedWordBreaks[i + 1];\n const mutatedScore = wrapScore(words, mutatedWordBreaks, limit);\n if (mutatedScore > bestScore) {\n bestScore = mutatedScore;\n bestBreaks = mutatedWordBreaks;\n }\n }\n if (bestBreaks) {\n // Found an improvement. See if it may be improved further.\n return wrapMutate(words, bestBreaks, limit);\n }\n // No improvements found. Done.\n return wordBreaks;\n}\n\n/**\n * Reassemble the array of words into text, with the specified line breaks.\n *\n * @param words Array of each word.\n * @param wordBreaks Array of line breaks.\n * @returns Plain text.\n */\nfunction wrapToText(words: string[], wordBreaks: boolean[]): string {\n const text = [];\n for (let i = 0; i < words.length; i++) {\n text.push(words[i]);\n if (wordBreaks[i] !== undefined) {\n text.push(wordBreaks[i] ? '\\n' : ' ');\n }\n }\n return text.join('');\n}\n\n/**\n * Is the given string a number (includes negative and decimals).\n *\n * @param str Input string.\n * @returns True if number, false otherwise.\n * @alias Blockly.utils.string.isNumber\n */\nexport function isNumber(str: string): boolean {\n return /^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(str);\n}\n","/**\n * @license\n * Copyright 2011 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Library to create tooltips for Blockly.\n * First, call createDom() after onload.\n * Second, set the 'tooltip' property on any SVG element that needs a tooltip.\n * If the tooltip is a string, or a function that returns a string, that message\n * will be displayed. If the tooltip is an SVG element, then that object's\n * tooltip will be used. Third, call bindMouseEvents(e) passing the SVG element.\n *\n * @namespace Blockly.Tooltip\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Tooltip');\n\nimport * as browserEvents from './browser_events.js';\nimport * as common from './common.js';\nimport * as blocklyString from './utils/string.js';\n\n\n/**\n * A type which can define a tooltip.\n * Either a string, an object containing a tooltip property, or a function which\n * returns either a string, or another arbitrarily nested function which\n * eventually unwinds to a string.\n *\n * @alias Blockly.Tooltip.TipInfo\n */\nexport type TipInfo =\n string|{tooltip: AnyDuringMigration}|(() => TipInfo|string|Function);\n\n/**\n * A function that renders custom tooltip UI.\n * 1st parameter: the div element to render content into.\n * 2nd parameter: the element being moused over (i.e., the element for which the\n * tooltip should be shown).\n *\n * @alias Blockly.Tooltip.CustomTooltip\n */\nexport type CustomTooltip = (p1: Element, p2: Element) => AnyDuringMigration;\n\n/**\n * An optional function that renders custom tooltips into the provided DIV. If\n * this is defined, the function will be called instead of rendering the default\n * tooltip UI.\n */\nlet customTooltip: CustomTooltip|undefined = undefined;\n\n/**\n * Sets a custom function that will be called if present instead of the default\n * tooltip UI.\n *\n * @param customFn A custom tooltip used to render an alternate tooltip UI.\n * @alias Blockly.Tooltip.setCustomTooltip\n */\nexport function setCustomTooltip(customFn: CustomTooltip) {\n customTooltip = customFn;\n}\n\n/**\n * Gets the custom tooltip function.\n *\n * @returns The custom tooltip function, if defined.\n */\nexport function getCustomTooltip(): CustomTooltip|undefined {\n return customTooltip;\n}\n\n/** Is a tooltip currently showing? */\nlet visible = false;\n\n/**\n * Returns whether or not a tooltip is showing\n *\n * @returns True if a tooltip is showing\n * @alias Blockly.Tooltip.isVisible\n */\nexport function isVisible(): boolean {\n return visible;\n}\n\n/** Is someone else blocking the tooltip from being shown? */\nlet blocked = false;\n\n/**\n * Maximum width (in characters) of a tooltip.\n *\n * @alias Blockly.Tooltip.LIMIT\n */\nexport const LIMIT = 50;\n\n/** PID of suspended thread to clear tooltip on mouse out. */\nlet mouseOutPid: AnyDuringMigration = 0;\n\n/** PID of suspended thread to show the tooltip. */\nlet showPid: AnyDuringMigration = 0;\n\n/**\n * Last observed X location of the mouse pointer (freezes when tooltip appears).\n */\nlet lastX = 0;\n\n/**\n * Last observed Y location of the mouse pointer (freezes when tooltip appears).\n */\nlet lastY = 0;\n\n/** Current element being pointed at. */\nlet element: AnyDuringMigration = null;\n\n/**\n * Once a tooltip has opened for an element, that element is 'poisoned' and\n * cannot respawn a tooltip until the pointer moves over a different element.\n */\nlet poisonedElement: AnyDuringMigration = null;\n\n/**\n * Horizontal offset between mouse cursor and tooltip.\n *\n * @alias Blockly.Tooltip.OFFSET_X\n */\nexport const OFFSET_X = 0;\n\n/**\n * Vertical offset between mouse cursor and tooltip.\n *\n * @alias Blockly.Tooltip.OFFSET_Y\n */\nexport const OFFSET_Y = 10;\n\n/**\n * Radius mouse can move before killing tooltip.\n *\n * @alias Blockly.Tooltip.RADIUS_OK\n */\nexport const RADIUS_OK = 10;\n\n/**\n * Delay before tooltip appears.\n *\n * @alias Blockly.Tooltip.HOVER_MS\n */\nexport const HOVER_MS = 750;\n\n/**\n * Horizontal padding between tooltip and screen edge.\n *\n * @alias Blockly.Tooltip.MARGINS\n */\nexport const MARGINS = 5;\n\n/** The HTML container. Set once by createDom. */\nlet containerDiv: HTMLDivElement|null = null;\n\n/**\n * Returns the HTML tooltip container.\n *\n * @returns The HTML tooltip container.\n * @alias Blockly.Tooltip.getDiv\n */\nexport function getDiv(): HTMLDivElement|null {\n return containerDiv;\n}\n\n/**\n * Returns the tooltip text for the given element.\n *\n * @param object The object to get the tooltip text of.\n * @returns The tooltip text of the element.\n * @alias Blockly.Tooltip.getTooltipOfObject\n */\nexport function getTooltipOfObject(object: AnyDuringMigration|null): string {\n const obj = getTargetObject(object);\n if (obj) {\n let tooltip = obj.tooltip;\n while (typeof tooltip === 'function') {\n tooltip = tooltip();\n }\n if (typeof tooltip !== 'string') {\n throw Error('Tooltip function must return a string.');\n }\n return tooltip;\n }\n return '';\n}\n\n/**\n * Returns the target object that the given object is targeting for its\n * tooltip. Could be the object itself.\n *\n * @param obj The object are trying to find the target tooltip object of.\n * @returns The target tooltip object.\n */\nfunction getTargetObject(obj: object|null): {tooltip: AnyDuringMigration}|null {\n while (obj && (obj as any).tooltip) {\n if (typeof (obj as any).tooltip === 'string' ||\n typeof (obj as any).tooltip === 'function') {\n return obj as {tooltip: string | (() => string)};\n }\n obj = (obj as any).tooltip;\n }\n return null;\n}\n\n/**\n * Create the tooltip div and inject it onto the page.\n *\n * @alias Blockly.Tooltip.createDom\n */\nexport function createDom() {\n if (containerDiv) {\n return; // Already created.\n }\n // Create an HTML container for popup overlays (e.g. editor widgets).\n containerDiv = document.createElement('div');\n containerDiv.className = 'blocklyTooltipDiv';\n const container = common.getParentContainer() || document.body;\n container.appendChild(containerDiv);\n}\n\n/**\n * Binds the required mouse events onto an SVG element.\n *\n * @param element SVG element onto which tooltip is to be bound.\n * @alias Blockly.Tooltip.bindMouseEvents\n */\nexport function bindMouseEvents(element: Element) {\n // TODO (#6097): Don't stash wrapper info on the DOM.\n (element as AnyDuringMigration).mouseOverWrapper_ =\n browserEvents.bind(element, 'mouseover', null, onMouseOver);\n (element as AnyDuringMigration).mouseOutWrapper_ =\n browserEvents.bind(element, 'mouseout', null, onMouseOut);\n\n // Don't use bindEvent_ for mousemove since that would create a\n // corresponding touch handler, even though this only makes sense in the\n // context of a mouseover/mouseout.\n element.addEventListener('mousemove', onMouseMove, false);\n}\n\n/**\n * Unbinds tooltip mouse events from the SVG element.\n *\n * @param element SVG element onto which tooltip is bound.\n * @alias Blockly.Tooltip.unbindMouseEvents\n */\nexport function unbindMouseEvents(element: Element|null) {\n if (!element) {\n return;\n }\n // TODO (#6097): Don't stash wrapper info on the DOM.\n browserEvents.unbind((element as AnyDuringMigration).mouseOverWrapper_);\n browserEvents.unbind((element as AnyDuringMigration).mouseOutWrapper_);\n element.removeEventListener('mousemove', onMouseMove);\n}\n\n/**\n * Hide the tooltip if the mouse is over a different object.\n * Initialize the tooltip to potentially appear for this object.\n *\n * @param e Mouse event.\n */\nfunction onMouseOver(e: Event) {\n if (blocked) {\n // Someone doesn't want us to show tooltips.\n return;\n }\n // If the tooltip is an object, treat it as a pointer to the next object in\n // the chain to look at. Terminate when a string or function is found.\n const newElement = getTargetObject(e.currentTarget);\n if (element !== newElement) {\n hide();\n poisonedElement = null;\n element = newElement;\n }\n // Forget about any immediately preceding mouseOut event.\n clearTimeout(mouseOutPid);\n}\n\n/**\n * Hide the tooltip if the mouse leaves the object and enters the workspace.\n *\n * @param _e Mouse event.\n */\nfunction onMouseOut(_e: Event) {\n if (blocked) {\n // Someone doesn't want us to show tooltips.\n return;\n }\n // Moving from one element to another (overlapping or with no gap) generates\n // a mouseOut followed instantly by a mouseOver. Fork off the mouseOut\n // event and kill it if a mouseOver is received immediately.\n // This way the task only fully executes if mousing into the void.\n mouseOutPid = setTimeout(function() {\n element = null;\n poisonedElement = null;\n hide();\n }, 1);\n clearTimeout(showPid);\n}\n\n/**\n * When hovering over an element, schedule a tooltip to be shown. If a tooltip\n * is already visible, hide it if the mouse strays out of a certain radius.\n *\n * @param e Mouse event.\n */\nfunction onMouseMove(e: Event) {\n if (!element || !(element as AnyDuringMigration).tooltip) {\n // No tooltip here to show.\n return;\n } else if (blocked) {\n // Someone doesn't want us to show tooltips. We are probably handling a\n // user gesture, such as a click or drag.\n return;\n }\n if (visible) {\n // Compute the distance between the mouse position when the tooltip was\n // shown and the current mouse position. Pythagorean theorem.\n // AnyDuringMigration because: Property 'pageX' does not exist on type\n // 'Event'.\n const dx = lastX - (e as AnyDuringMigration).pageX;\n // AnyDuringMigration because: Property 'pageY' does not exist on type\n // 'Event'.\n const dy = lastY - (e as AnyDuringMigration).pageY;\n if (Math.sqrt(dx * dx + dy * dy) > RADIUS_OK) {\n hide();\n }\n } else if (poisonedElement !== element) {\n // The mouse moved, clear any previously scheduled tooltip.\n clearTimeout(showPid);\n // Maybe this time the mouse will stay put. Schedule showing of tooltip.\n // AnyDuringMigration because: Property 'pageX' does not exist on type\n // 'Event'.\n lastX = (e as AnyDuringMigration).pageX;\n // AnyDuringMigration because: Property 'pageY' does not exist on type\n // 'Event'.\n lastY = (e as AnyDuringMigration).pageY;\n showPid = setTimeout(show, HOVER_MS);\n }\n}\n\n/**\n * Dispose of the tooltip.\n *\n * @alias Blockly.Tooltip.dispose\n * @internal\n */\nexport function dispose() {\n element = null;\n poisonedElement = null;\n hide();\n}\n\n/**\n * Hide the tooltip.\n *\n * @alias Blockly.Tooltip.hide\n */\nexport function hide() {\n if (visible) {\n visible = false;\n if (containerDiv) {\n containerDiv.style.display = 'none';\n }\n }\n if (showPid) {\n clearTimeout(showPid);\n }\n}\n\n/**\n * Hide any in-progress tooltips and block showing new tooltips until the next\n * call to unblock().\n *\n * @alias Blockly.Tooltip.block\n * @internal\n */\nexport function block() {\n hide();\n blocked = true;\n}\n\n/**\n * Unblock tooltips: allow them to be scheduled and shown according to their own\n * logic.\n *\n * @alias Blockly.Tooltip.unblock\n * @internal\n */\nexport function unblock() {\n blocked = false;\n}\n\n/** Renders the tooltip content into the tooltip div. */\nfunction renderContent() {\n if (!containerDiv || !element) {\n // This shouldn't happen, but if it does, we can't render.\n return;\n }\n if (typeof customTooltip === 'function') {\n customTooltip(containerDiv, element);\n } else {\n renderDefaultContent();\n }\n}\n\n/** Renders the default tooltip UI. */\nfunction renderDefaultContent() {\n let tip = getTooltipOfObject(element);\n tip = blocklyString.wrap(tip, LIMIT);\n // Create new text, line by line.\n const lines = tip.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n const div = (document.createElement('div'));\n div.appendChild(document.createTextNode(lines[i]));\n containerDiv!.appendChild(div);\n }\n}\n\n/**\n * Gets the coordinates for the tooltip div, taking into account the edges of\n * the screen to prevent showing the tooltip offscreen.\n *\n * @param rtl True if the tooltip should be in right-to-left layout.\n * @returns Coordinates at which the tooltip div should be placed.\n */\nfunction getPosition(rtl: boolean): {x: number, y: number} {\n // Position the tooltip just below the cursor.\n const windowWidth = document.documentElement.clientWidth;\n const windowHeight = document.documentElement.clientHeight;\n\n let anchorX = lastX;\n if (rtl) {\n anchorX -= OFFSET_X + containerDiv!.offsetWidth;\n } else {\n anchorX += OFFSET_X;\n }\n\n let anchorY = lastY + OFFSET_Y;\n if (anchorY + containerDiv!.offsetHeight > windowHeight + window.scrollY) {\n // Falling off the bottom of the screen; shift the tooltip up.\n anchorY -= containerDiv!.offsetHeight + 2 * OFFSET_Y;\n }\n\n if (rtl) {\n // Prevent falling off left edge in RTL mode.\n anchorX = Math.max(MARGINS - window.scrollX, anchorX);\n } else {\n if (anchorX + containerDiv!.offsetWidth >\n windowWidth + window.scrollX - 2 * MARGINS) {\n // Falling off the right edge of the screen;\n // clamp the tooltip on the edge.\n anchorX = windowWidth - containerDiv!.offsetWidth - 2 * MARGINS;\n }\n }\n\n return {x: anchorX, y: anchorY};\n}\n\n/** Create the tooltip and show it. */\nfunction show() {\n if (blocked) {\n // Someone doesn't want us to show tooltips.\n return;\n }\n poisonedElement = element;\n if (!containerDiv) {\n return;\n }\n // Erase all existing text.\n containerDiv.textContent = '';\n\n // Add new content.\n renderContent();\n\n // Display the tooltip.\n const rtl = (element as any).RTL;\n containerDiv.style.direction = rtl ? 'rtl' : 'ltr';\n containerDiv.style.display = 'block';\n visible = true;\n\n const {x, y} = getPosition(rtl);\n containerDiv.style.left = x + 'px';\n containerDiv.style.top = y + 'px';\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods for colour manipulation.\n *\n * @namespace Blockly.utils.colour\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.colour');\n\n\n/**\n * The richness of block colours, regardless of the hue.\n * Must be in the range of 0 (inclusive) to 1 (exclusive).\n *\n * @alias Blockly.utils.colour.hsvSaturation\n */\nlet hsvSaturation = 0.45;\n\n/**\n * Get the richness of block colours, regardless of the hue.\n *\n * @alias Blockly.utils.colour.getHsvSaturation\n * @returns The current richness.\n * @internal\n */\nexport function getHsvSaturation(): number {\n return hsvSaturation;\n}\n\n/**\n * Set the richness of block colours, regardless of the hue.\n *\n * @param newSaturation The new richness, in the range of 0 (inclusive) to 1\n * (exclusive)\n * @alias Blockly.utils.colour.setHsvSaturation\n * @internal\n */\nexport function setHsvSaturation(newSaturation: number) {\n hsvSaturation = newSaturation;\n}\n\n/**\n * The intensity of block colours, regardless of the hue.\n * Must be in the range of 0 (inclusive) to 1 (exclusive).\n *\n * @alias Blockly.utils.colour.hsvValue\n */\nlet hsvValue = 0.65;\n\n/**\n * Get the intensity of block colours, regardless of the hue.\n *\n * @alias Blockly.utils.colour.getHsvValue\n * @returns The current intensity.\n * @internal\n */\nexport function getHsvValue(): number {\n return hsvValue;\n}\n\n/**\n * Set the intensity of block colours, regardless of the hue.\n *\n * @param newValue The new intensity, in the range of 0 (inclusive) to 1\n * (exclusive)\n * @alias Blockly.utils.colour.setHsvValue\n * @internal\n */\nexport function setHsvValue(newValue: number) {\n hsvValue = newValue;\n}\n\n/**\n * Parses a colour from a string.\n * .parse('red') = '#ff0000'\n * .parse('#f00') = '#ff0000'\n * .parse('#ff0000') = '#ff0000'\n * .parse('0xff0000') = '#ff0000'\n * .parse('rgb(255, 0, 0)') = '#ff0000'\n *\n * @param str Colour in some CSS format.\n * @returns A string containing a hex representation of the colour, or null if\n * can't be parsed.\n * @alias Blockly.utils.colour.parse\n */\nexport function parse(str: string|number): string|null {\n str = String(str).toLowerCase().trim();\n let hex = names[str];\n if (hex) {\n // e.g. 'red'\n return hex;\n }\n hex = str.substring(0, 2) === '0x' ? '#' + str.substring(2) : str;\n hex = hex[0] === '#' ? hex : '#' + hex;\n if (/^#[0-9a-f]{6}$/.test(hex)) {\n // e.g. '#00ff88'\n return hex;\n }\n if (/^#[0-9a-f]{3}$/.test(hex)) {\n // e.g. '#0f8'\n return ['#', hex[1], hex[1], hex[2], hex[2], hex[3], hex[3]].join('');\n }\n const rgb = str.match(/^(?:rgb)?\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/);\n if (rgb) {\n // e.g. 'rgb(0, 128, 255)'\n const r = Number(rgb[1]);\n const g = Number(rgb[2]);\n const b = Number(rgb[3]);\n if (r >= 0 && r < 256 && g >= 0 && g < 256 && b >= 0 && b < 256) {\n return rgbToHex(r, g, b);\n }\n }\n return null;\n}\n\n/**\n * Converts a colour from RGB to hex representation.\n *\n * @param r Amount of red, int between 0 and 255.\n * @param g Amount of green, int between 0 and 255.\n * @param b Amount of blue, int between 0 and 255.\n * @returns Hex representation of the colour.\n * @alias Blockly.utils.colour.rgbToHex\n */\nexport function rgbToHex(r: number, g: number, b: number): string {\n const rgb = r << 16 | g << 8 | b;\n if (r < 0x10) {\n return '#' + (0x1000000 | rgb).toString(16).substr(1);\n }\n return '#' + rgb.toString(16);\n}\n\n/**\n * Converts a colour to RGB.\n *\n * @param colour String representing colour in any colour format ('#ff0000',\n * 'red', '0xff000', etc).\n * @returns RGB representation of the colour.\n * @alias Blockly.utils.colour.hexToRgb\n */\nexport function hexToRgb(colour: string): number[] {\n const hex = parse(colour);\n if (!hex) {\n return [0, 0, 0];\n }\n\n const rgb = parseInt(hex.substr(1), 16);\n const r = rgb >> 16;\n const g = rgb >> 8 & 255;\n const b = rgb & 255;\n\n return [r, g, b];\n}\n\n/**\n * Converts an HSV triplet to hex representation.\n *\n * @param h Hue value in [0, 360].\n * @param s Saturation value in [0, 1].\n * @param v Brightness in [0, 255].\n * @returns Hex representation of the colour.\n * @alias Blockly.utils.colour.hsvToHex\n */\nexport function hsvToHex(h: number, s: number, v: number): string {\n let red = 0;\n let green = 0;\n let blue = 0;\n if (s === 0) {\n red = v;\n green = v;\n blue = v;\n } else {\n const sextant = Math.floor(h / 60);\n const remainder = h / 60 - sextant;\n const val1 = v * (1 - s);\n const val2 = v * (1 - s * remainder);\n const val3 = v * (1 - s * (1 - remainder));\n switch (sextant) {\n case 1:\n red = val2;\n green = v;\n blue = val1;\n break;\n case 2:\n red = val1;\n green = v;\n blue = val3;\n break;\n case 3:\n red = val1;\n green = val2;\n blue = v;\n break;\n case 4:\n red = val3;\n green = val1;\n blue = v;\n break;\n case 5:\n red = v;\n green = val1;\n blue = val2;\n break;\n case 6:\n case 0:\n red = v;\n green = val3;\n blue = val1;\n break;\n }\n }\n return rgbToHex(Math.floor(red), Math.floor(green), Math.floor(blue));\n}\n\n/**\n * Blend two colours together, using the specified factor to indicate the\n * weight given to the first colour.\n *\n * @param colour1 First colour.\n * @param colour2 Second colour.\n * @param factor The weight to be given to colour1 over colour2.\n * Values should be in the range [0, 1].\n * @returns Combined colour represented in hex.\n * @alias Blockly.utils.colour.blend\n */\nexport function blend(colour1: string, colour2: string, factor: number): string|\n null {\n const hex1 = parse(colour1);\n if (!hex1) {\n return null;\n }\n const hex2 = parse(colour2);\n if (!hex2) {\n return null;\n }\n const rgb1 = hexToRgb(hex1);\n const rgb2 = hexToRgb(hex2);\n const r = Math.round(rgb2[0] + factor * (rgb1[0] - rgb2[0]));\n const g = Math.round(rgb2[1] + factor * (rgb1[1] - rgb2[1]));\n const b = Math.round(rgb2[2] + factor * (rgb1[2] - rgb2[2]));\n return rgbToHex(r, g, b);\n}\n\n/**\n * A map that contains the 16 basic colour keywords as defined by W3C:\n * https://www.w3.org/TR/2018/REC-css-color-3-20180619/#html4\n * The keys of this map are the lowercase \"readable\" names of the colours,\n * while the values are the \"hex\" values.\n *\n * @alias Blockly.utils.colour.names\n */\nexport const names: {[key: string]: string} = {\n 'aqua': '#00ffff',\n 'black': '#000000',\n 'blue': '#0000ff',\n 'fuchsia': '#ff00ff',\n 'gray': '#808080',\n 'green': '#008000',\n 'lime': '#00ff00',\n 'maroon': '#800000',\n 'navy': '#000080',\n 'olive': '#808000',\n 'purple': '#800080',\n 'red': '#ff0000',\n 'silver': '#c0c0c0',\n 'teal': '#008080',\n 'white': '#ffffff',\n 'yellow': '#ffff00',\n};\n\n/**\n * Convert a hue (HSV model) into an RGB hex triplet.\n *\n * @param hue Hue on a colour wheel (0-360).\n * @returns RGB code, e.g. '#5ba65b'.\n * @alias Blockly.utils.colour.hueToHex\n */\nexport function hueToHex(hue: number): string {\n return hsvToHex(hue, hsvSaturation, hsvValue * 255);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @namespace Blockly.utils.parsing\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.parsing');\n\nimport {Msg} from '../msg.js';\n\nimport * as colourUtils from './colour.js';\n\n\n/**\n * Internal implementation of the message reference and interpolation token\n * parsing used by tokenizeInterpolation() and replaceMessageReferences().\n *\n * @param message Text which might contain string table references and\n * interpolation tokens.\n * @param parseInterpolationTokens Option to parse numeric\n * interpolation tokens (%1, %2, ...) when true.\n * @returns Array of strings and numbers.\n */\nfunction tokenizeInterpolationInternal(\n message: string, parseInterpolationTokens: boolean): (string|number)[] {\n const tokens = [];\n const chars = message.split('');\n chars.push( // End marker.\n '');\n // Parse the message with a finite state machine.\n // 0 - Base case.\n // 1 - % found.\n // 2 - Digit found.\n // 3 - Message ref found.\n let state = 0;\n const buffer = new Array();\n let number = null;\n for (let i = 0; i < chars.length; i++) {\n const c = chars[i];\n if (state === 0) { // Start escape.\n if (c === '%') {\n const text = buffer.join('');\n if (text) {\n tokens.push(text);\n }\n buffer.length = 0;\n state = 1;\n } else {\n buffer.push(c); // Regular char.\n }\n } else if (state === 1) {\n if (c === '%') {\n buffer.push(c); // Escaped %: %%\n state = 0;\n } else if (parseInterpolationTokens && '0' <= c && c <= '9') {\n state = 2;\n number = c;\n const text = buffer.join('');\n if (text) {\n tokens.push(text);\n }\n buffer.length = 0;\n } else if (c === '{') {\n state = 3;\n } else {\n buffer.push('%', c); // Not recognized. Return as literal.\n state = 0;\n }\n } else if (state === 2) {\n if ('0' <= c && c <= '9') {\n number += c; // Multi-digit number.\n } else {\n tokens.push(parseInt(number ?? '', 10));\n i--; // Parse this char again.\n state = 0;\n }\n } else if (state === 3) { // String table reference\n if (c === '') {\n // Premature end before closing '}'\n buffer.splice(0, 0, '%{'); // Re-insert leading delimiter\n i--; // Parse this char again.\n state = 0; // and parse as string literal.\n } else if (c !== '}') {\n buffer.push(c);\n } else {\n const rawKey = buffer.join('');\n if (/[A-Z]\\w*/i.test(rawKey)) { // Strict matching\n // Found a valid string key. Attempt case insensitive match.\n const keyUpper = rawKey.toUpperCase();\n\n // BKY_ is the prefix used to namespace the strings used in\n // Blockly core files and the predefined blocks in ../blocks/.\n // These strings are defined in ../msgs/ files.\n const bklyKey =\n keyUpper.startsWith('BKY_') ? keyUpper.substring(4) : null;\n if (bklyKey && bklyKey in Msg) {\n const rawValue = Msg[bklyKey];\n if (typeof rawValue === 'string') {\n // Attempt to dereference substrings, too, appending to the\n // end.\n Array.prototype.push.apply(\n tokens,\n tokenizeInterpolationInternal(\n rawValue, parseInterpolationTokens));\n } else if (parseInterpolationTokens) {\n // When parsing interpolation tokens, numbers are special\n // placeholders (%1, %2, etc). Make sure all other values are\n // strings.\n tokens.push(String(rawValue));\n } else {\n tokens.push(rawValue);\n }\n } else {\n // No entry found in the string table. Pass reference as string.\n tokens.push('%{' + rawKey + '}');\n }\n buffer.length = 0; // Clear the array\n state = 0;\n } else {\n tokens.push('%{' + rawKey + '}');\n buffer.length = 0;\n state = 0; // and parse as string literal.\n }\n }\n }\n }\n let text = buffer.join('');\n if (text) {\n tokens.push(text);\n }\n\n // Merge adjacent text tokens into a single string.\n const mergedTokens = [];\n buffer.length = 0;\n for (let i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'string') {\n buffer.push(tokens[i] as string);\n } else {\n text = buffer.join('');\n if (text) {\n mergedTokens.push(text);\n }\n buffer.length = 0;\n mergedTokens.push(tokens[i]);\n }\n }\n text = buffer.join('');\n if (text) {\n mergedTokens.push(text);\n }\n buffer.length = 0;\n\n return mergedTokens;\n}\n\n/**\n * Parse a string with any number of interpolation tokens (%1, %2, ...).\n * It will also replace string table references (e.g., %{bky_my_msg} and\n * %{BKY_MY_MSG} will both be replaced with the value in\n * Msg['MY_MSG']). Percentage sign characters '%' may be self-escaped\n * (e.g., '%%').\n *\n * @param message Text which might contain string table references and\n * interpolation tokens.\n * @returns Array of strings and numbers.\n * @alias Blockly.utils.parsing.tokenizeInterpolation\n */\nexport function tokenizeInterpolation(message: string): (string|number)[] {\n return tokenizeInterpolationInternal(message, true);\n}\n\n/**\n * Replaces string table references in a message, if the message is a string.\n * For example, \"%{bky_my_msg}\" and \"%{BKY_MY_MSG}\" will both be replaced with\n * the value in Msg['MY_MSG'].\n *\n * @param message Message, which may be a string that contains\n * string table references.\n * @returns String with message references replaced.\n * @alias Blockly.utils.parsing.replaceMessageReferences\n */\nexport function replaceMessageReferences(message: string|any): string {\n if (typeof message !== 'string') {\n return message;\n }\n const interpolatedResult = tokenizeInterpolationInternal(message, false);\n // When parseInterpolationTokens === false, interpolatedResult should be at\n // most length 1.\n return interpolatedResult.length ? String(interpolatedResult[0]) : '';\n}\n\n/**\n * Validates that any %{MSG_KEY} references in the message refer to keys of\n * the Msg string table.\n *\n * @param message Text which might contain string table references.\n * @returns True if all message references have matching values.\n * Otherwise, false.\n * @alias Blockly.utils.parsing.checkMessageReferences\n */\nexport function checkMessageReferences(message: string): boolean {\n let validSoFar = true;\n\n const msgTable = Msg;\n // TODO (#1169): Implement support for other string tables,\n // prefixes other than BKY_.\n const m = message.match(/%{BKY_[A-Z]\\w*}/ig);\n if (m) {\n for (let i = 0; i < m.length; i++) {\n const msgKey = m[i].toUpperCase();\n if (msgTable[msgKey.slice(6, -1)] === undefined) {\n console.warn('No message string for ' + m[i] + ' in ' + message);\n validSoFar = false; // Continue to report other errors.\n }\n }\n }\n\n return validSoFar;\n}\n\n/**\n * Parse a block colour from a number or string, as provided in a block\n * definition.\n *\n * @param colour HSV hue value (0 to 360), #RRGGBB string,\n * or a message reference string pointing to one of those two values.\n * @returns An object containing the colour as\n * a #RRGGBB string, and the hue if the input was an HSV hue value.\n * @throws {Error} If the colour cannot be parsed.\n * @alias Blockly.utils.parsing.parseBlockColour\n */\nexport function parseBlockColour(colour: number|\n string): {hue: number|null, hex: string} {\n const dereferenced =\n typeof colour === 'string' ? replaceMessageReferences(colour) : colour;\n\n const hue = Number(dereferenced);\n if (!isNaN(hue) && 0 <= hue && hue <= 360) {\n return {\n hue: hue,\n hex: colourUtils.hsvToHex(\n hue, colourUtils.getHsvSaturation(), colourUtils.getHsvValue() * 255),\n };\n } else {\n const hex = colourUtils.parse(dereferenced);\n if (hex) {\n // Only store hue if colour is set as a hue.\n return {hue: null, hex: hex};\n } else {\n let errorMsg = 'Invalid colour: \"' + dereferenced + '\"';\n if (colour !== dereferenced) {\n errorMsg += ' (from \"' + colour + '\")';\n }\n throw Error(errorMsg);\n }\n }\n}\n","/**\n * @license\n * Copyright 2013 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * A div that floats on top of Blockly. This singleton contains\n * temporary HTML UI widgets that the user is currently interacting with.\n * E.g. text input areas, colour pickers, context menus.\n *\n * @namespace Blockly.WidgetDiv\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.WidgetDiv');\n\nimport * as common from './common.js';\nimport * as dom from './utils/dom.js';\nimport type {Rect} from './utils/rect.js';\nimport type {Size} from './utils/size.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\n/** The object currently using this container. */\nlet owner: unknown = null;\n\n/** Optional cleanup function set by whichever object uses the widget. */\nlet dispose: (() => void)|null = null;\n\n/** A class name representing the current owner's workspace renderer. */\nlet rendererClassName = '';\n\n/** A class name representing the current owner's workspace theme. */\nlet themeClassName = '';\n\n/** The HTML container for popup overlays (e.g. editor widgets). */\nlet containerDiv: HTMLDivElement|null;\n\n/**\n * Returns the HTML container for editor widgets.\n *\n * @returns The editor widget container.\n * @alias Blockly.WidgetDiv.getDiv\n */\nexport function getDiv(): HTMLDivElement|null {\n return containerDiv;\n}\n\n/**\n * Allows unit tests to reset the div. Do not use outside of tests.\n *\n * @param newDiv The new value for the DIV field.\n * @alias Blockly.WidgetDiv.testOnly_setDiv\n * @internal\n */\nexport function testOnly_setDiv(newDiv: HTMLDivElement|null) {\n containerDiv = newDiv;\n}\n\n/**\n * Create the widget div and inject it onto the page.\n *\n * @alias Blockly.WidgetDiv.createDom\n */\nexport function createDom() {\n if (containerDiv) {\n return; // Already created.\n }\n\n containerDiv = document.createElement('div') as HTMLDivElement;\n containerDiv.className = 'blocklyWidgetDiv';\n const container = common.getParentContainer() || document.body;\n container.appendChild(containerDiv);\n}\n\n/**\n * Initialize and display the widget div. Close the old one if needed.\n *\n * @param newOwner The object that will be using this container.\n * @param rtl Right-to-left (true) or left-to-right (false).\n * @param newDispose Optional cleanup function to be run when the widget is\n * closed.\n * @alias Blockly.WidgetDiv.show\n */\nexport function show(newOwner: unknown, rtl: boolean, newDispose: () => void) {\n hide();\n owner = newOwner;\n dispose = newDispose;\n const div = containerDiv;\n if (!div) return;\n div.style.direction = rtl ? 'rtl' : 'ltr';\n div.style.display = 'block';\n const mainWorkspace = common.getMainWorkspace() as WorkspaceSvg;\n rendererClassName = mainWorkspace.getRenderer().getClassName();\n themeClassName = mainWorkspace.getTheme().getClassName();\n if (rendererClassName) {\n dom.addClass(div, rendererClassName);\n }\n if (themeClassName) {\n dom.addClass(div, themeClassName);\n }\n}\n\n/**\n * Destroy the widget and hide the div.\n *\n * @alias Blockly.WidgetDiv.hide\n */\nexport function hide() {\n if (!isVisible()) {\n return;\n }\n owner = null;\n\n const div = containerDiv;\n if (!div) return;\n div.style.display = 'none';\n div.style.left = '';\n div.style.top = '';\n dispose && dispose();\n dispose = null;\n div.textContent = '';\n\n if (rendererClassName) {\n dom.removeClass(div, rendererClassName);\n rendererClassName = '';\n }\n if (themeClassName) {\n dom.removeClass(div, themeClassName);\n themeClassName = '';\n }\n (common.getMainWorkspace() as WorkspaceSvg).markFocused();\n}\n\n/**\n * Is the container visible?\n *\n * @returns True if visible.\n * @alias Blockly.WidgetDiv.isVisible\n */\nexport function isVisible(): boolean {\n return !!owner;\n}\n\n/**\n * Destroy the widget and hide the div if it is being used by the specified\n * object.\n *\n * @param oldOwner The object that was using this container.\n * @alias Blockly.WidgetDiv.hideIfOwner\n */\nexport function hideIfOwner(oldOwner: unknown) {\n if (owner === oldOwner) {\n hide();\n }\n}\n/**\n * Set the widget div's position and height. This function does nothing clever:\n * it will not ensure that your widget div ends up in the visible window.\n *\n * @param x Horizontal location (window coordinates, not body).\n * @param y Vertical location (window coordinates, not body).\n * @param height The height of the widget div (pixels).\n */\nfunction positionInternal(x: number, y: number, height: number) {\n containerDiv!.style.left = x + 'px';\n containerDiv!.style.top = y + 'px';\n containerDiv!.style.height = height + 'px';\n}\n\n/**\n * Position the widget div based on an anchor rectangle.\n * The widget should be placed adjacent to but not overlapping the anchor\n * rectangle. The preferred position is directly below and aligned to the left\n * (LTR) or right (RTL) side of the anchor.\n *\n * @param viewportBBox The bounding rectangle of the current viewport, in window\n * coordinates.\n * @param anchorBBox The bounding rectangle of the anchor, in window\n * coordinates.\n * @param widgetSize The size of the widget that is inside the widget div, in\n * window coordinates.\n * @param rtl Whether the workspace is in RTL mode. This determines horizontal\n * alignment.\n * @alias Blockly.WidgetDiv.positionWithAnchor\n * @internal\n */\nexport function positionWithAnchor(\n viewportBBox: Rect, anchorBBox: Rect, widgetSize: Size, rtl: boolean) {\n const y = calculateY(viewportBBox, anchorBBox, widgetSize);\n const x = calculateX(viewportBBox, anchorBBox, widgetSize, rtl);\n\n if (y < 0) {\n positionInternal(x, 0, widgetSize.height + y);\n } else {\n positionInternal(x, y, widgetSize.height);\n }\n}\n\n/**\n * Calculate an x position (in window coordinates) such that the widget will not\n * be offscreen on the right or left.\n *\n * @param viewportBBox The bounding rectangle of the current viewport, in window\n * coordinates.\n * @param anchorBBox The bounding rectangle of the anchor, in window\n * coordinates.\n * @param widgetSize The dimensions of the widget inside the widget div.\n * @param rtl Whether the Blockly workspace is in RTL mode.\n * @returns A valid x-coordinate for the top left corner of the widget div, in\n * window coordinates.\n */\nfunction calculateX(\n viewportBBox: Rect, anchorBBox: Rect, widgetSize: Size,\n rtl: boolean): number {\n if (rtl) {\n // Try to align the right side of the field and the right side of widget.\n const widgetLeft = anchorBBox.right - widgetSize.width;\n // Don't go offscreen left.\n const x = Math.max(widgetLeft, viewportBBox.left);\n // But really don't go offscreen right:\n return Math.min(x, viewportBBox.right - widgetSize.width);\n } else {\n // Try to align the left side of the field and the left side of widget.\n // Don't go offscreen right.\n const x = Math.min(anchorBBox.left, viewportBBox.right - widgetSize.width);\n // But left is more important, because that's where the text is.\n return Math.max(x, viewportBBox.left);\n }\n}\n\n/**\n * Calculate a y position (in window coordinates) such that the widget will not\n * be offscreen on the top or bottom.\n *\n * @param viewportBBox The bounding rectangle of the current viewport, in window\n * coordinates.\n * @param anchorBBox The bounding rectangle of the anchor, in window\n * coordinates.\n * @param widgetSize The dimensions of the widget inside the widget div.\n * @returns A valid y-coordinate for the top left corner of the widget div, in\n * window coordinates.\n */\nfunction calculateY(\n viewportBBox: Rect, anchorBBox: Rect, widgetSize: Size): number {\n // Flip the widget vertically if off the bottom.\n // The widget could go off the top of the window, but it would also go off\n // the bottom. The window is just too small.\n if (anchorBBox.bottom + widgetSize.height >= viewportBBox.bottom) {\n // The bottom of the widget is at the top of the field.\n return anchorBBox.top - widgetSize.height;\n } else {\n // The top of the widget is at the bottom of the field.\n return anchorBBox.bottom;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Fields can be created based on a JSON definition. This file\n * contains methods for registering those JSON definitions, and building the\n * fields based on JSON.\n *\n * @namespace Blockly.fieldRegistry\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.fieldRegistry');\n\nimport type {Field} from './field.js';\nimport type {IRegistrableField} from './interfaces/i_registrable_field.js';\nimport * as registry from './registry.js';\n\n\n/**\n * Registers a field type.\n * fieldRegistry.fromJson uses this registry to\n * find the appropriate field type.\n *\n * @param type The field type name as used in the JSON definition.\n * @param fieldClass The field class containing a fromJson function that can\n * construct an instance of the field.\n * @throws {Error} if the type name is empty, the field is already registered,\n * or the fieldClass is not an object containing a fromJson function.\n * @alias Blockly.fieldRegistry.register\n */\nexport function register(type: string, fieldClass: IRegistrableField) {\n registry.register(registry.Type.FIELD, type, fieldClass);\n}\n\n/**\n * Unregisters the field registered with the given type.\n *\n * @param type The field type name as used in the JSON definition.\n * @alias Blockly.fieldRegistry.unregister\n */\nexport function unregister(type: string) {\n registry.unregister(registry.Type.FIELD, type);\n}\n\n/**\n * Construct a Field from a JSON arg object.\n * Finds the appropriate registered field by the type name as registered using\n * fieldRegistry.register.\n *\n * @param options A JSON object with a type and options specific to the field\n * type.\n * @returns The new field instance or null if a field wasn't found with the\n * given type name\n * @alias Blockly.fieldRegistry.fromJson\n * @internal\n */\nexport function fromJson(options: AnyDuringMigration): Field|null {\n return TEST_ONLY.fromJsonInternal(options);\n}\n\n/**\n * Private version of fromJson for stubbing in tests.\n *\n * @param options\n */\nfunction fromJsonInternal(options: AnyDuringMigration): Field|null {\n const fieldObject = registry.getObject(registry.Type.FIELD, options['type']);\n if (!fieldObject) {\n console.warn(\n 'Blockly could not create a field of type ' + options['type'] +\n '. The field is probably not being registered. This could be because' +\n ' the file is not loaded, the field does not register itself (Issue' +\n ' #1584), or the registration is not being reached.');\n return null;\n } else if (typeof (fieldObject as any)['fromJson'] !== 'function') {\n throw new TypeError('returned Field was not a IRegistrableField');\n } else {\n return (fieldObject as unknown as IRegistrableField).fromJson(options);\n }\n}\n\nexport const TEST_ONLY = {\n fromJsonInternal,\n};\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * ARIA-related constants and utilities.\n * These methods are not specific to Blockly, and could be factored out into\n * a JavaScript framework such as Closure.\n *\n * @namespace Blockly.utils.aria\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.aria');\n\n\n/** ARIA states/properties prefix. */\nconst ARIA_PREFIX = 'aria-';\n\n/** ARIA role attribute. */\nconst ROLE_ATTRIBUTE = 'role';\n\n/**\n * ARIA role values.\n * Copied from Closure's goog.a11y.aria.Role\n *\n * @alias Blockly.utils.aria.Role\n */\nexport enum Role {\n // ARIA role for an interactive control of tabular data.\n GRID = 'grid',\n\n // ARIA role for a cell in a grid.\n GRIDCELL = 'gridcell',\n // ARIA role for a group of related elements like tree item siblings.\n GROUP = 'group',\n\n // ARIA role for a listbox.\n LISTBOX = 'listbox',\n\n // ARIA role for a popup menu.\n MENU = 'menu',\n\n // ARIA role for menu item elements.\n MENUITEM = 'menuitem',\n // ARIA role for a checkbox box element inside a menu.\n MENUITEMCHECKBOX = 'menuitemcheckbox',\n // ARIA role for option items that are children of combobox, listbox, menu,\n // radiogroup, or tree elements.\n OPTION = 'option',\n // ARIA role for ignorable cosmetic elements with no semantic significance.\n PRESENTATION = 'presentation',\n\n // ARIA role for a row of cells in a grid.\n ROW = 'row',\n // ARIA role for a tree.\n TREE = 'tree',\n\n // ARIA role for a tree item that sometimes may be expanded or collapsed.\n TREEITEM = 'treeitem'\n}\n\n/**\n * ARIA states and properties.\n * Copied from Closure's goog.a11y.aria.State\n *\n * @alias Blockly.utils.aria.State\n */\nexport enum State {\n // ARIA property for setting the currently active descendant of an element,\n // for example the selected item in a list box. Value: ID of an element.\n ACTIVEDESCENDANT = 'activedescendant',\n // ARIA property defines the total number of columns in a table, grid, or\n // treegrid.\n // Value: integer.\n COLCOUNT = 'colcount',\n // ARIA state for a disabled item. Value: one of {true, false}.\n DISABLED = 'disabled',\n\n // ARIA state for setting whether the element like a tree node is expanded.\n // Value: one of {true, false, undefined}.\n EXPANDED = 'expanded',\n\n // ARIA state indicating that the entered value does not conform. Value:\n // one of {false, true, 'grammar', 'spelling'}\n INVALID = 'invalid',\n\n // ARIA property that provides a label to override any other text, value, or\n // contents used to describe this element. Value: string.\n LABEL = 'label',\n // ARIA property for setting the element which labels another element.\n // Value: space-separated IDs of elements.\n LABELLEDBY = 'labelledby',\n\n // ARIA property for setting the level of an element in the hierarchy.\n // Value: integer.\n LEVEL = 'level',\n // ARIA property indicating if the element is horizontal or vertical.\n // Value: one of {'vertical', 'horizontal'}.\n ORIENTATION = 'orientation',\n\n // ARIA property that defines an element's number of position in a list.\n // Value: integer.\n POSINSET = 'posinset',\n\n // ARIA property defines the total number of rows in a table, grid, or\n // treegrid.\n // Value: integer.\n ROWCOUNT = 'rowcount',\n\n // ARIA state for setting the currently selected item in the list.\n // Value: one of {true, false, undefined}.\n SELECTED = 'selected',\n // ARIA property defining the number of items in a list. Value: integer.\n SETSIZE = 'setsize',\n\n // ARIA property for slider maximum value. Value: number.\n VALUEMAX = 'valuemax',\n\n // ARIA property for slider minimum value. Value: number.\n VALUEMIN = 'valuemin'\n}\n\n/**\n * Sets the role of an element.\n *\n * Similar to Closure's goog.a11y.aria\n *\n * @param element DOM node to set role of.\n * @param roleName Role name.\n * @alias Blockly.utils.aria.setRole\n */\nexport function setRole(element: Element, roleName: Role) {\n element.setAttribute(ROLE_ATTRIBUTE, roleName);\n}\n\n/**\n * Sets the state or property of an element.\n * Copied from Closure's goog.a11y.aria\n *\n * @param element DOM node where we set state.\n * @param stateName State attribute being set.\n * Automatically adds prefix 'aria-' to the state name if the attribute is\n * not an extra attribute.\n * @param value Value for the state attribute.\n * @alias Blockly.utils.aria.setState\n */\nexport function setState(\n element: Element, stateName: State, value: string|boolean|number|string[]) {\n if (Array.isArray(value)) {\n value = value.join(' ');\n }\n const attrStateName = ARIA_PREFIX + stateName;\n element.setAttribute(attrStateName, `${value}`);\n}\n","/**\n * @license\n * Copyright 2012 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Dropdown input field. Used for editable titles and variables.\n * In the interests of a consistent UI, the toolbox shares some functions and\n * properties with the context menu.\n *\n * @class\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.FieldDropdown');\n\nimport type {BlockSvg} from './block_svg.js';\nimport * as dropDownDiv from './dropdowndiv.js';\nimport {FieldConfig, Field, UnattachedFieldError} from './field.js';\nimport * as fieldRegistry from './field_registry.js';\nimport {Menu} from './menu.js';\nimport {MenuItem} from './menuitem.js';\nimport * as aria from './utils/aria.js';\nimport {Coordinate} from './utils/coordinate.js';\nimport * as dom from './utils/dom.js';\nimport * as parsing from './utils/parsing.js';\nimport type {Sentinel} from './utils/sentinel.js';\nimport * as utilsString from './utils/string.js';\nimport {Svg} from './utils/svg.js';\nimport * as userAgent from './utils/useragent.js';\n\n\n/**\n * Class for an editable dropdown field.\n *\n * @alias Blockly.FieldDropdown\n */\nexport class FieldDropdown extends Field {\n /** Horizontal distance that a checkmark overhangs the dropdown. */\n static CHECKMARK_OVERHANG = 25;\n\n /**\n * Maximum height of the dropdown menu, as a percentage of the viewport\n * height.\n */\n static MAX_MENU_HEIGHT_VH = 0.45;\n static ARROW_CHAR: AnyDuringMigration;\n\n /** A reference to the currently selected menu item. */\n private selectedMenuItem_: MenuItem|null = null;\n\n /** The dropdown menu. */\n protected menu_: Menu|null = null;\n\n /**\n * SVG image element if currently selected option is an image, or null.\n */\n private imageElement_: SVGImageElement|null = null;\n\n /** Tspan based arrow element. */\n private arrow_: SVGTSpanElement|null = null;\n\n /** SVG based arrow element. */\n private svgArrow_: SVGElement|null = null;\n\n /**\n * Serializable fields are saved by the serializer, non-serializable fields\n * are not. Editable fields should also be serializable.\n */\n override SERIALIZABLE = true;\n\n /** Mouse cursor style when over the hotspot that initiates the editor. */\n override CURSOR = 'default';\n // TODO(b/109816955): remove '!', see go/strict-prop-init-fix.\n protected menuGenerator_!: AnyDuringMigration[][]|\n ((this: FieldDropdown) => AnyDuringMigration[][]);\n\n /** A cache of the most recently generated options. */\n // AnyDuringMigration because: Type 'null' is not assignable to type\n // 'string[][]'.\n private generatedOptions_: string[][] = null as AnyDuringMigration;\n\n /**\n * The prefix field label, of common words set after options are trimmed.\n *\n * @internal\n */\n override prefixField: string|null = null;\n\n /**\n * The suffix field label, of common words set after options are trimmed.\n *\n * @internal\n */\n override suffixField: string|null = null;\n // TODO(b/109816955): remove '!', see go/strict-prop-init-fix.\n private selectedOption_!: Array;\n override clickTarget_: AnyDuringMigration;\n\n /**\n * @param menuGenerator A non-empty array of options for a dropdown list, or a\n * function which generates these options. Also accepts Field.SKIP_SETUP\n * if you wish to skip setup (only used by subclasses that want to handle\n * configuration and setting the field value after their own constructors\n * have run).\n * @param opt_validator A function that is called to validate changes to the\n * field's value. Takes in a language-neutral dropdown option & returns a\n * validated language-neutral dropdown option, or null to abort the\n * change.\n * @param opt_config A map of options used to configure the field.\n * See the [field creation documentation]{@link\n * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/dropdown#creation}\n * for a list of properties this parameter supports.\n * @throws {TypeError} If `menuGenerator` options are incorrectly structured.\n */\n constructor(\n menuGenerator: AnyDuringMigration[][]|Function|Sentinel,\n opt_validator?: Function, opt_config?: FieldConfig) {\n super(Field.SKIP_SETUP);\n\n // If we pass SKIP_SETUP, don't do *anything* with the menu generator.\n if (menuGenerator === Field.SKIP_SETUP) {\n return;\n }\n\n if (Array.isArray(menuGenerator)) {\n validateOptions(menuGenerator);\n // Deep copy the option structure so it doesn't change.\n menuGenerator = JSON.parse(JSON.stringify(menuGenerator));\n }\n\n /**\n * An array of options for a dropdown list,\n * or a function which generates these options.\n */\n this.menuGenerator_ = menuGenerator as AnyDuringMigration[][] |\n ((this: FieldDropdown) => AnyDuringMigration[][]);\n\n this.trimOptions_();\n\n /**\n * The currently selected option. The field is initialized with the\n * first option selected.\n */\n this.selectedOption_ = this.getOptions(false)[0];\n\n if (opt_config) {\n this.configure_(opt_config);\n }\n this.setValue(this.selectedOption_[1]);\n if (opt_validator) {\n this.setValidator(opt_validator);\n }\n }\n\n /**\n * Sets the field's value based on the given XML element. Should only be\n * called by Blockly.Xml.\n *\n * @param fieldElement The element containing info about the field's state.\n * @internal\n */\n override fromXml(fieldElement: Element) {\n if (this.isOptionListDynamic()) {\n this.getOptions(false);\n }\n this.setValue(fieldElement.textContent);\n }\n\n /**\n * Sets the field's value based on the given state.\n *\n * @param state The state to apply to the dropdown field.\n * @internal\n */\n override loadState(state: AnyDuringMigration) {\n if (this.loadLegacyState(FieldDropdown, state)) {\n return;\n }\n if (this.isOptionListDynamic()) {\n this.getOptions(false);\n }\n this.setValue(state);\n }\n\n /**\n * Create the block UI for this dropdown.\n *\n * @internal\n */\n override initView() {\n if (this.shouldAddBorderRect_()) {\n this.createBorderRect_();\n } else {\n this.clickTarget_ = (this.sourceBlock_ as BlockSvg).getSvgRoot();\n }\n this.createTextElement_();\n\n this.imageElement_ = dom.createSvgElement(Svg.IMAGE, {}, this.fieldGroup_);\n\n if (this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW) {\n this.createSVGArrow_();\n } else {\n this.createTextArrow_();\n }\n\n if (this.borderRect_) {\n dom.addClass(this.borderRect_, 'blocklyDropdownRect');\n }\n }\n\n /**\n * Whether or not the dropdown should add a border rect.\n *\n * @returns True if the dropdown field should add a border rect.\n */\n protected shouldAddBorderRect_(): boolean {\n return !this.getConstants()!.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW ||\n this.getConstants()!.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW &&\n !this.getSourceBlock()?.isShadow();\n }\n\n /** Create a tspan based arrow. */\n protected createTextArrow_() {\n this.arrow_ = dom.createSvgElement(Svg.TSPAN, {}, this.textElement_);\n this.arrow_!.appendChild(document.createTextNode(\n this.getSourceBlock()?.RTL ? FieldDropdown.ARROW_CHAR + ' ' :\n ' ' + FieldDropdown.ARROW_CHAR));\n if (this.getSourceBlock()?.RTL) {\n // AnyDuringMigration because: Argument of type 'SVGTSpanElement | null'\n // is not assignable to parameter of type 'Node'.\n this.getTextElement().insertBefore(\n this.arrow_ as AnyDuringMigration, this.textContent_);\n } else {\n // AnyDuringMigration because: Argument of type 'SVGTSpanElement | null'\n // is not assignable to parameter of type 'Node'.\n this.getTextElement().appendChild(this.arrow_ as AnyDuringMigration);\n }\n }\n\n /** Create an SVG based arrow. */\n protected createSVGArrow_() {\n this.svgArrow_ = dom.createSvgElement(\n Svg.IMAGE, {\n 'height': this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_SIZE + 'px',\n 'width': this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_SIZE + 'px',\n },\n this.fieldGroup_);\n this.svgArrow_!.setAttributeNS(\n dom.XLINK_NS, 'xlink:href',\n this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_DATAURI);\n }\n\n /**\n * Create a dropdown menu under the text.\n *\n * @param opt_e Optional mouse event that triggered the field to open, or\n * undefined if triggered programmatically.\n */\n protected override showEditor_(opt_e?: Event) {\n const block = this.getSourceBlock();\n if (!block) {\n throw new UnattachedFieldError();\n }\n this.dropdownCreate_();\n // AnyDuringMigration because: Property 'clientX' does not exist on type\n // 'Event'.\n if (opt_e && typeof (opt_e as AnyDuringMigration).clientX === 'number') {\n // AnyDuringMigration because: Property 'clientY' does not exist on type\n // 'Event'. AnyDuringMigration because: Property 'clientX' does not exist\n // on type 'Event'.\n this.menu_!.openingCoords = new Coordinate(\n (opt_e as AnyDuringMigration).clientX,\n (opt_e as AnyDuringMigration).clientY);\n } else {\n this.menu_!.openingCoords = null;\n }\n\n // Remove any pre-existing elements in the dropdown.\n dropDownDiv.clearContent();\n // Element gets created in render.\n const menuElement = this.menu_!.render(dropDownDiv.getContentDiv());\n dom.addClass(menuElement, 'blocklyDropdownMenu');\n\n if (this.getConstants()!.FIELD_DROPDOWN_COLOURED_DIV) {\n const primaryColour =\n block.isShadow() ? block.getParent()!.getColour() : block.getColour();\n const borderColour = block.isShadow() ?\n (block.getParent() as BlockSvg).style.colourTertiary :\n (this.sourceBlock_ as BlockSvg).style.colourTertiary;\n if (!borderColour) {\n throw new Error(\n 'The renderer did not properly initialize the block style');\n }\n dropDownDiv.setColour(primaryColour, borderColour);\n }\n\n dropDownDiv.showPositionedByField(this, this.dropdownDispose_.bind(this));\n\n // Focusing needs to be handled after the menu is rendered and positioned.\n // Otherwise it will cause a page scroll to get the misplaced menu in\n // view. See issue #1329.\n this.menu_!.focus();\n\n if (this.selectedMenuItem_) {\n this.menu_!.setHighlighted(this.selectedMenuItem_);\n }\n\n this.applyColour();\n }\n\n /** Create the dropdown editor. */\n private dropdownCreate_() {\n const block = this.getSourceBlock();\n if (!block) {\n throw new UnattachedFieldError();\n }\n const menu = new Menu();\n menu.setRole(aria.Role.LISTBOX);\n this.menu_ = menu;\n\n const options = this.getOptions(false);\n this.selectedMenuItem_ = null;\n for (let i = 0; i < options.length; i++) {\n let content = options[i][0]; // Human-readable text or image.\n const value = options[i][1]; // Language-neutral value.\n if (typeof content === 'object') {\n // An image, not text.\n const image = new Image(content['width'], content['height']);\n image.src = content['src'];\n image.alt = content['alt'] || '';\n content = image;\n }\n const menuItem = new MenuItem(content, value);\n menuItem.setRole(aria.Role.OPTION);\n menuItem.setRightToLeft(block.RTL);\n menuItem.setCheckable(true);\n menu.addChild(menuItem);\n menuItem.setChecked(value === this.value_);\n if (value === this.value_) {\n this.selectedMenuItem_ = menuItem;\n }\n menuItem.onAction(this.handleMenuActionEvent_, this);\n }\n }\n\n /**\n * Disposes of events and DOM-references belonging to the dropdown editor.\n */\n private dropdownDispose_() {\n if (this.menu_) {\n this.menu_.dispose();\n }\n this.menu_ = null;\n this.selectedMenuItem_ = null;\n this.applyColour();\n }\n\n /**\n * Handle an action in the dropdown menu.\n *\n * @param menuItem The MenuItem selected within menu.\n */\n private handleMenuActionEvent_(menuItem: MenuItem) {\n dropDownDiv.hideIfOwner(this, true);\n this.onItemSelected_(this.menu_ as Menu, menuItem);\n }\n\n /**\n * Handle the selection of an item in the dropdown menu.\n *\n * @param menu The Menu component clicked.\n * @param menuItem The MenuItem selected within menu.\n */\n protected onItemSelected_(menu: Menu, menuItem: MenuItem) {\n this.setValue(menuItem.getValue());\n }\n\n /**\n * Factor out common words in statically defined options.\n * Create prefix and/or suffix labels.\n */\n private trimOptions_() {\n const options = this.menuGenerator_;\n if (!Array.isArray(options)) {\n return;\n }\n let hasImages = false;\n\n // Localize label text and image alt text.\n for (let i = 0; i < options.length; i++) {\n const label = options[i][0];\n if (typeof label === 'string') {\n options[i][0] = parsing.replaceMessageReferences(label);\n } else {\n if (label.alt !== null) {\n options[i][0].alt = parsing.replaceMessageReferences(label.alt);\n }\n hasImages = true;\n }\n }\n if (hasImages || options.length < 2) {\n return; // Do nothing if too few items or at least one label is an image.\n }\n const strings = [];\n for (let i = 0; i < options.length; i++) {\n strings.push(options[i][0]);\n }\n const shortest = utilsString.shortestStringLength(strings);\n const prefixLength = utilsString.commonWordPrefix(strings, shortest);\n const suffixLength = utilsString.commonWordSuffix(strings, shortest);\n if (!prefixLength && !suffixLength) {\n return;\n }\n if (shortest <= prefixLength + suffixLength) {\n // One or more strings will entirely vanish if we proceed. Abort.\n return;\n }\n if (prefixLength) {\n this.prefixField = strings[0].substring(0, prefixLength - 1);\n }\n if (suffixLength) {\n this.suffixField = strings[0].substr(1 - suffixLength);\n }\n\n this.menuGenerator_ =\n FieldDropdown.applyTrim_(options, prefixLength, suffixLength);\n }\n\n /**\n * @returns True if the option list is generated by a function.\n * Otherwise false.\n */\n isOptionListDynamic(): boolean {\n return typeof this.menuGenerator_ === 'function';\n }\n\n /**\n * Return a list of the options for this dropdown.\n *\n * @param opt_useCache For dynamic options, whether or not to use the cached\n * options or to re-generate them.\n * @returns A non-empty array of option tuples:\n * (human-readable text or image, language-neutral name).\n * @throws {TypeError} If generated options are incorrectly structured.\n */\n getOptions(opt_useCache?: boolean): AnyDuringMigration[][] {\n if (this.isOptionListDynamic()) {\n if (!this.generatedOptions_ || !opt_useCache) {\n // AnyDuringMigration because: Property 'call' does not exist on type\n // 'any[][] | ((this: FieldDropdown) => any[][])'.\n this.generatedOptions_ =\n (this.menuGenerator_ as AnyDuringMigration).call(this);\n validateOptions(this.generatedOptions_);\n }\n return this.generatedOptions_;\n }\n return this.menuGenerator_ as string[][];\n }\n\n /**\n * Ensure that the input value is a valid language-neutral option.\n *\n * @param opt_newValue The input value.\n * @returns A valid language-neutral option, or null if invalid.\n */\n protected override doClassValidation_(opt_newValue?: AnyDuringMigration):\n string|null {\n let isValueValid = false;\n const options = this.getOptions(true);\n for (let i = 0, option; option = options[i]; i++) {\n // Options are tuples of human-readable text and language-neutral values.\n if (option[1] === opt_newValue) {\n isValueValid = true;\n break;\n }\n }\n if (!isValueValid) {\n if (this.sourceBlock_) {\n console.warn(\n 'Cannot set the dropdown\\'s value to an unavailable option.' +\n ' Block type: ' + this.sourceBlock_.type +\n ', Field name: ' + this.name + ', Value: ' + opt_newValue);\n }\n return null;\n }\n return opt_newValue as string;\n }\n\n /**\n * Update the value of this dropdown field.\n *\n * @param newValue The value to be saved. The default validator guarantees\n * that this is one of the valid dropdown options.\n */\n protected override doValueUpdate_(newValue: AnyDuringMigration) {\n super.doValueUpdate_(newValue);\n const options = this.getOptions(true);\n for (let i = 0, option; option = options[i]; i++) {\n if (option[1] === this.value_) {\n this.selectedOption_ = option;\n }\n }\n }\n\n /**\n * Updates the dropdown arrow to match the colour/style of the block.\n *\n * @internal\n */\n override applyColour() {\n const style = (this.sourceBlock_ as BlockSvg).style;\n if (!style.colourSecondary) {\n throw new Error(\n 'The renderer did not properly initialize the block style');\n }\n if (!style.colourTertiary) {\n throw new Error(\n 'The renderer did not properly initialize the block style');\n }\n if (this.borderRect_) {\n this.borderRect_.setAttribute('stroke', style.colourTertiary);\n if (this.menu_) {\n this.borderRect_.setAttribute('fill', style.colourTertiary);\n } else {\n this.borderRect_.setAttribute('fill', 'transparent');\n }\n }\n // Update arrow's colour.\n if (this.sourceBlock_ && this.arrow_) {\n if (this.sourceBlock_.isShadow()) {\n this.arrow_.style.fill = style.colourSecondary;\n } else {\n this.arrow_.style.fill = style.colourPrimary;\n }\n }\n }\n\n /** Draws the border with the correct width. */\n protected override render_() {\n // Hide both elements.\n this.getTextContent().nodeValue = '';\n this.imageElement_!.style.display = 'none';\n\n // Show correct element.\n const option = this.selectedOption_ && this.selectedOption_[0];\n if (option && typeof option === 'object') {\n this.renderSelectedImage_((option));\n } else {\n this.renderSelectedText_();\n }\n\n this.positionBorderRect_();\n }\n\n /**\n * Renders the selected option, which must be an image.\n *\n * @param imageJson Selected option that must be an image.\n */\n private renderSelectedImage_(imageJson: ImageProperties) {\n const block = this.getSourceBlock();\n if (!block) {\n throw new UnattachedFieldError();\n }\n this.imageElement_!.style.display = '';\n this.imageElement_!.setAttributeNS(\n dom.XLINK_NS, 'xlink:href', imageJson.src);\n // AnyDuringMigration because: Argument of type 'number' is not assignable\n // to parameter of type 'string'.\n this.imageElement_!.setAttribute(\n 'height', imageJson.height as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type 'number' is not assignable\n // to parameter of type 'string'.\n this.imageElement_!.setAttribute(\n 'width', imageJson.width as AnyDuringMigration);\n\n const imageHeight = Number(imageJson.height);\n const imageWidth = Number(imageJson.width);\n\n // Height and width include the border rect.\n const hasBorder = !!this.borderRect_;\n const height = Math.max(\n hasBorder ? this.getConstants()!.FIELD_DROPDOWN_BORDER_RECT_HEIGHT : 0,\n imageHeight + IMAGE_Y_PADDING);\n const xPadding =\n hasBorder ? this.getConstants()!.FIELD_BORDER_RECT_X_PADDING : 0;\n let arrowWidth = 0;\n if (this.svgArrow_) {\n arrowWidth = this.positionSVGArrow_(\n imageWidth + xPadding,\n height / 2 - this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_SIZE / 2);\n } else {\n arrowWidth = dom.getFastTextWidth(\n this.arrow_ as SVGTSpanElement,\n this.getConstants()!.FIELD_TEXT_FONTSIZE,\n this.getConstants()!.FIELD_TEXT_FONTWEIGHT,\n this.getConstants()!.FIELD_TEXT_FONTFAMILY);\n }\n this.size_.width = imageWidth + arrowWidth + xPadding * 2;\n this.size_.height = height;\n\n let arrowX = 0;\n if (block.RTL) {\n const imageX = xPadding + arrowWidth;\n this.imageElement_!.setAttribute('x', imageX.toString());\n } else {\n arrowX = imageWidth + arrowWidth;\n this.getTextElement().setAttribute('text-anchor', 'end');\n this.imageElement_!.setAttribute('x', xPadding.toString());\n }\n this.imageElement_!.setAttribute(\n 'y', (height / 2 - imageHeight / 2).toString());\n\n this.positionTextElement_(arrowX + xPadding, imageWidth + arrowWidth);\n }\n\n /** Renders the selected option, which must be text. */\n private renderSelectedText_() {\n // Retrieves the selected option to display through getText_.\n this.getTextContent().nodeValue = this.getDisplayText_();\n const textElement = this.getTextElement();\n dom.addClass(textElement, 'blocklyDropdownText');\n textElement.setAttribute('text-anchor', 'start');\n\n // Height and width include the border rect.\n const hasBorder = !!this.borderRect_;\n const height = Math.max(\n hasBorder ? this.getConstants()!.FIELD_DROPDOWN_BORDER_RECT_HEIGHT : 0,\n this.getConstants()!.FIELD_TEXT_HEIGHT);\n const textWidth = dom.getFastTextWidth(\n this.getTextElement(), this.getConstants()!.FIELD_TEXT_FONTSIZE,\n this.getConstants()!.FIELD_TEXT_FONTWEIGHT,\n this.getConstants()!.FIELD_TEXT_FONTFAMILY);\n const xPadding =\n hasBorder ? this.getConstants()!.FIELD_BORDER_RECT_X_PADDING : 0;\n let arrowWidth = 0;\n if (this.svgArrow_) {\n arrowWidth = this.positionSVGArrow_(\n textWidth + xPadding,\n height / 2 - this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_SIZE / 2);\n }\n this.size_.width = textWidth + arrowWidth + xPadding * 2;\n this.size_.height = height;\n\n this.positionTextElement_(xPadding, textWidth);\n }\n\n /**\n * Position a drop-down arrow at the appropriate location at render-time.\n *\n * @param x X position the arrow is being rendered at, in px.\n * @param y Y position the arrow is being rendered at, in px.\n * @returns Amount of space the arrow is taking up, in px.\n */\n private positionSVGArrow_(x: number, y: number): number {\n if (!this.svgArrow_) {\n return 0;\n }\n const block = this.getSourceBlock();\n if (!block) {\n throw new UnattachedFieldError();\n }\n const hasBorder = !!this.borderRect_;\n const xPadding =\n hasBorder ? this.getConstants()!.FIELD_BORDER_RECT_X_PADDING : 0;\n const textPadding = this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_PADDING;\n const svgArrowSize = this.getConstants()!.FIELD_DROPDOWN_SVG_ARROW_SIZE;\n const arrowX = block.RTL ? xPadding : x + textPadding;\n this.svgArrow_.setAttribute(\n 'transform', 'translate(' + arrowX + ',' + y + ')');\n return svgArrowSize + textPadding;\n }\n\n /**\n * Use the `getText_` developer hook to override the field's text\n * representation. Get the selected option text. If the selected option is an\n * image we return the image alt text.\n *\n * @returns Selected option text.\n */\n protected override getText_(): string|null {\n if (!this.selectedOption_) {\n return null;\n }\n const option = this.selectedOption_[0];\n if (typeof option === 'object') {\n return option['alt'];\n }\n return option;\n }\n\n /**\n * Construct a FieldDropdown from a JSON arg object.\n *\n * @param options A JSON object with options (options).\n * @returns The new field instance.\n * @nocollapse\n * @internal\n */\n static fromJson(options: FieldDropdownFromJsonConfig): FieldDropdown {\n if (!options.options) {\n throw new Error(\n 'options are required for the dropdown field. The ' +\n 'options property must be assigned an array of ' +\n '[humanReadableValue, languageNeutralValue] tuples.');\n }\n // `this` might be a subclass of FieldDropdown if that class doesn't\n // override the static fromJson method.\n return new this(options.options, undefined, options);\n }\n\n /**\n * Use the calculated prefix and suffix lengths to trim all of the options in\n * the given array.\n *\n * @param options Array of option tuples:\n * (human-readable text or image, language-neutral name).\n * @param prefixLength The length of the common prefix.\n * @param suffixLength The length of the common suffix\n * @returns A new array with all of the option text trimmed.\n */\n static applyTrim_(\n options: AnyDuringMigration[][], prefixLength: number,\n suffixLength: number): AnyDuringMigration[][] {\n const newOptions = [];\n // Remove the prefix and suffix from the options.\n for (let i = 0; i < options.length; i++) {\n let text = options[i][0];\n const value = options[i][1];\n text = text.substring(prefixLength, text.length - suffixLength);\n newOptions[i] = [text, value];\n }\n return newOptions;\n }\n}\n\n/**\n * Definition of a human-readable image dropdown option.\n */\nexport interface ImageProperties {\n src: string;\n alt: string;\n width: number;\n height: number;\n}\n\n/**\n * An individual option in the dropdown menu. The first element is the human-\n * readable value (text or image), and the second element is the language-\n * neutral value.\n */\nexport type MenuOption = [string | ImageProperties, string];\n\n/**\n * fromJson config for the dropdown field.\n */\nexport interface FieldDropdownFromJsonConfig extends FieldConfig {\n options?: MenuOption[];\n}\n\n/**\n * The y offset from the top of the field to the top of the image, if an image\n * is selected.\n */\nconst IMAGE_Y_OFFSET = 5;\n\n/** The total vertical padding above and below an image. */\nconst IMAGE_Y_PADDING: number = IMAGE_Y_OFFSET * 2;\n\n/** Android can't (in 2014) display \"▾\", so use \"▼\" instead. */\nFieldDropdown.ARROW_CHAR = userAgent.ANDROID ? '▼' : '▾';\n\n/**\n * Validates the data structure to be processed as an options list.\n *\n * @param options The proposed dropdown options.\n * @throws {TypeError} If proposed options are incorrectly structured.\n */\nfunction validateOptions(options: AnyDuringMigration) {\n if (!Array.isArray(options)) {\n throw TypeError('FieldDropdown options must be an array.');\n }\n if (!options.length) {\n throw TypeError('FieldDropdown options must not be an empty array.');\n }\n let foundError = false;\n for (let i = 0; i < options.length; i++) {\n const tuple = options[i];\n if (!Array.isArray(tuple)) {\n foundError = true;\n console.error(\n 'Invalid option[' + i + ']: Each FieldDropdown option must be an ' +\n 'array. Found: ',\n tuple);\n } else if (typeof tuple[1] !== 'string') {\n foundError = true;\n console.error(\n 'Invalid option[' + i + ']: Each FieldDropdown option id must be ' +\n 'a string. Found ' + tuple[1] + ' in: ',\n tuple);\n } else if (\n tuple[0] && typeof tuple[0] !== 'string' &&\n typeof tuple[0].src !== 'string') {\n foundError = true;\n console.error(\n 'Invalid option[' + i + ']: Each FieldDropdown option must have a ' +\n 'string label or image description. Found' + tuple[0] + ' in: ',\n tuple);\n }\n }\n if (foundError) {\n throw TypeError('Found invalid FieldDropdown options.');\n }\n}\n\nfieldRegistry.register('field_dropdown', FieldDropdown);\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods for objects.\n *\n * @namespace Blockly.utils.object\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.object');\n\nimport * as deprecation from './deprecation.js';\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * @param childCtor Child class.\n * @param parentCtor Parent class.\n * @suppress {strictMissingProperties} superClass_ is not defined on Function.\n * @deprecated No longer provided by Blockly.\n * @alias Blockly.utils.object.inherits\n */\nexport function inherits(childCtor: Function, parentCtor: Function) {\n deprecation.warn('Blockly.utils.object.inherits', 'version 9', 'version 10');\n // Set a .superClass_ property so that methods can call parent methods\n // without hard-coding the parent class name.\n // Could be replaced by ES6's super().\n // AnyDuringMigration because: Property 'superClass_' does not exist on type\n // 'Function'.\n (childCtor as AnyDuringMigration).superClass_ = parentCtor.prototype;\n\n // Link the child class to the parent class so that static methods inherit.\n Object.setPrototypeOf(childCtor, parentCtor);\n\n // Replace the child constructor's prototype object with an instance\n // of the parent class.\n childCtor.prototype = Object.create(parentCtor.prototype);\n childCtor.prototype.constructor = childCtor;\n}\n// Alternatively, one could use this instead:\n// Object.setPrototypeOf(childCtor.prototype, parentCtor.prototype);\n\n/**\n * Copies all the members of a source object to a target object.\n *\n * @param target Target.\n * @param source Source.\n * @deprecated Use the built-in **Object.assign** instead.\n * @alias Blockly.utils.object.mixin\n */\nexport function mixin(target: AnyDuringMigration, source: AnyDuringMigration) {\n deprecation.warn(\n 'Blockly.utils.object.mixin', 'May 2022', 'May 2023', 'Object.assign');\n for (const x in source) {\n target[x] = source[x];\n }\n}\n\n/**\n * Complete a deep merge of all members of a source object with a target object.\n *\n * @param target Target.\n * @param source Source.\n * @returns The resulting object.\n * @alias Blockly.utils.object.deepMerge\n */\nexport function deepMerge(\n target: AnyDuringMigration,\n source: AnyDuringMigration): AnyDuringMigration {\n for (const x in source) {\n if (source[x] !== null && typeof source[x] === 'object') {\n target[x] = deepMerge(target[x] || Object.create(null), source[x]);\n } else {\n target[x] = source[x];\n }\n }\n return target;\n}\n\n/**\n * Returns an array of a given object's own enumerable property values.\n *\n * @param obj Object containing values.\n * @returns Array of values.\n * @deprecated Use the built-in **Object.values** instead.\n * @alias Blockly.utils.object.values\n */\nexport function values(obj: AnyDuringMigration): AnyDuringMigration[] {\n deprecation.warn(\n 'Blockly.utils.object.values', 'version 9', 'version 10',\n 'Object.values');\n return Object.values(obj);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility functions for the toolbox and flyout.\n *\n * @namespace Blockly.utils.toolbox\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.toolbox');\n\nimport type {ConnectionState} from '../serialization/blocks.js';\nimport type {CssConfig as CategoryCssConfig} from '../toolbox/category.js';\nimport type {CssConfig as SeparatorCssConfig} from '../toolbox/separator.js';\nimport * as Xml from '../xml.js';\n\n\n/**\n * The information needed to create a block in the toolbox.\n * Note that disabled has a different type for backwards compatibility.\n *\n * @alias Blockly.utils.toolbox.BlockInfo\n */\nexport interface BlockInfo {\n kind: string;\n blockxml?: string|Node;\n type?: string;\n gap?: string|number;\n disabled?: string|boolean;\n enabled?: boolean;\n id?: string;\n x?: number;\n y?: number;\n collapsed?: boolean;\n inline?: boolean;\n data?: string;\n extraState?: AnyDuringMigration;\n icons?: {[key: string]: AnyDuringMigration};\n fields?: {[key: string]: AnyDuringMigration};\n inputs?: {[key: string]: ConnectionState};\n next?: ConnectionState;\n}\n\n/**\n * The information needed to create a separator in the toolbox.\n *\n * @alias Blockly.utils.toolbox.SeparatorInfo\n */\nexport interface SeparatorInfo {\n kind: string;\n id: string|undefined;\n gap: number|undefined;\n cssconfig: SeparatorCssConfig|undefined;\n}\n\n/**\n * The information needed to create a button in the toolbox.\n *\n * @alias Blockly.utils.toolbox.ButtonInfo\n */\nexport interface ButtonInfo {\n kind: string;\n text: string;\n callbackkey: string;\n}\n\n/**\n * The information needed to create a label in the toolbox.\n *\n * @alias Blockly.utils.toolbox.LabelInfo\n */\nexport interface LabelInfo {\n kind: string;\n text: string;\n id: string|undefined;\n}\n\n/**\n * The information needed to create either a button or a label in the flyout.\n *\n * @alias Blockly.utils.toolbox.ButtonOrLabelInfo\n */\nexport type ButtonOrLabelInfo = ButtonInfo|LabelInfo;\n\n/**\n * The information needed to create a category in the toolbox.\n *\n * @alias Blockly.utils.toolbox.StaticCategoryInfo\n */\nexport interface StaticCategoryInfo {\n kind: string;\n name: string;\n contents: ToolboxItemInfo[];\n id: string|undefined;\n categorystyle: string|undefined;\n colour: string|undefined;\n cssconfig: CategoryCssConfig|undefined;\n hidden: string|undefined;\n}\n\n/**\n * The information needed to create a custom category.\n *\n * @alias Blockly.utils.toolbox.DynamicCategoryInfo\n */\nexport interface DynamicCategoryInfo {\n kind: string;\n custom: string;\n id: string|undefined;\n categorystyle: string|undefined;\n colour: string|undefined;\n cssconfig: CategoryCssConfig|undefined;\n hidden: string|undefined;\n}\n\n/**\n * The information needed to create either a dynamic or static category.\n *\n * @alias Blockly.utils.toolbox.CategoryInfo\n */\nexport type CategoryInfo = StaticCategoryInfo|DynamicCategoryInfo;\n\n/**\n * Any information that can be used to create an item in the toolbox.\n *\n * @alias Blockly.utils.toolbox.ToolboxItemInfo\n */\nexport type ToolboxItemInfo = FlyoutItemInfo|StaticCategoryInfo;\n\n/**\n * All the different types that can be displayed in a flyout.\n *\n * @alias Blockly.utils.toolbox.FlyoutItemInfo\n */\nexport type FlyoutItemInfo =\n BlockInfo|SeparatorInfo|ButtonInfo|LabelInfo|DynamicCategoryInfo;\n\n/**\n * The JSON definition of a toolbox.\n *\n * @alias Blockly.utils.toolbox.ToolboxInfo\n */\nexport interface ToolboxInfo {\n kind?: string;\n contents: ToolboxItemInfo[];\n}\n\n/**\n * An array holding flyout items.\n *\n * @alias Blockly.utils.toolbox.FlyoutItemInfoArray\n */\nexport type FlyoutItemInfoArray = FlyoutItemInfo[];\n\n/**\n * All of the different types that can create a toolbox.\n *\n * @alias Blockly.utils.toolbox.ToolboxDefinition\n */\nexport type ToolboxDefinition = Node|ToolboxInfo|string;\n\n/**\n * All of the different types that can be used to show items in a flyout.\n *\n * @alias Blockly.utils.toolbox.FlyoutDefinition\n */\nexport type FlyoutDefinition = FlyoutItemInfoArray|NodeList|ToolboxInfo|Node[];\n\n/**\n * The name used to identify a toolbox that has category like items.\n * This only needs to be used if a toolbox wants to be treated like a category\n * toolbox but does not actually contain any toolbox items with the kind\n * 'category'.\n */\nconst CATEGORY_TOOLBOX_KIND = 'categoryToolbox';\n\n/**\n * The name used to identify a toolbox that has no categories and is displayed\n * as a simple flyout displaying blocks, buttons, or labels.\n */\nconst FLYOUT_TOOLBOX_KIND = 'flyoutToolbox';\n\n/**\n * Position of the toolbox and/or flyout relative to the workspace.\n *\n * @alias Blockly.utils.toolbox.Position\n */\nexport enum Position {\n TOP,\n BOTTOM,\n LEFT,\n RIGHT\n}\n\n/**\n * Converts the toolbox definition into toolbox JSON.\n *\n * @param toolboxDef The definition of the toolbox in one of its many forms.\n * @returns Object holding information for creating a toolbox.\n * @alias Blockly.utils.toolbox.convertToolboxDefToJson\n * @internal\n */\nexport function convertToolboxDefToJson(toolboxDef: ToolboxDefinition|\n null): ToolboxInfo|null {\n if (!toolboxDef) {\n return null;\n }\n\n if (toolboxDef instanceof Element || typeof toolboxDef === 'string') {\n toolboxDef = parseToolboxTree(toolboxDef);\n // AnyDuringMigration because: Argument of type 'Node | null' is not\n // assignable to parameter of type 'Node'.\n toolboxDef = convertToToolboxJson(toolboxDef as AnyDuringMigration);\n }\n\n const toolboxJson = toolboxDef as ToolboxInfo;\n validateToolbox(toolboxJson);\n return toolboxJson;\n}\n\n/**\n * Validates the toolbox JSON fields have been set correctly.\n *\n * @param toolboxJson Object holding information for creating a toolbox.\n * @throws {Error} if the toolbox is not the correct format.\n */\nfunction validateToolbox(toolboxJson: ToolboxInfo) {\n const toolboxKind = toolboxJson['kind'];\n const toolboxContents = toolboxJson['contents'];\n\n if (toolboxKind) {\n if (toolboxKind !== FLYOUT_TOOLBOX_KIND &&\n toolboxKind !== CATEGORY_TOOLBOX_KIND) {\n throw Error(\n 'Invalid toolbox kind ' + toolboxKind + '.' +\n ' Please supply either ' + FLYOUT_TOOLBOX_KIND + ' or ' +\n CATEGORY_TOOLBOX_KIND);\n }\n }\n if (!toolboxContents) {\n throw Error('Toolbox must have a contents attribute.');\n }\n}\n\n/**\n * Converts the flyout definition into a list of flyout items.\n *\n * @param flyoutDef The definition of the flyout in one of its many forms.\n * @returns A list of flyout items.\n * @alias Blockly.utils.toolbox.convertFlyoutDefToJsonArray\n * @internal\n */\nexport function convertFlyoutDefToJsonArray(flyoutDef: FlyoutDefinition|\n null): FlyoutItemInfoArray {\n if (!flyoutDef) {\n return [];\n }\n\n if ((flyoutDef as AnyDuringMigration)['contents']) {\n return (flyoutDef as AnyDuringMigration)['contents'];\n }\n // If it is already in the correct format return the flyoutDef.\n // AnyDuringMigration because: Property 'nodeType' does not exist on type\n // 'Node | FlyoutItemInfo'.\n if (Array.isArray(flyoutDef) && flyoutDef.length > 0 &&\n !((flyoutDef[0]) as AnyDuringMigration).nodeType) {\n // AnyDuringMigration because: Type 'FlyoutItemInfoArray | Node[]' is not\n // assignable to type 'FlyoutItemInfoArray'.\n return flyoutDef as AnyDuringMigration;\n }\n\n // AnyDuringMigration because: Type 'ToolboxItemInfo[] | FlyoutItemInfoArray'\n // is not assignable to type 'FlyoutItemInfoArray'.\n return xmlToJsonArray(flyoutDef as Node[] | NodeList) as AnyDuringMigration;\n}\n\n/**\n * Whether or not the toolbox definition has categories.\n *\n * @param toolboxJson Object holding information for creating a toolbox.\n * @returns True if the toolbox has categories.\n * @alias Blockly.utils.toolbox.hasCategories\n * @internal\n */\nexport function hasCategories(toolboxJson: ToolboxInfo|null): boolean {\n return TEST_ONLY.hasCategoriesInternal(toolboxJson);\n}\n\n/**\n * Private version of hasCategories for stubbing in tests.\n */\nfunction hasCategoriesInternal(toolboxJson: ToolboxInfo|null): boolean {\n if (!toolboxJson) {\n return false;\n }\n\n const toolboxKind = toolboxJson['kind'];\n if (toolboxKind) {\n return toolboxKind === CATEGORY_TOOLBOX_KIND;\n }\n\n const categories = toolboxJson['contents'].filter(function(item) {\n return item['kind'].toUpperCase() === 'CATEGORY';\n });\n return !!categories.length;\n}\n\n/**\n * Whether or not the category is collapsible.\n *\n * @param categoryInfo Object holing information for creating a category.\n * @returns True if the category has subcategories.\n * @alias Blockly.utils.toolbox.isCategoryCollapsible\n * @internal\n */\nexport function isCategoryCollapsible(categoryInfo: CategoryInfo): boolean {\n if (!categoryInfo || !(categoryInfo as AnyDuringMigration)['contents']) {\n return false;\n }\n\n const categories =\n (categoryInfo as AnyDuringMigration)['contents'].filter(function(\n item: AnyDuringMigration) {\n return item['kind'].toUpperCase() === 'CATEGORY';\n });\n return !!categories.length;\n}\n\n/**\n * Parses the provided toolbox definition into a consistent format.\n *\n * @param toolboxDef The definition of the toolbox in one of its many forms.\n * @returns Object holding information for creating a toolbox.\n */\nfunction convertToToolboxJson(toolboxDef: Node): ToolboxInfo {\n const contents = xmlToJsonArray(toolboxDef as Node | Node[]);\n const toolboxJson = {'contents': contents};\n if (toolboxDef instanceof Node) {\n addAttributes(toolboxDef, toolboxJson);\n }\n return toolboxJson;\n}\n\n/**\n * Converts the xml for a toolbox to JSON.\n *\n * @param toolboxDef The definition of the toolbox in one of its many forms.\n * @returns A list of objects in the toolbox.\n */\nfunction xmlToJsonArray(toolboxDef: Node|Node[]|NodeList): FlyoutItemInfoArray|\n ToolboxItemInfo[] {\n const arr = [];\n // If it is a node it will have children.\n // AnyDuringMigration because: Property 'childNodes' does not exist on type\n // 'Node | NodeList | Node[]'.\n let childNodes = (toolboxDef as AnyDuringMigration).childNodes;\n if (!childNodes) {\n // Otherwise the toolboxDef is an array or collection.\n childNodes = toolboxDef;\n }\n for (let i = 0, child; child = childNodes[i]; i++) {\n if (!child.tagName) {\n continue;\n }\n const obj = {};\n const tagName = child.tagName.toUpperCase();\n (obj as AnyDuringMigration)['kind'] = tagName;\n\n // Store the XML for a block.\n if (tagName === 'BLOCK') {\n (obj as AnyDuringMigration)['blockxml'] = child;\n } else if (child.childNodes && child.childNodes.length > 0) {\n // Get the contents of a category\n (obj as AnyDuringMigration)['contents'] = xmlToJsonArray(child);\n }\n\n // Add XML attributes to object\n addAttributes(child, obj);\n arr.push(obj);\n }\n // AnyDuringMigration because: Type '{}[]' is not assignable to type\n // 'ToolboxItemInfo[] | FlyoutItemInfoArray'.\n return arr as AnyDuringMigration;\n}\n\n/**\n * Adds the attributes on the node to the given object.\n *\n * @param node The node to copy the attributes from.\n * @param obj The object to copy the attributes to.\n */\nfunction addAttributes(node: Node, obj: AnyDuringMigration) {\n // AnyDuringMigration because: Property 'attributes' does not exist on type\n // 'Node'.\n for (let j = 0; j < (node as AnyDuringMigration).attributes.length; j++) {\n // AnyDuringMigration because: Property 'attributes' does not exist on type\n // 'Node'.\n const attr = (node as AnyDuringMigration).attributes[j];\n if (attr.nodeName.indexOf('css-') > -1) {\n obj['cssconfig'] = obj['cssconfig'] || {};\n obj['cssconfig'][attr.nodeName.replace('css-', '')] = attr.value;\n } else {\n obj[attr.nodeName] = attr.value;\n }\n }\n}\n\n/**\n * Parse the provided toolbox tree into a consistent DOM format.\n *\n * @param toolboxDef DOM tree of blocks, or text representation of same.\n * @returns DOM tree of blocks, or null.\n * @alias Blockly.utils.toolbox.parseToolboxTree\n */\nexport function parseToolboxTree(toolboxDef: Element|null|string): Element|\n null {\n let parsedToolboxDef: Element|null = null;\n if (toolboxDef) {\n if (typeof toolboxDef === 'string') {\n parsedToolboxDef = Xml.textToDom(toolboxDef);\n if (parsedToolboxDef.nodeName.toLowerCase() !== 'xml') {\n throw TypeError('Toolbox should be an document.');\n }\n } else if (toolboxDef instanceof Element) {\n parsedToolboxDef = toolboxDef;\n }\n }\n return parsedToolboxDef;\n}\n\nexport const TEST_ONLY = {\n hasCategoriesInternal,\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Extensions are functions that help initialize blocks, usually\n * adding dynamic behavior such as onchange handlers and mutators. These\n * are applied using Block.applyExtension(), or the JSON \"extensions\"\n * array attribute.\n *\n * @namespace Blockly.Extensions\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Extensions');\n\nimport type {Block} from './block.js';\nimport type {BlockSvg} from './block_svg.js';\nimport {FieldDropdown} from './field_dropdown.js';\nimport {Mutator} from './mutator.js';\nimport * as parsing from './utils/parsing.js';\n\n\n/** The set of all registered extensions, keyed by extension name/id. */\nconst allExtensions = Object.create(null);\nexport const TEST_ONLY = {allExtensions};\n\n/**\n * Registers a new extension function. Extensions are functions that help\n * initialize blocks, usually adding dynamic behavior such as onchange\n * handlers and mutators. These are applied using Block.applyExtension(), or\n * the JSON \"extensions\" array attribute.\n *\n * @param name The name of this extension.\n * @param initFn The function to initialize an extended block.\n * @throws {Error} if the extension name is empty, the extension is already\n * registered, or extensionFn is not a function.\n * @alias Blockly.Extensions.register\n */\nexport function register(name: string, initFn: Function) {\n if (typeof name !== 'string' || name.trim() === '') {\n throw Error('Error: Invalid extension name \"' + name + '\"');\n }\n if (allExtensions[name]) {\n throw Error('Error: Extension \"' + name + '\" is already registered.');\n }\n if (typeof initFn !== 'function') {\n throw Error('Error: Extension \"' + name + '\" must be a function');\n }\n allExtensions[name] = initFn;\n}\n\n/**\n * Registers a new extension function that adds all key/value of mixinObj.\n *\n * @param name The name of this extension.\n * @param mixinObj The values to mix in.\n * @throws {Error} if the extension name is empty or the extension is already\n * registered.\n * @alias Blockly.Extensions.registerMixin\n */\nexport function registerMixin(name: string, mixinObj: AnyDuringMigration) {\n if (!mixinObj || typeof mixinObj !== 'object') {\n throw Error('Error: Mixin \"' + name + '\" must be a object');\n }\n register(name, function(this: Block) {\n this.mixin(mixinObj);\n });\n}\n\n/**\n * Registers a new extension function that adds a mutator to the block.\n * At register time this performs some basic sanity checks on the mutator.\n * The wrapper may also add a mutator dialog to the block, if both compose and\n * decompose are defined on the mixin.\n *\n * @param name The name of this mutator extension.\n * @param mixinObj The values to mix in.\n * @param opt_helperFn An optional function to apply after mixing in the object.\n * @param opt_blockList A list of blocks to appear in the flyout of the mutator\n * dialog.\n * @throws {Error} if the mutation is invalid or can't be applied to the block.\n * @alias Blockly.Extensions.registerMutator\n */\nexport function registerMutator(\n name: string, mixinObj: AnyDuringMigration,\n opt_helperFn?: () => AnyDuringMigration, opt_blockList?: string[]) {\n const errorPrefix = 'Error when registering mutator \"' + name + '\": ';\n\n checkHasMutatorProperties(errorPrefix, mixinObj);\n const hasMutatorDialog = checkMutatorDialog(mixinObj, errorPrefix);\n\n if (opt_helperFn && typeof opt_helperFn !== 'function') {\n throw Error(errorPrefix + 'Extension \"' + name + '\" is not a function');\n }\n\n // Sanity checks passed.\n register(name, function(this: Block) {\n if (hasMutatorDialog) {\n this.setMutator(new Mutator(opt_blockList || [], this as BlockSvg));\n }\n // Mixin the object.\n this.mixin(mixinObj);\n\n if (opt_helperFn) {\n opt_helperFn.apply(this);\n }\n });\n}\n\n/**\n * Unregisters the extension registered with the given name.\n *\n * @param name The name of the extension to unregister.\n * @alias Blockly.Extensions.unregister\n */\nexport function unregister(name: string) {\n if (isRegistered(name)) {\n delete allExtensions[name];\n } else {\n console.warn(\n 'No extension mapping for name \"' + name + '\" found to unregister');\n }\n}\n\n/**\n * Returns whether an extension is registered with the given name.\n *\n * @param name The name of the extension to check for.\n * @returns True if the extension is registered. False if it is not registered.\n * @alias Blockly.Extensions.isRegistered\n */\nexport function isRegistered(name: string): boolean {\n return !!allExtensions[name];\n}\n\n/**\n * Applies an extension method to a block. This should only be called during\n * block construction.\n *\n * @param name The name of the extension.\n * @param block The block to apply the named extension to.\n * @param isMutator True if this extension defines a mutator.\n * @throws {Error} if the extension is not found.\n * @alias Blockly.Extensions.apply\n */\nexport function apply(name: string, block: Block, isMutator: boolean) {\n const extensionFn = allExtensions[name];\n if (typeof extensionFn !== 'function') {\n throw Error('Error: Extension \"' + name + '\" not found.');\n }\n let mutatorProperties;\n if (isMutator) {\n // Fail early if the block already has mutation properties.\n checkNoMutatorProperties(name, block);\n } else {\n // Record the old properties so we can make sure they don't change after\n // applying the extension.\n mutatorProperties = getMutatorProperties(block);\n }\n extensionFn.apply(block);\n\n if (isMutator) {\n const errorPrefix = 'Error after applying mutator \"' + name + '\": ';\n checkHasMutatorProperties(errorPrefix, block);\n } else {\n if (!mutatorPropertiesMatch(\n mutatorProperties as AnyDuringMigration[], block)) {\n throw Error(\n 'Error when applying extension \"' + name + '\": ' +\n 'mutation properties changed when applying a non-mutator extension.');\n }\n }\n}\n\n/**\n * Check that the given block does not have any of the four mutator properties\n * defined on it. This function should be called before applying a mutator\n * extension to a block, to make sure we are not overwriting properties.\n *\n * @param mutationName The name of the mutation to reference in error messages.\n * @param block The block to check.\n * @throws {Error} if any of the properties already exist on the block.\n */\nfunction checkNoMutatorProperties(mutationName: string, block: Block) {\n const properties = getMutatorProperties(block);\n if (properties.length) {\n throw Error(\n 'Error: tried to apply mutation \"' + mutationName +\n '\" to a block that already has mutator functions.' +\n ' Block id: ' + block.id);\n }\n}\n\n/**\n * Checks if the given object has both the 'mutationToDom' and 'domToMutation'\n * functions.\n *\n * @param object The object to check.\n * @param errorPrefix The string to prepend to any error message.\n * @returns True if the object has both functions. False if it has neither\n * function.\n * @throws {Error} if the object has only one of the functions, or either is not\n * actually a function.\n */\nfunction checkXmlHooks(\n object: AnyDuringMigration, errorPrefix: string): boolean {\n return checkHasFunctionPair(\n object.mutationToDom, object.domToMutation,\n errorPrefix + ' mutationToDom/domToMutation');\n}\n/**\n * Checks if the given object has both the 'saveExtraState' and 'loadExtraState'\n * functions.\n *\n * @param object The object to check.\n * @param errorPrefix The string to prepend to any error message.\n * @returns True if the object has both functions. False if it has neither\n * function.\n * @throws {Error} if the object has only one of the functions, or either is not\n * actually a function.\n */\nfunction checkJsonHooks(\n object: AnyDuringMigration, errorPrefix: string): boolean {\n return checkHasFunctionPair(\n object.saveExtraState, object.loadExtraState,\n errorPrefix + ' saveExtraState/loadExtraState');\n}\n\n/**\n * Checks if the given object has both the 'compose' and 'decompose' functions.\n *\n * @param object The object to check.\n * @param errorPrefix The string to prepend to any error message.\n * @returns True if the object has both functions. False if it has neither\n * function.\n * @throws {Error} if the object has only one of the functions, or either is not\n * actually a function.\n */\nfunction checkMutatorDialog(\n object: AnyDuringMigration, errorPrefix: string): boolean {\n return checkHasFunctionPair(\n object.compose, object.decompose, errorPrefix + ' compose/decompose');\n}\n\n/**\n * Checks that both or neither of the given functions exist and that they are\n * indeed functions.\n *\n * @param func1 The first function in the pair.\n * @param func2 The second function in the pair.\n * @param errorPrefix The string to prepend to any error message.\n * @returns True if the object has both functions. False if it has neither\n * function.\n * @throws {Error} If the object has only one of the functions, or either is not\n * actually a function.\n */\nfunction checkHasFunctionPair(\n func1: AnyDuringMigration, func2: AnyDuringMigration,\n errorPrefix: string): boolean {\n if (func1 && func2) {\n if (typeof func1 !== 'function' || typeof func2 !== 'function') {\n throw Error(errorPrefix + ' must be a function');\n }\n return true;\n } else if (!func1 && !func2) {\n return false;\n }\n throw Error(errorPrefix + 'Must have both or neither functions');\n}\n\n/**\n * Checks that the given object required mutator properties.\n *\n * @param errorPrefix The string to prepend to any error message.\n * @param object The object to inspect.\n */\nfunction checkHasMutatorProperties(\n errorPrefix: string, object: AnyDuringMigration) {\n const hasXmlHooks = checkXmlHooks(object, errorPrefix);\n const hasJsonHooks = checkJsonHooks(object, errorPrefix);\n if (!hasXmlHooks && !hasJsonHooks) {\n throw Error(\n errorPrefix +\n 'Mutations must contain either XML hooks, or JSON hooks, or both');\n }\n // A block with a mutator isn't required to have a mutation dialog, but\n // it should still have both or neither of compose and decompose.\n checkMutatorDialog(object, errorPrefix);\n}\n\n/**\n * Get a list of values of mutator properties on the given block.\n *\n * @param block The block to inspect.\n * @returns A list with all of the defined properties, which should be\n * functions, but may be anything other than undefined.\n */\nfunction getMutatorProperties(block: Block): AnyDuringMigration[] {\n const result = [];\n // List each function explicitly by reference to allow for renaming\n // during compilation.\n if (block.domToMutation !== undefined) {\n result.push(block.domToMutation);\n }\n if (block.mutationToDom !== undefined) {\n result.push(block.mutationToDom);\n }\n if (block.saveExtraState !== undefined) {\n result.push(block.saveExtraState);\n }\n if (block.loadExtraState !== undefined) {\n result.push(block.loadExtraState);\n }\n if (block.compose !== undefined) {\n result.push(block.compose);\n }\n if (block.decompose !== undefined) {\n result.push(block.decompose);\n }\n return result;\n}\n\n/**\n * Check that the current mutator properties match a list of old mutator\n * properties. This should be called after applying a non-mutator extension,\n * to verify that the extension didn't change properties it shouldn't.\n *\n * @param oldProperties The old values to compare to.\n * @param block The block to inspect for new values.\n * @returns True if the property lists match.\n */\nfunction mutatorPropertiesMatch(\n oldProperties: AnyDuringMigration[], block: Block): boolean {\n const newProperties = getMutatorProperties(block);\n if (newProperties.length !== oldProperties.length) {\n return false;\n }\n for (let i = 0; i < newProperties.length; i++) {\n if (oldProperties[i] !== newProperties[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Calls a function after the page has loaded, possibly immediately.\n *\n * @param fn Function to run.\n * @throws Error Will throw if no global document can be found (e.g., Node.js).\n * @internal\n */\nexport function runAfterPageLoad(fn: () => void) {\n if (typeof document !== 'object') {\n throw Error('runAfterPageLoad() requires browser document.');\n }\n if (document.readyState === 'complete') {\n fn(); // Page has already loaded. Call immediately.\n } else {\n // Poll readyState.\n const readyStateCheckInterval = setInterval(function() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n fn();\n }\n }, 10);\n }\n}\n\n/**\n * Builds an extension function that will map a dropdown value to a tooltip\n * string.\n *\n * This method includes multiple checks to ensure tooltips, dropdown options,\n * and message references are aligned. This aims to catch errors as early as\n * possible, without requiring developers to manually test tooltips under each\n * option. After the page is loaded, each tooltip text string will be checked\n * for matching message keys in the internationalized string table. Deferring\n * this until the page is loaded decouples loading dependencies. Later, upon\n * loading the first block of any given type, the extension will validate every\n * dropdown option has a matching tooltip in the lookupTable. Errors are\n * reported as warnings in the console, and are never fatal.\n *\n * @param dropdownName The name of the field whose value is the key to the\n * lookup table.\n * @param lookupTable The table of field values to tooltip text.\n * @returns The extension function.\n * @alias Blockly.Extensions.buildTooltipForDropdown\n */\nexport function buildTooltipForDropdown(\n dropdownName: string, lookupTable: {[key: string]: string}): Function {\n // List of block types already validated, to minimize duplicate warnings.\n const blockTypesChecked: AnyDuringMigration[] = [];\n\n // Check the tooltip string messages for invalid references.\n // Wait for load, in case Blockly.Msg is not yet populated.\n // runAfterPageLoad() does not run in a Node.js environment due to lack\n // of document object, in which case skip the validation.\n if (typeof document === 'object') { // Relies on document.readyState\n runAfterPageLoad(function() {\n for (const key in lookupTable) {\n // Will print warnings if reference is missing.\n parsing.checkMessageReferences(lookupTable[key]);\n }\n });\n }\n\n /** The actual extension. */\n function extensionFn(this: Block) {\n if (this.type && blockTypesChecked.indexOf(this.type) === -1) {\n checkDropdownOptionsInTable(this, dropdownName, lookupTable);\n blockTypesChecked.push(this.type);\n }\n\n this.setTooltip(function(this: Block) {\n const value = String(this.getFieldValue(dropdownName));\n let tooltip = lookupTable[value];\n if (tooltip === null) {\n if (blockTypesChecked.indexOf(this.type) === -1) {\n // Warn for missing values on generated tooltips.\n let warning = 'No tooltip mapping for value ' + value + ' of field ' +\n dropdownName;\n if (this.type !== null) {\n warning += ' of block type ' + this.type;\n }\n console.warn(warning + '.');\n }\n } else {\n tooltip = parsing.replaceMessageReferences(tooltip);\n }\n return tooltip;\n }.bind(this));\n }\n return extensionFn;\n}\n\n/**\n * Checks all options keys are present in the provided string lookup table.\n * Emits console warnings when they are not.\n *\n * @param block The block containing the dropdown\n * @param dropdownName The name of the dropdown\n * @param lookupTable The string lookup table\n */\nfunction checkDropdownOptionsInTable(\n block: Block, dropdownName: string, lookupTable: {[key: string]: string}) {\n // Validate all dropdown options have values.\n const dropdown = block.getField(dropdownName);\n if (dropdown instanceof FieldDropdown && !dropdown.isOptionListDynamic()) {\n const options = dropdown.getOptions();\n for (let i = 0; i < options.length; i++) {\n const optionKey = options[i][1]; // label, then value\n if (lookupTable[optionKey] === null) {\n console.warn(\n 'No tooltip mapping for value ' + optionKey + ' of field ' +\n dropdownName + ' of block type ' + block.type);\n }\n }\n }\n}\n\n/**\n * Builds an extension function that will install a dynamic tooltip. The\n * tooltip message should include the string '%1' and that string will be\n * replaced with the text of the named field.\n *\n * @param msgTemplate The template form to of the message text, with %1\n * placeholder.\n * @param fieldName The field with the replacement text.\n * @returns The extension function.\n * @alias Blockly.Extensions.buildTooltipWithFieldText\n */\nexport function buildTooltipWithFieldText(\n msgTemplate: string, fieldName: string): Function {\n // Check the tooltip string messages for invalid references.\n // Wait for load, in case Blockly.Msg is not yet populated.\n // runAfterPageLoad() does not run in a Node.js environment due to lack\n // of document object, in which case skip the validation.\n if (typeof document === 'object') { // Relies on document.readyState\n runAfterPageLoad(function() {\n // Will print warnings if reference is missing.\n parsing.checkMessageReferences(msgTemplate);\n });\n }\n\n /** The actual extension. */\n function extensionFn(this: Block) {\n this.setTooltip(function(this: Block) {\n const field = this.getField(fieldName);\n return parsing.replaceMessageReferences(msgTemplate)\n .replace('%1', field ? field.getText() : '');\n }.bind(this));\n }\n return extensionFn;\n}\n\n/**\n * Configures the tooltip to mimic the parent block when connected. Otherwise,\n * uses the tooltip text at the time this extension is initialized. This takes\n * advantage of the fact that all other values from JSON are initialized before\n * extensions.\n */\nfunction extensionParentTooltip(this: Block) {\n const tooltipWhenNotConnected = this.tooltip;\n this.setTooltip(function(this: Block) {\n const parent = this.getParent();\n return parent && parent.getInputsInline() && parent.tooltip ||\n tooltipWhenNotConnected;\n }.bind(this));\n}\nregister('parent_tooltip_when_inline', extensionParentTooltip);\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/** @namespace Blockly.utils.array */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.array');\n\n\n/**\n * Removes the first occurrence of a particular value from an array.\n *\n * @param arr Array from which to remove value.\n * @param value Value to remove.\n * @returns True if an element was removed.\n * @alias Blockly.array.removeElem\n * @internal\n */\nexport function removeElem(arr: Array, value: T): boolean {\n const i = arr.indexOf(value);\n if (i === -1) {\n return false;\n }\n arr.splice(i, 1);\n return true;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Methods for creating parts of SVG path strings. See\n *\n * @namespace Blockly.utils.svgPaths\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils.svgPaths');\n\n\n/**\n * Create a string representing the given x, y pair. It does not matter whether\n * the coordinate is relative or absolute. The result has leading\n * and trailing spaces, and separates the x and y coordinates with a comma but\n * no space.\n *\n * @param x The x coordinate.\n * @param y The y coordinate.\n * @returns A string of the format ' x,y '\n * @alias Blockly.utils.svgPaths.point\n */\nexport function point(x: number, y: number): string {\n return ' ' + x + ',' + y + ' ';\n}\n\n/**\n * Draw a cubic or quadratic curve. See\n * developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Cubic_B%C3%A9zier_Curve\n * These coordinates are unitless and hence in the user coordinate system.\n *\n * @param command The command to use.\n * Should be one of: c, C, s, S, q, Q.\n * @param points An array containing all of the points to pass to the curve\n * command, in order. The points are represented as strings of the format '\n * x, y '.\n * @returns A string defining one or more Bezier curves. See the MDN\n * documentation for exact format.\n * @alias Blockly.utils.svgPaths.curve\n */\nexport function curve(command: string, points: string[]): string {\n return ' ' + command + points.join('');\n}\n\n/**\n * Move the cursor to the given position without drawing a line.\n * The coordinates are absolute.\n * These coordinates are unitless and hence in the user coordinate system.\n * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands\n *\n * @param x The absolute x coordinate.\n * @param y The absolute y coordinate.\n * @returns A string of the format ' M x,y '\n * @alias Blockly.utils.svgPaths.moveTo\n */\nexport function moveTo(x: number, y: number): string {\n return ' M ' + x + ',' + y + ' ';\n}\n\n/**\n * Move the cursor to the given position without drawing a line.\n * Coordinates are relative.\n * These coordinates are unitless and hence in the user coordinate system.\n * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands\n *\n * @param dx The relative x coordinate.\n * @param dy The relative y coordinate.\n * @returns A string of the format ' m dx,dy '\n * @alias Blockly.utils.svgPaths.moveBy\n */\nexport function moveBy(dx: number, dy: number): string {\n return ' m ' + dx + ',' + dy + ' ';\n}\n\n/**\n * Draw a line from the current point to the end point, which is the current\n * point shifted by dx along the x-axis and dy along the y-axis.\n * These coordinates are unitless and hence in the user coordinate system.\n * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands\n *\n * @param dx The relative x coordinate.\n * @param dy The relative y coordinate.\n * @returns A string of the format ' l dx,dy '\n * @alias Blockly.utils.svgPaths.lineTo\n */\nexport function lineTo(dx: number, dy: number): string {\n return ' l ' + dx + ',' + dy + ' ';\n}\n\n/**\n * Draw multiple lines connecting all of the given points in order. This is\n * equivalent to a series of 'l' commands.\n * These coordinates are unitless and hence in the user coordinate system.\n * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands\n *\n * @param points An array containing all of the points to draw lines to, in\n * order. The points are represented as strings of the format ' dx,dy '.\n * @returns A string of the format ' l (dx,dy)+ '\n * @alias Blockly.utils.svgPaths.line\n */\nexport function line(points: string[]): string {\n return ' l' + points.join('');\n}\n\n/**\n * Draw a horizontal or vertical line.\n * The first argument specifies the direction and whether the given position is\n * relative or absolute.\n * These coordinates are unitless and hence in the user coordinate system.\n * See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#LineTo_path_commands\n *\n * @param command The command to prepend to the coordinate. This should be one\n * of: V, v, H, h.\n * @param val The coordinate to pass to the command. It may be absolute or\n * relative.\n * @returns A string of the format ' command val '\n * @alias Blockly.utils.svgPaths.lineOnAxis\n */\nexport function lineOnAxis(command: string, val: number): string {\n return ' ' + command + ' ' + val + ' ';\n}\n\n/**\n * Draw an elliptical arc curve.\n * These coordinates are unitless and hence in the user coordinate system.\n * See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Elliptical_Arc_Curve\n *\n * @param command The command string. Either 'a' or 'A'.\n * @param flags The flag string. See the MDN documentation for a description\n * and examples.\n * @param radius The radius of the arc to draw.\n * @param point The point to move the cursor to after drawing the arc, specified\n * either in absolute or relative coordinates depending on the command.\n * @returns A string of the format 'command radius radius flags point'\n * @alias Blockly.utils.svgPaths.arc\n */\nexport function arc(\n command: string, flags: string, radius: number, point: string): string {\n return command + ' ' + radius + ' ' + radius + ' ' + flags + point;\n}\n","/**\n * @license\n * Copyright 2012 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility methods.\n *\n * @namespace Blockly.utils\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.utils');\n\nimport type {Block} from './block.js';\nimport * as browserEvents from './browser_events.js';\nimport * as common from './common.js';\nimport * as extensions from './extensions.js';\nimport * as aria from './utils/aria.js';\nimport * as arrayUtils from './utils/array.js';\nimport * as colour from './utils/colour.js';\nimport {Coordinate} from './utils/coordinate.js';\nimport * as deprecation from './utils/deprecation.js';\nimport * as dom from './utils/dom.js';\nimport * as idGenerator from './utils/idgenerator.js';\nimport {KeyCodes} from './utils/keycodes.js';\nimport * as math from './utils/math.js';\nimport type {Metrics} from './utils/metrics.js';\nimport * as object from './utils/object.js';\nimport * as parsing from './utils/parsing.js';\nimport {Rect} from './utils/rect.js';\nimport {Size} from './utils/size.js';\nimport * as stringUtils from './utils/string.js';\nimport * as style from './utils/style.js';\nimport {Svg} from './utils/svg.js';\nimport * as svgMath from './utils/svg_math.js';\nimport * as svgPaths from './utils/svg_paths.js';\nimport * as toolbox from './utils/toolbox.js';\nimport * as userAgent from './utils/useragent.js';\nimport * as xml from './utils/xml.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\nexport {\n aria,\n arrayUtils as array,\n browserEvents,\n colour,\n Coordinate,\n deprecation,\n dom,\n extensions,\n idGenerator,\n KeyCodes,\n math,\n Metrics,\n object,\n parsing,\n Rect,\n Size,\n stringUtils as string,\n style,\n Svg,\n svgMath,\n svgPaths,\n toolbox,\n userAgent,\n xml,\n};\n\n/**\n * Return the coordinates of the top-left corner of this element relative to\n * its parent. Only for SVG elements and children (e.g. rect, g, path).\n *\n * @param element SVG element to find the coordinates of.\n * @returns Object with .x and .y properties.\n * @deprecated Use **Blockly.utils.svgMath.getRelativeXY** instead.\n * @alias Blockly.utils.getRelativeXY\n */\nexport function getRelativeXY(element: Element): Coordinate {\n deprecation.warn(\n 'Blockly.utils.getRelativeXY', 'December 2021', 'December 2022',\n 'Blockly.utils.svgMath.getRelativeXY');\n return svgMath.getRelativeXY(element);\n}\n\n/**\n * Return the coordinates of the top-left corner of this element relative to\n * the div Blockly was injected into.\n *\n * @param element SVG element to find the coordinates of. If this is not a child\n * of the div Blockly was injected into, the behaviour is undefined.\n * @returns Object with .x and .y properties.\n * @deprecated Use **Blockly.utils.svgMath.getInjectionDivXY** instead.\n * @alias Blockly.utils.getInjectionDivXY_\n */\nfunction getInjectionDivXY(element: Element): Coordinate {\n deprecation.warn(\n 'Blockly.utils.getInjectionDivXY_', 'December 2021', 'December 2022',\n 'Blockly.utils.svgMath.getInjectionDivXY');\n return svgMath.getInjectionDivXY(element);\n}\nexport const getInjectionDivXY_ = getInjectionDivXY;\n\n/**\n * Parse a string with any number of interpolation tokens (%1, %2, ...).\n * It will also replace string table references (e.g., %{bky_my_msg} and\n * %{BKY_MY_MSG} will both be replaced with the value in\n * Msg['MY_MSG']). Percentage sign characters '%' may be self-escaped\n * (e.g., '%%').\n *\n * @param message Text which might contain string table references and\n * interpolation tokens.\n * @returns Array of strings and numbers.\n * @deprecated Use **Blockly.utils.parsing.tokenizeInterpolation** instead.\n * @alias Blockly.utils.tokenizeInterpolation\n */\nexport function tokenizeInterpolation(message: string): Array {\n deprecation.warn(\n 'Blockly.utils.tokenizeInterpolation', 'December 2021', 'December 2022',\n 'Blockly.utils.parsing.tokenizeInterpolation');\n return parsing.tokenizeInterpolation(message);\n}\n\n/**\n * Replaces string table references in a message, if the message is a string.\n * For example, \"%{bky_my_msg}\" and \"%{BKY_MY_MSG}\" will both be replaced with\n * the value in Msg['MY_MSG'].\n *\n * @param message Message, which may be a string that contains string table\n * references.\n * @returns String with message references replaced.\n * @deprecated Use **Blockly.utils.parsing.replaceMessageReferences** instead.\n * @alias Blockly.utils.replaceMessageReferences\n */\nexport function replaceMessageReferences(message: string|any): string {\n deprecation.warn(\n 'Blockly.utils.replaceMessageReferences', 'December 2021',\n 'December 2022', 'Blockly.utils.parsing.replaceMessageReferences');\n return parsing.replaceMessageReferences(message);\n}\n\n/**\n * Validates that any %{MSG_KEY} references in the message refer to keys of\n * the Msg string table.\n *\n * @param message Text which might contain string table references.\n * @returns True if all message references have matching values.\n * Otherwise, false.\n * @deprecated Use **Blockly.utils.parsing.checkMessageReferences** instead.\n * @alias Blockly.utils.checkMessageReferences\n */\nexport function checkMessageReferences(message: string): boolean {\n deprecation.warn(\n 'Blockly.utils.checkMessageReferences', 'December 2021', 'December 2022',\n 'Blockly.utils.parsing.checkMessageReferences');\n return parsing.checkMessageReferences(message);\n}\n\n/**\n * Check if 3D transforms are supported by adding an element\n * and attempting to set the property.\n *\n * @returns True if 3D transforms are supported.\n * @deprecated Use **Blockly.utils.svgMath.is3dSupported** instead.\n * @alias Blockly.utils.is3dSupported\n */\nexport function is3dSupported(): boolean {\n deprecation.warn(\n 'Blockly.utils.is3dSupported', 'December 2021', 'December 2022',\n 'Blockly.utils.svgMath.is3dSupported');\n return svgMath.is3dSupported();\n}\n\n/**\n * Get the position of the current viewport in window coordinates. This takes\n * scroll into account.\n *\n * @returns An object containing window width, height, and scroll position in\n * window coordinates.\n * @alias Blockly.utils.getViewportBBox\n * @deprecated Use **Blockly.utils.svgMath.getViewportBBox** instead.\n * @internal\n */\nexport function getViewportBBox(): Rect {\n deprecation.warn(\n 'Blockly.utils.getViewportBBox', 'December 2021', 'December 2022',\n 'Blockly.utils.svgMath.getViewportBBox');\n return svgMath.getViewportBBox();\n}\n\n/**\n * Removes the first occurrence of a particular value from an array.\n *\n * @param arr Array from which to remove value.\n * @param value Value to remove.\n * @returns True if an element was removed.\n * @alias Blockly.utils.arrayRemove\n * @deprecated Use **Blockly.array.removeElem** instead.\n * @internal\n */\nexport function arrayRemove(arr: Array, value: T): boolean {\n deprecation.warn(\n 'Blockly.utils.arrayRemove', 'December 2021', 'December 2022',\n 'Blockly.array.removeElem');\n return arrayUtils.removeElem(arr, value);\n}\n\n/**\n * Gets the document scroll distance as a coordinate object.\n * Copied from Closure's goog.dom.getDocumentScroll.\n *\n * @returns Object with values 'x' and 'y'.\n * @deprecated Use **Blockly.utils.svgMath.getDocumentScroll** instead.\n * @alias Blockly.utils.getDocumentScroll\n */\nexport function getDocumentScroll(): Coordinate {\n deprecation.warn(\n 'Blockly.utils.getDocumentScroll', 'December 2021', 'December 2022',\n 'Blockly.utils.svgMath.getDocumentScroll');\n return svgMath.getDocumentScroll();\n}\n\n/**\n * Get a map of all the block's descendants mapping their type to the number of\n * children with that type.\n *\n * @param block The block to map.\n * @param opt_stripFollowing Optionally ignore all following statements (blocks\n * that are not inside a value or statement input of the block).\n * @returns Map of types to type counts for descendants of the bock.\n * @deprecated Use **Blockly.common.getBlockTypeCounts** instead.\n * @alias Blockly.utils.getBlockTypeCounts\n */\nexport function getBlockTypeCounts(\n block: Block, opt_stripFollowing?: boolean): {[key: string]: number} {\n deprecation.warn(\n 'Blockly.utils.getBlockTypeCounts', 'December 2021', 'December 2022',\n 'Blockly.common.getBlockTypeCounts');\n return common.getBlockTypeCounts(block, opt_stripFollowing);\n}\n\n/**\n * Converts screen coordinates to workspace coordinates.\n *\n * @param ws The workspace to find the coordinates on.\n * @param screenCoordinates The screen coordinates to be converted to workspace\n * coordinates\n * @deprecated Use **Blockly.utils.svgMath.screenToWsCoordinates** instead.\n * @returns The workspace coordinates.\n */\nexport function screenToWsCoordinates(\n ws: WorkspaceSvg, screenCoordinates: Coordinate): Coordinate {\n deprecation.warn(\n 'Blockly.utils.screenToWsCoordinates', 'December 2021', 'December 2022',\n 'Blockly.utils.svgMath.screenToWsCoordinates');\n return svgMath.screenToWsCoordinates(ws, screenCoordinates);\n}\n\n/**\n * Parse a block colour from a number or string, as provided in a block\n * definition.\n *\n * @param colour HSV hue value (0 to 360), #RRGGBB string, or a message\n * reference string pointing to one of those two values.\n * @returns An object containing the colour as a #RRGGBB string, and the hue if\n * the input was an HSV hue value.\n * @throws {Error} If the colour cannot be parsed.\n * @deprecated Use **Blockly.utils.parsing.parseBlockColour** instead.\n * @alias Blockly.utils.parseBlockColour\n */\nexport function parseBlockColour(colour: number|\n string): {hue: number|null, hex: string} {\n deprecation.warn(\n 'Blockly.utils.parseBlockColour', 'December 2021', 'December 2022',\n 'Blockly.utils.parsing.parseBlockColour');\n return parsing.parseBlockColour(colour);\n}\n\n/**\n * Calls a function after the page has loaded, possibly immediately.\n *\n * @param fn Function to run.\n * @throws Error Will throw if no global document can be found (e.g., Node.js).\n * @deprecated No longer provided by Blockly.\n * @alias Blockly.utils.runAfterPageLoad\n */\nexport function runAfterPageLoad(fn: () => void) {\n deprecation.warn(\n 'Blockly.utils.runAfterPageLoad', 'December 2021', 'December 2022');\n extensions.runAfterPageLoad(fn);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Contains functions registering serializers (eg blocks, variables, plugins,\n * etc).\n *\n * @namespace Blockly.serialization.registry\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.serialization.registry');\n\n// eslint-disable-next-line no-unused-vars\nimport type {ISerializer} from '../interfaces/i_serializer.js';\nimport * as registry from '../registry.js';\n\n\n/**\n * Registers the given serializer so that it can be used for serialization and\n * deserialization.\n *\n * @param name The name of the serializer to register.\n * @param serializer The serializer to register.\n * @alias Blockly.serialization.registry.register\n */\nexport function register(name: string, serializer: ISerializer) {\n registry.register(registry.Type.SERIALIZER, name, serializer);\n}\n\n/**\n * Unregisters the serializer associated with the given name.\n *\n * @param name The name of the serializer to unregister.\n * @alias Blockly.serialization.registry.unregister\n */\nexport function unregister(name: string) {\n registry.unregister(registry.Type.SERIALIZER, name);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Handles serializing blocks to plain JavaScript objects only containing state.\n *\n * @namespace Blockly.serialization.blocks\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.serialization.blocks');\n\nimport type {Block} from '../block.js';\nimport type {BlockSvg} from '../block_svg.js';\nimport type {Connection} from '../connection.js';\nimport * as eventUtils from '../events/utils.js';\nimport {inputTypes} from '../input_types.js';\nimport type {ISerializer} from '../interfaces/i_serializer.js';\nimport {Size} from '../utils/size.js';\nimport type {Workspace} from '../workspace.js';\nimport * as Xml from '../xml.js';\n\nimport {BadConnectionCheck, MissingBlockType, MissingConnection, RealChildOfShadow} from './exceptions.js';\nimport * as priorities from './priorities.js';\nimport * as serializationRegistry from './registry.js';\n\n\n// TODO(#5160): Remove this once lint is fixed.\n/* eslint-disable no-use-before-define */\n\n/**\n * Represents the state of a connection.\n *\n * @alias Blockly.serialization.blocks.ConnectionState\n */\nexport interface ConnectionState {\n shadow: State|undefined;\n block: State|undefined;\n}\n\n/**\n * Represents the state of a given block.\n *\n * @alias Blockly.serialization.blocks.State\n */\nexport interface State {\n type: string;\n id?: string;\n x?: number;\n y?: number;\n collapsed?: boolean;\n enabled?: boolean;\n inline?: boolean;\n data?: string;\n extraState?: AnyDuringMigration;\n icons?: {[key: string]: AnyDuringMigration};\n fields?: {[key: string]: AnyDuringMigration};\n inputs?: {[key: string]: ConnectionState};\n next?: ConnectionState;\n}\n\n/**\n * Returns the state of the given block as a plain JavaScript object.\n *\n * @param block The block to serialize.\n * @param param1 addCoordinates: If true, the coordinates of the block are added\n * to the serialized state. False by default. addinputBlocks: If true,\n * children of the block which are connected to inputs will be serialized.\n * True by default. addNextBlocks: If true, children of the block which are\n * connected to the block's next connection (if it exists) will be\n * serialized. True by default. doFullSerialization: If true, fields that\n * normally just save a reference to some external state (eg variables) will\n * instead serialize all of the info about that state. This supports\n * deserializing the block into a workspace where that state doesn't yet\n * exist. True by default.\n * @returns The serialized state of the block, or null if the block could not be\n * serialied (eg it was an insertion marker).\n * @alias Blockly.serialization.blocks.save\n */\nexport function save(block: Block, {\n addCoordinates = false,\n addInputBlocks = true,\n addNextBlocks = true,\n doFullSerialization = true,\n}: {\n addCoordinates?: boolean,\n addInputBlocks?: boolean,\n addNextBlocks?: boolean,\n doFullSerialization?: boolean\n} = {}): State|null {\n if (block.isInsertionMarker()) {\n return null;\n }\n\n const state = {\n 'type': block.type,\n 'id': block.id,\n };\n\n if (addCoordinates) {\n // AnyDuringMigration because: Argument of type '{ type: string; id:\n // string; }' is not assignable to parameter of type 'State'.\n saveCoords(block, state as AnyDuringMigration);\n }\n // AnyDuringMigration because: Argument of type '{ type: string; id: string;\n // }' is not assignable to parameter of type 'State'.\n saveAttributes(block, state as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type '{ type: string; id: string;\n // }' is not assignable to parameter of type 'State'.\n saveExtraState(block, state as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type '{ type: string; id: string;\n // }' is not assignable to parameter of type 'State'.\n saveIcons(block, state as AnyDuringMigration);\n // AnyDuringMigration because: Argument of type '{ type: string; id: string;\n // }' is not assignable to parameter of type 'State'.\n saveFields(block, state as AnyDuringMigration, doFullSerialization);\n if (addInputBlocks) {\n // AnyDuringMigration because: Argument of type '{ type: string; id:\n // string; }' is not assignable to parameter of type 'State'.\n saveInputBlocks(block, state as AnyDuringMigration, doFullSerialization);\n }\n if (addNextBlocks) {\n // AnyDuringMigration because: Argument of type '{ type: string; id:\n // string; }' is not assignable to parameter of type 'State'.\n saveNextBlocks(block, state as AnyDuringMigration, doFullSerialization);\n }\n\n // AnyDuringMigration because: Type '{ type: string; id: string; }' is not\n // assignable to type 'State'.\n return state as AnyDuringMigration;\n}\n\n/**\n * Adds attributes to the given state object based on the state of the block.\n * Eg collapsed, disabled, inline, etc.\n *\n * @param block The block to base the attributes on.\n * @param state The state object to append to.\n */\nfunction saveAttributes(block: Block, state: State) {\n if (block.isCollapsed()) {\n state['collapsed'] = true;\n }\n if (!block.isEnabled()) {\n state['enabled'] = false;\n }\n if (block.inputsInline !== undefined &&\n block.inputsInline !== block.inputsInlineDefault) {\n state['inline'] = block.inputsInline;\n }\n // Data is a nullable string, so we don't need to worry about falsy values.\n if (block.data) {\n state['data'] = block.data;\n }\n}\n\n/**\n * Adds the coordinates of the given block to the given state object.\n *\n * @param block The block to base the coordinates on.\n * @param state The state object to append to.\n */\nfunction saveCoords(block: Block, state: State) {\n const workspace = block.workspace;\n const xy = block.getRelativeToSurfaceXY();\n state['x'] = Math.round(workspace.RTL ? workspace.getWidth() - xy.x : xy.x);\n state['y'] = Math.round(xy.y);\n}\n/**\n * Adds any extra state the block may provide to the given state object.\n *\n * @param block The block to serialize the extra state of.\n * @param state The state object to append to.\n */\nfunction saveExtraState(block: Block, state: State) {\n if (block.saveExtraState) {\n const extraState = block.saveExtraState();\n if (extraState !== null) {\n state['extraState'] = extraState;\n }\n } else if (block.mutationToDom) {\n const extraState = block.mutationToDom();\n if (extraState !== null) {\n state['extraState'] =\n Xml.domToText(extraState)\n .replace(\n ' xmlns=\"https://developers.google.com/blockly/xml\"', '');\n }\n }\n}\n\n/**\n * Adds the state of all of the icons on the block to the given state object.\n *\n * @param block The block to serialize the icon state of.\n * @param state The state object to append to.\n */\nfunction saveIcons(block: Block, state: State) {\n // TODO(#2105): Remove this logic and put it in the icon.\n if (block.getCommentText()) {\n state['icons'] = {\n 'comment': {\n 'text': block.getCommentText(),\n 'pinned': block.commentModel.pinned,\n 'height': Math.round(block.commentModel.size.height),\n 'width': Math.round(block.commentModel.size.width),\n },\n };\n }\n}\n\n/**\n * Adds the state of all of the fields on the block to the given state object.\n *\n * @param block The block to serialize the field state of.\n * @param state The state object to append to.\n * @param doFullSerialization Whether or not to serialize the full state of the\n * field (rather than possibly saving a reference to some state).\n */\nfunction saveFields(block: Block, state: State, doFullSerialization: boolean) {\n const fields = Object.create(null);\n for (let i = 0; i < block.inputList.length; i++) {\n const input = block.inputList[i];\n for (let j = 0; j < input.fieldRow.length; j++) {\n const field = input.fieldRow[j];\n if (field.isSerializable()) {\n fields[field.name!] = field.saveState(doFullSerialization);\n }\n }\n }\n if (Object.keys(fields).length) {\n state['fields'] = fields;\n }\n}\n\n/**\n * Adds the state of all of the child blocks of the given block (which are\n * connected to inputs) to the given state object.\n *\n * @param block The block to serialize the input blocks of.\n * @param state The state object to append to.\n * @param doFullSerialization Whether or not to do full serialization.\n */\nfunction saveInputBlocks(\n block: Block, state: State, doFullSerialization: boolean) {\n const inputs = Object.create(null);\n for (let i = 0; i < block.inputList.length; i++) {\n const input = block.inputList[i];\n if (input.type === inputTypes.DUMMY) {\n continue;\n }\n const connectionState =\n saveConnection(input.connection as Connection, doFullSerialization);\n if (connectionState) {\n inputs[input.name] = connectionState;\n }\n }\n\n if (Object.keys(inputs).length) {\n state['inputs'] = inputs;\n }\n}\n\n/**\n * Adds the state of all of the next blocks of the given block to the given\n * state object.\n *\n * @param block The block to serialize the next blocks of.\n * @param state The state object to append to.\n * @param doFullSerialization Whether or not to do full serialization.\n */\nfunction saveNextBlocks(\n block: Block, state: State, doFullSerialization: boolean) {\n if (!block.nextConnection) {\n return;\n }\n const connectionState =\n saveConnection(block.nextConnection, doFullSerialization);\n if (connectionState) {\n state['next'] = connectionState;\n }\n}\n\n/**\n * Returns the state of the given connection (ie the state of any connected\n * shadow or real blocks).\n *\n * @param connection The connection to serialize the connected blocks of.\n * @returns An object containing the state of any connected shadow block, or any\n * connected real block.\n * @param doFullSerialization Whether or not to do full serialization.\n */\nfunction saveConnection(connection: Connection, doFullSerialization: boolean):\n ConnectionState|null {\n const shadow = connection.getShadowState(true);\n const child = connection.targetBlock();\n if (!shadow && !child) {\n return null;\n }\n const state = Object.create(null);\n if (shadow) {\n state['shadow'] = shadow;\n }\n if (child && !child.isShadow()) {\n state['block'] = save(child, {doFullSerialization});\n }\n return state;\n}\n\n/**\n * Loads the block represented by the given state into the given workspace.\n *\n * @param state The state of a block to deserialize into the workspace.\n * @param workspace The workspace to add the block to.\n * @param param1 recordUndo: If true, events triggered by this function will be\n * undo-able by the user. False by default.\n * @returns The block that was just loaded.\n * @alias Blockly.serialization.blocks.append\n */\nexport function append(\n state: State, workspace: Workspace,\n {recordUndo = false}: {recordUndo?: boolean} = {}): Block {\n return appendInternal(state, workspace, {recordUndo});\n}\n\n/**\n * Loads the block represented by the given state into the given workspace.\n * This is defined internally so that the extra parameters don't clutter our\n * external API.\n * But it is exported so that other places within Blockly can call it directly\n * with the extra parameters.\n *\n * @param state The state of a block to deserialize into the workspace.\n * @param workspace The workspace to add the block to.\n * @param param1 parentConnection: If provided, the system will attempt to\n * connect the block to this connection after it is created. Undefined by\n * default. isShadow: If true, the block will be set to a shadow block after\n * it is created. False by default. recordUndo: If true, events triggered by\n * this function will be undo-able by the user. False by default.\n * @returns The block that was just appended.\n * @alias Blockly.serialization.blocks.appendInternal\n * @internal\n */\nexport function appendInternal(\n state: State, workspace: Workspace,\n {parentConnection = undefined, isShadow = false, recordUndo = false}: {\n parentConnection?: Connection,\n isShadow?: boolean,\n recordUndo?: boolean\n } = {}): Block {\n const prevRecordUndo = eventUtils.getRecordUndo();\n eventUtils.setRecordUndo(recordUndo);\n const existingGroup = eventUtils.getGroup();\n if (!existingGroup) {\n eventUtils.setGroup(true);\n }\n eventUtils.disable();\n\n const block = appendPrivate(state, workspace, {parentConnection, isShadow});\n\n eventUtils.enable();\n eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CREATE))(block));\n eventUtils.setGroup(existingGroup);\n eventUtils.setRecordUndo(prevRecordUndo);\n\n // Adding connections to the connection db is expensive. This defers that\n // operation to decrease load time.\n if (workspace.rendered) {\n const blockSvg = block as BlockSvg;\n setTimeout(() => {\n if (!blockSvg.disposed) {\n blockSvg.setConnectionTracking(true);\n }\n }, 1);\n }\n\n return block;\n}\n\n/**\n * Loads the block represented by the given state into the given workspace.\n * This is defined privately so that it can be called recursively without firing\n * eroneous events. Events (and other things we only want to occur on the top\n * block) are handled by appendInternal.\n *\n * @param state The state of a block to deserialize into the workspace.\n * @param workspace The workspace to add the block to.\n * @param param1 parentConnection: If provided, the system will attempt to\n * connect the block to this connection after it is created. Undefined by\n * default. isShadow: The block will be set to a shadow block after it is\n * created. False by default.\n * @returns The block that was just appended.\n */\nfunction appendPrivate(\n state: State, workspace: Workspace,\n {parentConnection = undefined, isShadow = false}:\n {parentConnection?: Connection, isShadow?: boolean} = {}): Block {\n if (!state['type']) {\n throw new MissingBlockType(state);\n }\n\n const block = workspace.newBlock(state['type'], state['id']);\n block.setShadow(isShadow);\n loadCoords(block, state);\n loadAttributes(block, state);\n loadExtraState(block, state);\n tryToConnectParent(parentConnection, block, state);\n loadIcons(block, state);\n loadFields(block, state);\n loadInputBlocks(block, state);\n loadNextBlocks(block, state);\n initBlock(block, workspace.rendered);\n\n return block;\n}\n\n/**\n * Applies any coordinate information available on the state object to the\n * block.\n *\n * @param block The block to set the position of.\n * @param state The state object to reference.\n */\nfunction loadCoords(block: Block, state: State) {\n let x = state['x'] === undefined ? 0 : state['x'];\n const y = state['y'] === undefined ? 0 : state['y'];\n\n const workspace = block.workspace;\n x = workspace.RTL ? workspace.getWidth() - x : x;\n\n block.moveBy(x, y);\n}\n\n/**\n * Applies any attribute information available on the state object to the block.\n *\n * @param block The block to set the attributes of.\n * @param state The state object to reference.\n */\nfunction loadAttributes(block: Block, state: State) {\n if (state['collapsed']) {\n block.setCollapsed(true);\n }\n if (state['enabled'] === false) {\n block.setEnabled(false);\n }\n if (state['inline'] !== undefined) {\n block.setInputsInline(state['inline']);\n }\n if (state['data'] !== undefined) {\n block.data = state['data'];\n }\n}\n\n/**\n * Applies any extra state information available on the state object to the\n * block.\n *\n * @param block The block to set the extra state of.\n * @param state The state object to reference.\n */\nfunction loadExtraState(block: Block, state: State) {\n if (!state['extraState']) {\n return;\n }\n if (block.loadExtraState) {\n block.loadExtraState(state['extraState']);\n } else if (block.domToMutation) {\n block.domToMutation(Xml.textToDom(state['extraState']));\n }\n}\n\n/**\n * Attempts to connect the block to the parent connection, if it exists.\n *\n * @param parentConnection The parent connection to try to connect the block to.\n * @param child The block to try to connect to the parent.\n * @param state The state which defines the given block\n */\nfunction tryToConnectParent(\n parentConnection: Connection|undefined, child: Block, state: State) {\n if (!parentConnection) {\n return;\n }\n\n if (parentConnection.getSourceBlock().isShadow() && !child.isShadow()) {\n throw new RealChildOfShadow(state);\n }\n\n let connected = false;\n let childConnection;\n if (parentConnection.type === inputTypes.VALUE) {\n childConnection = child.outputConnection;\n if (!childConnection) {\n throw new MissingConnection('output', child, state);\n }\n connected = parentConnection.connect(childConnection);\n } else { // Statement type.\n childConnection = child.previousConnection;\n if (!childConnection) {\n throw new MissingConnection('previous', child, state);\n }\n connected = parentConnection.connect(childConnection);\n }\n\n if (!connected) {\n const checker = child.workspace.connectionChecker;\n throw new BadConnectionCheck(\n checker.getErrorMessage(\n checker.canConnectWithReason(\n childConnection, parentConnection, false),\n childConnection, parentConnection),\n parentConnection.type === inputTypes.VALUE ? 'output connection' :\n 'previous connection',\n child, state);\n }\n}\n\n/**\n * Applies icon state to the icons on the block, based on the given state\n * object.\n *\n * @param block The block to set the icon state of.\n * @param state The state object to reference.\n */\nfunction loadIcons(block: Block, state: State) {\n if (!state['icons']) {\n return;\n }\n // TODO(#2105): Remove this logic and put it in the icon.\n const comment = state['icons']['comment'];\n if (comment) {\n block.setCommentText(comment['text']);\n // Load if saved. (Cleaned unnecessary attributes when in the trashcan.)\n if ('pinned' in comment) {\n block.commentModel.pinned = comment['pinned'];\n }\n if ('width' in comment && 'height' in comment) {\n block.commentModel.size = new Size(comment['width'], comment['height']);\n }\n if (comment['pinned'] && block.rendered && !block.isInFlyout) {\n // Give the block a chance to be positioned and rendered before showing.\n const blockSvg = block as BlockSvg;\n setTimeout(() => blockSvg.getCommentIcon()!.setVisible(true), 1);\n }\n }\n}\n\n/**\n * Applies any field information available on the state object to the block.\n *\n * @param block The block to set the field state of.\n * @param state The state object to reference.\n */\nfunction loadFields(block: Block, state: State) {\n if (!state['fields']) {\n return;\n }\n const keys = Object.keys(state['fields']);\n for (let i = 0; i < keys.length; i++) {\n const fieldName = keys[i];\n const fieldState = state['fields'][fieldName];\n const field = block.getField(fieldName);\n if (!field) {\n console.warn(\n `Ignoring non-existant field ${fieldName} in block ${block.type}`);\n continue;\n }\n field.loadState(fieldState);\n }\n}\n\n/**\n * Creates any child blocks (attached to inputs) defined by the given state\n * and attaches them to the given block.\n *\n * @param block The block to attach input blocks to.\n * @param state The state object to reference.\n */\nfunction loadInputBlocks(block: Block, state: State) {\n if (!state['inputs']) {\n return;\n }\n const keys = Object.keys(state['inputs']);\n for (let i = 0; i < keys.length; i++) {\n const inputName = keys[i];\n const input = block.getInput(inputName);\n if (!input || !input.connection) {\n throw new MissingConnection(inputName, block, state);\n }\n loadConnection(input.connection, state['inputs'][inputName]);\n }\n}\n\n/**\n * Creates any next blocks defined by the given state and attaches them to the\n * given block.\n *\n * @param block The block to attach next blocks to.\n * @param state The state object to reference.\n */\nfunction loadNextBlocks(block: Block, state: State) {\n if (!state['next']) {\n return;\n }\n if (!block.nextConnection) {\n throw new MissingConnection('next', block, state);\n }\n loadConnection(block.nextConnection, state['next']);\n}\n/**\n * Applies the state defined by connectionState to the given connection, ie\n * assigns shadows and attaches child blocks.\n *\n * @param connection The connection to deserialize the connected blocks of.\n * @param connectionState The object containing the state of any connected\n * shadow block, or any connected real block.\n */\nfunction loadConnection(\n connection: Connection, connectionState: ConnectionState) {\n if (connectionState['shadow']) {\n connection.setShadowState(connectionState['shadow']);\n }\n if (connectionState['block']) {\n appendPrivate(\n connectionState['block'], connection.getSourceBlock().workspace,\n {parentConnection: connection});\n }\n}\n\n// TODO(#5146): Remove this from the serialization system.\n/**\n * Initializes the give block, eg init the model, inits the svg, renders, etc.\n *\n * @param block The block to initialize.\n * @param rendered Whether the block is a rendered or headless block.\n */\nfunction initBlock(block: Block, rendered: boolean) {\n if (rendered) {\n const blockSvg = block as BlockSvg;\n // Adding connections to the connection db is expensive. This defers that\n // operation to decrease load time.\n blockSvg.setConnectionTracking(false);\n\n blockSvg.initSvg();\n blockSvg.render(false);\n // fixes #6076 JSO deserialization doesn't\n // set .iconXY_ property so here it will be set\n const icons = blockSvg.getIcons();\n for (let i = 0; i < icons.length; i++) {\n icons[i].computeIconLocation();\n }\n } else {\n block.initModel();\n }\n}\n\n// Alias to disambiguate saving within the serializer.\nconst saveBlock = save;\n\n/**\n * Serializer for saving and loading block state.\n *\n * @alias Blockly.serialization.blocks.BlockSerializer\n */\nclass BlockSerializer implements ISerializer {\n priority: number;\n\n /* eslint-disable-next-line require-jsdoc */\n constructor() {\n /** The priority for deserializing blocks. */\n this.priority = priorities.BLOCKS;\n }\n\n /**\n * Serializes the blocks of the given workspace.\n *\n * @param workspace The workspace to save the blocks of.\n * @returns The state of the workspace's blocks, or null if there are no\n * blocks.\n */\n save(workspace: Workspace): {languageVersion: number, blocks: State[]}|null {\n const blockStates = [];\n for (const block of workspace.getTopBlocks(false)) {\n const state =\n saveBlock(block, {addCoordinates: true, doFullSerialization: false});\n if (state) {\n blockStates.push(state);\n }\n }\n if (blockStates.length) {\n return {\n 'languageVersion': 0, // Currently unused.\n 'blocks': blockStates,\n };\n }\n return null;\n }\n\n /**\n * Deserializes the blocks defined by the given state into the given\n * workspace.\n *\n * @param state The state of the blocks to deserialize.\n * @param workspace The workspace to deserialize into.\n */\n load(\n state: {languageVersion: number, blocks: State[]}, workspace: Workspace) {\n const blockStates = state['blocks'];\n for (const state of blockStates) {\n append(state, workspace, {recordUndo: eventUtils.getRecordUndo()});\n }\n }\n\n /**\n * Disposes of any blocks that exist on the workspace.\n *\n * @param workspace The workspace to clear the blocks of.\n */\n clear(workspace: Workspace) {\n // Cannot use workspace.clear() because that also removes variables.\n for (const block of workspace.getTopBlocks(false)) {\n block.dispose(false);\n }\n }\n}\n\nserializationRegistry.register('blocks', new BlockSerializer());\n","/**\n * @license\n * Copyright 2011 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Components for creating connections between blocks.\n *\n * @class\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Connection');\n\nimport type {Block} from './block.js';\nimport {ConnectionType} from './connection_type.js';\nimport type {BlockMove} from './events/events_block_move.js';\nimport * as eventUtils from './events/utils.js';\nimport type {Input} from './input.js';\nimport type {IASTNodeLocationWithBlock} from './interfaces/i_ast_node_location_with_block.js';\nimport type {IConnectionChecker} from './interfaces/i_connection_checker.js';\nimport * as blocks from './serialization/blocks.js';\nimport * as Xml from './xml.js';\n\n\n/**\n * Class for a connection between blocks.\n *\n * @alias Blockly.Connection\n */\nexport class Connection implements IASTNodeLocationWithBlock {\n /** Constants for checking whether two connections are compatible. */\n static CAN_CONNECT = 0;\n static REASON_SELF_CONNECTION = 1;\n static REASON_WRONG_TYPE = 2;\n static REASON_TARGET_NULL = 3;\n static REASON_CHECKS_FAILED = 4;\n static REASON_DIFFERENT_WORKSPACES = 5;\n static REASON_SHADOW_PARENT = 6;\n static REASON_DRAG_CHECKS_FAILED = 7;\n static REASON_PREVIOUS_AND_OUTPUT = 8;\n\n protected sourceBlock_: Block;\n\n /** Connection this connection connects to. Null if not connected. */\n targetConnection: Connection|null = null;\n\n /**\n * Has this connection been disposed of?\n *\n * @internal\n */\n disposed = false;\n\n /** List of compatible value types. Null if all types are compatible. */\n private check_: string[]|null = null;\n\n /** DOM representation of a shadow block, or null if none. */\n private shadowDom_: Element|null = null;\n\n /**\n * Horizontal location of this connection.\n *\n * @internal\n */\n x = 0;\n\n /**\n * Vertical location of this connection.\n *\n * @internal\n */\n y = 0;\n\n private shadowState_: blocks.State|null = null;\n\n /**\n * @param source The block establishing this connection.\n * @param type The type of the connection.\n */\n constructor(source: Block, public type: number) {\n this.sourceBlock_ = source;\n }\n\n /**\n * Connect two connections together. This is the connection on the superior\n * block.\n *\n * @param childConnection Connection on inferior block.\n */\n protected connect_(childConnection: Connection) {\n const INPUT = ConnectionType.INPUT_VALUE;\n const parentBlock = this.getSourceBlock();\n const childBlock = childConnection.getSourceBlock();\n\n // Make sure the childConnection is available.\n if (childConnection.isConnected()) {\n childConnection.disconnect();\n }\n\n // Make sure the parentConnection is available.\n let orphan;\n if (this.isConnected()) {\n const shadowState = this.stashShadowState_();\n const target = this.targetBlock();\n if (target!.isShadow()) {\n target!.dispose(false);\n } else {\n this.disconnect();\n orphan = target;\n }\n this.applyShadowState_(shadowState);\n }\n\n // Connect the new connection to the parent.\n let event;\n if (eventUtils.isEnabled()) {\n event =\n new (eventUtils.get(eventUtils.BLOCK_MOVE))(childBlock) as BlockMove;\n }\n connectReciprocally(this, childConnection);\n childBlock.setParent(parentBlock);\n if (event) {\n event.recordNew();\n eventUtils.fire(event);\n }\n\n // Deal with the orphan if it exists.\n if (orphan) {\n const orphanConnection = this.type === INPUT ? orphan.outputConnection :\n orphan.previousConnection;\n const connection = Connection.getConnectionForOrphanedConnection(\n childBlock, (orphanConnection));\n if (connection) {\n orphanConnection.connect(connection);\n } else {\n orphanConnection.onFailedConnect(this);\n }\n }\n }\n\n /**\n * Dispose of this connection and deal with connected blocks.\n *\n * @internal\n */\n dispose() {\n // isConnected returns true for shadows and non-shadows.\n if (this.isConnected()) {\n // Destroy the attached shadow block & its children (if it exists).\n this.setShadowStateInternal_();\n\n const targetBlock = this.targetBlock();\n if (targetBlock) {\n // Disconnect the attached normal block.\n targetBlock.unplug();\n }\n }\n\n this.disposed = true;\n }\n\n /**\n * Get the source block for this connection.\n *\n * @returns The source block.\n */\n getSourceBlock(): Block {\n return this.sourceBlock_;\n }\n\n /**\n * Does the connection belong to a superior block (higher in the source\n * stack)?\n *\n * @returns True if connection faces down or right.\n */\n isSuperior(): boolean {\n return this.type === ConnectionType.INPUT_VALUE ||\n this.type === ConnectionType.NEXT_STATEMENT;\n }\n\n /**\n * Is the connection connected?\n *\n * @returns True if connection is connected to another connection.\n */\n isConnected(): boolean {\n return !!this.targetConnection;\n }\n\n /**\n * Get the workspace's connection type checker object.\n *\n * @returns The connection type checker for the source block's workspace.\n * @internal\n */\n getConnectionChecker(): IConnectionChecker {\n return this.sourceBlock_.workspace.connectionChecker;\n }\n\n /**\n * Called when an attempted connection fails. NOP by default (i.e. for\n * headless workspaces).\n *\n * @param _otherConnection Connection that this connection failed to connect\n * to.\n * @internal\n */\n onFailedConnect(_otherConnection: Connection) {}\n // NOP\n\n /**\n * Connect this connection to another connection.\n *\n * @param otherConnection Connection to connect to.\n * @returns Whether the the blocks are now connected or not.\n */\n connect(otherConnection: Connection): boolean {\n if (this.targetConnection === otherConnection) {\n // Already connected together. NOP.\n return true;\n }\n\n const checker = this.getConnectionChecker();\n if (checker.canConnect(this, otherConnection, false)) {\n const eventGroup = eventUtils.getGroup();\n if (!eventGroup) {\n eventUtils.setGroup(true);\n }\n // Determine which block is superior (higher in the source stack).\n if (this.isSuperior()) {\n // Superior block.\n this.connect_(otherConnection);\n } else {\n // Inferior block.\n otherConnection.connect_(this);\n }\n if (!eventGroup) {\n eventUtils.setGroup(false);\n }\n }\n\n return this.isConnected();\n }\n\n /** Disconnect this connection. */\n disconnect() {\n const otherConnection = this.targetConnection;\n if (!otherConnection) {\n throw Error('Source connection not connected.');\n }\n if (otherConnection.targetConnection !== this) {\n throw Error('Target connection not connected to source connection.');\n }\n let parentBlock;\n let childBlock;\n let parentConnection;\n if (this.isSuperior()) {\n // Superior block.\n parentBlock = this.sourceBlock_;\n childBlock = otherConnection.getSourceBlock();\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n parentConnection = this;\n } else {\n // Inferior block.\n parentBlock = otherConnection.getSourceBlock();\n childBlock = this.sourceBlock_;\n parentConnection = otherConnection;\n }\n\n const eventGroup = eventUtils.getGroup();\n if (!eventGroup) {\n eventUtils.setGroup(true);\n }\n this.disconnectInternal_(parentBlock, childBlock);\n if (!childBlock.isShadow()) {\n // If we were disconnecting a shadow, no need to spawn a new one.\n parentConnection.respawnShadow_();\n }\n if (!eventGroup) {\n eventUtils.setGroup(false);\n }\n }\n\n /**\n * Disconnect two blocks that are connected by this connection.\n *\n * @param parentBlock The superior block.\n * @param childBlock The inferior block.\n */\n protected disconnectInternal_(parentBlock: Block, childBlock: Block) {\n let event;\n if (eventUtils.isEnabled()) {\n event =\n new (eventUtils.get(eventUtils.BLOCK_MOVE))(childBlock) as BlockMove;\n }\n const otherConnection = this.targetConnection;\n if (otherConnection) {\n otherConnection.targetConnection = null;\n }\n this.targetConnection = null;\n childBlock.setParent(null);\n if (event) {\n event.recordNew();\n eventUtils.fire(event);\n }\n }\n\n /**\n * Respawn the shadow block if there was one connected to the this connection.\n */\n protected respawnShadow_() {\n // Have to keep respawnShadow_ for backwards compatibility.\n this.createShadowBlock_(true);\n }\n\n /**\n * Returns the block that this connection connects to.\n *\n * @returns The connected block or null if none is connected.\n */\n targetBlock(): Block|null {\n if (this.isConnected()) {\n return this.targetConnection?.getSourceBlock() ?? null;\n }\n return null;\n }\n\n /**\n * Function to be called when this connection's compatible types have changed.\n */\n protected onCheckChanged_() {\n // The new value type may not be compatible with the existing connection.\n if (this.isConnected() &&\n (!this.targetConnection ||\n !this.getConnectionChecker().canConnect(\n this, this.targetConnection, false))) {\n const child = this.isSuperior() ? this.targetBlock() : this.sourceBlock_;\n child!.unplug();\n }\n }\n\n /**\n * Change a connection's compatibility.\n *\n * @param check Compatible value type or list of value types. Null if all\n * types are compatible.\n * @returns The connection being modified (to allow chaining).\n */\n setCheck(check: string|string[]|null): Connection {\n if (check) {\n if (!Array.isArray(check)) {\n check = [check];\n }\n this.check_ = check;\n this.onCheckChanged_();\n } else {\n this.check_ = null;\n }\n return this;\n }\n\n /**\n * Get a connection's compatibility.\n *\n * @returns List of compatible value types.\n * Null if all types are compatible.\n */\n getCheck(): string[]|null {\n return this.check_;\n }\n\n /**\n * Changes the connection's shadow block.\n *\n * @param shadowDom DOM representation of a block or null.\n */\n setShadowDom(shadowDom: Element|null) {\n this.setShadowStateInternal_({shadowDom});\n }\n\n /**\n * Returns the xml representation of the connection's shadow block.\n *\n * @param returnCurrent If true, and the shadow block is currently attached to\n * this connection, this serializes the state of that block and returns it\n * (so that field values are correct). Otherwise the saved shadowDom is\n * just returned.\n * @returns Shadow DOM representation of a block or null.\n */\n getShadowDom(returnCurrent?: boolean): Element|null {\n return returnCurrent && this.targetBlock()!.isShadow() ?\n Xml.blockToDom((this.targetBlock() as Block)) as Element :\n this.shadowDom_;\n }\n\n /**\n * Changes the connection's shadow block.\n *\n * @param shadowState An state represetation of the block or null.\n */\n setShadowState(shadowState: blocks.State|null) {\n this.setShadowStateInternal_({shadowState});\n }\n\n /**\n * Returns the serialized object representation of the connection's shadow\n * block.\n *\n * @param returnCurrent If true, and the shadow block is currently attached to\n * this connection, this serializes the state of that block and returns it\n * (so that field values are correct). Otherwise the saved state is just\n * returned.\n * @returns Serialized object representation of the block, or null.\n */\n getShadowState(returnCurrent?: boolean): blocks.State|null {\n if (returnCurrent && this.targetBlock() && this.targetBlock()!.isShadow()) {\n return blocks.save(this.targetBlock() as Block);\n }\n return this.shadowState_;\n }\n\n /**\n * Find all nearby compatible connections to this connection.\n * Type checking does not apply, since this function is used for bumping.\n *\n * Headless configurations (the default) do not have neighboring connection,\n * and always return an empty list (the default).\n * {@link RenderedConnection#neighbours} overrides this behavior with a list\n * computed from the rendered positioning.\n *\n * @param _maxLimit The maximum radius to another connection.\n * @returns List of connections.\n * @internal\n */\n neighbours(_maxLimit: number): Connection[] {\n return [];\n }\n\n /**\n * Get the parent input of a connection.\n *\n * @returns The input that the connection belongs to or null if no parent\n * exists.\n * @internal\n */\n getParentInput(): Input|null {\n let parentInput = null;\n const inputs = this.sourceBlock_.inputList;\n for (let i = 0; i < inputs.length; i++) {\n if (inputs[i].connection === this) {\n parentInput = inputs[i];\n break;\n }\n }\n return parentInput;\n }\n\n /**\n * This method returns a string describing this Connection in developer terms\n * (English only). Intended to on be used in console logs and errors.\n *\n * @returns The description.\n */\n toString(): string {\n const block = this.sourceBlock_;\n if (!block) {\n return 'Orphan Connection';\n }\n let msg;\n if (block.outputConnection === this) {\n msg = 'Output Connection of ';\n } else if (block.previousConnection === this) {\n msg = 'Previous Connection of ';\n } else if (block.nextConnection === this) {\n msg = 'Next Connection of ';\n } else {\n let parentInput = null;\n for (let i = 0, input; input = block.inputList[i]; i++) {\n if (input.connection === this) {\n parentInput = input;\n break;\n }\n }\n if (parentInput) {\n msg = 'Input \"' + parentInput.name + '\" connection on ';\n } else {\n console.warn('Connection not actually connected to sourceBlock_');\n return 'Orphan Connection';\n }\n }\n return msg + block.toDevString();\n }\n\n /**\n * Returns the state of the shadowDom_ and shadowState_ properties, then\n * temporarily sets those properties to null so no shadow respawns.\n *\n * @returns The state of both the shadowDom_ and shadowState_ properties.\n */\n private stashShadowState_():\n {shadowDom: Element|null, shadowState: blocks.State|null} {\n const shadowDom = this.getShadowDom(true);\n const shadowState = this.getShadowState(true);\n // Set to null so it doesn't respawn.\n this.shadowDom_ = null;\n this.shadowState_ = null;\n return {shadowDom, shadowState};\n }\n\n /**\n * Reapplies the stashed state of the shadowDom_ and shadowState_ properties.\n *\n * @param param0 The state to reapply to the shadowDom_ and shadowState_\n * properties.\n */\n private applyShadowState_({shadowDom, shadowState}: {\n shadowDom: Element|null,\n shadowState: blocks.State|null\n }) {\n this.shadowDom_ = shadowDom;\n this.shadowState_ = shadowState;\n }\n\n /**\n * Sets the state of the shadow of this connection.\n *\n * @param param0 The state to set the shadow of this connection to.\n */\n private setShadowStateInternal_({shadowDom = null, shadowState = null}: {\n shadowDom?: Element|null,\n shadowState?: blocks.State|null\n } = {}) {\n // One or both of these should always be null.\n // If neither is null, the shadowState will get priority.\n this.shadowDom_ = shadowDom;\n this.shadowState_ = shadowState;\n\n const target = this.targetBlock();\n if (!target) {\n this.respawnShadow_();\n if (this.targetBlock() && this.targetBlock()!.isShadow()) {\n this.serializeShadow_(this.targetBlock());\n }\n } else if (target.isShadow()) {\n target.dispose(false);\n this.respawnShadow_();\n if (this.targetBlock() && this.targetBlock()!.isShadow()) {\n this.serializeShadow_(this.targetBlock());\n }\n } else {\n const shadow = this.createShadowBlock_(false);\n this.serializeShadow_(shadow);\n if (shadow) {\n shadow.dispose(false);\n }\n }\n }\n\n /**\n * Creates a shadow block based on the current shadowState_ or shadowDom_.\n * shadowState_ gets priority.\n *\n * @param attemptToConnect Whether to try to connect the shadow block to this\n * connection or not.\n * @returns The shadow block that was created, or null if both the\n * shadowState_ and shadowDom_ are null.\n */\n private createShadowBlock_(attemptToConnect: boolean): Block|null {\n const parentBlock = this.getSourceBlock();\n const shadowState = this.getShadowState();\n const shadowDom = this.getShadowDom();\n if (parentBlock.isDeadOrDying() || !shadowState && !shadowDom) {\n return null;\n }\n\n let blockShadow;\n if (shadowState) {\n blockShadow = blocks.appendInternal(shadowState, parentBlock.workspace, {\n parentConnection: attemptToConnect ? this : undefined,\n isShadow: true,\n recordUndo: false,\n });\n return blockShadow;\n }\n\n if (shadowDom) {\n blockShadow = Xml.domToBlock(shadowDom, parentBlock.workspace);\n if (attemptToConnect) {\n if (this.type === ConnectionType.INPUT_VALUE) {\n if (!blockShadow.outputConnection) {\n throw new Error('Shadow block is missing an output connection');\n }\n if (!this.connect(blockShadow.outputConnection)) {\n throw new Error('Could not connect shadow block to connection');\n }\n } else if (this.type === ConnectionType.NEXT_STATEMENT) {\n if (!blockShadow.previousConnection) {\n throw new Error('Shadow block is missing previous connection');\n }\n if (!this.connect(blockShadow.previousConnection)) {\n throw new Error('Could not connect shadow block to connection');\n }\n } else {\n throw new Error(\n 'Cannot connect a shadow block to a previous/output connection');\n }\n }\n return blockShadow;\n }\n return null;\n }\n\n /**\n * Saves the given shadow block to both the shadowDom_ and shadowState_\n * properties, in their respective serialized forms.\n *\n * @param shadow The shadow to serialize, or null.\n */\n private serializeShadow_(shadow: Block|null) {\n if (!shadow) {\n return;\n }\n this.shadowDom_ = Xml.blockToDom(shadow) as Element;\n this.shadowState_ = blocks.save(shadow);\n }\n\n /**\n * Returns the connection (starting at the startBlock) which will accept\n * the given connection. This includes compatible connection types and\n * connection checks.\n *\n * @param startBlock The block on which to start the search.\n * @param orphanConnection The connection that is looking for a home.\n * @returns The suitable connection point on the chain of blocks, or null.\n */\n static getConnectionForOrphanedConnection(\n startBlock: Block, orphanConnection: Connection): Connection|null {\n if (orphanConnection.type === ConnectionType.OUTPUT_VALUE) {\n return getConnectionForOrphanedOutput(\n startBlock, orphanConnection.getSourceBlock());\n }\n // Otherwise we're dealing with a stack.\n const connection = startBlock.lastConnectionInStack(true);\n const checker = orphanConnection.getConnectionChecker();\n if (connection && checker.canConnect(orphanConnection, connection, false)) {\n return connection;\n }\n return null;\n }\n}\n\n/**\n * Update two connections to target each other.\n *\n * @param first The first connection to update.\n * @param second The second connection to update.\n */\nfunction connectReciprocally(first: Connection, second: Connection) {\n if (!first || !second) {\n throw Error('Cannot connect null connections.');\n }\n first.targetConnection = second;\n second.targetConnection = first;\n}\n/**\n * Returns the single connection on the block that will accept the orphaned\n * block, if one can be found. If the block has multiple compatible connections\n * (even if they are filled) this returns null. If the block has no compatible\n * connections, this returns null.\n *\n * @param block The superior block.\n * @param orphanBlock The inferior block.\n * @returns The suitable connection point on 'block', or null.\n */\nfunction getSingleConnection(block: Block, orphanBlock: Block): Connection|\n null {\n let foundConnection = null;\n const output = orphanBlock.outputConnection;\n const typeChecker = output.getConnectionChecker();\n\n for (let i = 0, input; input = block.inputList[i]; i++) {\n const connection = input.connection;\n if (connection && typeChecker.canConnect(output, connection, false)) {\n if (foundConnection) {\n return null; // More than one connection.\n }\n foundConnection = connection;\n }\n }\n return foundConnection;\n}\n\n/**\n * Walks down a row a blocks, at each stage checking if there are any\n * connections that will accept the orphaned block. If at any point there\n * are zero or multiple eligible connections, returns null. Otherwise\n * returns the only input on the last block in the chain.\n * Terminates early for shadow blocks.\n *\n * @param startBlock The block on which to start the search.\n * @param orphanBlock The block that is looking for a home.\n * @returns The suitable connection point on the chain of blocks, or null.\n */\nfunction getConnectionForOrphanedOutput(\n startBlock: Block, orphanBlock: Block): Connection|null {\n let newBlock: Block|null = startBlock;\n let connection;\n while (connection = getSingleConnection(newBlock, orphanBlock)) {\n newBlock = connection.targetBlock();\n if (!newBlock || newBlock.isShadow()) {\n return connection;\n }\n }\n return null;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * The class representing an AST node.\n * Used to traverse the Blockly AST.\n *\n * @class\n */\nimport * as goog from '../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.ASTNode');\n\nimport type {Block} from '../block.js';\nimport type {Connection} from '../connection.js';\nimport {ConnectionType} from '../connection_type.js';\nimport type {Field} from '../field.js';\nimport type {Input} from '../input.js';\nimport type {IASTNodeLocation} from '../interfaces/i_ast_node_location.js';\nimport type {IASTNodeLocationWithBlock} from '../interfaces/i_ast_node_location_with_block.js';\nimport {Coordinate} from '../utils/coordinate.js';\nimport type {Workspace} from '../workspace.js';\n\n\n/**\n * Class for an AST node.\n * It is recommended that you use one of the createNode methods instead of\n * creating a node directly.\n *\n * @alias Blockly.ASTNode\n */\nexport class ASTNode {\n /**\n * True to navigate to all fields. False to only navigate to clickable fields.\n */\n static NAVIGATE_ALL_FIELDS = false;\n\n /**\n * The default y offset to use when moving the cursor from a stack to the\n * workspace.\n */\n private static readonly DEFAULT_OFFSET_Y: number = -20;\n private readonly type_: string;\n private readonly isConnection_: boolean;\n private readonly location_: IASTNodeLocation;\n\n /** The coordinate on the workspace. */\n // AnyDuringMigration because: Type 'null' is not assignable to type\n // 'Coordinate'.\n private wsCoordinate_: Coordinate = null as AnyDuringMigration;\n\n /**\n * @param type The type of the location.\n * Must be in ASTNode.types.\n * @param location The position in the AST.\n * @param opt_params Optional dictionary of options.\n * @alias Blockly.ASTNode\n */\n constructor(type: string, location: IASTNodeLocation, opt_params?: Params) {\n if (!location) {\n throw Error('Cannot create a node without a location.');\n }\n\n /**\n * The type of the location.\n * One of ASTNode.types\n */\n this.type_ = type;\n\n /** Whether the location points to a connection. */\n this.isConnection_ = ASTNode.isConnectionType_(type);\n\n /** The location of the AST node. */\n this.location_ = location;\n\n this.processParams_(opt_params || null);\n }\n\n /**\n * Parse the optional parameters.\n *\n * @param params The user specified parameters.\n */\n private processParams_(params: Params|null) {\n if (!params) {\n return;\n }\n if (params.wsCoordinate) {\n this.wsCoordinate_ = params.wsCoordinate;\n }\n }\n\n /**\n * Gets the value pointed to by this node.\n * It is the callers responsibility to check the node type to figure out what\n * type of object they get back from this.\n *\n * @returns The current field, connection, workspace, or block the cursor is\n * on.\n */\n getLocation(): IASTNodeLocation {\n return this.location_;\n }\n\n /**\n * The type of the current location.\n * One of ASTNode.types\n *\n * @returns The type of the location.\n */\n getType(): string {\n return this.type_;\n }\n\n /**\n * The coordinate on the workspace.\n *\n * @returns The workspace coordinate or null if the location is not a\n * workspace.\n */\n getWsCoordinate(): Coordinate {\n return this.wsCoordinate_;\n }\n\n /**\n * Whether the node points to a connection.\n *\n * @returns [description]\n * @internal\n */\n isConnection(): boolean {\n return this.isConnection_;\n }\n\n /**\n * Given an input find the next editable field or an input with a non null\n * connection in the same block. The current location must be an input\n * connection.\n *\n * @returns The AST node holding the next field or connection or null if there\n * is no editable field or input connection after the given input.\n */\n private findNextForInput_(): ASTNode|null {\n const location = this.location_ as Connection;\n const parentInput = location.getParentInput();\n const block = parentInput!.getSourceBlock();\n // AnyDuringMigration because: Argument of type 'Input | null' is not\n // assignable to parameter of type 'Input'.\n const curIdx = block!.inputList.indexOf(parentInput as AnyDuringMigration);\n for (let i = curIdx + 1; i < block!.inputList.length; i++) {\n const input = block!.inputList[i];\n const fieldRow = input.fieldRow;\n for (let j = 0; j < fieldRow.length; j++) {\n const field = fieldRow[j];\n if (field.isClickable() || ASTNode.NAVIGATE_ALL_FIELDS) {\n return ASTNode.createFieldNode(field);\n }\n }\n if (input.connection) {\n return ASTNode.createInputNode(input);\n }\n }\n return null;\n }\n\n /**\n * Given a field find the next editable field or an input with a non null\n * connection in the same block. The current location must be a field.\n *\n * @returns The AST node pointing to the next field or connection or null if\n * there is no editable field or input connection after the given input.\n */\n private findNextForField_(): ASTNode|null {\n const location = this.location_ as Field;\n const input = location.getParentInput();\n const block = location.getSourceBlock();\n if (!block) {\n throw new Error(\n 'The current AST location is not associated with a block');\n }\n const curIdx = block.inputList.indexOf((input));\n let fieldIdx = input.fieldRow.indexOf(location) + 1;\n for (let i = curIdx; i < block.inputList.length; i++) {\n const newInput = block.inputList[i];\n const fieldRow = newInput.fieldRow;\n while (fieldIdx < fieldRow.length) {\n if (fieldRow[fieldIdx].isClickable() || ASTNode.NAVIGATE_ALL_FIELDS) {\n return ASTNode.createFieldNode(fieldRow[fieldIdx]);\n }\n fieldIdx++;\n }\n fieldIdx = 0;\n if (newInput.connection) {\n return ASTNode.createInputNode(newInput);\n }\n }\n return null;\n }\n\n /**\n * Given an input find the previous editable field or an input with a non null\n * connection in the same block. The current location must be an input\n * connection.\n *\n * @returns The AST node holding the previous field or connection.\n */\n private findPrevForInput_(): ASTNode|null {\n const location = this.location_ as Connection;\n const parentInput = location.getParentInput();\n const block = parentInput!.getSourceBlock();\n // AnyDuringMigration because: Argument of type 'Input | null' is not\n // assignable to parameter of type 'Input'.\n const curIdx = block!.inputList.indexOf(parentInput as AnyDuringMigration);\n for (let i = curIdx; i >= 0; i--) {\n const input = block!.inputList[i];\n if (input.connection && input !== parentInput) {\n return ASTNode.createInputNode(input);\n }\n const fieldRow = input.fieldRow;\n for (let j = fieldRow.length - 1; j >= 0; j--) {\n const field = fieldRow[j];\n if (field.isClickable() || ASTNode.NAVIGATE_ALL_FIELDS) {\n return ASTNode.createFieldNode(field);\n }\n }\n }\n return null;\n }\n\n /**\n * Given a field find the previous editable field or an input with a non null\n * connection in the same block. The current location must be a field.\n *\n * @returns The AST node holding the previous input or field.\n */\n private findPrevForField_(): ASTNode|null {\n const location = this.location_ as Field;\n const parentInput = location.getParentInput();\n const block = location.getSourceBlock();\n if (!block) {\n throw new Error(\n 'The current AST location is not associated with a block');\n }\n const curIdx = block.inputList.indexOf((parentInput));\n let fieldIdx = parentInput.fieldRow.indexOf(location) - 1;\n for (let i = curIdx; i >= 0; i--) {\n const input = block.inputList[i];\n if (input.connection && input !== parentInput) {\n return ASTNode.createInputNode(input);\n }\n const fieldRow = input.fieldRow;\n while (fieldIdx > -1) {\n if (fieldRow[fieldIdx].isClickable() || ASTNode.NAVIGATE_ALL_FIELDS) {\n return ASTNode.createFieldNode(fieldRow[fieldIdx]);\n }\n fieldIdx--;\n }\n // Reset the fieldIdx to the length of the field row of the previous\n // input.\n if (i - 1 >= 0) {\n fieldIdx = block.inputList[i - 1].fieldRow.length - 1;\n }\n }\n return null;\n }\n\n /**\n * Navigate between stacks of blocks on the workspace.\n *\n * @param forward True to go forward. False to go backwards.\n * @returns The first block of the next stack or null if there are no blocks\n * on the workspace.\n */\n private navigateBetweenStacks_(forward: boolean): ASTNode|null {\n let curLocation = this.getLocation();\n // TODO(#6097): Use instanceof checks to exit early for values of\n // curLocation that don't make sense.\n if ((curLocation as IASTNodeLocationWithBlock).getSourceBlock) {\n const block = (curLocation as IASTNodeLocationWithBlock).getSourceBlock();\n if (block) {\n curLocation = block;\n }\n }\n // TODO(#6097): Use instanceof checks to exit early for values of\n // curLocation that don't make sense.\n const curLocationAsBlock = curLocation as Block;\n if (!curLocationAsBlock || curLocationAsBlock.isDeadOrDying()) {\n return null;\n }\n const curRoot = curLocationAsBlock.getRootBlock();\n const topBlocks = curRoot.workspace.getTopBlocks(true);\n for (let i = 0; i < topBlocks.length; i++) {\n const topBlock = topBlocks[i];\n if (curRoot.id === topBlock.id) {\n const offset = forward ? 1 : -1;\n const resultIndex = i + offset;\n if (resultIndex === -1 || resultIndex === topBlocks.length) {\n return null;\n }\n return ASTNode.createStackNode(topBlocks[resultIndex]);\n }\n }\n throw Error(\n 'Couldn\\'t find ' + (forward ? 'next' : 'previous') + ' stack?!');\n }\n\n /**\n * Finds the top most AST node for a given block.\n * This is either the previous connection, output connection or block\n * depending on what kind of connections the block has.\n *\n * @param block The block that we want to find the top connection on.\n * @returns The AST node containing the top connection.\n */\n private findTopASTNodeForBlock_(block: Block): ASTNode|null {\n const topConnection = getParentConnection(block);\n if (topConnection) {\n return ASTNode.createConnectionNode(topConnection);\n } else {\n return ASTNode.createBlockNode(block);\n }\n }\n\n /**\n * Get the AST node pointing to the input that the block is nested under or if\n * the block is not nested then get the stack AST node.\n *\n * @param block The source block of the current location.\n * @returns The AST node pointing to the input connection or the top block of\n * the stack this block is in.\n */\n private getOutAstNodeForBlock_(block: Block): ASTNode|null {\n if (!block) {\n return null;\n }\n // If the block doesn't have a previous connection then it is the top of the\n // substack.\n const topBlock = block.getTopStackBlock();\n const topConnection = getParentConnection(topBlock);\n // If the top connection has a parentInput, create an AST node pointing to\n // that input.\n if (topConnection && topConnection.targetConnection &&\n topConnection.targetConnection.getParentInput()) {\n // AnyDuringMigration because: Argument of type 'Input | null' is not\n // assignable to parameter of type 'Input'.\n return ASTNode.createInputNode(\n topConnection.targetConnection.getParentInput() as\n AnyDuringMigration);\n } else {\n // Go to stack level if you are not underneath an input.\n return ASTNode.createStackNode(topBlock);\n }\n }\n\n /**\n * Find the first editable field or input with a connection on a given block.\n *\n * @param block The source block of the current location.\n * @returns An AST node pointing to the first field or input.\n * Null if there are no editable fields or inputs with connections on the\n * block.\n */\n private findFirstFieldOrInput_(block: Block): ASTNode|null {\n const inputs = block.inputList;\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i];\n const fieldRow = input.fieldRow;\n for (let j = 0; j < fieldRow.length; j++) {\n const field = fieldRow[j];\n if (field.isClickable() || ASTNode.NAVIGATE_ALL_FIELDS) {\n return ASTNode.createFieldNode(field);\n }\n }\n if (input.connection) {\n return ASTNode.createInputNode(input);\n }\n }\n return null;\n }\n\n /**\n * Finds the source block of the location of this node.\n *\n * @returns The source block of the location, or null if the node is of type\n * workspace.\n */\n getSourceBlock(): Block|null {\n if (this.getType() === ASTNode.types.BLOCK) {\n return this.getLocation() as Block;\n } else if (this.getType() === ASTNode.types.STACK) {\n return this.getLocation() as Block;\n } else if (this.getType() === ASTNode.types.WORKSPACE) {\n return null;\n } else {\n return (this.getLocation() as IASTNodeLocationWithBlock).getSourceBlock();\n }\n }\n\n /**\n * Find the element to the right of the current element in the AST.\n *\n * @returns An AST node that wraps the next field, connection, block, or\n * workspace. Or null if there is no node to the right.\n */\n next(): ASTNode|null {\n switch (this.type_) {\n case ASTNode.types.STACK:\n return this.navigateBetweenStacks_(true);\n\n case ASTNode.types.OUTPUT: {\n const connection = this.location_ as Connection;\n return ASTNode.createBlockNode(connection.getSourceBlock());\n }\n case ASTNode.types.FIELD:\n return this.findNextForField_();\n\n case ASTNode.types.INPUT:\n return this.findNextForInput_();\n\n case ASTNode.types.BLOCK: {\n const block = this.location_ as Block;\n const nextConnection = block.nextConnection;\n return ASTNode.createConnectionNode(nextConnection);\n }\n case ASTNode.types.PREVIOUS: {\n const connection = this.location_ as Connection;\n return ASTNode.createBlockNode(connection.getSourceBlock());\n }\n case ASTNode.types.NEXT: {\n const connection = this.location_ as Connection;\n const targetConnection = connection.targetConnection;\n return ASTNode.createConnectionNode(targetConnection!);\n }\n }\n\n return null;\n }\n\n /**\n * Find the element one level below and all the way to the left of the current\n * location.\n *\n * @returns An AST node that wraps the next field, connection, workspace, or\n * block. Or null if there is nothing below this node.\n */\n in(): ASTNode|null {\n switch (this.type_) {\n case ASTNode.types.WORKSPACE: {\n const workspace = this.location_ as Workspace;\n const topBlocks = workspace.getTopBlocks(true);\n if (topBlocks.length > 0) {\n return ASTNode.createStackNode(topBlocks[0]);\n }\n break;\n }\n case ASTNode.types.STACK: {\n const block = this.location_ as Block;\n return this.findTopASTNodeForBlock_(block);\n }\n case ASTNode.types.BLOCK: {\n const block = this.location_ as Block;\n return this.findFirstFieldOrInput_(block);\n }\n case ASTNode.types.INPUT: {\n const connection = this.location_ as Connection;\n const targetConnection = connection.targetConnection;\n return ASTNode.createConnectionNode(targetConnection!);\n }\n }\n\n return null;\n }\n\n /**\n * Find the element to the left of the current element in the AST.\n *\n * @returns An AST node that wraps the previous field, connection, workspace\n * or block. Or null if no node exists to the left. null.\n */\n prev(): ASTNode|null {\n switch (this.type_) {\n case ASTNode.types.STACK:\n return this.navigateBetweenStacks_(false);\n\n case ASTNode.types.OUTPUT:\n return null;\n\n case ASTNode.types.FIELD:\n return this.findPrevForField_();\n\n case ASTNode.types.INPUT:\n return this.findPrevForInput_();\n\n case ASTNode.types.BLOCK: {\n const block = this.location_ as Block;\n const topConnection = getParentConnection(block);\n return ASTNode.createConnectionNode(topConnection);\n }\n case ASTNode.types.PREVIOUS: {\n const connection = this.location_ as Connection;\n const targetConnection = connection.targetConnection;\n if (targetConnection && !targetConnection.getParentInput()) {\n return ASTNode.createConnectionNode(targetConnection);\n }\n break;\n }\n case ASTNode.types.NEXT: {\n const connection = this.location_ as Connection;\n return ASTNode.createBlockNode(connection.getSourceBlock());\n }\n }\n\n return null;\n }\n\n /**\n * Find the next element that is one position above and all the way to the\n * left of the current location.\n *\n * @returns An AST node that wraps the next field, connection, workspace or\n * block. Or null if we are at the workspace level.\n */\n out(): ASTNode|null {\n switch (this.type_) {\n case ASTNode.types.STACK: {\n const block = this.location_ as Block;\n const blockPos = block.getRelativeToSurfaceXY();\n // TODO: Make sure this is in the bounds of the workspace.\n const wsCoordinate =\n new Coordinate(blockPos.x, blockPos.y + ASTNode.DEFAULT_OFFSET_Y);\n return ASTNode.createWorkspaceNode(block.workspace, wsCoordinate);\n }\n case ASTNode.types.OUTPUT: {\n const connection = this.location_ as Connection;\n const target = connection.targetConnection;\n if (target) {\n return ASTNode.createConnectionNode(target);\n }\n return ASTNode.createStackNode(connection.getSourceBlock());\n }\n case ASTNode.types.FIELD: {\n const field = this.location_ as Field;\n const block = field.getSourceBlock();\n if (!block) {\n throw new Error(\n 'The current AST location is not associated with a block');\n }\n return ASTNode.createBlockNode(block);\n }\n case ASTNode.types.INPUT: {\n const connection = this.location_ as Connection;\n return ASTNode.createBlockNode(connection.getSourceBlock());\n }\n case ASTNode.types.BLOCK: {\n const block = this.location_ as Block;\n return this.getOutAstNodeForBlock_(block);\n }\n case ASTNode.types.PREVIOUS: {\n const connection = this.location_ as Connection;\n return this.getOutAstNodeForBlock_(connection.getSourceBlock());\n }\n case ASTNode.types.NEXT: {\n const connection = this.location_ as Connection;\n return this.getOutAstNodeForBlock_(connection.getSourceBlock());\n }\n }\n\n return null;\n }\n\n /**\n * Whether an AST node of the given type points to a connection.\n *\n * @param type The type to check. One of ASTNode.types.\n * @returns True if a node of the given type points to a connection.\n */\n private static isConnectionType_(type: string): boolean {\n switch (type) {\n case ASTNode.types.PREVIOUS:\n case ASTNode.types.NEXT:\n case ASTNode.types.INPUT:\n case ASTNode.types.OUTPUT:\n return true;\n }\n return false;\n }\n\n /**\n * Create an AST node pointing to a field.\n *\n * @param field The location of the AST node.\n * @returns An AST node pointing to a field.\n */\n static createFieldNode(field: Field): ASTNode|null {\n if (!field) {\n return null;\n }\n return new ASTNode(ASTNode.types.FIELD, field);\n }\n\n /**\n * Creates an AST node pointing to a connection. If the connection has a\n * parent input then create an AST node of type input that will hold the\n * connection.\n *\n * @param connection This is the connection the node will point to.\n * @returns An AST node pointing to a connection.\n */\n static createConnectionNode(connection: Connection): ASTNode|null {\n if (!connection) {\n return null;\n }\n const type = connection.type;\n if (type === ConnectionType.INPUT_VALUE) {\n // AnyDuringMigration because: Argument of type 'Input | null' is not\n // assignable to parameter of type 'Input'.\n return ASTNode.createInputNode(\n connection.getParentInput() as AnyDuringMigration);\n } else if (\n type === ConnectionType.NEXT_STATEMENT && connection.getParentInput()) {\n // AnyDuringMigration because: Argument of type 'Input | null' is not\n // assignable to parameter of type 'Input'.\n return ASTNode.createInputNode(\n connection.getParentInput() as AnyDuringMigration);\n } else if (type === ConnectionType.NEXT_STATEMENT) {\n return new ASTNode(ASTNode.types.NEXT, connection);\n } else if (type === ConnectionType.OUTPUT_VALUE) {\n return new ASTNode(ASTNode.types.OUTPUT, connection);\n } else if (type === ConnectionType.PREVIOUS_STATEMENT) {\n return new ASTNode(ASTNode.types.PREVIOUS, connection);\n }\n return null;\n }\n\n /**\n * Creates an AST node pointing to an input. Stores the input connection as\n * the location.\n *\n * @param input The input used to create an AST node.\n * @returns An AST node pointing to a input.\n */\n static createInputNode(input: Input): ASTNode|null {\n if (!input || !input.connection) {\n return null;\n }\n return new ASTNode(ASTNode.types.INPUT, input.connection);\n }\n\n /**\n * Creates an AST node pointing to a block.\n *\n * @param block The block used to create an AST node.\n * @returns An AST node pointing to a block.\n */\n static createBlockNode(block: Block): ASTNode|null {\n if (!block) {\n return null;\n }\n return new ASTNode(ASTNode.types.BLOCK, block);\n }\n\n /**\n * Create an AST node of type stack. A stack, represented by its top block, is\n * the set of all blocks connected to a top block, including the top\n * block.\n *\n * @param topBlock A top block has no parent and can be found in the list\n * returned by workspace.getTopBlocks().\n * @returns An AST node of type stack that points to the top block on the\n * stack.\n */\n static createStackNode(topBlock: Block): ASTNode|null {\n if (!topBlock) {\n return null;\n }\n return new ASTNode(ASTNode.types.STACK, topBlock);\n }\n\n /**\n * Creates an AST node pointing to a workspace.\n *\n * @param workspace The workspace that we are on.\n * @param wsCoordinate The position on the workspace for this node.\n * @returns An AST node pointing to a workspace and a position on the\n * workspace.\n */\n static createWorkspaceNode(\n workspace: Workspace|null, wsCoordinate: Coordinate|null): ASTNode|null {\n if (!wsCoordinate || !workspace) {\n return null;\n }\n const params = {wsCoordinate};\n return new ASTNode(ASTNode.types.WORKSPACE, workspace, params);\n }\n\n /**\n * Creates an AST node for the top position on a block.\n * This is either an output connection, previous connection, or block.\n *\n * @param block The block to find the top most AST node on.\n * @returns The AST node holding the top most position on the block.\n */\n static createTopNode(block: Block): ASTNode|null {\n let astNode;\n const topConnection = getParentConnection(block);\n if (topConnection) {\n astNode = ASTNode.createConnectionNode(topConnection);\n } else {\n astNode = ASTNode.createBlockNode(block);\n }\n return astNode;\n }\n}\n\nexport namespace ASTNode {\n export interface Params {\n wsCoordinate: Coordinate;\n }\n\n export enum types {\n FIELD = 'field',\n BLOCK = 'block',\n INPUT = 'input',\n OUTPUT = 'output',\n NEXT = 'next',\n PREVIOUS = 'previous',\n STACK = 'stack',\n WORKSPACE = 'workspace',\n }\n}\n\nexport type Params = ASTNode.Params;\n// No need to export ASTNode.types from the module at this time because (1) it\n// wasn't automatically converted by the automatic migration script, (2) the\n// name doesn't follow the styleguide.\n\n\n/**\n * Gets the parent connection on a block.\n * This is either an output connection, previous connection or undefined.\n * If both connections exist return the one that is actually connected\n * to another block.\n *\n * @param block The block to find the parent connection on.\n * @returns The connection connecting to the parent of the block.\n */\nfunction getParentConnection(block: Block): Connection {\n let topConnection = block.outputConnection;\n if (!topConnection ||\n block.previousConnection && block.previousConnection.isConnected()) {\n topConnection = block.previousConnection;\n }\n return topConnection;\n}\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Methods animating a block on connection and disconnection.\n *\n * @namespace Blockly.blockAnimations\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.blockAnimations');\n\nimport type {BlockSvg} from './block_svg.js';\nimport * as dom from './utils/dom.js';\nimport {Svg} from './utils/svg.js';\n\n\n/** A bounding box for a cloned block. */\ninterface CloneRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/** PID of disconnect UI animation. There can only be one at a time. */\nlet disconnectPid: ReturnType|null = null;\n\n/** SVG group of wobbling block. There can only be one at a time. */\nlet disconnectGroup: SVGElement|null = null;\n\n\n/**\n * Play some UI effects (sound, animation) when disposing of a block.\n *\n * @param block The block being disposed of.\n * @alias Blockly.blockAnimations.disposeUiEffect\n * @internal\n */\nexport function disposeUiEffect(block: BlockSvg) {\n const workspace = block.workspace;\n const svgGroup = block.getSvgRoot();\n workspace.getAudioManager().play('delete');\n\n const xy = workspace.getSvgXY(svgGroup);\n // Deeply clone the current block.\n const clone: SVGGElement = svgGroup.cloneNode(true) as SVGGElement;\n clone.setAttribute('transform', 'translate(' + xy.x + ',' + xy.y + ')');\n workspace.getParentSvg().appendChild(clone);\n const cloneRect =\n {'x': xy.x, 'y': xy.y, 'width': block.width, 'height': block.height};\n disposeUiStep(clone, cloneRect, workspace.RTL, new Date(), workspace.scale);\n}\n/**\n * Animate a cloned block and eventually dispose of it.\n * This is a class method, not an instance method since the original block has\n * been destroyed and is no longer accessible.\n *\n * @param clone SVG element to animate and dispose of.\n * @param rect Starting rect of the clone.\n * @param rtl True if RTL, false if LTR.\n * @param start Date of animation's start.\n * @param workspaceScale Scale of workspace.\n */\nfunction disposeUiStep(\n clone: Element, rect: CloneRect, rtl: boolean, start: Date,\n workspaceScale: number) {\n const ms = new Date().getTime() - start.getTime();\n const percent = ms / 150;\n if (percent > 1) {\n dom.removeNode(clone);\n } else {\n const x =\n rect.x + (rtl ? -1 : 1) * rect.width * workspaceScale / 2 * percent;\n const y = rect.y + rect.height * workspaceScale * percent;\n const scale = (1 - percent) * workspaceScale;\n clone.setAttribute(\n 'transform',\n 'translate(' + x + ',' + y + ')' +\n ' scale(' + scale + ')');\n setTimeout(disposeUiStep, 10, clone, rect, rtl, start, workspaceScale);\n }\n}\n\n/**\n * Play some UI effects (sound, ripple) after a connection has been established.\n *\n * @param block The block being connected.\n * @alias Blockly.blockAnimations.connectionUiEffect\n * @internal\n */\nexport function connectionUiEffect(block: BlockSvg) {\n const workspace = block.workspace;\n const scale = workspace.scale;\n workspace.getAudioManager().play('click');\n if (scale < 1) {\n return; // Too small to care about visual effects.\n }\n // Determine the absolute coordinates of the inferior block.\n const xy = workspace.getSvgXY(block.getSvgRoot());\n // Offset the coordinates based on the two connection types, fix scale.\n if (block.outputConnection) {\n xy.x += (block.RTL ? 3 : -3) * scale;\n xy.y += 13 * scale;\n } else if (block.previousConnection) {\n xy.x += (block.RTL ? -23 : 23) * scale;\n xy.y += 3 * scale;\n }\n const ripple = dom.createSvgElement(\n Svg.CIRCLE, {\n 'cx': xy.x,\n 'cy': xy.y,\n 'r': 0,\n 'fill': 'none',\n 'stroke': '#888',\n 'stroke-width': 10,\n },\n workspace.getParentSvg());\n // Start the animation.\n connectionUiStep(ripple, new Date(), scale);\n}\n\n/**\n * Expand a ripple around a connection.\n *\n * @param ripple Element to animate.\n * @param start Date of animation's start.\n * @param scale Scale of workspace.\n */\nfunction connectionUiStep(ripple: SVGElement, start: Date, scale: number) {\n const ms = new Date().getTime() - start.getTime();\n const percent = ms / 150;\n if (percent > 1) {\n dom.removeNode(ripple);\n } else {\n ripple.setAttribute('r', (percent * 25 * scale).toString());\n ripple.style.opacity = (1 - percent).toString();\n disconnectPid = setTimeout(connectionUiStep, 10, ripple, start, scale);\n }\n}\n\n/**\n * Play some UI effects (sound, animation) when disconnecting a block.\n *\n * @param block The block being disconnected.\n * @alias Blockly.blockAnimations.disconnectUiEffect\n * @internal\n */\nexport function disconnectUiEffect(block: BlockSvg) {\n disconnectUiStop();\n block.workspace.getAudioManager().play('disconnect');\n if (block.workspace.scale < 1) {\n return; // Too small to care about visual effects.\n }\n // Horizontal distance for bottom of block to wiggle.\n const DISPLACEMENT = 10;\n // Scale magnitude of skew to height of block.\n const height = block.getHeightWidth().height;\n let magnitude = Math.atan(DISPLACEMENT / height) / Math.PI * 180;\n if (!block.RTL) {\n magnitude *= -1;\n }\n // Start the animation.\n disconnectGroup = block.getSvgRoot();\n disconnectUiStep(disconnectGroup, magnitude, new Date());\n}\n\n/**\n * Animate a brief wiggle of a disconnected block.\n *\n * @param group SVG element to animate.\n * @param magnitude Maximum degrees skew (reversed for RTL).\n * @param start Date of animation's start.\n */\nfunction disconnectUiStep(group: SVGElement, magnitude: number, start: Date) {\n const DURATION = 200; // Milliseconds.\n const WIGGLES = 3; // Half oscillations.\n\n const ms = new Date().getTime() - start.getTime();\n const percent = ms / DURATION;\n\n let skew = '';\n if (percent <= 1) {\n const val = Math.round(\n Math.sin(percent * Math.PI * WIGGLES) * (1 - percent) * magnitude);\n skew = `skewX(${val})`;\n disconnectPid = setTimeout(disconnectUiStep, 10, group, magnitude, start);\n }\n (group as AnyDuringMigration).skew_ = skew;\n group.setAttribute(\n 'transform',\n (group as AnyDuringMigration).translate_ +\n (group as AnyDuringMigration).skew_);\n}\n\n/**\n * Stop the disconnect UI animation immediately.\n *\n * @alias Blockly.blockAnimations.disconnectUiStop\n * @internal\n */\nexport function disconnectUiStop() {\n if (disconnectGroup) {\n if (disconnectPid) {\n clearTimeout(disconnectPid);\n }\n const group = disconnectGroup;\n (group as AnyDuringMigration).skew_ = '';\n group.setAttribute('transform', (group as AnyDuringMigration).translate_);\n disconnectGroup = null;\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Blockly's internal clipboard for managing copy-paste.\n *\n * @namespace Blockly.clipboard\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.clipboard');\n\nimport type {CopyData, ICopyable} from './interfaces/i_copyable.js';\n\n\n/** Metadata about the object that is currently on the clipboard. */\nlet copyData: CopyData|null = null;\n\n/**\n * Copy a block or workspace comment onto the local clipboard.\n *\n * @param toCopy Block or Workspace Comment to be copied.\n * @alias Blockly.clipboard.copy\n * @internal\n */\nexport function copy(toCopy: ICopyable) {\n TEST_ONLY.copyInternal(toCopy);\n}\n\n/**\n * Private version of copy for stubbing in tests.\n */\nfunction copyInternal(toCopy: ICopyable) {\n copyData = toCopy.toCopyData();\n}\n\n/**\n * Paste a block or workspace comment on to the main workspace.\n *\n * @returns The pasted thing if the paste was successful, null otherwise.\n * @alias Blockly.clipboard.paste\n * @internal\n */\nexport function paste(): ICopyable|null {\n if (!copyData) {\n return null;\n }\n // Pasting always pastes to the main workspace, even if the copy\n // started in a flyout workspace.\n let workspace = copyData.source;\n if (workspace.isFlyout) {\n workspace = workspace.targetWorkspace!;\n }\n if (copyData.typeCounts &&\n workspace.isCapacityAvailable(copyData.typeCounts)) {\n return workspace.paste(copyData.saveInfo);\n }\n return null;\n}\n\n/**\n * Duplicate this block and its children, or a workspace comment.\n *\n * @param toDuplicate Block or Workspace Comment to be duplicated.\n * @returns The block or workspace comment that was duplicated, or null if the\n * duplication failed.\n * @alias Blockly.clipboard.duplicate\n * @internal\n */\nexport function duplicate(toDuplicate: ICopyable): ICopyable|null {\n return TEST_ONLY.duplicateInternal(toDuplicate);\n}\n\n/**\n * Private version of duplicate for stubbing in tests.\n */\nfunction duplicateInternal(toDuplicate: ICopyable): ICopyable|null {\n const oldCopyData = copyData;\n copy(toDuplicate);\n const pastedThing =\n toDuplicate.toCopyData()?.source?.paste(copyData!.saveInfo) ?? null;\n copyData = oldCopyData;\n return pastedThing;\n}\n\nexport const TEST_ONLY = {\n duplicateInternal,\n copyInternal,\n};\n","/**\n * @license\n * Copyright 2011 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Functionality for the right-click context menus.\n *\n * @namespace Blockly.ContextMenu\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.ContextMenu');\n\nimport type {Block} from './block.js';\nimport type {BlockSvg} from './block_svg.js';\nimport * as browserEvents from './browser_events.js';\nimport * as clipboard from './clipboard.js';\nimport {config} from './config.js';\nimport * as dom from './utils/dom.js';\nimport type {ContextMenuOption, LegacyContextMenuOption} from './contextmenu_registry.js';\nimport * as eventUtils from './events/utils.js';\nimport {Menu} from './menu.js';\nimport {MenuItem} from './menuitem.js';\nimport {Msg} from './msg.js';\nimport * as aria from './utils/aria.js';\nimport {Coordinate} from './utils/coordinate.js';\nimport {Rect} from './utils/rect.js';\nimport * as svgMath from './utils/svg_math.js';\nimport * as WidgetDiv from './widgetdiv.js';\nimport {WorkspaceCommentSvg} from './workspace_comment_svg.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\nimport * as Xml from './xml.js';\n\n\n/**\n * Which block is the context menu attached to?\n */\nlet currentBlock: Block|null = null;\n\nconst dummyOwner = {};\n\n/**\n * Gets the block the context menu is currently attached to.\n *\n * @returns The block the context menu is attached to.\n * @alias Blockly.ContextMenu.getCurrentBlock\n */\nexport function getCurrentBlock(): Block|null {\n return currentBlock;\n}\n\n/**\n * Sets the block the context menu is currently attached to.\n *\n * @param block The block the context menu is attached to.\n * @alias Blockly.ContextMenu.setCurrentBlock\n */\nexport function setCurrentBlock(block: Block|null) {\n currentBlock = block;\n}\n\n/**\n * Menu object.\n */\nlet menu_: Menu|null = null;\n\n/**\n * Construct the menu based on the list of options and show the menu.\n *\n * @param e Mouse event.\n * @param options Array of menu options.\n * @param rtl True if RTL, false if LTR.\n * @alias Blockly.ContextMenu.show\n */\nexport function show(\n e: Event, options: (ContextMenuOption|LegacyContextMenuOption)[],\n rtl: boolean) {\n WidgetDiv.show(dummyOwner, rtl, dispose);\n if (!options.length) {\n hide();\n return;\n }\n const menu = populate_(options, rtl);\n menu_ = menu;\n\n position_(menu, e, rtl);\n // 1ms delay is required for focusing on context menus because some other\n // mouse event is still waiting in the queue and clears focus.\n setTimeout(function() {\n menu.focus();\n }, 1);\n currentBlock = null; // May be set by Blockly.Block.\n}\n\n/**\n * Create the context menu object and populate it with the given options.\n *\n * @param options Array of menu options.\n * @param rtl True if RTL, false if LTR.\n * @returns The menu that will be shown on right click.\n */\nfunction populate_(\n options: (ContextMenuOption|LegacyContextMenuOption)[],\n rtl: boolean): Menu {\n /* Here's what one option object looks like:\n {text: 'Make It So',\n enabled: true,\n callback: Blockly.MakeItSo}\n */\n const menu = new Menu();\n menu.setRole(aria.Role.MENU);\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n const menuItem = new MenuItem(option.text);\n menuItem.setRightToLeft(rtl);\n menuItem.setRole(aria.Role.MENUITEM);\n menu.addChild(menuItem);\n menuItem.setEnabled(option.enabled);\n if (option.enabled) {\n const actionHandler = function() {\n hide();\n // If .scope does not exist on the option, then the callback will not\n // be expecting a scope parameter, so there should be no problems. Just\n // assume it is a ContextMenuOption and we'll pass undefined if it's\n // not.\n option.callback((option as ContextMenuOption).scope);\n };\n menuItem.onAction(actionHandler, {});\n }\n }\n return menu;\n}\n\n/**\n * Add the menu to the page and position it correctly.\n *\n * @param menu The menu to add and position.\n * @param e Mouse event for the right click that is making the context\n * menu appear.\n * @param rtl True if RTL, false if LTR.\n */\nfunction position_(menu: Menu, e: Event, rtl: boolean) {\n // Record windowSize and scrollOffset before adding menu.\n const viewportBBox = svgMath.getViewportBBox();\n const mouseEvent = e as MouseEvent;\n // This one is just a point, but we'll pretend that it's a rect so we can use\n // some helper functions.\n const anchorBBox = new Rect(\n mouseEvent.clientY + viewportBBox.top,\n mouseEvent.clientY + viewportBBox.top,\n mouseEvent.clientX + viewportBBox.left,\n mouseEvent.clientX + viewportBBox.left);\n\n createWidget_(menu);\n const menuSize = menu.getSize();\n\n if (rtl) {\n anchorBBox.left += menuSize.width;\n anchorBBox.right += menuSize.width;\n viewportBBox.left += menuSize.width;\n viewportBBox.right += menuSize.width;\n }\n\n WidgetDiv.positionWithAnchor(viewportBBox, anchorBBox, menuSize, rtl);\n // Calling menuDom.focus() has to wait until after the menu has been placed\n // correctly. Otherwise it will cause a page scroll to get the misplaced menu\n // in view. See issue #1329.\n menu.focus();\n}\n\n/**\n * Create and render the menu widget inside Blockly's widget div.\n *\n * @param menu The menu to add to the widget div.\n */\nfunction createWidget_(menu: Menu) {\n const div = WidgetDiv.getDiv();\n if (!div) {\n throw Error('Attempting to create a context menu when widget div is null');\n }\n const menuDom = menu.render(div);\n dom.addClass(menuDom, 'blocklyContextMenu');\n // Prevent system context menu when right-clicking a Blockly context menu.\n browserEvents.conditionalBind(\n (menuDom as EventTarget), 'contextmenu', null, haltPropagation);\n // Focus only after the initial render to avoid issue #1329.\n menu.focus();\n}\n/**\n * Halts the propagation of the event without doing anything else.\n *\n * @param e An event.\n */\nfunction haltPropagation(e: Event) {\n // This event has been handled. No need to bubble up to the document.\n e.preventDefault();\n e.stopPropagation();\n}\n\n/**\n * Hide the context menu.\n *\n * @alias Blockly.ContextMenu.hide\n */\nexport function hide() {\n WidgetDiv.hideIfOwner(dummyOwner);\n currentBlock = null;\n}\n\n/**\n * Dispose of the menu.\n *\n * @alias Blockly.ContextMenu.dispose\n */\nexport function dispose() {\n if (menu_) {\n menu_.dispose();\n menu_ = null;\n }\n}\n\n/**\n * Create a callback function that creates and configures a block,\n * then places the new block next to the original.\n *\n * @param block Original block.\n * @param xml XML representation of new block.\n * @returns Function that creates a block.\n * @alias Blockly.ContextMenu.callbackFactory\n */\nexport function callbackFactory(block: Block, xml: Element): Function {\n return () => {\n eventUtils.disable();\n let newBlock;\n try {\n newBlock = Xml.domToBlock(xml, block.workspace!) as BlockSvg;\n // Move the new block next to the old block.\n const xy = block.getRelativeToSurfaceXY();\n if (block.RTL) {\n xy.x -= config.snapRadius;\n } else {\n xy.x += config.snapRadius;\n }\n xy.y += config.snapRadius * 2;\n newBlock.moveBy(xy.x, xy.y);\n } finally {\n eventUtils.enable();\n }\n if (eventUtils.isEnabled() && !newBlock.isShadow()) {\n eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CREATE))(newBlock));\n }\n newBlock.select();\n };\n}\n\n// Helper functions for creating context menu options.\n\n/**\n * Make a context menu option for deleting the current workspace comment.\n *\n * @param comment The workspace comment where the\n * right-click originated.\n * @returns A menu option,\n * containing text, enabled, and a callback.\n * @alias Blockly.ContextMenu.commentDeleteOption\n * @internal\n */\nexport function commentDeleteOption(comment: WorkspaceCommentSvg):\n LegacyContextMenuOption {\n const deleteOption = {\n text: Msg['REMOVE_COMMENT'],\n enabled: true,\n callback: function() {\n eventUtils.setGroup(true);\n comment.dispose();\n eventUtils.setGroup(false);\n },\n };\n return deleteOption;\n}\n\n/**\n * Make a context menu option for duplicating the current workspace comment.\n *\n * @param comment The workspace comment where the\n * right-click originated.\n * @returns A menu option,\n * containing text, enabled, and a callback.\n * @alias Blockly.ContextMenu.commentDuplicateOption\n * @internal\n */\nexport function commentDuplicateOption(comment: WorkspaceCommentSvg):\n LegacyContextMenuOption {\n const duplicateOption = {\n text: Msg['DUPLICATE_COMMENT'],\n enabled: true,\n callback: function() {\n clipboard.duplicate(comment);\n },\n };\n return duplicateOption;\n}\n\n/**\n * Make a context menu option for adding a comment on the workspace.\n *\n * @param ws The workspace where the right-click\n * originated.\n * @param e The right-click mouse event.\n * @returns A menu option, containing text, enabled, and a callback.\n * @suppress {strictModuleDepCheck,checkTypes} Suppress checks while workspace\n * comments are not bundled in.\n * @alias Blockly.ContextMenu.workspaceCommentOption\n * @internal\n */\nexport function workspaceCommentOption(\n ws: WorkspaceSvg, e: Event): ContextMenuOption {\n /**\n * Helper function to create and position a comment correctly based on the\n * location of the mouse event.\n */\n function addWsComment() {\n const comment = new WorkspaceCommentSvg(\n ws, Msg['WORKSPACE_COMMENT_DEFAULT_TEXT'],\n WorkspaceCommentSvg.DEFAULT_SIZE, WorkspaceCommentSvg.DEFAULT_SIZE);\n\n const injectionDiv = ws.getInjectionDiv();\n // Bounding rect coordinates are in client coordinates, meaning that they\n // are in pixels relative to the upper left corner of the visible browser\n // window. These coordinates change when you scroll the browser window.\n const boundingRect = injectionDiv.getBoundingClientRect();\n\n // The client coordinates offset by the injection div's upper left corner.\n const mouseEvent = e as MouseEvent;\n const clientOffsetPixels = new Coordinate(\n mouseEvent.clientX - boundingRect.left,\n mouseEvent.clientY - boundingRect.top);\n\n // The offset in pixels between the main workspace's origin and the upper\n // left corner of the injection div.\n const mainOffsetPixels = ws.getOriginOffsetInPixels();\n\n // The position of the new comment in pixels relative to the origin of the\n // main workspace.\n const finalOffset =\n Coordinate.difference(clientOffsetPixels, mainOffsetPixels);\n // The position of the new comment in main workspace coordinates.\n finalOffset.scale(1 / ws.scale);\n\n const commentX = finalOffset.x;\n const commentY = finalOffset.y;\n comment.moveBy(commentX, commentY);\n if (ws.rendered) {\n comment.initSvg();\n comment.render();\n comment.select();\n }\n }\n\n const wsCommentOption = {\n enabled: true,\n } as ContextMenuOption;\n wsCommentOption.text = Msg['ADD_COMMENT'];\n wsCommentOption.callback = function() {\n addWsComment();\n };\n return wsCommentOption;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility functions for positioning UI elements.\n *\n * @namespace Blockly.uiPosition\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.uiPosition');\n\nimport type {UiMetrics} from './metrics_manager.js';\nimport {Scrollbar} from './scrollbar.js';\nimport {Rect} from './utils/rect.js';\nimport type {Size} from './utils/size.js';\nimport * as toolbox from './utils/toolbox.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\n/**\n * Enum for vertical positioning.\n *\n * @alias Blockly.uiPosition.verticalPosition\n * @internal\n */\nexport enum verticalPosition {\n TOP,\n BOTTOM\n}\n\n/**\n * Enum for horizontal positioning.\n *\n * @alias Blockly.uiPosition.horizontalPosition\n * @internal\n */\nexport enum horizontalPosition {\n LEFT,\n RIGHT\n}\n\n/**\n * An object defining a horizontal and vertical positioning.\n *\n * @alias Blockly.uiPosition.Position\n * @internal\n */\nexport interface Position {\n horizontal: horizontalPosition;\n vertical: verticalPosition;\n}\n\n/**\n * Enum for bump rules to use for dealing with collisions.\n *\n * @alias Blockly.uiPosition.bumpDirection\n * @internal\n */\nexport enum bumpDirection {\n UP,\n DOWN\n}\n\n/**\n * Returns a rectangle representing reasonable position for where to place a UI\n * element of the specified size given the restraints and locations of the\n * scrollbars. This method does not take into account any already placed UI\n * elements.\n *\n * @param position The starting horizontal and vertical position.\n * @param size the size of the UI element to get a start position for.\n * @param horizontalPadding The horizontal padding to use.\n * @param verticalPadding The vertical padding to use.\n * @param metrics The workspace UI metrics.\n * @param workspace The workspace.\n * @returns The suggested start position.\n * @alias Blockly.uiPosition.getStartPositionRect\n * @internal\n */\nexport function getStartPositionRect(\n position: Position, size: Size, horizontalPadding: number,\n verticalPadding: number, metrics: UiMetrics,\n workspace: WorkspaceSvg): Rect {\n // Horizontal positioning.\n let left = 0;\n const hasVerticalScrollbar =\n workspace.scrollbar && workspace.scrollbar.canScrollVertically();\n if (position.horizontal === horizontalPosition.LEFT) {\n left = metrics.absoluteMetrics.left + horizontalPadding;\n if (hasVerticalScrollbar && workspace.RTL) {\n left += Scrollbar.scrollbarThickness;\n }\n } else { // position.horizontal === horizontalPosition.RIGHT\n left = metrics.absoluteMetrics.left + metrics.viewMetrics.width -\n size.width - horizontalPadding;\n if (hasVerticalScrollbar && !workspace.RTL) {\n left -= Scrollbar.scrollbarThickness;\n }\n }\n // Vertical positioning.\n let top = 0;\n if (position.vertical === verticalPosition.TOP) {\n top = metrics.absoluteMetrics.top + verticalPadding;\n } else { // position.vertical === verticalPosition.BOTTOM\n top = metrics.absoluteMetrics.top + metrics.viewMetrics.height -\n size.height - verticalPadding;\n if (workspace.scrollbar && workspace.scrollbar.canScrollHorizontally()) {\n // The scrollbars are always positioned on the bottom if they exist.\n top -= Scrollbar.scrollbarThickness;\n }\n }\n return new Rect(top, top + size.height, left, left + size.width);\n}\n\n/**\n * Returns a corner position that is on the opposite side of the workspace from\n * the toolbox.\n * If in horizontal orientation, defaults to the bottom corner. If in vertical\n * orientation, defaults to the right corner.\n *\n * @param workspace The workspace.\n * @param metrics The workspace metrics.\n * @returns The suggested corner position.\n * @alias Blockly.uiPosition.getCornerOppositeToolbox\n * @internal\n */\nexport function getCornerOppositeToolbox(\n workspace: WorkspaceSvg, metrics: UiMetrics): Position {\n const leftCorner =\n metrics.toolboxMetrics.position !== toolbox.Position.LEFT &&\n (!workspace.horizontalLayout || workspace.RTL);\n const topCorner = metrics.toolboxMetrics.position === toolbox.Position.BOTTOM;\n const hPosition =\n leftCorner ? horizontalPosition.LEFT : horizontalPosition.RIGHT;\n const vPosition = topCorner ? verticalPosition.TOP : verticalPosition.BOTTOM;\n return {horizontal: hPosition, vertical: vPosition};\n}\n\n/**\n * Returns a position Rect based on a starting position that is bumped\n * so that it doesn't intersect with any of the provided savedPositions. This\n * method does not check that the bumped position is still within bounds.\n *\n * @param startRect The starting position to use.\n * @param margin The margin to use between elements when bumping.\n * @param bumpDir The direction to bump if there is a collision with an existing\n * UI element.\n * @param savedPositions List of rectangles that represent the positions of UI\n * elements already placed.\n * @returns The suggested position rectangle.\n * @alias Blockly.uiPosition.bumpPositionRect\n * @internal\n */\nexport function bumpPositionRect(\n startRect: Rect, margin: number, bumpDir: bumpDirection,\n savedPositions: Rect[]): Rect {\n let top = startRect.top;\n const left = startRect.left;\n const width = startRect.right - startRect.left;\n const height = startRect.bottom - startRect.top;\n\n // Check for collision and bump if needed.\n let boundingRect = startRect;\n for (let i = 0; i < savedPositions.length; i++) {\n const otherEl = savedPositions[i];\n if (boundingRect.intersects(otherEl)) {\n if (bumpDir === bumpDirection.UP) {\n top = otherEl.top - height - margin;\n } else { // bumpDir === bumpDirection.DOWN\n top = otherEl.bottom + margin;\n }\n // Recheck other savedPositions\n boundingRect = new Rect(top, top + height, left, left + width);\n i = -1;\n }\n }\n return boundingRect;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Registers default keyboard shortcuts.\n *\n * @namespace Blockly.ShortcutItems\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.ShortcutItems');\n\nimport {BlockSvg} from './block_svg.js';\nimport * as clipboard from './clipboard.js';\nimport * as common from './common.js';\nimport {Gesture} from './gesture.js';\nimport type {ICopyable} from './interfaces/i_copyable.js';\nimport {KeyboardShortcut, ShortcutRegistry} from './shortcut_registry.js';\nimport {KeyCodes} from './utils/keycodes.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\n\n\n/**\n * Object holding the names of the default shortcut items.\n *\n * @alias Blockly.ShortcutItems.names\n */\nexport enum names {\n ESCAPE = 'escape',\n DELETE = 'delete',\n COPY = 'copy',\n CUT = 'cut',\n PASTE = 'paste',\n UNDO = 'undo',\n REDO = 'redo'\n}\n\n/**\n * Keyboard shortcut to hide chaff on escape.\n *\n * @alias Blockly.ShortcutItems.registerEscape\n */\nexport function registerEscape() {\n const escapeAction: KeyboardShortcut = {\n name: names.ESCAPE,\n preconditionFn(workspace) {\n return !workspace.options.readOnly;\n },\n callback(workspace) {\n // AnyDuringMigration because: Property 'hideChaff' does not exist on\n // type 'Workspace'.\n (workspace as AnyDuringMigration).hideChaff();\n return true;\n },\n keyCodes: [KeyCodes.ESC],\n };\n ShortcutRegistry.registry.register(escapeAction);\n}\n\n/**\n * Keyboard shortcut to delete a block on delete or backspace\n *\n * @alias Blockly.ShortcutItems.registerDelete\n */\nexport function registerDelete() {\n const deleteShortcut: KeyboardShortcut = {\n name: names.DELETE,\n preconditionFn(workspace) {\n const selected = common.getSelected();\n return !workspace.options.readOnly && selected != null &&\n selected.isDeletable();\n },\n callback(workspace, e) {\n // Delete or backspace.\n // Stop the browser from going back to the previous page.\n // Do this first to prevent an error in the delete code from resulting in\n // data loss.\n e.preventDefault();\n // Don't delete while dragging. Jeez.\n if (Gesture.inProgress()) {\n return false;\n }\n (common.getSelected() as BlockSvg).checkAndDelete();\n return true;\n },\n keyCodes: [KeyCodes.DELETE, KeyCodes.BACKSPACE],\n };\n ShortcutRegistry.registry.register(deleteShortcut);\n}\n\n/**\n * Keyboard shortcut to copy a block on ctrl+c, cmd+c, or alt+c.\n *\n * @alias Blockly.ShortcutItems.registerCopy\n */\nexport function registerCopy() {\n const ctrlC = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.C, [KeyCodes.CTRL]);\n const altC =\n ShortcutRegistry.registry.createSerializedKey(KeyCodes.C, [KeyCodes.ALT]);\n const metaC = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.C, [KeyCodes.META]);\n\n const copyShortcut: KeyboardShortcut = {\n name: names.COPY,\n preconditionFn(workspace) {\n const selected = common.getSelected();\n return !workspace.options.readOnly && !Gesture.inProgress() &&\n selected != null && selected.isDeletable() && selected.isMovable();\n },\n callback(workspace, e) {\n // Prevent the default copy behavior, which may beep or otherwise indicate\n // an error due to the lack of a selection.\n e.preventDefault();\n // AnyDuringMigration because: Property 'hideChaff' does not exist on\n // type 'Workspace'.\n (workspace as AnyDuringMigration).hideChaff();\n clipboard.copy(common.getSelected() as ICopyable);\n return true;\n },\n keyCodes: [ctrlC, altC, metaC],\n };\n ShortcutRegistry.registry.register(copyShortcut);\n}\n\n/**\n * Keyboard shortcut to copy and delete a block on ctrl+x, cmd+x, or alt+x.\n *\n * @alias Blockly.ShortcutItems.registerCut\n */\nexport function registerCut() {\n const ctrlX = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.X, [KeyCodes.CTRL]);\n const altX =\n ShortcutRegistry.registry.createSerializedKey(KeyCodes.X, [KeyCodes.ALT]);\n const metaX = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.X, [KeyCodes.META]);\n\n const cutShortcut: KeyboardShortcut = {\n name: names.CUT,\n preconditionFn(workspace) {\n const selected = common.getSelected();\n return !workspace.options.readOnly && !Gesture.inProgress() &&\n selected != null && selected instanceof BlockSvg &&\n selected.isDeletable() && selected.isMovable() &&\n !selected.workspace!.isFlyout;\n },\n callback() {\n const selected = common.getSelected();\n if (!selected) {\n // Shouldn't happen but appeases the type system\n return false;\n }\n clipboard.copy(selected);\n (selected as BlockSvg).checkAndDelete();\n return true;\n },\n keyCodes: [ctrlX, altX, metaX],\n };\n\n ShortcutRegistry.registry.register(cutShortcut);\n}\n\n/**\n * Keyboard shortcut to paste a block on ctrl+v, cmd+v, or alt+v.\n *\n * @alias Blockly.ShortcutItems.registerPaste\n */\nexport function registerPaste() {\n const ctrlV = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.V, [KeyCodes.CTRL]);\n const altV =\n ShortcutRegistry.registry.createSerializedKey(KeyCodes.V, [KeyCodes.ALT]);\n const metaV = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.V, [KeyCodes.META]);\n\n const pasteShortcut: KeyboardShortcut = {\n name: names.PASTE,\n preconditionFn(workspace) {\n return !workspace.options.readOnly && !Gesture.inProgress();\n },\n callback() {\n return !!(clipboard.paste());\n },\n keyCodes: [ctrlV, altV, metaV],\n };\n\n ShortcutRegistry.registry.register(pasteShortcut);\n}\n\n/**\n * Keyboard shortcut to undo the previous action on ctrl+z, cmd+z, or alt+z.\n *\n * @alias Blockly.ShortcutItems.registerUndo\n */\nexport function registerUndo() {\n const ctrlZ = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.Z, [KeyCodes.CTRL]);\n const altZ =\n ShortcutRegistry.registry.createSerializedKey(KeyCodes.Z, [KeyCodes.ALT]);\n const metaZ = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.Z, [KeyCodes.META]);\n\n const undoShortcut: KeyboardShortcut = {\n name: names.UNDO,\n preconditionFn(workspace) {\n return !workspace.options.readOnly && !Gesture.inProgress();\n },\n callback(workspace) {\n // 'z' for undo 'Z' is for redo.\n (workspace as WorkspaceSvg).hideChaff();\n workspace.undo(false);\n return true;\n },\n keyCodes: [ctrlZ, altZ, metaZ],\n };\n ShortcutRegistry.registry.register(undoShortcut);\n}\n\n/**\n * Keyboard shortcut to redo the previous action on ctrl+shift+z, cmd+shift+z,\n * or alt+shift+z.\n *\n * @alias Blockly.ShortcutItems.registerRedo\n */\nexport function registerRedo() {\n const ctrlShiftZ = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.Z, [KeyCodes.SHIFT, KeyCodes.CTRL]);\n const altShiftZ = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.Z, [KeyCodes.SHIFT, KeyCodes.ALT]);\n const metaShiftZ = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.Z, [KeyCodes.SHIFT, KeyCodes.META]);\n // Ctrl-y is redo in Windows. Command-y is never valid on Macs.\n const ctrlY = ShortcutRegistry.registry.createSerializedKey(\n KeyCodes.Y, [KeyCodes.CTRL]);\n\n const redoShortcut: KeyboardShortcut = {\n name: names.REDO,\n preconditionFn(workspace) {\n return !Gesture.inProgress() && !workspace.options.readOnly;\n },\n callback(workspace) {\n // 'z' for undo 'Z' is for redo.\n (workspace as WorkspaceSvg).hideChaff();\n workspace.undo(true);\n return true;\n },\n keyCodes: [ctrlShiftZ, altShiftZ, metaShiftZ, ctrlY],\n };\n ShortcutRegistry.registry.register(redoShortcut);\n}\n\n/**\n * Registers all default keyboard shortcut item. This should be called once per\n * instance of KeyboardShortcutRegistry.\n *\n * @alias Blockly.ShortcutItems.registerDefaultShortcuts\n * @internal\n */\nexport function registerDefaultShortcuts() {\n registerEscape();\n registerDelete();\n registerCopy();\n registerCut();\n registerPaste();\n registerUndo();\n registerRedo();\n}\n\nregisterDefaultShortcuts();\n","/**\n * @license\n * Copyright 2012 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Utility functions for handling procedures.\n *\n * @namespace Blockly.Procedures\n */\nimport * as goog from '../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.Procedures');\n\n// Unused import preserved for side-effects. Remove if unneeded.\nimport './events/events_block_change.js';\n\nimport type {Block} from './block.js';\nimport type {BlockSvg} from './block_svg.js';\nimport {Blocks} from './blocks.js';\nimport * as common from './common.js';\nimport type {Abstract} from './events/events_abstract.js';\nimport type {BubbleOpen} from './events/events_bubble_open.js';\nimport * as eventUtils from './events/utils.js';\nimport {Field, UnattachedFieldError} from './field.js';\nimport {Msg} from './msg.js';\nimport {Names} from './names.js';\nimport * as utilsXml from './utils/xml.js';\nimport * as Variables from './variables.js';\nimport type {Workspace} from './workspace.js';\nimport type {WorkspaceSvg} from './workspace_svg.js';\nimport * as Xml from './xml.js';\n\n\n/**\n * String for use in the \"custom\" attribute of a category in toolbox XML.\n * This string indicates that the category should be dynamically populated with\n * procedure blocks.\n * See also Blockly.Variables.CATEGORY_NAME and\n * Blockly.VariablesDynamic.CATEGORY_NAME.\n *\n * @alias Blockly.Procedures.CATEGORY_NAME\n */\nexport const CATEGORY_NAME = 'PROCEDURE';\n\n/**\n * The default argument for a procedures_mutatorarg block.\n *\n * @alias Blockly.Procedures.DEFAULT_ARG\n */\nexport const DEFAULT_ARG = 'x';\n\nexport type ProcedureTuple = [string, string[], boolean];\n\n/**\n * Procedure block type.\n *\n * @alias Blockly.Procedures.ProcedureBlock\n */\nexport interface ProcedureBlock {\n getProcedureCall: () => string;\n renameProcedure: (p1: string, p2: string) => void;\n getProcedureDef: () => ProcedureTuple;\n}\n\n/**\n * Find all user-created procedure definitions in a workspace.\n *\n * @param root Root workspace.\n * @returns Pair of arrays, the first contains procedures without return\n * variables, the second with. Each procedure is defined by a three-element\n * list of name, parameter list, and return value boolean.\n * @alias Blockly.Procedures.allProcedures\n */\nexport function allProcedures(root: Workspace):\n [ProcedureTuple[], ProcedureTuple[]] {\n const proceduresNoReturn =\n root.getBlocksByType('procedures_defnoreturn', false)\n .map(function(block) {\n return (block as unknown as ProcedureBlock).getProcedureDef();\n });\n const proceduresReturn =\n root.getBlocksByType('procedures_defreturn', false).map(function(block) {\n return (block as unknown as ProcedureBlock).getProcedureDef();\n });\n proceduresNoReturn.sort(procTupleComparator);\n proceduresReturn.sort(procTupleComparator);\n return [proceduresNoReturn, proceduresReturn];\n}\n\n/**\n * Comparison function for case-insensitive sorting of the first element of\n * a tuple.\n *\n * @param ta First tuple.\n * @param tb Second tuple.\n * @returns -1, 0, or 1 to signify greater than, equality, or less than.\n */\nfunction procTupleComparator(ta: ProcedureTuple, tb: ProcedureTuple): number {\n return ta[0].localeCompare(tb[0], undefined, {sensitivity: 'base'});\n}\n\n/**\n * Ensure two identically-named procedures don't exist.\n * Take the proposed procedure name, and return a legal name i.e. one that\n * is not empty and doesn't collide with other procedures.\n *\n * @param name Proposed procedure name.\n * @param block Block to disambiguate.\n * @returns Non-colliding name.\n * @alias Blockly.Procedures.findLegalName\n */\nexport function findLegalName(name: string, block: Block): string {\n if (block.isInFlyout) {\n // Flyouts can have multiple procedures called 'do something'.\n return name;\n }\n name = name || Msg['UNNAMED_KEY'] || 'unnamed';\n while (!isLegalName(name, block.workspace, block)) {\n // Collision with another procedure.\n const r = name.match(/^(.*?)(\\d+)$/);\n if (!r) {\n name += '2';\n } else {\n name = r[1] + (parseInt(r[2]) + 1);\n }\n }\n return name;\n}\n/**\n * Does this procedure have a legal name? Illegal names include names of\n * procedures already defined.\n *\n * @param name The questionable name.\n * @param workspace The workspace to scan for collisions.\n * @param opt_exclude Optional block to exclude from comparisons (one doesn't\n * want to collide with oneself).\n * @returns True if the name is legal.\n */\nfunction isLegalName(\n name: string, workspace: Workspace, opt_exclude?: Block): boolean {\n return !isNameUsed(name, workspace, opt_exclude);\n}\n\n/**\n * Return if the given name is already a procedure name.\n *\n * @param name The questionable name.\n * @param workspace The workspace to scan for collisions.\n * @param opt_exclude Optional block to exclude from comparisons (one doesn't\n * want to collide with oneself).\n * @returns True if the name is used, otherwise return false.\n * @alias Blockly.Procedures.isNameUsed\n */\nexport function isNameUsed(\n name: string, workspace: Workspace, opt_exclude?: Block): boolean {\n const blocks = workspace.getAllBlocks(false);\n // Iterate through every block and check the name.\n for (let i = 0; i < blocks.length; i++) {\n if (blocks[i] === opt_exclude) {\n continue;\n }\n // Assume it is a procedure block so we can check.\n const procedureBlock = blocks[i] as unknown as ProcedureBlock;\n if (procedureBlock.getProcedureDef) {\n const procName = procedureBlock.getProcedureDef();\n if (Names.equals(procName[0], name)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Rename a procedure. Called by the editable field.\n *\n * @param name The proposed new name.\n * @returns The accepted name.\n * @alias Blockly.Procedures.rename\n */\nexport function rename(this: Field, name: string): string {\n const block = this.getSourceBlock();\n if (!block) {\n throw new UnattachedFieldError();\n }\n\n // Strip leading and trailing whitespace. Beyond this, all names are legal.\n name = name.trim();\n\n const legalName = findLegalName(name, block);\n const oldName = this.getValue();\n if (oldName !== name && oldName !== legalName) {\n // Rename any callers.\n const blocks = block.workspace.getAllBlocks(false);\n for (let i = 0; i < blocks.length; i++) {\n // Assume it is a procedure so we can check.\n const procedureBlock = blocks[i] as unknown as ProcedureBlock;\n if (procedureBlock.renameProcedure) {\n procedureBlock.renameProcedure(oldName as string, legalName);\n }\n }\n }\n return legalName;\n}\n\n/**\n * Construct the blocks required by the flyout for the procedure category.\n *\n * @param workspace The workspace containing procedures.\n * @returns Array of XML block elements.\n * @alias Blockly.Procedures.flyoutCategory\n */\nexport function flyoutCategory(workspace: WorkspaceSvg): Element[] {\n const xmlList = [];\n if (Blocks['procedures_defnoreturn']) {\n // \n // do something\n // \n const block = utilsXml.createElement('block');\n block.setAttribute('type', 'procedures_defnoreturn');\n block.setAttribute('gap', '16');\n const nameField = utilsXml.createElement('field');\n nameField.setAttribute('name', 'NAME');\n nameField.appendChild(\n utilsXml.createTextNode(Msg['PROCEDURES_DEFNORETURN_PROCEDURE']));\n block.appendChild(nameField);\n xmlList.push(block);\n }\n if (Blocks['procedures_defreturn']) {\n // \n // do something\n // \n const block = utilsXml.createElement('block');\n block.setAttribute('type', 'procedures_defreturn');\n block.setAttribute('gap', '16');\n const nameField = utilsXml.createElement('field');\n nameField.setAttribute('name', 'NAME');\n nameField.appendChild(\n utilsXml.createTextNode(Msg['PROCEDURES_DEFRETURN_PROCEDURE']));\n block.appendChild(nameField);\n xmlList.push(block);\n }\n if (Blocks['procedures_ifreturn']) {\n // \n const block = utilsXml.createElement('block');\n block.setAttribute('type', 'procedures_ifreturn');\n block.setAttribute('gap', '16');\n xmlList.push(block);\n }\n if (xmlList.length) {\n // Add slightly larger gap between system blocks and user calls.\n xmlList[xmlList.length - 1].setAttribute('gap', '24');\n }\n\n /**\n * Add items to xmlList for each listed procedure.\n *\n * @param procedureList A list of procedures, each of which is defined by a\n * three-element list of name, parameter list, and return value boolean.\n * @param templateName The type of the block to generate.\n */\n function populateProcedures(\n procedureList: ProcedureTuple[], templateName: string) {\n for (let i = 0; i < procedureList.length; i++) {\n const name = procedureList[i][0];\n const args = procedureList[i][1];\n // \n // \n // \n // \n // \n const block = utilsXml.createElement('block');\n block.setAttribute('type', templateName);\n block.setAttribute('gap', '16');\n const mutation = utilsXml.createElement('mutation');\n mutation.setAttribute('name', name);\n block.appendChild(mutation);\n for (let j = 0; j < args.length; j++) {\n const arg = utilsXml.createElement('arg');\n arg.setAttribute('name', args[j]);\n mutation.appendChild(arg);\n }\n xmlList.push(block);\n }\n }\n\n const tuple = allProcedures(workspace);\n populateProcedures(tuple[0], 'procedures_callnoreturn');\n populateProcedures(tuple[1], 'procedures_callreturn');\n return xmlList;\n}\n\n/**\n * Updates the procedure mutator's flyout so that the arg block is not a\n * duplicate of another arg.\n *\n * @param workspace The procedure mutator's workspace. This workspace's flyout\n * is what is being updated.\n */\nfunction updateMutatorFlyout(workspace: WorkspaceSvg) {\n const usedNames = [];\n const blocks = workspace.getBlocksByType('procedures_mutatorarg', false);\n for (let i = 0, block; block = blocks[i]; i++) {\n usedNames.push(block.getFieldValue('NAME'));\n }\n\n const xmlElement = utilsXml.createElement('xml');\n const argBlock = utilsXml.createElement('block');\n argBlock.setAttribute('type', 'procedures_mutatorarg');\n const nameField = utilsXml.createElement('field');\n nameField.setAttribute('name', 'NAME');\n const argValue =\n Variables.generateUniqueNameFromOptions(DEFAULT_ARG, usedNames);\n const fieldContent = utilsXml.createTextNode(argValue);\n\n nameField.appendChild(fieldContent);\n argBlock.appendChild(nameField);\n xmlElement.appendChild(argBlock);\n\n workspace.updateToolbox(xmlElement);\n}\n\n/**\n * Listens for when a procedure mutator is opened. Then it triggers a flyout\n * update and adds a mutator change listener to the mutator workspace.\n *\n * @param e The event that triggered this listener.\n * @alias Blockly.Procedures.mutatorOpenListener\n * @internal\n */\nexport function mutatorOpenListener(e: Abstract) {\n if (e.type !== eventUtils.BUBBLE_OPEN) {\n return;\n }\n const bubbleEvent = e as BubbleOpen;\n if (!(bubbleEvent.bubbleType === 'mutator' && bubbleEvent.isOpen) ||\n !bubbleEvent.blockId) {\n return;\n }\n const workspaceId = (bubbleEvent.workspaceId);\n const block = common.getWorkspaceById(workspaceId)!.getBlockById(\n bubbleEvent.blockId) as BlockSvg;\n const type = block.type;\n if (type !== 'procedures_defnoreturn' && type !== 'procedures_defreturn') {\n return;\n }\n const workspace = block.mutator!.getWorkspace() as WorkspaceSvg;\n updateMutatorFlyout(workspace);\n workspace.addChangeListener(mutatorChangeListener);\n}\n/**\n * Listens for changes in a procedure mutator and triggers flyout updates when\n * necessary.\n *\n * @param e The event that triggered this listener.\n */\nfunction mutatorChangeListener(e: Abstract) {\n if (e.type !== eventUtils.BLOCK_CREATE &&\n e.type !== eventUtils.BLOCK_DELETE &&\n e.type !== eventUtils.BLOCK_CHANGE) {\n return;\n }\n const workspaceId = e.workspaceId as string;\n const workspace = common.getWorkspaceById(workspaceId) as WorkspaceSvg;\n updateMutatorFlyout(workspace);\n}\n\n/**\n * Find all the callers of a named procedure.\n *\n * @param name Name of procedure.\n * @param workspace The workspace to find callers in.\n * @returns Array of caller blocks.\n * @alias Blockly.Procedures.getCallers\n */\nexport function getCallers(name: string, workspace: Workspace): Block[] {\n const callers = [];\n const blocks = workspace.getAllBlocks(false);\n // Iterate through every block and check the name.\n for (let i = 0; i < blocks.length; i++) {\n // Assume it is a procedure block so we can check.\n const procedureBlock = blocks[i] as unknown as ProcedureBlock;\n if (procedureBlock.getProcedureCall) {\n const procName = procedureBlock.getProcedureCall();\n // Procedure name may be null if the block is only half-built.\n if (procName && Names.equals(procName, name)) {\n callers.push(blocks[i]);\n }\n }\n }\n return callers;\n}\n\n/**\n * When a procedure definition changes its parameters, find and edit all its\n * callers.\n *\n * @param defBlock Procedure definition block.\n * @alias Blockly.Procedures.mutateCallers\n */\nexport function mutateCallers(defBlock: Block) {\n const oldRecordUndo = eventUtils.getRecordUndo();\n const procedureBlock = defBlock as unknown as ProcedureBlock;\n const name = procedureBlock.getProcedureDef()[0];\n const xmlElement = defBlock.mutationToDom!(true);\n const callers = getCallers(name, defBlock.workspace);\n for (let i = 0, caller; caller = callers[i]; i++) {\n const oldMutationDom = caller.mutationToDom!();\n const oldMutation = oldMutationDom && Xml.domToText(oldMutationDom);\n if (caller.domToMutation) {\n caller.domToMutation(xmlElement);\n }\n const newMutationDom = caller.mutationToDom!();\n const newMutation = newMutationDom && Xml.domToText(newMutationDom);\n if (oldMutation !== newMutation) {\n // Fire a mutation on every caller block. But don't record this as an\n // undo action since it is deterministically tied to the procedure's\n // definition mutation.\n eventUtils.setRecordUndo(false);\n eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))(\n caller, 'mutation', null, oldMutation, newMutation));\n eventUtils.setRecordUndo(oldRecordUndo);\n }\n }\n}\n\n/**\n * Find the definition block for the named procedure.\n *\n * @param name Name of procedure.\n * @param workspace The workspace to search.\n * @returns The procedure definition block, or null not found.\n * @alias Blockly.Procedures.getDefinition\n */\nexport function getDefinition(name: string, workspace: Workspace): Block|null {\n // Do not assume procedure is a top block. Some languages allow nested\n // procedures. Also do not assume it is one of the built-in blocks. Only\n // rely on getProcedureDef.\n const blocks = workspace.getAllBlocks(false);\n for (let i = 0; i < blocks.length; i++) {\n // Assume it is a procedure block so we can check.\n const procedureBlock = blocks[i] as unknown as ProcedureBlock;\n if (procedureBlock.getProcedureDef) {\n const tuple = procedureBlock.getProcedureDef();\n if (tuple && Names.equals(tuple[0], name)) {\n return blocks[i]; // Can't use procedureBlock var due to type check.\n }\n }\n }\n return null;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * An object that provides constants for rendering blocks.\n *\n * @class\n */\nimport * as goog from '../../../closure/goog/goog.js';\ngoog.declareModuleId('Blockly.blockRendering.ConstantProvider');\n\nimport {ConnectionType} from '../../connection_type.js';\nimport type {RenderedConnection} from '../../rendered_connection.js';\nimport type {BlockStyle, Theme} from '../../theme.js';\nimport * as colour from '../../utils/colour.js';\nimport * as dom from '../../utils/dom.js';\nimport * as parsing from '../../utils/parsing.js';\nimport {Svg} from '../../utils/svg.js';\nimport * as svgPaths from '../../utils/svg_paths.js';\n\n\n/** An object containing sizing and path information about outside corners. */\nexport interface OutsideCorners {\n topLeft: string;\n topRight: string;\n bottomRight: string;\n bottomLeft: string;\n rightHeight: number;\n}\n\n/** An object containing sizing and path information about inside corners. */\nexport interface InsideCorners {\n width: number;\n height: number;\n pathTop: string;\n pathBottom: string;\n}\n\n/** An object containing sizing and path information about a start hat. */\nexport interface StartHat {\n height: number;\n width: number;\n path: string;\n}\n\n/** An object containing sizing and path information about a notch. */\nexport interface Notch {\n type: number;\n width: number;\n height: number;\n pathLeft: string;\n pathRight: string;\n}\n\n/** An object containing sizing and path information about a puzzle tab. */\nexport interface PuzzleTab {\n type: number;\n width: number;\n height: number;\n pathDown: string|((p1: number) => string);\n pathUp: string|((p1: number) => string);\n}\n\n/**\n * An object containing sizing and path information about collapsed block\n * indicators.\n */\nexport interface JaggedTeeth {\n height: number;\n width: number;\n path: string;\n}\n\nexport type BaseShape = {\n type: number; width: number; height: number;\n};\n\n/** An object containing sizing and type information about a dynamic shape. */\nexport type DynamicShape = {\n type: number; width: (p1: number) => number; height: (p1: number) => number;\n isDynamic: true;\n connectionOffsetY: (p1: number) => number;\n connectionOffsetX: (p1: number) => number;\n pathDown: (p1: number) => string;\n pathUp: (p1: number) => string;\n pathRightDown: (p1: number) => string;\n pathRightUp: (p1: number) => string;\n};\n\n/** An object containing sizing and type information about a shape. */\nexport type Shape = BaseShape|DynamicShape;\n\n/**\n * Returns whether the shape is dynamic or not.\n *\n * @param shape The shape to check for dynamic-ness.\n * @returns Whether the shape is a dynamic shape or not.\n */\nexport function isDynamicShape(shape: Shape): shape is DynamicShape {\n return (shape as DynamicShape).isDynamic;\n}\n\n/**\n * An object that provides constants for rendering blocks.\n *\n * @alias Blockly.blockRendering.ConstantProvider\n */\nexport class ConstantProvider {\n /** The size of an empty spacer. */\n NO_PADDING = 0;\n\n /** The size of small padding. */\n SMALL_PADDING = 3;\n\n /** The size of medium padding. */\n MEDIUM_PADDING = 5;\n\n /** The size of medium-large padding. */\n MEDIUM_LARGE_PADDING = 8;\n\n /** The size of large padding. */\n LARGE_PADDING = 10;\n TALL_INPUT_FIELD_OFFSET_Y: number;\n\n /** The height of the puzzle tab used for input and output connections. */\n TAB_HEIGHT = 15;\n\n /**\n * The offset from the top of the block at which a puzzle tab is positioned.\n */\n TAB_OFFSET_FROM_TOP = 5;\n\n /**\n * Vertical overlap of the puzzle tab, used to make it look more like a\n * puzzle piece.\n */\n TAB_VERTICAL_OVERLAP = 2.5;\n\n /** The width of the puzzle tab used for input and output connections. */\n TAB_WIDTH = 8;\n\n /** The width of the notch used for previous and next connections. */\n NOTCH_WIDTH = 15;\n\n /** The height of the notch used for previous and next connections. */\n NOTCH_HEIGHT = 4;\n\n /** The minimum width of the block. */\n MIN_BLOCK_WIDTH = 12;\n EMPTY_BLOCK_SPACER_HEIGHT = 16;\n DUMMY_INPUT_MIN_HEIGHT: number;\n DUMMY_INPUT_SHADOW_MIN_HEIGHT: number;\n\n /** Rounded corner radius. */\n CORNER_RADIUS = 8;\n\n /**\n * Offset from the left side of a block or the inside of a statement input\n * to the left side of the notch.\n */\n NOTCH_OFFSET_LEFT = 15;\n STATEMENT_INPUT_NOTCH_OFFSET: number;\n\n STATEMENT_BOTTOM_SPACER = 0;\n STATEMENT_INPUT_PADDING_LEFT = 20;\n\n /** Vertical padding between consecutive statement inputs. */\n BETWEEN_STATEMENT_PADDING_Y = 4;\n TOP_ROW_MIN_HEIGHT: number;\n TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT: number;\n BOTTOM_ROW_MIN_HEIGHT: number;\n BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT: number;\n\n /**\n * Whether to add a 'hat' on top of all blocks with no previous or output\n * connections. Can be overridden by 'hat' property on Theme.BlockStyle.\n */\n ADD_START_HATS = false;\n\n /** Height of the top hat. */\n START_HAT_HEIGHT = 15;\n\n /** Width of the top hat. */\n START_HAT_WIDTH = 100;\n\n SPACER_DEFAULT_HEIGHT = 15;\n\n MIN_BLOCK_HEIGHT = 24;\n\n EMPTY_INLINE_INPUT_PADDING = 14.5;\n EMPTY_INLINE_INPUT_HEIGHT: number;\n\n EXTERNAL_VALUE_INPUT_PADDING = 2;\n EMPTY_STATEMENT_INPUT_HEIGHT: number;\n START_POINT: string;\n\n /** Height of SVG path for jagged teeth at the end of collapsed blocks. */\n JAGGED_TEETH_HEIGHT = 12;\n\n /** Width of SVG path for jagged teeth at the end of collapsed blocks. */\n JAGGED_TEETH_WIDTH = 6;\n\n /** Point size of text. */\n FIELD_TEXT_FONTSIZE = 11;\n\n /** Text font weight. */\n FIELD_TEXT_FONTWEIGHT = 'normal';\n\n /** Text font family. */\n FIELD_TEXT_FONTFAMILY = 'sans-serif';\n\n /**\n * Height of text. This constant is dynamically set in\n * `setFontConstants_` to be the height of the text based on the font\n * used.\n */\n FIELD_TEXT_HEIGHT = -1; // Dynamically set.\n\n /**\n * Text baseline. This constant is dynamically set in `setFontConstants_`\n * to be the baseline of the text based on the font used.\n */\n FIELD_TEXT_BASELINE = -1; // Dynamically set.\n\n /** A field's border rect corner radius. */\n FIELD_BORDER_RECT_RADIUS = 4;\n\n /** A field's border rect default height. */\n FIELD_BORDER_RECT_HEIGHT = 16;\n\n /** A field's border rect X padding. */\n FIELD_BORDER_RECT_X_PADDING = 5;\n\n /** A field's border rect Y padding. */\n FIELD_BORDER_RECT_Y_PADDING = 3;\n\n /**\n * The backing colour of a field's border rect.\n *\n * @internal\n */\n FIELD_BORDER_RECT_COLOUR = '#fff';\n FIELD_TEXT_BASELINE_CENTER: boolean;\n FIELD_DROPDOWN_BORDER_RECT_HEIGHT: number;\n\n /**\n * Whether or not a dropdown field should add a border rect when in a shadow\n * block.\n */\n FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW = false;\n\n /**\n * Whether or not a dropdown field's div should be coloured to match the\n * block colours.\n */\n FIELD_DROPDOWN_COLOURED_DIV = false;\n\n /** Whether or not a dropdown field uses a text or SVG arrow. */\n FIELD_DROPDOWN_SVG_ARROW = false;\n FIELD_DROPDOWN_SVG_ARROW_PADDING: number;\n\n /** A dropdown field's SVG arrow size. */\n FIELD_DROPDOWN_SVG_ARROW_SIZE = 12;\n FIELD_DROPDOWN_SVG_ARROW_DATAURI: string;\n\n /**\n * Whether or not to show a box shadow around the widget div. This is only a\n * feature of full block fields.\n */\n FIELD_TEXTINPUT_BOX_SHADOW = false;\n\n /**\n * Whether or not the colour field should display its colour value on the\n * entire block.\n */\n FIELD_COLOUR_FULL_BLOCK = false;\n\n /** A colour field's default width. */\n FIELD_COLOUR_DEFAULT_WIDTH = 26;\n FIELD_COLOUR_DEFAULT_HEIGHT: number;\n FIELD_CHECKBOX_X_OFFSET: number;\n /** @internal */\n randomIdentifier: string;\n\n /**\n * The defs tag that contains all filters and patterns for this Blockly\n * instance.\n */\n private defs_: SVGElement|null = null;\n\n /**\n * The ID of the emboss filter, or the empty string if no filter is set.\n *\n * @internal\n */\n embossFilterId = '';\n\n /** The element to use for highlighting, or null if not set. */\n private embossFilter_: SVGElement|null = null;\n\n /**\n * The ID of the disabled pattern, or the empty string if no pattern is set.\n *\n * @internal\n */\n disabledPatternId = '';\n\n /**\n * The element to use for disabled blocks, or null if not set.\n */\n private disabledPattern_: SVGElement|null = null;\n\n /**\n * The ID of the debug filter, or the empty string if no pattern is set.\n */\n debugFilterId = '';\n\n /**\n * The element to use for a debug highlight, or null if not set.\n */\n private debugFilter_: SVGElement|null = null;\n\n /** The