@bpmn-io/properties-panel 3.45.0 → 3.47.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.esm.js +95 -95
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +103 -103
- package/dist/index.js.map +1 -1
- package/package.json +3 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/util/translateFallback.js","../src/components/Header.js","../src/context/DescriptionContext.js","../src/context/ErrorsContext.js","../src/context/EventContext.js","../src/context/FeelLanguageContext.js","../src/context/LayoutContext.js","../src/context/TooltipContext.js","../src/hooks/useTooltipContext.js","../src/components/entries/Tooltip.js","../src/hooks/useDescriptionContext.js","../src/hooks/useDebounce.js","../src/hooks/useError.js","../src/hooks/useEvent.js","../src/hooks/useKeyFactory.js","../src/hooks/useLayoutState.js","../src/hooks/usePrevious.js","../src/hooks/useShowEntryEvent.js","../src/hooks/useStickyIntersectionObserver.js","../src/hooks/useStaticCallback.js","../src/hooks/useElementVisible.js","../src/components/Group.js","../src/components/Placeholder.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Description.js","../src/components/entries/Checkbox.js","../src/components/entries/CheckboxGroup.js","../src/components/entries/JsonEditor.js","../src/components/OpenPopupButton.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/util/keyboardUtils.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/components/util/dragger.js","../src/features/feel-popup/components/Popup.js","../src/features/feel-popup/components/FeelPopup.js","../src/features/feel-popup/components/helpers.js","../src/features/feel-popup/FeelPopup.js","../src/features/feel-popup/FeelPopupRenderer.js","../src/features/feel-popup/index.js"],"sourcesContent":["/**\n * @typedef { {\n * [key: string]: string;\n * } } TranslateReplacements\n */\n\n/**\n * A simple translation stub to be used for multi-language support.\n * Can be easily replaced with a more sophisticated solution.\n *\n * @param {string} template to interpolate\n * @param {TranslateReplacements} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nexport default function translateFallback(template, replacements) {\n\n replacements = replacements || {};\n\n return template.replace(/{([^}]+)}/g, function(_, key) {\n return replacements[key] || '{' + key + '}';\n });\n}","import { ExternalLinkIcon } from './icons';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef { {\n * getElementLabel: (element: object) => string,\n * getTypeLabel: (element: object) => string,\n * getElementIcon: (element: object) => import('preact').Component,\n * getDocumentationRef: (element: object) => string\n * } } HeaderProvider\n */\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {HeaderProvider} props.headerProvider\n * @param {Function} [props.translate]\n */\nexport default function Header(props) {\n\n const {\n element,\n headerProvider,\n translate = translateFallback\n } = props;\n\n const {\n getElementIcon,\n getDocumentationRef,\n getElementLabel,\n getTypeLabel,\n } = headerProvider;\n\n const label = getElementLabel(element);\n const type = getTypeLabel(element);\n const documentationRef = getDocumentationRef && getDocumentationRef(element);\n\n const ElementIcon = getElementIcon(element);\n\n return (<div class=\"bio-properties-panel-header\">\n <div class=\"bio-properties-panel-header-icon\">\n { ElementIcon && <ElementIcon width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" /> }\n </div>\n <div class=\"bio-properties-panel-header-labels\">\n <div class=\"bio-properties-panel-header-type\">{ type }</div>\n { label ?\n <div class=\"bio-properties-panel-header-label\">{ label }</div> :\n null\n }\n </div>\n <div class=\"bio-properties-panel-header-actions\">\n { documentationRef ?\n <a\n rel=\"noreferrer\"\n class=\"bio-properties-panel-header-link\"\n href={ documentationRef }\n title={ translate('Open documentation') }\n target=\"_blank\">\n <ExternalLinkIcon />\n </a> :\n null\n }\n </div>\n </div>);\n}","import {\n createContext\n} from 'preact';\n\nconst DescriptionContext = createContext({\n description: {},\n getDescriptionForId: () => {}\n});\n\nexport default DescriptionContext;\n","import {\n createContext\n} from 'preact';\n\nconst ErrorsContext = createContext({\n errors: {}\n});\n\nexport default ErrorsContext;","/**\n * @typedef {Function} <propertiesPanel.showEntry> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\n/**\n * @typedef {Function} <propertiesPanel.showError> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {string} context.message\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\nimport { createContext } from 'preact';\n\nconst EventContext = createContext({ eventBus: null });\n\nexport default EventContext;\n","import {\n createContext\n} from 'preact';\n\n/**\n * @typedef { {\n * parserDialect?: import('@bpmn-io/feel-editor').ParserDialect,\n * builtins?: import('@bpmn-io/feel-editor').Variable[],\n * dialect?: import('@bpmn-io/feel-editor').Dialect\n * } } FeelLanguageContextType\n */\n\n/**\n * @type {import('preact').Context<FeelLanguageContextType>}\n */\nconst FeelLanguageContext = createContext({});\n\nexport default FeelLanguageContext;\n","import {\n createContext\n} from 'preact';\n\nconst LayoutContext = createContext({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nexport default LayoutContext;","import {\n createContext\n} from 'preact';\n\nconst TooltipContext = createContext({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\nexport default TooltipContext;\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n TooltipContext\n} from '../context';\n\n/**\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const tooltip = useTooltipContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = useContext(TooltipContext);\n\n return getTooltipForId(id, element);\n}\n","import {\n useRef,\n useState,\n useEffect,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\n\nimport { createPortal } from 'preact/compat';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef {Object} TooltipProps\n * @property {Object} [parent] - Parent element ref for portal rendering\n * @property {String} [direction='right'] - Tooltip direction ( 'right', 'top')\n * @property {String} [position] - Custom CSS position override\n * @property {Number} [showDelay=250] - Delay in ms before showing tooltip on hover\n * @property {Number} [hideDelay=250] - Delay in ms before hiding tooltip when mouse leaves, to avoid multiple tooltips from being opened, this should be the same as showDelay\n * @property {*} [children] - Child elements to render inside the tooltip wrapper\n */\n\n/**\n * Tooltip wrapper that provides context-based tooltip content lookup.\n * All props are forwarded to the underlying Tooltip component.\n *\n * @param {TooltipProps & {\n * forId: String,\n * value?: String|Object,\n * element?: Object\n * }} props - Shared tooltip props plus wrapper-specific ones\n */\nexport default function TooltipWrapper(props) {\n const {\n forId,\n element\n } = props;\n\n const contextDescription = useTooltipContext(forId, element);\n\n const value = props.value || contextDescription;\n\n if (!value) {\n return props.children;\n }\n\n return <Tooltip { ...props } value={ value } forId={ `bio-properties-panel-${ forId }` } />;\n}\n\n/**\n * @param {TooltipProps & {\n * forId: String,\n * value: String|Object\n * }} props\n */\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent,\n direction = 'right',\n position,\n showDelay = 250,\n hideDelay = 250\n } = props;\n\n const [ visible, setVisible ] = useState(false);\n const [ tooltipPosition, setTooltipPosition ] = useState(null);\n const [ arrowOffset, setArrowOffset ] = useState(null);\n\n const showTimeoutRef = useRef(null);\n const hideTimeoutRef = useRef(null);\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const show = (_, delay) => {\n clearTimeout(showTimeoutRef.current);\n clearTimeout(hideTimeoutRef.current);\n\n if (visible) return;\n\n if (delay) {\n showTimeoutRef.current = setTimeout(() => {\n setVisible(true);\n }, showDelay);\n } else {\n setVisible(true);\n }\n };\n\n const handleWrapperMouseEnter = (e) => {\n show(e, true);\n };\n\n const hide = (delay = false) => {\n clearTimeout(showTimeoutRef.current);\n clearTimeout(hideTimeoutRef.current);\n\n if (delay) {\n hideTimeoutRef.current = setTimeout(() => {\n setVisible(false);\n }, hideDelay);\n } else {\n setVisible(false);\n }\n };\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n clearTimeout(showTimeoutRef.current);\n clearTimeout(hideTimeoutRef.current);\n };\n }, []);\n\n // Handle click outside to close tooltip for non-focusable elements\n useEffect(() => {\n if (!visible) return;\n\n const handleClickOutside = (e) => {\n\n // If clicking outside both the wrapper and tooltip, hide it\n if (wrapperRef.current && !wrapperRef.current.contains(e.target) &&\n tooltipRef.current && !tooltipRef.current.contains(e.target)) {\n hide(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ visible, hide ]);\n\n useLayoutEffect(() => {\n if (!visible || position) {\n setTooltipPosition(null);\n setArrowOffset(null);\n return;\n }\n\n if (!wrapperRef.current || !tooltipRef.current) return;\n\n const { tooltipPosition: newPosition, arrowOffset: newArrowOffset } = getTooltipPosition(wrapperRef.current, tooltipRef.current, direction);\n setTooltipPosition(newPosition);\n setArrowOffset(newArrowOffset);\n }, [ visible, position ]);\n\n const handleMouseLeave = ({ relatedTarget }) => {\n\n // Don't hide the tooltip when moving mouse between the wrapper and the tooltip.\n if (relatedTarget === wrapperRef.current || relatedTarget === tooltipRef.current || relatedTarget?.parentElement === tooltipRef.current) {\n return;\n }\n\n const selection = window.getSelection();\n if (selection && selection.toString().length > 0) {\n\n // Check if selection is within tooltip content\n const selectionRange = selection.getRangeAt(0);\n if (tooltipRef.current?.contains(selectionRange.commonAncestorContainer) ||\n tooltipRef.current?.contains(selection.anchorNode) ||\n tooltipRef.current?.contains(selection.focusNode)) {\n return; // Keep tooltip open during text selection\n }\n }\n\n hide(true);\n };\n\n const handleTooltipMouseEnter = () => {\n clearTimeout(hideTimeoutRef.current);\n };\n\n const handleFocusOut = (e) => {\n const { relatedTarget } = e;\n\n // Don't hide if focus moved to the tooltip or another element within the wrapper\n if (tooltipRef.current?.contains(relatedTarget) ||\n wrapperRef.current?.contains(relatedTarget)) {\n return;\n }\n\n hide(false);\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hide(false);\n };\n\n const renderTooltip = () => {\n const tooltipStyle = position || (tooltipPosition ? `right: ${tooltipPosition.right}; top: ${tooltipPosition.top}px;` : undefined);\n const arrowStyle = arrowOffset != null ? `margin-top: ${arrowOffset }px;` : undefined;\n\n return (\n <div\n class={ `bio-properties-panel-tooltip ${direction}` }\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ tooltipStyle }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\n onMouseEnter={ handleTooltipMouseEnter }\n onMouseLeave={ handleMouseLeave }\n >\n <div class=\"bio-properties-panel-tooltip-content\">\n {value}\n </div>\n <div class=\"bio-properties-panel-tooltip-arrow\" style={ arrowStyle } />\n </div>\n );\n };\n\n return (\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\n ref={ wrapperRef }\n onMouseEnter={ handleWrapperMouseEnter }\n onMouseLeave={ handleMouseLeave }\n onFocus={ show }\n onBlur={ handleFocusOut }\n onKeyDown={ hideTooltipViaEscape }\n >\n {props.children}\n {visible ?\n (parent ?\n createPortal(renderTooltip(), parent.current)\n : renderTooltip()\n ) : null\n }\n </div>\n );\n}\n\n\n// helper\n\nfunction getTooltipPosition(refElement, tooltipElement, direction) {\n if (!refElement) {\n return { tooltipPosition: null, arrowOffset: null };\n }\n\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n\n let top = refPosition.top - 10;\n let arrowOffset = null;\n\n // Ensure that the tooltip is within the viewport, adjust the top position if needed.\n // This is only relevant for the 'right' direction for now\n if (tooltipElement && direction === 'right') {\n const tooltipRect = tooltipElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const minTop = 0;\n const maxTop = viewportHeight - tooltipRect.height;\n\n const originalTop = top;\n\n if (top > maxTop) {\n top = maxTop;\n }\n\n if (top < minTop) {\n top = minTop;\n }\n\n // Adjust the arrow position if the tooltip had to be moved to stay within viewport\n if (top !== originalTop) {\n const defaultMarginTop = 16;\n\n const topDiff = top - originalTop;\n arrowOffset = defaultMarginTop - topDiff;\n }\n }\n\n return {\n tooltipPosition: { right, top },\n arrowOffset\n };\n}","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n DescriptionContext\n} from '../context';\n\n/**\n * Accesses the global DescriptionContext and returns a description for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const description = useDescriptionContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = useContext(DescriptionContext);\n\n return getDescriptionForId(id, element);\n}\n","import {\n useCallback,\n useEffect\n} from 'preact/hooks';\n\nexport function useDebounce(callback, debounceFn) {\n const debouncedCallback = useCallback(debounceFn(callback), [ callback, debounceFn ]);\n\n // flush pending calls before unmount the debounced function\n useEffect(() => {\n return () => {\n debouncedCallback.flush?.();\n };\n }, [ debouncedCallback ]);\n\n return debouncedCallback;\n}\n","import { useContext } from 'preact/hooks';\n\nimport { ErrorsContext } from '../context';\n\nexport function useError(id) {\n const { errors } = useContext(ErrorsContext);\n\n return errors[ id ];\n}\n\nexport function useErrors() {\n const { errors } = useContext(ErrorsContext);\n\n return errors;\n}","import { useContext, useEffect, useRef } from 'preact/hooks';\n\nimport { EventContext } from '../context';\n\n\n/**\n * Subscribe to an event immediately. Update subscription after inputs changed.\n *\n * @param {string} event\n * @param {Function} callback\n */\nexport function useEvent(event, callback, eventBus) {\n const eventContext = useContext(EventContext);\n\n if (!eventBus) {\n ({ eventBus } = eventContext);\n }\n\n const didMount = useRef(false);\n\n // (1) subscribe immediately\n if (eventBus && !didMount.current) {\n eventBus.on(event, callback);\n }\n\n // (2) update subscription after inputs changed\n useEffect(() => {\n if (eventBus && didMount.current) {\n eventBus.on(event, callback);\n }\n\n didMount.current = true;\n\n return () => {\n if (eventBus) {\n eventBus.off(event, callback);\n }\n };\n }, [ callback, event, eventBus ]);\n}\n","import { useMemo } from 'preact/hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst KEY_LENGTH = 6;\n\n/**\n * Create a persistent key factory for plain objects without id.\n *\n * @example\n * ```jsx\n * function List({ objects }) {\n * const getKey = useKeyFactory();\n * return (<ol>{\n * objects.map(obj => {\n * const key = getKey(obj);\n * return <li key={key}>obj.name</li>\n * })\n * }</ol>);\n * }\n * ```\n *\n * @param {any[]} dependencies\n * @returns {(element: object) => string}\n */\nexport function useKeyFactory(dependencies = []) {\n const map = useMemo(() => new Map(), dependencies);\n\n const getKey = el => {\n let key = map.get(el);\n\n if (!key) {\n key = Math.random().toString().slice(-KEY_LENGTH);\n map.set(el, key);\n }\n\n return key;\n };\n\n return getKey;\n}\n","import {\n useCallback,\n useContext\n} from 'preact/hooks';\n\nimport {\n LayoutContext\n} from '../context';\n\n/**\n * Creates a state that persists in the global LayoutContext.\n *\n * @example\n * ```jsx\n * function Group(props) {\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\n * }\n * ```\n *\n * @param {(string|number)[]} path\n * @param {any} [defaultValue]\n *\n * @returns {[ any, Function ]}\n */\nexport function useLayoutState(path, defaultValue) {\n const {\n getLayoutForKey,\n setLayoutForKey\n } = useContext(LayoutContext);\n\n const layoutForKey = getLayoutForKey(path, defaultValue);\n\n const setState = useCallback((newValue) => {\n setLayoutForKey(path, newValue);\n }, [ setLayoutForKey ]);\n\n\n return [ layoutForKey, setState ];\n}\n","import {\n useEffect,\n useRef\n} from 'preact/hooks';\n\n/**\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\n * state on updates.\n *\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\n */\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import {\n useCallback,\n useContext,\n useEffect,\n useRef\n} from 'preact/hooks';\n\nimport { isFunction } from 'min-dash';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useEvent } from './useEvent';\n\n/**\n * Subscribe to `propertiesPanel.showEntry`.\n *\n * @param {string} id\n *\n * @returns {import('preact').Ref}\n */\nexport function useShowEntryEvent(id) {\n const { onShow } = useContext(PropertiesPanelContext);\n\n const ref = useRef();\n\n const focus = useRef(false);\n\n const onShowEntry = useCallback((event) => {\n if (event.id === id) {\n onShow();\n\n if (!focus.current) {\n focus.current = true;\n }\n }\n }, [ id ]);\n\n useEffect(() => {\n if (focus.current && ref.current) {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (isFunction(ref.current.select)) {\n ref.current.select();\n }\n\n focus.current = false;\n }\n });\n\n useEvent('propertiesPanel.showEntry', onShowEntry);\n\n return ref;\n}","import {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { useEvent } from './useEvent';\n\n\n/**\n * @callback setSticky\n * @param {boolean} value\n */\n\n/**\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\n * If sticky is observered setSticky(true) will be called.\n * If sticky mode is left, setSticky(false) will be called.\n *\n *\n * @param {Object} ref\n * @param {string} scrollContainerSelector\n * @param {setSticky} setSticky\n */\nexport function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\n\n const [ scrollContainer, setScrollContainer ] = useState(domQuery(scrollContainerSelector));\n\n const updateScrollContainer = useCallback(() => {\n const newScrollContainer = domQuery(scrollContainerSelector);\n\n if (newScrollContainer !== scrollContainer) {\n setScrollContainer(newScrollContainer);\n }\n }, [ scrollContainerSelector, scrollContainer ]);\n\n useEffect(() => {\n updateScrollContainer();\n }, [ updateScrollContainer ]);\n\n useEvent('propertiesPanel.attach', updateScrollContainer);\n useEvent('propertiesPanel.detach', updateScrollContainer);\n\n useEffect(() => {\n const Observer = IntersectionObserver;\n\n // return early if IntersectionObserver is not available\n if (!Observer) {\n return;\n }\n\n // TODO(@barmac): test this\n if (!ref.current || !scrollContainer) {\n return;\n }\n\n const observer = new Observer((entries) => {\n\n // scroll container is unmounted, do not update sticky state\n if (scrollContainer.scrollHeight === 0) {\n return;\n }\n\n entries.forEach(entry => {\n if (entry.intersectionRatio < 1) {\n setSticky(true);\n }\n else if (entry.intersectionRatio === 1) {\n setSticky(false);\n }\n });\n },\n {\n root: scrollContainer,\n rootMargin: '0px 0px 999999% 0px', // Use bottom margin to avoid stickyness when scrolling out to bottom\n threshold: [ 1 ]\n });\n observer.observe(ref.current);\n\n // Unobserve if unmounted\n return () => {\n observer.unobserve(ref.current);\n };\n\n }, [ ref.current, scrollContainer, setSticky ]);\n}\n","import { useCallback, useLayoutEffect, useRef } from 'preact/hooks';\n\n/**\n * Creates a static function reference with changing body.\n * This is necessary when external libraries require a callback function\n * that has references to state variables.\n *\n * Usage:\n * const callback = useStaticCallback((val) => {val === currentState});\n *\n * The `callback` reference is static and can be safely used in external\n * libraries or as a prop that does not cause rerendering of children.\n *\n * The ref update is deferred to useLayoutEffect to prevent stale-closure\n * bugs when Chrome fires blur on elements removed during re-render.\n *\n * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n\n useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n\n return useCallback(\n (...args) => callbackRef.current(...args),\n []\n );\n}","import { useLayoutEffect, useState } from 'preact/hooks';\n\nexport function useElementVisible(element) {\n\n const [ visible, setVisible ] = useState(!!element && !!element.clientHeight);\n\n useLayoutEffect(() => {\n if (!element) return;\n\n const resizeObserver = new ResizeObserver(([ entry ]) => {\n requestAnimationFrame(() => {\n const newVisible = !!entry.contentRect.height;\n if (newVisible !== visible) {\n setVisible(newVisible);\n }\n });\n });\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, [ element, visible ]);\n\n return visible;\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport {\n isFunction\n} from 'min-dash';\n\nimport {\n useErrors,\n useLayoutState\n} from '../hooks';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport { ArrowIcon } from './icons';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {import('../PropertiesPanel').GroupDefinition} props\n */\nexport default function Group(props) {\n const {\n element,\n entries = [],\n id,\n label,\n shouldOpen = false,\n translate = translateFallback,\n } = props;\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const toggleOpen = () => setOpen(!open);\n\n const [ edited, setEdited ] = useState(false);\n\n const [ sticky, setSticky ] = useState(false);\n\n // set edited state depending on all entries\n useEffect(() => {\n\n // TODO(@barmac): replace with CSS when `:has()` is supported in all major browsers, or rewrite as in https://github.com/camunda/camunda-modeler/issues/3815#issuecomment-1733038161\n const scheduled = requestAnimationFrame(() => {\n const hasOneEditedEntry = entries.find(entry => {\n const {\n id,\n isEdited\n } = entry;\n\n const entryNode = domQuery(`[data-entry-id=\"${id}\"]`);\n\n if (!isFunction(isEdited) || !entryNode) {\n return false;\n }\n\n const inputNode = domQuery('.bio-properties-panel-input', entryNode);\n\n return isEdited(inputNode);\n });\n\n setEdited(hasOneEditedEntry);\n });\n\n return () => cancelAnimationFrame(scheduled);\n }, [ entries, setEdited ]);\n\n // set error state depending on all entries\n const allErrors = useErrors();\n const hasErrors = entries.some(entry => allErrors[entry.id]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div class={ classnames(\n 'bio-properties-panel-group-header',\n edited ? '' : 'empty',\n open ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) } onClick={ toggleOpen }>\n <div\n class=\"bio-properties-panel-group-header-title\"\n >\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element }>\n { label }\n </Tooltip>\n </div>\n <div class=\"bio-properties-panel-group-header-buttons\">\n {\n <DataMarker\n edited={ edited }\n hasErrors={ hasErrors }\n translate={ translate }\n />\n }\n <button\n type=\"button\"\n title={ translate('Toggle section') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-group-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\nfunction DataMarker(props) {\n const {\n edited,\n hasErrors,\n translate = translateFallback\n } = props;\n\n if (hasErrors) {\n return (\n <div title={ translate('Section contains an error') } class=\"bio-properties-panel-dot bio-properties-panel-dot--error\"></div>\n );\n }\n\n if (edited) {\n return (\n <div title={ translate('Section contains edits') } class=\"bio-properties-panel-dot\"></div>\n );\n }\n return null;\n}","/**\n * @typedef { {\n * text: (element: object) => string,\n * icon?: (element: Object) => import('preact').Component\n * } } PlaceholderDefinition\n *\n * @param { PlaceholderDefinition } props\n */\nexport default function Placeholder(props) {\n const {\n text,\n icon: Icon\n } = props;\n\n return (\n <div class=\"bio-properties-panel open\">\n <section class=\"bio-properties-panel-placeholder\">\n { Icon && <Icon class=\"bio-properties-panel-placeholder-icon\" /> }\n <p class=\"bio-properties-panel-placeholder-text\">{ text }</p>\n </section>\n </div>\n );\n}","import {\n useState,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport {\n assign,\n get,\n isArray,\n set\n} from 'min-dash';\n\nimport Header from './components/Header';\n\nimport Group from './components/Group';\n\nimport Placeholder from './components/Placeholder';\n\nimport {\n DescriptionContext,\n ErrorsContext,\n EventContext,\n LayoutContext,\n PropertiesPanelContext,\n TooltipContext\n} from './context';\n\nimport { useEvent } from './hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst DEFAULT_LAYOUT = {};\n\nconst DEFAULT_DESCRIPTION = {};\n\nconst DEFAULT_TOOLTIP = {};\n\n\n/**\n * @typedef { {\n * component: import('preact').Component,\n * id: String,\n * isEdited?: Function\n * } } EntryDefinition\n *\n * @typedef { {\n * autoFocusEntry: String,\n * autoOpen?: Boolean,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String|import('preact').ComponentChildren,\n * remove: (event: MouseEvent) => void\n * } } ListItemDefinition\n *\n * @typedef { {\n * add: (event: MouseEvent) => void,\n * component: import('preact').Component,\n * element: Object,\n * id: String,\n * items: Array<ListItemDefinition>,\n * label: String,\n * shouldOpen?: Boolean,\n * translate?: Function\n * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean,\n * translate?: Function\n * } } GroupDefinition\n *\n * @typedef { {\n * [id: String]: GetDescriptionFunction\n * } } DescriptionConfig\n *\n * @typedef { {\n * [id: String]: GetTooltipFunction\n * } } TooltipConfig\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetDescriptionFunction\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetTooltipFunction\n *\n * @typedef { {\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\n * } } PlaceholderProvider\n *\n */\n\n\n/**\n * A basic properties panel component. Describes *how* content will be rendered, accepts\n * data from implementor to describe *what* will be rendered.\n *\n * If `headerProvider` is omitted (or `null`), the built-in `<Header>` is not rendered;\n * consumers can render `<Header>` standalone elsewhere using the same provider shape.\n *\n * @param {Object} props\n * @param {Object|Array} props.element\n * @param {import('./components/Header').HeaderProvider} [props.headerProvider]\n * @param {PlaceholderProvider} [props.placeholderProvider]\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\n * @param {Object} [props.layoutConfig]\n * @param {Function} [props.layoutChanged]\n * @param {DescriptionConfig} [props.descriptionConfig]\n * @param {Function} [props.descriptionLoaded]\n * @param {TooltipConfig} [props.tooltipConfig]\n * @param {Function} [props.tooltipLoaded]\n * @param {HTMLElement} [props.feelPopupContainer]\n * @param {Function} [props.getFeelPopupLinks]\n * @param {Object} [props.eventBus]\n */\nexport default function PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n eventBus\n } = props;\n\n // set-up layout context\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n\n setLayout(newLayout);\n }, [ layoutConfig ]);\n\n useEffect(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [ layout, layoutChanged ]);\n\n const getLayoutForKey = (key, defaultValue) => {\n return get(layout, key, defaultValue);\n };\n\n const setLayoutForKey = (key, config) => {\n setLayout((prevLayout) => {\n const newLayout = assign({}, prevLayout);\n set(newLayout, key, config);\n return newLayout;\n });\n };\n\n const layoutContext = {\n layout,\n setLayout,\n getLayoutForKey,\n setLayoutForKey\n };\n\n // set-up description context\n const description = useMemo(() => createDescriptionContext(descriptionConfig), [ descriptionConfig ]);\n\n useEffect(() => {\n if (typeof descriptionLoaded === 'function') {\n descriptionLoaded(description);\n }\n }, [ description, descriptionLoaded ]);\n\n\n const getDescriptionForId = (id, element) => {\n return description[id] && description[id](element);\n };\n\n const descriptionContext = {\n description,\n getDescriptionForId\n };\n\n // set-up tooltip context\n const tooltip = useMemo(() => createTooltipContext(tooltipConfig), [ tooltipConfig ]);\n\n useEffect(() => {\n if (typeof tooltipLoaded === 'function') {\n tooltipLoaded(tooltip);\n }\n }, [ tooltip, tooltipLoaded ]);\n\n const getTooltipForId = (id, element) => {\n return tooltip[id] && tooltip[id](element);\n };\n\n const tooltipContext = {\n tooltip,\n getTooltipForId\n };\n\n const [ errors, setErrors ] = useState({});\n\n const onSetErrors = ({ errors }) => setErrors(errors);\n\n useEvent('propertiesPanel.setErrors', onSetErrors, eventBus);\n\n const errorsContext = {\n errors\n };\n\n const eventContext = {\n eventBus\n };\n\n const propertiesPanelContext = {\n element\n };\n\n // empty state\n if (placeholderProvider && !element) {\n return <Placeholder { ...placeholderProvider.getEmpty() } />;\n }\n\n // multiple state\n if (placeholderProvider && isArray(element)) {\n return <Placeholder { ...placeholderProvider.getMultiple() } />;\n }\n\n return (\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n <ErrorsContext.Provider value={ errorsContext }>\n <DescriptionContext.Provider value={ descriptionContext }>\n <TooltipContext.Provider value={ tooltipContext }>\n <LayoutContext.Provider value={ layoutContext }>\n <EventContext.Provider value={ eventContext }>\n <div class=\"bio-properties-panel\">\n { headerProvider ? (\n <Header\n element={ element }\n headerProvider={ headerProvider } />\n ) : null }\n <div class=\"bio-properties-panel-scroll-container\">\n {\n groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n\n return (\n <Component\n { ...group }\n key={ id }\n element={ element } />\n );\n })\n }\n </div>\n </div>\n </EventContext.Provider>\n </LayoutContext.Provider>\n </TooltipContext.Provider>\n </DescriptionContext.Provider>\n </ErrorsContext.Provider>\n </PropertiesPanelContext.Provider>\n );\n}\n\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\n\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\n\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useLayoutEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n *\n * @param {object} props\n * @param {string} [props.class]\n * @param {import('preact').Component[]} [props.menuItems]\n * @returns\n */\nexport function DropdownButton(props) {\n const {\n class: className,\n children,\n menuItems = []\n } = props;\n\n const dropdownRef = useRef(null);\n const menuRef = useRef(null);\n\n const [ open, setOpen ] = useState(false);\n const close = () => setOpen(false);\n\n function onDropdownToggle(event) {\n if (menuRef.current && menuRef.current.contains(event.target)) {\n return;\n }\n\n event.stopPropagation();\n\n setOpen(open => !open);\n }\n\n function onActionClick(event, action) {\n event.stopPropagation();\n\n close();\n action();\n }\n\n useGlobalClick([ dropdownRef.current ], () => close());\n\n return (\n <div\n class={ classnames('bio-properties-panel-dropdown-button', { open }, className) }\n onClick={ onDropdownToggle }\n ref={ dropdownRef }\n >\n { children }\n <div class=\"bio-properties-panel-dropdown-button__menu\" ref={ menuRef }>\n { menuItems.map((item, index) => (\n <MenuItem onClick={ onActionClick } item={ item } key={ index } />\n )) }\n </div>\n </div>\n );\n}\n\nfunction MenuItem({ item, onClick }) {\n if (item.separator) {\n return <div class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--separator\" />;\n }\n\n if (item.action) {\n return (<button\n type=\"button\"\n class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--actionable\"\n onClick={ event => onClick(event, item.action) }\n >\n {item.entry}\n </button>);\n }\n\n return <div\n class=\"bio-properties-panel-dropdown-button__menu-item\"\n >\n {item.entry}\n </div>;\n}\n\n/**\n *\n * @param {Array<null | Element>} ignoredElements\n * @param {Function} callback\n */\nfunction useGlobalClick(ignoredElements, callback) {\n useEffect(() => {\n\n /**\n * @param {MouseEvent} event\n */\n function listener(event) {\n if (ignoredElements.some(element => element && element.contains(event.target))) {\n return;\n }\n\n callback();\n }\n\n document.addEventListener('click', listener, { capture: true });\n\n return () => document.removeEventListener('click', listener, { capture: true });\n }, [ ...ignoredElements, callback ]);\n}\n","import classnames from 'classnames';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function HeaderButton(props) {\n const {\n children = null,\n class: classname,\n onClick = () => {},\n ...otherProps\n } = props;\n\n return <button\n type=\"button\"\n { ...otherProps }\n onClick={ onClick }\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\n { children }\n </button>;\n}\n","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\nimport translateFallback from '../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove,\n translate = translateFallback\n } = props;\n\n const [ open, setOpen ] = useState(shouldOpen);\n\n const toggleOpen = () => setOpen(!open);\n\n const { onShow } = useContext(PropertiesPanelContext);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow: useCallback(() => {\n setOpen(true);\n\n if (isFunction(onShow)) {\n onShow();\n }\n }, [ onShow, setOpen ])\n };\n\n\n const placeholderLabel = translate('<empty>');\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-collapsible-entry',\n open ? 'open' : ''\n ) }>\n <div class=\"bio-properties-panel-collapsible-entry-header\" onClick={ toggleOpen }>\n <div\n class={ classnames(\n 'bio-properties-panel-collapsible-entry-header-title',\n !label && 'empty'\n ) }>\n { label || placeholderLabel }\n </div>\n <button\n type=\"button\"\n title={ translate('Toggle list item') }\n class=\"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n {\n remove\n ?\n (\n <button type=\"button\" title={ translate('Delete item') } class=\"bio-properties-panel-remove-entry\" onClick={ remove }>\n <DeleteIcon />\n </button>\n )\n : null\n }\n </div>\n <div class={ classnames(\n 'bio-properties-panel-collapsible-entry-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>\n );\n}","import {\n useEffect\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport CollapsibleEntry from './entries/Collapsible';\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen,\n translate = translateFallback\n } = props;\n\n // focus specified entry on auto open\n useEffect(() => {\n if (autoOpen && autoFocusEntry) {\n const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\n\n const focusableInput = domQuery('.bio-properties-panel-input', entry);\n\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n focusableInput.scrollIntoView();\n }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen }\n translate={ translate }\n />\n </div>\n );\n\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n useErrors,\n useLayoutState,\n usePrevious\n} from '../hooks';\n\nimport ListItem from './ListItem';\n\nimport {\n ArrowIcon,\n CreateIcon\n} from './icons';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\n */\nexport default function ListGroup(props) {\n const {\n add,\n element,\n id,\n items,\n label,\n shouldOpen = false,\n translate = translateFallback\n } = props;\n\n useEffect(() => {\n if (props.shouldSort != undefined) {\n console.warn('the property \\'shouldSort\\' is no longer supported');\n }\n }, [ props.shouldSort ]);\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ localItems, setLocalItems ] = useState([]);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevElement = usePrevious(element);\n\n const toggleOpen = useCallback(() => setOpen(!open), [ open ]);\n\n const openItemIds = (element === prevElement && open && addTriggered)\n ? getNewItemIds(items, localItems)\n : [];\n\n // reset local state after items changed\n useEffect(() => {\n setLocalItems(items);\n setAddTriggered(false);\n }, [ items ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const hasItems = !!items.length;\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n const handleAddClick = e => {\n setAddTriggered(true);\n setOpen(true);\n\n add(e);\n };\n\n const allErrors = useErrors();\n const hasError = items.some(item => {\n if (allErrors[item.id]) {\n return true;\n }\n\n if (!item.entries) {\n return;\n }\n\n // also check if the error is nested, e.g. for name-value entries\n return item.entries.some(entry => allErrors[entry.id]);\n });\n\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-group-header',\n hasItems ? '' : 'empty',\n (hasItems && open) ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ hasItems ? toggleOpen : noop }>\n <div\n class=\"bio-properties-panel-group-header-title\"\n >\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element }>\n { label }\n </Tooltip>\n </div>\n <div class=\"bio-properties-panel-group-header-buttons\">\n {\n add\n ? (\n <button\n type=\"button\"\n title={ translate('Create new list item') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-add-entry\"\n onClick={ handleAddClick }\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\n class={\n classnames(\n 'bio-properties-panel-list-badge',\n hasError ? 'bio-properties-panel-list-badge--error' : ''\n )\n }\n >\n { items.length }\n </div>\n )\n : null\n }\n {\n hasItems\n ? (\n <button\n type=\"button\"\n title={ translate('Toggle section') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n : null\n }\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-list',\n open && hasItems ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n\n {\n items.map((item, index) => {\n if (!item) {\n return;\n }\n\n const { id } = item;\n\n // if item was added, open it\n // existing items will not be affected as autoOpen\n // is only applied on first render\n const autoOpen = openItemIds.includes(item.id);\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id }\n translate={ translate } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\nfunction getNewItemIds(newItems, oldItems) {\n const newIds = newItems.map(item => item.id);\n const oldIds = oldItems.map(item => item.id);\n\n return newIds.filter(itemId => !oldIds.includes(itemId));\n}","import {\n useDescriptionContext\n} from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.forId - id of the entry the description is used for\n * @param {String} props.value\n */\nexport default function Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n\n const contextDescription = useDescriptionContext(forId, element);\n\n const description = value || contextDescription;\n\n if (description) {\n return (\n <div class=\"bio-properties-panel-description\">\n { description }\n </div>\n );\n }\n}\n","import {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction Checkbox(props) {\n const {\n id,\n label,\n onChange,\n disabled,\n value = false,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.checked);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n const ref = useShowEntryEvent(id);\n\n return (\n <div class=\"bio-properties-panel-checkbox\">\n <input\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ localValue }\n disabled={ disabled } />\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n </div>\n );\n}\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {boolean} [props.disabled]\n */\nexport default function CheckboxEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n\n const error = useError(id);\n\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-entry\" data-entry-id={ id }>\n <Checkbox\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onChange={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Checkbox from './Checkbox';\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.label\n * @param {Array<{label: String, value: *}>} props.options\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {String} [props.description]\n * @param {string|import('preact').Component} [props.tooltip]\n * @param {boolean} [props.disabled]\n * @param {Function} [props.onFocus]\n * @param {Function} [props.onBlur]\n */\nexport default function CheckboxGroup(props) {\n const {\n element,\n id,\n label,\n description,\n tooltip,\n options = [],\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur\n } = props;\n\n const value = getValue(element) || [];\n\n const handleOptionChange = (optionValue, checked) => {\n const newValue = checked\n ? [ ...value, optionValue ]\n : value.filter(v => v !== optionValue);\n\n setValue(newValue);\n };\n\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-group\" data-entry-id={ id }>\n <div class=\"bio-properties-panel-group-header\">\n <p class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ element }>\n { label }\n </Tooltip>\n </p>\n </div>\n <div class=\"bio-properties-panel-checkbox-group-entries\">\n {\n options.map((option) => (\n <Checkbox\n key={ option.value }\n id={ `${id}-${option.value}` }\n label={ option.label }\n setValue={ (checked) => handleOptionChange(option.value, checked) }\n getValue={ () => value.includes(option.value) }\n disabled={ disabled }\n onFocus={ onFocus }\n onBlur={ onBlur }\n element={ element } />\n ))\n }\n </div>\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n","import Description from './Description';\n\nimport {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction, isObject } from 'min-dash';\n\nimport translateFallback from '../util/translateFallback';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../hooks';\n\nimport Tooltip from './Tooltip';\n\nimport { EditorView, drawSelection, highlightSpecialChars, keymap, placeholder as cmPlaceholder } from '@codemirror/view';\nimport { Annotation, EditorState } from '@codemirror/state';\nimport { bracketMatching, defaultHighlightStyle, foldGutter, foldKeymap, syntaxHighlighting } from '@codemirror/language';\nimport { closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { linter } from '@codemirror/lint';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst ExternalChange = Annotation.define();\nconst parseJsonLinter = jsonParseLinter();\n\n/**\n * A CodeMirror based JSON editor for the properties panel.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string} props.label\n * @param {string} [props.value]\n * @param {Function} props.onInput\n * @param {boolean} [props.disabled]\n * @param {string} [props.placeholder]\n * @param {string} [props.tooltip]\n * @param {object} [props.element]\n */\nfunction JsonEditor(props) {\n\n const {\n id,\n label,\n debounce,\n value = '',\n onInput: commitValue,\n disabled,\n placeholder,\n tooltip,\n element\n } = props;\n\n const containerRef = useRef(null);\n const viewRef = useRef(null);\n const editorRef = useShowEntryEvent(id);\n\n const onInput = useStaticCallback((newValue) => {\n commitValue(newValue === '' ? undefined : newValue);\n });\n\n const handleChange = useDebounce(onInput, debounce);\n\n useEffect(() => {\n const view = new EditorView({\n state: EditorState.create({\n doc: value,\n extensions: [\n highlightSpecialChars(),\n history(),\n drawSelection(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n foldGutter(),\n bracketMatching(),\n closeBrackets(),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap,\n ...closeBracketsKeymap,\n ...foldKeymap\n ]),\n EditorState.tabSize.of(2),\n EditorView.lineWrapping,\n EditorState.readOnly.of(!!disabled),\n ...(placeholder ? [ cmPlaceholder(placeholder) ] : []),\n EditorView.updateListener.of(update => {\n const isExternal = update.transactions.some(\n tr => tr.annotation(ExternalChange)\n );\n if (update.docChanged && !isExternal) {\n handleChange(update.state.doc.toString());\n }\n }),\n json(),\n linter((view) => {\n const content = view.state.doc.toString();\n if (!content.trim()) return [];\n return parseJsonLinter(view);\n }, { delay: 300 })\n ]\n }),\n parent: containerRef.current\n });\n\n viewRef.current = view;\n\n // Allow useShowEntryEvent to focus the editor\n editorRef.current = view.contentDOM;\n\n const prefixedId = `bio-properties-panel-${ id }`;\n view.contentDOM.setAttribute('id', prefixedId);\n view.contentDOM.setAttribute('aria-label', label);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n // Sync external value changes into the editor\n useEffect(() => {\n const view = viewRef.current;\n if (!view) return;\n\n const currentValue = view.state.doc.toString();\n if (value === currentValue) return;\n\n view.dispatch({\n changes: { from: 0, to: currentValue.length, insert: value || '' },\n annotations: ExternalChange.of(true)\n });\n }, [ value ]);\n\n // Focus editor on label click manually, as the native `for`\n // attribute does not work with contenteditable elements\n const focusEditor = () => {\n viewRef.current && viewRef.current.focus();\n };\n\n return (\n <div class=\"bio-properties-panel-json-editor\">\n <label class=\"bio-properties-panel-label\" onClick={ focusEditor }>\n <Tooltip value={ tooltip } forId={ id } element={ element }>\n { label }\n </Tooltip>\n </label>\n <div class={ classnames('bio-properties-panel-input', value && 'edited') } ref={ containerRef } />\n </div>\n );\n}\n\n\n/**\n * Entry wrapper for JsonEditor, handles getValue/setValue, built-in JSON validation, error display, and description.\n *\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.debounce\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {boolean} [props.disabled]\n * @param {string} [props.placeholder]\n * @param {string} [props.tooltip]\n * @param {Function} [props.validate]\n * @param {Function} [props.translate]\n */\nexport default function JsonEditorEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n label,\n getValue,\n setValue,\n disabled,\n placeholder,\n tooltip,\n validate,\n translate = translateFallback\n } = props;\n\n const globalError = useError(id);\n\n let value = getValue(element);\n const [ localError, setLocalError ] = useState(\n () => computeError(validate, value, translate)\n );\n const [ editorValue, setEditorValue ] = useState(value);\n\n useEffect(() => {\n if (value === editorValue) {\n return;\n }\n\n setEditorValue(value);\n setLocalError(computeError(validate, value, translate));\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n setEditorValue(newValue);\n\n const currentValue = getValue(element);\n\n if (newValue !== currentValue) {\n const newValidationError = computeError(validate, newValue, translate);\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n });\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames('bio-properties-panel-entry', error && 'has-error') }\n data-entry-id={ id }>\n <JsonEditor\n id={ id }\n key={ element }\n label={ label }\n debounce={ debounce }\n value={ value }\n onInput={ onInput }\n disabled={ disabled }\n placeholder={ placeholder }\n tooltip={ tooltip }\n element={ element }\n />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * Check if the JSON editor entry has been edited.\n */\nexport function isEdited(node) {\n return node && node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction computeError(validate, value, translate) {\n return (isFunction(validate) ? validate(value) : null) || validateJson(value, translate);\n}\n\nfunction validateJson(value, translate = translateFallback) {\n if (!value || !value.trim()) return null;\n\n try {\n return isObject(JSON.parse(value)) ? null : translate('JSON contains errors');\n } catch (e) {\n return translate('JSON contains errors');\n }\n}\n","import { OpenPopupIcon } from './icons';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Button to open popups.\n *\n * @param {Object} props\n * @param {Function} props.onClick - Callback to trigger when the button is clicked.\n * @param {string} [props.title] - Tooltip text for the button.\n * @param {Function} [props.translate] - Translation function for built-in strings.\n */\nexport function OpenPopupButton({\n onClick,\n title,\n translate = translateFallback,\n}) {\n title = title ?? translate('Open pop-up editor');\n return (\n <button\n type=\"button\"\n title={ title }\n class={ 'bio-properties-panel-open-feel-popup' }\n onClick={ onClick }\n >\n <OpenPopupIcon />\n </button>\n );\n}\n","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { FeelersEditor } from '@bpmn-io/feelers-editor';\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst TemplatingEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onOpenPopup = noop,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n editor = new FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine,\n lineWrap: true,\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feelers-editor-container',\n popupOpen ? 'popupOpen' : null\n ) }>\n {\n popupOpen && <div class=\"bio-properties-panel-feelers-editor__popup-placeholder\">Opened in popup</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feelers') }\n /> }\n </div>;\n});\n\nexport default TemplatingEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport Editor from '@bpmn-io/feel-editor';\n\nimport { EditorView, lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\nimport translateFallback from '../../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst FeelEditor = forwardRef((props, ref) => {\n\n const {\n contentAttributes,\n enableGutters,\n value,\n onInput,\n onKeyDown: onKeyDownProp = noop,\n onBlur = noop,\n onFeelToggle = noop,\n onLint = noop,\n onOpenPopup = noop,\n placeholder,\n popupOpen,\n disabled,\n tooltipContainer,\n variables,\n feelLanguageContext,\n translate = translateFallback\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const {\n builtins,\n dialect,\n parserDialect\n } = feelLanguageContext || {};\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n const handleBlur = useStaticCallback(() => {\n onBlur();\n });\n\n useEffect(() => {\n\n let editor;\n\n /* Trigger FEEL toggle when\n *\n * - `backspace` is pressed\n * - AND the cursor is at the beginning of the input\n */\n const onKeyDown = e => {\n\n // Call parent onKeyDown handler first\n onKeyDownProp(e);\n\n if (e.key !== 'Backspace' || !editor) {\n return;\n }\n\n const selection = editor.getSelection();\n const range = selection.ranges[selection.mainIndex];\n\n if (range.from === 0 && range.to === 0) {\n onFeelToggle();\n }\n };\n\n editor = new Editor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n placeholder: placeholder,\n readOnly: disabled,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables,\n builtins,\n dialect,\n parserDialect,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : [],\n EditorView.lineWrapping,\n EditorView.domEventHandlers({ blur: handleBlur })\n ],\n contentAttributes\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setVariables(variables);\n }, [ variables ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setPlaceholder(placeholder);\n }, [ placeholder ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feel-editor-container',\n disabled ? 'disabled' : null,\n popupOpen ? 'popupOpen' : null)\n }>\n {\n popupOpen && <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">{ translate('Opened in editor') }</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feel') }\n translate={ translate }\n /> }\n </div>;\n});\n\nexport default FeelEditor;","export function FeelIndicator(props) {\n const {\n active\n } = props;\n\n if (!active) {\n return null;\n }\n\n return <span class=\"bio-properties-panel-feel-indicator\">\n =\n </span>;\n}","import classNames from 'classnames';\nimport { FeelIcon as FeelIconSvg } from '../../icons';\n\nimport translateFallback from '../../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @param {Object} props\n * @param {Object} props.label\n * @param {String} props.feel\n * @param {boolean} props.active\n * @param {boolean} props.disabled\n * @param {Function} props.onClick\n * @param {Function} props.translate\n * @returns {import('preact').Component}\n */\nexport default function FeelIcon(props) {\n\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop,\n translate = translateFallback\n } = props;\n\n const feelRequiredLabel = translate('FEEL expression is mandatory');\n const feelOptionalLabel = translate(`Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`);\n\n const handleClick = e => {\n onClick(e);\n\n // when pointer event was created from keyboard, keep focus on button\n if (!e.pointerType) {\n e.stopPropagation();\n }\n };\n\n return (\n <button\n type=\"button\"\n class={ classNames('bio-properties-panel-feel-icon',\n active ? 'active' : null,\n feel === 'required' ? 'required' : 'optional') }\n onClick={ handleClick }\n disabled={ feel === 'required' || disabled }\n title={\n feel === 'required' ? feelRequiredLabel : feelOptionalLabel\n }\n >\n <FeelIconSvg />\n </button>\n );\n}","/**\n * @param {KeyboardEvent} event\n * @return {boolean}\n */\nexport function isCmd(event) {\n\n // ensure we don't react to AltGr\n // (mapped to CTRL + ALT)\n if (event.altKey) {\n return false;\n }\n\n return event.ctrlKey || event.metaKey;\n}\n\nexport function isCmdWithChar(event) {\n return isCmd(event) && event.key.length === 1 && /^[a-zA-Z]$/.test(event.key);\n}","import Description from './Description';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classNames from 'classnames';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function ToggleSwitch(props) {\n const {\n id,\n label,\n onInput,\n value,\n switcherLabel,\n inline,\n onFocus,\n onBlur,\n inputRef,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = async () => {\n onInput(!value);\n };\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class={ classNames(\n 'bio-properties-panel-toggle-switch',\n { inline }\n ) }>\n <label class=\"bio-properties-panel-label\"\n for={ prefixId(id) }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <div class=\"bio-properties-panel-field-wrapper\">\n <label class=\"bio-properties-panel-toggle-switch__switcher\">\n <input\n ref={ inputRef }\n id={ prefixId(id) }\n class=\"bio-properties-panel-input\"\n type=\"checkbox\"\n onFocus={ onFocus }\n onBlur={ onBlur }\n name={ id }\n onInput={ handleInput }\n checked={ !!localValue } />\n <span class=\"bio-properties-panel-toggle-switch__slider\" />\n </label>\n { switcherLabel && <p class=\"bio-properties-panel-toggle-switch__label\">{ switcherLabel }</p> }\n </div>\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {String} props.switcherLabel\n * @param {Boolean} props.inline\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function ToggleSwitchEntry(props) {\n const {\n element,\n id,\n description,\n label,\n switcherLabel,\n inline,\n getValue,\n setValue,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-toggle-switch-entry\" data-entry-id={ id }>\n <ToggleSwitch\n key={ element }\n id={ id }\n label={ label }\n value={ value }\n onInput={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel }\n inline={ inline }\n tooltip={ tooltip }\n element={ element } />\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError\n} from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function NumberField(props) {\n\n const {\n debounce,\n disabled,\n displayLabel = true,\n id,\n inputRef,\n label,\n max,\n min,\n onInput,\n step,\n value = '',\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => {\n\n if (target.validity.valid) {\n onInput(target.value ? parseFloat(target.value) : undefined);\n }\n });\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-numberfield\">\n {displayLabel && (\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n )}\n <input\n id={ prefixId(id) }\n ref={ inputRef }\n type=\"number\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n max={ max }\n min={ min }\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n step={ step }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.description\n * @param {Boolean} props.disabled\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {String} props.label\n * @param {String} props.max\n * @param {String} props.min\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {String} props.step\n * @param {Function} props.validate\n */\nexport default function NumberFieldEntry(props) {\n const {\n debounce,\n description,\n disabled,\n element,\n getValue,\n id,\n label,\n max,\n min,\n setValue,\n step,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = (newValue) => {\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n };\n\n const error = globalError || localError;\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '') } data-entry-id={ id }>\n <NumberField\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onInput={ onInput }\n max={ max }\n min={ min }\n step={ step }\n value={ value }\n tooltip={ tooltip }\n />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from '../Description';\nimport TemplatingEditor from '../templating/TemplatingEditor';\n\nimport {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { forwardRef } from 'preact/compat';\n\nimport classnames from 'classnames';\n\nimport { isFunction, isString } from 'min-dash';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../../hooks';\n\nimport FeelEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { EventContext, FeelLanguageContext } from '../../../context';\nimport { isCmdWithChar } from '../../util/keyboardUtils';\n\nimport translateFallback from '../../util/translateFallback';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @typedef {'required'|'optional'|'optional-default-enabled'|'static'} FeelType\n */\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.id\n * @param {Object} props.element\n * @param {String} props.label\n * @param {String} props.hostLanguage\n * @param {Function} props.onInput\n * @param {Function} props.onBlur\n * @param {Function} props.onError\n * @param {FeelType} [props.feel]\n * @param {String} props.value\n * @param {Boolean} [props.singleLine]\n * @param {Function} props.tooltipContainer\n * @param {Function | import('preact').Component} props.OptionalComponent\n * @param {Boolean} props.disabled\n * @param {Array} props.variables\n * @param {string} [props.placeholder]\n * @param {string | import('preact').Component} props.tooltip\n * @param {Function} props.translate\n */\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput: commitValue,\n onBlur,\n onError,\n placeholder,\n feel,\n value = '',\n disabled = false,\n variables,\n singleLine,\n tooltipContainer,\n OptionalComponent = OptionalFeelInput,\n tooltip,\n translate\n } = props;\n\n const [ localValue, setLocalValue ] = useState(getInitialFeelLocalValue(feel, value));\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const onInput = useCallback(newValue => {\n\n // we don't commit empty FEEL expressions,\n // but instead serialize them as <undefined>\n const newModelValue = (newValue === '' || newValue === '=') ? undefined : newValue;\n commitValue(newModelValue);\n }, [ commitValue ]);\n\n const feelActive = isFeelActive(feel, localValue);\n const feelOnlyValue = getFeelValue(localValue);\n const feelLanguageContext = useContext(FeelLanguageContext);\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const {\n eventBus\n } = useContext(EventContext);\n\n const [ isPopupOpen, setIsPopupOpen ] = useState(false);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInput = useDebounce(onInput, debounce);\n\n const setAndCommitValue = (newValue) => {\n\n // cancel any pending debounced value\n handleInput.cancel?.();\n setLocalValue(newValue);\n onInput(newValue);\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setAndCommitValue('=' + localValue);\n } else {\n setAndCommitValue(feelOnlyValue);\n }\n });\n\n const handleInputChange = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n handleInput(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleOptionalInputOnBlur = (e) => {\n if (e.target.type === 'checkbox') {\n setAndCommitValue(e.target.checked);\n } else {\n const trimmedValue = e.target.value.trim();\n\n if (trimmedValue !== localValue) {\n\n // Trim changed the value — commit trimmed\n setAndCommitValue(trimmedValue);\n } else {\n\n // Value unchanged — flush any pending debounce\n handleInput.flush?.();\n }\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleFeelEditorOnBlur = () => {\n handleInput.flush?.();\n };\n\n const handleOnKeyDown = e => {\n if (isCmdWithChar(e)) {\n handleInput.flush?.();\n }\n };\n\n const handleLint = useStaticCallback((lint = []) => {\n\n const syntaxError = lint.some(report => report.type === 'Syntax Error');\n\n if (syntaxError) {\n onError(translate('Unparsable FEEL expression.'));\n } else {\n onError(undefined);\n }\n });\n\n const handleOpenPopup = (type = 'feel') => {\n const isOpen = eventBus.fire('propertiesPanel.openPopup', {\n element,\n entryId: id,\n hostLanguage,\n label,\n onInput: handleInputChange,\n singleLine,\n sourceElement: editorRef.current,\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables,\n feelLanguageContext,\n });\n\n if (isOpen) {\n eventBus.once('propertiesPanelPopup.close', () => {\n setIsPopupOpen(false);\n });\n }\n\n setIsPopupOpen(isOpen === true);\n };\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n return () => {\n eventBus.fire('propertiesPanel.closePopup');\n };\n }, []);\n\n // copy-paste integration\n useEffect(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n\n const pasteHandler = event => {\n if (feelActive || isPopupOpen) {\n return;\n }\n\n const feelData = event.clipboardData.getData('application/FEEL');\n if (feelData) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\n return;\n }\n\n const target = event.target;\n\n // Skip for non-input/textArea elements (e.g. CodeMirror contenteditable)\n if (!(target instanceof HTMLInputElement) && !(target instanceof HTMLTextAreaElement)) {\n return;\n }\n\n const isFieldEmpty = !target.value;\n const isAllSelected = target.selectionStart === 0 && target.selectionEnd === target.value.length;\n\n if (isFieldEmpty || isAllSelected) {\n const textData = event.clipboardData.getData('text');\n const trimmedValue = textData.trim();\n\n setAndCommitValue(trimmedValue);\n\n if (!feelActive && isString(trimmedValue) && trimmedValue.startsWith('=')) {\n setFocus(trimmedValue.length - 1);\n }\n\n event.preventDefault();\n }\n };\n containerRef.current.addEventListener('copy', copyHandler);\n containerRef.current.addEventListener('cut', copyHandler);\n containerRef.current.addEventListener('paste', pasteHandler);\n\n return () => {\n containerRef.current.removeEventListener('copy', copyHandler);\n containerRef.current.removeEventListener('cut', copyHandler);\n containerRef.current.removeEventListener('paste', pasteHandler);\n };\n }, [ containerRef, feelActive, handleFeelToggle, setFocus ]);\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-feel-entry',\n { 'feel-active': feelActive }\n ) }>\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n <FeelIcon\n label={ label }\n feel={ feel }\n onClick={ handleFeelToggle }\n active={ feelActive }\n translate={ translate }\n />\n </label>\n\n <div class=\"bio-properties-panel-feel-container\" ref={ containerRef }>\n <FeelIndicator\n active={ feelActive }\n disabled={ !isFeelOptional(feel) || disabled }\n onClick={ handleFeelToggle }\n />\n {feelActive ?\n <FeelEditor\n name={ id }\n onInput={ handleInputChange }\n onBlur={ handleFeelEditorOnBlur }\n onKeyDown={ handleOnKeyDown }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n disabled={ disabled }\n popupOpen={ isPopupOpen }\n onFeelToggle={ () => {\n handleFeelToggle();\n setFocus(true);\n } }\n onLint={ handleLint }\n onOpenPopup={ handleOpenPopup }\n placeholder={ placeholder }\n value={ feelOnlyValue }\n variables={ variables }\n feelLanguageContext={ feelLanguageContext }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n translate={ translate }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ isPopupOpen }\n onInput={ handleInputChange }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOptionalInputOnBlur }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onOpenPopup={ handleOpenPopup }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\n\nconst OptionalFeelInput = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n onKeyDown,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number') {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <input\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onKeyDown={ onKeyDown }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' } />;\n});\n\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <NumberField\n id={ id }\n debounce={ debounce }\n disabled={ disabled }\n displayLabel={ false }\n inputRef={ inputRef }\n max={ max }\n min={ min }\n onInput={ onInput }\n step={ step }\n value={ value }\n onFocus={ onFocus }\n onBlur={ onBlur }\n />;\n});\n\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n input.setSelectionRange(0, 0);\n }\n };\n\n return <textarea\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' }\n data-gramm=\"false\"\n />;\n});\n\nconst OptionalFeelToggleSwitch = forwardRef((props, ref) => {\n const {\n id,\n onInput,\n value,\n onFocus,\n onBlur,\n switcherLabel\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <ToggleSwitch\n id={ id }\n value={ value }\n inputRef={ inputRef }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel } />;\n});\n\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n const handleChange = ({ target }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <input\n ref={ inputRef }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ value }\n disabled={ disabled } />;\n});\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop,\n example,\n variables,\n onFocus,\n onBlur,\n placeholder,\n tooltip,\n translate = translateFallback\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n const value = getValue(element);\n\n // don't create multiple commandStack entries and do validation for the same value\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setValidationError(newValidationError);\n }\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = temporaryError || localError || validationError;\n\n return (\n <div\n class={ classnames(\n props.class,\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <FeelTextfield\n { ...props }\n debounce={ debounce }\n disabled={ disabled }\n feel={ feel }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n example={ example }\n hostLanguage={ hostLanguage }\n singleLine={ singleLine }\n show={ show }\n translate={ translate }\n value={ value }\n variables={ variables }\n tooltipContainer={ tooltipContainer }\n OptionalComponent={ props.OptionalComponent }\n tooltip={ tooltip } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.max\n * @param {String} props.min\n * @param {String} props.step\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelNumberEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n */\nexport function FeelTextAreaEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-textarea\" OptionalComponent={ OptionalFeelTextArea } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelToggleSwitchEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelCheckboxEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.hostLanguage\n * @param {Boolean} props.singleLine\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTemplatingEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\n}\n\nexport function isEdited(node) {\n if (!node) {\n return false;\n }\n\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n\n return !!node.value || node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\n/**\n * Determine if FEEL is optional for the configured {@link FeelType}.\n *\n * @param {FeelType} feelType\n *\n * @return {boolean}\n */\nfunction isFeelOptional(feelType) {\n return feelType === 'optional' || feelType === 'optional-default-enabled';\n}\n\n/**\n * Determine if FEEL editing is currently active.\n *\n * @param {FeelType} feelType\n * @param {string} localValue\n *\n * @return {boolean}\n */\nfunction isFeelActive(feelType, localValue) {\n\n if (feelType === 'required') {\n return true;\n }\n\n if (isString(localValue)) {\n if (localValue.startsWith('=')) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @template T\n * @param {T} value\n *\n * @return {string|T}\n */\nfunction getFeelValue(value) {\n if (isString(value) && value.startsWith('=')) {\n return value.substring(1);\n }\n\n return value;\n}\n\n/**\n * Initialize local FEEL value.\n *\n * `optional-default-enabled` starts in FEEL mode if no value or empty string is provided.\n *\n * @template T\n * @param {FeelType} feelType\n * @param {T} value\n *\n * @return {string|T}\n */\nfunction getInitialFeelLocalValue(feelType, value) {\n if (feelType === 'optional-default-enabled' && (value === undefined || value === '')) {\n return '=';\n }\n\n return value;\n}\n","import { useCallback, useEffect, useState, useMemo, useRef } from 'preact/hooks';\nimport { useStaticCallback, useShowEntryEvent } from '../../../hooks';\nimport { isFunction } from 'min-dash';\nimport { useError } from '../../../hooks';\nimport classnames from 'classnames';\nimport Description from '../Description';\nimport TemplatingEditor from './TemplatingEditor';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n */\nexport default function TemplatingEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n tooltipContainer,\n validate,\n show = noop,\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = localError || temporaryError || validationError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Templating\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n show={ show }\n value={ value }\n tooltipContainer={ tooltipContainer } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nfunction Templating(props) {\n const {\n debounce,\n id,\n label,\n onInput,\n onError,\n value = '',\n disabled = false,\n tooltipContainer\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => onInput(newValue.length ? newValue : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n handleInputCallback(newValue);\n setLocalValue(newValue);\n };\n\n const handleLint = useStaticCallback(lint => {\n\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\n\n if (!errors.length) {\n onError(undefined);\n return;\n }\n\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value ? value : '');\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-feelers\">\n <label id={ prefixIdLabel(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n {label}\n </label>\n <div class=\"bio-properties-panel-feelers-input\" ref={ containerRef }>\n <TemplatingEditor\n name={ id }\n onInput={ handleInput }\n contentAttributes={ { 'aria-labelledby': prefixIdLabel(id) } }\n disabled={ disabled }\n onLint={ handleLint }\n value={ localValue }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n </div>\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && (!!node.value || node.classList.contains('edited'));\n}\n\n// helpers /////////////////\n\nfunction prefixIdLabel(id) {\n return `bio-properties-panel-feelers-${id}-label`;\n}","import {\n useEffect,\n useState,\n useRef\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useKeyFactory,\n usePrevious,\n useStickyIntersectionObserver\n} from '../../hooks';\n\nimport translateFallback from '../util/translateFallback';\n\nimport classnames from 'classnames';\n\nimport {\n ArrowIcon,\n CreateIcon,\n DeleteIcon\n} from '../icons';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Entry for handling lists represented as nested entries.\n *\n * @template Item\n * @param {object} props\n * @param {string} props.id\n * @param {*} props.element\n * @param {Function} props.onAdd\n * @param {import('preact').Component} props.component\n * @param {string|import('preact').ComponentChildren} [props.label='<empty>']\n * @param {Function} [props.onRemove]\n * @param {Item[]} [props.items]\n * @param {boolean} [props.open]\n * @param {string|boolean} [props.autoFocusEntry] either a custom selector string or true to focus the first input\n * @param {Function} [props.translate]\n * @returns\n */\nexport default function List(props) {\n const {\n id,\n element,\n items = [],\n component,\n label = '<empty>',\n open: shouldOpen,\n onAdd,\n onRemove,\n autoFocusEntry,\n translate = translateFallback,\n ...restProps\n } = props;\n\n const entryRef = useRef(null);\n const [ open, setOpen ] = useState(!!shouldOpen);\n const [ sticky, setSticky ] = useState(false);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const elementChanged = usePrevious(element) !== element;\n const newItems = useNewItems(items, elementChanged);\n\n useEffect(() => {\n if (open && !hasItems) {\n setOpen(false);\n }\n }, [ open, hasItems ]);\n\n /**\n * @param {MouseEvent} event\n */\n function addItem(event) {\n event.stopPropagation();\n onAdd();\n\n if (!open) {\n setOpen(true);\n }\n }\n\n // set css class when entry is sticky to top\n useStickyIntersectionObserver(entryRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-entry',\n 'bio-properties-panel-list-entry',\n hasItems ? '' : 'empty',\n open ? 'open' : ''\n ) }\n ref={ entryRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-list-entry-header',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ toggleOpen }>\n <div\n class={ classnames(\n 'bio-properties-panel-list-entry-header-title',\n open && 'open'\n ) }>\n { label }\n </div>\n <div\n class=\"bio-properties-panel-list-entry-header-buttons\"\n >\n <button\n type=\"button\"\n title={ translate('Create new list item') }\n onClick={ addItem }\n class=\"bio-properties-panel-add-entry\"\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\n )\n : null\n }\n </button>\n {\n hasItems && (\n <div\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\n class=\"bio-properties-panel-list-badge\"\n >\n { items.length }\n </div>\n )\n }\n {\n hasItems && (\n <button\n type=\"button\"\n title={ translate('Toggle list item') }\n class=\"bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n }\n </div>\n </div>\n {\n hasItems && (\n <ItemsList\n { ...restProps }\n autoFocusEntry={ autoFocusEntry }\n component={ component }\n element={ element }\n id={ id }\n items={ items }\n newItems={ newItems }\n onRemove={ onRemove }\n open={ open }\n translate={ translate }\n />\n )\n }\n </div>\n );\n}\n\nfunction ItemsList(props) {\n const {\n autoFocusEntry,\n component: Component,\n element,\n id,\n items,\n newItems,\n onRemove,\n open,\n translate,\n ...restProps\n } = props;\n\n const getKey = useKeyFactory();\n\n const newItem = newItems[0];\n\n useEffect(() => {\n if (newItem && autoFocusEntry) {\n\n // (0) select the parent entry (containing all list items)\n const entry = domQuery(`[data-entry-id=\"${id}\"]`);\n\n // (1) select the first input or a custom element to be focussed\n const selector = typeof(autoFocusEntry) === 'boolean' ?\n '.bio-properties-panel-input' :\n autoFocusEntry;\n const focusableInput = domQuery(selector, entry);\n\n // (2) set focus\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n }\n }\n }, [ newItem, autoFocusEntry, id ]);\n\n return <ol class={ classnames(\n 'bio-properties-panel-list-entry-items',\n open ? 'open' : ''\n ) }>\n {\n items.map((item, index) => {\n const key = getKey(item);\n\n return (<li class=\"bio-properties-panel-list-entry-item\" key={ key }>\n <Component\n { ...restProps }\n element={ element }\n id={ id }\n index={ index }\n item={ item }\n open={ item === newItem } />\n {\n onRemove && (\n <button\n type=\"button\"\n title={ translate('Delete item') }\n class=\"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\"\n onClick={ () => onRemove && onRemove(item) }\n ><DeleteIcon /></button>\n )\n }\n </li>);\n })\n }\n </ol>;\n}\n\nfunction useNewItems(items = [], shouldReset) {\n const previousItems = usePrevious(items.slice()) || [];\n\n if (shouldReset) {\n return [];\n }\n\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\n}\n","import classNames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef { { value: string, label: string, disabled: boolean, children: { value: string, label: string, disabled: boolean } } } Option\n */\n\n/**\n * Provides basic select input.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string[]} props.path\n * @param {string} props.label\n * @param {Function} props.onChange\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Array<Option>} [props.options]\n * @param {string} props.value\n * @param {boolean} [props.disabled]\n */\nfunction Select(props) {\n const {\n id,\n label,\n onChange,\n options = [],\n value = '',\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const ref = useShowEntryEvent(id);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.value);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-select\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n </label>\n <select\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n class=\"bio-properties-panel-input\"\n onInput={ handleChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue }\n disabled={ disabled }\n >\n {options.map((option, idx) => {\n if (option.children) {\n return (\n <optgroup key={ idx } label={ option.label }>\n {option.children.map((child, idx) => (\n <option\n key={ idx }\n value={ child.value }\n disabled={ child.disabled }\n >\n {child.label}\n </option>\n ))}\n </optgroup>\n );\n }\n\n return (\n <option key={ idx } value={ option.value } disabled={ option.disabled }>\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.getOptions\n * @param {boolean} [props.disabled]\n * @param {Function} [props.validate]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function SelectEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n getOptions,\n disabled,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const options = getOptions(element);\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n\n const onChange = (newValue) => {\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n };\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Select\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onChange={ onChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n options={ options }\n disabled={ disabled }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n useMemo,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport translateFallback from '../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {Object} props\n * @param {Function} props.debounce\n * @param {Boolean} [props.disabled]\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {Function} [props.onBlur]\n * @param {Function} [props.onFocus]\n * @param {Function} props.setValue\n * @param {Function} [props.translate]\n */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue,\n translate = translateFallback\n } = props;\n\n const value = getValue(element);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => setValue(target.value.length ? target.value : undefined));\n }, [ setValue, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n return (\n <div class=\"bio-properties-panel-simple\">\n <input\n id={ prefixId(id) }\n key={ element }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n aria-label={ localValue || translate('<empty>') }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useDebounce,\n useElementVisible,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../hooks';\n\nimport { isFunction } from 'min-dash';\nimport Tooltip from './Tooltip';\nimport { isCmdWithChar } from '../util/keyboardUtils';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction resizeToContents(element) {\n element.style.height = 'auto';\n\n // a 2px pixel offset is required to prevent scrollbar from\n // appearing on OS with a full length scroll bar (Windows/Linux)\n element.style.height = `${ element.scrollHeight + 2 }px`;\n}\n\nfunction TextArea(props) {\n\n const {\n id,\n label,\n debounce,\n onInput: commitValue,\n value = '',\n disabled,\n monospace,\n onFocus,\n onBlur,\n onPaste,\n autoResize = true,\n placeholder,\n rows = autoResize ? 1 : 2,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const ref = useShowEntryEvent(id);\n\n const onInput = useCallback(newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n commitValue(newModelValue);\n }, [ commitValue ]);\n\n const visible = useElementVisible(ref.current);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInput = useDebounce(onInput, debounce);\n\n const handleLocalInput = e => {\n autoResize && resizeToContents(e.target);\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n const handleOnBlur = e => {\n const trimmedValue = e.target.value.trim();\n\n // trim and commit on blur\n handleInput.cancel?.();\n onInput(trimmedValue);\n setLocalValue(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleOnPaste = e => {\n const input = e.target;\n const isFieldEmpty = !input.value;\n const isAllSelected = input.selectionStart === 0 && input.selectionEnd === input.value.length;\n\n // Trim and handle paste if field is empty or all content is selected\n if (isFieldEmpty || isAllSelected) {\n const trimmedValue = e.clipboardData.getData('text').trim();\n\n setLocalValue(trimmedValue);\n handleInput(trimmedValue);\n\n if (onPaste) {\n onPaste(e);\n }\n\n e.preventDefault();\n return;\n }\n\n // Allow default paste behavior for normal text editing\n if (onPaste) {\n onPaste(e);\n }\n };\n\n const handleOnKeyDown = e => {\n if (isCmdWithChar(e)) {\n handleInput.flush?.();\n }\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n\n useLayoutEffect(() => {\n visible && autoResize && resizeToContents(ref.current);\n }, [ visible ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textarea\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <textarea\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n spellCheck=\"false\"\n class={ classnames(\n 'bio-properties-panel-input',\n monospace ? 'bio-properties-panel-input-monospace' : '',\n autoResize ? 'auto-resize' : '')\n }\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOnBlur }\n onPaste={ handleOnPaste }\n placeholder={ placeholder }\n rows={ rows }\n value={ localValue }\n disabled={ disabled }\n data-gramm=\"false\"\n />\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} props.description\n * @param {boolean} props.debounce\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.onPaste\n * @param {number} props.rows\n * @param {boolean} props.monospace\n * @param {Function} [props.validate]\n * @param {boolean} [props.disabled]\n */\nexport default function TextAreaEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n label,\n getValue,\n setValue,\n rows,\n monospace,\n disabled,\n validate,\n onFocus,\n onBlur,\n onPaste,\n placeholder,\n autoResize,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n const value = getValue(element);\n\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n });\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <TextArea\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onPaste={ onPaste }\n rows={ rows }\n debounce={ debounce }\n monospace={ monospace }\n disabled={ disabled }\n placeholder={ placeholder }\n autoResize={ autoResize }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../hooks';\nimport { isCmdWithChar } from '../util/keyboardUtils';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction Textfield(props) {\n\n const {\n debounce,\n disabled = false,\n id,\n label,\n onInput: commitValue,\n onFocus,\n onBlur,\n onPaste,\n placeholder,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n const onInput = useCallback(newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n commitValue(newModelValue);\n }, [ commitValue ]);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInput = useDebounce(onInput, debounce);\n\n const handleOnBlur = e => {\n const trimmedValue = e.target.value.trim();\n\n // trim and commit on blur\n handleInput.cancel?.();\n onInput(trimmedValue);\n setLocalValue(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleOnPaste = e => {\n const input = e.target;\n const isFieldEmpty = !input.value;\n const isAllSelected = input.selectionStart === 0 && input.selectionEnd === input.value.length;\n\n // Trim and handle paste if field is empty or all content is selected (overwrite)\n if (isFieldEmpty || isAllSelected) {\n const trimmedValue = e.clipboardData.getData('text').trim();\n\n setLocalValue(trimmedValue);\n handleInput(trimmedValue);\n\n if (onPaste) {\n onPaste(e);\n }\n\n e.preventDefault();\n return;\n }\n\n // Allow default paste behavior for normal text editing\n if (onPaste) {\n onPaste(e);\n }\n };\n\n const handleLocalInput = e => {\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n const handleOnKeyDown = e => {\n if (isCmdWithChar(e)) {\n handleInput.flush?.();\n }\n };\n\n return (\n <div class=\"bio-properties-panel-textfield\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <input\n ref={ ref }\n id={ prefixId(id) }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOnBlur }\n onPaste={ handleOnPaste }\n placeholder={ placeholder }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {Function} props.validate\n */\nexport default function TextfieldEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n validate,\n onFocus,\n onBlur,\n onPaste,\n placeholder,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n const value = getValue(element);\n\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n });\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Textfield\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onPaste={ onPaste }\n placeholder={ placeholder }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n debounce as _debounce,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 600;\n\n/**\n * Creates a debounced version of a function, delaying its execution based on `debounceDelay`.\n *\n * - If `debounceDelay` is `false`, the function executes immediately without debouncing.\n * - If a number is provided, the function execution is delayed by the given time in milliseconds.\n *\n * @param { Boolean | Number } [debounceDelay=600]\n *\n * @example\n * const debounce = debounceInput();\n * const debouncedFn = debounce(fn);\n *\n * debouncedFn(); // Executes after 300ms (default) if no further calls occur.\n */\nexport default function debounceInput(debounceDelay) {\n\n /**\n * Applies debounce to the provided function, with a previously setup delay.\n *\n * @template { (...args: any[]) => any } T\n *\n * @param {T} fn\n *\n * @return { (...p: Parameters<T>) => any }\n */\n return function debounce(fn) {\n if (debounceDelay === false) {\n return fn;\n }\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return _debounce(fn, debounceTime);\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","import { domify } from 'min-dom';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Add a dragger that calls back the passed function with\n * { event, delta } on drag.\n *\n * @example\n *\n * function dragMove(event, delta) {\n * // we are dragging (!!)\n * }\n *\n * domElement.addEventListener('dragstart', dragger(dragMove));\n *\n * @param {Function} fn\n * @param {Element} [dragPreview]\n *\n * @return {Function} drag start callback function\n */\nexport function createDragger(fn, dragPreview) {\n\n let self;\n\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n\n self = this;\n\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n\n return onDragStart;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction emptyCanvas() {\n return domify('<canvas width=\"0\" height=\"0\" />');\n}","import { forwardRef } from 'preact/compat';\n\nimport { useEffect, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon, CloseIcon } from '../../../components/icons';\n\nimport { createDragger } from '../../../components/util/dragger';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{top: number, left: number}} [props.position]\n * @param {number} [props.width]\n * @param {number} [props.height]\n * @param {Function} props.onClose\n * @param {Function} [props.onPostActivate]\n * @param {Function} [props.onPostDeactivate]\n * @param {boolean} [props.returnFocus]\n * @param {boolean} [props.closeOnEscape]\n * @param {string} props.title\n * @param {Ref} [ref]\n */\nfunction PopupComponent(props, globalRef) {\n const {\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop,\n onPostDeactivate = noop,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n\n const focusTrapRef = useRef(null);\n const localRef = useRef(null);\n const popupRef = globalRef || localRef;\n\n const handleKeydown = (event) => {\n\n // do not allow keyboard events to bubble\n event.stopPropagation();\n\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n\n let style = {};\n\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px',\n };\n }\n\n if (width) {\n style.width = width + 'px';\n }\n\n if (height) {\n style.height = height + 'px';\n }\n\n useEffect(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n\n return () => {\n if (popupRef.current) {\n popupRef.current.removeEventListener('focusin', handleFocus);\n }\n };\n }, [ popupRef ]);\n\n useEffect(() => {\n if (popupRef.current) {\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus,\n });\n\n focusTrapRef.current.activate();\n }\n\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [ popupRef ]);\n\n return (\n <div\n aria-label={ title }\n tabIndex={ -1 }\n ref={ popupRef }\n onKeyDown={ handleKeydown }\n role=\"dialog\"\n class={ classNames('bio-properties-panel-popup', className) }\n style={ style }\n >\n {props.children}\n </div>\n );\n}\n\nexport const Popup = forwardRef(PopupComponent);\n\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\n\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n eventBus,\n title,\n showCloseButton = false,\n closeButtonTooltip = 'Close popup',\n onClose,\n ...rest\n } = props;\n\n // we can't use state as we need to\n // manipulate this inside dragging events\n const context = useRef({\n startPosition: null,\n newPosition: null,\n });\n\n const dragPreviewRef = useRef();\n\n const titleRef = useRef();\n\n const onMove = (event, delta) => {\n cancel(event);\n\n const { x: dx, y: dy } = delta;\n\n const newPosition = {\n x: context.current.startPosition.x + dx,\n y: context.current.startPosition.y + dy,\n };\n\n const popupParent = getPopupParent(titleRef.current);\n\n popupParent.style.top = newPosition.y + 'px';\n popupParent.style.left = newPosition.x + 'px';\n\n eventBus?.fire('feelPopup.dragover', { newPosition, delta });\n };\n\n const onMoveStart = (event) => {\n\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n\n event.stopPropagation();\n\n const popupParent = getPopupParent(titleRef.current);\n\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top,\n };\n\n eventBus?.fire('feelPopup.dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n eventBus?.fire('feelPopup.dragend');\n };\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-popup__header',\n draggable && 'draggable',\n className\n ) }\n ref={ titleRef }\n draggable={ draggable }\n onDragStart={ onMoveStart }\n onDragEnd={ onMoveEnd }\n { ...rest }\n >\n {draggable && (\n <>\n <div\n ref={ dragPreviewRef }\n class=\"bio-properties-panel-popup__drag-preview\"\n ></div>\n <div class=\"bio-properties-panel-popup__drag-handle\">\n <DragIcon />\n </div>\n </>\n )}\n <div class=\"bio-properties-panel-popup__title\">{title}</div>\n {children}\n {showCloseButton && (\n <button\n type=\"button\"\n title={ closeButtonTooltip }\n class=\"bio-properties-panel-popup__close\"\n onClick={ onClose }\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\nfunction Body(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__body', className) }\n { ...rest }\n >\n {children}\n </div>\n );\n}\n\nfunction Footer(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__footer', className) }\n { ...rest }\n >\n {props.children}\n </div>\n );\n}\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\n\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n","import { useEffect, useRef } from 'preact/hooks';\nimport FeelEditor from '../../../components/entries/FEEL/FeelEditor';\nimport TemplatingEditor from '../../../components/entries/templating/TemplatingEditor';\nimport { LaunchIcon } from '../../../components/icons';\nimport { Popup } from './Popup';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef {Object} FeelPopupProps\n * @property {string} entryId\n * @property {Function} onInput\n * @property {Function} onClose\n * @property {string} title\n * @property {'feel'|'feelers'} type\n * @property {string} value\n * @property {Array} [links]\n * @property {Array|Object} [variables]\n * @property {Object} [position]\n * @property {string} [hostLanguage]\n * @property {boolean} [singleLine]\n * @property {HTMLElement} [sourceElement]\n * @property {HTMLElement|string} [tooltipContainer]\n * @property {Object} [eventBus]\n */\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n/**\n * FEEL expression editor popup component\n * @param {FeelPopupProps} props\n */\nexport function FeelPopup(props) {\n const {\n entryId,\n onInput,\n onClose,\n title,\n type,\n value,\n links,\n variables,\n position,\n hostLanguage,\n singleLine,\n sourceElement,\n tooltipContainer,\n eventBus,\n feelLanguageContext,\n } = props;\n\n const editorRef = useRef();\n const popupRef = useRef();\n\n const isAutoCompletionOpen = useRef(false);\n\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n\n const onKeyDownCapture = (event) => {\n\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n\n // set focus on editor when popup is opened\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, [ editorRef ]);\n\n return (\n <Popup\n className=\"bio-properties-panel-feel-popup\"\n position={ position }\n title={ title }\n returnFocus={ false }\n closeOnEscape={ false }\n delayInitialFocus={ false }\n onPostDeactivate={ handleSetReturnFocus }\n height={ FEEL_POPUP_HEIGHT }\n width={ FEEL_POPUP_WIDTH }\n ref={ popupRef }\n >\n <Popup.Title\n title={ title }\n eventBus={ eventBus }\n showCloseButton={ true }\n closeButtonTooltip=\"Save and close\"\n onClose={ onClose }\n draggable\n >\n <>\n {(links || []).map((link, index) => {\n return (\n <a\n key={ index }\n rel=\"noreferrer\"\n href={ link.href }\n target=\"_blank\"\n class=\"bio-properties-panel-feel-popup__title-link\"\n >\n {link.title}\n <LaunchIcon />\n </a>\n );\n })}\n </>\n </Popup.Title>\n <Popup.Body>\n <div\n onKeyDownCapture={ onKeyDownCapture }\n onKeyDown={ onKeyDown }\n class=\"bio-properties-panel-feel-popup__body\"\n >\n {type === 'feel' && (\n <FeelEditor\n enableGutters={ true }\n id={ prefixId(entryId) }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n feelLanguageContext={ feelLanguageContext }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )}\n\n {type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(entryId) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )}\n </div>\n </Popup.Body>\n </Popup>\n );\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n const editor = element.closest('.cm-editor');\n return editor ? editor.querySelector('.cm-tooltip-autocomplete') : null;\n}\n","import { FEEL_POPUP_WIDTH, FEEL_POPUP_HEIGHT } from './FeelPopup';\n\nexport function getPopupTitle({ element, label }) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\n}\n\nexport function getPopupPosition() {\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n return {\n left: Math.max(0, (viewportWidth - FEEL_POPUP_WIDTH) / 2),\n top: Math.max(0, (viewportHeight - FEEL_POPUP_HEIGHT) / 2)\n };\n}","import { getPopupPosition, getPopupTitle } from './components/helpers';\n\n/**\n * FEEL popup component, built as a singleton.\n *\n * In order to implement a custom replacement, handle the following events:\n * - `propertiesPanel.openPopup`\n * - `propertiesPanel.closePopup`\n * - `propertiesPanel.detach`\n *\n * Within the custom renderer, make sure to emit the following events:\n * - `feelPopup.open` - fired before the popup is mounted\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport class FeelPopup {\n constructor(eventBus, config = {}) {\n this._eventBus = eventBus;\n this._config = config;\n\n this._isOpen = false;\n\n eventBus.on('propertiesPanel.openPopup', (_, context) => {\n this.open(context.entryId, context, context.sourceElement);\n\n // return true to indicate that popup was opened\n return true;\n });\n\n eventBus.on([\n 'propertiesPanel.closePopup',\n 'propertiesPanel.detach'\n ], () => {\n this.close();\n });\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._isOpen;\n }\n\n /**\n * Open the FEEL popup.\n *\n * @param {String} entryId\n * @param {Object} popupConfig\n * @param {HTMLElement} sourceElement\n */\n open(entryId, popupConfig, sourceElement) {\n\n // close before opening a new one\n this.close();\n\n this._openPopup({\n ...popupConfig,\n entryId,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n this._closePopup();\n }\n\n _openPopup(context) {\n const {\n element,\n label,\n sourceElement,\n type\n } = context;\n\n this._isOpen = true;\n\n this._eventBus.fire('propertiesPanelPopup.open', {\n container: this._config.feelPopupContainer,\n config: {\n ...context,\n links: this._config.getFeelPopupLinks?.(type) || [],\n onClose: () => {\n this._closePopup();\n\n // setTimeout to ensure the focus happens after the DOM updates make it focusable\n setTimeout(() => {\n sourceElement && sourceElement.focus();\n }, 0);\n },\n position: getPopupPosition(),\n title: getPopupTitle({ element, label })\n }\n });\n }\n\n _closePopup() {\n if (this._isOpen) {\n this._isOpen = false;\n\n this._eventBus.fire('propertiesPanelPopup.close');\n }\n }\n}\n\nFeelPopup.$inject = [ 'eventBus', 'config.propertiesPanel' ];\n","import { render } from 'preact';\nimport { FeelPopup } from './components';\nimport { query as domQuery } from 'min-dom';\nimport { isString } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport class FeelPopupRenderer {\n constructor(eventBus) {\n this._eventBus = eventBus;\n\n this._container = null;\n this._element = null;\n\n eventBus.on('propertiesPanelPopup.open', (context) => {\n this._renderPopup(context);\n });\n\n eventBus.on('propertiesPanelPopup.close', () => {\n this._removePopup();\n });\n }\n\n _renderPopup(context) {\n let { container, config } = context;\n\n container = this._container = getContainer(container) || document.body;\n\n const element = this._element = createElement();\n\n container.appendChild(element);\n\n // TODO(philippfromme): there is no useService in this context, so we need\n // to pass the event bus as a prop or create a context provider, however,\n // a custom renderer would have to use that context provider as well to have\n // access to the event bus and other services\n this._emit('feelPopup.open');\n\n render(\n <FeelPopup { ...config } eventBus={ this._eventBus } />,\n element\n );\n\n this._emit('feelPopup.opened', {\n domNode: element\n });\n }\n\n _removePopup() {\n if (!this._container) {\n return;\n }\n\n this._emit('feelPopup.close', {\n domNode: this._element\n });\n\n render(null, this._element);\n\n this._container.removeChild(this._element);\n\n this._container = null;\n\n this._emit('feelPopup.closed');\n }\n\n _emit(event, context) {\n this._eventBus.fire(event, context);\n }\n}\n\nFeelPopupRenderer.$inject = [ 'eventBus' ];\n\n// helpers /////////////////\n\nfunction createElement() {\n const element = document.createElement('div');\n\n element.classList.add('bio-properties-panel-popup-container');\n\n return element;\n}\n\nfunction getContainer(container) {\n if (isString(container)) {\n return domQuery(container);\n }\n\n return container;\n}","import { FeelPopup } from './FeelPopup';\nimport { FeelPopupRenderer } from './FeelPopupRenderer';\n\nexport default {\n __init__: [ 'feelPopup', 'feelPopupRenderer' ],\n feelPopup: [ 'type', FeelPopup ],\n feelPopupRenderer: [ 'type', FeelPopupRenderer ],\n};"],"names":["translateFallback","template","replacements","replace","_","key","Header","props","element","headerProvider","translate","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","class","children","_jsx","width","height","viewBox","rel","href","title","target","ExternalLinkIcon","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","FeelLanguageContext","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","useContext","TooltipWrapper","forId","contextDescription","value","Tooltip","parent","direction","position","showDelay","hideDelay","visible","setVisible","useState","tooltipPosition","setTooltipPosition","arrowOffset","setArrowOffset","showTimeoutRef","useRef","hideTimeoutRef","wrapperRef","tooltipRef","show","delay","clearTimeout","current","setTimeout","handleWrapperMouseEnter","e","hide","useEffect","handleClickOutside","contains","document","addEventListener","removeEventListener","useLayoutEffect","newPosition","newArrowOffset","getTooltipPosition","handleMouseLeave","relatedTarget","parentElement","selection","window","getSelection","toString","length","selectionRange","getRangeAt","commonAncestorContainer","anchorNode","focusNode","handleTooltipMouseEnter","handleFocusOut","hideTooltipViaEscape","code","renderTooltip","tooltipStyle","right","top","undefined","arrowStyle","role","style","ref","onClick","stopPropagation","onMouseEnter","onMouseLeave","tabIndex","onFocus","onBlur","onKeyDown","createPortal","refElement","tooltipElement","refPosition","getBoundingClientRect","x","tooltipRect","viewportHeight","innerHeight","minTop","maxTop","originalTop","defaultMarginTop","topDiff","useDescriptionContext","useDebounce","callback","debounceFn","debouncedCallback","useCallback","flush","useError","useErrors","useEvent","event","eventContext","didMount","on","off","useKeyFactory","dependencies","map","useMemo","Map","getKey","el","get","Math","random","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","newValue","usePrevious","useShowEntryEvent","onShow","PropertiesPanelContext","focus","onShowEntry","isFunction","select","useStickyIntersectionObserver","scrollContainerSelector","setSticky","scrollContainer","setScrollContainer","domQuery","updateScrollContainer","newScrollContainer","Observer","IntersectionObserver","observer","entries","scrollHeight","forEach","entry","intersectionRatio","root","rootMargin","threshold","observe","unobserve","useStaticCallback","callbackRef","args","useElementVisible","clientHeight","resizeObserver","ResizeObserver","requestAnimationFrame","newVisible","contentRect","disconnect","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","hasOneEditedEntry","find","isEdited","entryNode","inputNode","cancelAnimationFrame","allErrors","hasErrors","some","propertiesPanelContext","classnames","DataMarker","ArrowIcon","Provider","component","Component","_createElement","Placeholder","text","icon","Icon","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","createLayout","useUpdateLayoutEffect","newLayout","config","prevLayout","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","group","overrides","defaults","effect","deps","isMounted","DropdownButton","className","menuItems","dropdownRef","menuRef","close","onDropdownToggle","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","CollapsibleEntry","remove","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","noop","ListGroup","add","items","shouldSort","console","warn","localItems","setLocalItems","addTriggered","setAddTriggered","prevElement","openItemIds","getNewItemIds","hasItems","handleAddClick","hasError","CreateIcon","numOfItems","includes","newItems","oldItems","newIds","oldIds","filter","itemId","Description","Checkbox","onChange","disabled","localValue","setLocalValue","handleChangeCallback","checked","handleChange","prefixId","name","for","CheckboxEntry","getValue","setValue","error","node","CheckboxGroup","options","handleOptionChange","optionValue","v","option","ExternalChange","Annotation","define","parseJsonLinter","jsonParseLinter","JsonEditor","debounce","onInput","commitValue","placeholder","containerRef","viewRef","editorRef","view","EditorView","state","EditorState","create","doc","extensions","highlightSpecialChars","history","drawSelection","syntaxHighlighting","defaultHighlightStyle","fallback","foldGutter","bracketMatching","closeBrackets","keymap","of","defaultKeymap","historyKeymap","closeBracketsKeymap","foldKeymap","tabSize","lineWrapping","readOnly","cmPlaceholder","updateListener","update","isExternal","transactions","tr","annotation","docChanged","json","linter","content","trim","contentDOM","prefixedId","setAttribute","destroy","currentValue","dispatch","changes","from","to","insert","annotations","focusEditor","JsonEditorEntry","validate","globalError","localError","setLocalError","computeError","editorValue","setEditorValue","newValidationError","classList","validateJson","isObject","JSON","parse","OpenPopupButton","OpenPopupIcon","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","TemplatingEditor","forwardRef","tooltipContainer","enableGutters","onLint","onOpenPopup","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","handleInput","FeelersEditor","container","lineWrap","innerHTML","handleClick","classNames","FeelEditor","onKeyDownProp","onFeelToggle","variables","feelLanguageContext","builtins","dialect","parserDialect","handleBlur","range","ranges","mainIndex","Editor","lineNumbers","domEventHandlers","blur","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","isCmd","altKey","ctrlKey","metaKey","isCmdWithChar","test","ToggleSwitch","switcherLabel","inline","handleInputCallback","ToggleSwitchEntry","NumberField","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","getInitialFeelLocalValue","newModelValue","feelActive","isFeelActive","feelOnlyValue","getFeelValue","_setFocus","isPopupOpen","setIsPopupOpen","setFocus","hasFocus","activeElement","selectionStart","setAndCommitValue","cancel","handleFeelToggle","handleInputChange","isString","startsWith","handleOptionalInputOnBlur","trimmedValue","handleFeelEditorOnBlur","handleOnKeyDown","handleLint","lint","syntaxError","report","handleOpenPopup","isOpen","fire","entryId","sourceElement","once","copyHandler","clipboardData","setData","getData","pasteHandler","feelData","HTMLInputElement","HTMLTextAreaElement","isFieldEmpty","isAllSelected","selectionEnd","textData","preventDefault","isFeelOptional","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","feelType","substring","TemplatingEntry","Templating","severity","message","source","prefixIdLabel","List","onAdd","onRemove","restProps","entryRef","elementChanged","useNewItems","addItem","ItemsList","newItem","selector","shouldReset","previousItems","Select","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","onPaste","autoResize","rows","handleLocalInput","handleOnBlur","handleOnPaste","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","fn","debounceTime","isNumber","_debounce","$inject","createDragger","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","onEnd","delta","y","call","domify","PopupComponent","globalRef","delayInitialFocus","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","handleKeydown","handleFocus","activate","left","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","Popup","Title","Body","Footer","draggable","showCloseButton","closeButtonTooltip","rest","context","startPosition","dragPreviewRef","titleRef","onMove","dx","dy","popupParent","getPopupParent","onMoveStart","bounds","onMoveEnd","onDragEnd","_Fragment","DragIcon","CloseIcon","closest","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FeelPopup","links","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","link","LaunchIcon","querySelector","getPopupTitle","popupTitle","getPopupPosition","viewportWidth","innerWidth","documentElement","clientWidth","constructor","_eventBus","_config","_isOpen","popupConfig","_openPopup","_closePopup","feelPopupContainer","getFeelPopupLinks","FeelPopupRenderer","_container","_element","_renderPopup","_removePopup","getContainer","body","createElement","appendChild","_emit","render","domNode","removeChild","__init__","feelPopup","feelPopupRenderer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/icons/Arrow.js","../src/components/icons/Close.js","../src/components/icons/Create.js","../src/components/icons/Delete.js","../src/components/icons/Drag.js","../src/components/icons/ExternalLink.js","../src/components/icons/Feel.js","../src/components/icons/Launch.js","../src/components/icons/OpenPopup.js","../src/components/util/translateFallback.js","../src/components/Header.js","../src/context/DescriptionContext.js","../src/context/ErrorsContext.js","../src/context/EventContext.js","../src/context/FeelLanguageContext.js","../src/context/LayoutContext.js","../src/context/TooltipContext.js","../src/hooks/useTooltipContext.js","../src/components/entries/Tooltip.js","../src/hooks/useDescriptionContext.js","../src/hooks/useDebounce.js","../src/hooks/useError.js","../src/hooks/useEvent.js","../src/hooks/useKeyFactory.js","../src/hooks/useLayoutState.js","../src/hooks/usePrevious.js","../src/hooks/useShowEntryEvent.js","../src/hooks/useStickyIntersectionObserver.js","../src/hooks/useStaticCallback.js","../src/hooks/useElementVisible.js","../src/components/Group.js","../src/components/Placeholder.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Description.js","../src/components/entries/Checkbox.js","../src/components/entries/CheckboxGroup.js","../src/components/entries/JsonEditor.js","../src/components/OpenPopupButton.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/util/keyboardUtils.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/components/util/dragger.js","../src/features/feel-popup/components/Popup.js","../src/features/feel-popup/components/FeelPopup.js","../src/features/feel-popup/components/helpers.js","../src/features/feel-popup/FeelPopup.js","../src/features/feel-popup/FeelPopupRenderer.js","../src/features/feel-popup/index.js"],"sourcesContent":["export default function Arrow(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" { ...props }>\n <path fillRule=\"evenodd\" d=\"M10,12 L3,12 C2.44771525,12 2,11.5522847 2,11 C2,10.4477153 2.44771525,10 3,10 L8,10 L8,5 C8,4.44771525 8.44771525,4 9,4 C9.55228475,4 10,4.44771525 10,5 L10,12 Z\" transform=\"rotate(-45 6 8)\" />\n </svg>\n );\n}\n","export default function Close(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" { ...props }>\n <path fillRule=\"evenodd\" d=\"M12 4.7L11.3 4L8 7.3L4.7 4L4 4.7L7.3 8L4 11.3L4.7 12L8 8.7L11.3 12L12 11.3L8.7 8L12 4.7Z\" fill=\"currentColor\" />\n </svg>\n );\n}\n","export default function Create(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" { ...props }>\n <path fillRule=\"evenodd\" d=\"M9,13 L9,9 L9,9 L13,9 C13.5522847,9 14,8.55228475 14,8 C14,7.44771525 13.5522847,7 13,7 L9,7 L9,7 L9,3 C9,2.44771525 8.55228475,2 8,2 C7.44771525,2 7,2.44771525 7,3 L7,7 L7,7 L3,7 C2.44771525,7 2,7.44771525 2,8 C2,8.55228475 2.44771525,9 3,9 L7,9 L7,9 L7,13 C7,13.5522847 7.44771525,14 8,14 C8.55228475,14 9,13.5522847 9,13 Z\" />\n </svg>\n );\n}\n","export default function Delete(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" { ...props }>\n <path fillRule=\"evenodd\" d=\"M9,4 L9,11 C9,12.1 8.6,12.55 7.5,12.55 L2.5,12.55 C1.4,12.55 1,12.1 1,11 L1,4 L9,4 Z M7.5,5.5 L2.5,5.5 L2.5,9.8 C2.5,10.46 3,11 3.61111111,11 L6.38888889,11 C7,11 7.5,10.46 7.5,9.8 L7.5,5.5 Z M10,1 L8,1 L7,0 L3,0 L2,1 L0,1 L0,2.5 L10,2.5 L10,1 Z\" transform=\"translate(3 2)\" />\n </svg>\n );\n}\n","export default function Drag(props) {\n return (\n <svg width=\"16\" height=\"16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" { ...props }>\n <path fill=\"#fff\" style={ { mixBlendMode: 'multiply' } } d=\"M0 0h16v16H0z\" />\n <path fill=\"#fff\" style={ { mixBlendMode: 'multiply' } } d=\"M0 0h16v16H0z\" />\n <path d=\"M7 3H5v2h2V3zM11 3H9v2h2V3zM7 7H5v2h2V7zM11 7H9v2h2V7zM7 11H5v2h2v-2zM11 11H9v2h2v-2z\" fill=\"#161616\" />\n </svg>\n );\n}\n","export default function ExternalLink(props) {\n return (\n <svg width=\"16\" height=\"16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" { ...props }>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.637 12.637v-4.72h1.362v4.721c0 .36-.137.676-.411.95-.275.275-.591.412-.95.412H3.362c-.38 0-.703-.132-.967-.396A1.315 1.315 0 0 1 2 12.638V3.362c0-.38.132-.703.396-.967S2.982 2 3.363 2h4.553v1.363H3.363v9.274h9.274ZM14 2H9.28l-.001 1.362h2.408L5.065 9.984l.95.95 6.622-6.622v2.409H14V2Z\" fill=\"currentcolor\" />\n </svg>\n );\n}\n","export default function Feel(props) {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" { ...props }>\n <path d=\"M3.6168 11.9894C3.47957 12.6745 3.22473 13.1809 2.85227 13.5085C2.48961 13.8362 1.97012 14 1.29381 14H0L0.308751 12.4213H1.57316L3.08751 4.78085H2.17596L2.48471 3.20213H3.39626L3.6315 2.01064C3.76872 1.32553 4.01866 0.819149 4.38132 0.491489C4.75378 0.16383 5.27817 0 5.95448 0H7.2483L6.93954 1.57872H5.67514L5.35168 3.20213H6.61609L6.30734 4.78085H5.04293L3.6168 11.9894Z\" fill=\"currentcolor\" />\n <path d=\"M5.60492 11.0213L8.63361 6.86596L7.28099 3.20213H9.35403L10.0598 5.74894H10.2362L11.927 3.20213H14L10.986 7.25319L12.3239 11.0213H10.2509L9.54517 8.41489H9.36874L7.67796 11.0213H5.60492Z\" fill=\"currentcolor\" />\n </svg>\n );\n}\n","export default function Launch(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" { ...props }>\n <path d=\"M26,28H6a2.0027,2.0027,0,0,1-2-2V6A2.0027,2.0027,0,0,1,6,4H16V6H6V26H26V16h2V26A2.0027,2.0027,0,0,1,26,28Z\" />\n <polygon points=\"20 2 20 4 26.586 4 18 12.586 19.414 14 28 5.414 28 12 30 12 30 2 20 2\" />\n </svg>\n );\n}\n","export default function OpenPopup(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" { ...props }>\n <path d=\"M6 15L6 14 2.7 14 7 9.7 6.3 9 2 13.3 2 10 1 10 1 15zM10 1L10 2 13.3 2 9 6.3 9.7 7 14 2.7 14 6 15 6 15 1z\" />\n </svg>\n );\n}\n","/**\n * @typedef { {\n * [key: string]: string;\n * } } TranslateReplacements\n */\n\n/**\n * A simple translation stub to be used for multi-language support.\n * Can be easily replaced with a more sophisticated solution.\n *\n * @param {string} template to interpolate\n * @param {TranslateReplacements} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nexport default function translateFallback(template, replacements) {\n\n replacements = replacements || {};\n\n return template.replace(/{([^}]+)}/g, function(_, key) {\n return replacements[key] || '{' + key + '}';\n });\n}","import { ExternalLinkIcon } from './icons';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef { {\n * getElementLabel: (element: object) => string,\n * getTypeLabel: (element: object) => string,\n * getElementIcon: (element: object) => import('preact').Component,\n * getDocumentationRef: (element: object) => string\n * } } HeaderProvider\n */\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {HeaderProvider} props.headerProvider\n * @param {Function} [props.translate]\n */\nexport default function Header(props) {\n\n const {\n element,\n headerProvider,\n translate = translateFallback\n } = props;\n\n const {\n getElementIcon,\n getDocumentationRef,\n getElementLabel,\n getTypeLabel,\n } = headerProvider;\n\n const label = getElementLabel(element);\n const type = getTypeLabel(element);\n const documentationRef = getDocumentationRef && getDocumentationRef(element);\n\n const ElementIcon = getElementIcon(element);\n\n return (<div class=\"bio-properties-panel-header\">\n <div class=\"bio-properties-panel-header-icon\">\n { ElementIcon && <ElementIcon width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" /> }\n </div>\n <div class=\"bio-properties-panel-header-labels\">\n <div class=\"bio-properties-panel-header-type\">{ type }</div>\n { label ?\n <div class=\"bio-properties-panel-header-label\">{ label }</div> :\n null\n }\n </div>\n <div class=\"bio-properties-panel-header-actions\">\n { documentationRef ?\n <a\n rel=\"noreferrer\"\n class=\"bio-properties-panel-header-link\"\n href={ documentationRef }\n title={ translate('Open documentation') }\n target=\"_blank\">\n <ExternalLinkIcon />\n </a> :\n null\n }\n </div>\n </div>);\n}","import {\n createContext\n} from 'preact';\n\nconst DescriptionContext = createContext({\n description: {},\n getDescriptionForId: () => {}\n});\n\nexport default DescriptionContext;\n","import {\n createContext\n} from 'preact';\n\nconst ErrorsContext = createContext({\n errors: {}\n});\n\nexport default ErrorsContext;","/**\n * @typedef {Function} <propertiesPanel.showEntry> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\n/**\n * @typedef {Function} <propertiesPanel.showError> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {string} context.message\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\nimport { createContext } from 'preact';\n\nconst EventContext = createContext({ eventBus: null });\n\nexport default EventContext;\n","import {\n createContext\n} from 'preact';\n\n/**\n * @typedef { {\n * parserDialect?: import('@bpmn-io/feel-editor').ParserDialect,\n * builtins?: import('@bpmn-io/feel-editor').Variable[],\n * dialect?: import('@bpmn-io/feel-editor').Dialect\n * } } FeelLanguageContextType\n */\n\n/**\n * @type {import('preact').Context<FeelLanguageContextType>}\n */\nconst FeelLanguageContext = createContext({});\n\nexport default FeelLanguageContext;\n","import {\n createContext\n} from 'preact';\n\nconst LayoutContext = createContext({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nexport default LayoutContext;","import {\n createContext\n} from 'preact';\n\nconst TooltipContext = createContext({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\nexport default TooltipContext;\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n TooltipContext\n} from '../context';\n\n/**\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const tooltip = useTooltipContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = useContext(TooltipContext);\n\n return getTooltipForId(id, element);\n}\n","import {\n useRef,\n useState,\n useEffect,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\n\nimport { createPortal } from 'preact/compat';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef {Object} TooltipProps\n * @property {Object} [parent] - Parent element ref for portal rendering\n * @property {String} [direction='right'] - Tooltip direction ( 'right', 'top')\n * @property {String} [position] - Custom CSS position override\n * @property {Number} [showDelay=250] - Delay in ms before showing tooltip on hover\n * @property {Number} [hideDelay=250] - Delay in ms before hiding tooltip when mouse leaves, to avoid multiple tooltips from being opened, this should be the same as showDelay\n * @property {*} [children] - Child elements to render inside the tooltip wrapper\n */\n\n/**\n * Tooltip wrapper that provides context-based tooltip content lookup.\n * All props are forwarded to the underlying Tooltip component.\n *\n * @param {TooltipProps & {\n * forId: String,\n * value?: String|Object,\n * element?: Object\n * }} props - Shared tooltip props plus wrapper-specific ones\n */\nexport default function TooltipWrapper(props) {\n const {\n forId,\n element\n } = props;\n\n const contextDescription = useTooltipContext(forId, element);\n\n const value = props.value || contextDescription;\n\n if (!value) {\n return props.children;\n }\n\n return <Tooltip { ...props } value={ value } forId={ `bio-properties-panel-${ forId }` } />;\n}\n\n/**\n * @param {TooltipProps & {\n * forId: String,\n * value: String|Object\n * }} props\n */\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent,\n direction = 'right',\n position,\n showDelay = 250,\n hideDelay = 250\n } = props;\n\n const [ visible, setVisible ] = useState(false);\n const [ tooltipPosition, setTooltipPosition ] = useState(null);\n const [ arrowOffset, setArrowOffset ] = useState(null);\n\n const showTimeoutRef = useRef(null);\n const hideTimeoutRef = useRef(null);\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const show = (_, delay) => {\n clearTimeout(showTimeoutRef.current);\n clearTimeout(hideTimeoutRef.current);\n\n if (visible) return;\n\n if (delay) {\n showTimeoutRef.current = setTimeout(() => {\n setVisible(true);\n }, showDelay);\n } else {\n setVisible(true);\n }\n };\n\n const handleWrapperMouseEnter = (e) => {\n show(e, true);\n };\n\n const hide = (delay = false) => {\n clearTimeout(showTimeoutRef.current);\n clearTimeout(hideTimeoutRef.current);\n\n if (delay) {\n hideTimeoutRef.current = setTimeout(() => {\n setVisible(false);\n }, hideDelay);\n } else {\n setVisible(false);\n }\n };\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n clearTimeout(showTimeoutRef.current);\n clearTimeout(hideTimeoutRef.current);\n };\n }, []);\n\n // Handle click outside to close tooltip for non-focusable elements\n useEffect(() => {\n if (!visible) return;\n\n const handleClickOutside = (e) => {\n\n // If clicking outside both the wrapper and tooltip, hide it\n if (wrapperRef.current && !wrapperRef.current.contains(e.target) &&\n tooltipRef.current && !tooltipRef.current.contains(e.target)) {\n hide(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ visible, hide ]);\n\n useLayoutEffect(() => {\n if (!visible || position) {\n setTooltipPosition(null);\n setArrowOffset(null);\n return;\n }\n\n if (!wrapperRef.current || !tooltipRef.current) return;\n\n const { tooltipPosition: newPosition, arrowOffset: newArrowOffset } = getTooltipPosition(wrapperRef.current, tooltipRef.current, direction);\n setTooltipPosition(newPosition);\n setArrowOffset(newArrowOffset);\n }, [ visible, position ]);\n\n const handleMouseLeave = ({ relatedTarget }) => {\n\n // Don't hide the tooltip when moving mouse between the wrapper and the tooltip.\n if (relatedTarget === wrapperRef.current || relatedTarget === tooltipRef.current || relatedTarget?.parentElement === tooltipRef.current) {\n return;\n }\n\n const selection = window.getSelection();\n if (selection && selection.toString().length > 0) {\n\n // Check if selection is within tooltip content\n const selectionRange = selection.getRangeAt(0);\n if (tooltipRef.current?.contains(selectionRange.commonAncestorContainer) ||\n tooltipRef.current?.contains(selection.anchorNode) ||\n tooltipRef.current?.contains(selection.focusNode)) {\n return; // Keep tooltip open during text selection\n }\n }\n\n hide(true);\n };\n\n const handleTooltipMouseEnter = () => {\n clearTimeout(hideTimeoutRef.current);\n };\n\n const handleFocusOut = (e) => {\n const { relatedTarget } = e;\n\n // Don't hide if focus moved to the tooltip or another element within the wrapper\n if (tooltipRef.current?.contains(relatedTarget) ||\n wrapperRef.current?.contains(relatedTarget)) {\n return;\n }\n\n hide(false);\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hide(false);\n };\n\n const renderTooltip = () => {\n const tooltipStyle = position || (tooltipPosition ? `right: ${tooltipPosition.right}; top: ${tooltipPosition.top}px;` : undefined);\n const arrowStyle = arrowOffset != null ? `margin-top: ${arrowOffset }px;` : undefined;\n\n return (\n <div\n class={ `bio-properties-panel-tooltip ${direction}` }\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ tooltipStyle }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\n onMouseEnter={ handleTooltipMouseEnter }\n onMouseLeave={ handleMouseLeave }\n >\n <div class=\"bio-properties-panel-tooltip-content\">\n {value}\n </div>\n <div class=\"bio-properties-panel-tooltip-arrow\" style={ arrowStyle } />\n </div>\n );\n };\n\n return (\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\n ref={ wrapperRef }\n onMouseEnter={ handleWrapperMouseEnter }\n onMouseLeave={ handleMouseLeave }\n onFocus={ show }\n onBlur={ handleFocusOut }\n onKeyDown={ hideTooltipViaEscape }\n >\n {props.children}\n {visible ?\n (parent ?\n createPortal(renderTooltip(), parent.current)\n : renderTooltip()\n ) : null\n }\n </div>\n );\n}\n\n\n// helper\n\nfunction getTooltipPosition(refElement, tooltipElement, direction) {\n if (!refElement) {\n return { tooltipPosition: null, arrowOffset: null };\n }\n\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n\n let top = refPosition.top - 10;\n let arrowOffset = null;\n\n // Ensure that the tooltip is within the viewport, adjust the top position if needed.\n // This is only relevant for the 'right' direction for now\n if (tooltipElement && direction === 'right') {\n const tooltipRect = tooltipElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const minTop = 0;\n const maxTop = viewportHeight - tooltipRect.height;\n\n const originalTop = top;\n\n if (top > maxTop) {\n top = maxTop;\n }\n\n if (top < minTop) {\n top = minTop;\n }\n\n // Adjust the arrow position if the tooltip had to be moved to stay within viewport\n if (top !== originalTop) {\n const defaultMarginTop = 16;\n\n const topDiff = top - originalTop;\n arrowOffset = defaultMarginTop - topDiff;\n }\n }\n\n return {\n tooltipPosition: { right, top },\n arrowOffset\n };\n}","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n DescriptionContext\n} from '../context';\n\n/**\n * Accesses the global DescriptionContext and returns a description for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const description = useDescriptionContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = useContext(DescriptionContext);\n\n return getDescriptionForId(id, element);\n}\n","import {\n useCallback,\n useEffect\n} from 'preact/hooks';\n\nexport function useDebounce(callback, debounceFn) {\n const debouncedCallback = useCallback(debounceFn(callback), [ callback, debounceFn ]);\n\n // flush pending calls before unmount the debounced function\n useEffect(() => {\n return () => {\n debouncedCallback.flush?.();\n };\n }, [ debouncedCallback ]);\n\n return debouncedCallback;\n}\n","import { useContext } from 'preact/hooks';\n\nimport { ErrorsContext } from '../context';\n\nexport function useError(id) {\n const { errors } = useContext(ErrorsContext);\n\n return errors[ id ];\n}\n\nexport function useErrors() {\n const { errors } = useContext(ErrorsContext);\n\n return errors;\n}","import { useContext, useEffect, useRef } from 'preact/hooks';\n\nimport { EventContext } from '../context';\n\n\n/**\n * Subscribe to an event immediately. Update subscription after inputs changed.\n *\n * @param {string} event\n * @param {Function} callback\n */\nexport function useEvent(event, callback, eventBus) {\n const eventContext = useContext(EventContext);\n\n if (!eventBus) {\n ({ eventBus } = eventContext);\n }\n\n const didMount = useRef(false);\n\n // (1) subscribe immediately\n if (eventBus && !didMount.current) {\n eventBus.on(event, callback);\n }\n\n // (2) update subscription after inputs changed\n useEffect(() => {\n if (eventBus && didMount.current) {\n eventBus.on(event, callback);\n }\n\n didMount.current = true;\n\n return () => {\n if (eventBus) {\n eventBus.off(event, callback);\n }\n };\n }, [ callback, event, eventBus ]);\n}\n","import { useMemo } from 'preact/hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst KEY_LENGTH = 6;\n\n/**\n * Create a persistent key factory for plain objects without id.\n *\n * @example\n * ```jsx\n * function List({ objects }) {\n * const getKey = useKeyFactory();\n * return (<ol>{\n * objects.map(obj => {\n * const key = getKey(obj);\n * return <li key={key}>obj.name</li>\n * })\n * }</ol>);\n * }\n * ```\n *\n * @param {any[]} dependencies\n * @returns {(element: object) => string}\n */\nexport function useKeyFactory(dependencies = []) {\n const map = useMemo(() => new Map(), dependencies);\n\n const getKey = el => {\n let key = map.get(el);\n\n if (!key) {\n key = Math.random().toString().slice(-KEY_LENGTH);\n map.set(el, key);\n }\n\n return key;\n };\n\n return getKey;\n}\n","import {\n useCallback,\n useContext\n} from 'preact/hooks';\n\nimport {\n LayoutContext\n} from '../context';\n\n/**\n * Creates a state that persists in the global LayoutContext.\n *\n * @example\n * ```jsx\n * function Group(props) {\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\n * }\n * ```\n *\n * @param {(string|number)[]} path\n * @param {any} [defaultValue]\n *\n * @returns {[ any, Function ]}\n */\nexport function useLayoutState(path, defaultValue) {\n const {\n getLayoutForKey,\n setLayoutForKey\n } = useContext(LayoutContext);\n\n const layoutForKey = getLayoutForKey(path, defaultValue);\n\n const setState = useCallback((newValue) => {\n setLayoutForKey(path, newValue);\n }, [ setLayoutForKey ]);\n\n\n return [ layoutForKey, setState ];\n}\n","import {\n useEffect,\n useRef\n} from 'preact/hooks';\n\n/**\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\n * state on updates.\n *\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\n */\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import {\n useCallback,\n useContext,\n useEffect,\n useRef\n} from 'preact/hooks';\n\nimport { isFunction } from 'min-dash';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useEvent } from './useEvent';\n\n/**\n * Subscribe to `propertiesPanel.showEntry`.\n *\n * @param {string} id\n *\n * @returns {import('preact').Ref}\n */\nexport function useShowEntryEvent(id) {\n const { onShow } = useContext(PropertiesPanelContext);\n\n const ref = useRef();\n\n const focus = useRef(false);\n\n const onShowEntry = useCallback((event) => {\n if (event.id === id) {\n onShow();\n\n if (!focus.current) {\n focus.current = true;\n }\n }\n }, [ id ]);\n\n useEffect(() => {\n if (focus.current && ref.current) {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (isFunction(ref.current.select)) {\n ref.current.select();\n }\n\n focus.current = false;\n }\n });\n\n useEvent('propertiesPanel.showEntry', onShowEntry);\n\n return ref;\n}","import {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { useEvent } from './useEvent';\n\n\n/**\n * @callback setSticky\n * @param {boolean} value\n */\n\n/**\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\n * If sticky is observered setSticky(true) will be called.\n * If sticky mode is left, setSticky(false) will be called.\n *\n *\n * @param {Object} ref\n * @param {string} scrollContainerSelector\n * @param {setSticky} setSticky\n */\nexport function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\n\n const [ scrollContainer, setScrollContainer ] = useState(domQuery(scrollContainerSelector));\n\n const updateScrollContainer = useCallback(() => {\n const newScrollContainer = domQuery(scrollContainerSelector);\n\n if (newScrollContainer !== scrollContainer) {\n setScrollContainer(newScrollContainer);\n }\n }, [ scrollContainerSelector, scrollContainer ]);\n\n useEffect(() => {\n updateScrollContainer();\n }, [ updateScrollContainer ]);\n\n useEvent('propertiesPanel.attach', updateScrollContainer);\n useEvent('propertiesPanel.detach', updateScrollContainer);\n\n useEffect(() => {\n const Observer = IntersectionObserver;\n\n // return early if IntersectionObserver is not available\n if (!Observer) {\n return;\n }\n\n // TODO(@barmac): test this\n if (!ref.current || !scrollContainer) {\n return;\n }\n\n const observer = new Observer((entries) => {\n\n // scroll container is unmounted, do not update sticky state\n if (scrollContainer.scrollHeight === 0) {\n return;\n }\n\n entries.forEach(entry => {\n if (entry.intersectionRatio < 1) {\n setSticky(true);\n }\n else if (entry.intersectionRatio === 1) {\n setSticky(false);\n }\n });\n },\n {\n root: scrollContainer,\n rootMargin: '0px 0px 999999% 0px', // Use bottom margin to avoid stickyness when scrolling out to bottom\n threshold: [ 1 ]\n });\n observer.observe(ref.current);\n\n // Unobserve if unmounted\n return () => {\n observer.unobserve(ref.current);\n };\n\n }, [ ref.current, scrollContainer, setSticky ]);\n}\n","import { useCallback, useLayoutEffect, useRef } from 'preact/hooks';\n\n/**\n * Creates a static function reference with changing body.\n * This is necessary when external libraries require a callback function\n * that has references to state variables.\n *\n * Usage:\n * const callback = useStaticCallback((val) => {val === currentState});\n *\n * The `callback` reference is static and can be safely used in external\n * libraries or as a prop that does not cause rerendering of children.\n *\n * The ref update is deferred to useLayoutEffect to prevent stale-closure\n * bugs when Chrome fires blur on elements removed during re-render.\n *\n * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n\n useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n\n return useCallback(\n (...args) => callbackRef.current(...args),\n []\n );\n}","import { useLayoutEffect, useState } from 'preact/hooks';\n\nexport function useElementVisible(element) {\n\n const [ visible, setVisible ] = useState(!!element && !!element.clientHeight);\n\n useLayoutEffect(() => {\n if (!element) return;\n\n const resizeObserver = new ResizeObserver(([ entry ]) => {\n requestAnimationFrame(() => {\n const newVisible = !!entry.contentRect.height;\n if (newVisible !== visible) {\n setVisible(newVisible);\n }\n });\n });\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, [ element, visible ]);\n\n return visible;\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport {\n isFunction\n} from 'min-dash';\n\nimport {\n useErrors,\n useLayoutState\n} from '../hooks';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport { ArrowIcon } from './icons';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {import('../PropertiesPanel').GroupDefinition} props\n */\nexport default function Group(props) {\n const {\n element,\n entries = [],\n id,\n label,\n shouldOpen = false,\n translate = translateFallback,\n } = props;\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const toggleOpen = () => setOpen(!open);\n\n const [ edited, setEdited ] = useState(false);\n\n const [ sticky, setSticky ] = useState(false);\n\n // set edited state depending on all entries\n useEffect(() => {\n\n // TODO(@barmac): replace with CSS when `:has()` is supported in all major browsers, or rewrite as in https://github.com/camunda/camunda-modeler/issues/3815#issuecomment-1733038161\n const scheduled = requestAnimationFrame(() => {\n const hasOneEditedEntry = entries.find(entry => {\n const {\n id,\n isEdited\n } = entry;\n\n const entryNode = domQuery(`[data-entry-id=\"${id}\"]`);\n\n if (!isFunction(isEdited) || !entryNode) {\n return false;\n }\n\n const inputNode = domQuery('.bio-properties-panel-input', entryNode);\n\n return isEdited(inputNode);\n });\n\n setEdited(hasOneEditedEntry);\n });\n\n return () => cancelAnimationFrame(scheduled);\n }, [ entries, setEdited ]);\n\n // set error state depending on all entries\n const allErrors = useErrors();\n const hasErrors = entries.some(entry => allErrors[entry.id]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div class={ classnames(\n 'bio-properties-panel-group-header',\n edited ? '' : 'empty',\n open ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) } onClick={ toggleOpen }>\n <div\n class=\"bio-properties-panel-group-header-title\"\n >\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element }>\n { label }\n </Tooltip>\n </div>\n <div class=\"bio-properties-panel-group-header-buttons\">\n {\n <DataMarker\n edited={ edited }\n hasErrors={ hasErrors }\n translate={ translate }\n />\n }\n <button\n type=\"button\"\n title={ translate('Toggle section') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-group-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\nfunction DataMarker(props) {\n const {\n edited,\n hasErrors,\n translate = translateFallback\n } = props;\n\n if (hasErrors) {\n return (\n <div title={ translate('Section contains an error') } class=\"bio-properties-panel-dot bio-properties-panel-dot--error\"></div>\n );\n }\n\n if (edited) {\n return (\n <div title={ translate('Section contains edits') } class=\"bio-properties-panel-dot\"></div>\n );\n }\n return null;\n}","/**\n * @typedef { {\n * text: (element: object) => string,\n * icon?: (element: Object) => import('preact').Component\n * } } PlaceholderDefinition\n *\n * @param { PlaceholderDefinition } props\n */\nexport default function Placeholder(props) {\n const {\n text,\n icon: Icon\n } = props;\n\n return (\n <div class=\"bio-properties-panel open\">\n <section class=\"bio-properties-panel-placeholder\">\n { Icon && <Icon class=\"bio-properties-panel-placeholder-icon\" /> }\n <p class=\"bio-properties-panel-placeholder-text\">{ text }</p>\n </section>\n </div>\n );\n}","import {\n useState,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport {\n assign,\n get,\n isArray,\n set\n} from 'min-dash';\n\nimport Header from './components/Header';\n\nimport Group from './components/Group';\n\nimport Placeholder from './components/Placeholder';\n\nimport {\n DescriptionContext,\n ErrorsContext,\n EventContext,\n LayoutContext,\n PropertiesPanelContext,\n TooltipContext\n} from './context';\n\nimport { useEvent } from './hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst DEFAULT_LAYOUT = {};\n\nconst DEFAULT_DESCRIPTION = {};\n\nconst DEFAULT_TOOLTIP = {};\n\n\n/**\n * @typedef { {\n * component: import('preact').Component,\n * id: String,\n * isEdited?: Function\n * } } EntryDefinition\n *\n * @typedef { {\n * autoFocusEntry: String,\n * autoOpen?: Boolean,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String|import('preact').ComponentChildren,\n * remove: (event: MouseEvent) => void\n * } } ListItemDefinition\n *\n * @typedef { {\n * add: (event: MouseEvent) => void,\n * component: import('preact').Component,\n * element: Object,\n * id: String,\n * items: Array<ListItemDefinition>,\n * label: String,\n * shouldOpen?: Boolean,\n * translate?: Function\n * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean,\n * translate?: Function\n * } } GroupDefinition\n *\n * @typedef { {\n * [id: String]: GetDescriptionFunction\n * } } DescriptionConfig\n *\n * @typedef { {\n * [id: String]: GetTooltipFunction\n * } } TooltipConfig\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetDescriptionFunction\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetTooltipFunction\n *\n * @typedef { {\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\n * } } PlaceholderProvider\n *\n */\n\n\n/**\n * A basic properties panel component. Describes *how* content will be rendered, accepts\n * data from implementor to describe *what* will be rendered.\n *\n * If `headerProvider` is omitted (or `null`), the built-in `<Header>` is not rendered;\n * consumers can render `<Header>` standalone elsewhere using the same provider shape.\n *\n * @param {Object} props\n * @param {Object|Array} props.element\n * @param {import('./components/Header').HeaderProvider} [props.headerProvider]\n * @param {PlaceholderProvider} [props.placeholderProvider]\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\n * @param {Object} [props.layoutConfig]\n * @param {Function} [props.layoutChanged]\n * @param {DescriptionConfig} [props.descriptionConfig]\n * @param {Function} [props.descriptionLoaded]\n * @param {TooltipConfig} [props.tooltipConfig]\n * @param {Function} [props.tooltipLoaded]\n * @param {HTMLElement} [props.feelPopupContainer]\n * @param {Function} [props.getFeelPopupLinks]\n * @param {Object} [props.eventBus]\n */\nexport default function PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n eventBus\n } = props;\n\n // set-up layout context\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n\n setLayout(newLayout);\n }, [ layoutConfig ]);\n\n useEffect(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [ layout, layoutChanged ]);\n\n const getLayoutForKey = (key, defaultValue) => {\n return get(layout, key, defaultValue);\n };\n\n const setLayoutForKey = (key, config) => {\n setLayout((prevLayout) => {\n const newLayout = assign({}, prevLayout);\n set(newLayout, key, config);\n return newLayout;\n });\n };\n\n const layoutContext = {\n layout,\n setLayout,\n getLayoutForKey,\n setLayoutForKey\n };\n\n // set-up description context\n const description = useMemo(() => createDescriptionContext(descriptionConfig), [ descriptionConfig ]);\n\n useEffect(() => {\n if (typeof descriptionLoaded === 'function') {\n descriptionLoaded(description);\n }\n }, [ description, descriptionLoaded ]);\n\n\n const getDescriptionForId = (id, element) => {\n return description[id] && description[id](element);\n };\n\n const descriptionContext = {\n description,\n getDescriptionForId\n };\n\n // set-up tooltip context\n const tooltip = useMemo(() => createTooltipContext(tooltipConfig), [ tooltipConfig ]);\n\n useEffect(() => {\n if (typeof tooltipLoaded === 'function') {\n tooltipLoaded(tooltip);\n }\n }, [ tooltip, tooltipLoaded ]);\n\n const getTooltipForId = (id, element) => {\n return tooltip[id] && tooltip[id](element);\n };\n\n const tooltipContext = {\n tooltip,\n getTooltipForId\n };\n\n const [ errors, setErrors ] = useState({});\n\n const onSetErrors = ({ errors }) => setErrors(errors);\n\n useEvent('propertiesPanel.setErrors', onSetErrors, eventBus);\n\n const errorsContext = {\n errors\n };\n\n const eventContext = {\n eventBus\n };\n\n const propertiesPanelContext = {\n element\n };\n\n // empty state\n if (placeholderProvider && !element) {\n return <Placeholder { ...placeholderProvider.getEmpty() } />;\n }\n\n // multiple state\n if (placeholderProvider && isArray(element)) {\n return <Placeholder { ...placeholderProvider.getMultiple() } />;\n }\n\n return (\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n <ErrorsContext.Provider value={ errorsContext }>\n <DescriptionContext.Provider value={ descriptionContext }>\n <TooltipContext.Provider value={ tooltipContext }>\n <LayoutContext.Provider value={ layoutContext }>\n <EventContext.Provider value={ eventContext }>\n <div class=\"bio-properties-panel\">\n { headerProvider ? (\n <Header\n element={ element }\n headerProvider={ headerProvider } />\n ) : null }\n <div class=\"bio-properties-panel-scroll-container\">\n {\n groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n\n return (\n <Component\n { ...group }\n key={ id }\n element={ element } />\n );\n })\n }\n </div>\n </div>\n </EventContext.Provider>\n </LayoutContext.Provider>\n </TooltipContext.Provider>\n </DescriptionContext.Provider>\n </ErrorsContext.Provider>\n </PropertiesPanelContext.Provider>\n );\n}\n\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\n\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\n\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useLayoutEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n *\n * @param {object} props\n * @param {string} [props.class]\n * @param {import('preact').Component[]} [props.menuItems]\n * @returns\n */\nexport function DropdownButton(props) {\n const {\n class: className,\n children,\n menuItems = []\n } = props;\n\n const dropdownRef = useRef(null);\n const menuRef = useRef(null);\n\n const [ open, setOpen ] = useState(false);\n const close = () => setOpen(false);\n\n function onDropdownToggle(event) {\n if (menuRef.current && menuRef.current.contains(event.target)) {\n return;\n }\n\n event.stopPropagation();\n\n setOpen(open => !open);\n }\n\n function onActionClick(event, action) {\n event.stopPropagation();\n\n close();\n action();\n }\n\n useGlobalClick([ dropdownRef.current ], () => close());\n\n return (\n <div\n class={ classnames('bio-properties-panel-dropdown-button', { open }, className) }\n onClick={ onDropdownToggle }\n ref={ dropdownRef }\n >\n { children }\n <div class=\"bio-properties-panel-dropdown-button__menu\" ref={ menuRef }>\n { menuItems.map((item, index) => (\n <MenuItem onClick={ onActionClick } item={ item } key={ index } />\n )) }\n </div>\n </div>\n );\n}\n\nfunction MenuItem({ item, onClick }) {\n if (item.separator) {\n return <div class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--separator\" />;\n }\n\n if (item.action) {\n return (<button\n type=\"button\"\n class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--actionable\"\n onClick={ event => onClick(event, item.action) }\n >\n {item.entry}\n </button>);\n }\n\n return <div\n class=\"bio-properties-panel-dropdown-button__menu-item\"\n >\n {item.entry}\n </div>;\n}\n\n/**\n *\n * @param {Array<null | Element>} ignoredElements\n * @param {Function} callback\n */\nfunction useGlobalClick(ignoredElements, callback) {\n useEffect(() => {\n\n /**\n * @param {MouseEvent} event\n */\n function listener(event) {\n if (ignoredElements.some(element => element && element.contains(event.target))) {\n return;\n }\n\n callback();\n }\n\n document.addEventListener('click', listener, { capture: true });\n\n return () => document.removeEventListener('click', listener, { capture: true });\n }, [ ...ignoredElements, callback ]);\n}\n","import classnames from 'classnames';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function HeaderButton(props) {\n const {\n children = null,\n class: classname,\n onClick = () => {},\n ...otherProps\n } = props;\n\n return <button\n type=\"button\"\n { ...otherProps }\n onClick={ onClick }\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\n { children }\n </button>;\n}\n","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\nimport translateFallback from '../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove,\n translate = translateFallback\n } = props;\n\n const [ open, setOpen ] = useState(shouldOpen);\n\n const toggleOpen = () => setOpen(!open);\n\n const { onShow } = useContext(PropertiesPanelContext);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow: useCallback(() => {\n setOpen(true);\n\n if (isFunction(onShow)) {\n onShow();\n }\n }, [ onShow, setOpen ])\n };\n\n\n const placeholderLabel = translate('<empty>');\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-collapsible-entry',\n open ? 'open' : ''\n ) }>\n <div class=\"bio-properties-panel-collapsible-entry-header\" onClick={ toggleOpen }>\n <div\n class={ classnames(\n 'bio-properties-panel-collapsible-entry-header-title',\n !label && 'empty'\n ) }>\n { label || placeholderLabel }\n </div>\n <button\n type=\"button\"\n title={ translate('Toggle list item') }\n class=\"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n {\n remove\n ?\n (\n <button type=\"button\" title={ translate('Delete item') } class=\"bio-properties-panel-remove-entry\" onClick={ remove }>\n <DeleteIcon />\n </button>\n )\n : null\n }\n </div>\n <div class={ classnames(\n 'bio-properties-panel-collapsible-entry-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>\n );\n}","import {\n useEffect\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport CollapsibleEntry from './entries/Collapsible';\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen,\n translate = translateFallback\n } = props;\n\n // focus specified entry on auto open\n useEffect(() => {\n if (autoOpen && autoFocusEntry) {\n const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\n\n const focusableInput = domQuery('.bio-properties-panel-input', entry);\n\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n focusableInput.scrollIntoView();\n }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen }\n translate={ translate }\n />\n </div>\n );\n\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n useErrors,\n useLayoutState,\n usePrevious\n} from '../hooks';\n\nimport ListItem from './ListItem';\n\nimport {\n ArrowIcon,\n CreateIcon\n} from './icons';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\n */\nexport default function ListGroup(props) {\n const {\n add,\n element,\n id,\n items,\n label,\n shouldOpen = false,\n translate = translateFallback\n } = props;\n\n useEffect(() => {\n if (props.shouldSort != undefined) {\n console.warn('the property \\'shouldSort\\' is no longer supported');\n }\n }, [ props.shouldSort ]);\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ localItems, setLocalItems ] = useState([]);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevElement = usePrevious(element);\n\n const toggleOpen = useCallback(() => setOpen(!open), [ open ]);\n\n const openItemIds = (element === prevElement && open && addTriggered)\n ? getNewItemIds(items, localItems)\n : [];\n\n // reset local state after items changed\n useEffect(() => {\n setLocalItems(items);\n setAddTriggered(false);\n }, [ items ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const hasItems = !!items.length;\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n const handleAddClick = e => {\n setAddTriggered(true);\n setOpen(true);\n\n add(e);\n };\n\n const allErrors = useErrors();\n const hasError = items.some(item => {\n if (allErrors[item.id]) {\n return true;\n }\n\n if (!item.entries) {\n return;\n }\n\n // also check if the error is nested, e.g. for name-value entries\n return item.entries.some(entry => allErrors[entry.id]);\n });\n\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-group-header',\n hasItems ? '' : 'empty',\n (hasItems && open) ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ hasItems ? toggleOpen : noop }>\n <div\n class=\"bio-properties-panel-group-header-title\"\n >\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element }>\n { label }\n </Tooltip>\n </div>\n <div class=\"bio-properties-panel-group-header-buttons\">\n {\n add\n ? (\n <button\n type=\"button\"\n title={ translate('Create new list item') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-add-entry\"\n onClick={ handleAddClick }\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\n class={\n classnames(\n 'bio-properties-panel-list-badge',\n hasError ? 'bio-properties-panel-list-badge--error' : ''\n )\n }\n >\n { items.length }\n </div>\n )\n : null\n }\n {\n hasItems\n ? (\n <button\n type=\"button\"\n title={ translate('Toggle section') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n : null\n }\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-list',\n open && hasItems ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n\n {\n items.map((item, index) => {\n if (!item) {\n return;\n }\n\n const { id } = item;\n\n // if item was added, open it\n // existing items will not be affected as autoOpen\n // is only applied on first render\n const autoOpen = openItemIds.includes(item.id);\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id }\n translate={ translate } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\nfunction getNewItemIds(newItems, oldItems) {\n const newIds = newItems.map(item => item.id);\n const oldIds = oldItems.map(item => item.id);\n\n return newIds.filter(itemId => !oldIds.includes(itemId));\n}","import {\n useDescriptionContext\n} from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.forId - id of the entry the description is used for\n * @param {String} props.value\n */\nexport default function Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n\n const contextDescription = useDescriptionContext(forId, element);\n\n const description = value || contextDescription;\n\n if (description) {\n return (\n <div class=\"bio-properties-panel-description\">\n { description }\n </div>\n );\n }\n}\n","import {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction Checkbox(props) {\n const {\n id,\n label,\n onChange,\n disabled,\n value = false,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.checked);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n const ref = useShowEntryEvent(id);\n\n return (\n <div class=\"bio-properties-panel-checkbox\">\n <input\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ localValue }\n disabled={ disabled } />\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n </div>\n );\n}\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {boolean} [props.disabled]\n */\nexport default function CheckboxEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n\n const error = useError(id);\n\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-entry\" data-entry-id={ id }>\n <Checkbox\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onChange={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Checkbox from './Checkbox';\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.label\n * @param {Array<{label: String, value: *}>} props.options\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {String} [props.description]\n * @param {string|import('preact').Component} [props.tooltip]\n * @param {boolean} [props.disabled]\n * @param {Function} [props.onFocus]\n * @param {Function} [props.onBlur]\n */\nexport default function CheckboxGroup(props) {\n const {\n element,\n id,\n label,\n description,\n tooltip,\n options = [],\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur\n } = props;\n\n const value = getValue(element) || [];\n\n const handleOptionChange = (optionValue, checked) => {\n const newValue = checked\n ? [ ...value, optionValue ]\n : value.filter(v => v !== optionValue);\n\n setValue(newValue);\n };\n\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-group\" data-entry-id={ id }>\n <div class=\"bio-properties-panel-group-header\">\n <p class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ element }>\n { label }\n </Tooltip>\n </p>\n </div>\n <div class=\"bio-properties-panel-checkbox-group-entries\">\n {\n options.map((option) => (\n <Checkbox\n key={ option.value }\n id={ `${id}-${option.value}` }\n label={ option.label }\n setValue={ (checked) => handleOptionChange(option.value, checked) }\n getValue={ () => value.includes(option.value) }\n disabled={ disabled }\n onFocus={ onFocus }\n onBlur={ onBlur }\n element={ element } />\n ))\n }\n </div>\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n","import Description from './Description';\n\nimport {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction, isObject } from 'min-dash';\n\nimport translateFallback from '../util/translateFallback';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../hooks';\n\nimport Tooltip from './Tooltip';\n\nimport { EditorView, drawSelection, highlightSpecialChars, keymap, placeholder as cmPlaceholder } from '@codemirror/view';\nimport { Annotation, EditorState } from '@codemirror/state';\nimport { bracketMatching, defaultHighlightStyle, foldGutter, foldKeymap, syntaxHighlighting } from '@codemirror/language';\nimport { closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { linter } from '@codemirror/lint';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst ExternalChange = Annotation.define();\nconst parseJsonLinter = jsonParseLinter();\n\n/**\n * A CodeMirror based JSON editor for the properties panel.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string} props.label\n * @param {string} [props.value]\n * @param {Function} props.onInput\n * @param {boolean} [props.disabled]\n * @param {string} [props.placeholder]\n * @param {string} [props.tooltip]\n * @param {object} [props.element]\n */\nfunction JsonEditor(props) {\n\n const {\n id,\n label,\n debounce,\n value = '',\n onInput: commitValue,\n disabled,\n placeholder,\n tooltip,\n element\n } = props;\n\n const containerRef = useRef(null);\n const viewRef = useRef(null);\n const editorRef = useShowEntryEvent(id);\n\n const onInput = useStaticCallback((newValue) => {\n commitValue(newValue === '' ? undefined : newValue);\n });\n\n const handleChange = useDebounce(onInput, debounce);\n\n useEffect(() => {\n const view = new EditorView({\n state: EditorState.create({\n doc: value,\n extensions: [\n highlightSpecialChars(),\n history(),\n drawSelection(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n foldGutter(),\n bracketMatching(),\n closeBrackets(),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap,\n ...closeBracketsKeymap,\n ...foldKeymap\n ]),\n EditorState.tabSize.of(2),\n EditorView.lineWrapping,\n EditorState.readOnly.of(!!disabled),\n ...(placeholder ? [ cmPlaceholder(placeholder) ] : []),\n EditorView.updateListener.of(update => {\n const isExternal = update.transactions.some(\n tr => tr.annotation(ExternalChange)\n );\n if (update.docChanged && !isExternal) {\n handleChange(update.state.doc.toString());\n }\n }),\n json(),\n linter((view) => {\n const content = view.state.doc.toString();\n if (!content.trim()) return [];\n return parseJsonLinter(view);\n }, { delay: 300 })\n ]\n }),\n parent: containerRef.current\n });\n\n viewRef.current = view;\n\n // Allow useShowEntryEvent to focus the editor\n editorRef.current = view.contentDOM;\n\n const prefixedId = `bio-properties-panel-${ id }`;\n view.contentDOM.setAttribute('id', prefixedId);\n view.contentDOM.setAttribute('aria-label', label);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n // Sync external value changes into the editor\n useEffect(() => {\n const view = viewRef.current;\n if (!view) return;\n\n const currentValue = view.state.doc.toString();\n if (value === currentValue) return;\n\n view.dispatch({\n changes: { from: 0, to: currentValue.length, insert: value || '' },\n annotations: ExternalChange.of(true)\n });\n }, [ value ]);\n\n // Focus editor on label click manually, as the native `for`\n // attribute does not work with contenteditable elements\n const focusEditor = () => {\n viewRef.current && viewRef.current.focus();\n };\n\n return (\n <div class=\"bio-properties-panel-json-editor\">\n <label class=\"bio-properties-panel-label\" onClick={ focusEditor }>\n <Tooltip value={ tooltip } forId={ id } element={ element }>\n { label }\n </Tooltip>\n </label>\n <div class={ classnames('bio-properties-panel-input', value && 'edited') } ref={ containerRef } />\n </div>\n );\n}\n\n\n/**\n * Entry wrapper for JsonEditor, handles getValue/setValue, built-in JSON validation, error display, and description.\n *\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.debounce\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {boolean} [props.disabled]\n * @param {string} [props.placeholder]\n * @param {string} [props.tooltip]\n * @param {Function} [props.validate]\n * @param {Function} [props.translate]\n */\nexport default function JsonEditorEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n label,\n getValue,\n setValue,\n disabled,\n placeholder,\n tooltip,\n validate,\n translate = translateFallback\n } = props;\n\n const globalError = useError(id);\n\n let value = getValue(element);\n const [ localError, setLocalError ] = useState(\n () => computeError(validate, value, translate)\n );\n const [ editorValue, setEditorValue ] = useState(value);\n\n useEffect(() => {\n if (value === editorValue) {\n return;\n }\n\n setEditorValue(value);\n setLocalError(computeError(validate, value, translate));\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n setEditorValue(newValue);\n\n const currentValue = getValue(element);\n\n if (newValue !== currentValue) {\n const newValidationError = computeError(validate, newValue, translate);\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n });\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames('bio-properties-panel-entry', error && 'has-error') }\n data-entry-id={ id }>\n <JsonEditor\n id={ id }\n key={ element }\n label={ label }\n debounce={ debounce }\n value={ value }\n onInput={ onInput }\n disabled={ disabled }\n placeholder={ placeholder }\n tooltip={ tooltip }\n element={ element }\n />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * Check if the JSON editor entry has been edited.\n */\nexport function isEdited(node) {\n return node && node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction computeError(validate, value, translate) {\n return (isFunction(validate) ? validate(value) : null) || validateJson(value, translate);\n}\n\nfunction validateJson(value, translate = translateFallback) {\n if (!value || !value.trim()) return null;\n\n try {\n return isObject(JSON.parse(value)) ? null : translate('JSON contains errors');\n } catch (e) {\n return translate('JSON contains errors');\n }\n}\n","import { OpenPopupIcon } from './icons';\n\nimport translateFallback from './util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Button to open popups.\n *\n * @param {Object} props\n * @param {Function} props.onClick - Callback to trigger when the button is clicked.\n * @param {string} [props.title] - Tooltip text for the button.\n * @param {Function} [props.translate] - Translation function for built-in strings.\n */\nexport function OpenPopupButton({\n onClick,\n title,\n translate = translateFallback,\n}) {\n title = title ?? translate('Open pop-up editor');\n return (\n <button\n type=\"button\"\n title={ title }\n class={ 'bio-properties-panel-open-feel-popup' }\n onClick={ onClick }\n >\n <OpenPopupIcon />\n </button>\n );\n}\n","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { FeelersEditor } from '@bpmn-io/feelers-editor';\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst TemplatingEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onOpenPopup = noop,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n editor = new FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine,\n lineWrap: true,\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feelers-editor-container',\n popupOpen ? 'popupOpen' : null\n ) }>\n {\n popupOpen && <div class=\"bio-properties-panel-feelers-editor__popup-placeholder\">Opened in popup</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feelers') }\n /> }\n </div>;\n});\n\nexport default TemplatingEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport Editor from '@bpmn-io/feel-editor';\n\nimport { EditorView, lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\nimport translateFallback from '../../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst FeelEditor = forwardRef((props, ref) => {\n\n const {\n contentAttributes,\n enableGutters,\n value,\n onInput,\n onKeyDown: onKeyDownProp = noop,\n onBlur = noop,\n onFeelToggle = noop,\n onLint = noop,\n onOpenPopup = noop,\n placeholder,\n popupOpen,\n disabled,\n tooltipContainer,\n variables,\n feelLanguageContext,\n translate = translateFallback\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const {\n builtins,\n dialect,\n parserDialect\n } = feelLanguageContext || {};\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n const handleBlur = useStaticCallback(() => {\n onBlur();\n });\n\n useEffect(() => {\n\n let editor;\n\n /* Trigger FEEL toggle when\n *\n * - `backspace` is pressed\n * - AND the cursor is at the beginning of the input\n */\n const onKeyDown = e => {\n\n // Call parent onKeyDown handler first\n onKeyDownProp(e);\n\n if (e.key !== 'Backspace' || !editor) {\n return;\n }\n\n const selection = editor.getSelection();\n const range = selection.ranges[selection.mainIndex];\n\n if (range.from === 0 && range.to === 0) {\n onFeelToggle();\n }\n };\n\n editor = new Editor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n placeholder: placeholder,\n readOnly: disabled,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables,\n builtins,\n dialect,\n parserDialect,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : [],\n EditorView.lineWrapping,\n EditorView.domEventHandlers({ blur: handleBlur })\n ],\n contentAttributes\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setVariables(variables);\n }, [ variables ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setPlaceholder(placeholder);\n }, [ placeholder ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feel-editor-container',\n disabled ? 'disabled' : null,\n popupOpen ? 'popupOpen' : null)\n }>\n {\n popupOpen && <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">{ translate('Opened in editor') }</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feel') }\n translate={ translate }\n /> }\n </div>;\n});\n\nexport default FeelEditor;","export function FeelIndicator(props) {\n const {\n active\n } = props;\n\n if (!active) {\n return null;\n }\n\n return <span class=\"bio-properties-panel-feel-indicator\">\n =\n </span>;\n}","import classNames from 'classnames';\nimport { FeelIcon as FeelIconSvg } from '../../icons';\n\nimport translateFallback from '../../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @param {Object} props\n * @param {Object} props.label\n * @param {String} props.feel\n * @param {boolean} props.active\n * @param {boolean} props.disabled\n * @param {Function} props.onClick\n * @param {Function} props.translate\n * @returns {import('preact').Component}\n */\nexport default function FeelIcon(props) {\n\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop,\n translate = translateFallback\n } = props;\n\n const feelRequiredLabel = translate('FEEL expression is mandatory');\n const feelOptionalLabel = translate(`Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`);\n\n const handleClick = e => {\n onClick(e);\n\n // when pointer event was created from keyboard, keep focus on button\n if (!e.pointerType) {\n e.stopPropagation();\n }\n };\n\n return (\n <button\n type=\"button\"\n class={ classNames('bio-properties-panel-feel-icon',\n active ? 'active' : null,\n feel === 'required' ? 'required' : 'optional') }\n onClick={ handleClick }\n disabled={ feel === 'required' || disabled }\n title={\n feel === 'required' ? feelRequiredLabel : feelOptionalLabel\n }\n >\n <FeelIconSvg />\n </button>\n );\n}","/**\n * @param {KeyboardEvent} event\n * @return {boolean}\n */\nexport function isCmd(event) {\n\n // ensure we don't react to AltGr\n // (mapped to CTRL + ALT)\n if (event.altKey) {\n return false;\n }\n\n return event.ctrlKey || event.metaKey;\n}\n\nexport function isCmdWithChar(event) {\n return isCmd(event) && event.key.length === 1 && /^[a-zA-Z]$/.test(event.key);\n}","import Description from './Description';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classNames from 'classnames';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function ToggleSwitch(props) {\n const {\n id,\n label,\n onInput,\n value,\n switcherLabel,\n inline,\n onFocus,\n onBlur,\n inputRef,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = async () => {\n onInput(!value);\n };\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class={ classNames(\n 'bio-properties-panel-toggle-switch',\n { inline }\n ) }>\n <label class=\"bio-properties-panel-label\"\n for={ prefixId(id) }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <div class=\"bio-properties-panel-field-wrapper\">\n <label class=\"bio-properties-panel-toggle-switch__switcher\">\n <input\n ref={ inputRef }\n id={ prefixId(id) }\n class=\"bio-properties-panel-input\"\n type=\"checkbox\"\n onFocus={ onFocus }\n onBlur={ onBlur }\n name={ id }\n onInput={ handleInput }\n checked={ !!localValue } />\n <span class=\"bio-properties-panel-toggle-switch__slider\" />\n </label>\n { switcherLabel && <p class=\"bio-properties-panel-toggle-switch__label\">{ switcherLabel }</p> }\n </div>\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {String} props.switcherLabel\n * @param {Boolean} props.inline\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function ToggleSwitchEntry(props) {\n const {\n element,\n id,\n description,\n label,\n switcherLabel,\n inline,\n getValue,\n setValue,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-toggle-switch-entry\" data-entry-id={ id }>\n <ToggleSwitch\n key={ element }\n id={ id }\n label={ label }\n value={ value }\n onInput={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel }\n inline={ inline }\n tooltip={ tooltip }\n element={ element } />\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError\n} from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function NumberField(props) {\n\n const {\n debounce,\n disabled,\n displayLabel = true,\n id,\n inputRef,\n label,\n max,\n min,\n onInput,\n step,\n value = '',\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => {\n\n if (target.validity.valid) {\n onInput(target.value ? parseFloat(target.value) : undefined);\n }\n });\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-numberfield\">\n {displayLabel && (\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n )}\n <input\n id={ prefixId(id) }\n ref={ inputRef }\n type=\"number\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n max={ max }\n min={ min }\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n step={ step }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.description\n * @param {Boolean} props.disabled\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {String} props.label\n * @param {String} props.max\n * @param {String} props.min\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {String} props.step\n * @param {Function} props.validate\n */\nexport default function NumberFieldEntry(props) {\n const {\n debounce,\n description,\n disabled,\n element,\n getValue,\n id,\n label,\n max,\n min,\n setValue,\n step,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = (newValue) => {\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n };\n\n const error = globalError || localError;\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '') } data-entry-id={ id }>\n <NumberField\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onInput={ onInput }\n max={ max }\n min={ min }\n step={ step }\n value={ value }\n tooltip={ tooltip }\n />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from '../Description';\nimport TemplatingEditor from '../templating/TemplatingEditor';\n\nimport {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { forwardRef } from 'preact/compat';\n\nimport classnames from 'classnames';\n\nimport { isFunction, isString } from 'min-dash';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../../hooks';\n\nimport FeelEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { EventContext, FeelLanguageContext } from '../../../context';\nimport { isCmdWithChar } from '../../util/keyboardUtils';\n\nimport translateFallback from '../../util/translateFallback';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @typedef {'required'|'optional'|'optional-default-enabled'|'static'} FeelType\n */\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.id\n * @param {Object} props.element\n * @param {String} props.label\n * @param {String} props.hostLanguage\n * @param {Function} props.onInput\n * @param {Function} props.onBlur\n * @param {Function} props.onError\n * @param {FeelType} [props.feel]\n * @param {String} props.value\n * @param {Boolean} [props.singleLine]\n * @param {Function} props.tooltipContainer\n * @param {Function | import('preact').Component} props.OptionalComponent\n * @param {Boolean} props.disabled\n * @param {Array} props.variables\n * @param {string} [props.placeholder]\n * @param {string | import('preact').Component} props.tooltip\n * @param {Function} props.translate\n */\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput: commitValue,\n onBlur,\n onError,\n placeholder,\n feel,\n value = '',\n disabled = false,\n variables,\n singleLine,\n tooltipContainer,\n OptionalComponent = OptionalFeelInput,\n tooltip,\n translate\n } = props;\n\n const [ localValue, setLocalValue ] = useState(getInitialFeelLocalValue(feel, value));\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const onInput = useCallback(newValue => {\n\n // we don't commit empty FEEL expressions,\n // but instead serialize them as <undefined>\n const newModelValue = (newValue === '' || newValue === '=') ? undefined : newValue;\n commitValue(newModelValue);\n }, [ commitValue ]);\n\n const feelActive = isFeelActive(feel, localValue);\n const feelOnlyValue = getFeelValue(localValue);\n const feelLanguageContext = useContext(FeelLanguageContext);\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const {\n eventBus\n } = useContext(EventContext);\n\n const [ isPopupOpen, setIsPopupOpen ] = useState(false);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInput = useDebounce(onInput, debounce);\n\n const setAndCommitValue = (newValue) => {\n\n // cancel any pending debounced value\n handleInput.cancel?.();\n setLocalValue(newValue);\n onInput(newValue);\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setAndCommitValue('=' + localValue);\n } else {\n setAndCommitValue(feelOnlyValue);\n }\n });\n\n const handleInputChange = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n handleInput(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleOptionalInputOnBlur = (e) => {\n if (e.target.type === 'checkbox') {\n setAndCommitValue(e.target.checked);\n } else {\n const trimmedValue = e.target.value.trim();\n\n if (trimmedValue !== localValue) {\n\n // Trim changed the value — commit trimmed\n setAndCommitValue(trimmedValue);\n } else {\n\n // Value unchanged — flush any pending debounce\n handleInput.flush?.();\n }\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleFeelEditorOnBlur = () => {\n handleInput.flush?.();\n };\n\n const handleOnKeyDown = e => {\n if (isCmdWithChar(e)) {\n handleInput.flush?.();\n }\n };\n\n const handleLint = useStaticCallback((lint = []) => {\n\n const syntaxError = lint.some(report => report.type === 'Syntax Error');\n\n if (syntaxError) {\n onError(translate('Unparsable FEEL expression.'));\n } else {\n onError(undefined);\n }\n });\n\n const handleOpenPopup = (type = 'feel') => {\n const isOpen = eventBus.fire('propertiesPanel.openPopup', {\n element,\n entryId: id,\n hostLanguage,\n label,\n onInput: handleInputChange,\n singleLine,\n sourceElement: editorRef.current,\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables,\n feelLanguageContext,\n });\n\n if (isOpen) {\n eventBus.once('propertiesPanelPopup.close', () => {\n setIsPopupOpen(false);\n });\n }\n\n setIsPopupOpen(isOpen === true);\n };\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n return () => {\n eventBus.fire('propertiesPanel.closePopup');\n };\n }, []);\n\n // copy-paste integration\n useEffect(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n\n const pasteHandler = event => {\n if (feelActive || isPopupOpen) {\n return;\n }\n\n const feelData = event.clipboardData.getData('application/FEEL');\n if (feelData) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\n return;\n }\n\n const target = event.target;\n\n // Skip for non-input/textArea elements (e.g. CodeMirror contenteditable)\n if (!(target instanceof HTMLInputElement) && !(target instanceof HTMLTextAreaElement)) {\n return;\n }\n\n const isFieldEmpty = !target.value;\n const isAllSelected = target.selectionStart === 0 && target.selectionEnd === target.value.length;\n\n if (isFieldEmpty || isAllSelected) {\n const textData = event.clipboardData.getData('text');\n const trimmedValue = textData.trim();\n\n setAndCommitValue(trimmedValue);\n\n if (!feelActive && isString(trimmedValue) && trimmedValue.startsWith('=')) {\n setFocus(trimmedValue.length - 1);\n }\n\n event.preventDefault();\n }\n };\n containerRef.current.addEventListener('copy', copyHandler);\n containerRef.current.addEventListener('cut', copyHandler);\n containerRef.current.addEventListener('paste', pasteHandler);\n\n return () => {\n containerRef.current.removeEventListener('copy', copyHandler);\n containerRef.current.removeEventListener('cut', copyHandler);\n containerRef.current.removeEventListener('paste', pasteHandler);\n };\n }, [ containerRef, feelActive, handleFeelToggle, setFocus ]);\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-feel-entry',\n { 'feel-active': feelActive }\n ) }>\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n <FeelIcon\n label={ label }\n feel={ feel }\n onClick={ handleFeelToggle }\n active={ feelActive }\n translate={ translate }\n />\n </label>\n\n <div class=\"bio-properties-panel-feel-container\" ref={ containerRef }>\n <FeelIndicator\n active={ feelActive }\n disabled={ !isFeelOptional(feel) || disabled }\n onClick={ handleFeelToggle }\n />\n {feelActive ?\n <FeelEditor\n name={ id }\n onInput={ handleInputChange }\n onBlur={ handleFeelEditorOnBlur }\n onKeyDown={ handleOnKeyDown }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n disabled={ disabled }\n popupOpen={ isPopupOpen }\n onFeelToggle={ () => {\n handleFeelToggle();\n setFocus(true);\n } }\n onLint={ handleLint }\n onOpenPopup={ handleOpenPopup }\n placeholder={ placeholder }\n value={ feelOnlyValue }\n variables={ variables }\n feelLanguageContext={ feelLanguageContext }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n translate={ translate }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ isPopupOpen }\n onInput={ handleInputChange }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOptionalInputOnBlur }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onOpenPopup={ handleOpenPopup }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\n\nconst OptionalFeelInput = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n onKeyDown,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number') {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <input\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onKeyDown={ onKeyDown }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' } />;\n});\n\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <NumberField\n id={ id }\n debounce={ debounce }\n disabled={ disabled }\n displayLabel={ false }\n inputRef={ inputRef }\n max={ max }\n min={ min }\n onInput={ onInput }\n step={ step }\n value={ value }\n onFocus={ onFocus }\n onBlur={ onBlur }\n />;\n});\n\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n input.setSelectionRange(0, 0);\n }\n };\n\n return <textarea\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' }\n data-gramm=\"false\"\n />;\n});\n\nconst OptionalFeelToggleSwitch = forwardRef((props, ref) => {\n const {\n id,\n onInput,\n value,\n onFocus,\n onBlur,\n switcherLabel\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <ToggleSwitch\n id={ id }\n value={ value }\n inputRef={ inputRef }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel } />;\n});\n\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n const handleChange = ({ target }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <input\n ref={ inputRef }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ value }\n disabled={ disabled } />;\n});\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop,\n example,\n variables,\n onFocus,\n onBlur,\n placeholder,\n tooltip,\n translate = translateFallback\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n const value = getValue(element);\n\n // don't create multiple commandStack entries and do validation for the same value\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setValidationError(newValidationError);\n }\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = temporaryError || localError || validationError;\n\n return (\n <div\n class={ classnames(\n props.class,\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <FeelTextfield\n { ...props }\n debounce={ debounce }\n disabled={ disabled }\n feel={ feel }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n example={ example }\n hostLanguage={ hostLanguage }\n singleLine={ singleLine }\n show={ show }\n translate={ translate }\n value={ value }\n variables={ variables }\n tooltipContainer={ tooltipContainer }\n OptionalComponent={ props.OptionalComponent }\n tooltip={ tooltip } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.max\n * @param {String} props.min\n * @param {String} props.step\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelNumberEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n */\nexport function FeelTextAreaEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-textarea\" OptionalComponent={ OptionalFeelTextArea } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelToggleSwitchEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelCheckboxEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.hostLanguage\n * @param {Boolean} props.singleLine\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTemplatingEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\n}\n\nexport function isEdited(node) {\n if (!node) {\n return false;\n }\n\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n\n return !!node.value || node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\n/**\n * Determine if FEEL is optional for the configured {@link FeelType}.\n *\n * @param {FeelType} feelType\n *\n * @return {boolean}\n */\nfunction isFeelOptional(feelType) {\n return feelType === 'optional' || feelType === 'optional-default-enabled';\n}\n\n/**\n * Determine if FEEL editing is currently active.\n *\n * @param {FeelType} feelType\n * @param {string} localValue\n *\n * @return {boolean}\n */\nfunction isFeelActive(feelType, localValue) {\n\n if (feelType === 'required') {\n return true;\n }\n\n if (isString(localValue)) {\n if (localValue.startsWith('=')) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @template T\n * @param {T} value\n *\n * @return {string|T}\n */\nfunction getFeelValue(value) {\n if (isString(value) && value.startsWith('=')) {\n return value.substring(1);\n }\n\n return value;\n}\n\n/**\n * Initialize local FEEL value.\n *\n * `optional-default-enabled` starts in FEEL mode if no value or empty string is provided.\n *\n * @template T\n * @param {FeelType} feelType\n * @param {T} value\n *\n * @return {string|T}\n */\nfunction getInitialFeelLocalValue(feelType, value) {\n if (feelType === 'optional-default-enabled' && (value === undefined || value === '')) {\n return '=';\n }\n\n return value;\n}\n","import { useCallback, useEffect, useState, useMemo, useRef } from 'preact/hooks';\nimport { useStaticCallback, useShowEntryEvent } from '../../../hooks';\nimport { isFunction } from 'min-dash';\nimport { useError } from '../../../hooks';\nimport classnames from 'classnames';\nimport Description from '../Description';\nimport TemplatingEditor from './TemplatingEditor';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n */\nexport default function TemplatingEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n tooltipContainer,\n validate,\n show = noop,\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = localError || temporaryError || validationError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Templating\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n show={ show }\n value={ value }\n tooltipContainer={ tooltipContainer } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nfunction Templating(props) {\n const {\n debounce,\n id,\n label,\n onInput,\n onError,\n value = '',\n disabled = false,\n tooltipContainer\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => onInput(newValue.length ? newValue : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n handleInputCallback(newValue);\n setLocalValue(newValue);\n };\n\n const handleLint = useStaticCallback(lint => {\n\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\n\n if (!errors.length) {\n onError(undefined);\n return;\n }\n\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value ? value : '');\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-feelers\">\n <label id={ prefixIdLabel(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n {label}\n </label>\n <div class=\"bio-properties-panel-feelers-input\" ref={ containerRef }>\n <TemplatingEditor\n name={ id }\n onInput={ handleInput }\n contentAttributes={ { 'aria-labelledby': prefixIdLabel(id) } }\n disabled={ disabled }\n onLint={ handleLint }\n value={ localValue }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n </div>\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && (!!node.value || node.classList.contains('edited'));\n}\n\n// helpers /////////////////\n\nfunction prefixIdLabel(id) {\n return `bio-properties-panel-feelers-${id}-label`;\n}","import {\n useEffect,\n useState,\n useRef\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useKeyFactory,\n usePrevious,\n useStickyIntersectionObserver\n} from '../../hooks';\n\nimport translateFallback from '../util/translateFallback';\n\nimport classnames from 'classnames';\n\nimport {\n ArrowIcon,\n CreateIcon,\n DeleteIcon\n} from '../icons';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Entry for handling lists represented as nested entries.\n *\n * @template Item\n * @param {object} props\n * @param {string} props.id\n * @param {*} props.element\n * @param {Function} props.onAdd\n * @param {import('preact').Component} props.component\n * @param {string|import('preact').ComponentChildren} [props.label='<empty>']\n * @param {Function} [props.onRemove]\n * @param {Item[]} [props.items]\n * @param {boolean} [props.open]\n * @param {string|boolean} [props.autoFocusEntry] either a custom selector string or true to focus the first input\n * @param {Function} [props.translate]\n * @returns\n */\nexport default function List(props) {\n const {\n id,\n element,\n items = [],\n component,\n label = '<empty>',\n open: shouldOpen,\n onAdd,\n onRemove,\n autoFocusEntry,\n translate = translateFallback,\n ...restProps\n } = props;\n\n const entryRef = useRef(null);\n const [ open, setOpen ] = useState(!!shouldOpen);\n const [ sticky, setSticky ] = useState(false);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const elementChanged = usePrevious(element) !== element;\n const newItems = useNewItems(items, elementChanged);\n\n useEffect(() => {\n if (open && !hasItems) {\n setOpen(false);\n }\n }, [ open, hasItems ]);\n\n /**\n * @param {MouseEvent} event\n */\n function addItem(event) {\n event.stopPropagation();\n onAdd();\n\n if (!open) {\n setOpen(true);\n }\n }\n\n // set css class when entry is sticky to top\n useStickyIntersectionObserver(entryRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-entry',\n 'bio-properties-panel-list-entry',\n hasItems ? '' : 'empty',\n open ? 'open' : ''\n ) }\n ref={ entryRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-list-entry-header',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ toggleOpen }>\n <div\n class={ classnames(\n 'bio-properties-panel-list-entry-header-title',\n open && 'open'\n ) }>\n { label }\n </div>\n <div\n class=\"bio-properties-panel-list-entry-header-buttons\"\n >\n <button\n type=\"button\"\n title={ translate('Create new list item') }\n onClick={ addItem }\n class=\"bio-properties-panel-add-entry\"\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\n )\n : null\n }\n </button>\n {\n hasItems && (\n <div\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\n class=\"bio-properties-panel-list-badge\"\n >\n { items.length }\n </div>\n )\n }\n {\n hasItems && (\n <button\n type=\"button\"\n title={ translate('Toggle list item') }\n class=\"bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n }\n </div>\n </div>\n {\n hasItems && (\n <ItemsList\n { ...restProps }\n autoFocusEntry={ autoFocusEntry }\n component={ component }\n element={ element }\n id={ id }\n items={ items }\n newItems={ newItems }\n onRemove={ onRemove }\n open={ open }\n translate={ translate }\n />\n )\n }\n </div>\n );\n}\n\nfunction ItemsList(props) {\n const {\n autoFocusEntry,\n component: Component,\n element,\n id,\n items,\n newItems,\n onRemove,\n open,\n translate,\n ...restProps\n } = props;\n\n const getKey = useKeyFactory();\n\n const newItem = newItems[0];\n\n useEffect(() => {\n if (newItem && autoFocusEntry) {\n\n // (0) select the parent entry (containing all list items)\n const entry = domQuery(`[data-entry-id=\"${id}\"]`);\n\n // (1) select the first input or a custom element to be focussed\n const selector = typeof(autoFocusEntry) === 'boolean' ?\n '.bio-properties-panel-input' :\n autoFocusEntry;\n const focusableInput = domQuery(selector, entry);\n\n // (2) set focus\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n }\n }\n }, [ newItem, autoFocusEntry, id ]);\n\n return <ol class={ classnames(\n 'bio-properties-panel-list-entry-items',\n open ? 'open' : ''\n ) }>\n {\n items.map((item, index) => {\n const key = getKey(item);\n\n return (<li class=\"bio-properties-panel-list-entry-item\" key={ key }>\n <Component\n { ...restProps }\n element={ element }\n id={ id }\n index={ index }\n item={ item }\n open={ item === newItem } />\n {\n onRemove && (\n <button\n type=\"button\"\n title={ translate('Delete item') }\n class=\"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\"\n onClick={ () => onRemove && onRemove(item) }\n ><DeleteIcon /></button>\n )\n }\n </li>);\n })\n }\n </ol>;\n}\n\nfunction useNewItems(items = [], shouldReset) {\n const previousItems = usePrevious(items.slice()) || [];\n\n if (shouldReset) {\n return [];\n }\n\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\n}\n","import classNames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef { { value: string, label: string, disabled: boolean, children: { value: string, label: string, disabled: boolean } } } Option\n */\n\n/**\n * Provides basic select input.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string[]} props.path\n * @param {string} props.label\n * @param {Function} props.onChange\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Array<Option>} [props.options]\n * @param {string} props.value\n * @param {boolean} [props.disabled]\n */\nfunction Select(props) {\n const {\n id,\n label,\n onChange,\n options = [],\n value = '',\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const ref = useShowEntryEvent(id);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.value);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-select\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n </label>\n <select\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n class=\"bio-properties-panel-input\"\n onInput={ handleChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue }\n disabled={ disabled }\n >\n {options.map((option, idx) => {\n if (option.children) {\n return (\n <optgroup key={ idx } label={ option.label }>\n {option.children.map((child, idx) => (\n <option\n key={ idx }\n value={ child.value }\n disabled={ child.disabled }\n >\n {child.label}\n </option>\n ))}\n </optgroup>\n );\n }\n\n return (\n <option key={ idx } value={ option.value } disabled={ option.disabled }>\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.getOptions\n * @param {boolean} [props.disabled]\n * @param {Function} [props.validate]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function SelectEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n getOptions,\n disabled,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const options = getOptions(element);\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n\n const onChange = (newValue) => {\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n };\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Select\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onChange={ onChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n options={ options }\n disabled={ disabled }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n useMemo,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport translateFallback from '../util/translateFallback';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @param {Object} props\n * @param {Function} props.debounce\n * @param {Boolean} [props.disabled]\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {Function} [props.onBlur]\n * @param {Function} [props.onFocus]\n * @param {Function} props.setValue\n * @param {Function} [props.translate]\n */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue,\n translate = translateFallback\n } = props;\n\n const value = getValue(element);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => setValue(target.value.length ? target.value : undefined));\n }, [ setValue, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n return (\n <div class=\"bio-properties-panel-simple\">\n <input\n id={ prefixId(id) }\n key={ element }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n aria-label={ localValue || translate('<empty>') }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useDebounce,\n useElementVisible,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../hooks';\n\nimport { isFunction } from 'min-dash';\nimport Tooltip from './Tooltip';\nimport { isCmdWithChar } from '../util/keyboardUtils';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction resizeToContents(element) {\n element.style.height = 'auto';\n\n // a 2px pixel offset is required to prevent scrollbar from\n // appearing on OS with a full length scroll bar (Windows/Linux)\n element.style.height = `${ element.scrollHeight + 2 }px`;\n}\n\nfunction TextArea(props) {\n\n const {\n id,\n label,\n debounce,\n onInput: commitValue,\n value = '',\n disabled,\n monospace,\n onFocus,\n onBlur,\n onPaste,\n autoResize = true,\n placeholder,\n rows = autoResize ? 1 : 2,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const ref = useShowEntryEvent(id);\n\n const onInput = useCallback(newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n commitValue(newModelValue);\n }, [ commitValue ]);\n\n const visible = useElementVisible(ref.current);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInput = useDebounce(onInput, debounce);\n\n const handleLocalInput = e => {\n autoResize && resizeToContents(e.target);\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n const handleOnBlur = e => {\n const trimmedValue = e.target.value.trim();\n\n // trim and commit on blur\n handleInput.cancel?.();\n onInput(trimmedValue);\n setLocalValue(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleOnPaste = e => {\n const input = e.target;\n const isFieldEmpty = !input.value;\n const isAllSelected = input.selectionStart === 0 && input.selectionEnd === input.value.length;\n\n // Trim and handle paste if field is empty or all content is selected\n if (isFieldEmpty || isAllSelected) {\n const trimmedValue = e.clipboardData.getData('text').trim();\n\n setLocalValue(trimmedValue);\n handleInput(trimmedValue);\n\n if (onPaste) {\n onPaste(e);\n }\n\n e.preventDefault();\n return;\n }\n\n // Allow default paste behavior for normal text editing\n if (onPaste) {\n onPaste(e);\n }\n };\n\n const handleOnKeyDown = e => {\n if (isCmdWithChar(e)) {\n handleInput.flush?.();\n }\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n\n useLayoutEffect(() => {\n visible && autoResize && resizeToContents(ref.current);\n }, [ visible ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textarea\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <textarea\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n spellCheck=\"false\"\n class={ classnames(\n 'bio-properties-panel-input',\n monospace ? 'bio-properties-panel-input-monospace' : '',\n autoResize ? 'auto-resize' : '')\n }\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOnBlur }\n onPaste={ handleOnPaste }\n placeholder={ placeholder }\n rows={ rows }\n value={ localValue }\n disabled={ disabled }\n data-gramm=\"false\"\n />\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} props.description\n * @param {boolean} props.debounce\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.onPaste\n * @param {number} props.rows\n * @param {boolean} props.monospace\n * @param {Function} [props.validate]\n * @param {boolean} [props.disabled]\n */\nexport default function TextAreaEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n label,\n getValue,\n setValue,\n rows,\n monospace,\n disabled,\n validate,\n onFocus,\n onBlur,\n onPaste,\n placeholder,\n autoResize,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n const value = getValue(element);\n\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n });\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <TextArea\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onPaste={ onPaste }\n rows={ rows }\n debounce={ debounce }\n monospace={ monospace }\n disabled={ disabled }\n placeholder={ placeholder }\n autoResize={ autoResize }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../hooks';\nimport { isCmdWithChar } from '../util/keyboardUtils';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction Textfield(props) {\n\n const {\n debounce,\n disabled = false,\n id,\n label,\n onInput: commitValue,\n onFocus,\n onBlur,\n onPaste,\n placeholder,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n const onInput = useCallback(newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n commitValue(newModelValue);\n }, [ commitValue ]);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInput = useDebounce(onInput, debounce);\n\n const handleOnBlur = e => {\n const trimmedValue = e.target.value.trim();\n\n // trim and commit on blur\n handleInput.cancel?.();\n onInput(trimmedValue);\n setLocalValue(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleOnPaste = e => {\n const input = e.target;\n const isFieldEmpty = !input.value;\n const isAllSelected = input.selectionStart === 0 && input.selectionEnd === input.value.length;\n\n // Trim and handle paste if field is empty or all content is selected (overwrite)\n if (isFieldEmpty || isAllSelected) {\n const trimmedValue = e.clipboardData.getData('text').trim();\n\n setLocalValue(trimmedValue);\n handleInput(trimmedValue);\n\n if (onPaste) {\n onPaste(e);\n }\n\n e.preventDefault();\n return;\n }\n\n // Allow default paste behavior for normal text editing\n if (onPaste) {\n onPaste(e);\n }\n };\n\n const handleLocalInput = e => {\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n const handleOnKeyDown = e => {\n if (isCmdWithChar(e)) {\n handleInput.flush?.();\n }\n };\n\n return (\n <div class=\"bio-properties-panel-textfield\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <input\n ref={ ref }\n id={ prefixId(id) }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOnBlur }\n onPaste={ handleOnPaste }\n placeholder={ placeholder }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {Function} props.validate\n */\nexport default function TextfieldEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n validate,\n onFocus,\n onBlur,\n onPaste,\n placeholder,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n const value = getValue(element);\n\n if (newValue !== value) {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n }\n });\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Textfield\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onPaste={ onPaste }\n placeholder={ placeholder }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n debounce as _debounce,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 600;\n\n/**\n * Creates a debounced version of a function, delaying its execution based on `debounceDelay`.\n *\n * - If `debounceDelay` is `false`, the function executes immediately without debouncing.\n * - If a number is provided, the function execution is delayed by the given time in milliseconds.\n *\n * @param { Boolean | Number } [debounceDelay=600]\n *\n * @example\n * const debounce = debounceInput();\n * const debouncedFn = debounce(fn);\n *\n * debouncedFn(); // Executes after 300ms (default) if no further calls occur.\n */\nexport default function debounceInput(debounceDelay) {\n\n /**\n * Applies debounce to the provided function, with a previously setup delay.\n *\n * @template { (...args: any[]) => any } T\n *\n * @param {T} fn\n *\n * @return { (...p: Parameters<T>) => any }\n */\n return function debounce(fn) {\n if (debounceDelay === false) {\n return fn;\n }\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return _debounce(fn, debounceTime);\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","import { domify } from 'min-dom';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Add a dragger that calls back the passed function with\n * { event, delta } on drag.\n *\n * @example\n *\n * function dragMove(event, delta) {\n * // we are dragging (!!)\n * }\n *\n * domElement.addEventListener('dragstart', dragger(dragMove));\n *\n * @param {Function} fn\n * @param {Element} [dragPreview]\n *\n * @return {Function} drag start callback function\n */\nexport function createDragger(fn, dragPreview) {\n\n let self;\n\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n\n self = this;\n\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n\n return onDragStart;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction emptyCanvas() {\n return domify('<canvas width=\"0\" height=\"0\" />');\n}","import { forwardRef } from 'preact/compat';\n\nimport { useEffect, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon, CloseIcon } from '../../../components/icons';\n\nimport { createDragger } from '../../../components/util/dragger';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{top: number, left: number}} [props.position]\n * @param {number} [props.width]\n * @param {number} [props.height]\n * @param {Function} props.onClose\n * @param {Function} [props.onPostActivate]\n * @param {Function} [props.onPostDeactivate]\n * @param {boolean} [props.returnFocus]\n * @param {boolean} [props.closeOnEscape]\n * @param {string} props.title\n * @param {Ref} [ref]\n */\nfunction PopupComponent(props, globalRef) {\n const {\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop,\n onPostDeactivate = noop,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n\n const focusTrapRef = useRef(null);\n const localRef = useRef(null);\n const popupRef = globalRef || localRef;\n\n const handleKeydown = (event) => {\n\n // do not allow keyboard events to bubble\n event.stopPropagation();\n\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n\n let style = {};\n\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px',\n };\n }\n\n if (width) {\n style.width = width + 'px';\n }\n\n if (height) {\n style.height = height + 'px';\n }\n\n useEffect(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n\n return () => {\n if (popupRef.current) {\n popupRef.current.removeEventListener('focusin', handleFocus);\n }\n };\n }, [ popupRef ]);\n\n useEffect(() => {\n if (popupRef.current) {\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus,\n });\n\n focusTrapRef.current.activate();\n }\n\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [ popupRef ]);\n\n return (\n <div\n aria-label={ title }\n tabIndex={ -1 }\n ref={ popupRef }\n onKeyDown={ handleKeydown }\n role=\"dialog\"\n class={ classNames('bio-properties-panel-popup', className) }\n style={ style }\n >\n {props.children}\n </div>\n );\n}\n\nexport const Popup = forwardRef(PopupComponent);\n\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\n\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n eventBus,\n title,\n showCloseButton = false,\n closeButtonTooltip = 'Close popup',\n onClose,\n ...rest\n } = props;\n\n // we can't use state as we need to\n // manipulate this inside dragging events\n const context = useRef({\n startPosition: null,\n newPosition: null,\n });\n\n const dragPreviewRef = useRef();\n\n const titleRef = useRef();\n\n const onMove = (event, delta) => {\n cancel(event);\n\n const { x: dx, y: dy } = delta;\n\n const newPosition = {\n x: context.current.startPosition.x + dx,\n y: context.current.startPosition.y + dy,\n };\n\n const popupParent = getPopupParent(titleRef.current);\n\n popupParent.style.top = newPosition.y + 'px';\n popupParent.style.left = newPosition.x + 'px';\n\n eventBus?.fire('feelPopup.dragover', { newPosition, delta });\n };\n\n const onMoveStart = (event) => {\n\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n\n event.stopPropagation();\n\n const popupParent = getPopupParent(titleRef.current);\n\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top,\n };\n\n eventBus?.fire('feelPopup.dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n eventBus?.fire('feelPopup.dragend');\n };\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-popup__header',\n draggable && 'draggable',\n className\n ) }\n ref={ titleRef }\n draggable={ draggable }\n onDragStart={ onMoveStart }\n onDragEnd={ onMoveEnd }\n { ...rest }\n >\n {draggable && (\n <>\n <div\n ref={ dragPreviewRef }\n class=\"bio-properties-panel-popup__drag-preview\"\n ></div>\n <div class=\"bio-properties-panel-popup__drag-handle\">\n <DragIcon />\n </div>\n </>\n )}\n <div class=\"bio-properties-panel-popup__title\">{title}</div>\n {children}\n {showCloseButton && (\n <button\n type=\"button\"\n title={ closeButtonTooltip }\n class=\"bio-properties-panel-popup__close\"\n onClick={ onClose }\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\nfunction Body(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__body', className) }\n { ...rest }\n >\n {children}\n </div>\n );\n}\n\nfunction Footer(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__footer', className) }\n { ...rest }\n >\n {props.children}\n </div>\n );\n}\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\n\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n","import { useEffect, useRef } from 'preact/hooks';\nimport FeelEditor from '../../../components/entries/FEEL/FeelEditor';\nimport TemplatingEditor from '../../../components/entries/templating/TemplatingEditor';\nimport { LaunchIcon } from '../../../components/icons';\nimport { Popup } from './Popup';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef {Object} FeelPopupProps\n * @property {string} entryId\n * @property {Function} onInput\n * @property {Function} onClose\n * @property {string} title\n * @property {'feel'|'feelers'} type\n * @property {string} value\n * @property {Array} [links]\n * @property {Array|Object} [variables]\n * @property {Object} [position]\n * @property {string} [hostLanguage]\n * @property {boolean} [singleLine]\n * @property {HTMLElement} [sourceElement]\n * @property {HTMLElement|string} [tooltipContainer]\n * @property {Object} [eventBus]\n */\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n/**\n * FEEL expression editor popup component\n * @param {FeelPopupProps} props\n */\nexport function FeelPopup(props) {\n const {\n entryId,\n onInput,\n onClose,\n title,\n type,\n value,\n links,\n variables,\n position,\n hostLanguage,\n singleLine,\n sourceElement,\n tooltipContainer,\n eventBus,\n feelLanguageContext,\n } = props;\n\n const editorRef = useRef();\n const popupRef = useRef();\n\n const isAutoCompletionOpen = useRef(false);\n\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n\n const onKeyDownCapture = (event) => {\n\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n\n // set focus on editor when popup is opened\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, [ editorRef ]);\n\n return (\n <Popup\n className=\"bio-properties-panel-feel-popup\"\n position={ position }\n title={ title }\n returnFocus={ false }\n closeOnEscape={ false }\n delayInitialFocus={ false }\n onPostDeactivate={ handleSetReturnFocus }\n height={ FEEL_POPUP_HEIGHT }\n width={ FEEL_POPUP_WIDTH }\n ref={ popupRef }\n >\n <Popup.Title\n title={ title }\n eventBus={ eventBus }\n showCloseButton={ true }\n closeButtonTooltip=\"Save and close\"\n onClose={ onClose }\n draggable\n >\n <>\n {(links || []).map((link, index) => {\n return (\n <a\n key={ index }\n rel=\"noreferrer\"\n href={ link.href }\n target=\"_blank\"\n class=\"bio-properties-panel-feel-popup__title-link\"\n >\n {link.title}\n <LaunchIcon />\n </a>\n );\n })}\n </>\n </Popup.Title>\n <Popup.Body>\n <div\n onKeyDownCapture={ onKeyDownCapture }\n onKeyDown={ onKeyDown }\n class=\"bio-properties-panel-feel-popup__body\"\n >\n {type === 'feel' && (\n <FeelEditor\n enableGutters={ true }\n id={ prefixId(entryId) }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n feelLanguageContext={ feelLanguageContext }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )}\n\n {type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(entryId) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )}\n </div>\n </Popup.Body>\n </Popup>\n );\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n const editor = element.closest('.cm-editor');\n return editor ? editor.querySelector('.cm-tooltip-autocomplete') : null;\n}\n","import { FEEL_POPUP_WIDTH, FEEL_POPUP_HEIGHT } from './FeelPopup';\n\nexport function getPopupTitle({ element, label }) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\n}\n\nexport function getPopupPosition() {\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n return {\n left: Math.max(0, (viewportWidth - FEEL_POPUP_WIDTH) / 2),\n top: Math.max(0, (viewportHeight - FEEL_POPUP_HEIGHT) / 2)\n };\n}","import { getPopupPosition, getPopupTitle } from './components/helpers';\n\n/**\n * FEEL popup component, built as a singleton.\n *\n * In order to implement a custom replacement, handle the following events:\n * - `propertiesPanel.openPopup`\n * - `propertiesPanel.closePopup`\n * - `propertiesPanel.detach`\n *\n * Within the custom renderer, make sure to emit the following events:\n * - `feelPopup.open` - fired before the popup is mounted\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport class FeelPopup {\n constructor(eventBus, config = {}) {\n this._eventBus = eventBus;\n this._config = config;\n\n this._isOpen = false;\n\n eventBus.on('propertiesPanel.openPopup', (_, context) => {\n this.open(context.entryId, context, context.sourceElement);\n\n // return true to indicate that popup was opened\n return true;\n });\n\n eventBus.on([\n 'propertiesPanel.closePopup',\n 'propertiesPanel.detach'\n ], () => {\n this.close();\n });\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._isOpen;\n }\n\n /**\n * Open the FEEL popup.\n *\n * @param {String} entryId\n * @param {Object} popupConfig\n * @param {HTMLElement} sourceElement\n */\n open(entryId, popupConfig, sourceElement) {\n\n // close before opening a new one\n this.close();\n\n this._openPopup({\n ...popupConfig,\n entryId,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n this._closePopup();\n }\n\n _openPopup(context) {\n const {\n element,\n label,\n sourceElement,\n type\n } = context;\n\n this._isOpen = true;\n\n this._eventBus.fire('propertiesPanelPopup.open', {\n container: this._config.feelPopupContainer,\n config: {\n ...context,\n links: this._config.getFeelPopupLinks?.(type) || [],\n onClose: () => {\n this._closePopup();\n\n // setTimeout to ensure the focus happens after the DOM updates make it focusable\n setTimeout(() => {\n sourceElement && sourceElement.focus();\n }, 0);\n },\n position: getPopupPosition(),\n title: getPopupTitle({ element, label })\n }\n });\n }\n\n _closePopup() {\n if (this._isOpen) {\n this._isOpen = false;\n\n this._eventBus.fire('propertiesPanelPopup.close');\n }\n }\n}\n\nFeelPopup.$inject = [ 'eventBus', 'config.propertiesPanel' ];\n","import { render } from 'preact';\nimport { FeelPopup } from './components';\nimport { query as domQuery } from 'min-dom';\nimport { isString } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport class FeelPopupRenderer {\n constructor(eventBus) {\n this._eventBus = eventBus;\n\n this._container = null;\n this._element = null;\n\n eventBus.on('propertiesPanelPopup.open', (context) => {\n this._renderPopup(context);\n });\n\n eventBus.on('propertiesPanelPopup.close', () => {\n this._removePopup();\n });\n }\n\n _renderPopup(context) {\n let { container, config } = context;\n\n container = this._container = getContainer(container) || document.body;\n\n const element = this._element = createElement();\n\n container.appendChild(element);\n\n // TODO(philippfromme): there is no useService in this context, so we need\n // to pass the event bus as a prop or create a context provider, however,\n // a custom renderer would have to use that context provider as well to have\n // access to the event bus and other services\n this._emit('feelPopup.open');\n\n render(\n <FeelPopup { ...config } eventBus={ this._eventBus } />,\n element\n );\n\n this._emit('feelPopup.opened', {\n domNode: element\n });\n }\n\n _removePopup() {\n if (!this._container) {\n return;\n }\n\n this._emit('feelPopup.close', {\n domNode: this._element\n });\n\n render(null, this._element);\n\n this._container.removeChild(this._element);\n\n this._container = null;\n\n this._emit('feelPopup.closed');\n }\n\n _emit(event, context) {\n this._eventBus.fire(event, context);\n }\n}\n\nFeelPopupRenderer.$inject = [ 'eventBus' ];\n\n// helpers /////////////////\n\nfunction createElement() {\n const element = document.createElement('div');\n\n element.classList.add('bio-properties-panel-popup-container');\n\n return element;\n}\n\nfunction getContainer(container) {\n if (isString(container)) {\n return domQuery(container);\n }\n\n return container;\n}","import { FeelPopup } from './FeelPopup';\nimport { FeelPopupRenderer } from './FeelPopupRenderer';\n\nexport default {\n __init__: [ 'feelPopup', 'feelPopupRenderer' ],\n feelPopup: [ 'type', FeelPopup ],\n feelPopupRenderer: [ 'type', FeelPopupRenderer ],\n};"],"names":["Arrow","props","_jsx","xmlns","width","height","viewBox","children","fillRule","d","transform","Close","fill","Create","Delete","Drag","_jsxs","style","mixBlendMode","ExternalLink","clipRule","Feel","Launch","points","OpenPopup","translateFallback","template","replacements","replace","_","key","Header","element","headerProvider","translate","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","class","rel","href","title","target","ExternalLinkIcon","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","FeelLanguageContext","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","useContext","TooltipWrapper","forId","contextDescription","value","Tooltip","parent","direction","position","showDelay","hideDelay","visible","setVisible","useState","tooltipPosition","setTooltipPosition","arrowOffset","setArrowOffset","showTimeoutRef","useRef","hideTimeoutRef","wrapperRef","tooltipRef","show","delay","clearTimeout","current","setTimeout","handleWrapperMouseEnter","e","hide","useEffect","handleClickOutside","contains","document","addEventListener","removeEventListener","useLayoutEffect","newPosition","newArrowOffset","getTooltipPosition","handleMouseLeave","relatedTarget","parentElement","selection","window","getSelection","toString","length","selectionRange","getRangeAt","commonAncestorContainer","anchorNode","focusNode","handleTooltipMouseEnter","handleFocusOut","hideTooltipViaEscape","code","renderTooltip","tooltipStyle","right","top","undefined","arrowStyle","role","ref","onClick","stopPropagation","onMouseEnter","onMouseLeave","tabIndex","onFocus","onBlur","onKeyDown","createPortal","refElement","tooltipElement","refPosition","getBoundingClientRect","x","tooltipRect","viewportHeight","innerHeight","minTop","maxTop","originalTop","defaultMarginTop","topDiff","useDescriptionContext","useDebounce","callback","debounceFn","debouncedCallback","useCallback","flush","useError","useErrors","useEvent","event","eventContext","didMount","on","off","useKeyFactory","dependencies","map","useMemo","Map","getKey","el","get","Math","random","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","newValue","usePrevious","useShowEntryEvent","onShow","PropertiesPanelContext","focus","onShowEntry","isFunction","select","useStickyIntersectionObserver","scrollContainerSelector","setSticky","scrollContainer","setScrollContainer","domQuery","updateScrollContainer","newScrollContainer","Observer","IntersectionObserver","observer","entries","scrollHeight","forEach","entry","intersectionRatio","root","rootMargin","threshold","observe","unobserve","useStaticCallback","callbackRef","args","useElementVisible","clientHeight","resizeObserver","ResizeObserver","requestAnimationFrame","newVisible","contentRect","disconnect","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","hasOneEditedEntry","find","isEdited","entryNode","inputNode","cancelAnimationFrame","allErrors","hasErrors","some","propertiesPanelContext","classnames","DataMarker","ArrowIcon","Provider","component","Component","_createElement","Placeholder","text","icon","Icon","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","createLayout","useUpdateLayoutEffect","newLayout","config","prevLayout","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","group","overrides","defaults","effect","deps","isMounted","DropdownButton","className","menuItems","dropdownRef","menuRef","close","onDropdownToggle","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","CollapsibleEntry","remove","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","noop","ListGroup","add","items","shouldSort","console","warn","localItems","setLocalItems","addTriggered","setAddTriggered","prevElement","openItemIds","getNewItemIds","hasItems","handleAddClick","hasError","CreateIcon","numOfItems","includes","newItems","oldItems","newIds","oldIds","filter","itemId","Description","Checkbox","onChange","disabled","localValue","setLocalValue","handleChangeCallback","checked","handleChange","prefixId","name","for","CheckboxEntry","getValue","setValue","error","node","CheckboxGroup","options","handleOptionChange","optionValue","v","option","ExternalChange","Annotation","define","parseJsonLinter","jsonParseLinter","JsonEditor","debounce","onInput","commitValue","placeholder","containerRef","viewRef","editorRef","view","EditorView","state","EditorState","create","doc","extensions","highlightSpecialChars","history","drawSelection","syntaxHighlighting","defaultHighlightStyle","fallback","foldGutter","bracketMatching","closeBrackets","keymap","of","defaultKeymap","historyKeymap","closeBracketsKeymap","foldKeymap","tabSize","lineWrapping","readOnly","cmPlaceholder","updateListener","update","isExternal","transactions","tr","annotation","docChanged","json","linter","content","trim","contentDOM","prefixedId","setAttribute","destroy","currentValue","dispatch","changes","from","to","insert","annotations","focusEditor","JsonEditorEntry","validate","globalError","localError","setLocalError","computeError","editorValue","setEditorValue","newValidationError","classList","validateJson","isObject","JSON","parse","OpenPopupButton","OpenPopupIcon","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","TemplatingEditor","forwardRef","tooltipContainer","enableGutters","onLint","onOpenPopup","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","handleInput","FeelersEditor","container","lineWrap","innerHTML","handleClick","classNames","FeelEditor","onKeyDownProp","onFeelToggle","variables","feelLanguageContext","builtins","dialect","parserDialect","handleBlur","range","ranges","mainIndex","Editor","lineNumbers","domEventHandlers","blur","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","isCmd","altKey","ctrlKey","metaKey","isCmdWithChar","test","ToggleSwitch","switcherLabel","inline","handleInputCallback","ToggleSwitchEntry","NumberField","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","getInitialFeelLocalValue","newModelValue","feelActive","isFeelActive","feelOnlyValue","getFeelValue","_setFocus","isPopupOpen","setIsPopupOpen","setFocus","hasFocus","activeElement","selectionStart","setAndCommitValue","cancel","handleFeelToggle","handleInputChange","isString","startsWith","handleOptionalInputOnBlur","trimmedValue","handleFeelEditorOnBlur","handleOnKeyDown","handleLint","lint","syntaxError","report","handleOpenPopup","isOpen","fire","entryId","sourceElement","once","copyHandler","clipboardData","setData","getData","pasteHandler","feelData","HTMLInputElement","HTMLTextAreaElement","isFieldEmpty","isAllSelected","selectionEnd","textData","preventDefault","isFeelOptional","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","feelType","substring","TemplatingEntry","Templating","severity","message","source","prefixIdLabel","List","onAdd","onRemove","restProps","entryRef","elementChanged","useNewItems","addItem","ItemsList","newItem","selector","shouldReset","previousItems","Select","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","onPaste","autoResize","rows","handleLocalInput","handleOnBlur","handleOnPaste","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","fn","debounceTime","isNumber","_debounce","$inject","createDragger","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","onEnd","delta","y","call","domify","PopupComponent","globalRef","delayInitialFocus","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","handleKeydown","handleFocus","activate","left","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","Popup","Title","Body","Footer","draggable","showCloseButton","closeButtonTooltip","rest","context","startPosition","dragPreviewRef","titleRef","onMove","dx","dy","popupParent","getPopupParent","onMoveStart","bounds","onMoveEnd","onDragEnd","_Fragment","DragIcon","CloseIcon","closest","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FeelPopup","links","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","link","LaunchIcon","querySelector","getPopupTitle","popupTitle","getPopupPosition","viewportWidth","innerWidth","documentElement","clientWidth","constructor","_eventBus","_config","_isOpen","popupConfig","_openPopup","_closePopup","feelPopupContainer","getFeelPopupLinks","FeelPopupRenderer","_container","_element","_renderPopup","_removePopup","getContainer","body","createElement","appendChild","_emit","render","domNode","removeChild","__init__","feelPopup","feelPopupRenderer"],"mappings":"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C;AAAA,GACnE,CAAC;AAEV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASwhB,eAAeA,CAAC1kB,KAAK,EAAE;EACrC,OAAOC,cAAA,CAACmkB,SAAS,EAAA;AAAC1hB,IAAAA,KAAK,EAAC,kCAAkC;AAACme,IAAAA,iBAAiB,EAAGmD,uBAAyB;IAAA,GAAMhkB;AAAK,GAAI,CAAC;AAC1H;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS2kB,iBAAiBA,CAAC3kB,KAAK,EAAE;EACvC,OAAOC,cAAA,CAACmkB,SAAS,EAAA;AAAC1hB,IAAAA,KAAK,EAAC,oCAAoC;AAACme,IAAAA,iBAAiB,EAAGoD,oBAAsB;IAAA,GAAMjkB;AAAK,GAAI,CAAC;AACzH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS4kB,qBAAqBA,CAAC5kB,KAAK,EAAE;EAC3C,OAAOC,cAAA,CAACmkB,SAAS,EAAA;AAAC1hB,IAAAA,KAAK,EAAC,yCAAyC;AAACme,IAAAA,iBAAiB,EAAGqD,wBAA0B;IAAA,GAAMlkB;AAAK,GAAI,CAAC;AAClI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS6kB,iBAAiBA,CAAC7kB,KAAK,EAAE;EACvC,OAAOC,cAAA,CAACmkB,SAAS,EAAA;AAAC1hB,IAAAA,KAAK,EAAC,oCAAoC;AAACme,IAAAA,iBAAiB,EAAGsD,oBAAsB;IAAA,GAAMnkB;AAAK,GAAI,CAAC;AACzH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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"}
|