diff --git a/editor/dialogs.tsx b/editor/dialogs.tsx index 8f329201..29a8b6a9 100644 --- a/editor/dialogs.tsx +++ b/editor/dialogs.tsx @@ -1,4 +1,5 @@ import * as React from "react"; + import { canUseWebSerial, enableWebSerialAsync } from "./deploy"; import { projectView } from "./extension"; @@ -52,11 +53,12 @@ function explainWebSerialPairingAsync(): Promise { export function showUploadDialogAsync(fn: string, url: string, _confirmAsync: (options: any) => Promise): Promise { confirmAsync = _confirmAsync; + // https://msdn.microsoft.com/en-us/library/cc848897.aspx // "For security reasons, data URIs are restricted to downloaded resources. // Data URIs cannot be used for navigation, for scripting, or to populate frame or iframe elements" const downloadAgain = !pxt.BrowserUtils.isIE() && !pxt.BrowserUtils.isEdge(); - const docUrl = pxt.appTarget.appTheme.usbDocs; + const docUrl = (pxt.appTarget.appTheme.usbDocs ? pxt.appTarget.appTheme.usbDocs : false); const jsx =
@@ -118,7 +120,7 @@ export function showUploadDialogAsync(fn: string, url: string, _confirmAsync: (o hideAgree: false, agreeLbl: lf("I got it"), className: 'downloaddialog', - buttons: [canUseWebSerial() ? { + buttons: [canUseWebSerial() && { label: lf("Bluetooth"), icon: "bluetooth", className: "bluetooth focused", @@ -127,18 +129,18 @@ export function showUploadDialogAsync(fn: string, url: string, _confirmAsync: (o explainWebSerialPairingAsync() .then(() => enableWebSerialAndCompileAsync()) } - } : undefined, downloadAgain ? { + }, downloadAgain && { label: fn, icon: "download", className: "lightgrey focused", url, fileName: fn - } : undefined, docUrl ? { + }, docUrl && { label: lf("Help"), icon: "help", className: "lightgrey", url: docUrl - } : undefined] + }] //timeout: 20000 }).then(() => { }); } \ No newline at end of file diff --git a/editor/tsconfig.json b/editor/tsconfig.json index 6cdec447..c1e0704e 100644 --- a/editor/tsconfig.json +++ b/editor/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2017", "noImplicitAny": true, "noImplicitReturns": true, "noImplicitThis": true, diff --git a/fieldeditors/extension.ts b/fieldeditors/extension.ts index 3f20b741..10944a73 100644 --- a/fieldeditors/extension.ts +++ b/fieldeditors/extension.ts @@ -2,6 +2,7 @@ /// import { FieldPorts } from "./field_ports"; +import { FieldMotors } from "./field_motors"; import { FieldBrickButtons } from "./field_brickbuttons"; import { FieldColorEnum } from "./field_color"; import { FieldMusic } from "./field_music"; @@ -13,6 +14,9 @@ pxt.editor.initFieldExtensionsAsync = function (opts: pxt.editor.FieldExtensionO fieldEditors: [{ selector: "ports", editor: FieldPorts + }, { + selector: "motors", + editor: FieldMotors }, { selector: "brickbuttons", editor: FieldBrickButtons diff --git a/fieldeditors/field_brickbuttons.ts b/fieldeditors/field_brickbuttons.ts index 9e941db6..647beaff 100644 --- a/fieldeditors/field_brickbuttons.ts +++ b/fieldeditors/field_brickbuttons.ts @@ -120,20 +120,17 @@ export class FieldBrickButtons extends Blockly.FieldDropdown implements Blockly. Blockly.DropDownDiv.setColour('#ffffff', '#dddddd'); - // Calculate positioning based on the field position. - let scale = (this.sourceBlock_.workspace).scale; - let bBox = { width: this.size_.width, height: this.size_.height }; - bBox.width *= scale; - bBox.height *= scale; - let position = this.fieldGroup_.getBoundingClientRect(); - let primaryX = position.left + bBox.width / 2; - let primaryY = position.top + bBox.height; - let secondaryX = primaryX; - let secondaryY = position.top; - // Set bounds to workspace; show the drop-down. - (Blockly.DropDownDiv as any).setBoundsElement((this.sourceBlock_.workspace).getParentSvg().parentNode); - (Blockly.DropDownDiv as any).show(this, primaryX, primaryY, secondaryX, secondaryY, - this.onHide_.bind(this)); + // Position based on the field position. + Blockly.DropDownDiv.showPositionedByField(this, this.onHide_.bind(this)); + + // Update colour to look selected. + let source = this.sourceBlock_ as Blockly.BlockSvg; + this.savedPrimary_ = source?.getColour(); + if (source?.isShadow()) { + source.setColour(source.getColourTertiary()); + } else if (this.borderRect_) { + this.borderRect_.setAttribute('fill', (this.sourceBlock_ as Blockly.BlockSvg).getColourTertiary()); + } } /** @@ -157,5 +154,12 @@ export class FieldBrickButtons extends Blockly.FieldDropdown implements Blockly. content.removeAttribute('aria-haspopup'); content.removeAttribute('aria-activedescendant'); (content as HTMLElement).style.width = ''; + // Update color (deselect) on dropdown hide + let source = this.sourceBlock_ as Blockly.BlockSvg; + if (source?.isShadow()) { + source.setColour(this.savedPrimary_); + } else if (this.borderRect_) { + this.borderRect_.setAttribute('fill', this.savedPrimary_); + } }; } \ No newline at end of file diff --git a/fieldeditors/field_motors.ts b/fieldeditors/field_motors.ts new file mode 100644 index 00000000..f904ca28 --- /dev/null +++ b/fieldeditors/field_motors.ts @@ -0,0 +1,133 @@ +/// +/// +/// + +export interface FieldMotorsOptions extends pxtblockly.FieldImagesOptions { + columns?: string; + width?: string; + //sort?: boolean; +} + +export class FieldMotors extends pxtblockly.FieldImages implements Blockly.FieldCustom { + public isFieldCustom_ = true; + //public shouldSort_: boolean; + + constructor(text: string, options: FieldMotorsOptions, validator?: Function) { + super(text, options, validator); + + this.columns_ = parseInt(options.columns) || 4; + this.width_ = parseInt(options.width) || 400; + //this.shouldSort_ = options.sort; + this.addLabel_ = true; + + this.renderSelectedImage_ = Blockly.FieldDropdown.prototype.renderSelectedText_; + this.updateSize_ = (Blockly.Field as any).prototype.updateSize_; + } + + /** + * Create a dropdown menu under the text. + * @private + */ + public showEditor_() { + // If there is an existing drop-down we own, this is a request to hide the drop-down. + if (Blockly.DropDownDiv.hideIfOwner(this)) { + return; + } + let sourceBlock = this.sourceBlock_ as Blockly.BlockSvg; + // If there is an existing drop-down someone else owns, hide it immediately and clear it. + Blockly.DropDownDiv.hideWithoutAnimation(); + Blockly.DropDownDiv.clearContent(); + // Populate the drop-down with the icons for this field. + let dropdownDiv = Blockly.DropDownDiv.getContentDiv(); + let contentDiv = document.createElement('div'); + // Accessibility properties + contentDiv.setAttribute('role', 'menu'); + contentDiv.setAttribute('aria-haspopup', 'true'); + const options = this.getOptions(); + //if (this.shouldSort_) options.sort(); + for (let i = 0; i < options.length; i++) { + const content = (options[i] as any)[0]; // Human-readable text or image. + const value = (options[i] as any)[1]; // Language-neutral value. + // Icons with the type property placeholder take up space but don't have any functionality + // Use for special-case layouts + if (content.type == 'placeholder') { + let placeholder = document.createElement('span'); + placeholder.setAttribute('class', 'blocklyDropDownPlaceholder'); + placeholder.style.width = content.width + 'px'; + placeholder.style.height = content.height + 'px'; + contentDiv.appendChild(placeholder); + continue; + } + let button = document.createElement('button'); + button.setAttribute('id', ':' + i); // For aria-activedescendant + button.setAttribute('role', 'menuitem'); + button.setAttribute('class', 'blocklyDropDownButton'); + button.title = content.alt; + if ((this as any).columns_) { + button.style.width = (((this as any).width_ / (this as any).columns_) - 8) + 'px'; + //button.style.height = ((this.width_ / this.columns_) - 8) + 'px'; + } else { + button.style.width = content.width + 'px'; + button.style.height = content.height + 'px'; + } + let backgroundColor = sourceBlock.getColour(); + if (value == this.getValue()) { + // This icon is selected, show it in a different colour + backgroundColor = sourceBlock.getColourTertiary(); + button.setAttribute('aria-selected', 'true'); + } + button.style.backgroundColor = backgroundColor; + button.style.borderColor = sourceBlock.getColourTertiary(); + Blockly.bindEvent_(button, 'click', this, this.buttonClick_); + Blockly.bindEvent_(button, 'mouseover', button, function () { + this.setAttribute('class', 'blocklyDropDownButton blocklyDropDownButtonHover'); + contentDiv.setAttribute('aria-activedescendant', this.id); + }); + Blockly.bindEvent_(button, 'mouseout', button, function () { + this.setAttribute('class', 'blocklyDropDownButton'); + contentDiv.removeAttribute('aria-activedescendant'); + }); + let buttonImg = document.createElement('img'); + buttonImg.src = content.src; + //buttonImg.alt = icon.alt; + // Upon click/touch, we will be able to get the clicked element as e.target + // Store a data attribute on all possible click targets so we can match it to the icon. + button.setAttribute('data-value', value); + buttonImg.setAttribute('data-value', value); + button.appendChild(buttonImg); + if (this.addLabel_) { + const buttonText = this.createTextNode_(content.alt); + buttonText.setAttribute('data-value', value); + buttonText.style.whiteSpace = 'inherit'; + buttonText.style.width = 'auto'; + buttonText.style.padding = '0 10px'; + button.appendChild(buttonText); + } + contentDiv.appendChild(button); + } + contentDiv.style.width = (this as any).width_ + 'px'; + dropdownDiv.appendChild(contentDiv); + + Blockly.DropDownDiv.setColour(sourceBlock.getColour(), sourceBlock.getColourTertiary()); + + // Position based on the field position. + Blockly.DropDownDiv.showPositionedByField(this, this.onHideCallback.bind(this)); + + // Update colour to look selected. + this.savedPrimary_ = sourceBlock?.getColour(); + if (sourceBlock?.isShadow()) { + sourceBlock.setColour(sourceBlock.style.colourTertiary); + } else if (this.borderRect_) { + this.borderRect_.setAttribute('fill', sourceBlock.style.colourTertiary); + } + } + + trimOptions_() { + } + + protected buttonClick_ = function (e: any) { + let value = e.target.getAttribute('data-value'); + this.setValue(value); + Blockly.DropDownDiv.hide(); + }; +} \ No newline at end of file diff --git a/fieldeditors/field_music.ts b/fieldeditors/field_music.ts index 42c3e463..4c577242 100644 --- a/fieldeditors/field_music.ts +++ b/fieldeditors/field_music.ts @@ -49,7 +49,7 @@ export class FieldMusic extends pxtblockly.FieldImages implements Blockly.FieldC Blockly.DropDownDiv.hideWithoutAnimation(); Blockly.DropDownDiv.clearContent(); // Populate the drop-down with the icons for this field. - let dropdownDiv = Blockly.DropDownDiv.getContentDiv(); + let dropdownDiv = Blockly.DropDownDiv.getContentDiv() as HTMLElement; let contentDiv = document.createElement('div'); // Accessibility properties contentDiv.setAttribute('role', 'menu'); @@ -67,8 +67,7 @@ export class FieldMusic extends pxtblockly.FieldImages implements Blockly.FieldC // Accessibility properties categoriesDiv.setAttribute('role', 'menu'); categoriesDiv.setAttribute('aria-haspopup', 'true'); - // FIXME: tertiary color? - categoriesDiv.style.backgroundColor = this.sourceBlock_.getColour(); + categoriesDiv.style.backgroundColor = (this.sourceBlock_ as Blockly.BlockSvg).getColourTertiary(); categoriesDiv.className = 'blocklyMusicFieldCategories'; this.refreshCategories(categoriesDiv, categories); @@ -82,31 +81,18 @@ export class FieldMusic extends pxtblockly.FieldImages implements Blockly.FieldC dropdownDiv.appendChild(categoriesDiv); dropdownDiv.appendChild(contentDiv); - Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(), - // FIXME: tertiary color? - this.sourceBlock_.getColour()); - - // Calculate positioning based on the field position. - let scale = (this.sourceBlock_.workspace).scale; - let bBox = { width: this.size_.width, height: this.size_.height }; - bBox.width *= scale; - bBox.height *= scale; - let position = this.fieldGroup_.getBoundingClientRect(); - let primaryX = position.left + bBox.width / 2; - let primaryY = position.top + bBox.height; - let secondaryX = primaryX; - let secondaryY = position.top; - // Set bounds to workspace; show the drop-down. - (Blockly.DropDownDiv as any).setBoundsElement((this.sourceBlock_.workspace).getParentSvg().parentNode); - (Blockly.DropDownDiv as any).show(this, primaryX, primaryY, secondaryX, secondaryY, - this.onHide_.bind(this)); + Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(), (this.sourceBlock_ as Blockly.BlockSvg).getColourTertiary()); + + // Position based on the field position. + Blockly.DropDownDiv.showPositionedByField(this, this.onHide_.bind(this)); // Update colour to look selected. - if (this.sourceBlock_.isShadow()) { - this.savedPrimary_ = this.sourceBlock_.getColour(); - // FIXME - // this.sourceBlock_.setColour(this.sourceBlock_.getColourTertiary(), - // this.sourceBlock_.getColourSecondary(), this.sourceBlock_.getColourTertiary()); + let source = this.sourceBlock_ as Blockly.BlockSvg; + this.savedPrimary_ = source?.getColour(); + if (source?.isShadow()) { + source.setColour(source.getColourTertiary()); + } else if (this.borderRect_) { + this.borderRect_.setAttribute('fill', (this.sourceBlock_ as Blockly.BlockSvg).getColourTertiary()); } } @@ -187,13 +173,11 @@ export class FieldMusic extends pxtblockly.FieldImages implements Blockly.FieldC let backgroundColor = this.savedPrimary_ || this.sourceBlock_.getColour(); if (value == this.getValue()) { // This icon is selected, show it in a different colour - // FIXME: tertiary color? - backgroundColor = this.sourceBlock_.getColour(); + backgroundColor = (this.sourceBlock_ as Blockly.BlockSvg).getColourTertiary(); button.setAttribute('aria-selected', 'true'); } button.style.backgroundColor = backgroundColor; - // FIXME: tertiary color? - button.style.borderColor = this.sourceBlock_.getColour(); + button.style.borderColor = (this.sourceBlock_ as Blockly.BlockSvg).getColourTertiary(); Blockly.bindEvent_(button, 'click', this, this.buttonClick_); Blockly.bindEvent_(button, 'mouseup', this, this.buttonClick_); // These are applied manually instead of using the :hover pseudoclass @@ -241,6 +225,13 @@ export class FieldMusic extends pxtblockly.FieldImages implements Blockly.FieldC super.onHide_(); (Blockly.DropDownDiv.getContentDiv() as HTMLElement).style.maxHeight = ''; this.stopSounds(); + // Update color (deselect) on dropdown hide + let source = this.sourceBlock_ as Blockly.BlockSvg; + if (source?.isShadow()) { + source.setColour(this.savedPrimary_); + } else if (this.borderRect_) { + this.borderRect_.setAttribute('fill', this.savedPrimary_); + } } protected createTextNode_(content: string) { diff --git a/fieldeditors/tsconfig.json b/fieldeditors/tsconfig.json index 9f5342cb..10ae6cd0 100644 --- a/fieldeditors/tsconfig.json +++ b/fieldeditors/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2017", "noImplicitAny": false, "noImplicitReturns": true, "module": "commonjs", diff --git a/libs/core/icons.jres b/libs/core/icons.jres index e71a83f9..da3f26a1 100644 --- a/libs/core/icons.jres +++ b/libs/core/icons.jres @@ -68,5 +68,41 @@ }, "portAD": { "icon": "data:image/png;base64,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" + }, + "dualMotorLargePortAB": { + "icon": "data:image/png;base64,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" + }, + "dualMotorLargePortBC": { + "icon": "data:image/png;base64,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" + }, + "dualMotorLargePortCD": { + "icon": "data:image/png;base64,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" + }, + "dualMotorLargePortAD": { + "icon": "data:image/png;base64,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" + }, + "motorLargePortA": { + "icon": "data:image/png;base64,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" + }, + "motorLargePortB": { + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAYAAAAZDlfxAAAACXBIWXMAAC4jAAAuIwF4pT92AAAUmElEQVR4nO2dCXAU55XHX8+hazSH7vsiIGFAssRhYcwaYcBOSAqwa8UInC3s2I6zBmNhx8tueXdBG7u8iTc2larUFrYTe7MJZla1u4ALp3AWS3KZa5M1xICLUweHkUZokIQ0h0YzvfVa06PWqGc0Gnou9ftRXdP9dU/319/89fG+9x2PYVkWCGKmo6BfmJADJHRCFpDQCVlAQidkAQmdkAUkdEIWkNAJWUBCJ2QBCZ2QBSR0QhaQ0AlZQEKPE+rq6lQMwyR5tlyGYco927cYhtELziXu3r2bflcfaFBXjMMwjAoAkgEgDwCyPblNwrSXMjWVCgbcSQxjv+AYvfHfA/ZuALABwC0AsLAsa5d7+fGQ0GMUrJWbmppQ4AUAkAsAKau1iQXPZ6SsL1QrF2gVTJlYzrtH3SfP253HfnfH9vH/Wp1nAMDe0tIyUldXJ+sfmoQeg3hq8QwAmAUAhtXaxPzGTM3m0gTlI2K5ZR7+DsB3NwHcHQD4/BNgP/89uFgYPm13fvjUtf4PAOASy7J35VymqhjIAyHAY1+jyEsAIH1XjnbZ4/qkRhUDKWLlxHy3AZjXfjGesNYI8MZ2UB7er1mcrN76+eyMh3d13/0BwzBnWJYdlWtZU40eYzAMowGAKhT5z/N1ax7TJr4UKIeKT68ApOomJnbfAPcTC72HQ2726t4+62MfWKwdLMu6ZVCMk6DWeQzhMVnQJjdgTT6VyDl8RY7kFk68RMF8668zUn6/yZA8W64eGRJ6bIHmSS7a5GiuBJWz08eDSktRMHO2pCfvbmpqUs/c4vMPCT1GQD85713Bhqc/m9wX956/BxgaHE9FswXTRChUKzd9OitdtEE70yEbPUbAzh4AWLxam1ixJ1/3PqTquYYmZ5pcPsd5UsQ4lJwOF5O0UKzXw2pdCmR8dTLgC9nd7KlFl3qXyqVcecjrEgN47OZElUqlQD85ilzxm5aJtvYnJmBff3FSZo8n6qCPUcGlQSuw5m+gYYrXSVIwtefnZpfOv2DunGnlGAgSepThfeY/fvXH220227L8PzTPYZ59dVKDkllrBNa0F/quXoQMt9ObXjTqgBSlC64rE6HYNRLUy7gBVgLABzOoGKeEhB5F6urq0Fwp3vm3O39QWFS48+aNm6AHFpg5C0QzdZxJgA8MJZDhHoVXB29ygm+73c+d25IMsIy1BfUyTpZdTUInIoKnJi/e8cqOH9UsrNlx69YtyDLf5B7NfnkMmJplk7Jx2tLP+Q/6FCr42Ygahl1KGAaGO1fscgTtWlACUyK3X5m8LlGAN1ewJq+trd2BOVAoFJjOZYY1vQtw5fyEjLH/8S5YRxzcfvmoDc6NAnSw4z/f284EOMwkw3Pps+GXqXnQp1AD0/g616GkOG4G5qe/AbT9uWcxILtOI6rRI4zQXKlZWLOTf7pWqwWrOmHsYGgA3C9sAGbFdwByizi/ONbyWxkFnElIhWTWBTXqEXjHmeDNvJll4LZy7Oc8k6CBNau+DVkbf+g9z/zFt4H56b+Be+sGrN1I6ET48DVXJvwQKhXYdPrxhKEBYA/vn5CXFNYNyxwen7kS4F2nmjNdVilHoUrhhq+Txr9f/PCjk98DzaG8IoBb12X3K5PQI4TQXPEVOYydh2GNNujMoP/80SQFOEYc8D23A0rABTXW23DMNWbepCQli39xTOStsVxW4YCEHgF4c2VX067t991331Z/T0xISIDrecVQdOvalJn6ODl9bCcFoMhmgRKbhfPCrLNZuGTRBu340IAzMVtYYYIaoxGgra0td/OTmx8PJHK1Wg1paWlws0B0PsUEsKGJLkaeitHJbkX2V29xGz88gP3EBO6dW3B3YP4F84HYLzVpoRo9MiTMnTv3/qmepNFo4GbVInD++QSonX46f+YsgMxn/wZ+lqqDa+2XYPg/P4QKi7j/3Ct2AW5gfiF68QyHhB5DoOmSk5MD5yuXQPWXxyZnLK8IFL884B2aW4ymyWNPgPuJRVzjNQgGFMC+LceyJdMlxkAT5tr9D0BPZu6kjDEPr508/jxVNzb4Kziemn/B3C+3MgUSeuyBQs/Ly4Ov12+GfkPGxPyJTbIIlD6RJjna5jwk9BgkOTkZ0ouK4fKWrTCQnjmeQbFJFlxDc/9UL4Ei3z2Di2xKSOgxilKphKSMTLjw5I+gfV4Nl0l0GbJvbB+faDE0OHbsvwMIDffH5S5yoMZobIOdSJrsHBj4y7+Ci+21kHG8BTIP75/UYyoCCnwPbnK1yX0hoccBaLc7K+ZDd8V8sPRbQNNxGZLbL4Hacpv7Y+AHgzldrv8yXO/4dznb4v4goYcBU7PJAADV/J2fefaZQpValSPFk0YM6TBSUwt3amonnbNarZef3vI0iVwEErqEeASO9vCEZSoWVIpPpCAiBwldWg4YDIYVyx9aDpoUDTidTjh95jTgpAoiupDXRSJMzaY6tVq94pG6RziRg8e2fmDJA5CRnoFmxQx4y/iFhC4dddnZ2Zy4fUlPTweXyzUjXjJeIaETsoCELiFms5mzy32xWCwz4wXjGBK6hKDIP2v9DG5+Mzabv7+/H744/gX0WfpmyBvGLyR0CSkoKIDaJbWcwFtaWzjBV8ypgNKS0hnzjvEKuRclJM2QBgaDgdvmz5vvvXFuTi6cPXd2Brxh/EJCl5AbN29wXhes0YeHh7kZQ9lZ2dDd0z1j3jFeIdNFQlDg2EGE4l5Zt5IT/ak/noLOLlmt5xmTkNAlBIWNIs/KzuJuWlZaxh3jmi1EdCGhSwja6FiT8z2jaKvjsV64MBERFUjohCwgoUuIudeMY168fnT8xGPyo0cfEnoYwEYpCD6J6EOtJAlBmxw7jPhhAKWlpdx26ONDcPeurAM3Rx2q0SUkQZ3AiR29L729vdwxNkx12qCWoyDCCNXoEsLb6OhWxM6ijs4OrhPp2rWpFw0lwgsJXWLQdEFzhad8Tjn8dt9vZ84LxilkukgImi1CkYMnrbCgMMxPJqaChC4h2GEkhtisIyKykNClo/NO/x3Rm4lNxiAiCwldOg709/cPdHZOHMCFvnRskBLRhRqjEmGsN/bjSgCn/niqtaOzQ48TpXGoLnpeRkfHo1NMp3Ynk0c6SOgSYqw3njE1m0rNveanzL1mA39nS58lw26332ez2VbhGi8YUxT/EAKBy8y53W5u5CMuOBoMSqVSdmEVg4VhWTY+chrHMAxTXr+xfuOyh5b95I7lDlTMrQhavLhMRjDXsiw7yLrZmk0Nm9plW9ABIBs9AiiVSsY6bE0a6B+AslllQYscPMtHT7UmDMuy1xmGWUEi9w+ZLhHA5XKl2EfseSWlJdwi/9Ml0B+Gy+U673a7H/7+5u/TmhoBoBo9MhhysnMKQhF5IFiWPUsiDw6q0SOD2u12M1I+CUXOMAyKnMYCBwHV6HEImiujo6N16NKUe1kECwk9ziBzJTRI6CGye/duBcMwScFsOFR9dHRUgZ1FgbapEJgrJPJpQn70EGAYBts2GS+/8vKWefPnbZrqDnabPZUFNluj0fidgcH/Dhg92l+PqNPpzCCRhwY1RqcJ1uQo8oZNDWsWLV70jwqFQmMdtkJScpJfN2BqamrQDxl1jvrtJCKRhw6ZLtMARd7U1JQ7e/bsJWseXfNPnMiHrOAadQH3KcFi/yq1Clg3CyMjIxF8s5kP1ejToKmpCavm2S9se2GHRqMpw28qlApO4Dg2BT9xfMq9gqYLRciQFhJ6kHjs8tRXXn1lXX5+/iP8txISE7j4RChw+4j9np6BDVKHwwFpaWmg1+u5e+IAMOLeIaEHQV1dXdLOnTsfXL1m9fN9lj4j/w2sdYeGhsAx4oD8/HzJnoeRM2w2GzdcgMQuDVSCQZCVlVW+bdu2XxsMhu/xV6MAe8290NfXBzk5ksTK9YJDeLFmR1DkNEPp3qEafQrQZOno6Nij0+lwnLn3YrvdDgODA1BcXDyt0YjBotVqvVeSzX7vUI3uh9bWVoZhGO1XX331Tnp6+krhVSi6gYEBrOlDGo0YDL5/PHhsajY1huVhMoA6jPzAMEziRx99tG3t2rX/wl9x5eoVOP/1eZwxxE2PKyyKiWUsBgDgQ/R+0tgX/5Dp4oe2trYllZWVTcKzWCngPFCrzQolJSVRyxuaMrUP1EJBfgHa7/pLly+9dO78uWpsN0ctUzEOmS4+YKfQW2+9VVheXv4rpVKpEZ61WW1w584dyMvLC4tdHiwYhh1FDh7RY2CwstKyFaZm04aoZSrGIaH7gJ1CDQ0NB1NSUsr5M1iToxux61oXGPSGsNnlwcBHvfMF13sEgOqoZSzGIdNFANbmnZ2dP9fr9QuF6Sjyq1evcr7t9Iz0aGeTCAGq0T2gyDds2LA9LS3tWWE6X5sPDg6CVqcNdIuIgAsiiQUYoEWSAkNC97BmzZoHi4uLXxemoci7u7vhypUrMGwbjmb2JoBh2HH9dfAMG0BP0KXLl2Imf7EImS4Ya+jmzfR58+bt9218Yk3e3t4OQ8NDAJLO+AwdXHcdl6bGzqtz589xxxiafcH8BdwxIQ4JHQCHxP6dVqud4BRHPzkKfdg6HDMiRzCCBnZU4SYMw45eGBK6f0joYzV3UkZGhvcYez67urrgxo0b4HLHVtc7/uFhtDu003HwF1+jO0doPEwgSOgioN3b09MDVrs15vKGHVZfHPuCcycuf2g5ml3cMREYaoz6AYfexioYdh1rcewswnDs/D7hHxJ6nIGCxrDrfM8o2uzLly2HivIKuRdNQEjoIYKNVRyqi/R093h9212dXd50bMyCz7X3ir+x6TTHNDBko4fIxQsXAVfHraqu4vaTkpKgfG45J3QE1zW/euUqLFy8kEvDa5ctXybJszHEI0a7q6mu4RqnRz49QpMzpoBq9BDBWprfwDMRQwif7nudVPD/g+BSGyTyqaEaPc7gO4xGnGOmSoomhRvNyHcgEeKQ0OMMvsMIa3EcBoAjGTVZmhn1juGAhB5nYM3d0trC1egYqBeDgd0dusuNrCT8Q0KPQ9B8WblkfBor1u5H/nBE7sUSEGqMxiHobRGCvvUF8xbIvVgCQkKPM7BXVKwXFGt5wj8k9DjDXxh2jxeGVgHwAwk9zuAnWgjxpGE37AG5l48/qDEah6C/HIfo8tGn0fMyPDz8orHe2Cn3svEHCT2+wPEFnJjRzehZIq8VFzAikQeGhB5foKB3y70QQoFsdEIWkND9QGuSzyzo1xQBw7SkaoIPsBUOaJloaSEbXYTExESoqKjgfNP9A9FxTWPALgwVg9HuZhqmZlPrvb6Ssd44rQVVSeh+wJCJSxYvgT/935/8dtKEA1w0CaPc4YKmuI9bckr01noMEysi/UASegBwllD1/dXcov+4JJ3dMT654sLXF7jPrMwsbxq/r9PqJqR1f9PN7eNoQyG9t3u90+3AEy4Gn8ko/C4kQz2fIUJCR8H19p71t945TpHDzTdO0YnjJ7jPWWWz4CgcnbDPd+Twae1X27n9ygWVk+7/5ekvocfcMyk9JTWFW6vFx3Shns8QocYoAGRmZkZthc6qyqoJ/wPw4PrrQpE7HI5/pU6h0CGhA0BRUdGJ6X4Hwy3i7B6MCYo1Pu7z66bjJ57HdDyPxxg8QAw0VTB6hZjYYcxmv+twON4sLizeeo+vKWsohpGHwcHBaRcETohGMd+6dcsralyUlBc5fx7BdJ1uspgxsh0OykpQJxw++tnRvcJzKpXK3fhS4xGWZaWdWR1lTM2mexadsd44rRUxSegeBgcHMeBVqU9yf1dX13Wb3bZRpVJ5DW8U5uDdQdH7WCyWULOw0lhvvGe3WzwQDaFTY9SDTqd7Siy9qqqqfO97e+v0en222HkiPiAbnZAFJHRCFpDpQsQlpmaTvyEA/cZ64xnfRBI6ERZMzSYMBbknjKXb4ie9TSywMAl9amgYYWgYojGmxR9ko0+N2WF3nA3zMwb4KXJEeKAafQp27do1vP3F7c8DwNb3f/1+J8Mw4l2YIfLM088ksywrzeLphF+ow4gIC57Goj87Opy0iY1VJ9OFkAUkdEIWkNAJWUBCJ2QBeV1kjqnZhJ061WEoBUMslSwJnaiOpY6dcEGmCyELSOiELCChE7KAhE7IAmqMEpLx3rvvgbnHjEEJuMngQjDG0qxZs6BsVhlUVlVCZeXkNW7CCQmdkIyj/3PU761Q/GfPnuW2QwcPcUJvfLkxYkHGSOhEWGjc0Qia1HERY02PtTz/x4CCf+Mnb8Br//BaRMROQifCwtIHl068bSXAKvy3ehXseWfPBOGvW78u7D8CNUaJiIJ2+ubNm72PPHniZEQeT0InIo6wtvdttIYLEjoRVSLVGCWhExFHaK5MsuXDBAmdiCjoZty3b5/3kdg4jQTkdSEiAtri586eg4MHDnJiR5774XNc4zQSkNCJsNCwscHvbbGzaN2GdRHtHSXThYg4WLujnY6+9EhBNToRFrDHUwjfQYQ9oriPHUUodhwGEImanYROhIVJ4vX0jCI41mXf7/Zxtvqet/fAm//8JmTnhHf5eTJdiIiDXf6bnxzrHUWxHzx4MOxZIKETUWHp0nH/OZoz4YaETkQFoakSiUYpCZ2ICrwvHXxEHy5I6ERUEE7SiITXhYRORBze68ITifEu5F4kwoJvAxPt8J6eHjh5cmJHEXpfyI9OxC04TS4QODx3/Yb1EZldBCR0QkqwZu4x94h6UbDBmZOdw60CgAO5IjU8l4eETkiGb7d/LEGNUUIWkNAJWUBCJ2QBCZ2QBSR0QhaQ0AlZQO5F4sw0SgDDwOg9+wOe72KsovsF1/wZAPp9ruXTSgGgxJPWJQgLLwwt0+b5FF4rvMdUiL4PRY4mgsbUbGoViJKL0CwSIXqlsd7Y6nMtn7Ybo8570pqM9UY8xvt6RWisNzKeNOG13nuE+muR6ULIAhI6IQtI6IQsIKETsoCETsgCEjohC0johCwgoROygHpGienwIQDwnTadgs8mwT34dLFrhR0+wn3h98XOC+8REtQzSsgCMl0IWUBCJ2QBCZ2Y+QDA/wMbE1erWVA4eQAAAABJRU5ErkJggg==" + }, + "motorLargePortC": { + "icon": "data:image/png;base64,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" + }, + "motorLargePortD": { + "icon": "data:image/png;base64,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" + }, + "motorMeduimPortA": { + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAYAAAAZDlfxAAAACXBIWXMAAC4jAAAuIwF4pT92AAAQr0lEQVR4nO2daYxbVxmGP3u8zHi2zEwmaTIhSROgCw20rFMhNWVJy9Il0A4j0kJb8QOxt/CjEgJB+4vygwZQW34AKqJEsqaFLgiJVKUJiHZKEU2bMl1ooiYkLZnJTGb1eBsbvbc+zrHH9vjaPnbi8z6SY+fOXezr935+zznf+a4nnU4LIc2Ol98wsQEKnVgBhU6sgEInVkChEyug0IkVUOjECih0YgUUOrECCp1YAYVOrIBCJ1ZAoRMroNCJFVDoxAoodGIFFDqxAgqdWAGFTqyAQidWQKETK6DQiRVQ6MQKKHRiBRQ6sQIKnVgBhU6sgEInVkChEyug0IkVUOjECih0YgUUOrECH79ms3g8HpzjtsxBip3vZOZ5Ef+k0+mk4bdlHYzoxAqsu4dReCS8U0QuNrX/RCLhBI+F+QUnes/MzgTffOPNjvb29k6fz7eqs7Ozz+fzBdT60Wh0PplMTs/Ozp7sW903hWXdXd2x9o52J6r7/f6Uqfea4eHhoeEDho/RcKwRengkDHHvg45MHWNpaUnm5+ed15OTk+L1eqW1tVV6e3slEAisuP3c3JxMTU7JUmpJ+vr6nGUdHR3Oc0tLi6m3DZ4XkcuHh4anTR6kkVjh0cMj4VWmRZ5PW1ub9Pf3i89X/inu7Ox0HtFoVOLxuNQxCL0HkR1ir9cB640tjdGbTUdygGg+MTEhXV1dsm7dumXrHTp0SA69dkhmZ2ezy7Du1rdvla1bt2aX4VcAvwDHjx/PLkNkNxzVt+NXr1ltjC1CX1WvAyGSr1mzJmcZxP/Yo4/J3OzcsvWPy3F5aewl6ezqlKuvudr5FQCwPQMDA87FU8fIXrfzVG/Y61IDYDPwOHXqlJxzzjk5Oxz795jseWBPQZHr4O9YD+srIHZEcfh97J9UDoVeA1KplPPItxeI5H/d/1dXB3h87+POdor29nZnn/DtsEjKJhF3UOg1BL0rOvv37ZdYLOb6ANhOp7u7bm3opoVCrxGIurAaCkTl48eOV7RzbKdHdfTEwBYpi0TcQ6HXCF3kAL0r1aBvry4iZZGIeyj0GuHxeHJ2pEfkSjh27FjOVvkXEnEHz54hKvHmxBwUuiEwEFQNwWCw+U5KA6HQDaEGfiplw4YNzXVCGgyFbggM61dDtduTXCh0Q8C6XHDhBRXtHNtVa31ILhS6QbZfvt3JYXEDvDm2I7WFQjcIRItErXLFjvWuG7qODVEDUOiGQaP0hhtvkIsvKT2pCXYF61XbiCWF4eToOqDsyOClg0Xz0RnFzUKh1xGI+cJ3XWjN5z2ToNCroFHzbdVx89MOSHGsFrrK7UZGYDXJUouLi47o/H5/Dd9dLulU2jlOpahcGUzRMzwl74yEjVFiBdZFdD2KY9YOULnelZJaSkn/mn4JhULG3ncikZDxE+POa2+L+/ikym309PQ4k6/FsuhOj46T4PM5D1iPSuwHPHN7qN3Ie1P09vVmL1K33hyZlLAuNmdUWiN0vSSFZKI4IhsKBSHKmSZ9ckL8e/8k6bEX8SbEk3rr/aQCQfEObJDU+z4oqcs+UvRd5E/Tq5TIQsQ5ByiWhM9epwJJDccKoaNMXCQScV5jQgRKUqxfv76s6lnV4gj83t0See2QhEJBWdUWkIC/RWseJWTmtZdl+uALkvrdbyR45ack8dnPGXs/ofaQ88A5QHUBBQQfi8WaVu3WWRcM0OTXXTFFy2N/kNjvH5SuNr9sGeiVgK+wjjpb/YKk3LloQo788RHxPvU3Sd35I6jS2HuDsNGmQACwobKAFUJHwc+pU1NOFCtUQQsjlcf+eyxnxBKjldUMx0Pk8YdGZGt/lyPkcsB6F6zrkWOn5mTu9ttE7rq7YrGjKtjE+OnpfGgsI8ddH4GFb4fYjx496vy6jY+PN+3wrDURHV/q2rVrc5ZB2CgtcfjQ4WXrPzP6jJNkNTg46Ho0U4n8nWu7pS1w+hTPpdLy26mI/GMxkV12ftAnO7tbnWdnW69HNvV1ypFJ92JHY/O5fz0nB547ULDhCZEjpwapCErwOC8outTsxWbt8OjJhBc/1foEY1TEQnGhUj0RqJ6FgkKYqHzFlVeUdSx4ctgVRHJd5ODlaFLunYzkLPtnJCFdXk9W6AqI/dUT07L0q1/I0je+s+Jx8TkeHHlQTk6cLLkOLgJEe738HRrlaJxOTEy04cYFzXgjAmsGjPReCwgXAi63uw21Eff+eW9Z6/p+eZ/0tPnLtiul2NzXKYvPPutcPKUoR+Q6uIAfGnko5/MjCBx5/UifdneOpsIKobe2tm5U0Rxfbrmi1YHYEQlLElmQxbExWdddeOBotkiawWyqsG1A47Wvo1X8v/11ycOOPj1atsgV+ecBpe+aGSusSyAQ2KheI012pYKfxYCg9PLO+bQ8sVe6Q8Gc3pVnI6f9+L0nIwW3e+DUouPfB3xvXYzntfrkYx1veeg1nW3yn5dfKhqRlB2pBLRN0E5R0/Y2n7v5ombVhHXdi2NjY2WsVRhETV0Yy3jhOQn5T4v84ZmofO9/5V1Uj8xEs6/X+1uyQofPT8fijn3xrF7eC1RtRTC0VdA4bXasS+qqtB6iolQFrtTMjHS0nh6E+st8ZfkzbyRy+7XbAi2SLnLcWlcEa1aYvegSvW96JYp58kpo+19hQVYrdFug0F3ipgxFVw3rJcZ7Cw9esSxGeVgn9NX9q6vavqu7uLC8gYDEk6dtx/nBylJHPtqRO0AZT6ZkKVB40LJaodsyGdu6xiiGwd12xSkwmliqVJxn42aZP/Cs0yUIru1uzf4NXYjoXSnGeUH0tAScHhd98AgXDh6BCwqPziJVAaO4lbLhbac/TzAQjGt3sW4qrBB6PB4/GgwGP4zXl7z3koq741YqWZH4xKcl9tTfZdNbtwiVAX+LfHX16f7pD4T88q3js8u2Qy/L/RtXSad3eZ75dCQuoYH1RdWHiDywYaCiRjZSHPTu0ldeeeVV1zs5S7DCukSj0aNqTih+6j80+CHX+4DlwUVSCkR0f2+PjM8WjtzFPPt6v7egyMH43KKkPnl1yeOilEYl5TL0tAbMYNq0eRPydiufmHoGY41Hn5qayr5Gv7GbuogQEURRjpg8n/+CvDkTkaUio51ueHN6Qby9vSUnZEgmql+2/TJX+95xxY4cG6amFTYrVgjd7/OnMKtGn+kP4SKyryRe2IJbvnRL2Y22pQ8MSuD8852ErHwQueHbz8t48PeH/E7Dc2dX67J1kZs+Ph+V9Je/XtZxkWG568ZdK5a/w9+vuuaqnIxMiBxTCfv7+xebMaELeJo9PRM8sOeBOyORyPcxHzR/AjOG0DE6iDwWjHrGY3HHpsDiQAwV1SmPLIjcfpu0JWJOYlZLEVtSjOlITI5MzkvguiFZuvozrg+vPg8+G7y7+jzw4/kpx/j+kbmIXJdYLPbxW2665Qn3H/jMx6peF2cm/fh4zgwjRHR475X8tyuQP37X3RL94Xfl1ROTsqGno6xsRtid8dmInJiPSbBCkUsmupeTQ49fOMwwsiHYWSF0v9+fUpOAwcLCgjPbyOgNsELtkv7xT8Wz5zdy6PG9EvJ7nQStztbAsgiP7sPJ+ajT8PSvXi3+b94uS+84z9x7y9gVXPjqFw6To0OhUNPOqbOy3EUymXSmj0H8uFmtyQpbyV03iW/n9ZJ6+EE59vTfJT5x0knUUmJfjCcl7fVKcOtWCXzxU47HNwkiOC50VQXAFqwRuirnoCI75kjipxuFiyB81EqptOQDImPJmjChdkfwsusmQcpX4qUxUcm73v5+JytxpVA6PT2drVrg9sJUk5/xeWFTcA7wYAGjJkZ9sbAu1aK8rdsqX94io5ylQENZRWD0kIiLQkYmf7HOFpjURayAJemqoFFlm1ku2j2M6MQKKHRiBbQudQZT11AVTIE0Wd4l2jwUep1ABYFCFbSQS47RWaQAY3SWN+0yA4VumHIraEHwyE+5fuh6it0A9OgGcVtBC+thfZsL9puCQjdIJRW0sD62I7WFQjcERjIrnbKH7fQS1qR6KHRDVFtBq9rtSS4UuiFYQevMgr0uhqjWeuQ3SJGYZTR/vsnhmSNWQKEbotrRzvztMacT+eP1uJNeM0Kh14j8O7vpFbAqATfXUuDO1DbcOc4kFHqNgBD1chqIyCuVnihGfgWtyGIkOxvIlhlBtYZCrwFoJOIxMzOTs7Nyb/CVT/52mN/Jhmh18OzVEAhdtxiI6qiI5YZCFbQWF5uySlxdYfdiDVANxJ6eHqdujH7TXtRXCbYGnfuZlrp3EhK5dly5I8eyqMnbmCvKRmh12HGf0USijLWqB2LFsVD+Tq8jA/EiSmO007mj88SEI3p4cZS6w99R/lnPWsTEa/TF4x6gkhF9qoZ30LANK4QejUb3icgPTB8HQsRADx4QM8StZuBDxOVW0FJ1V2CD1PzQOnh0NDAqS845C7Ci9iK45757bhaR3SLSbfI4KurCckCc6P/GQ5WoKAW2gcDhyZVVqVMj9IiI7PzaV75GoTcDP9n9k1Uicjlq+pv6OMlk0lFmJBLx6f/v6upa09LS0trR0bFRXz+VSkUjkcj4/Pz8iUQi4Yz7+3y+VCgUSqrXhk/9vm/f+u19ho/RcKwSOrEXdi8SK6DQiRWwH53UnfBIuOo2wfDQ8OVu1qfQSSPYXu9j0roQK6DQiRVQ6MQKKHRiBRQ6sQIKnVgBhU6sgEInVkChEyvgyCg5KwmPhIulAEwPDw0vy6un0IkRwiPhizMTXUzxZJH97s/MOciBQiemWNWInJZi0KMTK6DQiRVQ6MQKKHRiBRQ6sQIKnVgBhU6sgP3olhMeCe82VNBp1Zl0Zil0cvGZNLBjCloXYgUUOrECCp1YAYVOrICNUWKUPb/bI48+8mj2ELfedqsMXjpY95POiE6MMjo6mrP7gwcPNuSEU+jEGIcPH5bxE+PO7nHXDzD69GhDTjiFToyhi/randc6z7g/UyPETqETYyjbsm3bNrlo20XZwzTCvlDoxAi6bdn27m2yZcuWhtoXCp0YQRfzuVvOdZ5Vb0sj7AuFToygbAuiOKyLZCyMot72hUInNUe3LXqfOSyMghGdnPXoItajOKJ7o+wLhU5qjm5b8kdBG2VfKHRSU4rZFoW+jBGdnLUUsy2KfPtSr6jOpC5SU8rJbVH96c7fXzhY8IKoNRQ6qRm6bQG77165xigujF037DL+JdC6kJpRiefGhYELxDSM6KRm6LblZz//maxZu6borvU8dVwgSBEwCSM6qQm6bYFoS4lc8ntfRs33vlDopCa8ePDF7G7KmUGkXwz1sC8UOqkJuj8fHCxvqpy+nuk+dQqdVI0ekcuxLYp62hcKnVSNLlI3E5/raV8odFI1ldiWQuubtC+edDptbOfkzCc8Et7XZLUX9w8PDS+7Kx0jOrECCp1YAYVOrIBCJ1ZAoRMroNCJFTB7kRxwcQZwG5juzOuZzLa4V9F7tHWeF5HpvHXVss0isimz7IiIvJ55rXdv7s886+vq+1iJgp+H/eikbPL63J3+6vBIGH3WT2r7+Mjw0PC+vHXVsh+KyA8yy+4YHhrG/7HfrAiHh4Y9mWX6utl9VPpt0boQK6DQiRVQ6MQKKHRiBRQ6sQIKnVgBhU6sgEInVsCRUeKG+0VEDdq8rj3foe1DLS+0rj7go7/Wty/0d30fFcGRUWIFtC7ECih0YgUUOml+ROT/5Hw2rRGmM4cAAAAASUVORK5CYII=" + }, + "motorMeduimPortB": { + "icon": "data:image/png;base64,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" + }, + "motorMeduimPortC": { + "icon": "data:image/png;base64,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" + }, + "motorMeduimPortD": { + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAYAAAAZDlfxAAAACXBIWXMAAC4jAAAuIwF4pT92AAAQzklEQVR4nO2da3CcVRnHn93sJdncmqRpaVPb0qpcpAIqEsYZWoSCIrRViBkLCoyAo3gB/MCMyHBxmBE/AH4A/KAODBBmJ6BcHGcsIi0OUMSRQjVcpIXWFkjSpLlu9pZd5/92z+bdze5mb2c37Pn/Zrb79s15r/t/n/c55zznOY54PC6E1DpO/sLEBCh0YgQUOjECCp0YAYVOjIBCJ0ZAoRMjoNCJEVDoxAgodGIEFDoxAgqdGAGFToyAQidGQKETI6DQiRFQ6MQIKHRiBBQ6MQIKnRgBhU6MgEInRkChEyOg0IkRUOjECCh0YgQUOjECCp0YAYVOjIBCJ0ZAoRMjoNCJEVDoxAhc/Jn14nA4cI8bEgfJdr+jie8Z/BOPx6OaT8s4aNGJERg3h5G/379NRE7Ttf9IJGIZj+mpact6j0+Mez/84MOmxsbGZpfLtaS5ubnD5XJ5VPlgMDgVjUbHJiYmjnQs7RjFutaW1lBjU6Nl1d1ud0zXuSZ4srend4/mY1QdY4Tu7/dD3DuhI13HmJ2dlampKWt5ZGREnE6n1NfXS3t7u3g8ngW3n5yclNGRUZmNzUpHR4e1rqmpyfquq6vTddrgdRHZ1NvTO6bzINXECB/d3+9folvk6TQ0NEhnZ6e4XPnf4ubmZusTDAYlHA5LBY3QqbDsEHulDlhpTKmMXqnbkgNY8+HhYWlpaZEVK1bMK7dv3z7Z9+4+mZiYSK5D2fWfXC/r169PrsNbAG+Aw4cPJ9fBsmu26hvx1qtVN8YUoS+p1IFgyZctW5ayDuJ/5ulnZHJicl75w3JY3hx4U5pbmuXiLRdbbwEAt6erq8t6eCpo2St2nyoNW13KANwMfI4ePSrHHXdcyg4H/jMgfY/0ZRS5Hfwd5VBeAbHDisPfx/5J8VDoZSAWi1mfdPcClvyFXS8UdIBndzxrbadobGy09gm/HS6ScpNIYVDoZQStK3Z27dwloVCo4ANgOzutrRWrQ9csFHqZgNWFq6GAVT586HBRO8d2dquOlhi4RcpFIoVDoZcJu8gBWldKwb69eoiUi0QKh0IvEw6HI2VHdotcDIcOHUrZKv1BIoXBu6eJYnxzog8KXRPoCCoFr9dbezelilDomlAdP8WyatWq2rohVYZC1wS69Uuh1O1JKhS6JuC6nHTySUXtHNuV6vqQVCh0jWzctNGKYSkE+ObYjpQXCl0jEC0CtfIVO8pd0nMJK6IaoNA1g0rpZZdfJqednntQE9wVlCu1Eksyw8HRFUC5I91ndWeNR6cV1wuFXkEg5pM/c7Ix17uYoNBLoFrjbdVx08MOSHaMFrqK7UZEYCnBUjMzM5bo3G53Gc8ulXgsbh2nWFSsDIboaR6StyhhZZQYgXEW3W7FMWoHqFjvYonNxqRzWaf4fD5t5x2JRGRocMhadtYVbp9Uuo22tjZr8LUYZt3po+MmuFzWB65HMe4HfOZGX6OWc1O0d7QnH9JCfXNEUsJ1MTmi0hih21NSSMKKw7IhURCsnG7iR4bFvePPEh/4N05CHLFj5xPzeMXZtUpin/+ixM4+J+tZpA/TK5bAdMC6B0iWhGuvUIKkqmOE0JEmLhAIWMsYEIGUFCtXrswre1apWAK//14JvLtPfD6vLGnwiMddZ6seRWT83bdkbO8bEnv0IfFecKFEvvFNbefja/RZH9wDZBdQQPChUKhm1W6c64IOmvS8K7qoe+aPEvrD49LS4JZ1Xe3icWXWUXO9WxCUOxmMyIE/PSXOl/4usTt+CVVqOzcIG3UKGAATMgsYIXQk/Bw9OmpZsUwZtNBTeeh/h1J6LNFbWUp3PEQefqJf1ne2WELOB5Q7aUWbHDo6KZM33SBy1z1Fix1ZwYaH5obzobKMGHd7Dyz8doj94MGD1tttaGioZrtnjbHo+FGXL1+esg7CRmqJ/fv2zyv/yu5XrCCr7u7ugnszlcg/vbxVGjxzt3gyFpeHRwPyj5lIct2JXpdsa623vq1tnQ5Z09EsB0YKFzsqm6/96zXZ89qejBVPiBwxNQhFUILHfUHSpVpPNmuGjx6NOPGqtg8wRkYsJBfK1RKB7FlIKISByudfcH5ex4JPDncFltwucvBWMCr3jwRS1v0zEJEWpyMpdAXE/s7gmMz+7jcy+6OfLnhcXMfj/Y/LkeEjOcvgIYC1t6e/Q6UcldPh4eEGTFxQixMRGNNhZG+1gHAh4Hyb25AbccdfduRV1vXbB6StwZ23u5KLtR3NMvPqq9bDk4t8RG4HD/AT/U+kXD+MwIH3D3TYZueoKYwQen19/WplzfHj5itaOxA7LGFOAtMyMzAgK1ozdxxNZAkzmIhldhtQee1oqhf3w7/PedjdL+/OW+SK9PuA1He1jBGui8fjWa2WESa7UMLPbEBQ9vTO6dQ9t0Nafd6U1pVXA3P++P1HAhm3e+TojOW/d7mOPYwn1Lvk3KZjPvSy5gb571tvZrVIyh0pBtRNUE9Rw/bWHr/2lFrVhHHNiwMDA3mUygyspl0Y83jjNfG550T+5HhQfv5Rfg/VU+PB5PJKd11S6PDz46Gw5b44ls5vBSo1IxjqKqic1jrGBXUVmw9RkSsDV2x8XJrq5zqh/jZVXPzMB5HUdu0GT53Esxy33BnBahVGLxaIvW16IbL55MXQ8FFmQZYqdFOg0AukkDQULWXMlxhuz9x5xbQY+WGc0Jd2Li1p+5bW7MJyejwSjs65HSd6iwsd+XJTagdlOBqTWU/mTstShW7KYGzjKqPoBi+0KU6B3sRcqeIcq9fK1J5XrSZBsLW1Pvk3NCGidSUbJ3jR0uKxWlzsnUd4cPDxnJS5dxahCujFLZZVn5i7Hq/HG7bNYl1TGCH0cDh80Ov1fgnLp3/u9KKb4xZKWRH5ytck9NKLsubYFKHS5a6THyyda58+w+eWnxyemLcdWlkeXL1Emp3z48zHAmHxda3Mqj5Y5K5VXUVVshHiYG8uffvtt98peCcfE4xwXYLB4EE1JhSv+jO7zyx4H3B58JDkAhbd3d4mQxOZLXc2n32l25lR5GBockZiX70453GRSqOYdBn2sAaMYFqzdg3idosfmLqIMcZHHx0dTS6j3biQvIgQEUSRj5gc3/q2fDgekNksvZ2F8OHYtDjb23MOyJCEVT9749kF7Xvz+ZtT3DA1rLBWMULobpc7hlE19pH+EC4s+0LihVtw1XevyrvSNntGt3hOPNEKyEoHlht++wkJH/wLPrdV8dzWUj+vLGLTh6aCEv/eD/M6LiIst1++fcH0d/j7RVsuSonIhMgxlLCzs3OmFgO6gKPWwzPBI32P3BEIBG7BeND0AczoQkfvIOJY0OsZDoUtNwUuDsRQVJ7ywLTITTdIQyRkBWbVZXFLsjEWCMmBkSnxXNIjsxd/veDDq+vBtcF3V9cDfzw95Bi/PyIXEesSCoXOu+qKq54r/IIXP0a1ulgj6YeGUkYYwaLD917I/y4IxI/fdY8Eb/uZvDM4IqvamvKKZoS7MzQRkMGpkHiLFLkkrHs+MfR4w2GEkQnGzgihu93umBoEDKanp63RRlonwPI1SvxXvxZH30Oy79kd4nM7rQCt5nrPPAuP5sORqaBV8XQvXSruH98ks586Qd+5JdwVPPjqDYfB0T6fr2bH1BmZ7iIajVrDxyB+TFarM8NWdPsV4tp2qcSefFwOvfyihIePWIFaSuwz4ajEnU7xrl8vnu9caPn4OoEFx4OusgCYgjFCV+kclGXHGEm8upG4CMJHrpRiUz7AMubMCeNrtAQv268QhHxF3hwQFbzr7Oy0ohIXMqVjY2PJrAWFPphq8DOuF24K7gE+TGBUw6gfFq5LqSjfttAsX84svZy5QEVZWWC0kEgBiYx0vrE+LjCoixgBU9KVQLXSNjNddOHQohMjoNCJEdB1qTAYuoasYAqEyXKWaP1Q6BUCGQQyZdBCLDl6ZxECjN5ZTtqlBwpdM/lm0ILgEZ9yac+lFLsG6KNrpNAMWiiH8iYn7NcFha6RYjJooTy2I+WFQtcEejKLHbKH7ewprEnpUOiaKDWDVqnbk1QodE0wg9bigq0umijV9UivkCIwS2v8fI3DO0eMgELXRKm9nenbY0wn4scrMZNeLUKhl4n0md3sGbCKAZNrKTAztQkzx+mEQi8TEKI9nQYs8kKpJ7KRnkErMBNIjgYyZURQuaHQywAqifiMj4+n7CzfCb7SSd8O4ztZES0N3r0yAqHbXQxYdWTEKoRMGbRmZmoyS1xFYfNiGVAVxLa2NitvjH3SXuRX8dZ7rflMc82dhECuzRdsTnFZ1OBtjBVlJbQ0zJhnNBLJo1TpQKw4FtLf2fPIQLyw0ujttGZ0Hh62RA9fHKnu8Hekf7ZHLWLgNdriMQeoJEQfK+MMGqZhhNCDweBOEblV93EgRHT04AMxQ9xqBD5EnG8GLZV3BW6QGh9aAR8dFYzignM+BhiRexHc98B9V4rIvSLSqvM4yurC5YA40f6Nj0pRkQtsA4HDJ1euSoUqoQdEZNt137+OQq8F7r737iUisgk5/XVdTjQatZQZCARc9v+3tLQsq6urq29qalptLx+LxYKBQGBoampqMBKJWP3+Lpcr5vP5ompZ863feeP1N+7UfIyqY5TQibmweZEYAYVOjIDt6KTi+Pv9JdcJent6NxVSnkIn1WBjpY9J14UYAYVOjIBCJ0ZAoRMjoNCJEVDoxAgodGIEFDoxAgqdGAF7RsnHEn+/P1sIwFhvT++8uHoKnWjB3+8/LTHQRRfPZ9nvrsSYgxQodKKLJdWIackGfXRiBBQ6MQIKnRgBhU6MgEInRkChEyOg0IkRsB3dcPz9/ns1JXRaspjuLIVOTltMHTu6oOtCjIBCJ0ZAoRMjoNCJEbAySkqm79E+eW//e9Zu9u/fb01kYAf54detWyfLli+T5cuXS3d3t7VcSSh0UjJPP/V0zl1A+Hv37hXZe+z/eDA2bNggW7Ztsb4rAYVOysr2y7bL8euOT9nl9NS0NYnZ7pd3WxYfQPj4bNm6xdpGNxQ6KSsQbjbwt6HBIenr67NEL4m3ASz+Nddeo/WHYGWUVBT45tffcH2KFX/ur88lha8LCp1UBVh3u/WHldcJhU6qxtZtW5OtL3BpdFp1Cp1UDTQ7oqlRoSqqOqDQSVXZ8Nm55kXVFq8DCp1UFXs7Oi06MYL0HtVyQqETI6DQyaIBlVNdUOikqtj9cgR+6YJCJ1XF3tKSHiNTTih0UlXsnUS06KQmURGMojqPzurWdpkUOqkKaEp87NHHkodGOIBOKHRScSDyO39xZ7IiiniXc887V+tpMB6dVBSE5GKEkeocgsuCsF2dTYtCoZNyo3xuO2hZGRwctCqe9t5PVD6vvvZqrZVQBYVOygpckoWAq7J161bt7oodCp2UDAKzYKkzBWWpDACNTce+T9lwSkUseDoUOimZm2+5edHfRLa6ECOg0IkRUOjECCh0YgQUOjECCp0YAZsXyZ4C7gCmgWlNLI8ntsVcRafayrwuImNpZdW6tSKyJrHugIi8n1i2Ty2zK/FtL2vfx0JkvB5HPB43/pcm+eHv9++0iXJXb0/vJn+/f5OIPG/bwTm9Pb0708qqdbeJyK2Jdbf39vTi/9hvUoS9Pb2OxDp72eQ+iv2p6LoQI6DQiRFQ6MQIKHRiBBQ6MQIKnRgBhU6MgEInRsCeUVIID4qI6rR53/Z9u20fan2msvYOH/uyfftMf7fvoyjYM0qMgK4LMQIKnRgBhU5qHxH5Px1cEB7uXmMdAAAAAElFTkSuQmCC" } } \ No newline at end of file diff --git a/libs/core/jres/icons/dualMotorLarge-portAB-icon.png b/libs/core/jres/icons/dualMotorLarge-portAB-icon.png new file mode 100644 index 00000000..a19eea1f Binary files /dev/null and b/libs/core/jres/icons/dualMotorLarge-portAB-icon.png differ diff --git a/libs/core/jres/icons/dualMotorLarge-portAD-icon.png b/libs/core/jres/icons/dualMotorLarge-portAD-icon.png new file mode 100644 index 00000000..ee0d9403 Binary files /dev/null and b/libs/core/jres/icons/dualMotorLarge-portAD-icon.png differ diff --git a/libs/core/jres/icons/dualMotorLarge-portBC-icon.png b/libs/core/jres/icons/dualMotorLarge-portBC-icon.png new file mode 100644 index 00000000..f9bddb16 Binary files /dev/null and b/libs/core/jres/icons/dualMotorLarge-portBC-icon.png differ diff --git a/libs/core/jres/icons/dualMotorLarge-portCD-icon.png b/libs/core/jres/icons/dualMotorLarge-portCD-icon.png new file mode 100644 index 00000000..0a8a9284 Binary files /dev/null and b/libs/core/jres/icons/dualMotorLarge-portCD-icon.png differ diff --git a/libs/core/jres/icons/motorLarge-portA-icon.png b/libs/core/jres/icons/motorLarge-portA-icon.png new file mode 100644 index 00000000..a4f13095 Binary files /dev/null and b/libs/core/jres/icons/motorLarge-portA-icon.png differ diff --git a/libs/core/jres/icons/motorLarge-portB-icon.png b/libs/core/jres/icons/motorLarge-portB-icon.png new file mode 100644 index 00000000..3185dadd Binary files /dev/null and b/libs/core/jres/icons/motorLarge-portB-icon.png differ diff --git a/libs/core/jres/icons/motorLarge-portC-icon.png b/libs/core/jres/icons/motorLarge-portC-icon.png new file mode 100644 index 00000000..0a7c0486 Binary files /dev/null and b/libs/core/jres/icons/motorLarge-portC-icon.png differ diff --git a/libs/core/jres/icons/motorLarge-portD-icon.png b/libs/core/jres/icons/motorLarge-portD-icon.png new file mode 100644 index 00000000..bbb7960d Binary files /dev/null and b/libs/core/jres/icons/motorLarge-portD-icon.png differ diff --git a/libs/core/jres/icons/motorMedium-portA-icon.png b/libs/core/jres/icons/motorMedium-portA-icon.png new file mode 100644 index 00000000..6cf10f6c Binary files /dev/null and b/libs/core/jres/icons/motorMedium-portA-icon.png differ diff --git a/libs/core/jres/icons/motorMedium-portB-icon.png b/libs/core/jres/icons/motorMedium-portB-icon.png new file mode 100644 index 00000000..64836fb5 Binary files /dev/null and b/libs/core/jres/icons/motorMedium-portB-icon.png differ diff --git a/libs/core/jres/icons/motorMedium-portC-icon.png b/libs/core/jres/icons/motorMedium-portC-icon.png new file mode 100644 index 00000000..4b05cfb5 Binary files /dev/null and b/libs/core/jres/icons/motorMedium-portC-icon.png differ diff --git a/libs/core/jres/icons/motorMedium-portD-icon.png b/libs/core/jres/icons/motorMedium-portD-icon.png new file mode 100644 index 00000000..8e6b80e9 Binary files /dev/null and b/libs/core/jres/icons/motorMedium-portD-icon.png differ diff --git a/libs/core/output.ts b/libs/core/output.ts index d9923329..403419c0 100644 --- a/libs/core/output.ts +++ b/libs/core/output.ts @@ -195,7 +195,7 @@ namespace motors { * @param brake a value indicating if the motor should break when off */ //% blockId=outputMotorSetBrakeMode block="set %motor|brake %brake=toggleOnOff" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=60 blockGap=8 //% group="Properties" @@ -210,7 +210,7 @@ namespace motors { * @param value true to pause; false to continue the program execution */ //% blockId=outputMotorSetPauseMode block="set %motor|pause on run %brake=toggleOnOff" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=60 blockGap=8 //% group="Properties" @@ -223,7 +223,7 @@ namespace motors { * Inverts the motor polarity */ //% blockId=motorSetInverted block="set %motor|inverted %reversed=toggleOnOff" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=59 blockGap=8 //% group="Properties" @@ -241,7 +241,7 @@ namespace motors { * Set the settle time after braking in milliseconds (default is 10ms). */ //% blockId=motorSetBrakeSettleTime block="set %motor|brake settle time %millis|ms" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=1 blockGap=8 //% group="Properties" @@ -347,7 +347,7 @@ namespace motors { //% blockId=motorRun block="run %motor at %speed=motorSpeedPicker|\\%||for %value %unit" //% weight=100 blockGap=8 //% group="Move" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% expandableArgumentMode=toggle //% help=motors/motor/run @@ -397,7 +397,7 @@ namespace motors { //% blockId=motorSchedule block="ramp %motor at %speed=motorSpeedPicker|\\%|for %value|%unit||accelerate %acceleration|decelerate %deceleration" //% weight=99 blockGap=8 //% group="Move" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% help=motors/motor/ramp //% inlineInputMode=inline @@ -427,7 +427,7 @@ namespace motors { * of run commands. */ //% blockId=outputMotorsetRunRamp block="set %motor|run %ramp to $value||$unit" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=21 blockGap=8 //% group="Properties" @@ -499,7 +499,7 @@ namespace motors { * @param value true for regulated motor */ //% blockId=outputMotorSetRegulated block="set %motor|regulated %value=toggleOnOff" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=58 blockGap=8 //% group="Properties" @@ -525,7 +525,7 @@ namespace motors { * @param timeOut optional maximum pausing time in milliseconds */ //% blockId=motorPauseUntilRead block="pause until %motor|ready" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=90 blockGap=8 //% group="Move" @@ -584,7 +584,7 @@ namespace motors { * @param motor the port which connects to the motor */ //% blockId=motorSpeed block="%motor|speed" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=72 //% blockGap=8 @@ -600,7 +600,7 @@ namespace motors { * @param motor the port which connects to the motor */ //% blockId=motorAngle block="%motor|angle" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=70 //% blockGap=8 @@ -615,7 +615,7 @@ namespace motors { * Clears the motor count */ //% blockId=motorClearCount block="clear %motor|counters" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=68 //% blockGap=8 @@ -644,7 +644,7 @@ namespace motors { * Pauses the program until the motor is stalled. */ //% blockId=motorPauseUntilStall block="pause until %motor|stalled" - //% motor.fieldEditor="speed" + //% motor.fieldEditor="motors" //% motor.fieldOptions.decompileLiterals=1 //% weight=89 //% group="Move" @@ -669,28 +669,28 @@ namespace motors { } } - //% whenUsed fixedInstance block="large motor A" jres=icons.portA + //% whenUsed fixedInstance block="large motor A" jres=icons.motorLargePortA export const largeA = new Motor(Output.A, true); - //% whenUsed fixedInstance block="large motor B" jres=icons.portB + //% whenUsed fixedInstance block="large motor B" jres=icons.motorLargePortB export const largeB = new Motor(Output.B, true); - //% whenUsed fixedInstance block="large motor C" jres=icons.portC + //% whenUsed fixedInstance block="large motor C" jres=icons.motorLargePortC export const largeC = new Motor(Output.C, true); - //% whenUsed fixedInstance block="large motor D" jres=icons.portD + //% whenUsed fixedInstance block="large motor D" jres=icons.motorLargePortD export const largeD = new Motor(Output.D, true); - //% whenUsed fixedInstance block="medium motor A" jres=icons.portA + //% whenUsed fixedInstance block="medium motor A" jres=icons.motorMeduimPortA export const mediumA = new Motor(Output.A, false); - //% whenUsed fixedInstance block="medium motor B" jres=icons.portB + //% whenUsed fixedInstance block="medium motor B" jres=icons.motorMeduimPortB export const mediumB = new Motor(Output.B, false); - //% whenUsed fixedInstance block="medium motor C" jres=icons.portC + //% whenUsed fixedInstance block="medium motor C" jres=icons.motorMeduimPortC export const mediumC = new Motor(Output.C, false); - //% whenUsed fixedInstance block="medium motor D" jres=icons.portD + //% whenUsed fixedInstance block="medium motor D" jres=icons.motorMeduimPortD export const mediumD = new Motor(Output.D, false); //% fixedInstances @@ -721,7 +721,7 @@ namespace motors { * @param unit (optional) unit of the value */ //% blockId=motorPairTank block="tank **motors** %motors %speedLeft=motorSpeedPicker|\\% %speedRight=motorSpeedPicker|\\%||for %value %unit" - //% motors.fieldEditor="ports" + //% motors.fieldEditor="motors" //% weight=96 blockGap=8 //% inlineInputMode=inline //% group="Move" @@ -751,7 +751,7 @@ namespace motors { * @param unit (optional) unit of the value */ //% blockId=motorPairSteer block="steer **motors** %chassis turn ratio %turnRatio=motorTurnRatioPicker speed %speed=motorSpeedPicker|\\%||for %value %unit" - //% chassis.fieldEditor="ports" + //% chassis.fieldEditor="motors" //% weight=95 //% turnRatio.min=-200 turnRatio=200 //% inlineInputMode=inline @@ -824,16 +824,16 @@ namespace motors { } } - //% whenUsed fixedInstance block="B+C" jres=icons.portBC + //% whenUsed fixedInstance block="large motors B+C" jres=icons.dualMotorLargePortBC export const largeBC = new SynchedMotorPair(Output.BC); - //% whenUsed fixedInstance block="A+D" jres=icons.portAD + //% whenUsed fixedInstance block="large motors A+D" jres=icons.dualMotorLargePortAD export const largeAD = new SynchedMotorPair(Output.AD); - //% whenUsed fixedInstance block="A+B" jres=icons.portAB + //% whenUsed fixedInstance block="large motors A+B" jres=icons.dualMotorLargePortAB export const largeAB = new SynchedMotorPair(Output.AB); - //% whenUsed fixedInstance block="C+D" jres=icons.portCD + //% whenUsed fixedInstance block="large motors C+D" jres=icons.dualMotorLargePortCD export const largeCD = new SynchedMotorPair(Output.CD); function reset(out: Output) { diff --git a/pxtarget.json b/pxtarget.json index e274aab3..dd82aa55 100644 --- a/pxtarget.json +++ b/pxtarget.json @@ -159,6 +159,7 @@ "extendEditor": true, "extendFieldEditors": true, "scriptManager": true, + "debugger": true, "importExtensionFiles": true, "experiments": [ "python", diff --git a/sim/tsconfig.json b/sim/tsconfig.json index 67bd8125..15ca0210 100644 --- a/sim/tsconfig.json +++ b/sim/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2017", "noImplicitAny": true, "noImplicitReturns": true, "declaration": true, @@ -8,8 +8,8 @@ "rootDir": ".", "newLine": "LF", "sourceMap": false, - "lib": ["dom", "dom.iterable", "scripthost", "es6"], + "lib": ["dom", "dom.iterable", "scripthost", "es2017"], "types": [], "typeRoots": ["../node_modules/@types"] } -} +} \ No newline at end of file