import froca from "../../services/froca.js"; import attributeService from "../../services/attributes.js"; import CommandButtonWidget from "./command_button.js"; export default class ButtonFromNoteWidget extends CommandButtonWidget { constructor() { super(); this.settings.buttonNoteIdProvider = null; } buttonNoteIdProvider(provider) { this.settings.buttonNoteIdProvider = provider; return this; } doRender() { super.doRender(); this.updateIcon(); } updateIcon() { const buttonNoteId = this.settings.buttonNoteIdProvider(); if (!buttonNoteId) { console.error(`buttonNoteId for '${this.componentId}' is not defined.`); return; } froca.getNote(buttonNoteId).then((note) => { this.settings.icon = note.getIcon(); this.refreshIcon(); }); } entitiesReloadedEvent({ loadResults }) { const buttonNote = froca.getNoteFromCache(this.buttonNoteIdProvider()); if (!buttonNote) { return; } if (loadResults.getAttributeRows(this.componentId).find((attr) => attr.type === "label" && attr.name === "iconClass" && attributeService.isAffecting(attr, buttonNote))) { this.updateIcon(); } } }