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
 
@@ -98667,19 +98707,19 @@
98667
98707
  errors: {}
98668
98708
  });
98669
98709
 
98670
- /**
98671
- * @typedef {Function} <propertiesPanel.showEntry> callback
98672
- *
98673
- * @example
98674
- *
98675
- * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
98676
- * // ...
98677
- * });
98678
- *
98679
- * @param {Object} context
98680
- * @param {boolean} [context.focus]
98681
- *
98682
- * @returns void
98710
+ /**
98711
+ * @typedef {Function} <propertiesPanel.showEntry> callback
98712
+ *
98713
+ * @example
98714
+ *
98715
+ * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
98716
+ * // ...
98717
+ * });
98718
+ *
98719
+ * @param {Object} context
98720
+ * @param {boolean} [context.focus]
98721
+ *
98722
+ * @returns void
98683
98723
  */
98684
98724
 
98685
98725
  const EventContext = F$2({
@@ -98698,20 +98738,20 @@
98698
98738
  getTooltipForId: () => {}
98699
98739
  });
98700
98740
 
98701
- /**
98702
- * Accesses the global TooltipContext and returns a tooltip for a given id and element.
98703
- *
98704
- * @example
98705
- * ```jsx
98706
- * function TextField(props) {
98707
- * const tooltip = useTooltipContext('input1', element);
98708
- * }
98709
- * ```
98710
- *
98711
- * @param {string} id
98712
- * @param {object} element
98713
- *
98714
- * @returns {string}
98741
+ /**
98742
+ * Accesses the global TooltipContext and returns a tooltip for a given id and element.
98743
+ *
98744
+ * @example
98745
+ * ```jsx
98746
+ * function TextField(props) {
98747
+ * const tooltip = useTooltipContext('input1', element);
98748
+ * }
98749
+ * ```
98750
+ *
98751
+ * @param {string} id
98752
+ * @param {object} element
98753
+ *
98754
+ * @returns {string}
98715
98755
  */
98716
98756
  function useTooltipContext(id, element) {
98717
98757
  const {
@@ -98864,20 +98904,20 @@
98864
98904
  return `bio-properties-panel-${id}`;
98865
98905
  }
98866
98906
 
98867
- /**
98868
- * Accesses the global DescriptionContext and returns a description for a given id and element.
98869
- *
98870
- * @example
98871
- * ```jsx
98872
- * function TextField(props) {
98873
- * const description = useDescriptionContext('input1', element);
98874
- * }
98875
- * ```
98876
- *
98877
- * @param {string} id
98878
- * @param {object} element
98879
- *
98880
- * @returns {string}
98907
+ /**
98908
+ * Accesses the global DescriptionContext and returns a description for a given id and element.
98909
+ *
98910
+ * @example
98911
+ * ```jsx
98912
+ * function TextField(props) {
98913
+ * const description = useDescriptionContext('input1', element);
98914
+ * }
98915
+ * ```
98916
+ *
98917
+ * @param {string} id
98918
+ * @param {object} element
98919
+ *
98920
+ * @returns {string}
98881
98921
  */
98882
98922
  function useDescriptionContext(id, element) {
98883
98923
  const {
@@ -98899,11 +98939,11 @@
98899
98939
  return errors;
98900
98940
  }
98901
98941
 
98902
- /**
98903
- * Subscribe to an event immediately. Update subscription after inputs changed.
98904
- *
98905
- * @param {string} event
98906
- * @param {Function} callback
98942
+ /**
98943
+ * Subscribe to an event immediately. Update subscription after inputs changed.
98944
+ *
98945
+ * @param {string} event
98946
+ * @param {Function} callback
98907
98947
  */
98908
98948
  function useEvent(event, callback, eventBus) {
98909
98949
  const eventContext = q$1(EventContext);
@@ -98935,24 +98975,24 @@
98935
98975
 
98936
98976
  const KEY_LENGTH = 6;
98937
98977
 
98938
- /**
98939
- * Create a persistent key factory for plain objects without id.
98940
- *
98941
- * @example
98942
- * ```jsx
98943
- * function List({ objects }) {
98944
- * const getKey = useKeyFactory();
98945
- * return (<ol>{
98946
- * objects.map(obj => {
98947
- * const key = getKey(obj);
98948
- * return <li key={key}>obj.name</li>
98949
- * })
98950
- * }</ol>);
98951
- * }
98952
- * ```
98953
- *
98954
- * @param {any[]} dependencies
98955
- * @returns {(element: object) => string}
98978
+ /**
98979
+ * Create a persistent key factory for plain objects without id.
98980
+ *
98981
+ * @example
98982
+ * ```jsx
98983
+ * function List({ objects }) {
98984
+ * const getKey = useKeyFactory();
98985
+ * return (<ol>{
98986
+ * objects.map(obj => {
98987
+ * const key = getKey(obj);
98988
+ * return <li key={key}>obj.name</li>
98989
+ * })
98990
+ * }</ol>);
98991
+ * }
98992
+ * ```
98993
+ *
98994
+ * @param {any[]} dependencies
98995
+ * @returns {(element: object) => string}
98956
98996
  */
98957
98997
  function useKeyFactory(dependencies = []) {
98958
98998
  const map = F$1(() => new Map(), dependencies);
@@ -98967,20 +99007,20 @@
98967
99007
  return getKey;
98968
99008
  }
98969
99009
 
98970
- /**
98971
- * Creates a state that persists in the global LayoutContext.
98972
- *
98973
- * @example
98974
- * ```jsx
98975
- * function Group(props) {
98976
- * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
98977
- * }
98978
- * ```
98979
- *
98980
- * @param {(string|number)[]} path
98981
- * @param {any} [defaultValue]
98982
- *
98983
- * @returns {[ any, Function ]}
99010
+ /**
99011
+ * Creates a state that persists in the global LayoutContext.
99012
+ *
99013
+ * @example
99014
+ * ```jsx
99015
+ * function Group(props) {
99016
+ * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
99017
+ * }
99018
+ * ```
99019
+ *
99020
+ * @param {(string|number)[]} path
99021
+ * @param {any} [defaultValue]
99022
+ *
99023
+ * @returns {[ any, Function ]}
98984
99024
  */
98985
99025
  function useLayoutState(path, defaultValue) {
98986
99026
  const {
@@ -98994,11 +99034,11 @@
98994
99034
  return [layoutForKey, setState];
98995
99035
  }
98996
99036
 
98997
- /**
98998
- * @pinussilvestrus: we need to introduce our own hook to persist the previous
98999
- * state on updates.
99000
- *
99001
- * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
99037
+ /**
99038
+ * @pinussilvestrus: we need to introduce our own hook to persist the previous
99039
+ * state on updates.
99040
+ *
99041
+ * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
99002
99042
  */
99003
99043
 
99004
99044
  function usePrevious(value) {
@@ -99009,12 +99049,12 @@
99009
99049
  return ref.current;
99010
99050
  }
99011
99051
 
99012
- /**
99013
- * Subscribe to `propertiesPanel.showEntry`.
99014
- *
99015
- * @param {string} id
99016
- *
99017
- * @returns {import('preact').Ref}
99052
+ /**
99053
+ * Subscribe to `propertiesPanel.showEntry`.
99054
+ *
99055
+ * @param {string} id
99056
+ *
99057
+ * @returns {import('preact').Ref}
99018
99058
  */
99019
99059
  function useShowEntryEvent(id) {
99020
99060
  const {
@@ -99045,20 +99085,20 @@
99045
99085
  return ref;
99046
99086
  }
99047
99087
 
99048
- /**
99049
- * @callback setSticky
99050
- * @param {boolean} value
99088
+ /**
99089
+ * @callback setSticky
99090
+ * @param {boolean} value
99051
99091
  */
99052
99092
 
99053
- /**
99054
- * Use IntersectionObserver to identify when DOM element is in sticky mode.
99055
- * If sticky is observered setSticky(true) will be called.
99056
- * If sticky mode is left, setSticky(false) will be called.
99057
- *
99058
- *
99059
- * @param {Object} ref
99060
- * @param {string} scrollContainerSelector
99061
- * @param {setSticky} setSticky
99093
+ /**
99094
+ * Use IntersectionObserver to identify when DOM element is in sticky mode.
99095
+ * If sticky is observered setSticky(true) will be called.
99096
+ * If sticky mode is left, setSticky(false) will be called.
99097
+ *
99098
+ *
99099
+ * @param {Object} ref
99100
+ * @param {string} scrollContainerSelector
99101
+ * @param {setSticky} setSticky
99062
99102
  */
99063
99103
  function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {
99064
99104
  const [scrollContainer, setScrollContainer] = h(query$1(scrollContainerSelector));
@@ -99112,19 +99152,19 @@
99112
99152
  }, [ref.current, scrollContainer, setSticky]);
99113
99153
  }
99114
99154
 
99115
- /**
99116
- * Creates a static function reference with changing body.
99117
- * This is necessary when external libraries require a callback function
99118
- * that has references to state variables.
99119
- *
99120
- * Usage:
99121
- * const callback = useStaticCallback((val) => {val === currentState});
99122
- *
99123
- * The `callback` reference is static and can be safely used in external
99124
- * libraries or as a prop that does not cause rerendering of children.
99125
- *
99126
- * @param {Function} callback function with changing reference
99127
- * @returns {Function} static function reference
99155
+ /**
99156
+ * Creates a static function reference with changing body.
99157
+ * This is necessary when external libraries require a callback function
99158
+ * that has references to state variables.
99159
+ *
99160
+ * Usage:
99161
+ * const callback = useStaticCallback((val) => {val === currentState});
99162
+ *
99163
+ * The `callback` reference is static and can be safely used in external
99164
+ * libraries or as a prop that does not cause rerendering of children.
99165
+ *
99166
+ * @param {Function} callback function with changing reference
99167
+ * @returns {Function} static function reference
99128
99168
  */
99129
99169
  function useStaticCallback(callback) {
99130
99170
  const callbackRef = _(callback);
@@ -99267,13 +99307,13 @@
99267
99307
  return null;
99268
99308
  }
99269
99309
 
99270
- /**
99271
- * @typedef { {
99272
- * text: (element: object) => string,
99273
- * icon?: (element: Object) => import('preact').Component
99274
- * } } PlaceholderDefinition
99275
- *
99276
- * @param { PlaceholderDefinition } props
99310
+ /**
99311
+ * @typedef { {
99312
+ * text: (element: object) => string,
99313
+ * icon?: (element: Object) => import('preact').Component
99314
+ * } } PlaceholderDefinition
99315
+ *
99316
+ * @param { PlaceholderDefinition } props
99277
99317
  */
99278
99318
  function Placeholder(props) {
99279
99319
  const {
@@ -99312,9 +99352,9 @@
99312
99352
 
99313
99353
  const noop$6 = () => {};
99314
99354
 
99315
- /**
99316
- * Buffer `.focus()` calls while the editor is not initialized.
99317
- * Set Focus inside when the editor is ready.
99355
+ /**
99356
+ * Buffer `.focus()` calls while the editor is not initialized.
99357
+ * Set Focus inside when the editor is ready.
99318
99358
  */
99319
99359
  const useBufferedFocus$1 = function (editor, ref) {
99320
99360
  const [buffer, setBuffer] = h(undefined);
@@ -99415,9 +99455,9 @@
99415
99455
 
99416
99456
  const noop$5 = () => {};
99417
99457
 
99418
- /**
99419
- * Buffer `.focus()` calls while the editor is not initialized.
99420
- * Set Focus inside when the editor is ready.
99458
+ /**
99459
+ * Buffer `.focus()` calls while the editor is not initialized.
99460
+ * Set Focus inside when the editor is ready.
99421
99461
  */
99422
99462
  const useBufferedFocus = function (editor, ref) {
99423
99463
  const [buffer, setBuffer] = h(undefined);
@@ -99466,10 +99506,10 @@
99466
99506
  p$1(() => {
99467
99507
  let editor;
99468
99508
 
99469
- /* Trigger FEEL toggle when
99470
- *
99471
- * - `backspace` is pressed
99472
- * - AND the cursor is at the beginning of the input
99509
+ /* Trigger FEEL toggle when
99510
+ *
99511
+ * - `backspace` is pressed
99512
+ * - AND the cursor is at the beginning of the input
99473
99513
  */
99474
99514
  const onKeyDown = e => {
99475
99515
  if (e.key !== 'Backspace' || !editor) {
@@ -99551,22 +99591,22 @@
99551
99591
  source: null
99552
99592
  });
99553
99593
 
99554
- /**
99555
- * Add a dragger that calls back the passed function with
99556
- * { event, delta } on drag.
99557
- *
99558
- * @example
99559
- *
99560
- * function dragMove(event, delta) {
99561
- * // we are dragging (!!)
99562
- * }
99563
- *
99564
- * domElement.addEventListener('dragstart', dragger(dragMove));
99565
- *
99566
- * @param {Function} fn
99567
- * @param {Element} [dragPreview]
99568
- *
99569
- * @return {Function} drag start callback function
99594
+ /**
99595
+ * Add a dragger that calls back the passed function with
99596
+ * { event, delta } on drag.
99597
+ *
99598
+ * @example
99599
+ *
99600
+ * function dragMove(event, delta) {
99601
+ * // we are dragging (!!)
99602
+ * }
99603
+ *
99604
+ * domElement.addEventListener('dragstart', dragger(dragMove));
99605
+ *
99606
+ * @param {Function} fn
99607
+ * @param {Element} [dragPreview]
99608
+ *
99609
+ * @return {Function} drag start callback function
99570
99610
  */
99571
99611
  function createDragger(fn, dragPreview) {
99572
99612
  let self;
@@ -99621,23 +99661,23 @@
99621
99661
 
99622
99662
  const noop$3 = () => {};
99623
99663
 
99624
- /**
99625
- * A generic popup component.
99626
- *
99627
- * @param {Object} props
99628
- * @param {HTMLElement} [props.container]
99629
- * @param {string} [props.className]
99630
- * @param {boolean} [props.delayInitialFocus]
99631
- * @param {{x: number, y: number}} [props.position]
99632
- * @param {number} [props.width]
99633
- * @param {number} [props.height]
99634
- * @param {Function} props.onClose
99635
- * @param {Function} [props.onPostActivate]
99636
- * @param {Function} [props.onPostDeactivate]
99637
- * @param {boolean} [props.returnFocus]
99638
- * @param {boolean} [props.closeOnEscape]
99639
- * @param {string} props.title
99640
- * @param {Ref} [ref]
99664
+ /**
99665
+ * A generic popup component.
99666
+ *
99667
+ * @param {Object} props
99668
+ * @param {HTMLElement} [props.container]
99669
+ * @param {string} [props.className]
99670
+ * @param {boolean} [props.delayInitialFocus]
99671
+ * @param {{x: number, y: number}} [props.position]
99672
+ * @param {number} [props.width]
99673
+ * @param {number} [props.height]
99674
+ * @param {Function} props.onClose
99675
+ * @param {Function} [props.onPostActivate]
99676
+ * @param {Function} [props.onPostDeactivate]
99677
+ * @param {boolean} [props.returnFocus]
99678
+ * @param {boolean} [props.closeOnEscape]
99679
+ * @param {string} props.title
99680
+ * @param {Ref} [ref]
99641
99681
  */
99642
99682
  function PopupComponent(props, globalRef) {
99643
99683
  const {
@@ -99856,12 +99896,12 @@
99856
99896
  const FEEL_POPUP_WIDTH = 700;
99857
99897
  const FEEL_POPUP_HEIGHT = 250;
99858
99898
 
99859
- /**
99860
- * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
99861
- * - `feelPopup.open` - fired before the popup is mounted
99862
- * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
99863
- * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
99864
- * - `feelPopup.closed` - fired after the popup is unmounted
99899
+ /**
99900
+ * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
99901
+ * - `feelPopup.open` - fired before the popup is mounted
99902
+ * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
99903
+ * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
99904
+ * - `feelPopup.closed` - fired after the popup is unmounted
99865
99905
  */
99866
99906
  function FEELPopupRoot(props) {
99867
99907
  const {
@@ -100087,11 +100127,11 @@
100087
100127
  return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');
100088
100128
  }
100089
100129
 
100090
- /**
100091
- * This hook behaves like useEffect, but does not trigger on the first render.
100092
- *
100093
- * @param {Function} effect
100094
- * @param {Array} deps
100130
+ /**
100131
+ * This hook behaves like useEffect, but does not trigger on the first render.
100132
+ *
100133
+ * @param {Function} effect
100134
+ * @param {Array} deps
100095
100135
  */
100096
100136
  function useUpdateEffect(effect, deps) {
100097
100137
  const isMounted = _(false);
@@ -100169,19 +100209,19 @@
100169
100209
  });
100170
100210
  }
100171
100211
 
100172
- /**
100173
- * @param {Object} props
100174
- * @param {Object} props.element
100175
- * @param {String} props.id
100176
- * @param {String} props.description
100177
- * @param {String} props.label
100178
- * @param {String} props.switcherLabel
100179
- * @param {Boolean} props.inline
100180
- * @param {Function} props.getValue
100181
- * @param {Function} props.setValue
100182
- * @param {Function} props.onFocus
100183
- * @param {Function} props.onBlur
100184
- * @param {string|import('preact').Component} props.tooltip
100212
+ /**
100213
+ * @param {Object} props
100214
+ * @param {Object} props.element
100215
+ * @param {String} props.id
100216
+ * @param {String} props.description
100217
+ * @param {String} props.label
100218
+ * @param {String} props.switcherLabel
100219
+ * @param {Boolean} props.inline
100220
+ * @param {Function} props.getValue
100221
+ * @param {Function} props.setValue
100222
+ * @param {Function} props.onFocus
100223
+ * @param {Function} props.onBlur
100224
+ * @param {string|import('preact').Component} props.tooltip
100185
100225
  */
100186
100226
  function ToggleSwitchEntry(props) {
100187
100227
  const {
@@ -100507,85 +100547,85 @@
100507
100547
  const DEFAULT_DESCRIPTION = {};
100508
100548
  const DEFAULT_TOOLTIP = {};
100509
100549
 
100510
- /**
100511
- * @typedef { {
100512
- * component: import('preact').Component,
100513
- * id: String,
100514
- * isEdited?: Function
100515
- * } } EntryDefinition
100516
- *
100517
- * @typedef { {
100518
- * autoFocusEntry: String,
100519
- * autoOpen?: Boolean,
100520
- * entries: Array<EntryDefinition>,
100521
- * id: String,
100522
- * label: String,
100523
- * remove: (event: MouseEvent) => void
100524
- * } } ListItemDefinition
100525
- *
100526
- * @typedef { {
100527
- * add: (event: MouseEvent) => void,
100528
- * component: import('preact').Component,
100529
- * element: Object,
100530
- * id: String,
100531
- * items: Array<ListItemDefinition>,
100532
- * label: String,
100533
- * shouldOpen?: Boolean
100534
- * } } ListGroupDefinition
100535
- *
100536
- * @typedef { {
100537
- * component?: import('preact').Component,
100538
- * entries: Array<EntryDefinition>,
100539
- * id: String,
100540
- * label: String,
100541
- * shouldOpen?: Boolean
100542
- * } } GroupDefinition
100543
- *
100544
- * @typedef { {
100545
- * [id: String]: GetDescriptionFunction
100546
- * } } DescriptionConfig
100547
- *
100548
- * @typedef { {
100549
- * [id: String]: GetTooltipFunction
100550
- * } } TooltipConfig
100551
- *
100552
- * @callback { {
100553
- * @param {string} id
100554
- * @param {Object} element
100555
- * @returns {string}
100556
- * } } GetDescriptionFunction
100557
- *
100558
- * @callback { {
100559
- * @param {string} id
100560
- * @param {Object} element
100561
- * @returns {string}
100562
- * } } GetTooltipFunction
100563
- *
100564
- * @typedef { {
100565
- * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
100566
- * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
100567
- * } } PlaceholderProvider
100568
- *
100550
+ /**
100551
+ * @typedef { {
100552
+ * component: import('preact').Component,
100553
+ * id: String,
100554
+ * isEdited?: Function
100555
+ * } } EntryDefinition
100556
+ *
100557
+ * @typedef { {
100558
+ * autoFocusEntry: String,
100559
+ * autoOpen?: Boolean,
100560
+ * entries: Array<EntryDefinition>,
100561
+ * id: String,
100562
+ * label: String,
100563
+ * remove: (event: MouseEvent) => void
100564
+ * } } ListItemDefinition
100565
+ *
100566
+ * @typedef { {
100567
+ * add: (event: MouseEvent) => void,
100568
+ * component: import('preact').Component,
100569
+ * element: Object,
100570
+ * id: String,
100571
+ * items: Array<ListItemDefinition>,
100572
+ * label: String,
100573
+ * shouldOpen?: Boolean
100574
+ * } } ListGroupDefinition
100575
+ *
100576
+ * @typedef { {
100577
+ * component?: import('preact').Component,
100578
+ * entries: Array<EntryDefinition>,
100579
+ * id: String,
100580
+ * label: String,
100581
+ * shouldOpen?: Boolean
100582
+ * } } GroupDefinition
100583
+ *
100584
+ * @typedef { {
100585
+ * [id: String]: GetDescriptionFunction
100586
+ * } } DescriptionConfig
100587
+ *
100588
+ * @typedef { {
100589
+ * [id: String]: GetTooltipFunction
100590
+ * } } TooltipConfig
100591
+ *
100592
+ * @callback { {
100593
+ * @param {string} id
100594
+ * @param {Object} element
100595
+ * @returns {string}
100596
+ * } } GetDescriptionFunction
100597
+ *
100598
+ * @callback { {
100599
+ * @param {string} id
100600
+ * @param {Object} element
100601
+ * @returns {string}
100602
+ * } } GetTooltipFunction
100603
+ *
100604
+ * @typedef { {
100605
+ * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
100606
+ * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
100607
+ * } } PlaceholderProvider
100608
+ *
100569
100609
  */
100570
100610
 
100571
- /**
100572
- * A basic properties panel component. Describes *how* content will be rendered, accepts
100573
- * data from implementor to describe *what* will be rendered.
100574
- *
100575
- * @param {Object} props
100576
- * @param {Object|Array} props.element
100577
- * @param {import('./components/Header').HeaderProvider} props.headerProvider
100578
- * @param {PlaceholderProvider} [props.placeholderProvider]
100579
- * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
100580
- * @param {Object} [props.layoutConfig]
100581
- * @param {Function} [props.layoutChanged]
100582
- * @param {DescriptionConfig} [props.descriptionConfig]
100583
- * @param {Function} [props.descriptionLoaded]
100584
- * @param {TooltipConfig} [props.tooltipConfig]
100585
- * @param {Function} [props.tooltipLoaded]
100586
- * @param {HTMLElement} [props.feelPopupContainer]
100587
- * @param {Function} [props.getFeelPopupLinks]
100588
- * @param {Object} [props.eventBus]
100611
+ /**
100612
+ * A basic properties panel component. Describes *how* content will be rendered, accepts
100613
+ * data from implementor to describe *what* will be rendered.
100614
+ *
100615
+ * @param {Object} props
100616
+ * @param {Object|Array} props.element
100617
+ * @param {import('./components/Header').HeaderProvider} props.headerProvider
100618
+ * @param {PlaceholderProvider} [props.placeholderProvider]
100619
+ * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
100620
+ * @param {Object} [props.layoutConfig]
100621
+ * @param {Function} [props.layoutChanged]
100622
+ * @param {DescriptionConfig} [props.descriptionConfig]
100623
+ * @param {Function} [props.descriptionLoaded]
100624
+ * @param {TooltipConfig} [props.tooltipConfig]
100625
+ * @param {Function} [props.tooltipLoaded]
100626
+ * @param {HTMLElement} [props.feelPopupContainer]
100627
+ * @param {Function} [props.getFeelPopupLinks]
100628
+ * @param {Object} [props.eventBus]
100589
100629
  */
100590
100630
  function PropertiesPanel(props) {
100591
100631
  const {
@@ -100758,11 +100798,11 @@
100758
100798
 
100759
100799
  // hooks //////////////////
100760
100800
 
100761
- /**
100762
- * This hook behaves like useLayoutEffect, but does not trigger on the first render.
100763
- *
100764
- * @param {Function} effect
100765
- * @param {Array} deps
100801
+ /**
100802
+ * This hook behaves like useLayoutEffect, but does not trigger on the first render.
100803
+ *
100804
+ * @param {Function} effect
100805
+ * @param {Array} deps
100766
100806
  */
100767
100807
  function useUpdateLayoutEffect(effect, deps) {
100768
100808
  const isMounted = _(false);
@@ -100837,15 +100877,15 @@
100837
100877
  });
100838
100878
  }
100839
100879
 
100840
- /**
100841
- *
100842
- * @param {Array<null | Element>} ignoredElements
100843
- * @param {Function} callback
100880
+ /**
100881
+ *
100882
+ * @param {Array<null | Element>} ignoredElements
100883
+ * @param {Function} callback
100844
100884
  */
100845
100885
  function useGlobalClick(ignoredElements, callback) {
100846
100886
  p$1(() => {
100847
- /**
100848
- * @param {MouseEvent} event
100887
+ /**
100888
+ * @param {MouseEvent} event
100849
100889
  */
100850
100890
  function listener(event) {
100851
100891
  if (ignoredElements.some(element => element && element.contains(event.target))) {
@@ -100878,20 +100918,20 @@
100878
100918
  });
100879
100919
  }
100880
100920
 
100881
- /**
100882
- * @typedef { {
100883
- * [key: string]: string;
100884
- * } } TranslateReplacements
100921
+ /**
100922
+ * @typedef { {
100923
+ * [key: string]: string;
100924
+ * } } TranslateReplacements
100885
100925
  */
100886
100926
 
100887
- /**
100888
- * A simple translation stub to be used for multi-language support.
100889
- * Can be easily replaced with a more sophisticated solution.
100890
- *
100891
- * @param {string} template to interpolate
100892
- * @param {TranslateReplacements} [replacements] a map with substitutes
100893
- *
100894
- * @return {string} the translated string
100927
+ /**
100928
+ * A simple translation stub to be used for multi-language support.
100929
+ * Can be easily replaced with a more sophisticated solution.
100930
+ *
100931
+ * @param {string} template to interpolate
100932
+ * @param {TranslateReplacements} [replacements] a map with substitutes
100933
+ *
100934
+ * @return {string} the translated string
100895
100935
  */
100896
100936
  function translateFallback(template, replacements) {
100897
100937
  replacements = replacements || {};
@@ -101003,8 +101043,8 @@
101003
101043
 
101004
101044
  const noop$1 = () => {};
101005
101045
 
101006
- /**
101007
- * @param {import('../PropertiesPanel').ListGroupDefinition} props
101046
+ /**
101047
+ * @param {import('../PropertiesPanel').ListGroupDefinition} props
101008
101048
  */
101009
101049
  function ListGroup(props) {
101010
101050
  const {
@@ -101196,18 +101236,18 @@
101196
101236
  });
101197
101237
  }
101198
101238
 
101199
- /**
101200
- * @param {Object} props
101201
- * @param {Object} props.element
101202
- * @param {String} props.id
101203
- * @param {String} props.description
101204
- * @param {String} props.label
101205
- * @param {Function} props.getValue
101206
- * @param {Function} props.setValue
101207
- * @param {Function} props.onFocus
101208
- * @param {Function} props.onBlur
101209
- * @param {string|import('preact').Component} props.tooltip
101210
- * @param {boolean} [props.disabled]
101239
+ /**
101240
+ * @param {Object} props
101241
+ * @param {Object} props.element
101242
+ * @param {String} props.id
101243
+ * @param {String} props.description
101244
+ * @param {String} props.label
101245
+ * @param {Function} props.getValue
101246
+ * @param {Function} props.setValue
101247
+ * @param {Function} props.onFocus
101248
+ * @param {Function} props.onBlur
101249
+ * @param {string|import('preact').Component} props.tooltip
101250
+ * @param {boolean} [props.disabled]
101211
101251
  */
101212
101252
  function CheckboxEntry(props) {
101213
101253
  const {
@@ -101281,8 +101321,8 @@
101281
101321
  }
101282
101322
  }, [open, hasItems]);
101283
101323
 
101284
- /**
101285
- * @param {MouseEvent} event
101324
+ /**
101325
+ * @param {MouseEvent} event
101286
101326
  */
101287
101327
  function addItem(event) {
101288
101328
  event.stopPropagation();
@@ -101474,20 +101514,20 @@
101474
101514
  });
101475
101515
  }
101476
101516
 
101477
- /**
101478
- * @param {object} props
101479
- * @param {object} props.element
101480
- * @param {string} props.id
101481
- * @param {string} [props.description]
101482
- * @param {string} props.label
101483
- * @param {Function} props.getValue
101484
- * @param {Function} props.setValue
101485
- * @param {Function} props.onFocus
101486
- * @param {Function} props.onBlur
101487
- * @param {Function} props.getOptions
101488
- * @param {boolean} [props.disabled]
101489
- * @param {Function} [props.validate]
101490
- * @param {string|import('preact').Component} props.tooltip
101517
+ /**
101518
+ * @param {object} props
101519
+ * @param {object} props.element
101520
+ * @param {string} props.id
101521
+ * @param {string} [props.description]
101522
+ * @param {string} props.label
101523
+ * @param {Function} props.getValue
101524
+ * @param {Function} props.setValue
101525
+ * @param {Function} props.onFocus
101526
+ * @param {Function} props.onBlur
101527
+ * @param {Function} props.getOptions
101528
+ * @param {boolean} [props.disabled]
101529
+ * @param {Function} [props.validate]
101530
+ * @param {string|import('preact').Component} props.tooltip
101491
101531
  */
101492
101532
  function SelectEntry(props) {
101493
101533
  const {
@@ -101831,20 +101871,20 @@
101831
101871
  });
101832
101872
  }
101833
101873
 
101834
- /**
101835
- * @param {Object} props
101836
- * @param {Object} props.element
101837
- * @param {String} props.id
101838
- * @param {String} props.description
101839
- * @param {Boolean} props.debounce
101840
- * @param {Boolean} props.disabled
101841
- * @param {String} props.label
101842
- * @param {Function} props.getValue
101843
- * @param {Function} props.setValue
101844
- * @param {Function} props.onFocus
101845
- * @param {Function} props.onBlur
101846
- * @param {string|import('preact').Component} props.tooltip
101847
- * @param {Function} props.validate
101874
+ /**
101875
+ * @param {Object} props
101876
+ * @param {Object} props.element
101877
+ * @param {String} props.id
101878
+ * @param {String} props.description
101879
+ * @param {Boolean} props.debounce
101880
+ * @param {Boolean} props.disabled
101881
+ * @param {String} props.label
101882
+ * @param {Function} props.getValue
101883
+ * @param {Function} props.setValue
101884
+ * @param {Function} props.onFocus
101885
+ * @param {Function} props.onBlur
101886
+ * @param {string|import('preact').Component} props.tooltip
101887
+ * @param {Function} props.validate
101848
101888
  */
101849
101889
  function TextfieldEntry(props) {
101850
101890
  const {
@@ -101937,20 +101977,20 @@
101937
101977
  this._eventBus = eventBus;
101938
101978
  }
101939
101979
 
101940
- /**
101941
- * Check if the FEEL popup is open.
101942
- * @return {Boolean}
101980
+ /**
101981
+ * Check if the FEEL popup is open.
101982
+ * @return {Boolean}
101943
101983
  */
101944
101984
  isOpen() {
101945
101985
  return this._eventBus.fire('feelPopup._isOpen');
101946
101986
  }
101947
101987
 
101948
- /**
101949
- * Open the FEEL popup.
101950
- *
101951
- * @param {String} entryId
101952
- * @param {Object} popupConfig
101953
- * @param {HTMLElement} sourceElement
101988
+ /**
101989
+ * Open the FEEL popup.
101990
+ *
101991
+ * @param {String} entryId
101992
+ * @param {Object} popupConfig
101993
+ * @param {HTMLElement} sourceElement
101954
101994
  */
101955
101995
  open(entryId, popupConfig, sourceElement) {
101956
101996
  return this._eventBus.fire('feelPopup._open', {
@@ -101960,8 +102000,8 @@
101960
102000
  });
101961
102001
  }
101962
102002
 
101963
- /**
101964
- * Close the FEEL popup.
102003
+ /**
102004
+ * Close the FEEL popup.
101965
102005
  */
101966
102006
  close() {
101967
102007
  return this._eventBus.fire('feelPopup._close');