@bpmn-io/form-js-editor 1.14.0 → 1.14.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import Ids from 'ids';
2
- import { FormFieldRegistry as FormFieldRegistry$1, iconsByType, Label as Label$3, IFrame, Text as Text$1, Html, Table, ExpressionField, DocumentPreview, FormFields, sanitizeImageSource, getAncestryList, FormContext, FormRenderContext, FormComponent, getScrollContainer, Importer, PathRegistry, FormLayouter, FieldFactory, FeelExpressionLanguage, OPTIONS_SOURCES, OPTIONS_SOURCES_PATHS, clone, runRecursively, getSchemaVariables, DATETIME_SUBTYPES, DATE_LABEL_PATH, TIME_LABEL_PATH, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES_LABELS, TIME_SERIALISING_FORMAT_PATH, TIME_SERIALISING_FORMATS, TIME_INTERVAL_PATH, TIME_USE24H_PATH, DATE_DISALLOW_PAST_PATH, TIME_SERIALISINGFORMAT_LABELS, getOptionsSource, OPTIONS_SOURCES_DEFAULTS, OPTIONS_SOURCES_LABELS, SECURITY_ATTRIBUTES_DEFINITIONS, createFormContainer, createInjector, MarkdownRendererModule, schemaVersion } from '@bpmn-io/form-js-viewer';
2
+ import { FormFieldRegistry as FormFieldRegistry$1, iconsByType, Label as Label$3, IFrame, Text as Text$1, Html, Table, ExpressionField, DocumentPreview, FormFields, sanitizeImageSource, getAncestryList, FormContext, FormRenderContext, FormComponent, getScrollContainer, FieldFactory, FormLayouter, PathRegistry, Importer, FeelExpressionLanguage, OPTIONS_SOURCES, OPTIONS_SOURCES_PATHS, clone, runRecursively, getSchemaVariables, DATETIME_SUBTYPES, DATE_LABEL_PATH, TIME_LABEL_PATH, TIME_USE24H_PATH, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES_LABELS, TIME_INTERVAL_PATH, TIME_SERIALISING_FORMAT_PATH, DATE_DISALLOW_PAST_PATH, TIME_SERIALISING_FORMATS, TIME_SERIALISINGFORMAT_LABELS, getOptionsSource, OPTIONS_SOURCES_DEFAULTS, OPTIONS_SOURCES_LABELS, SECURITY_ATTRIBUTES_DEFINITIONS, createFormContainer, createInjector, MarkdownRendererModule, schemaVersion } from '@bpmn-io/form-js-viewer';
3
3
  export { schemaVersion } from '@bpmn-io/form-js-viewer';
4
4
  import { isArray, isFunction, isNumber, bind, assign, debounce, forEach, isString, uniqueBy, isObject, get, isDefined, set as set$1, reduce, without, isNil, has } from 'min-dash';
5
5
  import classnames from 'classnames';
@@ -5515,19 +5515,19 @@ const ErrorsContext = createContext({
5515
5515
  errors: {}
5516
5516
  });
5517
5517
 
5518
- /**
5519
- * @typedef {Function} <propertiesPanel.showEntry> callback
5520
- *
5521
- * @example
5522
- *
5523
- * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
5524
- * // ...
5525
- * });
5526
- *
5527
- * @param {Object} context
5528
- * @param {boolean} [context.focus]
5529
- *
5530
- * @returns void
5518
+ /**
5519
+ * @typedef {Function} <propertiesPanel.showEntry> callback
5520
+ *
5521
+ * @example
5522
+ *
5523
+ * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
5524
+ * // ...
5525
+ * });
5526
+ *
5527
+ * @param {Object} context
5528
+ * @param {boolean} [context.focus]
5529
+ *
5530
+ * @returns void
5531
5531
  */
5532
5532
 
5533
5533
  const EventContext = createContext({
@@ -5544,20 +5544,20 @@ const TooltipContext = createContext({
5544
5544
  getTooltipForId: () => {}
5545
5545
  });
5546
5546
 
5547
- /**
5548
- * Accesses the global TooltipContext and returns a tooltip for a given id and element.
5549
- *
5550
- * @example
5551
- * ```jsx
5552
- * function TextField(props) {
5553
- * const tooltip = useTooltipContext('input1', element);
5554
- * }
5555
- * ```
5556
- *
5557
- * @param {string} id
5558
- * @param {object} element
5559
- *
5560
- * @returns {string}
5547
+ /**
5548
+ * Accesses the global TooltipContext and returns a tooltip for a given id and element.
5549
+ *
5550
+ * @example
5551
+ * ```jsx
5552
+ * function TextField(props) {
5553
+ * const tooltip = useTooltipContext('input1', element);
5554
+ * }
5555
+ * ```
5556
+ *
5557
+ * @param {string} id
5558
+ * @param {object} element
5559
+ *
5560
+ * @returns {string}
5561
5561
  */
5562
5562
  function useTooltipContext(id, element) {
5563
5563
  const {
@@ -5709,20 +5709,20 @@ function prefixId$9(id) {
5709
5709
  return `bio-properties-panel-${id}`;
5710
5710
  }
5711
5711
 
5712
- /**
5713
- * Accesses the global DescriptionContext and returns a description for a given id and element.
5714
- *
5715
- * @example
5716
- * ```jsx
5717
- * function TextField(props) {
5718
- * const description = useDescriptionContext('input1', element);
5719
- * }
5720
- * ```
5721
- *
5722
- * @param {string} id
5723
- * @param {object} element
5724
- *
5725
- * @returns {string}
5712
+ /**
5713
+ * Accesses the global DescriptionContext and returns a description for a given id and element.
5714
+ *
5715
+ * @example
5716
+ * ```jsx
5717
+ * function TextField(props) {
5718
+ * const description = useDescriptionContext('input1', element);
5719
+ * }
5720
+ * ```
5721
+ *
5722
+ * @param {string} id
5723
+ * @param {object} element
5724
+ *
5725
+ * @returns {string}
5726
5726
  */
5727
5727
  function useDescriptionContext(id, element) {
5728
5728
  const {
@@ -5743,11 +5743,11 @@ function useErrors() {
5743
5743
  return errors;
5744
5744
  }
5745
5745
 
5746
- /**
5747
- * Subscribe to an event immediately. Update subscription after inputs changed.
5748
- *
5749
- * @param {string} event
5750
- * @param {Function} callback
5746
+ /**
5747
+ * Subscribe to an event immediately. Update subscription after inputs changed.
5748
+ *
5749
+ * @param {string} event
5750
+ * @param {Function} callback
5751
5751
  */
5752
5752
  function useEvent(event, callback, eventBus) {
5753
5753
  const eventContext = useContext(EventContext);
@@ -5777,20 +5777,20 @@ function useEvent(event, callback, eventBus) {
5777
5777
  }, [callback, event, eventBus]);
5778
5778
  }
5779
5779
 
5780
- /**
5781
- * Creates a state that persists in the global LayoutContext.
5782
- *
5783
- * @example
5784
- * ```jsx
5785
- * function Group(props) {
5786
- * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
5787
- * }
5788
- * ```
5789
- *
5790
- * @param {(string|number)[]} path
5791
- * @param {any} [defaultValue]
5792
- *
5793
- * @returns {[ any, Function ]}
5780
+ /**
5781
+ * Creates a state that persists in the global LayoutContext.
5782
+ *
5783
+ * @example
5784
+ * ```jsx
5785
+ * function Group(props) {
5786
+ * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
5787
+ * }
5788
+ * ```
5789
+ *
5790
+ * @param {(string|number)[]} path
5791
+ * @param {any} [defaultValue]
5792
+ *
5793
+ * @returns {[ any, Function ]}
5794
5794
  */
5795
5795
  function useLayoutState(path, defaultValue) {
5796
5796
  const {
@@ -5804,11 +5804,11 @@ function useLayoutState(path, defaultValue) {
5804
5804
  return [layoutForKey, setState];
5805
5805
  }
5806
5806
 
5807
- /**
5808
- * @pinussilvestrus: we need to introduce our own hook to persist the previous
5809
- * state on updates.
5810
- *
5811
- * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
5807
+ /**
5808
+ * @pinussilvestrus: we need to introduce our own hook to persist the previous
5809
+ * state on updates.
5810
+ *
5811
+ * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
5812
5812
  */
5813
5813
 
5814
5814
  function usePrevious(value) {
@@ -5819,12 +5819,12 @@ function usePrevious(value) {
5819
5819
  return ref.current;
5820
5820
  }
5821
5821
 
5822
- /**
5823
- * Subscribe to `propertiesPanel.showEntry`.
5824
- *
5825
- * @param {string} id
5826
- *
5827
- * @returns {import('preact').Ref}
5822
+ /**
5823
+ * Subscribe to `propertiesPanel.showEntry`.
5824
+ *
5825
+ * @param {string} id
5826
+ *
5827
+ * @returns {import('preact').Ref}
5828
5828
  */
5829
5829
  function useShowEntryEvent(id) {
5830
5830
  const {
@@ -5855,20 +5855,20 @@ function useShowEntryEvent(id) {
5855
5855
  return ref;
5856
5856
  }
5857
5857
 
5858
- /**
5859
- * @callback setSticky
5860
- * @param {boolean} value
5858
+ /**
5859
+ * @callback setSticky
5860
+ * @param {boolean} value
5861
5861
  */
5862
5862
 
5863
- /**
5864
- * Use IntersectionObserver to identify when DOM element is in sticky mode.
5865
- * If sticky is observered setSticky(true) will be called.
5866
- * If sticky mode is left, setSticky(false) will be called.
5867
- *
5868
- *
5869
- * @param {Object} ref
5870
- * @param {string} scrollContainerSelector
5871
- * @param {setSticky} setSticky
5863
+ /**
5864
+ * Use IntersectionObserver to identify when DOM element is in sticky mode.
5865
+ * If sticky is observered setSticky(true) will be called.
5866
+ * If sticky mode is left, setSticky(false) will be called.
5867
+ *
5868
+ *
5869
+ * @param {Object} ref
5870
+ * @param {string} scrollContainerSelector
5871
+ * @param {setSticky} setSticky
5872
5872
  */
5873
5873
  function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {
5874
5874
  const [scrollContainer, setScrollContainer] = useState(query(scrollContainerSelector));
@@ -5922,19 +5922,19 @@ function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky)
5922
5922
  }, [ref.current, scrollContainer, setSticky]);
5923
5923
  }
5924
5924
 
5925
- /**
5926
- * Creates a static function reference with changing body.
5927
- * This is necessary when external libraries require a callback function
5928
- * that has references to state variables.
5929
- *
5930
- * Usage:
5931
- * const callback = useStaticCallback((val) => {val === currentState});
5932
- *
5933
- * The `callback` reference is static and can be safely used in external
5934
- * libraries or as a prop that does not cause rerendering of children.
5935
- *
5936
- * @param {Function} callback function with changing reference
5937
- * @returns {Function} static function reference
5925
+ /**
5926
+ * Creates a static function reference with changing body.
5927
+ * This is necessary when external libraries require a callback function
5928
+ * that has references to state variables.
5929
+ *
5930
+ * Usage:
5931
+ * const callback = useStaticCallback((val) => {val === currentState});
5932
+ *
5933
+ * The `callback` reference is static and can be safely used in external
5934
+ * libraries or as a prop that does not cause rerendering of children.
5935
+ *
5936
+ * @param {Function} callback function with changing reference
5937
+ * @returns {Function} static function reference
5938
5938
  */
5939
5939
  function useStaticCallback(callback) {
5940
5940
  const callbackRef = useRef(callback);
@@ -6075,13 +6075,13 @@ function DataMarker(props) {
6075
6075
  return null;
6076
6076
  }
6077
6077
 
6078
- /**
6079
- * @typedef { {
6080
- * text: (element: object) => string,
6081
- * icon?: (element: Object) => import('preact').Component
6082
- * } } PlaceholderDefinition
6083
- *
6084
- * @param { PlaceholderDefinition } props
6078
+ /**
6079
+ * @typedef { {
6080
+ * text: (element: object) => string,
6081
+ * icon?: (element: Object) => import('preact').Component
6082
+ * } } PlaceholderDefinition
6083
+ *
6084
+ * @param { PlaceholderDefinition } props
6085
6085
  */
6086
6086
  function Placeholder(props) {
6087
6087
  const {
@@ -6118,9 +6118,9 @@ function Description$1(props) {
6118
6118
  }
6119
6119
  const noop$6 = () => {};
6120
6120
 
6121
- /**
6122
- * Buffer `.focus()` calls while the editor is not initialized.
6123
- * Set Focus inside when the editor is ready.
6121
+ /**
6122
+ * Buffer `.focus()` calls while the editor is not initialized.
6123
+ * Set Focus inside when the editor is ready.
6124
6124
  */
6125
6125
  const useBufferedFocus$1 = function (editor, ref) {
6126
6126
  const [buffer, setBuffer] = useState(undefined);
@@ -6220,9 +6220,9 @@ const CodeEditor$1 = forwardRef((props, ref) => {
6220
6220
  });
6221
6221
  const noop$5 = () => {};
6222
6222
 
6223
- /**
6224
- * Buffer `.focus()` calls while the editor is not initialized.
6225
- * Set Focus inside when the editor is ready.
6223
+ /**
6224
+ * Buffer `.focus()` calls while the editor is not initialized.
6225
+ * Set Focus inside when the editor is ready.
6226
6226
  */
6227
6227
  const useBufferedFocus = function (editor, ref) {
6228
6228
  const [buffer, setBuffer] = useState(undefined);
@@ -6271,10 +6271,10 @@ const CodeEditor = forwardRef((props, ref) => {
6271
6271
  useEffect(() => {
6272
6272
  let editor;
6273
6273
 
6274
- /* Trigger FEEL toggle when
6275
- *
6276
- * - `backspace` is pressed
6277
- * - AND the cursor is at the beginning of the input
6274
+ /* Trigger FEEL toggle when
6275
+ *
6276
+ * - `backspace` is pressed
6277
+ * - AND the cursor is at the beginning of the input
6278
6278
  */
6279
6279
  const onKeyDown = e => {
6280
6280
  if (e.key !== 'Backspace' || !editor) {
@@ -6363,10 +6363,10 @@ function FeelIndicator(props) {
6363
6363
  }
6364
6364
  const noop$4 = () => {};
6365
6365
 
6366
- /**
6367
- * @param {Object} props
6368
- * @param {Object} props.label
6369
- * @param {String} props.feel
6366
+ /**
6367
+ * @param {Object} props
6368
+ * @param {Object} props.label
6369
+ * @param {String} props.feel
6370
6370
  */
6371
6371
  function FeelIcon(props) {
6372
6372
  const {
@@ -6400,22 +6400,22 @@ const FeelPopupContext = createContext({
6400
6400
  source: null
6401
6401
  });
6402
6402
 
6403
- /**
6404
- * Add a dragger that calls back the passed function with
6405
- * { event, delta } on drag.
6406
- *
6407
- * @example
6408
- *
6409
- * function dragMove(event, delta) {
6410
- * // we are dragging (!!)
6411
- * }
6412
- *
6413
- * domElement.addEventListener('dragstart', dragger(dragMove));
6414
- *
6415
- * @param {Function} fn
6416
- * @param {Element} [dragPreview]
6417
- *
6418
- * @return {Function} drag start callback function
6403
+ /**
6404
+ * Add a dragger that calls back the passed function with
6405
+ * { event, delta } on drag.
6406
+ *
6407
+ * @example
6408
+ *
6409
+ * function dragMove(event, delta) {
6410
+ * // we are dragging (!!)
6411
+ * }
6412
+ *
6413
+ * domElement.addEventListener('dragstart', dragger(dragMove));
6414
+ *
6415
+ * @param {Function} fn
6416
+ * @param {Element} [dragPreview]
6417
+ *
6418
+ * @return {Function} drag start callback function
6419
6419
  */
6420
6420
  function createDragger(fn, dragPreview) {
6421
6421
  let self;
@@ -6469,23 +6469,23 @@ function emptyCanvas() {
6469
6469
  }
6470
6470
  const noop$3 = () => {};
6471
6471
 
6472
- /**
6473
- * A generic popup component.
6474
- *
6475
- * @param {Object} props
6476
- * @param {HTMLElement} [props.container]
6477
- * @param {string} [props.className]
6478
- * @param {boolean} [props.delayInitialFocus]
6479
- * @param {{x: number, y: number}} [props.position]
6480
- * @param {number} [props.width]
6481
- * @param {number} [props.height]
6482
- * @param {Function} props.onClose
6483
- * @param {Function} [props.onPostActivate]
6484
- * @param {Function} [props.onPostDeactivate]
6485
- * @param {boolean} [props.returnFocus]
6486
- * @param {boolean} [props.closeOnEscape]
6487
- * @param {string} props.title
6488
- * @param {Ref} [ref]
6472
+ /**
6473
+ * A generic popup component.
6474
+ *
6475
+ * @param {Object} props
6476
+ * @param {HTMLElement} [props.container]
6477
+ * @param {string} [props.className]
6478
+ * @param {boolean} [props.delayInitialFocus]
6479
+ * @param {{x: number, y: number}} [props.position]
6480
+ * @param {number} [props.width]
6481
+ * @param {number} [props.height]
6482
+ * @param {Function} props.onClose
6483
+ * @param {Function} [props.onPostActivate]
6484
+ * @param {Function} [props.onPostDeactivate]
6485
+ * @param {boolean} [props.returnFocus]
6486
+ * @param {boolean} [props.closeOnEscape]
6487
+ * @param {string} props.title
6488
+ * @param {Ref} [ref]
6489
6489
  */
6490
6490
  function PopupComponent(props, globalRef) {
6491
6491
  const {
@@ -6703,12 +6703,12 @@ function getContainerNode(node) {
6703
6703
  const FEEL_POPUP_WIDTH = 700;
6704
6704
  const FEEL_POPUP_HEIGHT = 250;
6705
6705
 
6706
- /**
6707
- * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
6708
- * - `feelPopup.open` - fired before the popup is mounted
6709
- * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
6710
- * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
6711
- * - `feelPopup.closed` - fired after the popup is unmounted
6706
+ /**
6707
+ * FEEL popup component, built as a singleton. Emits lifecycle events as follows:
6708
+ * - `feelPopup.open` - fired before the popup is mounted
6709
+ * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
6710
+ * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
6711
+ * - `feelPopup.closed` - fired after the popup is unmounted
6712
6712
  */
6713
6713
  function FEELPopupRoot(props) {
6714
6714
  const {
@@ -6935,11 +6935,11 @@ function autoCompletionOpen(element) {
6935
6935
  return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');
6936
6936
  }
6937
6937
 
6938
- /**
6939
- * This hook behaves like useEffect, but does not trigger on the first render.
6940
- *
6941
- * @param {Function} effect
6942
- * @param {Array} deps
6938
+ /**
6939
+ * This hook behaves like useEffect, but does not trigger on the first render.
6940
+ *
6941
+ * @param {Function} effect
6942
+ * @param {Array} deps
6943
6943
  */
6944
6944
  function useUpdateEffect(effect, deps) {
6945
6945
  const isMounted = useRef(false);
@@ -7016,19 +7016,19 @@ function ToggleSwitch(props) {
7016
7016
  });
7017
7017
  }
7018
7018
 
7019
- /**
7020
- * @param {Object} props
7021
- * @param {Object} props.element
7022
- * @param {String} props.id
7023
- * @param {String} props.description
7024
- * @param {String} props.label
7025
- * @param {String} props.switcherLabel
7026
- * @param {Boolean} props.inline
7027
- * @param {Function} props.getValue
7028
- * @param {Function} props.setValue
7029
- * @param {Function} props.onFocus
7030
- * @param {Function} props.onBlur
7031
- * @param {string|import('preact').Component} props.tooltip
7019
+ /**
7020
+ * @param {Object} props
7021
+ * @param {Object} props.element
7022
+ * @param {String} props.id
7023
+ * @param {String} props.description
7024
+ * @param {String} props.label
7025
+ * @param {String} props.switcherLabel
7026
+ * @param {Boolean} props.inline
7027
+ * @param {Function} props.getValue
7028
+ * @param {Function} props.setValue
7029
+ * @param {Function} props.onFocus
7030
+ * @param {Function} props.onBlur
7031
+ * @param {string|import('preact').Component} props.tooltip
7032
7032
  */
7033
7033
  function ToggleSwitchEntry(props) {
7034
7034
  const {
@@ -7135,22 +7135,22 @@ function NumberField(props) {
7135
7135
  });
7136
7136
  }
7137
7137
 
7138
- /**
7139
- * @param {Object} props
7140
- * @param {Boolean} props.debounce
7141
- * @param {String} props.description
7142
- * @param {Boolean} props.disabled
7143
- * @param {Object} props.element
7144
- * @param {Function} props.getValue
7145
- * @param {String} props.id
7146
- * @param {String} props.label
7147
- * @param {String} props.max
7148
- * @param {String} props.min
7149
- * @param {Function} props.setValue
7150
- * @param {Function} props.onFocus
7151
- * @param {Function} props.onBlur
7152
- * @param {String} props.step
7153
- * @param {Function} props.validate
7138
+ /**
7139
+ * @param {Object} props
7140
+ * @param {Boolean} props.debounce
7141
+ * @param {String} props.description
7142
+ * @param {Boolean} props.disabled
7143
+ * @param {Object} props.element
7144
+ * @param {Function} props.getValue
7145
+ * @param {String} props.id
7146
+ * @param {String} props.label
7147
+ * @param {String} props.max
7148
+ * @param {String} props.min
7149
+ * @param {Function} props.setValue
7150
+ * @param {Function} props.onFocus
7151
+ * @param {Function} props.onBlur
7152
+ * @param {String} props.step
7153
+ * @param {Function} props.validate
7154
7154
  */
7155
7155
  function NumberFieldEntry(props) {
7156
7156
  const {
@@ -7635,26 +7635,26 @@ forwardRef((props, ref) => {
7635
7635
  });
7636
7636
  });
7637
7637
 
7638
- /**
7639
- * @param {Object} props
7640
- * @param {Object} props.element
7641
- * @param {String} props.id
7642
- * @param {String} props.description
7643
- * @param {Boolean} props.debounce
7644
- * @param {Boolean} props.disabled
7645
- * @param {Boolean} props.feel
7646
- * @param {String} props.label
7647
- * @param {Function} props.getValue
7648
- * @param {Function} props.setValue
7649
- * @param {Function} props.tooltipContainer
7650
- * @param {Function} props.validate
7651
- * @param {Function} props.show
7652
- * @param {Function} props.example
7653
- * @param {Function} props.variables
7654
- * @param {Function} props.onFocus
7655
- * @param {Function} props.onBlur
7656
- * @param {string} [props.placeholder]
7657
- * @param {string|import('preact').Component} props.tooltip
7638
+ /**
7639
+ * @param {Object} props
7640
+ * @param {Object} props.element
7641
+ * @param {String} props.id
7642
+ * @param {String} props.description
7643
+ * @param {Boolean} props.debounce
7644
+ * @param {Boolean} props.disabled
7645
+ * @param {Boolean} props.feel
7646
+ * @param {String} props.label
7647
+ * @param {Function} props.getValue
7648
+ * @param {Function} props.setValue
7649
+ * @param {Function} props.tooltipContainer
7650
+ * @param {Function} props.validate
7651
+ * @param {Function} props.show
7652
+ * @param {Function} props.example
7653
+ * @param {Function} props.variables
7654
+ * @param {Function} props.onFocus
7655
+ * @param {Function} props.onBlur
7656
+ * @param {string} [props.placeholder]
7657
+ * @param {string|import('preact').Component} props.tooltip
7658
7658
  */
7659
7659
  function FeelEntry(props) {
7660
7660
  const {
@@ -7741,27 +7741,27 @@ function FeelEntry(props) {
7741
7741
  });
7742
7742
  }
7743
7743
 
7744
- /**
7745
- * @param {Object} props
7746
- * @param {Object} props.element
7747
- * @param {String} props.id
7748
- * @param {String} props.description
7749
- * @param {Boolean} props.debounce
7750
- * @param {Boolean} props.disabled
7751
- * @param {String} props.max
7752
- * @param {String} props.min
7753
- * @param {String} props.step
7754
- * @param {Boolean} props.feel
7755
- * @param {String} props.label
7756
- * @param {Function} props.getValue
7757
- * @param {Function} props.setValue
7758
- * @param {Function} props.tooltipContainer
7759
- * @param {Function} props.validate
7760
- * @param {Function} props.show
7761
- * @param {Function} props.example
7762
- * @param {Function} props.variables
7763
- * @param {Function} props.onFocus
7764
- * @param {Function} props.onBlur
7744
+ /**
7745
+ * @param {Object} props
7746
+ * @param {Object} props.element
7747
+ * @param {String} props.id
7748
+ * @param {String} props.description
7749
+ * @param {Boolean} props.debounce
7750
+ * @param {Boolean} props.disabled
7751
+ * @param {String} props.max
7752
+ * @param {String} props.min
7753
+ * @param {String} props.step
7754
+ * @param {Boolean} props.feel
7755
+ * @param {String} props.label
7756
+ * @param {Function} props.getValue
7757
+ * @param {Function} props.setValue
7758
+ * @param {Function} props.tooltipContainer
7759
+ * @param {Function} props.validate
7760
+ * @param {Function} props.show
7761
+ * @param {Function} props.example
7762
+ * @param {Function} props.variables
7763
+ * @param {Function} props.onFocus
7764
+ * @param {Function} props.onBlur
7765
7765
  */
7766
7766
  function FeelNumberEntry(props) {
7767
7767
  return jsx(FeelEntry, {
@@ -7771,24 +7771,24 @@ function FeelNumberEntry(props) {
7771
7771
  });
7772
7772
  }
7773
7773
 
7774
- /**
7775
- * @param {Object} props
7776
- * @param {Object} props.element
7777
- * @param {String} props.id
7778
- * @param {String} props.description
7779
- * @param {Boolean} props.debounce
7780
- * @param {Boolean} props.disabled
7781
- * @param {Boolean} props.feel
7782
- * @param {String} props.label
7783
- * @param {Function} props.getValue
7784
- * @param {Function} props.setValue
7785
- * @param {Function} props.tooltipContainer
7786
- * @param {Function} props.validate
7787
- * @param {Function} props.show
7788
- * @param {Function} props.example
7789
- * @param {Function} props.variables
7790
- * @param {Function} props.onFocus
7791
- * @param {Function} props.onBlur
7774
+ /**
7775
+ * @param {Object} props
7776
+ * @param {Object} props.element
7777
+ * @param {String} props.id
7778
+ * @param {String} props.description
7779
+ * @param {Boolean} props.debounce
7780
+ * @param {Boolean} props.disabled
7781
+ * @param {Boolean} props.feel
7782
+ * @param {String} props.label
7783
+ * @param {Function} props.getValue
7784
+ * @param {Function} props.setValue
7785
+ * @param {Function} props.tooltipContainer
7786
+ * @param {Function} props.validate
7787
+ * @param {Function} props.show
7788
+ * @param {Function} props.example
7789
+ * @param {Function} props.variables
7790
+ * @param {Function} props.onFocus
7791
+ * @param {Function} props.onBlur
7792
7792
  */
7793
7793
  function FeelToggleSwitchEntry(props) {
7794
7794
  return jsx(FeelEntry, {
@@ -7798,26 +7798,26 @@ function FeelToggleSwitchEntry(props) {
7798
7798
  });
7799
7799
  }
7800
7800
 
7801
- /**
7802
- * @param {Object} props
7803
- * @param {Object} props.element
7804
- * @param {String} props.id
7805
- * @param {String} props.description
7806
- * @param {String} props.hostLanguage
7807
- * @param {Boolean} props.singleLine
7808
- * @param {Boolean} props.debounce
7809
- * @param {Boolean} props.disabled
7810
- * @param {Boolean} props.feel
7811
- * @param {String} props.label
7812
- * @param {Function} props.getValue
7813
- * @param {Function} props.setValue
7814
- * @param {Function} props.tooltipContainer
7815
- * @param {Function} props.validate
7816
- * @param {Function} props.show
7817
- * @param {Function} props.example
7818
- * @param {Function} props.variables
7819
- * @param {Function} props.onFocus
7820
- * @param {Function} props.onBlur
7801
+ /**
7802
+ * @param {Object} props
7803
+ * @param {Object} props.element
7804
+ * @param {String} props.id
7805
+ * @param {String} props.description
7806
+ * @param {String} props.hostLanguage
7807
+ * @param {Boolean} props.singleLine
7808
+ * @param {Boolean} props.debounce
7809
+ * @param {Boolean} props.disabled
7810
+ * @param {Boolean} props.feel
7811
+ * @param {String} props.label
7812
+ * @param {Function} props.getValue
7813
+ * @param {Function} props.setValue
7814
+ * @param {Function} props.tooltipContainer
7815
+ * @param {Function} props.validate
7816
+ * @param {Function} props.show
7817
+ * @param {Function} props.example
7818
+ * @param {Function} props.variables
7819
+ * @param {Function} props.onFocus
7820
+ * @param {Function} props.onBlur
7821
7821
  */
7822
7822
  function FeelTemplatingEntry(props) {
7823
7823
  return jsx(FeelEntry, {
@@ -7885,85 +7885,85 @@ const DEFAULT_LAYOUT = {};
7885
7885
  const DEFAULT_DESCRIPTION = {};
7886
7886
  const DEFAULT_TOOLTIP = {};
7887
7887
 
7888
- /**
7889
- * @typedef { {
7890
- * component: import('preact').Component,
7891
- * id: String,
7892
- * isEdited?: Function
7893
- * } } EntryDefinition
7894
- *
7895
- * @typedef { {
7896
- * autoFocusEntry: String,
7897
- * autoOpen?: Boolean,
7898
- * entries: Array<EntryDefinition>,
7899
- * id: String,
7900
- * label: String,
7901
- * remove: (event: MouseEvent) => void
7902
- * } } ListItemDefinition
7903
- *
7904
- * @typedef { {
7905
- * add: (event: MouseEvent) => void,
7906
- * component: import('preact').Component,
7907
- * element: Object,
7908
- * id: String,
7909
- * items: Array<ListItemDefinition>,
7910
- * label: String,
7911
- * shouldOpen?: Boolean
7912
- * } } ListGroupDefinition
7913
- *
7914
- * @typedef { {
7915
- * component?: import('preact').Component,
7916
- * entries: Array<EntryDefinition>,
7917
- * id: String,
7918
- * label: String,
7919
- * shouldOpen?: Boolean
7920
- * } } GroupDefinition
7921
- *
7922
- * @typedef { {
7923
- * [id: String]: GetDescriptionFunction
7924
- * } } DescriptionConfig
7925
- *
7926
- * @typedef { {
7927
- * [id: String]: GetTooltipFunction
7928
- * } } TooltipConfig
7929
- *
7930
- * @callback { {
7931
- * @param {string} id
7932
- * @param {Object} element
7933
- * @returns {string}
7934
- * } } GetDescriptionFunction
7935
- *
7936
- * @callback { {
7937
- * @param {string} id
7938
- * @param {Object} element
7939
- * @returns {string}
7940
- * } } GetTooltipFunction
7941
- *
7942
- * @typedef { {
7943
- * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
7944
- * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
7945
- * } } PlaceholderProvider
7946
- *
7888
+ /**
7889
+ * @typedef { {
7890
+ * component: import('preact').Component,
7891
+ * id: String,
7892
+ * isEdited?: Function
7893
+ * } } EntryDefinition
7894
+ *
7895
+ * @typedef { {
7896
+ * autoFocusEntry: String,
7897
+ * autoOpen?: Boolean,
7898
+ * entries: Array<EntryDefinition>,
7899
+ * id: String,
7900
+ * label: String,
7901
+ * remove: (event: MouseEvent) => void
7902
+ * } } ListItemDefinition
7903
+ *
7904
+ * @typedef { {
7905
+ * add: (event: MouseEvent) => void,
7906
+ * component: import('preact').Component,
7907
+ * element: Object,
7908
+ * id: String,
7909
+ * items: Array<ListItemDefinition>,
7910
+ * label: String,
7911
+ * shouldOpen?: Boolean
7912
+ * } } ListGroupDefinition
7913
+ *
7914
+ * @typedef { {
7915
+ * component?: import('preact').Component,
7916
+ * entries: Array<EntryDefinition>,
7917
+ * id: String,
7918
+ * label: String,
7919
+ * shouldOpen?: Boolean
7920
+ * } } GroupDefinition
7921
+ *
7922
+ * @typedef { {
7923
+ * [id: String]: GetDescriptionFunction
7924
+ * } } DescriptionConfig
7925
+ *
7926
+ * @typedef { {
7927
+ * [id: String]: GetTooltipFunction
7928
+ * } } TooltipConfig
7929
+ *
7930
+ * @callback { {
7931
+ * @param {string} id
7932
+ * @param {Object} element
7933
+ * @returns {string}
7934
+ * } } GetDescriptionFunction
7935
+ *
7936
+ * @callback { {
7937
+ * @param {string} id
7938
+ * @param {Object} element
7939
+ * @returns {string}
7940
+ * } } GetTooltipFunction
7941
+ *
7942
+ * @typedef { {
7943
+ * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
7944
+ * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
7945
+ * } } PlaceholderProvider
7946
+ *
7947
7947
  */
7948
7948
 
7949
- /**
7950
- * A basic properties panel component. Describes *how* content will be rendered, accepts
7951
- * data from implementor to describe *what* will be rendered.
7952
- *
7953
- * @param {Object} props
7954
- * @param {Object|Array} props.element
7955
- * @param {import('./components/Header').HeaderProvider} props.headerProvider
7956
- * @param {PlaceholderProvider} [props.placeholderProvider]
7957
- * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
7958
- * @param {Object} [props.layoutConfig]
7959
- * @param {Function} [props.layoutChanged]
7960
- * @param {DescriptionConfig} [props.descriptionConfig]
7961
- * @param {Function} [props.descriptionLoaded]
7962
- * @param {TooltipConfig} [props.tooltipConfig]
7963
- * @param {Function} [props.tooltipLoaded]
7964
- * @param {HTMLElement} [props.feelPopupContainer]
7965
- * @param {Function} [props.getFeelPopupLinks]
7966
- * @param {Object} [props.eventBus]
7949
+ /**
7950
+ * A basic properties panel component. Describes *how* content will be rendered, accepts
7951
+ * data from implementor to describe *what* will be rendered.
7952
+ *
7953
+ * @param {Object} props
7954
+ * @param {Object|Array} props.element
7955
+ * @param {import('./components/Header').HeaderProvider} props.headerProvider
7956
+ * @param {PlaceholderProvider} [props.placeholderProvider]
7957
+ * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
7958
+ * @param {Object} [props.layoutConfig]
7959
+ * @param {Function} [props.layoutChanged]
7960
+ * @param {DescriptionConfig} [props.descriptionConfig]
7961
+ * @param {Function} [props.descriptionLoaded]
7962
+ * @param {TooltipConfig} [props.tooltipConfig]
7963
+ * @param {Function} [props.tooltipLoaded]
7964
+ * @param {HTMLElement} [props.feelPopupContainer]
7965
+ * @param {Function} [props.getFeelPopupLinks]
7966
+ * @param {Object} [props.eventBus]
7967
7967
  */
7968
7968
  function PropertiesPanel$1(props) {
7969
7969
  const {
@@ -8136,11 +8136,11 @@ function createTooltipContext(overrides = {}) {
8136
8136
 
8137
8137
  // hooks //////////////////
8138
8138
 
8139
- /**
8140
- * This hook behaves like useLayoutEffect, but does not trigger on the first render.
8141
- *
8142
- * @param {Function} effect
8143
- * @param {Array} deps
8139
+ /**
8140
+ * This hook behaves like useLayoutEffect, but does not trigger on the first render.
8141
+ *
8142
+ * @param {Function} effect
8143
+ * @param {Array} deps
8144
8144
  */
8145
8145
  function useUpdateLayoutEffect(effect, deps) {
8146
8146
  const isMounted = useRef(false);
@@ -8153,20 +8153,20 @@ function useUpdateLayoutEffect(effect, deps) {
8153
8153
  }, deps);
8154
8154
  }
8155
8155
 
8156
- /**
8157
- * @typedef { {
8158
- * [key: string]: string;
8159
- * } } TranslateReplacements
8156
+ /**
8157
+ * @typedef { {
8158
+ * [key: string]: string;
8159
+ * } } TranslateReplacements
8160
8160
  */
8161
8161
 
8162
- /**
8163
- * A simple translation stub to be used for multi-language support.
8164
- * Can be easily replaced with a more sophisticated solution.
8165
- *
8166
- * @param {string} template to interpolate
8167
- * @param {TranslateReplacements} [replacements] a map with substitutes
8168
- *
8169
- * @return {string} the translated string
8162
+ /**
8163
+ * A simple translation stub to be used for multi-language support.
8164
+ * Can be easily replaced with a more sophisticated solution.
8165
+ *
8166
+ * @param {string} template to interpolate
8167
+ * @param {TranslateReplacements} [replacements] a map with substitutes
8168
+ *
8169
+ * @return {string} the translated string
8170
8170
  */
8171
8171
  function translateFallback(template, replacements) {
8172
8172
  replacements = replacements || {};
@@ -8275,8 +8275,8 @@ function ListItem(props) {
8275
8275
  }
8276
8276
  const noop$1 = () => {};
8277
8277
 
8278
- /**
8279
- * @param {import('../PropertiesPanel').ListGroupDefinition} props
8278
+ /**
8279
+ * @param {import('../PropertiesPanel').ListGroupDefinition} props
8280
8280
  */
8281
8281
  function ListGroup(props) {
8282
8282
  const {
@@ -8467,18 +8467,18 @@ function Checkbox(props) {
8467
8467
  });
8468
8468
  }
8469
8469
 
8470
- /**
8471
- * @param {Object} props
8472
- * @param {Object} props.element
8473
- * @param {String} props.id
8474
- * @param {String} props.description
8475
- * @param {String} props.label
8476
- * @param {Function} props.getValue
8477
- * @param {Function} props.setValue
8478
- * @param {Function} props.onFocus
8479
- * @param {Function} props.onBlur
8480
- * @param {string|import('preact').Component} props.tooltip
8481
- * @param {boolean} [props.disabled]
8470
+ /**
8471
+ * @param {Object} props
8472
+ * @param {Object} props.element
8473
+ * @param {String} props.id
8474
+ * @param {String} props.description
8475
+ * @param {String} props.label
8476
+ * @param {Function} props.getValue
8477
+ * @param {Function} props.setValue
8478
+ * @param {Function} props.onFocus
8479
+ * @param {Function} props.onBlur
8480
+ * @param {string|import('preact').Component} props.tooltip
8481
+ * @param {boolean} [props.disabled]
8482
8482
  */
8483
8483
  function CheckboxEntry(props) {
8484
8484
  const {
@@ -8598,20 +8598,20 @@ function Select(props) {
8598
8598
  });
8599
8599
  }
8600
8600
 
8601
- /**
8602
- * @param {object} props
8603
- * @param {object} props.element
8604
- * @param {string} props.id
8605
- * @param {string} [props.description]
8606
- * @param {string} props.label
8607
- * @param {Function} props.getValue
8608
- * @param {Function} props.setValue
8609
- * @param {Function} props.onFocus
8610
- * @param {Function} props.onBlur
8611
- * @param {Function} props.getOptions
8612
- * @param {boolean} [props.disabled]
8613
- * @param {Function} [props.validate]
8614
- * @param {string|import('preact').Component} props.tooltip
8601
+ /**
8602
+ * @param {object} props
8603
+ * @param {object} props.element
8604
+ * @param {string} props.id
8605
+ * @param {string} [props.description]
8606
+ * @param {string} props.label
8607
+ * @param {Function} props.getValue
8608
+ * @param {Function} props.setValue
8609
+ * @param {Function} props.onFocus
8610
+ * @param {Function} props.onBlur
8611
+ * @param {Function} props.getOptions
8612
+ * @param {boolean} [props.disabled]
8613
+ * @param {Function} [props.validate]
8614
+ * @param {string|import('preact').Component} props.tooltip
8615
8615
  */
8616
8616
  function SelectEntry(props) {
8617
8617
  const {
@@ -8902,20 +8902,20 @@ function Textfield(props) {
8902
8902
  });
8903
8903
  }
8904
8904
 
8905
- /**
8906
- * @param {Object} props
8907
- * @param {Object} props.element
8908
- * @param {String} props.id
8909
- * @param {String} props.description
8910
- * @param {Boolean} props.debounce
8911
- * @param {Boolean} props.disabled
8912
- * @param {String} props.label
8913
- * @param {Function} props.getValue
8914
- * @param {Function} props.setValue
8915
- * @param {Function} props.onFocus
8916
- * @param {Function} props.onBlur
8917
- * @param {string|import('preact').Component} props.tooltip
8918
- * @param {Function} props.validate
8905
+ /**
8906
+ * @param {Object} props
8907
+ * @param {Object} props.element
8908
+ * @param {String} props.id
8909
+ * @param {String} props.description
8910
+ * @param {Boolean} props.debounce
8911
+ * @param {Boolean} props.disabled
8912
+ * @param {String} props.label
8913
+ * @param {Function} props.getValue
8914
+ * @param {Function} props.setValue
8915
+ * @param {Function} props.onFocus
8916
+ * @param {Function} props.onBlur
8917
+ * @param {string|import('preact').Component} props.tooltip
8918
+ * @param {Function} props.validate
8919
8919
  */
8920
8920
  function TextfieldEntry(props) {
8921
8921
  const {
@@ -8990,20 +8990,20 @@ class FeelPopupModule {
8990
8990
  this._eventBus = eventBus;
8991
8991
  }
8992
8992
 
8993
- /**
8994
- * Check if the FEEL popup is open.
8995
- * @return {Boolean}
8993
+ /**
8994
+ * Check if the FEEL popup is open.
8995
+ * @return {Boolean}
8996
8996
  */
8997
8997
  isOpen() {
8998
8998
  return this._eventBus.fire('feelPopup._isOpen');
8999
8999
  }
9000
9000
 
9001
- /**
9002
- * Open the FEEL popup.
9003
- *
9004
- * @param {String} entryId
9005
- * @param {Object} popupConfig
9006
- * @param {HTMLElement} sourceElement
9001
+ /**
9002
+ * Open the FEEL popup.
9003
+ *
9004
+ * @param {String} entryId
9005
+ * @param {Object} popupConfig
9006
+ * @param {HTMLElement} sourceElement
9007
9007
  */
9008
9008
  open(entryId, popupConfig, sourceElement) {
9009
9009
  return this._eventBus.fire('feelPopup._open', {
@@ -9013,8 +9013,8 @@ class FeelPopupModule {
9013
9013
  });
9014
9014
  }
9015
9015
 
9016
- /**
9017
- * Close the FEEL popup.
9016
+ /**
9017
+ * Close the FEEL popup.
9018
9018
  */
9019
9019
  close() {
9020
9020
  return this._eventBus.fire('feelPopup._close');
@@ -9428,7 +9428,7 @@ function Columns(props) {
9428
9428
  editField,
9429
9429
  id
9430
9430
  } = props;
9431
- const debounce = useService('debounce');
9431
+ useService('debounce');
9432
9432
  const formLayoutValidator = useService('formLayoutValidator');
9433
9433
  const validate = useCallback(value => {
9434
9434
  return formLayoutValidator.validateField(field, value ? parseInt(value) : null);
@@ -9454,7 +9454,6 @@ function Columns(props) {
9454
9454
  ...asArray(16).filter(i => i >= MIN_COLUMNS).map(asOption)];
9455
9455
  };
9456
9456
  return SelectEntry({
9457
- debounce,
9458
9457
  element: field,
9459
9458
  id,
9460
9459
  label: 'Columns',
@@ -11934,7 +11933,6 @@ function RepeatableEntry(props) {
11934
11933
  path: ['nonCollapsedItems'],
11935
11934
  label: 'Number of non-collapsing items',
11936
11935
  min: 1,
11937
- defaultValue: 5,
11938
11936
  props
11939
11937
  });
11940
11938
  entries.push(nonCollapseItemsEntry);
@@ -12976,13 +12974,9 @@ function GeneralGroup(field, editField, getService) {
12976
12974
  editField
12977
12975
  }), ...TextEntry({
12978
12976
  field,
12979
- editField,
12980
- getService
12981
- }), ...HtmlEntry({
12977
+ editField}), ...HtmlEntry({
12982
12978
  field,
12983
- editField,
12984
- getService
12985
- }), ...IFrameUrlEntry({
12979
+ editField}), ...IFrameUrlEntry({
12986
12980
  field,
12987
12981
  editField
12988
12982
  }), ...IFrameHeightEntry({
@@ -13304,12 +13298,11 @@ function ValidationType(props) {
13304
13298
  id,
13305
13299
  onChange
13306
13300
  } = props;
13307
- const debounce = useService('debounce');
13301
+ useService('debounce');
13308
13302
  const setValue = validationType => {
13309
13303
  onChange('validationType')(validationType || undefined);
13310
13304
  };
13311
13305
  return SelectEntry({
13312
- debounce,
13313
13306
  element: field,
13314
13307
  getValue: getValue('validationType'),
13315
13308
  id,