@bpmn-io/properties-panel 3.25.0 → 3.25.1

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/index.js CHANGED
@@ -238,19 +238,19 @@ const ErrorsContext = preact.createContext({
238
238
  errors: {}
239
239
  });
240
240
 
241
- /**
242
- * @typedef {Function} <propertiesPanel.showEntry> callback
243
- *
244
- * @example
245
- *
246
- * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
247
- * // ...
248
- * });
249
- *
250
- * @param {Object} context
251
- * @param {boolean} [context.focus]
252
- *
253
- * @returns void
241
+ /**
242
+ * @typedef {Function} <propertiesPanel.showEntry> callback
243
+ *
244
+ * @example
245
+ *
246
+ * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
247
+ * // ...
248
+ * });
249
+ *
250
+ * @param {Object} context
251
+ * @param {boolean} [context.focus]
252
+ *
253
+ * @returns void
254
254
  */
255
255
 
256
256
  const EventContext = preact.createContext({
@@ -269,20 +269,20 @@ const TooltipContext = preact.createContext({
269
269
  getTooltipForId: () => {}
270
270
  });
271
271
 
272
- /**
273
- * Accesses the global TooltipContext and returns a tooltip for a given id and element.
274
- *
275
- * @example
276
- * ```jsx
277
- * function TextField(props) {
278
- * const tooltip = useTooltipContext('input1', element);
279
- * }
280
- * ```
281
- *
282
- * @param {string} id
283
- * @param {object} element
284
- *
285
- * @returns {string}
272
+ /**
273
+ * Accesses the global TooltipContext and returns a tooltip for a given id and element.
274
+ *
275
+ * @example
276
+ * ```jsx
277
+ * function TextField(props) {
278
+ * const tooltip = useTooltipContext('input1', element);
279
+ * }
280
+ * ```
281
+ *
282
+ * @param {string} id
283
+ * @param {object} element
284
+ *
285
+ * @returns {string}
286
286
  */
287
287
  function useTooltipContext(id, element) {
288
288
  const {
@@ -435,20 +435,20 @@ function prefixId$9(id) {
435
435
  return `bio-properties-panel-${id}`;
436
436
  }
437
437
 
438
- /**
439
- * Accesses the global DescriptionContext and returns a description for a given id and element.
440
- *
441
- * @example
442
- * ```jsx
443
- * function TextField(props) {
444
- * const description = useDescriptionContext('input1', element);
445
- * }
446
- * ```
447
- *
448
- * @param {string} id
449
- * @param {object} element
450
- *
451
- * @returns {string}
438
+ /**
439
+ * Accesses the global DescriptionContext and returns a description for a given id and element.
440
+ *
441
+ * @example
442
+ * ```jsx
443
+ * function TextField(props) {
444
+ * const description = useDescriptionContext('input1', element);
445
+ * }
446
+ * ```
447
+ *
448
+ * @param {string} id
449
+ * @param {object} element
450
+ *
451
+ * @returns {string}
452
452
  */
453
453
  function useDescriptionContext(id, element) {
454
454
  const {
@@ -470,11 +470,11 @@ function useErrors() {
470
470
  return errors;
471
471
  }
472
472
 
473
- /**
474
- * Subscribe to an event immediately. Update subscription after inputs changed.
475
- *
476
- * @param {string} event
477
- * @param {Function} callback
473
+ /**
474
+ * Subscribe to an event immediately. Update subscription after inputs changed.
475
+ *
476
+ * @param {string} event
477
+ * @param {Function} callback
478
478
  */
479
479
  function useEvent(event, callback, eventBus) {
480
480
  const eventContext = hooks.useContext(EventContext);
@@ -506,24 +506,24 @@ function useEvent(event, callback, eventBus) {
506
506
 
507
507
  const KEY_LENGTH = 6;
508
508
 
509
- /**
510
- * Create a persistent key factory for plain objects without id.
511
- *
512
- * @example
513
- * ```jsx
514
- * function List({ objects }) {
515
- * const getKey = useKeyFactory();
516
- * return (<ol>{
517
- * objects.map(obj => {
518
- * const key = getKey(obj);
519
- * return <li key={key}>obj.name</li>
520
- * })
521
- * }</ol>);
522
- * }
523
- * ```
524
- *
525
- * @param {any[]} dependencies
526
- * @returns {(element: object) => string}
509
+ /**
510
+ * Create a persistent key factory for plain objects without id.
511
+ *
512
+ * @example
513
+ * ```jsx
514
+ * function List({ objects }) {
515
+ * const getKey = useKeyFactory();
516
+ * return (<ol>{
517
+ * objects.map(obj => {
518
+ * const key = getKey(obj);
519
+ * return <li key={key}>obj.name</li>
520
+ * })
521
+ * }</ol>);
522
+ * }
523
+ * ```
524
+ *
525
+ * @param {any[]} dependencies
526
+ * @returns {(element: object) => string}
527
527
  */
528
528
  function useKeyFactory(dependencies = []) {
529
529
  const map = hooks.useMemo(() => new Map(), dependencies);
@@ -538,20 +538,20 @@ function useKeyFactory(dependencies = []) {
538
538
  return getKey;
539
539
  }
540
540
 
541
- /**
542
- * Creates a state that persists in the global LayoutContext.
543
- *
544
- * @example
545
- * ```jsx
546
- * function Group(props) {
547
- * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
548
- * }
549
- * ```
550
- *
551
- * @param {(string|number)[]} path
552
- * @param {any} [defaultValue]
553
- *
554
- * @returns {[ any, Function ]}
541
+ /**
542
+ * Creates a state that persists in the global LayoutContext.
543
+ *
544
+ * @example
545
+ * ```jsx
546
+ * function Group(props) {
547
+ * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
548
+ * }
549
+ * ```
550
+ *
551
+ * @param {(string|number)[]} path
552
+ * @param {any} [defaultValue]
553
+ *
554
+ * @returns {[ any, Function ]}
555
555
  */
556
556
  function useLayoutState(path, defaultValue) {
557
557
  const {
@@ -565,11 +565,11 @@ function useLayoutState(path, defaultValue) {
565
565
  return [layoutForKey, setState];
566
566
  }
567
567
 
568
- /**
569
- * @pinussilvestrus: we need to introduce our own hook to persist the previous
570
- * state on updates.
571
- *
572
- * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
568
+ /**
569
+ * @pinussilvestrus: we need to introduce our own hook to persist the previous
570
+ * state on updates.
571
+ *
572
+ * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
573
573
  */
574
574
 
575
575
  function usePrevious(value) {
@@ -580,12 +580,12 @@ function usePrevious(value) {
580
580
  return ref.current;
581
581
  }
582
582
 
583
- /**
584
- * Subscribe to `propertiesPanel.showEntry`.
585
- *
586
- * @param {string} id
587
- *
588
- * @returns {import('preact').Ref}
583
+ /**
584
+ * Subscribe to `propertiesPanel.showEntry`.
585
+ *
586
+ * @param {string} id
587
+ *
588
+ * @returns {import('preact').Ref}
589
589
  */
590
590
  function useShowEntryEvent(id) {
591
591
  const {
@@ -616,20 +616,20 @@ function useShowEntryEvent(id) {
616
616
  return ref;
617
617
  }
618
618
 
619
- /**
620
- * @callback setSticky
621
- * @param {boolean} value
619
+ /**
620
+ * @callback setSticky
621
+ * @param {boolean} value
622
622
  */
623
623
 
624
- /**
625
- * Use IntersectionObserver to identify when DOM element is in sticky mode.
626
- * If sticky is observered setSticky(true) will be called.
627
- * If sticky mode is left, setSticky(false) will be called.
628
- *
629
- *
630
- * @param {Object} ref
631
- * @param {string} scrollContainerSelector
632
- * @param {setSticky} setSticky
624
+ /**
625
+ * Use IntersectionObserver to identify when DOM element is in sticky mode.
626
+ * If sticky is observered setSticky(true) will be called.
627
+ * If sticky mode is left, setSticky(false) will be called.
628
+ *
629
+ *
630
+ * @param {Object} ref
631
+ * @param {string} scrollContainerSelector
632
+ * @param {setSticky} setSticky
633
633
  */
634
634
  function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {
635
635
  const [scrollContainer, setScrollContainer] = hooks.useState(minDom.query(scrollContainerSelector));
@@ -683,19 +683,19 @@ function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky)
683
683
  }, [ref.current, scrollContainer, setSticky]);
684
684
  }
685
685
 
686
- /**
687
- * Creates a static function reference with changing body.
688
- * This is necessary when external libraries require a callback function
689
- * that has references to state variables.
690
- *
691
- * Usage:
692
- * const callback = useStaticCallback((val) => {val === currentState});
693
- *
694
- * The `callback` reference is static and can be safely used in external
695
- * libraries or as a prop that does not cause rerendering of children.
696
- *
697
- * @param {Function} callback function with changing reference
698
- * @returns {Function} static function reference
686
+ /**
687
+ * Creates a static function reference with changing body.
688
+ * This is necessary when external libraries require a callback function
689
+ * that has references to state variables.
690
+ *
691
+ * Usage:
692
+ * const callback = useStaticCallback((val) => {val === currentState});
693
+ *
694
+ * The `callback` reference is static and can be safely used in external
695
+ * libraries or as a prop that does not cause rerendering of children.
696
+ *
697
+ * @param {Function} callback function with changing reference
698
+ * @returns {Function} static function reference
699
699
  */
700
700
  function useStaticCallback(callback) {
701
701
  const callbackRef = hooks.useRef(callback);
@@ -838,13 +838,13 @@ function DataMarker(props) {
838
838
  return null;
839
839
  }
840
840
 
841
- /**
842
- * @typedef { {
843
- * text: (element: object) => string,
844
- * icon?: (element: Object) => import('preact').Component
845
- * } } PlaceholderDefinition
846
- *
847
- * @param { PlaceholderDefinition } props
841
+ /**
842
+ * @typedef { {
843
+ * text: (element: object) => string,
844
+ * icon?: (element: Object) => import('preact').Component
845
+ * } } PlaceholderDefinition
846
+ *
847
+ * @param { PlaceholderDefinition } props
848
848
  */
849
849
  function Placeholder(props) {
850
850
  const {
@@ -883,9 +883,9 @@ function Description(props) {
883
883
 
884
884
  const noop$6 = () => {};
885
885
 
886
- /**
887
- * Buffer `.focus()` calls while the editor is not initialized.
888
- * Set Focus inside when the editor is ready.
886
+ /**
887
+ * Buffer `.focus()` calls while the editor is not initialized.
888
+ * Set Focus inside when the editor is ready.
889
889
  */
890
890
  const useBufferedFocus$1 = function (editor, ref) {
891
891
  const [buffer, setBuffer] = hooks.useState(undefined);
@@ -986,9 +986,9 @@ const CodeEditor$1 = compat.forwardRef((props, ref) => {
986
986
 
987
987
  const noop$5 = () => {};
988
988
 
989
- /**
990
- * Buffer `.focus()` calls while the editor is not initialized.
991
- * Set Focus inside when the editor is ready.
989
+ /**
990
+ * Buffer `.focus()` calls while the editor is not initialized.
991
+ * Set Focus inside when the editor is ready.
992
992
  */
993
993
  const useBufferedFocus = function (editor, ref) {
994
994
  const [buffer, setBuffer] = hooks.useState(undefined);
@@ -1037,10 +1037,10 @@ const CodeEditor = compat.forwardRef((props, ref) => {
1037
1037
  hooks.useEffect(() => {
1038
1038
  let editor;
1039
1039
 
1040
- /* Trigger FEEL toggle when
1041
- *
1042
- * - `backspace` is pressed
1043
- * - AND the cursor is at the beginning of the input
1040
+ /* Trigger FEEL toggle when
1041
+ *
1042
+ * - `backspace` is pressed
1043
+ * - AND the cursor is at the beginning of the input
1044
1044
  */
1045
1045
  const onKeyDown = e => {
1046
1046
  if (e.key !== 'Backspace' || !editor) {
@@ -1131,10 +1131,10 @@ function FeelIndicator(props) {
1131
1131
 
1132
1132
  const noop$4 = () => {};
1133
1133
 
1134
- /**
1135
- * @param {Object} props
1136
- * @param {Object} props.label
1137
- * @param {String} props.feel
1134
+ /**
1135
+ * @param {Object} props
1136
+ * @param {Object} props.label
1137
+ * @param {String} props.feel
1138
1138
  */
1139
1139
  function FeelIcon(props) {
1140
1140
  const {
@@ -1169,22 +1169,22 @@ const FeelPopupContext = preact.createContext({
1169
1169
  source: null
1170
1170
  });
1171
1171
 
1172
- /**
1173
- * Add a dragger that calls back the passed function with
1174
- * { event, delta } on drag.
1175
- *
1176
- * @example
1177
- *
1178
- * function dragMove(event, delta) {
1179
- * // we are dragging (!!)
1180
- * }
1181
- *
1182
- * domElement.addEventListener('dragstart', dragger(dragMove));
1183
- *
1184
- * @param {Function} fn
1185
- * @param {Element} [dragPreview]
1186
- *
1187
- * @return {Function} drag start callback function
1172
+ /**
1173
+ * Add a dragger that calls back the passed function with
1174
+ * { event, delta } on drag.
1175
+ *
1176
+ * @example
1177
+ *
1178
+ * function dragMove(event, delta) {
1179
+ * // we are dragging (!!)
1180
+ * }
1181
+ *
1182
+ * domElement.addEventListener('dragstart', dragger(dragMove));
1183
+ *
1184
+ * @param {Function} fn
1185
+ * @param {Element} [dragPreview]
1186
+ *
1187
+ * @return {Function} drag start callback function
1188
1188
  */
1189
1189
  function createDragger(fn, dragPreview) {
1190
1190
  let self;
@@ -1239,23 +1239,23 @@ function emptyCanvas() {
1239
1239
 
1240
1240
  const noop$3 = () => {};
1241
1241
 
1242
- /**
1243
- * A generic popup component.
1244
- *
1245
- * @param {Object} props
1246
- * @param {HTMLElement} [props.container]
1247
- * @param {string} [props.className]
1248
- * @param {boolean} [props.delayInitialFocus]
1249
- * @param {{x: number, y: number}} [props.position]
1250
- * @param {number} [props.width]
1251
- * @param {number} [props.height]
1252
- * @param {Function} props.onClose
1253
- * @param {Function} [props.onPostActivate]
1254
- * @param {Function} [props.onPostDeactivate]
1255
- * @param {boolean} [props.returnFocus]
1256
- * @param {boolean} [props.closeOnEscape]
1257
- * @param {string} props.title
1258
- * @param {Ref} [ref]
1242
+ /**
1243
+ * A generic popup component.
1244
+ *
1245
+ * @param {Object} props
1246
+ * @param {HTMLElement} [props.container]
1247
+ * @param {string} [props.className]
1248
+ * @param {boolean} [props.delayInitialFocus]
1249
+ * @param {{x: number, y: number}} [props.position]
1250
+ * @param {number} [props.width]
1251
+ * @param {number} [props.height]
1252
+ * @param {Function} props.onClose
1253
+ * @param {Function} [props.onPostActivate]
1254
+ * @param {Function} [props.onPostDeactivate]
1255
+ * @param {boolean} [props.returnFocus]
1256
+ * @param {boolean} [props.closeOnEscape]
1257
+ * @param {string} props.title
1258
+ * @param {Ref} [ref]
1259
1259
  */
1260
1260
  function PopupComponent(props, globalRef) {
1261
1261
  const {
@@ -1474,12 +1474,12 @@ function getContainerNode(node) {
1474
1474
  const FEEL_POPUP_WIDTH = 700;
1475
1475
  const FEEL_POPUP_HEIGHT = 250;
1476
1476
 
1477
- /**
1478
- * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
1479
- * - `feelPopup.open` - fired before the popup is mounted
1480
- * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
1481
- * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
1482
- * - `feelPopup.closed` - fired after the popup is unmounted
1477
+ /**
1478
+ * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
1479
+ * - `feelPopup.open` - fired before the popup is mounted
1480
+ * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
1481
+ * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
1482
+ * - `feelPopup.closed` - fired after the popup is unmounted
1483
1483
  */
1484
1484
  function FEELPopupRoot(props) {
1485
1485
  const {
@@ -1705,11 +1705,11 @@ function autoCompletionOpen(element) {
1705
1705
  return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');
1706
1706
  }
1707
1707
 
1708
- /**
1709
- * This hook behaves like useEffect, but does not trigger on the first render.
1710
- *
1711
- * @param {Function} effect
1712
- * @param {Array} deps
1708
+ /**
1709
+ * This hook behaves like useEffect, but does not trigger on the first render.
1710
+ *
1711
+ * @param {Function} effect
1712
+ * @param {Array} deps
1713
1713
  */
1714
1714
  function useUpdateEffect(effect, deps) {
1715
1715
  const isMounted = hooks.useRef(false);
@@ -1787,19 +1787,19 @@ function ToggleSwitch(props) {
1787
1787
  });
1788
1788
  }
1789
1789
 
1790
- /**
1791
- * @param {Object} props
1792
- * @param {Object} props.element
1793
- * @param {String} props.id
1794
- * @param {String} props.description
1795
- * @param {String} props.label
1796
- * @param {String} props.switcherLabel
1797
- * @param {Boolean} props.inline
1798
- * @param {Function} props.getValue
1799
- * @param {Function} props.setValue
1800
- * @param {Function} props.onFocus
1801
- * @param {Function} props.onBlur
1802
- * @param {string|import('preact').Component} props.tooltip
1790
+ /**
1791
+ * @param {Object} props
1792
+ * @param {Object} props.element
1793
+ * @param {String} props.id
1794
+ * @param {String} props.description
1795
+ * @param {String} props.label
1796
+ * @param {String} props.switcherLabel
1797
+ * @param {Boolean} props.inline
1798
+ * @param {Function} props.getValue
1799
+ * @param {Function} props.setValue
1800
+ * @param {Function} props.onFocus
1801
+ * @param {Function} props.onBlur
1802
+ * @param {string|import('preact').Component} props.tooltip
1803
1803
  */
1804
1804
  function ToggleSwitchEntry(props) {
1805
1805
  const {
@@ -1907,22 +1907,22 @@ function NumberField(props) {
1907
1907
  });
1908
1908
  }
1909
1909
 
1910
- /**
1911
- * @param {Object} props
1912
- * @param {Boolean} props.debounce
1913
- * @param {String} props.description
1914
- * @param {Boolean} props.disabled
1915
- * @param {Object} props.element
1916
- * @param {Function} props.getValue
1917
- * @param {String} props.id
1918
- * @param {String} props.label
1919
- * @param {String} props.max
1920
- * @param {String} props.min
1921
- * @param {Function} props.setValue
1922
- * @param {Function} props.onFocus
1923
- * @param {Function} props.onBlur
1924
- * @param {String} props.step
1925
- * @param {Function} props.validate
1910
+ /**
1911
+ * @param {Object} props
1912
+ * @param {Boolean} props.debounce
1913
+ * @param {String} props.description
1914
+ * @param {Boolean} props.disabled
1915
+ * @param {Object} props.element
1916
+ * @param {Function} props.getValue
1917
+ * @param {String} props.id
1918
+ * @param {String} props.label
1919
+ * @param {String} props.max
1920
+ * @param {String} props.min
1921
+ * @param {Function} props.setValue
1922
+ * @param {Function} props.onFocus
1923
+ * @param {Function} props.onBlur
1924
+ * @param {String} props.step
1925
+ * @param {Function} props.validate
1926
1926
  */
1927
1927
  function NumberFieldEntry(props) {
1928
1928
  const {
@@ -2408,26 +2408,26 @@ const OptionalFeelCheckbox = compat.forwardRef((props, ref) => {
2408
2408
  });
2409
2409
  });
2410
2410
 
2411
- /**
2412
- * @param {Object} props
2413
- * @param {Object} props.element
2414
- * @param {String} props.id
2415
- * @param {String} props.description
2416
- * @param {Boolean} props.debounce
2417
- * @param {Boolean} props.disabled
2418
- * @param {Boolean} props.feel
2419
- * @param {String} props.label
2420
- * @param {Function} props.getValue
2421
- * @param {Function} props.setValue
2422
- * @param {Function} props.tooltipContainer
2423
- * @param {Function} props.validate
2424
- * @param {Function} props.show
2425
- * @param {Function} props.example
2426
- * @param {Function} props.variables
2427
- * @param {Function} props.onFocus
2428
- * @param {Function} props.onBlur
2429
- * @param {string} [props.placeholder]
2430
- * @param {string|import('preact').Component} props.tooltip
2411
+ /**
2412
+ * @param {Object} props
2413
+ * @param {Object} props.element
2414
+ * @param {String} props.id
2415
+ * @param {String} props.description
2416
+ * @param {Boolean} props.debounce
2417
+ * @param {Boolean} props.disabled
2418
+ * @param {Boolean} props.feel
2419
+ * @param {String} props.label
2420
+ * @param {Function} props.getValue
2421
+ * @param {Function} props.setValue
2422
+ * @param {Function} props.tooltipContainer
2423
+ * @param {Function} props.validate
2424
+ * @param {Function} props.show
2425
+ * @param {Function} props.example
2426
+ * @param {Function} props.variables
2427
+ * @param {Function} props.onFocus
2428
+ * @param {Function} props.onBlur
2429
+ * @param {string} [props.placeholder]
2430
+ * @param {string|import('preact').Component} props.tooltip
2431
2431
  */
2432
2432
  function FeelEntry(props) {
2433
2433
  const {
@@ -2514,27 +2514,27 @@ function FeelEntry(props) {
2514
2514
  });
2515
2515
  }
2516
2516
 
2517
- /**
2518
- * @param {Object} props
2519
- * @param {Object} props.element
2520
- * @param {String} props.id
2521
- * @param {String} props.description
2522
- * @param {Boolean} props.debounce
2523
- * @param {Boolean} props.disabled
2524
- * @param {String} props.max
2525
- * @param {String} props.min
2526
- * @param {String} props.step
2527
- * @param {Boolean} props.feel
2528
- * @param {String} props.label
2529
- * @param {Function} props.getValue
2530
- * @param {Function} props.setValue
2531
- * @param {Function} props.tooltipContainer
2532
- * @param {Function} props.validate
2533
- * @param {Function} props.show
2534
- * @param {Function} props.example
2535
- * @param {Function} props.variables
2536
- * @param {Function} props.onFocus
2537
- * @param {Function} props.onBlur
2517
+ /**
2518
+ * @param {Object} props
2519
+ * @param {Object} props.element
2520
+ * @param {String} props.id
2521
+ * @param {String} props.description
2522
+ * @param {Boolean} props.debounce
2523
+ * @param {Boolean} props.disabled
2524
+ * @param {String} props.max
2525
+ * @param {String} props.min
2526
+ * @param {String} props.step
2527
+ * @param {Boolean} props.feel
2528
+ * @param {String} props.label
2529
+ * @param {Function} props.getValue
2530
+ * @param {Function} props.setValue
2531
+ * @param {Function} props.tooltipContainer
2532
+ * @param {Function} props.validate
2533
+ * @param {Function} props.show
2534
+ * @param {Function} props.example
2535
+ * @param {Function} props.variables
2536
+ * @param {Function} props.onFocus
2537
+ * @param {Function} props.onBlur
2538
2538
  */
2539
2539
  function FeelNumberEntry(props) {
2540
2540
  return jsxRuntime.jsx(FeelEntry, {
@@ -2544,25 +2544,25 @@ function FeelNumberEntry(props) {
2544
2544
  });
2545
2545
  }
2546
2546
 
2547
- /**
2548
- * @param {Object} props
2549
- * @param {Object} props.element
2550
- * @param {String} props.id
2551
- * @param {String} props.description
2552
- * @param {Boolean} props.debounce
2553
- * @param {Boolean} props.disabled
2554
- * @param {Boolean} props.feel
2555
- * @param {String} props.label
2556
- * @param {Function} props.getValue
2557
- * @param {Function} props.setValue
2558
- * @param {Function} props.tooltipContainer
2559
- * @param {Function} props.validate
2560
- * @param {Function} props.show
2561
- * @param {Function} props.example
2562
- * @param {Function} props.variables
2563
- * @param {Function} props.onFocus
2564
- * @param {Function} props.onBlur
2565
- * @param {string} [props.placeholder]
2547
+ /**
2548
+ * @param {Object} props
2549
+ * @param {Object} props.element
2550
+ * @param {String} props.id
2551
+ * @param {String} props.description
2552
+ * @param {Boolean} props.debounce
2553
+ * @param {Boolean} props.disabled
2554
+ * @param {Boolean} props.feel
2555
+ * @param {String} props.label
2556
+ * @param {Function} props.getValue
2557
+ * @param {Function} props.setValue
2558
+ * @param {Function} props.tooltipContainer
2559
+ * @param {Function} props.validate
2560
+ * @param {Function} props.show
2561
+ * @param {Function} props.example
2562
+ * @param {Function} props.variables
2563
+ * @param {Function} props.onFocus
2564
+ * @param {Function} props.onBlur
2565
+ * @param {string} [props.placeholder]
2566
2566
  */
2567
2567
  function FeelTextAreaEntry(props) {
2568
2568
  return jsxRuntime.jsx(FeelEntry, {
@@ -2572,24 +2572,24 @@ function FeelTextAreaEntry(props) {
2572
2572
  });
2573
2573
  }
2574
2574
 
2575
- /**
2576
- * @param {Object} props
2577
- * @param {Object} props.element
2578
- * @param {String} props.id
2579
- * @param {String} props.description
2580
- * @param {Boolean} props.debounce
2581
- * @param {Boolean} props.disabled
2582
- * @param {Boolean} props.feel
2583
- * @param {String} props.label
2584
- * @param {Function} props.getValue
2585
- * @param {Function} props.setValue
2586
- * @param {Function} props.tooltipContainer
2587
- * @param {Function} props.validate
2588
- * @param {Function} props.show
2589
- * @param {Function} props.example
2590
- * @param {Function} props.variables
2591
- * @param {Function} props.onFocus
2592
- * @param {Function} props.onBlur
2575
+ /**
2576
+ * @param {Object} props
2577
+ * @param {Object} props.element
2578
+ * @param {String} props.id
2579
+ * @param {String} props.description
2580
+ * @param {Boolean} props.debounce
2581
+ * @param {Boolean} props.disabled
2582
+ * @param {Boolean} props.feel
2583
+ * @param {String} props.label
2584
+ * @param {Function} props.getValue
2585
+ * @param {Function} props.setValue
2586
+ * @param {Function} props.tooltipContainer
2587
+ * @param {Function} props.validate
2588
+ * @param {Function} props.show
2589
+ * @param {Function} props.example
2590
+ * @param {Function} props.variables
2591
+ * @param {Function} props.onFocus
2592
+ * @param {Function} props.onBlur
2593
2593
  */
2594
2594
  function FeelToggleSwitchEntry(props) {
2595
2595
  return jsxRuntime.jsx(FeelEntry, {
@@ -2599,24 +2599,24 @@ function FeelToggleSwitchEntry(props) {
2599
2599
  });
2600
2600
  }
2601
2601
 
2602
- /**
2603
- * @param {Object} props
2604
- * @param {Object} props.element
2605
- * @param {String} props.id
2606
- * @param {String} props.description
2607
- * @param {Boolean} props.debounce
2608
- * @param {Boolean} props.disabled
2609
- * @param {Boolean} props.feel
2610
- * @param {String} props.label
2611
- * @param {Function} props.getValue
2612
- * @param {Function} props.setValue
2613
- * @param {Function} props.tooltipContainer
2614
- * @param {Function} props.validate
2615
- * @param {Function} props.show
2616
- * @param {Function} props.example
2617
- * @param {Function} props.variables
2618
- * @param {Function} props.onFocus
2619
- * @param {Function} props.onBlur
2602
+ /**
2603
+ * @param {Object} props
2604
+ * @param {Object} props.element
2605
+ * @param {String} props.id
2606
+ * @param {String} props.description
2607
+ * @param {Boolean} props.debounce
2608
+ * @param {Boolean} props.disabled
2609
+ * @param {Boolean} props.feel
2610
+ * @param {String} props.label
2611
+ * @param {Function} props.getValue
2612
+ * @param {Function} props.setValue
2613
+ * @param {Function} props.tooltipContainer
2614
+ * @param {Function} props.validate
2615
+ * @param {Function} props.show
2616
+ * @param {Function} props.example
2617
+ * @param {Function} props.variables
2618
+ * @param {Function} props.onFocus
2619
+ * @param {Function} props.onBlur
2620
2620
  */
2621
2621
  function FeelCheckboxEntry(props) {
2622
2622
  return jsxRuntime.jsx(FeelEntry, {
@@ -2626,26 +2626,26 @@ function FeelCheckboxEntry(props) {
2626
2626
  });
2627
2627
  }
2628
2628
 
2629
- /**
2630
- * @param {Object} props
2631
- * @param {Object} props.element
2632
- * @param {String} props.id
2633
- * @param {String} props.description
2634
- * @param {String} props.hostLanguage
2635
- * @param {Boolean} props.singleLine
2636
- * @param {Boolean} props.debounce
2637
- * @param {Boolean} props.disabled
2638
- * @param {Boolean} props.feel
2639
- * @param {String} props.label
2640
- * @param {Function} props.getValue
2641
- * @param {Function} props.setValue
2642
- * @param {Function} props.tooltipContainer
2643
- * @param {Function} props.validate
2644
- * @param {Function} props.show
2645
- * @param {Function} props.example
2646
- * @param {Function} props.variables
2647
- * @param {Function} props.onFocus
2648
- * @param {Function} props.onBlur
2629
+ /**
2630
+ * @param {Object} props
2631
+ * @param {Object} props.element
2632
+ * @param {String} props.id
2633
+ * @param {String} props.description
2634
+ * @param {String} props.hostLanguage
2635
+ * @param {Boolean} props.singleLine
2636
+ * @param {Boolean} props.debounce
2637
+ * @param {Boolean} props.disabled
2638
+ * @param {Boolean} props.feel
2639
+ * @param {String} props.label
2640
+ * @param {Function} props.getValue
2641
+ * @param {Function} props.setValue
2642
+ * @param {Function} props.tooltipContainer
2643
+ * @param {Function} props.validate
2644
+ * @param {Function} props.show
2645
+ * @param {Function} props.example
2646
+ * @param {Function} props.variables
2647
+ * @param {Function} props.onFocus
2648
+ * @param {Function} props.onBlur
2649
2649
  */
2650
2650
  function FeelTemplatingEntry(props) {
2651
2651
  return jsxRuntime.jsx(FeelEntry, {
@@ -2714,85 +2714,85 @@ const DEFAULT_LAYOUT = {};
2714
2714
  const DEFAULT_DESCRIPTION = {};
2715
2715
  const DEFAULT_TOOLTIP = {};
2716
2716
 
2717
- /**
2718
- * @typedef { {
2719
- * component: import('preact').Component,
2720
- * id: String,
2721
- * isEdited?: Function
2722
- * } } EntryDefinition
2723
- *
2724
- * @typedef { {
2725
- * autoFocusEntry: String,
2726
- * autoOpen?: Boolean,
2727
- * entries: Array<EntryDefinition>,
2728
- * id: String,
2729
- * label: String,
2730
- * remove: (event: MouseEvent) => void
2731
- * } } ListItemDefinition
2732
- *
2733
- * @typedef { {
2734
- * add: (event: MouseEvent) => void,
2735
- * component: import('preact').Component,
2736
- * element: Object,
2737
- * id: String,
2738
- * items: Array<ListItemDefinition>,
2739
- * label: String,
2740
- * shouldOpen?: Boolean
2741
- * } } ListGroupDefinition
2742
- *
2743
- * @typedef { {
2744
- * component?: import('preact').Component,
2745
- * entries: Array<EntryDefinition>,
2746
- * id: String,
2747
- * label: String,
2748
- * shouldOpen?: Boolean
2749
- * } } GroupDefinition
2750
- *
2751
- * @typedef { {
2752
- * [id: String]: GetDescriptionFunction
2753
- * } } DescriptionConfig
2754
- *
2755
- * @typedef { {
2756
- * [id: String]: GetTooltipFunction
2757
- * } } TooltipConfig
2758
- *
2759
- * @callback { {
2760
- * @param {string} id
2761
- * @param {Object} element
2762
- * @returns {string}
2763
- * } } GetDescriptionFunction
2764
- *
2765
- * @callback { {
2766
- * @param {string} id
2767
- * @param {Object} element
2768
- * @returns {string}
2769
- * } } GetTooltipFunction
2770
- *
2771
- * @typedef { {
2772
- * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
2773
- * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
2774
- * } } PlaceholderProvider
2775
- *
2717
+ /**
2718
+ * @typedef { {
2719
+ * component: import('preact').Component,
2720
+ * id: String,
2721
+ * isEdited?: Function
2722
+ * } } EntryDefinition
2723
+ *
2724
+ * @typedef { {
2725
+ * autoFocusEntry: String,
2726
+ * autoOpen?: Boolean,
2727
+ * entries: Array<EntryDefinition>,
2728
+ * id: String,
2729
+ * label: String,
2730
+ * remove: (event: MouseEvent) => void
2731
+ * } } ListItemDefinition
2732
+ *
2733
+ * @typedef { {
2734
+ * add: (event: MouseEvent) => void,
2735
+ * component: import('preact').Component,
2736
+ * element: Object,
2737
+ * id: String,
2738
+ * items: Array<ListItemDefinition>,
2739
+ * label: String,
2740
+ * shouldOpen?: Boolean
2741
+ * } } ListGroupDefinition
2742
+ *
2743
+ * @typedef { {
2744
+ * component?: import('preact').Component,
2745
+ * entries: Array<EntryDefinition>,
2746
+ * id: String,
2747
+ * label: String,
2748
+ * shouldOpen?: Boolean
2749
+ * } } GroupDefinition
2750
+ *
2751
+ * @typedef { {
2752
+ * [id: String]: GetDescriptionFunction
2753
+ * } } DescriptionConfig
2754
+ *
2755
+ * @typedef { {
2756
+ * [id: String]: GetTooltipFunction
2757
+ * } } TooltipConfig
2758
+ *
2759
+ * @callback { {
2760
+ * @param {string} id
2761
+ * @param {Object} element
2762
+ * @returns {string}
2763
+ * } } GetDescriptionFunction
2764
+ *
2765
+ * @callback { {
2766
+ * @param {string} id
2767
+ * @param {Object} element
2768
+ * @returns {string}
2769
+ * } } GetTooltipFunction
2770
+ *
2771
+ * @typedef { {
2772
+ * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
2773
+ * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
2774
+ * } } PlaceholderProvider
2775
+ *
2776
2776
  */
2777
2777
 
2778
- /**
2779
- * A basic properties panel component. Describes *how* content will be rendered, accepts
2780
- * data from implementor to describe *what* will be rendered.
2781
- *
2782
- * @param {Object} props
2783
- * @param {Object|Array} props.element
2784
- * @param {import('./components/Header').HeaderProvider} props.headerProvider
2785
- * @param {PlaceholderProvider} [props.placeholderProvider]
2786
- * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
2787
- * @param {Object} [props.layoutConfig]
2788
- * @param {Function} [props.layoutChanged]
2789
- * @param {DescriptionConfig} [props.descriptionConfig]
2790
- * @param {Function} [props.descriptionLoaded]
2791
- * @param {TooltipConfig} [props.tooltipConfig]
2792
- * @param {Function} [props.tooltipLoaded]
2793
- * @param {HTMLElement} [props.feelPopupContainer]
2794
- * @param {Function} [props.getFeelPopupLinks]
2795
- * @param {Object} [props.eventBus]
2778
+ /**
2779
+ * A basic properties panel component. Describes *how* content will be rendered, accepts
2780
+ * data from implementor to describe *what* will be rendered.
2781
+ *
2782
+ * @param {Object} props
2783
+ * @param {Object|Array} props.element
2784
+ * @param {import('./components/Header').HeaderProvider} props.headerProvider
2785
+ * @param {PlaceholderProvider} [props.placeholderProvider]
2786
+ * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
2787
+ * @param {Object} [props.layoutConfig]
2788
+ * @param {Function} [props.layoutChanged]
2789
+ * @param {DescriptionConfig} [props.descriptionConfig]
2790
+ * @param {Function} [props.descriptionLoaded]
2791
+ * @param {TooltipConfig} [props.tooltipConfig]
2792
+ * @param {Function} [props.tooltipLoaded]
2793
+ * @param {HTMLElement} [props.feelPopupContainer]
2794
+ * @param {Function} [props.getFeelPopupLinks]
2795
+ * @param {Object} [props.eventBus]
2796
2796
  */
2797
2797
  function PropertiesPanel(props) {
2798
2798
  const {
@@ -2965,11 +2965,11 @@ function createTooltipContext(overrides = {}) {
2965
2965
 
2966
2966
  // hooks //////////////////
2967
2967
 
2968
- /**
2969
- * This hook behaves like useLayoutEffect, but does not trigger on the first render.
2970
- *
2971
- * @param {Function} effect
2972
- * @param {Array} deps
2968
+ /**
2969
+ * This hook behaves like useLayoutEffect, but does not trigger on the first render.
2970
+ *
2971
+ * @param {Function} effect
2972
+ * @param {Array} deps
2973
2973
  */
2974
2974
  function useUpdateLayoutEffect(effect, deps) {
2975
2975
  const isMounted = hooks.useRef(false);
@@ -3044,15 +3044,15 @@ function MenuItem({
3044
3044
  });
3045
3045
  }
3046
3046
 
3047
- /**
3048
- *
3049
- * @param {Array<null | Element>} ignoredElements
3050
- * @param {Function} callback
3047
+ /**
3048
+ *
3049
+ * @param {Array<null | Element>} ignoredElements
3050
+ * @param {Function} callback
3051
3051
  */
3052
3052
  function useGlobalClick(ignoredElements, callback) {
3053
3053
  hooks.useEffect(() => {
3054
- /**
3055
- * @param {MouseEvent} event
3054
+ /**
3055
+ * @param {MouseEvent} event
3056
3056
  */
3057
3057
  function listener(event) {
3058
3058
  if (ignoredElements.some(element => element && element.contains(event.target))) {
@@ -3085,20 +3085,20 @@ function HeaderButton(props) {
3085
3085
  });
3086
3086
  }
3087
3087
 
3088
- /**
3089
- * @typedef { {
3090
- * [key: string]: string;
3091
- * } } TranslateReplacements
3088
+ /**
3089
+ * @typedef { {
3090
+ * [key: string]: string;
3091
+ * } } TranslateReplacements
3092
3092
  */
3093
3093
 
3094
- /**
3095
- * A simple translation stub to be used for multi-language support.
3096
- * Can be easily replaced with a more sophisticated solution.
3097
- *
3098
- * @param {string} template to interpolate
3099
- * @param {TranslateReplacements} [replacements] a map with substitutes
3100
- *
3101
- * @return {string} the translated string
3094
+ /**
3095
+ * A simple translation stub to be used for multi-language support.
3096
+ * Can be easily replaced with a more sophisticated solution.
3097
+ *
3098
+ * @param {string} template to interpolate
3099
+ * @param {TranslateReplacements} [replacements] a map with substitutes
3100
+ *
3101
+ * @return {string} the translated string
3102
3102
  */
3103
3103
  function translateFallback(template, replacements) {
3104
3104
  replacements = replacements || {};
@@ -3210,8 +3210,8 @@ function ListItem(props) {
3210
3210
 
3211
3211
  const noop$1 = () => {};
3212
3212
 
3213
- /**
3214
- * @param {import('../PropertiesPanel').ListGroupDefinition} props
3213
+ /**
3214
+ * @param {import('../PropertiesPanel').ListGroupDefinition} props
3215
3215
  */
3216
3216
  function ListGroup(props) {
3217
3217
  const {
@@ -3403,18 +3403,18 @@ function Checkbox(props) {
3403
3403
  });
3404
3404
  }
3405
3405
 
3406
- /**
3407
- * @param {Object} props
3408
- * @param {Object} props.element
3409
- * @param {String} props.id
3410
- * @param {String} props.description
3411
- * @param {String} props.label
3412
- * @param {Function} props.getValue
3413
- * @param {Function} props.setValue
3414
- * @param {Function} props.onFocus
3415
- * @param {Function} props.onBlur
3416
- * @param {string|import('preact').Component} props.tooltip
3417
- * @param {boolean} [props.disabled]
3406
+ /**
3407
+ * @param {Object} props
3408
+ * @param {Object} props.element
3409
+ * @param {String} props.id
3410
+ * @param {String} props.description
3411
+ * @param {String} props.label
3412
+ * @param {Function} props.getValue
3413
+ * @param {Function} props.setValue
3414
+ * @param {Function} props.onFocus
3415
+ * @param {Function} props.onBlur
3416
+ * @param {string|import('preact').Component} props.tooltip
3417
+ * @param {boolean} [props.disabled]
3418
3418
  */
3419
3419
  function CheckboxEntry(props) {
3420
3420
  const {
@@ -3466,19 +3466,19 @@ function prefixId$4(id) {
3466
3466
 
3467
3467
  const noop = () => {};
3468
3468
 
3469
- /**
3470
- * @param {Object} props
3471
- * @param {Object} props.element
3472
- * @param {String} props.id
3473
- * @param {String} props.description
3474
- * @param {Boolean} props.debounce
3475
- * @param {Boolean} props.disabled
3476
- * @param {String} props.label
3477
- * @param {Function} props.getValue
3478
- * @param {Function} props.setValue
3479
- * @param {Function} props.tooltipContainer
3480
- * @param {Function} props.validate
3481
- * @param {Function} props.show
3469
+ /**
3470
+ * @param {Object} props
3471
+ * @param {Object} props.element
3472
+ * @param {String} props.id
3473
+ * @param {String} props.description
3474
+ * @param {Boolean} props.debounce
3475
+ * @param {Boolean} props.disabled
3476
+ * @param {String} props.label
3477
+ * @param {Function} props.getValue
3478
+ * @param {Function} props.setValue
3479
+ * @param {Function} props.tooltipContainer
3480
+ * @param {Function} props.validate
3481
+ * @param {Function} props.show
3482
3482
  */
3483
3483
  function TemplatingEntry(props) {
3484
3484
  const {
@@ -3653,8 +3653,8 @@ function List(props) {
3653
3653
  }
3654
3654
  }, [open, hasItems]);
3655
3655
 
3656
- /**
3657
- * @param {MouseEvent} event
3656
+ /**
3657
+ * @param {MouseEvent} event
3658
3658
  */
3659
3659
  function addItem(event) {
3660
3660
  event.stopPropagation();
@@ -3846,20 +3846,20 @@ function Select(props) {
3846
3846
  });
3847
3847
  }
3848
3848
 
3849
- /**
3850
- * @param {object} props
3851
- * @param {object} props.element
3852
- * @param {string} props.id
3853
- * @param {string} [props.description]
3854
- * @param {string} props.label
3855
- * @param {Function} props.getValue
3856
- * @param {Function} props.setValue
3857
- * @param {Function} props.onFocus
3858
- * @param {Function} props.onBlur
3859
- * @param {Function} props.getOptions
3860
- * @param {boolean} [props.disabled]
3861
- * @param {Function} [props.validate]
3862
- * @param {string|import('preact').Component} props.tooltip
3849
+ /**
3850
+ * @param {object} props
3851
+ * @param {object} props.element
3852
+ * @param {string} props.id
3853
+ * @param {string} [props.description]
3854
+ * @param {string} props.label
3855
+ * @param {Function} props.getValue
3856
+ * @param {Function} props.setValue
3857
+ * @param {Function} props.onFocus
3858
+ * @param {Function} props.onBlur
3859
+ * @param {Function} props.getOptions
3860
+ * @param {boolean} [props.disabled]
3861
+ * @param {Function} [props.validate]
3862
+ * @param {string|import('preact').Component} props.tooltip
3863
3863
  */
3864
3864
  function SelectEntry(props) {
3865
3865
  const {
@@ -4206,20 +4206,20 @@ function Textfield(props) {
4206
4206
  });
4207
4207
  }
4208
4208
 
4209
- /**
4210
- * @param {Object} props
4211
- * @param {Object} props.element
4212
- * @param {String} props.id
4213
- * @param {String} props.description
4214
- * @param {Boolean} props.debounce
4215
- * @param {Boolean} props.disabled
4216
- * @param {String} props.label
4217
- * @param {Function} props.getValue
4218
- * @param {Function} props.setValue
4219
- * @param {Function} props.onFocus
4220
- * @param {Function} props.onBlur
4221
- * @param {string|import('preact').Component} props.tooltip
4222
- * @param {Function} props.validate
4209
+ /**
4210
+ * @param {Object} props
4211
+ * @param {Object} props.element
4212
+ * @param {String} props.id
4213
+ * @param {String} props.description
4214
+ * @param {Boolean} props.debounce
4215
+ * @param {Boolean} props.disabled
4216
+ * @param {String} props.label
4217
+ * @param {Function} props.getValue
4218
+ * @param {Function} props.setValue
4219
+ * @param {Function} props.onFocus
4220
+ * @param {Function} props.onBlur
4221
+ * @param {string|import('preact').Component} props.tooltip
4222
+ * @param {Function} props.validate
4223
4223
  */
4224
4224
  function TextfieldEntry(props) {
4225
4225
  const {
@@ -4312,20 +4312,20 @@ class FeelPopupModule {
4312
4312
  this._eventBus = eventBus;
4313
4313
  }
4314
4314
 
4315
- /**
4316
- * Check if the FEEL popup is open.
4317
- * @return {Boolean}
4315
+ /**
4316
+ * Check if the FEEL popup is open.
4317
+ * @return {Boolean}
4318
4318
  */
4319
4319
  isOpen() {
4320
4320
  return this._eventBus.fire('feelPopup._isOpen');
4321
4321
  }
4322
4322
 
4323
- /**
4324
- * Open the FEEL popup.
4325
- *
4326
- * @param {String} entryId
4327
- * @param {Object} popupConfig
4328
- * @param {HTMLElement} sourceElement
4323
+ /**
4324
+ * Open the FEEL popup.
4325
+ *
4326
+ * @param {String} entryId
4327
+ * @param {Object} popupConfig
4328
+ * @param {HTMLElement} sourceElement
4329
4329
  */
4330
4330
  open(entryId, popupConfig, sourceElement) {
4331
4331
  return this._eventBus.fire('feelPopup._open', {
@@ -4335,8 +4335,8 @@ class FeelPopupModule {
4335
4335
  });
4336
4336
  }
4337
4337
 
4338
- /**
4339
- * Close the FEEL popup.
4338
+ /**
4339
+ * Close the FEEL popup.
4340
4340
  */
4341
4341
  close() {
4342
4342
  return this._eventBus.fire('feelPopup._close');