camunda-bpmn-js 3.3.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/properties-panel.css +1 -1
- package/dist/base-modeler.development.js +233 -53
- package/dist/base-modeler.production.min.js +33 -33
- package/dist/base-navigated-viewer.development.js +3 -0
- package/dist/base-navigated-viewer.production.min.js +1 -1
- package/dist/base-viewer.development.js +2 -0
- package/dist/base-viewer.production.min.js +1 -1
- package/dist/camunda-cloud-modeler.development.js +920 -1779
- package/dist/camunda-cloud-modeler.production.min.js +46 -46
- package/dist/camunda-cloud-navigated-viewer.development.js +3 -0
- package/dist/camunda-cloud-navigated-viewer.production.min.js +1 -1
- package/dist/camunda-cloud-viewer.development.js +2 -0
- package/dist/camunda-cloud-viewer.production.min.js +1 -1
- package/dist/camunda-platform-modeler.development.js +229 -49
- package/dist/camunda-platform-modeler.production.min.js +33 -33
- package/dist/camunda-platform-navigated-viewer.development.js +3 -0
- package/dist/camunda-platform-navigated-viewer.production.min.js +1 -1
- package/dist/camunda-platform-viewer.development.js +2 -0
- package/dist/camunda-platform-viewer.production.min.js +1 -1
- package/package.json +20 -19
|
@@ -1237,7 +1237,7 @@ textarea.bio-properties-panel-input {
|
|
|
1237
1237
|
--feel-popup-close-background-color: hsla(219, 99%, 53%, 1);
|
|
1238
1238
|
--feel-popup-gutters-background-color: hsla(0, 0%, 90%, 1);
|
|
1239
1239
|
|
|
1240
|
-
position:
|
|
1240
|
+
position: fixed;
|
|
1241
1241
|
display: flex;
|
|
1242
1242
|
flex: auto;
|
|
1243
1243
|
flex-direction: column;
|
|
@@ -3827,10 +3827,7 @@
|
|
|
3827
3827
|
if (typeof f == "function") {
|
|
3828
3828
|
var a = function a () {
|
|
3829
3829
|
if (this instanceof a) {
|
|
3830
|
-
|
|
3831
|
-
args.push.apply(args, arguments);
|
|
3832
|
-
var Ctor = Function.bind.apply(f, args);
|
|
3833
|
-
return new Ctor();
|
|
3830
|
+
return Reflect.construct(f, arguments, this.constructor);
|
|
3834
3831
|
}
|
|
3835
3832
|
return f.apply(this, arguments);
|
|
3836
3833
|
};
|
|
@@ -17000,6 +16997,7 @@
|
|
|
17000
16997
|
*/
|
|
17001
16998
|
|
|
17002
16999
|
|
|
17000
|
+
|
|
17003
17001
|
// inlined ../../resources/logo.svg
|
|
17004
17002
|
var BPMNIO_LOGO_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.02 5.57" width="53" height="21"><path fill="currentColor" d="M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z"/><path fill="currentColor" d="M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z"/></svg>';
|
|
17005
17003
|
|
|
@@ -52503,6 +52501,7 @@
|
|
|
52503
52501
|
* @typedef {import('../../util/Types').Rect} Rect
|
|
52504
52502
|
*/
|
|
52505
52503
|
|
|
52504
|
+
|
|
52506
52505
|
/**
|
|
52507
52506
|
* Return direction given axis and delta.
|
|
52508
52507
|
*
|
|
@@ -60404,6 +60403,7 @@
|
|
|
60404
60403
|
*/
|
|
60405
60404
|
|
|
60406
60405
|
|
|
60406
|
+
|
|
60407
60407
|
/**
|
|
60408
60408
|
* A base connection layouter implementation
|
|
60409
60409
|
* that layouts the connection by directly connecting
|
|
@@ -67143,7 +67143,7 @@
|
|
|
67143
67143
|
};
|
|
67144
67144
|
}
|
|
67145
67145
|
|
|
67146
|
-
var index$
|
|
67146
|
+
var index$5 = {
|
|
67147
67147
|
__init__: [ 'minimap' ],
|
|
67148
67148
|
minimap: [ 'type', Minimap ]
|
|
67149
67149
|
};
|
|
@@ -67299,7 +67299,7 @@
|
|
|
67299
67299
|
return Math.trunc(Math.random() * 1000000);
|
|
67300
67300
|
}
|
|
67301
67301
|
|
|
67302
|
-
var index$
|
|
67302
|
+
var index$4 = {
|
|
67303
67303
|
__init__: [ 'grid' ],
|
|
67304
67304
|
grid: [ 'type', Grid ]
|
|
67305
67305
|
};
|
|
@@ -98001,20 +98001,24 @@
|
|
|
98001
98001
|
|
|
98002
98002
|
// set edited state depending on all entries
|
|
98003
98003
|
p(() => {
|
|
98004
|
-
|
|
98005
|
-
|
|
98006
|
-
|
|
98007
|
-
|
|
98008
|
-
|
|
98009
|
-
|
|
98010
|
-
|
|
98011
|
-
|
|
98012
|
-
|
|
98013
|
-
|
|
98014
|
-
|
|
98004
|
+
// TODO(@barmac): replace with CSS when `:has()` is supported in all major browsers, or rewrite as in https://github.com/camunda/camunda-modeler/issues/3815#issuecomment-1733038161
|
|
98005
|
+
const scheduled = requestAnimationFrame(() => {
|
|
98006
|
+
const hasOneEditedEntry = entries.find(entry => {
|
|
98007
|
+
const {
|
|
98008
|
+
id,
|
|
98009
|
+
isEdited
|
|
98010
|
+
} = entry;
|
|
98011
|
+
const entryNode = query(`[data-entry-id="${id}"]`);
|
|
98012
|
+
if (!isFunction(isEdited) || !entryNode) {
|
|
98013
|
+
return false;
|
|
98014
|
+
}
|
|
98015
|
+
const inputNode = query('.bio-properties-panel-input', entryNode);
|
|
98016
|
+
return isEdited(inputNode);
|
|
98017
|
+
});
|
|
98018
|
+
setEdited(hasOneEditedEntry);
|
|
98015
98019
|
});
|
|
98016
|
-
|
|
98017
|
-
}, [entries]);
|
|
98020
|
+
return () => cancelAnimationFrame(scheduled);
|
|
98021
|
+
}, [entries, setEdited]);
|
|
98018
98022
|
|
|
98019
98023
|
// set error state depending on all entries
|
|
98020
98024
|
const allErrors = useErrors();
|
|
@@ -98402,7 +98406,11 @@
|
|
|
98402
98406
|
// (2) setup drag listeners
|
|
98403
98407
|
|
|
98404
98408
|
// attach drag + cleanup event
|
|
98405
|
-
|
|
98409
|
+
// we need to do this to make sure we track cursor
|
|
98410
|
+
// movements before we reach other drag event handlers,
|
|
98411
|
+
// e.g. in child containers.
|
|
98412
|
+
document.addEventListener('dragover', onDrag, true);
|
|
98413
|
+
document.addEventListener('dragenter', preventDefault, true);
|
|
98406
98414
|
document.addEventListener('dragend', onEnd);
|
|
98407
98415
|
document.addEventListener('drop', preventDefault);
|
|
98408
98416
|
}
|
|
@@ -98416,7 +98424,8 @@
|
|
|
98416
98424
|
return fn.call(self, event, delta);
|
|
98417
98425
|
}
|
|
98418
98426
|
function onEnd() {
|
|
98419
|
-
document.removeEventListener('dragover', onDrag);
|
|
98427
|
+
document.removeEventListener('dragover', onDrag, true);
|
|
98428
|
+
document.removeEventListener('dragenter', preventDefault, true);
|
|
98420
98429
|
document.removeEventListener('dragend', onEnd);
|
|
98421
98430
|
document.removeEventListener('drop', preventDefault);
|
|
98422
98431
|
}
|
|
@@ -98438,6 +98447,7 @@
|
|
|
98438
98447
|
* @param {Object} props
|
|
98439
98448
|
* @param {HTMLElement} [props.container]
|
|
98440
98449
|
* @param {string} [props.className]
|
|
98450
|
+
* @param {boolean} [props.delayInitialFocus]
|
|
98441
98451
|
* @param {{x: number, y: number}} [props.position]
|
|
98442
98452
|
* @param {number} [props.width]
|
|
98443
98453
|
* @param {number} [props.height]
|
|
@@ -98445,12 +98455,15 @@
|
|
|
98445
98455
|
* @param {Function} [props.onPostActivate]
|
|
98446
98456
|
* @param {Function} [props.onPostDeactivate]
|
|
98447
98457
|
* @param {boolean} [props.returnFocus]
|
|
98458
|
+
* @param {boolean} [props.closeOnEscape]
|
|
98448
98459
|
* @param {string} props.title
|
|
98460
|
+
* @param {Ref} [ref]
|
|
98449
98461
|
*/
|
|
98450
|
-
function
|
|
98462
|
+
function PopupComponent(props, globalRef) {
|
|
98451
98463
|
const {
|
|
98452
98464
|
container,
|
|
98453
98465
|
className,
|
|
98466
|
+
delayInitialFocus,
|
|
98454
98467
|
position,
|
|
98455
98468
|
width,
|
|
98456
98469
|
height,
|
|
@@ -98458,12 +98471,16 @@
|
|
|
98458
98471
|
onPostActivate = noop$3,
|
|
98459
98472
|
onPostDeactivate = noop$3,
|
|
98460
98473
|
returnFocus = true,
|
|
98474
|
+
closeOnEscape = true,
|
|
98461
98475
|
title
|
|
98462
98476
|
} = props;
|
|
98463
98477
|
const focusTrapRef = _$1(null);
|
|
98464
|
-
const
|
|
98465
|
-
const
|
|
98466
|
-
|
|
98478
|
+
const localRef = _$1(null);
|
|
98479
|
+
const popupRef = globalRef || localRef;
|
|
98480
|
+
const handleKeydown = event => {
|
|
98481
|
+
// do not allow keyboard events to bubble
|
|
98482
|
+
event.stopPropagation();
|
|
98483
|
+
if (closeOnEscape && event.key === 'Escape') {
|
|
98467
98484
|
onClose();
|
|
98468
98485
|
}
|
|
98469
98486
|
};
|
|
@@ -98488,14 +98505,6 @@
|
|
|
98488
98505
|
if (height) {
|
|
98489
98506
|
style.height = height + 'px';
|
|
98490
98507
|
}
|
|
98491
|
-
p(() => {
|
|
98492
|
-
if (popupRef.current) {
|
|
98493
|
-
popupRef.current.addEventListener('keydown', handleKeyPress);
|
|
98494
|
-
}
|
|
98495
|
-
return () => {
|
|
98496
|
-
popupRef.current.removeEventListener('keydown', handleKeyPress);
|
|
98497
|
-
};
|
|
98498
|
-
}, [popupRef]);
|
|
98499
98508
|
p(() => {
|
|
98500
98509
|
if (popupRef.current) {
|
|
98501
98510
|
popupRef.current.addEventListener('focusin', handleFocus);
|
|
@@ -98508,6 +98517,7 @@
|
|
|
98508
98517
|
if (popupRef.current) {
|
|
98509
98518
|
focusTrapRef.current = createFocusTrap(popupRef.current, {
|
|
98510
98519
|
clickOutsideDeactivates: true,
|
|
98520
|
+
delayInitialFocus,
|
|
98511
98521
|
fallbackFocus: popupRef.current,
|
|
98512
98522
|
onPostActivate,
|
|
98513
98523
|
onPostDeactivate,
|
|
@@ -98521,12 +98531,14 @@
|
|
|
98521
98531
|
"aria-label": title,
|
|
98522
98532
|
tabIndex: -1,
|
|
98523
98533
|
ref: popupRef,
|
|
98534
|
+
onKeyDown: handleKeydown,
|
|
98524
98535
|
role: "dialog",
|
|
98525
98536
|
class: classnames('bio-properties-panel-popup', className),
|
|
98526
98537
|
style: style,
|
|
98527
98538
|
children: props.children
|
|
98528
98539
|
}), container || document.body);
|
|
98529
98540
|
}
|
|
98541
|
+
const Popup = k(PopupComponent);
|
|
98530
98542
|
Popup.Title = Title;
|
|
98531
98543
|
Popup.Body = Body;
|
|
98532
98544
|
Popup.Footer = Footer;
|
|
@@ -98535,6 +98547,7 @@
|
|
|
98535
98547
|
children,
|
|
98536
98548
|
className,
|
|
98537
98549
|
draggable,
|
|
98550
|
+
emit = () => {},
|
|
98538
98551
|
title,
|
|
98539
98552
|
...rest
|
|
98540
98553
|
} = props;
|
|
@@ -98547,7 +98560,8 @@
|
|
|
98547
98560
|
});
|
|
98548
98561
|
const dragPreviewRef = _$1();
|
|
98549
98562
|
const titleRef = _$1();
|
|
98550
|
-
const onMove =
|
|
98563
|
+
const onMove = (event, delta) => {
|
|
98564
|
+
cancel(event);
|
|
98551
98565
|
const {
|
|
98552
98566
|
x: dx,
|
|
98553
98567
|
y: dy
|
|
@@ -98559,20 +98573,33 @@
|
|
|
98559
98573
|
const popupParent = getPopupParent(titleRef.current);
|
|
98560
98574
|
popupParent.style.top = newPosition.y + 'px';
|
|
98561
98575
|
popupParent.style.left = newPosition.x + 'px';
|
|
98562
|
-
|
|
98576
|
+
|
|
98577
|
+
// notify interested parties
|
|
98578
|
+
emit('dragover', {
|
|
98579
|
+
newPosition,
|
|
98580
|
+
delta
|
|
98581
|
+
});
|
|
98582
|
+
};
|
|
98563
98583
|
const onMoveStart = event => {
|
|
98564
98584
|
// initialize drag handler
|
|
98565
98585
|
const onDragStart = createDragger(onMove, dragPreviewRef.current);
|
|
98566
98586
|
onDragStart(event);
|
|
98587
|
+
event.stopPropagation();
|
|
98567
98588
|
const popupParent = getPopupParent(titleRef.current);
|
|
98568
98589
|
const bounds = popupParent.getBoundingClientRect();
|
|
98569
98590
|
context.current.startPosition = {
|
|
98570
98591
|
x: bounds.left,
|
|
98571
98592
|
y: bounds.top
|
|
98572
98593
|
};
|
|
98594
|
+
|
|
98595
|
+
// notify interested parties
|
|
98596
|
+
emit('dragstart');
|
|
98573
98597
|
};
|
|
98574
98598
|
const onMoveEnd = () => {
|
|
98575
98599
|
context.current.newPosition = null;
|
|
98600
|
+
|
|
98601
|
+
// notify interested parties
|
|
98602
|
+
emit('dragend');
|
|
98576
98603
|
};
|
|
98577
98604
|
return o("div", {
|
|
98578
98605
|
class: classnames('bio-properties-panel-popup__header', draggable && 'draggable', className),
|
|
@@ -98625,27 +98652,53 @@
|
|
|
98625
98652
|
function getPopupParent(node) {
|
|
98626
98653
|
return node.closest('.bio-properties-panel-popup');
|
|
98627
98654
|
}
|
|
98655
|
+
function cancel(event) {
|
|
98656
|
+
event.preventDefault();
|
|
98657
|
+
event.stopPropagation();
|
|
98658
|
+
}
|
|
98628
98659
|
|
|
98629
98660
|
const FEEL_POPUP_WIDTH = 700;
|
|
98630
98661
|
const FEEL_POPUP_HEIGHT = 250;
|
|
98631
98662
|
|
|
98632
98663
|
/**
|
|
98633
|
-
* FEEL popup component, built as a singleton.
|
|
98664
|
+
* FEEL popup component, built as a singleton. Emits lifecycle events as follows:
|
|
98665
|
+
* - `feelPopup.open` - fired before the popup is mounted
|
|
98666
|
+
* - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
|
|
98667
|
+
* - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
|
|
98668
|
+
* - `feelPopup.closed` - fired after the popup is unmounted
|
|
98634
98669
|
*/
|
|
98635
98670
|
function FEELPopupRoot(props) {
|
|
98636
98671
|
const {
|
|
98637
|
-
element
|
|
98672
|
+
element,
|
|
98673
|
+
eventBus = {
|
|
98674
|
+
fire() {},
|
|
98675
|
+
on() {},
|
|
98676
|
+
off() {}
|
|
98677
|
+
},
|
|
98678
|
+
popupContainer
|
|
98638
98679
|
} = props;
|
|
98639
98680
|
const prevElement = usePrevious(element);
|
|
98640
98681
|
const [popupConfig, setPopupConfig] = h({});
|
|
98641
98682
|
const [open, setOpen] = h(false);
|
|
98642
98683
|
const [source, setSource] = h(null);
|
|
98643
98684
|
const [sourceElement, setSourceElement] = h(null);
|
|
98644
|
-
const
|
|
98645
|
-
|
|
98685
|
+
const emit = (type, context) => {
|
|
98686
|
+
eventBus.fire('feelPopup.' + type, context);
|
|
98687
|
+
};
|
|
98688
|
+
const isOpen = T$1(() => {
|
|
98689
|
+
return !!open;
|
|
98690
|
+
}, [open]);
|
|
98691
|
+
useUpdateEffect(() => {
|
|
98692
|
+
if (!open) {
|
|
98693
|
+
emit('closed');
|
|
98694
|
+
}
|
|
98695
|
+
}, [open]);
|
|
98696
|
+
const handleOpen = (entryId, config, _sourceElement) => {
|
|
98697
|
+
setSource(entryId);
|
|
98646
98698
|
setPopupConfig(config);
|
|
98647
98699
|
setOpen(true);
|
|
98648
98700
|
setSourceElement(_sourceElement);
|
|
98701
|
+
emit('open');
|
|
98649
98702
|
};
|
|
98650
98703
|
const handleClose = () => {
|
|
98651
98704
|
setOpen(false);
|
|
@@ -98659,21 +98712,47 @@
|
|
|
98659
98712
|
|
|
98660
98713
|
// close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270
|
|
98661
98714
|
p(() => {
|
|
98662
|
-
if (element && element !== prevElement) {
|
|
98715
|
+
if (element && prevElement && element !== prevElement) {
|
|
98663
98716
|
handleClose();
|
|
98664
98717
|
}
|
|
98665
98718
|
}, [element]);
|
|
98719
|
+
|
|
98720
|
+
// allow close and open via events
|
|
98721
|
+
p(() => {
|
|
98722
|
+
const handlePopupOpen = context => {
|
|
98723
|
+
const {
|
|
98724
|
+
entryId,
|
|
98725
|
+
popupConfig,
|
|
98726
|
+
sourceElement
|
|
98727
|
+
} = context;
|
|
98728
|
+
handleOpen(entryId, popupConfig, sourceElement);
|
|
98729
|
+
};
|
|
98730
|
+
const handleIsOpen = () => {
|
|
98731
|
+
return isOpen();
|
|
98732
|
+
};
|
|
98733
|
+
eventBus.on('feelPopup._close', handleClose);
|
|
98734
|
+
eventBus.on('feelPopup._open', handlePopupOpen);
|
|
98735
|
+
eventBus.on('feelPopup._isOpen', handleIsOpen);
|
|
98736
|
+
return () => {
|
|
98737
|
+
eventBus.off('feelPopup._close', handleClose);
|
|
98738
|
+
eventBus.off('feelPopup._open', handleOpen);
|
|
98739
|
+
eventBus.off('feelPopup._isOpen', handleIsOpen);
|
|
98740
|
+
};
|
|
98741
|
+
}, [eventBus, isOpen]);
|
|
98666
98742
|
return o(FeelPopupContext.Provider, {
|
|
98667
98743
|
value: feelPopupContext,
|
|
98668
98744
|
children: [open && o(FeelPopupComponent, {
|
|
98669
98745
|
onClose: handleClose,
|
|
98746
|
+
container: popupContainer,
|
|
98670
98747
|
sourceElement: sourceElement,
|
|
98748
|
+
emit: emit,
|
|
98671
98749
|
...popupConfig
|
|
98672
98750
|
}), props.children]
|
|
98673
98751
|
});
|
|
98674
98752
|
}
|
|
98675
98753
|
function FeelPopupComponent(props) {
|
|
98676
98754
|
const {
|
|
98755
|
+
container,
|
|
98677
98756
|
id,
|
|
98678
98757
|
hostLanguage,
|
|
98679
98758
|
onInput,
|
|
@@ -98685,20 +98764,45 @@
|
|
|
98685
98764
|
tooltipContainer,
|
|
98686
98765
|
type,
|
|
98687
98766
|
value,
|
|
98688
|
-
variables
|
|
98767
|
+
variables,
|
|
98768
|
+
emit
|
|
98689
98769
|
} = props;
|
|
98690
98770
|
const editorRef = _$1();
|
|
98771
|
+
const popupRef = _$1();
|
|
98772
|
+
const isAutoCompletionOpen = _$1(false);
|
|
98691
98773
|
const handleSetReturnFocus = () => {
|
|
98692
98774
|
sourceElement && sourceElement.focus();
|
|
98693
98775
|
};
|
|
98694
|
-
|
|
98695
|
-
|
|
98696
|
-
if (
|
|
98697
|
-
|
|
98776
|
+
const onKeyDownCapture = event => {
|
|
98777
|
+
// we use capture here to make sure we handle the event before the editor does
|
|
98778
|
+
if (event.key === 'Escape') {
|
|
98779
|
+
isAutoCompletionOpen.current = autoCompletionOpen(event.target);
|
|
98780
|
+
}
|
|
98781
|
+
};
|
|
98782
|
+
const onKeyDown = event => {
|
|
98783
|
+
if (event.key === 'Escape') {
|
|
98784
|
+
// close popup only if auto completion is not open
|
|
98785
|
+
// we need to do check this because the editor is not
|
|
98786
|
+
// stop propagating the keydown event
|
|
98787
|
+
// cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5
|
|
98788
|
+
if (!isAutoCompletionOpen.current) {
|
|
98789
|
+
onClose();
|
|
98790
|
+
isAutoCompletionOpen.current = false;
|
|
98791
|
+
}
|
|
98698
98792
|
}
|
|
98699
|
-
}
|
|
98793
|
+
};
|
|
98794
|
+
p(() => {
|
|
98795
|
+
emit('opened', {
|
|
98796
|
+
domNode: popupRef.current
|
|
98797
|
+
});
|
|
98798
|
+
return () => emit('close', {
|
|
98799
|
+
domNode: popupRef.current
|
|
98800
|
+
});
|
|
98801
|
+
}, []);
|
|
98700
98802
|
return o(Popup, {
|
|
98803
|
+
container: container,
|
|
98701
98804
|
className: "bio-properties-panel-feel-popup",
|
|
98805
|
+
emit: emit,
|
|
98702
98806
|
position: position,
|
|
98703
98807
|
title: title,
|
|
98704
98808
|
onClose: onClose
|
|
@@ -98706,14 +98810,20 @@
|
|
|
98706
98810
|
// handle focus manually on deactivate
|
|
98707
98811
|
,
|
|
98708
98812
|
returnFocus: false,
|
|
98813
|
+
closeOnEscape: false,
|
|
98814
|
+
delayInitialFocus: false,
|
|
98709
98815
|
onPostDeactivate: handleSetReturnFocus,
|
|
98710
98816
|
height: FEEL_POPUP_HEIGHT,
|
|
98711
98817
|
width: FEEL_POPUP_WIDTH,
|
|
98818
|
+
ref: popupRef,
|
|
98712
98819
|
children: [o(Popup.Title, {
|
|
98713
98820
|
title: title,
|
|
98821
|
+
emit: emit,
|
|
98714
98822
|
draggable: true
|
|
98715
98823
|
}), o(Popup.Body, {
|
|
98716
98824
|
children: o("div", {
|
|
98825
|
+
onKeyDownCapture: onKeyDownCapture,
|
|
98826
|
+
onKeyDown: onKeyDown,
|
|
98717
98827
|
class: "bio-properties-panel-feel-popup__body",
|
|
98718
98828
|
children: [type === 'feel' && o(CodeEditor, {
|
|
98719
98829
|
enableGutters: true,
|
|
@@ -98755,6 +98865,26 @@
|
|
|
98755
98865
|
function prefixId$8(id) {
|
|
98756
98866
|
return `bio-properties-panel-${id}`;
|
|
98757
98867
|
}
|
|
98868
|
+
function autoCompletionOpen(element) {
|
|
98869
|
+
return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');
|
|
98870
|
+
}
|
|
98871
|
+
|
|
98872
|
+
/**
|
|
98873
|
+
* This hook behaves like useEffect, but does not trigger on the first render.
|
|
98874
|
+
*
|
|
98875
|
+
* @param {Function} effect
|
|
98876
|
+
* @param {Array} deps
|
|
98877
|
+
*/
|
|
98878
|
+
function useUpdateEffect(effect, deps) {
|
|
98879
|
+
const isMounted = _$1(false);
|
|
98880
|
+
p(() => {
|
|
98881
|
+
if (isMounted.current) {
|
|
98882
|
+
return effect();
|
|
98883
|
+
} else {
|
|
98884
|
+
isMounted.current = true;
|
|
98885
|
+
}
|
|
98886
|
+
}, deps);
|
|
98887
|
+
}
|
|
98758
98888
|
|
|
98759
98889
|
function ToggleSwitch(props) {
|
|
98760
98890
|
const {
|
|
@@ -99185,6 +99315,7 @@
|
|
|
99185
99315
|
* @param {Function} [props.descriptionLoaded]
|
|
99186
99316
|
* @param {TooltipConfig} [props.tooltipConfig]
|
|
99187
99317
|
* @param {Function} [props.tooltipLoaded]
|
|
99318
|
+
* @param {HTMLElement} [props.feelPopupContainer]
|
|
99188
99319
|
* @param {Object} [props.eventBus]
|
|
99189
99320
|
*/
|
|
99190
99321
|
function PropertiesPanel(props) {
|
|
@@ -99199,6 +99330,7 @@
|
|
|
99199
99330
|
descriptionLoaded,
|
|
99200
99331
|
tooltipConfig,
|
|
99201
99332
|
tooltipLoaded,
|
|
99333
|
+
feelPopupContainer,
|
|
99202
99334
|
eventBus
|
|
99203
99335
|
} = props;
|
|
99204
99336
|
|
|
@@ -99301,6 +99433,8 @@
|
|
|
99301
99433
|
value: eventContext,
|
|
99302
99434
|
children: o(FEELPopupRoot, {
|
|
99303
99435
|
element: element,
|
|
99436
|
+
eventBus: eventBus,
|
|
99437
|
+
popupContainer: feelPopupContainer,
|
|
99304
99438
|
children: o("div", {
|
|
99305
99439
|
class: "bio-properties-panel",
|
|
99306
99440
|
children: [o(Header, {
|
|
@@ -99951,10 +100085,51 @@
|
|
|
99951
100085
|
}
|
|
99952
100086
|
debounceInput.$inject = ['config.debounceInput'];
|
|
99953
100087
|
|
|
99954
|
-
var index = {
|
|
100088
|
+
var index$1 = {
|
|
99955
100089
|
debounceInput: ['factory', debounceInput]
|
|
99956
100090
|
};
|
|
99957
100091
|
|
|
100092
|
+
class FeelPopupModule {
|
|
100093
|
+
constructor(eventBus) {
|
|
100094
|
+
this._eventBus = eventBus;
|
|
100095
|
+
}
|
|
100096
|
+
|
|
100097
|
+
/**
|
|
100098
|
+
* Check if the FEEL popup is open.
|
|
100099
|
+
* @return {Boolean}
|
|
100100
|
+
*/
|
|
100101
|
+
isOpen() {
|
|
100102
|
+
return this._eventBus.fire('feelPopup._isOpen');
|
|
100103
|
+
}
|
|
100104
|
+
|
|
100105
|
+
/**
|
|
100106
|
+
* Open the FEEL popup.
|
|
100107
|
+
*
|
|
100108
|
+
* @param {String} entryId
|
|
100109
|
+
* @param {Object} popupConfig
|
|
100110
|
+
* @param {HTMLElement} sourceElement
|
|
100111
|
+
*/
|
|
100112
|
+
open(entryId, popupConfig, sourceElement) {
|
|
100113
|
+
return this._eventBus.fire('feelPopup._open', {
|
|
100114
|
+
entryId,
|
|
100115
|
+
popupConfig,
|
|
100116
|
+
sourceElement
|
|
100117
|
+
});
|
|
100118
|
+
}
|
|
100119
|
+
|
|
100120
|
+
/**
|
|
100121
|
+
* Close the FEEL popup.
|
|
100122
|
+
*/
|
|
100123
|
+
close() {
|
|
100124
|
+
return this._eventBus.fire('feelPopup._close');
|
|
100125
|
+
}
|
|
100126
|
+
}
|
|
100127
|
+
FeelPopupModule.$inject = ['eventBus'];
|
|
100128
|
+
|
|
100129
|
+
var index = {
|
|
100130
|
+
feelPopup: ['type', FeelPopupModule]
|
|
100131
|
+
};
|
|
100132
|
+
|
|
99958
100133
|
var zeebe = {};
|
|
99959
100134
|
|
|
99960
100135
|
var require$$0 = /*@__PURE__*/getAugmentedNamespace(index_esm);
|
|
@@ -102835,7 +103010,8 @@
|
|
|
102835
103010
|
getProviders,
|
|
102836
103011
|
layoutConfig: initialLayoutConfig,
|
|
102837
103012
|
descriptionConfig,
|
|
102838
|
-
tooltipConfig
|
|
103013
|
+
tooltipConfig,
|
|
103014
|
+
feelPopupContainer
|
|
102839
103015
|
} = props;
|
|
102840
103016
|
const canvas = injector.get('canvas');
|
|
102841
103017
|
const elementRegistry = injector.get('elementRegistry');
|
|
@@ -103011,6 +103187,7 @@
|
|
|
103011
103187
|
descriptionLoaded: onDescriptionLoaded,
|
|
103012
103188
|
tooltipConfig: tooltipConfig,
|
|
103013
103189
|
tooltipLoaded: onTooltipLoaded,
|
|
103190
|
+
feelPopupContainer: feelPopupContainer,
|
|
103014
103191
|
eventBus: eventBus
|
|
103015
103192
|
})
|
|
103016
103193
|
});
|
|
@@ -103043,13 +103220,15 @@
|
|
|
103043
103220
|
parent,
|
|
103044
103221
|
layout: layoutConfig,
|
|
103045
103222
|
description: descriptionConfig,
|
|
103046
|
-
tooltip: tooltipConfig
|
|
103223
|
+
tooltip: tooltipConfig,
|
|
103224
|
+
feelPopupContainer
|
|
103047
103225
|
} = config || {};
|
|
103048
103226
|
this._eventBus = eventBus;
|
|
103049
103227
|
this._injector = injector;
|
|
103050
103228
|
this._layoutConfig = layoutConfig;
|
|
103051
103229
|
this._descriptionConfig = descriptionConfig;
|
|
103052
103230
|
this._tooltipConfig = tooltipConfig;
|
|
103231
|
+
this._feelPopupContainer = feelPopupContainer;
|
|
103053
103232
|
this._container = domify$1('<div style="height: 100%" class="bio-properties-panel-container"></div>');
|
|
103054
103233
|
var commandStack = injector.get('commandStack', false);
|
|
103055
103234
|
commandStack && setupKeyboard(this._container, eventBus, commandStack);
|
|
@@ -103160,7 +103339,8 @@
|
|
|
103160
103339
|
getProviders: this._getProviders.bind(this),
|
|
103161
103340
|
layoutConfig: this._layoutConfig,
|
|
103162
103341
|
descriptionConfig: this._descriptionConfig,
|
|
103163
|
-
tooltipConfig: this._tooltipConfig
|
|
103342
|
+
tooltipConfig: this._tooltipConfig,
|
|
103343
|
+
feelPopupContainer: this._feelPopupContainer
|
|
103164
103344
|
}), this._container);
|
|
103165
103345
|
this._eventBus.fire('propertiesPanel.rendered');
|
|
103166
103346
|
}
|
|
@@ -103248,7 +103428,7 @@
|
|
|
103248
103428
|
};
|
|
103249
103429
|
|
|
103250
103430
|
var index$3 = {
|
|
103251
|
-
__depends__: [Commands, index],
|
|
103431
|
+
__depends__: [Commands, index$1, index],
|
|
103252
103432
|
__init__: ['propertiesPanel'],
|
|
103253
103433
|
propertiesPanel: ['type', BpmnPropertiesPanelRenderer]
|
|
103254
103434
|
};
|
|
@@ -105507,12 +105687,12 @@
|
|
|
105507
105687
|
: alignToOriginModule,
|
|
105508
105688
|
options.disableGrid
|
|
105509
105689
|
? {}
|
|
105510
|
-
: index$
|
|
105690
|
+
: index$4
|
|
105511
105691
|
];
|
|
105512
105692
|
};
|
|
105513
105693
|
|
|
105514
105694
|
Modeler.prototype._extensionModules = [
|
|
105515
|
-
index$
|
|
105695
|
+
index$5,
|
|
105516
105696
|
ExecutableFixModule,
|
|
105517
105697
|
index$3,
|
|
105518
105698
|
index$2
|