UNPKG

@blockly/workspace-backpack

Version:
3 lines 19 kB
/*! For license information please see index.js.LICENSE.txt */ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("blockly/core"));else if("function"==typeof define&&define.amd)define(["blockly/core"],e);else{var o="object"==typeof exports?e(require("blockly/core")):e(t.Blockly);for(var s in o)("object"==typeof exports?exports:t)[s]=o[s]}}(this,(t=>(()=>{"use strict";var e={370:e=>{e.exports=t}},o={};function s(t){var i=o[t];if(void 0!==i)return i.exports;var n=o[t]={exports:{}};return e[t](n,n.exports,s),n.exports}s.d=(t,e)=>{for(var o in e)s.o(e,o)&&!s.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};s.r(i),s.d(i,{Backpack:()=>I,BackpackChange:()=>a,BackpackOpen:()=>r,backpackChange:()=>c,backpackOpen:()=>g});var n=s(370);n.Msg.COPY_ALL_TO_BACKPACK="Copy All Blocks to Backpack",n.Msg.COPY_TO_BACKPACK="Copy to Backpack",n.Msg.EMPTY_BACKPACK="Empty",n.Msg.PASTE_ALL_FROM_BACKPACK="Paste All Blocks from Backpack",n.Msg.REMOVE_FROM_BACKPACK="Remove from Backpack";const g="backpack_open";class r extends n.Events.UiBase{constructor(t,e){super(e),this.isOpen=t,this.type=g}toJson(){const t=super.toJson();return t.isOpen=this.isOpen,t}static fromJson(t,e,o){const s=super.fromJson(t,e,o);return s.isOpen=t.isOpen,s}}n.registry.register(n.registry.Type.EVENT,g,r);const c="backpack_change";class a extends n.Events.UiBase{constructor(){super(...arguments),this.type=c}}function l(t){return void 0!==t.toFlyoutInfo}n.registry.register(n.registry.Type.EVENT,c,a);class I extends n.DragTarget{constructor(t,e){super(),this.workspace_=t,this.id="backpack",this.flyout_=null,this.contents_=[],this.boundEvents=[],this.left_=0,this.top_=0,this.WIDTH_=40,this.HEIGHT_=60,this.MARGIN_VERTICAL_=20,this.MARGIN_HORIZONTAL_=20,this.HOTSPOT_MARGIN_=10,this.svgGroup_=null,this.svgImg_=null,this.spriteTop=10,this.spriteLeft=20,this.spriteSize=80,this.initialized_=!1,this.options=function(t){var e,o,s;const i={allowEmptyBackpackOpen:!0,useFilledBackpackImage:!1,skipSerializerRegistration:!1,contextMenu:{emptyBackpack:!0,removeFromBackpack:!0,copyToBackpack:!0,copyAllToBackpack:!1,pasteAllToBackpack:!1,disablePreconditionChecks:!1}};return t?{allowEmptyBackpackOpen:null!==(e=t.allowEmptyBackpackOpen)&&void 0!==e?e:i.allowEmptyBackpackOpen,useFilledBackpackImage:null!==(o=t.useFilledBackpackImage)&&void 0!==o?o:i.useFilledBackpackImage,skipSerializerRegistration:null!==(s=t.skipSerializerRegistration)&&void 0!==s?s:i.skipSerializerRegistration,contextMenu:Object.assign(Object.assign({},i.contextMenu),t.contextMenu)}:i}(e),this.registerSerializer()}registerSerializer(){this.options.skipSerializerRegistration||n.registry.hasItem(n.registry.Type.SERIALIZER,"backpack")||n.serialization.registry.register("backpack",new A)}init(){var t,e,o;this.workspace_.getComponentManager().addComponent({component:this,weight:2,capabilities:[n.ComponentManager.Capability.AUTOHIDEABLE,n.ComponentManager.Capability.DRAG_TARGET,n.ComponentManager.Capability.POSITIONABLE]}),this.initFlyout(),this.createDom(),this.attachListeners(),this.options.contextMenu&&(t=this.options.contextMenu,e=this.workspace_,t.emptyBackpack&&function(t){const e=t.configureContextMenu;t.configureContextMenu=(o,s)=>{const i=t.getComponentManager().getComponent("backpack"),g=i&&i.getClientRect();if(s instanceof PointerEvent&&g&&(!i||!g.contains(s.clientX,s.clientY)))return void(e&&e.call(null,o,s));o.length=0;const r={text:n.Msg.EMPTY_BACKPACK,enabled:!!i.getCount(),callback:function(){i.empty()},scope:{workspace:t},weight:0};o.push(r)}}(e),t.removeFromBackpack&&function(){if(n.ContextMenuRegistry.registry.getItem("remove_from_backpack"))return;const t={displayText:n.Msg.REMOVE_FROM_BACKPACK,preconditionFn:function(t){if(!t.block)return"hidden";const e=t.block.workspace;if(e.isFlyout&&e.targetWorkspace){const t=e.targetWorkspace.getComponentManager().getComponent("backpack"),o=t&&t.getFlyout();if(t&&o&&o.getWorkspace().id===e.id)return"enabled"}return"hidden"},callback:function(t){t.block&&t.block.workspace.targetWorkspace&&t.block.workspace.targetWorkspace.getComponentManager().getComponent("backpack").removeBlock(t.block)},scopeType:n.ContextMenuRegistry.ScopeType.BLOCK,id:"remove_from_backpack",weight:200};n.ContextMenuRegistry.registry.register(t)}(),t.copyToBackpack&&function(t){if(n.ContextMenuRegistry.registry.getItem("copy_to_backpack"))return;const e={displayText:function(t){if(!t.block)return"";const e=t.block.workspace.getComponentManager().getComponent("backpack").getCount();return`${n.Msg.COPY_TO_BACKPACK} (${e})`},preconditionFn:function(e){if(!e.block)return"hidden";const o=e.block.workspace;if(!o.isFlyout){const s=o.getComponentManager().getComponent("backpack");if(s)return t?"enabled":s.containsBlock(e.block)?"disabled":"enabled"}return"hidden"},callback:function(t){t.block&&t.block.workspace.getComponentManager().getComponent("backpack").addBlock(t.block)},scopeType:n.ContextMenuRegistry.ScopeType.BLOCK,id:"copy_to_backpack",weight:200};n.ContextMenuRegistry.registry.register(e)}(null!==(o=t.disablePreconditionChecks)&&void 0!==o&&o),t.copyAllToBackpack&&function(){if(n.ContextMenuRegistry.registry.getItem("copy_all_to_backpack"))return;const t={displayText:n.Msg.COPY_ALL_TO_BACKPACK,preconditionFn:function(t){const e=t.workspace;return e&&!e.isFlyout&&e.getComponentManager().getComponent("backpack")?"enabled":"hidden"},callback:function(t){const e=t.workspace;e&&e.getComponentManager().getComponent("backpack").addBlocks(e.getTopBlocks(!0))},scopeType:n.ContextMenuRegistry.ScopeType.WORKSPACE,id:"copy_all_to_backpack",weight:200};n.ContextMenuRegistry.registry.register(t)}(),t.pasteAllToBackpack&&function(){if(n.ContextMenuRegistry.registry.getItem("paste_all_from_backpack"))return;const t={displayText:function(t){if(!t.workspace)return"";const e=t.workspace.getComponentManager().getComponent("backpack").getCount();return`${n.Msg.PASTE_ALL_FROM_BACKPACK} (${e})`},preconditionFn:function(t){const e=t.workspace;return e&&!e.isFlyout&&e.getComponentManager().getComponent("backpack")?"enabled":"hidden"},callback:function(t){const e=t.workspace;e&&e.getComponentManager().getComponent("backpack").getContents().forEach((t=>{n.serialization.blocks.append(JSON.parse(t),e).scheduleSnapAndBump()}))},scopeType:n.ContextMenuRegistry.ScopeType.WORKSPACE,id:"paste_all_from_backpack",weight:200};n.ContextMenuRegistry.registry.register(t)}()),this.initialized_=!0,this.workspace_.resize()}dispose(){this.svgGroup_&&n.utils.dom.removeNode(this.svgGroup_);for(const t of this.boundEvents)n.browserEvents.unbind(t);this.boundEvents.length=0}initFlyout(){var t;const e=new n.Options({scrollbars:!0,parentWorkspace:this.workspace_,rtl:this.workspace_.RTL,oneBasedIndex:this.workspace_.options.oneBasedIndex,renderer:this.workspace_.options.renderer,rendererOverrides:this.workspace_.options.rendererOverrides||void 0,move:{scrollbars:!0}});if(this.workspace_.horizontalLayout){e.toolboxPosition=this.workspace_.toolboxPosition===n.utils.toolbox.Position.TOP?n.utils.toolbox.Position.BOTTOM:n.utils.toolbox.Position.TOP;const t=n.registry.getClassFromOptions(n.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace_.options,!0);if(!t)throw new Error("HorizontalFlyout does not exist");this.flyout_=new t(e)}else{e.toolboxPosition=this.workspace_.toolboxPosition===n.utils.toolbox.Position.RIGHT?n.utils.toolbox.Position.LEFT:n.utils.toolbox.Position.RIGHT;const t=n.registry.getClassFromOptions(n.registry.Type.FLYOUTS_VERTICAL_TOOLBOX,this.workspace_.options,!0);if(!t)throw new Error("VerticalFlyout does not exist");this.flyout_=new t(e)}const o=this.workspace_.getParentSvg().parentNode;null==o||o.appendChild(null===(t=this.flyout_)||void 0===t?void 0:t.createDom(n.utils.Svg.SVG)),this.flyout_.init(this.workspace_)}createDom(){this.svgGroup_=n.utils.dom.createSvgElement(n.utils.Svg.G,{},null);const t=n.utils.idGenerator.genUid(),e=n.utils.dom.createSvgElement(n.utils.Svg.CLIPPATH,{id:"blocklyBackpackClipPath"+t},this.svgGroup_);n.utils.dom.createSvgElement(n.utils.Svg.RECT,{width:this.WIDTH_,height:this.HEIGHT_},e),this.svgImg_=n.utils.dom.createSvgElement(n.utils.Svg.IMAGE,{class:"blocklyBackpack","clip-path":"url(#blocklyBackpackClipPath"+t+")",width:this.spriteSize+"px",x:-this.spriteLeft,height:this.spriteSize+"px",y:-this.spriteTop},this.svgGroup_),this.svgImg_.setAttributeNS(n.utils.dom.XLINK_NS,"xlink:href",C),n.utils.dom.insertAfter(this.svgGroup_,this.workspace_.getBubbleCanvas())}attachListeners(){this.svgGroup_&&(this.addEvent(this.svgGroup_,"mousedown",this,this.blockMouseDownWhenOpenable),this.addEvent(this.svgGroup_,"mouseup",this,this.onClick),this.addEvent(this.svgGroup_,"mouseover",this,this.onMouseOver),this.addEvent(this.svgGroup_,"mouseout",this,this.onMouseOut))}addEvent(t,e,o,s){const i=n.browserEvents.bind(t,e,o,s);this.boundEvents.push(i)}getFlyout(){return this.flyout_}getClientRect(){if(!this.svgGroup_)return null;const t=this.svgGroup_.getBoundingClientRect(),e=t.top+this.spriteTop-this.HOTSPOT_MARGIN_,o=e+this.HEIGHT_+2*this.HOTSPOT_MARGIN_,s=t.left+this.spriteLeft-this.HOTSPOT_MARGIN_,i=s+this.WIDTH_+2*this.HOTSPOT_MARGIN_;return new n.utils.Rect(e,o,s,i)}getBoundingRectangle(){return new n.utils.Rect(this.top_,this.top_+this.HEIGHT_,this.left_,this.left_+this.WIDTH_)}position(t,e){if(!this.initialized_)return;const o=this.workspace_.scrollbar,s=o&&o.isVisible()&&o.canScrollVertically(),i=o&&o.isVisible()&&o.canScrollHorizontally();t.toolboxMetrics.position===n.TOOLBOX_AT_LEFT||this.workspace_.horizontalLayout&&!this.workspace_.RTL?(this.left_=t.absoluteMetrics.left+t.viewMetrics.width-this.WIDTH_-this.MARGIN_HORIZONTAL_,s&&!this.workspace_.RTL&&(this.left_-=n.Scrollbar.scrollbarThickness)):(this.left_=this.MARGIN_HORIZONTAL_,s&&this.workspace_.RTL&&(this.left_+=n.Scrollbar.scrollbarThickness));const g=t.toolboxMetrics.position===n.TOOLBOX_AT_BOTTOM;g?(this.top_=t.absoluteMetrics.top+t.viewMetrics.height-this.HEIGHT_-this.MARGIN_VERTICAL_,i&&(this.top_-=n.Scrollbar.scrollbarThickness)):this.top_=t.absoluteMetrics.top+this.MARGIN_VERTICAL_;let r=this.getBoundingRectangle();for(let t,o=0;t=e[o];o++)r.intersects(t)&&(this.top_=g?t.top-this.HEIGHT_-this.MARGIN_VERTICAL_:t.bottom+this.MARGIN_VERTICAL_,r=this.getBoundingRectangle(),o=-1);this.svgGroup_&&this.svgGroup_.setAttribute("transform",`translate(${this.left_},${this.top_})`)}getCount(){return this.contents_.length}getContents(){return[...this.contents_]}onDrop(t){l(t)&&this.addBackpackable(t)}blockToJsonString(t){const e=n.serialization.blocks.save(t);e.kind="BLOCK";const o=function(t,e){for(const s in t)s&&(-1!==e.indexOf(s)&&delete t[s],t[s]&&"object"==typeof t[s]&&o(t[s],e))};return e&&o(e,["id","height","width","pinned","enabled"]),JSON.stringify(e)}blockXmlToJsonString(t){if(!t.startsWith("<block"))throw new Error("Unrecognized XML format");const e=new n.Workspace;try{const o=n.Xml.domToBlock(n.utils.xml.textToDom(t),e);return this.blockToJsonString(o)}finally{e.dispose()}}containsBlock(t){return l(t)?this.containsBackpackable(t):-1!==this.contents_.indexOf(this.blockToJsonString(t))}addBlock(t){l(t)?this.addBackpackable(t):this.addItem(this.blockToJsonString(t))}addBlocks(t){for(const e of t)l(e)?this.addBackpackable(e):this.addItem(this.blockToJsonString(e))}removeBlock(t){l(t)?this.removeBackpackable(t):this.removeItem(this.blockToJsonString(t))}containsBackpackable(t){return t.toFlyoutInfo().every((t=>-1!==this.contents_.indexOf(JSON.stringify(t))))}addBackpackable(t){this.addBackpackables([t])}addBackpackables(t){this.addItems(t.map((t=>t.toFlyoutInfo())).reduce(((t,e)=>[...t,...e])).map((t=>JSON.stringify(t))))}removeBackpackable(t){for(const e of t.toFlyoutInfo())this.removeItem(JSON.stringify(e))}addItem(t){this.addItems([t])}addItems(t){const e=this.filterDuplicates(t);e.length&&(this.contents_.unshift(...e),this.onContentChange())}removeItem(t){const e=this.contents_.indexOf(t);-1!==e&&(this.contents_.splice(e,1),this.onContentChange())}setContents(t){this.contents_=[],this.contents_=this.filterDuplicates(t.map((t=>t.startsWith("<block")?this.blockXmlToJsonString(t):t))),this.onContentChange()}empty(){this.getCount()&&(this.contents_.length&&(this.contents_=[],this.onContentChange()),this.close())}onContentChange(){this.maybeRefreshFlyoutContents(),n.Events.fire(new a(this.workspace_.id)),this.options.useFilledBackpackImage&&this.svgImg_&&(this.contents_.length>0?this.svgImg_.setAttributeNS(n.utils.dom.XLINK_NS,"xlink:href",p):this.svgImg_.setAttributeNS(n.utils.dom.XLINK_NS,"xlink:href",C))}filterDuplicates(t){return t.filter(((e,o)=>t.indexOf(e)===o&&-1===this.contents_.indexOf(e)))}isOpenable(){return!(this.isOpen()||!this.options.allowEmptyBackpackOpen)||this.getCount()>0}isOpen(){return!!this.flyout_&&this.flyout_.isVisible()}open(){var t;if(!this.isOpenable())return;const e=this.contents_.map((t=>JSON.parse(t)));null===(t=this.flyout_)||void 0===t||t.show(e),this.workspace_.scrollbar&&this.workspace_.scrollbar.setVisible&&this.workspace_.scrollbar.setVisible(!1),n.Events.fire(new r(!0,this.workspace_.id))}maybeRefreshFlyoutContents(){var t;if(!this.isOpen())return;const e=this.contents_.map((t=>JSON.parse(t)));null===(t=this.flyout_)||void 0===t||t.show(e)}close(){var t;this.isOpen()&&(null===(t=this.flyout_)||void 0===t||t.hide(),this.workspace_.scrollbar&&this.workspace_.scrollbar.setVisible&&this.workspace_.scrollbar.setVisible(!0),n.Events.fire(new r(!1,this.workspace_.id)))}autoHide(t){t||this.close()}onClick(t){if(t instanceof MouseEvent&&n.browserEvents.isRightButton(t))return;this.open();const e=new(n.Events.get(n.Events.CLICK))(null,this.workspace_.id,"backpack");n.Events.fire(e)}onDragEnter(t){l(t)&&this.updateHoverStying(!0)}onDragExit(t){this.updateHoverStying(!1)}onMouseOver(){this.isOpenable()&&this.updateHoverStying(!0)}onMouseOut(){this.updateHoverStying(!1)}updateHoverStying(t){const e="blocklyBackpackDarken";this.svgImg_&&(t?n.utils.dom.addClass(this.svgImg_,e):n.utils.dom.removeClass(this.svgImg_,e))}shouldPreventMove(t){return t instanceof n.BlockSvg}blockMouseDownWhenOpenable(t){t instanceof MouseEvent&&!n.browserEvents.isRightButton(t)&&this.isOpenable()&&t.stopPropagation()}}const C="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiM0NTVBNjQiPjxnPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjwvZz48Zz48Zy8+PGc+PHBhdGggZD0iTTEzLjk3LDUuMzRDMTMuOTgsNS4yMywxNCw1LjEyLDE0LDVjMC0xLjEtMC45LTItMi0ycy0yLDAuOS0yLDJjMCwwLjEyLDAuMDIsMC4yMywwLjAzLDAuMzRDNy42OSw2LjE1LDYsOC4zOCw2LDExdjggYzAsMS4xLDAuOSwyLDIsMmg4YzEuMSwwLDItMC45LDItMnYtOEMxOCw4LjM4LDE2LjMxLDYuMTUsMTMuOTcsNS4zNHogTTExLDVjMC0wLjU1LDAuNDUtMSwxLTFzMSwwLjQ1LDEsMSBjMCwwLjAzLTAuMDEsMC4wNi0wLjAyLDAuMDlDMTIuNjYsNS4wMywxMi4zNCw1LDEyLDVzLTAuNjYsMC4wMy0wLjk4LDAuMDlDMTEuMDEsNS4wNiwxMSw1LjAzLDExLDV6IE0xNiwxM3YxdjAuNSBjMCwwLjI4LTAuMjIsMC41LTAuNSwwLjVTMTUsMTQuNzgsMTUsMTQuNVYxNHYtMUg4di0xaDdoMVYxM3oiLz48L2c+PC9nPjwvc3ZnPg==",p="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjQiCiAgIGhlaWdodD0iMjQiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNSIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMiIgLz4KICA8ZwogICAgIGlkPSJsYXllcjEiPgogICAgPGcKICAgICAgIHN0eWxlPSJmaWxsOiM0NTVhNjQiCiAgICAgICBpZD0iZzg0OCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsOC44MjQ5OTk3LDguODI0OTk5NykiPgogICAgICA8ZwogICAgICAgICBpZD0iZzgyNiI+CiAgICAgICAgPHJlY3QKICAgICAgICAgICBmaWxsPSJub25lIgogICAgICAgICAgIGhlaWdodD0iMjQiCiAgICAgICAgICAgd2lkdGg9IjI0IgogICAgICAgICAgIGlkPSJyZWN0ODI0IgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIgLz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0iZzgzNCI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzgyOCIgLz4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMjIyMyI+CiAgICAgICAgICA8ZwogICAgICAgICAgICAgaWQ9ImcyMTAxNiI+CiAgICAgICAgICAgIDxnCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM0NTVhNjQiCiAgICAgICAgICAgICAgIGlkPSJnMTQ5MyIKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMy43Nzk1Mjc2LDAsMCwzLjc3OTUyNzYsLTMzLjM1NDMzLC0zMy4zNTQzMykiPgogICAgICAgICAgICAgIDxnCiAgICAgICAgICAgICAgICAgaWQ9ImcxNDcxIj4KICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICBpZD0icmVjdDE0NjkiCiAgICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDpub25lIgogICAgICAgICAgICAgICAgICAgZD0iTSAwLDAgSCAyNCBWIDI0IEggMCBaIiAvPgogICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICA8ZwogICAgICAgICAgICAgICAgIGlkPSJnMTQ3OSI+CiAgICAgICAgICAgICAgICA8ZwogICAgICAgICAgICAgICAgICAgaWQ9ImcxNDczIiAvPgogICAgICAgICAgICAgICAgPGcKICAgICAgICAgICAgICAgICAgIGlkPSJnMTQ3NyI+CiAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXRoMTQ3NSIKICAgICAgICAgICAgICAgICAgICAgZD0ibSAxMiwzIGMgLTEuMSwwIC0yLDAuOSAtMiwyIDAsMC4xMiAwLjAxOTMsMC4yMjk4NDM4IDAuMDI5MywwLjMzOTg0MzggQyA3LjY4OTI5NjUsNi4xNDk4NDMzIDYsOC4zOCA2LDExIHYgOCBjIDAsMS4xIDAuOSwyIDIsMiBoIDggYyAxLjEsMCAyLC0wLjkgMiwtMiBWIDExIEMgMTgsOC4zOCAxNi4zMTA3MDMsNi4xNDk4NDMzIDEzLjk3MDcwMyw1LjMzOTg0MzggMTMuOTgwNzAzLDUuMjI5ODQzOCAxNCw1LjEyIDE0LDUgMTQsMy45IDEzLjEsMyAxMiwzIFogbSAwLDEgYyAwLjU1LDAgMSwwLjQ1IDEsMSAwLDAuMDMgLTAuMDA5NSwwLjA1OTg0NCAtMC4wMTk1MywwLjA4OTg0NCBDIDEyLjY2MDQ2OSw1LjAyOTg0MzggMTIuMzQsNSAxMiw1IDExLjY2LDUgMTEuMzM5NTMxLDUuMDI5ODQzOCAxMS4wMTk1MzEsNS4wODk4NDM4IDExLjAwOTUzMSw1LjA1OTg0MzggMTEsNS4wMyAxMSw1IDExLDQuNDUgMTEuNDUsNCAxMiw0IFogbSAtMy40NzI2NTYyLDYuMzk4NDM4IGggMS4xNTYyNSB2IDIuNjQwNjI0IGggMC4zMDkzMzU0IGwgLTIuMzdlLTUsLTEuMTcxMTQ2IDEuMDgyNzEwNSwtMTBlLTcgMC4wMTEsMS4xNzExNDYgaCAwLjMzMzMwNCBsIC0wLjAzNTA0LC0yLjU4NzMxNSBoIDAuNTc4MTI1IDAuNTc4MTI1IGwgMC4wMTEwNSwyLjU4NzMxNSBoIDAuMzU2MDI0IFYgMTIuMDYwNTQ3IEggMTQuMDYyNSB2IDAuOTc4NTE1IGggMC4zMzAwNzggdiAtMi41NTI3MzQgaCAxLjE1NjI1IHYgMi41NTI3MzQgaCAwLjk2Njc5NyB2IDAuMzU3NDIyIEggOS42ODM1OTM4IDguNTI3MzQzOCA3LjYwMzUxNTYgdiAtMC4zNTc0MjIgaCAwLjkyMzgyODIgeiIKICAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";n.Css.register("\n.blocklyBackpack {\n opacity: 0.4;\n}\n.blocklyBackpackDarken {\n opacity: 0.6;\n}\n.blocklyBackpack:active {\n opacity: 0.8;\n}\n");class A{constructor(){this.priority=n.serialization.priorities.BLOCKS-10}save(t){const e=t.getComponentManager().getComponent("backpack");return null==e?void 0:e.getContents().map((t=>JSON.parse(t)))}load(t,e){const o=t.map((t=>JSON.stringify(t))),s=e.getComponentManager().getComponent("backpack");null==s||s.setContents(o)}clear(t){const e=t.getComponentManager().getComponent("backpack");null==e||e.empty()}}return i})())); //# sourceMappingURL=index.js.map