@bpmn-io/properties-panel 3.40.0 → 3.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../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/util/translateFallback.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/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":["import { ExternalLinkIcon } from './icons';\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 */\nexport default function Header(props) {\n\n const {\n element,\n headerProvider\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=\"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} 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\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 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 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={ position || getTooltipPosition(wrapperRef.current) }\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\" />\n </div>\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) {\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n const top = `${refPosition.top - 10}px`;\n\n return `right: ${right}; top: ${top};`;\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 // make sure previous call is not stalled\n useEffect(() => {\n return () => {\n debouncedCallback.cancel?.();\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, 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 * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\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\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 } = 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 } parent={ groupRef }>\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 />\n }\n <button\n type=\"button\"\n title=\"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 } = props;\n\n if (hasErrors) {\n return (\n <div title=\"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=\"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,\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 * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean\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 * @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 <Header\n element={ element }\n headerProvider={ headerProvider } />\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","/**\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 {\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 } parent={ groupRef }>\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 { OpenPopupIcon } from './icons';\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 {boolean} [props.disabled] - Whether the button is disabled.\n * @param {string} [props.className] - Additional class names for the button.\n */\nexport function OpenPopupButton({\n onClick,\n title = 'Open pop-up editor',\n}) {\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 'feelers';\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\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 onFeelToggle = noop,\n onLint = noop,\n onOpenPopup = noop,\n placeholder,\n popupOpen,\n disabled,\n tooltipContainer,\n variables,\n feelLanguageContext\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 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 tooltipContainer: tooltipContainer,\n value: localValue,\n variables,\n builtins,\n dialect,\n parserDialect,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : [],\n EditorView.lineWrapping\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\">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 /> }\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\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 */\nexport default function FeelIcon(props) {\n\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop\n } = props;\n\n const feelRequiredLabel = 'FEEL expression is mandatory';\n const feelOptionalLabel = `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 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 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 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 { 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 */\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 } = 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 handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n handleInput('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n handleInput(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue, useDebounce = true) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n if (useDebounce) {\n handleInput(newValue);\n } else {\n onInput(newValue);\n }\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 handleOnBlur = (e) => {\n handleInput.cancel?.();\n if (e.target.type === 'checkbox') {\n onInput(e.target.checked);\n } else {\n const trimmedValue = e.target.value.trim();\n handleLocalInput(trimmedValue, false);\n }\n\n if (onBlur) {\n onBlur(e);\n }\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('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: handleLocalInput,\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 input = event.target;\n const isFieldEmpty = !input.value;\n const isAllSelected = input.selectionStart === 0 && input.selectionEnd === input.value.length;\n\n if (isFieldEmpty || isAllSelected) {\n const textData = event.clipboardData.getData('text');\n const trimmedValue = textData.trim();\n\n setLocalValue(trimmedValue);\n handleInput(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 }></FeelIcon>\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={ handleLocalInput }\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 /> :\n <OptionalComponent\n { ...props }\n popupOpen={ isPopupOpen }\n onInput={ handleLocalInput }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOnBlur }\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 } = 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 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 = 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 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 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} [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 * @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 ...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=\"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\">Create</span>\n )\n : null\n }\n </button>\n {\n hasItems && (\n <div\n title={ `List contains ${items.length} item${items.length != 1 ? 's' : ''}` }\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=\"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 />\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 ...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=\"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 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 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\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 */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue\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 || '<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 let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\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 <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 let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\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 <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 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":["Header","props","element","headerProvider","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","showTimeoutRef","useRef","hideTimeoutRef","wrapperRef","tooltipRef","show","_","delay","clearTimeout","current","setTimeout","handleWrapperMouseEnter","e","hide","useEffect","handleClickOutside","contains","document","addEventListener","removeEventListener","handleMouseLeave","relatedTarget","parentElement","selection","window","getSelection","toString","length","selectionRange","getRangeAt","commonAncestorContainer","anchorNode","focusNode","handleTooltipMouseEnter","handleFocusOut","hideTooltipViaEscape","code","renderTooltip","role","style","getTooltipPosition","ref","onClick","stopPropagation","onMouseEnter","onMouseLeave","tabIndex","onFocus","onBlur","onKeyDown","createPortal","refElement","refPosition","getBoundingClientRect","right","x","top","useDescriptionContext","useDebounce","callback","debounceFn","debouncedCallback","useCallback","cancel","useError","useErrors","useEvent","event","eventContext","didMount","on","off","useKeyFactory","dependencies","map","useMemo","Map","getKey","el","key","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","useLayoutEffect","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","translateFallback","template","replacements","replace","CollapsibleEntry","remove","translate","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","noop","ListGroup","add","items","shouldSort","undefined","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","OpenPopupButton","OpenPopupIcon","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","TemplatingEditor","forwardRef","onInput","tooltipContainer","enableGutters","onLint","onOpenPopup","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","handleInput","FeelersEditor","container","lineWrap","innerHTML","handleClick","classNames","FeelEditor","onKeyDownProp","onFeelToggle","placeholder","variables","feelLanguageContext","builtins","dialect","parserDialect","range","ranges","mainIndex","from","to","Editor","extensions","lineNumbers","EditorView","lineWrapping","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","isCmd","altKey","ctrlKey","metaKey","isCmdWithChar","test","ToggleSwitch","switcherLabel","inline","handleInputCallback","ToggleSwitchEntry","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","FeelTextfield","commitValue","onError","OptionalComponent","OptionalFeelInput","getInitialFeelLocalValue","editorRef","containerRef","newModelValue","feelActive","isFeelActive","feelOnlyValue","getFeelValue","_setFocus","isPopupOpen","setIsPopupOpen","setFocus","hasFocus","activeElement","selectionStart","handleFeelToggle","handleLocalInput","isString","startsWith","handleOnBlur","trimmedValue","trim","handleOnKeyDown","flush","handleLint","lint","syntaxError","report","handleOpenPopup","isOpen","fire","entryId","sourceElement","once","copyHandler","clipboardData","setData","getData","pasteHandler","feelData","input","isFieldEmpty","isAllSelected","selectionEnd","textData","preventDefault","isFeelOptional","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","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","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","newPosition","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","viewportHeight","innerHeight","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.esm.js","sources":["../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/util/translateFallback.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/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":["import { ExternalLinkIcon } from './icons';\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 */\nexport default function Header(props) {\n\n const {\n element,\n headerProvider\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=\"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 // make sure previous call is not stalled\n useEffect(() => {\n return () => {\n debouncedCallback.cancel?.();\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, 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 * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\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\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 } = 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 } parent={ groupRef }>\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 />\n }\n <button\n type=\"button\"\n title=\"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 } = props;\n\n if (hasErrors) {\n return (\n <div title=\"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=\"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,\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 * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean\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 * @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 <Header\n element={ element }\n headerProvider={ headerProvider } />\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","/**\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 {\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 } parent={ groupRef }>\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 { OpenPopupIcon } from './icons';\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 {boolean} [props.disabled] - Whether the button is disabled.\n * @param {string} [props.className] - Additional class names for the button.\n */\nexport function OpenPopupButton({\n onClick,\n title = 'Open pop-up editor',\n}) {\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 'feelers';\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\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 onFeelToggle = noop,\n onLint = noop,\n onOpenPopup = noop,\n placeholder,\n popupOpen,\n disabled,\n tooltipContainer,\n variables,\n feelLanguageContext\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 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 tooltipContainer: tooltipContainer,\n value: localValue,\n variables,\n builtins,\n dialect,\n parserDialect,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : [],\n EditorView.lineWrapping\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\">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 /> }\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\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 */\nexport default function FeelIcon(props) {\n\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop\n } = props;\n\n const feelRequiredLabel = 'FEEL expression is mandatory';\n const feelOptionalLabel = `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 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 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 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 { 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 */\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 } = 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 handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n handleInput('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n handleInput(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue, useDebounce = true) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n if (useDebounce) {\n handleInput(newValue);\n } else {\n onInput(newValue);\n }\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 handleOnBlur = (e) => {\n handleInput.cancel?.();\n if (e.target.type === 'checkbox') {\n onInput(e.target.checked);\n } else {\n const trimmedValue = e.target.value.trim();\n handleLocalInput(trimmedValue, false);\n }\n\n if (onBlur) {\n onBlur(e);\n }\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('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: handleLocalInput,\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 input = event.target;\n const isFieldEmpty = !input.value;\n const isAllSelected = input.selectionStart === 0 && input.selectionEnd === input.value.length;\n\n if (isFieldEmpty || isAllSelected) {\n const textData = event.clipboardData.getData('text');\n const trimmedValue = textData.trim();\n\n setLocalValue(trimmedValue);\n handleInput(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 }></FeelIcon>\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={ handleLocalInput }\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 /> :\n <OptionalComponent\n { ...props }\n popupOpen={ isPopupOpen }\n onInput={ handleLocalInput }\n onKeyDown={ handleOnKeyDown }\n onBlur={ handleOnBlur }\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 } = 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 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 = 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 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 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} [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 * @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 ...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=\"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\">Create</span>\n )\n : null\n }\n </button>\n {\n hasItems && (\n <div\n title={ `List contains ${items.length} item${items.length != 1 ? 's' : ''}` }\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=\"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 />\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 ...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=\"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 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 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\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 */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue\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 || '<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 let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\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 <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 let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\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 <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":["Header","props","element","headerProvider","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","cancel","useError","useErrors","useEvent","event","eventContext","didMount","on","off","useKeyFactory","dependencies","map","useMemo","Map","getKey","el","key","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","translateFallback","template","replacements","replace","CollapsibleEntry","remove","translate","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","OpenPopupButton","OpenPopupIcon","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","TemplatingEditor","forwardRef","onInput","tooltipContainer","enableGutters","onLint","onOpenPopup","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","handleInput","FeelersEditor","container","lineWrap","innerHTML","handleClick","classNames","FeelEditor","onKeyDownProp","onFeelToggle","placeholder","variables","feelLanguageContext","builtins","dialect","parserDialect","range","ranges","mainIndex","from","to","Editor","extensions","lineNumbers","EditorView","lineWrapping","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","isCmd","altKey","ctrlKey","metaKey","isCmdWithChar","test","ToggleSwitch","switcherLabel","inline","handleInputCallback","ToggleSwitchEntry","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","FeelTextfield","commitValue","onError","OptionalComponent","OptionalFeelInput","getInitialFeelLocalValue","editorRef","containerRef","newModelValue","feelActive","isFeelActive","feelOnlyValue","getFeelValue","_setFocus","isPopupOpen","setIsPopupOpen","setFocus","hasFocus","activeElement","selectionStart","handleFeelToggle","handleLocalInput","isString","startsWith","handleOnBlur","trimmedValue","trim","handleOnKeyDown","flush","handleLint","lint","syntaxError","report","handleOpenPopup","isOpen","fire","entryId","sourceElement","once","copyHandler","clipboardData","setData","getData","pasteHandler","feelData","input","isFieldEmpty","isAllSelected","selectionEnd","textData","preventDefault","isFeelOptional","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","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","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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W,EAAA;AAAChS,MAAAA,KAAK,EAAGH,EAAI;AAACxC,MAAAA,OAAO,EAAGA,OAAS;AAAC6C,MAAAA,KAAK,EAAGrB;AAAa,KAAE,CAAC;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,SAAS8d,eAAeA,CAACvf,KAAK,EAAE;EACrC,OAAOc,GAAA,CAACme,SAAS,EAAA;AAACre,IAAAA,KAAK,EAAC,kCAAkC;AAAC+a,IAAAA,iBAAiB,EAAGkD,uBAAyB;IAAA,GAAM7e;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,SAASwf,iBAAiBA,CAACxf,KAAK,EAAE;EACvC,OAAOc,GAAA,CAACme,SAAS,EAAA;AAACre,IAAAA,KAAK,EAAC,oCAAoC;AAAC+a,IAAAA,iBAAiB,EAAGmD,oBAAsB;IAAA,GAAM9e;AAAK,GAAI,CAAC;AACzH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyf,qBAAqBA,CAACzf,KAAK,EAAE;EAC3C,OAAOc,GAAA,CAACme,SAAS,EAAA;AAACre,IAAAA,KAAK,EAAC,yCAAyC;AAAC+a,IAAAA,iBAAiB,EAAGoD,wBAA0B;IAAA,GAAM/e;AAAK,GAAI,CAAC;AAClI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS0f,iBAAiBA,CAAC1f,KAAK,EAAE;EACvC,OAAOc,GAAA,CAACme,SAAS,EAAA;AAACre,IAAAA,KAAK,EAAC,oCAAoC;AAAC+a,IAAAA,iBAAiB,EAAGqD,oBAAsB;IAAA,GAAMhf;AAAK,GAAI,CAAC;AACzH;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"}