@bpmn-io/properties-panel 3.28.1 → 3.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +28 -34
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +27 -32
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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/hooks/useElementVisible.js","../src/components/Group.js","../src/components/Placeholder.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/util/translateFallback.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Description.js","../src/components/entries/Checkbox.js","../src/components/OpenPopupButton.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/components/util/dragger.js","../src/features/feel-popup/components/Popup.js","../src/features/feel-popup/components/FeelPopup.js","../src/features/feel-popup/components/helpers.js","../src/features/feel-popup/FeelPopup.js","../src/features/feel-popup/FeelPopupRenderer.js","../src/features/feel-popup/index.js"],"sourcesContent":["import { ExternalLinkIcon } from './icons';\n\n/**\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=\"noreferrer\"\n class=\"bio-properties-panel-header-link\"\n href={ documentationRef }\n title=\"Open documentation\"\n target=\"_blank\">\n <ExternalLinkIcon />\n </a> :\n null\n }\n </div>\n </div>);\n}","import {\n createContext\n} from 'preact';\n\nconst DescriptionContext = createContext({\n description: {},\n getDescriptionForId: () => {}\n});\n\nexport default DescriptionContext;\n","import {\n createContext\n} from 'preact';\n\nconst ErrorsContext = createContext({\n errors: {}\n});\n\nexport default ErrorsContext;","/**\n * @typedef {Function} <propertiesPanel.showEntry> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\n/**\n * @typedef {Function} <propertiesPanel.showError> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {string} context.message\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\nimport { createContext } from 'preact';\n\nconst EventContext = createContext({ eventBus: null });\n\nexport default EventContext;\n","import {\n createContext\n} from 'preact';\n\nconst LayoutContext = createContext({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nexport default LayoutContext;","import {\n createContext\n} from 'preact';\n\nconst TooltipContext = createContext({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\nexport default TooltipContext;\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n TooltipContext\n} from '../context';\n\n/**\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const tooltip = useTooltipContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = useContext(TooltipContext);\n\n return getTooltipForId(id, element);\n}\n","import {\n useRef,\n useState\n} 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={ `bio-properties-panel-${ forId }` } />;\n}\n\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent,\n direction = 'right',\n position\n } = props;\n\n const [ visible, setVisible ] = useState(false);\n\n // Tooltip will be shown after SHOW_DELAY ms from hovering over the source element.\n const SHOW_DELAY = 200;\n let timeout = null;\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const show = (_, delay) => {\n if (visible) return;\n\n if (delay) {\n timeout = setTimeout(() => {\n setVisible(true);\n }, SHOW_DELAY);\n } else {\n setVisible(true);\n }\n };\n\n const hide = () => {\n clearTimeout(timeout);\n setVisible(false);\n };\n\n const handleMouseLeave = ({ relatedTarget }) => {\n\n // Don't hide the tooltip when moving mouse between the wrapper and the tooltip.\n if (relatedTarget === wrapperRef.current || relatedTarget === tooltipRef.current || relatedTarget?.parentElement === tooltipRef.current) {\n return;\n }\n\n hide();\n };\n\n const handleFocusOut = (e) => {\n const { target } = e;\n\n // Don't hide the tooltip if the wrapper or the tooltip itself is clicked.\n const isHovered = target.matches(':hover') || tooltipRef.current?.matches(':hover');\n\n if (target === wrapperRef.current && isHovered) {\n e.stopPropagation();\n return;\n }\n\n hide();\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hide();\n };\n\n const renderTooltip = () => {\n return (\n <div\n class={ `bio-properties-panel-tooltip ${direction}` }\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ position || getTooltipPosition(wrapperRef.current) }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\n onMouseLeave={ handleMouseLeave }\n >\n <div class=\"bio-properties-panel-tooltip-content\">\n {value}\n </div>\n <div class=\"bio-properties-panel-tooltip-arrow\" />\n </div>\n );};\n\n return (\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\n ref={ wrapperRef }\n onMouseEnter={ (e) => show(e, true) }\n onMouseLeave={ handleMouseLeave }\n onFocus={ show }\n onBlur={ handleFocusOut }\n onKeyDown={ hideTooltipViaEscape }\n >\n {props.children}\n {visible ?\n (parent ?\n createPortal(renderTooltip(), parent.current)\n : renderTooltip()\n ) : null\n }\n </div>\n );\n}\n\n\n// helper\n\nfunction getTooltipPosition(refElement) {\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n const top = `${refPosition.top - 10}px`;\n\n return `right: ${right}; top: ${top};`;\n}\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n DescriptionContext\n} from '../context';\n\n/**\n * Accesses the global DescriptionContext and returns a description for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const description = useDescriptionContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = useContext(DescriptionContext);\n\n return getDescriptionForId(id, element);\n}\n","import { 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 { useLayoutEffect, useState } from 'preact/hooks';\n\nexport function useElementVisible(element) {\n\n const [ visible, setVisible ] = useState(!!element && !!element.clientHeight);\n\n useLayoutEffect(() => {\n if (!element) return;\n\n const resizeObserver = new ResizeObserver(([ entry ]) => {\n requestAnimationFrame(() => {\n const newVisible = !!entry.contentRect.height;\n if (newVisible !== visible) {\n setVisible(newVisible);\n }\n });\n });\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, [ element, visible ]);\n\n return visible;\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport {\n isFunction\n} from 'min-dash';\n\nimport {\n useErrors,\n useLayoutState\n} from '../hooks';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport { ArrowIcon } from './icons';\n\n/**\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 useState,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport {\n assign,\n get,\n isArray,\n set\n} from 'min-dash';\n\nimport Header from './components/Header';\n\nimport Group from './components/Group';\n\nimport Placeholder from './components/Placeholder';\n\nimport {\n DescriptionContext,\n ErrorsContext,\n EventContext,\n LayoutContext,\n PropertiesPanelContext,\n TooltipContext\n} from './context';\n\nimport { useEvent } from './hooks';\n\nconst DEFAULT_LAYOUT = {};\n\nconst DEFAULT_DESCRIPTION = {};\n\nconst DEFAULT_TOOLTIP = {};\n\n\n/**\n * @typedef { {\n * component: import('preact').Component,\n * id: String,\n * isEdited?: Function\n * } } EntryDefinition\n *\n * @typedef { {\n * autoFocusEntry: String,\n * autoOpen?: Boolean,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * remove: (event: MouseEvent) => void\n * } } ListItemDefinition\n *\n * @typedef { {\n * add: (event: MouseEvent) => void,\n * component: import('preact').Component,\n * element: Object,\n * id: String,\n * items: Array<ListItemDefinition>,\n * label: String,\n * shouldOpen?: Boolean\n * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean\n * } } GroupDefinition\n *\n * @typedef { {\n * [id: String]: GetDescriptionFunction\n * } } DescriptionConfig\n *\n * @typedef { {\n * [id: String]: GetTooltipFunction\n * } } TooltipConfig\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetDescriptionFunction\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetTooltipFunction\n *\n * @typedef { {\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\n * } } PlaceholderProvider\n *\n */\n\n\n/**\n * A basic properties panel component. Describes *how* content will be rendered, accepts\n * data from implementor to describe *what* will be rendered.\n *\n * @param {Object} props\n * @param {Object|Array} props.element\n * @param {import('./components/Header').HeaderProvider} props.headerProvider\n * @param {PlaceholderProvider} [props.placeholderProvider]\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\n * @param {Object} [props.layoutConfig]\n * @param {Function} [props.layoutChanged]\n * @param {DescriptionConfig} [props.descriptionConfig]\n * @param {Function} [props.descriptionLoaded]\n * @param {TooltipConfig} [props.tooltipConfig]\n * @param {Function} [props.tooltipLoaded]\n * @param {HTMLElement} [props.feelPopupContainer]\n * @param {Function} [props.getFeelPopupLinks]\n * @param {Object} [props.eventBus]\n */\nexport default function PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n eventBus\n } = props;\n\n // set-up layout context\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n\n setLayout(newLayout);\n }, [ layoutConfig ]);\n\n useEffect(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [ layout, layoutChanged ]);\n\n const getLayoutForKey = (key, defaultValue) => {\n return get(layout, key, defaultValue);\n };\n\n const setLayoutForKey = (key, config) => {\n 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 <div class=\"bio-properties-panel\">\n <Header\n element={ element }\n headerProvider={ headerProvider } />\n <div class=\"bio-properties-panel-scroll-container\">\n {\n groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n\n return (\n <Component\n { ...group }\n key={ id }\n element={ element } />\n );\n })\n }\n </div>\n </div>\n </EventContext.Provider>\n </LayoutContext.Provider>\n </TooltipContext.Provider>\n </DescriptionContext.Provider>\n </ErrorsContext.Provider>\n </PropertiesPanelContext.Provider>\n );\n}\n\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\n\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\n\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useLayoutEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\n/**\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","/**\n * @typedef { {\n * [key: string]: string;\n * } } TranslateReplacements\n */\n\n/**\n * A simple translation stub to be used for multi-language support.\n * Can be easily replaced with a more sophisticated solution.\n *\n * @param {string} template to interpolate\n * @param {TranslateReplacements} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nexport default function translateFallback(template, replacements) {\n\n replacements = replacements || {};\n\n return template.replace(/{([^}]+)}/g, function(_, key) {\n return replacements[key] || '{' + key + '}';\n });\n}","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\nimport translateFallback from '../util/translateFallback';\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove,\n translate = translateFallback\n } = props;\n\n const [ open, setOpen ] = useState(shouldOpen);\n\n const toggleOpen = () => setOpen(!open);\n\n const { onShow } = useContext(PropertiesPanelContext);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow: useCallback(() => {\n setOpen(true);\n\n if (isFunction(onShow)) {\n onShow();\n }\n }, [ onShow, setOpen ])\n };\n\n\n const placeholderLabel = translate('<empty>');\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-collapsible-entry',\n open ? 'open' : ''\n ) }>\n <div class=\"bio-properties-panel-collapsible-entry-header\" onClick={ toggleOpen }>\n <div\n 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={ translate('Toggle list item') }\n class=\"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n {\n remove\n ?\n (\n <button type=\"button\" title={ translate('Delete item') } class=\"bio-properties-panel-remove-entry\" onClick={ remove }>\n <DeleteIcon />\n </button>\n )\n : null\n }\n </div>\n <div class={ classnames(\n 'bio-properties-panel-collapsible-entry-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>\n );\n}","import {\n useEffect\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport CollapsibleEntry from './entries/Collapsible';\nimport translateFallback from './util/translateFallback';\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen,\n translate = translateFallback\n } = props;\n\n // focus specified entry on auto open\n useEffect(() => {\n if (autoOpen && autoFocusEntry) {\n const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\n\n const focusableInput = domQuery('.bio-properties-panel-input', entry);\n\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n focusableInput.scrollIntoView();\n }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen }\n translate={ translate }\n />\n </div>\n );\n\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n useErrors,\n useLayoutState,\n usePrevious\n} from '../hooks';\n\nimport ListItem from './ListItem';\n\nimport {\n ArrowIcon,\n CreateIcon\n} from './icons';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport translateFallback from './util/translateFallback';\n\nconst noop = () => {};\n\n/**\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\n */\nexport default function ListGroup(props) {\n const {\n add,\n element,\n id,\n items,\n label,\n shouldOpen = false,\n translate = translateFallback\n } = props;\n\n useEffect(() => {\n if (props.shouldSort != undefined) {\n console.warn('the property \\'shouldSort\\' is no longer supported');\n }\n }, [ props.shouldSort ]);\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ localItems, setLocalItems ] = useState([]);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevElement = usePrevious(element);\n\n const toggleOpen = useCallback(() => setOpen(!open), [ open ]);\n\n const openItemIds = (element === prevElement && open && addTriggered)\n ? getNewItemIds(items, localItems)\n : [];\n\n // reset local state after items changed\n useEffect(() => {\n setLocalItems(items);\n setAddTriggered(false);\n }, [ items ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const hasItems = !!items.length;\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n const handleAddClick = e => {\n setAddTriggered(true);\n setOpen(true);\n\n add(e);\n };\n\n const allErrors = useErrors();\n const hasError = items.some(item => {\n if (allErrors[item.id]) {\n return true;\n }\n\n if (!item.entries) {\n return;\n }\n\n // also check if the error is nested, e.g. for name-value entries\n return item.entries.some(entry => allErrors[entry.id]);\n });\n\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-group-header',\n hasItems ? '' : 'empty',\n (hasItems && open) ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ hasItems ? toggleOpen : noop }>\n <div\n 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={ translate('Create new list item') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-add-entry\"\n onClick={ handleAddClick }\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\n class={\n classnames(\n 'bio-properties-panel-list-badge',\n hasError ? 'bio-properties-panel-list-badge--error' : ''\n )\n }\n >\n { items.length }\n </div>\n )\n : null\n }\n {\n hasItems\n ? (\n <button\n type=\"button\"\n title={ translate('Toggle section') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n : null\n }\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-list',\n open && hasItems ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n\n {\n items.map((item, index) => {\n if (!item) {\n return;\n }\n\n const { id } = item;\n\n // if item was added, open it\n // existing items will not be affected as autoOpen\n // is only applied on first render\n const autoOpen = openItemIds.includes(item.id);\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id }\n translate={ translate } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\nfunction getNewItemIds(newItems, oldItems) {\n const newIds = newItems.map(item => item.id);\n const oldIds = oldItems.map(item => item.id);\n\n return newIds.filter(itemId => !oldIds.includes(itemId));\n}","import {\n useDescriptionContext\n} from '../../hooks';\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.forId - id of the entry the description is used for\n * @param {String} props.value\n */\nexport default function Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n\n const contextDescription = useDescriptionContext(forId, element);\n\n const description = value || contextDescription;\n\n if (description) {\n return (\n <div class=\"bio-properties-panel-description\">\n { description }\n </div>\n );\n }\n}\n","import {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\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 { OpenPopupIcon } from './icons';\n\n/**\n * Button to open popups.\n *\n * @param {Object} props\n * @param {Function} props.onClick - Callback to trigger when the button is clicked.\n * @param {string} [props.title] - Tooltip text for the button.\n * @param {boolean} [props.disabled] - Whether the button is disabled.\n * @param {string} [props.className] - Additional class names for the button.\n */\nexport function OpenPopupButton({\n onClick,\n title = 'Open pop-up editor',\n}) {\n return (\n <button\n type=\"button\"\n title={ title }\n class={ 'bio-properties-panel-open-feel-popup' }\n onClick={ onClick }\n >\n <OpenPopupIcon />\n </button>\n );\n}\n","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { FeelersEditor } from 'feelers';\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst TemplatingEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onOpenPopup = noop,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n editor = new FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine,\n lineWrap: true,\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feelers-editor-container',\n popupOpen ? 'popupOpen' : null\n ) }>\n {\n popupOpen && <div class=\"bio-properties-panel-feelers-editor__popup-placeholder\">Opened in popup</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feelers') }\n /> }\n </div>;\n});\n\nexport default TemplatingEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport Editor from '@bpmn-io/feel-editor';\n\nimport { EditorView, lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst FeelEditor = forwardRef((props, ref) => {\n\n const {\n contentAttributes,\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop,\n onLint = noop,\n onOpenPopup = noop,\n placeholder,\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 Editor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n placeholder: placeholder,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables: variables,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : [],\n EditorView.lineWrapping\n ],\n contentAttributes\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setVariables(variables);\n }, [ variables ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setPlaceholder(placeholder);\n }, [ placeholder ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feel-editor-container',\n disabled ? 'disabled' : null,\n popupOpen ? 'popupOpen' : null)\n }>\n {\n popupOpen && <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feel') }\n /> }\n </div>;\n});\n\nexport default FeelEditor;","export function FeelIndicator(props) {\n const {\n active\n } = props;\n\n if (!active) {\n return null;\n }\n\n return <span class=\"bio-properties-panel-feel-indicator\">\n =\n </span>;\n}","import classNames from 'classnames';\nimport { FeelIcon as FeelIconSvg } from '../../icons';\n\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 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, validate ]);\n\n const onInput = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n\n const error = globalError || localError;\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '') } data-entry-id={ id }>\n <NumberField\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onInput={ onInput }\n max={ max }\n min={ min }\n step={ step }\n value={ value } />\n { 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 FeelEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { EventContext } from '../../../context';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\nconst noop = () => {};\n\n/**\n * @typedef {'required'|'optional'|'static'} FeelType\n */\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.id\n * @param {Object} props.element\n * @param {String} props.label\n * @param {String} props.hostLanguage\n * @param {Function} props.onInput\n * @param {Function} props.onBlur\n * @param {Function} props.onError\n * @param {FeelType} [props.feel]\n * @param {String} props.value\n * @param {Boolean} [props.singleLine]\n * @param {Function} props.tooltipContainer\n * @param {Function | import('preact').Component} props.OptionalComponent\n * @param {Boolean} props.disabled\n * @param {Array} props.variables\n * @param {string} [props.placeholder]\n * @param {string | import('preact').Component} props.tooltip\n */\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\n onBlur,\n onError,\n placeholder,\n feel,\n value = '',\n disabled = false,\n variables,\n singleLine,\n tooltipContainer,\n OptionalComponent = OptionalFeelInput,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(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 eventBus\n } = useContext(EventContext);\n\n const [ isPopupOpen, setIsPopupOpen ] = useState(false);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n\n // we don't commit empty FEEL expressions,\n // but instead serialize them as <undefined>\n const newModelValue = (newValue === '' || newValue === '=') ? undefined : newValue;\n\n handleInputCallback(newModelValue);\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n handleInput('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n handleInput(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n handleInput(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleOnBlur = (e) => {\n const value = e.target.value;\n\n // we trim the value, if it is needed\n // and update input accordingly\n if (value.trim() !== value) {\n setLocalValue(value.trim());\n handleInput(value.trim());\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleLint = useStaticCallback((lint = []) => {\n\n const syntaxError = lint.some(report => report.type === 'Syntax Error');\n\n if (syntaxError) {\n onError('Unparsable FEEL expression.');\n } else {\n onError(undefined);\n }\n });\n\n const handleOpenPopup = (type = 'feel') => {\n const isOpen = eventBus.fire('propertiesPanel.openPopup', {\n element,\n entryId: id,\n hostLanguage,\n label,\n onInput: handleLocalInput,\n singleLine,\n sourceElement: editorRef.current,\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n });\n\n if (isOpen) {\n eventBus.once('propertiesPanelPopup.close', () => {\n setIsPopupOpen(false);\n });\n }\n\n setIsPopupOpen(isOpen === true);\n };\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n return () => {\n eventBus.fire('propertiesPanel.closePopup');\n };\n }, []);\n\n // copy-paste integration\n useEffect(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n\n const pasteHandler = event => {\n if (feelActive || isPopupOpen) {\n return;\n }\n\n const 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 <FeelEditor\n name={ id }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n disabled={ disabled }\n popupOpen={ isPopupOpen }\n onFeelToggle={ () => {\n handleFeelToggle();\n setFocus(true);\n } }\n onLint={ handleLint }\n onOpenPopup={ handleOpenPopup }\n placeholder={ placeholder }\n value={ feelOnlyValue }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ isPopupOpen }\n onInput={ handleLocalInput }\n onBlur={ handleOnBlur }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onOpenPopup={ handleOpenPopup }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\n\nconst OptionalFeelInput = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number') {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <input\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' } />;\n});\n\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <NumberField\n id={ id }\n debounce={ debounce }\n disabled={ disabled }\n displayLabel={ false }\n inputRef={ inputRef }\n max={ max }\n min={ min }\n onInput={ onInput }\n step={ step }\n value={ value }\n onFocus={ onFocus }\n onBlur={ onBlur }\n />;\n});\n\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n input.setSelectionRange(0, 0);\n }\n };\n\n return <textarea\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' }\n data-gramm=\"false\"\n />;\n});\n\nconst OptionalFeelToggleSwitch = forwardRef((props, ref) => {\n const {\n id,\n onInput,\n value,\n onFocus,\n onBlur,\n switcherLabel\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <ToggleSwitch\n id={ id }\n value={ value }\n inputRef={ inputRef }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel } />;\n});\n\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n const handleChange = ({ target }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <input\n ref={ inputRef }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ value }\n disabled={ disabled } />;\n});\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop,\n example,\n variables,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useCallback((newValue) => {\n const value = getValue(element);\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n }, [ element, getValue, setValue, validate ]);\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = temporaryError || localError || validationError;\n\n return (\n <div\n class={ classnames(\n props.class,\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <FeelTextfield\n { ...props }\n debounce={ debounce }\n disabled={ disabled }\n feel={ feel }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n example={ example }\n hostLanguage={ hostLanguage }\n singleLine={ singleLine }\n show={ show }\n value={ value }\n variables={ variables }\n tooltipContainer={ tooltipContainer }\n OptionalComponent={ props.OptionalComponent }\n tooltip={ tooltip } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.max\n * @param {String} props.min\n * @param {String} props.step\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelNumberEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n */\nexport function FeelTextAreaEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-textarea\" OptionalComponent={ OptionalFeelTextArea } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelToggleSwitchEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelCheckboxEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.hostLanguage\n * @param {Boolean} props.singleLine\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTemplatingEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\n}\n\nexport function isEdited(node) {\n if (!node) {\n return false;\n }\n\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n\n return !!node.value || node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n","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, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = localError || temporaryError || validationError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Templating\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n show={ show }\n value={ value }\n tooltipContainer={ tooltipContainer } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nfunction Templating(props) {\n const {\n debounce,\n id,\n label,\n onInput,\n onError,\n value = '',\n disabled = false,\n tooltipContainer\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => onInput(newValue.length ? newValue : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n handleInputCallback(newValue);\n setLocalValue(newValue);\n };\n\n const handleLint = useStaticCallback(lint => {\n\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\n\n if (!errors.length) {\n onError(undefined);\n return;\n }\n\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value ? value : '');\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-feelers\">\n <label id={ prefixIdLabel(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n {label}\n </label>\n <div class=\"bio-properties-panel-feelers-input\" ref={ containerRef }>\n <TemplatingEditor\n name={ id }\n onInput={ handleInput }\n contentAttributes={ { 'aria-labelledby': prefixIdLabel(id) } }\n disabled={ disabled }\n onLint={ handleLint }\n value={ localValue }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n </div>\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && (!!node.value || node.classList.contains('edited'));\n}\n\n// helpers /////////////////\n\nfunction prefixIdLabel(id) {\n return `bio-properties-panel-feelers-${id}-label`;\n}","import {\n useEffect,\n useState\n} 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 * @returns\n */\nexport default function List(props) {\n const {\n id,\n element,\n items = [],\n component,\n label = '<empty>',\n open: shouldOpen,\n onAdd,\n onRemove,\n autoFocusEntry,\n ...restProps\n } = props;\n\n const [ open, setOpen ] = useState(!!shouldOpen);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const elementChanged = usePrevious(element) !== element;\n const newItems = useNewItems(items, elementChanged);\n\n useEffect(() => {\n if (open && !hasItems) {\n setOpen(false);\n }\n }, [ open, hasItems ]);\n\n /**\n * @param {MouseEvent} event\n */\n function addItem(event) {\n event.stopPropagation();\n onAdd();\n\n if (!open) {\n setOpen(true);\n }\n }\n\n 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={ items }\n newItems={ newItems }\n onRemove={ onRemove }\n open={ open }\n />\n )\n }\n </div>\n );\n}\n\nfunction ItemsList(props) {\n const {\n autoFocusEntry,\n component: Component,\n element,\n id,\n items,\n newItems,\n onRemove,\n open,\n ...restProps\n } = props;\n\n const getKey = useKeyFactory();\n\n const newItem = newItems[0];\n\n useEffect(() => {\n if (newItem && autoFocusEntry) {\n\n // (0) select the parent entry (containing all list items)\n const entry = domQuery(`[data-entry-id=\"${id}\"]`);\n\n // (1) select the first input or a custom element to be focussed\n const selector = typeof(autoFocusEntry) === 'boolean' ?\n '.bio-properties-panel-input' :\n autoFocusEntry;\n const focusableInput = domQuery(selector, entry);\n\n // (2) set focus\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n }\n }\n }, [ newItem, autoFocusEntry, id ]);\n\n return <ol class={ classnames(\n 'bio-properties-panel-list-entry-items',\n open ? 'open' : ''\n ) }>\n {\n items.map((item, index) => {\n const key = getKey(item);\n\n return (<li class=\"bio-properties-panel-list-entry-item\" key={ key }>\n <Component\n { ...restProps }\n element={ element }\n id={ id }\n index={ index }\n item={ item }\n open={ item === newItem } />\n {\n onRemove && (\n <button\n type=\"button\"\n title=\"Delete item\"\n class=\"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\"\n onClick={ () => onRemove && onRemove(item) }\n ><DeleteIcon /></button>\n )\n }\n </li>);\n })\n }\n </ol>;\n}\n\nfunction useNewItems(items = [], shouldReset) {\n const previousItems = usePrevious(items.slice()) || [];\n\n if (shouldReset) {\n return [];\n }\n\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\n}\n","import classNames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n/**\n * @typedef { { value: string, label: string, disabled: boolean, children: { value: string, label: string, disabled: boolean } } } Option\n */\n\n/**\n * Provides basic select input.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string[]} props.path\n * @param {string} props.label\n * @param {Function} props.onChange\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Array<Option>} [props.options]\n * @param {string} props.value\n * @param {boolean} [props.disabled]\n */\nfunction Select(props) {\n const {\n id,\n label,\n onChange,\n options = [],\n value = '',\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const ref = useShowEntryEvent(id);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.value);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-select\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n </label>\n <select\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n class=\"bio-properties-panel-input\"\n onInput={ handleChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue }\n disabled={ disabled }\n >\n {options.map((option, idx) => {\n if (option.children) {\n return (\n <optgroup key={ idx } label={ option.label }>\n {option.children.map((child, idx) => (\n <option\n key={ idx }\n value={ child.value }\n disabled={ child.disabled }\n >\n {child.label}\n </option>\n ))}\n </optgroup>\n );\n }\n\n return (\n <option key={ idx } value={ option.value } disabled={ option.disabled }>\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.getOptions\n * @param {boolean} [props.disabled]\n * @param {Function} [props.validate]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function SelectEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n getOptions,\n disabled,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const options = getOptions(element);\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n\n const onChange = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Select\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onChange={ onChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n options={ options }\n disabled={ disabled }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n useMemo,\n useEffect,\n useState\n} from 'preact/hooks';\n\n/**\n * @param {Object} props\n * @param {Function} props.debounce\n * @param {Boolean} [props.disabled]\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {Function} [props.onBlur]\n * @param {Function} [props.onFocus]\n * @param {Function} props.setValue\n */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue\n } = props;\n\n const value = getValue(element);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => setValue(target.value.length ? target.value : undefined));\n }, [ setValue, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n return (\n <div class=\"bio-properties-panel-simple\">\n <input\n id={ prefixId(id) }\n key={ element }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n aria-label={ localValue || '<empty>' }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useError,\n useShowEntryEvent,\n useElementVisible,\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 = true,\n placeholder,\n rows = autoResize ? 1 : 2,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const ref = useShowEntryEvent(id);\n\n const visible = useElementVisible(ref.current);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n handleInputCallback(newModelValue);\n };\n\n const handleLocalInput = e => {\n autoResize && resizeToContents(e.target);\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n const handleOnBlur = e => {\n const value = e.target.value;\n\n if (value.trim() !== value) {\n setLocalValue(value.trim());\n handleInput(value.trim());\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n\n useLayoutEffect(() => {\n visible && autoResize && resizeToContents(ref.current);\n }, [ visible ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textarea\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <textarea\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n spellCheck=\"false\"\n class={ classnames(\n 'bio-properties-panel-input',\n monospace ? 'bio-properties-panel-input-monospace' : '',\n autoResize ? 'auto-resize' : '')\n }\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onBlur={ handleOnBlur }\n placeholder={ placeholder }\n rows={ rows }\n value={ localValue }\n disabled={ disabled }\n data-gramm=\"false\"\n />\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} props.description\n * @param {boolean} props.debounce\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {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 placeholder,\n autoResize,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useCallback((newValue) => {\n const value = getValue(element);\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setLocalError(newValidationError);\n }, [ element, getValue, setValue, validate ]);\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 placeholder={ placeholder }\n autoResize={ autoResize }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useCallback,\n useEffect,\n 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 placeholder,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const handleOnBlur = e => {\n const value = e.target.value;\n\n if (value.trim() !== value) {\n setLocalValue(value.trim());\n handleInput(value.trim());\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleInput = newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n handleInputCallback(newModelValue);\n };\n\n const handleLocalInput = e => {\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textfield\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <input\n ref={ ref }\n id={ prefixId(id) }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onBlur={ handleOnBlur }\n placeholder={ placeholder }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {Function} props.validate\n */\nexport default function TextfieldEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n validate,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useCallback((newValue) => {\n const value = getValue(element);\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setLocalError(newValidationError);\n }, [ element, getValue, setValue, validate ]);\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 placeholder={ placeholder }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n debounce as _debounce,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\n\n/**\n * Creates a debounced version of a function, delaying its execution based on `debounceDelay`.\n *\n * - If `debounceDelay` is `false`, the function executes immediately without debouncing.\n * - If a number is provided, the function execution is delayed by the given time in milliseconds.\n *\n * @param { Boolean | Number } [debounceDelay=300]\n *\n * @example\n * const debounce = debounceInput();\n * const debouncedFn = debounce(fn);\n *\n * debouncedFn(); // Executes after 300ms (default) if no further calls occur.\n */\nexport default function debounceInput(debounceDelay) {\n\n /**\n * Applies debounce to the provided function, with a previously setup delay.\n *\n * @template { (...args: any[]) => any } T\n *\n * @param {T} fn\n *\n * @return { (...p: Parameters<T>) => any }\n */\n return function debounce(fn) {\n if (debounceDelay === false) {\n return fn;\n }\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return _debounce(fn, debounceTime);\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","import { domify } from 'min-dom';\n\n/**\n * Add a dragger that calls back the passed function with\n * { event, delta } on drag.\n *\n * @example\n *\n * function dragMove(event, delta) {\n * // we are dragging (!!)\n * }\n *\n * domElement.addEventListener('dragstart', dragger(dragMove));\n *\n * @param {Function} fn\n * @param {Element} [dragPreview]\n *\n * @return {Function} drag start callback function\n */\nexport function createDragger(fn, dragPreview) {\n\n let self;\n\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n\n self = this;\n\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n\n return onDragStart;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction emptyCanvas() {\n return domify('<canvas width=\"0\" height=\"0\" />');\n}","import { forwardRef } from 'preact/compat';\n\nimport { useEffect, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon, CloseIcon } from '../../../components/icons';\n\nimport { createDragger } from '../../../components/util/dragger';\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{top: number, left: number}} [props.position]\n * @param {number} [props.width]\n * @param {number} [props.height]\n * @param {Function} props.onClose\n * @param {Function} [props.onPostActivate]\n * @param {Function} [props.onPostDeactivate]\n * @param {boolean} [props.returnFocus]\n * @param {boolean} [props.closeOnEscape]\n * @param {string} props.title\n * @param {Ref} [ref]\n */\nfunction PopupComponent(props, globalRef) {\n const {\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop,\n onPostDeactivate = noop,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n\n const focusTrapRef = useRef(null);\n const localRef = useRef(null);\n const popupRef = globalRef || localRef;\n\n const handleKeydown = (event) => {\n\n // do not allow keyboard events to bubble\n event.stopPropagation();\n\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n\n let style = {};\n\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px',\n };\n }\n\n if (width) {\n style.width = width + 'px';\n }\n\n if (height) {\n style.height = height + 'px';\n }\n\n useEffect(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n\n return () => {\n if (popupRef.current) {\n popupRef.current.removeEventListener('focusin', handleFocus);\n }\n };\n }, [ popupRef ]);\n\n useEffect(() => {\n if (popupRef.current) {\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus,\n });\n\n focusTrapRef.current.activate();\n }\n\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [ popupRef ]);\n\n return (\n <div\n aria-label={ title }\n tabIndex={ -1 }\n ref={ popupRef }\n onKeyDown={ handleKeydown }\n role=\"dialog\"\n class={ classNames('bio-properties-panel-popup', className) }\n style={ style }\n >\n {props.children}\n </div>\n );\n}\n\nexport const Popup = forwardRef(PopupComponent);\n\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\n\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n eventBus,\n title,\n showCloseButton = false,\n closeButtonTooltip = 'Close popup',\n onClose,\n ...rest\n } = props;\n\n // we can't use state as we need to\n // manipulate this inside dragging events\n const context = useRef({\n startPosition: null,\n newPosition: null,\n });\n\n const dragPreviewRef = useRef();\n\n const titleRef = useRef();\n\n const onMove = (event, delta) => {\n cancel(event);\n\n const { x: dx, y: dy } = delta;\n\n const newPosition = {\n x: context.current.startPosition.x + dx,\n y: context.current.startPosition.y + dy,\n };\n\n const popupParent = getPopupParent(titleRef.current);\n\n popupParent.style.top = newPosition.y + 'px';\n popupParent.style.left = newPosition.x + 'px';\n\n eventBus?.fire('feelPopup.dragover', { newPosition, delta });\n };\n\n const onMoveStart = (event) => {\n\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n\n event.stopPropagation();\n\n const popupParent = getPopupParent(titleRef.current);\n\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top,\n };\n\n eventBus?.fire('feelPopup.dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n eventBus?.fire('feelPopup.dragend');\n };\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-popup__header',\n draggable && 'draggable',\n className\n ) }\n ref={ titleRef }\n draggable={ draggable }\n onDragStart={ onMoveStart }\n onDragEnd={ onMoveEnd }\n { ...rest }\n >\n {draggable && (\n <>\n <div\n ref={ dragPreviewRef }\n class=\"bio-properties-panel-popup__drag-preview\"\n ></div>\n <div class=\"bio-properties-panel-popup__drag-handle\">\n <DragIcon />\n </div>\n </>\n )}\n <div class=\"bio-properties-panel-popup__title\">{title}</div>\n {children}\n {showCloseButton && (\n <button\n title={ closeButtonTooltip }\n class=\"bio-properties-panel-popup__close\"\n onClick={ onClose }\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\nfunction Body(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__body', className) }\n { ...rest }\n >\n {children}\n </div>\n );\n}\n\nfunction Footer(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__footer', className) }\n { ...rest }\n >\n {props.children}\n </div>\n );\n}\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\n\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n","import { useEffect, useRef } from 'preact/hooks';\nimport FeelEditor from '../../../components/entries/FEEL/FeelEditor';\nimport TemplatingEditor from '../../../components/entries/templating/TemplatingEditor';\nimport { LaunchIcon } from '../../../components/icons';\nimport { Popup } from './Popup';\n\n/**\n * @typedef {Object} FeelPopupProps\n * @property {string} entryId\n * @property {Function} onInput\n * @property {Function} onClose\n * @property {string} title\n * @property {'feel'|'feelers'} type\n * @property {string} value\n * @property {Array} [links]\n * @property {Array|Object} [variables]\n * @property {Object} [position]\n * @property {string} [hostLanguage]\n * @property {boolean} [singleLine]\n * @property {HTMLElement} [sourceElement]\n * @property {HTMLElement|string} [tooltipContainer]\n * @property {Object} [eventBus]\n */\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n/**\n * FEEL expression editor popup component\n * @param {FeelPopupProps} props\n */\nexport function FeelPopup(props) {\n const {\n entryId,\n onInput,\n onClose,\n title,\n type,\n value,\n links,\n variables,\n position,\n hostLanguage,\n singleLine,\n sourceElement,\n tooltipContainer,\n eventBus\n } = props;\n\n const editorRef = useRef();\n const popupRef = useRef();\n\n const isAutoCompletionOpen = useRef(false);\n\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n\n const onKeyDownCapture = (event) => {\n\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n\n // set focus on editor when popup is opened\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, [ editorRef ]);\n\n return (\n <Popup\n className=\"bio-properties-panel-feel-popup\"\n position={ position }\n title={ title }\n returnFocus={ false }\n closeOnEscape={ false }\n delayInitialFocus={ false }\n onPostDeactivate={ handleSetReturnFocus }\n height={ FEEL_POPUP_HEIGHT }\n width={ FEEL_POPUP_WIDTH }\n ref={ popupRef }\n >\n <Popup.Title\n title={ title }\n eventBus={ eventBus }\n showCloseButton={ true }\n closeButtonTooltip=\"Save and close\"\n onClose={ onClose }\n draggable\n >\n <>\n {(links || []).map((link, index) => {\n return (\n <a\n key={ index }\n rel=\"noreferrer\"\n href={ link.href }\n target=\"_blank\"\n class=\"bio-properties-panel-feel-popup__title-link\"\n >\n {link.title}\n <LaunchIcon />\n </a>\n );\n })}\n </>\n </Popup.Title>\n <Popup.Body>\n <div\n onKeyDownCapture={ onKeyDownCapture }\n onKeyDown={ onKeyDown }\n class=\"bio-properties-panel-feel-popup__body\"\n >\n {type === 'feel' && (\n <FeelEditor\n enableGutters={ true }\n id={ prefixId(entryId) }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )}\n\n {type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(entryId) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )}\n </div>\n </Popup.Body>\n </Popup>\n );\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n const editor = element.closest('.cm-editor');\n return editor ? editor.querySelector('.cm-tooltip-autocomplete') : null;\n}\n","import { FEEL_POPUP_WIDTH, FEEL_POPUP_HEIGHT } from './FeelPopup';\n\nexport function getPopupTitle({ element, label }) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\n}\n\nexport function getPopupPosition() {\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n return {\n left: Math.max(0, (viewportWidth - FEEL_POPUP_WIDTH) / 2),\n top: Math.max(0, (viewportHeight - FEEL_POPUP_HEIGHT) / 2)\n };\n}","import { getPopupPosition, getPopupTitle } from './components/helpers';\n\n/**\n * FEEL popup component, built as a singleton.\n *\n * In order to implement a custom replacement, handle the following events:\n * - `propertiesPanel.openPopup`\n * - `propertiesPanel.closePopup`\n * - `propertiesPanel.detach`\n *\n * Within the custom renderer, make sure to emit the following events:\n * - `feelPopup.open` - fired before the popup is mounted\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport class FeelPopup {\n constructor(eventBus, config = {}) {\n this._eventBus = eventBus;\n this._config = config;\n\n this._isOpen = false;\n\n eventBus.on('propertiesPanel.openPopup', (_, context) => {\n this.open(context.entryId, context, context.sourceElement);\n\n // return true to indicate that popup was opened\n return true;\n });\n\n eventBus.on([\n 'propertiesPanel.closePopup',\n 'propertiesPanel.detach'\n ], () => {\n this.close();\n });\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._isOpen;\n }\n\n /**\n * Open the FEEL popup.\n *\n * @param {String} entryId\n * @param {Object} popupConfig\n * @param {HTMLElement} sourceElement\n */\n open(entryId, popupConfig, sourceElement) {\n\n // close before opening a new one\n this.close();\n\n this._openPopup({\n ...popupConfig,\n entryId,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n this._closePopup();\n }\n\n _openPopup(context) {\n const {\n element,\n label,\n sourceElement,\n type\n } = context;\n\n this._isOpen = true;\n\n this._eventBus.fire('propertiesPanelPopup.open', {\n container: this._config.feelPopupContainer,\n config: {\n ...context,\n links: this._config.getFeelPopupLinks?.(type) || [],\n onClose: () => {\n this._closePopup();\n\n // setTimeout to ensure the focus happens after the DOM updates make it focusable\n setTimeout(() => {\n sourceElement && sourceElement.focus();\n }, 0);\n },\n position: getPopupPosition(),\n title: getPopupTitle({ element, label })\n }\n });\n }\n\n _closePopup() {\n if (this._isOpen) {\n this._isOpen = false;\n\n this._eventBus.fire('propertiesPanelPopup.close');\n }\n }\n}\n\nFeelPopup.$inject = [ 'eventBus', 'config.propertiesPanel' ];\n","import { render } from 'preact';\nimport { FeelPopup } from './components';\nimport { query as domQuery } from 'min-dom';\nimport { isString } from 'min-dash';\n\n\nexport class FeelPopupRenderer {\n constructor(eventBus) {\n this._eventBus = eventBus;\n\n this._container = null;\n this._element = null;\n\n eventBus.on('propertiesPanelPopup.open', (context) => {\n this._renderPopup(context);\n });\n\n eventBus.on('propertiesPanelPopup.close', () => {\n this._removePopup();\n });\n }\n\n _renderPopup(context) {\n let { container, config } = context;\n\n container = this._container = getContainer(container) || document.body;\n\n const element = this._element = createElement();\n\n container.appendChild(element);\n\n // TODO(philippfromme): there is no useService in this context, so we need\n // to pass the event bus as a prop or create a context provider, however,\n // a custom renderer would have to use that context provider as well to have\n // access to the event bus and other services\n this._emit('feelPopup.open');\n\n render(\n <FeelPopup { ...config } eventBus={ this._eventBus } />,\n element\n );\n\n this._emit('feelPopup.opened', {\n domNode: element\n });\n }\n\n _removePopup() {\n if (!this._container) {\n return;\n }\n\n this._emit('feelPopup.close', {\n domNode: this._element\n });\n\n render(null, this._element);\n\n this._container.removeChild(this._element);\n\n this._container = null;\n\n this._emit('feelPopup.closed');\n }\n\n _emit(event, context) {\n this._eventBus.fire(event, context);\n }\n}\n\nFeelPopupRenderer.$inject = [ 'eventBus' ];\n\n// helpers /////////////////\n\nfunction createElement() {\n const element = document.createElement('div');\n\n element.classList.add('bio-properties-panel-popup-container');\n\n return element;\n}\n\nfunction getContainer(container) {\n if (isString(container)) {\n return domQuery(container);\n }\n\n return container;\n}","import { FeelPopup } from './FeelPopup';\nimport { FeelPopupRenderer } from './FeelPopupRenderer';\n\nexport default {\n __init__: [ 'feelPopup', 'feelPopupRenderer' ],\n feelPopup: [ 'type', FeelPopup ],\n feelPopupRenderer: [ 'type', FeelPopupRenderer ],\n};"],"names":["Header","props","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","class","children","_jsx","width","height","viewBox","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","parent","direction","position","visible","setVisible","useState","SHOW_DELAY","timeout","wrapperRef","useRef","tooltipRef","show","_","delay","setTimeout","hide","clearTimeout","handleMouseLeave","relatedTarget","current","parentElement","handleFocusOut","e","isHovered","matches","stopPropagation","hideTooltipViaEscape","code","renderTooltip","role","style","getTooltipPosition","ref","onClick","onMouseLeave","tabIndex","onMouseEnter","onFocus","onBlur","onKeyDown","createPortal","refElement","refPosition","getBoundingClientRect","right","x","top","useDescriptionContext","useError","useErrors","useEvent","event","callback","eventContext","didMount","on","useEffect","off","KEY_LENGTH","useKeyFactory","dependencies","map","useMemo","Map","getKey","el","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","useElementVisible","clientHeight","useLayoutEffect","resizeObserver","ResizeObserver","requestAnimationFrame","newVisible","contentRect","disconnect","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","hasOneEditedEntry","find","isEdited","entryNode","inputNode","cancelAnimationFrame","allErrors","hasErrors","some","propertiesPanelContext","classnames","DataMarker","ArrowIcon","Provider","component","Component","_createElement","Placeholder","text","icon","Icon","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","createLayout","useUpdateLayoutEffect","newLayout","config","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","group","overrides","defaults","effect","deps","isMounted","DropdownButton","className","menuItems","dropdownRef","menuRef","close","onDropdownToggle","contains","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","document","addEventListener","capture","removeEventListener","HeaderButton","classname","otherProps","translateFallback","template","replacements","replace","CollapsibleEntry","remove","translate","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","noop","ListGroup","add","items","shouldSort","undefined","console","warn","localItems","setLocalItems","addTriggered","setAddTriggered","prevElement","openItemIds","getNewItemIds","hasItems","length","handleAddClick","hasError","CreateIcon","numOfItems","includes","newItems","oldItems","newIds","oldIds","filter","itemId","Description","Checkbox","onChange","disabled","localValue","setLocalValue","handleChangeCallback","checked","handleChange","prefixId","name","for","CheckboxEntry","getValue","setValue","error","node","OpenPopupButton","OpenPopupIcon","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","TemplatingEditor","forwardRef","onInput","tooltipContainer","enableGutters","onLint","onOpenPopup","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","handleInput","FeelersEditor","container","lineWrap","innerHTML","handleClick","classNames","FeelEditor","onFeelToggle","placeholder","variables","selection","getSelection","range","ranges","mainIndex","from","to","Editor","extensions","lineNumbers","EditorView","lineWrapping","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","ToggleSwitch","switcherLabel","inline","handleInputCallback","ToggleSwitchEntry","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","editorRef","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","isPopupOpen","setIsPopupOpen","setFocus","hasFocus","activeElement","selectionStart","newModelValue","handleFeelToggle","handleLocalInput","handleOnBlur","trim","handleLint","lint","syntaxError","report","handleOpenPopup","isOpen","fire","entryId","sourceElement","once","copyHandler","clipboardData","setData","getData","pasteHandler","data","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","TemplatingEntry","Templating","severity","message","source","prefixIdLabel","List","onAdd","onRemove","restProps","elementChanged","useNewItems","addItem","ItemsList","newItem","selector","shouldReset","previousItems","Select","options","option","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","autoResize","rows","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","fn","debounceTime","isNumber","_debounce","$inject","createDragger","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","y","call","domify","PopupComponent","globalRef","delayInitialFocus","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","handleKeydown","handleFocus","activate","left","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","Popup","Title","Body","Footer","draggable","showCloseButton","closeButtonTooltip","rest","context","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","bounds","onMoveEnd","onDragEnd","_Fragment","DragIcon","CloseIcon","closest","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FeelPopup","links","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","link","LaunchIcon","querySelector","getPopupTitle","popupTitle","getPopupPosition","viewportWidth","window","innerWidth","documentElement","clientWidth","viewportHeight","innerHeight","constructor","_eventBus","_config","_isOpen","popupConfig","_openPopup","_closePopup","feelPopupContainer","getFeelPopupLinks","FeelPopupRenderer","_container","_element","_renderPopup","_removePopup","getContainer","body","createElement","appendChild","_emit","render","domNode","removeChild","__init__","feelPopup","feelPopupRenderer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/Header.js","../src/context/DescriptionContext.js","../src/context/ErrorsContext.js","../src/context/EventContext.js","../src/context/LayoutContext.js","../src/context/TooltipContext.js","../src/hooks/useTooltipContext.js","../src/components/entries/Tooltip.js","../src/hooks/useDescriptionContext.js","../src/hooks/useDebounce.js","../src/hooks/useError.js","../src/hooks/useEvent.js","../src/hooks/useKeyFactory.js","../src/hooks/useLayoutState.js","../src/hooks/usePrevious.js","../src/hooks/useShowEntryEvent.js","../src/hooks/useStickyIntersectionObserver.js","../src/hooks/useStaticCallback.js","../src/hooks/useElementVisible.js","../src/components/Group.js","../src/components/Placeholder.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/util/translateFallback.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Description.js","../src/components/entries/Checkbox.js","../src/components/OpenPopupButton.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/components/util/dragger.js","../src/features/feel-popup/components/Popup.js","../src/features/feel-popup/components/FeelPopup.js","../src/features/feel-popup/components/helpers.js","../src/features/feel-popup/FeelPopup.js","../src/features/feel-popup/FeelPopupRenderer.js","../src/features/feel-popup/index.js"],"sourcesContent":["import { ExternalLinkIcon } from './icons';\n\n/**\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=\"noreferrer\"\n class=\"bio-properties-panel-header-link\"\n href={ documentationRef }\n title=\"Open documentation\"\n target=\"_blank\">\n <ExternalLinkIcon />\n </a> :\n null\n }\n </div>\n </div>);\n}","import {\n createContext\n} from 'preact';\n\nconst DescriptionContext = createContext({\n description: {},\n getDescriptionForId: () => {}\n});\n\nexport default DescriptionContext;\n","import {\n createContext\n} from 'preact';\n\nconst ErrorsContext = createContext({\n errors: {}\n});\n\nexport default ErrorsContext;","/**\n * @typedef {Function} <propertiesPanel.showEntry> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\n/**\n * @typedef {Function} <propertiesPanel.showError> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {string} context.message\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\nimport { createContext } from 'preact';\n\nconst EventContext = createContext({ eventBus: null });\n\nexport default EventContext;\n","import {\n createContext\n} from 'preact';\n\nconst LayoutContext = createContext({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nexport default LayoutContext;","import {\n createContext\n} from 'preact';\n\nconst TooltipContext = createContext({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\nexport default TooltipContext;\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n TooltipContext\n} from '../context';\n\n/**\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const tooltip = useTooltipContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = useContext(TooltipContext);\n\n return getTooltipForId(id, element);\n}\n","import {\n useRef,\n useState\n} 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={ `bio-properties-panel-${ forId }` } />;\n}\n\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent,\n direction = 'right',\n position\n } = props;\n\n const [ visible, setVisible ] = useState(false);\n\n // Tooltip will be shown after SHOW_DELAY ms from hovering over the source element.\n const SHOW_DELAY = 200;\n let timeout = null;\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const show = (_, delay) => {\n if (visible) return;\n\n if (delay) {\n timeout = setTimeout(() => {\n setVisible(true);\n }, SHOW_DELAY);\n } else {\n setVisible(true);\n }\n };\n\n const hide = () => {\n clearTimeout(timeout);\n setVisible(false);\n };\n\n const handleMouseLeave = ({ relatedTarget }) => {\n\n // Don't hide the tooltip when moving mouse between the wrapper and the tooltip.\n if (relatedTarget === wrapperRef.current || relatedTarget === tooltipRef.current || relatedTarget?.parentElement === tooltipRef.current) {\n return;\n }\n\n hide();\n };\n\n const handleFocusOut = (e) => {\n const { target } = e;\n\n // Don't hide the tooltip if the wrapper or the tooltip itself is clicked.\n const isHovered = target.matches(':hover') || tooltipRef.current?.matches(':hover');\n\n if (target === wrapperRef.current && isHovered) {\n e.stopPropagation();\n return;\n }\n\n hide();\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hide();\n };\n\n const renderTooltip = () => {\n return (\n <div\n class={ `bio-properties-panel-tooltip ${direction}` }\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ position || getTooltipPosition(wrapperRef.current) }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\n onMouseLeave={ handleMouseLeave }\n >\n <div class=\"bio-properties-panel-tooltip-content\">\n {value}\n </div>\n <div class=\"bio-properties-panel-tooltip-arrow\" />\n </div>\n );};\n\n return (\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\n ref={ wrapperRef }\n onMouseEnter={ (e) => show(e, true) }\n onMouseLeave={ handleMouseLeave }\n onFocus={ show }\n onBlur={ handleFocusOut }\n onKeyDown={ hideTooltipViaEscape }\n >\n {props.children}\n {visible ?\n (parent ?\n createPortal(renderTooltip(), parent.current)\n : renderTooltip()\n ) : null\n }\n </div>\n );\n}\n\n\n// helper\n\nfunction getTooltipPosition(refElement) {\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n const top = `${refPosition.top - 10}px`;\n\n return `right: ${right}; top: ${top};`;\n}\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n DescriptionContext\n} from '../context';\n\n/**\n * Accesses the global DescriptionContext and returns a description for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const description = useDescriptionContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = useContext(DescriptionContext);\n\n return getDescriptionForId(id, element);\n}\n","import {\n useCallback,\n useEffect\n} from 'preact/hooks';\n\nexport function useDebounce(callback, debounceFn) {\n const debouncedCallback = useCallback(debounceFn(callback), [ callback, debounceFn ]);\n\n // make sure previous call is not stalled\n useEffect(() => {\n return () => {\n debouncedCallback.flush?.();\n };\n }, [ debouncedCallback ]);\n\n return debouncedCallback;\n}\n","import { useContext } from 'preact/hooks';\n\nimport { ErrorsContext } from '../context';\n\nexport function useError(id) {\n const { errors } = useContext(ErrorsContext);\n\n return errors[ id ];\n}\n\nexport function useErrors() {\n const { errors } = useContext(ErrorsContext);\n\n return errors;\n}","import { useContext, useEffect, useRef } from 'preact/hooks';\n\nimport { EventContext } from '../context';\n\n\n/**\n * Subscribe to an event immediately. Update subscription after inputs changed.\n *\n * @param {string} event\n * @param {Function} callback\n */\nexport function useEvent(event, callback, eventBus) {\n const eventContext = useContext(EventContext);\n\n if (!eventBus) {\n ({ eventBus } = eventContext);\n }\n\n const didMount = useRef(false);\n\n // (1) subscribe immediately\n if (eventBus && !didMount.current) {\n eventBus.on(event, callback);\n }\n\n // (2) update subscription after inputs changed\n useEffect(() => {\n if (eventBus && didMount.current) {\n eventBus.on(event, callback);\n }\n\n didMount.current = true;\n\n return () => {\n if (eventBus) {\n eventBus.off(event, callback);\n }\n };\n }, [ callback, event, eventBus ]);\n}\n","import { useMemo } from 'preact/hooks';\n\nconst KEY_LENGTH = 6;\n\n/**\n * Create a persistent key factory for plain objects without id.\n *\n * @example\n * ```jsx\n * function List({ objects }) {\n * const getKey = useKeyFactory();\n * return (<ol>{\n * objects.map(obj => {\n * const key = getKey(obj);\n * return <li key={key}>obj.name</li>\n * })\n * }</ol>);\n * }\n * ```\n *\n * @param {any[]} dependencies\n * @returns {(element: object) => string}\n */\nexport function useKeyFactory(dependencies = []) {\n const map = useMemo(() => new Map(), dependencies);\n\n const getKey = el => {\n let key = map.get(el);\n\n if (!key) {\n key = Math.random().toString().slice(-KEY_LENGTH);\n map.set(el, key);\n }\n\n return key;\n };\n\n return getKey;\n}\n","import {\n useCallback,\n useContext\n} from 'preact/hooks';\n\nimport {\n LayoutContext\n} from '../context';\n\n/**\n * Creates a state that persists in the global LayoutContext.\n *\n * @example\n * ```jsx\n * function Group(props) {\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\n * }\n * ```\n *\n * @param {(string|number)[]} path\n * @param {any} [defaultValue]\n *\n * @returns {[ any, Function ]}\n */\nexport function useLayoutState(path, defaultValue) {\n const {\n getLayoutForKey,\n setLayoutForKey\n } = useContext(LayoutContext);\n\n const layoutForKey = getLayoutForKey(path, defaultValue);\n\n const setState = useCallback((newValue) => {\n setLayoutForKey(path, newValue);\n }, [ setLayoutForKey ]);\n\n\n return [ layoutForKey, setState ];\n}\n","import {\n useEffect,\n useRef\n} from 'preact/hooks';\n\n/**\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\n * state on updates.\n *\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\n */\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import {\n useCallback,\n useContext,\n useEffect,\n useRef\n} from 'preact/hooks';\n\nimport { isFunction } from 'min-dash';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useEvent } from './useEvent';\n\n/**\n * Subscribe to `propertiesPanel.showEntry`.\n *\n * @param {string} id\n *\n * @returns {import('preact').Ref}\n */\nexport function useShowEntryEvent(id) {\n const { onShow } = useContext(PropertiesPanelContext);\n\n const ref = useRef();\n\n const focus = useRef(false);\n\n const onShowEntry = useCallback((event) => {\n if (event.id === id) {\n onShow();\n\n if (!focus.current) {\n focus.current = true;\n }\n }\n }, [ id ]);\n\n useEffect(() => {\n if (focus.current && ref.current) {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (isFunction(ref.current.select)) {\n ref.current.select();\n }\n\n focus.current = false;\n }\n });\n\n useEvent('propertiesPanel.showEntry', onShowEntry);\n\n return ref;\n}","import {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { useEvent } from './useEvent';\n\n\n/**\n * @callback setSticky\n * @param {boolean} value\n */\n\n/**\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\n * If sticky is observered setSticky(true) will be called.\n * If sticky mode is left, setSticky(false) will be called.\n *\n *\n * @param {Object} ref\n * @param {string} scrollContainerSelector\n * @param {setSticky} setSticky\n */\nexport function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\n\n const [ scrollContainer, setScrollContainer ] = useState(domQuery(scrollContainerSelector));\n\n const updateScrollContainer = useCallback(() => {\n const newScrollContainer = domQuery(scrollContainerSelector);\n\n if (newScrollContainer !== scrollContainer) {\n setScrollContainer(newScrollContainer);\n }\n }, [ scrollContainerSelector, scrollContainer ]);\n\n useEffect(() => {\n updateScrollContainer();\n }, [ updateScrollContainer ]);\n\n useEvent('propertiesPanel.attach', updateScrollContainer);\n useEvent('propertiesPanel.detach', updateScrollContainer);\n\n useEffect(() => {\n const Observer = IntersectionObserver;\n\n // return early if IntersectionObserver is not available\n if (!Observer) {\n return;\n }\n\n // TODO(@barmac): test this\n if (!ref.current || !scrollContainer) {\n return;\n }\n\n const observer = new Observer((entries) => {\n\n // scroll container is unmounted, do not update sticky state\n if (scrollContainer.scrollHeight === 0) {\n return;\n }\n\n entries.forEach(entry => {\n if (entry.intersectionRatio < 1) {\n setSticky(true);\n }\n else if (entry.intersectionRatio === 1) {\n setSticky(false);\n }\n });\n },\n {\n root: scrollContainer,\n rootMargin: '0px 0px 999999% 0px', // Use bottom margin to avoid stickyness when scrolling out to bottom\n threshold: [ 1 ]\n });\n observer.observe(ref.current);\n\n // Unobserve if unmounted\n return () => {\n observer.unobserve(ref.current);\n };\n\n }, [ ref.current, scrollContainer, setSticky ]);\n}\n","import { useCallback, useRef } from 'preact/hooks';\n\n/**\n * Creates a static function reference with changing body.\n * This is necessary when external libraries require a callback function\n * that has references to state variables.\n *\n * Usage:\n * const callback = useStaticCallback((val) => {val === currentState});\n *\n * The `callback` reference is static and can be safely used in external\n * libraries or as a prop that does not cause rerendering of children.\n *\n * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n return useCallback(\n (...args) => callbackRef.current(...args),\n []\n );\n}","import { useLayoutEffect, useState } from 'preact/hooks';\n\nexport function useElementVisible(element) {\n\n const [ visible, setVisible ] = useState(!!element && !!element.clientHeight);\n\n useLayoutEffect(() => {\n if (!element) return;\n\n const resizeObserver = new ResizeObserver(([ entry ]) => {\n requestAnimationFrame(() => {\n const newVisible = !!entry.contentRect.height;\n if (newVisible !== visible) {\n setVisible(newVisible);\n }\n });\n });\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, [ element, visible ]);\n\n return visible;\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport {\n isFunction\n} from 'min-dash';\n\nimport {\n useErrors,\n useLayoutState\n} from '../hooks';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport { ArrowIcon } from './icons';\n\n/**\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 useState,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport {\n assign,\n get,\n isArray,\n set\n} from 'min-dash';\n\nimport Header from './components/Header';\n\nimport Group from './components/Group';\n\nimport Placeholder from './components/Placeholder';\n\nimport {\n DescriptionContext,\n ErrorsContext,\n EventContext,\n LayoutContext,\n PropertiesPanelContext,\n TooltipContext\n} from './context';\n\nimport { useEvent } from './hooks';\n\nconst DEFAULT_LAYOUT = {};\n\nconst DEFAULT_DESCRIPTION = {};\n\nconst DEFAULT_TOOLTIP = {};\n\n\n/**\n * @typedef { {\n * component: import('preact').Component,\n * id: String,\n * isEdited?: Function\n * } } EntryDefinition\n *\n * @typedef { {\n * autoFocusEntry: String,\n * autoOpen?: Boolean,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * remove: (event: MouseEvent) => void\n * } } ListItemDefinition\n *\n * @typedef { {\n * add: (event: MouseEvent) => void,\n * component: import('preact').Component,\n * element: Object,\n * id: String,\n * items: Array<ListItemDefinition>,\n * label: String,\n * shouldOpen?: Boolean\n * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean\n * } } GroupDefinition\n *\n * @typedef { {\n * [id: String]: GetDescriptionFunction\n * } } DescriptionConfig\n *\n * @typedef { {\n * [id: String]: GetTooltipFunction\n * } } TooltipConfig\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetDescriptionFunction\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetTooltipFunction\n *\n * @typedef { {\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\n * } } PlaceholderProvider\n *\n */\n\n\n/**\n * A basic properties panel component. Describes *how* content will be rendered, accepts\n * data from implementor to describe *what* will be rendered.\n *\n * @param {Object} props\n * @param {Object|Array} props.element\n * @param {import('./components/Header').HeaderProvider} props.headerProvider\n * @param {PlaceholderProvider} [props.placeholderProvider]\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\n * @param {Object} [props.layoutConfig]\n * @param {Function} [props.layoutChanged]\n * @param {DescriptionConfig} [props.descriptionConfig]\n * @param {Function} [props.descriptionLoaded]\n * @param {TooltipConfig} [props.tooltipConfig]\n * @param {Function} [props.tooltipLoaded]\n * @param {HTMLElement} [props.feelPopupContainer]\n * @param {Function} [props.getFeelPopupLinks]\n * @param {Object} [props.eventBus]\n */\nexport default function PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n eventBus\n } = props;\n\n // set-up layout context\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n\n setLayout(newLayout);\n }, [ layoutConfig ]);\n\n useEffect(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [ layout, layoutChanged ]);\n\n const getLayoutForKey = (key, defaultValue) => {\n return get(layout, key, defaultValue);\n };\n\n const setLayoutForKey = (key, config) => {\n 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 <div class=\"bio-properties-panel\">\n <Header\n element={ element }\n headerProvider={ headerProvider } />\n <div class=\"bio-properties-panel-scroll-container\">\n {\n groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n\n return (\n <Component\n { ...group }\n key={ id }\n element={ element } />\n );\n })\n }\n </div>\n </div>\n </EventContext.Provider>\n </LayoutContext.Provider>\n </TooltipContext.Provider>\n </DescriptionContext.Provider>\n </ErrorsContext.Provider>\n </PropertiesPanelContext.Provider>\n );\n}\n\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\n\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\n\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useLayoutEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\n/**\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","/**\n * @typedef { {\n * [key: string]: string;\n * } } TranslateReplacements\n */\n\n/**\n * A simple translation stub to be used for multi-language support.\n * Can be easily replaced with a more sophisticated solution.\n *\n * @param {string} template to interpolate\n * @param {TranslateReplacements} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nexport default function translateFallback(template, replacements) {\n\n replacements = replacements || {};\n\n return template.replace(/{([^}]+)}/g, function(_, key) {\n return replacements[key] || '{' + key + '}';\n });\n}","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\nimport translateFallback from '../util/translateFallback';\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove,\n translate = translateFallback\n } = props;\n\n const [ open, setOpen ] = useState(shouldOpen);\n\n const toggleOpen = () => setOpen(!open);\n\n const { onShow } = useContext(PropertiesPanelContext);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow: useCallback(() => {\n setOpen(true);\n\n if (isFunction(onShow)) {\n onShow();\n }\n }, [ onShow, setOpen ])\n };\n\n\n const placeholderLabel = translate('<empty>');\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-collapsible-entry',\n open ? 'open' : ''\n ) }>\n <div class=\"bio-properties-panel-collapsible-entry-header\" onClick={ toggleOpen }>\n <div\n 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={ translate('Toggle list item') }\n class=\"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n {\n remove\n ?\n (\n <button type=\"button\" title={ translate('Delete item') } class=\"bio-properties-panel-remove-entry\" onClick={ remove }>\n <DeleteIcon />\n </button>\n )\n : null\n }\n </div>\n <div class={ classnames(\n 'bio-properties-panel-collapsible-entry-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>\n );\n}","import {\n useEffect\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport CollapsibleEntry from './entries/Collapsible';\nimport translateFallback from './util/translateFallback';\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen,\n translate = translateFallback\n } = props;\n\n // focus specified entry on auto open\n useEffect(() => {\n if (autoOpen && autoFocusEntry) {\n const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\n\n const focusableInput = domQuery('.bio-properties-panel-input', entry);\n\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n focusableInput.scrollIntoView();\n }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen }\n translate={ translate }\n />\n </div>\n );\n\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n useErrors,\n useLayoutState,\n usePrevious\n} from '../hooks';\n\nimport ListItem from './ListItem';\n\nimport {\n ArrowIcon,\n CreateIcon\n} from './icons';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport translateFallback from './util/translateFallback';\n\nconst noop = () => {};\n\n/**\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\n */\nexport default function ListGroup(props) {\n const {\n add,\n element,\n id,\n items,\n label,\n shouldOpen = false,\n translate = translateFallback\n } = props;\n\n useEffect(() => {\n if (props.shouldSort != undefined) {\n console.warn('the property \\'shouldSort\\' is no longer supported');\n }\n }, [ props.shouldSort ]);\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ localItems, setLocalItems ] = useState([]);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevElement = usePrevious(element);\n\n const toggleOpen = useCallback(() => setOpen(!open), [ open ]);\n\n const openItemIds = (element === prevElement && open && addTriggered)\n ? getNewItemIds(items, localItems)\n : [];\n\n // reset local state after items changed\n useEffect(() => {\n setLocalItems(items);\n setAddTriggered(false);\n }, [ items ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const hasItems = !!items.length;\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n const handleAddClick = e => {\n setAddTriggered(true);\n setOpen(true);\n\n add(e);\n };\n\n const allErrors = useErrors();\n const hasError = items.some(item => {\n if (allErrors[item.id]) {\n return true;\n }\n\n if (!item.entries) {\n return;\n }\n\n // also check if the error is nested, e.g. for name-value entries\n return item.entries.some(entry => allErrors[entry.id]);\n });\n\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-group-header',\n hasItems ? '' : 'empty',\n (hasItems && open) ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ hasItems ? toggleOpen : noop }>\n <div\n 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={ translate('Create new list item') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-add-entry\"\n onClick={ handleAddClick }\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\n class={\n classnames(\n 'bio-properties-panel-list-badge',\n hasError ? 'bio-properties-panel-list-badge--error' : ''\n )\n }\n >\n { items.length }\n </div>\n )\n : null\n }\n {\n hasItems\n ? (\n <button\n type=\"button\"\n title={ translate('Toggle section') }\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n : null\n }\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-list',\n open && hasItems ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n\n {\n items.map((item, index) => {\n if (!item) {\n return;\n }\n\n const { id } = item;\n\n // if item was added, open it\n // existing items will not be affected as autoOpen\n // is only applied on first render\n const autoOpen = openItemIds.includes(item.id);\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id }\n translate={ translate } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\nfunction getNewItemIds(newItems, oldItems) {\n const newIds = newItems.map(item => item.id);\n const oldIds = oldItems.map(item => item.id);\n\n return newIds.filter(itemId => !oldIds.includes(itemId));\n}","import {\n useDescriptionContext\n} from '../../hooks';\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.forId - id of the entry the description is used for\n * @param {String} props.value\n */\nexport default function Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n\n const contextDescription = useDescriptionContext(forId, element);\n\n const description = value || contextDescription;\n\n if (description) {\n return (\n <div class=\"bio-properties-panel-description\">\n { description }\n </div>\n );\n }\n}\n","import {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\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 { OpenPopupIcon } from './icons';\n\n/**\n * Button to open popups.\n *\n * @param {Object} props\n * @param {Function} props.onClick - Callback to trigger when the button is clicked.\n * @param {string} [props.title] - Tooltip text for the button.\n * @param {boolean} [props.disabled] - Whether the button is disabled.\n * @param {string} [props.className] - Additional class names for the button.\n */\nexport function OpenPopupButton({\n onClick,\n title = 'Open pop-up editor',\n}) {\n return (\n <button\n type=\"button\"\n title={ title }\n class={ 'bio-properties-panel-open-feel-popup' }\n onClick={ onClick }\n >\n <OpenPopupIcon />\n </button>\n );\n}\n","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { FeelersEditor } from 'feelers';\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst TemplatingEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onOpenPopup = noop,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n editor = new FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine,\n lineWrap: true,\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feelers-editor-container',\n popupOpen ? 'popupOpen' : null\n ) }>\n {\n popupOpen && <div class=\"bio-properties-panel-feelers-editor__popup-placeholder\">Opened in popup</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feelers') }\n /> }\n </div>;\n});\n\nexport default TemplatingEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport Editor from '@bpmn-io/feel-editor';\n\nimport { EditorView, lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { OpenPopupButton } from '../../OpenPopupButton';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst FeelEditor = forwardRef((props, ref) => {\n\n const {\n contentAttributes,\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop,\n onLint = noop,\n onOpenPopup = noop,\n placeholder,\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 Editor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n placeholder: placeholder,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables: variables,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : [],\n EditorView.lineWrapping\n ],\n contentAttributes\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setVariables(variables);\n }, [ variables ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setPlaceholder(placeholder);\n }, [ placeholder ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feel-editor-container',\n disabled ? 'disabled' : null,\n popupOpen ? 'popupOpen' : null)\n }>\n {\n popupOpen && <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\n }\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n {!disabled && <OpenPopupButton\n onClick={ () => onOpenPopup('feel') }\n /> }\n </div>;\n});\n\nexport default FeelEditor;","export function FeelIndicator(props) {\n const {\n active\n } = props;\n\n if (!active) {\n return null;\n }\n\n return <span class=\"bio-properties-panel-feel-indicator\">\n =\n </span>;\n}","import classNames from 'classnames';\nimport { FeelIcon as FeelIconSvg } from '../../icons';\n\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 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, validate ]);\n\n const onInput = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n\n const error = globalError || localError;\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '') } data-entry-id={ id }>\n <NumberField\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onInput={ onInput }\n max={ max }\n min={ min }\n step={ step }\n value={ value } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from '../Description';\nimport TemplatingEditor from '../templating/TemplatingEditor';\n\nimport {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { forwardRef } from 'preact/compat';\n\nimport classnames from 'classnames';\n\nimport { isFunction, isString } from 'min-dash';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent,\n useStaticCallback\n} from '../../../hooks';\n\nimport FeelEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { EventContext } from '../../../context';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\nconst noop = () => {};\n\n/**\n * @typedef {'required'|'optional'|'static'} FeelType\n */\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.id\n * @param {Object} props.element\n * @param {String} props.label\n * @param {String} props.hostLanguage\n * @param {Function} props.onInput\n * @param {Function} props.onBlur\n * @param {Function} props.onError\n * @param {FeelType} [props.feel]\n * @param {String} props.value\n * @param {Boolean} [props.singleLine]\n * @param {Function} props.tooltipContainer\n * @param {Function | import('preact').Component} props.OptionalComponent\n * @param {Boolean} props.disabled\n * @param {Array} props.variables\n * @param {string} [props.placeholder]\n * @param {string | import('preact').Component} props.tooltip\n */\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\n onBlur,\n onError,\n placeholder,\n feel,\n value = '',\n disabled = false,\n variables,\n singleLine,\n tooltipContainer,\n OptionalComponent = OptionalFeelInput,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(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 eventBus\n } = useContext(EventContext);\n\n const [ isPopupOpen, setIsPopupOpen ] = useState(false);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInputCallback = useDebounce(onInput, debounce);\n\n const handleInput = newValue => {\n\n // we don't commit empty FEEL expressions,\n // but instead serialize them as <undefined>\n const newModelValue = (newValue === '' || newValue === '=') ? undefined : newValue;\n\n handleInputCallback(newModelValue);\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n handleInput('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n handleInput(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n handleInput(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleOnBlur = (e) => {\n const trimmedValue = e.target.value.trim();;\n\n // trim and commit on blur\n onInput(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleLint = useStaticCallback((lint = []) => {\n\n const syntaxError = lint.some(report => report.type === 'Syntax Error');\n\n if (syntaxError) {\n onError('Unparsable FEEL expression.');\n } else {\n onError(undefined);\n }\n });\n\n const handleOpenPopup = (type = 'feel') => {\n const isOpen = eventBus.fire('propertiesPanel.openPopup', {\n element,\n entryId: id,\n hostLanguage,\n label,\n onInput: handleLocalInput,\n singleLine,\n sourceElement: editorRef.current,\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n });\n\n if (isOpen) {\n eventBus.once('propertiesPanelPopup.close', () => {\n setIsPopupOpen(false);\n });\n }\n\n setIsPopupOpen(isOpen === true);\n };\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n return () => {\n eventBus.fire('propertiesPanel.closePopup');\n };\n }, []);\n\n // copy-paste integration\n useEffect(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n\n const pasteHandler = event => {\n if (feelActive || isPopupOpen) {\n return;\n }\n\n const 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 <FeelEditor\n name={ id }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n disabled={ disabled }\n popupOpen={ isPopupOpen }\n onFeelToggle={ () => {\n handleFeelToggle();\n setFocus(true);\n } }\n onLint={ handleLint }\n onOpenPopup={ handleOpenPopup }\n placeholder={ placeholder }\n value={ feelOnlyValue }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ isPopupOpen }\n onInput={ handleLocalInput }\n onBlur={ handleOnBlur }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onOpenPopup={ handleOpenPopup }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\n\nconst OptionalFeelInput = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number') {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <input\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' } />;\n});\n\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <NumberField\n id={ id }\n debounce={ debounce }\n disabled={ disabled }\n displayLabel={ false }\n inputRef={ inputRef }\n max={ max }\n min={ min }\n onInput={ onInput }\n step={ step }\n value={ value }\n onFocus={ onFocus }\n onBlur={ onBlur }\n />;\n});\n\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n input.setSelectionRange(0, 0);\n }\n };\n\n return <textarea\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n value={ value || '' }\n data-gramm=\"false\"\n />;\n});\n\nconst OptionalFeelToggleSwitch = forwardRef((props, ref) => {\n const {\n id,\n onInput,\n value,\n onFocus,\n onBlur,\n switcherLabel\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <ToggleSwitch\n id={ id }\n value={ value }\n inputRef={ inputRef }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel } />;\n});\n\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n const handleChange = ({ target }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <input\n ref={ inputRef }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ value }\n disabled={ disabled } />;\n});\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop,\n example,\n variables,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useCallback((newValue) => {\n const value = getValue(element);\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n }, [ element, getValue, setValue, validate ]);\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = temporaryError || localError || validationError;\n\n return (\n <div\n class={ classnames(\n props.class,\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <FeelTextfield\n { ...props }\n debounce={ debounce }\n disabled={ disabled }\n feel={ feel }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n example={ example }\n hostLanguage={ hostLanguage }\n singleLine={ singleLine }\n show={ show }\n value={ value }\n variables={ variables }\n tooltipContainer={ tooltipContainer }\n OptionalComponent={ props.OptionalComponent }\n tooltip={ tooltip } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.max\n * @param {String} props.min\n * @param {String} props.step\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelNumberEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n */\nexport function FeelTextAreaEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-textarea\" OptionalComponent={ OptionalFeelTextArea } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelToggleSwitchEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelCheckboxEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.hostLanguage\n * @param {Boolean} props.singleLine\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {FeelType} [props.feel]\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Array} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTemplatingEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\n}\n\nexport function isEdited(node) {\n if (!node) {\n return false;\n }\n\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n\n return !!node.value || node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n","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, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = localError || temporaryError || validationError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Templating\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n show={ show }\n value={ value }\n tooltipContainer={ tooltipContainer } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nfunction Templating(props) {\n const {\n debounce,\n id,\n label,\n onInput,\n onError,\n value = '',\n disabled = false,\n tooltipContainer\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => onInput(newValue.length ? newValue : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n handleInputCallback(newValue);\n setLocalValue(newValue);\n };\n\n const handleLint = useStaticCallback(lint => {\n\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\n\n if (!errors.length) {\n onError(undefined);\n return;\n }\n\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value ? value : '');\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-feelers\">\n <label id={ prefixIdLabel(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n {label}\n </label>\n <div class=\"bio-properties-panel-feelers-input\" ref={ containerRef }>\n <TemplatingEditor\n name={ id }\n onInput={ handleInput }\n contentAttributes={ { 'aria-labelledby': prefixIdLabel(id) } }\n disabled={ disabled }\n onLint={ handleLint }\n value={ localValue }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n </div>\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && (!!node.value || node.classList.contains('edited'));\n}\n\n// helpers /////////////////\n\nfunction prefixIdLabel(id) {\n return `bio-properties-panel-feelers-${id}-label`;\n}","import {\n useEffect,\n useState\n} 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 * @returns\n */\nexport default function List(props) {\n const {\n id,\n element,\n items = [],\n component,\n label = '<empty>',\n open: shouldOpen,\n onAdd,\n onRemove,\n autoFocusEntry,\n ...restProps\n } = props;\n\n const [ open, setOpen ] = useState(!!shouldOpen);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const elementChanged = usePrevious(element) !== element;\n const newItems = useNewItems(items, elementChanged);\n\n useEffect(() => {\n if (open && !hasItems) {\n setOpen(false);\n }\n }, [ open, hasItems ]);\n\n /**\n * @param {MouseEvent} event\n */\n function addItem(event) {\n event.stopPropagation();\n onAdd();\n\n if (!open) {\n setOpen(true);\n }\n }\n\n 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={ items }\n newItems={ newItems }\n onRemove={ onRemove }\n open={ open }\n />\n )\n }\n </div>\n );\n}\n\nfunction ItemsList(props) {\n const {\n autoFocusEntry,\n component: Component,\n element,\n id,\n items,\n newItems,\n onRemove,\n open,\n ...restProps\n } = props;\n\n const getKey = useKeyFactory();\n\n const newItem = newItems[0];\n\n useEffect(() => {\n if (newItem && autoFocusEntry) {\n\n // (0) select the parent entry (containing all list items)\n const entry = domQuery(`[data-entry-id=\"${id}\"]`);\n\n // (1) select the first input or a custom element to be focussed\n const selector = typeof(autoFocusEntry) === 'boolean' ?\n '.bio-properties-panel-input' :\n autoFocusEntry;\n const focusableInput = domQuery(selector, entry);\n\n // (2) set focus\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n }\n }\n }, [ newItem, autoFocusEntry, id ]);\n\n return <ol class={ classnames(\n 'bio-properties-panel-list-entry-items',\n open ? 'open' : ''\n ) }>\n {\n items.map((item, index) => {\n const key = getKey(item);\n\n return (<li class=\"bio-properties-panel-list-entry-item\" key={ key }>\n <Component\n { ...restProps }\n element={ element }\n id={ id }\n index={ index }\n item={ item }\n open={ item === newItem } />\n {\n onRemove && (\n <button\n type=\"button\"\n title=\"Delete item\"\n class=\"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\"\n onClick={ () => onRemove && onRemove(item) }\n ><DeleteIcon /></button>\n )\n }\n </li>);\n })\n }\n </ol>;\n}\n\nfunction useNewItems(items = [], shouldReset) {\n const previousItems = usePrevious(items.slice()) || [];\n\n if (shouldReset) {\n return [];\n }\n\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\n}\n","import classNames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n/**\n * @typedef { { value: string, label: string, disabled: boolean, children: { value: string, label: string, disabled: boolean } } } Option\n */\n\n/**\n * Provides basic select input.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string[]} props.path\n * @param {string} props.label\n * @param {Function} props.onChange\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Array<Option>} [props.options]\n * @param {string} props.value\n * @param {boolean} [props.disabled]\n */\nfunction Select(props) {\n const {\n id,\n label,\n onChange,\n options = [],\n value = '',\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const ref = useShowEntryEvent(id);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.value);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-select\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n </label>\n <select\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n class=\"bio-properties-panel-input\"\n onInput={ handleChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue }\n disabled={ disabled }\n >\n {options.map((option, idx) => {\n if (option.children) {\n return (\n <optgroup key={ idx } label={ option.label }>\n {option.children.map((child, idx) => (\n <option\n key={ idx }\n value={ child.value }\n disabled={ child.disabled }\n >\n {child.label}\n </option>\n ))}\n </optgroup>\n );\n }\n\n return (\n <option key={ idx } value={ option.value } disabled={ option.disabled }>\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.getOptions\n * @param {boolean} [props.disabled]\n * @param {Function} [props.validate]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function SelectEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n getOptions,\n disabled,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const options = getOptions(element);\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n\n const onChange = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Select\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onChange={ onChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n options={ options }\n disabled={ disabled }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n useMemo,\n useEffect,\n useState\n} from 'preact/hooks';\n\n/**\n * @param {Object} props\n * @param {Function} props.debounce\n * @param {Boolean} [props.disabled]\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {Function} [props.onBlur]\n * @param {Function} [props.onFocus]\n * @param {Function} props.setValue\n */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue\n } = props;\n\n const value = getValue(element);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => setValue(target.value.length ? target.value : undefined));\n }, [ setValue, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n return (\n <div class=\"bio-properties-panel-simple\">\n <input\n id={ prefixId(id) }\n key={ element }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n aria-label={ localValue || '<empty>' }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useDebounce,\n useElementVisible,\n useError,\n useShowEntryEvent\n} 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 = true,\n placeholder,\n rows = autoResize ? 1 : 2,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const ref = useShowEntryEvent(id);\n\n const visible = useElementVisible(ref.current);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInputCallback = useDebounce(onInput, debounce);\n\n const handleInput = newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n handleInputCallback(newModelValue);\n };\n\n const handleLocalInput = e => {\n autoResize && resizeToContents(e.target);\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n const handleOnBlur = e => {\n const trimmedValue = e.target.value.trim();\n\n // trim and commit on blur\n onInput(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n\n useLayoutEffect(() => {\n visible && autoResize && resizeToContents(ref.current);\n }, [ visible ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textarea\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <textarea\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n spellCheck=\"false\"\n class={ classnames(\n 'bio-properties-panel-input',\n monospace ? 'bio-properties-panel-input-monospace' : '',\n autoResize ? 'auto-resize' : '')\n }\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onBlur={ handleOnBlur }\n placeholder={ placeholder }\n rows={ rows }\n value={ localValue }\n disabled={ disabled }\n data-gramm=\"false\"\n />\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} props.description\n * @param {boolean} props.debounce\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {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 placeholder,\n autoResize,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useCallback((newValue) => {\n const value = getValue(element);\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setLocalError(newValidationError);\n }, [ element, getValue, setValue, validate ]);\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 placeholder={ placeholder }\n autoResize={ autoResize }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useDebounce,\n useError,\n useShowEntryEvent\n} 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 placeholder,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n /**\n * @type { import('min-dash').DebouncedFunction }\n */\n const handleInputCallback = useDebounce(onInput, debounce);\n\n const handleOnBlur = e => {\n const trimmedValue = e.target.value.trim();\n\n // trim and commit on blur\n onInput(trimmedValue);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const handleInput = newValue => {\n const newModelValue = newValue === '' ? undefined : newValue;\n handleInputCallback(newModelValue);\n };\n\n const handleLocalInput = e => {\n\n if (e.target.value === localValue) {\n return;\n }\n\n setLocalValue(e.target.value);\n handleInput(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textfield\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <input\n ref={ ref }\n id={ prefixId(id) }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleLocalInput }\n onFocus={ onFocus }\n onBlur={ handleOnBlur }\n placeholder={ placeholder }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {Function} props.validate\n */\nexport default function TextfieldEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n validate,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useCallback((newValue) => {\n const value = getValue(element);\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setLocalError(newValidationError);\n }, [ element, getValue, setValue, validate ]);\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 placeholder={ placeholder }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n debounce as _debounce,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\n\n/**\n * Creates a debounced version of a function, delaying its execution based on `debounceDelay`.\n *\n * - If `debounceDelay` is `false`, the function executes immediately without debouncing.\n * - If a number is provided, the function execution is delayed by the given time in milliseconds.\n *\n * @param { Boolean | Number } [debounceDelay=300]\n *\n * @example\n * const debounce = debounceInput();\n * const debouncedFn = debounce(fn);\n *\n * debouncedFn(); // Executes after 300ms (default) if no further calls occur.\n */\nexport default function debounceInput(debounceDelay) {\n\n /**\n * Applies debounce to the provided function, with a previously setup delay.\n *\n * @template { (...args: any[]) => any } T\n *\n * @param {T} fn\n *\n * @return { (...p: Parameters<T>) => any }\n */\n return function debounce(fn) {\n if (debounceDelay === false) {\n return fn;\n }\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return _debounce(fn, debounceTime);\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","import { domify } from 'min-dom';\n\n/**\n * Add a dragger that calls back the passed function with\n * { event, delta } on drag.\n *\n * @example\n *\n * function dragMove(event, delta) {\n * // we are dragging (!!)\n * }\n *\n * domElement.addEventListener('dragstart', dragger(dragMove));\n *\n * @param {Function} fn\n * @param {Element} [dragPreview]\n *\n * @return {Function} drag start callback function\n */\nexport function createDragger(fn, dragPreview) {\n\n let self;\n\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n\n self = this;\n\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n\n return onDragStart;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction emptyCanvas() {\n return domify('<canvas width=\"0\" height=\"0\" />');\n}","import { forwardRef } from 'preact/compat';\n\nimport { useEffect, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon, CloseIcon } from '../../../components/icons';\n\nimport { createDragger } from '../../../components/util/dragger';\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{top: number, left: number}} [props.position]\n * @param {number} [props.width]\n * @param {number} [props.height]\n * @param {Function} props.onClose\n * @param {Function} [props.onPostActivate]\n * @param {Function} [props.onPostDeactivate]\n * @param {boolean} [props.returnFocus]\n * @param {boolean} [props.closeOnEscape]\n * @param {string} props.title\n * @param {Ref} [ref]\n */\nfunction PopupComponent(props, globalRef) {\n const {\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop,\n onPostDeactivate = noop,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n\n const focusTrapRef = useRef(null);\n const localRef = useRef(null);\n const popupRef = globalRef || localRef;\n\n const handleKeydown = (event) => {\n\n // do not allow keyboard events to bubble\n event.stopPropagation();\n\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n\n let style = {};\n\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px',\n };\n }\n\n if (width) {\n style.width = width + 'px';\n }\n\n if (height) {\n style.height = height + 'px';\n }\n\n useEffect(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n\n return () => {\n if (popupRef.current) {\n popupRef.current.removeEventListener('focusin', handleFocus);\n }\n };\n }, [ popupRef ]);\n\n useEffect(() => {\n if (popupRef.current) {\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus,\n });\n\n focusTrapRef.current.activate();\n }\n\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [ popupRef ]);\n\n return (\n <div\n aria-label={ title }\n tabIndex={ -1 }\n ref={ popupRef }\n onKeyDown={ handleKeydown }\n role=\"dialog\"\n class={ classNames('bio-properties-panel-popup', className) }\n style={ style }\n >\n {props.children}\n </div>\n );\n}\n\nexport const Popup = forwardRef(PopupComponent);\n\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\n\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n eventBus,\n title,\n showCloseButton = false,\n closeButtonTooltip = 'Close popup',\n onClose,\n ...rest\n } = props;\n\n // we can't use state as we need to\n // manipulate this inside dragging events\n const context = useRef({\n startPosition: null,\n newPosition: null,\n });\n\n const dragPreviewRef = useRef();\n\n const titleRef = useRef();\n\n const onMove = (event, delta) => {\n cancel(event);\n\n const { x: dx, y: dy } = delta;\n\n const newPosition = {\n x: context.current.startPosition.x + dx,\n y: context.current.startPosition.y + dy,\n };\n\n const popupParent = getPopupParent(titleRef.current);\n\n popupParent.style.top = newPosition.y + 'px';\n popupParent.style.left = newPosition.x + 'px';\n\n eventBus?.fire('feelPopup.dragover', { newPosition, delta });\n };\n\n const onMoveStart = (event) => {\n\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n\n event.stopPropagation();\n\n const popupParent = getPopupParent(titleRef.current);\n\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top,\n };\n\n eventBus?.fire('feelPopup.dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n eventBus?.fire('feelPopup.dragend');\n };\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-popup__header',\n draggable && 'draggable',\n className\n ) }\n ref={ titleRef }\n draggable={ draggable }\n onDragStart={ onMoveStart }\n onDragEnd={ onMoveEnd }\n { ...rest }\n >\n {draggable && (\n <>\n <div\n ref={ dragPreviewRef }\n class=\"bio-properties-panel-popup__drag-preview\"\n ></div>\n <div class=\"bio-properties-panel-popup__drag-handle\">\n <DragIcon />\n </div>\n </>\n )}\n <div class=\"bio-properties-panel-popup__title\">{title}</div>\n {children}\n {showCloseButton && (\n <button\n title={ closeButtonTooltip }\n class=\"bio-properties-panel-popup__close\"\n onClick={ onClose }\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\nfunction Body(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__body', className) }\n { ...rest }\n >\n {children}\n </div>\n );\n}\n\nfunction Footer(props) {\n const { children, className, ...rest } = props;\n\n return (\n <div\n class={ classNames('bio-properties-panel-popup__footer', className) }\n { ...rest }\n >\n {props.children}\n </div>\n );\n}\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\n\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n","import { useEffect, useRef } from 'preact/hooks';\nimport FeelEditor from '../../../components/entries/FEEL/FeelEditor';\nimport TemplatingEditor from '../../../components/entries/templating/TemplatingEditor';\nimport { LaunchIcon } from '../../../components/icons';\nimport { Popup } from './Popup';\n\n/**\n * @typedef {Object} FeelPopupProps\n * @property {string} entryId\n * @property {Function} onInput\n * @property {Function} onClose\n * @property {string} title\n * @property {'feel'|'feelers'} type\n * @property {string} value\n * @property {Array} [links]\n * @property {Array|Object} [variables]\n * @property {Object} [position]\n * @property {string} [hostLanguage]\n * @property {boolean} [singleLine]\n * @property {HTMLElement} [sourceElement]\n * @property {HTMLElement|string} [tooltipContainer]\n * @property {Object} [eventBus]\n */\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n/**\n * FEEL expression editor popup component\n * @param {FeelPopupProps} props\n */\nexport function FeelPopup(props) {\n const {\n entryId,\n onInput,\n onClose,\n title,\n type,\n value,\n links,\n variables,\n position,\n hostLanguage,\n singleLine,\n sourceElement,\n tooltipContainer,\n eventBus\n } = props;\n\n const editorRef = useRef();\n const popupRef = useRef();\n\n const isAutoCompletionOpen = useRef(false);\n\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n\n const onKeyDownCapture = (event) => {\n\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n\n // set focus on editor when popup is opened\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, [ editorRef ]);\n\n return (\n <Popup\n className=\"bio-properties-panel-feel-popup\"\n position={ position }\n title={ title }\n returnFocus={ false }\n closeOnEscape={ false }\n delayInitialFocus={ false }\n onPostDeactivate={ handleSetReturnFocus }\n height={ FEEL_POPUP_HEIGHT }\n width={ FEEL_POPUP_WIDTH }\n ref={ popupRef }\n >\n <Popup.Title\n title={ title }\n eventBus={ eventBus }\n showCloseButton={ true }\n closeButtonTooltip=\"Save and close\"\n onClose={ onClose }\n draggable\n >\n <>\n {(links || []).map((link, index) => {\n return (\n <a\n key={ index }\n rel=\"noreferrer\"\n href={ link.href }\n target=\"_blank\"\n class=\"bio-properties-panel-feel-popup__title-link\"\n >\n {link.title}\n <LaunchIcon />\n </a>\n );\n })}\n </>\n </Popup.Title>\n <Popup.Body>\n <div\n onKeyDownCapture={ onKeyDownCapture }\n onKeyDown={ onKeyDown }\n class=\"bio-properties-panel-feel-popup__body\"\n >\n {type === 'feel' && (\n <FeelEditor\n enableGutters={ true }\n id={ prefixId(entryId) }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )}\n\n {type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(entryId) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ entryId }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )}\n </div>\n </Popup.Body>\n </Popup>\n );\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n const editor = element.closest('.cm-editor');\n return editor ? editor.querySelector('.cm-tooltip-autocomplete') : null;\n}\n","import { FEEL_POPUP_WIDTH, FEEL_POPUP_HEIGHT } from './FeelPopup';\n\nexport function getPopupTitle({ element, label }) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\n}\n\nexport function getPopupPosition() {\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n return {\n left: Math.max(0, (viewportWidth - FEEL_POPUP_WIDTH) / 2),\n top: Math.max(0, (viewportHeight - FEEL_POPUP_HEIGHT) / 2)\n };\n}","import { getPopupPosition, getPopupTitle } from './components/helpers';\n\n/**\n * FEEL popup component, built as a singleton.\n *\n * In order to implement a custom replacement, handle the following events:\n * - `propertiesPanel.openPopup`\n * - `propertiesPanel.closePopup`\n * - `propertiesPanel.detach`\n *\n * Within the custom renderer, make sure to emit the following events:\n * - `feelPopup.open` - fired before the popup is mounted\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup as `domNode`\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport class FeelPopup {\n constructor(eventBus, config = {}) {\n this._eventBus = eventBus;\n this._config = config;\n\n this._isOpen = false;\n\n eventBus.on('propertiesPanel.openPopup', (_, context) => {\n this.open(context.entryId, context, context.sourceElement);\n\n // return true to indicate that popup was opened\n return true;\n });\n\n eventBus.on([\n 'propertiesPanel.closePopup',\n 'propertiesPanel.detach'\n ], () => {\n this.close();\n });\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._isOpen;\n }\n\n /**\n * Open the FEEL popup.\n *\n * @param {String} entryId\n * @param {Object} popupConfig\n * @param {HTMLElement} sourceElement\n */\n open(entryId, popupConfig, sourceElement) {\n\n // close before opening a new one\n this.close();\n\n this._openPopup({\n ...popupConfig,\n entryId,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n this._closePopup();\n }\n\n _openPopup(context) {\n const {\n element,\n label,\n sourceElement,\n type\n } = context;\n\n this._isOpen = true;\n\n this._eventBus.fire('propertiesPanelPopup.open', {\n container: this._config.feelPopupContainer,\n config: {\n ...context,\n links: this._config.getFeelPopupLinks?.(type) || [],\n onClose: () => {\n this._closePopup();\n\n // setTimeout to ensure the focus happens after the DOM updates make it focusable\n setTimeout(() => {\n sourceElement && sourceElement.focus();\n }, 0);\n },\n position: getPopupPosition(),\n title: getPopupTitle({ element, label })\n }\n });\n }\n\n _closePopup() {\n if (this._isOpen) {\n this._isOpen = false;\n\n this._eventBus.fire('propertiesPanelPopup.close');\n }\n }\n}\n\nFeelPopup.$inject = [ 'eventBus', 'config.propertiesPanel' ];\n","import { render } from 'preact';\nimport { FeelPopup } from './components';\nimport { query as domQuery } from 'min-dom';\nimport { isString } from 'min-dash';\n\n\nexport class FeelPopupRenderer {\n constructor(eventBus) {\n this._eventBus = eventBus;\n\n this._container = null;\n this._element = null;\n\n eventBus.on('propertiesPanelPopup.open', (context) => {\n this._renderPopup(context);\n });\n\n eventBus.on('propertiesPanelPopup.close', () => {\n this._removePopup();\n });\n }\n\n _renderPopup(context) {\n let { container, config } = context;\n\n container = this._container = getContainer(container) || document.body;\n\n const element = this._element = createElement();\n\n container.appendChild(element);\n\n // TODO(philippfromme): there is no useService in this context, so we need\n // to pass the event bus as a prop or create a context provider, however,\n // a custom renderer would have to use that context provider as well to have\n // access to the event bus and other services\n this._emit('feelPopup.open');\n\n render(\n <FeelPopup { ...config } eventBus={ this._eventBus } />,\n element\n );\n\n this._emit('feelPopup.opened', {\n domNode: element\n });\n }\n\n _removePopup() {\n if (!this._container) {\n return;\n }\n\n this._emit('feelPopup.close', {\n domNode: this._element\n });\n\n render(null, this._element);\n\n this._container.removeChild(this._element);\n\n this._container = null;\n\n this._emit('feelPopup.closed');\n }\n\n _emit(event, context) {\n this._eventBus.fire(event, context);\n }\n}\n\nFeelPopupRenderer.$inject = [ 'eventBus' ];\n\n// helpers /////////////////\n\nfunction createElement() {\n const element = document.createElement('div');\n\n element.classList.add('bio-properties-panel-popup-container');\n\n return element;\n}\n\nfunction getContainer(container) {\n if (isString(container)) {\n return domQuery(container);\n }\n\n return container;\n}","import { FeelPopup } from './FeelPopup';\nimport { FeelPopupRenderer } from './FeelPopupRenderer';\n\nexport default {\n __init__: [ 'feelPopup', 'feelPopupRenderer' ],\n feelPopup: [ 'type', FeelPopup ],\n feelPopupRenderer: [ 'type', FeelPopupRenderer ],\n};"],"names":["Header","props","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","class","children","_jsx","width","height","viewBox","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","parent","direction","position","visible","setVisible","useState","SHOW_DELAY","timeout","wrapperRef","useRef","tooltipRef","show","_","delay","setTimeout","hide","clearTimeout","handleMouseLeave","relatedTarget","current","parentElement","handleFocusOut","e","isHovered","matches","stopPropagation","hideTooltipViaEscape","code","renderTooltip","role","style","getTooltipPosition","ref","onClick","onMouseLeave","tabIndex","onMouseEnter","onFocus","onBlur","onKeyDown","createPortal","refElement","refPosition","getBoundingClientRect","right","x","top","useDescriptionContext","useDebounce","callback","debounceFn","debouncedCallback","useCallback","useEffect","flush","useError","useErrors","useEvent","event","eventContext","didMount","on","off","KEY_LENGTH","useKeyFactory","dependencies","map","useMemo","Map","getKey","el","key","get","Math","random","toString","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","newValue","usePrevious","useShowEntryEvent","onShow","PropertiesPanelContext","focus","onShowEntry","isFunction","select","useStickyIntersectionObserver","scrollContainerSelector","setSticky","scrollContainer","setScrollContainer","domQuery","updateScrollContainer","newScrollContainer","Observer","IntersectionObserver","observer","entries","scrollHeight","forEach","entry","intersectionRatio","root","rootMargin","threshold","observe","unobserve","useStaticCallback","callbackRef","args","useElementVisible","clientHeight","useLayoutEffect","resizeObserver","ResizeObserver","requestAnimationFrame","newVisible","contentRect","disconnect","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","hasOneEditedEntry","find","isEdited","entryNode","inputNode","cancelAnimationFrame","allErrors","hasErrors","some","propertiesPanelContext","classnames","DataMarker","ArrowIcon","Provider","component","Component","_createElement","Placeholder","text","icon","Icon","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","createLayout","useUpdateLayoutEffect","newLayout","config","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","group","overrides","defaults","effect","deps","isMounted","DropdownButton","className","menuItems","dropdownRef","menuRef","close","onDropdownToggle","contains","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","document","addEventListener","capture","removeEventListener","HeaderButton","classname","otherProps","translateFallback","template","replacements","replace","CollapsibleEntry","remove","translate","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","noop","ListGroup","add","items","shouldSort","undefined","console","warn","localItems","setLocalItems","addTriggered","setAddTriggered","prevElement","openItemIds","getNewItemIds","hasItems","length","handleAddClick","hasError","CreateIcon","numOfItems","includes","newItems","oldItems","newIds","oldIds","filter","itemId","Description","Checkbox","onChange","disabled","localValue","setLocalValue","handleChangeCallback","checked","handleChange","prefixId","name","for","CheckboxEntry","getValue","setValue","error","node","OpenPopupButton","OpenPopupIcon","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","TemplatingEditor","forwardRef","onInput","tooltipContainer","enableGutters","onLint","onOpenPopup","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","handleInput","FeelersEditor","container","lineWrap","innerHTML","handleClick","classNames","FeelEditor","onFeelToggle","placeholder","variables","selection","getSelection","range","ranges","mainIndex","from","to","Editor","extensions","lineNumbers","EditorView","lineWrapping","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","ToggleSwitch","switcherLabel","inline","handleInputCallback","ToggleSwitchEntry","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","editorRef","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","isPopupOpen","setIsPopupOpen","setFocus","hasFocus","activeElement","selectionStart","newModelValue","handleFeelToggle","handleLocalInput","handleOnBlur","trimmedValue","trim","handleLint","lint","syntaxError","report","handleOpenPopup","isOpen","fire","entryId","sourceElement","once","copyHandler","clipboardData","setData","getData","pasteHandler","data","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","TemplatingEntry","Templating","severity","message","source","prefixIdLabel","List","onAdd","onRemove","restProps","elementChanged","useNewItems","addItem","ItemsList","newItem","selector","shouldReset","previousItems","Select","options","option","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","autoResize","rows","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","fn","debounceTime","isNumber","_debounce","$inject","createDragger","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","y","call","domify","PopupComponent","globalRef","delayInitialFocus","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","handleKeydown","handleFocus","activate","left","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","Popup","Title","Body","Footer","draggable","showCloseButton","closeButtonTooltip","rest","context","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","bounds","onMoveEnd","onDragEnd","_Fragment","DragIcon","CloseIcon","closest","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FeelPopup","links","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","link","LaunchIcon","querySelector","getPopupTitle","popupTitle","getPopupPosition","viewportWidth","window","innerWidth","documentElement","clientWidth","viewportHeight","innerHeight","constructor","_eventBus","_config","_isOpen","popupConfig","_openPopup","_closePopup","feelPopupContainer","getFeelPopupLinks","FeelPopupRenderer","_container","_element","_renderPopup","_removePopup","getContainer","body","createElement","appendChild","_emit","render","domNode","removeChild","__init__","feelPopup","feelPopupRenderer"],"mappings":"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"}
|