|
(window["webpackJsonpGUI"] = window["webpackJsonpGUI"] || []).push([["addon-entry-editor-theme3"],{ |
|
|
|
"./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/black_text.css": |
|
|
|
|
|
|
|
|
|
(function(module, exports, __webpack_require__) { |
|
|
|
exports = module.exports = __webpack_require__( "./node_modules/css-loader/lib/css-base.js")(false); |
|
|
|
|
|
|
|
|
|
exports.push([module.i, "@namespace xlink url(\"http://www.w3.org/1999/xlink\");\n\n.scratchCategoryItemBubble::after {\n /* block-palette-icons */\n filter: brightness(0);\n}\n\n.blocklyEditableText > text {\n fill: var(--editorTheme3-inputColor-blackText);\n}\n.blocklyHtmlInput {\n color: var(--editorTheme3-inputColor-blackText);\n}\n\n[class*=\"blocks_blocks_\"] image[xlink|href$=\"/rotate-left.svg\"],\n[class*=\"blocks_blocks_\"] image[xlink|href$=\"/rotate-right.svg\"],\n[class*=\"blocks_blocks_\"] image[xlink|href$=\"/repeat.svg\"] {\n filter: invert(1) hue-rotate(180deg);\n}\n\n.blocklyDropDownDiv .goog-menuitem,\n.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem .goog-menuitem-content {\n color: black;\n}\n.blocklyDropDownDiv .blocklyText {\n fill: black;\n}\n\n/* Compatibility */\n\n.sa-block-color {\n --sa-block-text: black;\n --sa-block-gray-text: black;\n --sa-block-colored-text: var(--sa-block-background-tertiary);\n --sa-block-text-on-bright-background: black;\n}\n", ""]); |
|
|
|
|
|
|
|
|
|
}), |
|
|
|
"./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_black.css": |
|
|
|
|
|
|
|
|
|
(function(module, exports, __webpack_require__) { |
|
|
|
exports = module.exports = __webpack_require__( "./node_modules/css-loader/lib/css-base.js")(false); |
|
|
|
|
|
|
|
|
|
exports.push([module.i, ".u-dropdown-searchbar {\n border-color: rgba(255, 255, 255, 0.15);\n}\n.u-dropdown-searchbar:focus {\n background-color: var(--editorTheme3-hoveredItem);\n}\n.blocklyDropDownDiv .goog-menuitem-checkbox {\n filter: brightness(0) invert(1);\n}\n\n.scratchCommentRect {\n fill: #282828;\n}\n.scratchCommentBody,\n.scratchCommentTextarea {\n background-color: #282828;\n}\n.scratchWorkspaceCommentBorder {\n stroke: var(--editorTheme3-commentColor);\n}\n.scratchCommentTextarea::placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.scratchCommentText {\n fill: #ffffff;\n color: #ffffff;\n}\n\n/* Compatibility */\n\n.sa-block-color {\n --sa-block-colored-background: var(--sa-block-background-secondary);\n --sa-block-colored-background-secondary: var(--sa-block-field-background);\n --sa-block-bright-background: var(--sa-block-background-tertiary);\n --sa-block-text: var(--sa-block-background-tertiary);\n --sa-block-gray-text: white;\n --sa-block-colored-text: var(--sa-block-background-tertiary);\n --sa-block-text-on-bright-background: white;\n}\n", ""]); |
|
|
|
|
|
|
|
|
|
}), |
|
|
|
"./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_white.css": |
|
|
|
|
|
|
|
|
|
(function(module, exports, __webpack_require__) { |
|
|
|
exports = module.exports = __webpack_require__( "./node_modules/css-loader/lib/css-base.js")(false); |
|
|
|
|
|
|
|
|
|
exports.push([module.i, ".scratchCategoryItemBubble::after {\n /* block-palette-icons */\n filter: brightness(0);\n opacity: 0.6;\n}\n\n.u-dropdown-searchbar,\n.u-dropdown-searchbar:focus,\n.blocklyDropDownDiv .goog-menuitem,\n.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem .goog-menuitem-content {\n color: #575e75;\n}\n.u-dropdown-searchbar:focus {\n background-color: var(--editorTheme3-hoveredItem);\n}\n\n.blocklyAngleDragHandle {\n stroke: black;\n stroke-opacity: 0.15;\n paint-order: stroke fill;\n}\n\n.scratchCommentRect {\n fill: #feffff;\n}\n.scratchCommentBody,\n.scratchCommentTextarea {\n background-color: #ffffff;\n}\n.scratchWorkspaceCommentBorder {\n stroke: var(--editorTheme3-commentColor);\n}\n.scratchCommentTextarea::placeholder {\n color: rgba(0, 0, 0, 0.5);\n}\n.scratchCommentText {\n fill: #575e75;\n color: #575e75;\n}\n\n/* Compatibility */\n\n.sa-block-color {\n --sa-block-colored-background: var(--sa-block-background-secondary);\n --sa-block-colored-background-secondary: var(--sa-block-field-background);\n --sa-block-bright-background: var(--sa-block-background-tertiary);\n --sa-block-text: var(--sa-block-background-tertiary);\n --sa-block-gray-text: #575e75;\n --sa-block-colored-text: var(--sa-block-background-tertiary);\n --sa-block-text-on-bright-background: white;\n}\n", ""]); |
|
|
|
|
|
|
|
|
|
}), |
|
|
|
"./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/theme3.css": |
|
|
|
|
|
|
|
|
|
(function(module, exports, __webpack_require__) { |
|
|
|
exports = module.exports = __webpack_require__( "./node_modules/css-loader/lib/css-base.js")(false); |
|
|
|
|
|
|
|
|
|
exports.push([module.i, ".blocklyEditableText > text {\n fill: var(--editorTheme3-inputColor-text);\n}\n.blocklyHtmlInput {\n background-color: var(--editorTheme3-inputColor);\n color: var(--editorTheme3-inputColor-text);\n}\n\n.blocklyDropDownDiv .goog-menuitem-highlight,\n.blocklyDropDownDiv .goog-menuitem-hover,\n.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem-highlight {\n background-color: var(--editorTheme3-hoveredItem, rgba(0, 0, 0, 0.2));\n}\n\n.scratchCommentRect {\n fill: var(--editorTheme3-commentColor);\n}\n.scratchCommentBody,\n.scratchCommentTextarea {\n background-color: var(--editorTheme3-commentColor);\n}\n.scratchWorkspaceCommentBorder {\n stroke: var(--editorTheme3-commentBorder);\n}\n.scratchCommentTextarea::placeholder {\n color: var(--editorTheme3-commentTextTransparent);\n}\n.scratchCommentText {\n fill: var(--editorTheme3-commentText);\n color: var(--editorTheme3-commentText);\n}\n", ""]); |
|
|
|
|
|
|
|
|
|
}), |
|
|
|
"./src/addons/addons/editor-theme3/_runtime_entry.js": |
|
|
|
|
|
|
|
|
|
(function(module, __webpack_exports__, __webpack_require__) { |
|
|
|
"use strict"; |
|
__webpack_require__.r(__webpack_exports__); |
|
__webpack_require__.d(__webpack_exports__, "resources", function() { return resources; }); |
|
var _theme3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./src/addons/addons/editor-theme3/theme3.js"); |
|
var _css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/theme3.css"); |
|
var _css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1__); |
|
var _css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/black_text.css"); |
|
var _css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2__); |
|
var _css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_white.css"); |
|
var _css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(_css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3__); |
|
var _css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_black.css"); |
|
var _css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4__); |
|
|
|
|
|
|
|
|
|
|
|
|
|
const resources = { |
|
"theme3.js": _theme3_js__WEBPACK_IMPORTED_MODULE_0__["default"], |
|
"theme3.css": _css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1___default.a, |
|
"black_text.css": _css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2___default.a, |
|
"color_on_white.css": _css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3___default.a, |
|
"color_on_black.css": _css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4___default.a |
|
}; |
|
|
|
}), |
|
|
|
"./src/addons/addons/editor-theme3/theme3.js": |
|
|
|
|
|
|
|
|
|
(function(module, __webpack_exports__, __webpack_require__) { |
|
|
|
"use strict"; |
|
__webpack_require__.r(__webpack_exports__); |
|
var _libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./src/addons/libraries/common/cs/text-color.esm.js"); |
|
|
|
const dataUriRegex = new RegExp("^data:image/svg\\+xml;base64,([A-Za-z0-9+/=]*)$"); |
|
const extensionsCategory = { |
|
id: null, |
|
settingId: "Pen-color", |
|
colorId: "pen" |
|
}; |
|
const twCategory = { |
|
id: null, |
|
settingId: "tw-color", |
|
colorId: "tw" |
|
}; |
|
const saCategory = { |
|
settingId: "sa-color", |
|
colorId: "sa" |
|
}; |
|
const categories = [{ |
|
id: "motion", |
|
settingId: "motion-color", |
|
colorId: "motion" |
|
}, { |
|
id: "looks", |
|
settingId: "looks-color", |
|
colorId: "looks" |
|
}, { |
|
id: "sound", |
|
settingId: "sounds-color", |
|
colorId: "sounds" |
|
}, { |
|
id: "events", |
|
settingId: "events-color", |
|
colorId: "event" |
|
}, { |
|
id: "control", |
|
settingId: "control-color", |
|
colorId: "control" |
|
}, { |
|
id: "sensing", |
|
settingId: "sensing-color", |
|
colorId: "sensing" |
|
}, { |
|
id: "operators", |
|
settingId: "operators-color", |
|
colorId: "operators" |
|
}, { |
|
id: "variables", |
|
settingId: "data-color", |
|
colorId: "data" |
|
}, { |
|
id: "lists", |
|
settingId: "data-lists-color", |
|
colorId: "data_lists" |
|
}, { |
|
id: "myBlocks", |
|
settingId: "custom-color", |
|
colorId: "more" |
|
}, extensionsCategory, twCategory, saCategory]; |
|
__webpack_exports__["default"] = (async function (_ref) { |
|
let { |
|
addon, |
|
console |
|
} = _ref; |
|
const Blockly = await addon.tab.traps.getBlockly(); |
|
const originalColors = JSON.parse(JSON.stringify(Blockly.Colours)); |
|
originalColors.sa = { |
|
primary: "#29beb8", |
|
secondary: "#3aa8a4", |
|
tertiary: "#3aa8a4" |
|
}; |
|
originalColors.tw = { |
|
primary: "#ff4c4c", |
|
secondary: "#e64444", |
|
tertiary: "#e64444" |
|
}; |
|
let textModeSetting = addon.settings.get("text"); |
|
const textMode = () => addon.self.disabled ? "white" : textModeSetting; |
|
const isColoredTextMode = () => textMode() === "colorOnWhite" || textMode() === "colorOnBlack"; |
|
const primaryColor = category => { |
|
if (addon.self.disabled) return originalColors[category.colorId].primary; |
|
|
|
if (textMode() === "colorOnWhite") return "#feffff"; |
|
if (textMode() === "colorOnBlack") return "#282828"; |
|
return addon.settings.get(category.settingId); |
|
}; |
|
const secondaryColor = category => { |
|
if (addon.self.disabled) return originalColors[category.colorId].secondary; |
|
if (isColoredTextMode()) return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["alphaBlend"])(primaryColor(category), Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["multiply"])(addon.settings.get(category.settingId), { |
|
a: 0.15 |
|
})); |
|
if (textMode() === "black") return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["brighten"])(addon.settings.get(category.settingId), { |
|
r: 0.6, |
|
g: 0.6, |
|
b: 0.6 |
|
}); |
|
return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["multiply"])(addon.settings.get(category.settingId), { |
|
r: 0.9, |
|
g: 0.9, |
|
b: 0.9 |
|
}); |
|
}; |
|
const tertiaryColor = category => { |
|
if (addon.self.disabled) return originalColors[category.colorId].tertiary; |
|
if (isColoredTextMode()) return addon.settings.get(category.settingId); |
|
if (textMode() === "black") return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["multiply"])(addon.settings.get(category.settingId), { |
|
r: 0.65, |
|
g: 0.65, |
|
b: 0.65 |
|
}); |
|
return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["multiply"])(addon.settings.get(category.settingId), { |
|
r: 0.8, |
|
g: 0.8, |
|
b: 0.8 |
|
}); |
|
}; |
|
const fieldBackground = category => { |
|
|
|
|
|
if (category instanceof Blockly.Block || category instanceof Blockly.Field) { |
|
const block = category instanceof Blockly.Block ? category : category.sourceBlock_; |
|
if (isColoredTextMode() || textMode() === "black") { |
|
let primary; |
|
if (block.isShadow() && block.getParent()) primary = block.getParent().getColour();else primary = block.getColour(); |
|
if (isColoredTextMode()) return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["alphaBlend"])(primary, Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["multiply"])(block.getColourTertiary(), { |
|
a: 0.25 |
|
}));else return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["brighten"])(primary, { |
|
r: 0.4, |
|
g: 0.4, |
|
b: 0.4 |
|
}); |
|
} |
|
return block.getColourTertiary(); |
|
} |
|
if (isColoredTextMode()) return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["alphaBlend"])(primaryColor(category), Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["multiply"])(addon.settings.get(category.settingId), { |
|
a: 0.25 |
|
})); |
|
if (textMode() === "black") return Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["brighten"])(primaryColor(category), { |
|
r: 0.4, |
|
g: 0.4, |
|
b: 0.4 |
|
}); |
|
return tertiaryColor(category); |
|
}; |
|
const textColor = field => { |
|
if (addon.self.disabled || textMode() === "white") return "#ffffff"; |
|
if (textMode() === "black") return "#000000"; |
|
if (field) return field.sourceBlock_.getColourTertiary(); |
|
return "#000000"; |
|
}; |
|
const uncoloredTextColor = () => { |
|
if (addon.self.disabled) return "#ffffff"; |
|
return { |
|
white: "#ffffff", |
|
black: "#575e75", |
|
colorOnWhite: "#575e75", |
|
colorOnBlack: "#ffffff" |
|
}[textMode]; |
|
}; |
|
const otherColor = (settingId, colorId) => { |
|
if (addon.self.disabled) return originalColors[colorId]; |
|
return addon.settings.get(settingId); |
|
}; |
|
|
|
|
|
const oldBlockMakeColor = Blockly.Block.prototype.makeColour_; |
|
Blockly.Block.prototype.makeColour_ = function (color) { |
|
if (typeof color === "string" && /^#(?:[0-9A-Za-z]{2}){3,4}$/.test(color)) return color; |
|
return oldBlockMakeColor(color); |
|
}; |
|
const oldCategoryCreateDom = Blockly.Toolbox.Category.prototype.createDom; |
|
Blockly.Toolbox.Category.prototype.createDom = function () { |
|
|
|
if (this.iconURI_) { |
|
if (addon.self.disabled) return oldCategoryCreateDom.call(this); |
|
if (!["sa-blocks", "videoSensing", "text2speech"].includes(this.id_)) return oldCategoryCreateDom.call(this); |
|
const match = dataUriRegex.exec(this.iconURI_); |
|
if (match) { |
|
const oldSvg = atob(match[1]); |
|
const category = this.id_ === "sa-blocks" ? saCategory : extensionsCategory; |
|
const newColor = isColoredTextMode ? tertiaryColor(category) : primaryColor(category); |
|
if (newColor) { |
|
const newSvg = oldSvg.replace(/#29beb8|#0ebd8c/gi, newColor); |
|
this.iconURI_ = "data:image/svg+xml;base64,".concat(btoa(newSvg)); |
|
} |
|
} |
|
} |
|
oldCategoryCreateDom.call(this); |
|
if (this.iconURI_) return; |
|
const category = categories.find(item => item.id === this.id_); |
|
if (!category) return; |
|
this.bubble_.style.backgroundColor = isColoredTextMode() ? fieldBackground(category) : primaryColor(category); |
|
this.bubble_.style.borderColor = tertiaryColor(category); |
|
}; |
|
const oldBlockSetColour = Blockly.Block.prototype.setColour; |
|
Blockly.Block.prototype.setColour = function (colour, colourSecondary, colourTertiary) { |
|
|
|
if (colour.toLowerCase() === originalColors.pen.primary.toLowerCase()) { |
|
colour = primaryColor(extensionsCategory); |
|
colourSecondary = secondaryColor(extensionsCategory); |
|
colourTertiary = tertiaryColor(extensionsCategory); |
|
} |
|
|
|
if (this.type.startsWith("tw_")) { |
|
colour = primaryColor(twCategory); |
|
colourSecondary = secondaryColor(twCategory); |
|
colourTertiary = tertiaryColor(twCategory); |
|
} |
|
return oldBlockSetColour.call(this, colour, colourSecondary, colourTertiary); |
|
}; |
|
const oldBlockUpdateColour = Blockly.BlockSvg.prototype.updateColour; |
|
Blockly.BlockSvg.prototype.updateColour = function () { |
|
oldBlockUpdateColour.call(this); |
|
|
|
if (isColoredTextMode()) { |
|
for (const input of this.inputList) { |
|
if (input.outlinePath) { |
|
input.outlinePath.setAttribute("fill", fieldBackground(this)); |
|
} |
|
} |
|
} |
|
}; |
|
const oldBlockShowContextMenu = Blockly.BlockSvg.prototype.showContextMenu_; |
|
Blockly.BlockSvg.prototype.showContextMenu_ = function (e) { |
|
Blockly.WidgetDiv.DIV.style.setProperty("--editorTheme3-hoveredItem", fieldBackground(this)); |
|
return oldBlockShowContextMenu.call(this, e); |
|
}; |
|
const oldFieldLabelInit = Blockly.FieldLabel.prototype.init; |
|
Blockly.FieldLabel.prototype.init = function () { |
|
|
|
oldFieldLabelInit.call(this); |
|
this.textElement_.style.fill = textColor(this); |
|
}; |
|
const oldFieldTextInputInit = Blockly.FieldTextInput.prototype.init; |
|
Blockly.FieldTextInput.prototype.init = function () { |
|
|
|
oldFieldTextInputInit.call(this); |
|
if (this.sourceBlock_.isShadow()) return; |
|
|
|
this.box_.setAttribute("fill", fieldBackground(this)); |
|
}; |
|
const oldFieldDropdownInit = Blockly.FieldDropdown.prototype.init; |
|
Blockly.FieldDropdown.prototype.init = function () { |
|
|
|
oldFieldDropdownInit.call(this); |
|
this.textElement_.style.setProperty("fill", textColor(this), "important"); |
|
if (textColor(this) !== "#ffffff") this.arrow_.style.filter = Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["recolorFilter"])(textColor(this)); |
|
}; |
|
const oldFieldDropdownShowEditor = Blockly.FieldDropdown.prototype.showEditor_; |
|
Blockly.FieldDropdown.prototype.showEditor_ = function () { |
|
oldFieldDropdownShowEditor.call(this); |
|
|
|
|
|
if (!this.disableColourChange_) { |
|
if (this.sourceBlock_.isShadow()) { |
|
this.sourceBlock_.setShadowColour(fieldBackground(this)); |
|
} else if (this.box_) { |
|
this.box_.setAttribute("fill", fieldBackground(this)); |
|
} |
|
} |
|
|
|
|
|
let primaryColor; |
|
if (this.sourceBlock_.isShadow() && this.sourceBlock_.getParent()) primaryColor = this.sourceBlock_.getParent().getColour();else primaryColor = this.sourceBlock_.getColour(); |
|
Blockly.DropDownDiv.DIV_.style.backgroundColor = Object(_libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__["removeAlpha"])(primaryColor); |
|
if (isColoredTextMode()) { |
|
Blockly.DropDownDiv.getContentDiv().style.setProperty("--editorTheme3-hoveredItem", fieldBackground(this)); |
|
} else { |
|
Blockly.DropDownDiv.getContentDiv().style.removeProperty("--editorTheme3-hoveredItem"); |
|
} |
|
}; |
|
const oldFieldVariableInit = Blockly.FieldVariable.prototype.init; |
|
Blockly.FieldVariable.prototype.init = function () { |
|
|
|
oldFieldVariableInit.call(this); |
|
this.textElement_.style.setProperty("fill", textColor(this), "important"); |
|
}; |
|
const oldFieldVariableGetterInit = Blockly.FieldVariableGetter.prototype.init; |
|
Blockly.FieldVariableGetter.prototype.init = function () { |
|
|
|
oldFieldVariableGetterInit.call(this); |
|
this.textElement_.style.fill = textColor(this); |
|
}; |
|
const oldFieldMatrixUpdateMatrix = Blockly.FieldMatrix.prototype.updateMatrix_; |
|
Blockly.FieldMatrix.prototype.updateMatrix_ = function () { |
|
|
|
oldFieldMatrixUpdateMatrix.call(this); |
|
for (let i = 0; i < this.matrix_.length; i++) { |
|
if (this.matrix_[i] !== "0") { |
|
this.fillMatrixNode_(this.ledButtons_, i, uncoloredTextColor()); |
|
this.fillMatrixNode_(this.ledThumbNodes_, i, uncoloredTextColor()); |
|
} |
|
} |
|
}; |
|
const oldFieldMatrixCreateButton = Blockly.FieldMatrix.prototype.createButton_; |
|
Blockly.FieldMatrix.prototype.createButton_ = function (fill) { |
|
if (fill === "#FFFFFF") fill = uncoloredTextColor(); |
|
return oldFieldMatrixCreateButton.call(this, fill); |
|
}; |
|
const oldFieldVerticalSeparatorInit = Blockly.FieldVerticalSeparator.prototype.init; |
|
Blockly.FieldVerticalSeparator.prototype.init = function () { |
|
|
|
oldFieldVerticalSeparatorInit.call(this); |
|
if (textMode() === "black") this.lineElement_.setAttribute("stroke", this.sourceBlock_.getColourTertiary()); |
|
}; |
|
const updateColors = () => { |
|
const vm = addon.tab.traps.vm; |
|
textModeSetting = addon.settings.get("text"); |
|
for (const category of categories) { |
|
|
|
const prefix = "--editorTheme3-".concat(category.colorId); |
|
for (const [name, value] of Object.entries({ |
|
primary: primaryColor(category), |
|
secondary: secondaryColor(category), |
|
tertiary: tertiaryColor(category), |
|
field: fieldBackground(category) |
|
})) { |
|
document.documentElement.style.setProperty("".concat(prefix, "-").concat(name), value); |
|
} |
|
|
|
|
|
if (!Blockly.Colours[category.colorId]) continue; |
|
Blockly.Colours[category.colorId].primary = primaryColor(category); |
|
Blockly.Colours[category.colorId].secondary = secondaryColor(category); |
|
Blockly.Colours[category.colorId].tertiary = tertiaryColor(category); |
|
} |
|
addon.tab.setCustomBlockColor({ |
|
color: primaryColor(saCategory), |
|
secondaryColor: secondaryColor(saCategory), |
|
tertiaryColor: tertiaryColor(saCategory) |
|
}); |
|
Blockly.Colours.textField = otherColor("input-color", "textField"); |
|
if (uncoloredTextColor() === "#575e75") Blockly.Colours.fieldShadow = "rgba(0, 0, 0, 0.15)";else Blockly.Colours.fieldShadow = originalColors.fieldShadow; |
|
const workspace = Blockly.getMainWorkspace(); |
|
const flyout = workspace.getFlyout(); |
|
const toolbox = workspace.getToolbox(); |
|
|
|
|
|
if (vm.editingTarget) { |
|
vm.emitWorkspaceUpdate(); |
|
} |
|
const flyoutWorkspace = flyout.getWorkspace(); |
|
Blockly.Xml.clearWorkspaceAndLoadFromXml(Blockly.Xml.workspaceToDom(flyoutWorkspace), flyoutWorkspace); |
|
toolbox.populate_(workspace.options.languageTree); |
|
workspace.toolboxRefreshEnabled_ = true; |
|
}; |
|
updateColors(); |
|
addon.settings.addEventListener("change", updateColors); |
|
addon.self.addEventListener("disabled", updateColors); |
|
addon.self.addEventListener("reenabled", updateColors); |
|
}); |
|
|
|
}) |
|
|
|
}]); |
|
|