camunda-bpmn-js 0.13.0-alpha.5 → 0.13.0-alpha.8

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.
@@ -6,6 +6,21 @@
6
6
 
7
7
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8
8
 
9
+ function getAugmentedNamespace(n) {
10
+ if (n.__esModule) return n;
11
+ var a = Object.defineProperty({}, '__esModule', {value: true});
12
+ Object.keys(n).forEach(function (k) {
13
+ var d = Object.getOwnPropertyDescriptor(n, k);
14
+ Object.defineProperty(a, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () {
17
+ return n[k];
18
+ }
19
+ });
20
+ });
21
+ return a;
22
+ }
23
+
9
24
  function createCommonjsModule(fn) {
10
25
  var module = { exports: {} };
11
26
  return fn(module, module.exports), module.exports;
@@ -659,6 +674,30 @@
659
674
  callback.cancel = clear;
660
675
  return callback;
661
676
  }
677
+ /**
678
+ * Throttle fn, calling at most once
679
+ * in the given interval.
680
+ *
681
+ * @param {Function} fn
682
+ * @param {Number} interval
683
+ *
684
+ * @return {Function} throttled function
685
+ */
686
+
687
+ function throttle(fn, interval) {
688
+ var throttling = false;
689
+ return function () {
690
+ if (throttling) {
691
+ return;
692
+ }
693
+
694
+ fn.apply(void 0, arguments);
695
+ throttling = true;
696
+ setTimeout(function () {
697
+ throttling = false;
698
+ }, interval);
699
+ };
700
+ }
662
701
  /**
663
702
  * Bind function against target <this>.
664
703
  *
@@ -825,6 +864,94 @@
825
864
  });
826
865
  return result;
827
866
  }
867
+ /**
868
+ * Recursively merge `...sources` into given target.
869
+ *
870
+ * Does support merging objects; does not support merging arrays.
871
+ *
872
+ * @param {Object} target
873
+ * @param {...Object} sources
874
+ *
875
+ * @return {Object} the target
876
+ */
877
+
878
+ function merge(target) {
879
+ for (var _len2 = arguments.length, sources = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
880
+ sources[_key2 - 1] = arguments[_key2];
881
+ }
882
+
883
+ if (!sources.length) {
884
+ return target;
885
+ }
886
+
887
+ forEach(sources, function (source) {
888
+ // skip non-obj sources, i.e. null
889
+ if (!source || !isObject(source)) {
890
+ return;
891
+ }
892
+
893
+ forEach(source, function (sourceVal, key) {
894
+ if (key === '__proto__') {
895
+ return;
896
+ }
897
+
898
+ var targetVal = target[key];
899
+
900
+ if (isObject(sourceVal)) {
901
+ if (!isObject(targetVal)) {
902
+ // override target[key] with object
903
+ targetVal = {};
904
+ }
905
+
906
+ target[key] = merge(targetVal, sourceVal);
907
+ } else {
908
+ target[key] = sourceVal;
909
+ }
910
+ });
911
+ });
912
+ return target;
913
+ }
914
+
915
+ var index_esm = /*#__PURE__*/Object.freeze({
916
+ __proto__: null,
917
+ assign: assign,
918
+ bind: bind,
919
+ debounce: debounce,
920
+ ensureArray: ensureArray,
921
+ every: every,
922
+ filter: filter,
923
+ find: find,
924
+ findIndex: findIndex,
925
+ flatten: flatten,
926
+ forEach: forEach,
927
+ get: get,
928
+ groupBy: groupBy,
929
+ has: has,
930
+ isArray: isArray,
931
+ isDefined: isDefined,
932
+ isFunction: isFunction,
933
+ isNil: isNil,
934
+ isNumber: isNumber,
935
+ isObject: isObject,
936
+ isString: isString,
937
+ isUndefined: isUndefined,
938
+ keys: keys,
939
+ map: map,
940
+ matchPattern: matchPattern,
941
+ merge: merge,
942
+ omit: omit,
943
+ pick: pick,
944
+ reduce: reduce,
945
+ set: set,
946
+ size: size,
947
+ some: some,
948
+ sortBy: sortBy,
949
+ throttle: throttle,
950
+ unionBy: unionBy,
951
+ uniqueBy: uniqueBy,
952
+ values: values,
953
+ without: without
954
+ });
828
955
 
829
956
  /**
830
957
  * Set attribute `name` to `val`, or get attr `name`.
@@ -61408,31 +61535,100 @@
61408
61535
  }());
61409
61536
  });
61410
61537
 
61538
+ function C$1(n,t){for(var e in t)n[e]=t[e];return n}function S$1(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){this.props=n;}function g$2(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return !r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S$1(this.props,n)}function r(t){return this.shouldComponentUpdate=e,a(n,t)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new p).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S$1(this.props,n)||S$1(this.state,t)};var w$2=n.__b;n.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w$2&&w$2(n);};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function x$2(n){function t(t,e){var r=C$1({},t);return delete r.ref,n(r,(e=t.ref||e)&&("object"!=typeof e||"current"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var N$1=function(n,t){return null==n?null:w(w(n).map(t))},k$2={map:N$1,forEach:N$1,count:function(n){return n?w(n).length:0},only:function(n){var t=w(n);if(1!==t.length)throw "Children.only";return t[0]},toArray:w},A$2=n.__e;n.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A$2(n,t,e);};var O$1=n.unmount;function L$1(){this.__u=0,this.t=null,this.__b=null;}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n;},function(n){r=n;}),r)throw r;if(!e)throw t;return a(e,u)}return u.displayName="Lazy",u.__f=!0,u}function F$1(){this.u=null,this.o=null;}n.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O$1&&O$1(n);},(L$1.prototype=new p).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(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.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate();}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i);},L$1.prototype.componentWillUnmount=function(){this.t=[];},L$1.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),t.__c.__H=null),null!=(t=C$1({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P);}this.__b=null;}var u=t.__e&&a(y,null,n.fallback);return u&&(u.__h=null),[a(y,null,t.__e?null:n.children),u]};var M$1=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 T$2(n){return this.getChildContext=function(){return n.context},n.children}function j$2(n){var t=this,e=n.i;t.componentWillUnmount=function(){N(null,t.l),t.l=null,t.i=null;},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n);},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n);}}),N(a(T$2,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount();}function I$1(n,t){return a(j$2,{__v:n,i:t})}(F$1.prototype=new p).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M$1(t,n,r)):u();};e?e(o):o();}},F$1.prototype.render=function(n){this.u=null,this.o=new Map;var t=w(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},F$1.prototype.componentDidUpdate=F$1.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M$1(n,e,t);});};var W="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,P$1=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z$1(n,t,e){return null==t.__k&&(t.textContent=""),N(n,t),"function"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return O(n,t),"function"==typeof e&&e(),n?n.__c:null}p.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(p.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t});}});});var H$1=n.event;function Z(){}function Y(){return this.cancelBubble}function $$1(){return this.defaultPrevented}n.event=function(n){return H$1&&(n=H$1(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$$1,n.nativeEvent=n};var q$1,G={configurable:!0,get:function(){return this.class}},J=n.vnode;n.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){for(var u in r={},e){var o=e[u];"value"===u&&"defaultValue"in e&&null==o||("defaultValue"===u&&"value"in e&&null==e.value?u="value":"download"===u&&!0===o?o="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P$1.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[u]=o);}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=w(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value);})),"select"==t&&null!=r.defaultValue&&(r.value=w(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value;})),n.props=r;}t&&e.class!=e.className&&(G.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",G)),n.$$typeof=W,J&&J(n);};var K=n.__r;n.__r=function(n){K&&K(n),q$1=n.__c;};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q$1.__n[n.__c].props.value}}}};"object"==typeof performance&&"function"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()};function fn(n){return a.bind(null,n)}function cn(n){return !!n&&n.$$typeof===W}function an(n){return cn(n)?S.apply(null,arguments):n}function sn(n){return !!n.__k&&(N(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)};var React = {useState:l,useReducer:p$1,useEffect:y$1,useLayoutEffect:h$1,useRef:s$1,useImperativeHandle:_$1,useMemo:d$1,useCallback:A$1,useContext:F,useDebugValue:T$1,version:"16.8.0",Children:k$2,render:z$1,hydrate:B,unmountComponentAtNode:sn,createPortal:I$1,createElement:a,createContext:q,createFactory:fn,cloneElement:an,createRef:h,Fragment:y,isValidElement:cn,findDOMNode:hn,Component:p,PureComponent:E,memo:g$2,forwardRef:x$2,unstable_batchedUpdates:pn,StrictMode:y,Suspense:L$1,SuspenseList:F$1,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};
61539
+
61411
61540
  function o$2(_,o,e,n$1,t){var f={};for(var l in o)"ref"!=l&&(f[l]=o[l]);var s,u,a={type:_,props:f,key:e,ref:o&&o.ref,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:++n.__v,__source:n$1,__self:t};if("function"==typeof _&&(s=_.defaultProps))for(u in s)void 0===f[u]&&(f[u]=s[u]);return n.vnode&&n.vnode(a),a}
61412
61541
 
61413
- function C$1(n,t){for(var e in t)n[e]=t[e];return n}function S$1(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){this.props=n;}function g$2(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return !r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S$1(this.props,n)}function r(t){return this.shouldComponentUpdate=e,a(n,t)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new p).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S$1(this.props,n)||S$1(this.state,t)};var w$2=n.__b;n.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w$2&&w$2(n);};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function x$2(n){function t(t,e){var r=C$1({},t);return delete r.ref,n(r,(e=t.ref||e)&&("object"!=typeof e||"current"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var N$1=function(n,t){return null==n?null:w(w(n).map(t))},k$2={map:N$1,forEach:N$1,count:function(n){return n?w(n).length:0},only:function(n){var t=w(n);if(1!==t.length)throw "Children.only";return t[0]},toArray:w},A$2=n.__e;n.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A$2(n,t,e);};var O$1=n.unmount;function L$1(){this.__u=0,this.t=null,this.__b=null;}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n;},function(n){r=n;}),r)throw r;if(!e)throw t;return a(e,u)}return u.displayName="Lazy",u.__f=!0,u}function F$1(){this.u=null,this.o=null;}n.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O$1&&O$1(n);},(L$1.prototype=new p).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(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.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate();}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i);},L$1.prototype.componentWillUnmount=function(){this.t=[];},L$1.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),t.__c.__H=null),null!=(t=C$1({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P);}this.__b=null;}var u=t.__e&&a(y,null,n.fallback);return u&&(u.__h=null),[a(y,null,t.__e?null:n.children),u]};var M$1=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 T$2(n){return this.getChildContext=function(){return n.context},n.children}function j$2(n){var t=this,e=n.i;t.componentWillUnmount=function(){N(null,t.l),t.l=null,t.i=null;},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n);},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n);}}),N(a(T$2,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount();}function I$1(n,t){return a(j$2,{__v:n,i:t})}(F$1.prototype=new p).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M$1(t,n,r)):u();};e?e(o):o();}},F$1.prototype.render=function(n){this.u=null,this.o=new Map;var t=w(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},F$1.prototype.componentDidUpdate=F$1.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M$1(n,e,t);});};var W="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,P$1=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z$1(n,t,e){return null==t.__k&&(t.textContent=""),N(n,t),"function"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return O(n,t),"function"==typeof e&&e(),n?n.__c:null}p.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(p.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t});}});});var H$1=n.event;function Z(){}function Y(){return this.cancelBubble}function $$1(){return this.defaultPrevented}n.event=function(n){return H$1&&(n=H$1(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$$1,n.nativeEvent=n};var q$1,G={configurable:!0,get:function(){return this.class}},J=n.vnode;n.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){for(var u in r={},e){var o=e[u];"value"===u&&"defaultValue"in e&&null==o||("defaultValue"===u&&"value"in e&&null==e.value?u="value":"download"===u&&!0===o?o="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P$1.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[u]=o);}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=w(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value);})),"select"==t&&null!=r.defaultValue&&(r.value=w(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value;})),n.props=r;}t&&e.class!=e.className&&(G.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",G)),n.$$typeof=W,J&&J(n);};var K=n.__r;n.__r=function(n){K&&K(n),q$1=n.__c;};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q$1.__n[n.__c].props.value}}}};"object"==typeof performance&&"function"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()};function fn(n){return a.bind(null,n)}function cn(n){return !!n&&n.$$typeof===W}function an(n){return cn(n)?S.apply(null,arguments):n}function sn(n){return !!n.__k&&(N(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)};var React = {useState:l,useReducer:p$1,useEffect:y$1,useLayoutEffect:h$1,useRef:s$1,useImperativeHandle:_$1,useMemo:d$1,useCallback:A$1,useContext:F,useDebugValue:T$1,version:"16.8.0",Children:k$2,render:z$1,hydrate:B,unmountComponentAtNode:sn,createPortal:I$1,createElement:a,createContext:q,createFactory:fn,cloneElement:an,createRef:h,Fragment:y,isValidElement:cn,findDOMNode:hn,Component:p,PureComponent:E,memo:g$2,forwardRef:x$2,unstable_batchedUpdates:pn,StrictMode:y,Suspense:L$1,SuspenseList:F$1,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};
61542
+ var ArrowIcon = function ArrowIcon(props) {
61543
+ return o$2("svg", { ...props,
61544
+ children: o$2("path", {
61545
+ fillRule: "evenodd",
61546
+ d: "m11.657 8-4.95 4.95a1 1 0 0 1-1.414-1.414L8.828 8 5.293 4.464A1 1 0 1 1 6.707 3.05L11.657 8z"
61547
+ })
61548
+ });
61549
+ };
61414
61550
 
61415
- /**
61416
- * @typedef { { getElementLabel: Function, getTypeLabel: Function, getElementIcon: Function } } HeaderProvider
61417
- */
61551
+ ArrowIcon.defaultProps = {
61552
+ xmlns: "http://www.w3.org/2000/svg",
61553
+ width: "16",
61554
+ height: "16"
61555
+ };
61556
+
61557
+ var ExternalLinkIcon = function ExternalLinkIcon(props) {
61558
+ return o$2("svg", { ...props,
61559
+ children: o$2("path", {
61560
+ fillRule: "evenodd",
61561
+ clipRule: "evenodd",
61562
+ d: "M12.637 12.637v-4.72h1.362v4.721c0 .36-.137.676-.411.95-.275.275-.591.412-.95.412H3.362c-.38 0-.703-.132-.967-.396A1.315 1.315 0 0 1 2 12.638V3.362c0-.38.132-.703.396-.967S2.982 2 3.363 2h4.553v1.363H3.363v9.274h9.274zM14 2H9.28l-.001 1.362h2.408L5.065 9.984l.95.95 6.622-6.622v2.409H14V2z",
61563
+ fill: "#818798"
61564
+ })
61565
+ });
61566
+ };
61567
+
61568
+ ExternalLinkIcon.defaultProps = {
61569
+ width: "16",
61570
+ height: "16",
61571
+ fill: "none",
61572
+ xmlns: "http://www.w3.org/2000/svg"
61573
+ };
61574
+
61575
+ var FeelRequiredIcon = function FeelRequiredIcon(props) {
61576
+ return o$2("svg", { ...props,
61577
+ children: [o$2("path", {
61578
+ d: "M5.8 7.06V5.95h4.307v1.11H5.8zm0 3.071v-1.11h4.307v1.11H5.8z",
61579
+ fill: "#505562"
61580
+ }), o$2("path", {
61581
+ fillRule: "evenodd",
61582
+ clipRule: "evenodd",
61583
+ d: "M8 3.268A4.732 4.732 0 1 0 12.732 8H14a6 6 0 1 1-6-6v1.268z",
61584
+ fill: "#505562"
61585
+ }), o$2("path", {
61586
+ d: "m11.28 6.072-.832-.56 1.016-1.224L10 3.848l.312-.912 1.392.584L11.632 2h1.032l-.072 1.52 1.392-.584.312.912-1.464.44 1.008 1.224-.832.552-.864-1.296-.864 1.304z",
61587
+ fill: "#505562"
61588
+ })]
61589
+ });
61590
+ };
61591
+
61592
+ FeelRequiredIcon.defaultProps = {
61593
+ viewBox: "0 0 16 16",
61594
+ fill: "none",
61595
+ xmlns: "http://www.w3.org/2000/svg"
61596
+ };
61597
+
61598
+ var FeelOptionalIcon = function FeelOptionalIcon(props) {
61599
+ return o$2("svg", { ...props,
61600
+ children: [o$2("path", {
61601
+ d: "M5.845 7.04V5.93h4.307v1.11H5.845zm0 3.07V9h4.307v1.11H5.845z",
61602
+ fill: "#505562"
61603
+ }), o$2("path", {
61604
+ fillRule: "evenodd",
61605
+ clipRule: "evenodd",
61606
+ d: "M3.286 8a4.714 4.714 0 1 0 9.428 0 4.714 4.714 0 0 0-9.428 0zM8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2z",
61607
+ fill: "#505562"
61608
+ })]
61609
+ });
61610
+ };
61611
+
61612
+ FeelOptionalIcon.defaultProps = {
61613
+ viewBox: "0 0 16 16",
61614
+ fill: "none",
61615
+ xmlns: "http://www.w3.org/2000/svg"
61616
+ };
61418
61617
 
61419
- /**
61420
- * @param {Object} props
61421
- * @param {Object} props.element,
61422
- * @param {HeaderProvider} props.headerProvider
61423
- */
61424
61618
  function Header(props) {
61425
61619
  const {
61426
61620
  element,
61427
61621
  headerProvider
61428
61622
  } = props;
61429
61623
  const {
61624
+ getElementIcon,
61625
+ getDocumentationRef,
61430
61626
  getElementLabel,
61431
- getTypeLabel,
61432
- getElementIcon
61627
+ getTypeLabel
61433
61628
  } = headerProvider;
61434
61629
  const label = getElementLabel(element);
61435
61630
  const type = getTypeLabel(element);
61631
+ const documentationRef = getDocumentationRef && getDocumentationRef(element);
61436
61632
  const ElementIcon = getElementIcon(element);
61437
61633
  return o$2("div", {
61438
61634
  class: "bio-properties-panel-header",
@@ -61449,35 +61645,48 @@
61449
61645
  title: type,
61450
61646
  class: "bio-properties-panel-header-type",
61451
61647
  children: type
61452
- }), getElementLabel(element) ? o$2("div", {
61648
+ }), label ? o$2("div", {
61453
61649
  title: label,
61454
61650
  class: "bio-properties-panel-header-label",
61455
61651
  children: label
61456
61652
  }) : null]
61653
+ }), o$2("div", {
61654
+ class: "bio-properties-panel-header-actions",
61655
+ children: documentationRef ? o$2("a", {
61656
+ rel: "noopener",
61657
+ class: "bio-properties-panel-header-link",
61658
+ href: documentationRef,
61659
+ title: "Open documentation",
61660
+ target: "_blank",
61661
+ children: o$2(ExternalLinkIcon, {})
61662
+ }) : null
61457
61663
  })]
61458
61664
  });
61459
61665
  }
61460
61666
 
61461
- /**
61462
- * @pinussilvestrus: we need to introduce our own hook to persist the previous
61463
- * state on updates.
61464
- *
61465
- * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
61466
- */
61467
-
61468
- function usePrevious(value) {
61469
- const ref = s$1();
61470
- y$1(() => {
61471
- ref.current = value;
61472
- });
61473
- return ref.current;
61474
- }
61475
-
61476
61667
  const DescriptionContext = q({
61477
61668
  description: {},
61478
61669
  getDescriptionForId: () => {}
61479
61670
  });
61480
61671
 
61672
+ /**
61673
+ * @typedef {Function} <propertiesPanel.showEntry> callback
61674
+ *
61675
+ * @example
61676
+ *
61677
+ * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {
61678
+ * // ...
61679
+ * });
61680
+ *
61681
+ * @param {Object} context
61682
+ * @param {boolean} [context.focus]
61683
+ *
61684
+ * @returns void
61685
+ */
61686
+ const EventContext = q({
61687
+ eventBus: null
61688
+ });
61689
+
61481
61690
  const LayoutContext = q({
61482
61691
  layout: {},
61483
61692
  setLayout: () => {},
@@ -61485,6 +61694,107 @@
61485
61694
  setLayoutForKey: () => {}
61486
61695
  });
61487
61696
 
61697
+ /**
61698
+ * Accesses the global DescriptionContext and returns a description for a given id and element.
61699
+ *
61700
+ * @example
61701
+ * ```jsx
61702
+ * function TextField(props) {
61703
+ * const description = useDescriptionContext('input1', element);
61704
+ * }
61705
+ * ```
61706
+ *
61707
+ * @param {string} id
61708
+ * @param {djs.model.Base} element
61709
+ *
61710
+ * @returns {string}
61711
+ */
61712
+
61713
+ function useDescriptionContext(id, element) {
61714
+ const {
61715
+ getDescriptionForId
61716
+ } = F(DescriptionContext);
61717
+ return getDescriptionForId(id, element);
61718
+ }
61719
+
61720
+ const DEFAULT_PRIORITY$6 = 1000;
61721
+ /**
61722
+ * Subscribe to an event.
61723
+ *
61724
+ * @param {string} event
61725
+ * @param {Function} callback
61726
+ * @param {number} [priority]
61727
+ *
61728
+ * @returns {import('preact').Ref}
61729
+ */
61730
+
61731
+ function useEvent(event, callback, priority = DEFAULT_PRIORITY$6) {
61732
+ const {
61733
+ eventBus
61734
+ } = F(EventContext);
61735
+ y$1(() => {
61736
+ if (!eventBus) {
61737
+ return;
61738
+ }
61739
+
61740
+ eventBus.on(event, priority, callback);
61741
+ return () => eventBus.off(event, callback);
61742
+ }, [callback, event, eventBus, priority]);
61743
+ }
61744
+
61745
+ const HIGH_PRIORITY$l = 10000;
61746
+ /**
61747
+ * Buffer events and re-fire during passive effect phase.
61748
+ *
61749
+ * @param {string[]} bufferedEvents
61750
+ * @param {Object} [eventBus]
61751
+ */
61752
+
61753
+ function useEventBuffer(bufferedEvents, eventBus) {
61754
+ const buffer = s$1([]),
61755
+ buffering = s$1(true);
61756
+
61757
+ const createCallback = event => data => {
61758
+ if (buffering.current === true) {
61759
+ buffer.current.unshift([event, data]);
61760
+ }
61761
+ }; // (1) buffer events
61762
+
61763
+
61764
+ y$1(() => {
61765
+ if (!eventBus) {
61766
+ return;
61767
+ }
61768
+
61769
+ const listeners = bufferedEvents.map(event => {
61770
+ return [event, createCallback(event)];
61771
+ });
61772
+ listeners.forEach(([event, callback]) => {
61773
+ eventBus.on(event, HIGH_PRIORITY$l, callback);
61774
+ });
61775
+ return () => {
61776
+ listeners.forEach(([event, callback]) => {
61777
+ eventBus.off(event, callback);
61778
+ });
61779
+ };
61780
+ }, [bufferedEvents, eventBus]); // (2) re-fire events
61781
+
61782
+ y$1(() => {
61783
+ if (!eventBus) {
61784
+ return;
61785
+ }
61786
+
61787
+ buffering.current = false;
61788
+
61789
+ while (buffer.current.length) {
61790
+ const [event, data] = buffer.current.pop();
61791
+ eventBus.fire(event, data);
61792
+ }
61793
+
61794
+ buffering.current = true;
61795
+ });
61796
+ }
61797
+
61488
61798
  /**
61489
61799
  * Creates a state that persists in the global LayoutContext.
61490
61800
  *
@@ -61520,94 +61830,104 @@
61520
61830
  }
61521
61831
 
61522
61832
  /**
61523
- * Accesses the global DescriptionContext and returns a description for a given id and element.
61833
+ * @pinussilvestrus: we need to introduce our own hook to persist the previous
61834
+ * state on updates.
61524
61835
  *
61525
- * @example
61526
- * ```jsx
61527
- * function TextField(props) {
61528
- * const description = useDescriptionContext('input1', element);
61529
- * }
61530
- * ```
61836
+ * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
61837
+ */
61838
+
61839
+ function usePrevious(value) {
61840
+ const ref = s$1();
61841
+ y$1(() => {
61842
+ ref.current = value;
61843
+ });
61844
+ return ref.current;
61845
+ }
61846
+
61847
+ /**
61848
+ * Subscribe to `propertiesPanel.showEntry`.
61531
61849
  *
61532
- * @param {string} id
61533
- * @param {djs.model.Base} element
61850
+ * @param {Function} show
61534
61851
  *
61535
- * @returns {string}
61852
+ * @returns {import('preact').Ref}
61536
61853
  */
61537
61854
 
61538
- function useDescriptionContext(id, element) {
61855
+ function useShowEntryEvent(show) {
61539
61856
  const {
61540
- getDescriptionForId
61541
- } = F(DescriptionContext);
61542
- return getDescriptionForId(id, element);
61543
- }
61857
+ onShow
61858
+ } = F(LayoutContext);
61859
+ const ref = s$1();
61860
+ const [focus, setFocus] = l(false);
61861
+ const onShowEntry = A$1(event => {
61862
+ if (show(event)) {
61863
+ if (isFunction(onShow)) {
61864
+ onShow();
61865
+ }
61544
61866
 
61545
- var ArrowIcon = function ArrowIcon(props) {
61546
- return o$2("svg", { ...props,
61547
- children: o$2("path", {
61548
- fillRule: "evenodd",
61549
- d: "m11.657 8-4.95 4.95a1 1 0 0 1-1.414-1.414L8.828 8 5.293 4.464A1 1 0 1 1 6.707 3.05L11.657 8z"
61550
- })
61551
- });
61552
- };
61867
+ if (event.focus && !focus) {
61868
+ setFocus(true);
61869
+ }
61870
+ }
61871
+ }, [show]);
61872
+ y$1(() => {
61873
+ if (focus && ref.current) {
61874
+ if (isFunction(ref.current.focus)) {
61875
+ ref.current.focus();
61876
+ }
61553
61877
 
61554
- ArrowIcon.defaultProps = {
61555
- xmlns: "http://www.w3.org/2000/svg",
61556
- width: "16",
61557
- height: "16"
61558
- };
61878
+ if (isFunction(ref.current.select)) {
61879
+ ref.current.select();
61880
+ }
61559
61881
 
61560
- var FeelRequiredIcon = function FeelRequiredIcon(props) {
61561
- return o$2("svg", { ...props,
61562
- children: [o$2("path", {
61563
- d: "M5.8 7.06V5.95h4.307v1.11H5.8zm0 3.071v-1.11h4.307v1.11H5.8z",
61564
- fill: "#505562"
61565
- }), o$2("path", {
61566
- fillRule: "evenodd",
61567
- clipRule: "evenodd",
61568
- d: "M8 3.268A4.732 4.732 0 1 0 12.732 8H14a6 6 0 1 1-6-6v1.268z",
61569
- fill: "#505562"
61570
- }), o$2("path", {
61571
- d: "m11.28 6.072-.832-.56 1.016-1.224L10 3.848l.312-.912 1.392.584L11.632 2h1.032l-.072 1.52 1.392-.584.312.912-1.464.44 1.008 1.224-.832.552-.864-1.296-.864 1.304z",
61572
- fill: "#505562"
61573
- })]
61574
- });
61575
- };
61882
+ setFocus(false);
61883
+ }
61884
+ }, [focus]);
61885
+ useEvent('propertiesPanel.showEntry', onShowEntry);
61886
+ return ref;
61887
+ }
61576
61888
 
61577
- FeelRequiredIcon.defaultProps = {
61578
- viewBox: "0 0 16 16",
61579
- fill: "none",
61580
- xmlns: "http://www.w3.org/2000/svg"
61581
- };
61889
+ /**
61890
+ * Subscribe to `propertiesPanel.showError`. On `propertiesPanel.showError` set
61891
+ * temporary error. Fire `propertiesPanel.showEntry` for temporary error to be
61892
+ * visible. Unset error on `propertiesPanel.updated`.
61893
+ *
61894
+ * @param {Function} show
61895
+ *
61896
+ * @returns {import('preact').Ref}
61897
+ */
61582
61898
 
61583
- var FeelOptionalIcon = function FeelOptionalIcon(props) {
61584
- return o$2("svg", { ...props,
61585
- children: [o$2("path", {
61586
- d: "M5.845 7.04V5.93h4.307v1.11H5.845zm0 3.07V9h4.307v1.11H5.845z",
61587
- fill: "#505562"
61588
- }), o$2("path", {
61589
- fillRule: "evenodd",
61590
- clipRule: "evenodd",
61591
- d: "M3.286 8a4.714 4.714 0 1 0 9.428 0 4.714 4.714 0 0 0-9.428 0zM8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2z",
61592
- fill: "#505562"
61593
- })]
61594
- });
61595
- };
61899
+ function useShowErrorEvent(show) {
61900
+ const {
61901
+ eventBus
61902
+ } = F(EventContext);
61903
+ const [temporaryError, setTemporaryError] = l(null);
61904
+ const onPropertiesPanelUpdated = A$1(() => setTemporaryError(null), []);
61905
+ useEvent('propertiesPanel.updated', onPropertiesPanelUpdated);
61906
+ const onShowError = A$1(event => {
61907
+ setTemporaryError(null);
61908
+
61909
+ if (show(event)) {
61910
+ if (eventBus) {
61911
+ eventBus.fire('propertiesPanel.showEntry', event);
61912
+ }
61596
61913
 
61597
- FeelOptionalIcon.defaultProps = {
61598
- viewBox: "0 0 16 16",
61599
- fill: "none",
61600
- xmlns: "http://www.w3.org/2000/svg"
61601
- };
61914
+ setTemporaryError(event.message);
61915
+ }
61916
+ }, [show]);
61917
+ useEvent('propertiesPanel.showError', onShowError);
61918
+ return temporaryError;
61919
+ }
61602
61920
 
61603
61921
  function Group(props) {
61604
61922
  const {
61605
61923
  element,
61606
61924
  entries = [],
61607
61925
  id,
61608
- label
61926
+ label,
61927
+ shouldOpen = false
61609
61928
  } = props;
61610
- const [open, setOpen] = useLayoutState(['groups', id, 'open'], false);
61929
+ const [open, setOpen] = useLayoutState(['groups', id, 'open'], shouldOpen);
61930
+ const onShow = A$1(() => setOpen(true), [setOpen]);
61611
61931
 
61612
61932
  const toggleOpen = () => setOpen(!open);
61613
61933
 
@@ -61630,6 +61950,9 @@
61630
61950
  });
61631
61951
  setEdited(hasOneEditedEntry);
61632
61952
  }, [entries]);
61953
+ const propertiesPanelContext = { ...F(LayoutContext),
61954
+ onShow
61955
+ };
61633
61956
  return o$2("div", {
61634
61957
  class: "bio-properties-panel-group",
61635
61958
  "data-group-id": 'group-' + id,
@@ -61652,15 +61975,18 @@
61652
61975
  })]
61653
61976
  }), o$2("div", {
61654
61977
  class: classnames('bio-properties-panel-group-entries', open ? 'open' : ''),
61655
- children: entries.map(entry => {
61656
- const {
61657
- component: Component,
61658
- id
61659
- } = entry;
61660
- return a(Component, { ...entry,
61661
- key: id,
61662
- element: element
61663
- });
61978
+ children: o$2(LayoutContext.Provider, {
61979
+ value: propertiesPanelContext,
61980
+ children: entries.map(entry => {
61981
+ const {
61982
+ component: Component,
61983
+ id
61984
+ } = entry;
61985
+ return a(Component, { ...entry,
61986
+ element: element,
61987
+ key: id
61988
+ });
61989
+ })
61664
61990
  })
61665
61991
  })]
61666
61992
  });
@@ -61677,6 +62003,7 @@
61677
62003
  open: true
61678
62004
  };
61679
62005
  const DEFAULT_DESCRIPTION = {};
62006
+ const bufferedEvents = ['propertiesPanel.showEntry', 'propertiesPanel.showError'];
61680
62007
  /**
61681
62008
  * @typedef { {
61682
62009
  * component: import('preact').Component,
@@ -61708,7 +62035,8 @@
61708
62035
  * component?: import('preact').Component,
61709
62036
  * entries: Array<EntryDefinition>,
61710
62037
  * id: String,
61711
- * label: String
62038
+ * label: String,
62039
+ * shouldOpen?: Boolean
61712
62040
  * } } GroupDefinition
61713
62041
  *
61714
62042
  * @typedef { {
@@ -61735,6 +62063,7 @@
61735
62063
  * @param {Function} [props.layoutChanged]
61736
62064
  * @param {DescriptionConfig} [props.descriptionConfig]
61737
62065
  * @param {Function} [props.descriptionLoaded]
62066
+ * @param {Object} [props.eventBus]
61738
62067
  */
61739
62068
 
61740
62069
  function PropertiesPanel(props) {
@@ -61745,7 +62074,8 @@
61745
62074
  layoutConfig = {},
61746
62075
  layoutChanged,
61747
62076
  descriptionConfig = {},
61748
- descriptionLoaded
62077
+ descriptionLoaded,
62078
+ eventBus
61749
62079
  } = props; // set-up layout context
61750
62080
 
61751
62081
  const [layout, setLayout] = l(createLayout(layoutConfig));
@@ -61786,6 +62116,13 @@
61786
62116
  description,
61787
62117
  getDescriptionForId
61788
62118
  };
62119
+ useEventBuffer(bufferedEvents, eventBus);
62120
+ const eventContext = {
62121
+ eventBus
62122
+ };
62123
+ const propertiesPanelContext = {
62124
+ element
62125
+ };
61789
62126
 
61790
62127
  if (!element) {
61791
62128
  return o$2("div", {
@@ -61794,28 +62131,34 @@
61794
62131
  });
61795
62132
  }
61796
62133
 
61797
- return o$2(DescriptionContext.Provider, {
61798
- value: descriptionContext,
61799
- children: o$2(LayoutContext.Provider, {
61800
- value: layoutContext,
61801
- children: o$2("div", {
61802
- class: classnames('bio-properties-panel', layout.open ? 'open' : ''),
61803
- children: [o$2(Header, {
61804
- element: element,
61805
- headerProvider: headerProvider
61806
- }), o$2("div", {
61807
- class: "bio-properties-panel-scroll-container",
61808
- children: groups.map(group => {
61809
- const {
61810
- component: Component = Group,
61811
- id
61812
- } = group;
61813
- return a(Component, { ...group,
61814
- key: id,
61815
- element: element
61816
- });
62134
+ return o$2(LayoutContext.Provider, {
62135
+ value: propertiesPanelContext,
62136
+ children: o$2(DescriptionContext.Provider, {
62137
+ value: descriptionContext,
62138
+ children: o$2(LayoutContext.Provider, {
62139
+ value: layoutContext,
62140
+ children: o$2(EventContext.Provider, {
62141
+ value: eventContext,
62142
+ children: o$2("div", {
62143
+ class: classnames('bio-properties-panel', layout.open ? 'open' : ''),
62144
+ children: [o$2(Header, {
62145
+ element: element,
62146
+ headerProvider: headerProvider
62147
+ }), o$2("div", {
62148
+ class: "bio-properties-panel-scroll-container",
62149
+ children: groups.map(group => {
62150
+ const {
62151
+ component: Component = Group,
62152
+ id
62153
+ } = group;
62154
+ return a(Component, { ...group,
62155
+ key: id,
62156
+ element: element
62157
+ });
62158
+ })
62159
+ })]
61817
62160
  })
61818
- })]
62161
+ })
61819
62162
  })
61820
62163
  })
61821
62164
  });
@@ -61850,13 +62193,16 @@
61850
62193
  }
61851
62194
  }
61852
62195
 
62196
+ const noop$2 = () => {};
62197
+
61853
62198
  function Checkbox(props) {
61854
62199
  const {
61855
62200
  id,
61856
62201
  label,
61857
62202
  onChange,
61858
62203
  disabled,
61859
- value = false
62204
+ value = false,
62205
+ show = noop$2
61860
62206
  } = props;
61861
62207
 
61862
62208
  const handleChange = ({
@@ -61865,9 +62211,11 @@
61865
62211
  onChange(target.checked);
61866
62212
  };
61867
62213
 
62214
+ const ref = useShowEntryEvent(show);
61868
62215
  return o$2("div", {
61869
62216
  class: "bio-properties-panel-checkbox",
61870
62217
  children: [o$2("input", {
62218
+ ref: ref,
61871
62219
  id: prefixId$6(id),
61872
62220
  name: id,
61873
62221
  type: "checkbox",
@@ -61902,18 +62250,24 @@
61902
62250
  label,
61903
62251
  getValue,
61904
62252
  setValue,
61905
- disabled
62253
+ disabled,
62254
+ show = noop$2
61906
62255
  } = props;
61907
62256
  const value = getValue(element);
62257
+ const error = useShowErrorEvent(show);
61908
62258
  return o$2("div", {
61909
62259
  class: "bio-properties-panel-entry bio-properties-panel-checkbox-entry",
61910
62260
  "data-entry-id": id,
61911
62261
  children: [o$2(Checkbox, {
62262
+ disabled: disabled,
61912
62263
  id: id,
61913
62264
  label: label,
61914
62265
  onChange: setValue,
61915
- value: value,
61916
- disabled: disabled
62266
+ show: show,
62267
+ value: value
62268
+ }), error && o$2("div", {
62269
+ class: "bio-properties-panel-error",
62270
+ children: error
61917
62271
  }), o$2(Description, {
61918
62272
  forId: id,
61919
62273
  element: element,
@@ -61929,6 +62283,25 @@
61929
62283
  return `bio-properties-panel-${id}`;
61930
62284
  }
61931
62285
 
62286
+ const noop$1 = () => {};
62287
+ /**
62288
+ * @typedef { { value: string, label: string, disabled: boolean } } Option
62289
+ */
62290
+
62291
+ /**
62292
+ * Provides basic select input.
62293
+ *
62294
+ * @param {object} props
62295
+ * @param {string} props.id
62296
+ * @param {string[]} props.path
62297
+ * @param {string} props.label
62298
+ * @param {Function} props.onChange
62299
+ * @param {Array<Option>} [props.options]
62300
+ * @param {string} props.value
62301
+ * @param {boolean} [props.disabled]
62302
+ */
62303
+
62304
+
61932
62305
  function Select(props) {
61933
62306
  const {
61934
62307
  id,
@@ -61936,8 +62309,10 @@
61936
62309
  onChange,
61937
62310
  options = [],
61938
62311
  value,
61939
- disabled
62312
+ disabled,
62313
+ show = noop$1
61940
62314
  } = props;
62315
+ const ref = useShowEntryEvent(show);
61941
62316
 
61942
62317
  const handleChange = ({
61943
62318
  target
@@ -61952,6 +62327,7 @@
61952
62327
  class: "bio-properties-panel-label",
61953
62328
  children: label
61954
62329
  }), o$2("select", {
62330
+ ref: ref,
61955
62331
  id: prefixId$4(id),
61956
62332
  name: id,
61957
62333
  class: "bio-properties-panel-input",
@@ -61990,12 +62366,14 @@
61990
62366
  getValue,
61991
62367
  setValue,
61992
62368
  getOptions,
61993
- disabled
62369
+ disabled,
62370
+ show = noop$1
61994
62371
  } = props;
61995
62372
  const value = getValue(element);
61996
62373
  const options = getOptions(element);
62374
+ const error = useShowErrorEvent(show);
61997
62375
  return o$2("div", {
61998
- class: "bio-properties-panel-entry",
62376
+ class: classnames('bio-properties-panel-entry', error ? 'has-error' : ''),
61999
62377
  "data-entry-id": id,
62000
62378
  children: [o$2(Select, {
62001
62379
  id: id,
@@ -62003,7 +62381,11 @@
62003
62381
  value: value,
62004
62382
  onChange: setValue,
62005
62383
  options: options,
62006
- disabled: disabled
62384
+ disabled: disabled,
62385
+ show: show
62386
+ }), error && o$2("div", {
62387
+ class: "bio-properties-panel-error",
62388
+ children: error
62007
62389
  }), o$2(Description, {
62008
62390
  forId: id,
62009
62391
  element: element,
@@ -62131,6 +62513,8 @@
62131
62513
  return `bio-properties-panel-${id}`;
62132
62514
  }
62133
62515
 
62516
+ const noop = () => {};
62517
+
62134
62518
  function Textfield(props) {
62135
62519
  const {
62136
62520
  debounce,
@@ -62139,8 +62523,10 @@
62139
62523
  label,
62140
62524
  onInput,
62141
62525
  feel = false,
62142
- value = ''
62526
+ value = '',
62527
+ show = noop
62143
62528
  } = props;
62529
+ const ref = useShowEntryEvent(show);
62144
62530
  const handleInput = d$1(() => {
62145
62531
  return debounce(({
62146
62532
  target
@@ -62156,6 +62542,7 @@
62156
62542
  label: label
62157
62543
  })]
62158
62544
  }), o$2("input", {
62545
+ ref: ref,
62159
62546
  id: prefixId$1(id),
62160
62547
  type: "text",
62161
62548
  name: id,
@@ -62195,53 +62582,61 @@
62195
62582
  label,
62196
62583
  getValue,
62197
62584
  setValue,
62198
- validate
62585
+ validate,
62586
+ show = noop
62199
62587
  } = props;
62200
- const [error, setError] = l(null);
62201
- const [invalidValueCache, setInvalidValueCache] = l(null);
62588
+ const [cachedInvalidValue, setCachedInvalidValue] = l(null);
62589
+ const [validationError, setValidationError] = l(null);
62202
62590
  let value = getValue(element);
62203
- const prevValue = usePrevious(value); // validate again when value prop changed
62204
-
62591
+ const previousValue = usePrevious(value);
62205
62592
  y$1(() => {
62206
- const err = validate ? validate(value) : null;
62207
- setError(err);
62208
- }, [value]); // validate on change
62593
+ if (isFunction(validate)) {
62594
+ const newValidationError = validate(value) || null;
62595
+ setValidationError(newValidationError);
62596
+ }
62597
+ }, [value]);
62209
62598
 
62210
- const handleChange = newValue => {
62211
- const err = validate ? validate(newValue) : null;
62599
+ const onInput = newValue => {
62600
+ let newValidationError = null;
62212
62601
 
62213
- if (err) {
62214
- setInvalidValueCache(newValue);
62602
+ if (isFunction(validate)) {
62603
+ newValidationError = validate(newValue) || null;
62604
+ }
62605
+
62606
+ if (newValidationError) {
62607
+ setCachedInvalidValue(newValue);
62215
62608
  } else {
62216
62609
  setValue(newValue);
62217
62610
  }
62218
62611
 
62219
- setError(err);
62220
- }; // keep showing invalid value on errors, although it was not set
62221
-
62612
+ setValidationError(newValidationError);
62613
+ };
62222
62614
 
62223
- if (prevValue === value && error) {
62224
- value = invalidValueCache;
62615
+ if (previousValue === value && validationError) {
62616
+ value = cachedInvalidValue;
62225
62617
  }
62226
62618
 
62619
+ const temporaryError = useShowErrorEvent(show);
62620
+ const error = temporaryError || validationError;
62227
62621
  return o$2("div", {
62228
62622
  class: classnames('bio-properties-panel-entry', error ? 'has-error' : ''),
62229
62623
  "data-entry-id": id,
62230
62624
  children: [o$2(Textfield, {
62231
- id: id,
62232
- label: label,
62233
- value: value,
62234
- onInput: handleChange,
62235
62625
  debounce: debounce,
62236
62626
  disabled: disabled,
62237
- feel: feel
62627
+ feel: feel,
62628
+ id: id,
62629
+ label: label,
62630
+ onInput: onInput,
62631
+ show: show,
62632
+ value: value
62633
+ }), error && o$2("div", {
62634
+ class: "bio-properties-panel-error",
62635
+ children: error
62238
62636
  }), o$2(Description, {
62239
62637
  forId: id,
62240
62638
  element: element,
62241
62639
  value: description
62242
- }), error && o$2("div", {
62243
- class: "bio-properties-panel-error",
62244
- children: error
62245
62640
  })]
62246
62641
  });
62247
62642
  }
@@ -62270,6 +62665,145 @@
62270
62665
  debounceInput: ['factory', debounceInput]
62271
62666
  };
62272
62667
 
62668
+ var require$$0 = /*@__PURE__*/getAugmentedNamespace(index_esm);
62669
+
62670
+ const {
62671
+ isNil: isNil$1,
62672
+ isString: isString$1,
62673
+ isUndefined: isUndefined$2
62674
+ } = require$$0;
62675
+
62676
+ /**
62677
+ * Get path from model element and optional parent model element. Falls back to
62678
+ * returning null.
62679
+ *
62680
+ * @param {ModdleElement} moddleElement
62681
+ * @param {ModdleElement} [parentModdleElement]
62682
+ *
62683
+ * @returns {string[]|null}
62684
+ */
62685
+ var getPath = function(moddleElement, parentModdleElement) {
62686
+ if (!moddleElement) {
62687
+ return null;
62688
+ }
62689
+
62690
+ if (moddleElement === parentModdleElement) {
62691
+ return [];
62692
+ }
62693
+
62694
+ let path = [],
62695
+ parent;
62696
+
62697
+ do {
62698
+ parent = moddleElement.$parent;
62699
+
62700
+ if (!parent) {
62701
+ if (moddleElement.$instanceOf('bpmn:Definitions')) {
62702
+ break;
62703
+ } else {
62704
+ return null;
62705
+ }
62706
+ }
62707
+
62708
+ path = [ ...getPropertyName(moddleElement, parent), ...path ];
62709
+
62710
+ moddleElement = parent;
62711
+
62712
+ if (parentModdleElement && moddleElement === parentModdleElement) {
62713
+ break;
62714
+ }
62715
+ } while (parent);
62716
+
62717
+ return path;
62718
+ };
62719
+
62720
+ /**
62721
+ * Get property name from model element and parent model element.
62722
+ *
62723
+ * @param {ModdleElement} moddleElement
62724
+ * @param {ModdleElement} parentModdleElement
62725
+ *
62726
+ * @returns {string[]}
62727
+ */
62728
+ function getPropertyName(moddleElement, parentModdleElement) {
62729
+ for (let property of Object.values(parentModdleElement.$descriptor.propertiesByName)) {
62730
+ if (property.isMany) {
62731
+ if (parentModdleElement.get(property.name).includes(moddleElement)) {
62732
+ return [
62733
+ property.name,
62734
+ parentModdleElement.get(property.name).indexOf(moddleElement)
62735
+ ];
62736
+ }
62737
+ } else {
62738
+ if (parentModdleElement.get(property.name) === moddleElement) {
62739
+ return [ property.name ];
62740
+ }
62741
+ }
62742
+ }
62743
+
62744
+ return [];
62745
+ }
62746
+
62747
+ /**
62748
+ * @param {(string|(number|string)[])[]} paths
62749
+ *
62750
+ * @returns {(number|string)[]}
62751
+ */
62752
+ var pathConcat = function(...paths) {
62753
+ let concatenatedPaths = [];
62754
+
62755
+ for (let path of paths) {
62756
+ if (isNil$1(path) || isUndefined$2(path)) {
62757
+ return null;
62758
+ }
62759
+
62760
+ if (isString$1(path)) {
62761
+ path = [ path ];
62762
+ }
62763
+
62764
+ concatenatedPaths = concatenatedPaths.concat(path);
62765
+ }
62766
+
62767
+ return concatenatedPaths;
62768
+ };
62769
+
62770
+ /**
62771
+ * @param {string|(number|string)[]} a
62772
+ * @param {string|(number|string)[]} b
62773
+ * @param {string} [separator]
62774
+ *
62775
+ * @returns {boolean}
62776
+ */
62777
+ var pathEquals = function(a, b, separator = '.') {
62778
+ if (isNil$1(a) || isUndefined$2(a) || isNil$1(b) || isUndefined$2(b)) {
62779
+ return false;
62780
+ }
62781
+
62782
+ if (!isString$1(a)) {
62783
+ a = pathStringify(a, separator);
62784
+ }
62785
+
62786
+ if (!isString$1(b)) {
62787
+ b = pathStringify(b, separator);
62788
+ }
62789
+
62790
+ return a === b;
62791
+ };
62792
+
62793
+ /**
62794
+ * @param {(number|string)[]} path
62795
+ * @param {string} [separator]
62796
+ *
62797
+ * @returns {string}
62798
+ */
62799
+ function pathStringify(path, separator = '.') {
62800
+ if (isNil$1(path) || isUndefined$2(path)) {
62801
+ return null;
62802
+ }
62803
+
62804
+ return path.join(separator);
62805
+ }
62806
+
62273
62807
  /**
62274
62808
  * Failsafe remove an element from a collection
62275
62809
  *
@@ -62340,6 +62874,56 @@
62340
62874
 
62341
62875
  });
62342
62876
 
62877
+ function useService(type, strict) {
62878
+ const {
62879
+ getService
62880
+ } = F(BpmnPropertiesPanelContext);
62881
+ return getService(type, strict);
62882
+ }
62883
+
62884
+ /**
62885
+ * Returns a memoized callback to be passed as `show` prop. Callback returns
62886
+ * true if (1) ID and path match or (2) ID matches and matcher returns true.
62887
+ *
62888
+ * @example
62889
+ *
62890
+ * // using path
62891
+ * const show = useShowCallback(businessObject, [ 'foo' ]);
62892
+ *
62893
+ * @example
62894
+ *
62895
+ * // using matcher
62896
+ * const show = useShowCallback(businessObject, (event) => event.foo === 'bar');
62897
+ *
62898
+ * @param {Object} businessObject
62899
+ * @param {string[]|Function} matcher
62900
+ *
62901
+ * @returns {Function}
62902
+ */
62903
+
62904
+ function useShowCallback(businessObject, matcher) {
62905
+ return A$1(event => {
62906
+ const {
62907
+ id,
62908
+ path
62909
+ } = event;
62910
+
62911
+ if (id !== businessObject.get('id')) {
62912
+ return false;
62913
+ }
62914
+
62915
+ if (isArray(matcher)) {
62916
+ return path && pathEquals(path, matcher);
62917
+ }
62918
+
62919
+ if (isFunction(matcher)) {
62920
+ return !!matcher(event);
62921
+ }
62922
+
62923
+ return false;
62924
+ }, [businessObject, matcher]);
62925
+ }
62926
+
62343
62927
  function _extends$1m() { _extends$1m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1m.apply(this, arguments); }
62344
62928
  var AssociationIcon = (({
62345
62929
  styles = {},
@@ -63559,6 +64143,13 @@
63559
64143
  return type;
63560
64144
  }
63561
64145
  const PanelHeaderProvider = {
64146
+ getDocumentationRef: element => {
64147
+ const elementTemplates = getTemplatesService();
64148
+
64149
+ if (elementTemplates) {
64150
+ return getTemplateDocumentation(element, elementTemplates);
64151
+ }
64152
+ },
63562
64153
  getElementLabel: element => {
63563
64154
  if (is$1(element, 'bpmn:Process')) {
63564
64155
  return getBusinessObject(element).name;
@@ -63568,9 +64159,34 @@
63568
64159
  },
63569
64160
  getElementIcon: element => {
63570
64161
  const concreteType = getConcreteType(element);
64162
+ const elementTemplates = getTemplatesService();
64163
+
64164
+ if (elementTemplates) {
64165
+ const template = getTemplate(element, elementTemplates);
64166
+
64167
+ if (template && template.icon) {
64168
+ return () => o$2("img", {
64169
+ class: "bio-properties-panel-header-template-icon",
64170
+ width: "32",
64171
+ height: "32",
64172
+ src: template.icon.contents
64173
+ });
64174
+ }
64175
+ }
64176
+
63571
64177
  return iconsByType[concreteType];
63572
64178
  },
63573
64179
  getTypeLabel: element => {
64180
+ const elementTemplates = getTemplatesService();
64181
+
64182
+ if (elementTemplates) {
64183
+ const template = getTemplate(element, elementTemplates);
64184
+
64185
+ if (template && template.name) {
64186
+ return template.name;
64187
+ }
64188
+ }
64189
+
63574
64190
  const concreteType = getConcreteType(element);
63575
64191
  return concreteType.replace(/(\B[A-Z])/g, ' $1').replace(/(\bNon Interrupting)/g, '($1)');
63576
64192
  }
@@ -63616,8 +64232,7 @@
63616
64232
  }
63617
64233
 
63618
64234
  return businessObject.conditionExpression && is$1(sourceBusinessObject, 'bpmn:Activity');
63619
- } // helpers //////////
63620
-
64235
+ }
63621
64236
 
63622
64237
  function isPlane$1(element) {
63623
64238
  // Backwards compatibility for bpmn-js<8
@@ -63625,6 +64240,22 @@
63625
64240
  return is$1(di, 'bpmndi:BPMNPlane');
63626
64241
  }
63627
64242
 
64243
+ function getTemplatesService() {
64244
+ // eslint-disable-next-line react-hooks/rules-of-hooks
64245
+ return useService('elementTemplates', false);
64246
+ }
64247
+
64248
+ function getTemplate(element, elementTemplates) {
64249
+ const templateId = elementTemplates._getTemplateId(element);
64250
+
64251
+ return templateId && elementTemplates.get(templateId);
64252
+ }
64253
+
64254
+ function getTemplateDocumentation(element, elementTemplates) {
64255
+ const template = getTemplate(element, elementTemplates);
64256
+ return template && template.documentationRef;
64257
+ }
64258
+
63628
64259
  function BpmnPropertiesPanel(props) {
63629
64260
  const {
63630
64261
  element,
@@ -63772,7 +64403,8 @@
63772
64403
  layoutConfig: layoutConfig,
63773
64404
  layoutChanged: onLayoutChanged,
63774
64405
  descriptionConfig: descriptionConfig,
63775
- descriptionLoaded: onDescriptionLoaded
64406
+ descriptionLoaded: onDescriptionLoaded,
64407
+ eventBus: eventBus
63776
64408
  })
63777
64409
  });
63778
64410
  } // helpers //////////////////////////
@@ -63790,7 +64422,7 @@
63790
64422
  return element && elementRegistry.get(element.id);
63791
64423
  }
63792
64424
 
63793
- const DEFAULT_PRIORITY$6 = 1000;
64425
+ const DEFAULT_PRIORITY$7 = 1000;
63794
64426
  /**
63795
64427
  * @typedef { import('@bpmn-io/properties-panel').GroupDefinition } GroupDefinition
63796
64428
  * @typedef { import('@bpmn-io/properties-panel').ListGroupDefinition } ListGroupDefinition
@@ -63873,7 +64505,7 @@
63873
64505
  registerProvider(priority, provider) {
63874
64506
  if (!provider) {
63875
64507
  provider = priority;
63876
- priority = DEFAULT_PRIORITY$6;
64508
+ priority = DEFAULT_PRIORITY$7;
63877
64509
  }
63878
64510
 
63879
64511
  if (typeof provider.getGroups !== 'function') {
@@ -63985,13 +64617,6 @@
63985
64617
  propertiesPanel: ['type', BpmnPropertiesPanelRenderer]
63986
64618
  };
63987
64619
 
63988
- function useService (type, strict) {
63989
- const {
63990
- getService
63991
- } = F(BpmnPropertiesPanelContext);
63992
- return getService(type, strict);
63993
- }
63994
-
63995
64620
  function ReferenceSelectEntry(props) {
63996
64621
  const {
63997
64622
  autoFocusEntry,
@@ -64647,6 +65272,9 @@
64647
65272
  return options;
64648
65273
  };
64649
65274
 
65275
+ const businessObject = getBusinessObject(element),
65276
+ path = pathConcat(getPath(errorEventDefinition, businessObject), 'errorRef');
65277
+ const show = useShowCallback(businessObject, path);
64650
65278
  return ReferenceSelectEntry({
64651
65279
  element,
64652
65280
  id: 'errorRef',
@@ -64654,7 +65282,8 @@
64654
65282
  autoFocusEntry: 'errorName',
64655
65283
  getValue,
64656
65284
  setValue,
64657
- getOptions
65285
+ getOptions,
65286
+ show
64658
65287
  });
64659
65288
  }
64660
65289
 
@@ -64714,13 +65343,17 @@
64714
65343
  });
64715
65344
  };
64716
65345
 
65346
+ const businessObject = getBusinessObject(element),
65347
+ path = pathConcat(getPath(error, businessObject), 'errorCode');
65348
+ const show = useShowCallback(businessObject, path);
64717
65349
  return TextfieldEntry({
64718
65350
  element,
64719
65351
  id: 'errorCode',
64720
65352
  label: translate('Code'),
64721
65353
  getValue,
64722
65354
  setValue,
64723
- debounce
65355
+ debounce,
65356
+ show
64724
65357
  });
64725
65358
  } // helper /////////////////////////
64726
65359
 
@@ -65266,6 +65899,9 @@
65266
65899
  return options;
65267
65900
  };
65268
65901
 
65902
+ const businessObject = getBusinessObject(element),
65903
+ path = pathConcat(getPath(messageEventDefinition, businessObject), 'messageRef');
65904
+ const show = useShowCallback(businessObject, path);
65269
65905
  return ReferenceSelectEntry({
65270
65906
  element,
65271
65907
  id: 'messageRef',
@@ -65273,7 +65909,8 @@
65273
65909
  autoFocusEntry: 'messageName',
65274
65910
  getValue,
65275
65911
  setValue,
65276
- getOptions
65912
+ getOptions,
65913
+ show
65277
65914
  });
65278
65915
  }
65279
65916
 
@@ -65300,13 +65937,17 @@
65300
65937
  });
65301
65938
  };
65302
65939
 
65940
+ const businessObject = getBusinessObject(element),
65941
+ path = pathConcat(getPath(message, businessObject), 'name');
65942
+ const show = useShowCallback(businessObject, path);
65303
65943
  return TextfieldEntry({
65304
65944
  element,
65305
65945
  id: 'messageName',
65306
65946
  label: translate('Name'),
65307
65947
  getValue,
65308
65948
  setValue,
65309
- debounce
65949
+ debounce,
65950
+ show
65310
65951
  });
65311
65952
  } // helper /////////////////////////
65312
65953