import { import_css } from "./chunk-PGYCW7PW.js"; import { attr, classes, delegate, domify$1, event, query } from "./chunk-XZ2PVW7M.js"; import { assign, every, forEach, isArray, isDefined, isFunction, some } from "./chunk-4AK4GF4H.js"; import "./chunk-2LSFTFF7.js"; // node_modules/.pnpm/diagram-js@11.9.1/node_modules/diagram-js/lib/util/Elements.js function getBBox(elements, stopRecursion) { stopRecursion = !!stopRecursion; if (!isArray(elements)) { elements = [elements]; } var minX, minY, maxX, maxY; forEach(elements, function(element) { var bbox = element; if (element.waypoints && !stopRecursion) { bbox = getBBox(element.waypoints, true); } var x = bbox.x, y = bbox.y, height = bbox.height || 0, width = bbox.width || 0; if (x < minX || minX === void 0) { minX = x; } if (y < minY || minY === void 0) { minY = y; } if (x + width > maxX || maxX === void 0) { maxX = x + width; } if (y + height > maxY || maxY === void 0) { maxY = y + height; } }); return { x: minX, y: minY, height: maxY - minY, width: maxX - minX }; } // node_modules/.pnpm/diagram-js@11.9.1/node_modules/diagram-js/lib/features/context-pad/ContextPad.js var entrySelector = ".entry"; var DEFAULT_PRIORITY = 1e3; var CONTEXT_PAD_PADDING = 12; function ContextPad(canvas, config, eventBus, overlays) { this._canvas = canvas; this._eventBus = eventBus; this._overlays = overlays; var scale = isDefined(config && config.scale) ? config.scale : { min: 1, max: 1.5 }; this._overlaysConfig = { scale }; this._current = null; this._init(); } ContextPad.$inject = [ "canvas", "config.contextPad", "eventBus", "overlays" ]; ContextPad.prototype._init = function() { var self = this; this._eventBus.on("selection.changed", function(event2) { var selection = event2.newSelection; var target = selection.length ? selection.length === 1 ? selection[0] : selection : null; if (target) { self.open(target, true); } else { self.close(); } }); this._eventBus.on("elements.changed", function(event2) { var elements = event2.elements, current = self._current; if (!current) { return; } var currentTarget = current.target; var currentChanged = some( isArray(currentTarget) ? currentTarget : [currentTarget], function(element) { return includes(elements, element); } ); if (currentChanged) { self.open(currentTarget, true); } }); }; ContextPad.prototype.registerProvider = function(priority, provider) { if (!provider) { provider = priority; priority = DEFAULT_PRIORITY; } this._eventBus.on("contextPad.getProviders", priority, function(event2) { event2.providers.push(provider); }); }; ContextPad.prototype.getEntries = function(target) { var providers = this._getProviders(); var provideFn = isArray(target) ? "getMultiElementContextPadEntries" : "getContextPadEntries"; var entries = {}; forEach(providers, function(provider) { if (!isFunction(provider[provideFn])) { return; } var entriesOrUpdater = provider[provideFn](target); if (isFunction(entriesOrUpdater)) { entries = entriesOrUpdater(entries); } else { forEach(entriesOrUpdater, function(entry, id) { entries[id] = entry; }); } }); return entries; }; ContextPad.prototype.trigger = function(action, event2, autoActivate) { var entry, originalEvent, button = event2.delegateTarget || event2.target; if (!button) { return event2.preventDefault(); } entry = attr(button, "data-action"); originalEvent = event2.originalEvent || event2; return this.triggerEntry(entry, action, originalEvent, autoActivate); }; ContextPad.prototype.triggerEntry = function(entryId, action, event2, autoActivate) { if (!this.isShown()) { return; } var target = this._current.target, entries = this._current.entries; var entry = entries[entryId]; if (!entry) { return; } var handler = entry.action; if (isFunction(handler)) { if (action === "click") { return handler(event2, target, autoActivate); } } else { if (handler[action]) { return handler[action](event2, target, autoActivate); } } event2.preventDefault(); }; ContextPad.prototype.open = function(target, force) { if (!force && this.isOpen(target)) { return; } this.close(); this._updateAndOpen(target); }; ContextPad.prototype._getProviders = function() { var event2 = this._eventBus.createEvent({ type: "contextPad.getProviders", providers: [] }); this._eventBus.fire(event2); return event2.providers; }; ContextPad.prototype._updateAndOpen = function(target) { var entries = this.getEntries(target), pad = this.getPad(target), html = pad.html, image; forEach(entries, function(entry, id) { var grouping = entry.group || "default", control = domify$1(entry.html || '
'), container; attr(control, "data-action", id); container = query("[data-group=" + (0, import_css.default)(grouping) + "]", html); if (!container) { container = domify$1(''); attr(container, "data-group", grouping); html.appendChild(container); } container.appendChild(control); if (entry.className) { addClasses(control, entry.className); } if (entry.title) { attr(control, "title", entry.title); } if (entry.imageUrl) { image = domify$1("