Files
FHC-Core/public/js/tabulator/customModules/InternalToExternalEventBroadcastModule.js
T
2026-05-23 14:28:14 +02:00

31 lines
947 B
JavaScript

// changes within tabulator are often not adequately broadcast to the external component
// this module exposes tabulator's internal events
// if external event name is not specified, the dispatched external event will be the camelCase version of the kebab-case internal event
import Module from "../../../../vendor/olifolkerd/tabulator5/src/js/core/Module.js";
import { convertCase } from "../../helpers/StringHelpers.js";
export default class InternalToExternalEventBroadcastModule extends Module {
static moduleName = "internalToExternalEventBroadcast";
static moduleInitNumber = 1;
constructor(table) {
super(table);
this.eventsToBroadcast = [
{
internal: "layout-refreshed",
external: null,
},
];
}
initialize() {
this.eventsToBroadcast.forEach((event) => {
this.subscribe(event.internal, () => {
this.dispatchExternal(event.external ?? convertCase(event.internal, "kebab", "camel"));
});
});
}
}