@bpmn-io/properties-panel 3.12.0 → 3.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/properties-panel.css +0 -4
- package/dist/index.esm.js +31 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +66 -63
- package/dist/index.js.map +1 -1
- package/package.json +28 -31
- package/preact/README.md +2 -2
- package/preact/compat/LICENSE +21 -0
- package/preact/compat/dist/compat.js +1 -1
- package/preact/compat/dist/compat.js.map +1 -1
- package/preact/compat/dist/compat.mjs +1 -1
- package/preact/compat/dist/compat.module.js +1 -1
- package/preact/compat/dist/compat.module.js.map +1 -1
- package/preact/compat/dist/compat.umd.js +1 -1
- package/preact/compat/dist/compat.umd.js.map +1 -1
- package/preact/compat/server.browser.js +7 -0
- package/preact/compat/server.mjs +7 -0
- package/preact/compat/src/index.d.ts +22 -8
- package/preact/compat/src/index.js +35 -3
- package/preact/compat/src/portals.js +26 -35
- package/preact/compat/src/suspense.js +9 -6
- package/preact/compat/src/util.js +0 -5
- package/preact/debug/LICENSE +21 -0
- package/preact/debug/dist/debug.js +1 -1
- package/preact/debug/dist/debug.js.map +1 -1
- package/preact/debug/dist/debug.mjs +1 -1
- package/preact/debug/dist/debug.module.js +1 -1
- package/preact/debug/dist/debug.module.js.map +1 -1
- package/preact/debug/dist/debug.umd.js +1 -1
- package/preact/debug/dist/debug.umd.js.map +1 -1
- package/preact/debug/src/debug.js +124 -42
- package/preact/devtools/LICENSE +21 -0
- package/preact/devtools/dist/devtools.js +1 -1
- package/preact/devtools/dist/devtools.js.map +1 -1
- package/preact/devtools/dist/devtools.mjs +1 -1
- package/preact/devtools/dist/devtools.module.js +1 -1
- package/preact/devtools/dist/devtools.module.js.map +1 -1
- package/preact/devtools/dist/devtools.umd.js +1 -1
- package/preact/devtools/dist/devtools.umd.js.map +1 -1
- package/preact/devtools/src/devtools.js +1 -1
- package/preact/dist/preact.js +1 -1
- package/preact/dist/preact.js.map +1 -1
- package/preact/dist/preact.min.js +1 -1
- package/preact/dist/preact.min.js.map +1 -1
- package/preact/dist/preact.min.module.js +1 -1
- package/preact/dist/preact.min.module.js.map +1 -1
- package/preact/dist/preact.min.umd.js +1 -1
- package/preact/dist/preact.min.umd.js.map +1 -1
- package/preact/dist/preact.mjs +1 -1
- package/preact/dist/preact.module.js +1 -1
- package/preact/dist/preact.module.js.map +1 -1
- package/preact/dist/preact.umd.js +1 -1
- package/preact/dist/preact.umd.js.map +1 -1
- package/preact/hooks/LICENSE +21 -0
- package/preact/jsx-runtime/LICENSE +21 -0
- package/preact/jsx-runtime/dist/jsxRuntime.js +1 -1
- package/preact/jsx-runtime/dist/jsxRuntime.js.map +1 -1
- package/preact/jsx-runtime/dist/jsxRuntime.mjs +1 -1
- package/preact/jsx-runtime/dist/jsxRuntime.module.js +1 -1
- package/preact/jsx-runtime/dist/jsxRuntime.module.js.map +1 -1
- package/preact/jsx-runtime/dist/jsxRuntime.umd.js +1 -1
- package/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +1 -1
- package/preact/jsx-runtime/src/index.d.ts +10 -0
- package/preact/jsx-runtime/src/index.js +113 -4
- package/preact/jsx-runtime/src/utils.js +36 -0
- package/preact/package.json +4 -3
- package/preact/src/clone-element.js +6 -4
- package/preact/src/component.js +34 -28
- package/preact/src/constants.js +13 -1
- package/preact/src/create-context.js +3 -3
- package/preact/src/create-element.js +14 -11
- package/preact/src/diff/catch-error.js +11 -7
- package/preact/src/diff/children.js +321 -218
- package/preact/src/diff/index.js +188 -142
- package/preact/src/diff/props.js +31 -38
- package/preact/src/index.d.ts +38 -19
- package/preact/src/index.js +1 -1
- package/preact/src/internal.d.ts +183 -153
- package/preact/src/jsx.d.ts +883 -19
- package/preact/src/options.js +1 -1
- package/preact/src/render.js +11 -11
- package/preact/src/util.js +2 -2
- package/preact/test-utils/dist/testUtils.js +1 -1
- package/preact/test-utils/dist/testUtils.js.map +1 -1
- package/preact/test-utils/dist/testUtils.mjs +1 -1
- package/preact/test-utils/dist/testUtils.module.js +1 -1
- package/preact/test-utils/dist/testUtils.module.js.map +1 -1
- package/preact/test-utils/dist/testUtils.umd.js +1 -1
- package/preact/test-utils/dist/testUtils.umd.js.map +1 -1
- package/preact/test-utils/src/index.js +13 -5
package/dist/index.esm.js.map
CHANGED
|
@@ -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/LayoutContext.js","../src/context/TooltipContext.js","../src/hooks/useTooltipContext.js","../src/components/entries/Tooltip.js","../src/hooks/useDescriptionContext.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/components/Group.js","../src/components/Placeholder.js","../src/components/entries/Description.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/entries/FEEL/context/FeelPopupContext.js","../src/components/util/dragger.js","../src/components/Popup.js","../src/components/entries/FEEL/FeelPopup.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Checkbox.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/features/feel-popup/FeelPopupModule.js","../src/features/feel-popup/index.js"],"sourcesContent":["import { ExternalLinkIcon } from './icons';\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 title={ type } class=\"bio-properties-panel-header-type\">{ type }</div>\n { label ?\n <div title={ label } 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=\"noopener\"\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\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 useEffect,\n useState\n} from 'preact/hooks';\n\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\n\nimport { createPortal } from 'preact/compat';\n\n/**\n * @param {Object} props\n * @param {String} props.forId\n * @param {String} props.value\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={ prefixId(forId) } />;\n}\n\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent\n } = props;\n\n const [ visible, setShow ] = useState(false);\n const [ focusedViaKeyboard, setFocusedViaKeyboard ] = useState(false);\n\n let timeout = null;\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const showTooltip = async (event) => {\n const show = () => setShow(true);\n\n if (!visible && !timeout) {\n if (event instanceof MouseEvent) {\n timeout = setTimeout(show, 200);\n } else {\n show();\n setFocusedViaKeyboard(true);\n }\n }\n };\n\n const hideTooltip = () => {\n setShow(false);\n setFocusedViaKeyboard(false);\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hideTooltip();\n };\n\n const isTooltipHovered = ({ x, y }) => {\n const tooltip = tooltipRef.current;\n const wrapper = wrapperRef.current;\n\n return tooltip && (\n inBounds(x, y, wrapper.getBoundingClientRect()) ||\n inBounds(x, y, tooltip.getBoundingClientRect())\n );\n };\n\n useEffect(() => {\n const { current } = wrapperRef;\n\n if (!current) {\n return;\n }\n\n const hideHoveredTooltip = (e) => {\n const isFocused = document.activeElement === wrapperRef.current\n || document.activeElement.closest('.bio-properties-panel-tooltip');\n\n if (visible && !isTooltipHovered({ x: e.x, y: e.y }) && !(isFocused && focusedViaKeyboard)) {\n hideTooltip();\n }\n };\n\n const hideFocusedTooltip = (e) => {\n const { relatedTarget } = e;\n const isTooltipChild = (el) => !!el.closest('.bio-properties-panel-tooltip');\n\n\n if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {\n hideTooltip();\n }\n };\n\n document.addEventListener('wheel', hideHoveredTooltip);\n document.addEventListener('focusout', hideFocusedTooltip);\n document.addEventListener('mousemove', hideHoveredTooltip);\n\n return () => {\n document.removeEventListener('wheel', hideHoveredTooltip);\n document.removeEventListener('mousemove', hideHoveredTooltip);\n document.removeEventListener('focusout', hideFocusedTooltip);\n };\n }, [ wrapperRef.current, visible, focusedViaKeyboard ]);\n\n const renderTooltip = () => {\n return (\n <div\n class=\"bio-properties-panel-tooltip\"\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ getTooltipPosition(wrapperRef.current) }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\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={ showTooltip }\n onMouseLeave={ ()=> {\n clearTimeout(timeout);\n timeout = null;\n } }\n onFocus={ showTooltip }\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\nfunction inBounds(x, y, bounds) {\n const { top, right, bottom, left } = bounds;\n return x >= left && x <= right && y >= top && y <= bottom;\n}\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\nfunction isHovered(element) {\n return element.matches(':hover');\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\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 { 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\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 {\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/**\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 title={ props.tooltip ? null : label }\n data-title={ label }\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 data\" 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 useDescriptionContext\n} from '../../hooks';\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 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 { ExternalLinkIcon } from '../../icons';\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 CodeEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onPopupOpen = 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 });\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 <div class=\"bio-properties-panel-feelers-editor__open-popup-placeholder\">Opened in editor</div>\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\n <button\n type=\"button\"\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen('feelers') }><ExternalLinkIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport FeelEditor from '@bpmn-io/feel-editor';\n\nimport { lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { ExternalLinkIcon } from '../../icons';\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 CodeEditor = forwardRef((props, ref) => {\n\n const {\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop,\n onLint = noop,\n onPopupOpen = noop,\n popupOpen,\n disabled,\n tooltipContainer,\n variables\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 /* 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 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 FeelEditor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables: variables,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : []\n ]\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 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 <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\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 <button\n type=\"button\"\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen() }><ExternalLinkIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","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\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}","import {\n createContext\n} from 'preact';\n\nconst FeelPopupContext = createContext({\n open: () => {},\n close: () => {},\n source: null\n});\n\nexport default FeelPopupContext;","import { domify } from 'min-dom';\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 { createPortal, forwardRef } from 'preact/compat';\n\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport { query as domQuery } from 'min-dom';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon } from './icons';\n\nimport { createDragger } from './util/dragger';\n\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {HTMLElement} [props.container]\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{x: number, y: 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\n const {\n container,\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 containerNode = useMemo(() => getContainerNode(container), [ container ]);\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 () => { popupRef.current.removeEventListener('focusin', handleFocus); };\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 createPortal(\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 }>{ props.children }</div>\n , containerNode || document.body\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 emit = () => {},\n title,\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 // notify interested parties\n emit('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 // notify interested parties\n emit('dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n // notify interested parties\n emit('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 { draggable && (\n <>\n <div ref={ dragPreviewRef } class=\"bio-properties-panel-popup__drag-preview\"></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 </div>\n );\n}\n\nfunction Body(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__body', className) } { ...rest }>\n { children }\n </div>\n );\n}\n\nfunction Footer(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__footer', className) } { ...rest }>\n { props.children }\n </div>\n );\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\nfunction getContainerNode(node) {\n if (typeof node === 'string') {\n return domQuery(node);\n }\n\n return node;\n}","import {\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { FeelPopupContext } from './context';\n\nimport { usePrevious } from '../../../hooks';\n\nimport { Popup } from '../../Popup';\n\nimport CodeEditor from './FeelEditor';\n\nimport TemplatingEditor from '../templating/TemplatingEditor';\nimport { HelpIcon } from '../../icons';\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n\n/**\n * FEEL popup component, built as a singleton. Emits lifecycle events as follows:\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\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport default function FEELPopupRoot(props) {\n const {\n element,\n eventBus = { fire() {}, on() {}, off() {} },\n popupContainer\n } = props;\n\n const prevElement = usePrevious(element);\n\n const [ popupConfig, setPopupConfig ] = useState({});\n const [ open, setOpen ] = useState(false);\n const [ source, setSource ] = useState(null);\n const [ sourceElement, setSourceElement ] = useState(null);\n\n const emit = (type, context) => {\n eventBus.fire('feelPopup.' + type, context);\n };\n\n const isOpen = useCallback(() => {\n return !!open;\n }, [ open ]);\n\n useUpdateEffect(() => {\n if (!open) {\n emit('closed');\n }\n }, [ open ]);\n\n const handleOpen = (entryId, config, _sourceElement) => {\n setSource(entryId);\n setPopupConfig(config);\n setOpen(true);\n setSourceElement(_sourceElement);\n emit('open');\n };\n\n const handleClose = () => {\n setOpen(false);\n setSource(null);\n };\n\n const feelPopupContext = {\n open: handleOpen,\n close: handleClose,\n source\n };\n\n // close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270\n useEffect(() => {\n if (element && prevElement && element !== prevElement) {\n handleClose();\n }\n }, [ element ]);\n\n // allow close and open via events\n useEffect(() => {\n\n const handlePopupOpen = (context) => {\n const {\n entryId,\n popupConfig,\n sourceElement\n } = context;\n\n handleOpen(entryId, popupConfig, sourceElement);\n };\n\n const handleIsOpen = () => {\n return isOpen();\n };\n\n eventBus.on('feelPopup._close', handleClose);\n eventBus.on('feelPopup._open', handlePopupOpen);\n eventBus.on('feelPopup._isOpen', handleIsOpen);\n\n return () => {\n eventBus.off('feelPopup._close', handleClose);\n eventBus.off('feelPopup._open', handleOpen);\n eventBus.off('feelPopup._isOpen', handleIsOpen);\n };\n\n }, [ eventBus, isOpen ]);\n\n return (\n <FeelPopupContext.Provider value={ feelPopupContext }>\n { open && (\n <FeelPopupComponent\n onClose={ handleClose }\n container={ popupContainer }\n sourceElement={ sourceElement }\n emit={ emit }\n { ...popupConfig } />\n )}\n { props.children }\n </FeelPopupContext.Provider>\n );\n}\n\nfunction FeelPopupComponent(props) {\n const {\n container,\n id,\n hostLanguage,\n onInput,\n onClose,\n position,\n singleLine,\n sourceElement,\n title,\n tooltipContainer,\n type,\n value,\n variables,\n emit\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\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n // we need to do check this because the editor is not\n // stop propagating the keydown event\n // cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n emit('opened', { domNode: popupRef.current });\n return () => emit('close', { domNode: popupRef.current });\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 container={ container }\n className=\"bio-properties-panel-feel-popup\"\n emit={ emit }\n position={ position }\n title={ title }\n onClose={ onClose }\n\n // handle focus manually on deactivate\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 emit={ emit }\n draggable>\n {type === 'feel' && (\n <a href=\"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\n Learn FEEL expressions\n <HelpIcon />\n </a>\n )\n }\n {type === 'feelers' && (\n <a href=\"https://docs.camunda.io/docs/components/modeler/forms/configuration/forms-config-templating-syntax/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\n Learn templating\n <HelpIcon />\n </a>\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 {\n type === 'feel' && (\n <CodeEditor\n enableGutters={ true }\n id={ prefixId(id) }\n name={ id }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n\n {\n type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(id) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ id }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n </div>\n </Popup.Body>\n <Popup.Footer>\n <button\n type=\"button\"\n onClick={ onClose }\n title=\"Close pop-up editor\"\n class=\"bio-properties-panel-feel-popup__close-btn\">Close</button>\n </Popup.Footer>\n </Popup>\n );\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');\n}\n\n/**\n * This hook behaves like useEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\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\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';\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\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 } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce(event => {\n\n const {\n validity,\n value\n } = event.target;\n\n if (validity.valid) {\n onInput(value ? parseFloat(value) : undefined);\n }\n });\n }, [ onInput, debounce ]);\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=\"bio-properties-panel-numberfield\">\n {displayLabel && <label for={ prefixId(id) } class=\"bio-properties-panel-label\">{ label }</label> }\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 } = 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 ]);\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 { 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 useMemo,\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 useShowEntryEvent,\n useError,\n useStaticCallback\n} from '../../../hooks';\n\nimport CodeEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { FEEL_POPUP_WIDTH } from './FeelPopup';\n\nimport { FeelPopupContext } from './context';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\nconst noop = () => { };\n\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\n onError,\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(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const feelActive = (isString(localValue) && localValue.startsWith('=')) || feel === 'required';\n const feelOnlyValue = (isString(localValue) && localValue.startsWith('=')) ? localValue.substring(1) : localValue;\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const {\n open: openPopup,\n source: popupSource\n } = useContext(FeelPopupContext);\n\n const popuOpen = popupSource === id;\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) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const setLocalValue = newValue => {\n _setLocalValue(newValue);\n\n if (typeof newValue === 'undefined' || newValue === '' || newValue === '=') {\n handleInputCallback(undefined);\n } else {\n handleInputCallback(newValue);\n }\n\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleLint = useStaticCallback(lint => {\n\n if (!(lint && lint.length)) {\n onError(undefined);\n return;\n }\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n const handlePopupOpen = (type = 'feel') => {\n const popupOptions = {\n id,\n hostLanguage,\n onInput: handleLocalInput,\n position: calculatePopupPosition(containerRef.current),\n singleLine,\n title: getPopupTitle(element, label),\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n };\n\n openPopup(id, popupOptions, editorRef.current);\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\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 || popuOpen) {\n return;\n }\n\n const data = event.clipboardData.getData('application/FEEL');\n\n if (data) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\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={ feel !== 'optional' || disabled }\n onClick={ handleFeelToggle }\n />\n {feelActive ?\n <CodeEditor\n id={ prefixId(id) }\n name={ id }\n onInput={ handleLocalInput }\n disabled={ disabled }\n popupOpen={ popuOpen }\n onFeelToggle={ () => { handleFeelToggle(); setFocus(true); } }\n onLint={ handleLint }\n onPopupOpen={ handlePopupOpen }\n value={ feelOnlyValue }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ popuOpen }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onPopupOpen={ handlePopupOpen }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\nconst OptionalFeelInput = 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 // 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 onBlur={ onBlur }\n value={ value || '' } />;\n});\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\n\nconst OptionalFeelTextArea = 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 // 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 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\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 * @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 {Boolean} 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 {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\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 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 ]);\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 = 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 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 {Boolean} 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 {Function} 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 {Boolean} 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 {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\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 {Boolean} 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 {Function} 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 {Boolean} 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 {Function} 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 {Boolean} 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 {Function} 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\nfunction calculatePopupPosition(element) {\n const { top, left } = element.getBoundingClientRect();\n\n return {\n left: left - FEEL_POPUP_WIDTH - 20,\n top: top\n };\n}\n\n// todo(pinussilvestrus): make this configurable in the future\nfunction getPopupTitle(element, label) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\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 { FeelPopupRoot } from './components/entries/FEEL';\n\nimport { useEvent } from './hooks';\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 * shouldSort?: Boolean,\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 {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 feelPopupContainer,\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 const newLayout = assign({}, layout);\n set(newLayout, key, config);\n setLayout(newLayout);\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 <FeelPopupRoot\n element={ element }\n eventBus={ eventBus }\n popupContainer={ feelPopupContainer }>\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 </FeelPopupRoot>\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/**\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\nexport function HeaderButton(props) {\n const {\n children = null,\n class: classname,\n onClick = () => {},\n ...otherProps\n } = props;\n\n return <button\n type=\"button\"\n { ...otherProps }\n onClick={ onClick }\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\n { children }\n </button>;\n}\n","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove\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 // todo(pinussilvestrus): translate once we have a translate mechanism for the core\n const placeholderLabel = '<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 title={ label || placeholderLabel }\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=\"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=\"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';\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen\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 }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen } />\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 find,\n sortBy\n} from 'min-dash';\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\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 = true,\n shouldSort = true\n } = props;\n\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n false\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ ordering, setOrdering ] = useState([]);\n const [ newItemAdded, setNewItemAdded ] = useState(false);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevItems = usePrevious(items);\n const prevElement = usePrevious(element);\n\n const elementChanged = element !== prevElement;\n const shouldHandleEffects = !elementChanged && (shouldSort || shouldOpen);\n\n // reset initial ordering when element changes (before first render)\n if (elementChanged) {\n setOrdering(createOrdering(shouldSort ? sortItems(items) : items));\n }\n\n // keep ordering in sync to items - and open changes\n\n // (0) set initial ordering from given items\n useEffect(() => {\n if (!prevItems || !shouldSort) {\n setOrdering(createOrdering(items));\n }\n }, [ items, element ]);\n\n // (1) items were added\n useEffect(() => {\n\n // reset addTriggered flag\n setAddTriggered(false);\n\n if (shouldHandleEffects && prevItems && items.length > prevItems.length) {\n\n let add = [];\n\n items.forEach(item => {\n if (!ordering.includes(item.id)) {\n add.push(item.id);\n }\n });\n\n let newOrdering = ordering;\n\n // open if not open, configured and triggered by add button\n //\n // TODO(marstamm): remove once we refactor layout handling for listGroups.\n // Ideally, opening should be handled as part of the `add` callback and\n // not be a concern for the ListGroup component.\n if (addTriggered && !open && shouldOpen) {\n toggleOpen();\n }\n\n // filter when not open and configured\n if (!open && shouldSort) {\n newOrdering = createOrdering(sortItems(items));\n }\n\n // add new items on top or bottom depending on sorting behavior\n newOrdering = newOrdering.filter(item => !add.includes(item));\n if (shouldSort) {\n newOrdering.unshift(...add);\n } else {\n newOrdering.push(...add);\n }\n\n setOrdering(newOrdering);\n setNewItemAdded(addTriggered);\n } else {\n setNewItemAdded(false);\n }\n }, [ items, open, shouldHandleEffects, addTriggered ]);\n\n // (2) sort items on open if shouldSort is set\n useEffect(() => {\n\n if (shouldSort && open && !newItemAdded) {\n setOrdering(createOrdering(sortItems(items)));\n }\n }, [ open, shouldSort ]);\n\n // (3) items were deleted\n useEffect(() => {\n if (shouldHandleEffects && prevItems && items.length < prevItems.length) {\n let keep = [];\n\n ordering.forEach(o => {\n if (getItem(items, o)) {\n keep.push(o);\n }\n });\n\n setOrdering(keep);\n }\n }, [ items, shouldHandleEffects ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const toggleOpen = () => setOpen(!open);\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 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 title={ props.tooltip ? null : label }\n data-title={ label }\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=\"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\">Create</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ `List contains ${items.length} item${items.length != 1 ? 's' : ''}` }\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=\"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 ordering.map((o, index) => {\n const item = getItem(items, o);\n\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 is only applied on first render\n const autoOpen = newItemAdded;\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\n// helpers ////////////////////\n\n/**\n * Sorts given items alphanumeric by label\n */\nfunction sortItems(items) {\n return sortBy(items, i => i.label.toLowerCase());\n}\n\nfunction getItem(items, id) {\n return find(items, i => i.id === id);\n}\n\nfunction createOrdering(items) {\n return items.map(i => i.id);\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\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 { 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\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 ]);\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 useRef,\n useState\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} from '../../hooks';\n\nimport classnames from 'classnames';\n\nimport {\n ArrowIcon,\n CreateIcon,\n DeleteIcon\n} from '../icons';\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 * @param {(a: Item, b: Item) => -1 | 0 | 1} [props.compareFn]\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 compareFn,\n ...restProps\n } = props;\n\n const [ open, setOpen ] = useState(!!shouldOpen);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const opening = !usePrevious(open) && open;\n const elementChanged = usePrevious(element) !== element;\n const shouldReset = opening || elementChanged;\n const sortedItems = useSortedItems(items, compareFn, shouldReset);\n\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 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 <div class=\"bio-properties-panel-list-entry-header\" onClick={ toggleOpen }>\n <div\n title={ label }\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={ sortedItems }\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\n/**\n * Place new items in the beginning of the list and sort the rest with provided function.\n *\n * @template Item\n * @param {Item[]} currentItems\n * @param {(a: Item, b: Item) => 0 | 1 | -1} [compareFn] function used to sort items\n * @param {boolean} [shouldReset=false] set to `true` to reset state of the hook\n * @returns {Item[]}\n */\nfunction useSortedItems(currentItems, compareFn, shouldReset = false) {\n const itemsRef = useRef(currentItems.slice());\n\n // (1) Reset and optionally sort.\n if (shouldReset) {\n itemsRef.current = currentItems.slice();\n\n if (compareFn) {\n itemsRef.current.sort(compareFn);\n }\n } else {\n const items = itemsRef.current;\n\n // (2) Add new item to the list.\n for (const item of currentItems) {\n if (!items.includes(item)) {\n\n // Unshift or push depending on whether we have a compareFn\n compareFn ? items.unshift(item) : items.push(item);\n }\n }\n\n // (3) Filter out removed items.\n itemsRef.current = items.filter(item => currentItems.includes(item));\n }\n\n return itemsRef.current;\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/**\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 ]);\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/**\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);\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 useEffect,\n useLayoutEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport { isFunction } from 'min-dash';\nimport Tooltip from './Tooltip';\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,\n value = '',\n disabled,\n monospace,\n onFocus,\n onBlur,\n autoResize,\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 handleInputCallback = useMemo(() => {\n return debounce(({ target }) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e);\n\n autoResize && resizeToContents(e.target);\n\n setLocalValue(e.target.value);\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\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-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={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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 {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 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 ]);\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\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 rows={ rows }\n debounce={ debounce }\n monospace={ monospace }\n disabled={ disabled }\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 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 useShowEntryEvent\n} from '../../hooks';\n\nfunction Textfield(props) {\n\n const {\n debounce,\n disabled = false,\n id,\n label,\n onInput,\n onFocus,\n onBlur,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n const handleInputCallback = useMemo(() => {\n return debounce(({ target }) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\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=\"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={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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 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 ]);\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\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 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,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\n\nexport default function debounceInput(debounceDelay) {\n return function _debounceInput(fn) {\n if (debounceDelay !== false) {\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return debounce(fn, debounceTime);\n } else {\n return fn;\n }\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","export default class FeelPopupModule {\n\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._eventBus.fire('feelPopup._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 return this._eventBus.fire('feelPopup._open', {\n entryId,\n popupConfig,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n return this._eventBus.fire('feelPopup._close');\n }\n}\n\nFeelPopupModule.$inject = [ 'eventBus' ];","import feelPopup from './FeelPopupModule';\n\nexport default {\n feelPopup: [ 'type', feelPopup ]\n};\n"],"names":["Header","props","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","_jsx","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","useContext","TooltipWrapper","forId","contextDescription","value","children","prefixId","Tooltip","parent","visible","setShow","useState","focusedViaKeyboard","setFocusedViaKeyboard","timeout","wrapperRef","useRef","tooltipRef","showTooltip","event","show","MouseEvent","setTimeout","hideTooltip","hideTooltipViaEscape","e","code","isTooltipHovered","x","y","current","wrapper","inBounds","getBoundingClientRect","useEffect","hideHoveredTooltip","isFocused","document","activeElement","closest","hideFocusedTooltip","relatedTarget","isTooltipChild","el","isHovered","addEventListener","removeEventListener","renderTooltip","getTooltipPosition","stopPropagation","clearTimeout","createPortal","bounds","top","right","bottom","left","refElement","refPosition","matches","useDescriptionContext","useError","useErrors","useEvent","callback","eventContext","didMount","on","off","KEY_LENGTH","useKeyFactory","dependencies","map","useMemo","Map","getKey","key","get","Math","random","toString","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","useCallback","newValue","usePrevious","ref","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","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","requestAnimationFrame","hasOneEditedEntry","find","isEdited","entryNode","inputNode","cancelAnimationFrame","allErrors","hasErrors","some","propertiesPanelContext","classnames","component","Component","_createElement","DataMarker","Placeholder","text","icon","Icon","Description","noop","useBufferedFocus","editor","buffer","setBuffer","undefined","offset","Infinity","CodeEditor","forwardRef","onInput","disabled","tooltipContainer","enableGutters","onLint","onPopupOpen","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","localValue","setLocalValue","handleInput","FeelersEditor","container","onChange","innerHTML","setValue","handleClick","classNames","name","onFeelToggle","variables","onKeyDown","selection","getSelection","range","ranges","mainIndex","from","to","FeelEditor","extensions","lineNumbers","setVariables","FeelIndicator","active","FeelIcon","feel","onClick","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","FeelPopupContext","close","source","createDragger","fn","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","call","domify","PopupComponent","globalRef","className","delayInitialFocus","position","width","height","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","title","focusTrapRef","localRef","popupRef","containerNode","getContainerNode","handleKeydown","handleFocus","activate","style","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","body","Popup","Title","Body","Footer","draggable","emit","rest","context","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","onMoveEnd","node","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FEELPopupRoot","fire","popupContainer","prevElement","popupConfig","setPopupConfig","setSource","sourceElement","setSourceElement","isOpen","useUpdateEffect","handleOpen","entryId","config","_sourceElement","handleClose","feelPopupContext","handlePopupOpen","handleIsOpen","FeelPopupComponent","editorRef","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","target","domNode","TemplatingEditor","querySelector","effect","deps","isMounted","ToggleSwitch","switcherLabel","inline","onFocus","onBlur","handleInputCallback","ToggleSwitchEntry","getValue","checked","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","error","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","_setLocalValue","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","openPopup","popupSource","popuOpen","setFocus","hasFocus","contains","selectionStart","handleFeelToggle","handleLocalInput","handleLint","lint","length","message","popupOptions","calculatePopupPosition","getPopupTitle","copyHandler","clipboardData","setData","getData","pasteHandler","data","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","handleChange","FeelEntry","example","validationError","setValidationError","err","temporaryError","class","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","popupTitle","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","feelPopupContainer","createLayout","useUpdateLayoutEffect","newLayout","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","FeelPopupRoot","group","overrides","defaults","useLayoutEffect","DropdownButton","menuItems","dropdownRef","menuRef","onDropdownToggle","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","CollapsibleEntry","remove","placeholderLabel","ListItem","autoFocusEntry","autoOpen","focusableInput","ListGroup","add","items","shouldSort","ordering","setOrdering","newItemAdded","setNewItemAdded","addTriggered","setAddTriggered","prevItems","elementChanged","shouldHandleEffects","createOrdering","sortItems","includes","push","newOrdering","filter","unshift","keep","o","getItem","hasItems","handleAddClick","hasError","sortBy","i","toLowerCase","Checkbox","handleChangeCallback","CheckboxEntry","TemplatingEntry","Templating","severity","prefixIdLabel","List","onAdd","onRemove","compareFn","restProps","opening","shouldReset","sortedItems","useSortedItems","newItems","useNewItems","addItem","ItemsList","newItem","selector","currentItems","itemsRef","sort","previousItems","Select","options","option","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","autoResize","rows","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","_debounceInput","debounceTime","isNumber","$inject","FeelPopupModule","constructor","_eventBus","feelPopup"],"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/LayoutContext.js","../src/context/TooltipContext.js","../src/hooks/useTooltipContext.js","../src/components/entries/Tooltip.js","../src/hooks/useDescriptionContext.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/components/Group.js","../src/components/Placeholder.js","../src/components/entries/Description.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/entries/FEEL/context/FeelPopupContext.js","../src/components/util/dragger.js","../src/components/Popup.js","../src/components/entries/FEEL/FeelPopup.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Checkbox.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/features/feel-popup/FeelPopupModule.js","../src/features/feel-popup/index.js"],"sourcesContent":["import { ExternalLinkIcon } from './icons';\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 title={ type } class=\"bio-properties-panel-header-type\">{ type }</div>\n { label ?\n <div title={ label } 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=\"noopener\"\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\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 useEffect,\n useState\n} from 'preact/hooks';\n\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\n\nimport { createPortal } from 'preact/compat';\n\n/**\n * @param {Object} props\n * @param {String} props.forId\n * @param {String} props.value\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={ prefixId(forId) } />;\n}\n\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent\n } = props;\n\n const [ visible, setShow ] = useState(false);\n const [ focusedViaKeyboard, setFocusedViaKeyboard ] = useState(false);\n\n let timeout = null;\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const showTooltip = async (event) => {\n const show = () => setShow(true);\n\n if (!visible && !timeout) {\n if (event instanceof MouseEvent) {\n timeout = setTimeout(show, 200);\n } else {\n show();\n setFocusedViaKeyboard(true);\n }\n }\n };\n\n const hideTooltip = () => {\n setShow(false);\n setFocusedViaKeyboard(false);\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hideTooltip();\n };\n\n const isTooltipHovered = ({ x, y }) => {\n const tooltip = tooltipRef.current;\n const wrapper = wrapperRef.current;\n\n return tooltip && (\n inBounds(x, y, wrapper.getBoundingClientRect()) ||\n inBounds(x, y, tooltip.getBoundingClientRect())\n );\n };\n\n useEffect(() => {\n const { current } = wrapperRef;\n\n if (!current) {\n return;\n }\n\n const hideHoveredTooltip = (e) => {\n const isFocused = document.activeElement === wrapperRef.current\n || document.activeElement.closest('.bio-properties-panel-tooltip');\n\n if (visible && !isTooltipHovered({ x: e.x, y: e.y }) && !(isFocused && focusedViaKeyboard)) {\n hideTooltip();\n }\n };\n\n const hideFocusedTooltip = (e) => {\n const { relatedTarget } = e;\n const isTooltipChild = (el) => !!el.closest('.bio-properties-panel-tooltip');\n\n\n if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {\n hideTooltip();\n }\n };\n\n document.addEventListener('wheel', hideHoveredTooltip);\n document.addEventListener('focusout', hideFocusedTooltip);\n document.addEventListener('mousemove', hideHoveredTooltip);\n\n return () => {\n document.removeEventListener('wheel', hideHoveredTooltip);\n document.removeEventListener('mousemove', hideHoveredTooltip);\n document.removeEventListener('focusout', hideFocusedTooltip);\n };\n }, [ wrapperRef.current, visible, focusedViaKeyboard ]);\n\n const renderTooltip = () => {\n return (\n <div\n class=\"bio-properties-panel-tooltip\"\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ getTooltipPosition(wrapperRef.current) }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\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={ showTooltip }\n onMouseLeave={ ()=> {\n clearTimeout(timeout);\n timeout = null;\n } }\n onFocus={ showTooltip }\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\nfunction inBounds(x, y, bounds) {\n const { top, right, bottom, left } = bounds;\n return x >= left && x <= right && y >= top && y <= bottom;\n}\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\nfunction isHovered(element) {\n return element.matches(':hover');\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\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 { 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\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 {\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/**\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 title={ props.tooltip ? null : label }\n data-title={ label }\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 data\" 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 useDescriptionContext\n} from '../../hooks';\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 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 { ExternalLinkIcon } from '../../icons';\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 CodeEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onPopupOpen = 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 });\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 <div class=\"bio-properties-panel-feelers-editor__open-popup-placeholder\">Opened in editor</div>\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\n <button\n type=\"button\"\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen('feelers') }><ExternalLinkIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport FeelEditor from '@bpmn-io/feel-editor';\n\nimport { lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { PopupIcon } from '../../icons';\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 CodeEditor = forwardRef((props, ref) => {\n\n const {\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop,\n onLint = noop,\n onPopupOpen = noop,\n popupOpen,\n disabled,\n tooltipContainer,\n variables\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 /* 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 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 FeelEditor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables: variables,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : []\n ]\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 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 <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\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 <button\n type=\"button\"\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen() }><PopupIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","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\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}","import {\n createContext\n} from 'preact';\n\nconst FeelPopupContext = createContext({\n open: () => {},\n close: () => {},\n source: null\n});\n\nexport default FeelPopupContext;","import { domify } from 'min-dom';\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 { createPortal, forwardRef } from 'preact/compat';\n\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport { query as domQuery } from 'min-dom';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon } from './icons';\n\nimport { createDragger } from './util/dragger';\n\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {HTMLElement} [props.container]\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{x: number, y: 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\n const {\n container,\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 containerNode = useMemo(() => getContainerNode(container), [ container ]);\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 () => { popupRef.current.removeEventListener('focusin', handleFocus); };\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 createPortal(\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 }>{ props.children }</div>\n , containerNode || document.body\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 emit = () => {},\n title,\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 // notify interested parties\n emit('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 // notify interested parties\n emit('dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n // notify interested parties\n emit('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 { draggable && (\n <>\n <div ref={ dragPreviewRef } class=\"bio-properties-panel-popup__drag-preview\"></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 </div>\n );\n}\n\nfunction Body(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__body', className) } { ...rest }>\n { children }\n </div>\n );\n}\n\nfunction Footer(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__footer', className) } { ...rest }>\n { props.children }\n </div>\n );\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\nfunction getContainerNode(node) {\n if (typeof node === 'string') {\n return domQuery(node);\n }\n\n return node;\n}","import {\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { FeelPopupContext } from './context';\n\nimport { usePrevious } from '../../../hooks';\n\nimport { Popup } from '../../Popup';\n\nimport CodeEditor from './FeelEditor';\n\nimport TemplatingEditor from '../templating/TemplatingEditor';\nimport { HelpIcon } from '../../icons';\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n\n/**\n * FEEL popup component, built as a singleton. Emits lifecycle events as follows:\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\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport default function FEELPopupRoot(props) {\n const {\n element,\n eventBus = { fire() {}, on() {}, off() {} },\n popupContainer\n } = props;\n\n const prevElement = usePrevious(element);\n\n const [ popupConfig, setPopupConfig ] = useState({});\n const [ open, setOpen ] = useState(false);\n const [ source, setSource ] = useState(null);\n const [ sourceElement, setSourceElement ] = useState(null);\n\n const emit = (type, context) => {\n eventBus.fire('feelPopup.' + type, context);\n };\n\n const isOpen = useCallback(() => {\n return !!open;\n }, [ open ]);\n\n useUpdateEffect(() => {\n if (!open) {\n emit('closed');\n }\n }, [ open ]);\n\n const handleOpen = (entryId, config, _sourceElement) => {\n setSource(entryId);\n setPopupConfig(config);\n setOpen(true);\n setSourceElement(_sourceElement);\n emit('open');\n };\n\n const handleClose = () => {\n setOpen(false);\n setSource(null);\n };\n\n const feelPopupContext = {\n open: handleOpen,\n close: handleClose,\n source\n };\n\n // close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270\n useEffect(() => {\n if (element && prevElement && element !== prevElement) {\n handleClose();\n }\n }, [ element ]);\n\n // allow close and open via events\n useEffect(() => {\n\n const handlePopupOpen = (context) => {\n const {\n entryId,\n popupConfig,\n sourceElement\n } = context;\n\n handleOpen(entryId, popupConfig, sourceElement);\n };\n\n const handleIsOpen = () => {\n return isOpen();\n };\n\n eventBus.on('feelPopup._close', handleClose);\n eventBus.on('feelPopup._open', handlePopupOpen);\n eventBus.on('feelPopup._isOpen', handleIsOpen);\n\n return () => {\n eventBus.off('feelPopup._close', handleClose);\n eventBus.off('feelPopup._open', handleOpen);\n eventBus.off('feelPopup._isOpen', handleIsOpen);\n };\n\n }, [ eventBus, isOpen ]);\n\n return (\n <FeelPopupContext.Provider value={ feelPopupContext }>\n { open && (\n <FeelPopupComponent\n onClose={ handleClose }\n container={ popupContainer }\n sourceElement={ sourceElement }\n emit={ emit }\n { ...popupConfig } />\n )}\n { props.children }\n </FeelPopupContext.Provider>\n );\n}\n\nfunction FeelPopupComponent(props) {\n const {\n container,\n id,\n hostLanguage,\n onInput,\n onClose,\n position,\n singleLine,\n sourceElement,\n title,\n tooltipContainer,\n type,\n value,\n variables,\n emit\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\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n // we need to do check this because the editor is not\n // stop propagating the keydown event\n // cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n emit('opened', { domNode: popupRef.current });\n return () => emit('close', { domNode: popupRef.current });\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 container={ container }\n className=\"bio-properties-panel-feel-popup\"\n emit={ emit }\n position={ position }\n title={ title }\n onClose={ onClose }\n\n // handle focus manually on deactivate\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 emit={ emit }\n draggable>\n {type === 'feel' && (\n <a href=\"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\n Learn FEEL expressions\n <HelpIcon />\n </a>\n )\n }\n {type === 'feelers' && (\n <a href=\"https://docs.camunda.io/docs/components/modeler/forms/configuration/forms-config-templating-syntax/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\n Learn templating\n <HelpIcon />\n </a>\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 {\n type === 'feel' && (\n <CodeEditor\n enableGutters={ true }\n id={ prefixId(id) }\n name={ id }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n\n {\n type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(id) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ id }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n </div>\n </Popup.Body>\n <Popup.Footer>\n <button\n type=\"button\"\n onClick={ onClose }\n title=\"Close pop-up editor\"\n class=\"bio-properties-panel-feel-popup__close-btn\">Close</button>\n </Popup.Footer>\n </Popup>\n );\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');\n}\n\n/**\n * This hook behaves like useEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\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\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';\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\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 } = 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 && <label for={ prefixId(id) } class=\"bio-properties-panel-label\">{ label }</label> }\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 } = 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 ]);\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 { 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 useMemo,\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 useShowEntryEvent,\n useError,\n useStaticCallback\n} from '../../../hooks';\n\nimport CodeEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { FEEL_POPUP_WIDTH } from './FeelPopup';\n\nimport { FeelPopupContext } from './context';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\nconst noop = () => { };\n\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\n onError,\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(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const feelActive = (isString(localValue) && localValue.startsWith('=')) || feel === 'required';\n const feelOnlyValue = (isString(localValue) && localValue.startsWith('=')) ? localValue.substring(1) : localValue;\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const {\n open: openPopup,\n source: popupSource\n } = useContext(FeelPopupContext);\n\n const popuOpen = popupSource === id;\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) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const setLocalValue = newValue => {\n _setLocalValue(newValue);\n\n if (typeof newValue === 'undefined' || newValue === '' || newValue === '=') {\n handleInputCallback(undefined);\n } else {\n handleInputCallback(newValue);\n }\n\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleLint = useStaticCallback(lint => {\n\n if (!(lint && lint.length)) {\n onError(undefined);\n return;\n }\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n const handlePopupOpen = (type = 'feel') => {\n const popupOptions = {\n id,\n hostLanguage,\n onInput: handleLocalInput,\n position: calculatePopupPosition(containerRef.current),\n singleLine,\n title: getPopupTitle(element, label),\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n };\n\n openPopup(id, popupOptions, editorRef.current);\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\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 || popuOpen) {\n return;\n }\n\n const data = event.clipboardData.getData('application/FEEL');\n\n if (data) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\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={ feel !== 'optional' || disabled }\n onClick={ handleFeelToggle }\n />\n {feelActive ?\n <CodeEditor\n id={ prefixId(id) }\n name={ id }\n onInput={ handleLocalInput }\n disabled={ disabled }\n popupOpen={ popuOpen }\n onFeelToggle={ () => { handleFeelToggle(); setFocus(true); } }\n onLint={ handleLint }\n onPopupOpen={ handlePopupOpen }\n value={ feelOnlyValue }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ popuOpen }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onPopupOpen={ handlePopupOpen }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\nconst OptionalFeelInput = 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 // 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 onBlur={ onBlur }\n value={ value || '' } />;\n});\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\n\nconst OptionalFeelTextArea = 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 // 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 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\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 * @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 {Boolean} 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 {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\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 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 ]);\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 = 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 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 {Boolean} 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 {Function} 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 {Boolean} 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 {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\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 {Boolean} 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 {Function} 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 {Boolean} 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 {Function} 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 {Boolean} 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 {Function} 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\nfunction calculatePopupPosition(element) {\n const { top, left } = element.getBoundingClientRect();\n\n return {\n left: left - FEEL_POPUP_WIDTH - 20,\n top: top\n };\n}\n\n// todo(pinussilvestrus): make this configurable in the future\nfunction getPopupTitle(element, label) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\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 { FeelPopupRoot } from './components/entries/FEEL';\n\nimport { useEvent } from './hooks';\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 * shouldSort?: Boolean,\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 {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 feelPopupContainer,\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 const newLayout = assign({}, layout);\n set(newLayout, key, config);\n setLayout(newLayout);\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 <FeelPopupRoot\n element={ element }\n eventBus={ eventBus }\n popupContainer={ feelPopupContainer }>\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 </FeelPopupRoot>\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/**\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\nexport function HeaderButton(props) {\n const {\n children = null,\n class: classname,\n onClick = () => {},\n ...otherProps\n } = props;\n\n return <button\n type=\"button\"\n { ...otherProps }\n onClick={ onClick }\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\n { children }\n </button>;\n}\n","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove\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 // todo(pinussilvestrus): translate once we have a translate mechanism for the core\n const placeholderLabel = '<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 title={ label || placeholderLabel }\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=\"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=\"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';\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen\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 }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen } />\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 find,\n sortBy\n} from 'min-dash';\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\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 = true,\n shouldSort = true\n } = props;\n\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n false\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ ordering, setOrdering ] = useState([]);\n const [ newItemAdded, setNewItemAdded ] = useState(false);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevItems = usePrevious(items);\n const prevElement = usePrevious(element);\n\n const elementChanged = element !== prevElement;\n const shouldHandleEffects = !elementChanged && (shouldSort || shouldOpen);\n\n // reset initial ordering when element changes (before first render)\n if (elementChanged) {\n setOrdering(createOrdering(shouldSort ? sortItems(items) : items));\n }\n\n // keep ordering in sync to items - and open changes\n\n // (0) set initial ordering from given items\n useEffect(() => {\n if (!prevItems || !shouldSort) {\n setOrdering(createOrdering(items));\n }\n }, [ items, element ]);\n\n // (1) items were added\n useEffect(() => {\n\n // reset addTriggered flag\n setAddTriggered(false);\n\n if (shouldHandleEffects && prevItems && items.length > prevItems.length) {\n\n let add = [];\n\n items.forEach(item => {\n if (!ordering.includes(item.id)) {\n add.push(item.id);\n }\n });\n\n let newOrdering = ordering;\n\n // open if not open, configured and triggered by add button\n //\n // TODO(marstamm): remove once we refactor layout handling for listGroups.\n // Ideally, opening should be handled as part of the `add` callback and\n // not be a concern for the ListGroup component.\n if (addTriggered && !open && shouldOpen) {\n toggleOpen();\n }\n\n // filter when not open and configured\n if (!open && shouldSort) {\n newOrdering = createOrdering(sortItems(items));\n }\n\n // add new items on top or bottom depending on sorting behavior\n newOrdering = newOrdering.filter(item => !add.includes(item));\n if (shouldSort) {\n newOrdering.unshift(...add);\n } else {\n newOrdering.push(...add);\n }\n\n setOrdering(newOrdering);\n setNewItemAdded(addTriggered);\n } else {\n setNewItemAdded(false);\n }\n }, [ items, open, shouldHandleEffects, addTriggered ]);\n\n // (2) sort items on open if shouldSort is set\n useEffect(() => {\n\n if (shouldSort && open && !newItemAdded) {\n setOrdering(createOrdering(sortItems(items)));\n }\n }, [ open, shouldSort ]);\n\n // (3) items were deleted\n useEffect(() => {\n if (shouldHandleEffects && prevItems && items.length < prevItems.length) {\n let keep = [];\n\n ordering.forEach(o => {\n if (getItem(items, o)) {\n keep.push(o);\n }\n });\n\n setOrdering(keep);\n }\n }, [ items, shouldHandleEffects ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const toggleOpen = () => setOpen(!open);\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 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 title={ props.tooltip ? null : label }\n data-title={ label }\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=\"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\">Create</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ `List contains ${items.length} item${items.length != 1 ? 's' : ''}` }\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=\"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 ordering.map((o, index) => {\n const item = getItem(items, o);\n\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 is only applied on first render\n const autoOpen = newItemAdded;\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\n// helpers ////////////////////\n\n/**\n * Sorts given items alphanumeric by label\n */\nfunction sortItems(items) {\n return sortBy(items, i => i.label.toLowerCase());\n}\n\nfunction getItem(items, id) {\n return find(items, i => i.id === id);\n}\n\nfunction createOrdering(items) {\n return items.map(i => i.id);\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\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 { 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\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 ]);\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 useRef,\n useState\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} from '../../hooks';\n\nimport classnames from 'classnames';\n\nimport {\n ArrowIcon,\n CreateIcon,\n DeleteIcon\n} from '../icons';\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 * @param {(a: Item, b: Item) => -1 | 0 | 1} [props.compareFn]\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 compareFn,\n ...restProps\n } = props;\n\n const [ open, setOpen ] = useState(!!shouldOpen);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const opening = !usePrevious(open) && open;\n const elementChanged = usePrevious(element) !== element;\n const shouldReset = opening || elementChanged;\n const sortedItems = useSortedItems(items, compareFn, shouldReset);\n\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 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 <div class=\"bio-properties-panel-list-entry-header\" onClick={ toggleOpen }>\n <div\n title={ label }\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={ sortedItems }\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\n/**\n * Place new items in the beginning of the list and sort the rest with provided function.\n *\n * @template Item\n * @param {Item[]} currentItems\n * @param {(a: Item, b: Item) => 0 | 1 | -1} [compareFn] function used to sort items\n * @param {boolean} [shouldReset=false] set to `true` to reset state of the hook\n * @returns {Item[]}\n */\nfunction useSortedItems(currentItems, compareFn, shouldReset = false) {\n const itemsRef = useRef(currentItems.slice());\n\n // (1) Reset and optionally sort.\n if (shouldReset) {\n itemsRef.current = currentItems.slice();\n\n if (compareFn) {\n itemsRef.current.sort(compareFn);\n }\n } else {\n const items = itemsRef.current;\n\n // (2) Add new item to the list.\n for (const item of currentItems) {\n if (!items.includes(item)) {\n\n // Unshift or push depending on whether we have a compareFn\n compareFn ? items.unshift(item) : items.push(item);\n }\n }\n\n // (3) Filter out removed items.\n itemsRef.current = items.filter(item => currentItems.includes(item));\n }\n\n return itemsRef.current;\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/**\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 ]);\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/**\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 useEffect,\n useLayoutEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport { isFunction } from 'min-dash';\nimport Tooltip from './Tooltip';\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,\n value = '',\n disabled,\n monospace,\n onFocus,\n onBlur,\n autoResize,\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 handleInputCallback = useMemo(() => {\n return debounce((target) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n\n autoResize && resizeToContents(e.target);\n\n setLocalValue(e.target.value);\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\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-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={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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 {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 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 ]);\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\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 rows={ rows }\n debounce={ debounce }\n monospace={ monospace }\n disabled={ disabled }\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 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 useShowEntryEvent\n} from '../../hooks';\n\nfunction Textfield(props) {\n\n const {\n debounce,\n disabled = false,\n id,\n label,\n onInput,\n onFocus,\n onBlur,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => onInput(target.value.length ? target.value : undefined));\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-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={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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 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 ]);\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\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 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,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\n\nexport default function debounceInput(debounceDelay) {\n return function _debounceInput(fn) {\n if (debounceDelay !== false) {\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return debounce(fn, debounceTime);\n } else {\n return fn;\n }\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","export default class FeelPopupModule {\n\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._eventBus.fire('feelPopup._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 return this._eventBus.fire('feelPopup._open', {\n entryId,\n popupConfig,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n return this._eventBus.fire('feelPopup._close');\n }\n}\n\nFeelPopupModule.$inject = [ 'eventBus' ];","import feelPopup from './FeelPopupModule';\n\nexport default {\n feelPopup: [ 'type', feelPopup ]\n};\n"],"names":["Header","props","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","class","children","_jsx","width","height","viewBox","title","rel","href","target","ExternalLinkIcon","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","useContext","TooltipWrapper","forId","contextDescription","value","Tooltip","prefixId","parent","visible","setShow","useState","focusedViaKeyboard","setFocusedViaKeyboard","timeout","wrapperRef","useRef","tooltipRef","showTooltip","event","show","MouseEvent","setTimeout","hideTooltip","hideTooltipViaEscape","e","code","isTooltipHovered","x","y","current","wrapper","inBounds","getBoundingClientRect","useEffect","hideHoveredTooltip","isFocused","document","activeElement","closest","hideFocusedTooltip","relatedTarget","isTooltipChild","el","isHovered","addEventListener","removeEventListener","renderTooltip","role","style","getTooltipPosition","ref","onClick","stopPropagation","tabIndex","onMouseEnter","onMouseLeave","clearTimeout","onFocus","onKeyDown","createPortal","bounds","top","right","bottom","left","refElement","refPosition","matches","useDescriptionContext","useError","useErrors","useEvent","callback","eventContext","didMount","on","off","KEY_LENGTH","useKeyFactory","dependencies","map","useMemo","Map","getKey","key","get","Math","random","toString","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","useCallback","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","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","requestAnimationFrame","hasOneEditedEntry","find","isEdited","entryNode","inputNode","cancelAnimationFrame","allErrors","hasErrors","some","propertiesPanelContext","classnames","DataMarker","ArrowIcon","Provider","component","Component","_createElement","Placeholder","text","icon","Icon","Description","noop","useBufferedFocus","editor","buffer","setBuffer","undefined","offset","Infinity","CodeEditor","forwardRef","onInput","disabled","tooltipContainer","enableGutters","onLint","onPopupOpen","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","localValue","setLocalValue","handleInput","FeelersEditor","container","onChange","innerHTML","setValue","handleClick","classNames","name","onFeelToggle","variables","selection","getSelection","range","ranges","mainIndex","from","to","FeelEditor","extensions","lineNumbers","setVariables","PopupIcon","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","FeelPopupContext","close","source","createDragger","fn","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","call","domify","PopupComponent","globalRef","className","delayInitialFocus","position","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","containerNode","getContainerNode","handleKeydown","handleFocus","activate","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","body","Popup","Title","Body","Footer","draggable","emit","rest","context","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","onMoveEnd","onDragEnd","_Fragment","DragIcon","node","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FEELPopupRoot","fire","popupContainer","prevElement","popupConfig","setPopupConfig","setSource","sourceElement","setSourceElement","isOpen","useUpdateEffect","handleOpen","entryId","config","_sourceElement","handleClose","feelPopupContext","handlePopupOpen","handleIsOpen","FeelPopupComponent","editorRef","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","domNode","HelpIcon","TemplatingEditor","querySelector","effect","deps","isMounted","ToggleSwitch","switcherLabel","inline","onBlur","handleInputCallback","for","checked","ToggleSwitchEntry","getValue","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","error","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","_setLocalValue","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","openPopup","popupSource","popuOpen","setFocus","hasFocus","contains","selectionStart","handleFeelToggle","handleLocalInput","handleLint","lint","length","message","popupOptions","calculatePopupPosition","getPopupTitle","copyHandler","clipboardData","setData","getData","pasteHandler","data","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","handleChange","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","popupTitle","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","feelPopupContainer","createLayout","useUpdateLayoutEffect","newLayout","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","FeelPopupRoot","group","overrides","defaults","useLayoutEffect","DropdownButton","menuItems","dropdownRef","menuRef","onDropdownToggle","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","CollapsibleEntry","remove","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","ListGroup","add","items","shouldSort","ordering","setOrdering","newItemAdded","setNewItemAdded","addTriggered","setAddTriggered","prevItems","elementChanged","shouldHandleEffects","createOrdering","sortItems","includes","push","newOrdering","filter","unshift","keep","o","getItem","hasItems","handleAddClick","hasError","CreateIcon","sortBy","i","toLowerCase","Checkbox","handleChangeCallback","CheckboxEntry","TemplatingEntry","Templating","severity","prefixIdLabel","List","onAdd","onRemove","compareFn","restProps","opening","shouldReset","sortedItems","useSortedItems","newItems","useNewItems","addItem","ItemsList","newItem","selector","currentItems","itemsRef","sort","previousItems","Select","options","option","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","autoResize","rows","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","_debounceInput","debounceTime","isNumber","$inject","FeelPopupModule","constructor","_eventBus","feelPopup"],"mappings":"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"}
|