@bpmn-io/properties-panel 3.10.1 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../node_modules/preact/hooks/dist/hooks.mjs","../node_modules/preact/compat/dist/compat.mjs","../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs","../src/components/Header.js","../src/context/DescriptionContext.js","../src/context/ErrorsContext.js","../src/context/EventContext.js","../src/context/LayoutContext.js","../src/context/TooltipContext.js","../src/hooks/useTooltipContext.js","../src/components/entries/Tooltip.js","../src/hooks/useDescriptionContext.js","../src/hooks/useError.js","../src/hooks/useEvent.js","../src/hooks/useKeyFactory.js","../src/hooks/useLayoutState.js","../src/hooks/usePrevious.js","../src/hooks/useShowEntryEvent.js","../src/hooks/useStickyIntersectionObserver.js","../src/hooks/useStaticCallback.js","../src/components/Group.js","../src/components/Placeholder.js","../src/components/entries/Description.js","../src/components/entries/templating/TemplatingEditor.js","../src/components/entries/FEEL/FeelEditor.js","../src/components/entries/FEEL/FeelIndicator.js","../src/components/entries/FEEL/FeelIcon.js","../src/components/entries/FEEL/context/FeelPopupContext.js","../src/components/util/dragger.js","../src/components/Popup.js","../src/components/entries/FEEL/FeelPopup.js","../src/components/entries/ToggleSwitch.js","../src/components/entries/NumberField.js","../src/components/entries/FEEL/Feel.js","../src/PropertiesPanel.js","../src/components/DropdownButton.js","../src/components/HeaderButton.js","../src/components/entries/Collapsible.js","../src/components/ListItem.js","../src/components/ListGroup.js","../src/components/entries/Checkbox.js","../src/components/entries/templating/Templating.js","../src/components/entries/List.js","../src/components/entries/Select.js","../src/components/entries/Simple.js","../src/components/entries/TextArea.js","../src/components/entries/TextField.js","../src/features/debounce-input/debounceInput.js","../src/features/debounce-input/index.js","../src/features/feel-popup/FeelPopupModule.js","../src/features/feel-popup/index.js"],"sourcesContent":["import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function h(n){return o=1,s(B,n)}function s(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function p(u,i){var o=d(t++,3);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function y(u,i){var o=d(t++,4);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,y(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[],t=0)),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}export{T as useCallback,q as useContext,x as useDebugValue,p as useEffect,P as useErrorBoundary,V as useId,A as useImperativeHandle,y as useLayoutEffect,F as useMemo,s as useReducer,_ as useRef,h as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function w(n){this.props=n}function x(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(w.prototype=new n).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var R=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var N=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var A=function(n,t){return null==n?null:r(r(n).map(t))},O={map:A,forEach:A,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},T=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r)};var F=e.unmount;function I(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return I(n,t,e)})),n}function L(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function U(){this.__u=0,this.t=null,this.__b=null}function D(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function V(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),F&&F(n)},(U.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=D(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=L(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},U.prototype.componentWillUnmount=function(){this.t=[]},U.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=I(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__h=null),[t(u,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function P(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var e=this,r=n.i;e.componentWillUnmount=function(){o(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),o(t(P,{context:e.context},n.__v),e.l)}function z(n,e){var r=t(j,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new n).__a=function(n){var t=this,e=D(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var B=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,H=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Z=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Y=/[A-Z0-9]/g,$=\"undefined\"!=typeof document,q=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function G(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function J(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var K=e.event;function Q(){}function X(){return this.cancelBubble}function nn(){return this.defaultPrevented}e.event=function(n){return K&&(n=K(n)),n.persist=Q,n.isPropagationStopped=X,n.isDefaultPrevented=nn,n.nativeEvent=n};var tn,en={enumerable:!1,configurable:!0,get:function(){return this.class}},rn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={};for(var o in t){var i=t[o];if(!(\"value\"===o&&\"defaultValue\"in t&&null==i||$&&\"children\"===o&&\"noscript\"===e||\"class\"===o||\"className\"===o)){var l=o.toLowerCase();\"defaultValue\"===o&&\"value\"in t&&null==t.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":\"ondoubleclick\"===l?o=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||q(t.type)?\"onfocus\"===l?o=\"onfocusin\":\"onblur\"===l?o=\"onfocusout\":Z.test(o)?o=l:-1===e.indexOf(\"-\")&&H.test(o)?o=o.replace(Y,\"-$&\").toLowerCase():null===i&&(i=void 0):l=o=\"oninput\",\"oninput\"===l&&u[o=l]&&(o=\"oninputCapture\"),u[o]=i}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",en)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=B,rn&&rn(n)};var un=e.__r;e.__r=function(n){un&&un(n),tn=n.__c};var on=e.diffed;e.diffed=function(n){on&&on(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),tn=null};var ln={ReactCurrentDispatcher:{current:{readContext:function(n){return tn.__n[n.__c].props.value}}}},cn=\"17.0.2\";function fn(n){return t.bind(null,n)}function an(n){return!!n&&n.$$typeof===B}function sn(n){return an(n)&&n.type===u}function hn(n){return an(n)?f.apply(null,arguments):n}function vn(n){return!!n.__k&&(o(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=u;function _n(n){n()}function bn(n){return n}function Sn(){return[!1,_n]}var gn=d,Cn=an;function En(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),v(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var wn={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:gn,useTransition:Sn,useDeferredValue:bn,useSyncExternalStore:En,startTransition:_n,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:S,version:\"17.0.2\",Children:O,render:G,hydrate:J,unmountComponentAtNode:vn,createPortal:z,createElement:t,createContext:l,createFactory:fn,cloneElement:hn,createRef:c,Fragment:u,isValidElement:an,isElement:Cn,isFragment:sn,findDOMNode:dn,Component:n,PureComponent:w,memo:x,forwardRef:k,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:U,SuspenseList:V,lazy:M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:ln};export{O as Children,w as PureComponent,yn as StrictMode,U as Suspense,V as SuspenseList,ln as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,hn as cloneElement,fn as createFactory,z as createPortal,wn as default,dn as findDOMNode,mn as flushSync,k as forwardRef,J as hydrate,Cn as isElement,sn as isFragment,an as isValidElement,M as lazy,x as memo,G as render,_n as startTransition,vn as unmountComponentAtNode,pn as unstable_batchedUpdates,bn as useDeferredValue,gn as useInsertionEffect,En as useSyncExternalStore,Sn as useTransition,cn as version};\n//# sourceMappingURL=compat.module.js.map\n","import{options as r}from\"preact\";export{Fragment}from\"preact\";var _=0;function o(o,e,n,t,f,l){var s,u,a={};for(u in e)\"ref\"==u?s=e[u]:a[u]=e[u];var i={type:o,props:a,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--_,__source:f,__self:l};if(\"function\"==typeof o&&(s=o.defaultProps))for(u in s)void 0===a[u]&&(a[u]=s[u]);return r.vnode&&r.vnode(i),i}export{o as jsx,o as jsxDEV,o as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import { ExternalLinkIcon } from './icons';\n\n/**\n * @typedef { {\n * getElementLabel: (element: object) => string,\n * getTypeLabel: (element: object) => string,\n * getElementIcon: (element: object) => import('preact').Component,\n * getDocumentationRef: (element: object) => string\n * } } HeaderProvider\n */\n\n/**\n * @param {Object} props\n * @param {Object} props.element,\n * @param {HeaderProvider} props.headerProvider\n */\nexport default function Header(props) {\n\n const {\n element,\n headerProvider\n } = props;\n\n const {\n getElementIcon,\n getDocumentationRef,\n getElementLabel,\n getTypeLabel,\n } = headerProvider;\n\n const label = getElementLabel(element);\n const type = getTypeLabel(element);\n const documentationRef = getDocumentationRef && getDocumentationRef(element);\n\n const ElementIcon = getElementIcon(element);\n\n return (<div class=\"bio-properties-panel-header\">\n <div class=\"bio-properties-panel-header-icon\">\n { ElementIcon && <ElementIcon width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" /> }\n </div>\n <div class=\"bio-properties-panel-header-labels\">\n <div title={ type } class=\"bio-properties-panel-header-type\">{ type }</div>\n { label ?\n <div title={ label } class=\"bio-properties-panel-header-label\">{ label }</div> :\n null\n }\n </div>\n <div class=\"bio-properties-panel-header-actions\">\n { documentationRef ?\n <a\n rel=\"noopener\"\n class=\"bio-properties-panel-header-link\"\n href={ documentationRef }\n title=\"Open documentation\"\n target=\"_blank\">\n <ExternalLinkIcon />\n </a> :\n null\n }\n </div>\n </div>);\n}","import {\n createContext\n} from 'preact';\n\nconst DescriptionContext = createContext({\n description: {},\n getDescriptionForId: () => {}\n});\n\nexport default DescriptionContext;\n","import {\n createContext\n} from 'preact';\n\nconst ErrorsContext = createContext({\n errors: {}\n});\n\nexport default ErrorsContext;","/**\n * @typedef {Function} <propertiesPanel.showEntry> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\n/**\n * @typedef {Function} <propertiesPanel.showError> callback\n *\n * @example\n *\n * useEvent('propertiesPanel.showError', ({ focus = false, message, ...rest }) => {\n * // ...\n * });\n *\n * @param {Object} context\n * @param {string} context.message\n * @param {boolean} [context.focus]\n *\n * @returns void\n */\n\nimport { createContext } from 'preact';\n\nconst EventContext = createContext({ eventBus: null });\n\nexport default EventContext;\n","import {\n createContext\n} from 'preact';\n\nconst LayoutContext = createContext({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nexport default LayoutContext;","import {\n createContext\n} from 'preact';\n\nconst TooltipContext = createContext({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\nexport default TooltipContext;\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n TooltipContext\n} from '../context';\n\n/**\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const tooltip = useTooltipContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = useContext(TooltipContext);\n\n return getTooltipForId(id, element);\n}\n","import {\n useRef,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport { useTooltipContext } from '../../hooks/useTooltipContext';\n\nimport { createPortal } from 'preact/compat';\n\n/**\n * @param {Object} props\n * @param {String} props.forId\n * @param {String} props.value\n */\nexport default function TooltipWrapper(props) {\n const {\n forId,\n element\n } = props;\n\n const contextDescription = useTooltipContext(forId, element);\n\n const value = props.value || contextDescription;\n\n if (!value) {\n return props.children;\n }\n\n return <Tooltip { ...props } value={ value } forId={ prefixId(forId) } />;\n}\n\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent\n } = props;\n\n const [ visible, setShow ] = useState(false);\n const [ focusedViaKeyboard, setFocusedViaKeyboard ] = useState(false);\n\n let timeout = null;\n\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n\n const showTooltip = async (event) => {\n const show = () => setShow(true);\n\n if (!visible && !timeout) {\n if (event instanceof MouseEvent) {\n timeout = setTimeout(show, 200);\n } else {\n show();\n setFocusedViaKeyboard(true);\n }\n }\n };\n\n const hideTooltip = () => {\n setShow(false);\n setFocusedViaKeyboard(false);\n };\n\n const hideTooltipViaEscape = (e) => {\n e.code === 'Escape' && hideTooltip();\n };\n\n const isTooltipHovered = ({ x, y }) => {\n const tooltip = tooltipRef.current;\n const wrapper = wrapperRef.current;\n\n return tooltip && (\n inBounds(x, y, wrapper.getBoundingClientRect()) ||\n inBounds(x, y, tooltip.getBoundingClientRect())\n );\n };\n\n useEffect(() => {\n const { current } = wrapperRef;\n\n if (!current) {\n return;\n }\n\n const hideHoveredTooltip = (e) => {\n const isFocused = document.activeElement === wrapperRef.current\n || document.activeElement.closest('.bio-properties-panel-tooltip');\n\n if (visible && !isTooltipHovered({ x: e.x, y: e.y }) && !(isFocused && focusedViaKeyboard)) {\n hideTooltip();\n }\n };\n\n const hideFocusedTooltip = (e) => {\n const { relatedTarget } = e;\n const isTooltipChild = (el) => !!el.closest('.bio-properties-panel-tooltip');\n\n\n if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {\n hideTooltip();\n }\n };\n\n document.addEventListener('wheel', hideHoveredTooltip);\n document.addEventListener('focusout', hideFocusedTooltip);\n document.addEventListener('mousemove', hideHoveredTooltip);\n\n return () => {\n document.removeEventListener('wheel', hideHoveredTooltip);\n document.removeEventListener('mousemove', hideHoveredTooltip);\n document.removeEventListener('focusout', hideFocusedTooltip);\n };\n }, [ wrapperRef.current, visible, focusedViaKeyboard ]);\n\n const renderTooltip = () => {\n return (\n <div\n class=\"bio-properties-panel-tooltip\"\n role=\"tooltip\"\n id=\"bio-properties-panel-tooltip\"\n aria-labelledby={ forId }\n style={ getTooltipPosition(wrapperRef.current) }\n ref={ tooltipRef }\n onClick={ (e)=> e.stopPropagation() }\n >\n <div class=\"bio-properties-panel-tooltip-content\">\n {value}\n </div>\n <div class=\"bio-properties-panel-tooltip-arrow\" />\n </div>\n );};\n\n return (\n <div class=\"bio-properties-panel-tooltip-wrapper\" tabIndex=\"0\"\n ref={ wrapperRef }\n onMouseEnter={ showTooltip }\n onMouseLeave={ ()=> {\n clearTimeout(timeout);\n timeout = null;\n } }\n onFocus={ showTooltip }\n onKeyDown={ hideTooltipViaEscape }\n >\n {props.children}\n {visible ?\n (parent ?\n createPortal(renderTooltip(), parent.current)\n : renderTooltip()\n ) : null\n }\n </div>\n );\n}\n\n\n// helper\nfunction inBounds(x, y, bounds) {\n const { top, right, bottom, left } = bounds;\n return x >= left && x <= right && y >= top && y <= bottom;\n}\n\nfunction getTooltipPosition(refElement) {\n const refPosition = refElement.getBoundingClientRect();\n\n const right = `calc(100% - ${refPosition.x}px)`;\n const top = `${refPosition.top - 10}px`;\n\n return `right: ${right}; top: ${top};`;\n}\n\nfunction isHovered(element) {\n return element.matches(':hover');\n}\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import {\n useContext\n} from 'preact/hooks';\n\nimport {\n DescriptionContext\n} from '../context';\n\n/**\n * Accesses the global DescriptionContext and returns a description for a given id and element.\n *\n * @example\n * ```jsx\n * function TextField(props) {\n * const description = useDescriptionContext('input1', element);\n * }\n * ```\n *\n * @param {string} id\n * @param {object} element\n *\n * @returns {string}\n */\nexport function useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = useContext(DescriptionContext);\n\n return getDescriptionForId(id, element);\n}\n","import { useContext } from 'preact/hooks';\n\nimport { ErrorsContext } from '../context';\n\nexport function useError(id) {\n const { errors } = useContext(ErrorsContext);\n\n return errors[ id ];\n}\n\nexport function useErrors() {\n const { errors } = useContext(ErrorsContext);\n\n return errors;\n}","import { useContext, useEffect, useRef } from 'preact/hooks';\n\nimport { EventContext } from '../context';\n\n\n/**\n * Subscribe to an event immediately. Update subscription after inputs changed.\n *\n * @param {string} event\n * @param {Function} callback\n */\nexport function useEvent(event, callback, eventBus) {\n const eventContext = useContext(EventContext);\n\n if (!eventBus) {\n ({ eventBus } = eventContext);\n }\n\n const didMount = useRef(false);\n\n // (1) subscribe immediately\n if (eventBus && !didMount.current) {\n eventBus.on(event, callback);\n }\n\n // (2) update subscription after inputs changed\n useEffect(() => {\n if (eventBus && didMount.current) {\n eventBus.on(event, callback);\n }\n\n didMount.current = true;\n\n return () => {\n if (eventBus) {\n eventBus.off(event, callback);\n }\n };\n }, [ callback, event, eventBus ]);\n}\n","import { useMemo } from 'preact/hooks';\n\nconst KEY_LENGTH = 6;\n\n/**\n * Create a persistent key factory for plain objects without id.\n *\n * @example\n * ```jsx\n * function List({ objects }) {\n * const getKey = useKeyFactory();\n * return (<ol>{\n * objects.map(obj => {\n * const key = getKey(obj);\n * return <li key={key}>obj.name</li>\n * })\n * }</ol>);\n * }\n * ```\n *\n * @param {any[]} dependencies\n * @returns {(element: object) => string}\n */\nexport function useKeyFactory(dependencies = []) {\n const map = useMemo(() => new Map(), dependencies);\n\n const getKey = el => {\n let key = map.get(el);\n\n if (!key) {\n key = Math.random().toString().slice(-KEY_LENGTH);\n map.set(el, key);\n }\n\n return key;\n };\n\n return getKey;\n}\n","import {\n useCallback,\n useContext\n} from 'preact/hooks';\n\nimport {\n LayoutContext\n} from '../context';\n\n/**\n * Creates a state that persists in the global LayoutContext.\n *\n * @example\n * ```jsx\n * function Group(props) {\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\n * }\n * ```\n *\n * @param {(string|number)[]} path\n * @param {any} [defaultValue]\n *\n * @returns {[ any, Function ]}\n */\nexport function useLayoutState(path, defaultValue) {\n const {\n getLayoutForKey,\n setLayoutForKey\n } = useContext(LayoutContext);\n\n const layoutForKey = getLayoutForKey(path, defaultValue);\n\n const setState = useCallback ((newValue) => {\n setLayoutForKey(path, newValue);\n }, [ setLayoutForKey ]);\n\n\n return [ layoutForKey, setState ];\n}\n","import {\n useEffect,\n useRef\n} from 'preact/hooks';\n\n/**\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\n * state on updates.\n *\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\n */\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import {\n useCallback,\n useContext,\n useEffect,\n useRef\n} from 'preact/hooks';\n\nimport { isFunction } from 'min-dash';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useEvent } from './useEvent';\n\n/**\n * Subscribe to `propertiesPanel.showEntry`.\n *\n * @param {string} id\n *\n * @returns {import('preact').Ref}\n */\nexport function useShowEntryEvent(id) {\n const { onShow } = useContext(PropertiesPanelContext);\n\n const ref = useRef();\n\n const focus = useRef(false);\n\n const onShowEntry = useCallback((event) => {\n if (event.id === id) {\n onShow();\n\n if (!focus.current) {\n focus.current = true;\n }\n }\n }, [ id ]);\n\n useEffect(() => {\n if (focus.current && ref.current) {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (isFunction(ref.current.select)) {\n ref.current.select();\n }\n\n focus.current = false;\n }\n });\n\n useEvent('propertiesPanel.showEntry', onShowEntry);\n\n return ref;\n}","import {\n useCallback,\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { useEvent } from './useEvent';\n\n\n/**\n * @callback setSticky\n * @param {boolean} value\n */\n\n/**\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\n * If sticky is observered setSticky(true) will be called.\n * If sticky mode is left, setSticky(false) will be called.\n *\n *\n * @param {Object} ref\n * @param {string} scrollContainerSelector\n * @param {setSticky} setSticky\n */\nexport function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\n\n const [ scrollContainer, setScrollContainer ] = useState(domQuery(scrollContainerSelector));\n\n const updateScrollContainer = useCallback(() => {\n const newScrollContainer = domQuery(scrollContainerSelector);\n\n if (newScrollContainer !== scrollContainer) {\n setScrollContainer(newScrollContainer);\n }\n }, [ scrollContainerSelector, scrollContainer ]);\n\n useEffect(() => {\n updateScrollContainer();\n }, [ updateScrollContainer ]);\n\n useEvent('propertiesPanel.attach', updateScrollContainer);\n useEvent('propertiesPanel.detach', updateScrollContainer);\n\n useEffect(() => {\n const Observer = IntersectionObserver;\n\n // return early if IntersectionObserver is not available\n if (!Observer) {\n return;\n }\n\n // TODO(@barmac): test this\n if (!ref.current || !scrollContainer) {\n return;\n }\n\n const observer = new Observer((entries) => {\n\n // scroll container is unmounted, do not update sticky state\n if (scrollContainer.scrollHeight === 0) {\n return;\n }\n\n entries.forEach(entry => {\n if (entry.intersectionRatio < 1) {\n setSticky(true);\n }\n else if (entry.intersectionRatio === 1) {\n setSticky(false);\n }\n });\n },\n {\n root: scrollContainer,\n rootMargin: '0px 0px 999999% 0px', // Use bottom margin to avoid stickyness when scrolling out to bottom\n threshold: [ 1 ]\n });\n observer.observe(ref.current);\n\n // Unobserve if unmounted\n return () => {\n observer.unobserve(ref.current);\n };\n\n }, [ ref.current, scrollContainer, setSticky ]);\n}\n","import { useCallback, useRef } from 'preact/hooks';\n\n/**\n * Creates a static function reference with changing body.\n * This is necessary when external libraries require a callback function\n * that has references to state variables.\n *\n * Usage:\n * const callback = useStaticCallback((val) => {val === currentState});\n *\n * The `callback` reference is static and can be safely used in external\n * libraries or as a prop that does not cause rerendering of children.\n *\n * @param {Function} callback function with changing reference\n * @returns {Function} static function reference\n */\nexport function useStaticCallback(callback) {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n return useCallback(\n (...args) => callbackRef.current(...args),\n []\n );\n}","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport {\n isFunction\n} from 'min-dash';\n\nimport {\n useErrors,\n useLayoutState\n} from '../hooks';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nimport { ArrowIcon } from './icons';\n\n/**\n * @param {import('../PropertiesPanel').GroupDefinition} props\n */\nexport default function Group(props) {\n const {\n element,\n entries = [],\n id,\n label,\n shouldOpen = false,\n } = props;\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n shouldOpen\n );\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const toggleOpen = () => setOpen(!open);\n\n const [ edited, setEdited ] = useState(false);\n\n const [ sticky, setSticky ] = useState(false);\n\n // set edited state depending on all entries\n useEffect(() => {\n\n // TODO(@barmac): replace with CSS when `:has()` is supported in all major browsers, or rewrite as in https://github.com/camunda/camunda-modeler/issues/3815#issuecomment-1733038161\n const scheduled = requestAnimationFrame(() => {\n const hasOneEditedEntry = entries.find(entry => {\n const {\n id,\n isEdited\n } = entry;\n\n const entryNode = domQuery(`[data-entry-id=\"${id}\"]`);\n\n if (!isFunction(isEdited) || !entryNode) {\n return false;\n }\n\n const inputNode = domQuery('.bio-properties-panel-input', entryNode);\n\n return isEdited(inputNode);\n });\n\n setEdited(hasOneEditedEntry);\n });\n\n return () => cancelAnimationFrame(scheduled);\n }, [ entries, setEdited ]);\n\n // set error state depending on all entries\n const allErrors = useErrors();\n const hasErrors = entries.some(entry => allErrors[entry.id]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div class={ classnames(\n 'bio-properties-panel-group-header',\n edited ? '' : 'empty',\n open ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) } onClick={ toggleOpen }>\n <div\n title={ props.tooltip ? null : label }\n data-title={ label }\n class=\"bio-properties-panel-group-header-title\"\n >\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element } parent={ groupRef }>\n { label }\n </Tooltip>\n </div>\n <div class=\"bio-properties-panel-group-header-buttons\">\n {\n <DataMarker\n edited={ edited }\n hasErrors={ hasErrors }\n />\n }\n <button\n title=\"Toggle section\"\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-group-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\nfunction DataMarker(props) {\n const {\n edited,\n hasErrors\n } = props;\n\n if (hasErrors) {\n return (\n <div title=\"Section contains an error\" class=\"bio-properties-panel-dot bio-properties-panel-dot--error\"></div>\n );\n }\n\n if (edited) {\n return (\n <div title=\"Section contains data\" class=\"bio-properties-panel-dot\"></div>\n );\n }\n return null;\n}","/**\n * @typedef { {\n * text: (element: object) => string,\n * icon?: (element: Object) => import('preact').Component\n * } } PlaceholderDefinition\n *\n * @param { PlaceholderDefinition } props\n */\nexport default function Placeholder(props) {\n const {\n text,\n icon: Icon\n } = props;\n\n return (\n <div class=\"bio-properties-panel open\">\n <section class=\"bio-properties-panel-placeholder\">\n { Icon && <Icon class=\"bio-properties-panel-placeholder-icon\" /> }\n <p class=\"bio-properties-panel-placeholder-text\">{ text }</p>\n </section>\n </div>\n );\n}","import {\n useDescriptionContext\n} from '../../hooks';\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.forId - id of the entry the description is used for\n * @param {String} props.value\n */\nexport default function Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n\n const contextDescription = useDescriptionContext(forId, element);\n\n const description = value || contextDescription;\n\n if (description) {\n return (\n <div class=\"bio-properties-panel-description\">\n { description }\n </div>\n );\n }\n}\n","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { FeelersEditor } from 'feelers';\nimport { useStaticCallback } from '../../../hooks';\n\nimport { ExternalLinkIcon } from '../../icons';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst CodeEditor = forwardRef((props, ref) => {\n\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop,\n onPopupOpen = noop,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n editor = new FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feelers-editor-container',\n popupOpen ? 'popupOpen' : null\n ) }>\n <div class=\"bio-properties-panel-feelers-editor__open-popup-placeholder\">Opened in editor</div>\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n\n <button\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen('feelers') }><ExternalLinkIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","import classNames from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport FeelEditor from '@bpmn-io/feel-editor';\n\nimport { lineNumbers } from '@codemirror/view';\n\nimport { useStaticCallback } from '../../../hooks';\n\nimport { ExternalLinkIcon } from '../../icons';\n\nconst noop = () => {};\n\n/**\n * Buffer `.focus()` calls while the editor is not initialized.\n * Set Focus inside when the editor is ready.\n */\nconst useBufferedFocus = function(editor, ref) {\n\n const [ buffer, setBuffer ] = useState(undefined);\n\n ref.current = useMemo(() => ({\n focus: (offset) => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [ editor ]);\n\n useEffect(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [ editor, buffer ]);\n};\n\nconst CodeEditor = forwardRef((props, ref) => {\n\n const {\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop,\n onLint = noop,\n onPopupOpen = noop,\n popupOpen,\n disabled,\n tooltipContainer,\n variables\n } = props;\n\n const inputRef = useRef();\n const [ editor, setEditor ] = useState();\n const [ localValue, setLocalValue ] = useState(value || '');\n\n useBufferedFocus(editor, ref);\n\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n\n useEffect(() => {\n\n let editor;\n\n /* Trigger FEEL toggle when\n *\n * - `backspace` is pressed\n * - AND the cursor is at the beginning of the input\n */\n const onKeyDown = e => {\n if (e.key !== 'Backspace' || !editor) {\n return;\n }\n\n const selection = editor.getSelection();\n const range = selection.ranges[selection.mainIndex];\n\n if (range.from === 0 && range.to === 0) {\n onFeelToggle();\n }\n };\n\n editor = new FeelEditor({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables: variables,\n extensions: [\n ...enableGutters ? [ lineNumbers() ] : []\n ]\n });\n\n setEditor(\n editor\n );\n\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (value === localValue) {\n return;\n }\n\n editor.setValue(value);\n setLocalValue(value);\n }, [ value ]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.setVariables(variables);\n }, [ variables ]);\n\n const handleClick = () => {\n ref.current.focus();\n };\n\n return <div class={ classNames(\n 'bio-properties-panel-feel-editor-container',\n disabled ? 'disabled' : null,\n popupOpen ? 'popupOpen' : null)\n }>\n <div class=\"bio-properties-panel-feel-editor__open-popup-placeholder\">Opened in editor</div>\n <div\n name={ props.name }\n class={ classNames('bio-properties-panel-input', localValue ? 'edited' : null) }\n ref={ inputRef }\n onClick={ handleClick }\n ></div>\n <button\n title=\"Open pop-up editor\"\n class=\"bio-properties-panel-open-feel-popup\"\n onClick={ () => onPopupOpen() }><ExternalLinkIcon /></button>\n </div>;\n});\n\nexport default CodeEditor;","export function FeelIndicator(props) {\n const {\n active\n } = props;\n\n if (!active) {\n return null;\n }\n\n return <span class=\"bio-properties-panel-feel-indicator\">\n =\n </span>;\n}","import classNames from 'classnames';\nimport { FeelIcon as FeelIconSvg } from '../../icons';\n\nconst noop = () => {};\n\n/**\n * @param {Object} props\n * @param {Object} props.label\n * @param {String} props.feel\n */\nexport default function FeelIcon(props) {\n\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop\n } = props;\n\n const feelRequiredLabel = 'FEEL expression is mandatory';\n const feelOptionalLabel = `Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`;\n\n const handleClick = e => {\n onClick(e);\n\n // when pointer event was created from keyboard, keep focus on button\n if (!e.pointerType) {\n e.stopPropagation();\n }\n };\n\n return (\n <button\n class={ classNames('bio-properties-panel-feel-icon',\n active ? 'active' : null,\n feel === 'required' ? 'required' : 'optional') }\n onClick={ handleClick }\n disabled={ feel === 'required' || disabled }\n title={\n feel === 'required' ? feelRequiredLabel : feelOptionalLabel\n }\n >\n <FeelIconSvg />\n </button>\n );\n}","import {\n createContext\n} from 'preact';\n\nconst FeelPopupContext = createContext({\n open: () => {},\n close: () => {},\n source: null\n});\n\nexport default FeelPopupContext;","import { domify } from 'min-dom';\n\n/**\n * Add a dragger that calls back the passed function with\n * { event, delta } on drag.\n *\n * @example\n *\n * function dragMove(event, delta) {\n * // we are dragging (!!)\n * }\n *\n * domElement.addEventListener('dragstart', dragger(dragMove));\n *\n * @param {Function} fn\n * @param {Element} [dragPreview]\n *\n * @return {Function} drag start callback function\n */\nexport function createDragger(fn, dragPreview) {\n\n let self;\n\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n\n self = this;\n\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n\n return onDragStart;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction emptyCanvas() {\n return domify('<canvas width=\"0\" height=\"0\" />');\n}","import { createPortal, forwardRef } from 'preact/compat';\n\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\n\nimport classNames from 'classnames';\n\nimport { query as domQuery } from 'min-dom';\n\nimport * as focusTrap from 'focus-trap';\n\nimport { DragIcon } from './icons';\n\nimport { createDragger } from './util/dragger';\n\n\nconst noop = () => {};\n\n/**\n * A generic popup component.\n *\n * @param {Object} props\n * @param {HTMLElement} [props.container]\n * @param {string} [props.className]\n * @param {boolean} [props.delayInitialFocus]\n * @param {{x: number, y: number}} [props.position]\n * @param {number} [props.width]\n * @param {number} [props.height]\n * @param {Function} props.onClose\n * @param {Function} [props.onPostActivate]\n * @param {Function} [props.onPostDeactivate]\n * @param {boolean} [props.returnFocus]\n * @param {boolean} [props.closeOnEscape]\n * @param {string} props.title\n * @param {Ref} [ref]\n */\nfunction PopupComponent(props, globalRef) {\n\n const {\n container,\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop,\n onPostDeactivate = noop,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n\n const focusTrapRef = useRef(null);\n const localRef = useRef(null);\n const popupRef = globalRef || localRef;\n\n const containerNode = useMemo(() => getContainerNode(container), [ container ]);\n\n const handleKeydown = event => {\n\n // do not allow keyboard events to bubble\n event.stopPropagation();\n\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n\n let style = {};\n\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px'\n };\n }\n\n if (width) {\n style.width = width + 'px';\n }\n\n if (height) {\n style.height = height + 'px';\n }\n\n useEffect(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n\n return () => { popupRef.current.removeEventListener('focusin', handleFocus); };\n }, [ popupRef ]);\n\n useEffect(() => {\n if (popupRef.current) {\n focusTrapRef.current = focusTrap.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus\n });\n\n focusTrapRef.current.activate();\n }\n\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [ popupRef ]);\n\n return createPortal(\n <div\n aria-label={ title }\n tabIndex={ -1 }\n ref={ popupRef }\n onKeyDown={ handleKeydown }\n role=\"dialog\"\n class={ classNames('bio-properties-panel-popup', className) }\n style={ style }>{ props.children }</div>\n , containerNode || document.body\n );\n}\n\nexport const Popup = forwardRef(PopupComponent);\n\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\n\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n emit = () => {},\n title,\n ...rest\n } = props;\n\n // we can't use state as we need to\n // manipulate this inside dragging events\n const context = useRef({\n startPosition: null,\n newPosition: null\n });\n\n const dragPreviewRef = useRef();\n\n const titleRef = useRef();\n\n const onMove = (event, delta) => {\n cancel(event);\n\n const { x: dx, y: dy } = delta;\n\n const newPosition = {\n x: context.current.startPosition.x + dx,\n y: context.current.startPosition.y + dy\n };\n\n const popupParent = getPopupParent(titleRef.current);\n\n popupParent.style.top = newPosition.y + 'px';\n popupParent.style.left = newPosition.x + 'px';\n\n // notify interested parties\n emit('dragover', { newPosition, delta });\n };\n\n const onMoveStart = (event) => {\n\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n\n event.stopPropagation();\n\n const popupParent = getPopupParent(titleRef.current);\n\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top\n };\n\n // notify interested parties\n emit('dragstart');\n };\n\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n // notify interested parties\n emit('dragend');\n };\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-popup__header',\n draggable && 'draggable',\n className\n ) }\n ref={ titleRef }\n draggable={ draggable }\n onDragStart={ onMoveStart }\n onDragEnd={ onMoveEnd }\n { ...rest }>\n { draggable && (\n <>\n <div ref={ dragPreviewRef } class=\"bio-properties-panel-popup__drag-preview\"></div>\n <div class=\"bio-properties-panel-popup__drag-handle\">\n <DragIcon />\n </div>\n </>\n )}\n <div class=\"bio-properties-panel-popup__title\">{ title }</div>\n { children }\n </div>\n );\n}\n\nfunction Body(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__body', className) } { ...rest }>\n { children }\n </div>\n );\n}\n\nfunction Footer(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n\n return (\n <div class={ classNames('bio-properties-panel-popup__footer', className) } { ...rest }>\n { props.children }\n </div>\n );\n}\n\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\n\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nfunction getContainerNode(node) {\n if (typeof node === 'string') {\n return domQuery(node);\n }\n\n return node;\n}","import {\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { FeelPopupContext } from './context';\n\nimport { usePrevious } from '../../../hooks';\n\nimport { Popup } from '../../Popup';\n\nimport CodeEditor from './FeelEditor';\n\nimport TemplatingEditor from '../templating/TemplatingEditor';\n\nexport const FEEL_POPUP_WIDTH = 700;\nexport const FEEL_POPUP_HEIGHT = 250;\n\n\n/**\n * FEEL popup component, built as a singleton. Emits lifecycle events as follows:\n * - `feelPopup.open` - fired before the popup is mounted\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup\n * - `feelPopup.closed` - fired after the popup is unmounted\n */\nexport default function FEELPopupRoot(props) {\n const {\n element,\n eventBus = { fire() {}, on() {}, off() {} },\n popupContainer\n } = props;\n\n const prevElement = usePrevious(element);\n\n const [ popupConfig, setPopupConfig ] = useState({});\n const [ open, setOpen ] = useState(false);\n const [ source, setSource ] = useState(null);\n const [ sourceElement, setSourceElement ] = useState(null);\n\n const emit = (type, context) => {\n eventBus.fire('feelPopup.' + type, context);\n };\n\n const isOpen = useCallback(() => {\n return !!open;\n }, [ open ]);\n\n useUpdateEffect(() => {\n if (!open) {\n emit('closed');\n }\n }, [ open ]);\n\n const handleOpen = (entryId, config, _sourceElement) => {\n setSource(entryId);\n setPopupConfig(config);\n setOpen(true);\n setSourceElement(_sourceElement);\n emit('open');\n };\n\n const handleClose = () => {\n setOpen(false);\n setSource(null);\n };\n\n const feelPopupContext = {\n open: handleOpen,\n close: handleClose,\n source\n };\n\n // close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270\n useEffect(() => {\n if (element && prevElement && element !== prevElement) {\n handleClose();\n }\n }, [ element ]);\n\n // allow close and open via events\n useEffect(() => {\n\n const handlePopupOpen = (context) => {\n const {\n entryId,\n popupConfig,\n sourceElement\n } = context;\n\n handleOpen(entryId, popupConfig, sourceElement);\n };\n\n const handleIsOpen = () => {\n return isOpen();\n };\n\n eventBus.on('feelPopup._close', handleClose);\n eventBus.on('feelPopup._open', handlePopupOpen);\n eventBus.on('feelPopup._isOpen', handleIsOpen);\n\n return () => {\n eventBus.off('feelPopup._close', handleClose);\n eventBus.off('feelPopup._open', handleOpen);\n eventBus.off('feelPopup._isOpen', handleIsOpen);\n };\n\n }, [ eventBus, isOpen ]);\n\n return (\n <FeelPopupContext.Provider value={ feelPopupContext }>\n { open && (\n <FeelPopupComponent\n onClose={ handleClose }\n container={ popupContainer }\n sourceElement={ sourceElement }\n emit={ emit }\n { ...popupConfig } />\n )}\n { props.children }\n </FeelPopupContext.Provider>\n );\n}\n\nfunction FeelPopupComponent(props) {\n const {\n container,\n id,\n hostLanguage,\n onInput,\n onClose,\n position,\n singleLine,\n sourceElement,\n title,\n tooltipContainer,\n type,\n value,\n variables,\n emit\n } = props;\n\n const editorRef = useRef();\n const popupRef = useRef();\n\n const isAutoCompletionOpen = useRef(false);\n\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n\n const onKeyDownCapture = (event) => {\n\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n\n const onKeyDown = (event) => {\n\n if (event.key === 'Escape') {\n\n // close popup only if auto completion is not open\n // we need to do check this because the editor is not\n // stop propagating the keydown event\n // cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n\n useEffect(() => {\n emit('opened', { domNode: popupRef.current });\n return () => emit('close', { domNode: popupRef.current });\n }, []);\n\n return (\n <Popup\n container={ container }\n className=\"bio-properties-panel-feel-popup\"\n emit={ emit }\n position={ position }\n title={ title }\n onClose={ onClose }\n\n // handle focus manually on deactivate\n returnFocus={ false }\n closeOnEscape={ false }\n delayInitialFocus={ false }\n onPostDeactivate={ handleSetReturnFocus }\n height={ FEEL_POPUP_HEIGHT }\n width={ FEEL_POPUP_WIDTH }\n ref={ popupRef }\n >\n <Popup.Title\n title={ title }\n emit={ emit }\n draggable />\n <Popup.Body>\n <div\n onKeyDownCapture={ onKeyDownCapture }\n onKeyDown={ onKeyDown }\n class=\"bio-properties-panel-feel-popup__body\">\n\n {\n type === 'feel' && (\n <CodeEditor\n enableGutters={ true }\n id={ prefixId(id) }\n name={ id }\n onInput={ onInput }\n value={ value }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n\n {\n type === 'feelers' && (\n <TemplatingEditor\n id={ prefixId(id) }\n contentAttributes={ { 'aria-label': title } }\n enableGutters={ true }\n hostLanguage={ hostLanguage }\n name={ id }\n onInput={ onInput }\n value={ value }\n ref={ editorRef }\n singleLine={ singleLine }\n tooltipContainer={ tooltipContainer }\n />\n )\n }\n </div>\n </Popup.Body>\n <Popup.Footer>\n <button\n onClick={ onClose }\n title=\"Close pop-up editor\"\n class=\"bio-properties-panel-feel-popup__close-btn\">Close</button>\n </Popup.Footer>\n </Popup>\n );\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction autoCompletionOpen(element) {\n return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');\n}\n\n/**\n * This hook behaves like useEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import Description from './Description';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport classNames from 'classnames';\nimport Tooltip from './Tooltip';\n\nexport function ToggleSwitch(props) {\n const {\n id,\n label,\n onInput,\n value,\n switcherLabel,\n inline,\n onFocus,\n onBlur,\n inputRef,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = async () => {\n onInput(!value);\n };\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class={ classNames(\n 'bio-properties-panel-toggle-switch',\n { inline }\n ) }>\n <label class=\"bio-properties-panel-label\"\n for={ prefixId(id) }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <div class=\"bio-properties-panel-field-wrapper\">\n <label class=\"bio-properties-panel-toggle-switch__switcher\">\n <input\n ref={ inputRef }\n id={ prefixId(id) }\n class=\"bio-properties-panel-input\"\n type=\"checkbox\"\n onFocus={ onFocus }\n onBlur={ onBlur }\n name={ id }\n onInput={ handleInput }\n checked={ !!localValue } />\n <span class=\"bio-properties-panel-toggle-switch__slider\" />\n </label>\n { switcherLabel && <p class=\"bio-properties-panel-toggle-switch__label\">{ switcherLabel }</p> }\n </div>\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {String} props.switcherLabel\n * @param {Boolean} props.inline\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function ToggleSwitchEntry(props) {\n const {\n element,\n id,\n description,\n label,\n switcherLabel,\n inline,\n getValue,\n setValue,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-toggle-switch-entry\" data-entry-id={ id }>\n <ToggleSwitch\n id={ id }\n label={ label }\n value={ value }\n onInput={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel }\n inline={ inline }\n tooltip={ tooltip }\n element={ element } />\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError\n} from '../../hooks';\n\nexport function NumberField(props) {\n\n const {\n debounce,\n disabled,\n displayLabel = true,\n id,\n inputRef,\n label,\n max,\n min,\n onInput,\n step,\n value = '',\n onFocus,\n onBlur\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce(event => {\n\n const {\n validity,\n value\n } = event.target;\n\n if (validity.valid) {\n onInput(value ? parseFloat(value) : undefined);\n }\n });\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-numberfield\">\n {displayLabel && <label for={ prefixId(id) } class=\"bio-properties-panel-label\">{ label }</label> }\n <input\n id={ prefixId(id) }\n ref={ inputRef }\n type=\"number\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n max={ max }\n min={ min }\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n step={ step }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Boolean} props.debounce\n * @param {String} props.description\n * @param {Boolean} props.disabled\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {String} props.label\n * @param {String} props.max\n * @param {String} props.min\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {String} props.step\n * @param {Function} props.validate\n */\nexport default function NumberFieldEntry(props) {\n const {\n debounce,\n description,\n disabled,\n element,\n getValue,\n id,\n label,\n max,\n min,\n setValue,\n step,\n onFocus,\n onBlur,\n validate\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value ]);\n\n const onInput = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n\n const error = globalError || localError;\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '') } data-entry-id={ id }>\n <NumberField\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onInput={ onInput }\n max={ max }\n min={ min }\n step={ step }\n value={ value } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from '../Description';\nimport TemplatingEditor from '../templating/TemplatingEditor';\n\nimport {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { forwardRef } from 'preact/compat';\n\nimport classnames from 'classnames';\n\nimport { isFunction, isString } from 'min-dash';\n\nimport {\n useShowEntryEvent,\n useError,\n useStaticCallback\n} from '../../../hooks';\n\nimport CodeEditor from './FeelEditor';\nimport { FeelIndicator } from './FeelIndicator';\nimport FeelIcon from './FeelIcon';\n\nimport { FEEL_POPUP_WIDTH } from './FeelPopup';\n\nimport { FeelPopupContext } from './context';\n\nimport { ToggleSwitch } from '../ToggleSwitch';\n\nimport { NumberField } from '../NumberField';\nimport Tooltip from '../Tooltip';\n\nconst noop = () => { };\n\nfunction FeelTextfield(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\n onError,\n feel,\n value = '',\n disabled = false,\n variables,\n singleLine,\n tooltipContainer,\n OptionalComponent = OptionalFeelInput,\n tooltip\n } = props;\n\n const [ localValue, _setLocalValue ] = useState(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const feelActive = (isString(localValue) && localValue.startsWith('=')) || feel === 'required';\n const feelOnlyValue = (isString(localValue) && localValue.startsWith('=')) ? localValue.substring(1) : localValue;\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const {\n open: openPopup,\n source: popupSource\n } = useContext(FeelPopupContext);\n\n const popuOpen = popupSource === id;\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => {\n onInput(newValue);\n });\n }, [ onInput, debounce ]);\n\n const setLocalValue = newValue => {\n _setLocalValue(newValue);\n\n if (typeof newValue === 'undefined' || newValue === '' || newValue === '=') {\n handleInputCallback(undefined);\n } else {\n handleInputCallback(newValue);\n }\n\n };\n\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n\n if (!feelActive) {\n setLocalValue('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n }\n });\n\n const handleLocalInput = (newValue) => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n\n if (newValue === localValue) {\n return;\n }\n\n setLocalValue(newValue);\n\n if (!feelActive && isString(newValue) && newValue.startsWith('=')) {\n\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n\n const handleLint = useStaticCallback(lint => {\n\n if (!(lint && lint.length)) {\n onError(undefined);\n return;\n }\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n const handlePopupOpen = (type = 'feel') => {\n const popupOptions = {\n id,\n hostLanguage,\n onInput: handleLocalInput,\n position: calculatePopupPosition(containerRef.current),\n singleLine,\n title: getPopupTitle(element, label),\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n };\n\n openPopup(id, popupOptions, editorRef.current);\n };\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n // copy-paste integration\n useEffect(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n\n const pasteHandler = event => {\n if (feelActive || popuOpen) {\n return;\n }\n\n const data = event.clipboardData.getData('application/FEEL');\n\n if (data) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\n }\n };\n containerRef.current.addEventListener('copy', copyHandler);\n containerRef.current.addEventListener('cut', copyHandler);\n containerRef.current.addEventListener('paste', pasteHandler);\n\n return () => {\n containerRef.current.removeEventListener('copy', copyHandler);\n containerRef.current.removeEventListener('cut', copyHandler);\n containerRef.current.removeEventListener('paste', pasteHandler);\n };\n }, [ containerRef, feelActive, handleFeelToggle, setFocus ]);\n\n return (\n <div class={ classnames(\n 'bio-properties-panel-feel-entry',\n { 'feel-active': feelActive }\n ) }>\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n <FeelIcon\n label={ label }\n feel={ feel }\n onClick={ handleFeelToggle }\n active={ feelActive }></FeelIcon>\n </label>\n\n <div class=\"bio-properties-panel-feel-container\" ref={ containerRef }>\n <FeelIndicator\n active={ feelActive }\n disabled={ feel !== 'optional' || disabled }\n onClick={ handleFeelToggle }\n />\n {feelActive ?\n <CodeEditor\n id={ prefixId(id) }\n name={ id }\n onInput={ handleLocalInput }\n disabled={ disabled }\n popupOpen={ popuOpen }\n onFeelToggle={ () => { handleFeelToggle(); setFocus(true); } }\n onLint={ handleLint }\n onPopupOpen={ handlePopupOpen }\n value={ feelOnlyValue }\n variables={ variables }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n /> :\n <OptionalComponent\n { ...props }\n popupOpen={ popuOpen }\n onInput={ handleLocalInput }\n contentAttributes={ { 'id': prefixId(id), 'aria-label': label } }\n value={ localValue }\n ref={ editorRef }\n onPopupOpen={ handlePopupOpen }\n containerRef={ containerRef }\n />\n }\n </div>\n </div>\n );\n}\n\nconst OptionalFeelInput = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number') {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <input\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value || '' } />;\n});\n\n\nconst OptionalFeelNumberField = forwardRef((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: (position) => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n\n }\n };\n\n return <NumberField\n id={ id }\n debounce={ debounce }\n disabled={ disabled }\n displayLabel={ false }\n inputRef={ inputRef }\n max={ max }\n min={ min }\n onInput={ onInput }\n step={ step }\n value={ value }\n onFocus={ onFocus }\n onBlur={ onBlur }\n />;\n});\n\n\nconst OptionalFeelTextArea = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n input.setSelectionRange(0, 0);\n }\n };\n\n return <textarea\n id={ prefixId(id) }\n type=\"text\"\n ref={ inputRef }\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ e => onInput(e.target.value) }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value || '' }\n data-gramm=\"false\"\n />;\n});\n\nconst OptionalFeelToggleSwitch = forwardRef((props, ref) => {\n const {\n id,\n onInput,\n value,\n onFocus,\n onBlur,\n switcherLabel\n } = props;\n\n const inputRef = useRef();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <ToggleSwitch\n id={ id }\n value={ value }\n inputRef={ inputRef }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n switcherLabel={ switcherLabel } />;\n});\n\n\nconst OptionalFeelCheckbox = forwardRef((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n\n const inputRef = useRef();\n\n const handleChange = ({ target }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n\n input.focus();\n }\n };\n\n return <input\n ref={ inputRef }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ value }\n disabled={ disabled } />;\n});\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop,\n example,\n variables,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = temporaryError || localError || validationError;\n\n return (\n <div\n class={ classnames(\n props.class,\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <FeelTextfield\n { ...props }\n debounce={ debounce }\n disabled={ disabled }\n feel={ feel }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n onFocus={ onFocus }\n onBlur={ onBlur }\n example={ example }\n hostLanguage={ hostLanguage }\n singleLine={ singleLine }\n show={ show }\n value={ value }\n variables={ variables }\n tooltipContainer={ tooltipContainer }\n OptionalComponent={ props.OptionalComponent }\n tooltip={ tooltip } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.max\n * @param {String} props.min\n * @param {String} props.step\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelNumberEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-number\" OptionalComponent={ OptionalFeelNumberField } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTextAreaEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-textarea\" OptionalComponent={ OptionalFeelTextArea } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelToggleSwitchEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-toggle-switch\" OptionalComponent={ OptionalFeelToggleSwitch } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelCheckboxEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-checkbox\" OptionalComponent={ OptionalFeelCheckbox } { ...props } />;\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.hostLanguage\n * @param {Boolean} props.singleLine\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {Boolean} props.feel\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n * @param {Function} props.example\n * @param {Function} props.variables\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n */\nexport function FeelTemplatingEntry(props) {\n return <FeelEntry class=\"bio-properties-panel-feel-templating\" OptionalComponent={ TemplatingEditor } { ...props } />;\n}\n\nexport function isEdited(node) {\n if (!node) {\n return false;\n }\n\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n\n return !!node.value || node.classList.contains('edited');\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction calculatePopupPosition(element) {\n const { top, left } = element.getBoundingClientRect();\n\n return {\n left: left - FEEL_POPUP_WIDTH - 20,\n top: top\n };\n}\n\n// todo(pinussilvestrus): make this configurable in the future\nfunction getPopupTitle(element, label) {\n let popupTitle = '';\n\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n\n return `${popupTitle}${label}`;\n}\n","import {\n useState,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'preact/hooks';\n\nimport {\n assign,\n get,\n isArray,\n set\n} from 'min-dash';\n\nimport Header from './components/Header';\n\nimport Group from './components/Group';\n\nimport Placeholder from './components/Placeholder';\n\nimport {\n DescriptionContext,\n ErrorsContext,\n EventContext,\n LayoutContext,\n PropertiesPanelContext,\n TooltipContext\n} from './context';\n\nimport { FeelPopupRoot } from './components/entries/FEEL';\n\nimport { useEvent } from './hooks';\n\nconst DEFAULT_LAYOUT = {};\n\nconst DEFAULT_DESCRIPTION = {};\n\nconst DEFAULT_TOOLTIP = {};\n\n\n/**\n * @typedef { {\n * component: import('preact').Component,\n * id: String,\n * isEdited?: Function\n * } } EntryDefinition\n *\n * @typedef { {\n * autoFocusEntry: String,\n * autoOpen?: Boolean,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * remove: (event: MouseEvent) => void\n * } } ListItemDefinition\n *\n * @typedef { {\n * add: (event: MouseEvent) => void,\n * component: import('preact').Component,\n * element: Object,\n * id: String,\n * items: Array<ListItemDefinition>,\n * label: String,\n * shouldSort?: Boolean,\n * shouldOpen?: Boolean\n * } } ListGroupDefinition\n *\n * @typedef { {\n * component?: import('preact').Component,\n * entries: Array<EntryDefinition>,\n * id: String,\n * label: String,\n * shouldOpen?: Boolean\n * } } GroupDefinition\n *\n * @typedef { {\n * [id: String]: GetDescriptionFunction\n * } } DescriptionConfig\n *\n * @typedef { {\n * [id: String]: GetTooltipFunction\n * } } TooltipConfig\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetDescriptionFunction\n *\n * @callback { {\n * @param {string} id\n * @param {Object} element\n * @returns {string}\n * } } GetTooltipFunction\n *\n * @typedef { {\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\n * } } PlaceholderProvider\n *\n */\n\n\n/**\n * A basic properties panel component. Describes *how* content will be rendered, accepts\n * data from implementor to describe *what* will be rendered.\n *\n * @param {Object} props\n * @param {Object|Array} props.element\n * @param {import('./components/Header').HeaderProvider} props.headerProvider\n * @param {PlaceholderProvider} [props.placeholderProvider]\n * @param {Array<GroupDefinition|ListGroupDefinition>} props.groups\n * @param {Object} [props.layoutConfig]\n * @param {Function} [props.layoutChanged]\n * @param {DescriptionConfig} [props.descriptionConfig]\n * @param {Function} [props.descriptionLoaded]\n * @param {TooltipConfig} [props.tooltipConfig]\n * @param {Function} [props.tooltipLoaded]\n * @param {HTMLElement} [props.feelPopupContainer]\n * @param {Object} [props.eventBus]\n */\nexport default function PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n feelPopupContainer,\n eventBus\n } = props;\n\n // set-up layout context\n const [ layout, setLayout ] = useState(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n\n setLayout(newLayout);\n }, [ layoutConfig ]);\n\n useEffect(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [ layout, layoutChanged ]);\n\n const getLayoutForKey = (key, defaultValue) => {\n return get(layout, key, defaultValue);\n };\n\n const setLayoutForKey = (key, config) => {\n const newLayout = assign({}, layout);\n set(newLayout, key, config);\n setLayout(newLayout);\n };\n\n const layoutContext = {\n layout,\n setLayout,\n getLayoutForKey,\n setLayoutForKey\n };\n\n // set-up description context\n const description = useMemo(() => createDescriptionContext(descriptionConfig), [ descriptionConfig ]);\n\n useEffect(() => {\n if (typeof descriptionLoaded === 'function') {\n descriptionLoaded(description);\n }\n }, [ description, descriptionLoaded ]);\n\n\n const getDescriptionForId = (id, element) => {\n return description[id] && description[id](element);\n };\n\n const descriptionContext = {\n description,\n getDescriptionForId\n };\n\n // set-up tooltip context\n const tooltip = useMemo(() => createTooltipContext(tooltipConfig), [ tooltipConfig ]);\n\n useEffect(() => {\n if (typeof tooltipLoaded === 'function') {\n tooltipLoaded(tooltip);\n }\n }, [ tooltip, tooltipLoaded ]);\n\n const getTooltipForId = (id, element) => {\n return tooltip[id] && tooltip[id](element);\n };\n\n const tooltipContext = {\n tooltip,\n getTooltipForId\n };\n\n const [ errors, setErrors ] = useState({});\n\n const onSetErrors = ({ errors }) => setErrors(errors);\n\n useEvent('propertiesPanel.setErrors', onSetErrors, eventBus);\n\n const errorsContext = {\n errors\n };\n\n const eventContext = {\n eventBus\n };\n\n const propertiesPanelContext = {\n element\n };\n\n // empty state\n if (placeholderProvider && !element) {\n return <Placeholder { ...placeholderProvider.getEmpty() } />;\n }\n\n // multiple state\n if (placeholderProvider && isArray(element)) {\n return <Placeholder { ...placeholderProvider.getMultiple() } />;\n }\n\n return (\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n <ErrorsContext.Provider value={ errorsContext }>\n <DescriptionContext.Provider value={ descriptionContext }>\n <TooltipContext.Provider value={ tooltipContext }>\n <LayoutContext.Provider value={ layoutContext }>\n <EventContext.Provider value={ eventContext }>\n <FeelPopupRoot\n element={ element }\n eventBus={ eventBus }\n popupContainer={ feelPopupContainer }>\n <div class=\"bio-properties-panel\">\n <Header\n element={ element }\n headerProvider={ headerProvider } />\n <div class=\"bio-properties-panel-scroll-container\">\n {\n groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n\n return (\n <Component\n { ...group }\n key={ id }\n element={ element } />\n );\n })\n }\n </div>\n </div>\n </FeelPopupRoot>\n </EventContext.Provider>\n </LayoutContext.Provider>\n </TooltipContext.Provider>\n </DescriptionContext.Provider>\n </ErrorsContext.Provider>\n </PropertiesPanelContext.Provider>\n );\n}\n\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\n\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\n\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\n *\n * @param {Function} effect\n * @param {Array} deps\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = useRef(false);\n\n useLayoutEffect(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\n/**\n *\n * @param {object} props\n * @param {string} [props.class]\n * @param {import('preact').Component[]} [props.menuItems]\n * @returns\n */\nexport function DropdownButton(props) {\n const {\n class: className,\n children,\n menuItems = []\n } = props;\n\n const dropdownRef = useRef(null);\n const menuRef = useRef(null);\n\n const [ open, setOpen ] = useState(false);\n const close = () => setOpen(false);\n\n function onDropdownToggle(event) {\n if (menuRef.current && menuRef.current.contains(event.target)) {\n return;\n }\n\n event.stopPropagation();\n\n setOpen(open => !open);\n }\n\n function onActionClick(event, action) {\n event.stopPropagation();\n\n close();\n action();\n }\n\n useGlobalClick([ dropdownRef.current ], () => close());\n\n return (\n <div\n class={ classnames('bio-properties-panel-dropdown-button', { open }, className) }\n onClick={ onDropdownToggle }\n ref={ dropdownRef }\n >\n { children }\n <div class=\"bio-properties-panel-dropdown-button__menu\" ref={ menuRef }>\n { menuItems.map((item, index) => (\n <MenuItem onClick={ onActionClick } item={ item } key={ index } />\n )) }\n </div>\n </div>\n );\n}\n\nfunction MenuItem({ item, onClick }) {\n if (item.separator) {\n return <div class=\"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--separator\" />;\n }\n\n if (item.action) {\n return (<button\n 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 { ...otherProps }\n onClick={ onClick }\n class={ classnames('bio-properties-panel-group-header-button', classname) }>\n { children }\n </button>;\n}\n","import {\n useCallback,\n useContext,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n ArrowIcon,\n DeleteIcon,\n} from '../icons';\n\nimport { PropertiesPanelContext } from '../../context';\n\n\nexport default function CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove\n } = props;\n\n const [ open, setOpen ] = useState(shouldOpen);\n\n const toggleOpen = () => setOpen(!open);\n\n const { onShow } = useContext(PropertiesPanelContext);\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow: useCallback(() => {\n setOpen(true);\n\n if (isFunction(onShow)) {\n onShow();\n }\n }, [ onShow, setOpen ])\n };\n\n // todo(pinussilvestrus): translate once we have a translate mechanism for the core\n const placeholderLabel = '<empty>';\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-collapsible-entry',\n open ? 'open' : ''\n ) }>\n <div class=\"bio-properties-panel-collapsible-entry-header\" onClick={ toggleOpen }>\n <div\n title={ label || placeholderLabel }\n class={ classnames(\n 'bio-properties-panel-collapsible-entry-header-title',\n !label && 'empty'\n ) }>\n { label || placeholderLabel }\n </div>\n <button\n title=\"Toggle list item\"\n class=\"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n {\n remove\n ?\n (\n <button title=\"Delete item\" class=\"bio-properties-panel-remove-entry\" onClick={ remove }>\n <DeleteIcon />\n </button>\n )\n : null\n }\n </div>\n <div class={ classnames(\n 'bio-properties-panel-collapsible-entry-entries',\n open ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n {\n entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n\n return (\n <Component\n { ...entry }\n element={ element }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>\n );\n}","import {\n useEffect\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport CollapsibleEntry from './entries/Collapsible';\n\n/**\n * @param {import('../PropertiesPanel').ListItemDefinition} props\n */\nexport default function ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen\n } = props;\n\n // focus specified entry on auto open\n useEffect(() => {\n if (autoOpen && autoFocusEntry) {\n const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\n\n const focusableInput = domQuery('.bio-properties-panel-input', entry);\n\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n }\n }\n }, [ autoOpen, autoFocusEntry ]);\n\n\n return (\n <div class=\"bio-properties-panel-list-item\">\n <CollapsibleEntry\n { ...props }\n open={ autoOpen } />\n </div>\n );\n\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport Tooltip from './entries/Tooltip';\n\nimport classnames from 'classnames';\n\nimport {\n find,\n sortBy\n} from 'min-dash';\n\nimport {\n useErrors,\n useLayoutState,\n usePrevious\n} from '../hooks';\n\nimport ListItem from './ListItem';\n\nimport {\n ArrowIcon,\n CreateIcon\n} from './icons';\n\nimport { PropertiesPanelContext } from '../context';\n\nimport { useStickyIntersectionObserver } from '../hooks';\n\nconst noop = () => {};\n\n/**\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\n */\nexport default function ListGroup(props) {\n const {\n add,\n element,\n id,\n items,\n label,\n shouldOpen = true,\n shouldSort = true\n } = props;\n\n\n const groupRef = useRef(null);\n\n const [ open, setOpen ] = useLayoutState(\n [ 'groups', id, 'open' ],\n false\n );\n\n const [ sticky, setSticky ] = useState(false);\n\n const onShow = useCallback(() => setOpen(true), [ setOpen ]);\n\n const [ ordering, setOrdering ] = useState([]);\n const [ newItemAdded, setNewItemAdded ] = useState(false);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [ addTriggered, setAddTriggered ] = useState(false);\n\n const prevItems = usePrevious(items);\n const prevElement = usePrevious(element);\n\n const elementChanged = element !== prevElement;\n const shouldHandleEffects = !elementChanged && (shouldSort || shouldOpen);\n\n // reset initial ordering when element changes (before first render)\n if (elementChanged) {\n setOrdering(createOrdering(shouldSort ? sortItems(items) : items));\n }\n\n // keep ordering in sync to items - and open changes\n\n // (0) set initial ordering from given items\n useEffect(() => {\n if (!prevItems || !shouldSort) {\n setOrdering(createOrdering(items));\n }\n }, [ items, element ]);\n\n // (1) items were added\n useEffect(() => {\n\n // reset addTriggered flag\n setAddTriggered(false);\n\n if (shouldHandleEffects && prevItems && items.length > prevItems.length) {\n\n let add = [];\n\n items.forEach(item => {\n if (!ordering.includes(item.id)) {\n add.push(item.id);\n }\n });\n\n let newOrdering = ordering;\n\n // open if not open, configured and triggered by add button\n //\n // TODO(marstamm): remove once we refactor layout handling for listGroups.\n // Ideally, opening should be handled as part of the `add` callback and\n // not be a concern for the ListGroup component.\n if (addTriggered && !open && shouldOpen) {\n toggleOpen();\n }\n\n // filter when not open and configured\n if (!open && shouldSort) {\n newOrdering = createOrdering(sortItems(items));\n }\n\n // add new items on top or bottom depending on sorting behavior\n newOrdering = newOrdering.filter(item => !add.includes(item));\n if (shouldSort) {\n newOrdering.unshift(...add);\n } else {\n newOrdering.push(...add);\n }\n\n setOrdering(newOrdering);\n setNewItemAdded(addTriggered);\n } else {\n setNewItemAdded(false);\n }\n }, [ items, open, shouldHandleEffects, addTriggered ]);\n\n // (2) sort items on open if shouldSort is set\n useEffect(() => {\n\n if (shouldSort && open && !newItemAdded) {\n setOrdering(createOrdering(sortItems(items)));\n }\n }, [ open, shouldSort ]);\n\n // (3) items were deleted\n useEffect(() => {\n if (shouldHandleEffects && prevItems && items.length < prevItems.length) {\n let keep = [];\n\n ordering.forEach(o => {\n if (getItem(items, o)) {\n keep.push(o);\n }\n });\n\n setOrdering(keep);\n }\n }, [ items, shouldHandleEffects ]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n\n const toggleOpen = () => setOpen(!open);\n\n const hasItems = !!items.length;\n\n const propertiesPanelContext = {\n ...useContext(PropertiesPanelContext),\n onShow\n };\n\n const handleAddClick = e => {\n setAddTriggered(true);\n add(e);\n };\n\n const allErrors = useErrors();\n const hasError = items.some(item => {\n if (allErrors[item.id]) {\n return true;\n }\n\n if (!item.entries) {\n return;\n }\n\n // also check if the error is nested, e.g. for name-value entries\n return item.entries.some(entry => allErrors[entry.id]);\n }\n );\n\n return <div class=\"bio-properties-panel-group\" data-group-id={ 'group-' + id } ref={ groupRef }>\n <div\n class={ classnames(\n 'bio-properties-panel-group-header',\n hasItems ? '' : 'empty',\n (hasItems && open) ? 'open' : '',\n (sticky && open) ? 'sticky' : ''\n ) }\n onClick={ hasItems ? toggleOpen : noop }>\n <div\n title={ props.tooltip ? null : label }\n data-title={ label }\n class=\"bio-properties-panel-group-header-title\"\n >\n <Tooltip value={ props.tooltip } forId={ 'group-' + id } element={ element } parent={ groupRef }>\n { label }\n </Tooltip>\n </div>\n <div class=\"bio-properties-panel-group-header-buttons\">\n {\n add\n ? (\n <button\n title=\"Create new list item\"\n class=\"bio-properties-panel-group-header-button bio-properties-panel-add-entry\"\n onClick={ handleAddClick }\n >\n <CreateIcon />\n {\n !hasItems ? (\n <span class=\"bio-properties-panel-add-entry-label\">Create</span>\n )\n : null\n }\n </button>\n )\n : null\n }\n {\n hasItems\n ? (\n <div\n title={ `List contains ${items.length} item${items.length != 1 ? 's' : ''}` }\n class={\n classnames(\n 'bio-properties-panel-list-badge',\n hasError ? 'bio-properties-panel-list-badge--error' : ''\n )\n }\n >\n { items.length }\n </div>\n )\n : null\n }\n {\n hasItems\n ? (\n <button\n title=\"Toggle section\"\n class=\"bio-properties-panel-group-header-button bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n : null\n }\n </div>\n </div>\n <div class={ classnames(\n 'bio-properties-panel-list',\n open && hasItems ? 'open' : ''\n ) }>\n <PropertiesPanelContext.Provider value={ propertiesPanelContext }>\n\n {\n ordering.map((o, index) => {\n const item = getItem(items, o);\n\n if (!item) {\n return;\n }\n\n const { id } = item;\n\n // if item was added, open it\n // Existing items will not be affected as autoOpen is only applied on first render\n const autoOpen = newItemAdded;\n\n return (\n <ListItem\n { ...item }\n autoOpen={ autoOpen }\n element={ element }\n index={ index }\n key={ id } />\n );\n })\n }\n </PropertiesPanelContext.Provider>\n </div>\n </div>;\n}\n\n\n// helpers ////////////////////\n\n/**\n * Sorts given items alphanumeric by label\n */\nfunction sortItems(items) {\n return sortBy(items, i => i.label.toLowerCase());\n}\n\nfunction getItem(items, id) {\n return find(items, i => i.id === id);\n}\n\nfunction createOrdering(items) {\n return items.map(i => i.id);\n}\n","import {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\nfunction Checkbox(props) {\n const {\n id,\n label,\n onChange,\n disabled,\n value = false,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.checked);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n const ref = useShowEntryEvent(id);\n\n return (\n <div class=\"bio-properties-panel-checkbox\">\n <input\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n onFocus={ onFocus }\n onBlur={ onBlur }\n type=\"checkbox\"\n class=\"bio-properties-panel-input\"\n onChange={ handleChange }\n checked={ localValue }\n disabled={ disabled } />\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n </div>\n );\n}\n\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {boolean} [props.disabled]\n */\nexport default function CheckboxEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const value = getValue(element);\n\n const error = useError(id);\n\n return (\n <div class=\"bio-properties-panel-entry bio-properties-panel-checkbox-entry\" data-entry-id={ id }>\n <Checkbox\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onChange={ setValue }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.checked;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import { useCallback, useEffect, useState, useMemo, useRef } from 'preact/hooks';\nimport { useStaticCallback, useShowEntryEvent } from '../../../hooks';\nimport { isFunction } from 'min-dash';\nimport { useError } from '../../../hooks';\nimport classnames from 'classnames';\nimport Description from '../Description';\nimport TemplatingEditor from './TemplatingEditor';\n\nconst noop = () => { };\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.tooltipContainer\n * @param {Function} props.validate\n * @param {Function} props.show\n */\nexport default function TemplatingEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n tooltipContainer,\n validate,\n show = noop,\n } = props;\n\n const [ validationError, setValidationError ] = useState(null);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setValidationError(newValidationError);\n }\n }, [ value ]);\n\n const onInput = useStaticCallback((newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n\n setValidationError(newValidationError);\n });\n\n const onError = useCallback(err => {\n setLocalError(err);\n }, []);\n\n const temporaryError = useError(id);\n\n const error = localError || temporaryError || validationError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Templating\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onError={ onError }\n show={ show }\n value={ value }\n tooltipContainer={ tooltipContainer } />\n {error && <div class=\"bio-properties-panel-error\">{error}</div>}\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nfunction Templating(props) {\n const {\n debounce,\n id,\n label,\n onInput,\n onError,\n value = '',\n disabled = false,\n tooltipContainer\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const editorRef = useShowEntryEvent(id);\n const containerRef = useRef();\n\n const [ focus, _setFocus ] = useState(undefined);\n\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n\n _setFocus(position + offset);\n };\n\n const handleInputCallback = useMemo(() => {\n return debounce((newValue) => onInput(newValue.length ? newValue : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = newValue => {\n handleInputCallback(newValue);\n setLocalValue(newValue);\n };\n\n const handleLint = useStaticCallback(lint => {\n\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\n\n if (!errors.length) {\n onError(undefined);\n return;\n }\n\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n\n onError(message);\n });\n\n useEffect(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [ focus ]);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value ? value : '');\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-feelers\">\n <label id={ prefixIdLabel(id) } class=\"bio-properties-panel-label\" onClick={ () => setFocus() }>\n {label}\n </label>\n <div class=\"bio-properties-panel-feelers-input\" ref={ containerRef }>\n <TemplatingEditor\n name={ id }\n onInput={ handleInput }\n contentAttributes={ { 'aria-labelledby': prefixIdLabel(id) } }\n disabled={ disabled }\n onLint={ handleLint }\n value={ localValue }\n ref={ editorRef }\n tooltipContainer={ tooltipContainer }\n />\n </div>\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && (!!node.value || node.classList.contains('edited'));\n}\n\n// helpers /////////////////\n\nfunction prefixIdLabel(id) {\n return `bio-properties-panel-feelers-${id}-label`;\n}","import {\n useEffect,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport {\n query as domQuery\n} from 'min-dom';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useKeyFactory,\n usePrevious\n} from '../../hooks';\n\nimport classnames from 'classnames';\n\nimport {\n ArrowIcon,\n CreateIcon,\n DeleteIcon\n} from '../icons';\n\n/**\n * Entry for handling lists represented as nested entries.\n *\n * @template Item\n * @param {object} props\n * @param {string} props.id\n * @param {*} props.element\n * @param {Function} props.onAdd\n * @param {import('preact').Component} props.component\n * @param {string} [props.label='<empty>']\n * @param {Function} [props.onRemove]\n * @param {Item[]} [props.items]\n * @param {boolean} [props.open]\n * @param {string|boolean} [props.autoFocusEntry] either a custom selector string or true to focus the first input\n * @param {(a: Item, b: Item) => -1 | 0 | 1} [props.compareFn]\n * @returns\n */\nexport default function List(props) {\n const {\n id,\n element,\n items = [],\n component,\n label = '<empty>',\n open: shouldOpen,\n onAdd,\n onRemove,\n autoFocusEntry,\n compareFn,\n ...restProps\n } = props;\n\n const [ open, setOpen ] = useState(!!shouldOpen);\n\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n\n const opening = !usePrevious(open) && open;\n const elementChanged = usePrevious(element) !== element;\n const shouldReset = opening || elementChanged;\n const sortedItems = useSortedItems(items, compareFn, shouldReset);\n\n const newItems = useNewItems(items, elementChanged);\n\n useEffect(() => {\n if (open && !hasItems) {\n setOpen(false);\n }\n }, [ open, hasItems ]);\n\n /**\n * @param {MouseEvent} event\n */\n function addItem(event) {\n event.stopPropagation();\n onAdd();\n\n if (!open) {\n setOpen(true);\n }\n }\n\n return (\n <div\n data-entry-id={ id }\n class={ classnames(\n 'bio-properties-panel-entry',\n 'bio-properties-panel-list-entry',\n hasItems ? '' : 'empty',\n open ? 'open' : ''\n ) }>\n <div class=\"bio-properties-panel-list-entry-header\" onClick={ toggleOpen }>\n <div\n title={ label }\n class={ classnames(\n 'bio-properties-panel-list-entry-header-title',\n open && 'open'\n ) }>\n { label }\n </div>\n <div\n class=\"bio-properties-panel-list-entry-header-buttons\"\n >\n <button\n 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 title=\"Toggle list item\"\n class=\"bio-properties-panel-arrow\"\n >\n <ArrowIcon class={ open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right' } />\n </button>\n )\n }\n </div>\n </div>\n {\n hasItems && (\n <ItemsList\n { ...restProps }\n autoFocusEntry={ autoFocusEntry }\n component={ component }\n element={ element }\n id={ id }\n items={ sortedItems }\n newItems={ newItems }\n onRemove={ onRemove }\n open={ open }\n />\n )\n }\n </div>\n );\n}\n\nfunction ItemsList(props) {\n const {\n autoFocusEntry,\n component: Component,\n element,\n id,\n items,\n newItems,\n onRemove,\n open,\n ...restProps\n } = props;\n\n const getKey = useKeyFactory();\n\n const newItem = newItems[0];\n\n useEffect(() => {\n if (newItem && autoFocusEntry) {\n\n // (0) select the parent entry (containing all list items)\n const entry = domQuery(`[data-entry-id=\"${id}\"]`);\n\n // (1) select the first input or a custom element to be focussed\n const selector = typeof(autoFocusEntry) === 'boolean' ?\n '.bio-properties-panel-input' :\n autoFocusEntry;\n const focusableInput = domQuery(selector, entry);\n\n // (2) set focus\n if (focusableInput) {\n\n if (isFunction(focusableInput.select)) {\n focusableInput.select();\n } else if (isFunction(focusableInput.focus)) {\n focusableInput.focus();\n }\n\n }\n }\n }, [ newItem, autoFocusEntry, id ]);\n\n return <ol class={ classnames(\n 'bio-properties-panel-list-entry-items',\n open ? 'open' : ''\n ) }>\n {\n items.map((item, index) => {\n const key = getKey(item);\n\n return (<li class=\"bio-properties-panel-list-entry-item\" key={ key }>\n <Component\n { ...restProps }\n element={ element }\n id={ id }\n index={ index }\n item={ item }\n open={ item === newItem } />\n {\n onRemove && (\n <button\n type=\"button\"\n title=\"Delete item\"\n class=\"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\"\n onClick={ () => onRemove && onRemove(item) }\n ><DeleteIcon /></button>\n )\n }\n </li>);\n })\n }\n </ol>;\n}\n\n/**\n * Place new items in the beginning of the list and sort the rest with provided function.\n *\n * @template Item\n * @param {Item[]} currentItems\n * @param {(a: Item, b: Item) => 0 | 1 | -1} [compareFn] function used to sort items\n * @param {boolean} [shouldReset=false] set to `true` to reset state of the hook\n * @returns {Item[]}\n */\nfunction useSortedItems(currentItems, compareFn, shouldReset = false) {\n const itemsRef = useRef(currentItems.slice());\n\n // (1) Reset and optionally sort.\n if (shouldReset) {\n itemsRef.current = currentItems.slice();\n\n if (compareFn) {\n itemsRef.current.sort(compareFn);\n }\n } else {\n const items = itemsRef.current;\n\n // (2) Add new item to the list.\n for (const item of currentItems) {\n if (!items.includes(item)) {\n\n // Unshift or push depending on whether we have a compareFn\n compareFn ? items.unshift(item) : items.push(item);\n }\n }\n\n // (3) Filter out removed items.\n itemsRef.current = items.filter(item => currentItems.includes(item));\n }\n\n return itemsRef.current;\n}\n\nfunction useNewItems(items = [], shouldReset) {\n const previousItems = usePrevious(items.slice()) || [];\n\n if (shouldReset) {\n return [];\n }\n\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\n}\n","import classNames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport Description from './Description';\nimport Tooltip from './Tooltip';\n\n/**\n * @typedef { { value: string, label: string, disabled: boolean, children: { value: string, label: string, disabled: boolean } } } Option\n */\n\n/**\n * Provides basic select input.\n *\n * @param {object} props\n * @param {string} props.id\n * @param {string[]} props.path\n * @param {string} props.label\n * @param {Function} props.onChange\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Array<Option>} [props.options]\n * @param {string} props.value\n * @param {boolean} [props.disabled]\n */\nfunction Select(props) {\n const {\n id,\n label,\n onChange,\n options = [],\n value = '',\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const ref = useShowEntryEvent(id);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleChangeCallback = ({ target }) => {\n onChange(target.value);\n };\n\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-select\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n {label}\n </Tooltip>\n </label>\n <select\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n class=\"bio-properties-panel-input\"\n onInput={ handleChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue }\n disabled={ disabled }\n >\n {options.map((option, idx) => {\n if (option.children) {\n return (\n <optgroup key={ idx } label={ option.label }>\n {option.children.map((child, idx) => (\n <option\n key={ idx }\n value={ child.value }\n disabled={ child.disabled }\n >\n {child.label}\n </option>\n ))}\n </optgroup>\n );\n }\n\n return (\n <option key={ idx } value={ option.value } disabled={ option.disabled }>\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} [props.description]\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {Function} props.getOptions\n * @param {boolean} [props.disabled]\n * @param {Function} [props.validate]\n * @param {string|import('preact').Component} props.tooltip\n */\nexport default function SelectEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n getOptions,\n disabled,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n\n const options = getOptions(element);\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value ]);\n\n\n const onChange = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classNames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Select\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onChange={ onChange }\n onFocus={ onFocus }\n onBlur={ onBlur }\n options={ options }\n disabled={ disabled }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n useMemo,\n useEffect,\n useState\n} from 'preact/hooks';\n\n/**\n * @param {Object} props\n * @param {Function} props.debounce\n * @param {Boolean} [props.disabled]\n * @param {Object} props.element\n * @param {Function} props.getValue\n * @param {String} props.id\n * @param {Function} [props.onBlur]\n * @param {Function} [props.onFocus]\n * @param {Function} props.setValue\n */\nexport default function Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue\n } = props;\n\n const value = getValue(element);\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const handleInputCallback = useMemo(() => {\n return debounce(({ target }) => setValue(target.value.length ? target.value : undefined));\n }, [ setValue, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n\n return (\n <div class=\"bio-properties-panel-simple\">\n <input\n id={ prefixId(id) }\n key={ element }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n aria-label={ localValue || '<empty>' }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\n\nimport {\n useEffect,\n useLayoutEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nimport { isFunction } from 'min-dash';\nimport Tooltip from './Tooltip';\n\nfunction resizeToContents(element) {\n element.style.height = 'auto';\n\n // a 2px pixel offset is required to prevent scrollbar from\n // appearing on OS with a full length scroll bar (Windows/Linux)\n element.style.height = `${ element.scrollHeight + 2 }px`;\n}\n\nfunction TextArea(props) {\n\n const {\n id,\n label,\n debounce,\n onInput,\n value = '',\n disabled,\n monospace,\n onFocus,\n onBlur,\n autoResize,\n rows = autoResize ? 1 : 2,\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value);\n\n const ref = useShowEntryEvent(id);\n\n const handleInputCallback = useMemo(() => {\n return debounce(({ target }) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e);\n\n autoResize && resizeToContents(e.target);\n\n setLocalValue(e.target.value);\n };\n\n useLayoutEffect(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textarea\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <textarea\n ref={ ref }\n id={ prefixId(id) }\n name={ id }\n spellCheck=\"false\"\n class={ classnames(\n 'bio-properties-panel-input',\n monospace ? 'bio-properties-panel-input-monospace' : '',\n autoResize ? 'auto-resize' : '')\n }\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n rows={ rows }\n value={ localValue }\n disabled={ disabled }\n data-gramm=\"false\"\n />\n </div>\n );\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} props.description\n * @param {boolean} props.debounce\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {number} props.rows\n * @param {boolean} props.monospace\n * @param {Function} [props.validate]\n * @param {boolean} [props.disabled]\n */\nexport default function TextAreaEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n label,\n getValue,\n setValue,\n rows,\n monospace,\n disabled,\n validate,\n onFocus,\n onBlur,\n autoResize,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value ]);\n\n const onInput = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n\n setLocalError(newValidationError);\n };\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <TextArea\n id={ id }\n key={ element }\n label={ label }\n value={ value }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n rows={ rows }\n debounce={ debounce }\n monospace={ monospace }\n disabled={ disabled }\n autoResize={ autoResize }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}\n","import Description from './Description';\nimport Tooltip from './Tooltip';\n\nimport {\n useEffect,\n useMemo,\n useState\n} from 'preact/hooks';\n\nimport classnames from 'classnames';\n\nimport { isFunction } from 'min-dash';\n\nimport {\n useError,\n useShowEntryEvent\n} from '../../hooks';\n\nfunction Textfield(props) {\n\n const {\n debounce,\n disabled = false,\n id,\n label,\n onInput,\n onFocus,\n onBlur,\n value = '',\n tooltip\n } = props;\n\n const [ localValue, setLocalValue ] = useState(value || '');\n\n const ref = useShowEntryEvent(id);\n\n const handleInputCallback = useMemo(() => {\n return debounce(({ target }) => onInput(target.value.length ? target.value : undefined));\n }, [ onInput, debounce ]);\n\n const handleInput = e => {\n handleInputCallback(e);\n setLocalValue(e.target.value);\n };\n\n useEffect(() => {\n if (value === localValue) {\n return;\n }\n\n setLocalValue(value);\n }, [ value ]);\n\n return (\n <div class=\"bio-properties-panel-textfield\">\n <label for={ prefixId(id) } class=\"bio-properties-panel-label\">\n <Tooltip value={ tooltip } forId={ id } element={ props.element }>\n { label }\n </Tooltip>\n </label>\n <input\n ref={ ref }\n id={ prefixId(id) }\n type=\"text\"\n name={ id }\n spellCheck=\"false\"\n autoComplete=\"off\"\n disabled={ disabled }\n class=\"bio-properties-panel-input\"\n onInput={ handleInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ localValue } />\n </div>\n );\n}\n\n/**\n * @param {Object} props\n * @param {Object} props.element\n * @param {String} props.id\n * @param {String} props.description\n * @param {Boolean} props.debounce\n * @param {Boolean} props.disabled\n * @param {String} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {string|import('preact').Component} props.tooltip\n * @param {Function} props.validate\n */\nexport default function TextfieldEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n validate,\n onFocus,\n onBlur,\n tooltip\n } = props;\n\n const globalError = useError(id);\n const [ localError, setLocalError ] = useState(null);\n\n let value = getValue(element);\n\n useEffect(() => {\n if (isFunction(validate)) {\n const newValidationError = validate(value) || null;\n\n setLocalError(newValidationError);\n }\n }, [ value ]);\n\n const onInput = (newValue) => {\n let newValidationError = null;\n\n if (isFunction(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n setValue(newValue, newValidationError);\n\n setLocalError(newValidationError);\n };\n\n\n const error = globalError || localError;\n\n return (\n <div\n class={ classnames(\n 'bio-properties-panel-entry',\n error ? 'has-error' : '')\n }\n data-entry-id={ id }>\n <Textfield\n debounce={ debounce }\n disabled={ disabled }\n id={ id }\n key={ element }\n label={ label }\n onInput={ onInput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n value={ value }\n tooltip={ tooltip }\n element={ element } />\n { error && <div class=\"bio-properties-panel-error\">{ error }</div> }\n <Description forId={ id } element={ element } value={ description } />\n </div>\n );\n}\n\nexport function isEdited(node) {\n return node && !!node.value;\n}\n\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${ id }`;\n}","import {\n debounce,\n isNumber\n} from 'min-dash';\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\n\nexport default function debounceInput(debounceDelay) {\n return function _debounceInput(fn) {\n if (debounceDelay !== false) {\n\n var debounceTime =\n isNumber(debounceDelay) ?\n debounceDelay :\n DEFAULT_DEBOUNCE_TIME;\n\n return debounce(fn, debounceTime);\n } else {\n return fn;\n }\n };\n}\n\ndebounceInput.$inject = [ 'config.debounceInput' ];\n","import debounceInput from './debounceInput';\n\nexport default {\n debounceInput: [ 'factory', debounceInput ]\n};\n","export default class FeelPopupModule {\n\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Check if the FEEL popup is open.\n * @return {Boolean}\n */\n isOpen() {\n return this._eventBus.fire('feelPopup._isOpen');\n }\n\n /**\n * Open the FEEL popup.\n *\n * @param {String} entryId\n * @param {Object} popupConfig\n * @param {HTMLElement} sourceElement\n */\n open(entryId, popupConfig, sourceElement) {\n return this._eventBus.fire('feelPopup._open', {\n entryId,\n popupConfig,\n sourceElement\n });\n }\n\n /**\n * Close the FEEL popup.\n */\n close() {\n return this._eventBus.fire('feelPopup._close');\n }\n}\n\nFeelPopupModule.$inject = [ 'eventBus' ];","import feelPopup from './FeelPopupModule';\n\nexport default {\n feelPopup: [ 'type', feelPopup ]\n};\n"],"names":["currentIndex","currentComponent","previousComponent","prevRaf","currentHook","afterPaintEffects","EMPTY","oldBeforeDiff","options","__b","oldBeforeRender","__r","oldAfterDiff","diffed","oldCommit","__c","oldBeforeUnmount","unmount","getHookState","index","type","__h","hooks","__H","__","length","push","__V","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","undefined","currentValue","__N","nextValue","action","setState","_hasScuFromHooks","updateHookState","p","s","c","stateHooks","filter","x","every","prevScu","call","this","shouldUpdate","forEach","hookItem","props","shouldComponentUpdate","prevCWU","componentWillUpdate","__e","tmp","useEffect","callback","args","state","__s","argsChanged","_pendingArgs","useLayoutEffect","useRef","initialValue","useMemo","current","factory","useCallback","useContext","context","provider","sub","value","flushAfterPaintEffects","component","shift","__P","invokeCleanup","invokeEffect","e","__v","vnode","requestAnimationFrame","afterNextFrame","commitQueue","some","cb","hasErrored","HAS_RAF","raf","done","clearTimeout","timeout","cancelAnimationFrame","setTimeout","hook","comp","cleanup","oldArgs","newArgs","arg","f","assign","obj","i","shallowDiffers","a","b","vnodeId","createVNode","key","isStaticChildren","__source","__self","ref","normalizedProps","__k","__d","constructor","defaultProps","Header","element","headerProvider","getElementIcon","getDocumentationRef","getElementLabel","getTypeLabel","label","documentationRef","ElementIcon","_jsxs","_jsx","DescriptionContext","createContext","description","getDescriptionForId","ErrorsContext","errors","EventContext","eventBus","LayoutContext","layout","setLayout","getLayoutForKey","setLayoutForKey","TooltipContext","tooltip","getTooltipForId","useTooltipContext","id","TooltipWrapper","forId","contextDescription","children","prefixId","Tooltip","parent","visible","setShow","focusedViaKeyboard","setFocusedViaKeyboard","wrapperRef","tooltipRef","showTooltip","event","show","MouseEvent","hideTooltip","hideTooltipViaEscape","code","isTooltipHovered","y","wrapper","inBounds","getBoundingClientRect","hideHoveredTooltip","isFocused","document","activeElement","closest","hideFocusedTooltip","relatedTarget","isTooltipChild","el","isHovered","addEventListener","removeEventListener","renderTooltip","getTooltipPosition","stopPropagation","createPortal","bounds","top","right","bottom","left","refElement","refPosition","matches","useDescriptionContext","useError","useErrors","useEvent","eventContext","didMount","on","off","KEY_LENGTH","useKeyFactory","dependencies","map","Map","getKey","get","Math","random","toString","slice","set","useLayoutState","path","defaultValue","layoutForKey","newValue","usePrevious","useShowEntryEvent","onShow","PropertiesPanelContext","focus","onShowEntry","isFunction","select","useStickyIntersectionObserver","scrollContainerSelector","setSticky","scrollContainer","setScrollContainer","domQuery","updateScrollContainer","newScrollContainer","Observer","IntersectionObserver","observer","entries","scrollHeight","entry","intersectionRatio","root","rootMargin","threshold","observe","unobserve","useStaticCallback","callbackRef","Group","shouldOpen","groupRef","open","setOpen","toggleOpen","edited","setEdited","sticky","scheduled","hasOneEditedEntry","find","isEdited","entryNode","inputNode","allErrors","hasErrors","propertiesPanelContext","classnames","Component","_createElement","DataMarker","Placeholder","text","icon","Icon","Description","noop","useBufferedFocus","editor","buffer","setBuffer","offset","Infinity","CodeEditor","forwardRef","onInput","disabled","tooltipContainer","enableGutters","onLint","onPopupOpen","popupOpen","contentAttributes","hostLanguage","singleLine","inputRef","setEditor","localValue","setLocalValue","handleInput","FeelersEditor","container","onChange","innerHTML","setValue","handleClick","classNames","name","onFeelToggle","variables","onKeyDown","selection","getSelection","range","ranges","mainIndex","from","to","FeelEditor","extensions","lineNumbers","setVariables","FeelIndicator","active","FeelIcon","feel","onClick","feelRequiredLabel","feelOptionalLabel","pointerType","FeelIconSvg","FeelPopupContext","close","source","createDragger","fn","dragPreview","self","startX","startY","onDragStart","clientX","clientY","dataTransfer","setDragImage","emptyCanvas","onDrag","preventDefault","onEnd","delta","domify","PopupComponent","globalRef","className","delayInitialFocus","position","width","height","onClose","onPostActivate","onPostDeactivate","returnFocus","closeOnEscape","title","focusTrapRef","localRef","popupRef","containerNode","getContainerNode","handleKeydown","handleFocus","activate","style","focusTrap","createFocusTrap","clickOutsideDeactivates","fallbackFocus","returnFocusOnDeactivate","deactivate","body","Popup","Title","Body","Footer","draggable","emit","rest","startPosition","newPosition","dragPreviewRef","titleRef","onMove","cancel","dx","dy","popupParent","getPopupParent","onMoveStart","onMoveEnd","node","FEEL_POPUP_WIDTH","FEEL_POPUP_HEIGHT","FEELPopupRoot","fire","popupContainer","prevElement","popupConfig","setPopupConfig","setSource","sourceElement","setSourceElement","isOpen","useUpdateEffect","handleOpen","entryId","config","_sourceElement","handleClose","feelPopupContext","handlePopupOpen","handleIsOpen","FeelPopupComponent","editorRef","isAutoCompletionOpen","handleSetReturnFocus","onKeyDownCapture","autoCompletionOpen","target","domNode","TemplatingEditor","querySelector","effect","deps","isMounted","ToggleSwitch","switcherLabel","inline","onFocus","onBlur","handleInputCallback","ToggleSwitchEntry","getValue","checked","NumberField","debounce","displayLabel","max","min","step","validity","valid","parseFloat","NumberFieldEntry","validate","globalError","localError","setLocalError","newValidationError","error","FeelTextfield","onError","OptionalComponent","OptionalFeelInput","_setLocalValue","containerRef","feelActive","isString","startsWith","feelOnlyValue","substring","_setFocus","openPopup","popupSource","popuOpen","setFocus","hasFocus","contains","selectionStart","handleFeelToggle","handleLocalInput","handleLint","lint","message","popupOptions","calculatePopupPosition","getPopupTitle","copyHandler","clipboardData","setData","getData","pasteHandler","data","input","setSelectionRange","OptionalFeelNumberField","OptionalFeelTextArea","OptionalFeelToggleSwitch","OptionalFeelCheckbox","handleChange","FeelEntry","example","validationError","setValidationError","err","temporaryError","class","FeelNumberEntry","FeelTextAreaEntry","FeelToggleSwitchEntry","FeelCheckboxEntry","FeelTemplatingEntry","classList","popupTitle","DEFAULT_LAYOUT","DEFAULT_DESCRIPTION","DEFAULT_TOOLTIP","PropertiesPanel","placeholderProvider","groups","layoutConfig","layoutChanged","descriptionConfig","descriptionLoaded","tooltipConfig","tooltipLoaded","feelPopupContainer","createLayout","useUpdateLayoutEffect","newLayout","layoutContext","createDescriptionContext","descriptionContext","createTooltipContext","tooltipContext","setErrors","onSetErrors","errorsContext","getEmpty","isArray","getMultiple","FeelPopupRoot","group","overrides","defaults","DropdownButton","menuItems","dropdownRef","menuRef","onDropdownToggle","onActionClick","useGlobalClick","item","MenuItem","separator","ignoredElements","listener","capture","HeaderButton","classname","otherProps","CollapsibleEntry","remove","placeholderLabel","ListItem","autoFocusEntry","autoOpen","focusableInput","ListGroup","add","items","shouldSort","ordering","setOrdering","newItemAdded","setNewItemAdded","addTriggered","setAddTriggered","prevItems","elementChanged","shouldHandleEffects","createOrdering","sortItems","includes","newOrdering","unshift","keep","o","getItem","hasItems","handleAddClick","hasError","sortBy","toLowerCase","Checkbox","handleChangeCallback","CheckboxEntry","TemplatingEntry","Templating","severity","prefixIdLabel","List","onAdd","onRemove","compareFn","restProps","opening","shouldReset","sortedItems","useSortedItems","newItems","useNewItems","addItem","ItemsList","newItem","selector","currentItems","itemsRef","sort","previousItems","Select","option","idx","child","SelectEntry","getOptions","Simple","resizeToContents","TextArea","monospace","autoResize","rows","TextAreaEntry","Textfield","TextfieldEntry","DEFAULT_DEBOUNCE_TIME","debounceInput","debounceDelay","_debounceInput","debounceTime","isNumber","$inject","FeelPopupModule","_eventBus","feelPopup"],"mappings":"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AAW;MAAC,KAAK,EAAGkB,EAAI;MAAC,OAAO,EAAG5B,OAAS;MAAC,KAAK,EAAGa;MAAgB;IAClE;AAEV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyX,eAAe,CAAC/c,KAAK,EAAE;EACrC,OAAOmF,EAAC,SAAS;IAAC,KAAK,EAAC,kCAAkC;IAAC,iBAAiB,EAAGgX,uBAAyB;IAAA,GAAMnc;IAAU;AAC1H;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgd,iBAAiB,CAAChd,KAAK,EAAE;EACvC,OAAOmF,EAAC,SAAS;IAAC,KAAK,EAAC,oCAAoC;IAAC,iBAAiB,EAAGiX,oBAAsB;IAAA,GAAMpc;IAAU;AACzH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASid,qBAAqB,CAACjd,KAAK,EAAE;EAC3C,OAAOmF,EAAC,SAAS;IAAC,KAAK,EAAC,yCAAyC;IAAC,iBAAiB,EAAGkX,wBAA0B;IAAA,GAAMrc;IAAU;AAClI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkd,iBAAiB,CAACld,KAAK,EAAE;EACvC,OAAOmF,EAAC,SAAS;IAAC,KAAK,EAAC,oCAAoC;IAAC,iBAAiB,EAAGmX,oBAAsB;IAAA,GAAMtc;IAAU;AACzH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASmd,mBAAmB,CAACnd,KAAK,EAAE;EACzC,OAAOmF,EAAC,SAAS;IAAC,KAAK,EAAC,sCAAsC;IAAC,iBAAiB,EAA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"}