diff --git a/CHANGELOG.md b/CHANGELOG.md index ffc30c9..944c66e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ All notable changes to [@camunda/improved-canvas](https://github.com/camunda/imp ___Note:__ Yet to be released changes appear here._ +## 1.5.0 + +* `FEAT`: context pad always visible as long as elements visible ([#61](https://github.com/camunda/improved-canvas/pull/61)) +* `FEAT`: quick append and attach visible as long as elements visible ([#61](https://github.com/camunda/improved-canvas/pull/61)) +* `CHORE`: comments icon simplified ([#61](https://github.com/camunda/improved-canvas/pull/61)) +* `FIX`: do not show resource linking if start event is inside event subprocess ([#61](https://github.com/camunda/improved-canvas/pull/61)) + ## 1.4.0 * `FEAT`: add quick append and attach ([#59](https://github.com/camunda/improved-canvas/pull/59)) diff --git a/assets/context-pad.css b/assets/context-pad.css index c8bd203..6621e70 100644 --- a/assets/context-pad.css +++ b/assets/context-pad.css @@ -13,11 +13,12 @@ } .bio-improved-canvas .djs-context-pad { + width: auto; background: var(--context-pad-background-color); color: var(--context-pad-color); border-radius: 4px; - transform: translate(-50%, -100%); box-shadow: var(--context-pad-box-shadow); + z-index: 200; } .bio-improved-canvas .djs-context-pad.open { @@ -65,9 +66,14 @@ } .bio-improved-canvas .djs-context-pad .bio-properties-panel-tooltip-wrapper { + position: relative; text-decoration: none; } +.bio-improved-canvas .djs-context-pad .bio-properties-panel-tooltip { + position: absolute; +} + .bio-improved-canvas .djs-context-pad .bio-properties-panel-tooltip-content { font-size: 12px; padding: 9px 12px; @@ -97,21 +103,4 @@ /* Resource linking */ .bio-improved-canvas .djs-context-pad .entry.resource-linking-no-resource svg { fill: var(--blue-60); -} - -/* Feedback */ -.bio-improved-canvas .feedback-button { - font-family: inherit; - font-size: 12px; - position: absolute; - padding: 0; - border: none; - background: none; - color: var(--gray-60); - white-space: nowrap; - - &:hover { - color: var(--gray-80); - text-decoration: underline; - } } \ No newline at end of file diff --git a/assets/create-pad.css b/assets/create-pad.css index 16c2ad7..917fc24 100644 --- a/assets/create-pad.css +++ b/assets/create-pad.css @@ -1,69 +1,69 @@ -.djs-overlay-create-pad { - pointer-events: none; - - .djs-create-pad { - pointer-events: all; +.djs-create-pad { + position: absolute; + display: flex; + align-items: flex-start; + transform: translate(-20px, -20px); + z-index: 100; + + &:not(.open) { + display: none; + } + + &:hover { + z-index: 150; + + .djs-create-pad-icon { + display: none; + } + + .djs-create-pad-entries { + display: grid; + } + } + + .djs-create-pad-icon { display: flex; - align-items: flex-start; - position: relative; - transform: translate(-20px, -20px); - - &:hover { - z-index: 150; - - .djs-create-pad-icon { - display: none; - } - - .djs-create-pad-entries { - display: grid; - } + justify-content: center; + align-items: center; + width: 40px; + height: 40px; + border-radius: 100%; + + svg { + width: 20px; + height: 20px; + border-radius: 100%; + background-color: var(--color-blue-205-100-50); + box-shadow: var(--context-pad-box-shadow); } - - .djs-create-pad-icon { + } + + .djs-create-pad-entries { + display: none; + flex-direction: row; + overflow: hidden; + padding: 4px; + border-radius: 4px; + background-color: white; + color: var(--gray-80); + box-shadow: var(--context-pad-box-shadow); + + .djs-create-pad-entry { display: flex; justify-content: center; align-items: center; - width: 40px; - height: 40px; - border-radius: 100%; - - svg { - width: 20px; - height: 20px; - border-radius: 100%; - background-color: var(--color-blue-205-100-50); - box-shadow: var(--context-pad-box-shadow); - } - } + width: 32px; + height: 32px; + font-size: 22px; - .djs-create-pad-entries { - display: none; - flex-direction: row; - overflow: hidden; - padding: 4px; - border-radius: 4px; - background-color: white; - color: var(--gray-80); - box-shadow: var(--context-pad-box-shadow); - - .djs-create-pad-entry { + * { display: flex; justify-content: center; align-items: center; - width: 32px; - height: 32px; - font-size: 22px; - - * { - display: flex; - justify-content: center; - align-items: center; - } - - &:hover { - background: var(--context-pad-hover-color); - } + } + + &:hover { + background: var(--context-pad-hover-color); } } } diff --git a/lib/bpmn/appendCreatePad/AppendCreatePad.js b/lib/bpmn/appendCreatePad/AppendCreatePad.js index 6b5fd6c..2827d04 100644 --- a/lib/bpmn/appendCreatePad/AppendCreatePad.js +++ b/lib/bpmn/appendCreatePad/AppendCreatePad.js @@ -4,11 +4,11 @@ import { is } from 'bpmn-js/lib/util/ModelUtil'; import CreatePad from '../../common/createPad/CreatePad'; -const CREATE_PAD_MARGIN = 30; +const CREATE_PAD_MARGIN = 15; export default class AppendCreatePad extends CreatePad { - constructor(appendContextPadProvider, contextPadProvider, eventBus, overlays, rules) { - super(eventBus, overlays); + constructor(appendContextPadProvider, canvas, contextPadProvider, eventBus, rules) { + super(canvas, eventBus); this._appendContextPadProvider = appendContextPadProvider; this._contextPadProvider = contextPadProvider; @@ -35,25 +35,41 @@ export default class AppendCreatePad extends CreatePad { return this._getBoundaryEventPosition(target); } + const container = this._canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + const gfx = this._canvas.getGraphics(target); + + const targetBounds = gfx.getBoundingClientRect(); + return { - left: target.width + CREATE_PAD_MARGIN, - top: target.height / 2 + left: targetBounds.right + (CREATE_PAD_MARGIN * this._canvas.zoom()) - containerBounds.left, + top: targetBounds.top + targetBounds.height / 2 - containerBounds.top }; } _getBoundaryEventPosition(target) { const orientation = getOrientation(getMid(target), target.host); + const container = this._canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + const gfx = this._canvas.getGraphics(target); + + const targetBounds = gfx.getBoundingClientRect(); + if (orientation.includes('right') || orientation.includes('top') || orientation.includes('left')) { return { - left: target.width + CREATE_PAD_MARGIN, - top: target.height / 2 + left: targetBounds.right + (CREATE_PAD_MARGIN * this._canvas.zoom()) - containerBounds.left, + top: targetBounds.top + targetBounds.height / 2 - containerBounds.top }; } return { - left: target.width / 2, - top: target.height + CREATE_PAD_MARGIN + left: targetBounds.left + targetBounds.width / 2 - containerBounds.left, + top: targetBounds.bottom + (CREATE_PAD_MARGIN * this._canvas.zoom()) - containerBounds.top }; } @@ -72,9 +88,9 @@ export default class AppendCreatePad extends CreatePad { AppendCreatePad.$inject = [ 'appendContextPadProvider', + 'canvas', 'contextPadProvider', 'eventBus', - 'overlays', 'rules' ]; diff --git a/lib/bpmn/attachCreatePad/AttachCreatePad.js b/lib/bpmn/attachCreatePad/AttachCreatePad.js index 698316f..1d6fffb 100644 --- a/lib/bpmn/attachCreatePad/AttachCreatePad.js +++ b/lib/bpmn/attachCreatePad/AttachCreatePad.js @@ -6,11 +6,11 @@ import { is } from 'bpmn-js/lib/util/ModelUtil'; import CreatePad from '../../common/createPad/CreatePad'; const CREATE_PAD_MARGIN_X = -25, - CREATE_PAD_MARGIN_Y = 5; + CREATE_PAD_MARGIN_Y = -5; export default class AttachCreatePad extends CreatePad { - constructor(appendContextPadProvider, attachPreview, create, elementFactory, eventBus, injector, modeling, overlays, selection, translate) { - super(eventBus, overlays); + constructor(appendContextPadProvider, attachPreview, canvas, create, elementFactory, eventBus, injector, modeling, selection, translate) { + super(canvas, eventBus); this._appendContextPadProvider = appendContextPadProvider; this._attachPreview = attachPreview; @@ -33,11 +33,17 @@ export default class AttachCreatePad extends CreatePad { } getPosition(target) { - const bBox = getBBox([ target ]); + const container = this._canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + const gfx = this._canvas.getGraphics(target); + + const targetBounds = gfx.getBoundingClientRect(); return { - left: bBox.width + CREATE_PAD_MARGIN_X, - top: bBox.height + CREATE_PAD_MARGIN_Y + left: targetBounds.right + (CREATE_PAD_MARGIN_X * this._canvas.zoom()) - containerBounds.left, + top: targetBounds.bottom + (CREATE_PAD_MARGIN_Y * this._canvas.zoom()) - containerBounds.top }; } @@ -129,12 +135,12 @@ export default class AttachCreatePad extends CreatePad { AttachCreatePad.$inject = [ 'appendContextPadProvider', 'attachPreview', + 'canvas', 'create', 'elementFactory', 'eventBus', 'injector', 'modeling', - 'overlays', 'selection', 'translate' ]; \ No newline at end of file diff --git a/lib/bpmn/resourceLinking/ResourceLinkingRules.js b/lib/bpmn/resourceLinking/ResourceLinkingRules.js index 340e137..e9d421d 100644 --- a/lib/bpmn/resourceLinking/ResourceLinkingRules.js +++ b/lib/bpmn/resourceLinking/ResourceLinkingRules.js @@ -11,9 +11,19 @@ export default class ResourceLinkingRules extends RuleProvider { super(eventBus); this.addRule('resourceLinking.linkResource', ({ element }) => { - return !hasElementTemplate(element) && ( - isAny(element, [ 'bpmn:BusinessRuleTask', 'bpmn:CallActivity', 'bpmn:UserTask' ]) || (isNoneStartEvent(element) && isNoneStartEventSupported(config)) - ); + if (hasElementTemplate(element)) { + return false; + } + + if (isAny(element, [ 'bpmn:BusinessRuleTask', 'bpmn:CallActivity', 'bpmn:UserTask' ])) { + return true; + } + + if (isNoneStartEvent(element) && isNoneStartEventSupported(config) && !isEventSubProcess(element.parent)) { + return true; + } + + return false; }); } } @@ -41,4 +51,8 @@ function isNoneStartEventSupported(config = {}) { const { noneStartEvent = true } = config; return noneStartEvent; +} + +function isEventSubProcess(element) { + return getBusinessObject(element).get('triggeredByEvent'); } \ No newline at end of file diff --git a/lib/common/contextPad/FeedbackButton.js b/lib/common/contextPad/FeedbackButton.js deleted file mode 100644 index c24a703..0000000 --- a/lib/common/contextPad/FeedbackButton.js +++ /dev/null @@ -1,43 +0,0 @@ -import { OFFSET } from '../contextPad/ImprovedContextPad'; - -export default class FeedbackButton { - constructor(eventBus) { - eventBus.on('contextPad.open', ({ current }) => { - const { entries = {}, pad } = current; - - if (!Object.keys(entries).length) { - return; - } - - const { - html, - htmlContainer - } = pad; - - const button = document.createElement('button'); - - button.className = 'feedback-button'; - - button.textContent = 'Send feedback'; - - const { - offsetHeight, - offsetWidth - } = html; - - button.style.transform = `translate(${ offsetWidth / 2 }px, ${ -offsetHeight - OFFSET / 2 }px) translate(-100%, -100%)`; - - button.addEventListener('click', () => { - eventBus.fire('contextPad.feedback'); - }); - - htmlContainer.prepend(button); - - eventBus.once('contextPad.close', () => { - htmlContainer.removeChild(button); - }); - }); - } -} - -FeedbackButton.$inject = [ 'eventBus' ]; \ No newline at end of file diff --git a/lib/common/contextPad/ImprovedContextPad.js b/lib/common/contextPad/ImprovedContextPad.js index 18df6cf..38f2cdc 100644 --- a/lib/common/contextPad/ImprovedContextPad.js +++ b/lib/common/contextPad/ImprovedContextPad.js @@ -2,10 +2,6 @@ import { insertCSS } from '../../util'; import baseCSS from '../../../assets/base.css'; import contextPadCSS from '../../../assets/context-pad.css'; -import { - isArray -} from 'min-dash'; - import { domify as domify } from 'min-dom'; @@ -14,47 +10,135 @@ import { queryAll as domQueryAll } from 'min-dom'; -import { - getBBox -} from 'diagram-js/lib/util/Elements'; - import { TooltipEntry } from '@bpmn-io/properties-panel'; import { render } from '@bpmn-io/properties-panel/preact'; import { html } from 'htm/preact'; -export const OFFSET = 20; +const CONTEXT_PAD_MARGIN = 15; +const CONTEXT_PAD_VISIBLE_PADDING = 20; + +const MARKERS_HIDDEN = [ + 'djs-element-hidden', + 'djs-label-hidden' +]; -export default function ImprovedContextPad(contextPad, eventBus) { +export default function ImprovedContextPad(canvas, contextPad, eventBus, injector) { insertCSS('base', baseCSS); insertCSS('context-pad', contextPadCSS); + this._canvas = canvas; this._contextPad = contextPad; + this._injector = injector; - contextPad._getPosition = this._getPosition; + contextPad._getPosition = this._getPosition.bind(this); + contextPad._updateVisibility = this._updateVisibility.bind(this); eventBus.on('contextPad.open', this._renderTooltips.bind(this)); + + eventBus.on('canvas.viewbox.changed', () => { + this._updateVisibility(); + }); } +ImprovedContextPad.prototype._updateVisibility = function() { + if (!this._contextPad.isOpen()) { + return; + } + + var target = this._contextPad._current.target; + + var targets = Array.isArray(target) ? target : [ target ]; + + var elementHidden = targets.some((target) => { + return MARKERS_HIDDEN.some((marker) => { + return this._canvas.hasMarker(target, marker); + }); + }); + + const container = this._canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + const targetBounds = this._contextPad._getTargetBounds(this._contextPad._current.target); + + const elementOutsideBounds = targetBounds.left > containerBounds.right + || targetBounds.right < containerBounds.left + || targetBounds.top > containerBounds.bottom + || targetBounds.bottom < containerBounds.top; + + if (elementHidden || elementOutsideBounds) { + this._contextPad.hide(); + } else { + this._contextPad.show(); + } +}; + ImprovedContextPad.prototype._getPosition = function(target) { - var elements = isArray(target) ? target : [ target ]; - var bBox = getBBox(elements); + const container = this._canvas.getContainer(); - return { - position: { - left: bBox.x + bBox.width / 2, - top: bBox.y - OFFSET + const containerBounds = container.getBoundingClientRect(); + + const contextPadHtml = this._contextPad._current.html; + + const contextPadBounds = contextPadHtml.getBoundingClientRect(); + + const targetBounds = this._contextPad._getTargetBounds(target); + + const targetBoundsMid = { + x: targetBounds.x + targetBounds.width / 2, + y: targetBounds.y + targetBounds.height / 2 + }; + + let left = targetBoundsMid.x - contextPadBounds.width / 2 - containerBounds.left; + let top = targetBounds.top - contextPadBounds.height - CONTEXT_PAD_MARGIN - containerBounds.top; + + // left bounds + if (left < CONTEXT_PAD_VISIBLE_PADDING) { + left = CONTEXT_PAD_VISIBLE_PADDING; + } + + // right bounds + if (left + contextPadBounds.width > containerBounds.width - CONTEXT_PAD_VISIBLE_PADDING) { + left = containerBounds.width - contextPadBounds.width - CONTEXT_PAD_VISIBLE_PADDING; + } + + // top bounds + if (top < CONTEXT_PAD_VISIBLE_PADDING) { + top = targetBounds.bottom + CONTEXT_PAD_MARGIN - containerBounds.top; + } + + if (top < CONTEXT_PAD_VISIBLE_PADDING) { + top = CONTEXT_PAD_VISIBLE_PADDING; + } + + // bottom bounds + if (top + contextPadBounds.height > containerBounds.height - CONTEXT_PAD_VISIBLE_PADDING) { + top = containerBounds.height - contextPadBounds.height - CONTEXT_PAD_VISIBLE_PADDING; + } + + // palette + const palette = this._injector.get('palette', false); + + if (palette) { + const paletteBounds = palette._container.getBoundingClientRect(); + + if (left < paletteBounds.right - containerBounds.left + CONTEXT_PAD_VISIBLE_PADDING && top < paletteBounds.bottom - containerBounds.top + CONTEXT_PAD_VISIBLE_PADDING) { + left = paletteBounds.right - containerBounds.left + CONTEXT_PAD_VISIBLE_PADDING; } + } + + return { + left, + top }; }; -ImprovedContextPad.prototype._renderTooltips = function({ current }) { - - const entries = domQueryAll('.entry', current.pad.html); +ImprovedContextPad.prototype._renderTooltips = function() { + const entries = domQueryAll('.entry', this._contextPad._current.html); entries.forEach((entry)=> { - const position = getTooltipPosition(); // remove native tooltip @@ -76,9 +160,14 @@ ImprovedContextPad.prototype._renderTooltips = function({ current }) { }); }; -ImprovedContextPad.$inject = [ 'contextPad', 'eventBus' ]; +ImprovedContextPad.$inject = [ + 'canvas', + 'contextPad', + 'eventBus', + 'injector' +]; function getTooltipPosition() { - return 'bottom: 100%;'; + return 'bottom: calc(100% - var(--context-pad-padding));'; } \ No newline at end of file diff --git a/lib/common/contextPad/index.js b/lib/common/contextPad/index.js index 9e18ab7..546f080 100644 --- a/lib/common/contextPad/index.js +++ b/lib/common/contextPad/index.js @@ -1,6 +1,5 @@ import ImprovedContextPad from './ImprovedContextPad'; import ImprovedContextPadProvider from './ImprovedContextPadProvider'; -import FeedbackButton from './FeedbackButton'; import improvedCanvas from '../improvedCanvas'; @@ -8,10 +7,8 @@ export default { __depends__: [ improvedCanvas ], __init__: [ 'improvedContextPad', - 'improvedContextPadProvider', - 'feedbackButton' + 'improvedContextPadProvider' ], improvedContextPad: [ 'type', ImprovedContextPad ], - improvedContextPadProvider: [ 'type', ImprovedContextPadProvider ], - feedbackButton: [ 'type', FeedbackButton ] + improvedContextPadProvider: [ 'type', ImprovedContextPadProvider ] }; diff --git a/lib/common/createPad/CreatePad.js b/lib/common/createPad/CreatePad.js index 3f27379..3ed51a1 100644 --- a/lib/common/createPad/CreatePad.js +++ b/lib/common/createPad/CreatePad.js @@ -31,12 +31,10 @@ const ICON = ` const HOVER_TIMEOUT_MS = 300; -const OVERLAY_TYPE = 'create-pad'; - export default class CreatePad { - constructor(eventBus, overlays) { + constructor(canvas, eventBus) { + this._canvas = canvas; this._eventBus = eventBus; - this._overlays = overlays; this._current = null; @@ -69,6 +67,17 @@ export default class CreatePad { this.open(target); } }); + + eventBus.on('canvas.viewbox.changed', () => { + this._updatePosition(); + this._updateVisibility(); + }); + + this._container = document.createElement('div'); + + this._container.classList.add('djs-create-pad-container'); + + this._canvas.getContainer().appendChild(this._container); } open(target) { @@ -81,6 +90,22 @@ export default class CreatePad { this._open(target); } + show() { + if (!this.isOpen()) { + return; + } + + this._current.html.classList.add('open'); + } + + hide() { + if (!this.isOpen()) { + return; + } + + this._current.html.classList.remove('open'); + } + close() { if (!this._current) { return; @@ -94,7 +119,7 @@ export default class CreatePad { this._mouseLeaveCallback(); } - this._overlays.remove(this._current.overlayId); + this._container.innerHTML = ''; const { html, @@ -157,13 +182,7 @@ export default class CreatePad { _open(target) { const html = this._createHTML(target); - const position = this.getPosition(target); - - const overlayId = this._overlays.add(target, OVERLAY_TYPE, { - html, - position, - scale: false - }); + this._container.appendChild(html); this._eventBus.fire('createPad.open', { html, @@ -172,17 +191,19 @@ export default class CreatePad { this._current = { html, - overlayId, target }; + this._updatePosition(); + this._updateVisibility(); + this._eventBus.fire('createPad.open', { current: this._current }); } _createHTML(target) { const html = document.createElement('div'); - html.classList.add('djs-create-pad'); + html.classList.add('djs-create-pad', 'open'); const icon = document.createElement('div'); @@ -265,9 +286,58 @@ export default class CreatePad { return html; } + + _updatePosition() { + if (!this.isOpen()) { + return; + } + + const html = this._current.html; + + const position = this.getPosition(this._current.target); + + if ('x' in position && 'y' in position) { + html.style.left = position.x + 'px'; + html.style.top = position.y + 'px'; + } else { + [ + 'top', + 'right', + 'bottom', + 'left' + ].forEach(function(key) { + if (key in position) { + html.style[ key ] = position[ key ] + 'px'; + } + }); + } + } + + _updateVisibility() { + if (!this.isOpen()) { + return; + } + + const container = this._canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + const gfx = this._canvas.getGraphics(this._current.target); + + const targetBounds = gfx.getBoundingClientRect(); + + if (targetBounds.left > containerBounds.right + || targetBounds.right < containerBounds.left + || targetBounds.top > containerBounds.bottom + || targetBounds.bottom < containerBounds.top) { + this.hide(); + } else { + this.show(); + } + } } CreatePad.$inject = [ - 'eventBus', - 'overlays' + 'canvas', + 'eventBus' ]; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index db43d54..c939c77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,8 @@ }, "devDependencies": { "@babel/plugin-transform-react-jsx": "^7.23.4", - "@bpmn-io/properties-panel": "^3.16.0", - "@bpmn-io/refactorings": "^0.2.1", + "@bpmn-io/properties-panel": "^3.18.2", + "@bpmn-io/refactorings": "^0.2.2", "@rollup/plugin-alias": "^5.1.0", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.5", @@ -25,15 +25,15 @@ "axe-core": "^4.9.0", "babel-loader": "^9.1.3", "babel-plugin-istanbul": "^6.1.1", - "bpmn-js": "^17.3.0", - "bpmn-js-color-picker": "^0.7.0", - "bpmn-js-create-append-anything": "^0.5.0", - "bpmn-js-element-templates": "^1.15.0", - "bpmn-js-properties-panel": "^5.8.0", - "camunda-bpmn-js-behaviors": "^1.2.2", + "bpmn-js": "^17.6.3", + "bpmn-js-color-picker": "^0.7.1", + "bpmn-js-create-append-anything": "^0.5.1", + "bpmn-js-element-templates": "^1.15.2", + "bpmn-js-properties-panel": "^5.15.0", + "camunda-bpmn-js-behaviors": "^1.3.0", "cross-env": "^7.0.3", - "dmn-js": "^15.1.0", - "dmn-js-properties-panel": "^3.2.1", + "dmn-js": "^16.3.1", + "dmn-js-properties-panel": "^3.3.0", "downloadjs": "^1.4.7", "eslint": "^8.50.0", "eslint-plugin-bpmn-io": "^1.0.0", @@ -56,7 +56,7 @@ "sinon": "^16.1.0", "sinon-chai": "^3.7.0", "webpack": "^5.88.2", - "zeebe-bpmn-moddle": "^1.0.0" + "zeebe-bpmn-moddle": "^1.1.0" }, "peerDependencies": { "bpmn-js-create-append-anything": "^0.5.0" @@ -599,6 +599,11 @@ "@codemirror/language": "^6.3.1", "@codemirror/view": "^6.5.1", "@lezer/highlight": "^1.1.4" + }, + "workspaces": { + "packages": [ + "preview-themes" + ] } }, "node_modules/@bpmn-io/diagram-js-ui": { @@ -612,9 +617,9 @@ } }, "node_modules/@bpmn-io/dmn-variable-resolver": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/dmn-variable-resolver/-/dmn-variable-resolver-0.4.0.tgz", - "integrity": "sha512-8dnFajGAxCg4z4Mz3sxuQSHwAk6iLJSvVwTKEtcxPy0lJLxNR6wB1DDm2+FT2c2Tboff8P7Ne4nTNqqWjD+4WA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/dmn-variable-resolver/-/dmn-variable-resolver-0.5.0.tgz", + "integrity": "sha512-PuMU8Iq94+koozmmlJ43oeT6FIBSWHqtuTANiiz94e3VTpAefN3TaTXYDIb70ggHBaq6rL05dseEkubwiB/wSg==", "dev": true }, "node_modules/@bpmn-io/element-template-chooser": { @@ -649,18 +654,18 @@ } }, "node_modules/@bpmn-io/feel-editor": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/feel-editor/-/feel-editor-1.1.0.tgz", - "integrity": "sha512-qL5wgqYuCAtH0aHK3O49pUwEFHEK2UHHn31Xj/xDQVqc8i+C5j4ff0cC68Xrc1VyRkqjPOTdL3Al9PVJ+Q7BiQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-editor/-/feel-editor-1.3.0.tgz", + "integrity": "sha512-FuNEICeLuRHFWM7OQ0iBMXhd/iuzitbdSQlOfr0DqswVDsVUq24vV/ZTM1UnjdPp4J2gwhMuYi6a2LaiVNzRKQ==", "dev": true, "dependencies": { - "@bpmn-io/feel-lint": "^1.1.0", - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/commands": "^6.3.2", - "@codemirror/language": "^6.3.1", + "@bpmn-io/feel-lint": "^1.2.0", + "@codemirror/autocomplete": "^6.12.0", + "@codemirror/commands": "^6.3.3", + "@codemirror/language": "^6.10.0", "@codemirror/lint": "^6.4.2", - "@codemirror/state": "^6.3.3", - "@codemirror/view": "^6.5.1", + "@codemirror/state": "^6.4.0", + "@codemirror/view": "^6.23.0", "@lezer/highlight": "^1.2.0", "lang-feel": "^2.0.0", "min-dom": "^4.1.0" @@ -670,13 +675,13 @@ } }, "node_modules/@bpmn-io/feel-lint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/feel-lint/-/feel-lint-1.1.0.tgz", - "integrity": "sha512-/StDR3LsWWo2lAEup9fLkH1fqXN3wSkvYBo4KzkQW3zp1QKhqI906bIz1ncmJXi6ao5wWH6YEdjvS1G906D9lQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-lint/-/feel-lint-1.2.0.tgz", + "integrity": "sha512-nsvAYxiSbWyjpd3gNnJd+60aTWrZvngYnZfe+GpmkM/pQoOgtF17GhD/p4fgaeAd/uUP3q9sO6EWRX+OU/p9dw==", "dev": true, "dependencies": { "@codemirror/language": "^6.8.0", - "lezer-feel": "^1.2.0" + "lezer-feel": "^1.2.3" }, "engines": { "node": "*" @@ -692,15 +697,15 @@ } }, "node_modules/@bpmn-io/properties-panel": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-3.16.0.tgz", - "integrity": "sha512-5GNqcfveU5IFQKBTmsDByo+l06Y63C72J7frzowFA+yOqXEqY+hS+GjUrJ0C0Ydd6PAYI12XOp07jPOmtYPV3Q==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-3.18.2.tgz", + "integrity": "sha512-IQ6NUZ4McSmr6KLyptnhnKxBind5Oz+FSZ5u8MJX/s/10RRj+RIVYCBS2UnfCKHZCE9YMWTdCHdA7XQ4lIjuzw==", "dev": true, "dependencies": { - "@bpmn-io/feel-editor": "^1.1.0", + "@bpmn-io/feel-editor": "^1.3.0", "@codemirror/view": "^6.14.0", "classnames": "^2.3.1", - "feelers": "^1.2.0", + "feelers": "^1.3.0", "focus-trap": "^7.5.2", "min-dash": "^4.1.1", "min-dom": "^4.0.3" @@ -710,9 +715,9 @@ } }, "node_modules/@bpmn-io/refactorings": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@bpmn-io/refactorings/-/refactorings-0.2.1.tgz", - "integrity": "sha512-q5P2SBviCgOJpmum3n9NKsrCPnFhrdK+HFatnnhLLYXfx4a5uvGVF5mqGuEUXH1q5Vj3EocxkQBOUdb+vGVZZg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/refactorings/-/refactorings-0.2.2.tgz", + "integrity": "sha512-rxJcLDME2ac9quI+Pa5x04xb6CjTqLM2UAwm4pl+QcO/kTsXWX+1E0jLebliGyRfqelOCnrdYpw59+S4BSLzvA==", "dev": true, "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.3", @@ -724,37 +729,6 @@ "min-dom": "^5.0.0" } }, - "node_modules/@bpmn-io/refactorings/node_modules/diagram-js": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-14.4.0.tgz", - "integrity": "sha512-Cek1MDJoeyrEynswpzpIeg0gKIDGQ48hHPD18aiu/8JVRyANWntX+TIFfaO7p0W1Qko71wVGwNbS2WQ2G4alkA==", - "dev": true, - "dependencies": { - "@bpmn-io/diagram-js-ui": "^0.2.3", - "clsx": "^2.1.0", - "didi": "^10.2.2", - "inherits-browser": "^0.1.0", - "min-dash": "^4.1.0", - "min-dom": "^4.1.0", - "object-refs": "^0.4.0", - "path-intersection": "^3.0.0", - "tiny-svg": "^3.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@bpmn-io/refactorings/node_modules/diagram-js/node_modules/min-dom": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.1.0.tgz", - "integrity": "sha512-1lj1EyoSwY/UmTeT/hhPiZTsq+vK9D+8FAJ/53iK5jT1otkG9rJTixSKdjmTieEvdfES+sKbbTptzaQJhnacjA==", - "dev": true, - "dependencies": { - "component-event": "^0.2.1", - "domify": "^1.4.1", - "min-dash": "^4.0.0" - } - }, "node_modules/@bpmn-io/refactorings/node_modules/min-dom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-5.0.0.tgz", @@ -893,9 +867,9 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz", - "integrity": "sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.0.tgz", + "integrity": "sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==", "dev": true, "dependencies": { "@codemirror/language": "^6.0.0", @@ -1271,18 +1245,18 @@ } }, "node_modules/@lezer/lr": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz", - "integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz", + "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==", "dev": true, "dependencies": { "@lezer/common": "^1.0.0" } }, "node_modules/@lezer/markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.2.0.tgz", - "integrity": "sha512-d7MwsfAukZJo1GpPrcPGa3MxaFFOqNp0gbqF+3F7pTeNDOgeJN1muXzx1XXDPt+Ac+/voCzsH7qXqnn+xReG/g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", + "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", "dev": true, "dependencies": { "@lezer/common": "^1.0.0", @@ -2220,12 +2194,12 @@ } }, "node_modules/array-move": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-move/-/array-move-3.0.1.tgz", - "integrity": "sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/array-move/-/array-move-4.0.0.tgz", + "integrity": "sha512-+RY54S8OuVvg94THpneQvFRmqWdAHeqtMzgMW6JNurHxe8rsS07cHQdfGkXnTUXiBcyZ0j3SiDIxxj0RPiqCkQ==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2547,14 +2521,14 @@ "dev": true }, "node_modules/bpmn-js": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-17.3.0.tgz", - "integrity": "sha512-LRwloZ+MoOl4YyOfXPgehifJ412o7LQcQmyrvtfn4bxnzQQfNDUBDnP0pmel4s0mfgEtIG0EFegOYxlBS19Uaw==", + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-17.6.3.tgz", + "integrity": "sha512-gOjmAW4UaPoi4WNWUnmIgtPXCaXTubteDO0v57YGIDjjTIcOZ+53xQEpi2B9Ru12SFjuA4nO+laVojUxZDMGCg==", "dev": true, "dependencies": { "bpmn-moddle": "^8.1.0", - "diagram-js": "^14.3.1", - "diagram-js-direct-editing": "^2.1.2", + "diagram-js": "^14.5.3", + "diagram-js-direct-editing": "^3.0.1", "ids": "^1.0.5", "inherits-browser": "^0.1.0", "min-dash": "^4.1.1", @@ -2566,9 +2540,9 @@ } }, "node_modules/bpmn-js-color-picker": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/bpmn-js-color-picker/-/bpmn-js-color-picker-0.7.0.tgz", - "integrity": "sha512-oS/cmyDpOUWuoZxmf3g+seFKFa+uAmbwW7PHWtX6AQjl2J0l2XJsIOf40UVdesG8LISTHr+ENxWykyOKbe2Rbw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/bpmn-js-color-picker/-/bpmn-js-color-picker-0.7.1.tgz", + "integrity": "sha512-SsDKewfopMPFTETAS1ZUWNKZvnQ7OBsODVcFEL2GzrQusW1VtnoCB2wc2vOtcafLAUPoUaRnVx5gZNtvywnJQA==", "dev": true, "engines": { "node": "*" @@ -2578,18 +2552,18 @@ } }, "node_modules/bpmn-js-create-append-anything": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/bpmn-js-create-append-anything/-/bpmn-js-create-append-anything-0.5.0.tgz", - "integrity": "sha512-bk8iPuGeBuwlmXdwi3kuHpKQE9hx9lzUCoA7u7L/T9TDEnVr77FkBlITPkp83zNu5OVdSnYw/rl9dQYyX2qkFg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/bpmn-js-create-append-anything/-/bpmn-js-create-append-anything-0.5.1.tgz", + "integrity": "sha512-WvDCHiDCMd7XZUkAsgVRw2AohOGkXozvn+K4DiDHicuD5vixg1AI+Rz39KnnF9Wp4qpPyEy7zty8gl3uEhbwPg==", "dev": true, "dependencies": { "@bpmn-io/element-template-chooser": "^1.0.0" } }, "node_modules/bpmn-js-element-templates": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/bpmn-js-element-templates/-/bpmn-js-element-templates-1.15.0.tgz", - "integrity": "sha512-zrlNMPoZKtD9Pt3SNOJX4X3h8meO2pZfIvNvs6cdpr4mb0+z4MyaKiRCG/ECeV+FfDjz6UfTV/8IWTsfK+3L/A==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/bpmn-js-element-templates/-/bpmn-js-element-templates-1.15.2.tgz", + "integrity": "sha512-zVKou8OCi7RqcIFb2vCrCr6jag5PBH9GW/e36BrHSJkalu7ma30sGssAJ863jxUP83MiNmg3iy/O183OAOJZtA==", "dev": true, "dependencies": { "@bpmn-io/element-templates-validator": "^2.0.1", @@ -2615,15 +2589,15 @@ } }, "node_modules/bpmn-js-properties-panel": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-5.8.0.tgz", - "integrity": "sha512-B48J3PpEjNhxbjqbdXQGZYklBwVgOj5kgoU1avTbJ0obuxuzANgyKsMkNEJDVV8H/aacpWnMneGnaT1Szfq6Gg==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-5.15.0.tgz", + "integrity": "sha512-LNW9AcmfIYf098h3AXALzr4JyP0Jusm15YDTD+1DEbLJ7BcpTZWhqHI6rhw7C1ZeL1Cy/LerSINqD7u1goUD0w==", "dev": true, "dependencies": { "@bpmn-io/extract-process-variables": "^0.8.0", - "array-move": "^3.0.1", + "array-move": "^4.0.0", "ids": "^1.0.5", - "min-dash": "^4.1.1", + "min-dash": "^4.2.1", "min-dom": "^4.1.0" }, "engines": { @@ -2636,26 +2610,6 @@ "diagram-js": ">= 11.9" } }, - "node_modules/bpmn-js/node_modules/diagram-js": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-14.4.0.tgz", - "integrity": "sha512-Cek1MDJoeyrEynswpzpIeg0gKIDGQ48hHPD18aiu/8JVRyANWntX+TIFfaO7p0W1Qko71wVGwNbS2WQ2G4alkA==", - "dev": true, - "dependencies": { - "@bpmn-io/diagram-js-ui": "^0.2.3", - "clsx": "^2.1.0", - "didi": "^10.2.2", - "inherits-browser": "^0.1.0", - "min-dash": "^4.1.0", - "min-dom": "^4.1.0", - "object-refs": "^0.4.0", - "path-intersection": "^3.0.0", - "tiny-svg": "^3.0.1" - }, - "engines": { - "node": "*" - } - }, "node_modules/bpmn-moddle": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.1.0.tgz", @@ -2861,9 +2815,9 @@ } }, "node_modules/camunda-bpmn-js-behaviors": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/camunda-bpmn-js-behaviors/-/camunda-bpmn-js-behaviors-1.2.2.tgz", - "integrity": "sha512-BYbiKH5L3tMqpFOnmlIOp2QR/8ewNG0UOIOVafBYuZCiBOXr/XMl86gOF0aT994xdOGKO/6gdqc7+p8baAxcEw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/camunda-bpmn-js-behaviors/-/camunda-bpmn-js-behaviors-1.3.0.tgz", + "integrity": "sha512-Nz+Fa5B6SVUq6d+Mb0UOP0GZI6a+NrMwUXKeyA5LSXjVEKxwso500PGwbzW7HGgFfqT40Fv8i/ukvI0adTBPyA==", "dev": true, "dependencies": { "ids": "^1.0.0", @@ -3492,15 +3446,14 @@ "dev": true }, "node_modules/diagram-js": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-13.4.0.tgz", - "integrity": "sha512-JI6UI74J3TgRcgBhuZZJso//bUdh22rcVu9XSf1EBVisKPt9c+woKzOrr/79OutXvft+1NOLNEiBg58kZ8p7+Q==", + "version": "14.5.3", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-14.5.3.tgz", + "integrity": "sha512-tCWNrV749qznT97Ce5okd+Pqz/2IUHRaC4Bcvop4+L2fh2X0CUUpQQ/cO8UgnNgwpTeu7OVS+DI3FQrVTk0mAw==", "dev": true, "dependencies": { - "@bpmn-io/diagram-js-ui": "^0.2.2", - "clsx": "^2.0.0", - "didi": "^10.0.1", - "hammerjs": "^2.0.1", + "@bpmn-io/diagram-js-ui": "^0.2.3", + "clsx": "^2.1.0", + "didi": "^10.2.2", "inherits-browser": "^0.1.0", "min-dash": "^4.1.0", "min-dom": "^4.1.0", @@ -3513,9 +3466,9 @@ } }, "node_modules/diagram-js-direct-editing": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.1.2.tgz", - "integrity": "sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-3.0.1.tgz", + "integrity": "sha512-V44JO55nwFbsRv6tTmrfdz6fIsE3A4YIIqInaeJZyD2EongZzEo4acH9TqsE4hi9R/kAqsyttMKxTAgHplFn8w==", "dev": true, "dependencies": { "min-dash": "^4.0.0", @@ -3556,44 +3509,60 @@ } }, "node_modules/dmn-js": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js/-/dmn-js-15.1.0.tgz", - "integrity": "sha512-N44hE0HqWFXCzor1PllFmYmjU4PoOqCd8fOSkn6vegU2QB0rsqhkKV6epVgwGk9NMtJRRFGdchPeyql0qJeHeg==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js/-/dmn-js-16.3.1.tgz", + "integrity": "sha512-tMMdzHFqNIExC5NceVLVs520racqMyQWNCLk9AReHnYUj6QtZwesOZ1N/C4AF4SQ6kucRvPVxSfbIJSseJ7rYQ==", "dev": true, "dependencies": { - "dmn-js-decision-table": "^15.1.0", - "dmn-js-drd": "^15.1.0", - "dmn-js-literal-expression": "^15.1.0", - "dmn-js-shared": "^15.1.0" + "dmn-js-boxed-expression": "^16.3.1", + "dmn-js-decision-table": "^16.3.1", + "dmn-js-drd": "^16.3.1", + "dmn-js-literal-expression": "^16.3.1", + "dmn-js-shared": "^16.3.1" + } + }, + "node_modules/dmn-js-boxed-expression": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-boxed-expression/-/dmn-js-boxed-expression-16.3.1.tgz", + "integrity": "sha512-EJ6CeINVTeu47V/NVAUuKuY1sn0e2y4CkrhD88uOEbl10hugsEFNXxfx1KMCF5WGjxW/ujWnUpX36c+IORQ4Vw==", + "dev": true, + "dependencies": { + "@bpmn-io/dmn-variable-resolver": "^0.5.0", + "diagram-js": "^14.5.3", + "dmn-js-shared": "^16.3.1", + "inferno": "~5.6.2", + "min-dash": "^4.0.0", + "min-dom": "^4.0.3", + "table-js": "^9.1.0" } }, "node_modules/dmn-js-decision-table": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-decision-table/-/dmn-js-decision-table-15.1.0.tgz", - "integrity": "sha512-Qtd1O0sqxHgQacGB53RSpOjq22bf/q+XsP06Ye6H+Rm7t3dRCSO7qXIcRfn7uzwipr6B9IBAftlsjU3C1DcV8w==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-decision-table/-/dmn-js-decision-table-16.3.1.tgz", + "integrity": "sha512-5ZhfKgBaFIodLwCHHzos5Q9kgubUmE4cIed+4nkz3jv6FjkTpkbUu+tBd71aBksoVmJPjPDuCf0CAdnQLW3wcA==", "dev": true, "dependencies": { - "@bpmn-io/dmn-variable-resolver": "^0.4.0", + "@bpmn-io/dmn-variable-resolver": "^0.5.0", "css.escape": "^1.5.1", - "diagram-js": "^13.4.0", - "dmn-js-shared": "^15.1.0", + "diagram-js": "^14.5.3", + "dmn-js-shared": "^16.3.1", "escape-html": "^1.0.3", "inferno": "~5.6.2", "min-dash": "^4.0.0", "min-dom": "^4.0.3", "selection-ranges": "^3.0.2", - "table-js": "^9.0.0" + "table-js": "^9.1.0" } }, "node_modules/dmn-js-drd": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-drd/-/dmn-js-drd-15.1.0.tgz", - "integrity": "sha512-eEt3ll/ALEpfr1dtYRXr7dY/ivh7XFGBEmGybkPSOAUimZoOsS0PV2VCaO3LL1tnwRgbTH8Jtkmj8Tl9UtdGQg==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-drd/-/dmn-js-drd-16.3.1.tgz", + "integrity": "sha512-PBeywVTf2v4hRpXXFT8iHX1gXzTOnLyl8IFztekKy7IKpHZox/rELsEsme+gIqpno5PYlBWuX87uNffD7M0htw==", "dev": true, "dependencies": { - "diagram-js": "^13.4.0", - "diagram-js-direct-editing": "^2.1.1", - "dmn-js-shared": "^15.1.0", + "diagram-js": "^14.5.3", + "diagram-js-direct-editing": "^3.0.1", + "dmn-js-shared": "^16.3.1", "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", "min-dom": "^4.0.3", @@ -3602,28 +3571,28 @@ } }, "node_modules/dmn-js-literal-expression": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-literal-expression/-/dmn-js-literal-expression-15.1.0.tgz", - "integrity": "sha512-uCSgy04zjK5mRnEh8oWN8QQaCtV1gNfUE2UILC9SSwQwv0pnywXGz6dU8KZW0yYENXOxyjrxuSYvMjJxXYsl6Q==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-literal-expression/-/dmn-js-literal-expression-16.3.1.tgz", + "integrity": "sha512-hjl4PQCJArlSzrnE3uDpKdRKyaDsMe94YEdWDaYnEttytUC52vOzjbZr5VSS+QYHOZ+pYqH3fsJJQ/Gx0jICtA==", "dev": true, "dependencies": { - "@bpmn-io/dmn-variable-resolver": "^0.4.0", - "diagram-js": "^13.4.0", - "dmn-js-shared": "^15.1.0", + "@bpmn-io/dmn-variable-resolver": "^0.5.0", + "diagram-js": "^14.5.3", + "dmn-js-shared": "^16.3.1", "escape-html": "^1.0.3", "inferno": "~5.6.2", "min-dash": "^4.0.0", "min-dom": "^4.0.3", - "table-js": "^9.0.0" + "table-js": "^9.1.0" } }, "node_modules/dmn-js-properties-panel": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/dmn-js-properties-panel/-/dmn-js-properties-panel-3.2.1.tgz", - "integrity": "sha512-ptD+dndvY9iE4aHtCkxkB+JDYZEjcZVPvW+Hpl2IDqHk6kq6bmD/06nQXE0z7ymQuCANCw+nmriOJqomTbrZow==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dmn-js-properties-panel/-/dmn-js-properties-panel-3.3.0.tgz", + "integrity": "sha512-dyYN8b2AjMT0FIk95JhGWrbGW6O0aufVUJOjTq03spmxjtUwQnqRYZzjB5lUa1qK/9txq+z/woblLk8sx5kJmQ==", "dev": true, "dependencies": { - "diagram-js": "^12.7.3", + "diagram-js": "^14.0.0", "min-dash": "^4.1.1", "min-dom": "^4.1.0" }, @@ -3635,62 +3604,23 @@ "dmn-js": ">=13" } }, - "node_modules/dmn-js-properties-panel/node_modules/diagram-js": { - "version": "12.8.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-12.8.1.tgz", - "integrity": "sha512-LF9BiwjbOPpZd0ez5VSlYRbdbEA59YQX43bWvNDp1rLMv0xwZ5yIg4oaYDK82nIQ0kH1tjvoQRpNevMTCgQVyw==", - "dev": true, - "dependencies": { - "@bpmn-io/diagram-js-ui": "^0.2.2", - "clsx": "^2.0.0", - "didi": "^9.0.2", - "hammerjs": "^2.0.1", - "inherits-browser": "^0.1.0", - "min-dash": "^4.1.0", - "min-dom": "^4.1.0", - "object-refs": "^0.3.0", - "path-intersection": "^2.2.1", - "tiny-svg": "^3.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dmn-js-properties-panel/node_modules/didi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz", - "integrity": "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==", - "dev": true - }, - "node_modules/dmn-js-properties-panel/node_modules/object-refs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.3.0.tgz", - "integrity": "sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==", - "dev": true - }, - "node_modules/dmn-js-properties-panel/node_modules/path-intersection": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", - "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==", - "dev": true - }, "node_modules/dmn-js-shared": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-shared/-/dmn-js-shared-15.1.0.tgz", - "integrity": "sha512-SHEBrV3hihBk1iz6q2eIrqMgR4Wx39PYGcD926G5gRDrxJtEYEtVqMbVui18VIEMn0X7/xXJ5W+NUvkiCYHUSA==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-shared/-/dmn-js-shared-16.3.1.tgz", + "integrity": "sha512-WkW1THFG7uzRFtKKUEUBkYS3cTSd9HwCxTE8kTv3bsrgSJiodVMSfQvit+8QjaiqktEOF4Ik2J+VIT5TkY4MjQ==", "dev": true, "dependencies": { - "@bpmn-io/feel-editor": "^1.1.0", - "diagram-js": "^13.4.0", - "didi": "^10.0.1", + "@bpmn-io/feel-editor": "^1.3.0", + "diagram-js": "^14.5.3", + "didi": "^10.2.2", "dmn-moddle": "^10.0.0", - "ids": "^1.0.0", + "ids": "^1.0.5", "inferno": "~5.6.2", "min-dash": "^4.0.0", "min-dom": "^4.0.3", "selection-ranges": "^3.0.2", "selection-update": "^0.1.2", - "table-js": "^9.0.0" + "table-js": "^9.1.0" } }, "node_modules/dmn-moddle": { @@ -4437,13 +4367,13 @@ } }, "node_modules/feelers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/feelers/-/feelers-1.2.0.tgz", - "integrity": "sha512-EPw88XH1UUt4A5JmBrJN3dmCMAxSi54juFuNoGwPKIDz70x9VYJhrECYsDfcx+CbIVNPuoEkt9hlx07bfA1+4A==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/feelers/-/feelers-1.3.1.tgz", + "integrity": "sha512-vynmIHhjttmT0wfzbI+Nmi84wLbLwUt83NXo5YTQMReIjRwgHhQpxs7koixX/flJIlTG8M4eukc1U1oQAYkhNw==", "dev": true, "dependencies": { "@bpmn-io/cm-theme": "^0.1.0-alpha.2", - "@bpmn-io/feel-lint": "^1.1.0", + "@bpmn-io/feel-lint": "^1.2.0", "@codemirror/autocomplete": "^6.10.1", "@codemirror/commands": "^6.3.0", "@codemirror/language": "^6.9.1", @@ -4454,23 +4384,28 @@ "@lezer/highlight": "^1.1.6", "@lezer/lr": "^1.3.13", "@lezer/markdown": "^1.1.0", - "feelin": "^2.3.0", - "lezer-feel": "^1.2.0", + "feelin": "^3.0.1", + "lezer-feel": "^1.2.4", "min-dom": "^4.1.0" }, "engines": { "node": "*" + }, + "workspaces": { + "packages": [ + "feelers-playground" + ] } }, "node_modules/feelin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/feelin/-/feelin-2.3.0.tgz", - "integrity": "sha512-QDXCQRIV6AeLYUZoSlCAM+LEIv5k0+G4UJ+hRvTG42nCsW9YWPeVFNDInJDMGC+NimA6wW+1PKKDY6X8FcKJqg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/feelin/-/feelin-3.1.0.tgz", + "integrity": "sha512-ITPATtpwDWeLr7FKEAai7mJPlIH0td+D58f61+ZFDOs6Gg+8mFIo1LlhltQOeLkmZlOdvC/RsovbZ7SqxUfoyQ==", "dev": true, "dependencies": { "@lezer/lr": "^1.3.9", - "lezer-feel": "^1.2.0", - "luxon": "^3.1.0" + "lezer-feel": "^1.2.8", + "luxon": "^3.4.4" }, "engines": { "node": "*" @@ -4942,15 +4877,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", @@ -6145,13 +6071,13 @@ } }, "node_modules/lezer-feel": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lezer-feel/-/lezer-feel-1.2.4.tgz", - "integrity": "sha512-ASi0yQd6A8a2xeNF+b5Sr7fPcko236i81q9yzMbzi81lKc93CZ3SRR7rgCZgHMVifVthofZRoNczR5lenCRmlw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/lezer-feel/-/lezer-feel-1.2.8.tgz", + "integrity": "sha512-CO5JEpwNhH1p8mmRRcqMjJrYxO3vNx0nEsF9Ak4OPa1pNHEqvJ2rwYwM9LjZ7jh/Sl5FxbTJT/teF9a+zWmflg==", "dev": true, "dependencies": { - "@lezer/highlight": "^1.1.6", - "@lezer/lr": "^1.3.12" + "@lezer/highlight": "^1.2.0", + "@lezer/lr": "^1.4.0" }, "engines": { "node": "*" @@ -8649,9 +8575,9 @@ "dev": true }, "node_modules/table-js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/table-js/-/table-js-9.0.0.tgz", - "integrity": "sha512-CBRMuPUdHRQNtOsD6ommWCHd6TJbxLWbNbLIfs6lU1XqD0dlSMH9xBqD7asFra5XDVTrLSHzx2PBD83pWVqDDg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/table-js/-/table-js-9.1.0.tgz", + "integrity": "sha512-yxzIBXZe5pFHXBng8+Rz3dDGiO4anWptlWQXP4Pm1oIetgdG4nq+DkZkRG4Lq5L1HFu1OVif4h3YMI7rxudvPw==", "dev": true, "dependencies": { "didi": "^10.0.0", @@ -8664,7 +8590,7 @@ "node": "*" }, "peerDependencies": { - "diagram-js": "^11.3.0 || ^12 || ^13.0.0", + "diagram-js": "^11.3.0 || ^12 || ^13.0.0 || ^14.0.0", "inferno": "^5.0.5" } }, @@ -9490,9 +9416,9 @@ } }, "node_modules/zeebe-bpmn-moddle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/zeebe-bpmn-moddle/-/zeebe-bpmn-moddle-1.0.0.tgz", - "integrity": "sha512-ZXEe+0s6Z1jf0hfK4VfRr71p4FcXkYz+MxVx6vMCiey2KVZqY1uj6KCpzK9+tEJzTdxGRS3FymK3oxAkjzs1GA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/zeebe-bpmn-moddle/-/zeebe-bpmn-moddle-1.1.0.tgz", + "integrity": "sha512-ES/UZFO0VmKvAzL4+cD3VcQpKvlmgLtnFKTyiv0DdDcxNrdQg1rI0OmUdrKMiybAbtAgPDkVXZCusE3kkXwEyQ==", "dev": true } }, @@ -9920,9 +9846,9 @@ } }, "@bpmn-io/dmn-variable-resolver": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/dmn-variable-resolver/-/dmn-variable-resolver-0.4.0.tgz", - "integrity": "sha512-8dnFajGAxCg4z4Mz3sxuQSHwAk6iLJSvVwTKEtcxPy0lJLxNR6wB1DDm2+FT2c2Tboff8P7Ne4nTNqqWjD+4WA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/dmn-variable-resolver/-/dmn-variable-resolver-0.5.0.tgz", + "integrity": "sha512-PuMU8Iq94+koozmmlJ43oeT6FIBSWHqtuTANiiz94e3VTpAefN3TaTXYDIb70ggHBaq6rL05dseEkubwiB/wSg==", "dev": true }, "@bpmn-io/element-template-chooser": { @@ -9954,31 +9880,31 @@ } }, "@bpmn-io/feel-editor": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/feel-editor/-/feel-editor-1.1.0.tgz", - "integrity": "sha512-qL5wgqYuCAtH0aHK3O49pUwEFHEK2UHHn31Xj/xDQVqc8i+C5j4ff0cC68Xrc1VyRkqjPOTdL3Al9PVJ+Q7BiQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-editor/-/feel-editor-1.3.0.tgz", + "integrity": "sha512-FuNEICeLuRHFWM7OQ0iBMXhd/iuzitbdSQlOfr0DqswVDsVUq24vV/ZTM1UnjdPp4J2gwhMuYi6a2LaiVNzRKQ==", "dev": true, "requires": { - "@bpmn-io/feel-lint": "^1.1.0", - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/commands": "^6.3.2", - "@codemirror/language": "^6.3.1", + "@bpmn-io/feel-lint": "^1.2.0", + "@codemirror/autocomplete": "^6.12.0", + "@codemirror/commands": "^6.3.3", + "@codemirror/language": "^6.10.0", "@codemirror/lint": "^6.4.2", - "@codemirror/state": "^6.3.3", - "@codemirror/view": "^6.5.1", + "@codemirror/state": "^6.4.0", + "@codemirror/view": "^6.23.0", "@lezer/highlight": "^1.2.0", "lang-feel": "^2.0.0", "min-dom": "^4.1.0" } }, "@bpmn-io/feel-lint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/feel-lint/-/feel-lint-1.1.0.tgz", - "integrity": "sha512-/StDR3LsWWo2lAEup9fLkH1fqXN3wSkvYBo4KzkQW3zp1QKhqI906bIz1ncmJXi6ao5wWH6YEdjvS1G906D9lQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-lint/-/feel-lint-1.2.0.tgz", + "integrity": "sha512-nsvAYxiSbWyjpd3gNnJd+60aTWrZvngYnZfe+GpmkM/pQoOgtF17GhD/p4fgaeAd/uUP3q9sO6EWRX+OU/p9dw==", "dev": true, "requires": { "@codemirror/language": "^6.8.0", - "lezer-feel": "^1.2.0" + "lezer-feel": "^1.2.3" } }, "@bpmn-io/moddle-utils": { @@ -9991,24 +9917,24 @@ } }, "@bpmn-io/properties-panel": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-3.16.0.tgz", - "integrity": "sha512-5GNqcfveU5IFQKBTmsDByo+l06Y63C72J7frzowFA+yOqXEqY+hS+GjUrJ0C0Ydd6PAYI12XOp07jPOmtYPV3Q==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-3.18.2.tgz", + "integrity": "sha512-IQ6NUZ4McSmr6KLyptnhnKxBind5Oz+FSZ5u8MJX/s/10RRj+RIVYCBS2UnfCKHZCE9YMWTdCHdA7XQ4lIjuzw==", "dev": true, "requires": { - "@bpmn-io/feel-editor": "^1.1.0", + "@bpmn-io/feel-editor": "^1.3.0", "@codemirror/view": "^6.14.0", "classnames": "^2.3.1", - "feelers": "^1.2.0", + "feelers": "^1.3.0", "focus-trap": "^7.5.2", "min-dash": "^4.1.1", "min-dom": "^4.0.3" } }, "@bpmn-io/refactorings": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@bpmn-io/refactorings/-/refactorings-0.2.1.tgz", - "integrity": "sha512-q5P2SBviCgOJpmum3n9NKsrCPnFhrdK+HFatnnhLLYXfx4a5uvGVF5mqGuEUXH1q5Vj3EocxkQBOUdb+vGVZZg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/refactorings/-/refactorings-0.2.2.tgz", + "integrity": "sha512-rxJcLDME2ac9quI+Pa5x04xb6CjTqLM2UAwm4pl+QcO/kTsXWX+1E0jLebliGyRfqelOCnrdYpw59+S4BSLzvA==", "dev": true, "requires": { "@bpmn-io/diagram-js-ui": "^0.2.3", @@ -10020,36 +9946,6 @@ "min-dom": "^5.0.0" }, "dependencies": { - "diagram-js": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-14.4.0.tgz", - "integrity": "sha512-Cek1MDJoeyrEynswpzpIeg0gKIDGQ48hHPD18aiu/8JVRyANWntX+TIFfaO7p0W1Qko71wVGwNbS2WQ2G4alkA==", - "dev": true, - "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.3", - "clsx": "^2.1.0", - "didi": "^10.2.2", - "inherits-browser": "^0.1.0", - "min-dash": "^4.1.0", - "min-dom": "^4.1.0", - "object-refs": "^0.4.0", - "path-intersection": "^3.0.0", - "tiny-svg": "^3.0.1" - }, - "dependencies": { - "min-dom": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.1.0.tgz", - "integrity": "sha512-1lj1EyoSwY/UmTeT/hhPiZTsq+vK9D+8FAJ/53iK5jT1otkG9rJTixSKdjmTieEvdfES+sKbbTptzaQJhnacjA==", - "dev": true, - "requires": { - "component-event": "^0.2.1", - "domify": "^1.4.1", - "min-dash": "^4.0.0" - } - } - } - }, "min-dom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-5.0.0.tgz", @@ -10170,9 +10066,9 @@ } }, "@codemirror/autocomplete": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz", - "integrity": "sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.0.tgz", + "integrity": "sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==", "dev": true, "requires": { "@codemirror/language": "^6.0.0", @@ -10468,18 +10364,18 @@ } }, "@lezer/lr": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz", - "integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz", + "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==", "dev": true, "requires": { "@lezer/common": "^1.0.0" } }, "@lezer/markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.2.0.tgz", - "integrity": "sha512-d7MwsfAukZJo1GpPrcPGa3MxaFFOqNp0gbqF+3F7pTeNDOgeJN1muXzx1XXDPt+Ac+/voCzsH7qXqnn+xReG/g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", + "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", "dev": true, "requires": { "@lezer/common": "^1.0.0", @@ -11191,9 +11087,9 @@ } }, "array-move": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-move/-/array-move-3.0.1.tgz", - "integrity": "sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/array-move/-/array-move-4.0.0.tgz", + "integrity": "sha512-+RY54S8OuVvg94THpneQvFRmqWdAHeqtMzgMW6JNurHxe8rsS07cHQdfGkXnTUXiBcyZ0j3SiDIxxj0RPiqCkQ==", "dev": true }, "array.prototype.flat": { @@ -11429,60 +11325,41 @@ } }, "bpmn-js": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-17.3.0.tgz", - "integrity": "sha512-LRwloZ+MoOl4YyOfXPgehifJ412o7LQcQmyrvtfn4bxnzQQfNDUBDnP0pmel4s0mfgEtIG0EFegOYxlBS19Uaw==", + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-17.6.3.tgz", + "integrity": "sha512-gOjmAW4UaPoi4WNWUnmIgtPXCaXTubteDO0v57YGIDjjTIcOZ+53xQEpi2B9Ru12SFjuA4nO+laVojUxZDMGCg==", "dev": true, "requires": { "bpmn-moddle": "^8.1.0", - "diagram-js": "^14.3.1", - "diagram-js-direct-editing": "^2.1.2", + "diagram-js": "^14.5.3", + "diagram-js-direct-editing": "^3.0.1", "ids": "^1.0.5", "inherits-browser": "^0.1.0", "min-dash": "^4.1.1", "min-dom": "^4.0.3", "tiny-svg": "^3.0.0" - }, - "dependencies": { - "diagram-js": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-14.4.0.tgz", - "integrity": "sha512-Cek1MDJoeyrEynswpzpIeg0gKIDGQ48hHPD18aiu/8JVRyANWntX+TIFfaO7p0W1Qko71wVGwNbS2WQ2G4alkA==", - "dev": true, - "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.3", - "clsx": "^2.1.0", - "didi": "^10.2.2", - "inherits-browser": "^0.1.0", - "min-dash": "^4.1.0", - "min-dom": "^4.1.0", - "object-refs": "^0.4.0", - "path-intersection": "^3.0.0", - "tiny-svg": "^3.0.1" - } - } } }, "bpmn-js-color-picker": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/bpmn-js-color-picker/-/bpmn-js-color-picker-0.7.0.tgz", - "integrity": "sha512-oS/cmyDpOUWuoZxmf3g+seFKFa+uAmbwW7PHWtX6AQjl2J0l2XJsIOf40UVdesG8LISTHr+ENxWykyOKbe2Rbw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/bpmn-js-color-picker/-/bpmn-js-color-picker-0.7.1.tgz", + "integrity": "sha512-SsDKewfopMPFTETAS1ZUWNKZvnQ7OBsODVcFEL2GzrQusW1VtnoCB2wc2vOtcafLAUPoUaRnVx5gZNtvywnJQA==", "dev": true, "requires": {} }, "bpmn-js-create-append-anything": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/bpmn-js-create-append-anything/-/bpmn-js-create-append-anything-0.5.0.tgz", - "integrity": "sha512-bk8iPuGeBuwlmXdwi3kuHpKQE9hx9lzUCoA7u7L/T9TDEnVr77FkBlITPkp83zNu5OVdSnYw/rl9dQYyX2qkFg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/bpmn-js-create-append-anything/-/bpmn-js-create-append-anything-0.5.1.tgz", + "integrity": "sha512-WvDCHiDCMd7XZUkAsgVRw2AohOGkXozvn+K4DiDHicuD5vixg1AI+Rz39KnnF9Wp4qpPyEy7zty8gl3uEhbwPg==", "dev": true, "requires": { "@bpmn-io/element-template-chooser": "^1.0.0" } }, "bpmn-js-element-templates": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/bpmn-js-element-templates/-/bpmn-js-element-templates-1.15.0.tgz", - "integrity": "sha512-zrlNMPoZKtD9Pt3SNOJX4X3h8meO2pZfIvNvs6cdpr4mb0+z4MyaKiRCG/ECeV+FfDjz6UfTV/8IWTsfK+3L/A==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/bpmn-js-element-templates/-/bpmn-js-element-templates-1.15.2.tgz", + "integrity": "sha512-zVKou8OCi7RqcIFb2vCrCr6jag5PBH9GW/e36BrHSJkalu7ma30sGssAJ863jxUP83MiNmg3iy/O183OAOJZtA==", "dev": true, "requires": { "@bpmn-io/element-templates-validator": "^2.0.1", @@ -11498,15 +11375,15 @@ } }, "bpmn-js-properties-panel": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-5.8.0.tgz", - "integrity": "sha512-B48J3PpEjNhxbjqbdXQGZYklBwVgOj5kgoU1avTbJ0obuxuzANgyKsMkNEJDVV8H/aacpWnMneGnaT1Szfq6Gg==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-5.15.0.tgz", + "integrity": "sha512-LNW9AcmfIYf098h3AXALzr4JyP0Jusm15YDTD+1DEbLJ7BcpTZWhqHI6rhw7C1ZeL1Cy/LerSINqD7u1goUD0w==", "dev": true, "requires": { "@bpmn-io/extract-process-variables": "^0.8.0", - "array-move": "^3.0.1", + "array-move": "^4.0.0", "ids": "^1.0.5", - "min-dash": "^4.1.1", + "min-dash": "^4.2.1", "min-dom": "^4.1.0" } }, @@ -11647,9 +11524,9 @@ "dev": true }, "camunda-bpmn-js-behaviors": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/camunda-bpmn-js-behaviors/-/camunda-bpmn-js-behaviors-1.2.2.tgz", - "integrity": "sha512-BYbiKH5L3tMqpFOnmlIOp2QR/8ewNG0UOIOVafBYuZCiBOXr/XMl86gOF0aT994xdOGKO/6gdqc7+p8baAxcEw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/camunda-bpmn-js-behaviors/-/camunda-bpmn-js-behaviors-1.3.0.tgz", + "integrity": "sha512-Nz+Fa5B6SVUq6d+Mb0UOP0GZI6a+NrMwUXKeyA5LSXjVEKxwso500PGwbzW7HGgFfqT40Fv8i/ukvI0adTBPyA==", "dev": true, "requires": { "ids": "^1.0.0", @@ -12124,15 +12001,14 @@ "dev": true }, "diagram-js": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-13.4.0.tgz", - "integrity": "sha512-JI6UI74J3TgRcgBhuZZJso//bUdh22rcVu9XSf1EBVisKPt9c+woKzOrr/79OutXvft+1NOLNEiBg58kZ8p7+Q==", + "version": "14.5.3", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-14.5.3.tgz", + "integrity": "sha512-tCWNrV749qznT97Ce5okd+Pqz/2IUHRaC4Bcvop4+L2fh2X0CUUpQQ/cO8UgnNgwpTeu7OVS+DI3FQrVTk0mAw==", "dev": true, "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.2", - "clsx": "^2.0.0", - "didi": "^10.0.1", - "hammerjs": "^2.0.1", + "@bpmn-io/diagram-js-ui": "^0.2.3", + "clsx": "^2.1.0", + "didi": "^10.2.2", "inherits-browser": "^0.1.0", "min-dash": "^4.1.0", "min-dom": "^4.1.0", @@ -12142,9 +12018,9 @@ } }, "diagram-js-direct-editing": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.1.2.tgz", - "integrity": "sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-3.0.1.tgz", + "integrity": "sha512-V44JO55nwFbsRv6tTmrfdz6fIsE3A4YIIqInaeJZyD2EongZzEo4acH9TqsE4hi9R/kAqsyttMKxTAgHplFn8w==", "dev": true, "requires": { "min-dash": "^4.0.0", @@ -12173,44 +12049,60 @@ "dev": true }, "dmn-js": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js/-/dmn-js-15.1.0.tgz", - "integrity": "sha512-N44hE0HqWFXCzor1PllFmYmjU4PoOqCd8fOSkn6vegU2QB0rsqhkKV6epVgwGk9NMtJRRFGdchPeyql0qJeHeg==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js/-/dmn-js-16.3.1.tgz", + "integrity": "sha512-tMMdzHFqNIExC5NceVLVs520racqMyQWNCLk9AReHnYUj6QtZwesOZ1N/C4AF4SQ6kucRvPVxSfbIJSseJ7rYQ==", "dev": true, "requires": { - "dmn-js-decision-table": "^15.1.0", - "dmn-js-drd": "^15.1.0", - "dmn-js-literal-expression": "^15.1.0", - "dmn-js-shared": "^15.1.0" + "dmn-js-boxed-expression": "^16.3.1", + "dmn-js-decision-table": "^16.3.1", + "dmn-js-drd": "^16.3.1", + "dmn-js-literal-expression": "^16.3.1", + "dmn-js-shared": "^16.3.1" + } + }, + "dmn-js-boxed-expression": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-boxed-expression/-/dmn-js-boxed-expression-16.3.1.tgz", + "integrity": "sha512-EJ6CeINVTeu47V/NVAUuKuY1sn0e2y4CkrhD88uOEbl10hugsEFNXxfx1KMCF5WGjxW/ujWnUpX36c+IORQ4Vw==", + "dev": true, + "requires": { + "@bpmn-io/dmn-variable-resolver": "^0.5.0", + "diagram-js": "^14.5.3", + "dmn-js-shared": "^16.3.1", + "inferno": "~5.6.2", + "min-dash": "^4.0.0", + "min-dom": "^4.0.3", + "table-js": "^9.1.0" } }, "dmn-js-decision-table": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-decision-table/-/dmn-js-decision-table-15.1.0.tgz", - "integrity": "sha512-Qtd1O0sqxHgQacGB53RSpOjq22bf/q+XsP06Ye6H+Rm7t3dRCSO7qXIcRfn7uzwipr6B9IBAftlsjU3C1DcV8w==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-decision-table/-/dmn-js-decision-table-16.3.1.tgz", + "integrity": "sha512-5ZhfKgBaFIodLwCHHzos5Q9kgubUmE4cIed+4nkz3jv6FjkTpkbUu+tBd71aBksoVmJPjPDuCf0CAdnQLW3wcA==", "dev": true, "requires": { - "@bpmn-io/dmn-variable-resolver": "^0.4.0", + "@bpmn-io/dmn-variable-resolver": "^0.5.0", "css.escape": "^1.5.1", - "diagram-js": "^13.4.0", - "dmn-js-shared": "^15.1.0", + "diagram-js": "^14.5.3", + "dmn-js-shared": "^16.3.1", "escape-html": "^1.0.3", "inferno": "~5.6.2", "min-dash": "^4.0.0", "min-dom": "^4.0.3", "selection-ranges": "^3.0.2", - "table-js": "^9.0.0" + "table-js": "^9.1.0" } }, "dmn-js-drd": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-drd/-/dmn-js-drd-15.1.0.tgz", - "integrity": "sha512-eEt3ll/ALEpfr1dtYRXr7dY/ivh7XFGBEmGybkPSOAUimZoOsS0PV2VCaO3LL1tnwRgbTH8Jtkmj8Tl9UtdGQg==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-drd/-/dmn-js-drd-16.3.1.tgz", + "integrity": "sha512-PBeywVTf2v4hRpXXFT8iHX1gXzTOnLyl8IFztekKy7IKpHZox/rELsEsme+gIqpno5PYlBWuX87uNffD7M0htw==", "dev": true, "requires": { - "diagram-js": "^13.4.0", - "diagram-js-direct-editing": "^2.1.1", - "dmn-js-shared": "^15.1.0", + "diagram-js": "^14.5.3", + "diagram-js-direct-editing": "^3.0.1", + "dmn-js-shared": "^16.3.1", "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", "min-dom": "^4.0.3", @@ -12219,87 +12111,49 @@ } }, "dmn-js-literal-expression": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-literal-expression/-/dmn-js-literal-expression-15.1.0.tgz", - "integrity": "sha512-uCSgy04zjK5mRnEh8oWN8QQaCtV1gNfUE2UILC9SSwQwv0pnywXGz6dU8KZW0yYENXOxyjrxuSYvMjJxXYsl6Q==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-literal-expression/-/dmn-js-literal-expression-16.3.1.tgz", + "integrity": "sha512-hjl4PQCJArlSzrnE3uDpKdRKyaDsMe94YEdWDaYnEttytUC52vOzjbZr5VSS+QYHOZ+pYqH3fsJJQ/Gx0jICtA==", "dev": true, "requires": { - "@bpmn-io/dmn-variable-resolver": "^0.4.0", - "diagram-js": "^13.4.0", - "dmn-js-shared": "^15.1.0", + "@bpmn-io/dmn-variable-resolver": "^0.5.0", + "diagram-js": "^14.5.3", + "dmn-js-shared": "^16.3.1", "escape-html": "^1.0.3", "inferno": "~5.6.2", "min-dash": "^4.0.0", "min-dom": "^4.0.3", - "table-js": "^9.0.0" + "table-js": "^9.1.0" } }, "dmn-js-properties-panel": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/dmn-js-properties-panel/-/dmn-js-properties-panel-3.2.1.tgz", - "integrity": "sha512-ptD+dndvY9iE4aHtCkxkB+JDYZEjcZVPvW+Hpl2IDqHk6kq6bmD/06nQXE0z7ymQuCANCw+nmriOJqomTbrZow==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dmn-js-properties-panel/-/dmn-js-properties-panel-3.3.0.tgz", + "integrity": "sha512-dyYN8b2AjMT0FIk95JhGWrbGW6O0aufVUJOjTq03spmxjtUwQnqRYZzjB5lUa1qK/9txq+z/woblLk8sx5kJmQ==", "dev": true, "requires": { - "diagram-js": "^12.7.3", + "diagram-js": "^14.0.0", "min-dash": "^4.1.1", "min-dom": "^4.1.0" - }, - "dependencies": { - "diagram-js": { - "version": "12.8.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-12.8.1.tgz", - "integrity": "sha512-LF9BiwjbOPpZd0ez5VSlYRbdbEA59YQX43bWvNDp1rLMv0xwZ5yIg4oaYDK82nIQ0kH1tjvoQRpNevMTCgQVyw==", - "dev": true, - "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.2", - "clsx": "^2.0.0", - "didi": "^9.0.2", - "hammerjs": "^2.0.1", - "inherits-browser": "^0.1.0", - "min-dash": "^4.1.0", - "min-dom": "^4.1.0", - "object-refs": "^0.3.0", - "path-intersection": "^2.2.1", - "tiny-svg": "^3.0.1" - } - }, - "didi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz", - "integrity": "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==", - "dev": true - }, - "object-refs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.3.0.tgz", - "integrity": "sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==", - "dev": true - }, - "path-intersection": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", - "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==", - "dev": true - } } }, "dmn-js-shared": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/dmn-js-shared/-/dmn-js-shared-15.1.0.tgz", - "integrity": "sha512-SHEBrV3hihBk1iz6q2eIrqMgR4Wx39PYGcD926G5gRDrxJtEYEtVqMbVui18VIEMn0X7/xXJ5W+NUvkiCYHUSA==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dmn-js-shared/-/dmn-js-shared-16.3.1.tgz", + "integrity": "sha512-WkW1THFG7uzRFtKKUEUBkYS3cTSd9HwCxTE8kTv3bsrgSJiodVMSfQvit+8QjaiqktEOF4Ik2J+VIT5TkY4MjQ==", "dev": true, "requires": { - "@bpmn-io/feel-editor": "^1.1.0", - "diagram-js": "^13.4.0", - "didi": "^10.0.1", + "@bpmn-io/feel-editor": "^1.3.0", + "diagram-js": "^14.5.3", + "didi": "^10.2.2", "dmn-moddle": "^10.0.0", - "ids": "^1.0.0", + "ids": "^1.0.5", "inferno": "~5.6.2", "min-dash": "^4.0.0", "min-dom": "^4.0.3", "selection-ranges": "^3.0.2", "selection-update": "^0.1.2", - "table-js": "^9.0.0" + "table-js": "^9.1.0" } }, "dmn-moddle": { @@ -12899,13 +12753,13 @@ } }, "feelers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/feelers/-/feelers-1.2.0.tgz", - "integrity": "sha512-EPw88XH1UUt4A5JmBrJN3dmCMAxSi54juFuNoGwPKIDz70x9VYJhrECYsDfcx+CbIVNPuoEkt9hlx07bfA1+4A==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/feelers/-/feelers-1.3.1.tgz", + "integrity": "sha512-vynmIHhjttmT0wfzbI+Nmi84wLbLwUt83NXo5YTQMReIjRwgHhQpxs7koixX/flJIlTG8M4eukc1U1oQAYkhNw==", "dev": true, "requires": { "@bpmn-io/cm-theme": "^0.1.0-alpha.2", - "@bpmn-io/feel-lint": "^1.1.0", + "@bpmn-io/feel-lint": "^1.2.0", "@codemirror/autocomplete": "^6.10.1", "@codemirror/commands": "^6.3.0", "@codemirror/language": "^6.9.1", @@ -12916,20 +12770,20 @@ "@lezer/highlight": "^1.1.6", "@lezer/lr": "^1.3.13", "@lezer/markdown": "^1.1.0", - "feelin": "^2.3.0", - "lezer-feel": "^1.2.0", + "feelin": "^3.0.1", + "lezer-feel": "^1.2.4", "min-dom": "^4.1.0" } }, "feelin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/feelin/-/feelin-2.3.0.tgz", - "integrity": "sha512-QDXCQRIV6AeLYUZoSlCAM+LEIv5k0+G4UJ+hRvTG42nCsW9YWPeVFNDInJDMGC+NimA6wW+1PKKDY6X8FcKJqg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/feelin/-/feelin-3.1.0.tgz", + "integrity": "sha512-ITPATtpwDWeLr7FKEAai7mJPlIH0td+D58f61+ZFDOs6Gg+8mFIo1LlhltQOeLkmZlOdvC/RsovbZ7SqxUfoyQ==", "dev": true, "requires": { "@lezer/lr": "^1.3.9", - "lezer-feel": "^1.2.0", - "luxon": "^3.1.0" + "lezer-feel": "^1.2.8", + "luxon": "^3.4.4" } }, "file-drops": { @@ -13282,12 +13136,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", - "dev": true - }, "has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", @@ -14173,13 +14021,13 @@ } }, "lezer-feel": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lezer-feel/-/lezer-feel-1.2.4.tgz", - "integrity": "sha512-ASi0yQd6A8a2xeNF+b5Sr7fPcko236i81q9yzMbzi81lKc93CZ3SRR7rgCZgHMVifVthofZRoNczR5lenCRmlw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/lezer-feel/-/lezer-feel-1.2.8.tgz", + "integrity": "sha512-CO5JEpwNhH1p8mmRRcqMjJrYxO3vNx0nEsF9Ak4OPa1pNHEqvJ2rwYwM9LjZ7jh/Sl5FxbTJT/teF9a+zWmflg==", "dev": true, "requires": { - "@lezer/highlight": "^1.1.6", - "@lezer/lr": "^1.3.12" + "@lezer/highlight": "^1.2.0", + "@lezer/lr": "^1.4.0" } }, "lines-and-columns": { @@ -16051,9 +15899,9 @@ "dev": true }, "table-js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/table-js/-/table-js-9.0.0.tgz", - "integrity": "sha512-CBRMuPUdHRQNtOsD6ommWCHd6TJbxLWbNbLIfs6lU1XqD0dlSMH9xBqD7asFra5XDVTrLSHzx2PBD83pWVqDDg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/table-js/-/table-js-9.1.0.tgz", + "integrity": "sha512-yxzIBXZe5pFHXBng8+Rz3dDGiO4anWptlWQXP4Pm1oIetgdG4nq+DkZkRG4Lq5L1HFu1OVif4h3YMI7rxudvPw==", "dev": true, "requires": { "didi": "^10.0.0", @@ -16656,9 +16504,9 @@ "dev": true }, "zeebe-bpmn-moddle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/zeebe-bpmn-moddle/-/zeebe-bpmn-moddle-1.0.0.tgz", - "integrity": "sha512-ZXEe+0s6Z1jf0hfK4VfRr71p4FcXkYz+MxVx6vMCiey2KVZqY1uj6KCpzK9+tEJzTdxGRS3FymK3oxAkjzs1GA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/zeebe-bpmn-moddle/-/zeebe-bpmn-moddle-1.1.0.tgz", + "integrity": "sha512-ES/UZFO0VmKvAzL4+cD3VcQpKvlmgLtnFKTyiv0DdDcxNrdQg1rI0OmUdrKMiybAbtAgPDkVXZCusE3kkXwEyQ==", "dev": true } } diff --git a/package.json b/package.json index a93612d..cd4019c 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ }, "devDependencies": { "@babel/plugin-transform-react-jsx": "^7.23.4", - "@bpmn-io/properties-panel": "^3.16.0", - "@bpmn-io/refactorings": "^0.2.1", + "@bpmn-io/properties-panel": "^3.18.2", + "@bpmn-io/refactorings": "^0.2.2", "@rollup/plugin-alias": "^5.1.0", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.5", @@ -58,15 +58,15 @@ "axe-core": "^4.9.0", "babel-loader": "^9.1.3", "babel-plugin-istanbul": "^6.1.1", - "bpmn-js": "^17.3.0", - "bpmn-js-color-picker": "^0.7.0", - "bpmn-js-create-append-anything": "^0.5.0", - "bpmn-js-element-templates": "^1.15.0", - "bpmn-js-properties-panel": "^5.8.0", - "camunda-bpmn-js-behaviors": "^1.2.2", + "bpmn-js": "^17.6.3", + "bpmn-js-color-picker": "^0.7.1", + "bpmn-js-create-append-anything": "^0.5.1", + "bpmn-js-element-templates": "^1.15.2", + "bpmn-js-properties-panel": "^5.15.0", + "camunda-bpmn-js-behaviors": "^1.3.0", "cross-env": "^7.0.3", - "dmn-js": "^15.1.0", - "dmn-js-properties-panel": "^3.2.1", + "dmn-js": "^16.3.1", + "dmn-js-properties-panel": "^3.3.0", "downloadjs": "^1.4.7", "eslint": "^8.50.0", "eslint-plugin-bpmn-io": "^1.0.0", @@ -89,7 +89,7 @@ "sinon": "^16.1.0", "sinon-chai": "^3.7.0", "webpack": "^5.88.2", - "zeebe-bpmn-moddle": "^1.0.0" + "zeebe-bpmn-moddle": "^1.1.0" }, "peerDependencies": { "bpmn-js-create-append-anything": "^0.5.0" diff --git a/test/spec/bpmn/appendCreatePad/AppendCreatePad.spec.js b/test/spec/bpmn/appendCreatePad/AppendCreatePad.spec.js index 3d54c53..920b21e 100644 --- a/test/spec/bpmn/appendCreatePad/AppendCreatePad.spec.js +++ b/test/spec/bpmn/appendCreatePad/AppendCreatePad.spec.js @@ -120,7 +120,7 @@ describe('', function() { describe('#getPosition', function() { - it('should return position for task', inject(function(appendCreatePad, elementRegistry) { + it('should return position for task', inject(function(appendCreatePad, canvas, elementRegistry) { // given const task = elementRegistry.get('Task_1'); @@ -129,14 +129,20 @@ describe('', function() { const position = appendCreatePad.getPosition(task); // then - expect(position).to.eql({ - left: task.width + 30, - top: task.height / 2 - }); + const gfx = canvas.getGraphics(task); + + const targetBounds = gfx.getBoundingClientRect(); + + const container = canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + expect(position.left).to.be.within(targetBounds.right - containerBounds.left, targetBounds.right - containerBounds.left + 25); + expect(position.top).to.be.closeTo(targetBounds.top + targetBounds.height / 2 - containerBounds.top, 1); })); - it('should return position for boundary event (right)', inject(function(appendCreatePad, elementRegistry) { + it('should return position for boundary event (right)', inject(function(appendCreatePad, canvas, elementRegistry) { // given const boundaryEvent = elementRegistry.get('BoundaryEvent_1'); @@ -145,14 +151,20 @@ describe('', function() { const position = appendCreatePad.getPosition(boundaryEvent); // then - expect(position).to.eql({ - left: boundaryEvent.width + 30, - top: boundaryEvent.height / 2 - }); + const gfx = canvas.getGraphics(boundaryEvent); + + const targetBounds = gfx.getBoundingClientRect(); + + const container = canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + expect(position.left).to.be.within(targetBounds.right - containerBounds.left, targetBounds.right - containerBounds.left + 25); + expect(position.top).to.be.closeTo(targetBounds.top + targetBounds.height / 2 - containerBounds.top, 1); })); - it('should return position for boundary event (bottom)', inject(function(appendCreatePad, elementRegistry) { + it('should return position for boundary event (bottom)', inject(function(appendCreatePad, canvas, elementRegistry) { // given const boundaryEvent = elementRegistry.get('CompensationBoundaryEvent_1'); @@ -161,10 +173,16 @@ describe('', function() { const position = appendCreatePad.getPosition(boundaryEvent); // then - expect(position).to.eql({ - left: boundaryEvent.width / 2, - top: boundaryEvent.height + 30 - }); + const gfx = canvas.getGraphics(boundaryEvent); + + const targetBounds = gfx.getBoundingClientRect(); + + const container = canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + expect(position.left).to.be.closeTo(targetBounds.left + targetBounds.width / 2 - containerBounds.left, 1); + expect(position.top).to.be.within(targetBounds.bottom - containerBounds.top, targetBounds.bottom - containerBounds.top + 25); })); }); diff --git a/test/spec/bpmn/attachCreatePad/AttachCreatePad.spec.js b/test/spec/bpmn/attachCreatePad/AttachCreatePad.spec.js index 649d276..c99a3da 100644 --- a/test/spec/bpmn/attachCreatePad/AttachCreatePad.spec.js +++ b/test/spec/bpmn/attachCreatePad/AttachCreatePad.spec.js @@ -130,7 +130,7 @@ describe('', function() { describe('#getPosition', function() { - it('should return position for task', inject(function(attachCreatePad, elementRegistry) { + it('should return position for task', inject(function(attachCreatePad, canvas, elementRegistry) { // given const task = elementRegistry.get('Task_1'); @@ -139,10 +139,16 @@ describe('', function() { const position = attachCreatePad.getPosition(task); // then - expect(position).to.eql({ - left: task.width - 25, - top: task.height + 5 - }); + const gfx = canvas.getGraphics(task); + + const targetBounds = gfx.getBoundingClientRect(); + + const container = canvas.getContainer(); + + const containerBounds = container.getBoundingClientRect(); + + expect(position.left).to.be.within(targetBounds.right - containerBounds.left - 50, targetBounds.right - containerBounds.left); + expect(position.top).to.be.within(targetBounds.bottom - containerBounds.top - 25, targetBounds.bottom - containerBounds.top); })); }); diff --git a/test/spec/bpmn/contextPad/FeedbackButton.spec.js b/test/spec/bpmn/contextPad/FeedbackButton.spec.js deleted file mode 100644 index 4c3e4b6..0000000 --- a/test/spec/bpmn/contextPad/FeedbackButton.spec.js +++ /dev/null @@ -1,57 +0,0 @@ -import { - insertCoreStyles, - insertBpmnStyles, - bootstrapModeler, - inject -} from 'test/TestHelper'; - -import { - query as domQuery -} from 'min-dom'; - -import ImprovedContextPadModule from 'lib/bpmn/contextPad'; - -import diagramXML from '../../../fixtures/simple.bpmn'; - -insertCoreStyles(); -insertBpmnStyles(); - -describe('', function() { - - beforeEach(bootstrapModeler(diagramXML, { - additionalModules: [ - ImprovedContextPadModule - ] - })); - - - it('shape', inject(function(canvas, elementRegistry, contextPad) { - - // given - const shape = elementRegistry.get('StartEvent_1'); - - // when - contextPad.open(shape); - - // then - const feedbackButton = domQuery('.djs-context-pad .entry', canvas.getContainer()); - - expect(feedbackButton).to.exist; - })); - - - it('label', inject(function(canvas, elementRegistry, contextPad) { - - // given - const shape = elementRegistry.get('StartEvent_1_label'); - - // when - contextPad.open(shape); - - // then - const feedbackButton = domQuery('.djs-context-pad .entry', canvas.getContainer()); - - expect(feedbackButton).not.to.exist; - })); - -}); diff --git a/test/spec/bpmn/resourceLinking/ResourceLinking.bpmn b/test/spec/bpmn/resourceLinking/ResourceLinking.bpmn index 5467b2d..551b01d 100644 --- a/test/spec/bpmn/resourceLinking/ResourceLinking.bpmn +++ b/test/spec/bpmn/resourceLinking/ResourceLinking.bpmn @@ -1,5 +1,5 @@ - + {"id": "Form_1"} @@ -49,59 +49,72 @@ + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + diff --git a/test/spec/bpmn/resourceLinking/ResourceLinking.spec.js b/test/spec/bpmn/resourceLinking/ResourceLinking.spec.js index b2d6aa5..c9b6b25 100644 --- a/test/spec/bpmn/resourceLinking/ResourceLinking.spec.js +++ b/test/spec/bpmn/resourceLinking/ResourceLinking.spec.js @@ -612,6 +612,19 @@ describe('', function() { expect(domQuery('.entry[data-action="link-resource"]')).not.to.exist; })); + + it('should disallow if none start event in event subprocess', inject(function(elementRegistry, contextPad, modeling) { + + // given + const startEvent = elementRegistry.get('EventSubprocessStartEvent'); + + // when + contextPad.open(startEvent); + + // then + expect(domQuery('.entry[data-action="link-resource"]')).not.to.exist; + })); + }); }); @@ -651,8 +664,8 @@ function queryContextPadEntry(action, contextPadHtml) { } function mockContextPadEvent(entry) { - return getBpmnJS().invoke(function(contextPad) { - const target = queryContextPadEntry(entry, contextPad.getPad().html); + return getBpmnJS().invoke(function(canvas) { + const target = queryContextPadEntry(entry, canvas.getContainer()); return { target: target, diff --git a/test/spec/bpmn/showComments/ShowComments.spec.js b/test/spec/bpmn/showComments/ShowComments.spec.js index 9490954..35bbc56 100644 --- a/test/spec/bpmn/showComments/ShowComments.spec.js +++ b/test/spec/bpmn/showComments/ShowComments.spec.js @@ -118,8 +118,8 @@ function queryContextPadEntry(action, contextPadHtml) { } function mockContextPadEvent(entry) { - return getBpmnJS().invoke(function(contextPad) { - const target = queryContextPadEntry(entry, contextPad.getPad().html); + return getBpmnJS().invoke(function(canvas) { + const target = queryContextPadEntry(entry, canvas.getContainer()); return { target: target, diff --git a/test/spec/common/contextPad/ImprovedContextPad.spec.js b/test/spec/common/contextPad/ImprovedContextPad.spec.js index cead46e..ee02d93 100644 --- a/test/spec/common/contextPad/ImprovedContextPad.spec.js +++ b/test/spec/common/contextPad/ImprovedContextPad.spec.js @@ -113,7 +113,7 @@ describe('', function() { contextPad.open(shape); // when - contextPad.trigger('click', padEvent('replace')); + contextPad.trigger('click', contextPadEvent('replace')); // then const entry = domQuery('[data-action="replace"]'); @@ -129,7 +129,7 @@ describe('', function() { contextPad.open([ shape1, shape2 ]); // when - contextPad.trigger('click', padEvent('align-elements')); + contextPad.trigger('click', contextPadEvent('align-elements')); // then const entry = domQuery('[data-action="align-elements"]'); @@ -170,60 +170,61 @@ describe('', function() { }); - describe('feedback button', function() { + describe('visibility', function() { - it('shoud add feedback button', inject(async function(elementRegistry, contextPad) { + it('should hide when element hidden', inject(function(canvas, elementRegistry, contextPad) { // given const shape = elementRegistry.get('StartEvent_1'); - // when contextPad.open(shape); - // then - const feedbackButton = domQuery('.feedback-button'); + // assume + expect(contextPad.isShown()).to.be.true; + + // when + canvas.addMarker(shape, 'djs-element-hidden'); - expect(feedbackButton).to.exist; + // then + expect(contextPad.isShown()).to.be.false; })); - it('shoud remove feedback button', inject(async function(elementRegistry, contextPad) { + it('should hide when element outside bounds', inject(function(canvas, elementRegistry, contextPad) { // given const shape = elementRegistry.get('StartEvent_1'); contextPad.open(shape); - // when - contextPad.close(); + // assume + expect(contextPad.isShown()).to.be.true; - const feedbackButton = domQuery('.feedback-button'); + // when + canvas.scroll({ dx: -100000, dy: -100000 }); // then - expect(feedbackButton).not.to.exist; + expect(contextPad.isShown()).to.be.false; })); - it('shoud fire event on click', inject(async function(contextPad, elementRegistry, eventBus) { + it('should show when element visible and inside bounds', inject(function(canvas, elementRegistry, contextPad) { // given const shape = elementRegistry.get('StartEvent_1'); contextPad.open(shape); - const feedbackButton = domQuery('.feedback-button'); + canvas.scroll({ dx: -100000, dy: -100000 }); - const spy = sinon.spy(); - - eventBus.on('contextPad.feedback', spy); + // assume + expect(contextPad.isShown()).to.be.false; // when - const event = new MouseEvent('click'); - - feedbackButton.dispatchEvent(event); + canvas.scroll({ dx: 100000, dy: 100000 }); // then - expect(spy).to.have.been.called; + expect(contextPad.isShown()).to.be.true; })); }); @@ -232,21 +233,15 @@ describe('', function() { // helpers ////////// -function padEntry(element, name) { - return domQuery('[data-action="' + name + '"]', element); -} - -function padEvent(entry) { - - return getBpmnJS().invoke(function(overlays) { - - var target = padEntry(overlays._overlayRoot, entry); +export function contextPadEvent(action) { + return getBpmnJS().invoke(function(canvas) { + const target = domQuery(`.djs-context-pad [data-action="${ action }"]`, canvas.getContainer()); return { - target: target, - preventDefault: function() {}, clientX: 100, - clientY: 100 + clientY: 100, + preventDefault: () => {}, + target }; }); } diff --git a/test/spec/common/createPad/CreatePad.spec.js b/test/spec/common/createPad/CreatePad.spec.js index bc2518a..6f9a4b2 100644 --- a/test/spec/common/createPad/CreatePad.spec.js +++ b/test/spec/common/createPad/CreatePad.spec.js @@ -609,8 +609,8 @@ function createCustomCreatePad(options = {}) { } = options; class CustomCreatePad extends CreatePad { - constructor(eventBus, overlays) { - super(eventBus, overlays); + constructor(canvas, eventBus) { + super(canvas, eventBus); } canOpen(element) { @@ -626,7 +626,7 @@ function createCustomCreatePad(options = {}) { } } - CustomCreatePad.$inject = [ 'eventBus', 'overlays' ]; + CustomCreatePad.$inject = [ 'canvas', 'eventBus' ]; return CustomCreatePad; } \ No newline at end of file diff --git a/test/spec/common/createPad/ErrorCreatePad.js b/test/spec/common/createPad/ErrorCreatePad.js index f39e5a0..54d6c09 100644 --- a/test/spec/common/createPad/ErrorCreatePad.js +++ b/test/spec/common/createPad/ErrorCreatePad.js @@ -1,9 +1,9 @@ import CreatePad from 'lib/common/createPad/CreatePad'; export default class ErrorCreatePad extends CreatePad { - constructor(eventBus, overlays) { - super(eventBus, overlays); + constructor(canvas, eventBus) { + super(canvas, eventBus); } } -ErrorCreatePad.$inject = [ 'eventBus', 'overlays' ]; \ No newline at end of file +ErrorCreatePad.$inject = [ 'canvas', 'eventBus' ]; \ No newline at end of file diff --git a/test/spec/common/popupMenu/HorizontalPopupMenu.spec.js b/test/spec/common/popupMenu/HorizontalPopupMenu.spec.js index 3be1b1b..9243dff 100644 --- a/test/spec/common/popupMenu/HorizontalPopupMenu.spec.js +++ b/test/spec/common/popupMenu/HorizontalPopupMenu.spec.js @@ -2,8 +2,7 @@ import { insertCoreStyles, insertBpmnStyles, bootstrapModeler, - inject, - getBpmnJS + inject } from 'test/TestHelper'; import { @@ -12,9 +11,12 @@ import { import ColorPickerModule from 'bpmn-js-color-picker'; -import diagramXML from '../../../fixtures/simple.bpmn'; -import ImprovedContextPad from 'lib/bpmn/contextPad'; +import { contextPadEvent } from '../contextPad/ImprovedContextPad.spec'; + import HorizontalPopupMenu from 'lib/bpmn/popupMenu'; +import ImprovedContextPad from 'lib/bpmn/contextPad'; + +import diagramXML from '../../../fixtures/simple.bpmn'; insertCoreStyles(); insertBpmnStyles(); @@ -29,6 +31,7 @@ describe('', function() { ] })); + describe('should render', function() { it('color picker', inject(function(elementRegistry, contextPad) { @@ -38,7 +41,7 @@ describe('', function() { // when contextPad.open(shape); - contextPad.trigger('click', padEvent('set-color')); + contextPad.trigger('click', contextPadEvent('set-color')); // then expect(domQuery('.djs-popup.color-picker')).to.exist; @@ -53,7 +56,7 @@ describe('', function() { // when contextPad.open([ shape, task ]); - contextPad.trigger('click', padEvent('align-elements')); + contextPad.trigger('click', contextPadEvent('align-elements')); // then expect(domQuery('.djs-popup.align-elements')).to.exist; @@ -72,7 +75,7 @@ describe('', function() { const contextPadNode = domQuery('.djs-context-pad'); const contextPadBounds = contextPadNode.getBoundingClientRect(); - contextPad.trigger('click', padEvent('set-color')); + contextPad.trigger('click', contextPadEvent('set-color')); // then const popupNode = domQuery('.djs-popup'); @@ -83,25 +86,4 @@ describe('', function() { })); -}); - - -// helpers ////////// -function padEntry(element, name) { - return domQuery('[data-action="' + name + '"]', element); -} - -function padEvent(entry) { - - return getBpmnJS().invoke(function(overlays) { - - var target = padEntry(overlays._overlayRoot, entry); - - return { - target: target, - preventDefault: function() {}, - clientX: 100, - clientY: 100 - }; - }); -} \ No newline at end of file +}); \ No newline at end of file