@bpmn-io/properties-panel 3.22.3 → 3.22.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +35 -35
- package/assets/properties-panel.css +3 -3
- package/dist/assets/properties-panel.css +1505 -1499
- package/dist/index.esm.js +506 -506
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +506 -506
- package/dist/index.js.map +1 -1
- package/package.json +91 -92
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/components/entries/Description.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/entries/FEEL/context/FeelPopupContext.js","../src/components/util/dragger.js","../src/components/Popup.js","../src/components/entries/FEEL/FeelPopup.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/util/translateFallback.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Checkbox.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/features/feel-popup/FeelPopupModule.js","../src/features/feel-popup/index.js"],"sourcesContent":["import { ExternalLinkIcon } from './icons';\n\n/**\n * @typedef { {\n * getElementLabel: (element: object) => string,\n * getTypeLabel: (element: object) => string,\n * getElementIcon: (element: object) => import('preact').Component,\n * getDocumentationRef: (element: object) => string\n * } } HeaderProvider\n */\n\n/**\n * @param {Object} props\n * @param {Object} props.element,\n * @param {HeaderProvider} props.headerProvider\n */\nexport default function Header(props) {\n\n const {\n element,\n headerProvider\n } = props;\n\n const {\n getElementIcon,\n getDocumentationRef,\n getElementLabel,\n getTypeLabel,\n } = headerProvider;\n\n const label = getElementLabel(element);\n const type = getTypeLabel(element);\n const documentationRef = getDocumentationRef && getDocumentationRef(element);\n\n const ElementIcon = getElementIcon(element);\n\n return (<div class=\"bio-properties-panel-header\">\n <div class=\"bio-properties-panel-header-icon\">\n { ElementIcon && <ElementIcon width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" /> }\n </div>\n <div class=\"bio-properties-panel-header-labels\">\n <div title={ type } class=\"bio-properties-panel-header-type\">{ type }</div>\n { label ?\n <div title={ label } class=\"bio-properties-panel-header-label\">{ label }</div> :\n null\n }\n </div>\n <div class=\"bio-properties-panel-header-actions\">\n { documentationRef ?\n <a\n rel=\"noopener\"\n class=\"bio-properties-panel-header-link\"\n href={ documentationRef }\n title=\"Open documentation\"\n target=\"_blank\">\n <ExternalLinkIcon />\n </a> :\n null\n }\n </div>\n </div>);\n}","import {\n createContext\n} from 'preact';\n\nconst DescriptionContext = createContext({\n description: {},\n getDescriptionForId: () => {}\n});\n\nexport default DescriptionContext;\n","import {\n createContext\n} from 'preact';\n\nconst ErrorsContext = createContext({\n errors: {}\n});\n\nexport default ErrorsContext;","/**\n * @typedef {Function} <propertiesPanel.showEntry> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\n/**\n * @typedef {Function} <propertiesPanel.showError> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {string} context.message\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\nimport { createContext } from 'preact';\n\nconst EventContext = createContext({ eventBus: null });\n\nexport default EventContext;\n","import {\n createContext\n} from 'preact';\n\nconst LayoutContext = createContext({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nexport default LayoutContext;","import {\n createContext\n} from 'preact';\n\nconst TooltipContext = createContext({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\nexport default TooltipContext;\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n TooltipContext\n} from '../context';\n\n/**\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const tooltip = useTooltipContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = useContext(TooltipContext);\n\n return getTooltipForId(id, element);\n}\n","import {\n useRef,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\n\nimport { createPortal } from 'preact/compat';\n\n/**\n * @param {Object} props\n * @param {String} props.forId\n * @param {String} props.value\n */\nexport default function TooltipWrapper(props) {\n const {\n forId,\n element\n } = props;\n\n const contextDescription = useTooltipContext(forId, element);\n\n const value = props.value || contextDescription;\n\n if (!value) {\n return props.children;\n }\n\n return <Tooltip { ...props } value={ value } forId={ prefixId(forId) } />;\n}\n\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent,\n direction = 'right',\n position\n } = props;\n\n const [ visible, setShow ] = useState(false);\n const [ focusedViaKeyboard, setFocusedViaKeyboard ] = useState(false);\n\n let timeout = null;\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const showTooltip = async (event) => {\n const show = () => setShow(true);\n\n if (!visible && !timeout) {\n if (event instanceof MouseEvent) {\n timeout = setTimeout(show, 200);\n } else {\n show();\n setFocusedViaKeyboard(true);\n }\n }\n };\n\n const hideTooltip = () => {\n setShow(false);\n setFocusedViaKeyboard(false);\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hideTooltip();\n };\n\n const isTooltipHovered = ({ x, y }) => {\n const tooltip = tooltipRef.current;\n const wrapper = wrapperRef.current;\n\n return tooltip && (\n inBounds(x, y, wrapper.getBoundingClientRect()) ||\n inBounds(x, y, tooltip.getBoundingClientRect())\n );\n };\n\n useEffect(() => {\n const { current } = wrapperRef;\n\n if (!current) {\n return;\n }\n\n const hideHoveredTooltip = (e) => {\n const isFocused = document.activeElement === wrapperRef.current\n || document.activeElement.closest('.bio-properties-panel-tooltip');\n\n if (visible && !isTooltipHovered({ x: e.x, y: e.y }) && !(isFocused && focusedViaKeyboard)) {\n hideTooltip();\n }\n };\n\n const hideFocusedTooltip = (e) => {\n const { relatedTarget } = e;\n const isTooltipChild = (el) => !!el.closest('.bio-properties-panel-tooltip');\n\n\n if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {\n hideTooltip();\n }\n };\n\n document.addEventListener('wheel', hideHoveredTooltip);\n document.addEventListener('focusout', hideFocusedTooltip);\n document.addEventListener('mousemove', hideHoveredTooltip);\n\n return () => {\n document.removeEventListener('wheel', hideHoveredTooltip);\n document.removeEventListener('mousemove', hideHoveredTooltip);\n document.removeEventListener('focusout', hideFocusedTooltip);\n };\n }, [ wrapperRef.current, visible, focusedViaKeyboard ]);\n\n const renderTooltip = () => {\n return (\n <div\n class={ `bio-properties-panel-tooltip ${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 >\n <div class=\"bio-properties-panel-tooltip-content\">\n {value}\n </div>\n <div class=\"bio-properties-panel-tooltip-arrow\" />\n </div>\n );};\n\n return (\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\n ref={ wrapperRef }\n onMouseEnter={ showTooltip }\n onMouseLeave={ ()=> {\n clearTimeout(timeout);\n timeout = null;\n } }\n onFocus={ showTooltip }\n onKeyDown={ hideTooltipViaEscape }\n >\n {props.children}\n {visible ?\n (parent ?\n createPortal(renderTooltip(), parent.current)\n : renderTooltip()\n ) : null\n }\n </div>\n );\n}\n\n\n// helper\nfunction inBounds(x, y, bounds) {\n const { top, right, bottom, left } = bounds;\n return x >= left && x <= right && y >= top && y <= bottom;\n}\n\nfunction getTooltipPosition(refElement) {\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n const top = `${refPosition.top - 10}px`;\n\n return `right: ${right}; top: ${top};`;\n}\n\nfunction isHovered(element) {\n return element.matches(':hover');\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n DescriptionContext\n} from '../context';\n\n/**\n * Accesses the global DescriptionContext and returns a description for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const description = useDescriptionContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = useContext(DescriptionContext);\n\n return getDescriptionForId(id, element);\n}\n","import { useContext } from 'preact/hooks';\n\nimport { ErrorsContext } from '../context';\n\nexport function useError(id) {\n const { errors } = useContext(ErrorsContext);\n\n return errors[ id ];\n}\n\nexport function useErrors() {\n const { errors } = useContext(ErrorsContext);\n\n return errors;\n}","import { useContext, useEffect, useRef } from 'preact/hooks';\n\nimport { EventContext } from '../context';\n\n\n/**\n * Subscribe to an event immediately. Update subscription after inputs changed.\n *\n * @param {string} event\n * @param {Function} callback\n */\nexport function useEvent(event, callback, eventBus) {\n const eventContext = useContext(EventContext);\n\n if (!eventBus) {\n ({ eventBus } = eventContext);\n }\n\n const didMount = useRef(false);\n\n // (1) subscribe immediately\n if (eventBus && !didMount.current) {\n eventBus.on(event, callback);\n }\n\n // (2) update subscription after inputs changed\n useEffect(() => {\n if (eventBus && didMount.current) {\n eventBus.on(event, callback);\n }\n\n didMount.current = true;\n\n return () => {\n if (eventBus) {\n eventBus.off(event, callback);\n }\n };\n }, [ callback, event, eventBus ]);\n}\n","import { useMemo } from 'preact/hooks';\n\nconst KEY_LENGTH = 6;\n\n/**\n * Create a persistent key factory for plain objects without id.\n *\n * @example\n * ```jsx\n * function List({ objects }) {\n * const getKey = useKeyFactory();\n * return (<ol>{\n * objects.map(obj => {\n * const key = getKey(obj);\n * return <li key={key}>obj.name</li>\n * })\n * }</ol>);\n * }\n * ```\n *\n * @param {any[]} dependencies\n * @returns {(element: object) => string}\n */\nexport function useKeyFactory(dependencies = []) {\n const map = useMemo(() => new Map(), dependencies);\n\n const getKey = el => {\n let key = map.get(el);\n\n if (!key) {\n key = Math.random().toString().slice(-KEY_LENGTH);\n map.set(el, key);\n }\n\n return key;\n };\n\n return getKey;\n}\n","import {\n useCallback,\n useContext\n} from 'preact/hooks';\n\nimport {\n LayoutContext\n} from '../context';\n\n/**\n * Creates a state that persists in the global LayoutContext.\n *\n * @example\n * ```jsx\n * function Group(props) {\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\n * }\n * ```\n *\n * @param {(string|number)[]} path\n * @param {any} [defaultValue]\n *\n * @returns {[ any, Function ]}\n */\nexport function useLayoutState(path, defaultValue) {\n const {\n getLayoutForKey,\n setLayoutForKey\n } = useContext(LayoutContext);\n\n const layoutForKey = getLayoutForKey(path, defaultValue);\n\n const setState = useCallback((newValue) => {\n setLayoutForKey(path, newValue);\n }, [ setLayoutForKey ]);\n\n\n return [ layoutForKey, setState ];\n}\n","import {\n useEffect,\n useRef\n} from 'preact/hooks';\n\n/**\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\n * state on updates.\n *\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\n */\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import {\n useCallback,\n useContext,\n useEffect,\n useRef\n} from 'preact/hooks';\n\nimport { isFunction } from 'min-dash';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useEvent } from './useEvent';\n\n/**\n * Subscribe to `propertiesPanel.showEntry`.\n *\n * @param {string} id\n *\n * @returns {import('preact').Ref}\n */\nexport function useShowEntryEvent(id) {\n const { onShow } = useContext(PropertiesPanelContext);\n\n const ref = useRef();\n\n const focus = useRef(false);\n\n const onShowEntry = useCallback((event) => {\n if (event.id === id) {\n onShow();\n\n if (!focus.current) {\n focus.current = true;\n }\n }\n }, [ id ]);\n\n useEffect(() => {\n if (focus.current && ref.current) {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (isFunction(ref.current.select)) {\n ref.current.select();\n }\n\n focus.current = false;\n }\n });\n\n useEvent('propertiesPanel.showEntry', onShowEntry);\n\n return ref;\n}","import {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { useEvent } from './useEvent';\n\n\n/**\n * @callback setSticky\n * @param {boolean} value\n */\n\n/**\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\n * If sticky is observered setSticky(true) will be called.\n * If sticky mode is left, setSticky(false) will be called.\n *\n *\n * @param {Object} ref\n * @param {string} scrollContainerSelector\n * @param {setSticky} setSticky\n */\nexport function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\n\n const [ scrollContainer, setScrollContainer ] = useState(domQuery(scrollContainerSelector));\n\n const updateScrollContainer = useCallback(() => {\n const newScrollContainer = domQuery(scrollContainerSelector);\n\n if (newScrollContainer !== scrollContainer) {\n setScrollContainer(newScrollContainer);\n }\n }, [ scrollContainerSelector, scrollContainer ]);\n\n useEffect(() => {\n updateScrollContainer();\n }, [ updateScrollContainer ]);\n\n useEvent('propertiesPanel.attach', updateScrollContainer);\n useEvent('propertiesPanel.detach', updateScrollContainer);\n\n useEffect(() => {\n const Observer = IntersectionObserver;\n\n // return early if IntersectionObserver is not available\n if (!Observer) {\n return;\n }\n\n // TODO(@barmac): test this\n if (!ref.current || !scrollContainer) {\n return;\n }\n\n const observer = new Observer((entries) => {\n\n // scroll container is unmounted, do not update sticky state\n if (scrollContainer.scrollHeight === 0) {\n return;\n }\n\n entries.forEach(entry => {\n if (entry.intersectionRatio < 1) {\n setSticky(true);\n }\n else if (entry.intersectionRatio === 1) {\n setSticky(false);\n }\n });\n },\n {\n root: scrollContainer,\n rootMargin: '0px 0px 999999% 0px', // Use bottom margin to avoid stickyness when scrolling out to bottom\n threshold: [ 1 ]\n });\n observer.observe(ref.current);\n\n // Unobserve if unmounted\n return () => {\n observer.unobserve(ref.current);\n };\n\n }, [ ref.current, scrollContainer, setSticky ]);\n}\n","import { useCallback, useRef } from 'preact/hooks';\n\n/**\n * Creates a static function reference with changing body.\n * This is necessary when external libraries require a callback function\n * that has references to state variables.\n *\n * Usage:\n * const callback = useStaticCallback((val) => {val === currentState});\n *\n * The `callback` reference is static and can be safely used in external\n * libraries or as a prop that does not cause rerendering of children.\n *\n * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n return useCallback(\n (...args) => callbackRef.current(...args),\n []\n );\n}","import { 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 useDescriptionContext\n} from '../../hooks';\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.forId - id of the entry the description is used for\n * @param {String} props.value\n */\nexport default function Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n\n const contextDescription = useDescriptionContext(forId, element);\n\n const description = value || contextDescription;\n\n if (description) {\n return (\n <div class=\"bio-properties-panel-description\">\n { description }\n </div>\n );\n }\n}\n","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { FeelersEditor } from 'feelers';\nimport { useStaticCallback } from '../../../hooks';\n\nimport { PopupIcon } from '../../icons';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst CodeEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onPopupOpen = noop,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n editor = new FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine,\n 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 <div class=\"bio-properties-panel-feelers-editor__open-popup-placeholder\">Opened in editor</div>\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n\n <button\n type=\"button\"\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen('feelers') }><PopupIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport FeelEditor from '@bpmn-io/feel-editor';\n\nimport { EditorView, lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { PopupIcon } from '../../icons';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst CodeEditor = forwardRef((props, ref) => {\n\n const {\n contentAttributes,\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop,\n onLint = noop,\n onPopupOpen = 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 FeelEditor({\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 <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n <button\n type=\"button\"\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen() }><PopupIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","export function FeelIndicator(props) {\n const {\n active\n } = props;\n\n if (!active) {\n return null;\n }\n\n return <span class=\"bio-properties-panel-feel-indicator\">\n =\n </span>;\n}","import classNames from 'classnames';\nimport { FeelIcon as FeelIconSvg } from '../../icons';\n\nconst noop = () => {};\n\n/**\n * @param {Object} props\n * @param {Object} props.label\n * @param {String} props.feel\n */\nexport default function FeelIcon(props) {\n\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop\n } = props;\n\n const feelRequiredLabel = 'FEEL expression is mandatory';\n const feelOptionalLabel = `Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`;\n\n const handleClick = e => {\n onClick(e);\n\n // when pointer event was created from keyboard, keep focus on button\n if (!e.pointerType) {\n e.stopPropagation();\n }\n };\n\n return (\n <button\n type=\"button\"\n class={ classNames('bio-properties-panel-feel-icon',\n active ? 'active' : null,\n feel === 'required' ? 'required' : 'optional') }\n onClick={ handleClick }\n disabled={ feel === 'required' || disabled }\n title={\n feel === 'required' ? feelRequiredLabel : feelOptionalLabel\n }\n >\n <FeelIconSvg />\n </button>\n );\n}","import {\n createContext\n} from 'preact';\n\nconst FeelPopupContext = createContext({\n open: () => {},\n close: () => {},\n source: null\n});\n\nexport default FeelPopupContext;","import { domify } from 'min-dom';\n\n/**\n * Add a dragger that calls back the passed function with\n * { event, delta } on drag.\n *\n * @example\n *\n * function dragMove(event, delta) {\n * // we are dragging (!!)\n * }\n *\n * domElement.addEventListener('dragstart', dragger(dragMove));\n *\n * @param {Function} fn\n * @param {Element} [dragPreview]\n *\n * @return {Function} drag start callback function\n */\nexport function createDragger(fn, dragPreview) {\n\n let self;\n\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n\n self = this;\n\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n\n return onDragStart;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction emptyCanvas() {\n return domify('<canvas width=\"0\" height=\"0\" />');\n}","import { createPortal, forwardRef } from 'preact/compat';\n\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport { query as domQuery } from 'min-dom';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon, CloseIcon } from './icons';\n\nimport { createDragger } from './util/dragger';\nimport { useEvent } from '../hooks/useEvent';\n\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {HTMLElement} [props.container]\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{x: number, y: number}} [props.position]\n * @param {number} [props.width]\n * @param {number} [props.height]\n * @param {Function} props.onClose\n * @param {Function} [props.onPostActivate]\n * @param {Function} [props.onPostDeactivate]\n * @param {boolean} [props.returnFocus]\n * @param {boolean} [props.closeOnEscape]\n * @param {string} props.title\n * @param {Ref} [ref]\n */\nfunction PopupComponent(props, globalRef) {\n\n const {\n container,\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop,\n onPostDeactivate = noop,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n\n const focusTrapRef = useRef(null);\n const localRef = useRef(null);\n const popupRef = globalRef || localRef;\n\n const containerNode = useMemo(() => getContainerNode(container), [ container ]);\n\n const handleKeydown = event => {\n\n // do not allow keyboard events to bubble\n event.stopPropagation();\n\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n\n let style = {};\n\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px'\n };\n }\n\n if (width) {\n style.width = width + 'px';\n }\n\n if (height) {\n style.height = height + 'px';\n }\n\n useEffect(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n\n return () => { popupRef.current.removeEventListener('focusin', handleFocus); };\n }, [ popupRef ]);\n\n useEffect(() => {\n if (popupRef.current) {\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus\n });\n\n focusTrapRef.current.activate();\n }\n\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [ popupRef ]);\n\n useEvent('propertiesPanel.detach', onClose);\n\n return createPortal(\n <div\n aria-label={ title }\n tabIndex={ -1 }\n ref={ popupRef }\n onKeyDown={ handleKeydown }\n role=\"dialog\"\n class={ classNames('bio-properties-panel-popup', className) }\n style={ style }>{ props.children }</div>\n , containerNode || document.body\n );\n}\n\nexport const Popup = forwardRef(PopupComponent);\n\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\n\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n emit = () => {},\n title,\n 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 // notify interested parties\n emit('dragover', { newPosition, delta });\n };\n\n const onMoveStart = (event) => {\n\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n\n event.stopPropagation();\n\n const popupParent = getPopupParent(titleRef.current);\n\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top\n };\n\n // notify interested parties\n emit('dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n // notify interested parties\n emit('dragend');\n };\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-popup__header',\n draggable && 'draggable',\n className\n ) }\n ref={ titleRef }\n draggable={ draggable }\n onDragStart={ onMoveStart }\n onDragEnd={ onMoveEnd }\n { ...rest }>\n { draggable && (\n <>\n <div ref={ dragPreviewRef } class=\"bio-properties-panel-popup__drag-preview\"></div>\n <div class=\"bio-properties-panel-popup__drag-handle\">\n <DragIcon />\n </div>\n </>\n )}\n <div class=\"bio-properties-panel-popup__title\">{ title }</div>\n { children }\n { showCloseButton && (\n <button\n title={ closeButtonTooltip }\n class=\"bio-properties-panel-popup__close\"\n onClick={ onClose }>\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\nfunction Body(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__body', className) } { ...rest }>\n { children }\n </div>\n );\n}\n\nfunction Footer(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__footer', className) } { ...rest }>\n { props.children }\n </div>\n );\n}\n\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\n\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction getContainerNode(node) {\n if (typeof node === 'string') {\n return domQuery(node);\n }\n\n return node;\n}","import {\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { FeelPopupContext } from './context';\n\nimport { usePrevious } from '../../../hooks';\n\nimport { Popup } from '../../Popup';\n\nimport CodeEditor from './FeelEditor';\n\nimport TemplatingEditor from '../templating/TemplatingEditor';\nimport { HelpIcon } from '../../icons';\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n\n/**\n * FEEL popup component, built as a singleton. Emits lifecycle events as follows:\n * - `feelPopup.open` - fired before the popup is mounted\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport default function FEELPopupRoot(props) {\n const {\n element,\n eventBus = { fire() {}, on() {}, off() {} },\n popupContainer\n } = props;\n\n const prevElement = usePrevious(element);\n\n const [ popupConfig, setPopupConfig ] = useState({});\n const [ open, setOpen ] = useState(false);\n const [ source, setSource ] = useState(null);\n const [ sourceElement, setSourceElement ] = useState(null);\n\n const emit = (type, context) => {\n eventBus.fire('feelPopup.' + type, context);\n };\n\n const isOpen = useCallback(() => {\n return !!open;\n }, [ open ]);\n\n useUpdateEffect(() => {\n if (!open) {\n emit('closed');\n }\n }, [ open ]);\n\n const handleOpen = (entryId, config, _sourceElement) => {\n setSource(entryId);\n setPopupConfig(config);\n setOpen(true);\n setSourceElement(_sourceElement);\n emit('open');\n };\n\n const handleClose = (event = { }) => {\n const { id } = event;\n if (id && id !== source) {\n return;\n }\n\n setOpen(false);\n setSource(null);\n };\n\n const feelPopupContext = {\n open: handleOpen,\n close: handleClose,\n source\n };\n\n // close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270\n useEffect(() => {\n if (element && prevElement && element !== prevElement) {\n handleClose();\n }\n }, [ element ]);\n\n // allow close and open via events\n useEffect(() => {\n\n const handlePopupOpen = (context) => {\n const {\n entryId,\n popupConfig,\n sourceElement\n } = context;\n\n handleOpen(entryId, popupConfig, sourceElement);\n };\n\n const handleIsOpen = () => {\n return isOpen();\n };\n\n eventBus.on('feelPopup._close', handleClose);\n eventBus.on('feelPopup._open', handlePopupOpen);\n eventBus.on('feelPopup._isOpen', handleIsOpen);\n\n return () => {\n eventBus.off('feelPopup._close', handleClose);\n eventBus.off('feelPopup._open', handleOpen);\n eventBus.off('feelPopup._isOpen', handleIsOpen);\n };\n\n }, [ eventBus, isOpen ]);\n\n return (\n <FeelPopupContext.Provider value={ feelPopupContext }>\n { open && (\n <FeelPopupComponent\n onClose={ handleClose }\n container={ popupContainer }\n sourceElement={ sourceElement }\n emit={ emit }\n { ...popupConfig } />\n )}\n { props.children }\n </FeelPopupContext.Provider>\n );\n}\n\nfunction FeelPopupComponent(props) {\n const {\n container,\n id,\n hostLanguage,\n onInput,\n onClose,\n position,\n singleLine,\n sourceElement,\n title,\n tooltipContainer,\n type,\n value,\n variables,\n emit\n } = props;\n\n const editorRef = useRef();\n const popupRef = useRef();\n\n const isAutoCompletionOpen = useRef(false);\n\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n\n const onKeyDownCapture = (event) => {\n\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n\n const onKeyDown = (event) => {\n\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n // we need to do check this because the editor is not\n // stop propagating the keydown event\n // cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n emit('opened', { domNode: popupRef.current });\n return () => emit('close', { domNode: popupRef.current });\n }, []);\n\n useEffect(() => {\n\n // Set focus on editor when popup is opened\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, [ editorRef ]);\n\n return (\n <Popup\n container={ container }\n className=\"bio-properties-panel-feel-popup\"\n emit={ emit }\n position={ position }\n title={ title }\n onClose={ onClose }\n\n // handle focus manually on deactivate\n returnFocus={ false }\n closeOnEscape={ false }\n delayInitialFocus={ false }\n onPostDeactivate={ handleSetReturnFocus }\n height={ FEEL_POPUP_HEIGHT }\n width={ FEEL_POPUP_WIDTH }\n ref={ popupRef }\n >\n <Popup.Title\n title={ title }\n emit={ emit }\n showCloseButton={ true }\n closeButtonTooltip=\"Save and close\"\n onClose={ onClose }\n draggable>\n {type === 'feel' && (\n <a href=\"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\n Learn FEEL expressions\n <HelpIcon />\n </a>\n )\n }\n {type === 'feelers' && (\n <a href=\"https://docs.camunda.io/docs/components/modeler/forms/configuration/forms-config-templating-syntax/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\n Learn templating\n <HelpIcon />\n </a>\n )\n }\n </Popup.Title>\n <Popup.Body>\n <div\n onKeyDownCapture={ onKeyDownCapture }\n onKeyDown={ onKeyDown }\n class=\"bio-properties-panel-feel-popup__body\">\n\n {\n type === 'feel' && (\n <CodeEditor\n enableGutters={ true }\n id={ prefixId(id) }\n name={ id }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n\n {\n type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(id) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ id }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n </div>\n </Popup.Body>\n </Popup>\n );\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');\n}\n\n/**\n * This hook behaves like useEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import Description from './Description';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classNames from 'classnames';\nimport Tooltip from './Tooltip';\n\nexport function ToggleSwitch(props) {\n const {\n id,\n label,\n onInput,\n value,\n switcherLabel,\n inline,\n onFocus,\n onBlur,\n inputRef,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = async () => {\n onInput(!value);\n };\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class={ classNames(\n 'bio-properties-panel-toggle-switch',\n { inline }\n ) }>\n <label class=\"bio-properties-panel-label\"\n for={ prefixId(id) }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <div class=\"bio-properties-panel-field-wrapper\">\n <label class=\"bio-properties-panel-toggle-switch__switcher\">\n <input\n ref={ inputRef }\n id={ prefixId(id) }\n class=\"bio-properties-panel-input\"\n type=\"checkbox\"\n onFocus={ onFocus }\n onBlur={ onBlur }\n name={ id }\n onInput={ handleInput }\n checked={ !!localValue } />\n <span class=\"bio-properties-panel-toggle-switch__slider\" />\n </label>\n { switcherLabel && <p class=\"bio-properties-panel-toggle-switch__label\">{ switcherLabel }</p> }\n </div>\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {String} props.switcherLabel\n * @param {Boolean} props.inline\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function ToggleSwitchEntry(props) {\n const {\n element,\n id,\n description,\n label,\n switcherLabel,\n inline,\n getValue,\n setValue,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-toggle-switch-entry\" data-entry-id={ id }>\n <ToggleSwitch\n id={ id }\n label={ label }\n value={ value }\n onInput={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel }\n inline={ inline }\n tooltip={ tooltip }\n element={ element } />\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError\n} from '../../hooks';\n\nexport function NumberField(props) {\n\n const {\n debounce,\n disabled,\n displayLabel = true,\n id,\n inputRef,\n label,\n max,\n min,\n onInput,\n step,\n value = '',\n onFocus,\n onBlur\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce((target) => {\n\n if (target.validity.valid) {\n onInput(target.value ? parseFloat(target.value) : undefined);\n }\n });\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-numberfield\">\n {displayLabel && <label for={ prefixId(id) } class=\"bio-properties-panel-label\">{ label }</label> }\n <input\n id={ prefixId(id) }\n ref={ inputRef }\n type=\"number\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n max={ max }\n min={ min }\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n step={ step }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.description\n * @param {Boolean} props.disabled\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {String} props.label\n * @param {String} props.max\n * @param {String} props.min\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {String} props.step\n * @param {Function} props.validate\n */\nexport default function NumberFieldEntry(props) {\n const {\n debounce,\n description,\n disabled,\n element,\n getValue,\n id,\n label,\n max,\n min,\n setValue,\n step,\n onFocus,\n onBlur,\n validate\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value, 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 CodeEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { FEEL_POPUP_WIDTH } from './FeelPopup';\n\nimport { FeelPopupContext } from './context';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\nconst noop = () => { };\n\nfunction FeelTextfieldComponent(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\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 open: openPopup,\n source: popupSource\n } = useContext(FeelPopupContext);\n\n const popuOpen = popupSource === id;\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const setLocalValue = newValue => {\n _setLocalValue(newValue);\n\n if (typeof newValue === 'undefined' || newValue === '' || newValue === '=') {\n handleInputCallback(undefined);\n } else {\n handleInputCallback(newValue);\n }\n\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleLint = useStaticCallback(lint => {\n\n if (!(lint && lint.length)) {\n onError(undefined);\n return;\n }\n\n onError('Unparsable FEEL expression.');\n });\n\n const handlePopupOpen = (type = 'feel') => {\n const popupOptions = {\n id,\n hostLanguage,\n onInput: handleLocalInput,\n position: calculatePopupPosition(containerRef.current),\n singleLine,\n title: getPopupTitle(element, label),\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n };\n\n openPopup(id, popupOptions, editorRef.current);\n };\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n // copy-paste integration\n useEffect(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n\n const pasteHandler = event => {\n if (feelActive || popuOpen) {\n return;\n }\n\n const data = event.clipboardData.getData('application/FEEL');\n\n if (data) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\n }\n };\n containerRef.current.addEventListener('copy', copyHandler);\n containerRef.current.addEventListener('cut', copyHandler);\n containerRef.current.addEventListener('paste', pasteHandler);\n\n return () => {\n containerRef.current.removeEventListener('copy', copyHandler);\n containerRef.current.removeEventListener('cut', copyHandler);\n containerRef.current.removeEventListener('paste', pasteHandler);\n };\n }, [ containerRef, feelActive, handleFeelToggle, setFocus ]);\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-feel-entry',\n { 'feel-active': feelActive }\n ) }>\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n <FeelIcon\n label={ label }\n feel={ feel }\n onClick={ handleFeelToggle }\n active={ feelActive }></FeelIcon>\n </label>\n\n <div class=\"bio-properties-panel-feel-container\" ref={ containerRef }>\n <FeelIndicator\n active={ feelActive }\n disabled={ feel !== 'optional' || disabled }\n onClick={ handleFeelToggle }\n />\n {feelActive ?\n <CodeEditor\n name={ id }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n disabled={ disabled }\n popupOpen={ popuOpen }\n onFeelToggle={ () => { handleFeelToggle(); setFocus(true); } }\n onLint={ handleLint }\n onPopupOpen={ handlePopupOpen }\n placeholder={ placeholder }\n value={ feelOnlyValue }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ popuOpen }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onPopupOpen={ handlePopupOpen }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\nconst FeelTextfield = withAutoClosePopup(FeelTextfieldComponent);\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\n\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <NumberField\n id={ id }\n debounce={ debounce }\n disabled={ disabled }\n displayLabel={ false }\n inputRef={ inputRef }\n max={ max }\n min={ min }\n onInput={ onInput }\n step={ step }\n value={ value }\n onFocus={ onFocus }\n onBlur={ onBlur }\n />;\n});\n\n\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n 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\n\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n const handleChange = ({ target }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <input\n ref={ inputRef }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ value }\n disabled={ disabled } />;\n});\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string} [props.placeholder]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop,\n example,\n variables,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, validate ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = temporaryError || localError || validationError;\n\n return (\n <div\n class={ classnames(\n props.class,\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <FeelTextfield\n { ...props }\n debounce={ debounce }\n disabled={ disabled }\n feel={ feel }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n onFocus={ onFocus }\n onBlur={ onBlur }\n placeholder={ placeholder }\n example={ example }\n hostLanguage={ hostLanguage }\n singleLine={ singleLine }\n show={ show }\n value={ value }\n variables={ variables }\n tooltipContainer={ tooltipContainer }\n OptionalComponent={ props.OptionalComponent }\n tooltip={ tooltip } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.max\n * @param {String} props.min\n * @param {String} props.step\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelNumberEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @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 {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelToggleSwitchEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelCheckboxEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.hostLanguage\n * @param {Boolean} props.singleLine\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTemplatingEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\n}\n\nexport function isEdited(node) {\n if (!node) {\n return false;\n }\n\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n\n return !!node.value || node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction calculatePopupPosition(element) {\n const { top, left } = element.getBoundingClientRect();\n\n return {\n left: left - FEEL_POPUP_WIDTH - 20,\n top: top\n };\n}\n\n// todo(pinussilvestrus): make this configurable in the future\nfunction getPopupTitle(element, label) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\n}\n\n\nfunction withAutoClosePopup(Component) {\n return function(props) {\n const { id } = props;\n const {\n close\n } = useContext(FeelPopupContext);\n\n const closePopup = useStaticCallback(close);\n\n useEffect(() => {\n return () => {\n closePopup({ id });\n };\n }, [ ]);\n\n return <Component { ...props } />;\n };\n}\n\n","import {\n useState,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport {\n assign,\n get,\n isArray,\n set\n} from 'min-dash';\n\nimport Header from './components/Header';\n\nimport Group from './components/Group';\n\nimport Placeholder from './components/Placeholder';\n\nimport {\n DescriptionContext,\n ErrorsContext,\n EventContext,\n LayoutContext,\n PropertiesPanelContext,\n TooltipContext\n} from './context';\n\nimport { FeelPopupRoot } from './components/entries/FEEL';\n\nimport { useEvent } from './hooks';\n\nconst DEFAULT_LAYOUT = {};\n\nconst DEFAULT_DESCRIPTION = {};\n\nconst DEFAULT_TOOLTIP = {};\n\n\n/**\n * @typedef { {\n * component: import('preact').Component,\n * id: String,\n * isEdited?: Function\n * } } EntryDefinition\n *\n * @typedef { {\n * autoFocusEntry: String,\n * autoOpen?: Boolean,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * remove: (event: MouseEvent) => void\n * } } ListItemDefinition\n *\n * @typedef { {\n * add: (event: MouseEvent) => void,\n * component: import('preact').Component,\n * element: Object,\n * id: String,\n * items: Array<ListItemDefinition>,\n * label: String,\n * shouldOpen?: Boolean\n * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean\n * } } GroupDefinition\n *\n * @typedef { {\n * [id: String]: GetDescriptionFunction\n * } } DescriptionConfig\n *\n * @typedef { {\n * [id: String]: GetTooltipFunction\n * } } TooltipConfig\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetDescriptionFunction\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetTooltipFunction\n *\n * @typedef { {\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\n * } } PlaceholderProvider\n *\n */\n\n\n/**\n * A basic properties panel component. Describes *how* content will be rendered, accepts\n * data from implementor to describe *what* will be rendered.\n *\n * @param {Object} props\n * @param {Object|Array} props.element\n * @param {import('./components/Header').HeaderProvider} props.headerProvider\n * @param {PlaceholderProvider} [props.placeholderProvider]\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\n * @param {Object} [props.layoutConfig]\n * @param {Function} [props.layoutChanged]\n * @param {DescriptionConfig} [props.descriptionConfig]\n * @param {Function} [props.descriptionLoaded]\n * @param {TooltipConfig} [props.tooltipConfig]\n * @param {Function} [props.tooltipLoaded]\n * @param {HTMLElement} [props.feelPopupContainer]\n * @param {Object} [props.eventBus]\n */\nexport default function PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n feelPopupContainer,\n eventBus\n } = props;\n\n // set-up layout context\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n\n setLayout(newLayout);\n }, [ layoutConfig ]);\n\n useEffect(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [ layout, layoutChanged ]);\n\n const getLayoutForKey = (key, defaultValue) => {\n return get(layout, key, defaultValue);\n };\n\n const setLayoutForKey = (key, config) => {\n const newLayout = assign({}, layout);\n set(newLayout, key, config);\n setLayout(newLayout);\n };\n\n const layoutContext = {\n layout,\n setLayout,\n getLayoutForKey,\n setLayoutForKey\n };\n\n // set-up description context\n const description = useMemo(() => createDescriptionContext(descriptionConfig), [ descriptionConfig ]);\n\n useEffect(() => {\n if (typeof descriptionLoaded === 'function') {\n descriptionLoaded(description);\n }\n }, [ description, descriptionLoaded ]);\n\n\n const getDescriptionForId = (id, element) => {\n return description[id] && description[id](element);\n };\n\n const descriptionContext = {\n description,\n getDescriptionForId\n };\n\n // set-up tooltip context\n const tooltip = useMemo(() => createTooltipContext(tooltipConfig), [ tooltipConfig ]);\n\n useEffect(() => {\n if (typeof tooltipLoaded === 'function') {\n tooltipLoaded(tooltip);\n }\n }, [ tooltip, tooltipLoaded ]);\n\n const getTooltipForId = (id, element) => {\n return tooltip[id] && tooltip[id](element);\n };\n\n const tooltipContext = {\n tooltip,\n getTooltipForId\n };\n\n const [ errors, setErrors ] = useState({});\n\n const onSetErrors = ({ errors }) => setErrors(errors);\n\n useEvent('propertiesPanel.setErrors', onSetErrors, eventBus);\n\n const errorsContext = {\n errors\n };\n\n const eventContext = {\n eventBus\n };\n\n const propertiesPanelContext = {\n element\n };\n\n // empty state\n if (placeholderProvider && !element) {\n return <Placeholder { ...placeholderProvider.getEmpty() } />;\n }\n\n // multiple state\n if (placeholderProvider && isArray(element)) {\n return <Placeholder { ...placeholderProvider.getMultiple() } />;\n }\n\n return (\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n <ErrorsContext.Provider value={ errorsContext }>\n <DescriptionContext.Provider value={ descriptionContext }>\n <TooltipContext.Provider value={ tooltipContext }>\n <LayoutContext.Provider value={ layoutContext }>\n <EventContext.Provider value={ eventContext }>\n <FeelPopupRoot\n element={ element }\n eventBus={ eventBus }\n popupContainer={ feelPopupContainer }>\n <div class=\"bio-properties-panel\">\n <Header\n element={ element }\n headerProvider={ headerProvider } />\n <div class=\"bio-properties-panel-scroll-container\">\n {\n groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n\n return (\n <Component\n { ...group }\n key={ id }\n element={ element } />\n );\n })\n }\n </div>\n </div>\n </FeelPopupRoot>\n </EventContext.Provider>\n </LayoutContext.Provider>\n </TooltipContext.Provider>\n </DescriptionContext.Provider>\n </ErrorsContext.Provider>\n </PropertiesPanelContext.Provider>\n );\n}\n\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\n\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\n\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useLayoutEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\n/**\n *\n * @param {object} props\n * @param {string} [props.class]\n * @param {import('preact').Component[]} [props.menuItems]\n * @returns\n */\nexport function DropdownButton(props) {\n const {\n class: className,\n children,\n menuItems = []\n } = props;\n\n const dropdownRef = useRef(null);\n const menuRef = useRef(null);\n\n const [ open, setOpen ] = useState(false);\n const close = () => setOpen(false);\n\n function onDropdownToggle(event) {\n if (menuRef.current && menuRef.current.contains(event.target)) {\n return;\n }\n\n event.stopPropagation();\n\n setOpen(open => !open);\n }\n\n function onActionClick(event, action) {\n event.stopPropagation();\n\n close();\n action();\n }\n\n useGlobalClick([ dropdownRef.current ], () => close());\n\n return (\n <div\n class={ classnames('bio-properties-panel-dropdown-button', { open }, className) }\n onClick={ onDropdownToggle }\n ref={ dropdownRef }\n >\n { children }\n <div class=\"bio-properties-panel-dropdown-button__menu\" ref={ menuRef }>\n { menuItems.map((item, index) => (\n <MenuItem onClick={ onActionClick } item={ item } key={ index } />\n )) }\n </div>\n </div>\n );\n}\n\nfunction MenuItem({ item, onClick }) {\n if (item.separator) {\n return <div class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--separator\" />;\n }\n\n if (item.action) {\n return (<button\n type=\"button\"\n class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--actionable\"\n onClick={ event => onClick(event, item.action) }\n >\n {item.entry}\n </button>);\n }\n\n return <div\n class=\"bio-properties-panel-dropdown-button__menu-item\"\n >\n {item.entry}\n </div>;\n}\n\n/**\n *\n * @param {Array<null | Element>} ignoredElements\n * @param {Function} callback\n */\nfunction useGlobalClick(ignoredElements, callback) {\n useEffect(() => {\n\n /**\n * @param {MouseEvent} event\n */\n function listener(event) {\n if (ignoredElements.some(element => element && element.contains(event.target))) {\n return;\n }\n\n callback();\n }\n\n document.addEventListener('click', listener, { capture: true });\n\n return () => document.removeEventListener('click', listener, { capture: true });\n }, [ ...ignoredElements, callback ]);\n}\n","import classnames from 'classnames';\n\nexport function HeaderButton(props) {\n const {\n children = null,\n class: classname,\n onClick = () => {},\n ...otherProps\n } = props;\n\n return <button\n type=\"button\"\n { ...otherProps }\n onClick={ onClick }\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\n { children }\n </button>;\n}\n","/**\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 useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\nfunction Checkbox(props) {\n const {\n id,\n label,\n onChange,\n disabled,\n value = false,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.checked);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n const ref = useShowEntryEvent(id);\n\n return (\n <div class=\"bio-properties-panel-checkbox\">\n <input\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ localValue }\n disabled={ disabled } />\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n </div>\n );\n}\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {boolean} [props.disabled]\n */\nexport default function CheckboxEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n\n const error = useError(id);\n\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-entry\" data-entry-id={ id }>\n <Checkbox\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onChange={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import { useCallback, useEffect, useState, useMemo, useRef } from 'preact/hooks';\nimport { useStaticCallback, useShowEntryEvent } from '../../../hooks';\nimport { isFunction } from 'min-dash';\nimport { useError } from '../../../hooks';\nimport classnames from 'classnames';\nimport Description from '../Description';\nimport TemplatingEditor from './TemplatingEditor';\n\nconst noop = () => { };\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n */\nexport default function TemplatingEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n tooltipContainer,\n validate,\n show = noop,\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value, 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 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,\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 const handleInputCallback = useMemo(() => {\n return debounce((target) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n\n autoResize && resizeToContents(e.target);\n\n setLocalValue(e.target.value);\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n\n 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={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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 = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n\n setLocalError(newValidationError);\n };\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <TextArea\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n rows={ rows }\n debounce={ debounce }\n monospace={ monospace }\n disabled={ disabled }\n 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 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 const handleInputCallback = useMemo(() => {\n return debounce((target) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textfield\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <input\n ref={ ref }\n id={ prefixId(id) }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n 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 = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n\n setLocalError(newValidationError);\n };\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Textfield\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n 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,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\n\nexport default function debounceInput(debounceDelay) {\n return function _debounceInput(fn) {\n if (debounceDelay !== false) {\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return debounce(fn, debounceTime);\n } else {\n return fn;\n }\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","export default class FeelPopupModule {\n\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._eventBus.fire('feelPopup._isOpen');\n }\n\n /**\n * Open the FEEL popup.\n *\n * @param {String} entryId\n * @param {Object} popupConfig\n * @param {HTMLElement} sourceElement\n */\n open(entryId, popupConfig, sourceElement) {\n return this._eventBus.fire('feelPopup._open', {\n entryId,\n popupConfig,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n return this._eventBus.fire('feelPopup._close');\n }\n}\n\nFeelPopupModule.$inject = [ 'eventBus' ];","import feelPopup from './FeelPopupModule';\n\nexport default {\n feelPopup: [ 'type', feelPopup ]\n};\n"],"names":["Header","props","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","class","children","_jsx","width","height","viewBox","title","rel","href","target","ExternalLinkIcon","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","useContext","TooltipWrapper","forId","contextDescription","value","Tooltip","prefixId","parent","direction","position","visible","setShow","useState","focusedViaKeyboard","setFocusedViaKeyboard","timeout","wrapperRef","useRef","tooltipRef","showTooltip","event","show","MouseEvent","setTimeout","hideTooltip","hideTooltipViaEscape","e","code","isTooltipHovered","x","y","current","wrapper","inBounds","getBoundingClientRect","useEffect","hideHoveredTooltip","isFocused","document","activeElement","closest","hideFocusedTooltip","relatedTarget","isTooltipChild","el","isHovered","addEventListener","removeEventListener","renderTooltip","role","style","getTooltipPosition","ref","onClick","stopPropagation","tabIndex","onMouseEnter","onMouseLeave","clearTimeout","onFocus","onKeyDown","createPortal","bounds","top","right","bottom","left","refElement","refPosition","matches","useDescriptionContext","useError","useErrors","useEvent","callback","eventContext","didMount","on","off","KEY_LENGTH","useKeyFactory","dependencies","map","useMemo","Map","getKey","key","get","Math","random","toString","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","useCallback","newValue","usePrevious","useShowEntryEvent","onShow","PropertiesPanelContext","focus","onShowEntry","isFunction","select","useStickyIntersectionObserver","scrollContainerSelector","setSticky","scrollContainer","setScrollContainer","domQuery","updateScrollContainer","newScrollContainer","Observer","IntersectionObserver","observer","entries","scrollHeight","forEach","entry","intersectionRatio","root","rootMargin","threshold","observe","unobserve","useStaticCallback","callbackRef","args","useElementVisible","setVisible","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","Description","noop","useBufferedFocus","editor","buffer","setBuffer","undefined","offset","Infinity","CodeEditor","forwardRef","onInput","disabled","tooltipContainer","enableGutters","onLint","onPopupOpen","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","localValue","setLocalValue","handleInput","FeelersEditor","container","onChange","lineWrap","innerHTML","setValue","handleClick","classNames","name","PopupIcon","onFeelToggle","placeholder","variables","selection","getSelection","range","ranges","mainIndex","from","to","FeelEditor","extensions","lineNumbers","EditorView","lineWrapping","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","FeelPopupContext","close","source","createDragger","fn","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","call","domify","PopupComponent","globalRef","className","delayInitialFocus","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","containerNode","getContainerNode","handleKeydown","handleFocus","activate","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","body","Popup","Title","Body","Footer","draggable","emit","showCloseButton","closeButtonTooltip","rest","context","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","onMoveEnd","onDragEnd","_Fragment","DragIcon","CloseIcon","node","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FEELPopupRoot","fire","popupContainer","prevElement","popupConfig","setPopupConfig","setSource","sourceElement","setSourceElement","isOpen","useUpdateEffect","handleOpen","entryId","config","_sourceElement","handleClose","feelPopupContext","handlePopupOpen","handleIsOpen","FeelPopupComponent","editorRef","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","domNode","HelpIcon","TemplatingEditor","querySelector","effect","deps","isMounted","ToggleSwitch","switcherLabel","inline","onBlur","handleInputCallback","for","checked","ToggleSwitchEntry","getValue","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","error","FeelTextfieldComponent","onError","OptionalComponent","OptionalFeelInput","_setLocalValue","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","openPopup","popupSource","popuOpen","setFocus","hasFocus","contains","selectionStart","handleFeelToggle","handleLocalInput","handleLint","lint","length","popupOptions","calculatePopupPosition","getPopupTitle","copyHandler","clipboardData","setData","getData","pasteHandler","data","FeelTextfield","withAutoClosePopup","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","handleChange","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","popupTitle","closePopup","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","feelPopupContainer","createLayout","useUpdateLayoutEffect","newLayout","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","FeelPopupRoot","group","overrides","defaults","DropdownButton","menuItems","dropdownRef","menuRef","onDropdownToggle","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","translateFallback","template","replacements","replace","_","CollapsibleEntry","remove","translate","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","ListGroup","add","items","shouldSort","console","warn","localItems","setLocalItems","addTriggered","setAddTriggered","openItemIds","getNewItemIds","hasItems","handleAddClick","hasError","CreateIcon","numOfItems","includes","newItems","oldItems","newIds","oldIds","filter","itemId","Checkbox","handleChangeCallback","CheckboxEntry","TemplatingEntry","Templating","severity","message","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","_debounceInput","debounceTime","isNumber","$inject","FeelPopupModule","constructor","_eventBus","feelPopup"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBe,SAASA,MAAMA,CAACC,KAAK,EAAE;EAEpC,MAAM;IACJC,OAAO;AACPC,IAAAA,cAAAA;AACF,GAAC,GAAGF,KAAK,CAAA;EAET,MAAM;IACJG,cAAc;IACdC,mBAAmB;IACnBC,eAAe;AACfC,IAAAA,YAAAA;AACF,GAAC,GAAGJ,cAAc,CAAA;AAElB,EAAA,MAAMK,KAAK,GAAGF,eAAe,CAACJ,OAAO,CAAC,CAAA;AACtC,EAAA,MAAMO,IAAI,GAAGF,YAAY,CAACL,OAAO,CAAC,CAAA;AAClC,EAAA,MAAMQ,gBAAgB,GAAGL,mBAAmB,IAAIA,mBAAmB,CAACH,OAAO,CAAC,CAAA;AAE5E,EAAA,MAAMS,WAAW,GAAGP,cAAc,CAACF,OAAO,CAAC,CAAA;AAE3C,EAAA,OAAQU,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,6BAA6B;AAAAC,IAAAA,QAAA,GAC9CC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,kCAAkC;AAAAC,MAAAA,QAAA,EACzCH,WAAW,IAAII,GAAA,CAACJ,WAAW,EAAA;AAACK,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,IAAI;AAACC,QAAAA,OAAO,EAAC,WAAA;OAAa,CAAA;KACvE,CAAC,EACNN,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,oCAAoC;AAAAC,MAAAA,QAAA,GAC7CC,GAAA,CAAA,KAAA,EAAA;AAAKI,QAAAA,KAAK,EAAGV,IAAM;AAACI,QAAAA,KAAK,EAAC,kCAAkC;AAAAC,QAAAA,QAAA,EAAGL,IAAAA;AAAI,OAAO,CAAC,EACzED,KAAK,GACLO,GAAA,CAAA,KAAA,EAAA;AAAKI,QAAAA,KAAK,EAAGX,KAAO;AAACK,QAAAA,KAAK,EAAC,mCAAmC;AAAAC,QAAAA,QAAA,EAAGN,KAAAA;OAAY,CAAC,GAC9E,IAAI,CAAA;KAEH,CAAC,EACNO,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,qCAAqC;MAAAC,QAAA,EAC5CJ,gBAAgB,GAChBK,GAAA,CAAA,GAAA,EAAA;AACEK,QAAAA,GAAG,EAAC,UAAU;AACdP,QAAAA,KAAK,EAAC,kCAAkC;AACxCQ,QAAAA,IAAI,EAAGX,gBAAkB;AACzBS,QAAAA,KAAK,EAAC,oBAAoB;AAC1BG,QAAAA,MAAM,EAAC,QAAQ;AAAAR,QAAAA,QAAA,EACfC,GAAA,CAACQ,gBAAgB,EAAE,EAAA,CAAA;AAAC,OACnB,CAAC,GACJ,IAAA;AAAI,KAEH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AACR;;ACzDMC,MAAAA,kBAAkB,GAAGC,aAAa,CAAC;EACvCC,WAAW,EAAE,EAAE;EACfC,mBAAmB,EAAEA,MAAM,EAAC;AAC9B,CAAC;;ACHKC,MAAAA,aAAa,GAAGH,aAAa,CAAC;AAClCI,EAAAA,MAAM,EAAE,EAAC;AACX,CAAC;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBMC,MAAAA,YAAY,GAAGL,aAAa,CAAC;AAAEM,EAAAA,QAAQ,EAAE,IAAA;AAAK,CAAC;;AC7B/CC,MAAAA,aAAa,GAAGP,aAAa,CAAC;EAClCQ,MAAM,EAAE,EAAE;AACVC,EAAAA,SAAS,EAAEA,MAAM,EAAE;AACnBC,EAAAA,eAAe,EAAEA,MAAM,EAAE;EACzBC,eAAe,EAAEA,MAAM,EAAC;AAC1B,CAAC;;ACLKC,MAAAA,cAAc,GAAGZ,aAAa,CAAC;EACnCa,OAAO,EAAE,EAAE;EACXC,eAAe,EAAEA,MAAM,EAAC;AAC1B,CAAC;;ACCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,EAAE,EAAEvC,OAAO,EAAE;EAC7C,MAAM;AACJqC,IAAAA,eAAAA;AACF,GAAC,GAAGG,UAAU,CAACL,cAAc,CAAC,CAAA;AAE9B,EAAA,OAAOE,eAAe,CAACE,EAAE,EAAEvC,OAAO,CAAC,CAAA;AACrC;;ACde,SAASyC,cAAcA,CAAC1C,KAAK,EAAE;EAC5C,MAAM;IACJ2C,KAAK;AACL1C,IAAAA,OAAAA;AACF,GAAC,GAAGD,KAAK,CAAA;AAET,EAAA,MAAM4C,kBAAkB,GAAGL,iBAAiB,CAACI,KAAK,EAAE1C,OAAO,CAAC,CAAA;AAE5D,EAAA,MAAM4C,KAAK,GAAG7C,KAAK,CAAC6C,KAAK,IAAID,kBAAkB,CAAA;EAE/C,IAAI,CAACC,KAAK,EAAE;IACV,OAAO7C,KAAK,CAACa,QAAQ,CAAA;AACvB,GAAA;EAEA,OAAOC,GAAA,CAACgC,OAAO,EAAA;AAAA,IAAA,GAAM9C,KAAK;AAAG6C,IAAAA,KAAK,EAAGA,KAAO;IAACF,KAAK,EAAGI,UAAQ,CAACJ,KAAK,CAAA;AAAG,GAAE,CAAC,CAAA;AAC3E,CAAA;AAEA,SAASG,OAAOA,CAAC9C,KAAK,EAAE;EACtB,MAAM;IACJ2C,KAAK;IACLE,KAAK;IACLG,MAAM;AACNC,IAAAA,SAAS,GAAG,OAAO;AACnBC,IAAAA,QAAAA;AACF,GAAC,GAAGlD,KAAK,CAAA;EAET,MAAM,CAAEmD,OAAO,EAAEC,OAAO,CAAE,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC5C,MAAM,CAAEC,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGF,QAAQ,CAAC,KAAK,CAAC,CAAA;EAErE,IAAIG,OAAO,GAAG,IAAI,CAAA;AAElB,EAAA,MAAMC,UAAU,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAMC,UAAU,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAA;AAE/B,EAAA,MAAME,WAAW,GAAG,MAAOC,KAAK,IAAK;AACnC,IAAA,MAAMC,IAAI,GAAGA,MAAMV,OAAO,CAAC,IAAI,CAAC,CAAA;AAEhC,IAAA,IAAI,CAACD,OAAO,IAAI,CAACK,OAAO,EAAE;MACxB,IAAIK,KAAK,YAAYE,UAAU,EAAE;AAC/BP,QAAAA,OAAO,GAAGQ,UAAU,CAACF,IAAI,EAAE,GAAG,CAAC,CAAA;AACjC,OAAC,MAAM;AACLA,QAAAA,IAAI,EAAE,CAAA;QACNP,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7B,OAAA;AACF,KAAA;GACD,CAAA;EAED,MAAMU,WAAW,GAAGA,MAAM;IACxBb,OAAO,CAAC,KAAK,CAAC,CAAA;IACdG,qBAAqB,CAAC,KAAK,CAAC,CAAA;GAC7B,CAAA;EAED,MAAMW,oBAAoB,GAAIC,CAAC,IAAK;AAClCA,IAAAA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAIH,WAAW,EAAE,CAAA;GACrC,CAAA;EAED,MAAMI,gBAAgB,GAAGA,CAAC;IAAEC,CAAC;AAAEC,IAAAA,CAAAA;AAAE,GAAC,KAAK;AACrC,IAAA,MAAMlC,OAAO,GAAGsB,UAAU,CAACa,OAAO,CAAA;AAClC,IAAA,MAAMC,OAAO,GAAGhB,UAAU,CAACe,OAAO,CAAA;IAElC,OAAOnC,OAAO,KACZqC,QAAQ,CAACJ,CAAC,EAAEC,CAAC,EAAEE,OAAO,CAACE,qBAAqB,EAAE,CAAC,IAC/CD,QAAQ,CAACJ,CAAC,EAAEC,CAAC,EAAElC,OAAO,CAACsC,qBAAqB,EAAE,CAAC,CAChD,CAAA;GACF,CAAA;AAEDC,EAAAA,SAAS,CAAC,MAAM;IACd,MAAM;AAAEJ,MAAAA,OAAAA;AAAQ,KAAC,GAAGf,UAAU,CAAA;IAE9B,IAAI,CAACe,OAAO,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;IAEA,MAAMK,kBAAkB,GAAIV,CAAC,IAAK;AAChC,MAAA,MAAMW,SAAS,GAAGC,QAAQ,CAACC,aAAa,KAAKvB,UAAU,CAACe,OAAO,IAC1CO,QAAQ,CAACC,aAAa,CAACC,OAAO,CAAC,+BAA+B,CAAC,CAAA;AAEpF,MAAA,IAAI9B,OAAO,IAAI,CAACkB,gBAAgB,CAAC;QAAEC,CAAC,EAAEH,CAAC,CAACG,CAAC;QAAEC,CAAC,EAAEJ,CAAC,CAACI,CAAAA;AAAE,OAAC,CAAC,IAAI,EAAEO,SAAS,IAAIxB,kBAAkB,CAAC,EAAE;AAC1FW,QAAAA,WAAW,EAAE,CAAA;AACf,OAAA;KACD,CAAA;IAED,MAAMiB,kBAAkB,GAAIf,CAAC,IAAK;MAChC,MAAM;AAAEgB,QAAAA,aAAAA;AAAc,OAAC,GAAGhB,CAAC,CAAA;MAC3B,MAAMiB,cAAc,GAAIC,EAAE,IAAK,CAAC,CAACA,EAAE,CAACJ,OAAO,CAAC,+BAA+B,CAAC,CAAA;AAG5E,MAAA,IAAI9B,OAAO,IAAI,CAACmC,SAAS,CAAC7B,UAAU,CAACe,OAAO,CAAC,IAAIW,aAAa,IAAI,CAACC,cAAc,CAACD,aAAa,CAAC,EAAE;AAChGlB,QAAAA,WAAW,EAAE,CAAA;AACf,OAAA;KACD,CAAA;AAEDc,IAAAA,QAAQ,CAACQ,gBAAgB,CAAC,OAAO,EAAEV,kBAAkB,CAAC,CAAA;AACtDE,IAAAA,QAAQ,CAACQ,gBAAgB,CAAC,UAAU,EAAEL,kBAAkB,CAAC,CAAA;AACzDH,IAAAA,QAAQ,CAACQ,gBAAgB,CAAC,WAAW,EAAEV,kBAAkB,CAAC,CAAA;AAE1D,IAAA,OAAO,MAAM;AACXE,MAAAA,QAAQ,CAACS,mBAAmB,CAAC,OAAO,EAAEX,kBAAkB,CAAC,CAAA;AACzDE,MAAAA,QAAQ,CAACS,mBAAmB,CAAC,WAAW,EAAEX,kBAAkB,CAAC,CAAA;AAC7DE,MAAAA,QAAQ,CAACS,mBAAmB,CAAC,UAAU,EAAEN,kBAAkB,CAAC,CAAA;KAC7D,CAAA;GACF,EAAE,CAAEzB,UAAU,CAACe,OAAO,EAAErB,OAAO,EAAEG,kBAAkB,CAAE,CAAC,CAAA;EAEvD,MAAMmC,aAAa,GAAGA,MAAM;AAC1B,IAAA,OACE9E,IAAA,CAAA,KAAA,EAAA;MACEC,KAAK,EAAI,CAA+BqC,6BAAAA,EAAAA,SAAU,CAAG,CAAA;AACrDyC,MAAAA,IAAI,EAAC,SAAS;AACdlD,MAAAA,EAAE,EAAC,8BAA8B;AACjC,MAAA,iBAAA,EAAkBG,KAAO;MACzBgD,KAAK,EAAGzC,QAAQ,IAAI0C,kBAAkB,CAACnC,UAAU,CAACe,OAAO,CAAG;AAC5DqB,MAAAA,GAAG,EAAGlC,UAAY;AAClBmC,MAAAA,OAAO,EAAI3B,CAAC,IAAIA,CAAC,CAAC4B,eAAe,EAAI;AAAAlF,MAAAA,QAAA,GAErCC,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,sCAAsC;AAAAC,QAAAA,QAAA,EAC9CgC,KAAAA;OACE,CAAC,EACN/B,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,oCAAA;AAAoC,OAAE,CAAC,CAAA;AAAA,KAC/C,CAAC,CAAA;GACL,CAAA;AAEL,EAAA,OACED,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,sCAAsC;AAACoF,IAAAA,QAAQ,EAAC,GAAG;AAC5DH,IAAAA,GAAG,EAAGpC,UAAY;AAClBwC,IAAAA,YAAY,EAAGrC,WAAa;IAC5BsC,YAAY,EAAGA,MAAK;MAClBC,YAAY,CAAC3C,OAAO,CAAC,CAAA;AACrBA,MAAAA,OAAO,GAAG,IAAI,CAAA;KACb;AACH4C,IAAAA,OAAO,EAAGxC,WAAa;AACvByC,IAAAA,SAAS,EAAGnC,oBAAsB;IAAArD,QAAA,EAAA,CAEjCb,KAAK,CAACa,QAAQ,EACdsC,OAAO,GACLH,MAAM,GACLsD,YAAY,CAACb,aAAa,EAAE,EAAEzC,MAAM,CAACwB,OAAO,CAAC,GAC3CiB,aAAa,EAAE,GACf,IAAI,CAAA;AAAA,GAEP,CAAC,CAAA;AAEV,CAAA;;AAGA;AACA,SAASf,QAAQA,CAACJ,CAAC,EAAEC,CAAC,EAAEgC,MAAM,EAAE;EAC9B,MAAM;IAAEC,GAAG;IAAEC,KAAK;IAAEC,MAAM;AAAEC,IAAAA,IAAAA;AAAK,GAAC,GAAGJ,MAAM,CAAA;AAC3C,EAAA,OAAOjC,CAAC,IAAIqC,IAAI,IAAIrC,CAAC,IAAImC,KAAK,IAAIlC,CAAC,IAAIiC,GAAG,IAAIjC,CAAC,IAAImC,MAAM,CAAA;AAC3D,CAAA;AAEA,SAASd,kBAAkBA,CAACgB,UAAU,EAAE;AACtC,EAAA,MAAMC,WAAW,GAAGD,UAAU,CAACjC,qBAAqB,EAAE,CAAA;AAEtD,EAAA,MAAM8B,KAAK,GAAI,CAAA,YAAA,EAAcI,WAAW,CAACvC,CAAE,CAAI,GAAA,CAAA,CAAA;EAC/C,MAAMkC,GAAG,GAAI,CAAEK,EAAAA,WAAW,CAACL,GAAG,GAAG,EAAG,CAAG,EAAA,CAAA,CAAA;AAEvC,EAAA,OAAQ,CAASC,OAAAA,EAAAA,KAAM,CAASD,OAAAA,EAAAA,GAAI,CAAE,CAAA,CAAA,CAAA;AACxC,CAAA;AAEA,SAASlB,SAASA,CAACrF,OAAO,EAAE;AAC1B,EAAA,OAAOA,OAAO,CAAC6G,OAAO,CAAC,QAAQ,CAAC,CAAA;AAClC,CAAA;AAEA,SAAS/D,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASuE,qBAAqBA,CAACvE,EAAE,EAAEvC,OAAO,EAAE;EACjD,MAAM;AACJyB,IAAAA,mBAAAA;AACF,GAAC,GAAGe,UAAU,CAAClB,kBAAkB,CAAC,CAAA;AAElC,EAAA,OAAOG,mBAAmB,CAACc,EAAE,EAAEvC,OAAO,CAAC,CAAA;AACzC;;ACzBO,SAAS+G,QAAQA,CAACxE,EAAE,EAAE;EAC3B,MAAM;AAAEZ,IAAAA,MAAAA;AAAO,GAAC,GAAGa,UAAU,CAACd,aAAa,CAAC,CAAA;EAE5C,OAAOC,MAAM,CAAEY,EAAE,CAAE,CAAA;AACrB,CAAA;AAEO,SAASyE,SAASA,GAAG;EAC1B,MAAM;AAAErF,IAAAA,MAAAA;AAAO,GAAC,GAAGa,UAAU,CAACd,aAAa,CAAC,CAAA;AAE5C,EAAA,OAAOC,MAAM,CAAA;AACf;;ACTA;AACA;AACA;AACA;AACA;AACA;AACO,SAASsF,QAAQA,CAACrD,KAAK,EAAEsD,QAAQ,EAAErF,QAAQ,EAAE;AAClD,EAAA,MAAMsF,YAAY,GAAG3E,UAAU,CAACZ,YAAY,CAAC,CAAA;EAE7C,IAAI,CAACC,QAAQ,EAAE;IACb,CAAC;AAAEA,MAAAA,QAAAA;AAAS,KAAC,GAAGsF,YAAY,EAAA;AAC9B,GAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG3D,MAAM,CAAC,KAAK,CAAC,CAAA;;AAE9B;AACA,EAAA,IAAI5B,QAAQ,IAAI,CAACuF,QAAQ,CAAC7C,OAAO,EAAE;AACjC1C,IAAAA,QAAQ,CAACwF,EAAE,CAACzD,KAAK,EAAEsD,QAAQ,CAAC,CAAA;AAC9B,GAAA;;AAEA;AACAvC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI9C,QAAQ,IAAIuF,QAAQ,CAAC7C,OAAO,EAAE;AAChC1C,MAAAA,QAAQ,CAACwF,EAAE,CAACzD,KAAK,EAAEsD,QAAQ,CAAC,CAAA;AAC9B,KAAA;IAEAE,QAAQ,CAAC7C,OAAO,GAAG,IAAI,CAAA;AAEvB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI1C,QAAQ,EAAE;AACZA,QAAAA,QAAQ,CAACyF,GAAG,CAAC1D,KAAK,EAAEsD,QAAQ,CAAC,CAAA;AAC/B,OAAA;KACD,CAAA;GACF,EAAE,CAAEA,QAAQ,EAAEtD,KAAK,EAAE/B,QAAQ,CAAE,CAAC,CAAA;AACnC;;ACrCA,MAAM0F,UAAU,GAAG,CAAC,CAAA;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAACC,YAAY,GAAG,EAAE,EAAE;EAC/C,MAAMC,GAAG,GAAGC,OAAO,CAAC,MAAM,IAAIC,GAAG,EAAE,EAAEH,YAAY,CAAC,CAAA;EAElD,MAAMI,MAAM,GAAGzC,EAAE,IAAI;AACnB,IAAA,IAAI0C,GAAG,GAAGJ,GAAG,CAACK,GAAG,CAAC3C,EAAE,CAAC,CAAA;IAErB,IAAI,CAAC0C,GAAG,EAAE;AACRA,MAAAA,GAAG,GAAGE,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,CAACC,KAAK,CAAC,CAACZ,UAAU,CAAC,CAAA;AACjDG,MAAAA,GAAG,CAACU,GAAG,CAAChD,EAAE,EAAE0C,GAAG,CAAC,CAAA;AAClB,KAAA;AAEA,IAAA,OAAOA,GAAG,CAAA;GACX,CAAA;AAED,EAAA,OAAOD,MAAM,CAAA;AACf;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,cAAcA,CAACC,IAAI,EAAEC,YAAY,EAAE;EACjD,MAAM;IACJtG,eAAe;AACfC,IAAAA,eAAAA;AACF,GAAC,GAAGM,UAAU,CAACV,aAAa,CAAC,CAAA;AAE7B,EAAA,MAAM0G,YAAY,GAAGvG,eAAe,CAACqG,IAAI,EAAEC,YAAY,CAAC,CAAA;AAExD,EAAA,MAAME,QAAQ,GAAGC,WAAW,CAAEC,QAAQ,IAAK;AACzCzG,IAAAA,eAAe,CAACoG,IAAI,EAAEK,QAAQ,CAAC,CAAA;AACjC,GAAC,EAAE,CAAEzG,eAAe,CAAE,CAAC,CAAA;AAGvB,EAAA,OAAO,CAAEsG,YAAY,EAAEC,QAAQ,CAAE,CAAA;AACnC;;ACjCA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASG,WAAWA,CAAChG,KAAK,EAAE;AACjC,EAAA,MAAMgD,GAAG,GAAGnC,MAAM,EAAE,CAAA;AACpBkB,EAAAA,SAAS,CAAC,MAAM;IACdiB,GAAG,CAACrB,OAAO,GAAG3B,KAAK,CAAA;AACrB,GAAC,CAAC,CAAA;EACF,OAAOgD,GAAG,CAACrB,OAAO,CAAA;AACpB;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASsE,iBAAiBA,CAACtG,EAAE,EAAE;EACpC,MAAM;AAAEuG,IAAAA,MAAAA;AAAO,GAAC,GAAGtG,UAAU,CAACuG,aAAsB,CAAC,CAAA;AAErD,EAAA,MAAMnD,GAAG,GAAGnC,MAAM,EAAE,CAAA;AAEpB,EAAA,MAAMuF,KAAK,GAAGvF,MAAM,CAAC,KAAK,CAAC,CAAA;AAE3B,EAAA,MAAMwF,WAAW,GAAGP,WAAW,CAAE9E,KAAK,IAAK;AACzC,IAAA,IAAIA,KAAK,CAACrB,EAAE,KAAKA,EAAE,EAAE;AACnBuG,MAAAA,MAAM,EAAE,CAAA;AAER,MAAA,IAAI,CAACE,KAAK,CAACzE,OAAO,EAAE;QAClByE,KAAK,CAACzE,OAAO,GAAG,IAAI,CAAA;AACtB,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAAEhC,EAAE,CAAE,CAAC,CAAA;AAEVoC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIqE,KAAK,CAACzE,OAAO,IAAIqB,GAAG,CAACrB,OAAO,EAAE;MAChC,IAAI2E,UAAU,CAACtD,GAAG,CAACrB,OAAO,CAACyE,KAAK,CAAC,EAAE;AACjCpD,QAAAA,GAAG,CAACrB,OAAO,CAACyE,KAAK,EAAE,CAAA;AACrB,OAAA;MAEA,IAAIE,UAAU,CAACtD,GAAG,CAACrB,OAAO,CAAC4E,MAAM,CAAC,EAAE;AAClCvD,QAAAA,GAAG,CAACrB,OAAO,CAAC4E,MAAM,EAAE,CAAA;AACtB,OAAA;MAEAH,KAAK,CAACzE,OAAO,GAAG,KAAK,CAAA;AACvB,KAAA;AACF,GAAC,CAAC,CAAA;AAEF0C,EAAAA,QAAQ,CAAC,2BAA2B,EAAEgC,WAAW,CAAC,CAAA;AAElD,EAAA,OAAOrD,GAAG,CAAA;AACZ;;ACzCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASwD,6BAA6BA,CAACxD,GAAG,EAAEyD,uBAAuB,EAAEC,SAAS,EAAE;AAErF,EAAA,MAAM,CAAEC,eAAe,EAAEC,kBAAkB,CAAE,GAAGpG,QAAQ,CAACqG,KAAQ,CAACJ,uBAAuB,CAAC,CAAC,CAAA;AAE3F,EAAA,MAAMK,qBAAqB,GAAGhB,WAAW,CAAC,MAAM;AAC9C,IAAA,MAAMiB,kBAAkB,GAAGF,KAAQ,CAACJ,uBAAuB,CAAC,CAAA;IAE5D,IAAIM,kBAAkB,KAAKJ,eAAe,EAAE;MAC1CC,kBAAkB,CAACG,kBAAkB,CAAC,CAAA;AACxC,KAAA;AACF,GAAC,EAAE,CAAEN,uBAAuB,EAAEE,eAAe,CAAE,CAAC,CAAA;AAEhD5E,EAAAA,SAAS,CAAC,MAAM;AACd+E,IAAAA,qBAAqB,EAAE,CAAA;AACzB,GAAC,EAAE,CAAEA,qBAAqB,CAAE,CAAC,CAAA;AAE7BzC,EAAAA,QAAQ,CAAC,wBAAwB,EAAEyC,qBAAqB,CAAC,CAAA;AACzDzC,EAAAA,QAAQ,CAAC,wBAAwB,EAAEyC,qBAAqB,CAAC,CAAA;AAEzD/E,EAAAA,SAAS,CAAC,MAAM;IACd,MAAMiF,QAAQ,GAAGC,oBAAoB,CAAA;;AAErC;IACA,IAAI,CAACD,QAAQ,EAAE;AACb,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,IAAI,CAAChE,GAAG,CAACrB,OAAO,IAAI,CAACgF,eAAe,EAAE;AACpC,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMO,QAAQ,GAAG,IAAIF,QAAQ,CAAEG,OAAO,IAAK;AAEzC;AACA,MAAA,IAAIR,eAAe,CAACS,YAAY,KAAK,CAAC,EAAE;AACtC,QAAA,OAAA;AACF,OAAA;AAEAD,MAAAA,OAAO,CAACE,OAAO,CAACC,KAAK,IAAI;AACvB,QAAA,IAAIA,KAAK,CAACC,iBAAiB,GAAG,CAAC,EAAE;UAC/Bb,SAAS,CAAC,IAAI,CAAC,CAAA;AACjB,SAAC,MACI,IAAIY,KAAK,CAACC,iBAAiB,KAAK,CAAC,EAAE;UACtCb,SAAS,CAAC,KAAK,CAAC,CAAA;AAClB,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,EACD;AACEc,MAAAA,IAAI,EAAEb,eAAe;AACrBc,MAAAA,UAAU,EAAE,qBAAqB;AAAE;MACnCC,SAAS,EAAE,CAAE,CAAC,CAAA;AAChB,KAAC,CAAC,CAAA;AACFR,IAAAA,QAAQ,CAACS,OAAO,CAAC3E,GAAG,CAACrB,OAAO,CAAC,CAAA;;AAE7B;AACA,IAAA,OAAO,MAAM;AACXuF,MAAAA,QAAQ,CAACU,SAAS,CAAC5E,GAAG,CAACrB,OAAO,CAAC,CAAA;KAChC,CAAA;GAEF,EAAE,CAAEqB,GAAG,CAACrB,OAAO,EAAEgF,eAAe,EAAED,SAAS,CAAE,CAAC,CAAA;AACjD;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASmB,iBAAiBA,CAACvD,QAAQ,EAAE;AAC1C,EAAA,MAAMwD,WAAW,GAAGjH,MAAM,CAACyD,QAAQ,CAAC,CAAA;EACpCwD,WAAW,CAACnG,OAAO,GAAG2C,QAAQ,CAAA;AAE9B,EAAA,OAAOwB,WAAW,CAChB,CAAC,GAAGiC,IAAI,KAAKD,WAAW,CAACnG,OAAO,CAAC,GAAGoG,IAAI,CAAC,EACzC,EACF,CAAC,CAAA;AACH;;ACtBO,SAASC,iBAAiBA,CAAC5K,OAAO,EAAE;AAEzC,EAAA,MAAM,CAAEkD,OAAO,EAAE2H,UAAU,CAAE,GAAGzH,QAAQ,CAAC,CAAC,CAACpD,OAAO,IAAI,CAAC,CAACA,OAAO,CAAC8K,YAAY,CAAC,CAAA;AAE7EC,EAAAA,eAAe,CAAC,MAAM;IACpB,IAAI,CAAC/K,OAAO,EAAE,OAAA;IAEd,MAAMgL,cAAc,GAAG,IAAIC,cAAc,CAAC,CAAC,CAAEf,KAAK,CAAE,KAAK;AACvDgB,MAAAA,qBAAqB,CAAC,MAAM;QAC1B,MAAMC,UAAU,GAAG,CAAC,CAACjB,KAAK,CAACkB,WAAW,CAACrK,MAAM,CAAA;QAC7C,IAAIoK,UAAU,KAAKjI,OAAO,EAAE;UAC1B2H,UAAU,CAACM,UAAU,CAAC,CAAA;AACxB,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEFH,IAAAA,cAAc,CAACT,OAAO,CAACvK,OAAO,CAAC,CAAA;AAE/B,IAAA,OAAO,MAAMgL,cAAc,CAACK,UAAU,EAAE,CAAA;AAC1C,GAAC,EAAE,CAAErL,OAAO,EAAEkD,OAAO,CAAE,CAAC,CAAA;AAExB,EAAA,OAAOA,OAAO,CAAA;AAChB;;ACUe,SAASoI,KAAKA,CAACvL,KAAK,EAAE;EACnC,MAAM;IACJC,OAAO;AACP+J,IAAAA,OAAO,GAAG,EAAE;IACZxH,EAAE;IACFjC,KAAK;AACLiL,IAAAA,UAAU,GAAG,KAAA;AACf,GAAC,GAAGxL,KAAK,CAAA;AAET,EAAA,MAAMyL,QAAQ,GAAG/H,MAAM,CAAC,IAAI,CAAC,CAAA;AAE7B,EAAA,MAAM,CAAEgI,IAAI,EAAEC,OAAO,CAAE,GAAGrD,cAAc,CACtC,CAAE,QAAQ,EAAE9F,EAAE,EAAE,MAAM,CAAE,EACxBgJ,UACF,CAAC,CAAA;AAED,EAAA,MAAMzC,MAAM,GAAGJ,WAAW,CAAC,MAAMgD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAEA,OAAO,CAAE,CAAC,CAAA;EAE5D,MAAMC,UAAU,GAAGA,MAAMD,OAAO,CAAC,CAACD,IAAI,CAAC,CAAA;EAEvC,MAAM,CAAEG,MAAM,EAAEC,SAAS,CAAE,GAAGzI,QAAQ,CAAC,KAAK,CAAC,CAAA;EAE7C,MAAM,CAAE0I,MAAM,EAAExC,SAAS,CAAE,GAAGlG,QAAQ,CAAC,KAAK,CAAC,CAAA;;AAE7C;AACAuB,EAAAA,SAAS,CAAC,MAAM;AAEd;AACA,IAAA,MAAMoH,SAAS,GAAGb,qBAAqB,CAAC,MAAM;AAC5C,MAAA,MAAMc,iBAAiB,GAAGjC,OAAO,CAACkC,IAAI,CAAC/B,KAAK,IAAI;QAC9C,MAAM;UACJ3H,EAAE;AACF2J,UAAAA,QAAAA;AACF,SAAC,GAAGhC,KAAK,CAAA;AAET,QAAA,MAAMiC,SAAS,GAAG1C,KAAQ,CAAE,CAAkBlH,gBAAAA,EAAAA,EAAG,IAAG,CAAC,CAAA;QAErD,IAAI,CAAC2G,UAAU,CAACgD,QAAQ,CAAC,IAAI,CAACC,SAAS,EAAE;AACvC,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AAEA,QAAA,MAAMC,SAAS,GAAG3C,KAAQ,CAAC,6BAA6B,EAAE0C,SAAS,CAAC,CAAA;QAEpE,OAAOD,QAAQ,CAACE,SAAS,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;MAEFP,SAAS,CAACG,iBAAiB,CAAC,CAAA;AAC9B,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,MAAMK,oBAAoB,CAACN,SAAS,CAAC,CAAA;AAC9C,GAAC,EAAE,CAAEhC,OAAO,EAAE8B,SAAS,CAAE,CAAC,CAAA;;AAE1B;AACA,EAAA,MAAMS,SAAS,GAAGtF,SAAS,EAAE,CAAA;AAC7B,EAAA,MAAMuF,SAAS,GAAGxC,OAAO,CAACyC,IAAI,CAACtC,KAAK,IAAIoC,SAAS,CAACpC,KAAK,CAAC3H,EAAE,CAAC,CAAC,CAAA;;AAE5D;AACA6G,EAAAA,6BAA6B,CAACoC,QAAQ,EAAE,2CAA2C,EAAElC,SAAS,CAAC,CAAA;AAE/F,EAAA,MAAMmD,sBAAsB,GAAG;IAC7B,GAAGjK,UAAU,CAACuG,aAAsB,CAAC;AACrCD,IAAAA,MAAAA;GACD,CAAA;AAED,EAAA,OAAOpI,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,4BAA4B;IAAC,eAAgB,EAAA,QAAQ,GAAG4B,EAAI;AAACqD,IAAAA,GAAG,EAAG4F,QAAU;AAAA5K,IAAAA,QAAA,GAC7FF,IAAA,CAAA,KAAA,EAAA;MAAKC,KAAK,EAAG+L,UAAU,CACrB,mCAAmC,EACnCd,MAAM,GAAG,EAAE,GAAG,OAAO,EACrBH,IAAI,GAAG,MAAM,GAAG,EAAE,EACjBK,MAAM,IAAIL,IAAI,GAAI,QAAQ,GAAG,EAChC,CAAG;AAAC5F,MAAAA,OAAO,EAAG8F,UAAY;AAAA/K,MAAAA,QAAA,GACxBC,GAAA,CAAA,KAAA,EAAA;AACEI,QAAAA,KAAK,EAAGlB,KAAK,CAACqC,OAAO,GAAG,IAAI,GAAG9B,KAAO;AACtC,QAAA,YAAA,EAAaA,KAAO;AACpBK,QAAAA,KAAK,EAAC,yCAAyC;QAAAC,QAAA,EAE/CC,GAAA,CAACgC,cAAO,EAAA;UAACD,KAAK,EAAG7C,KAAK,CAACqC,OAAS;UAACM,KAAK,EAAG,QAAQ,GAAGH,EAAI;AAACvC,UAAAA,OAAO,EAAGA,OAAS;AAAC+C,UAAAA,MAAM,EAAGyI,QAAU;AAAA5K,UAAAA,QAAA,EAC5FN,KAAAA;SACK,CAAA;OACN,CAAC,EACNI,IAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAC,2CAA2C;QAAAC,QAAA,EAAA,CAElDC,GAAA,CAAC8L,UAAU,EAAA;AACTf,UAAAA,MAAM,EAAGA,MAAQ;AACjBW,UAAAA,SAAS,EAAGA,SAAAA;SACb,CAAC,EAEJ1L,GAAA,CAAA,QAAA,EAAA;AACEN,UAAAA,IAAI,EAAC,QAAQ;AACbU,UAAAA,KAAK,EAAC,gBAAgB;AACtBN,UAAAA,KAAK,EAAC,qEAAqE;UAAAC,QAAA,EAE3EC,GAAA,CAAC+L,SAAS,EAAA;AAACjM,YAAAA,KAAK,EAAG8K,IAAI,GAAG,iCAAiC,GAAG,kCAAA;WAAsC,CAAA;AAAC,SAC/F,CAAC,CAAA;AAAA,OACN,CAAC,CAAA;KACH,CAAC,EACN5K,GAAA,CAAA,KAAA,EAAA;MAAKF,KAAK,EAAG+L,UAAU,CACrB,oCAAoC,EACpCjB,IAAI,GAAG,MAAM,GAAG,EAClB,CAAG;AAAA7K,MAAAA,QAAA,EACDC,GAAA,CAACkI,aAAsB,CAAC8D,QAAQ,EAAA;AAACjK,QAAAA,KAAK,EAAG6J,sBAAwB;AAAA7L,QAAAA,QAAA,EAE7DmJ,OAAO,CAACrC,GAAG,CAACwC,KAAK,IAAI;UACnB,MAAM;AACJ4C,YAAAA,SAAS,EAAEC,SAAS;AACpBxK,YAAAA,EAAAA;AACF,WAAC,GAAG2H,KAAK,CAAA;UAET,OACE8C,aAAA,CAACD,SAAS,EAAA;AAAA,YAAA,GACH7C,KAAK;AACVlK,YAAAA,OAAO,EAAGA,OAAS;AACnB8H,YAAAA,GAAG,EAAGvF,EAAAA;AAAI,WAAE,CAAC,CAAA;SAElB,CAAA;OAE4B,CAAA;AAAC,KAC/B,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AACR,CAAA;AAEA,SAASoK,UAAUA,CAAC5M,KAAK,EAAE;EACzB,MAAM;IACJ6L,MAAM;AACNW,IAAAA,SAAAA;AACF,GAAC,GAAGxM,KAAK,CAAA;AAET,EAAA,IAAIwM,SAAS,EAAE;AACb,IAAA,OACE1L,GAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,KAAK,EAAC,2BAA2B;AAACN,MAAAA,KAAK,EAAC,0DAAA;AAA0D,KAAM,CAAC,CAAA;AAElH,GAAA;AAEA,EAAA,IAAIiL,MAAM,EAAE;AACV,IAAA,OACE/K,GAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,KAAK,EAAC,uBAAuB;AAACN,MAAAA,KAAK,EAAC,0BAAA;AAA0B,KAAM,CAAC,CAAA;AAE9E,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASsM,WAAWA,CAAClN,KAAK,EAAE;EACzC,MAAM;IACJmN,IAAI;AACJC,IAAAA,IAAI,EAAEC,IAAAA;AACR,GAAC,GAAGrN,KAAK,CAAA;AAET,EAAA,OACEc,GAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,KAAK,EAAC,2BAA2B;AAAAC,IAAAA,QAAA,EACpCF,IAAA,CAAA,SAAA,EAAA;AAASC,MAAAA,KAAK,EAAC,kCAAkC;AAAAC,MAAAA,QAAA,EAC7CwM,CAAAA,IAAI,IAAIvM,GAAA,CAACuM,IAAI,EAAA;AAACzM,QAAAA,KAAK,EAAC,uCAAA;OAAyC,CAAC,EAChEE,GAAA,CAAA,GAAA,EAAA;AAAGF,QAAAA,KAAK,EAAC,uCAAuC;AAAAC,QAAAA,QAAA,EAAGsM,IAAAA;AAAI,OAAK,CAAC,CAAA;KACtD,CAAA;AAAC,GACP,CAAC,CAAA;AAEV;;ACZe,SAASG,WAAWA,CAACtN,KAAK,EAAE;EACzC,MAAM;IACJC,OAAO;IACP0C,KAAK;AACLE,IAAAA,KAAAA;AACF,GAAC,GAAG7C,KAAK,CAAA;AAET,EAAA,MAAM4C,kBAAkB,GAAGmE,qBAAqB,CAACpE,KAAK,EAAE1C,OAAO,CAAC,CAAA;AAEhE,EAAA,MAAMwB,WAAW,GAAGoB,KAAK,IAAID,kBAAkB,CAAA;AAE/C,EAAA,IAAInB,WAAW,EAAE;AACf,IAAA,OACEX,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,kCAAkC;AAAAC,MAAAA,QAAA,EACzCY,WAAAA;AAAW,KACV,CAAC,CAAA;AAEV,GAAA;AACF;;ACnBA,MAAM8L,MAAI,GAAGA,MAAM,EAAE,CAAA;;AAErB;AACA;AACA;AACA;AACA,MAAMC,kBAAgB,GAAG,UAASC,MAAM,EAAE5H,GAAG,EAAE;EAE7C,MAAM,CAAE6H,MAAM,EAAEC,SAAS,CAAE,GAAGtK,QAAQ,CAACuK,SAAS,CAAC,CAAA;AAEjD/H,EAAAA,GAAG,CAACrB,OAAO,GAAGoD,OAAO,CAAC,OAAO;IAC3BqB,KAAK,EAAG4E,MAAM,IAAK;AACjB,MAAA,IAAIJ,MAAM,EAAE;AACVA,QAAAA,MAAM,CAACxE,KAAK,CAAC4E,MAAM,CAAC,CAAA;AACtB,OAAC,MAAM;AACL,QAAA,IAAI,OAAOA,MAAM,KAAK,WAAW,EAAE;AACjCA,UAAAA,MAAM,GAAGC,QAAQ,CAAA;AACnB,SAAA;QACAH,SAAS,CAACE,MAAM,CAAC,CAAA;AACnB,OAAA;AACF,KAAA;AACF,GAAC,CAAC,EAAE,CAAEJ,MAAM,CAAE,CAAC,CAAA;AAEf7I,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAO8I,MAAM,KAAK,WAAW,IAAID,MAAM,EAAE;AAC3CA,MAAAA,MAAM,CAACxE,KAAK,CAACyE,MAAM,CAAC,CAAA;MACpBC,SAAS,CAAC,KAAK,CAAC,CAAA;AAClB,KAAA;AACF,GAAC,EAAE,CAAEF,MAAM,EAAEC,MAAM,CAAE,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAMK,YAAU,GAAGC,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EAE5C,MAAM;IACJoI,OAAO;IACPC,QAAQ;IACRC,gBAAgB;IAChBC,aAAa;IACbvL,KAAK;AACLwL,IAAAA,MAAM,GAAGd,MAAI;AACbe,IAAAA,WAAW,GAAGf,MAAI;IAClBgB,SAAS;IACTC,iBAAiB,GAAG,EAAE;AACtBC,IAAAA,YAAY,GAAG,IAAI;AACnBC,IAAAA,UAAU,GAAG,KAAA;AACf,GAAC,GAAG1O,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;EACzB,MAAM,CAAE+J,MAAM,EAAEmB,SAAS,CAAE,GAAGvL,QAAQ,EAAE,CAAA;EACxC,MAAM,CAAEwL,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,IAAI,EAAE,CAAC,CAAA;AAE3D2K,EAAAA,kBAAgB,CAACC,MAAM,EAAE5H,GAAG,CAAC,CAAA;AAE7B,EAAA,MAAMkJ,WAAW,GAAGrE,iBAAiB,CAAC9B,QAAQ,IAAI;IAChDqF,OAAO,CAACrF,QAAQ,CAAC,CAAA;IACjBkG,aAAa,CAAClG,QAAQ,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEFhE,EAAAA,SAAS,CAAC,MAAM;AAEd,IAAA,IAAI6I,MAAM,CAAA;IAEVA,MAAM,GAAG,IAAIuB,aAAa,CAAC;MACzBC,SAAS,EAAEN,QAAQ,CAACnK,OAAO;AAC3B0K,MAAAA,QAAQ,EAAEH,WAAW;AACrBlM,MAAAA,KAAK,EAAEgM,UAAU;MACjBR,MAAM;MACNG,iBAAiB;MACjBL,gBAAgB;MAChBC,aAAa;MACbK,YAAY;MACZC,UAAU;AACVS,MAAAA,QAAQ,EAAE,IAAA;AACZ,KAAC,CAAC,CAAA;IAEFP,SAAS,CACPnB,MACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAM;MACXY,MAAM,CAAC,EAAE,CAAC,CAAA;AACVM,MAAAA,QAAQ,CAACnK,OAAO,CAAC4K,SAAS,GAAG,EAAE,CAAA;MAC/BR,SAAS,CAAC,IAAI,CAAC,CAAA;KAChB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAENhK,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6I,MAAM,EAAE;AACX,MAAA,OAAA;AACF,KAAA;IAEA,IAAI5K,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;AAEApB,IAAAA,MAAM,CAAC4B,QAAQ,CAACxM,KAAK,CAAC,CAAA;IACtBiM,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;EAEb,MAAMyM,WAAW,GAAGA,MAAM;AACxBzJ,IAAAA,GAAG,CAACrB,OAAO,CAACyE,KAAK,EAAE,CAAA;GACpB,CAAA;AAED,EAAA,OAAOtI,IAAA,CAAA,KAAA,EAAA;IAAKC,KAAK,EAAG2O,UAAU,CAC5B,+CAA+C,EAC/ChB,SAAS,GAAG,WAAW,GAAG,IAC5B,CAAG;AAAA1N,IAAAA,QAAA,GACDC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,6DAA6D;AAAAC,MAAAA,QAAA,EAAC,kBAAA;KAAqB,CAAC,EAC/FC,GAAA,CAAA,KAAA,EAAA;MACE0O,IAAI,EAAGxP,KAAK,CAACwP,IAAM;AACnB5O,MAAAA,KAAK,EAAG2O,UAAU,CAAC,gEAAgE,EAAEV,UAAU,GAAG,QAAQ,GAAG,IAAI,EAAEX,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAG;AAClJrI,MAAAA,GAAG,EAAG8I,QAAU;AAChB7I,MAAAA,OAAO,EAAGwJ,WAAAA;KACN,CAAC,EAEPxO,GAAA,CAAA,QAAA,EAAA;AACEN,MAAAA,IAAI,EAAC,QAAQ;AACbU,MAAAA,KAAK,EAAC,oBAAoB;AAC1BN,MAAAA,KAAK,EAAC,sCAAsC;AAC5CkF,MAAAA,OAAO,EAAGA,MAAMwI,WAAW,CAAC,SAAS,CAAG;AAAAzN,MAAAA,QAAA,EAACC,GAAA,CAAC2O,SAAS,EAAE,EAAA,CAAA;AAAC,KAAQ,CAAC,CAAA;AAAA,GAC9D,CAAC,CAAA;AACR,CAAC,CAAC;;ACtHF,MAAMlC,MAAI,GAAGA,MAAM,EAAE,CAAA;;AAErB;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAG,UAASC,MAAM,EAAE5H,GAAG,EAAE;EAE7C,MAAM,CAAE6H,MAAM,EAAEC,SAAS,CAAE,GAAGtK,QAAQ,CAACuK,SAAS,CAAC,CAAA;AAEjD/H,EAAAA,GAAG,CAACrB,OAAO,GAAGoD,OAAO,CAAC,OAAO;IAC3BqB,KAAK,EAAG4E,MAAM,IAAK;AACjB,MAAA,IAAIJ,MAAM,EAAE;AACVA,QAAAA,MAAM,CAACxE,KAAK,CAAC4E,MAAM,CAAC,CAAA;AACtB,OAAC,MAAM;AACL,QAAA,IAAI,OAAOA,MAAM,KAAK,WAAW,EAAE;AACjCA,UAAAA,MAAM,GAAGC,QAAQ,CAAA;AACnB,SAAA;QACAH,SAAS,CAACE,MAAM,CAAC,CAAA;AACnB,OAAA;AACF,KAAA;AACF,GAAC,CAAC,EAAE,CAAEJ,MAAM,CAAE,CAAC,CAAA;AAEf7I,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAO8I,MAAM,KAAK,WAAW,IAAID,MAAM,EAAE;AAC3CA,MAAAA,MAAM,CAACxE,KAAK,CAACyE,MAAM,CAAC,CAAA;MACpBC,SAAS,CAAC,KAAK,CAAC,CAAA;AAClB,KAAA;AACF,GAAC,EAAE,CAAEF,MAAM,EAAEC,MAAM,CAAE,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAMK,UAAU,GAAGC,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EAE5C,MAAM;IACJ2I,iBAAiB;IACjBJ,aAAa;IACbvL,KAAK;IACLoL,OAAO;AACPyB,IAAAA,YAAY,GAAGnC,MAAI;AACnBc,IAAAA,MAAM,GAAGd,MAAI;AACbe,IAAAA,WAAW,GAAGf,MAAI;IAClBoC,WAAW;IACXpB,SAAS;IACTL,QAAQ;IACRC,gBAAgB;AAChByB,IAAAA,SAAAA;AACF,GAAC,GAAG5P,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;EACzB,MAAM,CAAE+J,MAAM,EAAEmB,SAAS,CAAE,GAAGvL,QAAQ,EAAE,CAAA;EACxC,MAAM,CAAEwL,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,IAAI,EAAE,CAAC,CAAA;AAE3D2K,EAAAA,gBAAgB,CAACC,MAAM,EAAE5H,GAAG,CAAC,CAAA;AAE7B,EAAA,MAAMkJ,WAAW,GAAGrE,iBAAiB,CAAC9B,QAAQ,IAAI;IAChDqF,OAAO,CAACrF,QAAQ,CAAC,CAAA;IACjBkG,aAAa,CAAClG,QAAQ,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEFhE,EAAAA,SAAS,CAAC,MAAM;AAEd,IAAA,IAAI6I,MAAM,CAAA;;AAEV;AACJ;AACA;AACA;AACA;IACI,MAAMpH,SAAS,GAAGlC,CAAC,IAAI;MACrB,IAAIA,CAAC,CAAC4D,GAAG,KAAK,WAAW,IAAI,CAAC0F,MAAM,EAAE;AACpC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,MAAMoC,SAAS,GAAGpC,MAAM,CAACqC,YAAY,EAAE,CAAA;MACvC,MAAMC,KAAK,GAAGF,SAAS,CAACG,MAAM,CAACH,SAAS,CAACI,SAAS,CAAC,CAAA;MAEnD,IAAIF,KAAK,CAACG,IAAI,KAAK,CAAC,IAAIH,KAAK,CAACI,EAAE,KAAK,CAAC,EAAE;AACtCT,QAAAA,YAAY,EAAE,CAAA;AAChB,OAAA;KACD,CAAA;IAEDjC,MAAM,GAAG,IAAI2C,UAAU,CAAC;MACtBnB,SAAS,EAAEN,QAAQ,CAACnK,OAAO;AAC3B0K,MAAAA,QAAQ,EAAEH,WAAW;AACrB1I,MAAAA,SAAS,EAAEA,SAAS;AACpBgI,MAAAA,MAAM,EAAEA,MAAM;AACdsB,MAAAA,WAAW,EAAEA,WAAW;AACxBxB,MAAAA,gBAAgB,EAAEA,gBAAgB;AAClCtL,MAAAA,KAAK,EAAEgM,UAAU;AACjBe,MAAAA,SAAS,EAAEA,SAAS;AACpBS,MAAAA,UAAU,EAAE,CACV,IAAGjC,aAAa,GAAG,CAAEkC,WAAW,EAAE,CAAE,GAAG,EAAE,GACzCC,UAAU,CAACC,YAAY,CACxB;AACDhC,MAAAA,iBAAAA;AACF,KAAC,CAAC,CAAA;IAEFI,SAAS,CACPnB,MACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAM;MACXY,MAAM,CAAC,EAAE,CAAC,CAAA;AACVM,MAAAA,QAAQ,CAACnK,OAAO,CAAC4K,SAAS,GAAG,EAAE,CAAA;MAC/BR,SAAS,CAAC,IAAI,CAAC,CAAA;KAChB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAENhK,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6I,MAAM,EAAE;AACX,MAAA,OAAA;AACF,KAAA;IAEA,IAAI5K,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;AAEApB,IAAAA,MAAM,CAAC4B,QAAQ,CAACxM,KAAK,CAAC,CAAA;IACtBiM,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6I,MAAM,EAAE;AACX,MAAA,OAAA;AACF,KAAA;AAEAA,IAAAA,MAAM,CAACgD,YAAY,CAACb,SAAS,CAAC,CAAA;AAChC,GAAC,EAAE,CAAEA,SAAS,CAAE,CAAC,CAAA;AAEjBhL,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6I,MAAM,EAAE;AACX,MAAA,OAAA;AACF,KAAA;AAEAA,IAAAA,MAAM,CAACiD,cAAc,CAACf,WAAW,CAAC,CAAA;AACpC,GAAC,EAAE,CAAEA,WAAW,CAAE,CAAC,CAAA;EAEnB,MAAML,WAAW,GAAGA,MAAM;AACxBzJ,IAAAA,GAAG,CAACrB,OAAO,CAACyE,KAAK,EAAE,CAAA;GACpB,CAAA;AAED,EAAA,OAAOtI,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAG2O,UAAU,CAC5B,4CAA4C,EAC5CrB,QAAQ,GAAG,UAAU,GAAG,IAAI,EAC5BK,SAAS,GAAG,WAAW,GAAG,IAAI,CAC/B;AAAA1N,IAAAA,QAAA,GACCC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,0DAA0D;AAAAC,MAAAA,QAAA,EAAC,kBAAA;KAAqB,CAAC,EAC5FC,GAAA,CAAA,KAAA,EAAA;MACE0O,IAAI,EAAGxP,KAAK,CAACwP,IAAM;MACnB5O,KAAK,EAAG2O,UAAU,CAAC,4BAA4B,EAAEV,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAG;AAChFhJ,MAAAA,GAAG,EAAG8I,QAAU;AAChB7I,MAAAA,OAAO,EAAGwJ,WAAAA;KACN,CAAC,EACPxO,GAAA,CAAA,QAAA,EAAA;AACEN,MAAAA,IAAI,EAAC,QAAQ;AACbU,MAAAA,KAAK,EAAC,oBAAoB;AAC1BN,MAAAA,KAAK,EAAC,sCAAsC;AAC5CkF,MAAAA,OAAO,EAAGA,MAAMwI,WAAW,EAAI;AAAAzN,MAAAA,QAAA,EAACC,GAAA,CAAC2O,SAAS,EAAE,EAAA,CAAA;AAAC,KAAQ,CAAC,CAAA;AAAA,GACrD,CAAC,CAAA;AACR,CAAC,CAAC;;AC3KK,SAASkB,aAAaA,CAAC3Q,KAAK,EAAE;EACnC,MAAM;AACJ4Q,IAAAA,MAAAA;AACF,GAAC,GAAG5Q,KAAK,CAAA;EAET,IAAI,CAAC4Q,MAAM,EAAE;AACX,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,OAAO9P,GAAA,CAAA,MAAA,EAAA;AAAMF,IAAAA,KAAK,EAAC,qCAAqC;AAAAC,IAAAA,QAAA,EAAC,GAAA;AAEzD,GAAM,CAAC,CAAA;AACT;;ACTA,MAAM0M,MAAI,GAAGA,MAAM,EAAE,CAAA;;AAErB;AACA;AACA;AACA;AACA;AACe,SAASsD,QAAQA,CAAC7Q,KAAK,EAAE;EAEtC,MAAM;AACJ8Q,IAAAA,IAAI,GAAG,KAAK;IACZF,MAAM;AACN1C,IAAAA,QAAQ,GAAG,KAAK;AAChBpI,IAAAA,OAAO,GAAGyH,MAAAA;AACZ,GAAC,GAAGvN,KAAK,CAAA;EAET,MAAM+Q,iBAAiB,GAAG,8BAA8B,CAAA;EACxD,MAAMC,iBAAiB,GAAI,CAAWJ,SAAAA,EAAAA,MAAM,GAAG,QAAQ,GAAG,OAAQ,CAAoC,mCAAA,CAAA,CAAA;EAEtG,MAAMtB,WAAW,GAAGnL,CAAC,IAAI;IACvB2B,OAAO,CAAC3B,CAAC,CAAC,CAAA;;AAEV;AACA,IAAA,IAAI,CAACA,CAAC,CAAC8M,WAAW,EAAE;MAClB9M,CAAC,CAAC4B,eAAe,EAAE,CAAA;AACrB,KAAA;GACD,CAAA;AAED,EAAA,OACEjF,GAAA,CAAA,QAAA,EAAA;AACEN,IAAAA,IAAI,EAAC,QAAQ;AACbI,IAAAA,KAAK,EAAG2O,UAAU,CAAC,gCAAgC,EACjDqB,MAAM,GAAG,QAAQ,GAAG,IAAI,EACxBE,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,UAAU,CAAG;AAClDhL,IAAAA,OAAO,EAAGwJ,WAAa;AACvBpB,IAAAA,QAAQ,EAAG4C,IAAI,KAAK,UAAU,IAAI5C,QAAU;AAC5ChN,IAAAA,KAAK,EACH4P,IAAI,KAAK,UAAU,GAAGC,iBAAiB,GAAGC,iBAC3C;AAAAnQ,IAAAA,QAAA,EAEDC,GAAA,CAACoQ,UAAW,EAAE,EAAA,CAAA;AAAC,GACT,CAAC,CAAA;AAEb;;AC1CA,MAAMC,gBAAgB,GAAG3P,aAAa,CAAC;AACrCkK,EAAAA,IAAI,EAAEA,MAAM,EAAE;AACd0F,EAAAA,KAAK,EAAEA,MAAM,EAAE;AACfC,EAAAA,MAAM,EAAE,IAAA;AACV,CAAC,CAAC;;ACNF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAACC,EAAE,EAAEC,WAAW,EAAE;AAE7C,EAAA,IAAIC,IAAI,CAAA;EAER,IAAIC,MAAM,EAAEC,MAAM,CAAA;;AAElB;EACA,SAASC,WAAWA,CAAC/N,KAAK,EAAE;AAE1B4N,IAAAA,IAAI,GAAG,IAAI,CAAA;IAEXC,MAAM,GAAG7N,KAAK,CAACgO,OAAO,CAAA;IACtBF,MAAM,GAAG9N,KAAK,CAACiO,OAAO,CAAA;;AAEtB;IACA,IAAIjO,KAAK,CAACkO,YAAY,EAAE;AACtBlO,MAAAA,KAAK,CAACkO,YAAY,CAACC,YAAY,CAACR,WAAW,IAAIS,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACrE,KAAA;;AAEA;;AAEA;AACA;AACA;AACA;IACAlN,QAAQ,CAACQ,gBAAgB,CAAC,UAAU,EAAE2M,MAAM,EAAE,IAAI,CAAC,CAAA;IACnDnN,QAAQ,CAACQ,gBAAgB,CAAC,WAAW,EAAE4M,cAAc,EAAE,IAAI,CAAC,CAAA;AAE5DpN,IAAAA,QAAQ,CAACQ,gBAAgB,CAAC,SAAS,EAAE6M,KAAK,CAAC,CAAA;AAC3CrN,IAAAA,QAAQ,CAACQ,gBAAgB,CAAC,MAAM,EAAE4M,cAAc,CAAC,CAAA;AACnD,GAAA;EAEA,SAASD,MAAMA,CAACrO,KAAK,EAAE;AACrB,IAAA,MAAMwO,KAAK,GAAG;AACZ/N,MAAAA,CAAC,EAAET,KAAK,CAACgO,OAAO,GAAGH,MAAM;AACzBnN,MAAAA,CAAC,EAAEV,KAAK,CAACiO,OAAO,GAAGH,MAAAA;KACpB,CAAA;;AAED;IACA,OAAOJ,EAAE,CAACe,IAAI,CAACb,IAAI,EAAE5N,KAAK,EAAEwO,KAAK,CAAC,CAAA;AACpC,GAAA;EAEA,SAASD,KAAKA,GAAG;IACfrN,QAAQ,CAACS,mBAAmB,CAAC,UAAU,EAAE0M,MAAM,EAAE,IAAI,CAAC,CAAA;IACtDnN,QAAQ,CAACS,mBAAmB,CAAC,WAAW,EAAE2M,cAAc,EAAE,IAAI,CAAC,CAAA;AAE/DpN,IAAAA,QAAQ,CAACS,mBAAmB,CAAC,SAAS,EAAE4M,KAAK,CAAC,CAAA;AAC9CrN,IAAAA,QAAQ,CAACS,mBAAmB,CAAC,MAAM,EAAE2M,cAAc,CAAC,CAAA;AACtD,GAAA;AAEA,EAAA,OAAOP,WAAW,CAAA;AACpB,CAAA;AAEA,SAASO,cAAcA,CAACtO,KAAK,EAAE;EAC7BA,KAAK,CAACsO,cAAc,EAAE,CAAA;EACtBtO,KAAK,CAACkC,eAAe,EAAE,CAAA;AACzB,CAAA;AAEA,SAASkM,WAAWA,GAAG;EACrB,OAAOM,MAAM,CAAC,iCAAiC,CAAC,CAAA;AAClD;;AC/DA,MAAMhF,MAAI,GAAGA,MAAM,EAAE,CAAA;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiF,cAAcA,CAACxS,KAAK,EAAEyS,SAAS,EAAE;EAExC,MAAM;IACJxD,SAAS;IACTyD,SAAS;IACTC,iBAAiB;IACjBzP,QAAQ;IACRnC,KAAK;IACLC,MAAM;IACN4R,OAAO;AACPC,IAAAA,cAAc,GAAGtF,MAAI;AACrBuF,IAAAA,gBAAgB,GAAGvF,MAAI;AACvBwF,IAAAA,WAAW,GAAG,IAAI;AAClBC,IAAAA,aAAa,GAAG,IAAI;AACpB9R,IAAAA,KAAAA;AACF,GAAC,GAAGlB,KAAK,CAAA;AAET,EAAA,MAAMiT,YAAY,GAAGvP,MAAM,CAAC,IAAI,CAAC,CAAA;AACjC,EAAA,MAAMwP,QAAQ,GAAGxP,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7B,EAAA,MAAMyP,QAAQ,GAAGV,SAAS,IAAIS,QAAQ,CAAA;AAEtC,EAAA,MAAME,aAAa,GAAGxL,OAAO,CAAC,MAAMyL,gBAAgB,CAACpE,SAAS,CAAC,EAAE,CAAEA,SAAS,CAAE,CAAC,CAAA;EAE/E,MAAMqE,aAAa,GAAGzP,KAAK,IAAI;AAE7B;IACAA,KAAK,CAACkC,eAAe,EAAE,CAAA;AAEvB,IAAA,IAAIiN,aAAa,IAAInP,KAAK,CAACkE,GAAG,KAAK,QAAQ,EAAE;AAC3C6K,MAAAA,OAAO,EAAE,CAAA;AACX,KAAA;GACD,CAAA;;AAED;EACA,MAAMW,WAAW,GAAGA,MAAM;IACxB,IAAIN,YAAY,CAACzO,OAAO,EAAE;AACxByO,MAAAA,YAAY,CAACzO,OAAO,CAACgP,QAAQ,EAAE,CAAA;AACjC,KAAA;GACD,CAAA;EAED,IAAI7N,KAAK,GAAG,EAAE,CAAA;AAEd,EAAA,IAAIzC,QAAQ,EAAE;AACZyC,IAAAA,KAAK,GAAG;AACN,MAAA,GAAGA,KAAK;AACRa,MAAAA,GAAG,EAAEtD,QAAQ,CAACsD,GAAG,GAAG,IAAI;AACxBG,MAAAA,IAAI,EAAEzD,QAAQ,CAACyD,IAAI,GAAG,IAAA;KACvB,CAAA;AACH,GAAA;AAEA,EAAA,IAAI5F,KAAK,EAAE;AACT4E,IAAAA,KAAK,CAAC5E,KAAK,GAAGA,KAAK,GAAG,IAAI,CAAA;AAC5B,GAAA;AAEA,EAAA,IAAIC,MAAM,EAAE;AACV2E,IAAAA,KAAK,CAAC3E,MAAM,GAAGA,MAAM,GAAG,IAAI,CAAA;AAC9B,GAAA;AAEA4D,EAAAA,SAAS,CAAC,MAAM;IACd,IAAIuO,QAAQ,CAAC3O,OAAO,EAAE;MACpB2O,QAAQ,CAAC3O,OAAO,CAACe,gBAAgB,CAAC,SAAS,EAAEgO,WAAW,CAAC,CAAA;AAC3D,KAAA;AAEA,IAAA,OAAO,MAAM;MAAEJ,QAAQ,CAAC3O,OAAO,CAACgB,mBAAmB,CAAC,SAAS,EAAE+N,WAAW,CAAC,CAAA;KAAG,CAAA;AAChF,GAAC,EAAE,CAAEJ,QAAQ,CAAE,CAAC,CAAA;AAEhBvO,EAAAA,SAAS,CAAC,MAAM;IACd,IAAIuO,QAAQ,CAAC3O,OAAO,EAAE;MACpByO,YAAY,CAACzO,OAAO,GAAGiP,SAAS,CAACC,eAAe,CAACP,QAAQ,CAAC3O,OAAO,EAAE;AACjEmP,QAAAA,uBAAuB,EAAE,IAAI;QAC7BhB,iBAAiB;QACjBiB,aAAa,EAAET,QAAQ,CAAC3O,OAAO;QAC/BqO,cAAc;QACdC,gBAAgB;AAChBe,QAAAA,uBAAuB,EAAEd,WAAAA;AAC3B,OAAC,CAAC,CAAA;AAEFE,MAAAA,YAAY,CAACzO,OAAO,CAACgP,QAAQ,EAAE,CAAA;AACjC,KAAA;IAEA,OAAO,MAAMP,YAAY,CAACzO,OAAO,IAAIyO,YAAY,CAACzO,OAAO,CAACsP,UAAU,EAAE,CAAA;AACxE,GAAC,EAAE,CAAEX,QAAQ,CAAE,CAAC,CAAA;AAEhBjM,EAAAA,QAAQ,CAAC,wBAAwB,EAAE0L,OAAO,CAAC,CAAA;EAE3C,OAAOtM,YAAY,CACjBxF,GAAA,CAAA,KAAA,EAAA;AACE,IAAA,YAAA,EAAaI,KAAO;IACpB8E,QAAQ,EAAG,CAAC,CAAG;AACfH,IAAAA,GAAG,EAAGsN,QAAU;AAChB9M,IAAAA,SAAS,EAAGiN,aAAe;AAC3B5N,IAAAA,IAAI,EAAC,QAAQ;AACb9E,IAAAA,KAAK,EAAG2O,UAAU,CAAC,4BAA4B,EAAEmD,SAAS,CAAG;AAC7D/M,IAAAA,KAAK,EAAGA,KAAO;IAAA9E,QAAA,EAAGb,KAAK,CAACa,QAAAA;AAAQ,GAAO,CAAC,EACxCuS,aAAa,IAAIrO,QAAQ,CAACgP,IAC9B,CAAC,CAAA;AACH,CAAA;MAEaC,KAAK,GAAGhG,UAAU,CAACwE,cAAc,EAAC;AAE/CwB,KAAK,CAACC,KAAK,GAAGA,KAAK,CAAA;AACnBD,KAAK,CAACE,IAAI,GAAGA,IAAI,CAAA;AACjBF,KAAK,CAACG,MAAM,GAAGA,MAAM,CAAA;AAErB,SAASF,KAAKA,CAACjU,KAAK,EAAE;EACpB,MAAM;IACJa,QAAQ;IACR6R,SAAS;IACT0B,SAAS;AACTC,IAAAA,IAAI,GAAGA,MAAM,EAAE;IACfnT,KAAK;AACLoT,IAAAA,eAAe,GAAG,KAAK;AACvBC,IAAAA,kBAAkB,GAAG,aAAa;IAClC3B,OAAO;IACP,GAAG4B,IAAAA;AACL,GAAC,GAAGxU,KAAK,CAAA;;AAET;AACA;EACA,MAAMyU,OAAO,GAAG/Q,MAAM,CAAC;AACrBgR,IAAAA,aAAa,EAAE,IAAI;AACnBC,IAAAA,WAAW,EAAE,IAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,cAAc,GAAGlR,MAAM,EAAE,CAAA;AAE/B,EAAA,MAAMmR,QAAQ,GAAGnR,MAAM,EAAE,CAAA;AAEzB,EAAA,MAAMoR,MAAM,GAAGA,CAACjR,KAAK,EAAEwO,KAAK,KAAK;IAC/B0C,MAAM,CAAClR,KAAK,CAAC,CAAA;IAEb,MAAM;AAAES,MAAAA,CAAC,EAAE0Q,EAAE;AAAEzQ,MAAAA,CAAC,EAAE0Q,EAAAA;AAAG,KAAC,GAAG5C,KAAK,CAAA;AAE9B,IAAA,MAAMsC,WAAW,GAAG;MAClBrQ,CAAC,EAAEmQ,OAAO,CAACjQ,OAAO,CAACkQ,aAAa,CAACpQ,CAAC,GAAG0Q,EAAE;MACvCzQ,CAAC,EAAEkQ,OAAO,CAACjQ,OAAO,CAACkQ,aAAa,CAACnQ,CAAC,GAAG0Q,EAAAA;KACtC,CAAA;AAED,IAAA,MAAMC,WAAW,GAAGC,cAAc,CAACN,QAAQ,CAACrQ,OAAO,CAAC,CAAA;IAEpD0Q,WAAW,CAACvP,KAAK,CAACa,GAAG,GAAGmO,WAAW,CAACpQ,CAAC,GAAG,IAAI,CAAA;IAC5C2Q,WAAW,CAACvP,KAAK,CAACgB,IAAI,GAAGgO,WAAW,CAACrQ,CAAC,GAAG,IAAI,CAAA;;AAE7C;IACA+P,IAAI,CAAC,UAAU,EAAE;MAAEM,WAAW;AAAEtC,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;GACzC,CAAA;EAED,MAAM+C,WAAW,GAAIvR,KAAK,IAAK;AAE7B;IACA,MAAM+N,WAAW,GAAGN,aAAa,CAACwD,MAAM,EAAEF,cAAc,CAACpQ,OAAO,CAAC,CAAA;IACjEoN,WAAW,CAAC/N,KAAK,CAAC,CAAA;IAElBA,KAAK,CAACkC,eAAe,EAAE,CAAA;AAEvB,IAAA,MAAMmP,WAAW,GAAGC,cAAc,CAACN,QAAQ,CAACrQ,OAAO,CAAC,CAAA;AAEpD,IAAA,MAAM+B,MAAM,GAAG2O,WAAW,CAACvQ,qBAAqB,EAAE,CAAA;AAClD8P,IAAAA,OAAO,CAACjQ,OAAO,CAACkQ,aAAa,GAAG;MAC9BpQ,CAAC,EAAEiC,MAAM,CAACI,IAAI;MACdpC,CAAC,EAAEgC,MAAM,CAACC,GAAAA;KACX,CAAA;;AAED;IACA6N,IAAI,CAAC,WAAW,CAAC,CAAA;GAClB,CAAA;EAED,MAAMgB,SAAS,GAAGA,MAAM;AACtBZ,IAAAA,OAAO,CAACjQ,OAAO,CAACmQ,WAAW,GAAG,IAAI,CAAA;;AAElC;IACAN,IAAI,CAAC,SAAS,CAAC,CAAA;GAChB,CAAA;AAED,EAAA,OACE1T,IAAA,CAAA,KAAA,EAAA;IACEC,KAAK,EAAG2O,UAAU,CAChB,oCAAoC,EACpC6E,SAAS,IAAI,WAAW,EACxB1B,SACF,CAAG;AACH7M,IAAAA,GAAG,EAAGgP,QAAU;AAChBT,IAAAA,SAAS,EAAGA,SAAW;AACvBxC,IAAAA,WAAW,EAAGwD,WAAa;AAC3BE,IAAAA,SAAS,EAAGD,SAAW;AAAA,IAAA,GAClBb,IAAI;AAAA3T,IAAAA,QAAA,EACPuT,CAAAA,SAAS,IACTzT,IAAA,CAAA4U,QAAA,EAAA;AAAA1U,MAAAA,QAAA,GACEC,GAAA,CAAA,KAAA,EAAA;AAAK+E,QAAAA,GAAG,EAAG+O,cAAgB;AAAChU,QAAAA,KAAK,EAAC,0CAAA;OAAgD,CAAC,EACnFE,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,yCAAyC;AAAAC,QAAAA,QAAA,EAClDC,GAAA,CAAC0U,QAAQ,EAAE,EAAA,CAAA;AAAC,OACT,CAAC,CAAA;KACN,CACH,EACD1U,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,mCAAmC;AAAAC,MAAAA,QAAA,EAAGK,KAAAA;AAAK,KAAO,CAAC,EAC5DL,QAAQ,EACRyT,eAAe,IACfxT,GAAA,CAAA,QAAA,EAAA;AACEI,MAAAA,KAAK,EAAGqT,kBAAoB;AAC5B3T,MAAAA,KAAK,EAAC,mCAAmC;AACzCkF,MAAAA,OAAO,EAAG8M,OAAS;AAAA/R,MAAAA,QAAA,EACnBC,GAAA,CAAC2U,SAAS,EAAE,EAAA,CAAA;AAAC,KACP,CACT,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAA;AAEA,SAASvB,IAAIA,CAAClU,KAAK,EAAE;EACnB,MAAM;IACJa,QAAQ;IACR6R,SAAS;IACT,GAAG8B,IAAAA;AACL,GAAC,GAAGxU,KAAK,CAAA;AAET,EAAA,OACEc,GAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,KAAK,EAAG2O,UAAU,CAAC,kCAAkC,EAAEmD,SAAS,CAAG;AAAA,IAAA,GAAM8B,IAAI;AAAA3T,IAAAA,QAAA,EAC9EA,QAAAA;AAAQ,GACP,CAAC,CAAA;AAEV,CAAA;AAEA,SAASsT,MAAMA,CAACnU,KAAK,EAAE;EACrB,MAAM;IACJa,QAAQ;IACR6R,SAAS;IACT,GAAG8B,IAAAA;AACL,GAAC,GAAGxU,KAAK,CAAA;AAET,EAAA,OACEc,GAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,KAAK,EAAG2O,UAAU,CAAC,oCAAoC,EAAEmD,SAAS,CAAG;AAAA,IAAA,GAAM8B,IAAI;IAAA3T,QAAA,EAChFb,KAAK,CAACa,QAAAA;AAAQ,GACb,CAAC,CAAA;AAEV,CAAA;;AAGA;;AAEA,SAASsU,cAAcA,CAACO,IAAI,EAAE;AAC5B,EAAA,OAAOA,IAAI,CAACzQ,OAAO,CAAC,6BAA6B,CAAC,CAAA;AACpD,CAAA;AAEA,SAAS8P,MAAMA,CAAClR,KAAK,EAAE;EACrBA,KAAK,CAACsO,cAAc,EAAE,CAAA;EACtBtO,KAAK,CAACkC,eAAe,EAAE,CAAA;AACzB,CAAA;AAEA,SAASsN,gBAAgBA,CAACqC,IAAI,EAAE;AAC9B,EAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOhM,KAAQ,CAACgM,IAAI,CAAC,CAAA;AACvB,GAAA;AAEA,EAAA,OAAOA,IAAI,CAAA;AACb;;AChRO,MAAMC,gBAAgB,GAAG,GAAG,CAAA;AAC5B,MAAMC,iBAAiB,GAAG,GAAG,CAAA;;AAGpC;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,aAAaA,CAAC7V,KAAK,EAAE;EAC3C,MAAM;IACJC,OAAO;AACP6B,IAAAA,QAAQ,GAAG;MAAEgU,IAAIA,GAAG,EAAE;MAAExO,EAAEA,GAAG,EAAE;MAAEC,GAAGA,GAAG,EAAC;KAAG;AAC3CwO,IAAAA,cAAAA;AACF,GAAC,GAAG/V,KAAK,CAAA;AAET,EAAA,MAAMgW,WAAW,GAAGnN,WAAW,CAAC5I,OAAO,CAAC,CAAA;EAExC,MAAM,CAAEgW,WAAW,EAAEC,cAAc,CAAE,GAAG7S,QAAQ,CAAC,EAAE,CAAC,CAAA;EACpD,MAAM,CAAEqI,IAAI,EAAEC,OAAO,CAAE,GAAGtI,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzC,MAAM,CAAEgO,MAAM,EAAE8E,SAAS,CAAE,GAAG9S,QAAQ,CAAC,IAAI,CAAC,CAAA;EAC5C,MAAM,CAAE+S,aAAa,EAAEC,gBAAgB,CAAE,GAAGhT,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE1D,EAAA,MAAMgR,IAAI,GAAGA,CAAC7T,IAAI,EAAEiU,OAAO,KAAK;IAC9B3S,QAAQ,CAACgU,IAAI,CAAC,YAAY,GAAGtV,IAAI,EAAEiU,OAAO,CAAC,CAAA;GAC5C,CAAA;AAED,EAAA,MAAM6B,MAAM,GAAG3N,WAAW,CAAC,MAAM;IAC/B,OAAO,CAAC,CAAC+C,IAAI,CAAA;AACf,GAAC,EAAE,CAAEA,IAAI,CAAE,CAAC,CAAA;AAEZ6K,EAAAA,eAAe,CAAC,MAAM;IACpB,IAAI,CAAC7K,IAAI,EAAE;MACT2I,IAAI,CAAC,QAAQ,CAAC,CAAA;AAChB,KAAA;AACF,GAAC,EAAE,CAAE3I,IAAI,CAAE,CAAC,CAAA;EAEZ,MAAM8K,UAAU,GAAGA,CAACC,OAAO,EAAEC,MAAM,EAAEC,cAAc,KAAK;IACtDR,SAAS,CAACM,OAAO,CAAC,CAAA;IAClBP,cAAc,CAACQ,MAAM,CAAC,CAAA;IACtB/K,OAAO,CAAC,IAAI,CAAC,CAAA;IACb0K,gBAAgB,CAACM,cAAc,CAAC,CAAA;IAChCtC,IAAI,CAAC,MAAM,CAAC,CAAA;GACb,CAAA;AAED,EAAA,MAAMuC,WAAW,GAAGA,CAAC/S,KAAK,GAAG,EAAG,KAAK;IACnC,MAAM;AAAErB,MAAAA,EAAAA;AAAG,KAAC,GAAGqB,KAAK,CAAA;AACpB,IAAA,IAAIrB,EAAE,IAAIA,EAAE,KAAK6O,MAAM,EAAE;AACvB,MAAA,OAAA;AACF,KAAA;IAEA1F,OAAO,CAAC,KAAK,CAAC,CAAA;IACdwK,SAAS,CAAC,IAAI,CAAC,CAAA;GAChB,CAAA;AAED,EAAA,MAAMU,gBAAgB,GAAG;AACvBnL,IAAAA,IAAI,EAAE8K,UAAU;AAChBpF,IAAAA,KAAK,EAAEwF,WAAW;AAClBvF,IAAAA,MAAAA;GACD,CAAA;;AAED;AACAzM,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI3E,OAAO,IAAI+V,WAAW,IAAI/V,OAAO,KAAK+V,WAAW,EAAE;AACrDY,MAAAA,WAAW,EAAE,CAAA;AACf,KAAA;AACF,GAAC,EAAE,CAAE3W,OAAO,CAAE,CAAC,CAAA;;AAEf;AACA2E,EAAAA,SAAS,CAAC,MAAM;IAEd,MAAMkS,eAAe,GAAIrC,OAAO,IAAK;MACnC,MAAM;QACJgC,OAAO;QACPR,WAAW;AACXG,QAAAA,aAAAA;AACF,OAAC,GAAG3B,OAAO,CAAA;AAEX+B,MAAAA,UAAU,CAACC,OAAO,EAAER,WAAW,EAAEG,aAAa,CAAC,CAAA;KAChD,CAAA;IAED,MAAMW,YAAY,GAAGA,MAAM;MACzB,OAAOT,MAAM,EAAE,CAAA;KAChB,CAAA;AAEDxU,IAAAA,QAAQ,CAACwF,EAAE,CAAC,kBAAkB,EAAEsP,WAAW,CAAC,CAAA;AAC5C9U,IAAAA,QAAQ,CAACwF,EAAE,CAAC,iBAAiB,EAAEwP,eAAe,CAAC,CAAA;AAC/ChV,IAAAA,QAAQ,CAACwF,EAAE,CAAC,mBAAmB,EAAEyP,YAAY,CAAC,CAAA;AAE9C,IAAA,OAAO,MAAM;AACXjV,MAAAA,QAAQ,CAACyF,GAAG,CAAC,kBAAkB,EAAEqP,WAAW,CAAC,CAAA;AAC7C9U,MAAAA,QAAQ,CAACyF,GAAG,CAAC,iBAAiB,EAAEiP,UAAU,CAAC,CAAA;AAC3C1U,MAAAA,QAAQ,CAACyF,GAAG,CAAC,mBAAmB,EAAEwP,YAAY,CAAC,CAAA;KAChD,CAAA;AAEH,GAAC,EAAE,CAAEjV,QAAQ,EAAEwU,MAAM,CAAE,CAAC,CAAA;AAExB,EAAA,OACE3V,IAAA,CAACwQ,gBAAgB,CAACrE,QAAQ,EAAA;AAACjK,IAAAA,KAAK,EAAGgU,gBAAkB;AAAAhW,IAAAA,QAAA,EACjD6K,CAAAA,IAAI,IACJ5K,GAAA,CAACkW,kBAAkB,EAAA;AACjBpE,MAAAA,OAAO,EAAGgE,WAAa;AACvB3H,MAAAA,SAAS,EAAG8G,cAAgB;AAC5BK,MAAAA,aAAa,EAAGA,aAAe;AAC/B/B,MAAAA,IAAI,EAAGA,IAAM;MAAA,GACR4B,WAAAA;AAAW,KAAI,CACvB,EACCjW,KAAK,CAACa,QAAQ,CAAA;AAAA,GACS,CAAC,CAAA;AAEhC,CAAA;AAEA,SAASmW,kBAAkBA,CAAChX,KAAK,EAAE;EACjC,MAAM;IACJiP,SAAS;IACTzM,EAAE;IACFiM,YAAY;IACZR,OAAO;IACP2E,OAAO;IACP1P,QAAQ;IACRwL,UAAU;IACV0H,aAAa;IACblV,KAAK;IACLiN,gBAAgB;IAChB3N,IAAI;IACJqC,KAAK;IACL+M,SAAS;AACTyE,IAAAA,IAAAA;AACF,GAAC,GAAGrU,KAAK,CAAA;AAET,EAAA,MAAMiX,SAAS,GAAGvT,MAAM,EAAE,CAAA;AAC1B,EAAA,MAAMyP,QAAQ,GAAGzP,MAAM,EAAE,CAAA;AAEzB,EAAA,MAAMwT,oBAAoB,GAAGxT,MAAM,CAAC,KAAK,CAAC,CAAA;EAE1C,MAAMyT,oBAAoB,GAAGA,MAAM;AACjCf,IAAAA,aAAa,IAAIA,aAAa,CAACnN,KAAK,EAAE,CAAA;GACvC,CAAA;EAED,MAAMmO,gBAAgB,GAAIvT,KAAK,IAAK;AAElC;AACA,IAAA,IAAIA,KAAK,CAACkE,GAAG,KAAK,QAAQ,EAAE;MAC1BmP,oBAAoB,CAAC1S,OAAO,GAAG6S,kBAAkB,CAACxT,KAAK,CAACxC,MAAM,CAAC,CAAA;AACjE,KAAA;GACD,CAAA;EAED,MAAMgF,SAAS,GAAIxC,KAAK,IAAK;AAE3B,IAAA,IAAIA,KAAK,CAACkE,GAAG,KAAK,QAAQ,EAAE;AAE1B;AACA;AACA;AACA;AACA,MAAA,IAAI,CAACmP,oBAAoB,CAAC1S,OAAO,EAAE;AACjCoO,QAAAA,OAAO,EAAE,CAAA;QACTsE,oBAAoB,CAAC1S,OAAO,GAAG,KAAK,CAAA;AACtC,OAAA;AACF,KAAA;GACD,CAAA;AAEDI,EAAAA,SAAS,CAAC,MAAM;IACdyP,IAAI,CAAC,QAAQ,EAAE;MAAEiD,OAAO,EAAEnE,QAAQ,CAAC3O,OAAAA;AAAQ,KAAC,CAAC,CAAA;AAC7C,IAAA,OAAO,MAAM6P,IAAI,CAAC,OAAO,EAAE;MAAEiD,OAAO,EAAEnE,QAAQ,CAAC3O,OAAAA;AAAQ,KAAC,CAAC,CAAA;GAC1D,EAAE,EAAE,CAAC,CAAA;AAENI,EAAAA,SAAS,CAAC,MAAM;AAEd;IACA,IAAIqS,SAAS,CAACzS,OAAO,EAAE;AACrByS,MAAAA,SAAS,CAACzS,OAAO,CAACyE,KAAK,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EAAE,CAAEgO,SAAS,CAAE,CAAC,CAAA;EAEjB,OACEtW,IAAA,CAACqT,KAAK,EAAA;AACJ/E,IAAAA,SAAS,EAAGA,SAAW;AACvByD,IAAAA,SAAS,EAAC,iCAAiC;AAC3C2B,IAAAA,IAAI,EAAGA,IAAM;AACbnR,IAAAA,QAAQ,EAAGA,QAAU;AACrBhC,IAAAA,KAAK,EAAGA,KAAO;AACf0R,IAAAA,OAAO,EAAGA,OAAAA;;AAEV;AAAA;AACAG,IAAAA,WAAW,EAAG,KAAO;AACrBC,IAAAA,aAAa,EAAG,KAAO;AACvBL,IAAAA,iBAAiB,EAAG,KAAO;AAC3BG,IAAAA,gBAAgB,EAAGqE,oBAAsB;AACzCnW,IAAAA,MAAM,EAAG4U,iBAAmB;AAC5B7U,IAAAA,KAAK,EAAG4U,gBAAkB;AAC1B9P,IAAAA,GAAG,EAAGsN,QAAU;AAAAtS,IAAAA,QAAA,EAEhBF,CAAAA,IAAA,CAACqT,KAAK,CAACC,KAAK,EAAA;AACV/S,MAAAA,KAAK,EAAGA,KAAO;AACfmT,MAAAA,IAAI,EAAGA,IAAM;AACbC,MAAAA,eAAe,EAAG,IAAM;AACxBC,MAAAA,kBAAkB,EAAC,gBAAgB;AACnC3B,MAAAA,OAAO,EAAGA,OAAS;MACnBwB,SAAS,EAAA,IAAA;AAAAvT,MAAAA,QAAA,EACRL,CAAAA,IAAI,KAAK,MAAM,IACdG,IAAA,CAAA,GAAA,EAAA;AAAGS,QAAAA,IAAI,EAAC,oEAAoE;AAACC,QAAAA,MAAM,EAAC,QAAQ;AAACT,QAAAA,KAAK,EAAC,6CAA6C;AAAAC,QAAAA,QAAA,GAAC,wBAE/I,EAAAC,GAAA,CAACyW,QAAQ,IAAE,CAAC,CAAA;AAAA,OACX,CACJ,EAEA/W,IAAI,KAAK,SAAS,IACjBG,IAAA,CAAA,GAAA,EAAA;AAAGS,QAAAA,IAAI,EAAC,qGAAqG;AAACC,QAAAA,MAAM,EAAC,QAAQ;AAACT,QAAAA,KAAK,EAAC,6CAA6C;AAAAC,QAAAA,QAAA,GAAC,kBAEhL,EAAAC,GAAA,CAACyW,QAAQ,IAAE,CAAC,CAAA;AAAA,OACX,CACJ,CAAA;AAAA,KAEU,CAAC,EACdzW,GAAA,CAACkT,KAAK,CAACE,IAAI,EAAA;AAAArT,MAAAA,QAAA,EACTF,IAAA,CAAA,KAAA,EAAA;AACEyW,QAAAA,gBAAgB,EAAGA,gBAAkB;AACrC/Q,QAAAA,SAAS,EAAGA,SAAW;AACvBzF,QAAAA,KAAK,EAAC,uCAAuC;AAAAC,QAAAA,QAAA,GAG3CL,IAAI,KAAK,MAAM,IACbM,GAAA,CAACiN,UAAU,EAAA;AACTK,UAAAA,aAAa,EAAG,IAAM;AACtB5L,UAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBgN,UAAAA,IAAI,EAAGhN,EAAI;AACXyL,UAAAA,OAAO,EAAGA,OAAS;AACnBpL,UAAAA,KAAK,EAAGA,KAAO;AACf+M,UAAAA,SAAS,EAAGA,SAAW;AACvB/J,UAAAA,GAAG,EAAGoR,SAAW;AACjB9I,UAAAA,gBAAgB,EAAGA,gBAAAA;SACpB,CACF,EAID3N,IAAI,KAAK,SAAS,IAChBM,GAAA,CAAC0W,YAAgB,EAAA;AACfhV,UAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBgM,UAAAA,iBAAiB,EAAG;AAAE,YAAA,YAAY,EAAEtN,KAAAA;WAAS;AAC7CkN,UAAAA,aAAa,EAAG,IAAM;AACtBK,UAAAA,YAAY,EAAGA,YAAc;AAC7Be,UAAAA,IAAI,EAAGhN,EAAI;AACXyL,UAAAA,OAAO,EAAGA,OAAS;AACnBpL,UAAAA,KAAK,EAAGA,KAAO;AACfgD,UAAAA,GAAG,EAAGoR,SAAW;AACjBvI,UAAAA,UAAU,EAAGA,UAAY;AACzBP,UAAAA,gBAAgB,EAAGA,gBAAAA;AAAkB,SACtC,CACF,CAAA;OAEA,CAAA;AAAC,KACI,CAAC,CAAA;AAAA,GACR,CAAC,CAAA;AAEZ,CAAA;;AAEA;;AAEA,SAASpL,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAuBA,EAAG,CAAC,CAAA,CAAA;AACrC,CAAA;AAEA,SAAS6U,kBAAkBA,CAACpX,OAAO,EAAE;EACnC,OAAOA,OAAO,CAACgF,OAAO,CAAC,YAAY,CAAC,CAACwS,aAAa,CAAC,0BAA0B,CAAC,CAAA;AAChF,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASlB,eAAeA,CAACmB,MAAM,EAAEC,IAAI,EAAE;AACrC,EAAA,MAAMC,SAAS,GAAGlU,MAAM,CAAC,KAAK,CAAC,CAAA;AAE/BkB,EAAAA,SAAS,CAAC,MAAM;IACd,IAAIgT,SAAS,CAACpT,OAAO,EAAE;MACrB,OAAOkT,MAAM,EAAE,CAAA;AACjB,KAAC,MAAM;MACLE,SAAS,CAACpT,OAAO,GAAG,IAAI,CAAA;AAC1B,KAAA;GACD,EAAEmT,IAAI,CAAC,CAAA;AACV;;ACtSO,SAASE,YAAYA,CAAC7X,KAAK,EAAE;EAClC,MAAM;IACJwC,EAAE;IACFjC,KAAK;IACL0N,OAAO;IACPpL,KAAK;IACLiV,aAAa;IACbC,MAAM;IACN3R,OAAO;IACP4R,MAAM;IACNrJ,QAAQ;AACRtM,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;AAErD,EAAA,MAAMoV,mBAAmB,GAAG,YAAY;IACtChK,OAAO,CAAC,CAACpL,KAAK,CAAC,CAAA;GAChB,CAAA;EAED,MAAMkM,WAAW,GAAG5K,CAAC,IAAI;IACvB8T,mBAAmB,CAAE,CAAC,CAAA;AACtBnJ,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAED+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,OACElC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAG2O,UAAU,CACrB,oCAAoC,EACpC;AAAEwI,MAAAA,MAAAA;AAAO,KACX,CAAG;AAAAlX,IAAAA,QAAA,GACDC,GAAA,CAAA,OAAA,EAAA;AAAOF,MAAAA,KAAK,EAAC,4BAA4B;AACvCsX,MAAAA,GAAG,EAAGnV,UAAQ,CAACP,EAAE,CAAG;MAAA3B,QAAA,EACpBC,GAAA,CAACgC,cAAO,EAAA;AAACD,QAAAA,KAAK,EAAGR,OAAS;AAACM,QAAAA,KAAK,EAAGH,EAAI;QAACvC,OAAO,EAAGD,KAAK,CAACC,OAAS;AAAAY,QAAAA,QAAA,EAC7DN,KAAAA;OACK,CAAA;KACJ,CAAC,EACRI,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,oCAAoC;AAAAC,MAAAA,QAAA,GAC7CF,IAAA,CAAA,OAAA,EAAA;AAAOC,QAAAA,KAAK,EAAC,8CAA8C;AAAAC,QAAAA,QAAA,GACzDC,GAAA,CAAA,OAAA,EAAA;AACE+E,UAAAA,GAAG,EAAG8I,QAAU;AAChBnM,UAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnB5B,UAAAA,KAAK,EAAC,4BAA4B;AAClCJ,UAAAA,IAAI,EAAC,UAAU;AACf4F,UAAAA,OAAO,EAAGA,OAAS;AACnB4R,UAAAA,MAAM,EAAGA,MAAQ;AACjBxI,UAAAA,IAAI,EAAGhN,EAAI;AACXyL,UAAAA,OAAO,EAAGc,WAAa;UACvBoJ,OAAO,EAAG,CAAC,CAACtJ,UAAAA;SAAc,CAAC,EAC7B/N,GAAA,CAAA,MAAA,EAAA;AAAMF,UAAAA,KAAK,EAAC,4CAAA;AAA4C,SAAE,CAAC,CAAA;AAAA,OACtD,CAAC,EACNkX,aAAa,IAAIhX,GAAA,CAAA,GAAA,EAAA;AAAGF,QAAAA,KAAK,EAAC,2CAA2C;AAAAC,QAAAA,QAAA,EAAGiX,aAAAA;AAAa,OAAK,CAAC,CAAA;AAAA,KAC1F,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASM,iBAAiBA,CAACpY,KAAK,EAAE;EAC/C,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACXlB,KAAK;IACLuX,aAAa;IACbC,MAAM;IACNM,QAAQ;IACRhJ,QAAQ;IACRjJ,OAAO;IACP4R,MAAM;AACN3V,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;AAET,EAAA,MAAM6C,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAC/B,EAAA,OACEU,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,qEAAqE;AAAC,IAAA,eAAA,EAAgB4B,EAAI;IAAA3B,QAAA,EAAA,CACnGC,GAAA,CAAC+W,YAAY,EAAA;AACXrV,MAAAA,EAAE,EAAGA,EAAI;AACTjC,MAAAA,KAAK,EAAGA,KAAO;AACfsC,MAAAA,KAAK,EAAGA,KAAO;AACfoL,MAAAA,OAAO,EAAGoB,QAAU;AACpBjJ,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBF,MAAAA,aAAa,EAAGA,aAAe;AAC/BC,MAAAA,MAAM,EAAGA,MAAQ;AACjB1V,MAAAA,OAAO,EAAGA,OAAS;AACnBpC,MAAAA,OAAO,EAAGA,OAAAA;AAAS,KAAE,CAAC,EACxBa,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEO,SAAS0K,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAACyC,OAAO,CAAA;AAC/B,CAAA;;AAGA;;AAEA,SAASpV,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;ACnHO,SAAS8V,WAAWA,CAACtY,KAAK,EAAE;EAEjC,MAAM;IACJuY,QAAQ;IACRrK,QAAQ;AACRsK,IAAAA,YAAY,GAAG,IAAI;IACnBhW,EAAE;IACFmM,QAAQ;IACRpO,KAAK;IACLkY,GAAG;IACHC,GAAG;IACHzK,OAAO;IACP0K,IAAI;AACJ9V,IAAAA,KAAK,GAAG,EAAE;IACVuD,OAAO;AACP4R,IAAAA,MAAAA;AACF,GAAC,GAAGhY,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;AAErD,EAAA,MAAMoV,mBAAmB,GAAGrQ,OAAO,CAAC,MAAM;IACxC,OAAO2Q,QAAQ,CAAElX,MAAM,IAAK;AAE1B,MAAA,IAAIA,MAAM,CAACuX,QAAQ,CAACC,KAAK,EAAE;AACzB5K,QAAAA,OAAO,CAAC5M,MAAM,CAACwB,KAAK,GAAGiW,UAAU,CAACzX,MAAM,CAACwB,KAAK,CAAC,GAAG+K,SAAS,CAAC,CAAA;AAC9D,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAAEK,OAAO,EAAEsK,QAAQ,CAAE,CAAC,CAAA;EAEzB,MAAMxJ,WAAW,GAAG5K,CAAC,IAAI;AACvB8T,IAAAA,mBAAmB,CAAC9T,CAAC,CAAC9C,MAAM,CAAC,CAAA;AAC7ByN,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAED+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,OACElC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,kCAAkC;IAAAC,QAAA,EAAA,CAC1C2X,YAAY,IAAI1X,GAAA,CAAA,OAAA,EAAA;AAAOoX,MAAAA,GAAG,EAAGnV,UAAQ,CAACP,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAGN,KAAAA;KAAc,CAAC,EACjGO,GAAA,CAAA,OAAA,EAAA;AACE0B,MAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBqD,MAAAA,GAAG,EAAG8I,QAAU;AAChBnO,MAAAA,IAAI,EAAC,QAAQ;AACbgP,MAAAA,IAAI,EAAGhN,EAAI;AACXuW,MAAAA,UAAU,EAAC,OAAO;AAClBC,MAAAA,YAAY,EAAC,KAAK;AAClB9K,MAAAA,QAAQ,EAAGA,QAAU;AACrBtN,MAAAA,KAAK,EAAC,4BAA4B;AAClC6X,MAAAA,GAAG,EAAGA,GAAK;AACXC,MAAAA,GAAG,EAAGA,GAAK;AACXzK,MAAAA,OAAO,EAAGc,WAAa;AACvB3I,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBW,MAAAA,IAAI,EAAGA,IAAM;AACb9V,MAAAA,KAAK,EAAGgM,UAAAA;AAAY,KAAE,CAAC,CAAA;AAAA,GACtB,CAAC,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASoK,gBAAgBA,CAACjZ,KAAK,EAAE;EAC9C,MAAM;IACJuY,QAAQ;IACR9W,WAAW;IACXyM,QAAQ;IACRjO,OAAO;IACPoY,QAAQ;IACR7V,EAAE;IACFjC,KAAK;IACLkY,GAAG;IACHC,GAAG;IACHrJ,QAAQ;IACRsJ,IAAI;IACJvS,OAAO;IACP4R,MAAM;AACNkB,IAAAA,QAAAA;AACF,GAAC,GAAGlZ,KAAK,CAAA;AAET,EAAA,MAAMmZ,WAAW,GAAGnS,QAAQ,CAACxE,EAAE,CAAC,CAAA;EAChC,MAAM,CAAE4W,UAAU,EAAEC,aAAa,CAAE,GAAGhW,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEpD,EAAA,IAAIR,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE7B2E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuE,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxB,MAAA,MAAMI,kBAAkB,GAAGJ,QAAQ,CAACrW,KAAK,CAAC,IAAI,IAAI,CAAA;MAElDwW,aAAa,CAACC,kBAAkB,CAAC,CAAA;AACnC,KAAA;AACF,GAAC,EAAE,CAAEzW,KAAK,EAAEqW,QAAQ,CAAE,CAAC,CAAA;EAEvB,MAAMjL,OAAO,GAAIrF,QAAQ,IAAK;IAC5B,IAAI0Q,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAA,IAAInQ,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxBI,MAAAA,kBAAkB,GAAGJ,QAAQ,CAACtQ,QAAQ,CAAC,IAAI,IAAI,CAAA;AACjD,KAAA;AAEAyG,IAAAA,QAAQ,CAACzG,QAAQ,EAAE0Q,kBAAkB,CAAC,CAAA;IACtCD,aAAa,CAACC,kBAAkB,CAAC,CAAA;GAClC,CAAA;AAED,EAAA,MAAMC,KAAK,GAAGJ,WAAW,IAAIC,UAAU,CAAA;AAEvC,EAAA,OACEzY,IAAA,CAAA,KAAA,EAAA;IAAKC,KAAK,EAAG+L,UAAU,CACrB,4BAA4B,EAC5B4M,KAAK,GAAG,WAAW,GAAG,EAAE,CAAG;AAAC,IAAA,eAAA,EAAgB/W,EAAI;IAAA3B,QAAA,EAAA,CAChDC,GAAA,CAACwX,WAAW,EAAA;AACVC,MAAAA,QAAQ,EAAGA,QAAU;AACrBrK,MAAAA,QAAQ,EAAGA,QAAU;AACrB1L,MAAAA,EAAE,EAAGA,EAAI;AAETjC,MAAAA,KAAK,EAAGA,KAAO;AACf6F,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjB/J,MAAAA,OAAO,EAAGA,OAAS;AACnBwK,MAAAA,GAAG,EAAGA,GAAK;AACXC,MAAAA,GAAG,EAAGA,GAAK;AACXC,MAAAA,IAAI,EAAGA,IAAM;AACb9V,MAAAA,KAAK,EAAGA,KAAAA;AAAO,KAAA,EART5C,OAQW,CAAC,EAClBsZ,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAG0Y,KAAAA;AAAK,KAAO,CAAC,EAClEzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEO,SAAS0K,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC7S,KAAK,CAAA;AAC7B,CAAA;;AAGA;;AAEA,SAASE,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;ACzIA,MAAM+K,MAAI,GAAGA,MAAM,EAAG,CAAA;AAEtB,SAASiM,sBAAsBA,CAACxZ,KAAK,EAAE;EACrC,MAAM;IACJuY,QAAQ;IACR/V,EAAE;IACFvC,OAAO;IACPM,KAAK;IACLkO,YAAY;IACZR,OAAO;IACPwL,OAAO;IACP9J,WAAW;IACXmB,IAAI;AACJjO,IAAAA,KAAK,GAAG,EAAE;AACVqL,IAAAA,QAAQ,GAAG,KAAK;IAChB0B,SAAS;IACTlB,UAAU;IACVP,gBAAgB;AAChBuL,IAAAA,iBAAiB,GAAGC,iBAAiB;AACrCtX,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAE+K,cAAc,CAAE,GAAGvW,QAAQ,CAACR,KAAK,CAAC,CAAA;AAEtD,EAAA,MAAMoU,SAAS,GAAGnO,iBAAiB,CAACtG,EAAE,CAAC,CAAA;AACvC,EAAA,MAAMqX,YAAY,GAAGnW,MAAM,EAAE,CAAA;AAE7B,EAAA,MAAMoW,UAAU,GAAIC,QAAQ,CAAClL,UAAU,CAAC,IAAIA,UAAU,CAACmL,UAAU,CAAC,GAAG,CAAC,IAAKlJ,IAAI,KAAK,UAAU,CAAA;EAC9F,MAAMmJ,aAAa,GAAIF,QAAQ,CAAClL,UAAU,CAAC,IAAIA,UAAU,CAACmL,UAAU,CAAC,GAAG,CAAC,GAAInL,UAAU,CAACqL,SAAS,CAAC,CAAC,CAAC,GAAGrL,UAAU,CAAA;EAEjH,MAAM,CAAE5F,KAAK,EAAEkR,SAAS,CAAE,GAAG9W,QAAQ,CAACuK,SAAS,CAAC,CAAA;EAEhD,MAAM;AACJlC,IAAAA,IAAI,EAAE0O,SAAS;AACf/I,IAAAA,MAAM,EAAEgJ,WAAAA;AACV,GAAC,GAAG5X,UAAU,CAAC0O,gBAAgB,CAAC,CAAA;AAEhC,EAAA,MAAMmJ,QAAQ,GAAGD,WAAW,KAAK7X,EAAE,CAAA;AAEnC,EAAA,MAAM+X,QAAQ,GAAGA,CAAC1M,MAAM,GAAG,CAAC,KAAK;IAC/B,MAAM2M,QAAQ,GAAGX,YAAY,CAACrV,OAAO,CAACiW,QAAQ,CAAC1V,QAAQ,CAACC,aAAa,CAAC,CAAA;;AAEtE;IACA,MAAM9B,QAAQ,GAAGsX,QAAQ,GAAGzV,QAAQ,CAACC,aAAa,CAAC0V,cAAc,GAAG5M,QAAQ,CAAA;AAE5EqM,IAAAA,SAAS,CAACjX,QAAQ,GAAG2K,MAAM,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,MAAMoK,mBAAmB,GAAGrQ,OAAO,CAAC,MAAM;IACxC,OAAO2Q,QAAQ,CAAE3P,QAAQ,IAAK;MAC5BqF,OAAO,CAACrF,QAAQ,CAAC,CAAA;AACnB,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAAEqF,OAAO,EAAEsK,QAAQ,CAAE,CAAC,CAAA;EAEzB,MAAMzJ,aAAa,GAAGlG,QAAQ,IAAI;IAChCgR,cAAc,CAAChR,QAAQ,CAAC,CAAA;AAExB,IAAA,IAAI,OAAOA,QAAQ,KAAK,WAAW,IAAIA,QAAQ,KAAK,EAAE,IAAIA,QAAQ,KAAK,GAAG,EAAE;MAC1EqP,mBAAmB,CAACrK,SAAS,CAAC,CAAA;AAChC,KAAC,MAAM;MACLqK,mBAAmB,CAACrP,QAAQ,CAAC,CAAA;AAC/B,KAAA;GAED,CAAA;AAED,EAAA,MAAM+R,gBAAgB,GAAGjQ,iBAAiB,CAAC,MAAM;IAC/C,IAAIoG,IAAI,KAAK,UAAU,EAAE;AACvB,MAAA,OAAA;AACF,KAAA;IAEA,IAAI,CAACgJ,UAAU,EAAE;AACfhL,MAAAA,aAAa,CAAC,GAAG,GAAGD,UAAU,CAAC,CAAA;AACjC,KAAC,MAAM;MACLC,aAAa,CAACmL,aAAa,CAAC,CAAA;AAC9B,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAMW,gBAAgB,GAAIhS,QAAQ,IAAK;AACrC,IAAA,IAAIkR,UAAU,EAAE;MACdlR,QAAQ,GAAG,GAAG,GAAGA,QAAQ,CAAA;AAC3B,KAAA;IAEA,IAAIA,QAAQ,KAAKiG,UAAU,EAAE;AAC3B,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAAClG,QAAQ,CAAC,CAAA;AAEvB,IAAA,IAAI,CAACkR,UAAU,IAAIC,QAAQ,CAACnR,QAAQ,CAAC,IAAIA,QAAQ,CAACoR,UAAU,CAAC,GAAG,CAAC,EAAE;AAEjE;MACAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACd,KAAA;GACD,CAAA;AAED,EAAA,MAAMM,UAAU,GAAGnQ,iBAAiB,CAACoQ,IAAI,IAAI;AAE3C,IAAA,IAAI,EAAEA,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC,EAAE;MAC1BtB,OAAO,CAAC7L,SAAS,CAAC,CAAA;AAClB,MAAA,OAAA;AACF,KAAA;IAEA6L,OAAO,CAAC,6BAA6B,CAAC,CAAA;AACxC,GAAC,CAAC,CAAA;AAEF,EAAA,MAAM3C,eAAe,GAAGA,CAACtW,IAAI,GAAG,MAAM,KAAK;AACzC,IAAA,MAAMwa,YAAY,GAAG;MACnBxY,EAAE;MACFiM,YAAY;AACZR,MAAAA,OAAO,EAAE2M,gBAAgB;AACzB1X,MAAAA,QAAQ,EAAE+X,sBAAsB,CAACpB,YAAY,CAACrV,OAAO,CAAC;MACtDkK,UAAU;AACVxN,MAAAA,KAAK,EAAEga,aAAa,CAACjb,OAAO,EAAEM,KAAK,CAAC;MACpC4N,gBAAgB;MAChB3N,IAAI;AACJqC,MAAAA,KAAK,EAAEoX,aAAa;AACpBrK,MAAAA,SAAAA;KACD,CAAA;IAEDwK,SAAS,CAAC5X,EAAE,EAAEwY,YAAY,EAAE/D,SAAS,CAACzS,OAAO,CAAC,CAAA;GAC/C,CAAA;AAEDI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOqE,KAAK,KAAK,WAAW,EAAE;AAChCgO,MAAAA,SAAS,CAACzS,OAAO,CAACyE,KAAK,CAACA,KAAK,CAAC,CAAA;MAC9BkR,SAAS,CAACvM,SAAS,CAAC,CAAA;AACtB,KAAA;AACF,GAAC,EAAE,CAAE3E,KAAK,CAAE,CAAC,CAAA;AAEbrE,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;;AAEA;IACA,IAAI,CAAChM,KAAK,EAAE;AACViM,MAAAA,aAAa,CAACgL,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC,CAAA;AACpC,MAAA,OAAA;AACF,KAAA;IAEAhL,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;;AAGb;AACA+B,EAAAA,SAAS,CAAC,MAAM;IACd,MAAMuW,WAAW,GAAGtX,KAAK,IAAI;MAC3B,IAAI,CAACiW,UAAU,EAAE;AACf,QAAA,OAAA;AACF,OAAA;AACAjW,MAAAA,KAAK,CAACuX,aAAa,CAACC,OAAO,CAAC,kBAAkB,EAAExX,KAAK,CAACuX,aAAa,CAACE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;KACrF,CAAA;IAED,MAAMC,YAAY,GAAG1X,KAAK,IAAI;MAC5B,IAAIiW,UAAU,IAAIQ,QAAQ,EAAE;AAC1B,QAAA,OAAA;AACF,OAAA;MAEA,MAAMkB,IAAI,GAAG3X,KAAK,CAACuX,aAAa,CAACE,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAE5D,MAAA,IAAIE,IAAI,EAAE;AACRxX,QAAAA,UAAU,CAAC,MAAM;AACf2W,UAAAA,gBAAgB,EAAE,CAAA;AAClBJ,UAAAA,QAAQ,EAAE,CAAA;AACZ,SAAC,CAAC,CAAA;AACJ,OAAA;KACD,CAAA;IACDV,YAAY,CAACrV,OAAO,CAACe,gBAAgB,CAAC,MAAM,EAAE4V,WAAW,CAAC,CAAA;IAC1DtB,YAAY,CAACrV,OAAO,CAACe,gBAAgB,CAAC,KAAK,EAAE4V,WAAW,CAAC,CAAA;IACzDtB,YAAY,CAACrV,OAAO,CAACe,gBAAgB,CAAC,OAAO,EAAEgW,YAAY,CAAC,CAAA;AAE5D,IAAA,OAAO,MAAM;MACX1B,YAAY,CAACrV,OAAO,CAACgB,mBAAmB,CAAC,MAAM,EAAE2V,WAAW,CAAC,CAAA;MAC7DtB,YAAY,CAACrV,OAAO,CAACgB,mBAAmB,CAAC,KAAK,EAAE2V,WAAW,CAAC,CAAA;MAC5DtB,YAAY,CAACrV,OAAO,CAACgB,mBAAmB,CAAC,OAAO,EAAE+V,YAAY,CAAC,CAAA;KAChE,CAAA;GACF,EAAE,CAAE1B,YAAY,EAAEC,UAAU,EAAEa,gBAAgB,EAAEJ,QAAQ,CAAE,CAAC,CAAA;AAE5D,EAAA,OACE5Z,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAG+L,UAAU,CACrB,iCAAiC,EACjC;AAAE,MAAA,aAAa,EAAEmN,UAAAA;AAAW,KAC9B,CAAG;AAAAjZ,IAAAA,QAAA,GACDF,IAAA,CAAA,OAAA,EAAA;AAAOuX,MAAAA,GAAG,EAAGnV,UAAQ,CAACP,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;AAACkF,MAAAA,OAAO,EAAGA,MAAMyU,QAAQ,EAAI;MAAA1Z,QAAA,EAAA,CACzFC,GAAA,CAACgC,cAAO,EAAA;AAACD,QAAAA,KAAK,EAAGR,OAAS;AAACM,QAAAA,KAAK,EAAGH,EAAI;QAACvC,OAAO,EAAGD,KAAK,CAACC,OAAS;AAAAY,QAAAA,QAAA,EAC9DN,KAAAA;AAAK,OACC,CAAC,EACVO,GAAA,CAAC+P,QAAQ,EAAA;AACPtQ,QAAAA,KAAK,EAAGA,KAAO;AACfuQ,QAAAA,IAAI,EAAGA,IAAM;AACbhL,QAAAA,OAAO,EAAG6U,gBAAkB;AAC5B/J,QAAAA,MAAM,EAAGkJ,UAAAA;AAAY,OAAW,CAAC,CAAA;KAC9B,CAAC,EAERnZ,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,qCAAqC;AAACiF,MAAAA,GAAG,EAAGgU,YAAc;MAAAhZ,QAAA,EAAA,CACnEC,GAAA,CAAC6P,aAAa,EAAA;AACZC,QAAAA,MAAM,EAAGkJ,UAAY;AACrB5L,QAAAA,QAAQ,EAAG4C,IAAI,KAAK,UAAU,IAAI5C,QAAU;AAC5CpI,QAAAA,OAAO,EAAG6U,gBAAAA;AAAkB,OAC7B,CAAC,EACDb,UAAU,GACThZ,GAAA,CAACiN,UAAU,EAAA;AACTyB,QAAAA,IAAI,EAAGhN,EAAI;AACXyL,QAAAA,OAAO,EAAG2M,gBAAkB;AAC5BpM,QAAAA,iBAAiB,EAAG;AAAE,UAAA,IAAI,EAAEzL,UAAQ,CAACP,EAAE,CAAC;AAAE,UAAA,YAAY,EAAEjC,KAAAA;SAAS;AACjE2N,QAAAA,QAAQ,EAAGA,QAAU;AACrBK,QAAAA,SAAS,EAAG+L,QAAU;QACtB5K,YAAY,EAAGA,MAAM;AAAEiL,UAAAA,gBAAgB,EAAE,CAAA;UAAEJ,QAAQ,CAAC,IAAI,CAAC,CAAA;SAAK;AAC9DlM,QAAAA,MAAM,EAAGwM,UAAY;AACrBvM,QAAAA,WAAW,EAAGwI,eAAiB;AAC/BnH,QAAAA,WAAW,EAAGA,WAAa;AAC3B9M,QAAAA,KAAK,EAAGoX,aAAe;AACvBrK,QAAAA,SAAS,EAAGA,SAAW;AACvB/J,QAAAA,GAAG,EAAGoR,SAAW;AACjB9I,QAAAA,gBAAgB,EAAGA,gBAAAA;AAAkB,OACtC,CAAC,GACFrN,GAAA,CAAC4Y,iBAAiB,EAAA;AAAA,QAAA,GACX1Z,KAAK;AACVuO,QAAAA,SAAS,EAAG+L,QAAU;AACtBrM,QAAAA,OAAO,EAAG2M,gBAAkB;AAC5BpM,QAAAA,iBAAiB,EAAG;AAAE,UAAA,IAAI,EAAEzL,UAAQ,CAACP,EAAE,CAAC;AAAE,UAAA,YAAY,EAAEjC,KAAAA;SAAS;AACjEsC,QAAAA,KAAK,EAAGgM,UAAY;AACpBhJ,QAAAA,GAAG,EAAGoR,SAAW;AACjB3I,QAAAA,WAAW,EAAGwI,eAAiB;AAC/B+C,QAAAA,YAAY,EAAGA,YAAAA;AAAc,OAC9B,CAAC,CAAA;AAAA,KAED,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;AAEA,MAAM4B,aAAa,GAAGC,kBAAkB,CAAClC,sBAAsB,CAAC,CAAA;AAEhE,MAAMG,iBAAiB,GAAG3L,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EACnD,MAAM;IACJrD,EAAE;IACF0L,QAAQ;IACRD,OAAO;IACPpL,KAAK;IACLuD,OAAO;IACP4R,MAAM;AACNrI,IAAAA,WAAAA;AACF,GAAC,GAAG3P,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;;AAEzB;AACA;EACAmC,GAAG,CAACrB,OAAO,GAAG;IACZyE,KAAK,EAAG/F,QAAQ,IAAK;AACnB,MAAA,MAAMyY,KAAK,GAAGhN,QAAQ,CAACnK,OAAO,CAAA;MAC9B,IAAI,CAACmX,KAAK,EAAE;AACV,QAAA,OAAA;AACF,OAAA;MAEAA,KAAK,CAAC1S,KAAK,EAAE,CAAA;AACb,MAAA,IAAI,OAAO/F,QAAQ,KAAK,QAAQ,EAAE;AAChC,QAAA,IAAIA,QAAQ,GAAGL,KAAK,CAACkY,MAAM,EAAE;UAC3B7X,QAAQ,GAAGL,KAAK,CAACkY,MAAM,CAAA;AACzB,SAAA;AACAY,QAAAA,KAAK,CAACC,iBAAiB,CAAC1Y,QAAQ,EAAEA,QAAQ,CAAC,CAAA;AAC7C,OAAA;AAEF,KAAA;GACD,CAAA;AAED,EAAA,OAAOpC,GAAA,CAAA,OAAA,EAAA;AACL0B,IAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBhC,IAAAA,IAAI,EAAC,MAAM;AACXqF,IAAAA,GAAG,EAAG8I,QAAU;AAChBa,IAAAA,IAAI,EAAGhN,EAAI;AACXuW,IAAAA,UAAU,EAAC,OAAO;AAClBC,IAAAA,YAAY,EAAC,KAAK;AAClB9K,IAAAA,QAAQ,EAAGA,QAAU;AACrBtN,IAAAA,KAAK,EAAC,4BAA4B;IAClCqN,OAAO,EAAG9J,CAAC,IAAI8J,OAAO,CAAC9J,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAG;AACxCuD,IAAAA,OAAO,EAAGA,OAAS;AACnB4R,IAAAA,MAAM,EAAGA,MAAQ;AACjBrI,IAAAA,WAAW,EAAGA,WAAa;IAC3B9M,KAAK,EAAGA,KAAK,IAAI,EAAA;AAAI,GAAE,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAGF,MAAMgZ,uBAAuB,GAAG7N,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EACzD,MAAM;IACJrD,EAAE;IACF+V,QAAQ;IACRrK,QAAQ;IACRD,OAAO;IACPpL,KAAK;IACL6V,GAAG;IACHD,GAAG;IACHE,IAAI;IACJvS,OAAO;AACP4R,IAAAA,MAAAA;AACF,GAAC,GAAGhY,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;;AAEzB;AACA;EACAmC,GAAG,CAACrB,OAAO,GAAG;IACZyE,KAAK,EAAG/F,QAAQ,IAAK;AACnB,MAAA,MAAMyY,KAAK,GAAGhN,QAAQ,CAACnK,OAAO,CAAA;MAC9B,IAAI,CAACmX,KAAK,EAAE;AACV,QAAA,OAAA;AACF,OAAA;MAEAA,KAAK,CAAC1S,KAAK,EAAE,CAAA;MACb,IAAI,OAAO/F,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK4K,QAAQ,EAAE;AACzD,QAAA,IAAI5K,QAAQ,GAAGL,KAAK,CAACkY,MAAM,EAAE;UAC3B7X,QAAQ,GAAGL,KAAK,CAACkY,MAAM,CAAA;AACzB,SAAA;AACAY,QAAAA,KAAK,CAACC,iBAAiB,CAAC1Y,QAAQ,EAAEA,QAAQ,CAAC,CAAA;AAC7C,OAAA;AAEF,KAAA;GACD,CAAA;EAED,OAAOpC,GAAA,CAACwX,WAAW,EAAA;AACjB9V,IAAAA,EAAE,EAAGA,EAAI;AACT+V,IAAAA,QAAQ,EAAGA,QAAU;AACrBrK,IAAAA,QAAQ,EAAGA,QAAU;AACrBsK,IAAAA,YAAY,EAAG,KAAO;AACtB7J,IAAAA,QAAQ,EAAGA,QAAU;AACrB8J,IAAAA,GAAG,EAAGA,GAAK;AACXC,IAAAA,GAAG,EAAGA,GAAK;AACXzK,IAAAA,OAAO,EAAGA,OAAS;AACnB0K,IAAAA,IAAI,EAAGA,IAAM;AACb9V,IAAAA,KAAK,EAAGA,KAAO;AACfuD,IAAAA,OAAO,EAAGA,OAAS;AACnB4R,IAAAA,MAAM,EAAGA,MAAAA;AAAQ,GAClB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAGF,MAAM8D,oBAAoB,GAAG9N,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EACtD,MAAM;IACJrD,EAAE;IACF0L,QAAQ;IACRD,OAAO;IACPpL,KAAK;IACLuD,OAAO;IACP4R,MAAM;AACNrI,IAAAA,WAAAA;AACF,GAAC,GAAG3P,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;;AAEzB;AACA;EACAmC,GAAG,CAACrB,OAAO,GAAG;IACZyE,KAAK,EAAEA,MAAM;AACX,MAAA,MAAM0S,KAAK,GAAGhN,QAAQ,CAACnK,OAAO,CAAA;MAC9B,IAAI,CAACmX,KAAK,EAAE;AACV,QAAA,OAAA;AACF,OAAA;MAEAA,KAAK,CAAC1S,KAAK,EAAE,CAAA;AACb0S,MAAAA,KAAK,CAACC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/B,KAAA;GACD,CAAA;AAED,EAAA,OAAO9a,GAAA,CAAA,UAAA,EAAA;AACL0B,IAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBhC,IAAAA,IAAI,EAAC,MAAM;AACXqF,IAAAA,GAAG,EAAG8I,QAAU;AAChBa,IAAAA,IAAI,EAAGhN,EAAI;AACXuW,IAAAA,UAAU,EAAC,OAAO;AAClBC,IAAAA,YAAY,EAAC,KAAK;AAClB9K,IAAAA,QAAQ,EAAGA,QAAU;AACrBtN,IAAAA,KAAK,EAAC,4BAA4B;IAClCqN,OAAO,EAAG9J,CAAC,IAAI8J,OAAO,CAAC9J,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAG;AACxCuD,IAAAA,OAAO,EAAGA,OAAS;AACnB4R,IAAAA,MAAM,EAAGA,MAAQ;AACjBrI,IAAAA,WAAW,EAAGA,WAAa;IAC3B9M,KAAK,EAAGA,KAAK,IAAI,EAAI;IACrB,YAAW,EAAA,OAAA;AAAO,GACnB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAMkZ,wBAAwB,GAAG/N,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EAC1D,MAAM;IACJrD,EAAE;IACFyL,OAAO;IACPpL,KAAK;IACLuD,OAAO;IACP4R,MAAM;AACNF,IAAAA,aAAAA;AACF,GAAC,GAAG9X,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;;AAEzB;AACA;EACAmC,GAAG,CAACrB,OAAO,GAAG;IACZyE,KAAK,EAAEA,MAAM;AACX,MAAA,MAAM0S,KAAK,GAAGhN,QAAQ,CAACnK,OAAO,CAAA;MAC9B,IAAI,CAACmX,KAAK,EAAE;AACV,QAAA,OAAA;AACF,OAAA;MAEAA,KAAK,CAAC1S,KAAK,EAAE,CAAA;AACf,KAAA;GACD,CAAA;EAED,OAAOnI,GAAA,CAAC+W,YAAY,EAAA;AAClBrV,IAAAA,EAAE,EAAGA,EAAI;AACTK,IAAAA,KAAK,EAAGA,KAAO;AACf8L,IAAAA,QAAQ,EAAGA,QAAU;AACrBV,IAAAA,OAAO,EAAGA,OAAS;AACnB7H,IAAAA,OAAO,EAAGA,OAAS;AACnB4R,IAAAA,MAAM,EAAGA,MAAQ;AACjBF,IAAAA,aAAa,EAAGA,aAAAA;AAAe,GAAE,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AAGF,MAAMkE,oBAAoB,GAAGhO,UAAU,CAAC,CAAChO,KAAK,EAAE6F,GAAG,KAAK;EACtD,MAAM;IACJrD,EAAE;IACF0L,QAAQ;IACRD,OAAO;IACPpL,KAAK;IACLuD,OAAO;AACP4R,IAAAA,MAAAA;AACF,GAAC,GAAGhY,KAAK,CAAA;AAET,EAAA,MAAM2O,QAAQ,GAAGjL,MAAM,EAAE,CAAA;EAEzB,MAAMuY,YAAY,GAAGA,CAAC;AAAE5a,IAAAA,MAAAA;AAAO,GAAC,KAAK;AACnC4M,IAAAA,OAAO,CAAC5M,MAAM,CAAC8W,OAAO,CAAC,CAAA;GACxB,CAAA;;AAED;AACA;EACAtS,GAAG,CAACrB,OAAO,GAAG;IACZyE,KAAK,EAAEA,MAAM;AACX,MAAA,MAAM0S,KAAK,GAAGhN,QAAQ,CAACnK,OAAO,CAAA;MAC9B,IAAI,CAACmX,KAAK,EAAE;AACV,QAAA,OAAA;AACF,OAAA;MAEAA,KAAK,CAAC1S,KAAK,EAAE,CAAA;AACf,KAAA;GACD,CAAA;AAED,EAAA,OAAOnI,GAAA,CAAA,OAAA,EAAA;AACL+E,IAAAA,GAAG,EAAG8I,QAAU;AAChBnM,IAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBgN,IAAAA,IAAI,EAAGhN,EAAI;AACX4D,IAAAA,OAAO,EAAGA,OAAS;AACnB4R,IAAAA,MAAM,EAAGA,MAAQ;AACjBxX,IAAAA,IAAI,EAAC,UAAU;AACfI,IAAAA,KAAK,EAAC,4BAA4B;AAClCsO,IAAAA,QAAQ,EAAG+M,YAAc;AACzB9D,IAAAA,OAAO,EAAGtV,KAAO;AACjBqL,IAAAA,QAAQ,EAAGA,QAAAA;AAAU,GAAE,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASgO,SAASA,CAAClc,KAAK,EAAE;EACvC,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACX8W,QAAQ;IACRrK,QAAQ;IACR4C,IAAI;IACJvQ,KAAK;IACL8X,QAAQ;IACRhJ,QAAQ;IACRlB,gBAAgB;IAChBM,YAAY;IACZC,UAAU;IACVwK,QAAQ;AACRpV,IAAAA,IAAI,GAAGyJ,MAAI;IACX4O,OAAO;IACPvM,SAAS;IACTxJ,OAAO;IACP4R,MAAM;IACNrI,WAAW;AACXtN,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;EAET,MAAM,CAAEoc,eAAe,EAAEC,kBAAkB,CAAE,GAAGhZ,QAAQ,CAAC,IAAI,CAAC,CAAA;EAC9D,MAAM,CAAE+V,UAAU,EAAEC,aAAa,CAAE,GAAGhW,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEpD,EAAA,IAAIR,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE7B2E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuE,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxB,MAAA,MAAMI,kBAAkB,GAAGJ,QAAQ,CAACrW,KAAK,CAAC,IAAI,IAAI,CAAA;MAElDwZ,kBAAkB,CAAC/C,kBAAkB,CAAC,CAAA;AACxC,KAAA;AACF,GAAC,EAAE,CAAEzW,KAAK,EAAEqW,QAAQ,CAAE,CAAC,CAAA;AAEvB,EAAA,MAAMjL,OAAO,GAAGvD,iBAAiB,CAAE9B,QAAQ,IAAK;IAC9C,IAAI0Q,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAA,IAAInQ,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxBI,MAAAA,kBAAkB,GAAGJ,QAAQ,CAACtQ,QAAQ,CAAC,IAAI,IAAI,CAAA;AACjD,KAAA;;AAEA;IACA,IAAIA,QAAQ,KAAK/F,KAAK,EAAE;AACtBwM,MAAAA,QAAQ,CAACzG,QAAQ,EAAE0Q,kBAAkB,CAAC,CAAA;AACxC,KAAA;IAEA+C,kBAAkB,CAAC/C,kBAAkB,CAAC,CAAA;AACxC,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMG,OAAO,GAAG9Q,WAAW,CAAC2T,GAAG,IAAI;IACjCjD,aAAa,CAACiD,GAAG,CAAC,CAAA;GACnB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,cAAc,GAAGvV,QAAQ,CAACxE,EAAE,CAAC,CAAA;AAEnC,EAAA,MAAM+W,KAAK,GAAGgD,cAAc,IAAInD,UAAU,IAAIgD,eAAe,CAAA;AAE7D,EAAA,OACEzb,IAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,KAAK,EAAG+L,UAAU,CAChB3M,KAAK,CAACY,KAAK,EACX,4BAA4B,EAC5B2Y,KAAK,GAAG,WAAW,GAAG,EAAE,CACzB;AACD,IAAA,eAAA,EAAgB/W,EAAI;IAAA3B,QAAA,EAAA,CACpBoM,aAAA,CAACwO,aAAa,EAAA;AAAA,MAAA,GACPzb,KAAK;AACVuY,MAAAA,QAAQ,EAAGA,QAAU;AACrBrK,MAAAA,QAAQ,EAAGA,QAAU;AACrB4C,MAAAA,IAAI,EAAGA,IAAM;AACbtO,MAAAA,EAAE,EAAGA,EAAI;AACTuF,MAAAA,GAAG,EAAG9H,OAAS;AACfM,MAAAA,KAAK,EAAGA,KAAO;AACf0N,MAAAA,OAAO,EAAGA,OAAS;AACnBwL,MAAAA,OAAO,EAAGA,OAAS;AACnBrT,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBrI,MAAAA,WAAW,EAAGA,WAAa;AAC3BwM,MAAAA,OAAO,EAAGA,OAAS;AACnB1N,MAAAA,YAAY,EAAGA,YAAc;AAC7BC,MAAAA,UAAU,EAAGA,UAAY;AACzB5K,MAAAA,IAAI,EAAGA,IAAM;AACbjB,MAAAA,KAAK,EAAGA,KAAO;AACf+M,MAAAA,SAAS,EAAGA,SAAW;AACvBzB,MAAAA,gBAAgB,EAAGA,gBAAkB;MACrCuL,iBAAiB,EAAG1Z,KAAK,CAAC0Z,iBAAmB;AAC7CrX,MAAAA,OAAO,EAAGA,OAAAA;AAAS,KAAE,CAAC,EACvBkX,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAE0Y,KAAAA;AAAK,KAAM,CAAC,EAC/DzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS+a,eAAeA,CAACxc,KAAK,EAAE;EACrC,OAAOc,GAAA,CAACob,SAAS,EAAA;AAACtb,IAAAA,KAAK,EAAC,kCAAkC;AAAC8Y,IAAAA,iBAAiB,EAAGmC,uBAAyB;IAAA,GAAM7b,KAAAA;AAAK,GAAI,CAAC,CAAA;AAC1H,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyc,iBAAiBA,CAACzc,KAAK,EAAE;EACvC,OAAOc,GAAA,CAACob,SAAS,EAAA;AAACtb,IAAAA,KAAK,EAAC,oCAAoC;AAAC8Y,IAAAA,iBAAiB,EAAGoC,oBAAsB;IAAA,GAAM9b,KAAAA;AAAK,GAAI,CAAC,CAAA;AACzH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS0c,qBAAqBA,CAAC1c,KAAK,EAAE;EAC3C,OAAOc,GAAA,CAACob,SAAS,EAAA;AAACtb,IAAAA,KAAK,EAAC,yCAAyC;AAAC8Y,IAAAA,iBAAiB,EAAGqC,wBAA0B;IAAA,GAAM/b,KAAAA;AAAK,GAAI,CAAC,CAAA;AAClI,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS2c,iBAAiBA,CAAC3c,KAAK,EAAE;EACvC,OAAOc,GAAA,CAACob,SAAS,EAAA;AAACtb,IAAAA,KAAK,EAAC,oCAAoC;AAAC8Y,IAAAA,iBAAiB,EAAGsC,oBAAsB;IAAA,GAAMhc,KAAAA;AAAK,GAAI,CAAC,CAAA;AACzH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS4c,mBAAmBA,CAAC5c,KAAK,EAAE;EACzC,OAAOc,GAAA,CAACob,SAAS,EAAA;AAACtb,IAAAA,KAAK,EAAC,sCAAsC;AAAC8Y,IAAAA,iBAAiB,EAAGlC,YAAkB;IAAA,GAAMxX,KAAAA;AAAK,GAAI,CAAC,CAAA;AACvH,CAAA;AAEO,SAASmM,UAAQA,CAACuJ,IAAI,EAAE;EAC7B,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,IAAIA,IAAI,CAAClV,IAAI,KAAK,UAAU,EAAE;AAC5B,IAAA,OAAO,CAAC,CAACkV,IAAI,CAACyC,OAAO,IAAIzC,IAAI,CAACmH,SAAS,CAACpC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC5D,GAAA;AAEA,EAAA,OAAO,CAAC,CAAC/E,IAAI,CAAC7S,KAAK,IAAI6S,IAAI,CAACmH,SAAS,CAACpC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC1D,CAAA;;AAGA;;AAEA,SAAS1X,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAuBA,EAAG,CAAC,CAAA,CAAA;AACrC,CAAA;AAEA,SAASyY,sBAAsBA,CAAChb,OAAO,EAAE;EACvC,MAAM;IAAEuG,GAAG;AAAEG,IAAAA,IAAAA;AAAK,GAAC,GAAG1G,OAAO,CAAC0E,qBAAqB,EAAE,CAAA;EAErD,OAAO;AACLgC,IAAAA,IAAI,EAAEA,IAAI,GAAGgP,gBAAgB,GAAG,EAAE;AAClCnP,IAAAA,GAAG,EAAEA,GAAAA;GACN,CAAA;AACH,CAAA;;AAEA;AACA,SAAS0U,aAAaA,CAACjb,OAAO,EAAEM,KAAK,EAAE;EACrC,IAAIuc,UAAU,GAAG,EAAE,CAAA;AAEnB,EAAA,IAAI7c,OAAO,IAAIA,OAAO,CAACO,IAAI,EAAE;AAC3Bsc,IAAAA,UAAU,GAAI,CAAA,EAAE7c,OAAO,CAACO,IAAK,CAAI,GAAA,CAAA,CAAA;AACnC,GAAA;AAEA,EAAA,OAAQ,CAAEsc,EAAAA,UAAW,CAAEvc,EAAAA,KAAM,CAAC,CAAA,CAAA;AAChC,CAAA;AAGA,SAASmb,kBAAkBA,CAAC1O,SAAS,EAAE;EACrC,OAAO,UAAShN,KAAK,EAAE;IACrB,MAAM;AAAEwC,MAAAA,EAAAA;AAAG,KAAC,GAAGxC,KAAK,CAAA;IACpB,MAAM;AACJoR,MAAAA,KAAAA;AACF,KAAC,GAAG3O,UAAU,CAAC0O,gBAAgB,CAAC,CAAA;AAEhC,IAAA,MAAM4L,UAAU,GAAGrS,iBAAiB,CAAC0G,KAAK,CAAC,CAAA;AAE3CxM,IAAAA,SAAS,CAAC,MAAM;AACd,MAAA,OAAO,MAAM;AACXmY,QAAAA,UAAU,CAAC;AAAEva,UAAAA,EAAAA;AAAG,SAAC,CAAC,CAAA;OACnB,CAAA;KACF,EAAE,EAAG,CAAC,CAAA;IAEP,OAAO1B,GAAA,CAACkM,SAAS,EAAA;MAAA,GAAMhN,KAAAA;AAAK,KAAI,CAAC,CAAA;GAClC,CAAA;AACH;;ACtvBA,MAAMgd,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAMC,mBAAmB,GAAG,EAAE,CAAA;AAE9B,MAAMC,eAAe,GAAG,EAAE,CAAA;;AAG1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,eAAeA,CAACnd,KAAK,EAAE;EAC7C,MAAM;IACJC,OAAO;IACPC,cAAc;IACdkd,mBAAmB;IACnBC,MAAM;IACNC,YAAY;IACZC,aAAa;IACbC,iBAAiB;IACjBC,iBAAiB;IACjBC,aAAa;IACbC,aAAa;IACbC,kBAAkB;AAClB9b,IAAAA,QAAAA;AACF,GAAC,GAAG9B,KAAK,CAAA;;AAET;AACA,EAAA,MAAM,CAAEgC,MAAM,EAAEC,SAAS,CAAE,GAAGoB,QAAQ,CAACwa,YAAY,CAACP,YAAY,CAAC,CAAC,CAAA;;AAElE;AACAQ,EAAAA,qBAAqB,CAAC,MAAM;AAC1B,IAAA,MAAMC,SAAS,GAAGF,YAAY,CAACP,YAAY,CAAC,CAAA;IAE5Crb,SAAS,CAAC8b,SAAS,CAAC,CAAA;AACtB,GAAC,EAAE,CAAET,YAAY,CAAE,CAAC,CAAA;AAEpB1Y,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAO2Y,aAAa,KAAK,UAAU,EAAE;MACvCA,aAAa,CAACvb,MAAM,CAAC,CAAA;AACvB,KAAA;AACF,GAAC,EAAE,CAAEA,MAAM,EAAEub,aAAa,CAAE,CAAC,CAAA;AAE7B,EAAA,MAAMrb,eAAe,GAAGA,CAAC6F,GAAG,EAAES,YAAY,KAAK;AAC7C,IAAA,OAAOR,GAAG,CAAChG,MAAM,EAAE+F,GAAG,EAAES,YAAY,CAAC,CAAA;GACtC,CAAA;AAED,EAAA,MAAMrG,eAAe,GAAGA,CAAC4F,GAAG,EAAE2O,MAAM,KAAK;IACvC,MAAMqH,SAAS,GAAGC,MAAM,CAAC,EAAE,EAAEhc,MAAM,CAAC,CAAA;AACpCqG,IAAAA,GAAG,CAAC0V,SAAS,EAAEhW,GAAG,EAAE2O,MAAM,CAAC,CAAA;IAC3BzU,SAAS,CAAC8b,SAAS,CAAC,CAAA;GACrB,CAAA;AAED,EAAA,MAAME,aAAa,GAAG;IACpBjc,MAAM;IACNC,SAAS;IACTC,eAAe;AACfC,IAAAA,eAAAA;GACD,CAAA;;AAED;AACA,EAAA,MAAMV,WAAW,GAAGmG,OAAO,CAAC,MAAMsW,wBAAwB,CAACV,iBAAiB,CAAC,EAAE,CAAEA,iBAAiB,CAAE,CAAC,CAAA;AAErG5Y,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAO6Y,iBAAiB,KAAK,UAAU,EAAE;MAC3CA,iBAAiB,CAAChc,WAAW,CAAC,CAAA;AAChC,KAAA;AACF,GAAC,EAAE,CAAEA,WAAW,EAAEgc,iBAAiB,CAAE,CAAC,CAAA;AAGtC,EAAA,MAAM/b,mBAAmB,GAAGA,CAACc,EAAE,EAAEvC,OAAO,KAAK;IAC3C,OAAOwB,WAAW,CAACe,EAAE,CAAC,IAAIf,WAAW,CAACe,EAAE,CAAC,CAACvC,OAAO,CAAC,CAAA;GACnD,CAAA;AAED,EAAA,MAAMke,kBAAkB,GAAG;IACzB1c,WAAW;AACXC,IAAAA,mBAAAA;GACD,CAAA;;AAED;AACA,EAAA,MAAMW,OAAO,GAAGuF,OAAO,CAAC,MAAMwW,oBAAoB,CAACV,aAAa,CAAC,EAAE,CAAEA,aAAa,CAAE,CAAC,CAAA;AAErF9Y,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAO+Y,aAAa,KAAK,UAAU,EAAE;MACvCA,aAAa,CAACtb,OAAO,CAAC,CAAA;AACxB,KAAA;AACF,GAAC,EAAE,CAAEA,OAAO,EAAEsb,aAAa,CAAE,CAAC,CAAA;AAE9B,EAAA,MAAMrb,eAAe,GAAGA,CAACE,EAAE,EAAEvC,OAAO,KAAK;IACvC,OAAOoC,OAAO,CAACG,EAAE,CAAC,IAAIH,OAAO,CAACG,EAAE,CAAC,CAACvC,OAAO,CAAC,CAAA;GAC3C,CAAA;AAED,EAAA,MAAMoe,cAAc,GAAG;IACrBhc,OAAO;AACPC,IAAAA,eAAAA;GACD,CAAA;EAED,MAAM,CAAEV,MAAM,EAAE0c,SAAS,CAAE,GAAGjb,QAAQ,CAAC,EAAE,CAAC,CAAA;EAE1C,MAAMkb,WAAW,GAAGA,CAAC;AAAE3c,IAAAA,MAAAA;AAAO,GAAC,KAAK0c,SAAS,CAAC1c,MAAM,CAAC,CAAA;AAErDsF,EAAAA,QAAQ,CAAC,2BAA2B,EAAEqX,WAAW,EAAEzc,QAAQ,CAAC,CAAA;AAE5D,EAAA,MAAM0c,aAAa,GAAG;AACpB5c,IAAAA,MAAAA;GACD,CAAA;AAED,EAAA,MAAMwF,YAAY,GAAG;AACnBtF,IAAAA,QAAAA;GACD,CAAA;AAED,EAAA,MAAM4K,sBAAsB,GAAG;AAC7BzM,IAAAA,OAAAA;GACD,CAAA;;AAED;AACA,EAAA,IAAImd,mBAAmB,IAAI,CAACnd,OAAO,EAAE;IACnC,OAAOa,GAAA,CAACoM,WAAW,EAAA;MAAA,GAAMkQ,mBAAmB,CAACqB,QAAQ,EAAC;AAAC,KAAI,CAAC,CAAA;AAC9D,GAAA;;AAEA;AACA,EAAA,IAAIrB,mBAAmB,IAAIsB,OAAO,CAACze,OAAO,CAAC,EAAE;IAC3C,OAAOa,GAAA,CAACoM,WAAW,EAAA;MAAA,GAAMkQ,mBAAmB,CAACuB,WAAW,EAAC;AAAC,KAAI,CAAC,CAAA;AACjE,GAAA;AAEA,EAAA,OACE7d,GAAA,CAACkI,aAAsB,CAAC8D,QAAQ,EAAA;AAACjK,IAAAA,KAAK,EAAG6J,sBAAwB;AAAA7L,IAAAA,QAAA,EAC/DC,GAAA,CAACa,aAAa,CAACmL,QAAQ,EAAA;AAACjK,MAAAA,KAAK,EAAG2b,aAAe;AAAA3d,MAAAA,QAAA,EAC7CC,GAAA,CAACS,kBAAkB,CAACuL,QAAQ,EAAA;AAACjK,QAAAA,KAAK,EAAGsb,kBAAoB;AAAAtd,QAAAA,QAAA,EACvDC,GAAA,CAACsB,cAAc,CAAC0K,QAAQ,EAAA;AAACjK,UAAAA,KAAK,EAAGwb,cAAgB;AAAAxd,UAAAA,QAAA,EAC/CC,GAAA,CAACiB,aAAa,CAAC+K,QAAQ,EAAA;AAACjK,YAAAA,KAAK,EAAGob,aAAe;AAAApd,YAAAA,QAAA,EAC7CC,GAAA,CAACe,YAAY,CAACiL,QAAQ,EAAA;AAACjK,cAAAA,KAAK,EAAGuE,YAAc;cAAAvG,QAAA,EAC3CC,GAAA,CAAC8d,aAAa,EAAA;AACZ3e,gBAAAA,OAAO,EAAGA,OAAS;AACnB6B,gBAAAA,QAAQ,EAAGA,QAAU;AACrBiU,gBAAAA,cAAc,EAAG6H,kBAAoB;AAAA/c,gBAAAA,QAAA,EACrCF,IAAA,CAAA,KAAA,EAAA;AAAKC,kBAAAA,KAAK,EAAC,sBAAsB;kBAAAC,QAAA,EAAA,CAC/BC,GAAA,CAACf,MAAM,EAAA;AACLE,oBAAAA,OAAO,EAAGA,OAAS;AACnBC,oBAAAA,cAAc,EAAGA,cAAAA;mBAAkB,CAAC,EACtCY,GAAA,CAAA,KAAA,EAAA;AAAKF,oBAAAA,KAAK,EAAC,uCAAuC;AAAAC,oBAAAA,QAAA,EAE9Cwc,MAAM,CAAC1V,GAAG,CAACkX,KAAK,IAAI;sBAClB,MAAM;wBACJ9R,SAAS,EAAEC,SAAS,GAAGzB,KAAK;AAC5B/I,wBAAAA,EAAAA;AACF,uBAAC,GAAGqc,KAAK,CAAA;sBAET,OACE5R,aAAA,CAACD,SAAS,EAAA;AAAA,wBAAA,GACH6R,KAAK;AACV9W,wBAAAA,GAAG,EAAGvF,EAAI;AACVvC,wBAAAA,OAAO,EAAGA,OAAAA;AAAS,uBAAE,CAAC,CAAA;qBAE3B,CAAA;AAAC,mBAED,CAAC,CAAA;iBACH,CAAA;eACQ,CAAA;aACM,CAAA;WACD,CAAA;SACD,CAAA;OACE,CAAA;KACP,CAAA;AAAC,GACM,CAAC,CAAA;AAEtC,CAAA;;AAGA;;AAEA,SAAS4d,YAAYA,CAACiB,SAAS,GAAG,EAAE,EAAEC,QAAQ,GAAG/B,cAAc,EAAE;EAC/D,OAAO;AACL,IAAA,GAAG+B,QAAQ;IACX,GAAGD,SAAAA;GACJ,CAAA;AACH,CAAA;AAEA,SAASZ,wBAAwBA,CAACY,SAAS,GAAG,EAAE,EAAE;EAChD,OAAO;AACL,IAAA,GAAG7B,mBAAmB;IACtB,GAAG6B,SAAAA;GACJ,CAAA;AACH,CAAA;AAEA,SAASV,oBAAoBA,CAACU,SAAS,GAAG,EAAE,EAAE;EAC5C,OAAO;AACL,IAAA,GAAG5B,eAAe;IAClB,GAAG4B,SAAAA;GACJ,CAAA;AACH,CAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAShB,qBAAqBA,CAACpG,MAAM,EAAEC,IAAI,EAAE;AAC3C,EAAA,MAAMC,SAAS,GAAGlU,MAAM,CAAC,KAAK,CAAC,CAAA;AAE/BsH,EAAAA,eAAe,CAAC,MAAM;IACpB,IAAI4M,SAAS,CAACpT,OAAO,EAAE;MACrB,OAAOkT,MAAM,EAAE,CAAA;AACjB,KAAC,MAAM;MACLE,SAAS,CAACpT,OAAO,GAAG,IAAI,CAAA;AAC1B,KAAA;GACD,EAAEmT,IAAI,CAAC,CAAA;AACV;;ACjTO,SAASqH,cAAcA,CAAChf,KAAK,EAAE;EACpC,MAAM;AACJY,IAAAA,KAAK,EAAE8R,SAAS;IAChB7R,QAAQ;AACRoe,IAAAA,SAAS,GAAG,EAAA;AACd,GAAC,GAAGjf,KAAK,CAAA;AAET,EAAA,MAAMkf,WAAW,GAAGxb,MAAM,CAAC,IAAI,CAAC,CAAA;AAChC,EAAA,MAAMyb,OAAO,GAAGzb,MAAM,CAAC,IAAI,CAAC,CAAA;EAE5B,MAAM,CAAEgI,IAAI,EAAEC,OAAO,CAAE,GAAGtI,QAAQ,CAAC,KAAK,CAAC,CAAA;AACzC,EAAA,MAAM+N,KAAK,GAAGA,MAAMzF,OAAO,CAAC,KAAK,CAAC,CAAA;EAElC,SAASyT,gBAAgBA,CAACvb,KAAK,EAAE;AAC/B,IAAA,IAAIsb,OAAO,CAAC3a,OAAO,IAAI2a,OAAO,CAAC3a,OAAO,CAACiW,QAAQ,CAAC5W,KAAK,CAACxC,MAAM,CAAC,EAAE;AAC7D,MAAA,OAAA;AACF,KAAA;IAEAwC,KAAK,CAACkC,eAAe,EAAE,CAAA;AAEvB4F,IAAAA,OAAO,CAACD,IAAI,IAAI,CAACA,IAAI,CAAC,CAAA;AACxB,GAAA;AAEA,EAAA,SAAS2T,aAAaA,CAACxb,KAAK,EAAEyb,MAAM,EAAE;IACpCzb,KAAK,CAACkC,eAAe,EAAE,CAAA;AAEvBqL,IAAAA,KAAK,EAAE,CAAA;AACPkO,IAAAA,MAAM,EAAE,CAAA;AACV,GAAA;EAEAC,cAAc,CAAC,CAAEL,WAAW,CAAC1a,OAAO,CAAE,EAAE,MAAM4M,KAAK,EAAE,CAAC,CAAA;AAEtD,EAAA,OACEzQ,IAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,KAAK,EAAG+L,UAAU,CAAC,sCAAsC,EAAE;AAAEjB,MAAAA,IAAAA;KAAM,EAAEgH,SAAS,CAAG;AACjF5M,IAAAA,OAAO,EAAGsZ,gBAAkB;AAC5BvZ,IAAAA,GAAG,EAAGqZ,WAAa;IAAAre,QAAA,EAAA,CAEjBA,QAAQ,EACVC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4CAA4C;AAACiF,MAAAA,GAAG,EAAGsZ,OAAS;AAAAte,MAAAA,QAAA,EACnEoe,SAAS,CAACtX,GAAG,CAAC,CAAC6X,IAAI,EAAEC,KAAK,KAC1B3e,GAAA,CAAC4e,QAAQ,EAAA;AAAC5Z,QAAAA,OAAO,EAAGuZ,aAAe;AAACG,QAAAA,IAAI,EAAGA,IAAAA;AAAM,OAAA,EAAOC,KAAS,CAClE,CAAA;AAAC,KACC,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;AAEA,SAASC,QAAQA,CAAC;EAAEF,IAAI;AAAE1Z,EAAAA,OAAAA;AAAQ,CAAC,EAAE;EACnC,IAAI0Z,IAAI,CAACG,SAAS,EAAE;AAClB,IAAA,OAAO7e,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4GAAA;AAA4G,KAAE,CAAC,CAAA;AACnI,GAAA;EAEA,IAAI4e,IAAI,CAACF,MAAM,EAAE;AACf,IAAA,OAAQxe,GAAA,CAAA,QAAA,EAAA;AACNN,MAAAA,IAAI,EAAC,QAAQ;AACbI,MAAAA,KAAK,EAAC,6GAA6G;MACnHkF,OAAO,EAAGjC,KAAK,IAAIiC,OAAO,CAACjC,KAAK,EAAE2b,IAAI,CAACF,MAAM,CAAG;MAAAze,QAAA,EAE/C2e,IAAI,CAACrV,KAAAA;AAAK,KACL,CAAC,CAAA;AACX,GAAA;AAEA,EAAA,OAAOrJ,GAAA,CAAA,KAAA,EAAA;AACLF,IAAAA,KAAK,EAAC,iDAAiD;IAAAC,QAAA,EAEtD2e,IAAI,CAACrV,KAAAA;AAAK,GACR,CAAC,CAAA;AACR,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASoV,cAAcA,CAACK,eAAe,EAAEzY,QAAQ,EAAE;AACjDvC,EAAAA,SAAS,CAAC,MAAM;AAEd;AACJ;AACA;IACI,SAASib,QAAQA,CAAChc,KAAK,EAAE;AACvB,MAAA,IAAI+b,eAAe,CAACnT,IAAI,CAACxM,OAAO,IAAIA,OAAO,IAAIA,OAAO,CAACwa,QAAQ,CAAC5W,KAAK,CAACxC,MAAM,CAAC,CAAC,EAAE;AAC9E,QAAA,OAAA;AACF,OAAA;AAEA8F,MAAAA,QAAQ,EAAE,CAAA;AACZ,KAAA;AAEApC,IAAAA,QAAQ,CAACQ,gBAAgB,CAAC,OAAO,EAAEsa,QAAQ,EAAE;AAAEC,MAAAA,OAAO,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;IAE/D,OAAO,MAAM/a,QAAQ,CAACS,mBAAmB,CAAC,OAAO,EAAEqa,QAAQ,EAAE;AAAEC,MAAAA,OAAO,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AACjF,GAAC,EAAE,CAAE,GAAGF,eAAe,EAAEzY,QAAQ,CAAE,CAAC,CAAA;AACtC;;AC1GO,SAAS4Y,YAAYA,CAAC/f,KAAK,EAAE;EAClC,MAAM;AACJa,IAAAA,QAAQ,GAAG,IAAI;AACfD,IAAAA,KAAK,EAAEof,SAAS;AAChBla,IAAAA,OAAO,GAAGA,MAAM,EAAE;IAClB,GAAGma,UAAAA;AACL,GAAC,GAAGjgB,KAAK,CAAA;AAET,EAAA,OAAOc,GAAA,CAAA,QAAA,EAAA;AACLN,IAAAA,IAAI,EAAC,QAAQ;AAAA,IAAA,GACRyf,UAAU;AACfna,IAAAA,OAAO,EAAGA,OAAS;AACnBlF,IAAAA,KAAK,EAAG+L,UAAU,CAAC,0CAA0C,EAAEqT,SAAS,CAAG;AAAAnf,IAAAA,QAAA,EACzEA,QAAAA;AAAQ,GACJ,CAAC,CAAA;AACX;;ACjBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASqf,iBAAiBA,CAACC,QAAQ,EAAEC,YAAY,EAAE;AAEhEA,EAAAA,YAAY,GAAGA,YAAY,IAAI,EAAE,CAAA;EAEjC,OAAOD,QAAQ,CAACE,OAAO,CAAC,YAAY,EAAE,UAASC,CAAC,EAAEvY,GAAG,EAAE;IACrD,OAAOqY,YAAY,CAACrY,GAAG,CAAC,IAAI,GAAG,GAAGA,GAAG,GAAG,GAAG,CAAA;AAC7C,GAAC,CAAC,CAAA;AACJ;;ACFe,SAASwY,gBAAgBA,CAACvgB,KAAK,EAAE;EAC9C,MAAM;IACJC,OAAO;AACP+J,IAAAA,OAAO,GAAG,EAAE;IACZxH,EAAE;IACFjC,KAAK;AACLmL,IAAAA,IAAI,EAAEF,UAAU;IAChBgV,MAAM;AACNC,IAAAA,SAAS,GAAGP,iBAAAA;AACd,GAAC,GAAGlgB,KAAK,CAAA;EAET,MAAM,CAAE0L,IAAI,EAAEC,OAAO,CAAE,GAAGtI,QAAQ,CAACmI,UAAU,CAAC,CAAA;EAE9C,MAAMI,UAAU,GAAGA,MAAMD,OAAO,CAAC,CAACD,IAAI,CAAC,CAAA;EAEvC,MAAM;AAAE3C,IAAAA,MAAAA;AAAO,GAAC,GAAGtG,UAAU,CAACuG,aAAsB,CAAC,CAAA;AAErD,EAAA,MAAM0D,sBAAsB,GAAG;IAC7B,GAAGjK,UAAU,CAACuG,aAAsB,CAAC;IACrCD,MAAM,EAAEJ,WAAW,CAAC,MAAM;MACxBgD,OAAO,CAAC,IAAI,CAAC,CAAA;AAEb,MAAA,IAAIxC,UAAU,CAACJ,MAAM,CAAC,EAAE;AACtBA,QAAAA,MAAM,EAAE,CAAA;AACV,OAAA;AACF,KAAC,EAAE,CAAEA,MAAM,EAAE4C,OAAO,CAAE,CAAA;GACvB,CAAA;AAGD,EAAA,MAAM+U,gBAAgB,GAAGD,SAAS,CAAC,SAAS,CAAC,CAAA;AAE7C,EAAA,OACE9f,IAAA,CAAA,KAAA,EAAA;AACE,IAAA,eAAA,EAAgB6B,EAAI;IACpB5B,KAAK,EAAG+L,UAAU,CAChB,wCAAwC,EACxCjB,IAAI,GAAG,MAAM,GAAG,EAClB,CAAG;AAAA7K,IAAAA,QAAA,GACHF,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,+CAA+C;AAACkF,MAAAA,OAAO,EAAG8F,UAAY;AAAA/K,MAAAA,QAAA,GAC/EC,GAAA,CAAA,KAAA,EAAA;QACEI,KAAK,EAAGX,KAAK,IAAImgB,gBAAkB;QACnC9f,KAAK,EAAG+L,UAAU,CAChB,qDAAqD,EACrD,CAACpM,KAAK,IAAI,OACZ,CAAG;QAAAM,QAAA,EACDN,KAAK,IAAImgB,gBAAAA;OACR,CAAC,EACN5f,GAAA,CAAA,QAAA,EAAA;AACEN,QAAAA,IAAI,EAAC,QAAQ;AACbU,QAAAA,KAAK,EAAGuf,SAAS,CAAC,kBAAkB,CAAG;AACvC7f,QAAAA,KAAK,EAAC,0EAA0E;QAAAC,QAAA,EAEhFC,GAAA,CAAC+L,SAAS,EAAA;AAACjM,UAAAA,KAAK,EAAG8K,IAAI,GAAG,iCAAiC,GAAG,kCAAA;SAAsC,CAAA;AAAC,OAC/F,CAAC,EAEP8U,MAAM,GAGF1f,GAAA,CAAA,QAAA,EAAA;AAAQN,QAAAA,IAAI,EAAC,QAAQ;AAACU,QAAAA,KAAK,EAAGuf,SAAS,CAAC,aAAa,CAAG;AAAC7f,QAAAA,KAAK,EAAC,mCAAmC;AAACkF,QAAAA,OAAO,EAAG0a,MAAQ;AAAA3f,QAAAA,QAAA,EACnHC,GAAA,CAAC6f,UAAU,EAAE,EAAA,CAAA;OACP,CAAC,GAET,IAAI,CAAA;KAEP,CAAC,EACN7f,GAAA,CAAA,KAAA,EAAA;MAAKF,KAAK,EAAG+L,UAAU,CACrB,gDAAgD,EAChDjB,IAAI,GAAG,MAAM,GAAG,EAClB,CAAG;AAAA7K,MAAAA,QAAA,EACDC,GAAA,CAACkI,aAAsB,CAAC8D,QAAQ,EAAA;AAACjK,QAAAA,KAAK,EAAG6J,sBAAwB;AAAA7L,QAAAA,QAAA,EAE7DmJ,OAAO,CAACrC,GAAG,CAACwC,KAAK,IAAI;UACnB,MAAM;AACJ4C,YAAAA,SAAS,EAAEC,SAAS;AACpBxK,YAAAA,EAAAA;AACF,WAAC,GAAG2H,KAAK,CAAA;UAET,OACE8C,aAAA,CAACD,SAAS,EAAA;AAAA,YAAA,GACH7C,KAAK;AACVlK,YAAAA,OAAO,EAAGA,OAAS;AACnB8H,YAAAA,GAAG,EAAGvF,EAAAA;AAAI,WAAE,CAAC,CAAA;SAElB,CAAA;OAE4B,CAAA;AAAC,KAC/B,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV;;AC7Fe,SAASoe,QAAQA,CAAC5gB,KAAK,EAAE;EACtC,MAAM;IACJ6gB,cAAc;IACdC,QAAQ;AACRL,IAAAA,SAAS,GAAGP,iBAAAA;AACd,GAAC,GAAGlgB,KAAK,CAAA;;AAET;AACA4E,EAAAA,SAAS,CAAC,MAAM;IACd,IAAIkc,QAAQ,IAAID,cAAc,EAAE;AAC9B,MAAA,MAAM1W,KAAK,GAAGT,KAAQ,CAAE,CAAkBmX,gBAAAA,EAAAA,cAAe,IAAG,CAAC,CAAA;AAE7D,MAAA,MAAME,cAAc,GAAGrX,KAAQ,CAAC,6BAA6B,EAAES,KAAK,CAAC,CAAA;AAErE,MAAA,IAAI4W,cAAc,EAAE;AAElB,QAAA,IAAI5X,UAAU,CAAC4X,cAAc,CAAC3X,MAAM,CAAC,EAAE;UACrC2X,cAAc,CAAC3X,MAAM,EAAE,CAAA;SACxB,MAAM,IAAID,UAAU,CAAC4X,cAAc,CAAC9X,KAAK,CAAC,EAAE;UAC3C8X,cAAc,CAAC9X,KAAK,EAAE,CAAA;AACxB,SAAA;QAEA8X,cAAc,CAACC,cAAc,EAAE,CAAA;AACjC,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAAEF,QAAQ,EAAED,cAAc,CAAE,CAAC,CAAA;AAGhC,EAAA,OACE/f,GAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,KAAK,EAAC,gCAAgC;IAAAC,QAAA,EACzCC,GAAA,CAACyf,gBAAgB,EAAA;AAAA,MAAA,GACVvgB,KAAK;AACV0L,MAAAA,IAAI,EAAGoV,QAAU;AACjBL,MAAAA,SAAS,EAAGA,SAAAA;KACb,CAAA;AAAC,GACC,CAAC,CAAA;AAGV;;ACvBA,MAAMlT,MAAI,GAAGA,MAAM,EAAE,CAAA;;AAErB;AACA;AACA;AACe,SAAS0T,SAASA,CAACjhB,KAAK,EAAE;EACvC,MAAM;IACJkhB,GAAG;IACHjhB,OAAO;IACPuC,EAAE;IACF2e,KAAK;IACL5gB,KAAK;AACLiL,IAAAA,UAAU,GAAG,KAAK;AAClBiV,IAAAA,SAAS,GAAGP,iBAAAA;AACd,GAAC,GAAGlgB,KAAK,CAAA;AAET4E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI5E,KAAK,CAACohB,UAAU,IAAIxT,SAAS,EAAE;AACjCyT,MAAAA,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC,CAAA;AACpE,KAAA;AACF,GAAC,EAAE,CAAEthB,KAAK,CAACohB,UAAU,CAAE,CAAC,CAAA;AAExB,EAAA,MAAM3V,QAAQ,GAAG/H,MAAM,CAAC,IAAI,CAAC,CAAA;AAE7B,EAAA,MAAM,CAAEgI,IAAI,EAAEC,OAAO,CAAE,GAAGrD,cAAc,CACtC,CAAE,QAAQ,EAAE9F,EAAE,EAAE,MAAM,CAAE,EACxBgJ,UACF,CAAC,CAAA;EAED,MAAM,CAAEO,MAAM,EAAExC,SAAS,CAAE,GAAGlG,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE7C,EAAA,MAAM0F,MAAM,GAAGJ,WAAW,CAAC,MAAMgD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAEA,OAAO,CAAE,CAAC,CAAA;EAE5D,MAAM,CAAE4V,UAAU,EAAEC,aAAa,CAAE,GAAGne,QAAQ,CAAC,EAAE,CAAC,CAAA;;AAElD;EACA,MAAM,CAAEoe,YAAY,EAAEC,eAAe,CAAE,GAAGre,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEzD,EAAA,MAAM2S,WAAW,GAAGnN,WAAW,CAAC5I,OAAO,CAAC,CAAA;AAExC,EAAA,MAAM2L,UAAU,GAAGjD,WAAW,CAAC,MAAMgD,OAAO,CAAC,CAACD,IAAI,CAAC,EAAE,CAAEA,IAAI,CAAE,CAAC,CAAA;AAE9D,EAAA,MAAMiW,WAAW,GAAI1hB,OAAO,KAAK+V,WAAW,IAAItK,IAAI,IAAI+V,YAAY,GAChEG,aAAa,CAACT,KAAK,EAAEI,UAAU,CAAC,GAChC,EAAE,CAAA;;AAEN;AACA3c,EAAAA,SAAS,CAAC,MAAM;IACd4c,aAAa,CAACL,KAAK,CAAC,CAAA;IACpBO,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,GAAC,EAAE,CAAEP,KAAK,CAAE,CAAC,CAAA;;AAEb;AACA9X,EAAAA,6BAA6B,CAACoC,QAAQ,EAAE,2CAA2C,EAAElC,SAAS,CAAC,CAAA;AAE/F,EAAA,MAAMsY,QAAQ,GAAG,CAAC,CAACV,KAAK,CAACpG,MAAM,CAAA;AAE/B,EAAA,MAAMrO,sBAAsB,GAAG;IAC7B,GAAGjK,UAAU,CAACuG,aAAsB,CAAC;AACrCD,IAAAA,MAAAA;GACD,CAAA;EAED,MAAM+Y,cAAc,GAAG3d,CAAC,IAAI;IAC1Bud,eAAe,CAAC,IAAI,CAAC,CAAA;IACrB/V,OAAO,CAAC,IAAI,CAAC,CAAA;IAEbuV,GAAG,CAAC/c,CAAC,CAAC,CAAA;GACP,CAAA;AAED,EAAA,MAAMoI,SAAS,GAAGtF,SAAS,EAAE,CAAA;AAC7B,EAAA,MAAM8a,QAAQ,GAAGZ,KAAK,CAAC1U,IAAI,CAAC+S,IAAI,IAAI;AAClC,IAAA,IAAIjT,SAAS,CAACiT,IAAI,CAAChd,EAAE,CAAC,EAAE;AACtB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,CAACgd,IAAI,CAACxV,OAAO,EAAE;AACjB,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,OAAOwV,IAAI,CAACxV,OAAO,CAACyC,IAAI,CAACtC,KAAK,IAAIoC,SAAS,CAACpC,KAAK,CAAC3H,EAAE,CAAC,CAAC,CAAA;AACxD,GAAC,CAAC,CAAA;AAGF,EAAA,OAAO7B,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,4BAA4B;IAAC,eAAgB,EAAA,QAAQ,GAAG4B,EAAI;AAACqD,IAAAA,GAAG,EAAG4F,QAAU;AAAA5K,IAAAA,QAAA,GAC7FF,IAAA,CAAA,KAAA,EAAA;MACEC,KAAK,EAAG+L,UAAU,CAChB,mCAAmC,EACnCkV,QAAQ,GAAG,EAAE,GAAG,OAAO,EACtBA,QAAQ,IAAInW,IAAI,GAAI,MAAM,GAAG,EAAE,EAC/BK,MAAM,IAAIL,IAAI,GAAI,QAAQ,GAAG,EAChC,CAAG;AACH5F,MAAAA,OAAO,EAAG+b,QAAQ,GAAGjW,UAAU,GAAG2B,MAAM;AAAA1M,MAAAA,QAAA,GACxCC,GAAA,CAAA,KAAA,EAAA;AACEI,QAAAA,KAAK,EAAGlB,KAAK,CAACqC,OAAO,GAAG,IAAI,GAAG9B,KAAO;AACtC,QAAA,YAAA,EAAaA,KAAO;AACpBK,QAAAA,KAAK,EAAC,yCAAyC;QAAAC,QAAA,EAE/CC,GAAA,CAACgC,cAAO,EAAA;UAACD,KAAK,EAAG7C,KAAK,CAACqC,OAAS;UAACM,KAAK,EAAG,QAAQ,GAAGH,EAAI;AAACvC,UAAAA,OAAO,EAAGA,OAAS;AAAC+C,UAAAA,MAAM,EAAGyI,QAAU;AAAA5K,UAAAA,QAAA,EAC5FN,KAAAA;SACK,CAAA;OACN,CAAC,EACNI,IAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAC,2CAA2C;QAAAC,QAAA,EAAA,CAElDqgB,GAAG,GAECvgB,IAAA,CAAA,QAAA,EAAA;AACEH,UAAAA,IAAI,EAAC,QAAQ;AACbU,UAAAA,KAAK,EAAGuf,SAAS,CAAC,sBAAsB,CAAG;AAC3C7f,UAAAA,KAAK,EAAC,yEAAyE;AAC/EkF,UAAAA,OAAO,EAAGgc,cAAgB;UAAAjhB,QAAA,EAAA,CAE1BC,GAAA,CAACkhB,UAAU,EAAA,EAAE,CAAC,EAEZ,CAACH,QAAQ,GACP/gB,GAAA,CAAA,MAAA,EAAA;AAAMF,YAAAA,KAAK,EAAC,sCAAsC;YAAAC,QAAA,EAAG4f,SAAS,CAAC,QAAQ,CAAA;WAAS,CAAC,GAE/E,IAAI,CAAA;AAAA,SAEJ,CAAC,GAET,IAAI,EAGRoB,QAAQ,GAEJ/gB,GAAA,CAAA,KAAA,EAAA;AACEI,UAAAA,KAAK,EAAGuf,SAAS,CAAE,CAAA,+BAAA,EAAiCU,KAAK,CAACpG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAG,EAAC,EAAE;YAAEkH,UAAU,EAAEd,KAAK,CAACpG,MAAAA;AAAO,WAAC,CAAG;UACnHna,KAAK,EACH+L,UAAU,CACR,iCAAiC,EACjCoV,QAAQ,GAAG,wCAAwC,GAAG,EACxD,CACD;UAAAlhB,QAAA,EAECsgB,KAAK,CAACpG,MAAAA;AAAM,SACX,CAAC,GAEN,IAAI,EAGR8G,QAAQ,GAEJ/gB,GAAA,CAAA,QAAA,EAAA;AACEN,UAAAA,IAAI,EAAC,QAAQ;AACbU,UAAAA,KAAK,EAAGuf,SAAS,CAAC,gBAAgB,CAAG;AACrC7f,UAAAA,KAAK,EAAC,qEAAqE;UAAAC,QAAA,EAE3EC,GAAA,CAAC+L,SAAS,EAAA;AAACjM,YAAAA,KAAK,EAAG8K,IAAI,GAAG,iCAAiC,GAAG,kCAAA;WAAsC,CAAA;SAC9F,CAAC,GAET,IAAI,CAAA;AAAA,OAEP,CAAC,CAAA;KACH,CAAC,EACN5K,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAG+L,UAAU,CACrB,2BAA2B,EAC3BjB,IAAI,IAAImW,QAAQ,GAAG,MAAM,GAAG,EAC9B,CAAG;AAAAhhB,MAAAA,QAAA,EACDC,GAAA,CAACkI,aAAsB,CAAC8D,QAAQ,EAAA;AAACjK,QAAAA,KAAK,EAAG6J,sBAAwB;QAAA7L,QAAA,EAG7DsgB,KAAK,CAACxZ,GAAG,CAAC,CAAC6X,IAAI,EAAEC,KAAK,KAAK;UACzB,IAAI,CAACD,IAAI,EAAE;AACT,YAAA,OAAA;AACF,WAAA;UAEA,MAAM;AAAEhd,YAAAA,EAAAA;AAAG,WAAC,GAAGgd,IAAI,CAAA;;AAEnB;AACA;AACA;UACA,MAAMsB,QAAQ,GAAGa,WAAW,CAACO,QAAQ,CAAC1C,IAAI,CAAChd,EAAE,CAAC,CAAA;UAE9C,OACEyK,aAAA,CAAC2T,QAAQ,EAAA;AAAA,YAAA,GACFpB,IAAI;AACTsB,YAAAA,QAAQ,EAAGA,QAAU;AACrB7gB,YAAAA,OAAO,EAAGA,OAAS;AACnBwf,YAAAA,KAAK,EAAGA,KAAO;AACf1X,YAAAA,GAAG,EAAGvF,EAAI;AACVie,YAAAA,SAAS,EAAGA,SAAAA;AAAW,WAAE,CAAC,CAAA;SAE/B,CAAA;OAE4B,CAAA;AAAC,KAC/B,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AACR,CAAA;AAGA,SAASmB,aAAaA,CAACO,QAAQ,EAAEC,QAAQ,EAAE;EACzC,MAAMC,MAAM,GAAGF,QAAQ,CAACxa,GAAG,CAAC6X,IAAI,IAAIA,IAAI,CAAChd,EAAE,CAAC,CAAA;EAC5C,MAAM8f,MAAM,GAAGF,QAAQ,CAACza,GAAG,CAAC6X,IAAI,IAAIA,IAAI,CAAChd,EAAE,CAAC,CAAA;AAE5C,EAAA,OAAO6f,MAAM,CAACE,MAAM,CAACC,MAAM,IAAI,CAACF,MAAM,CAACJ,QAAQ,CAACM,MAAM,CAAC,CAAC,CAAA;AAC1D;;ACtNA,SAASC,QAAQA,CAACziB,KAAK,EAAE;EACvB,MAAM;IACJwC,EAAE;IACFjC,KAAK;IACL2O,QAAQ;IACRhB,QAAQ;AACRrL,IAAAA,KAAK,GAAG,KAAK;IACbuD,OAAO;IACP4R,MAAM;AACN3V,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;EAErD,MAAM6f,oBAAoB,GAAGA,CAAC;AAAErhB,IAAAA,MAAAA;AAAO,GAAC,KAAK;AAC3C6N,IAAAA,QAAQ,CAAC7N,MAAM,CAAC8W,OAAO,CAAC,CAAA;GACzB,CAAA;EAED,MAAM8D,YAAY,GAAG9X,CAAC,IAAI;IACxBue,oBAAoB,CAACve,CAAC,CAAC,CAAA;AACvB2K,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAED+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,MAAMgD,GAAG,GAAGiD,iBAAiB,CAACtG,EAAE,CAAC,CAAA;AAEjC,EAAA,OACE7B,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,+BAA+B;AAAAC,IAAAA,QAAA,GACxCC,GAAA,CAAA,OAAA,EAAA;AACE+E,MAAAA,GAAG,EAAGA,GAAK;AACXrD,MAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBgN,MAAAA,IAAI,EAAGhN,EAAI;AACX4D,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBxX,MAAAA,IAAI,EAAC,UAAU;AACfI,MAAAA,KAAK,EAAC,4BAA4B;AAClCsO,MAAAA,QAAQ,EAAG+M,YAAc;AACzB9D,MAAAA,OAAO,EAAGtJ,UAAY;AACtBX,MAAAA,QAAQ,EAAGA,QAAAA;KAAY,CAAC,EAC1BpN,GAAA,CAAA,OAAA,EAAA;AAAOoX,MAAAA,GAAG,EAAGnV,UAAQ,CAACP,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;MAAAC,QAAA,EAC5DC,GAAA,CAACgC,cAAO,EAAA;AAACD,QAAAA,KAAK,EAAGR,OAAS;AAACM,QAAAA,KAAK,EAAGH,EAAI;QAACvC,OAAO,EAAGD,KAAK,CAACC,OAAS;AAAAY,QAAAA,QAAA,EAC7DN,KAAAA;OACK,CAAA;AAAC,KACL,CAAC,CAAA;AAAA,GACL,CAAC,CAAA;AAEV,CAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASoiB,aAAaA,CAAC3iB,KAAK,EAAE;EAC3C,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACXlB,KAAK;IACL8X,QAAQ;IACRhJ,QAAQ;IACRnB,QAAQ;IACR9H,OAAO;IACP4R,MAAM;AACN3V,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;AAET,EAAA,MAAM6C,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE/B,EAAA,MAAMsZ,KAAK,GAAGvS,QAAQ,CAACxE,EAAE,CAAC,CAAA;AAE1B,EAAA,OACE7B,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,gEAAgE;AAAC,IAAA,eAAA,EAAgB4B,EAAI;IAAA3B,QAAA,EAAA,CAC9FC,GAAA,CAAC2hB,QAAQ,EAAA;AACPvU,MAAAA,QAAQ,EAAGA,QAAU;AACrB1L,MAAAA,EAAE,EAAGA,EAAI;AAETjC,MAAAA,KAAK,EAAGA,KAAO;AACf2O,MAAAA,QAAQ,EAAGG,QAAU;AACrBjJ,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBnV,MAAAA,KAAK,EAAGA,KAAO;AACfR,MAAAA,OAAO,EAAGA,OAAS;AACnBpC,MAAAA,OAAO,EAAGA,OAAAA;AAAS,KAAA,EAPbA,OAOe,CAAC,EACtBsZ,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAG0Y,KAAAA;AAAK,KAAO,CAAC,EAClEzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEO,SAAS0K,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAACyC,OAAO,CAAA;AAC/B,CAAA;;AAGA;;AAEA,SAASpV,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;ACxHA,MAAM+K,IAAI,GAAGA,MAAM,EAAG,CAAA;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASqV,eAAeA,CAAC5iB,KAAK,EAAE;EAC7C,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACX8W,QAAQ;IACRrK,QAAQ;IACR3N,KAAK;IACL8X,QAAQ;IACRhJ,QAAQ;IACRlB,gBAAgB;IAChB+K,QAAQ;AACRpV,IAAAA,IAAI,GAAGyJ,IAAAA;AACT,GAAC,GAAGvN,KAAK,CAAA;EAET,MAAM,CAAEoc,eAAe,EAAEC,kBAAkB,CAAE,GAAGhZ,QAAQ,CAAC,IAAI,CAAC,CAAA;EAC9D,MAAM,CAAE+V,UAAU,EAAEC,aAAa,CAAE,GAAGhW,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEpD,EAAA,IAAIR,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE7B2E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuE,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxB,MAAA,MAAMI,kBAAkB,GAAGJ,QAAQ,CAACrW,KAAK,CAAC,IAAI,IAAI,CAAA;MAElDwZ,kBAAkB,CAAC/C,kBAAkB,CAAC,CAAA;AACxC,KAAA;AACF,GAAC,EAAE,CAAEzW,KAAK,EAAEqW,QAAQ,CAAE,CAAC,CAAA;AAEvB,EAAA,MAAMjL,OAAO,GAAGvD,iBAAiB,CAAE9B,QAAQ,IAAK;IAC9C,IAAI0Q,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAA,IAAInQ,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxBI,MAAAA,kBAAkB,GAAGJ,QAAQ,CAACtQ,QAAQ,CAAC,IAAI,IAAI,CAAA;AACjD,KAAA;;AAEA;IACA,IAAIA,QAAQ,KAAK/F,KAAK,EAAE;AACtBwM,MAAAA,QAAQ,CAACzG,QAAQ,EAAE0Q,kBAAkB,CAAC,CAAA;AACxC,KAAA;IAEA+C,kBAAkB,CAAC/C,kBAAkB,CAAC,CAAA;AACxC,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMG,OAAO,GAAG9Q,WAAW,CAAC2T,GAAG,IAAI;IACjCjD,aAAa,CAACiD,GAAG,CAAC,CAAA;GACnB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,cAAc,GAAGvV,QAAQ,CAACxE,EAAE,CAAC,CAAA;AAEnC,EAAA,MAAM+W,KAAK,GAAGH,UAAU,IAAImD,cAAc,IAAIH,eAAe,CAAA;AAE7D,EAAA,OACEzb,IAAA,CAAA,KAAA,EAAA;IACEC,KAAK,EAAG+L,UAAU,CAChB,4BAA4B,EAC5B4M,KAAK,GAAG,WAAW,GAAG,EAAE,CACzB;AACD,IAAA,eAAA,EAAgB/W,EAAI;IAAA3B,QAAA,EAAA,CACpBC,GAAA,CAAC+hB,UAAU,EAAA;AACTtK,MAAAA,QAAQ,EAAGA,QAAU;AACrBrK,MAAAA,QAAQ,EAAGA,QAAU;AACrB1L,MAAAA,EAAE,EAAGA,EAAI;AAETjC,MAAAA,KAAK,EAAGA,KAAO;AACf0N,MAAAA,OAAO,EAAGA,OAAS;AACnBwL,MAAAA,OAAO,EAAGA,OAAS;AACnB3V,MAAAA,IAAI,EAAGA,IAAM;AACbjB,MAAAA,KAAK,EAAGA,KAAO;AACfsL,MAAAA,gBAAgB,EAAGA,gBAAAA;AAAkB,KAAA,EAN/BlO,OAMiC,CAAC,EACzCsZ,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAE0Y,KAAAA;AAAK,KAAM,CAAC,EAC/DzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEA,SAASohB,UAAUA,CAAC7iB,KAAK,EAAE;EACzB,MAAM;IACJuY,QAAQ;IACR/V,EAAE;IACFjC,KAAK;IACL0N,OAAO;IACPwL,OAAO;AACP5W,IAAAA,KAAK,GAAG,EAAE;AACVqL,IAAAA,QAAQ,GAAG,KAAK;AAChBC,IAAAA,gBAAAA;AACF,GAAC,GAAGnO,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;AAErD,EAAA,MAAMoU,SAAS,GAAGnO,iBAAiB,CAACtG,EAAE,CAAC,CAAA;AACvC,EAAA,MAAMqX,YAAY,GAAGnW,MAAM,EAAE,CAAA;EAE7B,MAAM,CAAEuF,KAAK,EAAEkR,SAAS,CAAE,GAAG9W,QAAQ,CAACuK,SAAS,CAAC,CAAA;AAEhD,EAAA,MAAM2M,QAAQ,GAAGA,CAAC1M,MAAM,GAAG,CAAC,KAAK;IAC/B,MAAM2M,QAAQ,GAAGX,YAAY,CAACrV,OAAO,CAACiW,QAAQ,CAAC1V,QAAQ,CAACC,aAAa,CAAC,CAAA;;AAEtE;IACA,MAAM9B,QAAQ,GAAGsX,QAAQ,GAAGzV,QAAQ,CAACC,aAAa,CAAC0V,cAAc,GAAG5M,QAAQ,CAAA;AAE5EqM,IAAAA,SAAS,CAACjX,QAAQ,GAAG2K,MAAM,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,MAAMoK,mBAAmB,GAAGrQ,OAAO,CAAC,MAAM;AACxC,IAAA,OAAO2Q,QAAQ,CAAE3P,QAAQ,IAAKqF,OAAO,CAACrF,QAAQ,CAACmS,MAAM,GAAGnS,QAAQ,GAAGgF,SAAS,CAAC,CAAC,CAAA;AAChF,GAAC,EAAE,CAAEK,OAAO,EAAEsK,QAAQ,CAAE,CAAC,CAAA;EAEzB,MAAMxJ,WAAW,GAAGnG,QAAQ,IAAI;IAC9BqP,mBAAmB,CAACrP,QAAQ,CAAC,CAAA;IAC7BkG,aAAa,CAAClG,QAAQ,CAAC,CAAA;GACxB,CAAA;AAED,EAAA,MAAMiS,UAAU,GAAGnQ,iBAAiB,CAACoQ,IAAI,IAAI;IAE3C,MAAMlZ,MAAM,GAAGkZ,IAAI,IAAIA,IAAI,CAACC,MAAM,IAAID,IAAI,CAACyH,MAAM,CAACpe,CAAC,IAAIA,CAAC,CAAC2e,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE,CAAA;AAEpF,IAAA,IAAI,CAAClhB,MAAM,CAACmZ,MAAM,EAAE;MAClBtB,OAAO,CAAC7L,SAAS,CAAC,CAAA;AAClB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAM2L,KAAK,GAAGuB,IAAI,CAAC,CAAC,CAAC,CAAA;IACrB,MAAMiI,OAAO,GAAI,CAAA,EAAExJ,KAAK,CAAClI,MAAO,CAAIkI,EAAAA,EAAAA,KAAK,CAACwJ,OAAQ,CAAC,CAAA,CAAA;IAEnDtJ,OAAO,CAACsJ,OAAO,CAAC,CAAA;AAClB,GAAC,CAAC,CAAA;AAEFne,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOqE,KAAK,KAAK,WAAW,EAAE;AAChCgO,MAAAA,SAAS,CAACzS,OAAO,CAACyE,KAAK,CAACA,KAAK,CAAC,CAAA;MAC9BkR,SAAS,CAACvM,SAAS,CAAC,CAAA;AACtB,KAAA;AACF,GAAC,EAAE,CAAE3E,KAAK,CAAE,CAAC,CAAA;AAEbrE,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;AACAC,IAAAA,aAAa,CAACjM,KAAK,GAAGA,KAAK,GAAG,EAAE,CAAC,CAAA;AACnC,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,OACElC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,8BAA8B;AAAAC,IAAAA,QAAA,GACvCC,GAAA,CAAA,OAAA,EAAA;AAAO0B,MAAAA,EAAE,EAAGwgB,aAAa,CAACxgB,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;AAACkF,MAAAA,OAAO,EAAGA,MAAMyU,QAAQ,EAAI;AAAA1Z,MAAAA,QAAA,EAC5FN,KAAAA;KACI,CAAC,EACRO,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,oCAAoC;AAACiF,MAAAA,GAAG,EAAGgU,YAAc;MAAAhZ,QAAA,EAClEC,GAAA,CAAC0W,YAAgB,EAAA;AACfhI,QAAAA,IAAI,EAAGhN,EAAI;AACXyL,QAAAA,OAAO,EAAGc,WAAa;AACvBP,QAAAA,iBAAiB,EAAG;UAAE,iBAAiB,EAAEwU,aAAa,CAACxgB,EAAE,CAAA;SAAK;AAC9D0L,QAAAA,QAAQ,EAAGA,QAAU;AACrBG,QAAAA,MAAM,EAAGwM,UAAY;AACrBhY,QAAAA,KAAK,EAAGgM,UAAY;AACpBhJ,QAAAA,GAAG,EAAGoR,SAAW;AACjB9I,QAAAA,gBAAgB,EAAGA,gBAAAA;OACpB,CAAA;AAAC,KACC,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;AAEO,SAAShC,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,KAAK,CAAC,CAACA,IAAI,CAAC7S,KAAK,IAAI6S,IAAI,CAACmH,SAAS,CAACpC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;AACpE,CAAA;;AAEA;;AAEA,SAASuI,aAAaA,CAACxgB,EAAE,EAAE;EACzB,OAAQ,CAAA,6BAAA,EAA+BA,EAAG,CAAO,MAAA,CAAA,CAAA;AACnD;;AC1Je,SAASygB,IAAIA,CAACjjB,KAAK,EAAE;EAClC,MAAM;IACJwC,EAAE;IACFvC,OAAO;AACPkhB,IAAAA,KAAK,GAAG,EAAE;IACVpU,SAAS;AACTxM,IAAAA,KAAK,GAAG,SAAS;AACjBmL,IAAAA,IAAI,EAAEF,UAAU;IAChB0X,KAAK;IACLC,QAAQ;IACRtC,cAAc;IACd,GAAGuC,SAAAA;AACL,GAAC,GAAGpjB,KAAK,CAAA;EAET,MAAM,CAAE0L,IAAI,EAAEC,OAAO,CAAE,GAAGtI,QAAQ,CAAC,CAAC,CAACmI,UAAU,CAAC,CAAA;AAEhD,EAAA,MAAMqW,QAAQ,GAAG,CAAC,CAACV,KAAK,CAACpG,MAAM,CAAA;EAC/B,MAAMnP,UAAU,GAAGA,MAAMiW,QAAQ,IAAIlW,OAAO,CAAC,CAACD,IAAI,CAAC,CAAA;AAEnD,EAAA,MAAM2X,cAAc,GAAGxa,WAAW,CAAC5I,OAAO,CAAC,KAAKA,OAAO,CAAA;AACvD,EAAA,MAAMkiB,QAAQ,GAAGmB,WAAW,CAACnC,KAAK,EAAEkC,cAAc,CAAC,CAAA;AAEnDze,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI8G,IAAI,IAAI,CAACmW,QAAQ,EAAE;MACrBlW,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,KAAA;AACF,GAAC,EAAE,CAAED,IAAI,EAAEmW,QAAQ,CAAE,CAAC,CAAA;;AAEtB;AACF;AACA;EACE,SAAS0B,OAAOA,CAAC1f,KAAK,EAAE;IACtBA,KAAK,CAACkC,eAAe,EAAE,CAAA;AACvBmd,IAAAA,KAAK,EAAE,CAAA;IAEP,IAAI,CAACxX,IAAI,EAAE;MACTC,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,KAAA;AACF,GAAA;AAEA,EAAA,OACEhL,IAAA,CAAA,KAAA,EAAA;AACE,IAAA,eAAA,EAAgB6B,EAAI;AACpB5B,IAAAA,KAAK,EAAG+L,UAAU,CAChB,4BAA4B,EAC5B,iCAAiC,EACjCkV,QAAQ,GAAG,EAAE,GAAG,OAAO,EACvBnW,IAAI,GAAG,MAAM,GAAG,EAClB,CAAG;AAAA7K,IAAAA,QAAA,GACHF,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,wCAAwC;AAACkF,MAAAA,OAAO,EAAG8F,UAAY;AAAA/K,MAAAA,QAAA,GACxEC,GAAA,CAAA,KAAA,EAAA;AACEI,QAAAA,KAAK,EAAGX,KAAO;QACfK,KAAK,EAAG+L,UAAU,CAChB,8CAA8C,EAC9CjB,IAAI,IAAI,MACV,CAAG;AAAA7K,QAAAA,QAAA,EACDN,KAAAA;OACC,CAAC,EACNI,IAAA,CAAA,KAAA,EAAA;AACEC,QAAAA,KAAK,EAAC,gDAAgD;AAAAC,QAAAA,QAAA,GAEtDF,IAAA,CAAA,QAAA,EAAA;AACEH,UAAAA,IAAI,EAAC,QAAQ;AACbU,UAAAA,KAAK,EAAC,sBAAsB;AAC5B4E,UAAAA,OAAO,EAAGyd,OAAS;AACnB3iB,UAAAA,KAAK,EAAC,gCAAgC;UAAAC,QAAA,EAAA,CAEtCC,GAAA,CAACkhB,UAAU,EAAA,EAAE,CAAC,EAEZ,CAACH,QAAQ,GACP/gB,GAAA,CAAA,MAAA,EAAA;AAAMF,YAAAA,KAAK,EAAC,sCAAsC;AAAAC,YAAAA,QAAA,EAAC,QAAA;WAAY,CAAC,GAE9D,IAAI,CAAA;AAAA,SAEJ,CAAC,EAEPghB,QAAQ,IACN/gB,GAAA,CAAA,KAAA,EAAA;AACEI,UAAAA,KAAK,EAAI,CAAA,cAAA,EAAgBigB,KAAK,CAACpG,MAAO,CAAOoG,KAAAA,EAAAA,KAAK,CAACpG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAG,CAAG,CAAA;AAC7Ena,UAAAA,KAAK,EAAC,iCAAiC;UAAAC,QAAA,EAErCsgB,KAAK,CAACpG,MAAAA;AAAM,SACX,CACN,EAGD8G,QAAQ,IACN/gB,GAAA,CAAA,QAAA,EAAA;AACEN,UAAAA,IAAI,EAAC,QAAQ;AACbU,UAAAA,KAAK,EAAC,kBAAkB;AACxBN,UAAAA,KAAK,EAAC,4BAA4B;UAAAC,QAAA,EAElCC,GAAA,CAAC+L,SAAS,EAAA;AAACjM,YAAAA,KAAK,EAAG8K,IAAI,GAAG,iCAAiC,GAAG,kCAAA;WAAsC,CAAA;AAAC,SAC/F,CACT,CAAA;AAAA,OAEA,CAAC,CAAA;AAAA,KACH,CAAC,EAEJmW,QAAQ,IACN/gB,GAAA,CAAC0iB,SAAS,EAAA;AAAA,MAAA,GACHJ,SAAS;AACdvC,MAAAA,cAAc,EAAGA,cAAgB;AACjC9T,MAAAA,SAAS,EAAGA,SAAW;AACvB9M,MAAAA,OAAO,EAAGA,OAAS;AACnBuC,MAAAA,EAAE,EAAGA,EAAI;AACT2e,MAAAA,KAAK,EAAGA,KAAO;AACfgB,MAAAA,QAAQ,EAAGA,QAAU;AACrBgB,MAAAA,QAAQ,EAAGA,QAAU;AACrBzX,MAAAA,IAAI,EAAGA,IAAAA;AAAM,KACd,CACF,CAAA;AAAA,GAEA,CAAC,CAAA;AAEV,CAAA;AAEA,SAAS8X,SAASA,CAACxjB,KAAK,EAAE;EACxB,MAAM;IACJ6gB,cAAc;AACd9T,IAAAA,SAAS,EAAEC,SAAS;IACpB/M,OAAO;IACPuC,EAAE;IACF2e,KAAK;IACLgB,QAAQ;IACRgB,QAAQ;IACRzX,IAAI;IACJ,GAAG0X,SAAAA;AACL,GAAC,GAAGpjB,KAAK,CAAA;AAET,EAAA,MAAM8H,MAAM,GAAGL,aAAa,EAAE,CAAA;AAE9B,EAAA,MAAMgc,OAAO,GAAGtB,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE3Bvd,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI6e,OAAO,IAAI5C,cAAc,EAAE;AAE7B;AACA,MAAA,MAAM1W,KAAK,GAAGT,KAAQ,CAAE,CAAkBlH,gBAAAA,EAAAA,EAAG,IAAG,CAAC,CAAA;;AAEjD;MACA,MAAMkhB,QAAQ,GAAG,OAAO7C,cAAe,KAAK,SAAS,GACnD,6BAA6B,GAC7BA,cAAc,CAAA;AAChB,MAAA,MAAME,cAAc,GAAGrX,KAAQ,CAACga,QAAQ,EAAEvZ,KAAK,CAAC,CAAA;;AAEhD;AACA,MAAA,IAAI4W,cAAc,EAAE;AAElB,QAAA,IAAI5X,UAAU,CAAC4X,cAAc,CAAC3X,MAAM,CAAC,EAAE;UACrC2X,cAAc,CAAC3X,MAAM,EAAE,CAAA;SACxB,MAAM,IAAID,UAAU,CAAC4X,cAAc,CAAC9X,KAAK,CAAC,EAAE;UAC3C8X,cAAc,CAAC9X,KAAK,EAAE,CAAA;AACxB,SAAA;AAEF,OAAA;AACF,KAAA;GACD,EAAE,CAAEwa,OAAO,EAAE5C,cAAc,EAAEre,EAAE,CAAE,CAAC,CAAA;AAEnC,EAAA,OAAO1B,GAAA,CAAA,IAAA,EAAA;IAAIF,KAAK,EAAG+L,UAAU,CAC3B,uCAAuC,EACvCjB,IAAI,GAAG,MAAM,GAAG,EAClB,CAAG;IAAA7K,QAAA,EAECsgB,KAAK,CAACxZ,GAAG,CAAC,CAAC6X,IAAI,EAAEC,KAAK,KAAK;AACzB,MAAA,MAAM1X,GAAG,GAAGD,MAAM,CAAC0X,IAAI,CAAC,CAAA;AAExB,MAAA,OAAQ7e,IAAA,CAAA,IAAA,EAAA;AAAIC,QAAAA,KAAK,EAAC,sCAAsC;QAAAC,QAAA,EAAA,CACtDC,GAAA,CAACkM,SAAS,EAAA;AAAA,UAAA,GACHoW,SAAS;AACdnjB,UAAAA,OAAO,EAAGA,OAAS;AACnBuC,UAAAA,EAAE,EAAGA,EAAI;AACTid,UAAAA,KAAK,EAAGA,KAAO;AACfD,UAAAA,IAAI,EAAGA,IAAM;UACb9T,IAAI,EAAG8T,IAAI,KAAKiE,OAAAA;AAAS,SAAE,CAAC,EAE5BN,QAAQ,IACNriB,GAAA,CAAA,QAAA,EAAA;AACEN,UAAAA,IAAI,EAAC,QAAQ;AACbU,UAAAA,KAAK,EAAC,aAAa;AACnBN,UAAAA,KAAK,EAAC,0EAA0E;UAChFkF,OAAO,EAAGA,MAAMqd,QAAQ,IAAIA,QAAQ,CAAC3D,IAAI,CAAG;AAAA3e,UAAAA,QAAA,EAC7CC,GAAA,CAAC6f,UAAU,EAAE,EAAA,CAAA;AAAC,SAAQ,CACxB,CAAA;AAAA,OAAA,EAhB0D5Y,GAkB3D,CAAC,CAAA;KACN,CAAA;AAAC,GAEF,CAAC,CAAA;AACP,CAAA;AAEA,SAASub,WAAWA,CAACnC,KAAK,GAAG,EAAE,EAAEwC,WAAW,EAAE;EAC5C,MAAMC,aAAa,GAAG/a,WAAW,CAACsY,KAAK,CAAC/Y,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;AAEtD,EAAA,IAAIub,WAAW,EAAE;AACf,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AAEA,EAAA,OAAOC,aAAa,GAAGzC,KAAK,CAACoB,MAAM,CAAC/C,IAAI,IAAI,CAACoE,aAAa,CAAC1B,QAAQ,CAAC1C,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;AACjF;;AC5MA,SAASqE,MAAMA,CAAC7jB,KAAK,EAAE;EACrB,MAAM;IACJwC,EAAE;IACFjC,KAAK;IACL2O,QAAQ;AACR4U,IAAAA,OAAO,GAAG,EAAE;AACZjhB,IAAAA,KAAK,GAAG,EAAE;IACVqL,QAAQ;IACR9H,OAAO;IACP4R,MAAM;AACN3V,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;AAET,EAAA,MAAM6F,GAAG,GAAGiD,iBAAiB,CAACtG,EAAE,CAAC,CAAA;EAEjC,MAAM,CAAEqM,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;EAErD,MAAM6f,oBAAoB,GAAGA,CAAC;AAAErhB,IAAAA,MAAAA;AAAO,GAAC,KAAK;AAC3C6N,IAAAA,QAAQ,CAAC7N,MAAM,CAACwB,KAAK,CAAC,CAAA;GACvB,CAAA;EAED,MAAMoZ,YAAY,GAAG9X,CAAC,IAAI;IACxBue,oBAAoB,CAACve,CAAC,CAAC,CAAA;AACvB2K,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAED+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,OACElC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,6BAA6B;AAAAC,IAAAA,QAAA,GACtCC,GAAA,CAAA,OAAA,EAAA;AAAOoX,MAAAA,GAAG,EAAGnV,UAAQ,CAACP,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;MAAAC,QAAA,EAC5DC,GAAA,CAACgC,cAAO,EAAA;AAACD,QAAAA,KAAK,EAAGR,OAAS;AAACM,QAAAA,KAAK,EAAGH,EAAI;QAACvC,OAAO,EAAGD,KAAK,CAACC,OAAS;AAAAY,QAAAA,QAAA,EAC9DN,KAAAA;OACM,CAAA;KACJ,CAAC,EACRO,GAAA,CAAA,QAAA,EAAA;AACE+E,MAAAA,GAAG,EAAGA,GAAK;AACXrD,MAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBgN,MAAAA,IAAI,EAAGhN,EAAI;AACX5B,MAAAA,KAAK,EAAC,4BAA4B;AAClCqN,MAAAA,OAAO,EAAGgO,YAAc;AACxB7V,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBnV,MAAAA,KAAK,EAAGgM,UAAY;AACpBX,MAAAA,QAAQ,EAAGA,QAAU;MAAArN,QAAA,EAEpBijB,OAAO,CAACnc,GAAG,CAAC,CAACoc,MAAM,EAAEC,GAAG,KAAK;QAC5B,IAAID,MAAM,CAACljB,QAAQ,EAAE;AACnB,UAAA,OACEC,GAAA,CAAA,UAAA,EAAA;YAAsBP,KAAK,EAAGwjB,MAAM,CAACxjB,KAAO;AAAAM,YAAAA,QAAA,EACzCkjB,MAAM,CAACljB,QAAQ,CAAC8G,GAAG,CAAC,CAACsc,KAAK,EAAED,GAAG,KAC9BljB,GAAA,CAAA,QAAA,EAAA;cAEE+B,KAAK,EAAGohB,KAAK,CAACphB,KAAO;cACrBqL,QAAQ,EAAG+V,KAAK,CAAC/V,QAAU;cAAArN,QAAA,EAE1BojB,KAAK,CAAC1jB,KAAAA;AAAK,aAAA,EAJNyjB,GAKA,CACT,CAAA;AAAC,WAAA,EATYA,GAUN,CAAC,CAAA;AAEf,SAAA;AAEA,QAAA,OACEljB,GAAA,CAAA,QAAA,EAAA;UAAoB+B,KAAK,EAAGkhB,MAAM,CAAClhB,KAAO;UAACqL,QAAQ,EAAG6V,MAAM,CAAC7V,QAAU;UAAArN,QAAA,EACpEkjB,MAAM,CAACxjB,KAAAA;AAAK,SAAA,EADDyjB,GAEN,CAAC,CAAA;OAEZ,CAAA;AAAC,KACI,CAAC,CAAA;AAAA,GACN,CAAC,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,WAAWA,CAAClkB,KAAK,EAAE;EACzC,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACXlB,KAAK;IACL8X,QAAQ;IACRhJ,QAAQ;IACR8U,UAAU;IACVjW,QAAQ;IACR9H,OAAO;IACP4R,MAAM;IACNkB,QAAQ;AACR7W,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;AAET,EAAA,MAAM8jB,OAAO,GAAGK,UAAU,CAAClkB,OAAO,CAAC,CAAA;AACnC,EAAA,MAAMkZ,WAAW,GAAGnS,QAAQ,CAACxE,EAAE,CAAC,CAAA;EAChC,MAAM,CAAE4W,UAAU,EAAEC,aAAa,CAAE,GAAGhW,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEpD,EAAA,IAAIR,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE7B2E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuE,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxB,MAAA,MAAMI,kBAAkB,GAAGJ,QAAQ,CAACrW,KAAK,CAAC,IAAI,IAAI,CAAA;MAElDwW,aAAa,CAACC,kBAAkB,CAAC,CAAA;AACnC,KAAA;AACF,GAAC,EAAE,CAAEzW,KAAK,EAAEqW,QAAQ,CAAE,CAAC,CAAA;EAGvB,MAAMhK,QAAQ,GAAItG,QAAQ,IAAK;IAC7B,IAAI0Q,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAA,IAAInQ,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxBI,MAAAA,kBAAkB,GAAGJ,QAAQ,CAACtQ,QAAQ,CAAC,IAAI,IAAI,CAAA;AACjD,KAAA;AAEAyG,IAAAA,QAAQ,CAACzG,QAAQ,EAAE0Q,kBAAkB,CAAC,CAAA;IACtCD,aAAa,CAACC,kBAAkB,CAAC,CAAA;GAClC,CAAA;AAED,EAAA,MAAMC,KAAK,GAAGJ,WAAW,IAAIC,UAAU,CAAA;AAEvC,EAAA,OACEzY,IAAA,CAAA,KAAA,EAAA;IACEC,KAAK,EAAG2O,UAAU,CAChB,4BAA4B,EAC5BgK,KAAK,GAAG,WAAW,GAAG,EAAE,CACzB;AACD,IAAA,eAAA,EAAgB/W,EAAI;IAAA3B,QAAA,EAAA,CACpBC,GAAA,CAAC+iB,MAAM,EAAA;AACLrhB,MAAAA,EAAE,EAAGA,EAAI;AAETjC,MAAAA,KAAK,EAAGA,KAAO;AACfsC,MAAAA,KAAK,EAAGA,KAAO;AACfqM,MAAAA,QAAQ,EAAGA,QAAU;AACrB9I,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjB8L,MAAAA,OAAO,EAAGA,OAAS;AACnB5V,MAAAA,QAAQ,EAAGA,QAAU;AACrB7L,MAAAA,OAAO,EAAGA,OAAS;AACnBpC,MAAAA,OAAO,EAAGA,OAAAA;AAAS,KAAA,EATbA,OASe,CAAC,EACtBsZ,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAG0Y,KAAAA;AAAK,KAAO,CAAC,EAClEzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEO,SAAS0K,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC7S,KAAK,CAAA;AAC7B,CAAA;;AAEA;;AAEA,SAASE,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;AC9Le,SAAS4hB,MAAMA,CAACpkB,KAAK,EAAE;EACpC,MAAM;IACJuY,QAAQ;IACRrK,QAAQ;IACRjO,OAAO;IACPoY,QAAQ;IACR7V,EAAE;IACFwV,MAAM;IACN5R,OAAO;AACPiJ,IAAAA,QAAAA;AACF,GAAC,GAAGrP,KAAK,CAAA;AAET,EAAA,MAAM6C,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;EAE/B,MAAM,CAAE4O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;AAErD,EAAA,MAAMoV,mBAAmB,GAAGrQ,OAAO,CAAC,MAAM;AACxC,IAAA,OAAO2Q,QAAQ,CAAElX,MAAM,IAAKgO,QAAQ,CAAChO,MAAM,CAACwB,KAAK,CAACkY,MAAM,GAAG1Z,MAAM,CAACwB,KAAK,GAAG+K,SAAS,CAAC,CAAC,CAAA;AACvF,GAAC,EAAE,CAAEyB,QAAQ,EAAEkJ,QAAQ,CAAE,CAAC,CAAA;EAE1B,MAAMxJ,WAAW,GAAG5K,CAAC,IAAI;AACvB8T,IAAAA,mBAAmB,CAAC9T,CAAC,CAAC9C,MAAM,CAAC,CAAA;AAC7ByN,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAED+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAGb,EAAA,OACE/B,GAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,KAAK,EAAC,6BAA6B;AAAAC,IAAAA,QAAA,EACtCC,GAAA,CAAA,OAAA,EAAA;AACE0B,MAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AAEnBhC,MAAAA,IAAI,EAAC,MAAM;AACXgP,MAAAA,IAAI,EAAGhN,EAAI;AACXuW,MAAAA,UAAU,EAAC,OAAO;AAClBC,MAAAA,YAAY,EAAC,KAAK;AAClB9K,MAAAA,QAAQ,EAAGA,QAAU;AACrBtN,MAAAA,KAAK,EAAC,4BAA4B;AAClCqN,MAAAA,OAAO,EAAGc,WAAa;MACvB,YAAaF,EAAAA,UAAU,IAAI,SAAW;AACtCzI,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBnV,MAAAA,KAAK,EAAGgM,UAAAA;AAAY,KAAA,EAXd5O,OAWgB,CAAA;AAAC,GACtB,CAAC,CAAA;AAEV,CAAA;AAEO,SAASkM,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC7S,KAAK,CAAA;AAC7B,CAAA;;AAGA;;AAEA,SAASE,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;AC5DA,SAAS6hB,gBAAgBA,CAACpkB,OAAO,EAAE;AACjCA,EAAAA,OAAO,CAAC0F,KAAK,CAAC3E,MAAM,GAAG,MAAM,CAAA;;AAE7B;AACA;EACAf,OAAO,CAAC0F,KAAK,CAAC3E,MAAM,GAAI,CAAGf,EAAAA,OAAO,CAACgK,YAAY,GAAG,CAAG,CAAG,EAAA,CAAA,CAAA;AAC1D,CAAA;AAEA,SAASqa,QAAQA,CAACtkB,KAAK,EAAE;EAEvB,MAAM;IACJwC,EAAE;IACFjC,KAAK;IACLgY,QAAQ;IACRtK,OAAO;AACPpL,IAAAA,KAAK,GAAG,EAAE;IACVqL,QAAQ;IACRqW,SAAS;IACTne,OAAO;IACP4R,MAAM;IACNwM,UAAU;IACV7U,WAAW;AACX8U,IAAAA,IAAI,GAAGD,UAAU,GAAG,CAAC,GAAG,CAAC;AACzBniB,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,CAAC,CAAA;AAErD,EAAA,MAAMgD,GAAG,GAAGiD,iBAAiB,CAACtG,EAAE,CAAC,CAAA;AAEjC,EAAA,MAAMW,OAAO,GAAG0H,iBAAiB,CAAChF,GAAG,CAACrB,OAAO,CAAC,CAAA;AAE9C,EAAA,MAAMyT,mBAAmB,GAAGrQ,OAAO,CAAC,MAAM;AACxC,IAAA,OAAO2Q,QAAQ,CAAElX,MAAM,IAAK4M,OAAO,CAAC5M,MAAM,CAACwB,KAAK,CAACkY,MAAM,GAAG1Z,MAAM,CAACwB,KAAK,GAAG+K,SAAS,CAAC,CAAC,CAAA;AACtF,GAAC,EAAE,CAAEK,OAAO,EAAEsK,QAAQ,CAAE,CAAC,CAAA;EAEzB,MAAMxJ,WAAW,GAAG5K,CAAC,IAAI;AACvB8T,IAAAA,mBAAmB,CAAC9T,CAAC,CAAC9C,MAAM,CAAC,CAAA;AAE7BmjB,IAAAA,UAAU,IAAIH,gBAAgB,CAAClgB,CAAC,CAAC9C,MAAM,CAAC,CAAA;AAExCyN,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAEDmI,EAAAA,eAAe,CAAC,MAAM;AACpBwZ,IAAAA,UAAU,IAAIH,gBAAgB,CAACxe,GAAG,CAACrB,OAAO,CAAC,CAAA;GAC5C,EAAE,EAAE,CAAC,CAAA;AAENwG,EAAAA,eAAe,CAAC,MAAM;IACpB7H,OAAO,IAAIqhB,UAAU,IAAIH,gBAAgB,CAACxe,GAAG,CAACrB,OAAO,CAAC,CAAA;AACxD,GAAC,EAAE,CAAErB,OAAO,CAAE,CAAC,CAAA;AAEfyB,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,OACElC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,+BAA+B;AAAAC,IAAAA,QAAA,GACxCC,GAAA,CAAA,OAAA,EAAA;AAAOoX,MAAAA,GAAG,EAAGnV,UAAQ,CAACP,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;MAAAC,QAAA,EAC5DC,GAAA,CAACgC,cAAO,EAAA;AAACD,QAAAA,KAAK,EAAGR,OAAS;AAACM,QAAAA,KAAK,EAAGH,EAAI;QAACvC,OAAO,EAAGD,KAAK,CAACC,OAAS;AAAAY,QAAAA,QAAA,EAC7DN,KAAAA;OACK,CAAA;KACJ,CAAC,EACRO,GAAA,CAAA,UAAA,EAAA;AACE+E,MAAAA,GAAG,EAAGA,GAAK;AACXrD,MAAAA,EAAE,EAAGO,UAAQ,CAACP,EAAE,CAAG;AACnBgN,MAAAA,IAAI,EAAGhN,EAAI;AACXuW,MAAAA,UAAU,EAAC,OAAO;AAClBnY,MAAAA,KAAK,EAAG+L,UAAU,CAChB,4BAA4B,EAC5B4X,SAAS,GAAG,sCAAsC,GAAG,EAAE,EACvDC,UAAU,GAAG,aAAa,GAAG,EAAE,CAChC;AACDvW,MAAAA,OAAO,EAAGc,WAAa;AACvB3I,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBrI,MAAAA,WAAW,EAAGA,WAAa;AAC3B8U,MAAAA,IAAI,EAAGA,IAAM;AACb5hB,MAAAA,KAAK,EAAGgM,UAAY;AACpBX,MAAAA,QAAQ,EAAGA,QAAU;MACrB,YAAW,EAAA,OAAA;AAAO,KACnB,CAAC,CAAA;AAAA,GACC,CAAC,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASwW,aAAaA,CAAC1kB,KAAK,EAAE;EAC3C,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACX8W,QAAQ;IACRhY,KAAK;IACL8X,QAAQ;IACRhJ,QAAQ;IACRoV,IAAI;IACJF,SAAS;IACTrW,QAAQ;IACRgL,QAAQ;IACR9S,OAAO;IACP4R,MAAM;IACNrI,WAAW;IACX6U,UAAU;AACVniB,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;AAET,EAAA,MAAMmZ,WAAW,GAAGnS,QAAQ,CAACxE,EAAE,CAAC,CAAA;EAChC,MAAM,CAAE4W,UAAU,EAAEC,aAAa,CAAE,GAAGhW,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEpD,EAAA,IAAIR,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE7B2E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuE,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxB,MAAA,MAAMI,kBAAkB,GAAGJ,QAAQ,CAACrW,KAAK,CAAC,IAAI,IAAI,CAAA;MAElDwW,aAAa,CAACC,kBAAkB,CAAC,CAAA;AACnC,KAAA;AACF,GAAC,EAAE,CAAEzW,KAAK,EAAEqW,QAAQ,CAAE,CAAC,CAAA;EAEvB,MAAMjL,OAAO,GAAIrF,QAAQ,IAAK;IAC5B,IAAI0Q,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAA,IAAInQ,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxBI,MAAAA,kBAAkB,GAAGJ,QAAQ,CAACtQ,QAAQ,CAAC,IAAI,IAAI,CAAA;AACjD,KAAA;AAEAyG,IAAAA,QAAQ,CAACzG,QAAQ,EAAE0Q,kBAAkB,CAAC,CAAA;IAEtCD,aAAa,CAACC,kBAAkB,CAAC,CAAA;GAClC,CAAA;AAGD,EAAA,MAAMC,KAAK,GAAGJ,WAAW,IAAIC,UAAU,CAAA;AAEvC,EAAA,OACEzY,IAAA,CAAA,KAAA,EAAA;IACEC,KAAK,EAAG+L,UAAU,CAChB,4BAA4B,EAC5B4M,KAAK,GAAG,WAAW,GAAG,EAAE,CACzB;AACD,IAAA,eAAA,EAAgB/W,EAAI;IAAA3B,QAAA,EAAA,CACpBC,GAAA,CAACwjB,QAAQ,EAAA;AACP9hB,MAAAA,EAAE,EAAGA,EAAI;AAETjC,MAAAA,KAAK,EAAGA,KAAO;AACfsC,MAAAA,KAAK,EAAGA,KAAO;AACfoL,MAAAA,OAAO,EAAGA,OAAS;AACnB7H,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjByM,MAAAA,IAAI,EAAGA,IAAM;AACblM,MAAAA,QAAQ,EAAGA,QAAU;AACrBgM,MAAAA,SAAS,EAAGA,SAAW;AACvBrW,MAAAA,QAAQ,EAAGA,QAAU;AACrByB,MAAAA,WAAW,EAAGA,WAAa;AAC3B6U,MAAAA,UAAU,EAAGA,UAAY;AACzBniB,MAAAA,OAAO,EAAGA,OAAS;AACnBpC,MAAAA,OAAO,EAAGA,OAAAA;AAAS,KAAA,EAbbA,OAae,CAAC,EACtBsZ,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAG0Y,KAAAA;AAAK,KAAO,CAAC,EAClEzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEO,SAAS0K,UAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC7S,KAAK,CAAA;AAC7B,CAAA;;AAGA;;AAEA,SAASE,UAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;AClMA,SAASmiB,SAASA,CAAC3kB,KAAK,EAAE;EAExB,MAAM;IACJuY,QAAQ;AACRrK,IAAAA,QAAQ,GAAG,KAAK;IAChB1L,EAAE;IACFjC,KAAK;IACL0N,OAAO;IACP7H,OAAO;IACP4R,MAAM;IACNrI,WAAW;AACX9M,IAAAA,KAAK,GAAG,EAAE;AACVR,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;EAET,MAAM,CAAE6O,UAAU,EAAEC,aAAa,CAAE,GAAGzL,QAAQ,CAACR,KAAK,IAAI,EAAE,CAAC,CAAA;AAE3D,EAAA,MAAMgD,GAAG,GAAGiD,iBAAiB,CAACtG,EAAE,CAAC,CAAA;AAEjC,EAAA,MAAMyV,mBAAmB,GAAGrQ,OAAO,CAAC,MAAM;AACxC,IAAA,OAAO2Q,QAAQ,CAAElX,MAAM,IAAK4M,OAAO,CAAC5M,MAAM,CAACwB,KAAK,CAACkY,MAAM,GAAG1Z,MAAM,CAACwB,KAAK,GAAG+K,SAAS,CAAC,CAAC,CAAA;AACtF,GAAC,EAAE,CAAEK,OAAO,EAAEsK,QAAQ,CAAE,CAAC,CAAA;EAEzB,MAAMxJ,WAAW,GAAG5K,CAAC,IAAI;AACvB8T,IAAAA,mBAAmB,CAAC9T,CAAC,CAAC9C,MAAM,CAAC,CAAA;AAC7ByN,IAAAA,aAAa,CAAC3K,CAAC,CAAC9C,MAAM,CAACwB,KAAK,CAAC,CAAA;GAC9B,CAAA;AAED+B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI/B,KAAK,KAAKgM,UAAU,EAAE;AACxB,MAAA,OAAA;AACF,KAAA;IAEAC,aAAa,CAACjM,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAAEA,KAAK,CAAE,CAAC,CAAA;AAEb,EAAA,OACElC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,gCAAgC;AAAAC,IAAAA,QAAA,GACzCC,GAAA,CAAA,OAAA,EAAA;AAAOoX,MAAAA,GAAG,EAAGnV,QAAQ,CAACP,EAAE,CAAG;AAAC5B,MAAAA,KAAK,EAAC,4BAA4B;MAAAC,QAAA,EAC5DC,GAAA,CAACgC,cAAO,EAAA;AAACD,QAAAA,KAAK,EAAGR,OAAS;AAACM,QAAAA,KAAK,EAAGH,EAAI;QAACvC,OAAO,EAAGD,KAAK,CAACC,OAAS;AAAAY,QAAAA,QAAA,EAC7DN,KAAAA;OACK,CAAA;KACJ,CAAC,EACRO,GAAA,CAAA,OAAA,EAAA;AACE+E,MAAAA,GAAG,EAAGA,GAAK;AACXrD,MAAAA,EAAE,EAAGO,QAAQ,CAACP,EAAE,CAAG;AACnBhC,MAAAA,IAAI,EAAC,MAAM;AACXgP,MAAAA,IAAI,EAAGhN,EAAI;AACXuW,MAAAA,UAAU,EAAC,OAAO;AAClBC,MAAAA,YAAY,EAAC,KAAK;AAClB9K,MAAAA,QAAQ,EAAGA,QAAU;AACrBtN,MAAAA,KAAK,EAAC,4BAA4B;AAClCqN,MAAAA,OAAO,EAAGc,WAAa;AACvB3I,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBrI,MAAAA,WAAW,EAAGA,WAAa;AAC3B9M,MAAAA,KAAK,EAAGgM,UAAAA;AAAY,KAAE,CAAC,CAAA;AAAA,GACtB,CAAC,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS+V,cAAcA,CAAC5kB,KAAK,EAAE;EAC5C,MAAM;IACJC,OAAO;IACPuC,EAAE;IACFf,WAAW;IACX8W,QAAQ;IACRrK,QAAQ;IACR3N,KAAK;IACL8X,QAAQ;IACRhJ,QAAQ;IACR6J,QAAQ;IACR9S,OAAO;IACP4R,MAAM;IACNrI,WAAW;AACXtN,IAAAA,OAAAA;AACF,GAAC,GAAGrC,KAAK,CAAA;AAET,EAAA,MAAMmZ,WAAW,GAAGnS,QAAQ,CAACxE,EAAE,CAAC,CAAA;EAChC,MAAM,CAAE4W,UAAU,EAAEC,aAAa,CAAE,GAAGhW,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEpD,EAAA,IAAIR,KAAK,GAAGwV,QAAQ,CAACpY,OAAO,CAAC,CAAA;AAE7B2E,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuE,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxB,MAAA,MAAMI,kBAAkB,GAAGJ,QAAQ,CAACrW,KAAK,CAAC,IAAI,IAAI,CAAA;MAElDwW,aAAa,CAACC,kBAAkB,CAAC,CAAA;AACnC,KAAA;AACF,GAAC,EAAE,CAAEzW,KAAK,EAAEqW,QAAQ,CAAE,CAAC,CAAA;EAEvB,MAAMjL,OAAO,GAAIrF,QAAQ,IAAK;IAC5B,IAAI0Q,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAA,IAAInQ,UAAU,CAAC+P,QAAQ,CAAC,EAAE;AACxBI,MAAAA,kBAAkB,GAAGJ,QAAQ,CAACtQ,QAAQ,CAAC,IAAI,IAAI,CAAA;AACjD,KAAA;AAEAyG,IAAAA,QAAQ,CAACzG,QAAQ,EAAE0Q,kBAAkB,CAAC,CAAA;IAEtCD,aAAa,CAACC,kBAAkB,CAAC,CAAA;GAClC,CAAA;AAGD,EAAA,MAAMC,KAAK,GAAGJ,WAAW,IAAIC,UAAU,CAAA;AAEvC,EAAA,OACEzY,IAAA,CAAA,KAAA,EAAA;IACEC,KAAK,EAAG+L,UAAU,CAChB,4BAA4B,EAC5B4M,KAAK,GAAG,WAAW,GAAG,EAAE,CACzB;AACD,IAAA,eAAA,EAAgB/W,EAAI;IAAA3B,QAAA,EAAA,CACpBC,GAAA,CAAC6jB,SAAS,EAAA;AACRpM,MAAAA,QAAQ,EAAGA,QAAU;AACrBrK,MAAAA,QAAQ,EAAGA,QAAU;AACrB1L,MAAAA,EAAE,EAAGA,EAAI;AAETjC,MAAAA,KAAK,EAAGA,KAAO;AACf0N,MAAAA,OAAO,EAAGA,OAAS;AACnB7H,MAAAA,OAAO,EAAGA,OAAS;AACnB4R,MAAAA,MAAM,EAAGA,MAAQ;AACjBrI,MAAAA,WAAW,EAAGA,WAAa;AAC3B9M,MAAAA,KAAK,EAAGA,KAAO;AACfR,MAAAA,OAAO,EAAGA,OAAS;AACnBpC,MAAAA,OAAO,EAAGA,OAAAA;AAAS,KAAA,EARbA,OAQe,CAAC,EACtBsZ,KAAK,IAAIzY,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EAAG0Y,KAAAA;AAAK,KAAO,CAAC,EAClEzY,GAAA,CAACwM,WAAW,EAAA;AAAC3K,MAAAA,KAAK,EAAGH,EAAI;AAACvC,MAAAA,OAAO,EAAGA,OAAS;AAAC4C,MAAAA,KAAK,EAAGpB,WAAAA;AAAa,KAAE,CAAC,CAAA;AAAA,GACnE,CAAC,CAAA;AAEV,CAAA;AAEO,SAAS0K,QAAQA,CAACuJ,IAAI,EAAE;AAC7B,EAAA,OAAOA,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC7S,KAAK,CAAA;AAC7B,CAAA;;AAGA;;AAEA,SAASE,QAAQA,CAACP,EAAE,EAAE;EACpB,OAAQ,CAAA,qBAAA,EAAwBA,EAAI,CAAC,CAAA,CAAA;AACvC;;ACzKA,MAAMqiB,qBAAqB,GAAG,GAAG,CAAA;AAElB,SAASC,aAAaA,CAACC,aAAa,EAAE;AACnD,EAAA,OAAO,SAASC,cAAcA,CAACzT,EAAE,EAAE;IACjC,IAAIwT,aAAa,KAAK,KAAK,EAAE;MAE3B,IAAIE,YAAY,GACdC,QAAQ,CAACH,aAAa,CAAC,GACrBA,aAAa,GACbF,qBAAqB,CAAA;AAEzB,MAAA,OAAOtM,QAAQ,CAAChH,EAAE,EAAE0T,YAAY,CAAC,CAAA;AACnC,KAAC,MAAM;AACL,MAAA,OAAO1T,EAAE,CAAA;AACX,KAAA;GACD,CAAA;AACH,CAAA;AAEAuT,aAAa,CAACK,OAAO,GAAG,CAAE,sBAAsB,CAAE;;ACrBlD,cAAe;AACbL,EAAAA,aAAa,EAAE,CAAE,SAAS,EAAEA,aAAa,CAAA;AAC3C,CAAC;;ACJc,MAAMM,eAAe,CAAC;EAEnCC,WAAWA,CAACvjB,QAAQ,EAAE;IACpB,IAAI,CAACwjB,SAAS,GAAGxjB,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACA;AACEwU,EAAAA,MAAMA,GAAG;AACP,IAAA,OAAO,IAAI,CAACgP,SAAS,CAACxP,IAAI,CAAC,mBAAmB,CAAC,CAAA;AACjD,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEpK,EAAAA,IAAIA,CAAC+K,OAAO,EAAER,WAAW,EAAEG,aAAa,EAAE;AACxC,IAAA,OAAO,IAAI,CAACkP,SAAS,CAACxP,IAAI,CAAC,iBAAiB,EAAE;MAC5CW,OAAO;MACPR,WAAW;AACXG,MAAAA,aAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACEhF,EAAAA,KAAKA,GAAG;AACN,IAAA,OAAO,IAAI,CAACkU,SAAS,CAACxP,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAChD,GAAA;AACF,CAAA;AAEAsP,eAAe,CAACD,OAAO,GAAG,CAAE,UAAU,CAAE;;ACnCxC,YAAe;AACbI,EAAAA,SAAS,EAAE,CAAE,MAAM,EAAEA,eAAS,CAAA;AAChC,CAAC;;;;"}
|
|
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/components/entries/Description.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/entries/FEEL/context/FeelPopupContext.js","../src/components/util/dragger.js","../src/components/Popup.js","../src/components/entries/FEEL/FeelPopup.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/util/translateFallback.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Checkbox.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/features/feel-popup/FeelPopupModule.js","../src/features/feel-popup/index.js"],"sourcesContent":["import { ExternalLinkIcon } from './icons';\r\n\r\n/**\r\n * @typedef { {\r\n * getElementLabel: (element: object) => string,\r\n * getTypeLabel: (element: object) => string,\r\n * getElementIcon: (element: object) => import('preact').Component,\r\n * getDocumentationRef: (element: object) => string\r\n * } } HeaderProvider\r\n */\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element,\r\n * @param {HeaderProvider} props.headerProvider\r\n */\r\nexport default function Header(props) {\r\n\r\n const {\r\n element,\r\n headerProvider\r\n } = props;\r\n\r\n const {\r\n getElementIcon,\r\n getDocumentationRef,\r\n getElementLabel,\r\n getTypeLabel,\r\n } = headerProvider;\r\n\r\n const label = getElementLabel(element);\r\n const type = getTypeLabel(element);\r\n const documentationRef = getDocumentationRef && getDocumentationRef(element);\r\n\r\n const ElementIcon = getElementIcon(element);\r\n\r\n return (<div class=\"bio-properties-panel-header\">\r\n <div class=\"bio-properties-panel-header-icon\">\r\n { ElementIcon && <ElementIcon width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" /> }\r\n </div>\r\n <div class=\"bio-properties-panel-header-labels\">\r\n <div title={ type } class=\"bio-properties-panel-header-type\">{ type }</div>\r\n { label ?\r\n <div title={ label } class=\"bio-properties-panel-header-label\">{ label }</div> :\r\n null\r\n }\r\n </div>\r\n <div class=\"bio-properties-panel-header-actions\">\r\n { documentationRef ?\r\n <a\r\n rel=\"noopener\"\r\n class=\"bio-properties-panel-header-link\"\r\n href={ documentationRef }\r\n title=\"Open documentation\"\r\n target=\"_blank\">\r\n <ExternalLinkIcon />\r\n </a> :\r\n null\r\n }\r\n </div>\r\n </div>);\r\n}","import {\r\n createContext\r\n} from 'preact';\r\n\r\nconst DescriptionContext = createContext({\r\n description: {},\r\n getDescriptionForId: () => {}\r\n});\r\n\r\nexport default DescriptionContext;\r\n","import {\r\n createContext\r\n} from 'preact';\r\n\r\nconst ErrorsContext = createContext({\r\n errors: {}\r\n});\r\n\r\nexport default ErrorsContext;","/**\r\n * @typedef {Function} <propertiesPanel.showEntry> callback\r\n *\r\n * @example\r\n *\r\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\r\n * // ...\r\n * });\r\n *\r\n * @param {Object} context\r\n * @param {boolean} [context.focus]\r\n *\r\n * @returns void\r\n */\r\n\r\n/**\r\n * @typedef {Function} <propertiesPanel.showError> callback\r\n *\r\n * @example\r\n *\r\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\r\n * // ...\r\n * });\r\n *\r\n * @param {Object} context\r\n * @param {string} context.message\r\n * @param {boolean} [context.focus]\r\n *\r\n * @returns void\r\n */\r\n\r\nimport { createContext } from 'preact';\r\n\r\nconst EventContext = createContext({ eventBus: null });\r\n\r\nexport default EventContext;\r\n","import {\r\n createContext\r\n} from 'preact';\r\n\r\nconst LayoutContext = createContext({\r\n layout: {},\r\n setLayout: () => {},\r\n getLayoutForKey: () => {},\r\n setLayoutForKey: () => {}\r\n});\r\n\r\nexport default LayoutContext;","import {\r\n createContext\r\n} from 'preact';\r\n\r\nconst TooltipContext = createContext({\r\n tooltip: {},\r\n getTooltipForId: () => {}\r\n});\r\n\r\nexport default TooltipContext;\r\n","import {\r\n useContext\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n TooltipContext\r\n} from '../context';\r\n\r\n/**\r\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\r\n *\r\n * @example\r\n * ```jsx\r\n * function TextField(props) {\r\n * const tooltip = useTooltipContext('input1', element);\r\n * }\r\n * ```\r\n *\r\n * @param {string} id\r\n * @param {object} element\r\n *\r\n * @returns {string}\r\n */\r\nexport function useTooltipContext(id, element) {\r\n const {\r\n getTooltipForId\r\n } = useContext(TooltipContext);\r\n\r\n return getTooltipForId(id, element);\r\n}\r\n","import {\r\n useRef,\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\r\n\r\nimport { createPortal } from 'preact/compat';\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {String} props.forId\r\n * @param {String} props.value\r\n */\r\nexport default function TooltipWrapper(props) {\r\n const {\r\n forId,\r\n element\r\n } = props;\r\n\r\n const contextDescription = useTooltipContext(forId, element);\r\n\r\n const value = props.value || contextDescription;\r\n\r\n if (!value) {\r\n return props.children;\r\n }\r\n\r\n return <Tooltip { ...props } value={ value } forId={ prefixId(forId) } />;\r\n}\r\n\r\nfunction Tooltip(props) {\r\n const {\r\n forId,\r\n value,\r\n parent,\r\n direction = 'right',\r\n position\r\n } = props;\r\n\r\n const [ visible, setShow ] = useState(false);\r\n const [ focusedViaKeyboard, setFocusedViaKeyboard ] = useState(false);\r\n\r\n let timeout = null;\r\n\r\n const wrapperRef = useRef(null);\r\n const tooltipRef = useRef(null);\r\n\r\n const showTooltip = async (event) => {\r\n const show = () => setShow(true);\r\n\r\n if (!visible && !timeout) {\r\n if (event instanceof MouseEvent) {\r\n timeout = setTimeout(show, 200);\r\n } else {\r\n show();\r\n setFocusedViaKeyboard(true);\r\n }\r\n }\r\n };\r\n\r\n const hideTooltip = () => {\r\n setShow(false);\r\n setFocusedViaKeyboard(false);\r\n };\r\n\r\n const hideTooltipViaEscape = (e) => {\r\n e.code === 'Escape' && hideTooltip();\r\n };\r\n\r\n const isTooltipHovered = ({ x, y }) => {\r\n const tooltip = tooltipRef.current;\r\n const wrapper = wrapperRef.current;\r\n\r\n return tooltip && (\r\n inBounds(x, y, wrapper.getBoundingClientRect()) ||\r\n inBounds(x, y, tooltip.getBoundingClientRect())\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n const { current } = wrapperRef;\r\n\r\n if (!current) {\r\n return;\r\n }\r\n\r\n const hideHoveredTooltip = (e) => {\r\n const isFocused = document.activeElement === wrapperRef.current\r\n || document.activeElement.closest('.bio-properties-panel-tooltip');\r\n\r\n if (visible && !isTooltipHovered({ x: e.x, y: e.y }) && !(isFocused && focusedViaKeyboard)) {\r\n hideTooltip();\r\n }\r\n };\r\n\r\n const hideFocusedTooltip = (e) => {\r\n const { relatedTarget } = e;\r\n const isTooltipChild = (el) => !!el.closest('.bio-properties-panel-tooltip');\r\n\r\n\r\n if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {\r\n hideTooltip();\r\n }\r\n };\r\n\r\n document.addEventListener('wheel', hideHoveredTooltip);\r\n document.addEventListener('focusout', hideFocusedTooltip);\r\n document.addEventListener('mousemove', hideHoveredTooltip);\r\n\r\n return () => {\r\n document.removeEventListener('wheel', hideHoveredTooltip);\r\n document.removeEventListener('mousemove', hideHoveredTooltip);\r\n document.removeEventListener('focusout', hideFocusedTooltip);\r\n };\r\n }, [ wrapperRef.current, visible, focusedViaKeyboard ]);\r\n\r\n const renderTooltip = () => {\r\n return (\r\n <div\r\n class={ `bio-properties-panel-tooltip ${direction}` }\r\n role=\"tooltip\"\r\n id=\"bio-properties-panel-tooltip\"\r\n aria-labelledby={ forId }\r\n style={ position || getTooltipPosition(wrapperRef.current) }\r\n ref={ tooltipRef }\r\n onClick={ (e)=> e.stopPropagation() }\r\n >\r\n <div class=\"bio-properties-panel-tooltip-content\">\r\n {value}\r\n </div>\r\n <div class=\"bio-properties-panel-tooltip-arrow\" />\r\n </div>\r\n );};\r\n\r\n return (\r\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\r\n ref={ wrapperRef }\r\n onMouseEnter={ showTooltip }\r\n onMouseLeave={ ()=> {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n } }\r\n onFocus={ showTooltip }\r\n onKeyDown={ hideTooltipViaEscape }\r\n >\r\n {props.children}\r\n {visible ?\r\n (parent ?\r\n createPortal(renderTooltip(), parent.current)\r\n : renderTooltip()\r\n ) : null\r\n }\r\n </div>\r\n );\r\n}\r\n\r\n\r\n// helper\r\nfunction inBounds(x, y, bounds) {\r\n const { top, right, bottom, left } = bounds;\r\n return x >= left && x <= right && y >= top && y <= bottom;\r\n}\r\n\r\nfunction getTooltipPosition(refElement) {\r\n const refPosition = refElement.getBoundingClientRect();\r\n\r\n const right = `calc(100% - ${refPosition.x}px)`;\r\n const top = `${refPosition.top - 10}px`;\r\n\r\n return `right: ${right}; top: ${top};`;\r\n}\r\n\r\nfunction isHovered(element) {\r\n return element.matches(':hover');\r\n}\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}\r\n","import {\r\n useContext\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n DescriptionContext\r\n} from '../context';\r\n\r\n/**\r\n * Accesses the global DescriptionContext and returns a description for a given id and element.\r\n *\r\n * @example\r\n * ```jsx\r\n * function TextField(props) {\r\n * const description = useDescriptionContext('input1', element);\r\n * }\r\n * ```\r\n *\r\n * @param {string} id\r\n * @param {object} element\r\n *\r\n * @returns {string}\r\n */\r\nexport function useDescriptionContext(id, element) {\r\n const {\r\n getDescriptionForId\r\n } = useContext(DescriptionContext);\r\n\r\n return getDescriptionForId(id, element);\r\n}\r\n","import { useContext } from 'preact/hooks';\r\n\r\nimport { ErrorsContext } from '../context';\r\n\r\nexport function useError(id) {\r\n const { errors } = useContext(ErrorsContext);\r\n\r\n return errors[ id ];\r\n}\r\n\r\nexport function useErrors() {\r\n const { errors } = useContext(ErrorsContext);\r\n\r\n return errors;\r\n}","import { useContext, useEffect, useRef } from 'preact/hooks';\r\n\r\nimport { EventContext } from '../context';\r\n\r\n\r\n/**\r\n * Subscribe to an event immediately. Update subscription after inputs changed.\r\n *\r\n * @param {string} event\r\n * @param {Function} callback\r\n */\r\nexport function useEvent(event, callback, eventBus) {\r\n const eventContext = useContext(EventContext);\r\n\r\n if (!eventBus) {\r\n ({ eventBus } = eventContext);\r\n }\r\n\r\n const didMount = useRef(false);\r\n\r\n // (1) subscribe immediately\r\n if (eventBus && !didMount.current) {\r\n eventBus.on(event, callback);\r\n }\r\n\r\n // (2) update subscription after inputs changed\r\n useEffect(() => {\r\n if (eventBus && didMount.current) {\r\n eventBus.on(event, callback);\r\n }\r\n\r\n didMount.current = true;\r\n\r\n return () => {\r\n if (eventBus) {\r\n eventBus.off(event, callback);\r\n }\r\n };\r\n }, [ callback, event, eventBus ]);\r\n}\r\n","import { useMemo } from 'preact/hooks';\r\n\r\nconst KEY_LENGTH = 6;\r\n\r\n/**\r\n * Create a persistent key factory for plain objects without id.\r\n *\r\n * @example\r\n * ```jsx\r\n * function List({ objects }) {\r\n * const getKey = useKeyFactory();\r\n * return (<ol>{\r\n * objects.map(obj => {\r\n * const key = getKey(obj);\r\n * return <li key={key}>obj.name</li>\r\n * })\r\n * }</ol>);\r\n * }\r\n * ```\r\n *\r\n * @param {any[]} dependencies\r\n * @returns {(element: object) => string}\r\n */\r\nexport function useKeyFactory(dependencies = []) {\r\n const map = useMemo(() => new Map(), dependencies);\r\n\r\n const getKey = el => {\r\n let key = map.get(el);\r\n\r\n if (!key) {\r\n key = Math.random().toString().slice(-KEY_LENGTH);\r\n map.set(el, key);\r\n }\r\n\r\n return key;\r\n };\r\n\r\n return getKey;\r\n}\r\n","import {\r\n useCallback,\r\n useContext\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n LayoutContext\r\n} from '../context';\r\n\r\n/**\r\n * Creates a state that persists in the global LayoutContext.\r\n *\r\n * @example\r\n * ```jsx\r\n * function Group(props) {\r\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\r\n * }\r\n * ```\r\n *\r\n * @param {(string|number)[]} path\r\n * @param {any} [defaultValue]\r\n *\r\n * @returns {[ any, Function ]}\r\n */\r\nexport function useLayoutState(path, defaultValue) {\r\n const {\r\n getLayoutForKey,\r\n setLayoutForKey\r\n } = useContext(LayoutContext);\r\n\r\n const layoutForKey = getLayoutForKey(path, defaultValue);\r\n\r\n const setState = useCallback((newValue) => {\r\n setLayoutForKey(path, newValue);\r\n }, [ setLayoutForKey ]);\r\n\r\n\r\n return [ layoutForKey, setState ];\r\n}\r\n","import {\r\n useEffect,\r\n useRef\r\n} from 'preact/hooks';\r\n\r\n/**\r\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\r\n * state on updates.\r\n *\r\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\r\n */\r\n\r\nexport function usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}","import {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef\r\n} from 'preact/hooks';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport { PropertiesPanelContext } from '../context';\r\n\r\nimport { useEvent } from './useEvent';\r\n\r\n/**\r\n * Subscribe to `propertiesPanel.showEntry`.\r\n *\r\n * @param {string} id\r\n *\r\n * @returns {import('preact').Ref}\r\n */\r\nexport function useShowEntryEvent(id) {\r\n const { onShow } = useContext(PropertiesPanelContext);\r\n\r\n const ref = useRef();\r\n\r\n const focus = useRef(false);\r\n\r\n const onShowEntry = useCallback((event) => {\r\n if (event.id === id) {\r\n onShow();\r\n\r\n if (!focus.current) {\r\n focus.current = true;\r\n }\r\n }\r\n }, [ id ]);\r\n\r\n useEffect(() => {\r\n if (focus.current && ref.current) {\r\n if (isFunction(ref.current.focus)) {\r\n ref.current.focus();\r\n }\r\n\r\n if (isFunction(ref.current.select)) {\r\n ref.current.select();\r\n }\r\n\r\n focus.current = false;\r\n }\r\n });\r\n\r\n useEvent('propertiesPanel.showEntry', onShowEntry);\r\n\r\n return ref;\r\n}","import {\r\n useCallback,\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n query as domQuery\r\n} from 'min-dom';\r\n\r\nimport { useEvent } from './useEvent';\r\n\r\n\r\n/**\r\n * @callback setSticky\r\n * @param {boolean} value\r\n */\r\n\r\n/**\r\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\r\n * If sticky is observered setSticky(true) will be called.\r\n * If sticky mode is left, setSticky(false) will be called.\r\n *\r\n *\r\n * @param {Object} ref\r\n * @param {string} scrollContainerSelector\r\n * @param {setSticky} setSticky\r\n */\r\nexport function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\r\n\r\n const [ scrollContainer, setScrollContainer ] = useState(domQuery(scrollContainerSelector));\r\n\r\n const updateScrollContainer = useCallback(() => {\r\n const newScrollContainer = domQuery(scrollContainerSelector);\r\n\r\n if (newScrollContainer !== scrollContainer) {\r\n setScrollContainer(newScrollContainer);\r\n }\r\n }, [ scrollContainerSelector, scrollContainer ]);\r\n\r\n useEffect(() => {\r\n updateScrollContainer();\r\n }, [ updateScrollContainer ]);\r\n\r\n useEvent('propertiesPanel.attach', updateScrollContainer);\r\n useEvent('propertiesPanel.detach', updateScrollContainer);\r\n\r\n useEffect(() => {\r\n const Observer = IntersectionObserver;\r\n\r\n // return early if IntersectionObserver is not available\r\n if (!Observer) {\r\n return;\r\n }\r\n\r\n // TODO(@barmac): test this\r\n if (!ref.current || !scrollContainer) {\r\n return;\r\n }\r\n\r\n const observer = new Observer((entries) => {\r\n\r\n // scroll container is unmounted, do not update sticky state\r\n if (scrollContainer.scrollHeight === 0) {\r\n return;\r\n }\r\n\r\n entries.forEach(entry => {\r\n if (entry.intersectionRatio < 1) {\r\n setSticky(true);\r\n }\r\n else if (entry.intersectionRatio === 1) {\r\n setSticky(false);\r\n }\r\n });\r\n },\r\n {\r\n root: scrollContainer,\r\n rootMargin: '0px 0px 999999% 0px', // Use bottom margin to avoid stickyness when scrolling out to bottom\r\n threshold: [ 1 ]\r\n });\r\n observer.observe(ref.current);\r\n\r\n // Unobserve if unmounted\r\n return () => {\r\n observer.unobserve(ref.current);\r\n };\r\n\r\n }, [ ref.current, scrollContainer, setSticky ]);\r\n}\r\n","import { useCallback, useRef } from 'preact/hooks';\r\n\r\n/**\r\n * Creates a static function reference with changing body.\r\n * This is necessary when external libraries require a callback function\r\n * that has references to state variables.\r\n *\r\n * Usage:\r\n * const callback = useStaticCallback((val) => {val === currentState});\r\n *\r\n * The `callback` reference is static and can be safely used in external\r\n * libraries or as a prop that does not cause rerendering of children.\r\n *\r\n * @param {Function} callback function with changing reference\r\n * @returns {Function} static function reference\r\n */\r\nexport function useStaticCallback(callback) {\r\n const callbackRef = useRef(callback);\r\n callbackRef.current = callback;\r\n\r\n return useCallback(\r\n (...args) => callbackRef.current(...args),\r\n []\r\n );\r\n}","import { useLayoutEffect, useState } from 'preact/hooks';\r\n\r\nexport function useElementVisible(element) {\r\n\r\n const [ visible, setVisible ] = useState(!!element && !!element.clientHeight);\r\n\r\n useLayoutEffect(() => {\r\n if (!element) return;\r\n\r\n const resizeObserver = new ResizeObserver(([ entry ]) => {\r\n requestAnimationFrame(() => {\r\n const newVisible = !!entry.contentRect.height;\r\n if (newVisible !== visible) {\r\n setVisible(newVisible);\r\n }\r\n });\r\n });\r\n\r\n resizeObserver.observe(element);\r\n\r\n return () => resizeObserver.disconnect();\r\n }, [ element, visible ]);\r\n\r\n return visible;\r\n}\r\n","import {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport Tooltip from './entries/Tooltip';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport {\r\n query as domQuery\r\n} from 'min-dom';\r\n\r\nimport {\r\n isFunction\r\n} from 'min-dash';\r\n\r\nimport {\r\n useErrors,\r\n useLayoutState\r\n} from '../hooks';\r\n\r\nimport { PropertiesPanelContext } from '../context';\r\n\r\nimport { useStickyIntersectionObserver } from '../hooks';\r\n\r\nimport { ArrowIcon } from './icons';\r\n\r\n/**\r\n * @param {import('../PropertiesPanel').GroupDefinition} props\r\n */\r\nexport default function Group(props) {\r\n const {\r\n element,\r\n entries = [],\r\n id,\r\n label,\r\n shouldOpen = false,\r\n } = props;\r\n\r\n const groupRef = useRef(null);\r\n\r\n const [ open, setOpen ] = useLayoutState(\r\n [ 'groups', id, 'open' ],\r\n shouldOpen\r\n );\r\n\r\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\r\n\r\n const toggleOpen = () => setOpen(!open);\r\n\r\n const [ edited, setEdited ] = useState(false);\r\n\r\n const [ sticky, setSticky ] = useState(false);\r\n\r\n // set edited state depending on all entries\r\n useEffect(() => {\r\n\r\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\r\n const scheduled = requestAnimationFrame(() => {\r\n const hasOneEditedEntry = entries.find(entry => {\r\n const {\r\n id,\r\n isEdited\r\n } = entry;\r\n\r\n const entryNode = domQuery(`[data-entry-id=\"${id}\"]`);\r\n\r\n if (!isFunction(isEdited) || !entryNode) {\r\n return false;\r\n }\r\n\r\n const inputNode = domQuery('.bio-properties-panel-input', entryNode);\r\n\r\n return isEdited(inputNode);\r\n });\r\n\r\n setEdited(hasOneEditedEntry);\r\n });\r\n\r\n return () => cancelAnimationFrame(scheduled);\r\n }, [ entries, setEdited ]);\r\n\r\n // set error state depending on all entries\r\n const allErrors = useErrors();\r\n const hasErrors = entries.some(entry => allErrors[entry.id]);\r\n\r\n // set css class when group is sticky to top\r\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\r\n\r\n const propertiesPanelContext = {\r\n ...useContext(PropertiesPanelContext),\r\n onShow\r\n };\r\n\r\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\r\n <div class={ classnames(\r\n 'bio-properties-panel-group-header',\r\n edited ? '' : 'empty',\r\n open ? 'open' : '',\r\n (sticky && open) ? 'sticky' : ''\r\n ) } onClick={ toggleOpen }>\r\n <div\r\n title={ props.tooltip ? null : label }\r\n data-title={ label }\r\n class=\"bio-properties-panel-group-header-title\"\r\n >\r\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element } parent={ groupRef }>\r\n { label }\r\n </Tooltip>\r\n </div>\r\n <div class=\"bio-properties-panel-group-header-buttons\">\r\n {\r\n <DataMarker\r\n edited={ edited }\r\n hasErrors={ hasErrors }\r\n />\r\n }\r\n <button\r\n type=\"button\"\r\n title=\"Toggle section\"\r\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\r\n >\r\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\r\n </button>\r\n </div>\r\n </div>\r\n <div class={ classnames(\r\n 'bio-properties-panel-group-entries',\r\n open ? 'open' : ''\r\n ) }>\r\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\r\n {\r\n entries.map(entry => {\r\n const {\r\n component: Component,\r\n id\r\n } = entry;\r\n\r\n return (\r\n <Component\r\n { ...entry }\r\n element={ element }\r\n key={ id } />\r\n );\r\n })\r\n }\r\n </PropertiesPanelContext.Provider>\r\n </div>\r\n </div>;\r\n}\r\n\r\nfunction DataMarker(props) {\r\n const {\r\n edited,\r\n hasErrors\r\n } = props;\r\n\r\n if (hasErrors) {\r\n return (\r\n <div title=\"Section contains an error\" class=\"bio-properties-panel-dot bio-properties-panel-dot--error\"></div>\r\n );\r\n }\r\n\r\n if (edited) {\r\n return (\r\n <div title=\"Section contains data\" class=\"bio-properties-panel-dot\"></div>\r\n );\r\n }\r\n return null;\r\n}","/**\r\n * @typedef { {\r\n * text: (element: object) => string,\r\n * icon?: (element: Object) => import('preact').Component\r\n * } } PlaceholderDefinition\r\n *\r\n * @param { PlaceholderDefinition } props\r\n */\r\nexport default function Placeholder(props) {\r\n const {\r\n text,\r\n icon: Icon\r\n } = props;\r\n\r\n return (\r\n <div class=\"bio-properties-panel open\">\r\n <section class=\"bio-properties-panel-placeholder\">\r\n { Icon && <Icon class=\"bio-properties-panel-placeholder-icon\" /> }\r\n <p class=\"bio-properties-panel-placeholder-text\">{ text }</p>\r\n </section>\r\n </div>\r\n );\r\n}","import {\r\n useDescriptionContext\r\n} from '../../hooks';\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.forId - id of the entry the description is used for\r\n * @param {String} props.value\r\n */\r\nexport default function Description(props) {\r\n const {\r\n element,\r\n forId,\r\n value\r\n } = props;\r\n\r\n const contextDescription = useDescriptionContext(forId, element);\r\n\r\n const description = value || contextDescription;\r\n\r\n if (description) {\r\n return (\r\n <div class=\"bio-properties-panel-description\">\r\n { description }\r\n </div>\r\n );\r\n }\r\n}\r\n","import classNames from 'classnames';\r\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport { forwardRef } from 'preact/compat';\r\n\r\nimport { FeelersEditor } from 'feelers';\r\nimport { useStaticCallback } from '../../../hooks';\r\n\r\nimport { PopupIcon } from '../../icons';\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * Buffer `.focus()` calls while the editor is not initialized.\r\n * Set Focus inside when the editor is ready.\r\n */\r\nconst useBufferedFocus = function(editor, ref) {\r\n\r\n const [ buffer, setBuffer ] = useState(undefined);\r\n\r\n ref.current = useMemo(() => ({\r\n focus: (offset) => {\r\n if (editor) {\r\n editor.focus(offset);\r\n } else {\r\n if (typeof offset === 'undefined') {\r\n offset = Infinity;\r\n }\r\n setBuffer(offset);\r\n }\r\n }\r\n }), [ editor ]);\r\n\r\n useEffect(() => {\r\n if (typeof buffer !== 'undefined' && editor) {\r\n editor.focus(buffer);\r\n setBuffer(false);\r\n }\r\n }, [ editor, buffer ]);\r\n};\r\n\r\nconst CodeEditor = forwardRef((props, ref) => {\r\n\r\n const {\r\n onInput,\r\n disabled,\r\n tooltipContainer,\r\n enableGutters,\r\n value,\r\n onLint = noop,\r\n onPopupOpen = noop,\r\n popupOpen,\r\n contentAttributes = {},\r\n hostLanguage = null,\r\n singleLine = false\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n const [ editor, setEditor ] = useState();\r\n const [ localValue, setLocalValue ] = useState(value || '');\r\n\r\n useBufferedFocus(editor, ref);\r\n\r\n const handleInput = useStaticCallback(newValue => {\r\n onInput(newValue);\r\n setLocalValue(newValue);\r\n });\r\n\r\n useEffect(() => {\r\n\r\n let editor;\r\n\r\n editor = new FeelersEditor({\r\n container: inputRef.current,\r\n onChange: handleInput,\r\n value: localValue,\r\n onLint,\r\n contentAttributes,\r\n tooltipContainer,\r\n enableGutters,\r\n hostLanguage,\r\n singleLine,\r\n lineWrap: true,\r\n });\r\n\r\n setEditor(\r\n editor\r\n );\r\n\r\n return () => {\r\n onLint([]);\r\n inputRef.current.innerHTML = '';\r\n setEditor(null);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!editor) {\r\n return;\r\n }\r\n\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n editor.setValue(value);\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n const handleClick = () => {\r\n ref.current.focus();\r\n };\r\n\r\n return <div class={ classNames(\r\n 'bio-properties-panel-feelers-editor-container',\r\n popupOpen ? 'popupOpen' : null\r\n ) }>\r\n <div class=\"bio-properties-panel-feelers-editor__open-popup-placeholder\">Opened in editor</div>\r\n <div\r\n name={ props.name }\r\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\r\n ref={ inputRef }\r\n onClick={ handleClick }\r\n ></div>\r\n\r\n <button\r\n type=\"button\"\r\n title=\"Open pop-up editor\"\r\n class=\"bio-properties-panel-open-feel-popup\"\r\n onClick={ () => onPopupOpen('feelers') }><PopupIcon /></button>\r\n </div>;\r\n});\r\n\r\nexport default CodeEditor;","import classNames from 'classnames';\r\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport { forwardRef } from 'preact/compat';\r\n\r\nimport FeelEditor from '@bpmn-io/feel-editor';\r\n\r\nimport { EditorView, lineNumbers } from '@codemirror/view';\r\n\r\nimport { useStaticCallback } from '../../../hooks';\r\n\r\nimport { PopupIcon } from '../../icons';\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * Buffer `.focus()` calls while the editor is not initialized.\r\n * Set Focus inside when the editor is ready.\r\n */\r\nconst useBufferedFocus = function(editor, ref) {\r\n\r\n const [ buffer, setBuffer ] = useState(undefined);\r\n\r\n ref.current = useMemo(() => ({\r\n focus: (offset) => {\r\n if (editor) {\r\n editor.focus(offset);\r\n } else {\r\n if (typeof offset === 'undefined') {\r\n offset = Infinity;\r\n }\r\n setBuffer(offset);\r\n }\r\n }\r\n }), [ editor ]);\r\n\r\n useEffect(() => {\r\n if (typeof buffer !== 'undefined' && editor) {\r\n editor.focus(buffer);\r\n setBuffer(false);\r\n }\r\n }, [ editor, buffer ]);\r\n};\r\n\r\nconst CodeEditor = forwardRef((props, ref) => {\r\n\r\n const {\r\n contentAttributes,\r\n enableGutters,\r\n value,\r\n onInput,\r\n onFeelToggle = noop,\r\n onLint = noop,\r\n onPopupOpen = noop,\r\n placeholder,\r\n popupOpen,\r\n disabled,\r\n tooltipContainer,\r\n variables\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n const [ editor, setEditor ] = useState();\r\n const [ localValue, setLocalValue ] = useState(value || '');\r\n\r\n useBufferedFocus(editor, ref);\r\n\r\n const handleInput = useStaticCallback(newValue => {\r\n onInput(newValue);\r\n setLocalValue(newValue);\r\n });\r\n\r\n useEffect(() => {\r\n\r\n let editor;\r\n\r\n /* Trigger FEEL toggle when\r\n *\r\n * - `backspace` is pressed\r\n * - AND the cursor is at the beginning of the input\r\n */\r\n const onKeyDown = e => {\r\n if (e.key !== 'Backspace' || !editor) {\r\n return;\r\n }\r\n\r\n const selection = editor.getSelection();\r\n const range = selection.ranges[selection.mainIndex];\r\n\r\n if (range.from === 0 && range.to === 0) {\r\n onFeelToggle();\r\n }\r\n };\r\n\r\n editor = new FeelEditor({\r\n container: inputRef.current,\r\n onChange: handleInput,\r\n onKeyDown: onKeyDown,\r\n onLint: onLint,\r\n placeholder: placeholder,\r\n tooltipContainer: tooltipContainer,\r\n value: localValue,\r\n variables: variables,\r\n extensions: [\r\n ...enableGutters ? [ lineNumbers() ] : [],\r\n EditorView.lineWrapping\r\n ],\r\n contentAttributes\r\n });\r\n\r\n setEditor(\r\n editor\r\n );\r\n\r\n return () => {\r\n onLint([]);\r\n inputRef.current.innerHTML = '';\r\n setEditor(null);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!editor) {\r\n return;\r\n }\r\n\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n editor.setValue(value);\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n useEffect(() => {\r\n if (!editor) {\r\n return;\r\n }\r\n\r\n editor.setVariables(variables);\r\n }, [ variables ]);\r\n\r\n useEffect(() => {\r\n if (!editor) {\r\n return;\r\n }\r\n\r\n editor.setPlaceholder(placeholder);\r\n }, [ placeholder ]);\r\n\r\n const handleClick = () => {\r\n ref.current.focus();\r\n };\r\n\r\n return <div class={ classNames(\r\n 'bio-properties-panel-feel-editor-container',\r\n disabled ? 'disabled' : null,\r\n popupOpen ? 'popupOpen' : null)\r\n }>\r\n <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\r\n <div\r\n name={ props.name }\r\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\r\n ref={ inputRef }\r\n onClick={ handleClick }\r\n ></div>\r\n <button\r\n type=\"button\"\r\n title=\"Open pop-up editor\"\r\n class=\"bio-properties-panel-open-feel-popup\"\r\n onClick={ () => onPopupOpen() }><PopupIcon /></button>\r\n </div>;\r\n});\r\n\r\nexport default CodeEditor;","export function FeelIndicator(props) {\r\n const {\r\n active\r\n } = props;\r\n\r\n if (!active) {\r\n return null;\r\n }\r\n\r\n return <span class=\"bio-properties-panel-feel-indicator\">\r\n =\r\n </span>;\r\n}","import classNames from 'classnames';\r\nimport { FeelIcon as FeelIconSvg } from '../../icons';\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.label\r\n * @param {String} props.feel\r\n */\r\nexport default function FeelIcon(props) {\r\n\r\n const {\r\n feel = false,\r\n active,\r\n disabled = false,\r\n onClick = noop\r\n } = props;\r\n\r\n const feelRequiredLabel = 'FEEL expression is mandatory';\r\n const feelOptionalLabel = `Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`;\r\n\r\n const handleClick = e => {\r\n onClick(e);\r\n\r\n // when pointer event was created from keyboard, keep focus on button\r\n if (!e.pointerType) {\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n class={ classNames('bio-properties-panel-feel-icon',\r\n active ? 'active' : null,\r\n feel === 'required' ? 'required' : 'optional') }\r\n onClick={ handleClick }\r\n disabled={ feel === 'required' || disabled }\r\n title={\r\n feel === 'required' ? feelRequiredLabel : feelOptionalLabel\r\n }\r\n >\r\n <FeelIconSvg />\r\n </button>\r\n );\r\n}","import {\r\n createContext\r\n} from 'preact';\r\n\r\nconst FeelPopupContext = createContext({\r\n open: () => {},\r\n close: () => {},\r\n source: null\r\n});\r\n\r\nexport default FeelPopupContext;","import { domify } from 'min-dom';\r\n\r\n/**\r\n * Add a dragger that calls back the passed function with\r\n * { event, delta } on drag.\r\n *\r\n * @example\r\n *\r\n * function dragMove(event, delta) {\r\n * // we are dragging (!!)\r\n * }\r\n *\r\n * domElement.addEventListener('dragstart', dragger(dragMove));\r\n *\r\n * @param {Function} fn\r\n * @param {Element} [dragPreview]\r\n *\r\n * @return {Function} drag start callback function\r\n */\r\nexport function createDragger(fn, dragPreview) {\r\n\r\n let self;\r\n\r\n let startX, startY;\r\n\r\n /** drag start */\r\n function onDragStart(event) {\r\n\r\n self = this;\r\n\r\n startX = event.clientX;\r\n startY = event.clientY;\r\n\r\n // (1) prevent preview image\r\n if (event.dataTransfer) {\r\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\r\n }\r\n\r\n // (2) setup drag listeners\r\n\r\n // attach drag + cleanup event\r\n // we need to do this to make sure we track cursor\r\n // movements before we reach other drag event handlers,\r\n // e.g. in child containers.\r\n document.addEventListener('dragover', onDrag, true);\r\n document.addEventListener('dragenter', preventDefault, true);\r\n\r\n document.addEventListener('dragend', onEnd);\r\n document.addEventListener('drop', preventDefault);\r\n }\r\n\r\n function onDrag(event) {\r\n const delta = {\r\n x: event.clientX - startX,\r\n y: event.clientY - startY\r\n };\r\n\r\n // call provided fn with event, delta\r\n return fn.call(self, event, delta);\r\n }\r\n\r\n function onEnd() {\r\n document.removeEventListener('dragover', onDrag, true);\r\n document.removeEventListener('dragenter', preventDefault, true);\r\n\r\n document.removeEventListener('dragend', onEnd);\r\n document.removeEventListener('drop', preventDefault);\r\n }\r\n\r\n return onDragStart;\r\n}\r\n\r\nfunction preventDefault(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n}\r\n\r\nfunction emptyCanvas() {\r\n return domify('<canvas width=\"0\" height=\"0\" />');\r\n}","import { createPortal, forwardRef } from 'preact/compat';\r\n\r\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { query as domQuery } from 'min-dom';\r\n\r\nimport * as focusTrap from 'focus-trap';\r\n\r\nimport { DragIcon, CloseIcon } from './icons';\r\n\r\nimport { createDragger } from './util/dragger';\r\nimport { useEvent } from '../hooks/useEvent';\r\n\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * A generic popup component.\r\n *\r\n * @param {Object} props\r\n * @param {HTMLElement} [props.container]\r\n * @param {string} [props.className]\r\n * @param {boolean} [props.delayInitialFocus]\r\n * @param {{x: number, y: number}} [props.position]\r\n * @param {number} [props.width]\r\n * @param {number} [props.height]\r\n * @param {Function} props.onClose\r\n * @param {Function} [props.onPostActivate]\r\n * @param {Function} [props.onPostDeactivate]\r\n * @param {boolean} [props.returnFocus]\r\n * @param {boolean} [props.closeOnEscape]\r\n * @param {string} props.title\r\n * @param {Ref} [ref]\r\n */\r\nfunction PopupComponent(props, globalRef) {\r\n\r\n const {\r\n container,\r\n className,\r\n delayInitialFocus,\r\n position,\r\n width,\r\n height,\r\n onClose,\r\n onPostActivate = noop,\r\n onPostDeactivate = noop,\r\n returnFocus = true,\r\n closeOnEscape = true,\r\n title\r\n } = props;\r\n\r\n const focusTrapRef = useRef(null);\r\n const localRef = useRef(null);\r\n const popupRef = globalRef || localRef;\r\n\r\n const containerNode = useMemo(() => getContainerNode(container), [ container ]);\r\n\r\n const handleKeydown = event => {\r\n\r\n // do not allow keyboard events to bubble\r\n event.stopPropagation();\r\n\r\n if (closeOnEscape && event.key === 'Escape') {\r\n onClose();\r\n }\r\n };\r\n\r\n // re-activate focus trap on focus\r\n const handleFocus = () => {\r\n if (focusTrapRef.current) {\r\n focusTrapRef.current.activate();\r\n }\r\n };\r\n\r\n let style = {};\r\n\r\n if (position) {\r\n style = {\r\n ...style,\r\n top: position.top + 'px',\r\n left: position.left + 'px'\r\n };\r\n }\r\n\r\n if (width) {\r\n style.width = width + 'px';\r\n }\r\n\r\n if (height) {\r\n style.height = height + 'px';\r\n }\r\n\r\n useEffect(() => {\r\n if (popupRef.current) {\r\n popupRef.current.addEventListener('focusin', handleFocus);\r\n }\r\n\r\n return () => { popupRef.current.removeEventListener('focusin', handleFocus); };\r\n }, [ popupRef ]);\r\n\r\n useEffect(() => {\r\n if (popupRef.current) {\r\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\r\n clickOutsideDeactivates: true,\r\n delayInitialFocus,\r\n fallbackFocus: popupRef.current,\r\n onPostActivate,\r\n onPostDeactivate,\r\n returnFocusOnDeactivate: returnFocus\r\n });\r\n\r\n focusTrapRef.current.activate();\r\n }\r\n\r\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\r\n }, [ popupRef ]);\r\n\r\n useEvent('propertiesPanel.detach', onClose);\r\n\r\n return createPortal(\r\n <div\r\n aria-label={ title }\r\n tabIndex={ -1 }\r\n ref={ popupRef }\r\n onKeyDown={ handleKeydown }\r\n role=\"dialog\"\r\n class={ classNames('bio-properties-panel-popup', className) }\r\n style={ style }>{ props.children }</div>\r\n , containerNode || document.body\r\n );\r\n}\r\n\r\nexport const Popup = forwardRef(PopupComponent);\r\n\r\nPopup.Title = Title;\r\nPopup.Body = Body;\r\nPopup.Footer = Footer;\r\n\r\nfunction Title(props) {\r\n const {\r\n children,\r\n className,\r\n draggable,\r\n emit = () => {},\r\n title,\r\n showCloseButton = false,\r\n closeButtonTooltip = 'Close popup',\r\n onClose,\r\n ...rest\r\n } = props;\r\n\r\n // we can't use state as we need to\r\n // manipulate this inside dragging events\r\n const context = useRef({\r\n startPosition: null,\r\n newPosition: null\r\n });\r\n\r\n const dragPreviewRef = useRef();\r\n\r\n const titleRef = useRef();\r\n\r\n const onMove = (event, delta) => {\r\n cancel(event);\r\n\r\n const { x: dx, y: dy } = delta;\r\n\r\n const newPosition = {\r\n x: context.current.startPosition.x + dx,\r\n y: context.current.startPosition.y + dy\r\n };\r\n\r\n const popupParent = getPopupParent(titleRef.current);\r\n\r\n popupParent.style.top = newPosition.y + 'px';\r\n popupParent.style.left = newPosition.x + 'px';\r\n\r\n // notify interested parties\r\n emit('dragover', { newPosition, delta });\r\n };\r\n\r\n const onMoveStart = (event) => {\r\n\r\n // initialize drag handler\r\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\r\n onDragStart(event);\r\n\r\n event.stopPropagation();\r\n\r\n const popupParent = getPopupParent(titleRef.current);\r\n\r\n const bounds = popupParent.getBoundingClientRect();\r\n context.current.startPosition = {\r\n x: bounds.left,\r\n y: bounds.top\r\n };\r\n\r\n // notify interested parties\r\n emit('dragstart');\r\n };\r\n\r\n const onMoveEnd = () => {\r\n context.current.newPosition = null;\r\n\r\n // notify interested parties\r\n emit('dragend');\r\n };\r\n\r\n return (\r\n <div\r\n class={ classNames(\r\n 'bio-properties-panel-popup__header',\r\n draggable && 'draggable',\r\n className\r\n ) }\r\n ref={ titleRef }\r\n draggable={ draggable }\r\n onDragStart={ onMoveStart }\r\n onDragEnd={ onMoveEnd }\r\n { ...rest }>\r\n { draggable && (\r\n <>\r\n <div ref={ dragPreviewRef } class=\"bio-properties-panel-popup__drag-preview\"></div>\r\n <div class=\"bio-properties-panel-popup__drag-handle\">\r\n <DragIcon />\r\n </div>\r\n </>\r\n )}\r\n <div class=\"bio-properties-panel-popup__title\">{ title }</div>\r\n { children }\r\n { showCloseButton && (\r\n <button\r\n title={ closeButtonTooltip }\r\n class=\"bio-properties-panel-popup__close\"\r\n onClick={ onClose }>\r\n <CloseIcon />\r\n </button>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nfunction Body(props) {\r\n const {\r\n children,\r\n className,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n <div class={ classNames('bio-properties-panel-popup__body', className) } { ...rest }>\r\n { children }\r\n </div>\r\n );\r\n}\r\n\r\nfunction Footer(props) {\r\n const {\r\n children,\r\n className,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n <div class={ classNames('bio-properties-panel-popup__footer', className) } { ...rest }>\r\n { props.children }\r\n </div>\r\n );\r\n}\r\n\r\n\r\n// helpers //////////////////////\r\n\r\nfunction getPopupParent(node) {\r\n return node.closest('.bio-properties-panel-popup');\r\n}\r\n\r\nfunction cancel(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n}\r\n\r\nfunction getContainerNode(node) {\r\n if (typeof node === 'string') {\r\n return domQuery(node);\r\n }\r\n\r\n return node;\r\n}","import {\r\n useCallback,\r\n useEffect,\r\n useRef,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport { FeelPopupContext } from './context';\r\n\r\nimport { usePrevious } from '../../../hooks';\r\n\r\nimport { Popup } from '../../Popup';\r\n\r\nimport CodeEditor from './FeelEditor';\r\n\r\nimport TemplatingEditor from '../templating/TemplatingEditor';\r\nimport { HelpIcon } from '../../icons';\r\n\r\nexport const FEEL_POPUP_WIDTH = 700;\r\nexport const FEEL_POPUP_HEIGHT = 250;\r\n\r\n\r\n/**\r\n * FEEL popup component, built as a singleton. Emits lifecycle events as follows:\r\n * - `feelPopup.open` - fired before the popup is mounted\r\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup\r\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup\r\n * - `feelPopup.closed` - fired after the popup is unmounted\r\n */\r\nexport default function FEELPopupRoot(props) {\r\n const {\r\n element,\r\n eventBus = { fire() {}, on() {}, off() {} },\r\n popupContainer\r\n } = props;\r\n\r\n const prevElement = usePrevious(element);\r\n\r\n const [ popupConfig, setPopupConfig ] = useState({});\r\n const [ open, setOpen ] = useState(false);\r\n const [ source, setSource ] = useState(null);\r\n const [ sourceElement, setSourceElement ] = useState(null);\r\n\r\n const emit = (type, context) => {\r\n eventBus.fire('feelPopup.' + type, context);\r\n };\r\n\r\n const isOpen = useCallback(() => {\r\n return !!open;\r\n }, [ open ]);\r\n\r\n useUpdateEffect(() => {\r\n if (!open) {\r\n emit('closed');\r\n }\r\n }, [ open ]);\r\n\r\n const handleOpen = (entryId, config, _sourceElement) => {\r\n setSource(entryId);\r\n setPopupConfig(config);\r\n setOpen(true);\r\n setSourceElement(_sourceElement);\r\n emit('open');\r\n };\r\n\r\n const handleClose = (event = { }) => {\r\n const { id } = event;\r\n if (id && id !== source) {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n setSource(null);\r\n };\r\n\r\n const feelPopupContext = {\r\n open: handleOpen,\r\n close: handleClose,\r\n source\r\n };\r\n\r\n // close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270\r\n useEffect(() => {\r\n if (element && prevElement && element !== prevElement) {\r\n handleClose();\r\n }\r\n }, [ element ]);\r\n\r\n // allow close and open via events\r\n useEffect(() => {\r\n\r\n const handlePopupOpen = (context) => {\r\n const {\r\n entryId,\r\n popupConfig,\r\n sourceElement\r\n } = context;\r\n\r\n handleOpen(entryId, popupConfig, sourceElement);\r\n };\r\n\r\n const handleIsOpen = () => {\r\n return isOpen();\r\n };\r\n\r\n eventBus.on('feelPopup._close', handleClose);\r\n eventBus.on('feelPopup._open', handlePopupOpen);\r\n eventBus.on('feelPopup._isOpen', handleIsOpen);\r\n\r\n return () => {\r\n eventBus.off('feelPopup._close', handleClose);\r\n eventBus.off('feelPopup._open', handleOpen);\r\n eventBus.off('feelPopup._isOpen', handleIsOpen);\r\n };\r\n\r\n }, [ eventBus, isOpen ]);\r\n\r\n return (\r\n <FeelPopupContext.Provider value={ feelPopupContext }>\r\n { open && (\r\n <FeelPopupComponent\r\n onClose={ handleClose }\r\n container={ popupContainer }\r\n sourceElement={ sourceElement }\r\n emit={ emit }\r\n { ...popupConfig } />\r\n )}\r\n { props.children }\r\n </FeelPopupContext.Provider>\r\n );\r\n}\r\n\r\nfunction FeelPopupComponent(props) {\r\n const {\r\n container,\r\n id,\r\n hostLanguage,\r\n onInput,\r\n onClose,\r\n position,\r\n singleLine,\r\n sourceElement,\r\n title,\r\n tooltipContainer,\r\n type,\r\n value,\r\n variables,\r\n emit\r\n } = props;\r\n\r\n const editorRef = useRef();\r\n const popupRef = useRef();\r\n\r\n const isAutoCompletionOpen = useRef(false);\r\n\r\n const handleSetReturnFocus = () => {\r\n sourceElement && sourceElement.focus();\r\n };\r\n\r\n const onKeyDownCapture = (event) => {\r\n\r\n // we use capture here to make sure we handle the event before the editor does\r\n if (event.key === 'Escape') {\r\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\r\n }\r\n };\r\n\r\n const onKeyDown = (event) => {\r\n\r\n if (event.key === 'Escape') {\r\n\r\n // close popup only if auto completion is not open\r\n // we need to do check this because the editor is not\r\n // stop propagating the keydown event\r\n // cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5\r\n if (!isAutoCompletionOpen.current) {\r\n onClose();\r\n isAutoCompletionOpen.current = false;\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n emit('opened', { domNode: popupRef.current });\r\n return () => emit('close', { domNode: popupRef.current });\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n // Set focus on editor when popup is opened\r\n if (editorRef.current) {\r\n editorRef.current.focus();\r\n }\r\n }, [ editorRef ]);\r\n\r\n return (\r\n <Popup\r\n container={ container }\r\n className=\"bio-properties-panel-feel-popup\"\r\n emit={ emit }\r\n position={ position }\r\n title={ title }\r\n onClose={ onClose }\r\n\r\n // handle focus manually on deactivate\r\n returnFocus={ false }\r\n closeOnEscape={ false }\r\n delayInitialFocus={ false }\r\n onPostDeactivate={ handleSetReturnFocus }\r\n height={ FEEL_POPUP_HEIGHT }\r\n width={ FEEL_POPUP_WIDTH }\r\n ref={ popupRef }\r\n >\r\n <Popup.Title\r\n title={ title }\r\n emit={ emit }\r\n showCloseButton={ true }\r\n closeButtonTooltip=\"Save and close\"\r\n onClose={ onClose }\r\n draggable>\r\n {type === 'feel' && (\r\n <a href=\"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\r\n Learn FEEL expressions\r\n <HelpIcon />\r\n </a>\r\n )\r\n }\r\n {type === 'feelers' && (\r\n <a href=\"https://docs.camunda.io/docs/components/modeler/forms/configuration/forms-config-templating-syntax/\" target=\"_blank\" class=\"bio-properties-panel-feel-popup__title-link\">\r\n Learn templating\r\n <HelpIcon />\r\n </a>\r\n )\r\n }\r\n </Popup.Title>\r\n <Popup.Body>\r\n <div\r\n onKeyDownCapture={ onKeyDownCapture }\r\n onKeyDown={ onKeyDown }\r\n class=\"bio-properties-panel-feel-popup__body\">\r\n\r\n {\r\n type === 'feel' && (\r\n <CodeEditor\r\n enableGutters={ true }\r\n id={ prefixId(id) }\r\n name={ id }\r\n onInput={ onInput }\r\n value={ value }\r\n variables={ variables }\r\n ref={ editorRef }\r\n tooltipContainer={ tooltipContainer }\r\n />\r\n )\r\n }\r\n\r\n {\r\n type === 'feelers' && (\r\n <TemplatingEditor\r\n id={ prefixId(id) }\r\n contentAttributes={ { 'aria-label': title } }\r\n enableGutters={ true }\r\n hostLanguage={ hostLanguage }\r\n name={ id }\r\n onInput={ onInput }\r\n value={ value }\r\n ref={ editorRef }\r\n singleLine={ singleLine }\r\n tooltipContainer={ tooltipContainer }\r\n />\r\n )\r\n }\r\n </div>\r\n </Popup.Body>\r\n </Popup>\r\n );\r\n}\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${id}`;\r\n}\r\n\r\nfunction autoCompletionOpen(element) {\r\n return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');\r\n}\r\n\r\n/**\r\n * This hook behaves like useEffect, but does not trigger on the first render.\r\n *\r\n * @param {Function} effect\r\n * @param {Array} deps\r\n */\r\nfunction useUpdateEffect(effect, deps) {\r\n const isMounted = useRef(false);\r\n\r\n useEffect(() => {\r\n if (isMounted.current) {\r\n return effect();\r\n } else {\r\n isMounted.current = true;\r\n }\r\n }, deps);\r\n}","import Description from './Description';\r\n\r\nimport {\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport classNames from 'classnames';\r\nimport Tooltip from './Tooltip';\r\n\r\nexport function ToggleSwitch(props) {\r\n const {\r\n id,\r\n label,\r\n onInput,\r\n value,\r\n switcherLabel,\r\n inline,\r\n onFocus,\r\n onBlur,\r\n inputRef,\r\n tooltip\r\n } = props;\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const handleInputCallback = async () => {\r\n onInput(!value);\r\n };\r\n\r\n const handleInput = e => {\r\n handleInputCallback(e);\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n return (\r\n <div class={ classNames(\r\n 'bio-properties-panel-toggle-switch',\r\n { inline }\r\n ) }>\r\n <label class=\"bio-properties-panel-label\"\r\n for={ prefixId(id) }>\r\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\r\n { label }\r\n </Tooltip>\r\n </label>\r\n <div class=\"bio-properties-panel-field-wrapper\">\r\n <label class=\"bio-properties-panel-toggle-switch__switcher\">\r\n <input\r\n ref={ inputRef }\r\n id={ prefixId(id) }\r\n class=\"bio-properties-panel-input\"\r\n type=\"checkbox\"\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n name={ id }\r\n onInput={ handleInput }\r\n checked={ !!localValue } />\r\n <span class=\"bio-properties-panel-toggle-switch__slider\" />\r\n </label>\r\n { switcherLabel && <p class=\"bio-properties-panel-toggle-switch__label\">{ switcherLabel }</p> }\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {String} props.label\r\n * @param {String} props.switcherLabel\r\n * @param {Boolean} props.inline\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string|import('preact').Component} props.tooltip\r\n */\r\nexport default function ToggleSwitchEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n label,\r\n switcherLabel,\r\n inline,\r\n getValue,\r\n setValue,\r\n onFocus,\r\n onBlur,\r\n tooltip\r\n } = props;\r\n\r\n const value = getValue(element);\r\n return (\r\n <div class=\"bio-properties-panel-entry bio-properties-panel-toggle-switch-entry\" data-entry-id={ id }>\r\n <ToggleSwitch\r\n id={ id }\r\n label={ label }\r\n value={ value }\r\n onInput={ setValue }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n switcherLabel={ switcherLabel }\r\n inline={ inline }\r\n tooltip={ tooltip }\r\n element={ element } />\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.checked;\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}\r\n","import Description from './Description';\r\n\r\nimport {\r\n useEffect,\r\n useMemo,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport {\r\n useError\r\n} from '../../hooks';\r\n\r\nexport function NumberField(props) {\r\n\r\n const {\r\n debounce,\r\n disabled,\r\n displayLabel = true,\r\n id,\r\n inputRef,\r\n label,\r\n max,\r\n min,\r\n onInput,\r\n step,\r\n value = '',\r\n onFocus,\r\n onBlur\r\n } = props;\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const handleInputCallback = useMemo(() => {\r\n return debounce((target) => {\r\n\r\n if (target.validity.valid) {\r\n onInput(target.value ? parseFloat(target.value) : undefined);\r\n }\r\n });\r\n }, [ onInput, debounce ]);\r\n\r\n const handleInput = e => {\r\n handleInputCallback(e.target);\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-numberfield\">\r\n {displayLabel && <label for={ prefixId(id) } class=\"bio-properties-panel-label\">{ label }</label> }\r\n <input\r\n id={ prefixId(id) }\r\n ref={ inputRef }\r\n type=\"number\"\r\n name={ id }\r\n spellCheck=\"false\"\r\n autoComplete=\"off\"\r\n disabled={ disabled }\r\n class=\"bio-properties-panel-input\"\r\n max={ max }\r\n min={ min }\r\n onInput={ handleInput }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n step={ step }\r\n value={ localValue } />\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Boolean} props.debounce\r\n * @param {String} props.description\r\n * @param {Boolean} props.disabled\r\n * @param {Object} props.element\r\n * @param {Function} props.getValue\r\n * @param {String} props.id\r\n * @param {String} props.label\r\n * @param {String} props.max\r\n * @param {String} props.min\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {String} props.step\r\n * @param {Function} props.validate\r\n */\r\nexport default function NumberFieldEntry(props) {\r\n const {\r\n debounce,\r\n description,\r\n disabled,\r\n element,\r\n getValue,\r\n id,\r\n label,\r\n max,\r\n min,\r\n setValue,\r\n step,\r\n onFocus,\r\n onBlur,\r\n validate\r\n } = props;\r\n\r\n const globalError = useError(id);\r\n const [ localError, setLocalError ] = useState(null);\r\n\r\n let value = getValue(element);\r\n\r\n useEffect(() => {\r\n if (isFunction(validate)) {\r\n const newValidationError = validate(value) || null;\r\n\r\n setLocalError(newValidationError);\r\n }\r\n }, [ value, validate ]);\r\n\r\n const onInput = (newValue) => {\r\n let newValidationError = null;\r\n\r\n if (isFunction(validate)) {\r\n newValidationError = validate(newValue) || null;\r\n }\r\n\r\n setValue(newValue, newValidationError);\r\n setLocalError(newValidationError);\r\n };\r\n\r\n const error = globalError || localError;\r\n\r\n return (\r\n <div class={ classnames(\r\n 'bio-properties-panel-entry',\r\n error ? 'has-error' : '') } data-entry-id={ id }>\r\n <NumberField\r\n debounce={ debounce }\r\n disabled={ disabled }\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n onInput={ onInput }\r\n max={ max }\r\n min={ min }\r\n step={ step }\r\n value={ value } />\r\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.value;\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}\r\n","import Description from '../Description';\r\nimport TemplatingEditor from '../templating/TemplatingEditor';\r\n\r\nimport {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport { forwardRef } from 'preact/compat';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport { isFunction, isString } from 'min-dash';\r\n\r\nimport {\r\n useShowEntryEvent,\r\n useError,\r\n useStaticCallback\r\n} from '../../../hooks';\r\n\r\nimport CodeEditor from './FeelEditor';\r\nimport { FeelIndicator } from './FeelIndicator';\r\nimport FeelIcon from './FeelIcon';\r\n\r\nimport { FEEL_POPUP_WIDTH } from './FeelPopup';\r\n\r\nimport { FeelPopupContext } from './context';\r\n\r\nimport { ToggleSwitch } from '../ToggleSwitch';\r\n\r\nimport { NumberField } from '../NumberField';\r\nimport Tooltip from '../Tooltip';\r\n\r\nconst noop = () => { };\r\n\r\nfunction FeelTextfieldComponent(props) {\r\n const {\r\n debounce,\r\n id,\r\n element,\r\n label,\r\n hostLanguage,\r\n onInput,\r\n onError,\r\n placeholder,\r\n feel,\r\n value = '',\r\n disabled = false,\r\n variables,\r\n singleLine,\r\n tooltipContainer,\r\n OptionalComponent = OptionalFeelInput,\r\n tooltip\r\n } = props;\r\n\r\n const [ localValue, _setLocalValue ] = useState(value);\r\n\r\n const editorRef = useShowEntryEvent(id);\r\n const containerRef = useRef();\r\n\r\n const feelActive = (isString(localValue) && localValue.startsWith('=')) || feel === 'required';\r\n const feelOnlyValue = (isString(localValue) && localValue.startsWith('=')) ? localValue.substring(1) : localValue;\r\n\r\n const [ focus, _setFocus ] = useState(undefined);\r\n\r\n const {\r\n open: openPopup,\r\n source: popupSource\r\n } = useContext(FeelPopupContext);\r\n\r\n const popuOpen = popupSource === id;\r\n\r\n const setFocus = (offset = 0) => {\r\n const hasFocus = containerRef.current.contains(document.activeElement);\r\n\r\n // Keep caret position if it is already focused, otherwise focus at the end\r\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\r\n\r\n _setFocus(position + offset);\r\n };\r\n\r\n const handleInputCallback = useMemo(() => {\r\n return debounce((newValue) => {\r\n onInput(newValue);\r\n });\r\n }, [ onInput, debounce ]);\r\n\r\n const setLocalValue = newValue => {\r\n _setLocalValue(newValue);\r\n\r\n if (typeof newValue === 'undefined' || newValue === '' || newValue === '=') {\r\n handleInputCallback(undefined);\r\n } else {\r\n handleInputCallback(newValue);\r\n }\r\n\r\n };\r\n\r\n const handleFeelToggle = useStaticCallback(() => {\r\n if (feel === 'required') {\r\n return;\r\n }\r\n\r\n if (!feelActive) {\r\n setLocalValue('=' + localValue);\r\n } else {\r\n setLocalValue(feelOnlyValue);\r\n }\r\n });\r\n\r\n const handleLocalInput = (newValue) => {\r\n if (feelActive) {\r\n newValue = '=' + newValue;\r\n }\r\n\r\n if (newValue === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(newValue);\r\n\r\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\r\n\r\n // focus is behind `=` sign that will be removed\r\n setFocus(-1);\r\n }\r\n };\r\n\r\n const handleLint = useStaticCallback(lint => {\r\n\r\n if (!(lint && lint.length)) {\r\n onError(undefined);\r\n return;\r\n }\r\n\r\n onError('Unparsable FEEL expression.');\r\n });\r\n\r\n const handlePopupOpen = (type = 'feel') => {\r\n const popupOptions = {\r\n id,\r\n hostLanguage,\r\n onInput: handleLocalInput,\r\n position: calculatePopupPosition(containerRef.current),\r\n singleLine,\r\n title: getPopupTitle(element, label),\r\n tooltipContainer,\r\n type,\r\n value: feelOnlyValue,\r\n variables\r\n };\r\n\r\n openPopup(id, popupOptions, editorRef.current);\r\n };\r\n\r\n useEffect(() => {\r\n if (typeof focus !== 'undefined') {\r\n editorRef.current.focus(focus);\r\n _setFocus(undefined);\r\n }\r\n }, [ focus ]);\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n // External value change removed content => keep FEEL configuration\r\n if (!value) {\r\n setLocalValue(feelActive ? '=' : '');\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n\r\n // copy-paste integration\r\n useEffect(() => {\r\n const copyHandler = event => {\r\n if (!feelActive) {\r\n return;\r\n }\r\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\r\n };\r\n\r\n const pasteHandler = event => {\r\n if (feelActive || popuOpen) {\r\n return;\r\n }\r\n\r\n const data = event.clipboardData.getData('application/FEEL');\r\n\r\n if (data) {\r\n setTimeout(() => {\r\n handleFeelToggle();\r\n setFocus();\r\n });\r\n }\r\n };\r\n containerRef.current.addEventListener('copy', copyHandler);\r\n containerRef.current.addEventListener('cut', copyHandler);\r\n containerRef.current.addEventListener('paste', pasteHandler);\r\n\r\n return () => {\r\n containerRef.current.removeEventListener('copy', copyHandler);\r\n containerRef.current.removeEventListener('cut', copyHandler);\r\n containerRef.current.removeEventListener('paste', pasteHandler);\r\n };\r\n }, [ containerRef, feelActive, handleFeelToggle, setFocus ]);\r\n\r\n return (\r\n <div class={ classnames(\r\n 'bio-properties-panel-feel-entry',\r\n { 'feel-active': feelActive }\r\n ) }>\r\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\r\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\r\n {label}\r\n </Tooltip>\r\n <FeelIcon\r\n label={ label }\r\n feel={ feel }\r\n onClick={ handleFeelToggle }\r\n active={ feelActive }></FeelIcon>\r\n </label>\r\n\r\n <div class=\"bio-properties-panel-feel-container\" ref={ containerRef }>\r\n <FeelIndicator\r\n active={ feelActive }\r\n disabled={ feel !== 'optional' || disabled }\r\n onClick={ handleFeelToggle }\r\n />\r\n {feelActive ?\r\n <CodeEditor\r\n name={ id }\r\n onInput={ handleLocalInput }\r\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\r\n disabled={ disabled }\r\n popupOpen={ popuOpen }\r\n onFeelToggle={ () => { handleFeelToggle(); setFocus(true); } }\r\n onLint={ handleLint }\r\n onPopupOpen={ handlePopupOpen }\r\n placeholder={ placeholder }\r\n value={ feelOnlyValue }\r\n variables={ variables }\r\n ref={ editorRef }\r\n tooltipContainer={ tooltipContainer }\r\n /> :\r\n <OptionalComponent\r\n { ...props }\r\n popupOpen={ popuOpen }\r\n onInput={ handleLocalInput }\r\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\r\n value={ localValue }\r\n ref={ editorRef }\r\n onPopupOpen={ handlePopupOpen }\r\n containerRef={ containerRef }\r\n />\r\n }\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst FeelTextfield = withAutoClosePopup(FeelTextfieldComponent);\r\n\r\nconst OptionalFeelInput = forwardRef((props, ref) => {\r\n const {\r\n id,\r\n disabled,\r\n onInput,\r\n value,\r\n onFocus,\r\n onBlur,\r\n placeholder\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n\r\n // To be consistent with the FEEL editor, set focus at start of input\r\n // this ensures clean editing experience when switching with the keyboard\r\n ref.current = {\r\n focus: (position) => {\r\n const input = inputRef.current;\r\n if (!input) {\r\n return;\r\n }\r\n\r\n input.focus();\r\n if (typeof position === 'number') {\r\n if (position > value.length) {\r\n position = value.length;\r\n }\r\n input.setSelectionRange(position, position);\r\n }\r\n\r\n }\r\n };\r\n\r\n return <input\r\n id={ prefixId(id) }\r\n type=\"text\"\r\n ref={ inputRef }\r\n name={ id }\r\n spellCheck=\"false\"\r\n autoComplete=\"off\"\r\n disabled={ disabled }\r\n class=\"bio-properties-panel-input\"\r\n onInput={ e => onInput(e.target.value) }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n placeholder={ placeholder }\r\n value={ value || '' } />;\r\n});\r\n\r\n\r\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\r\n const {\r\n id,\r\n debounce,\r\n disabled,\r\n onInput,\r\n value,\r\n min,\r\n max,\r\n step,\r\n onFocus,\r\n onBlur\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n\r\n // To be consistent with the FEEL editor, set focus at start of input\r\n // this ensures clean editing experience when switching with the keyboard\r\n ref.current = {\r\n focus: (position) => {\r\n const input = inputRef.current;\r\n if (!input) {\r\n return;\r\n }\r\n\r\n input.focus();\r\n if (typeof position === 'number' && position !== Infinity) {\r\n if (position > value.length) {\r\n position = value.length;\r\n }\r\n input.setSelectionRange(position, position);\r\n }\r\n\r\n }\r\n };\r\n\r\n return <NumberField\r\n id={ id }\r\n debounce={ debounce }\r\n disabled={ disabled }\r\n displayLabel={ false }\r\n inputRef={ inputRef }\r\n max={ max }\r\n min={ min }\r\n onInput={ onInput }\r\n step={ step }\r\n value={ value }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n />;\r\n});\r\n\r\n\r\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\r\n const {\r\n id,\r\n disabled,\r\n onInput,\r\n value,\r\n onFocus,\r\n onBlur,\r\n placeholder\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n\r\n // To be consistent with the FEEL editor, set focus at start of input\r\n // this ensures clean editing experience when switching with the keyboard\r\n ref.current = {\r\n focus: () => {\r\n const input = inputRef.current;\r\n if (!input) {\r\n return;\r\n }\r\n\r\n input.focus();\r\n input.setSelectionRange(0, 0);\r\n }\r\n };\r\n\r\n return <textarea\r\n id={ prefixId(id) }\r\n type=\"text\"\r\n ref={ inputRef }\r\n name={ id }\r\n spellCheck=\"false\"\r\n autoComplete=\"off\"\r\n disabled={ disabled }\r\n class=\"bio-properties-panel-input\"\r\n onInput={ e => onInput(e.target.value) }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n placeholder={ placeholder }\r\n value={ value || '' }\r\n data-gramm=\"false\"\r\n />;\r\n});\r\n\r\nconst OptionalFeelToggleSwitch = forwardRef((props, ref) => {\r\n const {\r\n id,\r\n onInput,\r\n value,\r\n onFocus,\r\n onBlur,\r\n switcherLabel\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n\r\n // To be consistent with the FEEL editor, set focus at start of input\r\n // this ensures clean editing experience when switching with the keyboard\r\n ref.current = {\r\n focus: () => {\r\n const input = inputRef.current;\r\n if (!input) {\r\n return;\r\n }\r\n\r\n input.focus();\r\n }\r\n };\r\n\r\n return <ToggleSwitch\r\n id={ id }\r\n value={ value }\r\n inputRef={ inputRef }\r\n onInput={ onInput }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n switcherLabel={ switcherLabel } />;\r\n});\r\n\r\n\r\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\r\n const {\r\n id,\r\n disabled,\r\n onInput,\r\n value,\r\n onFocus,\r\n onBlur\r\n } = props;\r\n\r\n const inputRef = useRef();\r\n\r\n const handleChange = ({ target }) => {\r\n onInput(target.checked);\r\n };\r\n\r\n // To be consistent with the FEEL editor, set focus at start of input\r\n // this ensures clean editing experience when switching with the keyboard\r\n ref.current = {\r\n focus: () => {\r\n const input = inputRef.current;\r\n if (!input) {\r\n return;\r\n }\r\n\r\n input.focus();\r\n }\r\n };\r\n\r\n return <input\r\n ref={ inputRef }\r\n id={ prefixId(id) }\r\n name={ id }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n type=\"checkbox\"\r\n class=\"bio-properties-panel-input\"\r\n onChange={ handleChange }\r\n checked={ value }\r\n disabled={ disabled } />;\r\n});\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string} [props.placeholder]\r\n * @param {string|import('preact').Component} props.tooltip\r\n */\r\nexport default function FeelEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n debounce,\r\n disabled,\r\n feel,\r\n label,\r\n getValue,\r\n setValue,\r\n tooltipContainer,\r\n hostLanguage,\r\n singleLine,\r\n validate,\r\n show = noop,\r\n example,\r\n variables,\r\n onFocus,\r\n onBlur,\r\n placeholder,\r\n tooltip\r\n } = props;\r\n\r\n const [ validationError, setValidationError ] = useState(null);\r\n const [ localError, setLocalError ] = useState(null);\r\n\r\n let value = getValue(element);\r\n\r\n useEffect(() => {\r\n if (isFunction(validate)) {\r\n const newValidationError = validate(value) || null;\r\n\r\n setValidationError(newValidationError);\r\n }\r\n }, [ value, validate ]);\r\n\r\n const onInput = useStaticCallback((newValue) => {\r\n let newValidationError = null;\r\n\r\n if (isFunction(validate)) {\r\n newValidationError = validate(newValue) || null;\r\n }\r\n\r\n // don't create multiple commandStack entries for the same value\r\n if (newValue !== value) {\r\n setValue(newValue, newValidationError);\r\n }\r\n\r\n setValidationError(newValidationError);\r\n });\r\n\r\n const onError = useCallback(err => {\r\n setLocalError(err);\r\n }, []);\r\n\r\n const temporaryError = useError(id);\r\n\r\n const error = temporaryError || localError || validationError;\r\n\r\n return (\r\n <div\r\n class={ classnames(\r\n props.class,\r\n 'bio-properties-panel-entry',\r\n error ? 'has-error' : '')\r\n }\r\n data-entry-id={ id }>\r\n <FeelTextfield\r\n { ...props }\r\n debounce={ debounce }\r\n disabled={ disabled }\r\n feel={ feel }\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n onInput={ onInput }\r\n onError={ onError }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n placeholder={ placeholder }\r\n example={ example }\r\n hostLanguage={ hostLanguage }\r\n singleLine={ singleLine }\r\n show={ show }\r\n value={ value }\r\n variables={ variables }\r\n tooltipContainer={ tooltipContainer }\r\n OptionalComponent={ props.OptionalComponent }\r\n tooltip={ tooltip } />\r\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {String} props.max\r\n * @param {String} props.min\r\n * @param {String} props.step\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\r\nexport function FeelNumberEntry(props) {\r\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string} [props.placeholder]\r\n */\r\nexport function FeelTextAreaEntry(props) {\r\n return <FeelEntry class=\"bio-properties-panel-feel-textarea\" OptionalComponent={ OptionalFeelTextArea } { ...props } />;\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\r\nexport function FeelToggleSwitchEntry(props) {\r\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\r\nexport function FeelCheckboxEntry(props) {\r\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {String} props.hostLanguage\r\n * @param {Boolean} props.singleLine\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\r\nexport function FeelTemplatingEntry(props) {\r\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\r\n}\r\n\r\nexport function isEdited(node) {\r\n if (!node) {\r\n return false;\r\n }\r\n\r\n if (node.type === 'checkbox') {\r\n return !!node.checked || node.classList.contains('edited');\r\n }\r\n\r\n return !!node.value || node.classList.contains('edited');\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${id}`;\r\n}\r\n\r\nfunction calculatePopupPosition(element) {\r\n const { top, left } = element.getBoundingClientRect();\r\n\r\n return {\r\n left: left - FEEL_POPUP_WIDTH - 20,\r\n top: top\r\n };\r\n}\r\n\r\n// todo(pinussilvestrus): make this configurable in the future\r\nfunction getPopupTitle(element, label) {\r\n let popupTitle = '';\r\n\r\n if (element && element.type) {\r\n popupTitle = `${element.type} / `;\r\n }\r\n\r\n return `${popupTitle}${label}`;\r\n}\r\n\r\n\r\nfunction withAutoClosePopup(Component) {\r\n return function(props) {\r\n const { id } = props;\r\n const {\r\n close\r\n } = useContext(FeelPopupContext);\r\n\r\n const closePopup = useStaticCallback(close);\r\n\r\n useEffect(() => {\r\n return () => {\r\n closePopup({ id });\r\n };\r\n }, [ ]);\r\n\r\n return <Component { ...props } />;\r\n };\r\n}\r\n\r\n","import {\r\n useState,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useLayoutEffect\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n assign,\r\n get,\r\n isArray,\r\n set\r\n} from 'min-dash';\r\n\r\nimport Header from './components/Header';\r\n\r\nimport Group from './components/Group';\r\n\r\nimport Placeholder from './components/Placeholder';\r\n\r\nimport {\r\n DescriptionContext,\r\n ErrorsContext,\r\n EventContext,\r\n LayoutContext,\r\n PropertiesPanelContext,\r\n TooltipContext\r\n} from './context';\r\n\r\nimport { FeelPopupRoot } from './components/entries/FEEL';\r\n\r\nimport { useEvent } from './hooks';\r\n\r\nconst DEFAULT_LAYOUT = {};\r\n\r\nconst DEFAULT_DESCRIPTION = {};\r\n\r\nconst DEFAULT_TOOLTIP = {};\r\n\r\n\r\n/**\r\n * @typedef { {\r\n * component: import('preact').Component,\r\n * id: String,\r\n * isEdited?: Function\r\n * } } EntryDefinition\r\n *\r\n * @typedef { {\r\n * autoFocusEntry: String,\r\n * autoOpen?: Boolean,\r\n * entries: Array<EntryDefinition>,\r\n * id: String,\r\n * label: String,\r\n * remove: (event: MouseEvent) => void\r\n * } } ListItemDefinition\r\n *\r\n * @typedef { {\r\n * add: (event: MouseEvent) => void,\r\n * component: import('preact').Component,\r\n * element: Object,\r\n * id: String,\r\n * items: Array<ListItemDefinition>,\r\n * label: String,\r\n * shouldOpen?: Boolean\r\n * } } ListGroupDefinition\r\n *\r\n * @typedef { {\r\n * component?: import('preact').Component,\r\n * entries: Array<EntryDefinition>,\r\n * id: String,\r\n * label: String,\r\n * shouldOpen?: Boolean\r\n * } } GroupDefinition\r\n *\r\n * @typedef { {\r\n * [id: String]: GetDescriptionFunction\r\n * } } DescriptionConfig\r\n *\r\n * @typedef { {\r\n * [id: String]: GetTooltipFunction\r\n * } } TooltipConfig\r\n *\r\n * @callback { {\r\n * @param {string} id\r\n * @param {Object} element\r\n * @returns {string}\r\n * } } GetDescriptionFunction\r\n *\r\n * @callback { {\r\n * @param {string} id\r\n * @param {Object} element\r\n * @returns {string}\r\n * } } GetTooltipFunction\r\n *\r\n * @typedef { {\r\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\r\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\r\n * } } PlaceholderProvider\r\n *\r\n */\r\n\r\n\r\n/**\r\n * A basic properties panel component. Describes *how* content will be rendered, accepts\r\n * data from implementor to describe *what* will be rendered.\r\n *\r\n * @param {Object} props\r\n * @param {Object|Array} props.element\r\n * @param {import('./components/Header').HeaderProvider} props.headerProvider\r\n * @param {PlaceholderProvider} [props.placeholderProvider]\r\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\r\n * @param {Object} [props.layoutConfig]\r\n * @param {Function} [props.layoutChanged]\r\n * @param {DescriptionConfig} [props.descriptionConfig]\r\n * @param {Function} [props.descriptionLoaded]\r\n * @param {TooltipConfig} [props.tooltipConfig]\r\n * @param {Function} [props.tooltipLoaded]\r\n * @param {HTMLElement} [props.feelPopupContainer]\r\n * @param {Object} [props.eventBus]\r\n */\r\nexport default function PropertiesPanel(props) {\r\n const {\r\n element,\r\n headerProvider,\r\n placeholderProvider,\r\n groups,\r\n layoutConfig,\r\n layoutChanged,\r\n descriptionConfig,\r\n descriptionLoaded,\r\n tooltipConfig,\r\n tooltipLoaded,\r\n feelPopupContainer,\r\n eventBus\r\n } = props;\r\n\r\n // set-up layout context\r\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\r\n\r\n // react to external changes in the layout config\r\n useUpdateLayoutEffect(() => {\r\n const newLayout = createLayout(layoutConfig);\r\n\r\n setLayout(newLayout);\r\n }, [ layoutConfig ]);\r\n\r\n useEffect(() => {\r\n if (typeof layoutChanged === 'function') {\r\n layoutChanged(layout);\r\n }\r\n }, [ layout, layoutChanged ]);\r\n\r\n const getLayoutForKey = (key, defaultValue) => {\r\n return get(layout, key, defaultValue);\r\n };\r\n\r\n const setLayoutForKey = (key, config) => {\r\n const newLayout = assign({}, layout);\r\n set(newLayout, key, config);\r\n setLayout(newLayout);\r\n };\r\n\r\n const layoutContext = {\r\n layout,\r\n setLayout,\r\n getLayoutForKey,\r\n setLayoutForKey\r\n };\r\n\r\n // set-up description context\r\n const description = useMemo(() => createDescriptionContext(descriptionConfig), [ descriptionConfig ]);\r\n\r\n useEffect(() => {\r\n if (typeof descriptionLoaded === 'function') {\r\n descriptionLoaded(description);\r\n }\r\n }, [ description, descriptionLoaded ]);\r\n\r\n\r\n const getDescriptionForId = (id, element) => {\r\n return description[id] && description[id](element);\r\n };\r\n\r\n const descriptionContext = {\r\n description,\r\n getDescriptionForId\r\n };\r\n\r\n // set-up tooltip context\r\n const tooltip = useMemo(() => createTooltipContext(tooltipConfig), [ tooltipConfig ]);\r\n\r\n useEffect(() => {\r\n if (typeof tooltipLoaded === 'function') {\r\n tooltipLoaded(tooltip);\r\n }\r\n }, [ tooltip, tooltipLoaded ]);\r\n\r\n const getTooltipForId = (id, element) => {\r\n return tooltip[id] && tooltip[id](element);\r\n };\r\n\r\n const tooltipContext = {\r\n tooltip,\r\n getTooltipForId\r\n };\r\n\r\n const [ errors, setErrors ] = useState({});\r\n\r\n const onSetErrors = ({ errors }) => setErrors(errors);\r\n\r\n useEvent('propertiesPanel.setErrors', onSetErrors, eventBus);\r\n\r\n const errorsContext = {\r\n errors\r\n };\r\n\r\n const eventContext = {\r\n eventBus\r\n };\r\n\r\n const propertiesPanelContext = {\r\n element\r\n };\r\n\r\n // empty state\r\n if (placeholderProvider && !element) {\r\n return <Placeholder { ...placeholderProvider.getEmpty() } />;\r\n }\r\n\r\n // multiple state\r\n if (placeholderProvider && isArray(element)) {\r\n return <Placeholder { ...placeholderProvider.getMultiple() } />;\r\n }\r\n\r\n return (\r\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\r\n <ErrorsContext.Provider value={ errorsContext }>\r\n <DescriptionContext.Provider value={ descriptionContext }>\r\n <TooltipContext.Provider value={ tooltipContext }>\r\n <LayoutContext.Provider value={ layoutContext }>\r\n <EventContext.Provider value={ eventContext }>\r\n <FeelPopupRoot\r\n element={ element }\r\n eventBus={ eventBus }\r\n popupContainer={ feelPopupContainer }>\r\n <div class=\"bio-properties-panel\">\r\n <Header\r\n element={ element }\r\n headerProvider={ headerProvider } />\r\n <div class=\"bio-properties-panel-scroll-container\">\r\n {\r\n groups.map(group => {\r\n const {\r\n component: Component = Group,\r\n id\r\n } = group;\r\n\r\n return (\r\n <Component\r\n { ...group }\r\n key={ id }\r\n element={ element } />\r\n );\r\n })\r\n }\r\n </div>\r\n </div>\r\n </FeelPopupRoot>\r\n </EventContext.Provider>\r\n </LayoutContext.Provider>\r\n </TooltipContext.Provider>\r\n </DescriptionContext.Provider>\r\n </ErrorsContext.Provider>\r\n </PropertiesPanelContext.Provider>\r\n );\r\n}\r\n\r\n\r\n// helpers //////////////////\r\n\r\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\r\n return {\r\n ...defaults,\r\n ...overrides\r\n };\r\n}\r\n\r\nfunction createDescriptionContext(overrides = {}) {\r\n return {\r\n ...DEFAULT_DESCRIPTION,\r\n ...overrides\r\n };\r\n}\r\n\r\nfunction createTooltipContext(overrides = {}) {\r\n return {\r\n ...DEFAULT_TOOLTIP,\r\n ...overrides\r\n };\r\n}\r\n\r\n// hooks //////////////////\r\n\r\n/**\r\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\r\n *\r\n * @param {Function} effect\r\n * @param {Array} deps\r\n */\r\nfunction useUpdateLayoutEffect(effect, deps) {\r\n const isMounted = useRef(false);\r\n\r\n useLayoutEffect(() => {\r\n if (isMounted.current) {\r\n return effect();\r\n } else {\r\n isMounted.current = true;\r\n }\r\n }, deps);\r\n}","import {\r\n useEffect,\r\n useRef,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n *\r\n * @param {object} props\r\n * @param {string} [props.class]\r\n * @param {import('preact').Component[]} [props.menuItems]\r\n * @returns\r\n */\r\nexport function DropdownButton(props) {\r\n const {\r\n class: className,\r\n children,\r\n menuItems = []\r\n } = props;\r\n\r\n const dropdownRef = useRef(null);\r\n const menuRef = useRef(null);\r\n\r\n const [ open, setOpen ] = useState(false);\r\n const close = () => setOpen(false);\r\n\r\n function onDropdownToggle(event) {\r\n if (menuRef.current && menuRef.current.contains(event.target)) {\r\n return;\r\n }\r\n\r\n event.stopPropagation();\r\n\r\n setOpen(open => !open);\r\n }\r\n\r\n function onActionClick(event, action) {\r\n event.stopPropagation();\r\n\r\n close();\r\n action();\r\n }\r\n\r\n useGlobalClick([ dropdownRef.current ], () => close());\r\n\r\n return (\r\n <div\r\n class={ classnames('bio-properties-panel-dropdown-button', { open }, className) }\r\n onClick={ onDropdownToggle }\r\n ref={ dropdownRef }\r\n >\r\n { children }\r\n <div class=\"bio-properties-panel-dropdown-button__menu\" ref={ menuRef }>\r\n { menuItems.map((item, index) => (\r\n <MenuItem onClick={ onActionClick } item={ item } key={ index } />\r\n )) }\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction MenuItem({ item, onClick }) {\r\n if (item.separator) {\r\n return <div class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--separator\" />;\r\n }\r\n\r\n if (item.action) {\r\n return (<button\r\n type=\"button\"\r\n class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--actionable\"\r\n onClick={ event => onClick(event, item.action) }\r\n >\r\n {item.entry}\r\n </button>);\r\n }\r\n\r\n return <div\r\n class=\"bio-properties-panel-dropdown-button__menu-item\"\r\n >\r\n {item.entry}\r\n </div>;\r\n}\r\n\r\n/**\r\n *\r\n * @param {Array<null | Element>} ignoredElements\r\n * @param {Function} callback\r\n */\r\nfunction useGlobalClick(ignoredElements, callback) {\r\n useEffect(() => {\r\n\r\n /**\r\n * @param {MouseEvent} event\r\n */\r\n function listener(event) {\r\n if (ignoredElements.some(element => element && element.contains(event.target))) {\r\n return;\r\n }\r\n\r\n callback();\r\n }\r\n\r\n document.addEventListener('click', listener, { capture: true });\r\n\r\n return () => document.removeEventListener('click', listener, { capture: true });\r\n }, [ ...ignoredElements, callback ]);\r\n}\r\n","import classnames from 'classnames';\r\n\r\nexport function HeaderButton(props) {\r\n const {\r\n children = null,\r\n class: classname,\r\n onClick = () => {},\r\n ...otherProps\r\n } = props;\r\n\r\n return <button\r\n type=\"button\"\r\n { ...otherProps }\r\n onClick={ onClick }\r\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\r\n { children }\r\n </button>;\r\n}\r\n","/**\r\n * @typedef { {\r\n * [key: string]: string;\r\n * } } TranslateReplacements\r\n */\r\n\r\n/**\r\n * A simple translation stub to be used for multi-language support.\r\n * Can be easily replaced with a more sophisticated solution.\r\n *\r\n * @param {string} template to interpolate\r\n * @param {TranslateReplacements} [replacements] a map with substitutes\r\n *\r\n * @return {string} the translated string\r\n */\r\nexport default function translateFallback(template, replacements) {\r\n\r\n replacements = replacements || {};\r\n\r\n return template.replace(/{([^}]+)}/g, function(_, key) {\r\n return replacements[key] || '{' + key + '}';\r\n });\r\n}","import {\r\n useCallback,\r\n useContext,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport {\r\n ArrowIcon,\r\n DeleteIcon,\r\n} from '../icons';\r\n\r\nimport { PropertiesPanelContext } from '../../context';\r\n\r\nimport translateFallback from '../util/translateFallback';\r\n\r\n\r\nexport default function CollapsibleEntry(props) {\r\n const {\r\n element,\r\n entries = [],\r\n id,\r\n label,\r\n open: shouldOpen,\r\n remove,\r\n translate = translateFallback\r\n } = props;\r\n\r\n const [ open, setOpen ] = useState(shouldOpen);\r\n\r\n const toggleOpen = () => setOpen(!open);\r\n\r\n const { onShow } = useContext(PropertiesPanelContext);\r\n\r\n const propertiesPanelContext = {\r\n ...useContext(PropertiesPanelContext),\r\n onShow: useCallback(() => {\r\n setOpen(true);\r\n\r\n if (isFunction(onShow)) {\r\n onShow();\r\n }\r\n }, [ onShow, setOpen ])\r\n };\r\n\r\n\r\n const placeholderLabel = translate('<empty>');\r\n\r\n return (\r\n <div\r\n data-entry-id={ id }\r\n class={ classnames(\r\n 'bio-properties-panel-collapsible-entry',\r\n open ? 'open' : ''\r\n ) }>\r\n <div class=\"bio-properties-panel-collapsible-entry-header\" onClick={ toggleOpen }>\r\n <div\r\n title={ label || placeholderLabel }\r\n class={ classnames(\r\n 'bio-properties-panel-collapsible-entry-header-title',\r\n !label && 'empty'\r\n ) }>\r\n { label || placeholderLabel }\r\n </div>\r\n <button\r\n type=\"button\"\r\n title={ translate('Toggle list item') }\r\n class=\"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\"\r\n >\r\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\r\n </button>\r\n {\r\n remove\r\n ?\r\n (\r\n <button type=\"button\" title={ translate('Delete item') } class=\"bio-properties-panel-remove-entry\" onClick={ remove }>\r\n <DeleteIcon />\r\n </button>\r\n )\r\n : null\r\n }\r\n </div>\r\n <div class={ classnames(\r\n 'bio-properties-panel-collapsible-entry-entries',\r\n open ? 'open' : ''\r\n ) }>\r\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\r\n {\r\n entries.map(entry => {\r\n const {\r\n component: Component,\r\n id\r\n } = entry;\r\n\r\n return (\r\n <Component\r\n { ...entry }\r\n element={ element }\r\n key={ id } />\r\n );\r\n })\r\n }\r\n </PropertiesPanelContext.Provider>\r\n </div>\r\n </div>\r\n );\r\n}","import {\r\n useEffect\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n query as domQuery\r\n} from 'min-dom';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport CollapsibleEntry from './entries/Collapsible';\r\nimport translateFallback from './util/translateFallback';\r\n\r\n/**\r\n * @param {import('../PropertiesPanel').ListItemDefinition} props\r\n */\r\nexport default function ListItem(props) {\r\n const {\r\n autoFocusEntry,\r\n autoOpen,\r\n translate = translateFallback\r\n } = props;\r\n\r\n // focus specified entry on auto open\r\n useEffect(() => {\r\n if (autoOpen && autoFocusEntry) {\r\n const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\r\n\r\n const focusableInput = domQuery('.bio-properties-panel-input', entry);\r\n\r\n if (focusableInput) {\r\n\r\n if (isFunction(focusableInput.select)) {\r\n focusableInput.select();\r\n } else if (isFunction(focusableInput.focus)) {\r\n focusableInput.focus();\r\n }\r\n\r\n focusableInput.scrollIntoView();\r\n }\r\n }\r\n }, [ autoOpen, autoFocusEntry ]);\r\n\r\n\r\n return (\r\n <div class=\"bio-properties-panel-list-item\">\r\n <CollapsibleEntry\r\n { ...props }\r\n open={ autoOpen }\r\n translate={ translate }\r\n />\r\n </div>\r\n );\r\n\r\n}\r\n","import {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport Tooltip from './entries/Tooltip';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport {\r\n useErrors,\r\n useLayoutState,\r\n usePrevious\r\n} from '../hooks';\r\n\r\nimport ListItem from './ListItem';\r\n\r\nimport {\r\n ArrowIcon,\r\n CreateIcon\r\n} from './icons';\r\n\r\nimport { PropertiesPanelContext } from '../context';\r\n\r\nimport { useStickyIntersectionObserver } from '../hooks';\r\n\r\nimport translateFallback from './util/translateFallback';\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\r\n */\r\nexport default function ListGroup(props) {\r\n const {\r\n add,\r\n element,\r\n id,\r\n items,\r\n label,\r\n shouldOpen = false,\r\n translate = translateFallback\r\n } = props;\r\n\r\n useEffect(() => {\r\n if (props.shouldSort != undefined) {\r\n console.warn('the property \\'shouldSort\\' is no longer supported');\r\n }\r\n }, [ props.shouldSort ]);\r\n\r\n const groupRef = useRef(null);\r\n\r\n const [ open, setOpen ] = useLayoutState(\r\n [ 'groups', id, 'open' ],\r\n shouldOpen\r\n );\r\n\r\n const [ sticky, setSticky ] = useState(false);\r\n\r\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\r\n\r\n const [ localItems, setLocalItems ] = useState([]);\r\n\r\n // Flag to mark that add button was clicked in the last render cycle\r\n const [ addTriggered, setAddTriggered ] = useState(false);\r\n\r\n const prevElement = usePrevious(element);\r\n\r\n const toggleOpen = useCallback(() => setOpen(!open), [ open ]);\r\n\r\n const openItemIds = (element === prevElement && open && addTriggered)\r\n ? getNewItemIds(items, localItems)\r\n : [];\r\n\r\n // reset local state after items changed\r\n useEffect(() => {\r\n setLocalItems(items);\r\n setAddTriggered(false);\r\n }, [ items ]);\r\n\r\n // set css class when group is sticky to top\r\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\r\n\r\n const hasItems = !!items.length;\r\n\r\n const propertiesPanelContext = {\r\n ...useContext(PropertiesPanelContext),\r\n onShow\r\n };\r\n\r\n const handleAddClick = e => {\r\n setAddTriggered(true);\r\n setOpen(true);\r\n\r\n add(e);\r\n };\r\n\r\n const allErrors = useErrors();\r\n const hasError = items.some(item => {\r\n if (allErrors[item.id]) {\r\n return true;\r\n }\r\n\r\n if (!item.entries) {\r\n return;\r\n }\r\n\r\n // also check if the error is nested, e.g. for name-value entries\r\n return item.entries.some(entry => allErrors[entry.id]);\r\n });\r\n\r\n\r\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\r\n <div\r\n class={ classnames(\r\n 'bio-properties-panel-group-header',\r\n hasItems ? '' : 'empty',\r\n (hasItems && open) ? 'open' : '',\r\n (sticky && open) ? 'sticky' : ''\r\n ) }\r\n onClick={ hasItems ? toggleOpen : noop }>\r\n <div\r\n title={ props.tooltip ? null : label }\r\n data-title={ label }\r\n class=\"bio-properties-panel-group-header-title\"\r\n >\r\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element } parent={ groupRef }>\r\n { label }\r\n </Tooltip>\r\n </div>\r\n <div class=\"bio-properties-panel-group-header-buttons\">\r\n {\r\n add\r\n ? (\r\n <button\r\n type=\"button\"\r\n title={ translate('Create new list item') }\r\n class=\"bio-properties-panel-group-header-button bio-properties-panel-add-entry\"\r\n onClick={ handleAddClick }\r\n >\r\n <CreateIcon />\r\n {\r\n !hasItems ? (\r\n <span class=\"bio-properties-panel-add-entry-label\">{ translate('Create') }</span>\r\n )\r\n : null\r\n }\r\n </button>\r\n )\r\n : null\r\n }\r\n {\r\n hasItems\r\n ? (\r\n <div\r\n title={ translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, { numOfItems: items.length }) }\r\n class={\r\n classnames(\r\n 'bio-properties-panel-list-badge',\r\n hasError ? 'bio-properties-panel-list-badge--error' : ''\r\n )\r\n }\r\n >\r\n { items.length }\r\n </div>\r\n )\r\n : null\r\n }\r\n {\r\n hasItems\r\n ? (\r\n <button\r\n type=\"button\"\r\n title={ translate('Toggle section') }\r\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\r\n >\r\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\r\n </button>\r\n )\r\n : null\r\n }\r\n </div>\r\n </div>\r\n <div class={ classnames(\r\n 'bio-properties-panel-list',\r\n open && hasItems ? 'open' : ''\r\n ) }>\r\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\r\n\r\n {\r\n items.map((item, index) => {\r\n if (!item) {\r\n return;\r\n }\r\n\r\n const { id } = item;\r\n\r\n // if item was added, open it\r\n // existing items will not be affected as autoOpen\r\n // is only applied on first render\r\n const autoOpen = openItemIds.includes(item.id);\r\n\r\n return (\r\n <ListItem\r\n { ...item }\r\n autoOpen={ autoOpen }\r\n element={ element }\r\n index={ index }\r\n key={ id }\r\n translate={ translate } />\r\n );\r\n })\r\n }\r\n </PropertiesPanelContext.Provider>\r\n </div>\r\n </div>;\r\n}\r\n\r\n\r\nfunction getNewItemIds(newItems, oldItems) {\r\n const newIds = newItems.map(item => item.id);\r\n const oldIds = oldItems.map(item => item.id);\r\n\r\n return newIds.filter(itemId => !oldIds.includes(itemId));\r\n}","import {\r\n useError,\r\n useShowEntryEvent\r\n} from '../../hooks';\r\n\r\nimport {\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport Description from './Description';\r\nimport Tooltip from './Tooltip';\r\n\r\nfunction Checkbox(props) {\r\n const {\r\n id,\r\n label,\r\n onChange,\r\n disabled,\r\n value = false,\r\n onFocus,\r\n onBlur,\r\n tooltip\r\n } = props;\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const handleChangeCallback = ({ target }) => {\r\n onChange(target.checked);\r\n };\r\n\r\n const handleChange = e => {\r\n handleChangeCallback(e);\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n const ref = useShowEntryEvent(id);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-checkbox\">\r\n <input\r\n ref={ ref }\r\n id={ prefixId(id) }\r\n name={ id }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n type=\"checkbox\"\r\n class=\"bio-properties-panel-input\"\r\n onChange={ handleChange }\r\n checked={ localValue }\r\n disabled={ disabled } />\r\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\r\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\r\n { label }\r\n </Tooltip>\r\n </label>\r\n </div>\r\n );\r\n}\r\n\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string|import('preact').Component} props.tooltip\r\n * @param {boolean} [props.disabled]\r\n */\r\nexport default function CheckboxEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n label,\r\n getValue,\r\n setValue,\r\n disabled,\r\n onFocus,\r\n onBlur,\r\n tooltip\r\n } = props;\r\n\r\n const value = getValue(element);\r\n\r\n const error = useError(id);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-entry\" data-entry-id={ id }>\r\n <Checkbox\r\n disabled={ disabled }\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n onChange={ setValue }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n value={ value }\r\n tooltip={ tooltip }\r\n element={ element } />\r\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.checked;\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}\r\n","import { useCallback, useEffect, useState, useMemo, useRef } from 'preact/hooks';\r\nimport { useStaticCallback, useShowEntryEvent } from '../../../hooks';\r\nimport { isFunction } from 'min-dash';\r\nimport { useError } from '../../../hooks';\r\nimport classnames from 'classnames';\r\nimport Description from '../Description';\r\nimport TemplatingEditor from './TemplatingEditor';\r\n\r\nconst noop = () => { };\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n */\r\nexport default function TemplatingEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n debounce,\r\n disabled,\r\n label,\r\n getValue,\r\n setValue,\r\n tooltipContainer,\r\n validate,\r\n show = noop,\r\n } = props;\r\n\r\n const [ validationError, setValidationError ] = useState(null);\r\n const [ localError, setLocalError ] = useState(null);\r\n\r\n let value = getValue(element);\r\n\r\n useEffect(() => {\r\n if (isFunction(validate)) {\r\n const newValidationError = validate(value) || null;\r\n\r\n setValidationError(newValidationError);\r\n }\r\n }, [ value, validate ]);\r\n\r\n const onInput = useStaticCallback((newValue) => {\r\n let newValidationError = null;\r\n\r\n if (isFunction(validate)) {\r\n newValidationError = validate(newValue) || null;\r\n }\r\n\r\n // don't create multiple commandStack entries for the same value\r\n if (newValue !== value) {\r\n setValue(newValue, newValidationError);\r\n }\r\n\r\n setValidationError(newValidationError);\r\n });\r\n\r\n const onError = useCallback(err => {\r\n setLocalError(err);\r\n }, []);\r\n\r\n const temporaryError = useError(id);\r\n\r\n const error = localError || temporaryError || validationError;\r\n\r\n return (\r\n <div\r\n class={ classnames(\r\n 'bio-properties-panel-entry',\r\n error ? 'has-error' : '')\r\n }\r\n data-entry-id={ id }>\r\n <Templating\r\n debounce={ debounce }\r\n disabled={ disabled }\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n onInput={ onInput }\r\n onError={ onError }\r\n show={ show }\r\n value={ value }\r\n tooltipContainer={ tooltipContainer } />\r\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nfunction Templating(props) {\r\n const {\r\n debounce,\r\n id,\r\n label,\r\n onInput,\r\n onError,\r\n value = '',\r\n disabled = false,\r\n tooltipContainer\r\n } = props;\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const editorRef = useShowEntryEvent(id);\r\n const containerRef = useRef();\r\n\r\n const [ focus, _setFocus ] = useState(undefined);\r\n\r\n const setFocus = (offset = 0) => {\r\n const hasFocus = containerRef.current.contains(document.activeElement);\r\n\r\n // Keep caret position if it is already focused, otherwise focus at the end\r\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\r\n\r\n _setFocus(position + offset);\r\n };\r\n\r\n const handleInputCallback = useMemo(() => {\r\n return debounce((newValue) => onInput(newValue.length ? newValue : undefined));\r\n }, [ onInput, debounce ]);\r\n\r\n const handleInput = newValue => {\r\n handleInputCallback(newValue);\r\n setLocalValue(newValue);\r\n };\r\n\r\n const handleLint = useStaticCallback(lint => {\r\n\r\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\r\n\r\n if (!errors.length) {\r\n onError(undefined);\r\n return;\r\n }\r\n\r\n const error = lint[0];\r\n const message = `${error.source}: ${error.message}`;\r\n\r\n onError(message);\r\n });\r\n\r\n useEffect(() => {\r\n if (typeof focus !== 'undefined') {\r\n editorRef.current.focus(focus);\r\n _setFocus(undefined);\r\n }\r\n }, [ focus ]);\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n setLocalValue(value ? value : '');\r\n }, [ value ]);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-feelers\">\r\n <label id={ prefixIdLabel(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\r\n {label}\r\n </label>\r\n <div class=\"bio-properties-panel-feelers-input\" ref={ containerRef }>\r\n <TemplatingEditor\r\n name={ id }\r\n onInput={ handleInput }\r\n contentAttributes={ { 'aria-labelledby': prefixIdLabel(id) } }\r\n disabled={ disabled }\r\n onLint={ handleLint }\r\n value={ localValue }\r\n ref={ editorRef }\r\n tooltipContainer={ tooltipContainer }\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && (!!node.value || node.classList.contains('edited'));\r\n}\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixIdLabel(id) {\r\n return `bio-properties-panel-feelers-${id}-label`;\r\n}","import {\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport {\r\n query as domQuery\r\n} from 'min-dom';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport {\r\n useKeyFactory,\r\n usePrevious\r\n} from '../../hooks';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport {\r\n ArrowIcon,\r\n CreateIcon,\r\n DeleteIcon\r\n} from '../icons';\r\n\r\n/**\r\n * Entry for handling lists represented as nested entries.\r\n *\r\n * @template Item\r\n * @param {object} props\r\n * @param {string} props.id\r\n * @param {*} props.element\r\n * @param {Function} props.onAdd\r\n * @param {import('preact').Component} props.component\r\n * @param {string} [props.label='<empty>']\r\n * @param {Function} [props.onRemove]\r\n * @param {Item[]} [props.items]\r\n * @param {boolean} [props.open]\r\n * @param {string|boolean} [props.autoFocusEntry] either a custom selector string or true to focus the first input\r\n * @returns\r\n */\r\nexport default function List(props) {\r\n const {\r\n id,\r\n element,\r\n items = [],\r\n component,\r\n label = '<empty>',\r\n open: shouldOpen,\r\n onAdd,\r\n onRemove,\r\n autoFocusEntry,\r\n ...restProps\r\n } = props;\r\n\r\n const [ open, setOpen ] = useState(!!shouldOpen);\r\n\r\n const hasItems = !!items.length;\r\n const toggleOpen = () => hasItems && setOpen(!open);\r\n\r\n const elementChanged = usePrevious(element) !== element;\r\n const newItems = useNewItems(items, elementChanged);\r\n\r\n useEffect(() => {\r\n if (open && !hasItems) {\r\n setOpen(false);\r\n }\r\n }, [ open, hasItems ]);\r\n\r\n /**\r\n * @param {MouseEvent} event\r\n */\r\n function addItem(event) {\r\n event.stopPropagation();\r\n onAdd();\r\n\r\n if (!open) {\r\n setOpen(true);\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n data-entry-id={ id }\r\n class={ classnames(\r\n 'bio-properties-panel-entry',\r\n 'bio-properties-panel-list-entry',\r\n hasItems ? '' : 'empty',\r\n open ? 'open' : ''\r\n ) }>\r\n <div class=\"bio-properties-panel-list-entry-header\" onClick={ toggleOpen }>\r\n <div\r\n title={ label }\r\n class={ classnames(\r\n 'bio-properties-panel-list-entry-header-title',\r\n open && 'open'\r\n ) }>\r\n { label }\r\n </div>\r\n <div\r\n class=\"bio-properties-panel-list-entry-header-buttons\"\r\n >\r\n <button\r\n type=\"button\"\r\n title=\"Create new list item\"\r\n onClick={ addItem }\r\n class=\"bio-properties-panel-add-entry\"\r\n >\r\n <CreateIcon />\r\n {\r\n !hasItems ? (\r\n <span class=\"bio-properties-panel-add-entry-label\">Create</span>\r\n )\r\n : null\r\n }\r\n </button>\r\n {\r\n hasItems && (\r\n <div\r\n title={ `List contains ${items.length} item${items.length != 1 ? 's' : ''}` }\r\n class=\"bio-properties-panel-list-badge\"\r\n >\r\n { items.length }\r\n </div>\r\n )\r\n }\r\n {\r\n hasItems && (\r\n <button\r\n type=\"button\"\r\n title=\"Toggle list item\"\r\n class=\"bio-properties-panel-arrow\"\r\n >\r\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\r\n </button>\r\n )\r\n }\r\n </div>\r\n </div>\r\n {\r\n hasItems && (\r\n <ItemsList\r\n { ...restProps }\r\n autoFocusEntry={ autoFocusEntry }\r\n component={ component }\r\n element={ element }\r\n id={ id }\r\n items={ items }\r\n newItems={ newItems }\r\n onRemove={ onRemove }\r\n open={ open }\r\n />\r\n )\r\n }\r\n </div>\r\n );\r\n}\r\n\r\nfunction ItemsList(props) {\r\n const {\r\n autoFocusEntry,\r\n component: Component,\r\n element,\r\n id,\r\n items,\r\n newItems,\r\n onRemove,\r\n open,\r\n ...restProps\r\n } = props;\r\n\r\n const getKey = useKeyFactory();\r\n\r\n const newItem = newItems[0];\r\n\r\n useEffect(() => {\r\n if (newItem && autoFocusEntry) {\r\n\r\n // (0) select the parent entry (containing all list items)\r\n const entry = domQuery(`[data-entry-id=\"${id}\"]`);\r\n\r\n // (1) select the first input or a custom element to be focussed\r\n const selector = typeof(autoFocusEntry) === 'boolean' ?\r\n '.bio-properties-panel-input' :\r\n autoFocusEntry;\r\n const focusableInput = domQuery(selector, entry);\r\n\r\n // (2) set focus\r\n if (focusableInput) {\r\n\r\n if (isFunction(focusableInput.select)) {\r\n focusableInput.select();\r\n } else if (isFunction(focusableInput.focus)) {\r\n focusableInput.focus();\r\n }\r\n\r\n }\r\n }\r\n }, [ newItem, autoFocusEntry, id ]);\r\n\r\n return <ol class={ classnames(\r\n 'bio-properties-panel-list-entry-items',\r\n open ? 'open' : ''\r\n ) }>\r\n {\r\n items.map((item, index) => {\r\n const key = getKey(item);\r\n\r\n return (<li class=\"bio-properties-panel-list-entry-item\" key={ key }>\r\n <Component\r\n { ...restProps }\r\n element={ element }\r\n id={ id }\r\n index={ index }\r\n item={ item }\r\n open={ item === newItem } />\r\n {\r\n onRemove && (\r\n <button\r\n type=\"button\"\r\n title=\"Delete item\"\r\n class=\"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\"\r\n onClick={ () => onRemove && onRemove(item) }\r\n ><DeleteIcon /></button>\r\n )\r\n }\r\n </li>);\r\n })\r\n }\r\n </ol>;\r\n}\r\n\r\nfunction useNewItems(items = [], shouldReset) {\r\n const previousItems = usePrevious(items.slice()) || [];\r\n\r\n if (shouldReset) {\r\n return [];\r\n }\r\n\r\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\r\n}\r\n","import classNames from 'classnames';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport {\r\n useError,\r\n useShowEntryEvent\r\n} from '../../hooks';\r\n\r\nimport {\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport Description from './Description';\r\nimport Tooltip from './Tooltip';\r\n\r\n/**\r\n * @typedef { { value: string, label: string, disabled: boolean, children: { value: string, label: string, disabled: boolean } } } Option\r\n */\r\n\r\n/**\r\n * Provides basic select input.\r\n *\r\n * @param {object} props\r\n * @param {string} props.id\r\n * @param {string[]} props.path\r\n * @param {string} props.label\r\n * @param {Function} props.onChange\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {Array<Option>} [props.options]\r\n * @param {string} props.value\r\n * @param {boolean} [props.disabled]\r\n */\r\nfunction Select(props) {\r\n const {\r\n id,\r\n label,\r\n onChange,\r\n options = [],\r\n value = '',\r\n disabled,\r\n onFocus,\r\n onBlur,\r\n tooltip\r\n } = props;\r\n\r\n const ref = useShowEntryEvent(id);\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const handleChangeCallback = ({ target }) => {\r\n onChange(target.value);\r\n };\r\n\r\n const handleChange = e => {\r\n handleChangeCallback(e);\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-select\">\r\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\r\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\r\n {label}\r\n </Tooltip>\r\n </label>\r\n <select\r\n ref={ ref }\r\n id={ prefixId(id) }\r\n name={ id }\r\n class=\"bio-properties-panel-input\"\r\n onInput={ handleChange }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n value={ localValue }\r\n disabled={ disabled }\r\n >\r\n {options.map((option, idx) => {\r\n if (option.children) {\r\n return (\r\n <optgroup key={ idx } label={ option.label }>\r\n {option.children.map((child, idx) => (\r\n <option\r\n key={ idx }\r\n value={ child.value }\r\n disabled={ child.disabled }\r\n >\r\n {child.label}\r\n </option>\r\n ))}\r\n </optgroup>\r\n );\r\n }\r\n\r\n return (\r\n <option key={ idx } value={ option.value } disabled={ option.disabled }>\r\n {option.label}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * @param {object} props\r\n * @param {object} props.element\r\n * @param {string} props.id\r\n * @param {string} [props.description]\r\n * @param {string} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {Function} props.getOptions\r\n * @param {boolean} [props.disabled]\r\n * @param {Function} [props.validate]\r\n * @param {string|import('preact').Component} props.tooltip\r\n */\r\nexport default function SelectEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n label,\r\n getValue,\r\n setValue,\r\n getOptions,\r\n disabled,\r\n onFocus,\r\n onBlur,\r\n validate,\r\n tooltip\r\n } = props;\r\n\r\n const options = getOptions(element);\r\n const globalError = useError(id);\r\n const [ localError, setLocalError ] = useState(null);\r\n\r\n let value = getValue(element);\r\n\r\n useEffect(() => {\r\n if (isFunction(validate)) {\r\n const newValidationError = validate(value) || null;\r\n\r\n setLocalError(newValidationError);\r\n }\r\n }, [ value, validate ]);\r\n\r\n\r\n const onChange = (newValue) => {\r\n let newValidationError = null;\r\n\r\n if (isFunction(validate)) {\r\n newValidationError = validate(newValue) || null;\r\n }\r\n\r\n setValue(newValue, newValidationError);\r\n setLocalError(newValidationError);\r\n };\r\n\r\n const error = globalError || localError;\r\n\r\n return (\r\n <div\r\n class={ classNames(\r\n 'bio-properties-panel-entry',\r\n error ? 'has-error' : '')\r\n }\r\n data-entry-id={ id }>\r\n <Select\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n value={ value }\r\n onChange={ onChange }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n options={ options }\r\n disabled={ disabled }\r\n tooltip={ tooltip }\r\n element={ element } />\r\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.value;\r\n}\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}","import {\r\n useMemo,\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Function} props.debounce\r\n * @param {Boolean} [props.disabled]\r\n * @param {Object} props.element\r\n * @param {Function} props.getValue\r\n * @param {String} props.id\r\n * @param {Function} [props.onBlur]\r\n * @param {Function} [props.onFocus]\r\n * @param {Function} props.setValue\r\n */\r\nexport default function Simple(props) {\r\n const {\r\n debounce,\r\n disabled,\r\n element,\r\n getValue,\r\n id,\r\n onBlur,\r\n onFocus,\r\n setValue\r\n } = props;\r\n\r\n const value = getValue(element);\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const handleInputCallback = useMemo(() => {\r\n return debounce((target) => setValue(target.value.length ? target.value : undefined));\r\n }, [ setValue, debounce ]);\r\n\r\n const handleInput = e => {\r\n handleInputCallback(e.target);\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n\r\n return (\r\n <div class=\"bio-properties-panel-simple\">\r\n <input\r\n id={ prefixId(id) }\r\n key={ element }\r\n type=\"text\"\r\n name={ id }\r\n spellCheck=\"false\"\r\n autoComplete=\"off\"\r\n disabled={ disabled }\r\n class=\"bio-properties-panel-input\"\r\n onInput={ handleInput }\r\n aria-label={ localValue || '<empty>' }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n value={ localValue } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.value;\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}\r\n","import Description from './Description';\r\n\r\nimport {\r\n useEffect,\r\n useLayoutEffect,\r\n useMemo,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport {\r\n useError,\r\n useShowEntryEvent,\r\n useElementVisible,\r\n} from '../../hooks';\r\n\r\nimport { isFunction } from 'min-dash';\r\nimport Tooltip from './Tooltip';\r\n\r\nfunction resizeToContents(element) {\r\n element.style.height = 'auto';\r\n\r\n // a 2px pixel offset is required to prevent scrollbar from\r\n // appearing on OS with a full length scroll bar (Windows/Linux)\r\n element.style.height = `${ element.scrollHeight + 2 }px`;\r\n}\r\n\r\nfunction TextArea(props) {\r\n\r\n const {\r\n id,\r\n label,\r\n debounce,\r\n onInput,\r\n value = '',\r\n disabled,\r\n monospace,\r\n onFocus,\r\n onBlur,\r\n autoResize,\r\n placeholder,\r\n rows = autoResize ? 1 : 2,\r\n tooltip\r\n } = props;\r\n\r\n const [ localValue, setLocalValue ] = useState(value);\r\n\r\n const ref = useShowEntryEvent(id);\r\n\r\n const visible = useElementVisible(ref.current);\r\n\r\n const handleInputCallback = useMemo(() => {\r\n return debounce((target) => onInput(target.value.length ? target.value : undefined));\r\n }, [ onInput, debounce ]);\r\n\r\n const handleInput = e => {\r\n handleInputCallback(e.target);\r\n\r\n autoResize && resizeToContents(e.target);\r\n\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useLayoutEffect(() => {\r\n autoResize && resizeToContents(ref.current);\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n visible && autoResize && resizeToContents(ref.current);\r\n }, [ visible ]);\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-textarea\">\r\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\r\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\r\n { label }\r\n </Tooltip>\r\n </label>\r\n <textarea\r\n ref={ ref }\r\n id={ prefixId(id) }\r\n name={ id }\r\n spellCheck=\"false\"\r\n class={ classnames(\r\n 'bio-properties-panel-input',\r\n monospace ? 'bio-properties-panel-input-monospace' : '',\r\n autoResize ? 'auto-resize' : '')\r\n }\r\n onInput={ handleInput }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n placeholder={ placeholder }\r\n rows={ rows }\r\n value={ localValue }\r\n disabled={ disabled }\r\n data-gramm=\"false\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * @param {object} props\r\n * @param {object} props.element\r\n * @param {string} props.id\r\n * @param {string} props.description\r\n * @param {boolean} props.debounce\r\n * @param {string} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {number} props.rows\r\n * @param {boolean} props.monospace\r\n * @param {Function} [props.validate]\r\n * @param {boolean} [props.disabled]\r\n */\r\nexport default function TextAreaEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n debounce,\r\n label,\r\n getValue,\r\n setValue,\r\n rows,\r\n monospace,\r\n disabled,\r\n validate,\r\n onFocus,\r\n onBlur,\r\n placeholder,\r\n autoResize,\r\n tooltip\r\n } = props;\r\n\r\n const globalError = useError(id);\r\n const [ localError, setLocalError ] = useState(null);\r\n\r\n let value = getValue(element);\r\n\r\n useEffect(() => {\r\n if (isFunction(validate)) {\r\n const newValidationError = validate(value) || null;\r\n\r\n setLocalError(newValidationError);\r\n }\r\n }, [ value, validate ]);\r\n\r\n const onInput = (newValue) => {\r\n let newValidationError = null;\r\n\r\n if (isFunction(validate)) {\r\n newValidationError = validate(newValue) || null;\r\n }\r\n\r\n setValue(newValue, newValidationError);\r\n\r\n setLocalError(newValidationError);\r\n };\r\n\r\n\r\n const error = globalError || localError;\r\n\r\n return (\r\n <div\r\n class={ classnames(\r\n 'bio-properties-panel-entry',\r\n error ? 'has-error' : '')\r\n }\r\n data-entry-id={ id }>\r\n <TextArea\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n value={ value }\r\n onInput={ onInput }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n rows={ rows }\r\n debounce={ debounce }\r\n monospace={ monospace }\r\n disabled={ disabled }\r\n placeholder={ placeholder }\r\n autoResize={ autoResize }\r\n tooltip={ tooltip }\r\n element={ element } />\r\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.value;\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}\r\n","import Description from './Description';\r\nimport Tooltip from './Tooltip';\r\n\r\nimport {\r\n useEffect,\r\n useMemo,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport { isFunction } from 'min-dash';\r\n\r\nimport {\r\n useError,\r\n useShowEntryEvent\r\n} from '../../hooks';\r\n\r\nfunction Textfield(props) {\r\n\r\n const {\r\n debounce,\r\n disabled = false,\r\n id,\r\n label,\r\n onInput,\r\n onFocus,\r\n onBlur,\r\n placeholder,\r\n value = '',\r\n tooltip\r\n } = props;\r\n\r\n const [ localValue, setLocalValue ] = useState(value || '');\r\n\r\n const ref = useShowEntryEvent(id);\r\n\r\n const handleInputCallback = useMemo(() => {\r\n return debounce((target) => onInput(target.value.length ? target.value : undefined));\r\n }, [ onInput, debounce ]);\r\n\r\n const handleInput = e => {\r\n handleInputCallback(e.target);\r\n setLocalValue(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (value === localValue) {\r\n return;\r\n }\r\n\r\n setLocalValue(value);\r\n }, [ value ]);\r\n\r\n return (\r\n <div class=\"bio-properties-panel-textfield\">\r\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\r\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\r\n { label }\r\n </Tooltip>\r\n </label>\r\n <input\r\n ref={ ref }\r\n id={ prefixId(id) }\r\n type=\"text\"\r\n name={ id }\r\n spellCheck=\"false\"\r\n autoComplete=\"off\"\r\n disabled={ disabled }\r\n class=\"bio-properties-panel-input\"\r\n onInput={ handleInput }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n placeholder={ placeholder }\r\n value={ localValue } />\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string|import('preact').Component} props.tooltip\r\n * @param {Function} props.validate\r\n */\r\nexport default function TextfieldEntry(props) {\r\n const {\r\n element,\r\n id,\r\n description,\r\n debounce,\r\n disabled,\r\n label,\r\n getValue,\r\n setValue,\r\n validate,\r\n onFocus,\r\n onBlur,\r\n placeholder,\r\n tooltip\r\n } = props;\r\n\r\n const globalError = useError(id);\r\n const [ localError, setLocalError ] = useState(null);\r\n\r\n let value = getValue(element);\r\n\r\n useEffect(() => {\r\n if (isFunction(validate)) {\r\n const newValidationError = validate(value) || null;\r\n\r\n setLocalError(newValidationError);\r\n }\r\n }, [ value, validate ]);\r\n\r\n const onInput = (newValue) => {\r\n let newValidationError = null;\r\n\r\n if (isFunction(validate)) {\r\n newValidationError = validate(newValue) || null;\r\n }\r\n\r\n setValue(newValue, newValidationError);\r\n\r\n setLocalError(newValidationError);\r\n };\r\n\r\n\r\n const error = globalError || localError;\r\n\r\n return (\r\n <div\r\n class={ classnames(\r\n 'bio-properties-panel-entry',\r\n error ? 'has-error' : '')\r\n }\r\n data-entry-id={ id }>\r\n <Textfield\r\n debounce={ debounce }\r\n disabled={ disabled }\r\n id={ id }\r\n key={ element }\r\n label={ label }\r\n onInput={ onInput }\r\n onFocus={ onFocus }\r\n onBlur={ onBlur }\r\n placeholder={ placeholder }\r\n value={ value }\r\n tooltip={ tooltip }\r\n element={ element } />\r\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\r\n <Description forId={ id } element={ element } value={ description } />\r\n </div>\r\n );\r\n}\r\n\r\nexport function isEdited(node) {\r\n return node && !!node.value;\r\n}\r\n\r\n\r\n// helpers /////////////////\r\n\r\nfunction prefixId(id) {\r\n return `bio-properties-panel-${ id }`;\r\n}","import {\r\n debounce,\r\n isNumber\r\n} from 'min-dash';\r\n\r\nconst DEFAULT_DEBOUNCE_TIME = 300;\r\n\r\nexport default function debounceInput(debounceDelay) {\r\n return function _debounceInput(fn) {\r\n if (debounceDelay !== false) {\r\n\r\n var debounceTime =\r\n isNumber(debounceDelay) ?\r\n debounceDelay :\r\n DEFAULT_DEBOUNCE_TIME;\r\n\r\n return debounce(fn, debounceTime);\r\n } else {\r\n return fn;\r\n }\r\n };\r\n}\r\n\r\ndebounceInput.$inject = [ 'config.debounceInput' ];\r\n","import debounceInput from './debounceInput';\r\n\r\nexport default {\r\n debounceInput: [ 'factory', debounceInput ]\r\n};\r\n","export default class FeelPopupModule {\r\n\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * Check if the FEEL popup is open.\r\n * @return {Boolean}\r\n */\r\n isOpen() {\r\n return this._eventBus.fire('feelPopup._isOpen');\r\n }\r\n\r\n /**\r\n * Open the FEEL popup.\r\n *\r\n * @param {String} entryId\r\n * @param {Object} popupConfig\r\n * @param {HTMLElement} sourceElement\r\n */\r\n open(entryId, popupConfig, sourceElement) {\r\n return this._eventBus.fire('feelPopup._open', {\r\n entryId,\r\n popupConfig,\r\n sourceElement\r\n });\r\n }\r\n\r\n /**\r\n * Close the FEEL popup.\r\n */\r\n close() {\r\n return this._eventBus.fire('feelPopup._close');\r\n }\r\n}\r\n\r\nFeelPopupModule.$inject = [ 'eventBus' ];","import feelPopup from './FeelPopupModule';\r\n\r\nexport default {\r\n feelPopup: [ 'type', feelPopup ]\r\n};\r\n"],"names":["Header","props","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","type","documentationRef","ElementIcon","_jsxs","class","children","_jsx","width","height","viewBox","title","rel","href","target","ExternalLinkIcon","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","useContext","TooltipWrapper","forId","contextDescription","value","Tooltip","prefixId","parent","direction","position","visible","setShow","useState","focusedViaKeyboard","setFocusedViaKeyboard","timeout","wrapperRef","useRef","tooltipRef","showTooltip","event","show","MouseEvent","setTimeout","hideTooltip","hideTooltipViaEscape","e","code","isTooltipHovered","x","y","current","wrapper","inBounds","getBoundingClientRect","useEffect","hideHoveredTooltip","isFocused","document","activeElement","closest","hideFocusedTooltip","relatedTarget","isTooltipChild","el","isHovered","addEventListener","removeEventListener","renderTooltip","role","style","getTooltipPosition","ref","onClick","stopPropagation","tabIndex","onMouseEnter","onMouseLeave","clearTimeout","onFocus","onKeyDown","createPortal","bounds","top","right","bottom","left","refElement","refPosition","matches","useDescriptionContext","useError","useErrors","useEvent","callback","eventContext","didMount","on","off","KEY_LENGTH","useKeyFactory","dependencies","map","useMemo","Map","getKey","key","get","Math","random","toString","slice","set","useLayoutState","path","defaultValue","layoutForKey","setState","useCallback","newValue","usePrevious","useShowEntryEvent","onShow","PropertiesPanelContext","focus","onShowEntry","isFunction","select","useStickyIntersectionObserver","scrollContainerSelector","setSticky","scrollContainer","setScrollContainer","domQuery","updateScrollContainer","newScrollContainer","Observer","IntersectionObserver","observer","entries","scrollHeight","forEach","entry","intersectionRatio","root","rootMargin","threshold","observe","unobserve","useStaticCallback","callbackRef","args","useElementVisible","setVisible","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","Description","noop","useBufferedFocus","editor","buffer","setBuffer","undefined","offset","Infinity","CodeEditor","forwardRef","onInput","disabled","tooltipContainer","enableGutters","onLint","onPopupOpen","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","localValue","setLocalValue","handleInput","FeelersEditor","container","onChange","lineWrap","innerHTML","setValue","handleClick","classNames","name","PopupIcon","onFeelToggle","placeholder","variables","selection","getSelection","range","ranges","mainIndex","from","to","FeelEditor","extensions","lineNumbers","EditorView","lineWrapping","setVariables","setPlaceholder","FeelIndicator","active","FeelIcon","feel","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","FeelPopupContext","close","source","createDragger","fn","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","call","domify","PopupComponent","globalRef","className","delayInitialFocus","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","focusTrapRef","localRef","popupRef","containerNode","getContainerNode","handleKeydown","handleFocus","activate","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","body","Popup","Title","Body","Footer","draggable","emit","showCloseButton","closeButtonTooltip","rest","context","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","onMoveEnd","onDragEnd","_Fragment","DragIcon","CloseIcon","node","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FEELPopupRoot","fire","popupContainer","prevElement","popupConfig","setPopupConfig","setSource","sourceElement","setSourceElement","isOpen","useUpdateEffect","handleOpen","entryId","config","_sourceElement","handleClose","feelPopupContext","handlePopupOpen","handleIsOpen","FeelPopupComponent","editorRef","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","domNode","HelpIcon","TemplatingEditor","querySelector","effect","deps","isMounted","ToggleSwitch","switcherLabel","inline","onBlur","handleInputCallback","for","checked","ToggleSwitchEntry","getValue","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","spellCheck","autoComplete","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","error","FeelTextfieldComponent","onError","OptionalComponent","OptionalFeelInput","_setLocalValue","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","openPopup","popupSource","popuOpen","setFocus","hasFocus","contains","selectionStart","handleFeelToggle","handleLocalInput","handleLint","lint","length","popupOptions","calculatePopupPosition","getPopupTitle","copyHandler","clipboardData","setData","getData","pasteHandler","data","FeelTextfield","withAutoClosePopup","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","handleChange","FeelEntry","example","validationError","setValidationError","err","temporaryError","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","popupTitle","closePopup","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","feelPopupContainer","createLayout","useUpdateLayoutEffect","newLayout","assign","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","FeelPopupRoot","group","overrides","defaults","DropdownButton","menuItems","dropdownRef","menuRef","onDropdownToggle","onActionClick","action","useGlobalClick","item","index","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","translateFallback","template","replacements","replace","_","CollapsibleEntry","remove","translate","placeholderLabel","DeleteIcon","ListItem","autoFocusEntry","autoOpen","focusableInput","scrollIntoView","ListGroup","add","items","shouldSort","console","warn","localItems","setLocalItems","addTriggered","setAddTriggered","openItemIds","getNewItemIds","hasItems","handleAddClick","hasError","CreateIcon","numOfItems","includes","newItems","oldItems","newIds","oldIds","filter","itemId","Checkbox","handleChangeCallback","CheckboxEntry","TemplatingEntry","Templating","severity","message","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","_debounceInput","debounceTime","isNumber","$inject","FeelPopupModule","constructor","_eventBus","feelPopup"],"mappings":"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"}
|