@bpmn-io/properties-panel 3.26.0 → 3.26.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.
- package/LICENSE +20 -20
- package/README.md +35 -35
- package/assets/properties-panel.css +3 -3
- package/dist/assets/properties-panel.css +1521 -1517
- package/dist/index.esm.js +534 -568
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +534 -568
- package/dist/index.js.map +1 -1
- package/package.json +91 -91
package/dist/index.esm.js
CHANGED
|
@@ -217,19 +217,19 @@ const ErrorsContext = createContext({
|
|
|
217
217
|
errors: {}
|
|
218
218
|
});
|
|
219
219
|
|
|
220
|
-
/**
|
|
221
|
-
* @typedef {Function} <propertiesPanel.showEntry> callback
|
|
222
|
-
*
|
|
223
|
-
* @example
|
|
224
|
-
*
|
|
225
|
-
* useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
|
|
226
|
-
* // ...
|
|
227
|
-
* });
|
|
228
|
-
*
|
|
229
|
-
* @param {Object} context
|
|
230
|
-
* @param {boolean} [context.focus]
|
|
231
|
-
*
|
|
232
|
-
* @returns void
|
|
220
|
+
/**
|
|
221
|
+
* @typedef {Function} <propertiesPanel.showEntry> callback
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
*
|
|
225
|
+
* useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
|
|
226
|
+
* // ...
|
|
227
|
+
* });
|
|
228
|
+
*
|
|
229
|
+
* @param {Object} context
|
|
230
|
+
* @param {boolean} [context.focus]
|
|
231
|
+
*
|
|
232
|
+
* @returns void
|
|
233
233
|
*/
|
|
234
234
|
|
|
235
235
|
const EventContext = createContext({
|
|
@@ -248,20 +248,20 @@ const TooltipContext = createContext({
|
|
|
248
248
|
getTooltipForId: () => {}
|
|
249
249
|
});
|
|
250
250
|
|
|
251
|
-
/**
|
|
252
|
-
* Accesses the global TooltipContext and returns a tooltip for a given id and element.
|
|
253
|
-
*
|
|
254
|
-
* @example
|
|
255
|
-
* ```jsx
|
|
256
|
-
* function TextField(props) {
|
|
257
|
-
* const tooltip = useTooltipContext('input1', element);
|
|
258
|
-
* }
|
|
259
|
-
* ```
|
|
260
|
-
*
|
|
261
|
-
* @param {string} id
|
|
262
|
-
* @param {object} element
|
|
263
|
-
*
|
|
264
|
-
* @returns {string}
|
|
251
|
+
/**
|
|
252
|
+
* Accesses the global TooltipContext and returns a tooltip for a given id and element.
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```jsx
|
|
256
|
+
* function TextField(props) {
|
|
257
|
+
* const tooltip = useTooltipContext('input1', element);
|
|
258
|
+
* }
|
|
259
|
+
* ```
|
|
260
|
+
*
|
|
261
|
+
* @param {string} id
|
|
262
|
+
* @param {object} element
|
|
263
|
+
*
|
|
264
|
+
* @returns {string}
|
|
265
265
|
*/
|
|
266
266
|
function useTooltipContext(id, element) {
|
|
267
267
|
const {
|
|
@@ -283,7 +283,7 @@ function TooltipWrapper(props) {
|
|
|
283
283
|
return jsx(Tooltip, {
|
|
284
284
|
...props,
|
|
285
285
|
value: value,
|
|
286
|
-
forId:
|
|
286
|
+
forId: `bio-properties-panel-${forId}`
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
289
|
function Tooltip(props) {
|
|
@@ -294,71 +294,52 @@ function Tooltip(props) {
|
|
|
294
294
|
direction = 'right',
|
|
295
295
|
position
|
|
296
296
|
} = props;
|
|
297
|
-
const [visible,
|
|
298
|
-
|
|
297
|
+
const [visible, setVisible] = useState(false);
|
|
298
|
+
|
|
299
|
+
// Tooltip will be shown after SHOW_DELAY ms from hovering over the source element.
|
|
300
|
+
const SHOW_DELAY = 200;
|
|
299
301
|
let timeout = null;
|
|
300
302
|
const wrapperRef = useRef(null);
|
|
301
303
|
const tooltipRef = useRef(null);
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
if (
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
304
|
+
const show = (_, delay) => {
|
|
305
|
+
if (visible) return;
|
|
306
|
+
if (delay) {
|
|
307
|
+
timeout = setTimeout(() => {
|
|
308
|
+
setVisible(true);
|
|
309
|
+
}, SHOW_DELAY);
|
|
310
|
+
} else {
|
|
311
|
+
setVisible(true);
|
|
311
312
|
}
|
|
312
313
|
};
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
};
|
|
317
|
-
const hideTooltipViaEscape = e => {
|
|
318
|
-
e.code === 'Escape' && hideTooltip();
|
|
314
|
+
const hide = () => {
|
|
315
|
+
clearTimeout(timeout);
|
|
316
|
+
setVisible(false);
|
|
319
317
|
};
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
y
|
|
318
|
+
const handleMouseLeave = ({
|
|
319
|
+
relatedTarget
|
|
323
320
|
}) => {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
321
|
+
// Don't hide the tooltip when moving mouse between the wrapper and the tooltip.
|
|
322
|
+
if (relatedTarget === wrapperRef.current || relatedTarget === tooltipRef.current || relatedTarget?.parentElement === tooltipRef.current) {
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
hide();
|
|
327
326
|
};
|
|
328
|
-
|
|
327
|
+
const handleFocusOut = e => {
|
|
329
328
|
const {
|
|
330
|
-
|
|
331
|
-
} =
|
|
332
|
-
|
|
329
|
+
target
|
|
330
|
+
} = e;
|
|
331
|
+
|
|
332
|
+
// Don't hide the tooltip if the wrapper or the tooltip itself is clicked.
|
|
333
|
+
const isHovered = target.matches(':hover') || tooltipRef.current?.matches(':hover');
|
|
334
|
+
if (target === wrapperRef.current && isHovered) {
|
|
335
|
+
e.stopPropagation();
|
|
333
336
|
return;
|
|
334
337
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
}) && !(isFocused && focusedViaKeyboard)) {
|
|
341
|
-
hideTooltip();
|
|
342
|
-
}
|
|
343
|
-
};
|
|
344
|
-
const hideFocusedTooltip = e => {
|
|
345
|
-
const {
|
|
346
|
-
relatedTarget
|
|
347
|
-
} = e;
|
|
348
|
-
const isTooltipChild = el => !!el.closest('.bio-properties-panel-tooltip');
|
|
349
|
-
if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {
|
|
350
|
-
hideTooltip();
|
|
351
|
-
}
|
|
352
|
-
};
|
|
353
|
-
document.addEventListener('wheel', hideHoveredTooltip);
|
|
354
|
-
document.addEventListener('focusout', hideFocusedTooltip);
|
|
355
|
-
document.addEventListener('mousemove', hideHoveredTooltip);
|
|
356
|
-
return () => {
|
|
357
|
-
document.removeEventListener('wheel', hideHoveredTooltip);
|
|
358
|
-
document.removeEventListener('mousemove', hideHoveredTooltip);
|
|
359
|
-
document.removeEventListener('focusout', hideFocusedTooltip);
|
|
360
|
-
};
|
|
361
|
-
}, [wrapperRef.current, visible, focusedViaKeyboard]);
|
|
338
|
+
hide();
|
|
339
|
+
};
|
|
340
|
+
const hideTooltipViaEscape = e => {
|
|
341
|
+
e.code === 'Escape' && hide();
|
|
342
|
+
};
|
|
362
343
|
const renderTooltip = () => {
|
|
363
344
|
return jsxs("div", {
|
|
364
345
|
class: `bio-properties-panel-tooltip ${direction}`,
|
|
@@ -368,6 +349,7 @@ function Tooltip(props) {
|
|
|
368
349
|
style: position || getTooltipPosition(wrapperRef.current),
|
|
369
350
|
ref: tooltipRef,
|
|
370
351
|
onClick: e => e.stopPropagation(),
|
|
352
|
+
onMouseLeave: handleMouseLeave,
|
|
371
353
|
children: [jsx("div", {
|
|
372
354
|
class: "bio-properties-panel-tooltip-content",
|
|
373
355
|
children: value
|
|
@@ -380,54 +362,38 @@ function Tooltip(props) {
|
|
|
380
362
|
class: "bio-properties-panel-tooltip-wrapper",
|
|
381
363
|
tabIndex: "0",
|
|
382
364
|
ref: wrapperRef,
|
|
383
|
-
onMouseEnter:
|
|
384
|
-
onMouseLeave:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
},
|
|
388
|
-
onFocus: showTooltip,
|
|
365
|
+
onMouseEnter: e => show(e, true),
|
|
366
|
+
onMouseLeave: handleMouseLeave,
|
|
367
|
+
onFocus: show,
|
|
368
|
+
onBlur: handleFocusOut,
|
|
389
369
|
onKeyDown: hideTooltipViaEscape,
|
|
390
370
|
children: [props.children, visible ? parent ? createPortal(renderTooltip(), parent.current) : renderTooltip() : null]
|
|
391
371
|
});
|
|
392
372
|
}
|
|
393
373
|
|
|
394
374
|
// helper
|
|
395
|
-
|
|
396
|
-
const {
|
|
397
|
-
top,
|
|
398
|
-
right,
|
|
399
|
-
bottom,
|
|
400
|
-
left
|
|
401
|
-
} = bounds;
|
|
402
|
-
return x >= left && x <= right && y >= top && y <= bottom;
|
|
403
|
-
}
|
|
375
|
+
|
|
404
376
|
function getTooltipPosition(refElement) {
|
|
405
377
|
const refPosition = refElement.getBoundingClientRect();
|
|
406
378
|
const right = `calc(100% - ${refPosition.x}px)`;
|
|
407
379
|
const top = `${refPosition.top - 10}px`;
|
|
408
380
|
return `right: ${right}; top: ${top};`;
|
|
409
381
|
}
|
|
410
|
-
function isHovered(element) {
|
|
411
|
-
return element.matches(':hover');
|
|
412
|
-
}
|
|
413
|
-
function prefixId$9(id) {
|
|
414
|
-
return `bio-properties-panel-${id}`;
|
|
415
|
-
}
|
|
416
382
|
|
|
417
|
-
/**
|
|
418
|
-
* Accesses the global DescriptionContext and returns a description for a given id and element.
|
|
419
|
-
*
|
|
420
|
-
* @example
|
|
421
|
-
* ```jsx
|
|
422
|
-
* function TextField(props) {
|
|
423
|
-
* const description = useDescriptionContext('input1', element);
|
|
424
|
-
* }
|
|
425
|
-
* ```
|
|
426
|
-
*
|
|
427
|
-
* @param {string} id
|
|
428
|
-
* @param {object} element
|
|
429
|
-
*
|
|
430
|
-
* @returns {string}
|
|
383
|
+
/**
|
|
384
|
+
* Accesses the global DescriptionContext and returns a description for a given id and element.
|
|
385
|
+
*
|
|
386
|
+
* @example
|
|
387
|
+
* ```jsx
|
|
388
|
+
* function TextField(props) {
|
|
389
|
+
* const description = useDescriptionContext('input1', element);
|
|
390
|
+
* }
|
|
391
|
+
* ```
|
|
392
|
+
*
|
|
393
|
+
* @param {string} id
|
|
394
|
+
* @param {object} element
|
|
395
|
+
*
|
|
396
|
+
* @returns {string}
|
|
431
397
|
*/
|
|
432
398
|
function useDescriptionContext(id, element) {
|
|
433
399
|
const {
|
|
@@ -449,11 +415,11 @@ function useErrors() {
|
|
|
449
415
|
return errors;
|
|
450
416
|
}
|
|
451
417
|
|
|
452
|
-
/**
|
|
453
|
-
* Subscribe to an event immediately. Update subscription after inputs changed.
|
|
454
|
-
*
|
|
455
|
-
* @param {string} event
|
|
456
|
-
* @param {Function} callback
|
|
418
|
+
/**
|
|
419
|
+
* Subscribe to an event immediately. Update subscription after inputs changed.
|
|
420
|
+
*
|
|
421
|
+
* @param {string} event
|
|
422
|
+
* @param {Function} callback
|
|
457
423
|
*/
|
|
458
424
|
function useEvent(event, callback, eventBus) {
|
|
459
425
|
const eventContext = useContext(EventContext);
|
|
@@ -485,24 +451,24 @@ function useEvent(event, callback, eventBus) {
|
|
|
485
451
|
|
|
486
452
|
const KEY_LENGTH = 6;
|
|
487
453
|
|
|
488
|
-
/**
|
|
489
|
-
* Create a persistent key factory for plain objects without id.
|
|
490
|
-
*
|
|
491
|
-
* @example
|
|
492
|
-
* ```jsx
|
|
493
|
-
* function List({ objects }) {
|
|
494
|
-
* const getKey = useKeyFactory();
|
|
495
|
-
* return (<ol>{
|
|
496
|
-
* objects.map(obj => {
|
|
497
|
-
* const key = getKey(obj);
|
|
498
|
-
* return <li key={key}>obj.name</li>
|
|
499
|
-
* })
|
|
500
|
-
* }</ol>);
|
|
501
|
-
* }
|
|
502
|
-
* ```
|
|
503
|
-
*
|
|
504
|
-
* @param {any[]} dependencies
|
|
505
|
-
* @returns {(element: object) => string}
|
|
454
|
+
/**
|
|
455
|
+
* Create a persistent key factory for plain objects without id.
|
|
456
|
+
*
|
|
457
|
+
* @example
|
|
458
|
+
* ```jsx
|
|
459
|
+
* function List({ objects }) {
|
|
460
|
+
* const getKey = useKeyFactory();
|
|
461
|
+
* return (<ol>{
|
|
462
|
+
* objects.map(obj => {
|
|
463
|
+
* const key = getKey(obj);
|
|
464
|
+
* return <li key={key}>obj.name</li>
|
|
465
|
+
* })
|
|
466
|
+
* }</ol>);
|
|
467
|
+
* }
|
|
468
|
+
* ```
|
|
469
|
+
*
|
|
470
|
+
* @param {any[]} dependencies
|
|
471
|
+
* @returns {(element: object) => string}
|
|
506
472
|
*/
|
|
507
473
|
function useKeyFactory(dependencies = []) {
|
|
508
474
|
const map = useMemo(() => new Map(), dependencies);
|
|
@@ -517,20 +483,20 @@ function useKeyFactory(dependencies = []) {
|
|
|
517
483
|
return getKey;
|
|
518
484
|
}
|
|
519
485
|
|
|
520
|
-
/**
|
|
521
|
-
* Creates a state that persists in the global LayoutContext.
|
|
522
|
-
*
|
|
523
|
-
* @example
|
|
524
|
-
* ```jsx
|
|
525
|
-
* function Group(props) {
|
|
526
|
-
* const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
|
|
527
|
-
* }
|
|
528
|
-
* ```
|
|
529
|
-
*
|
|
530
|
-
* @param {(string|number)[]} path
|
|
531
|
-
* @param {any} [defaultValue]
|
|
532
|
-
*
|
|
533
|
-
* @returns {[ any, Function ]}
|
|
486
|
+
/**
|
|
487
|
+
* Creates a state that persists in the global LayoutContext.
|
|
488
|
+
*
|
|
489
|
+
* @example
|
|
490
|
+
* ```jsx
|
|
491
|
+
* function Group(props) {
|
|
492
|
+
* const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);
|
|
493
|
+
* }
|
|
494
|
+
* ```
|
|
495
|
+
*
|
|
496
|
+
* @param {(string|number)[]} path
|
|
497
|
+
* @param {any} [defaultValue]
|
|
498
|
+
*
|
|
499
|
+
* @returns {[ any, Function ]}
|
|
534
500
|
*/
|
|
535
501
|
function useLayoutState(path, defaultValue) {
|
|
536
502
|
const {
|
|
@@ -544,11 +510,11 @@ function useLayoutState(path, defaultValue) {
|
|
|
544
510
|
return [layoutForKey, setState];
|
|
545
511
|
}
|
|
546
512
|
|
|
547
|
-
/**
|
|
548
|
-
* @pinussilvestrus: we need to introduce our own hook to persist the previous
|
|
549
|
-
* state on updates.
|
|
550
|
-
*
|
|
551
|
-
* cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
|
|
513
|
+
/**
|
|
514
|
+
* @pinussilvestrus: we need to introduce our own hook to persist the previous
|
|
515
|
+
* state on updates.
|
|
516
|
+
*
|
|
517
|
+
* cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
|
|
552
518
|
*/
|
|
553
519
|
|
|
554
520
|
function usePrevious(value) {
|
|
@@ -559,12 +525,12 @@ function usePrevious(value) {
|
|
|
559
525
|
return ref.current;
|
|
560
526
|
}
|
|
561
527
|
|
|
562
|
-
/**
|
|
563
|
-
* Subscribe to `propertiesPanel.showEntry`.
|
|
564
|
-
*
|
|
565
|
-
* @param {string} id
|
|
566
|
-
*
|
|
567
|
-
* @returns {import('preact').Ref}
|
|
528
|
+
/**
|
|
529
|
+
* Subscribe to `propertiesPanel.showEntry`.
|
|
530
|
+
*
|
|
531
|
+
* @param {string} id
|
|
532
|
+
*
|
|
533
|
+
* @returns {import('preact').Ref}
|
|
568
534
|
*/
|
|
569
535
|
function useShowEntryEvent(id) {
|
|
570
536
|
const {
|
|
@@ -595,20 +561,20 @@ function useShowEntryEvent(id) {
|
|
|
595
561
|
return ref;
|
|
596
562
|
}
|
|
597
563
|
|
|
598
|
-
/**
|
|
599
|
-
* @callback setSticky
|
|
600
|
-
* @param {boolean} value
|
|
564
|
+
/**
|
|
565
|
+
* @callback setSticky
|
|
566
|
+
* @param {boolean} value
|
|
601
567
|
*/
|
|
602
568
|
|
|
603
|
-
/**
|
|
604
|
-
* Use IntersectionObserver to identify when DOM element is in sticky mode.
|
|
605
|
-
* If sticky is observered setSticky(true) will be called.
|
|
606
|
-
* If sticky mode is left, setSticky(false) will be called.
|
|
607
|
-
*
|
|
608
|
-
*
|
|
609
|
-
* @param {Object} ref
|
|
610
|
-
* @param {string} scrollContainerSelector
|
|
611
|
-
* @param {setSticky} setSticky
|
|
569
|
+
/**
|
|
570
|
+
* Use IntersectionObserver to identify when DOM element is in sticky mode.
|
|
571
|
+
* If sticky is observered setSticky(true) will be called.
|
|
572
|
+
* If sticky mode is left, setSticky(false) will be called.
|
|
573
|
+
*
|
|
574
|
+
*
|
|
575
|
+
* @param {Object} ref
|
|
576
|
+
* @param {string} scrollContainerSelector
|
|
577
|
+
* @param {setSticky} setSticky
|
|
612
578
|
*/
|
|
613
579
|
function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {
|
|
614
580
|
const [scrollContainer, setScrollContainer] = useState(query(scrollContainerSelector));
|
|
@@ -662,19 +628,19 @@ function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky)
|
|
|
662
628
|
}, [ref.current, scrollContainer, setSticky]);
|
|
663
629
|
}
|
|
664
630
|
|
|
665
|
-
/**
|
|
666
|
-
* Creates a static function reference with changing body.
|
|
667
|
-
* This is necessary when external libraries require a callback function
|
|
668
|
-
* that has references to state variables.
|
|
669
|
-
*
|
|
670
|
-
* Usage:
|
|
671
|
-
* const callback = useStaticCallback((val) => {val === currentState});
|
|
672
|
-
*
|
|
673
|
-
* The `callback` reference is static and can be safely used in external
|
|
674
|
-
* libraries or as a prop that does not cause rerendering of children.
|
|
675
|
-
*
|
|
676
|
-
* @param {Function} callback function with changing reference
|
|
677
|
-
* @returns {Function} static function reference
|
|
631
|
+
/**
|
|
632
|
+
* Creates a static function reference with changing body.
|
|
633
|
+
* This is necessary when external libraries require a callback function
|
|
634
|
+
* that has references to state variables.
|
|
635
|
+
*
|
|
636
|
+
* Usage:
|
|
637
|
+
* const callback = useStaticCallback((val) => {val === currentState});
|
|
638
|
+
*
|
|
639
|
+
* The `callback` reference is static and can be safely used in external
|
|
640
|
+
* libraries or as a prop that does not cause rerendering of children.
|
|
641
|
+
*
|
|
642
|
+
* @param {Function} callback function with changing reference
|
|
643
|
+
* @returns {Function} static function reference
|
|
678
644
|
*/
|
|
679
645
|
function useStaticCallback(callback) {
|
|
680
646
|
const callbackRef = useRef(callback);
|
|
@@ -817,13 +783,13 @@ function DataMarker(props) {
|
|
|
817
783
|
return null;
|
|
818
784
|
}
|
|
819
785
|
|
|
820
|
-
/**
|
|
821
|
-
* @typedef { {
|
|
822
|
-
* text: (element: object) => string,
|
|
823
|
-
* icon?: (element: Object) => import('preact').Component
|
|
824
|
-
* } } PlaceholderDefinition
|
|
825
|
-
*
|
|
826
|
-
* @param { PlaceholderDefinition } props
|
|
786
|
+
/**
|
|
787
|
+
* @typedef { {
|
|
788
|
+
* text: (element: object) => string,
|
|
789
|
+
* icon?: (element: Object) => import('preact').Component
|
|
790
|
+
* } } PlaceholderDefinition
|
|
791
|
+
*
|
|
792
|
+
* @param { PlaceholderDefinition } props
|
|
827
793
|
*/
|
|
828
794
|
function Placeholder(props) {
|
|
829
795
|
const {
|
|
@@ -862,9 +828,9 @@ function Description(props) {
|
|
|
862
828
|
|
|
863
829
|
const noop$6 = () => {};
|
|
864
830
|
|
|
865
|
-
/**
|
|
866
|
-
* Buffer `.focus()` calls while the editor is not initialized.
|
|
867
|
-
* Set Focus inside when the editor is ready.
|
|
831
|
+
/**
|
|
832
|
+
* Buffer `.focus()` calls while the editor is not initialized.
|
|
833
|
+
* Set Focus inside when the editor is ready.
|
|
868
834
|
*/
|
|
869
835
|
const useBufferedFocus$1 = function (editor, ref) {
|
|
870
836
|
const [buffer, setBuffer] = useState(undefined);
|
|
@@ -965,9 +931,9 @@ const CodeEditor$1 = forwardRef((props, ref) => {
|
|
|
965
931
|
|
|
966
932
|
const noop$5 = () => {};
|
|
967
933
|
|
|
968
|
-
/**
|
|
969
|
-
* Buffer `.focus()` calls while the editor is not initialized.
|
|
970
|
-
* Set Focus inside when the editor is ready.
|
|
934
|
+
/**
|
|
935
|
+
* Buffer `.focus()` calls while the editor is not initialized.
|
|
936
|
+
* Set Focus inside when the editor is ready.
|
|
971
937
|
*/
|
|
972
938
|
const useBufferedFocus = function (editor, ref) {
|
|
973
939
|
const [buffer, setBuffer] = useState(undefined);
|
|
@@ -1016,10 +982,10 @@ const CodeEditor = forwardRef((props, ref) => {
|
|
|
1016
982
|
useEffect(() => {
|
|
1017
983
|
let editor;
|
|
1018
984
|
|
|
1019
|
-
/* Trigger FEEL toggle when
|
|
1020
|
-
*
|
|
1021
|
-
* - `backspace` is pressed
|
|
1022
|
-
* - AND the cursor is at the beginning of the input
|
|
985
|
+
/* Trigger FEEL toggle when
|
|
986
|
+
*
|
|
987
|
+
* - `backspace` is pressed
|
|
988
|
+
* - AND the cursor is at the beginning of the input
|
|
1023
989
|
*/
|
|
1024
990
|
const onKeyDown = e => {
|
|
1025
991
|
if (e.key !== 'Backspace' || !editor) {
|
|
@@ -1110,10 +1076,10 @@ function FeelIndicator(props) {
|
|
|
1110
1076
|
|
|
1111
1077
|
const noop$4 = () => {};
|
|
1112
1078
|
|
|
1113
|
-
/**
|
|
1114
|
-
* @param {Object} props
|
|
1115
|
-
* @param {Object} props.label
|
|
1116
|
-
* @param {String} props.feel
|
|
1079
|
+
/**
|
|
1080
|
+
* @param {Object} props
|
|
1081
|
+
* @param {Object} props.label
|
|
1082
|
+
* @param {String} props.feel
|
|
1117
1083
|
*/
|
|
1118
1084
|
function FeelIcon(props) {
|
|
1119
1085
|
const {
|
|
@@ -1148,22 +1114,22 @@ const FeelPopupContext = createContext({
|
|
|
1148
1114
|
source: null
|
|
1149
1115
|
});
|
|
1150
1116
|
|
|
1151
|
-
/**
|
|
1152
|
-
* Add a dragger that calls back the passed function with
|
|
1153
|
-
* { event, delta } on drag.
|
|
1154
|
-
*
|
|
1155
|
-
* @example
|
|
1156
|
-
*
|
|
1157
|
-
* function dragMove(event, delta) {
|
|
1158
|
-
* // we are dragging (!!)
|
|
1159
|
-
* }
|
|
1160
|
-
*
|
|
1161
|
-
* domElement.addEventListener('dragstart', dragger(dragMove));
|
|
1162
|
-
*
|
|
1163
|
-
* @param {Function} fn
|
|
1164
|
-
* @param {Element} [dragPreview]
|
|
1165
|
-
*
|
|
1166
|
-
* @return {Function} drag start callback function
|
|
1117
|
+
/**
|
|
1118
|
+
* Add a dragger that calls back the passed function with
|
|
1119
|
+
* { event, delta } on drag.
|
|
1120
|
+
*
|
|
1121
|
+
* @example
|
|
1122
|
+
*
|
|
1123
|
+
* function dragMove(event, delta) {
|
|
1124
|
+
* // we are dragging (!!)
|
|
1125
|
+
* }
|
|
1126
|
+
*
|
|
1127
|
+
* domElement.addEventListener('dragstart', dragger(dragMove));
|
|
1128
|
+
*
|
|
1129
|
+
* @param {Function} fn
|
|
1130
|
+
* @param {Element} [dragPreview]
|
|
1131
|
+
*
|
|
1132
|
+
* @return {Function} drag start callback function
|
|
1167
1133
|
*/
|
|
1168
1134
|
function createDragger(fn, dragPreview) {
|
|
1169
1135
|
let self;
|
|
@@ -1218,23 +1184,23 @@ function emptyCanvas() {
|
|
|
1218
1184
|
|
|
1219
1185
|
const noop$3 = () => {};
|
|
1220
1186
|
|
|
1221
|
-
/**
|
|
1222
|
-
* A generic popup component.
|
|
1223
|
-
*
|
|
1224
|
-
* @param {Object} props
|
|
1225
|
-
* @param {HTMLElement} [props.container]
|
|
1226
|
-
* @param {string} [props.className]
|
|
1227
|
-
* @param {boolean} [props.delayInitialFocus]
|
|
1228
|
-
* @param {{x: number, y: number}} [props.position]
|
|
1229
|
-
* @param {number} [props.width]
|
|
1230
|
-
* @param {number} [props.height]
|
|
1231
|
-
* @param {Function} props.onClose
|
|
1232
|
-
* @param {Function} [props.onPostActivate]
|
|
1233
|
-
* @param {Function} [props.onPostDeactivate]
|
|
1234
|
-
* @param {boolean} [props.returnFocus]
|
|
1235
|
-
* @param {boolean} [props.closeOnEscape]
|
|
1236
|
-
* @param {string} props.title
|
|
1237
|
-
* @param {Ref} [ref]
|
|
1187
|
+
/**
|
|
1188
|
+
* A generic popup component.
|
|
1189
|
+
*
|
|
1190
|
+
* @param {Object} props
|
|
1191
|
+
* @param {HTMLElement} [props.container]
|
|
1192
|
+
* @param {string} [props.className]
|
|
1193
|
+
* @param {boolean} [props.delayInitialFocus]
|
|
1194
|
+
* @param {{x: number, y: number}} [props.position]
|
|
1195
|
+
* @param {number} [props.width]
|
|
1196
|
+
* @param {number} [props.height]
|
|
1197
|
+
* @param {Function} props.onClose
|
|
1198
|
+
* @param {Function} [props.onPostActivate]
|
|
1199
|
+
* @param {Function} [props.onPostDeactivate]
|
|
1200
|
+
* @param {boolean} [props.returnFocus]
|
|
1201
|
+
* @param {boolean} [props.closeOnEscape]
|
|
1202
|
+
* @param {string} props.title
|
|
1203
|
+
* @param {Ref} [ref]
|
|
1238
1204
|
*/
|
|
1239
1205
|
function PopupComponent(props, globalRef) {
|
|
1240
1206
|
const {
|
|
@@ -1453,12 +1419,12 @@ function getContainerNode(node) {
|
|
|
1453
1419
|
const FEEL_POPUP_WIDTH = 700;
|
|
1454
1420
|
const FEEL_POPUP_HEIGHT = 250;
|
|
1455
1421
|
|
|
1456
|
-
/**
|
|
1457
|
-
* FEEL popup component, built as a singleton. Emits lifecycle events as follows:
|
|
1458
|
-
* - `feelPopup.open` - fired before the popup is mounted
|
|
1459
|
-
* - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
|
|
1460
|
-
* - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
|
|
1461
|
-
* - `feelPopup.closed` - fired after the popup is unmounted
|
|
1422
|
+
/**
|
|
1423
|
+
* FEEL popup component, built as a singleton. Emits lifecycle events as follows:
|
|
1424
|
+
* - `feelPopup.open` - fired before the popup is mounted
|
|
1425
|
+
* - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup
|
|
1426
|
+
* - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup
|
|
1427
|
+
* - `feelPopup.closed` - fired after the popup is unmounted
|
|
1462
1428
|
*/
|
|
1463
1429
|
function FEELPopupRoot(props) {
|
|
1464
1430
|
const {
|
|
@@ -1684,11 +1650,11 @@ function autoCompletionOpen(element) {
|
|
|
1684
1650
|
return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');
|
|
1685
1651
|
}
|
|
1686
1652
|
|
|
1687
|
-
/**
|
|
1688
|
-
* This hook behaves like useEffect, but does not trigger on the first render.
|
|
1689
|
-
*
|
|
1690
|
-
* @param {Function} effect
|
|
1691
|
-
* @param {Array} deps
|
|
1653
|
+
/**
|
|
1654
|
+
* This hook behaves like useEffect, but does not trigger on the first render.
|
|
1655
|
+
*
|
|
1656
|
+
* @param {Function} effect
|
|
1657
|
+
* @param {Array} deps
|
|
1692
1658
|
*/
|
|
1693
1659
|
function useUpdateEffect(effect, deps) {
|
|
1694
1660
|
const isMounted = useRef(false);
|
|
@@ -1766,19 +1732,19 @@ function ToggleSwitch(props) {
|
|
|
1766
1732
|
});
|
|
1767
1733
|
}
|
|
1768
1734
|
|
|
1769
|
-
/**
|
|
1770
|
-
* @param {Object} props
|
|
1771
|
-
* @param {Object} props.element
|
|
1772
|
-
* @param {String} props.id
|
|
1773
|
-
* @param {String} props.description
|
|
1774
|
-
* @param {String} props.label
|
|
1775
|
-
* @param {String} props.switcherLabel
|
|
1776
|
-
* @param {Boolean} props.inline
|
|
1777
|
-
* @param {Function} props.getValue
|
|
1778
|
-
* @param {Function} props.setValue
|
|
1779
|
-
* @param {Function} props.onFocus
|
|
1780
|
-
* @param {Function} props.onBlur
|
|
1781
|
-
* @param {string|import('preact').Component} props.tooltip
|
|
1735
|
+
/**
|
|
1736
|
+
* @param {Object} props
|
|
1737
|
+
* @param {Object} props.element
|
|
1738
|
+
* @param {String} props.id
|
|
1739
|
+
* @param {String} props.description
|
|
1740
|
+
* @param {String} props.label
|
|
1741
|
+
* @param {String} props.switcherLabel
|
|
1742
|
+
* @param {Boolean} props.inline
|
|
1743
|
+
* @param {Function} props.getValue
|
|
1744
|
+
* @param {Function} props.setValue
|
|
1745
|
+
* @param {Function} props.onFocus
|
|
1746
|
+
* @param {Function} props.onBlur
|
|
1747
|
+
* @param {string|import('preact').Component} props.tooltip
|
|
1782
1748
|
*/
|
|
1783
1749
|
function ToggleSwitchEntry(props) {
|
|
1784
1750
|
const {
|
|
@@ -1886,22 +1852,22 @@ function NumberField(props) {
|
|
|
1886
1852
|
});
|
|
1887
1853
|
}
|
|
1888
1854
|
|
|
1889
|
-
/**
|
|
1890
|
-
* @param {Object} props
|
|
1891
|
-
* @param {Boolean} props.debounce
|
|
1892
|
-
* @param {String} props.description
|
|
1893
|
-
* @param {Boolean} props.disabled
|
|
1894
|
-
* @param {Object} props.element
|
|
1895
|
-
* @param {Function} props.getValue
|
|
1896
|
-
* @param {String} props.id
|
|
1897
|
-
* @param {String} props.label
|
|
1898
|
-
* @param {String} props.max
|
|
1899
|
-
* @param {String} props.min
|
|
1900
|
-
* @param {Function} props.setValue
|
|
1901
|
-
* @param {Function} props.onFocus
|
|
1902
|
-
* @param {Function} props.onBlur
|
|
1903
|
-
* @param {String} props.step
|
|
1904
|
-
* @param {Function} props.validate
|
|
1855
|
+
/**
|
|
1856
|
+
* @param {Object} props
|
|
1857
|
+
* @param {Boolean} props.debounce
|
|
1858
|
+
* @param {String} props.description
|
|
1859
|
+
* @param {Boolean} props.disabled
|
|
1860
|
+
* @param {Object} props.element
|
|
1861
|
+
* @param {Function} props.getValue
|
|
1862
|
+
* @param {String} props.id
|
|
1863
|
+
* @param {String} props.label
|
|
1864
|
+
* @param {String} props.max
|
|
1865
|
+
* @param {String} props.min
|
|
1866
|
+
* @param {Function} props.setValue
|
|
1867
|
+
* @param {Function} props.onFocus
|
|
1868
|
+
* @param {Function} props.onBlur
|
|
1869
|
+
* @param {String} props.step
|
|
1870
|
+
* @param {Function} props.validate
|
|
1905
1871
|
*/
|
|
1906
1872
|
function NumberFieldEntry(props) {
|
|
1907
1873
|
const {
|
|
@@ -2387,26 +2353,26 @@ const OptionalFeelCheckbox = forwardRef((props, ref) => {
|
|
|
2387
2353
|
});
|
|
2388
2354
|
});
|
|
2389
2355
|
|
|
2390
|
-
/**
|
|
2391
|
-
* @param {Object} props
|
|
2392
|
-
* @param {Object} props.element
|
|
2393
|
-
* @param {String} props.id
|
|
2394
|
-
* @param {String} props.description
|
|
2395
|
-
* @param {Boolean} props.debounce
|
|
2396
|
-
* @param {Boolean} props.disabled
|
|
2397
|
-
* @param {Boolean} props.feel
|
|
2398
|
-
* @param {String} props.label
|
|
2399
|
-
* @param {Function} props.getValue
|
|
2400
|
-
* @param {Function} props.setValue
|
|
2401
|
-
* @param {Function} props.tooltipContainer
|
|
2402
|
-
* @param {Function} props.validate
|
|
2403
|
-
* @param {Function} props.show
|
|
2404
|
-
* @param {Function} props.example
|
|
2405
|
-
* @param {Function} props.variables
|
|
2406
|
-
* @param {Function} props.onFocus
|
|
2407
|
-
* @param {Function} props.onBlur
|
|
2408
|
-
* @param {string} [props.placeholder]
|
|
2409
|
-
* @param {string|import('preact').Component} props.tooltip
|
|
2356
|
+
/**
|
|
2357
|
+
* @param {Object} props
|
|
2358
|
+
* @param {Object} props.element
|
|
2359
|
+
* @param {String} props.id
|
|
2360
|
+
* @param {String} props.description
|
|
2361
|
+
* @param {Boolean} props.debounce
|
|
2362
|
+
* @param {Boolean} props.disabled
|
|
2363
|
+
* @param {Boolean} props.feel
|
|
2364
|
+
* @param {String} props.label
|
|
2365
|
+
* @param {Function} props.getValue
|
|
2366
|
+
* @param {Function} props.setValue
|
|
2367
|
+
* @param {Function} props.tooltipContainer
|
|
2368
|
+
* @param {Function} props.validate
|
|
2369
|
+
* @param {Function} props.show
|
|
2370
|
+
* @param {Function} props.example
|
|
2371
|
+
* @param {Function} props.variables
|
|
2372
|
+
* @param {Function} props.onFocus
|
|
2373
|
+
* @param {Function} props.onBlur
|
|
2374
|
+
* @param {string} [props.placeholder]
|
|
2375
|
+
* @param {string|import('preact').Component} props.tooltip
|
|
2410
2376
|
*/
|
|
2411
2377
|
function FeelEntry(props) {
|
|
2412
2378
|
const {
|
|
@@ -2493,27 +2459,27 @@ function FeelEntry(props) {
|
|
|
2493
2459
|
});
|
|
2494
2460
|
}
|
|
2495
2461
|
|
|
2496
|
-
/**
|
|
2497
|
-
* @param {Object} props
|
|
2498
|
-
* @param {Object} props.element
|
|
2499
|
-
* @param {String} props.id
|
|
2500
|
-
* @param {String} props.description
|
|
2501
|
-
* @param {Boolean} props.debounce
|
|
2502
|
-
* @param {Boolean} props.disabled
|
|
2503
|
-
* @param {String} props.max
|
|
2504
|
-
* @param {String} props.min
|
|
2505
|
-
* @param {String} props.step
|
|
2506
|
-
* @param {Boolean} props.feel
|
|
2507
|
-
* @param {String} props.label
|
|
2508
|
-
* @param {Function} props.getValue
|
|
2509
|
-
* @param {Function} props.setValue
|
|
2510
|
-
* @param {Function} props.tooltipContainer
|
|
2511
|
-
* @param {Function} props.validate
|
|
2512
|
-
* @param {Function} props.show
|
|
2513
|
-
* @param {Function} props.example
|
|
2514
|
-
* @param {Function} props.variables
|
|
2515
|
-
* @param {Function} props.onFocus
|
|
2516
|
-
* @param {Function} props.onBlur
|
|
2462
|
+
/**
|
|
2463
|
+
* @param {Object} props
|
|
2464
|
+
* @param {Object} props.element
|
|
2465
|
+
* @param {String} props.id
|
|
2466
|
+
* @param {String} props.description
|
|
2467
|
+
* @param {Boolean} props.debounce
|
|
2468
|
+
* @param {Boolean} props.disabled
|
|
2469
|
+
* @param {String} props.max
|
|
2470
|
+
* @param {String} props.min
|
|
2471
|
+
* @param {String} props.step
|
|
2472
|
+
* @param {Boolean} props.feel
|
|
2473
|
+
* @param {String} props.label
|
|
2474
|
+
* @param {Function} props.getValue
|
|
2475
|
+
* @param {Function} props.setValue
|
|
2476
|
+
* @param {Function} props.tooltipContainer
|
|
2477
|
+
* @param {Function} props.validate
|
|
2478
|
+
* @param {Function} props.show
|
|
2479
|
+
* @param {Function} props.example
|
|
2480
|
+
* @param {Function} props.variables
|
|
2481
|
+
* @param {Function} props.onFocus
|
|
2482
|
+
* @param {Function} props.onBlur
|
|
2517
2483
|
*/
|
|
2518
2484
|
function FeelNumberEntry(props) {
|
|
2519
2485
|
return jsx(FeelEntry, {
|
|
@@ -2523,25 +2489,25 @@ function FeelNumberEntry(props) {
|
|
|
2523
2489
|
});
|
|
2524
2490
|
}
|
|
2525
2491
|
|
|
2526
|
-
/**
|
|
2527
|
-
* @param {Object} props
|
|
2528
|
-
* @param {Object} props.element
|
|
2529
|
-
* @param {String} props.id
|
|
2530
|
-
* @param {String} props.description
|
|
2531
|
-
* @param {Boolean} props.debounce
|
|
2532
|
-
* @param {Boolean} props.disabled
|
|
2533
|
-
* @param {Boolean} props.feel
|
|
2534
|
-
* @param {String} props.label
|
|
2535
|
-
* @param {Function} props.getValue
|
|
2536
|
-
* @param {Function} props.setValue
|
|
2537
|
-
* @param {Function} props.tooltipContainer
|
|
2538
|
-
* @param {Function} props.validate
|
|
2539
|
-
* @param {Function} props.show
|
|
2540
|
-
* @param {Function} props.example
|
|
2541
|
-
* @param {Function} props.variables
|
|
2542
|
-
* @param {Function} props.onFocus
|
|
2543
|
-
* @param {Function} props.onBlur
|
|
2544
|
-
* @param {string} [props.placeholder]
|
|
2492
|
+
/**
|
|
2493
|
+
* @param {Object} props
|
|
2494
|
+
* @param {Object} props.element
|
|
2495
|
+
* @param {String} props.id
|
|
2496
|
+
* @param {String} props.description
|
|
2497
|
+
* @param {Boolean} props.debounce
|
|
2498
|
+
* @param {Boolean} props.disabled
|
|
2499
|
+
* @param {Boolean} props.feel
|
|
2500
|
+
* @param {String} props.label
|
|
2501
|
+
* @param {Function} props.getValue
|
|
2502
|
+
* @param {Function} props.setValue
|
|
2503
|
+
* @param {Function} props.tooltipContainer
|
|
2504
|
+
* @param {Function} props.validate
|
|
2505
|
+
* @param {Function} props.show
|
|
2506
|
+
* @param {Function} props.example
|
|
2507
|
+
* @param {Function} props.variables
|
|
2508
|
+
* @param {Function} props.onFocus
|
|
2509
|
+
* @param {Function} props.onBlur
|
|
2510
|
+
* @param {string} [props.placeholder]
|
|
2545
2511
|
*/
|
|
2546
2512
|
function FeelTextAreaEntry(props) {
|
|
2547
2513
|
return jsx(FeelEntry, {
|
|
@@ -2551,24 +2517,24 @@ function FeelTextAreaEntry(props) {
|
|
|
2551
2517
|
});
|
|
2552
2518
|
}
|
|
2553
2519
|
|
|
2554
|
-
/**
|
|
2555
|
-
* @param {Object} props
|
|
2556
|
-
* @param {Object} props.element
|
|
2557
|
-
* @param {String} props.id
|
|
2558
|
-
* @param {String} props.description
|
|
2559
|
-
* @param {Boolean} props.debounce
|
|
2560
|
-
* @param {Boolean} props.disabled
|
|
2561
|
-
* @param {Boolean} props.feel
|
|
2562
|
-
* @param {String} props.label
|
|
2563
|
-
* @param {Function} props.getValue
|
|
2564
|
-
* @param {Function} props.setValue
|
|
2565
|
-
* @param {Function} props.tooltipContainer
|
|
2566
|
-
* @param {Function} props.validate
|
|
2567
|
-
* @param {Function} props.show
|
|
2568
|
-
* @param {Function} props.example
|
|
2569
|
-
* @param {Function} props.variables
|
|
2570
|
-
* @param {Function} props.onFocus
|
|
2571
|
-
* @param {Function} props.onBlur
|
|
2520
|
+
/**
|
|
2521
|
+
* @param {Object} props
|
|
2522
|
+
* @param {Object} props.element
|
|
2523
|
+
* @param {String} props.id
|
|
2524
|
+
* @param {String} props.description
|
|
2525
|
+
* @param {Boolean} props.debounce
|
|
2526
|
+
* @param {Boolean} props.disabled
|
|
2527
|
+
* @param {Boolean} props.feel
|
|
2528
|
+
* @param {String} props.label
|
|
2529
|
+
* @param {Function} props.getValue
|
|
2530
|
+
* @param {Function} props.setValue
|
|
2531
|
+
* @param {Function} props.tooltipContainer
|
|
2532
|
+
* @param {Function} props.validate
|
|
2533
|
+
* @param {Function} props.show
|
|
2534
|
+
* @param {Function} props.example
|
|
2535
|
+
* @param {Function} props.variables
|
|
2536
|
+
* @param {Function} props.onFocus
|
|
2537
|
+
* @param {Function} props.onBlur
|
|
2572
2538
|
*/
|
|
2573
2539
|
function FeelToggleSwitchEntry(props) {
|
|
2574
2540
|
return jsx(FeelEntry, {
|
|
@@ -2578,24 +2544,24 @@ function FeelToggleSwitchEntry(props) {
|
|
|
2578
2544
|
});
|
|
2579
2545
|
}
|
|
2580
2546
|
|
|
2581
|
-
/**
|
|
2582
|
-
* @param {Object} props
|
|
2583
|
-
* @param {Object} props.element
|
|
2584
|
-
* @param {String} props.id
|
|
2585
|
-
* @param {String} props.description
|
|
2586
|
-
* @param {Boolean} props.debounce
|
|
2587
|
-
* @param {Boolean} props.disabled
|
|
2588
|
-
* @param {Boolean} props.feel
|
|
2589
|
-
* @param {String} props.label
|
|
2590
|
-
* @param {Function} props.getValue
|
|
2591
|
-
* @param {Function} props.setValue
|
|
2592
|
-
* @param {Function} props.tooltipContainer
|
|
2593
|
-
* @param {Function} props.validate
|
|
2594
|
-
* @param {Function} props.show
|
|
2595
|
-
* @param {Function} props.example
|
|
2596
|
-
* @param {Function} props.variables
|
|
2597
|
-
* @param {Function} props.onFocus
|
|
2598
|
-
* @param {Function} props.onBlur
|
|
2547
|
+
/**
|
|
2548
|
+
* @param {Object} props
|
|
2549
|
+
* @param {Object} props.element
|
|
2550
|
+
* @param {String} props.id
|
|
2551
|
+
* @param {String} props.description
|
|
2552
|
+
* @param {Boolean} props.debounce
|
|
2553
|
+
* @param {Boolean} props.disabled
|
|
2554
|
+
* @param {Boolean} props.feel
|
|
2555
|
+
* @param {String} props.label
|
|
2556
|
+
* @param {Function} props.getValue
|
|
2557
|
+
* @param {Function} props.setValue
|
|
2558
|
+
* @param {Function} props.tooltipContainer
|
|
2559
|
+
* @param {Function} props.validate
|
|
2560
|
+
* @param {Function} props.show
|
|
2561
|
+
* @param {Function} props.example
|
|
2562
|
+
* @param {Function} props.variables
|
|
2563
|
+
* @param {Function} props.onFocus
|
|
2564
|
+
* @param {Function} props.onBlur
|
|
2599
2565
|
*/
|
|
2600
2566
|
function FeelCheckboxEntry(props) {
|
|
2601
2567
|
return jsx(FeelEntry, {
|
|
@@ -2605,26 +2571,26 @@ function FeelCheckboxEntry(props) {
|
|
|
2605
2571
|
});
|
|
2606
2572
|
}
|
|
2607
2573
|
|
|
2608
|
-
/**
|
|
2609
|
-
* @param {Object} props
|
|
2610
|
-
* @param {Object} props.element
|
|
2611
|
-
* @param {String} props.id
|
|
2612
|
-
* @param {String} props.description
|
|
2613
|
-
* @param {String} props.hostLanguage
|
|
2614
|
-
* @param {Boolean} props.singleLine
|
|
2615
|
-
* @param {Boolean} props.debounce
|
|
2616
|
-
* @param {Boolean} props.disabled
|
|
2617
|
-
* @param {Boolean} props.feel
|
|
2618
|
-
* @param {String} props.label
|
|
2619
|
-
* @param {Function} props.getValue
|
|
2620
|
-
* @param {Function} props.setValue
|
|
2621
|
-
* @param {Function} props.tooltipContainer
|
|
2622
|
-
* @param {Function} props.validate
|
|
2623
|
-
* @param {Function} props.show
|
|
2624
|
-
* @param {Function} props.example
|
|
2625
|
-
* @param {Function} props.variables
|
|
2626
|
-
* @param {Function} props.onFocus
|
|
2627
|
-
* @param {Function} props.onBlur
|
|
2574
|
+
/**
|
|
2575
|
+
* @param {Object} props
|
|
2576
|
+
* @param {Object} props.element
|
|
2577
|
+
* @param {String} props.id
|
|
2578
|
+
* @param {String} props.description
|
|
2579
|
+
* @param {String} props.hostLanguage
|
|
2580
|
+
* @param {Boolean} props.singleLine
|
|
2581
|
+
* @param {Boolean} props.debounce
|
|
2582
|
+
* @param {Boolean} props.disabled
|
|
2583
|
+
* @param {Boolean} props.feel
|
|
2584
|
+
* @param {String} props.label
|
|
2585
|
+
* @param {Function} props.getValue
|
|
2586
|
+
* @param {Function} props.setValue
|
|
2587
|
+
* @param {Function} props.tooltipContainer
|
|
2588
|
+
* @param {Function} props.validate
|
|
2589
|
+
* @param {Function} props.show
|
|
2590
|
+
* @param {Function} props.example
|
|
2591
|
+
* @param {Function} props.variables
|
|
2592
|
+
* @param {Function} props.onFocus
|
|
2593
|
+
* @param {Function} props.onBlur
|
|
2628
2594
|
*/
|
|
2629
2595
|
function FeelTemplatingEntry(props) {
|
|
2630
2596
|
return jsx(FeelEntry, {
|
|
@@ -2693,85 +2659,85 @@ const DEFAULT_LAYOUT = {};
|
|
|
2693
2659
|
const DEFAULT_DESCRIPTION = {};
|
|
2694
2660
|
const DEFAULT_TOOLTIP = {};
|
|
2695
2661
|
|
|
2696
|
-
/**
|
|
2697
|
-
* @typedef { {
|
|
2698
|
-
* component: import('preact').Component,
|
|
2699
|
-
* id: String,
|
|
2700
|
-
* isEdited?: Function
|
|
2701
|
-
* } } EntryDefinition
|
|
2702
|
-
*
|
|
2703
|
-
* @typedef { {
|
|
2704
|
-
* autoFocusEntry: String,
|
|
2705
|
-
* autoOpen?: Boolean,
|
|
2706
|
-
* entries: Array<EntryDefinition>,
|
|
2707
|
-
* id: String,
|
|
2708
|
-
* label: String,
|
|
2709
|
-
* remove: (event: MouseEvent) => void
|
|
2710
|
-
* } } ListItemDefinition
|
|
2711
|
-
*
|
|
2712
|
-
* @typedef { {
|
|
2713
|
-
* add: (event: MouseEvent) => void,
|
|
2714
|
-
* component: import('preact').Component,
|
|
2715
|
-
* element: Object,
|
|
2716
|
-
* id: String,
|
|
2717
|
-
* items: Array<ListItemDefinition>,
|
|
2718
|
-
* label: String,
|
|
2719
|
-
* shouldOpen?: Boolean
|
|
2720
|
-
* } } ListGroupDefinition
|
|
2721
|
-
*
|
|
2722
|
-
* @typedef { {
|
|
2723
|
-
* component?: import('preact').Component,
|
|
2724
|
-
* entries: Array<EntryDefinition>,
|
|
2725
|
-
* id: String,
|
|
2726
|
-
* label: String,
|
|
2727
|
-
* shouldOpen?: Boolean
|
|
2728
|
-
* } } GroupDefinition
|
|
2729
|
-
*
|
|
2730
|
-
* @typedef { {
|
|
2731
|
-
* [id: String]: GetDescriptionFunction
|
|
2732
|
-
* } } DescriptionConfig
|
|
2733
|
-
*
|
|
2734
|
-
* @typedef { {
|
|
2735
|
-
* [id: String]: GetTooltipFunction
|
|
2736
|
-
* } } TooltipConfig
|
|
2737
|
-
*
|
|
2738
|
-
* @callback { {
|
|
2739
|
-
* @param {string} id
|
|
2740
|
-
* @param {Object} element
|
|
2741
|
-
* @returns {string}
|
|
2742
|
-
* } } GetDescriptionFunction
|
|
2743
|
-
*
|
|
2744
|
-
* @callback { {
|
|
2745
|
-
* @param {string} id
|
|
2746
|
-
* @param {Object} element
|
|
2747
|
-
* @returns {string}
|
|
2748
|
-
* } } GetTooltipFunction
|
|
2749
|
-
*
|
|
2750
|
-
* @typedef { {
|
|
2751
|
-
* getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
|
|
2752
|
-
* getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
|
|
2753
|
-
* } } PlaceholderProvider
|
|
2754
|
-
*
|
|
2662
|
+
/**
|
|
2663
|
+
* @typedef { {
|
|
2664
|
+
* component: import('preact').Component,
|
|
2665
|
+
* id: String,
|
|
2666
|
+
* isEdited?: Function
|
|
2667
|
+
* } } EntryDefinition
|
|
2668
|
+
*
|
|
2669
|
+
* @typedef { {
|
|
2670
|
+
* autoFocusEntry: String,
|
|
2671
|
+
* autoOpen?: Boolean,
|
|
2672
|
+
* entries: Array<EntryDefinition>,
|
|
2673
|
+
* id: String,
|
|
2674
|
+
* label: String,
|
|
2675
|
+
* remove: (event: MouseEvent) => void
|
|
2676
|
+
* } } ListItemDefinition
|
|
2677
|
+
*
|
|
2678
|
+
* @typedef { {
|
|
2679
|
+
* add: (event: MouseEvent) => void,
|
|
2680
|
+
* component: import('preact').Component,
|
|
2681
|
+
* element: Object,
|
|
2682
|
+
* id: String,
|
|
2683
|
+
* items: Array<ListItemDefinition>,
|
|
2684
|
+
* label: String,
|
|
2685
|
+
* shouldOpen?: Boolean
|
|
2686
|
+
* } } ListGroupDefinition
|
|
2687
|
+
*
|
|
2688
|
+
* @typedef { {
|
|
2689
|
+
* component?: import('preact').Component,
|
|
2690
|
+
* entries: Array<EntryDefinition>,
|
|
2691
|
+
* id: String,
|
|
2692
|
+
* label: String,
|
|
2693
|
+
* shouldOpen?: Boolean
|
|
2694
|
+
* } } GroupDefinition
|
|
2695
|
+
*
|
|
2696
|
+
* @typedef { {
|
|
2697
|
+
* [id: String]: GetDescriptionFunction
|
|
2698
|
+
* } } DescriptionConfig
|
|
2699
|
+
*
|
|
2700
|
+
* @typedef { {
|
|
2701
|
+
* [id: String]: GetTooltipFunction
|
|
2702
|
+
* } } TooltipConfig
|
|
2703
|
+
*
|
|
2704
|
+
* @callback { {
|
|
2705
|
+
* @param {string} id
|
|
2706
|
+
* @param {Object} element
|
|
2707
|
+
* @returns {string}
|
|
2708
|
+
* } } GetDescriptionFunction
|
|
2709
|
+
*
|
|
2710
|
+
* @callback { {
|
|
2711
|
+
* @param {string} id
|
|
2712
|
+
* @param {Object} element
|
|
2713
|
+
* @returns {string}
|
|
2714
|
+
* } } GetTooltipFunction
|
|
2715
|
+
*
|
|
2716
|
+
* @typedef { {
|
|
2717
|
+
* getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,
|
|
2718
|
+
* getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition
|
|
2719
|
+
* } } PlaceholderProvider
|
|
2720
|
+
*
|
|
2755
2721
|
*/
|
|
2756
2722
|
|
|
2757
|
-
/**
|
|
2758
|
-
* A basic properties panel component. Describes *how* content will be rendered, accepts
|
|
2759
|
-
* data from implementor to describe *what* will be rendered.
|
|
2760
|
-
*
|
|
2761
|
-
* @param {Object} props
|
|
2762
|
-
* @param {Object|Array} props.element
|
|
2763
|
-
* @param {import('./components/Header').HeaderProvider} props.headerProvider
|
|
2764
|
-
* @param {PlaceholderProvider} [props.placeholderProvider]
|
|
2765
|
-
* @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
|
|
2766
|
-
* @param {Object} [props.layoutConfig]
|
|
2767
|
-
* @param {Function} [props.layoutChanged]
|
|
2768
|
-
* @param {DescriptionConfig} [props.descriptionConfig]
|
|
2769
|
-
* @param {Function} [props.descriptionLoaded]
|
|
2770
|
-
* @param {TooltipConfig} [props.tooltipConfig]
|
|
2771
|
-
* @param {Function} [props.tooltipLoaded]
|
|
2772
|
-
* @param {HTMLElement} [props.feelPopupContainer]
|
|
2773
|
-
* @param {Function} [props.getFeelPopupLinks]
|
|
2774
|
-
* @param {Object} [props.eventBus]
|
|
2723
|
+
/**
|
|
2724
|
+
* A basic properties panel component. Describes *how* content will be rendered, accepts
|
|
2725
|
+
* data from implementor to describe *what* will be rendered.
|
|
2726
|
+
*
|
|
2727
|
+
* @param {Object} props
|
|
2728
|
+
* @param {Object|Array} props.element
|
|
2729
|
+
* @param {import('./components/Header').HeaderProvider} props.headerProvider
|
|
2730
|
+
* @param {PlaceholderProvider} [props.placeholderProvider]
|
|
2731
|
+
* @param {Array<GroupDefinition|ListGroupDefinition>} props.groups
|
|
2732
|
+
* @param {Object} [props.layoutConfig]
|
|
2733
|
+
* @param {Function} [props.layoutChanged]
|
|
2734
|
+
* @param {DescriptionConfig} [props.descriptionConfig]
|
|
2735
|
+
* @param {Function} [props.descriptionLoaded]
|
|
2736
|
+
* @param {TooltipConfig} [props.tooltipConfig]
|
|
2737
|
+
* @param {Function} [props.tooltipLoaded]
|
|
2738
|
+
* @param {HTMLElement} [props.feelPopupContainer]
|
|
2739
|
+
* @param {Function} [props.getFeelPopupLinks]
|
|
2740
|
+
* @param {Object} [props.eventBus]
|
|
2775
2741
|
*/
|
|
2776
2742
|
function PropertiesPanel(props) {
|
|
2777
2743
|
const {
|
|
@@ -2944,11 +2910,11 @@ function createTooltipContext(overrides = {}) {
|
|
|
2944
2910
|
|
|
2945
2911
|
// hooks //////////////////
|
|
2946
2912
|
|
|
2947
|
-
/**
|
|
2948
|
-
* This hook behaves like useLayoutEffect, but does not trigger on the first render.
|
|
2949
|
-
*
|
|
2950
|
-
* @param {Function} effect
|
|
2951
|
-
* @param {Array} deps
|
|
2913
|
+
/**
|
|
2914
|
+
* This hook behaves like useLayoutEffect, but does not trigger on the first render.
|
|
2915
|
+
*
|
|
2916
|
+
* @param {Function} effect
|
|
2917
|
+
* @param {Array} deps
|
|
2952
2918
|
*/
|
|
2953
2919
|
function useUpdateLayoutEffect(effect, deps) {
|
|
2954
2920
|
const isMounted = useRef(false);
|
|
@@ -3023,15 +2989,15 @@ function MenuItem({
|
|
|
3023
2989
|
});
|
|
3024
2990
|
}
|
|
3025
2991
|
|
|
3026
|
-
/**
|
|
3027
|
-
*
|
|
3028
|
-
* @param {Array<null | Element>} ignoredElements
|
|
3029
|
-
* @param {Function} callback
|
|
2992
|
+
/**
|
|
2993
|
+
*
|
|
2994
|
+
* @param {Array<null | Element>} ignoredElements
|
|
2995
|
+
* @param {Function} callback
|
|
3030
2996
|
*/
|
|
3031
2997
|
function useGlobalClick(ignoredElements, callback) {
|
|
3032
2998
|
useEffect(() => {
|
|
3033
|
-
/**
|
|
3034
|
-
* @param {MouseEvent} event
|
|
2999
|
+
/**
|
|
3000
|
+
* @param {MouseEvent} event
|
|
3035
3001
|
*/
|
|
3036
3002
|
function listener(event) {
|
|
3037
3003
|
if (ignoredElements.some(element => element && element.contains(event.target))) {
|
|
@@ -3064,20 +3030,20 @@ function HeaderButton(props) {
|
|
|
3064
3030
|
});
|
|
3065
3031
|
}
|
|
3066
3032
|
|
|
3067
|
-
/**
|
|
3068
|
-
* @typedef { {
|
|
3069
|
-
* [key: string]: string;
|
|
3070
|
-
* } } TranslateReplacements
|
|
3033
|
+
/**
|
|
3034
|
+
* @typedef { {
|
|
3035
|
+
* [key: string]: string;
|
|
3036
|
+
* } } TranslateReplacements
|
|
3071
3037
|
*/
|
|
3072
3038
|
|
|
3073
|
-
/**
|
|
3074
|
-
* A simple translation stub to be used for multi-language support.
|
|
3075
|
-
* Can be easily replaced with a more sophisticated solution.
|
|
3076
|
-
*
|
|
3077
|
-
* @param {string} template to interpolate
|
|
3078
|
-
* @param {TranslateReplacements} [replacements] a map with substitutes
|
|
3079
|
-
*
|
|
3080
|
-
* @return {string} the translated string
|
|
3039
|
+
/**
|
|
3040
|
+
* A simple translation stub to be used for multi-language support.
|
|
3041
|
+
* Can be easily replaced with a more sophisticated solution.
|
|
3042
|
+
*
|
|
3043
|
+
* @param {string} template to interpolate
|
|
3044
|
+
* @param {TranslateReplacements} [replacements] a map with substitutes
|
|
3045
|
+
*
|
|
3046
|
+
* @return {string} the translated string
|
|
3081
3047
|
*/
|
|
3082
3048
|
function translateFallback(template, replacements) {
|
|
3083
3049
|
replacements = replacements || {};
|
|
@@ -3189,8 +3155,8 @@ function ListItem(props) {
|
|
|
3189
3155
|
|
|
3190
3156
|
const noop$1 = () => {};
|
|
3191
3157
|
|
|
3192
|
-
/**
|
|
3193
|
-
* @param {import('../PropertiesPanel').ListGroupDefinition} props
|
|
3158
|
+
/**
|
|
3159
|
+
* @param {import('../PropertiesPanel').ListGroupDefinition} props
|
|
3194
3160
|
*/
|
|
3195
3161
|
function ListGroup(props) {
|
|
3196
3162
|
const {
|
|
@@ -3382,18 +3348,18 @@ function Checkbox(props) {
|
|
|
3382
3348
|
});
|
|
3383
3349
|
}
|
|
3384
3350
|
|
|
3385
|
-
/**
|
|
3386
|
-
* @param {Object} props
|
|
3387
|
-
* @param {Object} props.element
|
|
3388
|
-
* @param {String} props.id
|
|
3389
|
-
* @param {String} props.description
|
|
3390
|
-
* @param {String} props.label
|
|
3391
|
-
* @param {Function} props.getValue
|
|
3392
|
-
* @param {Function} props.setValue
|
|
3393
|
-
* @param {Function} props.onFocus
|
|
3394
|
-
* @param {Function} props.onBlur
|
|
3395
|
-
* @param {string|import('preact').Component} props.tooltip
|
|
3396
|
-
* @param {boolean} [props.disabled]
|
|
3351
|
+
/**
|
|
3352
|
+
* @param {Object} props
|
|
3353
|
+
* @param {Object} props.element
|
|
3354
|
+
* @param {String} props.id
|
|
3355
|
+
* @param {String} props.description
|
|
3356
|
+
* @param {String} props.label
|
|
3357
|
+
* @param {Function} props.getValue
|
|
3358
|
+
* @param {Function} props.setValue
|
|
3359
|
+
* @param {Function} props.onFocus
|
|
3360
|
+
* @param {Function} props.onBlur
|
|
3361
|
+
* @param {string|import('preact').Component} props.tooltip
|
|
3362
|
+
* @param {boolean} [props.disabled]
|
|
3397
3363
|
*/
|
|
3398
3364
|
function CheckboxEntry(props) {
|
|
3399
3365
|
const {
|
|
@@ -3445,19 +3411,19 @@ function prefixId$4(id) {
|
|
|
3445
3411
|
|
|
3446
3412
|
const noop = () => {};
|
|
3447
3413
|
|
|
3448
|
-
/**
|
|
3449
|
-
* @param {Object} props
|
|
3450
|
-
* @param {Object} props.element
|
|
3451
|
-
* @param {String} props.id
|
|
3452
|
-
* @param {String} props.description
|
|
3453
|
-
* @param {Boolean} props.debounce
|
|
3454
|
-
* @param {Boolean} props.disabled
|
|
3455
|
-
* @param {String} props.label
|
|
3456
|
-
* @param {Function} props.getValue
|
|
3457
|
-
* @param {Function} props.setValue
|
|
3458
|
-
* @param {Function} props.tooltipContainer
|
|
3459
|
-
* @param {Function} props.validate
|
|
3460
|
-
* @param {Function} props.show
|
|
3414
|
+
/**
|
|
3415
|
+
* @param {Object} props
|
|
3416
|
+
* @param {Object} props.element
|
|
3417
|
+
* @param {String} props.id
|
|
3418
|
+
* @param {String} props.description
|
|
3419
|
+
* @param {Boolean} props.debounce
|
|
3420
|
+
* @param {Boolean} props.disabled
|
|
3421
|
+
* @param {String} props.label
|
|
3422
|
+
* @param {Function} props.getValue
|
|
3423
|
+
* @param {Function} props.setValue
|
|
3424
|
+
* @param {Function} props.tooltipContainer
|
|
3425
|
+
* @param {Function} props.validate
|
|
3426
|
+
* @param {Function} props.show
|
|
3461
3427
|
*/
|
|
3462
3428
|
function TemplatingEntry(props) {
|
|
3463
3429
|
const {
|
|
@@ -3632,8 +3598,8 @@ function List(props) {
|
|
|
3632
3598
|
}
|
|
3633
3599
|
}, [open, hasItems]);
|
|
3634
3600
|
|
|
3635
|
-
/**
|
|
3636
|
-
* @param {MouseEvent} event
|
|
3601
|
+
/**
|
|
3602
|
+
* @param {MouseEvent} event
|
|
3637
3603
|
*/
|
|
3638
3604
|
function addItem(event) {
|
|
3639
3605
|
event.stopPropagation();
|
|
@@ -3825,20 +3791,20 @@ function Select(props) {
|
|
|
3825
3791
|
});
|
|
3826
3792
|
}
|
|
3827
3793
|
|
|
3828
|
-
/**
|
|
3829
|
-
* @param {object} props
|
|
3830
|
-
* @param {object} props.element
|
|
3831
|
-
* @param {string} props.id
|
|
3832
|
-
* @param {string} [props.description]
|
|
3833
|
-
* @param {string} props.label
|
|
3834
|
-
* @param {Function} props.getValue
|
|
3835
|
-
* @param {Function} props.setValue
|
|
3836
|
-
* @param {Function} props.onFocus
|
|
3837
|
-
* @param {Function} props.onBlur
|
|
3838
|
-
* @param {Function} props.getOptions
|
|
3839
|
-
* @param {boolean} [props.disabled]
|
|
3840
|
-
* @param {Function} [props.validate]
|
|
3841
|
-
* @param {string|import('preact').Component} props.tooltip
|
|
3794
|
+
/**
|
|
3795
|
+
* @param {object} props
|
|
3796
|
+
* @param {object} props.element
|
|
3797
|
+
* @param {string} props.id
|
|
3798
|
+
* @param {string} [props.description]
|
|
3799
|
+
* @param {string} props.label
|
|
3800
|
+
* @param {Function} props.getValue
|
|
3801
|
+
* @param {Function} props.setValue
|
|
3802
|
+
* @param {Function} props.onFocus
|
|
3803
|
+
* @param {Function} props.onBlur
|
|
3804
|
+
* @param {Function} props.getOptions
|
|
3805
|
+
* @param {boolean} [props.disabled]
|
|
3806
|
+
* @param {Function} [props.validate]
|
|
3807
|
+
* @param {string|import('preact').Component} props.tooltip
|
|
3842
3808
|
*/
|
|
3843
3809
|
function SelectEntry(props) {
|
|
3844
3810
|
const {
|
|
@@ -4185,20 +4151,20 @@ function Textfield(props) {
|
|
|
4185
4151
|
});
|
|
4186
4152
|
}
|
|
4187
4153
|
|
|
4188
|
-
/**
|
|
4189
|
-
* @param {Object} props
|
|
4190
|
-
* @param {Object} props.element
|
|
4191
|
-
* @param {String} props.id
|
|
4192
|
-
* @param {String} props.description
|
|
4193
|
-
* @param {Boolean} props.debounce
|
|
4194
|
-
* @param {Boolean} props.disabled
|
|
4195
|
-
* @param {String} props.label
|
|
4196
|
-
* @param {Function} props.getValue
|
|
4197
|
-
* @param {Function} props.setValue
|
|
4198
|
-
* @param {Function} props.onFocus
|
|
4199
|
-
* @param {Function} props.onBlur
|
|
4200
|
-
* @param {string|import('preact').Component} props.tooltip
|
|
4201
|
-
* @param {Function} props.validate
|
|
4154
|
+
/**
|
|
4155
|
+
* @param {Object} props
|
|
4156
|
+
* @param {Object} props.element
|
|
4157
|
+
* @param {String} props.id
|
|
4158
|
+
* @param {String} props.description
|
|
4159
|
+
* @param {Boolean} props.debounce
|
|
4160
|
+
* @param {Boolean} props.disabled
|
|
4161
|
+
* @param {String} props.label
|
|
4162
|
+
* @param {Function} props.getValue
|
|
4163
|
+
* @param {Function} props.setValue
|
|
4164
|
+
* @param {Function} props.onFocus
|
|
4165
|
+
* @param {Function} props.onBlur
|
|
4166
|
+
* @param {string|import('preact').Component} props.tooltip
|
|
4167
|
+
* @param {Function} props.validate
|
|
4202
4168
|
*/
|
|
4203
4169
|
function TextfieldEntry(props) {
|
|
4204
4170
|
const {
|
|
@@ -4291,20 +4257,20 @@ class FeelPopupModule {
|
|
|
4291
4257
|
this._eventBus = eventBus;
|
|
4292
4258
|
}
|
|
4293
4259
|
|
|
4294
|
-
/**
|
|
4295
|
-
* Check if the FEEL popup is open.
|
|
4296
|
-
* @return {Boolean}
|
|
4260
|
+
/**
|
|
4261
|
+
* Check if the FEEL popup is open.
|
|
4262
|
+
* @return {Boolean}
|
|
4297
4263
|
*/
|
|
4298
4264
|
isOpen() {
|
|
4299
4265
|
return this._eventBus.fire('feelPopup._isOpen');
|
|
4300
4266
|
}
|
|
4301
4267
|
|
|
4302
|
-
/**
|
|
4303
|
-
* Open the FEEL popup.
|
|
4304
|
-
*
|
|
4305
|
-
* @param {String} entryId
|
|
4306
|
-
* @param {Object} popupConfig
|
|
4307
|
-
* @param {HTMLElement} sourceElement
|
|
4268
|
+
/**
|
|
4269
|
+
* Open the FEEL popup.
|
|
4270
|
+
*
|
|
4271
|
+
* @param {String} entryId
|
|
4272
|
+
* @param {Object} popupConfig
|
|
4273
|
+
* @param {HTMLElement} sourceElement
|
|
4308
4274
|
*/
|
|
4309
4275
|
open(entryId, popupConfig, sourceElement) {
|
|
4310
4276
|
return this._eventBus.fire('feelPopup._open', {
|
|
@@ -4314,8 +4280,8 @@ class FeelPopupModule {
|
|
|
4314
4280
|
});
|
|
4315
4281
|
}
|
|
4316
4282
|
|
|
4317
|
-
/**
|
|
4318
|
-
* Close the FEEL popup.
|
|
4283
|
+
/**
|
|
4284
|
+
* Close the FEEL popup.
|
|
4319
4285
|
*/
|
|
4320
4286
|
close() {
|
|
4321
4287
|
return this._eventBus.fire('feelPopup._close');
|