camunda-bpmn-js 5.2.0 → 5.2.2

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.
@@ -27777,7 +27777,7 @@
27777
27777
  return originalEntries;
27778
27778
  }
27779
27779
 
27780
- if (!value) {
27780
+ if (!value.trim()) {
27781
27781
  return originalEntries.filter(({ rank = 0 }) => rank >= 0);
27782
27782
  }
27783
27783
 
@@ -28654,6 +28654,12 @@
28654
28654
  keys
28655
28655
  } = options;
28656
28656
 
28657
+ pattern = pattern.trim().toLowerCase();
28658
+
28659
+ if (!pattern) {
28660
+ throw new Error('<pattern> must not be empty');
28661
+ }
28662
+
28657
28663
  const words = pattern.trim().toLowerCase().split(/\s+/);
28658
28664
 
28659
28665
  return items.flatMap((item) => {
@@ -28781,22 +28787,33 @@
28781
28787
  }
28782
28788
 
28783
28789
  /**
28784
- * Score a token.
28790
+ * Score a token based on its characteristics
28791
+ * and the length of the matched content.
28785
28792
  *
28786
28793
  * @param { Token } token
28787
28794
  *
28788
28795
  * @returns { number }
28789
28796
  */
28790
28797
  function scoreToken(token) {
28798
+ const modifier = Math.log(token.value.length);
28799
+
28791
28800
  if (!token.match) {
28792
- return 0;
28801
+ return -0.07 * modifier;
28793
28802
  }
28794
28803
 
28795
- return token.start
28796
- ? 1.37
28797
- : token.wordStart
28798
- ? 1.13
28799
- : 1;
28804
+ return (
28805
+ token.start
28806
+ ? (
28807
+ token.end
28808
+ ? 131.9
28809
+ : 7.87
28810
+ )
28811
+ : (
28812
+ token.wordStart
28813
+ ? 2.19
28814
+ : 1
28815
+ )
28816
+ ) * modifier;
28800
28817
  }
28801
28818
 
28802
28819
  /**
@@ -28835,7 +28852,12 @@
28835
28852
  const tokens = [];
28836
28853
  const matchedWords = {};
28837
28854
 
28838
- const regexpString = words.map(escapeRegexp).flatMap(str => [ '(?<wordStart>\\b' + str + ')', str ]).join('|');
28855
+ const wordsEscaped = words.map(escapeRegexp);
28856
+
28857
+ const regexpString = [
28858
+ `(?<all>${wordsEscaped.join('\\s+')})`,
28859
+ ...wordsEscaped
28860
+ ].join('|');
28839
28861
 
28840
28862
  const regexp = new RegExp(regexpString, 'ig');
28841
28863
 
@@ -28846,6 +28868,17 @@
28846
28868
 
28847
28869
  const [ value ] = match;
28848
28870
 
28871
+ const startIndex = match.index;
28872
+ const endIndex = match.index + value.length;
28873
+
28874
+ const start = startIndex === 0;
28875
+ const end = endIndex === string.length;
28876
+
28877
+ const all = !!match.groups.all;
28878
+
28879
+ const wordStart = start || /\s/.test(string.charAt(startIndex - 1));
28880
+ const wordEnd = end || /\s/.test(string.charAt(endIndex + 1));
28881
+
28849
28882
  if (match.index > lastIndex) {
28850
28883
 
28851
28884
  // add previous token (NO match)
@@ -28860,11 +28893,18 @@
28860
28893
  value,
28861
28894
  index: match.index,
28862
28895
  match: true,
28863
- wordStart: !!match.groups.wordStart,
28864
- start: match.index === 0
28896
+ wordStart,
28897
+ wordEnd,
28898
+ start,
28899
+ end,
28900
+ all
28865
28901
  });
28866
28902
 
28867
- matchedWords[value.toLowerCase()] = true;
28903
+ const newMatchedWords = all ? words : [ value ];
28904
+
28905
+ for (const word of newMatchedWords) {
28906
+ matchedWords[word.toLowerCase()] = true;
28907
+ }
28868
28908
 
28869
28909
  lastIndex = match.index + value.length;
28870
28910
  }
@@ -65065,7 +65105,7 @@
65065
65105
  this._clearResults();
65066
65106
 
65067
65107
  // do not search on empty query
65068
- if (!pattern || pattern === '') {
65108
+ if (!pattern.trim()) {
65069
65109
  return;
65070
65110
  }
65071
65111
 
@@ -108571,19 +108611,19 @@
108571
108611
  errors: {}
108572
108612
  });
108573
108613
 
108574
- /**
108575
- * @typedef {Function} <propertiesPanel.showEntry> callback
108576
- *
108577
- * @example
108578
- *
108579
- * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
108580
- * // ...
108581
- * });
108582
- *
108583
- * @param {Object} context
108584
- * @param {boolean} [context.focus]
108585
- *
108586
- * @returns void
108614
+ /**
108615
+ * @typedef {Function} <propertiesPanel.showEntry> callback
108616
+ *
108617
+ * @example
108618
+ *
108619
+ * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
108620
+ * // ...
108621
+ * });
108622
+ *
108623
+ * @param {Object} context
108624
+ * @param {boolean} [context.focus]
108625
+ *
108626
+ * @returns void
108587
108627
  */
108588
108628
 
108589
108629
  const EventContext = F$3({
@@ -108602,20 +108642,20 @@
108602
108642
  getTooltipForId: () => {}
108603
108643
  });
108604
108644
 
108605
- /**
108606
- * Accesses the global TooltipContext and returns a tooltip for a given id and element.
108607
- *
108608
- * @example
108609
- * ```jsx
108610
- * function TextField(props) {
108611
- * const tooltip = useTooltipContext('input1', element);
108612
- * }
108613
- * ```
108614
- *
108615
- * @param {string} id
108616
- * @param {object} element
108617
- *
108618
- * @returns {string}
108645
+ /**
108646
+ * Accesses the global TooltipContext and returns a tooltip for a given id and element.
108647
+ *
108648
+ * @example
108649
+ * ```jsx
108650
+ * function TextField(props) {
108651
+ * const tooltip = useTooltipContext('input1', element);
108652
+ * }
108653
+ * ```
108654
+ *
108655
+ * @param {string} id
108656
+ * @param {object} element
108657
+ *
108658
+ * @returns {string}
108619
108659
  */
108620
108660
  function useTooltipContext(id, element) {
108621
108661
  const {
@@ -108768,20 +108808,20 @@
108768
108808
  return `bio-properties-panel-${id}`;
108769
108809
  }
108770
108810
 
108771
- /**
108772
- * Accesses the global DescriptionContext and returns a description for a given id and element.
108773
- *
108774
- * @example
108775
- * ```jsx
108776
- * function TextField(props) {
108777
- * const description = useDescriptionContext('input1', element);
108778
- * }
108779
- * ```
108780
- *
108781
- * @param {string} id
108782
- * @param {object} element
108783
- *
108784
- * @returns {string}
108811
+ /**
108812
+ * Accesses the global DescriptionContext and returns a description for a given id and element.
108813
+ *
108814
+ * @example
108815
+ * ```jsx
108816
+ * function TextField(props) {
108817
+ * const description = useDescriptionContext('input1', element);
108818
+ * }
108819
+ * ```
108820
+ *
108821
+ * @param {string} id
108822
+ * @param {object} element
108823
+ *
108824
+ * @returns {string}
108785
108825
  */
108786
108826
  function useDescriptionContext(id, element) {
108787
108827
  const {
@@ -108803,11 +108843,11 @@
108803
108843
  return errors;
108804
108844
  }
108805
108845
 
108806
- /**
108807
- * Subscribe to an event immediately. Update subscription after inputs changed.
108808
- *
108809
- * @param {string} event
108810
- * @param {Function} callback
108846
+ /**
108847
+ * Subscribe to an event immediately. Update subscription after inputs changed.
108848
+ *
108849
+ * @param {string} event
108850
+ * @param {Function} callback
108811
108851
  */
108812
108852
  function useEvent(event, callback, eventBus) {
108813
108853
  const eventContext = q$1(EventContext);
@@ -108837,20 +108877,20 @@
108837
108877
  }, [callback, event, eventBus]);
108838
108878
  }
108839
108879
 
108840
- /**
108841
- * Creates a state that persists in the global LayoutContext.
108842
- *
108843
- * @example
108844
- * ```jsx
108845
- * function Group(props) {
108846
- * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
108847
- * }
108848
- * ```
108849
- *
108850
- * @param {(string|number)[]} path
108851
- * @param {any} [defaultValue]
108852
- *
108853
- * @returns {[ any, Function ]}
108880
+ /**
108881
+ * Creates a state that persists in the global LayoutContext.
108882
+ *
108883
+ * @example
108884
+ * ```jsx
108885
+ * function Group(props) {
108886
+ * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
108887
+ * }
108888
+ * ```
108889
+ *
108890
+ * @param {(string|number)[]} path
108891
+ * @param {any} [defaultValue]
108892
+ *
108893
+ * @returns {[ any, Function ]}
108854
108894
  */
108855
108895
  function useLayoutState(path, defaultValue) {
108856
108896
  const {
@@ -108864,11 +108904,11 @@
108864
108904
  return [layoutForKey, setState];
108865
108905
  }
108866
108906
 
108867
- /**
108868
- * @pinussilvestrus: we need to introduce our own hook to persist the previous
108869
- * state on updates.
108870
- *
108871
- * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
108907
+ /**
108908
+ * @pinussilvestrus: we need to introduce our own hook to persist the previous
108909
+ * state on updates.
108910
+ *
108911
+ * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
108872
108912
  */
108873
108913
 
108874
108914
  function usePrevious$1(value) {
@@ -108879,12 +108919,12 @@
108879
108919
  return ref.current;
108880
108920
  }
108881
108921
 
108882
- /**
108883
- * Subscribe to `propertiesPanel.showEntry`.
108884
- *
108885
- * @param {string} id
108886
- *
108887
- * @returns {import('preact').Ref}
108922
+ /**
108923
+ * Subscribe to `propertiesPanel.showEntry`.
108924
+ *
108925
+ * @param {string} id
108926
+ *
108927
+ * @returns {import('preact').Ref}
108888
108928
  */
108889
108929
  function useShowEntryEvent(id) {
108890
108930
  const {
@@ -108915,20 +108955,20 @@
108915
108955
  return ref;
108916
108956
  }
108917
108957
 
108918
- /**
108919
- * @callback setSticky
108920
- * @param {boolean} value
108958
+ /**
108959
+ * @callback setSticky
108960
+ * @param {boolean} value
108921
108961
  */
108922
108962
 
108923
- /**
108924
- * Use IntersectionObserver to identify when DOM element is in sticky mode.
108925
- * If sticky is observered setSticky(true) will be called.
108926
- * If sticky mode is left, setSticky(false) will be called.
108927
- *
108928
- *
108929
- * @param {Object} ref
108930
- * @param {string} scrollContainerSelector
108931
- * @param {setSticky} setSticky
108963
+ /**
108964
+ * Use IntersectionObserver to identify when DOM element is in sticky mode.
108965
+ * If sticky is observered setSticky(true) will be called.
108966
+ * If sticky mode is left, setSticky(false) will be called.
108967
+ *
108968
+ *
108969
+ * @param {Object} ref
108970
+ * @param {string} scrollContainerSelector
108971
+ * @param {setSticky} setSticky
108932
108972
  */
108933
108973
  function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {
108934
108974
  const [scrollContainer, setScrollContainer] = h(query$1(scrollContainerSelector));
@@ -108982,19 +109022,19 @@
108982
109022
  }, [ref.current, scrollContainer, setSticky]);
108983
109023
  }
108984
109024
 
108985
- /**
108986
- * Creates a static function reference with changing body.
108987
- * This is necessary when external libraries require a callback function
108988
- * that has references to state variables.
108989
- *
108990
- * Usage:
108991
- * const callback = useStaticCallback((val) => {val === currentState});
108992
- *
108993
- * The `callback` reference is static and can be safely used in external
108994
- * libraries or as a prop that does not cause rerendering of children.
108995
- *
108996
- * @param {Function} callback function with changing reference
108997
- * @returns {Function} static function reference
109025
+ /**
109026
+ * Creates a static function reference with changing body.
109027
+ * This is necessary when external libraries require a callback function
109028
+ * that has references to state variables.
109029
+ *
109030
+ * Usage:
109031
+ * const callback = useStaticCallback((val) => {val === currentState});
109032
+ *
109033
+ * The `callback` reference is static and can be safely used in external
109034
+ * libraries or as a prop that does not cause rerendering of children.
109035
+ *
109036
+ * @param {Function} callback function with changing reference
109037
+ * @returns {Function} static function reference
108998
109038
  */
108999
109039
  function useStaticCallback(callback) {
109000
109040
  const callbackRef = _$1(callback);
@@ -109137,13 +109177,13 @@
109137
109177
  return null;
109138
109178
  }
109139
109179
 
109140
- /**
109141
- * @typedef { {
109142
- * text: (element: object) => string,
109143
- * icon?: (element: Object) => import('preact').Component
109144
- * } } PlaceholderDefinition
109145
- *
109146
- * @param { PlaceholderDefinition } props
109180
+ /**
109181
+ * @typedef { {
109182
+ * text: (element: object) => string,
109183
+ * icon?: (element: Object) => import('preact').Component
109184
+ * } } PlaceholderDefinition
109185
+ *
109186
+ * @param { PlaceholderDefinition } props
109147
109187
  */
109148
109188
  function Placeholder(props) {
109149
109189
  const {
@@ -109182,9 +109222,9 @@
109182
109222
 
109183
109223
  const noop$6 = () => {};
109184
109224
 
109185
- /**
109186
- * Buffer `.focus()` calls while the editor is not initialized.
109187
- * Set Focus inside when the editor is ready.
109225
+ /**
109226
+ * Buffer `.focus()` calls while the editor is not initialized.
109227
+ * Set Focus inside when the editor is ready.
109188
109228
  */
109189
109229
  const useBufferedFocus$1 = function (editor, ref) {
109190
109230
  const [buffer, setBuffer] = h(undefined);
@@ -109285,9 +109325,9 @@
109285
109325
 
109286
109326
  const noop$5 = () => {};
109287
109327
 
109288
- /**
109289
- * Buffer `.focus()` calls while the editor is not initialized.
109290
- * Set Focus inside when the editor is ready.
109328
+ /**
109329
+ * Buffer `.focus()` calls while the editor is not initialized.
109330
+ * Set Focus inside when the editor is ready.
109291
109331
  */
109292
109332
  const useBufferedFocus = function (editor, ref) {
109293
109333
  const [buffer, setBuffer] = h(undefined);
@@ -109336,10 +109376,10 @@
109336
109376
  p$1(() => {
109337
109377
  let editor;
109338
109378
 
109339
- /* Trigger FEEL toggle when
109340
- *
109341
- * - `backspace` is pressed
109342
- * - AND the cursor is at the beginning of the input
109379
+ /* Trigger FEEL toggle when
109380
+ *
109381
+ * - `backspace` is pressed
109382
+ * - AND the cursor is at the beginning of the input
109343
109383
  */
109344
109384
  const onKeyDown = e => {
109345
109385
  if (e.key !== 'Backspace' || !editor) {
@@ -109430,10 +109470,10 @@
109430
109470
 
109431
109471
  const noop$4 = () => {};
109432
109472
 
109433
- /**
109434
- * @param {Object} props
109435
- * @param {Object} props.label
109436
- * @param {String} props.feel
109473
+ /**
109474
+ * @param {Object} props
109475
+ * @param {Object} props.label
109476
+ * @param {String} props.feel
109437
109477
  */
109438
109478
  function FeelIcon(props) {
109439
109479
  const {
@@ -109468,22 +109508,22 @@
109468
109508
  source: null
109469
109509
  });
109470
109510
 
109471
- /**
109472
- * Add a dragger that calls back the passed function with
109473
- * { event, delta } on drag.
109474
- *
109475
- * @example
109476
- *
109477
- * function dragMove(event, delta) {
109478
- * // we are dragging (!!)
109479
- * }
109480
- *
109481
- * domElement.addEventListener('dragstart', dragger(dragMove));
109482
- *
109483
- * @param {Function} fn
109484
- * @param {Element} [dragPreview]
109485
- *
109486
- * @return {Function} drag start callback function
109511
+ /**
109512
+ * Add a dragger that calls back the passed function with
109513
+ * { event, delta } on drag.
109514
+ *
109515
+ * @example
109516
+ *
109517
+ * function dragMove(event, delta) {
109518
+ * // we are dragging (!!)
109519
+ * }
109520
+ *
109521
+ * domElement.addEventListener('dragstart', dragger(dragMove));
109522
+ *
109523
+ * @param {Function} fn
109524
+ * @param {Element} [dragPreview]
109525
+ *
109526
+ * @return {Function} drag start callback function
109487
109527
  */
109488
109528
  function createDragger(fn, dragPreview) {
109489
109529
  let self;
@@ -109538,23 +109578,23 @@
109538
109578
 
109539
109579
  const noop$3 = () => {};
109540
109580
 
109541
- /**
109542
- * A generic popup component.
109543
- *
109544
- * @param {Object} props
109545
- * @param {HTMLElement} [props.container]
109546
- * @param {string} [props.className]
109547
- * @param {boolean} [props.delayInitialFocus]
109548
- * @param {{x: number, y: number}} [props.position]
109549
- * @param {number} [props.width]
109550
- * @param {number} [props.height]
109551
- * @param {Function} props.onClose
109552
- * @param {Function} [props.onPostActivate]
109553
- * @param {Function} [props.onPostDeactivate]
109554
- * @param {boolean} [props.returnFocus]
109555
- * @param {boolean} [props.closeOnEscape]
109556
- * @param {string} props.title
109557
- * @param {Ref} [ref]
109581
+ /**
109582
+ * A generic popup component.
109583
+ *
109584
+ * @param {Object} props
109585
+ * @param {HTMLElement} [props.container]
109586
+ * @param {string} [props.className]
109587
+ * @param {boolean} [props.delayInitialFocus]
109588
+ * @param {{x: number, y: number}} [props.position]
109589
+ * @param {number} [props.width]
109590
+ * @param {number} [props.height]
109591
+ * @param {Function} props.onClose
109592
+ * @param {Function} [props.onPostActivate]
109593
+ * @param {Function} [props.onPostDeactivate]
109594
+ * @param {boolean} [props.returnFocus]
109595
+ * @param {boolean} [props.closeOnEscape]
109596
+ * @param {string} props.title
109597
+ * @param {Ref} [ref]
109558
109598
  */
109559
109599
  function PopupComponent(props, globalRef) {
109560
109600
  const {
@@ -109773,12 +109813,12 @@
109773
109813
  const FEEL_POPUP_WIDTH = 700;
109774
109814
  const FEEL_POPUP_HEIGHT = 250;
109775
109815
 
109776
- /**
109777
- * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
109778
- * - `feelPopup.open` - fired before the popup is mounted
109779
- * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
109780
- * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
109781
- * - `feelPopup.closed` - fired after the popup is unmounted
109816
+ /**
109817
+ * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
109818
+ * - `feelPopup.open` - fired before the popup is mounted
109819
+ * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
109820
+ * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
109821
+ * - `feelPopup.closed` - fired after the popup is unmounted
109782
109822
  */
109783
109823
  function FEELPopupRoot(props) {
109784
109824
  const {
@@ -110004,11 +110044,11 @@
110004
110044
  return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');
110005
110045
  }
110006
110046
 
110007
- /**
110008
- * This hook behaves like useEffect, but does not trigger on the first render.
110009
- *
110010
- * @param {Function} effect
110011
- * @param {Array} deps
110047
+ /**
110048
+ * This hook behaves like useEffect, but does not trigger on the first render.
110049
+ *
110050
+ * @param {Function} effect
110051
+ * @param {Array} deps
110012
110052
  */
110013
110053
  function useUpdateEffect(effect, deps) {
110014
110054
  const isMounted = _$1(false);
@@ -110086,19 +110126,19 @@
110086
110126
  });
110087
110127
  }
110088
110128
 
110089
- /**
110090
- * @param {Object} props
110091
- * @param {Object} props.element
110092
- * @param {String} props.id
110093
- * @param {String} props.description
110094
- * @param {String} props.label
110095
- * @param {String} props.switcherLabel
110096
- * @param {Boolean} props.inline
110097
- * @param {Function} props.getValue
110098
- * @param {Function} props.setValue
110099
- * @param {Function} props.onFocus
110100
- * @param {Function} props.onBlur
110101
- * @param {string|import('preact').Component} props.tooltip
110129
+ /**
110130
+ * @param {Object} props
110131
+ * @param {Object} props.element
110132
+ * @param {String} props.id
110133
+ * @param {String} props.description
110134
+ * @param {String} props.label
110135
+ * @param {String} props.switcherLabel
110136
+ * @param {Boolean} props.inline
110137
+ * @param {Function} props.getValue
110138
+ * @param {Function} props.setValue
110139
+ * @param {Function} props.onFocus
110140
+ * @param {Function} props.onBlur
110141
+ * @param {string|import('preact').Component} props.tooltip
110102
110142
  */
110103
110143
  function ToggleSwitchEntry(props) {
110104
110144
  const {
@@ -110206,22 +110246,22 @@
110206
110246
  });
110207
110247
  }
110208
110248
 
110209
- /**
110210
- * @param {Object} props
110211
- * @param {Boolean} props.debounce
110212
- * @param {String} props.description
110213
- * @param {Boolean} props.disabled
110214
- * @param {Object} props.element
110215
- * @param {Function} props.getValue
110216
- * @param {String} props.id
110217
- * @param {String} props.label
110218
- * @param {String} props.max
110219
- * @param {String} props.min
110220
- * @param {Function} props.setValue
110221
- * @param {Function} props.onFocus
110222
- * @param {Function} props.onBlur
110223
- * @param {String} props.step
110224
- * @param {Function} props.validate
110249
+ /**
110250
+ * @param {Object} props
110251
+ * @param {Boolean} props.debounce
110252
+ * @param {String} props.description
110253
+ * @param {Boolean} props.disabled
110254
+ * @param {Object} props.element
110255
+ * @param {Function} props.getValue
110256
+ * @param {String} props.id
110257
+ * @param {String} props.label
110258
+ * @param {String} props.max
110259
+ * @param {String} props.min
110260
+ * @param {Function} props.setValue
110261
+ * @param {Function} props.onFocus
110262
+ * @param {Function} props.onBlur
110263
+ * @param {String} props.step
110264
+ * @param {Function} props.validate
110225
110265
  */
110226
110266
  function NumberFieldEntry(props) {
110227
110267
  const {
@@ -110707,26 +110747,26 @@
110707
110747
  });
110708
110748
  });
110709
110749
 
110710
- /**
110711
- * @param {Object} props
110712
- * @param {Object} props.element
110713
- * @param {String} props.id
110714
- * @param {String} props.description
110715
- * @param {Boolean} props.debounce
110716
- * @param {Boolean} props.disabled
110717
- * @param {Boolean} props.feel
110718
- * @param {String} props.label
110719
- * @param {Function} props.getValue
110720
- * @param {Function} props.setValue
110721
- * @param {Function} props.tooltipContainer
110722
- * @param {Function} props.validate
110723
- * @param {Function} props.show
110724
- * @param {Function} props.example
110725
- * @param {Function} props.variables
110726
- * @param {Function} props.onFocus
110727
- * @param {Function} props.onBlur
110728
- * @param {string} [props.placeholder]
110729
- * @param {string|import('preact').Component} props.tooltip
110750
+ /**
110751
+ * @param {Object} props
110752
+ * @param {Object} props.element
110753
+ * @param {String} props.id
110754
+ * @param {String} props.description
110755
+ * @param {Boolean} props.debounce
110756
+ * @param {Boolean} props.disabled
110757
+ * @param {Boolean} props.feel
110758
+ * @param {String} props.label
110759
+ * @param {Function} props.getValue
110760
+ * @param {Function} props.setValue
110761
+ * @param {Function} props.tooltipContainer
110762
+ * @param {Function} props.validate
110763
+ * @param {Function} props.show
110764
+ * @param {Function} props.example
110765
+ * @param {Function} props.variables
110766
+ * @param {Function} props.onFocus
110767
+ * @param {Function} props.onBlur
110768
+ * @param {string} [props.placeholder]
110769
+ * @param {string|import('preact').Component} props.tooltip
110730
110770
  */
110731
110771
  function FeelEntry$2(props) {
110732
110772
  const {
@@ -110813,27 +110853,27 @@
110813
110853
  });
110814
110854
  }
110815
110855
 
110816
- /**
110817
- * @param {Object} props
110818
- * @param {Object} props.element
110819
- * @param {String} props.id
110820
- * @param {String} props.description
110821
- * @param {Boolean} props.debounce
110822
- * @param {Boolean} props.disabled
110823
- * @param {String} props.max
110824
- * @param {String} props.min
110825
- * @param {String} props.step
110826
- * @param {Boolean} props.feel
110827
- * @param {String} props.label
110828
- * @param {Function} props.getValue
110829
- * @param {Function} props.setValue
110830
- * @param {Function} props.tooltipContainer
110831
- * @param {Function} props.validate
110832
- * @param {Function} props.show
110833
- * @param {Function} props.example
110834
- * @param {Function} props.variables
110835
- * @param {Function} props.onFocus
110836
- * @param {Function} props.onBlur
110856
+ /**
110857
+ * @param {Object} props
110858
+ * @param {Object} props.element
110859
+ * @param {String} props.id
110860
+ * @param {String} props.description
110861
+ * @param {Boolean} props.debounce
110862
+ * @param {Boolean} props.disabled
110863
+ * @param {String} props.max
110864
+ * @param {String} props.min
110865
+ * @param {String} props.step
110866
+ * @param {Boolean} props.feel
110867
+ * @param {String} props.label
110868
+ * @param {Function} props.getValue
110869
+ * @param {Function} props.setValue
110870
+ * @param {Function} props.tooltipContainer
110871
+ * @param {Function} props.validate
110872
+ * @param {Function} props.show
110873
+ * @param {Function} props.example
110874
+ * @param {Function} props.variables
110875
+ * @param {Function} props.onFocus
110876
+ * @param {Function} props.onBlur
110837
110877
  */
110838
110878
  function FeelNumberEntry(props) {
110839
110879
  return u(FeelEntry$2, {
@@ -110843,25 +110883,25 @@
110843
110883
  });
110844
110884
  }
110845
110885
 
110846
- /**
110847
- * @param {Object} props
110848
- * @param {Object} props.element
110849
- * @param {String} props.id
110850
- * @param {String} props.description
110851
- * @param {Boolean} props.debounce
110852
- * @param {Boolean} props.disabled
110853
- * @param {Boolean} props.feel
110854
- * @param {String} props.label
110855
- * @param {Function} props.getValue
110856
- * @param {Function} props.setValue
110857
- * @param {Function} props.tooltipContainer
110858
- * @param {Function} props.validate
110859
- * @param {Function} props.show
110860
- * @param {Function} props.example
110861
- * @param {Function} props.variables
110862
- * @param {Function} props.onFocus
110863
- * @param {Function} props.onBlur
110864
- * @param {string} [props.placeholder]
110886
+ /**
110887
+ * @param {Object} props
110888
+ * @param {Object} props.element
110889
+ * @param {String} props.id
110890
+ * @param {String} props.description
110891
+ * @param {Boolean} props.debounce
110892
+ * @param {Boolean} props.disabled
110893
+ * @param {Boolean} props.feel
110894
+ * @param {String} props.label
110895
+ * @param {Function} props.getValue
110896
+ * @param {Function} props.setValue
110897
+ * @param {Function} props.tooltipContainer
110898
+ * @param {Function} props.validate
110899
+ * @param {Function} props.show
110900
+ * @param {Function} props.example
110901
+ * @param {Function} props.variables
110902
+ * @param {Function} props.onFocus
110903
+ * @param {Function} props.onBlur
110904
+ * @param {string} [props.placeholder]
110865
110905
  */
110866
110906
  function FeelTextAreaEntry$1(props) {
110867
110907
  return u(FeelEntry$2, {
@@ -110871,24 +110911,24 @@
110871
110911
  });
110872
110912
  }
110873
110913
 
110874
- /**
110875
- * @param {Object} props
110876
- * @param {Object} props.element
110877
- * @param {String} props.id
110878
- * @param {String} props.description
110879
- * @param {Boolean} props.debounce
110880
- * @param {Boolean} props.disabled
110881
- * @param {Boolean} props.feel
110882
- * @param {String} props.label
110883
- * @param {Function} props.getValue
110884
- * @param {Function} props.setValue
110885
- * @param {Function} props.tooltipContainer
110886
- * @param {Function} props.validate
110887
- * @param {Function} props.show
110888
- * @param {Function} props.example
110889
- * @param {Function} props.variables
110890
- * @param {Function} props.onFocus
110891
- * @param {Function} props.onBlur
110914
+ /**
110915
+ * @param {Object} props
110916
+ * @param {Object} props.element
110917
+ * @param {String} props.id
110918
+ * @param {String} props.description
110919
+ * @param {Boolean} props.debounce
110920
+ * @param {Boolean} props.disabled
110921
+ * @param {Boolean} props.feel
110922
+ * @param {String} props.label
110923
+ * @param {Function} props.getValue
110924
+ * @param {Function} props.setValue
110925
+ * @param {Function} props.tooltipContainer
110926
+ * @param {Function} props.validate
110927
+ * @param {Function} props.show
110928
+ * @param {Function} props.example
110929
+ * @param {Function} props.variables
110930
+ * @param {Function} props.onFocus
110931
+ * @param {Function} props.onBlur
110892
110932
  */
110893
110933
  function FeelCheckboxEntry(props) {
110894
110934
  return u(FeelEntry$2, {
@@ -110957,85 +110997,85 @@
110957
110997
  const DEFAULT_DESCRIPTION = {};
110958
110998
  const DEFAULT_TOOLTIP = {};
110959
110999
 
110960
- /**
110961
- * @typedef { {
110962
- * component: import('preact').Component,
110963
- * id: String,
110964
- * isEdited?: Function
110965
- * } } EntryDefinition
110966
- *
110967
- * @typedef { {
110968
- * autoFocusEntry: String,
110969
- * autoOpen?: Boolean,
110970
- * entries: Array<EntryDefinition>,
110971
- * id: String,
110972
- * label: String,
110973
- * remove: (event: MouseEvent) => void
110974
- * } } ListItemDefinition
110975
- *
110976
- * @typedef { {
110977
- * add: (event: MouseEvent) => void,
110978
- * component: import('preact').Component,
110979
- * element: Object,
110980
- * id: String,
110981
- * items: Array<ListItemDefinition>,
110982
- * label: String,
110983
- * shouldOpen?: Boolean
110984
- * } } ListGroupDefinition
110985
- *
110986
- * @typedef { {
110987
- * component?: import('preact').Component,
110988
- * entries: Array<EntryDefinition>,
110989
- * id: String,
110990
- * label: String,
110991
- * shouldOpen?: Boolean
110992
- * } } GroupDefinition
110993
- *
110994
- * @typedef { {
110995
- * [id: String]: GetDescriptionFunction
110996
- * } } DescriptionConfig
110997
- *
110998
- * @typedef { {
110999
- * [id: String]: GetTooltipFunction
111000
- * } } TooltipConfig
111001
- *
111002
- * @callback { {
111003
- * @param {string} id
111004
- * @param {Object} element
111005
- * @returns {string}
111006
- * } } GetDescriptionFunction
111007
- *
111008
- * @callback { {
111009
- * @param {string} id
111010
- * @param {Object} element
111011
- * @returns {string}
111012
- * } } GetTooltipFunction
111013
- *
111014
- * @typedef { {
111015
- * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
111016
- * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
111017
- * } } PlaceholderProvider
111018
- *
111000
+ /**
111001
+ * @typedef { {
111002
+ * component: import('preact').Component,
111003
+ * id: String,
111004
+ * isEdited?: Function
111005
+ * } } EntryDefinition
111006
+ *
111007
+ * @typedef { {
111008
+ * autoFocusEntry: String,
111009
+ * autoOpen?: Boolean,
111010
+ * entries: Array<EntryDefinition>,
111011
+ * id: String,
111012
+ * label: String,
111013
+ * remove: (event: MouseEvent) => void
111014
+ * } } ListItemDefinition
111015
+ *
111016
+ * @typedef { {
111017
+ * add: (event: MouseEvent) => void,
111018
+ * component: import('preact').Component,
111019
+ * element: Object,
111020
+ * id: String,
111021
+ * items: Array<ListItemDefinition>,
111022
+ * label: String,
111023
+ * shouldOpen?: Boolean
111024
+ * } } ListGroupDefinition
111025
+ *
111026
+ * @typedef { {
111027
+ * component?: import('preact').Component,
111028
+ * entries: Array<EntryDefinition>,
111029
+ * id: String,
111030
+ * label: String,
111031
+ * shouldOpen?: Boolean
111032
+ * } } GroupDefinition
111033
+ *
111034
+ * @typedef { {
111035
+ * [id: String]: GetDescriptionFunction
111036
+ * } } DescriptionConfig
111037
+ *
111038
+ * @typedef { {
111039
+ * [id: String]: GetTooltipFunction
111040
+ * } } TooltipConfig
111041
+ *
111042
+ * @callback { {
111043
+ * @param {string} id
111044
+ * @param {Object} element
111045
+ * @returns {string}
111046
+ * } } GetDescriptionFunction
111047
+ *
111048
+ * @callback { {
111049
+ * @param {string} id
111050
+ * @param {Object} element
111051
+ * @returns {string}
111052
+ * } } GetTooltipFunction
111053
+ *
111054
+ * @typedef { {
111055
+ * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
111056
+ * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
111057
+ * } } PlaceholderProvider
111058
+ *
111019
111059
  */
111020
111060
 
111021
- /**
111022
- * A basic properties panel component. Describes *how* content will be rendered, accepts
111023
- * data from implementor to describe *what* will be rendered.
111024
- *
111025
- * @param {Object} props
111026
- * @param {Object|Array} props.element
111027
- * @param {import('./components/Header').HeaderProvider} props.headerProvider
111028
- * @param {PlaceholderProvider} [props.placeholderProvider]
111029
- * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
111030
- * @param {Object} [props.layoutConfig]
111031
- * @param {Function} [props.layoutChanged]
111032
- * @param {DescriptionConfig} [props.descriptionConfig]
111033
- * @param {Function} [props.descriptionLoaded]
111034
- * @param {TooltipConfig} [props.tooltipConfig]
111035
- * @param {Function} [props.tooltipLoaded]
111036
- * @param {HTMLElement} [props.feelPopupContainer]
111037
- * @param {Function} [props.getFeelPopupLinks]
111038
- * @param {Object} [props.eventBus]
111061
+ /**
111062
+ * A basic properties panel component. Describes *how* content will be rendered, accepts
111063
+ * data from implementor to describe *what* will be rendered.
111064
+ *
111065
+ * @param {Object} props
111066
+ * @param {Object|Array} props.element
111067
+ * @param {import('./components/Header').HeaderProvider} props.headerProvider
111068
+ * @param {PlaceholderProvider} [props.placeholderProvider]
111069
+ * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
111070
+ * @param {Object} [props.layoutConfig]
111071
+ * @param {Function} [props.layoutChanged]
111072
+ * @param {DescriptionConfig} [props.descriptionConfig]
111073
+ * @param {Function} [props.descriptionLoaded]
111074
+ * @param {TooltipConfig} [props.tooltipConfig]
111075
+ * @param {Function} [props.tooltipLoaded]
111076
+ * @param {HTMLElement} [props.feelPopupContainer]
111077
+ * @param {Function} [props.getFeelPopupLinks]
111078
+ * @param {Object} [props.eventBus]
111039
111079
  */
111040
111080
  function PropertiesPanel(props) {
111041
111081
  const {
@@ -111208,11 +111248,11 @@
111208
111248
 
111209
111249
  // hooks //////////////////
111210
111250
 
111211
- /**
111212
- * This hook behaves like useLayoutEffect, but does not trigger on the first render.
111213
- *
111214
- * @param {Function} effect
111215
- * @param {Array} deps
111251
+ /**
111252
+ * This hook behaves like useLayoutEffect, but does not trigger on the first render.
111253
+ *
111254
+ * @param {Function} effect
111255
+ * @param {Array} deps
111216
111256
  */
111217
111257
  function useUpdateLayoutEffect(effect, deps) {
111218
111258
  const isMounted = _$1(false);
@@ -111287,15 +111327,15 @@
111287
111327
  });
111288
111328
  }
111289
111329
 
111290
- /**
111291
- *
111292
- * @param {Array<null | Element>} ignoredElements
111293
- * @param {Function} callback
111330
+ /**
111331
+ *
111332
+ * @param {Array<null | Element>} ignoredElements
111333
+ * @param {Function} callback
111294
111334
  */
111295
111335
  function useGlobalClick(ignoredElements, callback) {
111296
111336
  p$1(() => {
111297
- /**
111298
- * @param {MouseEvent} event
111337
+ /**
111338
+ * @param {MouseEvent} event
111299
111339
  */
111300
111340
  function listener(event) {
111301
111341
  if (ignoredElements.some(element => element && element.contains(event.target))) {
@@ -111328,20 +111368,20 @@
111328
111368
  });
111329
111369
  }
111330
111370
 
111331
- /**
111332
- * @typedef { {
111333
- * [key: string]: string;
111334
- * } } TranslateReplacements
111371
+ /**
111372
+ * @typedef { {
111373
+ * [key: string]: string;
111374
+ * } } TranslateReplacements
111335
111375
  */
111336
111376
 
111337
- /**
111338
- * A simple translation stub to be used for multi-language support.
111339
- * Can be easily replaced with a more sophisticated solution.
111340
- *
111341
- * @param {string} template to interpolate
111342
- * @param {TranslateReplacements} [replacements] a map with substitutes
111343
- *
111344
- * @return {string} the translated string
111377
+ /**
111378
+ * A simple translation stub to be used for multi-language support.
111379
+ * Can be easily replaced with a more sophisticated solution.
111380
+ *
111381
+ * @param {string} template to interpolate
111382
+ * @param {TranslateReplacements} [replacements] a map with substitutes
111383
+ *
111384
+ * @return {string} the translated string
111345
111385
  */
111346
111386
  function translateFallback(template, replacements) {
111347
111387
  replacements = replacements || {};
@@ -111453,8 +111493,8 @@
111453
111493
 
111454
111494
  const noop$1$1 = () => {};
111455
111495
 
111456
- /**
111457
- * @param {import('../PropertiesPanel').ListGroupDefinition} props
111496
+ /**
111497
+ * @param {import('../PropertiesPanel').ListGroupDefinition} props
111458
111498
  */
111459
111499
  function ListGroup(props) {
111460
111500
  const {
@@ -111646,18 +111686,18 @@
111646
111686
  });
111647
111687
  }
111648
111688
 
111649
- /**
111650
- * @param {Object} props
111651
- * @param {Object} props.element
111652
- * @param {String} props.id
111653
- * @param {String} props.description
111654
- * @param {String} props.label
111655
- * @param {Function} props.getValue
111656
- * @param {Function} props.setValue
111657
- * @param {Function} props.onFocus
111658
- * @param {Function} props.onBlur
111659
- * @param {string|import('preact').Component} props.tooltip
111660
- * @param {boolean} [props.disabled]
111689
+ /**
111690
+ * @param {Object} props
111691
+ * @param {Object} props.element
111692
+ * @param {String} props.id
111693
+ * @param {String} props.description
111694
+ * @param {String} props.label
111695
+ * @param {Function} props.getValue
111696
+ * @param {Function} props.setValue
111697
+ * @param {Function} props.onFocus
111698
+ * @param {Function} props.onBlur
111699
+ * @param {string|import('preact').Component} props.tooltip
111700
+ * @param {boolean} [props.disabled]
111661
111701
  */
111662
111702
  function CheckboxEntry(props) {
111663
111703
  const {
@@ -111778,20 +111818,20 @@
111778
111818
  });
111779
111819
  }
111780
111820
 
111781
- /**
111782
- * @param {object} props
111783
- * @param {object} props.element
111784
- * @param {string} props.id
111785
- * @param {string} [props.description]
111786
- * @param {string} props.label
111787
- * @param {Function} props.getValue
111788
- * @param {Function} props.setValue
111789
- * @param {Function} props.onFocus
111790
- * @param {Function} props.onBlur
111791
- * @param {Function} props.getOptions
111792
- * @param {boolean} [props.disabled]
111793
- * @param {Function} [props.validate]
111794
- * @param {string|import('preact').Component} props.tooltip
111821
+ /**
111822
+ * @param {object} props
111823
+ * @param {object} props.element
111824
+ * @param {string} props.id
111825
+ * @param {string} [props.description]
111826
+ * @param {string} props.label
111827
+ * @param {Function} props.getValue
111828
+ * @param {Function} props.setValue
111829
+ * @param {Function} props.onFocus
111830
+ * @param {Function} props.onBlur
111831
+ * @param {Function} props.getOptions
111832
+ * @param {boolean} [props.disabled]
111833
+ * @param {Function} [props.validate]
111834
+ * @param {string|import('preact').Component} props.tooltip
111795
111835
  */
111796
111836
  function SelectEntry(props) {
111797
111837
  const {
@@ -112084,20 +112124,20 @@
112084
112124
  });
112085
112125
  }
112086
112126
 
112087
- /**
112088
- * @param {Object} props
112089
- * @param {Object} props.element
112090
- * @param {String} props.id
112091
- * @param {String} props.description
112092
- * @param {Boolean} props.debounce
112093
- * @param {Boolean} props.disabled
112094
- * @param {String} props.label
112095
- * @param {Function} props.getValue
112096
- * @param {Function} props.setValue
112097
- * @param {Function} props.onFocus
112098
- * @param {Function} props.onBlur
112099
- * @param {string|import('preact').Component} props.tooltip
112100
- * @param {Function} props.validate
112127
+ /**
112128
+ * @param {Object} props
112129
+ * @param {Object} props.element
112130
+ * @param {String} props.id
112131
+ * @param {String} props.description
112132
+ * @param {Boolean} props.debounce
112133
+ * @param {Boolean} props.disabled
112134
+ * @param {String} props.label
112135
+ * @param {Function} props.getValue
112136
+ * @param {Function} props.setValue
112137
+ * @param {Function} props.onFocus
112138
+ * @param {Function} props.onBlur
112139
+ * @param {string|import('preact').Component} props.tooltip
112140
+ * @param {Function} props.validate
112101
112141
  */
112102
112142
  function TextfieldEntry(props) {
112103
112143
  const {
@@ -112190,20 +112230,20 @@
112190
112230
  this._eventBus = eventBus;
112191
112231
  }
112192
112232
 
112193
- /**
112194
- * Check if the FEEL popup is open.
112195
- * @return {Boolean}
112233
+ /**
112234
+ * Check if the FEEL popup is open.
112235
+ * @return {Boolean}
112196
112236
  */
112197
112237
  isOpen() {
112198
112238
  return this._eventBus.fire('feelPopup._isOpen');
112199
112239
  }
112200
112240
 
112201
- /**
112202
- * Open the FEEL popup.
112203
- *
112204
- * @param {String} entryId
112205
- * @param {Object} popupConfig
112206
- * @param {HTMLElement} sourceElement
112241
+ /**
112242
+ * Open the FEEL popup.
112243
+ *
112244
+ * @param {String} entryId
112245
+ * @param {Object} popupConfig
112246
+ * @param {HTMLElement} sourceElement
112207
112247
  */
112208
112248
  open(entryId, popupConfig, sourceElement) {
112209
112249
  return this._eventBus.fire('feelPopup._open', {
@@ -112213,8 +112253,8 @@
112213
112253
  });
112214
112254
  }
112215
112255
 
112216
- /**
112217
- * Close the FEEL popup.
112256
+ /**
112257
+ * Close the FEEL popup.
112218
112258
  */
112219
112259
  close() {
112220
112260
  return this._eventBus.fire('feelPopup._close');