1
0
forked from sent/waves
waves/public/assets/g/turbowarp/main/js/addon-entry-editor-theme3.js
2025-04-09 17:11:14 -05:00

526 lines
25 KiB
JavaScript

(window["webpackJsonpGUI"] = window["webpackJsonpGUI"] || []).push([["addon-entry-editor-theme3"],{
/***/ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/black_text.css":
/*!**********************************************************************************!*\
!*** ./node_modules/css-loader!./src/addons/addons/editor-theme3/black_text.css ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
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", ""]);
// exports
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_black.css":
/*!**************************************************************************************!*\
!*** ./node_modules/css-loader!./src/addons/addons/editor-theme3/color_on_black.css ***!
\**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
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", ""]);
// exports
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_white.css":
/*!**************************************************************************************!*\
!*** ./node_modules/css-loader!./src/addons/addons/editor-theme3/color_on_white.css ***!
\**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
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", ""]);
// exports
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/theme3.css":
/*!******************************************************************************!*\
!*** ./node_modules/css-loader!./src/addons/addons/editor-theme3/theme3.css ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
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", ""]);
// exports
/***/ }),
/***/ "./src/addons/addons/editor-theme3/_runtime_entry.js":
/*!***********************************************************!*\
!*** ./src/addons/addons/editor-theme3/_runtime_entry.js ***!
\***********************************************************/
/*! exports provided: resources */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resources", function() { return resources; });
/* harmony import */ var _theme3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./theme3.js */ "./src/addons/addons/editor-theme3/theme3.js");
/* harmony import */ var _css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! css-loader!./theme3.css */ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/theme3.css");
/* harmony import */ var _css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_theme3_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! css-loader!./black_text.css */ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/black_text.css");
/* harmony import */ var _css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_css_loader_black_text_css__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! css-loader!./color_on_white.css */ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_white.css");
/* harmony import */ var _css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_css_loader_color_on_white_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! css-loader!./color_on_black.css */ "./node_modules/css-loader/index.js!./src/addons/addons/editor-theme3/color_on_black.css");
/* harmony import */ var _css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_css_loader_color_on_black_css__WEBPACK_IMPORTED_MODULE_4__);
/* generated by pull.js */
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":
/*!***************************************************!*\
!*** ./src/addons/addons/editor-theme3/theme3.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _libraries_common_cs_text_color_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../libraries/common/cs/text-color.esm.js */ "./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];
/* harmony default export */ __webpack_exports__["default"] = (async function ({
addon,
console
}) {
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; // Colored on white: can't use #ffffff because of editor-dark-mode dropdown div handling
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 => {
// Background color for open dropdowns and (in some textModes) Boolean inputs
// The argument can be a block, field, or 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);
}; // Blockly doesn't handle colors with transparency
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 () {
// Category bubbles
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) {
// Extension blocks (color is set by VM)
if (colour.toLowerCase() === originalColors.pen.primary.toLowerCase()) {
colour = primaryColor(extensionsCategory);
colourSecondary = secondaryColor(extensionsCategory);
colourTertiary = tertiaryColor(extensionsCategory);
} // TurboWarp Blocks
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); // Boolean inputs
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 () {
// Labels
oldFieldLabelInit.call(this);
this.textElement_.style.fill = textColor(this);
};
const oldFieldTextInputInit = Blockly.FieldTextInput.prototype.init;
Blockly.FieldTextInput.prototype.init = function () {
// Text inputs
oldFieldTextInputInit.call(this);
if (this.sourceBlock_.isShadow()) return; // Labels in custom block editor
this.box_.setAttribute("fill", fieldBackground(this));
};
const oldFieldDropdownInit = Blockly.FieldDropdown.prototype.init;
Blockly.FieldDropdown.prototype.init = function () {
// Dropdowns
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); // Open dropdowns
if (!this.disableColourChange_) {
if (this.sourceBlock_.isShadow()) {
this.sourceBlock_.setShadowColour(fieldBackground(this));
} else if (this.box_) {
this.box_.setAttribute("fill", fieldBackground(this));
}
} // Dropdown menus
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 () {
// Variable dropdowns
oldFieldVariableInit.call(this);
this.textElement_.style.setProperty("fill", textColor(this), "important");
};
const oldFieldVariableGetterInit = Blockly.FieldVariableGetter.prototype.init;
Blockly.FieldVariableGetter.prototype.init = function () {
// Variable reporters
oldFieldVariableGetterInit.call(this);
this.textElement_.style.fill = textColor(this);
};
const oldFieldMatrixUpdateMatrix = Blockly.FieldMatrix.prototype.updateMatrix_;
Blockly.FieldMatrix.prototype.updateMatrix_ = function () {
// Matrix inputs
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 () {
// Vertical line between extension icon and block label
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) {
// CSS variables are used for compatibility with other addons
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);
} // Update Blockly.Colours
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(); // Reload toolbox
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);
});
/***/ })
}]);
//# sourceMappingURL=addon-entry-editor-theme3.js.map