camunda-bpmn-js 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/base-modeler.css +2 -1
- package/dist/assets/diagram-js.css +1 -3
- package/dist/base-modeler.development.js +679 -233
- package/dist/base-modeler.production.min.js +21 -21
- package/dist/camunda-cloud-modeler.development.js +1130 -270
- package/dist/camunda-cloud-modeler.production.min.js +21 -21
- package/dist/camunda-platform-modeler.development.js +718 -258
- package/dist/camunda-platform-modeler.production.min.js +26 -26
- package/package.json +5 -5
- package/styles/base-modeler.css +2 -1
|
@@ -28375,11 +28375,11 @@
|
|
|
28375
28375
|
|
|
28376
28376
|
var n$3,l$3,u$3,t$5,o$5,f$3={},e$5=[],c$3=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s$3(n,l){for(var u in l)n[u]=l[u];return n}function a$4(n){var l=n.parentNode;l&&l.removeChild(n);}function h$3(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n$3.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v$3(l,f,t,o,null)}function v$3(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u$3:r};return null==r&&null!=l$3.vnode&&l$3.vnode(f),f}function p$4(n){return n.children}function d$3(n,l){this.props=n,this.context=l;}function _$3(n,l){if(null==l)return n.__?_$3(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?_$3(n):null}function k$4(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k$4(n)}}function b$3(n){(!n.__d&&(n.__d=!0)&&t$5.push(n)&&!g$4.__r++||o$5!==l$3.debounceRendering)&&((o$5=l$3.debounceRendering)||setTimeout)(g$4);}function g$4(){for(var n;g$4.__r=t$5.length;)n=t$5.sort(function(n,l){return n.__v.__b-l.__v.__b}),t$5=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s$3({},t)).__v=t.__v+1,j$4(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_$3(t):o,t.__h),z$3(u,t),t.__e!=o&&k$4(t)));});}function w$4(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e$5,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v$3(null,k,null,null,k):Array.isArray(k)?v$3(p$4,{children:k},null,null,null):k.__b>0?v$3(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null;}j$4(n,k,d=d||f$3,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m$4(k,s,n):s=A$3(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_$3(d));}for(u.__e=g,h=C;h--;)null!=x[h]&&N$2(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M$2(w[h],w[++h],w[++h]);}function m$4(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m$4(i,l,u):A$3(u,i,i,t,i.__e,l));return l}function A$3(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else {for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o;}return void 0!==r?r:t.nextSibling}function C$3(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H$2(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H$2(n,o,l[o],u[o],i);}function $$2(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c$3.test(l)?u:u+"px";}function H$2(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$$2(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$$2(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T$4:I$2,o):n.removeEventListener(l,o?T$4:I$2,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u));}}function I$2(n){this.l[n.type+!1](l$3.event?l$3.event(n):n);}function T$4(n){this.l[n.type+!0](l$3.event?l$3.event(n):n);}function j$4(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l$3.__b)&&a(u);try{n:if("function"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d$3(g,x),h.constructor=T,h.render=O$2),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s$3({},h.__s)),s$3(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k);});}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l$3.__r,$=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[];}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s;}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s$3(s$3({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p$4&&null==a.key?a.props.children:a,w$4(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L$2(i.__e,u,i,t,o,r,f,c);(a=l$3.diffed)&&a(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l$3.__e(n,u,i);}}function z$3(n,u){l$3.__c&&l$3.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$3.__e(n,u.__v);}});}function L$2(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(r=r&&n$3.call(l.childNodes),h=(y=i.props||f$3).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C$3(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w$4(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_$3(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a$4(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H$2(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H$2(l,"checked",k,y.checked,!1));}return l}function M$2(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l$3.__e(n,i);}}function N$2(n,u,i){var t,o;if(l$3.unmount&&l$3.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M$2(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l$3.__e(n,u);}t.base=t.__P=null,n.__c=void 0;}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N$2(t[o],u,i||"function"!=typeof n.type);i||null==n.__e||a$4(n.__e),n.__=n.__e=n.__d=void 0;}function O$2(n,l,u){return this.constructor(n,u)}function P$2(u,i,t){var o,r,e;l$3.__&&l$3.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j$4(i,u=(!o&&t||i).__k=h$3(p$4,null,[u]),r||f$3,f$3,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n$3.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z$3(e,u);}n$3=e$5.slice,l$3={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l;}throw n}},u$3=0,d$3.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s$3({},this.state),"function"==typeof n&&(n=n(s$3({},u),this.props)),n&&s$3(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b$3(this));},d$3.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b$3(this));},d$3.prototype.render=p$4,t$5=[],g$4.__r=0;
|
|
28377
28377
|
|
|
28378
|
-
var
|
|
28378
|
+
var n$2=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+"":p?(u=t.apply(a,n$2(t,a,r,["",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a);}return e},t$4=new Map;function e$4(s){var r=t$4.get(this);return r||(r=new Map,t$4.set(this,r)),(r=n$2(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e="",u="",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&"..."===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e="";},a=0;a<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?"<"===t?(p(),h=[h],r=3):e+=t:4===r?"--"===e&&">"===t?(r=1,e=""):e=t+e[0]:u?t===u?u="":e+=t:'"'===t||"'"===t?u=t:">"===t?(p(),r=1):r&&("="===t?(r=5,s=e,e=""):"/"===t&&(r<5||">"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(p(),r=2):e+=t),3===r&&"!--"===e&&(r=4,h=h[0]);}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}
|
|
28379
28379
|
|
|
28380
|
-
var
|
|
28380
|
+
var m$3=e$4.bind(h$3);
|
|
28381
28381
|
|
|
28382
|
-
var
|
|
28382
|
+
var t$3,r$3,u$2,i$4,o$4=0,f$2=[],c$2=[],e$3=l$3.__b,a$3=l$3.__r,v$2=l$3.diffed,l$2=l$3.__c,m$2=l$3.unmount;function d$2(t,u){l$3.__h&&l$3.__h(r$3,t,o$4||u),o$4=0;var i=r$3.__H||(r$3.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c$2}),i.__[t]}function p$3(n){return o$4=1,y$2(B$1,n)}function y$2(n,u,i){var o=d$2(t$3++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B$1(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$3,!r$3.u)){r$3.u=!0;var f=r$3.shouldComponentUpdate;r$3.shouldComponentUpdate=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 !f||f.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)&&(!f||f.call(this,n,t,r))};}return o.__N||o.__}function h$2(u,i){var o=d$2(t$3++,3);!l$3.__s&&z$2(o.__H,i)&&(o.__=u,o.i=i,r$3.__H.__h.push(o));}function s$2(u,i){var o=d$2(t$3++,4);!l$3.__s&&z$2(o.__H,i)&&(o.__=u,o.i=i,r$3.__h.push(o));}function _$2(n){return o$4=5,F$2(function(){return {current:n}},[])}function F$2(n,r){var u=d$2(t$3++,7);return z$2(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T$3(n,t){return o$4=8,F$2(function(){return n},t)}function b$2(){for(var t;t=f$2.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k$3),t.__H.__h.forEach(w$3),t.__H.__h=[];}catch(r){t.__H.__h=[],l$3.__e(r,t.__v);}}l$3.__b=function(n){r$3=null,e$3&&e$3(n);},l$3.__r=function(n){a$3&&a$3(n),t$3=0;var i=(r$3=n.__c).__H;i&&(u$2===r$3?(i.__h=[],r$3.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c$2,n.__N=n.i=void 0;})):(i.__h.forEach(k$3),i.__h.forEach(w$3),i.__h=[])),u$2=r$3;},l$3.diffed=function(t){v$2&&v$2(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f$2.push(o)&&i$4===l$3.requestAnimationFrame||((i$4=l$3.requestAnimationFrame)||j$3)(b$2)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c$2&&(n.__=n.__V),n.i=void 0,n.__V=c$2;})),u$2=r$3=null;},l$3.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k$3),t.__h=t.__h.filter(function(n){return !n.__||w$3(n)});}catch(u){r.some(function(n){n.__h&&(n.__h=[]);}),r=[],l$3.__e(u,t.__v);}}),l$2&&l$2(t,r);},l$3.unmount=function(t){m$2&&m$2(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k$3(n);}catch(n){r=n;}}),u.__H=void 0,r&&l$3.__e(r,u.__v));};var g$3="function"==typeof requestAnimationFrame;function j$3(n){var t,r=function(){clearTimeout(u),g$3&&cancelAnimationFrame(t),setTimeout(n);},u=setTimeout(r,100);g$3&&(t=requestAnimationFrame(r));}function k$3(n){var t=r$3,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),r$3=t;}function w$3(n){var t=r$3;n.__c=n.__(),r$3=t;}function z$2(n,t){return !n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B$1(n,t){return "function"==typeof t?t(n):t}
|
|
28383
28383
|
|
|
28384
28384
|
function r$2(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r$2(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r$2(e))&&(n&&(n+=" "),n+=t);return n}
|
|
28385
28385
|
|
|
@@ -28402,7 +28402,7 @@
|
|
|
28402
28402
|
onClick
|
|
28403
28403
|
} = props;
|
|
28404
28404
|
|
|
28405
|
-
return m$
|
|
28405
|
+
return m$3`
|
|
28406
28406
|
<li
|
|
28407
28407
|
class=${ clsx('entry', { selected }) }
|
|
28408
28408
|
data-id=${ entry.id }
|
|
@@ -28415,17 +28415,17 @@
|
|
|
28415
28415
|
<span
|
|
28416
28416
|
class=${ clsx('djs-popup-entry-name', entry.className) }
|
|
28417
28417
|
>
|
|
28418
|
-
${ entry.imageUrl ? m$
|
|
28418
|
+
${ entry.imageUrl ? m$3`
|
|
28419
28419
|
<img class="djs-popup-entry-icon" src=${ entry.imageUrl } />
|
|
28420
28420
|
` : null }
|
|
28421
28421
|
|
|
28422
|
-
${ entry.label ? m$
|
|
28422
|
+
${ entry.label ? m$3`
|
|
28423
28423
|
<span class="djs-popup-label">
|
|
28424
28424
|
${ entry.label }
|
|
28425
28425
|
</span>
|
|
28426
28426
|
` : null }
|
|
28427
28427
|
</span>
|
|
28428
|
-
${ entry.description && m$
|
|
28428
|
+
${ entry.description && m$3`
|
|
28429
28429
|
<span
|
|
28430
28430
|
class="djs-popup-entry-description"
|
|
28431
28431
|
title=${ entry.description }
|
|
@@ -28434,7 +28434,7 @@
|
|
|
28434
28434
|
</span>
|
|
28435
28435
|
` }
|
|
28436
28436
|
</div>
|
|
28437
|
-
${ entry.documentationRef && m$
|
|
28437
|
+
${ entry.documentationRef && m$3`
|
|
28438
28438
|
<div class="djs-popup-entry-docs">
|
|
28439
28439
|
<a
|
|
28440
28440
|
href="${ entry.documentationRef }"
|
|
@@ -28489,16 +28489,16 @@
|
|
|
28489
28489
|
}
|
|
28490
28490
|
}, [ selectedEntry ]);
|
|
28491
28491
|
|
|
28492
|
-
return m$
|
|
28492
|
+
return m$3`
|
|
28493
28493
|
<div class="djs-popup-results" ref=${ resultsRef }>
|
|
28494
|
-
${ groups.map(group => m$
|
|
28495
|
-
${ group.name && m$
|
|
28494
|
+
${ groups.map(group => m$3`
|
|
28495
|
+
${ group.name && m$3`
|
|
28496
28496
|
<div key=${ group.id } class="entry-header" title=${ group.name }>
|
|
28497
28497
|
${ group.name }
|
|
28498
28498
|
</div>
|
|
28499
28499
|
` }
|
|
28500
28500
|
<ul class="djs-popup-group" data-group=${ group.id }>
|
|
28501
|
-
${ group.entries.map(entry => m$
|
|
28501
|
+
${ group.entries.map(entry => m$3`
|
|
28502
28502
|
<${PopupMenuItem}
|
|
28503
28503
|
key=${ entry.id }
|
|
28504
28504
|
entry=${ entry }
|
|
@@ -28717,7 +28717,7 @@
|
|
|
28717
28717
|
|
|
28718
28718
|
const displayHeader = F$2(() => title || headerEntries.length > 0, [ title, headerEntries ]);
|
|
28719
28719
|
|
|
28720
|
-
return m$
|
|
28720
|
+
return m$3`
|
|
28721
28721
|
<${PopupMenuWrapper}
|
|
28722
28722
|
onClose=${ onClose }
|
|
28723
28723
|
onKeyup=${ handleKey }
|
|
@@ -28727,10 +28727,10 @@
|
|
|
28727
28727
|
width=${ width }
|
|
28728
28728
|
scale=${ scale }
|
|
28729
28729
|
>
|
|
28730
|
-
${ displayHeader && m$
|
|
28730
|
+
${ displayHeader && m$3`
|
|
28731
28731
|
<div class="djs-popup-header">
|
|
28732
28732
|
<h3 class="djs-popup-title" title=${ title }>${ title }</h3>
|
|
28733
|
-
${ headerEntries.map(entry => m$
|
|
28733
|
+
${ headerEntries.map(entry => m$3`
|
|
28734
28734
|
<span
|
|
28735
28735
|
class=${ getHeaderClasses(entry, entry === selectedEntry) }
|
|
28736
28736
|
onClick=${ event => onSelect(event, entry) }
|
|
@@ -28739,21 +28739,21 @@
|
|
|
28739
28739
|
onMouseEnter=${ () => setSelectedEntry(entry) }
|
|
28740
28740
|
onMouseLeave=${ () => setSelectedEntry(null) }
|
|
28741
28741
|
>
|
|
28742
|
-
${ entry.imageUrl ? m$
|
|
28742
|
+
${ entry.imageUrl ? m$3`
|
|
28743
28743
|
<img class="djs-popup-entry-icon" src=${ entry.imageUrl } />
|
|
28744
28744
|
` : null }
|
|
28745
28745
|
|
|
28746
|
-
${ entry.label ? m$
|
|
28746
|
+
${ entry.label ? m$3`
|
|
28747
28747
|
<span class="djs-popup-label">${ entry.label }</span>
|
|
28748
28748
|
` : null }
|
|
28749
28749
|
</span>
|
|
28750
28750
|
`) }
|
|
28751
28751
|
</div>
|
|
28752
28752
|
` }
|
|
28753
|
-
${ originalEntries.length > 0 && m$
|
|
28753
|
+
${ originalEntries.length > 0 && m$3`
|
|
28754
28754
|
<div class="djs-popup-body">
|
|
28755
28755
|
|
|
28756
|
-
${ searchable && m$
|
|
28756
|
+
${ searchable && m$3`
|
|
28757
28757
|
<div class="djs-popup-search">
|
|
28758
28758
|
<svg class="djs-popup-search-icon" width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
28759
28759
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.0325 8.5H9.625L13.3675 12.25L12.25 13.3675L8.5 9.625V9.0325L8.2975 8.8225C7.4425 9.5575 6.3325 10 5.125 10C2.4325 10 0.25 7.8175 0.25 5.125C0.25 2.4325 2.4325 0.25 5.125 0.25C7.8175 0.25 10 2.4325 10 5.125C10 6.3325 9.5575 7.4425 8.8225 8.2975L9.0325 8.5ZM1.75 5.125C1.75 6.9925 3.2575 8.5 5.125 8.5C6.9925 8.5 8.5 6.9925 8.5 5.125C8.5 3.2575 6.9925 1.75 5.125 1.75C3.2575 1.75 1.75 3.2575 1.75 5.125Z" fill="#22242A"/>
|
|
@@ -28772,7 +28772,7 @@
|
|
|
28772
28772
|
onClick=${ onSelect }
|
|
28773
28773
|
/>
|
|
28774
28774
|
</div>
|
|
28775
|
-
${ entries.length === 0 && m$
|
|
28775
|
+
${ entries.length === 0 && m$3`
|
|
28776
28776
|
<div class="djs-popup-no-results">No matching entries found.</div>
|
|
28777
28777
|
` }
|
|
28778
28778
|
` }
|
|
@@ -28825,7 +28825,7 @@
|
|
|
28825
28825
|
popupRef.current && popupRef.current.focus();
|
|
28826
28826
|
}, []);
|
|
28827
28827
|
|
|
28828
|
-
return m$
|
|
28828
|
+
return m$3`
|
|
28829
28829
|
<div
|
|
28830
28830
|
class="djs-popup-backdrop"
|
|
28831
28831
|
onClick=${ checkClose }
|
|
@@ -28956,7 +28956,7 @@
|
|
|
28956
28956
|
const onSelect = (event, entry) => this.trigger(event, entry);
|
|
28957
28957
|
|
|
28958
28958
|
P$2(
|
|
28959
|
-
m$
|
|
28959
|
+
m$3`
|
|
28960
28960
|
<${PopupMenuComponent}
|
|
28961
28961
|
onClose=${ onClose }
|
|
28962
28962
|
onSelect=${ onSelect }
|
|
@@ -29080,13 +29080,10 @@
|
|
|
29080
29080
|
|
|
29081
29081
|
PopupMenu.prototype._createContainer = function(config) {
|
|
29082
29082
|
|
|
29083
|
-
|
|
29084
|
-
|
|
29085
|
-
if (typeof parent === 'string') {
|
|
29086
|
-
parent = document.querySelector(parent);
|
|
29087
|
-
}
|
|
29083
|
+
var canvas = this._canvas,
|
|
29084
|
+
parent = canvas.getContainer();
|
|
29088
29085
|
|
|
29089
|
-
const container = domify$1(`<div class="djs-popup-parent djs-
|
|
29086
|
+
const container = domify$1(`<div class="djs-popup-parent djs-scrollable" data-popup=${config.provider}></div>`);
|
|
29090
29087
|
|
|
29091
29088
|
parent.appendChild(container);
|
|
29092
29089
|
|
|
@@ -64515,10 +64512,11 @@
|
|
|
64515
64512
|
/**
|
|
64516
64513
|
Create a selection range.
|
|
64517
64514
|
*/
|
|
64518
|
-
static range(anchor, head, goalColumn) {
|
|
64519
|
-
let
|
|
64520
|
-
|
|
64521
|
-
|
|
64515
|
+
static range(anchor, head, goalColumn, bidiLevel) {
|
|
64516
|
+
let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* RangeFlag.NoGoalColumn */) << 5 /* RangeFlag.GoalColumnOffset */) |
|
|
64517
|
+
(bidiLevel == null ? 3 : Math.min(2, bidiLevel));
|
|
64518
|
+
return head < anchor ? SelectionRange.create(head, anchor, 16 /* RangeFlag.Inverted */ | 8 /* RangeFlag.AssocAfter */ | flags)
|
|
64519
|
+
: SelectionRange.create(anchor, head, (head > anchor ? 4 /* RangeFlag.AssocBefore */ : 0) | flags);
|
|
64522
64520
|
}
|
|
64523
64521
|
/**
|
|
64524
64522
|
@internal
|
|
@@ -67348,6 +67346,26 @@
|
|
|
67348
67346
|
}
|
|
67349
67347
|
}
|
|
67350
67348
|
}
|
|
67349
|
+
function scrollableParent(dom) {
|
|
67350
|
+
let doc = dom.ownerDocument;
|
|
67351
|
+
for (let cur = dom.parentNode; cur;) {
|
|
67352
|
+
if (cur == doc.body) {
|
|
67353
|
+
break;
|
|
67354
|
+
}
|
|
67355
|
+
else if (cur.nodeType == 1) {
|
|
67356
|
+
if (cur.scrollHeight > cur.clientHeight || cur.scrollWidth > cur.clientWidth)
|
|
67357
|
+
return cur;
|
|
67358
|
+
cur = cur.assignedSlot || cur.parentNode;
|
|
67359
|
+
}
|
|
67360
|
+
else if (cur.nodeType == 11) {
|
|
67361
|
+
cur = cur.host;
|
|
67362
|
+
}
|
|
67363
|
+
else {
|
|
67364
|
+
break;
|
|
67365
|
+
}
|
|
67366
|
+
}
|
|
67367
|
+
return null;
|
|
67368
|
+
}
|
|
67351
67369
|
class DOMSelectionState {
|
|
67352
67370
|
constructor() {
|
|
67353
67371
|
this.anchorNode = null;
|
|
@@ -68484,7 +68502,9 @@
|
|
|
68484
68502
|
super(-200000000 /* Side.Line */, -200000000 /* Side.Line */, null, spec);
|
|
68485
68503
|
}
|
|
68486
68504
|
eq(other) {
|
|
68487
|
-
return other instanceof LineDecoration &&
|
|
68505
|
+
return other instanceof LineDecoration &&
|
|
68506
|
+
this.spec.class == other.spec.class &&
|
|
68507
|
+
attrsEq(this.spec.attributes, other.spec.attributes);
|
|
68488
68508
|
}
|
|
68489
68509
|
range(from, to = from) {
|
|
68490
68510
|
if (to != from)
|
|
@@ -68759,6 +68779,7 @@
|
|
|
68759
68779
|
this.curLine = null;
|
|
68760
68780
|
this.breakAtStart = 0;
|
|
68761
68781
|
this.pendingBuffer = 0 /* Buf.No */;
|
|
68782
|
+
this.bufferMarks = [];
|
|
68762
68783
|
// Set to false directly after a widget that covers the position after it
|
|
68763
68784
|
this.atCursorPos = true;
|
|
68764
68785
|
this.openStart = -1;
|
|
@@ -68781,20 +68802,20 @@
|
|
|
68781
68802
|
}
|
|
68782
68803
|
return this.curLine;
|
|
68783
68804
|
}
|
|
68784
|
-
flushBuffer(active) {
|
|
68805
|
+
flushBuffer(active = this.bufferMarks) {
|
|
68785
68806
|
if (this.pendingBuffer) {
|
|
68786
68807
|
this.curLine.append(wrapMarks(new WidgetBufferView(-1), active), active.length);
|
|
68787
68808
|
this.pendingBuffer = 0 /* Buf.No */;
|
|
68788
68809
|
}
|
|
68789
68810
|
}
|
|
68790
68811
|
addBlockWidget(view) {
|
|
68791
|
-
this.flushBuffer(
|
|
68812
|
+
this.flushBuffer();
|
|
68792
68813
|
this.curLine = null;
|
|
68793
68814
|
this.content.push(view);
|
|
68794
68815
|
}
|
|
68795
68816
|
finish(openEnd) {
|
|
68796
|
-
if (
|
|
68797
|
-
this.flushBuffer(
|
|
68817
|
+
if (this.pendingBuffer && openEnd <= this.bufferMarks.length)
|
|
68818
|
+
this.flushBuffer();
|
|
68798
68819
|
else
|
|
68799
68820
|
this.pendingBuffer = 0 /* Buf.No */;
|
|
68800
68821
|
if (!this.posCovered())
|
|
@@ -68814,8 +68835,9 @@
|
|
|
68814
68835
|
this.content[this.content.length - 1].breakAfter = 1;
|
|
68815
68836
|
else
|
|
68816
68837
|
this.breakAtStart = 1;
|
|
68817
|
-
this.flushBuffer(
|
|
68838
|
+
this.flushBuffer();
|
|
68818
68839
|
this.curLine = null;
|
|
68840
|
+
this.atCursorPos = true;
|
|
68819
68841
|
length--;
|
|
68820
68842
|
continue;
|
|
68821
68843
|
}
|
|
@@ -68857,7 +68879,7 @@
|
|
|
68857
68879
|
else {
|
|
68858
68880
|
let view = WidgetView.create(deco.widget || new NullWidget("span"), len, len ? 0 : deco.startSide);
|
|
68859
68881
|
let cursorBefore = this.atCursorPos && !view.isEditable && openStart <= active.length && (from < to || deco.startSide > 0);
|
|
68860
|
-
let cursorAfter = !view.isEditable && (from < to || deco.startSide <= 0);
|
|
68882
|
+
let cursorAfter = !view.isEditable && (from < to || openStart > active.length || deco.startSide <= 0);
|
|
68861
68883
|
let line = this.getLine();
|
|
68862
68884
|
if (this.pendingBuffer == 2 /* Buf.IfCursor */ && !cursorBefore)
|
|
68863
68885
|
this.pendingBuffer = 0 /* Buf.No */;
|
|
@@ -68868,7 +68890,9 @@
|
|
|
68868
68890
|
}
|
|
68869
68891
|
line.append(wrapMarks(view, active), openStart);
|
|
68870
68892
|
this.atCursorPos = cursorAfter;
|
|
68871
|
-
this.pendingBuffer = !cursorAfter ? 0 /* Buf.No */ : from < to ? 1 /* Buf.Yes */ : 2 /* Buf.IfCursor */;
|
|
68893
|
+
this.pendingBuffer = !cursorAfter ? 0 /* Buf.No */ : from < to || openStart > active.length ? 1 /* Buf.Yes */ : 2 /* Buf.IfCursor */;
|
|
68894
|
+
if (this.pendingBuffer)
|
|
68895
|
+
this.bufferMarks = active.slice();
|
|
68872
68896
|
}
|
|
68873
68897
|
}
|
|
68874
68898
|
else if (this.doc.lineAt(this.pos).from == this.pos) { // Line decoration
|
|
@@ -70542,22 +70566,30 @@
|
|
|
70542
70566
|
this.compositionFirstChange = null;
|
|
70543
70567
|
this.compositionEndedAt = 0;
|
|
70544
70568
|
this.mouseSelection = null;
|
|
70569
|
+
let handleEvent = (handler, event) => {
|
|
70570
|
+
if (this.ignoreDuringComposition(event))
|
|
70571
|
+
return;
|
|
70572
|
+
if (event.type == "keydown" && this.keydown(view, event))
|
|
70573
|
+
return;
|
|
70574
|
+
if (this.mustFlushObserver(event))
|
|
70575
|
+
view.observer.forceFlush();
|
|
70576
|
+
if (this.runCustomHandlers(event.type, view, event))
|
|
70577
|
+
event.preventDefault();
|
|
70578
|
+
else
|
|
70579
|
+
handler(view, event);
|
|
70580
|
+
};
|
|
70545
70581
|
for (let type in handlers) {
|
|
70546
70582
|
let handler = handlers[type];
|
|
70547
|
-
view.contentDOM.addEventListener(type,
|
|
70548
|
-
if (
|
|
70549
|
-
|
|
70550
|
-
if (type == "keydown" && this.keydown(view, event))
|
|
70551
|
-
return;
|
|
70552
|
-
if (this.mustFlushObserver(event))
|
|
70553
|
-
view.observer.forceFlush();
|
|
70554
|
-
if (this.runCustomHandlers(type, view, event))
|
|
70555
|
-
event.preventDefault();
|
|
70556
|
-
else
|
|
70557
|
-
handler(view, event);
|
|
70583
|
+
view.contentDOM.addEventListener(type, event => {
|
|
70584
|
+
if (eventBelongsToEditor(view, event))
|
|
70585
|
+
handleEvent(handler, event);
|
|
70558
70586
|
}, handlerOptions[type]);
|
|
70559
70587
|
this.registeredEvents.push(type);
|
|
70560
70588
|
}
|
|
70589
|
+
view.scrollDOM.addEventListener("mousedown", (event) => {
|
|
70590
|
+
if (event.target == view.scrollDOM)
|
|
70591
|
+
handleEvent(handlers.mousedown, event);
|
|
70592
|
+
});
|
|
70561
70593
|
if (browser.chrome && browser.chrome_version == 102) { // FIXME remove at some point
|
|
70562
70594
|
// On Chrome 102, viewport updates somehow stop wheel-based
|
|
70563
70595
|
// scrolling. Turning off pointer events during the scroll seems
|
|
@@ -70714,12 +70746,18 @@
|
|
|
70714
70746
|
const EmacsyPendingKeys = "dthko";
|
|
70715
70747
|
// Key codes for modifier keys
|
|
70716
70748
|
const modifierCodes = [16, 17, 18, 20, 91, 92, 224, 225];
|
|
70749
|
+
function dragScrollSpeed(dist) {
|
|
70750
|
+
return dist * 0.7 + 8;
|
|
70751
|
+
}
|
|
70717
70752
|
class MouseSelection {
|
|
70718
70753
|
constructor(view, startEvent, style, mustSelect) {
|
|
70719
70754
|
this.view = view;
|
|
70720
70755
|
this.style = style;
|
|
70721
70756
|
this.mustSelect = mustSelect;
|
|
70757
|
+
this.scrollSpeed = { x: 0, y: 0 };
|
|
70758
|
+
this.scrolling = -1;
|
|
70722
70759
|
this.lastEvent = startEvent;
|
|
70760
|
+
this.scrollParent = scrollableParent(view.contentDOM);
|
|
70723
70761
|
let doc = view.contentDOM.ownerDocument;
|
|
70724
70762
|
doc.addEventListener("mousemove", this.move = this.move.bind(this));
|
|
70725
70763
|
doc.addEventListener("mouseup", this.up = this.up.bind(this));
|
|
@@ -70735,11 +70773,24 @@
|
|
|
70735
70773
|
}
|
|
70736
70774
|
}
|
|
70737
70775
|
move(event) {
|
|
70776
|
+
var _a;
|
|
70738
70777
|
if (event.buttons == 0)
|
|
70739
70778
|
return this.destroy();
|
|
70740
70779
|
if (this.dragging !== false)
|
|
70741
70780
|
return;
|
|
70742
70781
|
this.select(this.lastEvent = event);
|
|
70782
|
+
let sx = 0, sy = 0;
|
|
70783
|
+
let rect = ((_a = this.scrollParent) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect())
|
|
70784
|
+
|| { left: 0, top: 0, right: this.view.win.innerWidth, bottom: this.view.win.innerHeight };
|
|
70785
|
+
if (event.clientX <= rect.left)
|
|
70786
|
+
sx = -dragScrollSpeed(rect.left - event.clientX);
|
|
70787
|
+
else if (event.clientX >= rect.right)
|
|
70788
|
+
sx = dragScrollSpeed(event.clientX - rect.right);
|
|
70789
|
+
if (event.clientY <= rect.top)
|
|
70790
|
+
sy = -dragScrollSpeed(rect.top - event.clientY);
|
|
70791
|
+
else if (event.clientY >= rect.bottom)
|
|
70792
|
+
sy = dragScrollSpeed(event.clientY - rect.bottom);
|
|
70793
|
+
this.setScrollSpeed(sx, sy);
|
|
70743
70794
|
}
|
|
70744
70795
|
up(event) {
|
|
70745
70796
|
if (this.dragging == null)
|
|
@@ -70749,19 +70800,41 @@
|
|
|
70749
70800
|
this.destroy();
|
|
70750
70801
|
}
|
|
70751
70802
|
destroy() {
|
|
70803
|
+
this.setScrollSpeed(0, 0);
|
|
70752
70804
|
let doc = this.view.contentDOM.ownerDocument;
|
|
70753
70805
|
doc.removeEventListener("mousemove", this.move);
|
|
70754
70806
|
doc.removeEventListener("mouseup", this.up);
|
|
70755
70807
|
this.view.inputState.mouseSelection = null;
|
|
70756
70808
|
}
|
|
70809
|
+
setScrollSpeed(sx, sy) {
|
|
70810
|
+
this.scrollSpeed = { x: sx, y: sy };
|
|
70811
|
+
if (sx || sy) {
|
|
70812
|
+
if (this.scrolling < 0)
|
|
70813
|
+
this.scrolling = setInterval(() => this.scroll(), 50);
|
|
70814
|
+
}
|
|
70815
|
+
else if (this.scrolling > -1) {
|
|
70816
|
+
clearInterval(this.scrolling);
|
|
70817
|
+
this.scrolling = -1;
|
|
70818
|
+
}
|
|
70819
|
+
}
|
|
70820
|
+
scroll() {
|
|
70821
|
+
if (this.scrollParent) {
|
|
70822
|
+
this.scrollParent.scrollLeft += this.scrollSpeed.x;
|
|
70823
|
+
this.scrollParent.scrollTop += this.scrollSpeed.y;
|
|
70824
|
+
}
|
|
70825
|
+
else {
|
|
70826
|
+
this.view.win.scrollBy(this.scrollSpeed.x, this.scrollSpeed.y);
|
|
70827
|
+
}
|
|
70828
|
+
if (this.dragging === false)
|
|
70829
|
+
this.select(this.lastEvent);
|
|
70830
|
+
}
|
|
70757
70831
|
select(event) {
|
|
70758
70832
|
let selection = this.style.get(event, this.extend, this.multiple);
|
|
70759
70833
|
if (this.mustSelect || !selection.eq(this.view.state.selection) ||
|
|
70760
70834
|
selection.main.assoc != this.view.state.selection.main.assoc)
|
|
70761
70835
|
this.view.dispatch({
|
|
70762
70836
|
selection,
|
|
70763
|
-
userEvent: "select.pointer"
|
|
70764
|
-
scrollIntoView: true
|
|
70837
|
+
userEvent: "select.pointer"
|
|
70765
70838
|
});
|
|
70766
70839
|
this.mustSelect = false;
|
|
70767
70840
|
}
|
|
@@ -70952,23 +71025,15 @@
|
|
|
70952
71025
|
function basicMouseSelection(view, event) {
|
|
70953
71026
|
let start = queryPos(view, event), type = getClickType(event);
|
|
70954
71027
|
let startSel = view.state.selection;
|
|
70955
|
-
let last = start, lastEvent = event;
|
|
70956
71028
|
return {
|
|
70957
71029
|
update(update) {
|
|
70958
71030
|
if (update.docChanged) {
|
|
70959
71031
|
start.pos = update.changes.mapPos(start.pos);
|
|
70960
71032
|
startSel = startSel.map(update.changes);
|
|
70961
|
-
lastEvent = null;
|
|
70962
71033
|
}
|
|
70963
71034
|
},
|
|
70964
71035
|
get(event, extend, multiple) {
|
|
70965
|
-
let cur;
|
|
70966
|
-
if (lastEvent && event.clientX == lastEvent.clientX && event.clientY == lastEvent.clientY)
|
|
70967
|
-
cur = last;
|
|
70968
|
-
else {
|
|
70969
|
-
cur = last = queryPos(view, event);
|
|
70970
|
-
lastEvent = event;
|
|
70971
|
-
}
|
|
71036
|
+
let cur = queryPos(view, event);
|
|
70972
71037
|
let range = rangeForClick(view, cur.pos, cur.bias, type);
|
|
70973
71038
|
if (start.pos != cur.pos && !extend) {
|
|
70974
71039
|
let startRange = rangeForClick(view, start.pos, start.bias, type);
|
|
@@ -72414,7 +72479,7 @@
|
|
|
72414
72479
|
});
|
|
72415
72480
|
}
|
|
72416
72481
|
const baseTheme$1$1 = /*@__PURE__*/buildTheme("." + baseThemeID, {
|
|
72417
|
-
"
|
|
72482
|
+
"&": {
|
|
72418
72483
|
position: "relative !important",
|
|
72419
72484
|
boxSizing: "border-box",
|
|
72420
72485
|
"&.cm-focused": {
|
|
@@ -72445,7 +72510,6 @@
|
|
|
72445
72510
|
margin: 0,
|
|
72446
72511
|
flexGrow: 2,
|
|
72447
72512
|
flexShrink: 0,
|
|
72448
|
-
minHeight: "100%",
|
|
72449
72513
|
display: "block",
|
|
72450
72514
|
whiteSpace: "pre",
|
|
72451
72515
|
wordWrap: "normal",
|
|
@@ -72467,14 +72531,13 @@
|
|
|
72467
72531
|
"&dark .cm-content": { caretColor: "white" },
|
|
72468
72532
|
".cm-line": {
|
|
72469
72533
|
display: "block",
|
|
72470
|
-
padding: "0 2px 0
|
|
72534
|
+
padding: "0 2px 0 6px"
|
|
72471
72535
|
},
|
|
72472
|
-
".cm-
|
|
72473
|
-
|
|
72474
|
-
|
|
72475
|
-
|
|
72476
|
-
|
|
72477
|
-
position: "absolute",
|
|
72536
|
+
".cm-layer": {
|
|
72537
|
+
contain: "size style",
|
|
72538
|
+
"& > *": {
|
|
72539
|
+
position: "absolute"
|
|
72540
|
+
}
|
|
72478
72541
|
},
|
|
72479
72542
|
"&light .cm-selectionBackground": {
|
|
72480
72543
|
background: "#d9d9d9"
|
|
@@ -72489,8 +72552,6 @@
|
|
|
72489
72552
|
background: "#233"
|
|
72490
72553
|
},
|
|
72491
72554
|
".cm-cursorLayer": {
|
|
72492
|
-
zIndex: 100,
|
|
72493
|
-
contain: "size style",
|
|
72494
72555
|
pointerEvents: "none"
|
|
72495
72556
|
},
|
|
72496
72557
|
"&.cm-focused .cm-cursorLayer": {
|
|
@@ -72502,7 +72563,6 @@
|
|
|
72502
72563
|
"@keyframes cm-blink": { "0%": {}, "50%": { opacity: 0 }, "100%": {} },
|
|
72503
72564
|
"@keyframes cm-blink2": { "0%": {}, "50%": { opacity: 0 }, "100%": {} },
|
|
72504
72565
|
".cm-cursor, .cm-dropCursor": {
|
|
72505
|
-
position: "absolute",
|
|
72506
72566
|
borderLeft: "1.2px solid black",
|
|
72507
72567
|
marginLeft: "-0.6px",
|
|
72508
72568
|
pointerEvents: "none",
|
|
@@ -72596,6 +72656,21 @@
|
|
|
72596
72656
|
display: "inline-block",
|
|
72597
72657
|
verticalAlign: "top",
|
|
72598
72658
|
},
|
|
72659
|
+
".cm-highlightSpace:before": {
|
|
72660
|
+
content: "attr(data-display)",
|
|
72661
|
+
position: "absolute",
|
|
72662
|
+
pointerEvents: "none",
|
|
72663
|
+
color: "#888"
|
|
72664
|
+
},
|
|
72665
|
+
".cm-highlightTab": {
|
|
72666
|
+
backgroundImage: `url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,
|
|
72667
|
+
backgroundSize: "auto 100%",
|
|
72668
|
+
backgroundPosition: "right 90%",
|
|
72669
|
+
backgroundRepeat: "no-repeat"
|
|
72670
|
+
},
|
|
72671
|
+
".cm-trailingSpace": {
|
|
72672
|
+
backgroundColor: "#ff332255"
|
|
72673
|
+
},
|
|
72599
72674
|
".cm-button": {
|
|
72600
72675
|
verticalAlign: "middle",
|
|
72601
72676
|
color: "inherit",
|
|
@@ -72688,7 +72763,7 @@
|
|
|
72688
72763
|
insert: Text.of(domChange.text.slice(diff.from, diff.toB).split(LineBreakPlaceholder)) };
|
|
72689
72764
|
}
|
|
72690
72765
|
}
|
|
72691
|
-
else if (newSel && (!view.hasFocus
|
|
72766
|
+
else if (newSel && (!view.hasFocus && view.state.facet(editable) || newSel.main.eq(sel))) {
|
|
72692
72767
|
newSel = null;
|
|
72693
72768
|
}
|
|
72694
72769
|
if (!change && !newSel)
|
|
@@ -72898,7 +72973,8 @@
|
|
|
72898
72973
|
this.lastChange = 0;
|
|
72899
72974
|
this.scrollTargets = [];
|
|
72900
72975
|
this.intersection = null;
|
|
72901
|
-
this.
|
|
72976
|
+
this.resizeScroll = null;
|
|
72977
|
+
this.resizeContent = null;
|
|
72902
72978
|
this.intersecting = false;
|
|
72903
72979
|
this.gapIntersection = null;
|
|
72904
72980
|
this.gaps = [];
|
|
@@ -72936,12 +73012,14 @@
|
|
|
72936
73012
|
this.onPrint = this.onPrint.bind(this);
|
|
72937
73013
|
this.onScroll = this.onScroll.bind(this);
|
|
72938
73014
|
if (typeof ResizeObserver == "function") {
|
|
72939
|
-
this.
|
|
73015
|
+
this.resizeScroll = new ResizeObserver(() => {
|
|
72940
73016
|
var _a;
|
|
72941
73017
|
if (((_a = this.view.docView) === null || _a === void 0 ? void 0 : _a.lastUpdate) < Date.now() - 75)
|
|
72942
73018
|
this.onResize();
|
|
72943
73019
|
});
|
|
72944
|
-
this.
|
|
73020
|
+
this.resizeScroll.observe(view.scrollDOM);
|
|
73021
|
+
this.resizeContent = new ResizeObserver(() => this.view.requestMeasure());
|
|
73022
|
+
this.resizeContent.observe(view.contentDOM);
|
|
72945
73023
|
}
|
|
72946
73024
|
this.addWindowListeners(this.win = view.win);
|
|
72947
73025
|
this.start();
|
|
@@ -73260,11 +73338,12 @@
|
|
|
73260
73338
|
win.document.removeEventListener("selectionchange", this.onSelectionChange);
|
|
73261
73339
|
}
|
|
73262
73340
|
destroy() {
|
|
73263
|
-
var _a, _b, _c;
|
|
73341
|
+
var _a, _b, _c, _d;
|
|
73264
73342
|
this.stop();
|
|
73265
73343
|
(_a = this.intersection) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
73266
73344
|
(_b = this.gapIntersection) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
73267
|
-
(_c = this.
|
|
73345
|
+
(_c = this.resizeScroll) === null || _c === void 0 ? void 0 : _c.disconnect();
|
|
73346
|
+
(_d = this.resizeContent) === null || _d === void 0 ? void 0 : _d.disconnect();
|
|
73268
73347
|
for (let dom of this.scrollTargets)
|
|
73269
73348
|
dom.removeEventListener("scroll", this.onScroll);
|
|
73270
73349
|
this.removeWindowListeners(this.win);
|
|
@@ -73363,7 +73442,7 @@
|
|
|
73363
73442
|
this.scrollDOM.className = "cm-scroller";
|
|
73364
73443
|
this.scrollDOM.appendChild(this.contentDOM);
|
|
73365
73444
|
this.announceDOM = document.createElement("div");
|
|
73366
|
-
this.announceDOM.style.cssText = "position:
|
|
73445
|
+
this.announceDOM.style.cssText = "position: fixed; top: -10000px";
|
|
73367
73446
|
this.announceDOM.setAttribute("aria-live", "polite");
|
|
73368
73447
|
this.dom = document.createElement("div");
|
|
73369
73448
|
this.dom.appendChild(this.announceDOM);
|
|
@@ -73748,6 +73827,8 @@
|
|
|
73748
73827
|
if (this.measureScheduled < 0)
|
|
73749
73828
|
this.measureScheduled = this.win.requestAnimationFrame(() => this.measure());
|
|
73750
73829
|
if (request) {
|
|
73830
|
+
if (this.measureRequests.indexOf(request) > -1)
|
|
73831
|
+
return;
|
|
73751
73832
|
if (request.key != null)
|
|
73752
73833
|
for (let i = 0; i < this.measureRequests.length; i++) {
|
|
73753
73834
|
if (this.measureRequests[i].key === request.key) {
|
|
@@ -74423,6 +74504,8 @@
|
|
|
74423
74504
|
if (runFor(scopeObj[prefix + modifiers(name, event, !isChar)]))
|
|
74424
74505
|
return true;
|
|
74425
74506
|
if (isChar && (event.altKey || event.metaKey || event.ctrlKey) &&
|
|
74507
|
+
// Ctrl-Alt may be used for AltGr on Windows
|
|
74508
|
+
!(browser.windows && event.ctrlKey && event.altKey) &&
|
|
74426
74509
|
(baseName = base[event.keyCode]) && baseName != name) {
|
|
74427
74510
|
if (runFor(scopeObj[prefix + modifiers(baseName, event, true)]))
|
|
74428
74511
|
return true;
|
|
@@ -74660,6 +74743,17 @@
|
|
|
74660
74743
|
: pos.bottom + (size.bottom - size.top) + offset.y > space.bottom) &&
|
|
74661
74744
|
above == (space.bottom - pos.bottom > pos.top - space.top))
|
|
74662
74745
|
above = !above;
|
|
74746
|
+
let spaceVert = (above ? pos.top - space.top : space.bottom - pos.bottom) - arrowHeight;
|
|
74747
|
+
if (spaceVert < height && tView.resize !== false) {
|
|
74748
|
+
if (spaceVert < this.view.defaultLineHeight) {
|
|
74749
|
+
dom.style.top = Outside;
|
|
74750
|
+
continue;
|
|
74751
|
+
}
|
|
74752
|
+
dom.style.height = (height = spaceVert) + "px";
|
|
74753
|
+
}
|
|
74754
|
+
else if (dom.style.height) {
|
|
74755
|
+
dom.style.height = "";
|
|
74756
|
+
}
|
|
74663
74757
|
let top = above ? pos.top - height - arrowHeight - offset.y : pos.bottom + arrowHeight + offset.y;
|
|
74664
74758
|
let right = left + width;
|
|
74665
74759
|
if (tView.overlap !== true)
|
|
@@ -74703,7 +74797,8 @@
|
|
|
74703
74797
|
});
|
|
74704
74798
|
const baseTheme$4 = /*@__PURE__*/EditorView.baseTheme({
|
|
74705
74799
|
".cm-tooltip": {
|
|
74706
|
-
zIndex: 100
|
|
74800
|
+
zIndex: 100,
|
|
74801
|
+
boxSizing: "border-box"
|
|
74707
74802
|
},
|
|
74708
74803
|
"&light .cm-tooltip": {
|
|
74709
74804
|
border: "1px solid #bbb",
|
|
@@ -75268,8 +75363,8 @@
|
|
|
75268
75363
|
/// Define a node type.
|
|
75269
75364
|
static define(spec) {
|
|
75270
75365
|
let props = spec.props && spec.props.length ? Object.create(null) : noProps;
|
|
75271
|
-
let flags = (spec.top ? 1 /* Top */ : 0) | (spec.skipped ? 2 /* Skipped */ : 0) |
|
|
75272
|
-
(spec.error ? 4 /* Error */ : 0) | (spec.name == null ? 8 /* Anonymous */ : 0);
|
|
75366
|
+
let flags = (spec.top ? 1 /* NodeFlag.Top */ : 0) | (spec.skipped ? 2 /* NodeFlag.Skipped */ : 0) |
|
|
75367
|
+
(spec.error ? 4 /* NodeFlag.Error */ : 0) | (spec.name == null ? 8 /* NodeFlag.Anonymous */ : 0);
|
|
75273
75368
|
let type = new NodeType(spec.name || "", props, spec.id, flags);
|
|
75274
75369
|
if (spec.props)
|
|
75275
75370
|
for (let src of spec.props) {
|
|
@@ -75287,14 +75382,14 @@
|
|
|
75287
75382
|
/// the prop isn't present on this node.
|
|
75288
75383
|
prop(prop) { return this.props[prop.id]; }
|
|
75289
75384
|
/// True when this is the top node of a grammar.
|
|
75290
|
-
get isTop() { return (this.flags & 1 /* Top */) > 0; }
|
|
75385
|
+
get isTop() { return (this.flags & 1 /* NodeFlag.Top */) > 0; }
|
|
75291
75386
|
/// True when this node is produced by a skip rule.
|
|
75292
|
-
get isSkipped() { return (this.flags & 2 /* Skipped */) > 0; }
|
|
75387
|
+
get isSkipped() { return (this.flags & 2 /* NodeFlag.Skipped */) > 0; }
|
|
75293
75388
|
/// Indicates whether this is an error node.
|
|
75294
|
-
get isError() { return (this.flags & 4 /* Error */) > 0; }
|
|
75389
|
+
get isError() { return (this.flags & 4 /* NodeFlag.Error */) > 0; }
|
|
75295
75390
|
/// When true, this node type doesn't correspond to a user-declared
|
|
75296
75391
|
/// named node, for example because it is used to cache repetition.
|
|
75297
|
-
get isAnonymous() { return (this.flags & 8 /* Anonymous */) > 0; }
|
|
75392
|
+
get isAnonymous() { return (this.flags & 8 /* NodeFlag.Anonymous */) > 0; }
|
|
75298
75393
|
/// Returns true when this node's name or one of its
|
|
75299
75394
|
/// [groups](#common.NodeProp^group) matches the given string.
|
|
75300
75395
|
is(name) {
|
|
@@ -75327,7 +75422,7 @@
|
|
|
75327
75422
|
}
|
|
75328
75423
|
}
|
|
75329
75424
|
/// An empty dummy node type to use when no actual type is available.
|
|
75330
|
-
NodeType.none = new NodeType("", Object.create(null), 0, 8 /* Anonymous */);
|
|
75425
|
+
NodeType.none = new NodeType("", Object.create(null), 0, 8 /* NodeFlag.Anonymous */);
|
|
75331
75426
|
/// A node set holds a collection of node types. It is used to
|
|
75332
75427
|
/// compactly represent trees by storing their type ids, rather than a
|
|
75333
75428
|
/// full pointer to the type object, in a numeric array. Each parser
|
|
@@ -75536,7 +75631,7 @@
|
|
|
75536
75631
|
/// which may have children grouped into subtrees with type
|
|
75537
75632
|
/// [`NodeType.none`](#common.NodeType^none).
|
|
75538
75633
|
balance(config = {}) {
|
|
75539
|
-
return this.children.length <= 8 /* BranchFactor */ ? this :
|
|
75634
|
+
return this.children.length <= 8 /* Balance.BranchFactor */ ? this :
|
|
75540
75635
|
balanceRange(NodeType.none, this.children, this.positions, 0, this.children.length, 0, this.length, (children, positions, length) => new Tree(this.type, children, positions, length, this.propValues), config.makeTree || ((children, positions, length) => new Tree(NodeType.none, children, positions, length)));
|
|
75541
75636
|
}
|
|
75542
75637
|
/// Build a tree from a postfix-ordered buffer of node information,
|
|
@@ -75615,26 +75710,27 @@
|
|
|
75615
75710
|
return pick;
|
|
75616
75711
|
}
|
|
75617
75712
|
/// @internal
|
|
75618
|
-
slice(startI, endI, from
|
|
75713
|
+
slice(startI, endI, from) {
|
|
75619
75714
|
let b = this.buffer;
|
|
75620
|
-
let copy = new Uint16Array(endI - startI);
|
|
75715
|
+
let copy = new Uint16Array(endI - startI), len = 0;
|
|
75621
75716
|
for (let i = startI, j = 0; i < endI;) {
|
|
75622
75717
|
copy[j++] = b[i++];
|
|
75623
75718
|
copy[j++] = b[i++] - from;
|
|
75624
|
-
copy[j++] = b[i++] - from;
|
|
75719
|
+
let to = copy[j++] = b[i++] - from;
|
|
75625
75720
|
copy[j++] = b[i++] - startI;
|
|
75721
|
+
len = Math.max(len, to);
|
|
75626
75722
|
}
|
|
75627
|
-
return new TreeBuffer(copy,
|
|
75723
|
+
return new TreeBuffer(copy, len, this.set);
|
|
75628
75724
|
}
|
|
75629
75725
|
}
|
|
75630
75726
|
function checkSide(side, pos, from, to) {
|
|
75631
75727
|
switch (side) {
|
|
75632
|
-
case -2 /* Before */: return from < pos;
|
|
75633
|
-
case -1 /* AtOrBefore */: return to >= pos && from < pos;
|
|
75634
|
-
case 0 /* Around */: return from < pos && to > pos;
|
|
75635
|
-
case 1 /* AtOrAfter */: return from <= pos && to > pos;
|
|
75636
|
-
case 2 /* After */: return to > pos;
|
|
75637
|
-
case 4 /* DontCare */: return true;
|
|
75728
|
+
case -2 /* Side.Before */: return from < pos;
|
|
75729
|
+
case -1 /* Side.AtOrBefore */: return to >= pos && from < pos;
|
|
75730
|
+
case 0 /* Side.Around */: return from < pos && to > pos;
|
|
75731
|
+
case 1 /* Side.AtOrAfter */: return from <= pos && to > pos;
|
|
75732
|
+
case 2 /* Side.After */: return to > pos;
|
|
75733
|
+
case 4 /* Side.DontCare */: return true;
|
|
75638
75734
|
}
|
|
75639
75735
|
}
|
|
75640
75736
|
function enterUnfinishedNodesBefore(node, pos) {
|
|
@@ -75724,10 +75820,10 @@
|
|
|
75724
75820
|
return null;
|
|
75725
75821
|
}
|
|
75726
75822
|
}
|
|
75727
|
-
get firstChild() { return this.nextChild(0, 1, 0, 4 /* DontCare */); }
|
|
75728
|
-
get lastChild() { return this.nextChild(this._tree.children.length - 1, -1, 0, 4 /* DontCare */); }
|
|
75729
|
-
childAfter(pos) { return this.nextChild(0, 1, pos, 2 /* After */); }
|
|
75730
|
-
childBefore(pos) { return this.nextChild(this._tree.children.length - 1, -1, pos, -2 /* Before */); }
|
|
75823
|
+
get firstChild() { return this.nextChild(0, 1, 0, 4 /* Side.DontCare */); }
|
|
75824
|
+
get lastChild() { return this.nextChild(this._tree.children.length - 1, -1, 0, 4 /* Side.DontCare */); }
|
|
75825
|
+
childAfter(pos) { return this.nextChild(0, 1, pos, 2 /* Side.After */); }
|
|
75826
|
+
childBefore(pos) { return this.nextChild(this._tree.children.length - 1, -1, pos, -2 /* Side.Before */); }
|
|
75731
75827
|
enter(pos, side, mode = 0) {
|
|
75732
75828
|
let mounted;
|
|
75733
75829
|
if (!(mode & IterMode.IgnoreOverlays) && (mounted = this._tree.prop(NodeProp.mounted)) && mounted.overlay) {
|
|
@@ -75750,10 +75846,10 @@
|
|
|
75750
75846
|
return this._parent ? this._parent.nextSignificantParent() : null;
|
|
75751
75847
|
}
|
|
75752
75848
|
get nextSibling() {
|
|
75753
|
-
return this._parent && this.index >= 0 ? this._parent.nextChild(this.index + 1, 1, 0, 4 /* DontCare */) : null;
|
|
75849
|
+
return this._parent && this.index >= 0 ? this._parent.nextChild(this.index + 1, 1, 0, 4 /* Side.DontCare */) : null;
|
|
75754
75850
|
}
|
|
75755
75851
|
get prevSibling() {
|
|
75756
|
-
return this._parent && this.index >= 0 ? this._parent.nextChild(this.index - 1, -1, 0, 4 /* DontCare */) : null;
|
|
75852
|
+
return this._parent && this.index >= 0 ? this._parent.nextChild(this.index - 1, -1, 0, 4 /* Side.DontCare */) : null;
|
|
75757
75853
|
}
|
|
75758
75854
|
cursor(mode = 0) { return new TreeCursor(this, mode); }
|
|
75759
75855
|
get tree() { return this._tree; }
|
|
@@ -75815,24 +75911,24 @@
|
|
|
75815
75911
|
}
|
|
75816
75912
|
}
|
|
75817
75913
|
class BufferNode {
|
|
75914
|
+
get name() { return this.type.name; }
|
|
75915
|
+
get from() { return this.context.start + this.context.buffer.buffer[this.index + 1]; }
|
|
75916
|
+
get to() { return this.context.start + this.context.buffer.buffer[this.index + 2]; }
|
|
75818
75917
|
constructor(context, _parent, index) {
|
|
75819
75918
|
this.context = context;
|
|
75820
75919
|
this._parent = _parent;
|
|
75821
75920
|
this.index = index;
|
|
75822
75921
|
this.type = context.buffer.set.types[context.buffer.buffer[index]];
|
|
75823
75922
|
}
|
|
75824
|
-
get name() { return this.type.name; }
|
|
75825
|
-
get from() { return this.context.start + this.context.buffer.buffer[this.index + 1]; }
|
|
75826
|
-
get to() { return this.context.start + this.context.buffer.buffer[this.index + 2]; }
|
|
75827
75923
|
child(dir, pos, side) {
|
|
75828
75924
|
let { buffer } = this.context;
|
|
75829
75925
|
let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], dir, pos - this.context.start, side);
|
|
75830
75926
|
return index < 0 ? null : new BufferNode(this.context, this, index);
|
|
75831
75927
|
}
|
|
75832
|
-
get firstChild() { return this.child(1, 0, 4 /* DontCare */); }
|
|
75833
|
-
get lastChild() { return this.child(-1, 0, 4 /* DontCare */); }
|
|
75834
|
-
childAfter(pos) { return this.child(1, pos, 2 /* After */); }
|
|
75835
|
-
childBefore(pos) { return this.child(-1, pos, -2 /* Before */); }
|
|
75928
|
+
get firstChild() { return this.child(1, 0, 4 /* Side.DontCare */); }
|
|
75929
|
+
get lastChild() { return this.child(-1, 0, 4 /* Side.DontCare */); }
|
|
75930
|
+
childAfter(pos) { return this.child(1, pos, 2 /* Side.After */); }
|
|
75931
|
+
childBefore(pos) { return this.child(-1, pos, -2 /* Side.Before */); }
|
|
75836
75932
|
enter(pos, side, mode = 0) {
|
|
75837
75933
|
if (mode & IterMode.ExcludeBuffers)
|
|
75838
75934
|
return null;
|
|
@@ -75844,7 +75940,7 @@
|
|
|
75844
75940
|
return this._parent || this.context.parent.nextSignificantParent();
|
|
75845
75941
|
}
|
|
75846
75942
|
externalSibling(dir) {
|
|
75847
|
-
return this._parent ? null : this.context.parent.nextChild(this.context.index + dir, dir, 0, 4 /* DontCare */);
|
|
75943
|
+
return this._parent ? null : this.context.parent.nextChild(this.context.index + dir, dir, 0, 4 /* Side.DontCare */);
|
|
75848
75944
|
}
|
|
75849
75945
|
get nextSibling() {
|
|
75850
75946
|
let { buffer } = this.context;
|
|
@@ -75858,7 +75954,7 @@
|
|
|
75858
75954
|
let parentStart = this._parent ? this._parent.index + 4 : 0;
|
|
75859
75955
|
if (this.index == parentStart)
|
|
75860
75956
|
return this.externalSibling(-1);
|
|
75861
|
-
return new BufferNode(this.context, this._parent, buffer.findChild(parentStart, this.index, -1, 0, 4 /* DontCare */));
|
|
75957
|
+
return new BufferNode(this.context, this._parent, buffer.findChild(parentStart, this.index, -1, 0, 4 /* Side.DontCare */));
|
|
75862
75958
|
}
|
|
75863
75959
|
cursor(mode = 0) { return new TreeCursor(this, mode); }
|
|
75864
75960
|
get tree() { return null; }
|
|
@@ -75867,8 +75963,8 @@
|
|
|
75867
75963
|
let { buffer } = this.context;
|
|
75868
75964
|
let startI = this.index + 4, endI = buffer.buffer[this.index + 3];
|
|
75869
75965
|
if (endI > startI) {
|
|
75870
|
-
let from = buffer.buffer[this.index + 1]
|
|
75871
|
-
children.push(buffer.slice(startI, endI, from
|
|
75966
|
+
let from = buffer.buffer[this.index + 1];
|
|
75967
|
+
children.push(buffer.slice(startI, endI, from));
|
|
75872
75968
|
positions.push(0);
|
|
75873
75969
|
}
|
|
75874
75970
|
return new Tree(this.type, children, positions, this.to - this.from);
|
|
@@ -75895,6 +75991,8 @@
|
|
|
75895
75991
|
/// A tree cursor object focuses on a given node in a syntax tree, and
|
|
75896
75992
|
/// allows you to move to adjacent nodes.
|
|
75897
75993
|
class TreeCursor {
|
|
75994
|
+
/// Shorthand for `.type.name`.
|
|
75995
|
+
get name() { return this.type.name; }
|
|
75898
75996
|
/// @internal
|
|
75899
75997
|
constructor(node,
|
|
75900
75998
|
/// @internal
|
|
@@ -75918,8 +76016,6 @@
|
|
|
75918
76016
|
this.yieldBuf(node.index);
|
|
75919
76017
|
}
|
|
75920
76018
|
}
|
|
75921
|
-
/// Shorthand for `.type.name`.
|
|
75922
|
-
get name() { return this.type.name; }
|
|
75923
76019
|
yieldNode(node) {
|
|
75924
76020
|
if (!node)
|
|
75925
76021
|
return false;
|
|
@@ -75964,13 +76060,13 @@
|
|
|
75964
76060
|
}
|
|
75965
76061
|
/// Move the cursor to this node's first child. When this returns
|
|
75966
76062
|
/// false, the node has no child, and the cursor has not been moved.
|
|
75967
|
-
firstChild() { return this.enterChild(1, 0, 4 /* DontCare */); }
|
|
76063
|
+
firstChild() { return this.enterChild(1, 0, 4 /* Side.DontCare */); }
|
|
75968
76064
|
/// Move the cursor to this node's last child.
|
|
75969
|
-
lastChild() { return this.enterChild(-1, 0, 4 /* DontCare */); }
|
|
76065
|
+
lastChild() { return this.enterChild(-1, 0, 4 /* Side.DontCare */); }
|
|
75970
76066
|
/// Move the cursor to the first child that ends after `pos`.
|
|
75971
|
-
childAfter(pos) { return this.enterChild(1, pos, 2 /* After */); }
|
|
76067
|
+
childAfter(pos) { return this.enterChild(1, pos, 2 /* Side.After */); }
|
|
75972
76068
|
/// Move to the last child that starts before `pos`.
|
|
75973
|
-
childBefore(pos) { return this.enterChild(-1, pos, -2 /* Before */); }
|
|
76069
|
+
childBefore(pos) { return this.enterChild(-1, pos, -2 /* Side.Before */); }
|
|
75974
76070
|
/// Move the cursor to the child around `pos`. If side is -1 the
|
|
75975
76071
|
/// child may end at that position, when 1 it may start there. This
|
|
75976
76072
|
/// will also enter [overlaid](#common.MountedTree.overlay)
|
|
@@ -75996,19 +76092,19 @@
|
|
|
75996
76092
|
if (!this.buffer)
|
|
75997
76093
|
return !this._tree._parent ? false
|
|
75998
76094
|
: this.yield(this._tree.index < 0 ? null
|
|
75999
|
-
: this._tree._parent.nextChild(this._tree.index + dir, dir, 0, 4 /* DontCare */, this.mode));
|
|
76095
|
+
: this._tree._parent.nextChild(this._tree.index + dir, dir, 0, 4 /* Side.DontCare */, this.mode));
|
|
76000
76096
|
let { buffer } = this.buffer, d = this.stack.length - 1;
|
|
76001
76097
|
if (dir < 0) {
|
|
76002
76098
|
let parentStart = d < 0 ? 0 : this.stack[d] + 4;
|
|
76003
76099
|
if (this.index != parentStart)
|
|
76004
|
-
return this.yieldBuf(buffer.findChild(parentStart, this.index, -1, 0, 4 /* DontCare */));
|
|
76100
|
+
return this.yieldBuf(buffer.findChild(parentStart, this.index, -1, 0, 4 /* Side.DontCare */));
|
|
76005
76101
|
}
|
|
76006
76102
|
else {
|
|
76007
76103
|
let after = buffer.buffer[this.index + 3];
|
|
76008
76104
|
if (after < (d < 0 ? buffer.buffer.length : buffer.buffer[this.stack[d] + 3]))
|
|
76009
76105
|
return this.yieldBuf(after);
|
|
76010
76106
|
}
|
|
76011
|
-
return d < 0 ? this.yield(this.buffer.parent.nextChild(this.buffer.index + dir, dir, 0, 4 /* DontCare */, this.mode)) : false;
|
|
76107
|
+
return d < 0 ? this.yield(this.buffer.parent.nextChild(this.buffer.index + dir, dir, 0, 4 /* Side.DontCare */, this.mode)) : false;
|
|
76012
76108
|
}
|
|
76013
76109
|
/// Move to this node's next sibling, if any.
|
|
76014
76110
|
nextSibling() { return this.sibling(1); }
|
|
@@ -76045,7 +76141,7 @@
|
|
|
76045
76141
|
return true;
|
|
76046
76142
|
}
|
|
76047
76143
|
move(dir, enter) {
|
|
76048
|
-
if (enter && this.enterChild(dir, 0, 4 /* DontCare */))
|
|
76144
|
+
if (enter && this.enterChild(dir, 0, 4 /* Side.DontCare */))
|
|
76049
76145
|
return true;
|
|
76050
76146
|
for (;;) {
|
|
76051
76147
|
if (this.sibling(dir))
|
|
@@ -76055,7 +76151,7 @@
|
|
|
76055
76151
|
}
|
|
76056
76152
|
}
|
|
76057
76153
|
/// Move to the next node in a
|
|
76058
|
-
/// [pre-order](https://en.wikipedia.org/wiki/Tree_traversal#Pre-
|
|
76154
|
+
/// [pre-order](https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR)
|
|
76059
76155
|
/// traversal, going from a node to its first child or, if the
|
|
76060
76156
|
/// current node is empty or `enter` is false, its next sibling or
|
|
76061
76157
|
/// the next sibling of the first parent node that has one.
|
|
@@ -76171,17 +76267,17 @@
|
|
|
76171
76267
|
let lookAheadAtStart = lookAhead;
|
|
76172
76268
|
while (size < 0) {
|
|
76173
76269
|
cursor.next();
|
|
76174
|
-
if (size == -1 /* Reuse */) {
|
|
76270
|
+
if (size == -1 /* SpecialRecord.Reuse */) {
|
|
76175
76271
|
let node = reused[id];
|
|
76176
76272
|
children.push(node);
|
|
76177
76273
|
positions.push(start - parentStart);
|
|
76178
76274
|
return;
|
|
76179
76275
|
}
|
|
76180
|
-
else if (size == -3 /* ContextChange */) { // Context change
|
|
76276
|
+
else if (size == -3 /* SpecialRecord.ContextChange */) { // Context change
|
|
76181
76277
|
contextHash = id;
|
|
76182
76278
|
return;
|
|
76183
76279
|
}
|
|
76184
|
-
else if (size == -4 /* LookAhead */) {
|
|
76280
|
+
else if (size == -4 /* SpecialRecord.LookAhead */) {
|
|
76185
76281
|
lookAhead = id;
|
|
76186
76282
|
return;
|
|
76187
76283
|
}
|
|
@@ -76298,7 +76394,7 @@
|
|
|
76298
76394
|
fork.next();
|
|
76299
76395
|
while (fork.pos > startPos) {
|
|
76300
76396
|
if (fork.size < 0) {
|
|
76301
|
-
if (fork.size == -3 /* ContextChange */)
|
|
76397
|
+
if (fork.size == -3 /* SpecialRecord.ContextChange */)
|
|
76302
76398
|
localSkipped += 4;
|
|
76303
76399
|
else
|
|
76304
76400
|
break scan;
|
|
@@ -76334,10 +76430,10 @@
|
|
|
76334
76430
|
buffer[--index] = start - bufferStart;
|
|
76335
76431
|
buffer[--index] = id;
|
|
76336
76432
|
}
|
|
76337
|
-
else if (size == -3 /* ContextChange */) {
|
|
76433
|
+
else if (size == -3 /* SpecialRecord.ContextChange */) {
|
|
76338
76434
|
contextHash = id;
|
|
76339
76435
|
}
|
|
76340
|
-
else if (size == -4 /* LookAhead */) {
|
|
76436
|
+
else if (size == -4 /* SpecialRecord.LookAhead */) {
|
|
76341
76437
|
lookAhead = id;
|
|
76342
76438
|
}
|
|
76343
76439
|
return index;
|
|
@@ -76384,7 +76480,7 @@
|
|
|
76384
76480
|
let total = 0;
|
|
76385
76481
|
for (let i = from; i < to; i++)
|
|
76386
76482
|
total += nodeSize(balanceType, children[i]);
|
|
76387
|
-
let maxChild = Math.ceil((total * 1.5) / 8 /* BranchFactor */);
|
|
76483
|
+
let maxChild = Math.ceil((total * 1.5) / 8 /* Balance.BranchFactor */);
|
|
76388
76484
|
let localChildren = [], localPositions = [];
|
|
76389
76485
|
function divide(children, positions, from, to, offset) {
|
|
76390
76486
|
for (let i = from; i < to;) {
|
|
@@ -76445,16 +76541,16 @@
|
|
|
76445
76541
|
this.to = to;
|
|
76446
76542
|
this.tree = tree;
|
|
76447
76543
|
this.offset = offset;
|
|
76448
|
-
this.open = (openStart ? 1 /* Start */ : 0) | (openEnd ? 2 /* End */ : 0);
|
|
76544
|
+
this.open = (openStart ? 1 /* Open.Start */ : 0) | (openEnd ? 2 /* Open.End */ : 0);
|
|
76449
76545
|
}
|
|
76450
76546
|
/// Whether the start of the fragment represents the start of a
|
|
76451
76547
|
/// parse, or the end of a change. (In the second case, it may not
|
|
76452
76548
|
/// be safe to reuse some nodes at the start, depending on the
|
|
76453
76549
|
/// parsing algorithm.)
|
|
76454
|
-
get openStart() { return (this.open & 1 /* Start */) > 0; }
|
|
76550
|
+
get openStart() { return (this.open & 1 /* Open.Start */) > 0; }
|
|
76455
76551
|
/// Whether the end of the fragment represents the end of a
|
|
76456
76552
|
/// full-document parse, or the start of a change.
|
|
76457
|
-
get openEnd() { return (this.open & 2 /* End */) > 0; }
|
|
76553
|
+
get openEnd() { return (this.open & 2 /* Open.End */) > 0; }
|
|
76458
76554
|
/// Create a set of fragments from a freshly parsed tree, or update
|
|
76459
76555
|
/// an existing set of fragments by replacing the ones that overlap
|
|
76460
76556
|
/// with a tree with content from the new tree. When `partial` is
|
|
@@ -76698,10 +76794,10 @@
|
|
|
76698
76794
|
tags = [tags];
|
|
76699
76795
|
for (let part of prop.split(" "))
|
|
76700
76796
|
if (part) {
|
|
76701
|
-
let pieces = [], mode = 2 /* Normal */, rest = part;
|
|
76797
|
+
let pieces = [], mode = 2 /* Mode.Normal */, rest = part;
|
|
76702
76798
|
for (let pos = 0;;) {
|
|
76703
76799
|
if (rest == "..." && pos > 0 && pos + 3 == part.length) {
|
|
76704
|
-
mode = 1 /* Inherit */;
|
|
76800
|
+
mode = 1 /* Mode.Inherit */;
|
|
76705
76801
|
break;
|
|
76706
76802
|
}
|
|
76707
76803
|
let m = /^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(rest);
|
|
@@ -76713,7 +76809,7 @@
|
|
|
76713
76809
|
break;
|
|
76714
76810
|
let next = part[pos++];
|
|
76715
76811
|
if (pos == part.length && next == "!") {
|
|
76716
|
-
mode = 0 /* Opaque */;
|
|
76812
|
+
mode = 0 /* Mode.Opaque */;
|
|
76717
76813
|
break;
|
|
76718
76814
|
}
|
|
76719
76815
|
if (next != "/")
|
|
@@ -76737,8 +76833,8 @@
|
|
|
76737
76833
|
this.context = context;
|
|
76738
76834
|
this.next = next;
|
|
76739
76835
|
}
|
|
76740
|
-
get opaque() { return this.mode == 0 /* Opaque */; }
|
|
76741
|
-
get inherit() { return this.mode == 1 /* Inherit */; }
|
|
76836
|
+
get opaque() { return this.mode == 0 /* Mode.Opaque */; }
|
|
76837
|
+
get inherit() { return this.mode == 1 /* Mode.Inherit */; }
|
|
76742
76838
|
sort(other) {
|
|
76743
76839
|
if (!other || other.depth < this.depth) {
|
|
76744
76840
|
this.next = other;
|
|
@@ -76749,7 +76845,7 @@
|
|
|
76749
76845
|
}
|
|
76750
76846
|
get depth() { return this.context ? this.context.length : 0; }
|
|
76751
76847
|
}
|
|
76752
|
-
Rule.empty = new Rule([], 2 /* Normal */, null);
|
|
76848
|
+
Rule.empty = new Rule([], 2 /* Mode.Normal */, null);
|
|
76753
76849
|
/// Define a [highlighter](#highlight.Highlighter) from an array of
|
|
76754
76850
|
/// tag/class pairs. Classes associated with more specific tags will
|
|
76755
76851
|
/// take precedence.
|
|
@@ -76836,7 +76932,7 @@
|
|
|
76836
76932
|
if (cls)
|
|
76837
76933
|
cls += " ";
|
|
76838
76934
|
cls += tagCls;
|
|
76839
|
-
if (rule.mode == 1 /* Inherit */)
|
|
76935
|
+
if (rule.mode == 1 /* Mode.Inherit */)
|
|
76840
76936
|
inheritedClass += (inheritedClass ? " " : "") + tagCls;
|
|
76841
76937
|
}
|
|
76842
76938
|
this.startSpan(cursor.from, cls);
|
|
@@ -76854,7 +76950,7 @@
|
|
|
76854
76950
|
if (rangeFrom < rangeTo && hasChild) {
|
|
76855
76951
|
while (cursor.from < rangeTo) {
|
|
76856
76952
|
this.highlightRange(cursor, rangeFrom, rangeTo, inheritedClass, highlighters);
|
|
76857
|
-
this.startSpan(Math.min(
|
|
76953
|
+
this.startSpan(Math.min(rangeTo, cursor.to), cls);
|
|
76858
76954
|
if (cursor.to >= nextPos || !cursor.nextSibling())
|
|
76859
76955
|
break;
|
|
76860
76956
|
}
|
|
@@ -78795,6 +78891,7 @@
|
|
|
78795
78891
|
closeOnBlur: true,
|
|
78796
78892
|
maxRenderedOptions: 100,
|
|
78797
78893
|
defaultKeymap: true,
|
|
78894
|
+
tooltipClass: () => "",
|
|
78798
78895
|
optionClass: () => "",
|
|
78799
78896
|
aboveCursor: false,
|
|
78800
78897
|
icons: true,
|
|
@@ -78805,6 +78902,7 @@
|
|
|
78805
78902
|
defaultKeymap: (a, b) => a && b,
|
|
78806
78903
|
closeOnBlur: (a, b) => a && b,
|
|
78807
78904
|
icons: (a, b) => a && b,
|
|
78905
|
+
tooltipClass: (a, b) => c => joinClass(a(c), b(c)),
|
|
78808
78906
|
optionClass: (a, b) => c => joinClass(a(c), b(c)),
|
|
78809
78907
|
addToOptions: (a, b) => a.concat(b)
|
|
78810
78908
|
});
|
|
@@ -78883,14 +78981,17 @@
|
|
|
78883
78981
|
key: this
|
|
78884
78982
|
};
|
|
78885
78983
|
this.space = null;
|
|
78984
|
+
this.currentClass = "";
|
|
78886
78985
|
let cState = view.state.field(stateField);
|
|
78887
78986
|
let { options, selected } = cState.open;
|
|
78888
78987
|
let config = view.state.facet(completionConfig);
|
|
78889
78988
|
this.optionContent = optionContent(config);
|
|
78890
78989
|
this.optionClass = config.optionClass;
|
|
78990
|
+
this.tooltipClass = config.tooltipClass;
|
|
78891
78991
|
this.range = rangeAroundSelected(options.length, selected, config.maxRenderedOptions);
|
|
78892
78992
|
this.dom = document.createElement("div");
|
|
78893
78993
|
this.dom.className = "cm-tooltip-autocomplete";
|
|
78994
|
+
this.updateTooltipClass(view.state);
|
|
78894
78995
|
this.dom.addEventListener("mousedown", (e) => {
|
|
78895
78996
|
for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {
|
|
78896
78997
|
if (dom.nodeName == "LI" && (match = /-(\d+)$/.exec(dom.id)) && +match[1] < options.length) {
|
|
@@ -78911,12 +79012,25 @@
|
|
|
78911
79012
|
var _a, _b, _c;
|
|
78912
79013
|
let cState = update.state.field(this.stateField);
|
|
78913
79014
|
let prevState = update.startState.field(this.stateField);
|
|
79015
|
+
this.updateTooltipClass(update.state);
|
|
78914
79016
|
if (cState != prevState) {
|
|
78915
79017
|
this.updateSel();
|
|
78916
79018
|
if (((_a = cState.open) === null || _a === void 0 ? void 0 : _a.disabled) != ((_b = prevState.open) === null || _b === void 0 ? void 0 : _b.disabled))
|
|
78917
79019
|
this.dom.classList.toggle("cm-tooltip-autocomplete-disabled", !!((_c = cState.open) === null || _c === void 0 ? void 0 : _c.disabled));
|
|
78918
79020
|
}
|
|
78919
79021
|
}
|
|
79022
|
+
updateTooltipClass(state) {
|
|
79023
|
+
let cls = this.tooltipClass(state);
|
|
79024
|
+
if (cls != this.currentClass) {
|
|
79025
|
+
for (let c of this.currentClass.split(" "))
|
|
79026
|
+
if (c)
|
|
79027
|
+
this.dom.classList.remove(c);
|
|
79028
|
+
for (let c of cls.split(" "))
|
|
79029
|
+
if (c)
|
|
79030
|
+
this.dom.classList.add(c);
|
|
79031
|
+
this.currentClass = cls;
|
|
79032
|
+
}
|
|
79033
|
+
}
|
|
78920
79034
|
positioned(space) {
|
|
78921
79035
|
this.space = space;
|
|
78922
79036
|
if (this.info)
|
|
@@ -79177,13 +79291,13 @@
|
|
|
79177
79291
|
if (active.length == this.active.length && active.every((a, i) => a == this.active[i]))
|
|
79178
79292
|
active = this.active;
|
|
79179
79293
|
let open = this.open;
|
|
79294
|
+
if (open && tr.docChanged)
|
|
79295
|
+
open = open.map(tr.changes);
|
|
79180
79296
|
if (tr.selection || active.some(a => a.hasResult() && tr.changes.touchesRange(a.from, a.to)) ||
|
|
79181
79297
|
!sameResults(active, this.active))
|
|
79182
|
-
open = CompletionDialog.build(active, state, this.id,
|
|
79298
|
+
open = CompletionDialog.build(active, state, this.id, open, conf);
|
|
79183
79299
|
else if (open && open.disabled && !active.some(a => a.state == 1 /* State.Pending */))
|
|
79184
79300
|
open = null;
|
|
79185
|
-
else if (open && tr.docChanged)
|
|
79186
|
-
open = open.map(tr.changes);
|
|
79187
79301
|
if (!open && active.every(a => a.state != 1 /* State.Pending */) && active.some(a => a.hasResult()))
|
|
79188
79302
|
active = active.map(a => a.hasResult() ? new ActiveSource(a.source, 0 /* State.Inactive */) : a);
|
|
79189
79303
|
for (let effect of tr.effects)
|
|
@@ -79538,6 +79652,7 @@
|
|
|
79538
79652
|
maxWidth: "min(700px, 95vw)",
|
|
79539
79653
|
minWidth: "250px",
|
|
79540
79654
|
maxHeight: "10em",
|
|
79655
|
+
height: "100%",
|
|
79541
79656
|
listStyle: "none",
|
|
79542
79657
|
margin: 0,
|
|
79543
79658
|
padding: 0,
|
|
@@ -80492,7 +80607,7 @@
|
|
|
80492
80607
|
function extendSel(view, how) {
|
|
80493
80608
|
let selection = updateSel(view.state.selection, range => {
|
|
80494
80609
|
let head = how(range);
|
|
80495
|
-
return EditorSelection.range(range.anchor, head.head, head.goalColumn);
|
|
80610
|
+
return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined);
|
|
80496
80611
|
});
|
|
80497
80612
|
if (selection.eq(view.state.selection))
|
|
80498
80613
|
return false;
|
|
@@ -84465,6 +84580,88 @@
|
|
|
84465
84580
|
}
|
|
84466
84581
|
});
|
|
84467
84582
|
|
|
84583
|
+
/**
|
|
84584
|
+
* Create an array of syntax errors in the given tree.
|
|
84585
|
+
*
|
|
84586
|
+
* @param {Tree} syntaxTree
|
|
84587
|
+
* @returns {LintMessage[]} array of syntax errors
|
|
84588
|
+
*/
|
|
84589
|
+
function lintSyntax(syntaxTree) {
|
|
84590
|
+
|
|
84591
|
+
const lintMessages = [];
|
|
84592
|
+
|
|
84593
|
+
syntaxTree.iterate({
|
|
84594
|
+
enter: node => {
|
|
84595
|
+
if (node.type.isError) {
|
|
84596
|
+
|
|
84597
|
+
const error = node.toString();
|
|
84598
|
+
|
|
84599
|
+
/* The error has the pattern [⚠ || ⚠(NodeType)]. The regex extracts the node type from inside the brackets */
|
|
84600
|
+
const match = /\((.*?)\)/.exec(error);
|
|
84601
|
+
const nodeType = match && match[1];
|
|
84602
|
+
|
|
84603
|
+
let message;
|
|
84604
|
+
|
|
84605
|
+
if (nodeType) {
|
|
84606
|
+
message = 'unexpected ' + nodeType;
|
|
84607
|
+
} else {
|
|
84608
|
+
message = 'expression expected';
|
|
84609
|
+
}
|
|
84610
|
+
|
|
84611
|
+
lintMessages.push(
|
|
84612
|
+
{
|
|
84613
|
+
from: node.from,
|
|
84614
|
+
to: node.to,
|
|
84615
|
+
severity: 'error',
|
|
84616
|
+
message: message,
|
|
84617
|
+
type: 'syntaxError'
|
|
84618
|
+
}
|
|
84619
|
+
);
|
|
84620
|
+
}
|
|
84621
|
+
}
|
|
84622
|
+
});
|
|
84623
|
+
|
|
84624
|
+
return lintMessages;
|
|
84625
|
+
}
|
|
84626
|
+
|
|
84627
|
+
/**
|
|
84628
|
+
* Generates lint messages for the given syntax tree.
|
|
84629
|
+
*
|
|
84630
|
+
* @param {Tree} syntaxTree
|
|
84631
|
+
* @returns {LintMessage[]} array of all lint messages
|
|
84632
|
+
*/
|
|
84633
|
+
function lintAll(syntaxTree) {
|
|
84634
|
+
|
|
84635
|
+
const lintMessages = [
|
|
84636
|
+
... lintSyntax(syntaxTree)
|
|
84637
|
+
];
|
|
84638
|
+
|
|
84639
|
+
return lintMessages;
|
|
84640
|
+
}
|
|
84641
|
+
|
|
84642
|
+
/**
|
|
84643
|
+
* CodeMirror extension that provides linting for FEEL expressions.
|
|
84644
|
+
*
|
|
84645
|
+
* @param {EditorView} editorView
|
|
84646
|
+
* @returns {Source} CodeMirror linting source
|
|
84647
|
+
*/
|
|
84648
|
+
const cmFeelLinter = () => editorView => {
|
|
84649
|
+
|
|
84650
|
+
// don't lint if the Editor is empty
|
|
84651
|
+
if (editorView.state.doc.length === 0) {
|
|
84652
|
+
return [];
|
|
84653
|
+
}
|
|
84654
|
+
|
|
84655
|
+
const tree = syntaxTree(editorView.state);
|
|
84656
|
+
|
|
84657
|
+
const messages = lintAll(tree);
|
|
84658
|
+
|
|
84659
|
+
return messages.map(message => ({
|
|
84660
|
+
...message,
|
|
84661
|
+
source: 'syntaxError'
|
|
84662
|
+
}));
|
|
84663
|
+
};
|
|
84664
|
+
|
|
84468
84665
|
// helpers ///////////////////////////////
|
|
84469
84666
|
|
|
84470
84667
|
function isNodeEmpty(node) {
|
|
@@ -84828,9 +85025,10 @@
|
|
|
84828
85025
|
label: tag.name,
|
|
84829
85026
|
type: 'function',
|
|
84830
85027
|
info: () => {
|
|
84831
|
-
const html = domify$1(tag.description);
|
|
85028
|
+
const html = domify$1(`<div class="description">${tag.description}<div>`);
|
|
84832
85029
|
return html;
|
|
84833
|
-
}
|
|
85030
|
+
},
|
|
85031
|
+
boost: -1
|
|
84834
85032
|
}
|
|
84835
85033
|
));
|
|
84836
85034
|
|
|
@@ -84869,6 +85067,109 @@
|
|
|
84869
85067
|
*/
|
|
84870
85068
|
const variablesFacet = Facet.define();
|
|
84871
85069
|
|
|
85070
|
+
var pathExpression = context => {
|
|
85071
|
+
const variables = context.state.facet(variablesFacet)[0];
|
|
85072
|
+
const nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);
|
|
85073
|
+
|
|
85074
|
+
if (!isPathExpression(nodeBefore)) {
|
|
85075
|
+
return;
|
|
85076
|
+
}
|
|
85077
|
+
|
|
85078
|
+
const expression = findPathExpression(nodeBefore);
|
|
85079
|
+
|
|
85080
|
+
// if the cursor is directly after the `.`, variable starts at the cursor position
|
|
85081
|
+
const from = nodeBefore === expression ? context.pos : nodeBefore.from;
|
|
85082
|
+
|
|
85083
|
+
const path = getPath(expression, context);
|
|
85084
|
+
|
|
85085
|
+
let options = variables;
|
|
85086
|
+
for (var i = 0; i < path.length - 1; i++) {
|
|
85087
|
+
var childVar = options.find(val => val.name === path[i].name);
|
|
85088
|
+
|
|
85089
|
+
if (!childVar) {
|
|
85090
|
+
return null;
|
|
85091
|
+
}
|
|
85092
|
+
|
|
85093
|
+
// only suggest if variable type matches
|
|
85094
|
+
if (
|
|
85095
|
+
childVar.isList !== 'optional' &&
|
|
85096
|
+
!!childVar.isList !== path[i].isList
|
|
85097
|
+
) {
|
|
85098
|
+
return;
|
|
85099
|
+
}
|
|
85100
|
+
|
|
85101
|
+
options = childVar.entries;
|
|
85102
|
+
}
|
|
85103
|
+
|
|
85104
|
+
if (!options) return;
|
|
85105
|
+
|
|
85106
|
+
options = options.map(v => ({
|
|
85107
|
+
label: v.name,
|
|
85108
|
+
type: 'variable',
|
|
85109
|
+
info: v.info,
|
|
85110
|
+
detail: v.detail
|
|
85111
|
+
}));
|
|
85112
|
+
|
|
85113
|
+
const result = {
|
|
85114
|
+
from: from,
|
|
85115
|
+
options: options
|
|
85116
|
+
};
|
|
85117
|
+
|
|
85118
|
+
return result;
|
|
85119
|
+
};
|
|
85120
|
+
|
|
85121
|
+
|
|
85122
|
+
function findPathExpression(node) {
|
|
85123
|
+
while (node) {
|
|
85124
|
+
if (node.name === 'PathExpression') {
|
|
85125
|
+
return node;
|
|
85126
|
+
}
|
|
85127
|
+
node = node.parent;
|
|
85128
|
+
}
|
|
85129
|
+
}
|
|
85130
|
+
|
|
85131
|
+
// parses the path expression into a list of variable names with type information
|
|
85132
|
+
// e.g. foo[0].bar => [ { name: 'foo', isList: true }, { name: 'bar', isList: false } ]
|
|
85133
|
+
function getPath(node, context) {
|
|
85134
|
+
let path = [];
|
|
85135
|
+
|
|
85136
|
+
for (let child = node.firstChild; child; child = child.nextSibling) {
|
|
85137
|
+
if (child.name === 'PathExpression') {
|
|
85138
|
+
path.push(...getPath(child, context));
|
|
85139
|
+
} else if (child.name === 'FilterExpression') {
|
|
85140
|
+
path.push(...getFilter(child, context));
|
|
85141
|
+
}
|
|
85142
|
+
else {
|
|
85143
|
+
path.push({
|
|
85144
|
+
name: getNodeContent(child, context),
|
|
85145
|
+
isList: false
|
|
85146
|
+
});
|
|
85147
|
+
}
|
|
85148
|
+
}
|
|
85149
|
+
return path;
|
|
85150
|
+
}
|
|
85151
|
+
|
|
85152
|
+
function getFilter(node, context) {
|
|
85153
|
+
const list = node.firstChild;
|
|
85154
|
+
|
|
85155
|
+
if (list.name === 'PathExpression') {
|
|
85156
|
+
const path = getPath(list, context);
|
|
85157
|
+
const last = path[path.length - 1];
|
|
85158
|
+
last.isList = true;
|
|
85159
|
+
|
|
85160
|
+
return path;
|
|
85161
|
+
}
|
|
85162
|
+
|
|
85163
|
+
return [ {
|
|
85164
|
+
name: getNodeContent(list, context),
|
|
85165
|
+
isList: true
|
|
85166
|
+
} ];
|
|
85167
|
+
}
|
|
85168
|
+
|
|
85169
|
+
function getNodeContent(node, context) {
|
|
85170
|
+
return context.state.sliceDoc(node.from, node.to);
|
|
85171
|
+
}
|
|
85172
|
+
|
|
84872
85173
|
/**
|
|
84873
85174
|
* @type {import('@codemirror/autocomplete').CompletionSource}
|
|
84874
85175
|
*/
|
|
@@ -84920,7 +85221,8 @@
|
|
|
84920
85221
|
override: [
|
|
84921
85222
|
variables,
|
|
84922
85223
|
builtins,
|
|
84923
|
-
completeFromList(snippets)
|
|
85224
|
+
completeFromList(snippets.map(s => ({ ...s, boost: -1 }))),
|
|
85225
|
+
pathExpression
|
|
84924
85226
|
]
|
|
84925
85227
|
})
|
|
84926
85228
|
];
|
|
@@ -84930,53 +85232,7 @@
|
|
|
84930
85232
|
return new LanguageSupport(feelLanguage, [ ]);
|
|
84931
85233
|
}
|
|
84932
85234
|
|
|
84933
|
-
|
|
84934
|
-
const messages = [];
|
|
84935
|
-
|
|
84936
|
-
// don't lint if the Editor is empty
|
|
84937
|
-
if (editorView.state.doc.length === 0) {
|
|
84938
|
-
return messages;
|
|
84939
|
-
}
|
|
84940
|
-
|
|
84941
|
-
const tree = syntaxTree(editorView.state);
|
|
84942
|
-
|
|
84943
|
-
tree.iterate({
|
|
84944
|
-
enter: node => {
|
|
84945
|
-
if (node.type.isError) {
|
|
84946
|
-
|
|
84947
|
-
const error = node.toString();
|
|
84948
|
-
|
|
84949
|
-
/* The error has the pattern [⚠ || ⚠(NodeType)]. The regex extracts the node type from inside the brackets */
|
|
84950
|
-
const match = /\((.*?)\)/.exec(error);
|
|
84951
|
-
const nodeType = match && match[1];
|
|
84952
|
-
|
|
84953
|
-
let message;
|
|
84954
|
-
|
|
84955
|
-
if (nodeType) {
|
|
84956
|
-
message = 'unexpected ' + nodeType;
|
|
84957
|
-
} else {
|
|
84958
|
-
message = 'expression expected';
|
|
84959
|
-
}
|
|
84960
|
-
|
|
84961
|
-
messages.push(
|
|
84962
|
-
{
|
|
84963
|
-
from: node.from,
|
|
84964
|
-
to: node.to,
|
|
84965
|
-
severity: 'error',
|
|
84966
|
-
message: message,
|
|
84967
|
-
source: 'syntaxError'
|
|
84968
|
-
}
|
|
84969
|
-
);
|
|
84970
|
-
}
|
|
84971
|
-
}
|
|
84972
|
-
});
|
|
84973
|
-
|
|
84974
|
-
return messages;
|
|
84975
|
-
};
|
|
84976
|
-
|
|
84977
|
-
var syntaxLinter = linter$1(FeelLinter);
|
|
84978
|
-
|
|
84979
|
-
var linter = [ syntaxLinter ];
|
|
85235
|
+
var linter = [ linter$1(cmFeelLinter()) ];
|
|
84980
85236
|
|
|
84981
85237
|
const baseTheme = EditorView.theme({
|
|
84982
85238
|
'& .cm-content': {
|
|
@@ -85044,9 +85300,11 @@
|
|
|
85044
85300
|
|
|
85045
85301
|
/**
|
|
85046
85302
|
* @typedef {object} Variable
|
|
85047
|
-
* @property {string} name
|
|
85048
|
-
* @property {string} [info]
|
|
85049
|
-
* @property {string} [detail]
|
|
85303
|
+
* @property {string} name name or key of the variable
|
|
85304
|
+
* @property {string} [info] short information about the variable, e.g. type
|
|
85305
|
+
* @property {string} [detail] longer description of the variable content
|
|
85306
|
+
* @property {boolean} [isList] whether the variable is a list
|
|
85307
|
+
* @property {array<Variable>} [schema] array of child variables if the variable is a context or list
|
|
85050
85308
|
*/
|
|
85051
85309
|
|
|
85052
85310
|
const autocompletionConf = new Compartment();
|
|
@@ -86784,7 +87042,7 @@
|
|
|
86784
87042
|
label,
|
|
86785
87043
|
onChange,
|
|
86786
87044
|
options = [],
|
|
86787
|
-
value,
|
|
87045
|
+
value = '',
|
|
86788
87046
|
disabled,
|
|
86789
87047
|
onFocus,
|
|
86790
87048
|
onBlur
|
|
@@ -87879,28 +88137,41 @@
|
|
|
87879
88137
|
|
|
87880
88138
|
// api /////////////////////////
|
|
87881
88139
|
|
|
88140
|
+
/**
|
|
88141
|
+
* Extractors add ProcessVariables to the `options.processVariables` parameter.
|
|
88142
|
+
* @callback extractor
|
|
88143
|
+
* @param {Object} options
|
|
88144
|
+
* @param {Array<ModdleElement>} options.elements
|
|
88145
|
+
* @param {ModdleElement} options.containerElement
|
|
88146
|
+
* @param {Array<ProcessVariable>} options.processVariables
|
|
88147
|
+
*/
|
|
88148
|
+
|
|
87882
88149
|
/**
|
|
87883
88150
|
* Retrieves all process variables for a given container element.
|
|
87884
88151
|
* @param {ModdleElement} containerElement
|
|
88152
|
+
* @param {Array<extractor>} [additionalExtractors]
|
|
87885
88153
|
*
|
|
87886
|
-
* @returns {Array<ProcessVariable
|
|
88154
|
+
* @returns {Promise<Array<ProcessVariable>>}
|
|
87887
88155
|
*/
|
|
87888
|
-
function getProcessVariables$1(containerElement) {
|
|
88156
|
+
function getProcessVariables$1(containerElement, additionalExtractors = []) {
|
|
87889
88157
|
var processVariables = [];
|
|
87890
88158
|
|
|
87891
88159
|
// (1) extract all flow elements inside the container
|
|
87892
88160
|
var elements = selfAndAllFlowElements$1([ containerElement ], false);
|
|
87893
88161
|
|
|
88162
|
+
const allPromises = [];
|
|
88163
|
+
|
|
87894
88164
|
// (2) extract all variables from the extractors
|
|
87895
|
-
minDash$1.forEach(extractors$1, function(extractor) {
|
|
87896
|
-
extractor({
|
|
88165
|
+
minDash$1.forEach([ ...extractors$1, ...additionalExtractors ], function(extractor) {
|
|
88166
|
+
allPromises.push(extractor({
|
|
87897
88167
|
elements: elements,
|
|
87898
88168
|
containerElement: containerElement,
|
|
87899
88169
|
processVariables: processVariables
|
|
87900
|
-
});
|
|
88170
|
+
}));
|
|
87901
88171
|
});
|
|
87902
88172
|
|
|
87903
|
-
return
|
|
88173
|
+
return Promise.all(allPromises)
|
|
88174
|
+
.then(() => processVariables);
|
|
87904
88175
|
}
|
|
87905
88176
|
|
|
87906
88177
|
/**
|
|
@@ -87912,12 +88183,13 @@
|
|
|
87912
88183
|
*
|
|
87913
88184
|
* @param {string} scope
|
|
87914
88185
|
* @param {ModdleElement} rootElement element from where to extract all variables
|
|
88186
|
+
* @param {Array<extractor>} [additionalExtractors]
|
|
87915
88187
|
*
|
|
87916
|
-
* @returns {Array<ProcessVariable
|
|
88188
|
+
* @returns {Promise<Array<ProcessVariable>>}
|
|
87917
88189
|
*/
|
|
87918
|
-
function getVariablesForScope$1(scope, rootElement) {
|
|
88190
|
+
async function getVariablesForScope$1(scope, rootElement, additionalExtractors = []) {
|
|
87919
88191
|
|
|
87920
|
-
var allVariables = getProcessVariables$1(rootElement);
|
|
88192
|
+
var allVariables = await getProcessVariables$1(rootElement, additionalExtractors);
|
|
87921
88193
|
|
|
87922
88194
|
var scopeElement = getElement$1(scope, rootElement);
|
|
87923
88195
|
|
|
@@ -87939,8 +88211,8 @@
|
|
|
87939
88211
|
}
|
|
87940
88212
|
|
|
87941
88213
|
|
|
87942
|
-
function getVariablesForElement(element) {
|
|
87943
|
-
return getVariablesForScope$1(getScope$2(element), getRootElement$1(element));
|
|
88214
|
+
function getVariablesForElement(element, additionalExtractors = []) {
|
|
88215
|
+
return getVariablesForScope$1(getScope$2(element), getRootElement$1(element), additionalExtractors);
|
|
87944
88216
|
}
|
|
87945
88217
|
|
|
87946
88218
|
function getScope$2(element) {
|
|
@@ -88645,30 +88917,46 @@
|
|
|
88645
88917
|
* @property {ModdleElement} scope
|
|
88646
88918
|
*/
|
|
88647
88919
|
|
|
88920
|
+
|
|
88921
|
+
/**
|
|
88922
|
+
* Extractors add ProcessVariables to the `options.processVariables` parameter.
|
|
88923
|
+
* @callback extractor
|
|
88924
|
+
* @param {Object} options
|
|
88925
|
+
* @param {Array<ModdleElement>} options.elements
|
|
88926
|
+
* @param {ModdleElement} options.containerElement
|
|
88927
|
+
* @param {Array<ProcessVariable>} options.processVariables
|
|
88928
|
+
*/
|
|
88929
|
+
|
|
88648
88930
|
// api /////////////////////////
|
|
88649
88931
|
|
|
88650
88932
|
/**
|
|
88651
88933
|
* Retrieves all process variables for a given container element.
|
|
88652
88934
|
* @param {ModdleElement} containerElement
|
|
88935
|
+
* @param {Array<extractor>} additionalExtractors
|
|
88653
88936
|
*
|
|
88654
|
-
* @returns {Array<ProcessVariable
|
|
88937
|
+
* @returns {Promise<Array<ProcessVariable>>}
|
|
88655
88938
|
*/
|
|
88656
|
-
function getProcessVariables(containerElement) {
|
|
88939
|
+
function getProcessVariables(containerElement, additionalExtractors = []) {
|
|
88940
|
+
const allPromises = [];
|
|
88941
|
+
|
|
88657
88942
|
var processVariables = [];
|
|
88658
88943
|
|
|
88659
88944
|
// (1) extract all flow elements inside the container
|
|
88660
88945
|
var elements = selfAndAllFlowElements([ containerElement ], false);
|
|
88661
88946
|
|
|
88662
88947
|
// (2) extract all variables from the extractors
|
|
88663
|
-
minDash.forEach(extractors, function(extractor) {
|
|
88664
|
-
|
|
88665
|
-
|
|
88666
|
-
|
|
88667
|
-
|
|
88668
|
-
|
|
88948
|
+
minDash.forEach([ ...extractors, ...additionalExtractors ], function(extractor) {
|
|
88949
|
+
allPromises.push(
|
|
88950
|
+
extractor({
|
|
88951
|
+
elements: elements,
|
|
88952
|
+
containerElement: containerElement,
|
|
88953
|
+
processVariables: processVariables
|
|
88954
|
+
})
|
|
88955
|
+
);
|
|
88669
88956
|
});
|
|
88670
88957
|
|
|
88671
|
-
return
|
|
88958
|
+
return Promise.all(allPromises)
|
|
88959
|
+
.then(() => processVariables);
|
|
88672
88960
|
}
|
|
88673
88961
|
|
|
88674
88962
|
/**
|
|
@@ -88680,12 +88968,13 @@
|
|
|
88680
88968
|
*
|
|
88681
88969
|
* @param {string} scope
|
|
88682
88970
|
* @param {ModdleElement} rootElement element from where to extract all variables
|
|
88971
|
+
* @param {Array<extractor>} additionalExtractors
|
|
88683
88972
|
*
|
|
88684
|
-
* @returns {Array<ProcessVariable
|
|
88973
|
+
* @returns {Promise<Array<ProcessVariable>>}
|
|
88685
88974
|
*/
|
|
88686
|
-
function getVariablesForScope(scope, rootElement) {
|
|
88975
|
+
async function getVariablesForScope(scope, rootElement, additionalExtractors = []) {
|
|
88687
88976
|
|
|
88688
|
-
var allVariables = getProcessVariables(rootElement);
|
|
88977
|
+
var allVariables = await getProcessVariables(rootElement, additionalExtractors);
|
|
88689
88978
|
|
|
88690
88979
|
var scopeElement = getElement(scope, rootElement);
|
|
88691
88980
|
|
|
@@ -91699,7 +91988,7 @@
|
|
|
91699
91988
|
/**
|
|
91700
91989
|
* @returns {Array<Entry>} entries
|
|
91701
91990
|
*/
|
|
91702
|
-
function ErrorProps$
|
|
91991
|
+
function ErrorProps$2(props) {
|
|
91703
91992
|
const {
|
|
91704
91993
|
element
|
|
91705
91994
|
} = props;
|
|
@@ -91719,7 +92008,7 @@
|
|
|
91719
92008
|
isEdited: isEdited$1
|
|
91720
92009
|
}, {
|
|
91721
92010
|
id: 'errorCode',
|
|
91722
|
-
component: ErrorCode$
|
|
92011
|
+
component: ErrorCode$2,
|
|
91723
92012
|
isEdited: isEdited$1
|
|
91724
92013
|
}];
|
|
91725
92014
|
}
|
|
@@ -91835,7 +92124,7 @@
|
|
|
91835
92124
|
debounce
|
|
91836
92125
|
});
|
|
91837
92126
|
}
|
|
91838
|
-
function ErrorCode$
|
|
92127
|
+
function ErrorCode$2(props) {
|
|
91839
92128
|
const {
|
|
91840
92129
|
element
|
|
91841
92130
|
} = props;
|
|
@@ -93309,7 +93598,7 @@
|
|
|
93309
93598
|
id: 'error',
|
|
93310
93599
|
label: translate('Error'),
|
|
93311
93600
|
component: Group,
|
|
93312
|
-
entries: [...ErrorProps$
|
|
93601
|
+
entries: [...ErrorProps$2({
|
|
93313
93602
|
element
|
|
93314
93603
|
})]
|
|
93315
93604
|
};
|
|
@@ -99664,7 +99953,8 @@
|
|
|
99664
99953
|
}
|
|
99665
99954
|
return {
|
|
99666
99955
|
items,
|
|
99667
|
-
add
|
|
99956
|
+
add,
|
|
99957
|
+
shouldSort: false
|
|
99668
99958
|
};
|
|
99669
99959
|
}
|
|
99670
99960
|
function removeFactory$2(props) {
|
|
@@ -100472,7 +100762,8 @@
|
|
|
100472
100762
|
bpmnFactory,
|
|
100473
100763
|
commandStack,
|
|
100474
100764
|
element
|
|
100475
|
-
})
|
|
100765
|
+
}),
|
|
100766
|
+
shouldSort: false
|
|
100476
100767
|
};
|
|
100477
100768
|
}
|
|
100478
100769
|
function removeFactory({
|
|
@@ -101036,24 +101327,23 @@
|
|
|
101036
101327
|
return businessObject.get('processRef') || businessObject;
|
|
101037
101328
|
}
|
|
101038
101329
|
|
|
101039
|
-
function
|
|
101330
|
+
function ProcessVariablesEntry(props) {
|
|
101040
101331
|
const {
|
|
101041
101332
|
element
|
|
101042
101333
|
} = props;
|
|
101043
|
-
|
|
101044
|
-
|
|
101045
|
-
|
|
101046
|
-
|
|
101047
|
-
|
|
101048
|
-
|
|
101049
|
-
|
|
101050
|
-
|
|
101051
|
-
|
|
101334
|
+
const [variables, setVariables] = l$1([]);
|
|
101335
|
+
y(async () => {
|
|
101336
|
+
const businessObject = getBusinessObject$1(element);
|
|
101337
|
+
const rootElement = getRootElement(businessObject);
|
|
101338
|
+
const scope = getScope(element);
|
|
101339
|
+
const rawVariables = await getVariablesForScope_1(scope, rootElement);
|
|
101340
|
+
const withName = populateElementNames(sortByName(rawVariables));
|
|
101341
|
+
setVariables(withName);
|
|
101342
|
+
}, [element]);
|
|
101052
101343
|
if (!variables.length) {
|
|
101053
101344
|
return null;
|
|
101054
101345
|
}
|
|
101055
|
-
const
|
|
101056
|
-
const byScope = groupByScope(withNames);
|
|
101346
|
+
const byScope = groupByScope(variables);
|
|
101057
101347
|
const multiScope = isMultiScope(byScope);
|
|
101058
101348
|
let variableItems = [];
|
|
101059
101349
|
|
|
@@ -101065,7 +101355,7 @@
|
|
|
101065
101355
|
variableItems = flatten$1(reversed);
|
|
101066
101356
|
} else {
|
|
101067
101357
|
// (2b) single scope
|
|
101068
|
-
variableItems =
|
|
101358
|
+
variableItems = variables;
|
|
101069
101359
|
}
|
|
101070
101360
|
const items = variableItems.map((variable, index) => {
|
|
101071
101361
|
const id = element.id + '-variable-' + index;
|
|
@@ -101079,8 +101369,21 @@
|
|
|
101079
101369
|
})]
|
|
101080
101370
|
};
|
|
101081
101371
|
});
|
|
101372
|
+
return o$1(ListGroup, {
|
|
101373
|
+
...props,
|
|
101374
|
+
items: items,
|
|
101375
|
+
shouldSort: false
|
|
101376
|
+
});
|
|
101377
|
+
}
|
|
101378
|
+
function ProcessVariablesProps(props) {
|
|
101379
|
+
const {
|
|
101380
|
+
element
|
|
101381
|
+
} = props;
|
|
101382
|
+
if (!canHaveProcessVariables(element)) {
|
|
101383
|
+
return null;
|
|
101384
|
+
}
|
|
101082
101385
|
return {
|
|
101083
|
-
|
|
101386
|
+
component: ProcessVariablesEntry,
|
|
101084
101387
|
shouldSort: false
|
|
101085
101388
|
};
|
|
101086
101389
|
}
|
|
@@ -102217,19 +102520,19 @@
|
|
|
102217
102520
|
}
|
|
102218
102521
|
function ProcessVariablesGroup(element, injector) {
|
|
102219
102522
|
const translate = injector.get('translate');
|
|
102523
|
+
const variableProps = ProcessVariablesProps({
|
|
102524
|
+
element,
|
|
102525
|
+
injector
|
|
102526
|
+
});
|
|
102527
|
+
if (!variableProps) {
|
|
102528
|
+
return null;
|
|
102529
|
+
}
|
|
102220
102530
|
const group = {
|
|
102221
102531
|
label: translate('Process variables'),
|
|
102222
102532
|
id: 'CamundaPlatform__ProcessVariables',
|
|
102223
|
-
|
|
102224
|
-
...ProcessVariablesProps({
|
|
102225
|
-
element,
|
|
102226
|
-
injector
|
|
102227
|
-
})
|
|
102533
|
+
...variableProps
|
|
102228
102534
|
};
|
|
102229
|
-
|
|
102230
|
-
return group;
|
|
102231
|
-
}
|
|
102232
|
-
return null;
|
|
102535
|
+
return group;
|
|
102233
102536
|
}
|
|
102234
102537
|
function FormDataGroup(element, injector) {
|
|
102235
102538
|
const translate = injector.get('translate');
|
|
@@ -103249,7 +103552,7 @@
|
|
|
103249
103552
|
// different conditions but same bindings
|
|
103250
103553
|
return oldProperties.filter(property => !findPropertyWithBinding(newTemplate, property));
|
|
103251
103554
|
}
|
|
103252
|
-
function normalizeReplacer(key, value) {
|
|
103555
|
+
function normalizeReplacer$1(key, value) {
|
|
103253
103556
|
if (isObject(value)) {
|
|
103254
103557
|
const keys = Object.keys(value).sort();
|
|
103255
103558
|
return keys.reduce((obj, key) => {
|
|
@@ -103260,7 +103563,7 @@
|
|
|
103260
103563
|
return value;
|
|
103261
103564
|
}
|
|
103262
103565
|
function equals(a, b) {
|
|
103263
|
-
return JSON.stringify(a, normalizeReplacer) === JSON.stringify(b, normalizeReplacer);
|
|
103566
|
+
return JSON.stringify(a, normalizeReplacer$1) === JSON.stringify(b, normalizeReplacer$1);
|
|
103264
103567
|
}
|
|
103265
103568
|
|
|
103266
103569
|
/**
|
|
@@ -104825,6 +105128,163 @@
|
|
|
104825
105128
|
});
|
|
104826
105129
|
}
|
|
104827
105130
|
|
|
105131
|
+
/**
|
|
105132
|
+
* Restores the original order of the template properties
|
|
105133
|
+
* on the moddle element.
|
|
105134
|
+
*/
|
|
105135
|
+
class UpdateTemplatePropertiesOrder extends CommandInterceptor {
|
|
105136
|
+
constructor(eventBus, elementTemplates, commandStack, bpmnFactory) {
|
|
105137
|
+
super(eventBus);
|
|
105138
|
+
this._eventBus = eventBus;
|
|
105139
|
+
this._elementTemplates = elementTemplates;
|
|
105140
|
+
this._commandStack = commandStack;
|
|
105141
|
+
this._bpmnFactory = bpmnFactory;
|
|
105142
|
+
this.postExecute(['element.updateProperties', 'element.updateModdleProperties'], this._updatePropertiesOrder, true, this);
|
|
105143
|
+
}
|
|
105144
|
+
_updatePropertiesOrder(context) {
|
|
105145
|
+
const {
|
|
105146
|
+
element
|
|
105147
|
+
} = context;
|
|
105148
|
+
const template = this._elementTemplates.get(element);
|
|
105149
|
+
const businessObject = element.businessObject;
|
|
105150
|
+
const commands = [];
|
|
105151
|
+
if (!template) {
|
|
105152
|
+
return;
|
|
105153
|
+
}
|
|
105154
|
+
const templateProperties = template.properties;
|
|
105155
|
+
|
|
105156
|
+
// zeebe:Property
|
|
105157
|
+
const zeebeProperties = findExtension$1(businessObject, 'zeebe:Properties');
|
|
105158
|
+
if (zeebeProperties) {
|
|
105159
|
+
this._updateZeebePropertiesOrder(zeebeProperties, templateProperties, commands, context);
|
|
105160
|
+
}
|
|
105161
|
+
|
|
105162
|
+
// zeebe:IoMapping
|
|
105163
|
+
const ioMapping = findExtension$1(businessObject, 'zeebe:IoMapping');
|
|
105164
|
+
if (ioMapping) {
|
|
105165
|
+
// zeebe:Input
|
|
105166
|
+
this._updateInputOrder(ioMapping, templateProperties, commands, context);
|
|
105167
|
+
|
|
105168
|
+
// zeebe:Output
|
|
105169
|
+
this._updateOutputOrder(ioMapping, templateProperties, commands, context);
|
|
105170
|
+
}
|
|
105171
|
+
|
|
105172
|
+
// zeebe:TaskHeaders
|
|
105173
|
+
const taskHeaders = findExtension$1(businessObject, 'zeebe:TaskHeaders');
|
|
105174
|
+
if (taskHeaders) {
|
|
105175
|
+
this._updateTaskHeadersOrder(taskHeaders, templateProperties, commands, context);
|
|
105176
|
+
}
|
|
105177
|
+
if (commands.length) {
|
|
105178
|
+
const commandsToExecute = commands.filter(command => command !== null);
|
|
105179
|
+
commandsToExecute.length && this._commandStack.execute('properties-panel.multi-command-executor', commandsToExecute);
|
|
105180
|
+
return;
|
|
105181
|
+
}
|
|
105182
|
+
}
|
|
105183
|
+
_updateZeebePropertiesOrder(zeebeProperties, templateProperties, commands, context) {
|
|
105184
|
+
const findIndex = (properties, propertyToFind) => properties.findIndex(prop => prop.binding.type == 'zeebe:property' && prop.binding.name === propertyToFind.get('name'));
|
|
105185
|
+
const properties = zeebeProperties.get('properties');
|
|
105186
|
+
if (properties.length < 1) return;
|
|
105187
|
+
let newPropertiesOrder = [...properties];
|
|
105188
|
+
sortProperties(newPropertiesOrder, findIndex, templateProperties);
|
|
105189
|
+
if (!arrayEquals(newPropertiesOrder, properties)) {
|
|
105190
|
+
commands.push({
|
|
105191
|
+
cmd: 'element.updateModdleProperties',
|
|
105192
|
+
context: {
|
|
105193
|
+
...context,
|
|
105194
|
+
moddleElement: zeebeProperties,
|
|
105195
|
+
properties: {
|
|
105196
|
+
properties: newPropertiesOrder
|
|
105197
|
+
}
|
|
105198
|
+
}
|
|
105199
|
+
});
|
|
105200
|
+
}
|
|
105201
|
+
}
|
|
105202
|
+
_updateInputOrder(ioMapping, templateProperties, commands, context) {
|
|
105203
|
+
const findIndex = (properties, propertyToFind) => properties.findIndex(prop => prop.binding.type == 'zeebe:input' && prop.binding.name === propertyToFind.get('target'));
|
|
105204
|
+
const inputParameters = ioMapping.get('inputParameters');
|
|
105205
|
+
if (inputParameters.length < 1) return;
|
|
105206
|
+
let newInputOrder = [...inputParameters];
|
|
105207
|
+
sortProperties(newInputOrder, findIndex, templateProperties);
|
|
105208
|
+
if (!arrayEquals(newInputOrder, inputParameters)) {
|
|
105209
|
+
commands.push({
|
|
105210
|
+
cmd: 'element.updateModdleProperties',
|
|
105211
|
+
context: {
|
|
105212
|
+
...context,
|
|
105213
|
+
moddleElement: ioMapping,
|
|
105214
|
+
properties: {
|
|
105215
|
+
inputParameters: newInputOrder
|
|
105216
|
+
}
|
|
105217
|
+
}
|
|
105218
|
+
});
|
|
105219
|
+
}
|
|
105220
|
+
}
|
|
105221
|
+
_updateOutputOrder(ioMapping, templateProperties, commands, context) {
|
|
105222
|
+
const findIndex = (properties, propertyToFind) => properties.findIndex(prop => prop.binding.type == 'zeebe:output' && prop.binding.source === propertyToFind.get('source'));
|
|
105223
|
+
const outputParameters = ioMapping.get('outputParameters');
|
|
105224
|
+
if (outputParameters.length < 1) return;
|
|
105225
|
+
let newOutputOrder = [...outputParameters];
|
|
105226
|
+
sortProperties(newOutputOrder, findIndex, templateProperties);
|
|
105227
|
+
if (!arrayEquals(newOutputOrder, outputParameters)) {
|
|
105228
|
+
commands.push({
|
|
105229
|
+
cmd: 'element.updateModdleProperties',
|
|
105230
|
+
context: {
|
|
105231
|
+
...context,
|
|
105232
|
+
moddleElement: ioMapping,
|
|
105233
|
+
properties: {
|
|
105234
|
+
outputParameters: newOutputOrder
|
|
105235
|
+
}
|
|
105236
|
+
}
|
|
105237
|
+
});
|
|
105238
|
+
}
|
|
105239
|
+
}
|
|
105240
|
+
_updateTaskHeadersOrder(taskHeaders, templateProperties, commands, context) {
|
|
105241
|
+
const findIndex = (properties, propertyToFind) => properties.findIndex(prop => prop.binding.type == 'zeebe:taskHeader' && prop.binding.key === propertyToFind.get('key'));
|
|
105242
|
+
const headers = taskHeaders.get('zeebe:values');
|
|
105243
|
+
if (headers.length < 1) return;
|
|
105244
|
+
let newHeadersOrder = [...headers];
|
|
105245
|
+
sortProperties(newHeadersOrder, findIndex, templateProperties);
|
|
105246
|
+
if (!arrayEquals(newHeadersOrder, headers)) {
|
|
105247
|
+
commands.push({
|
|
105248
|
+
cmd: 'element.updateModdleProperties',
|
|
105249
|
+
context: {
|
|
105250
|
+
...context,
|
|
105251
|
+
moddleElement: taskHeaders,
|
|
105252
|
+
properties: {
|
|
105253
|
+
values: newHeadersOrder
|
|
105254
|
+
}
|
|
105255
|
+
}
|
|
105256
|
+
});
|
|
105257
|
+
}
|
|
105258
|
+
}
|
|
105259
|
+
}
|
|
105260
|
+
UpdateTemplatePropertiesOrder.$inject = ['eventBus', 'elementTemplates', 'commandStack', 'bpmnFactory'];
|
|
105261
|
+
|
|
105262
|
+
// helpers
|
|
105263
|
+
|
|
105264
|
+
function normalizeReplacer(key, value) {
|
|
105265
|
+
if (isObject(value)) {
|
|
105266
|
+
const keys = Object.keys(value).sort();
|
|
105267
|
+
return keys.reduce((obj, key) => {
|
|
105268
|
+
obj[key] = value[key];
|
|
105269
|
+
return obj;
|
|
105270
|
+
}, {});
|
|
105271
|
+
}
|
|
105272
|
+
return value;
|
|
105273
|
+
}
|
|
105274
|
+
function objectEquals(a, b) {
|
|
105275
|
+
return JSON.stringify(a, normalizeReplacer) === JSON.stringify(b, normalizeReplacer);
|
|
105276
|
+
}
|
|
105277
|
+
function arrayEquals(a, b) {
|
|
105278
|
+
return a.every((element, idx) => objectEquals(element, b[idx]));
|
|
105279
|
+
}
|
|
105280
|
+
function sortProperties(array, findIndex, templateProperties) {
|
|
105281
|
+
return array.sort((a, b) => {
|
|
105282
|
+
const aIndex = findIndex(templateProperties, a);
|
|
105283
|
+
const bIndex = findIndex(templateProperties, b);
|
|
105284
|
+
return aIndex - bIndex;
|
|
105285
|
+
});
|
|
105286
|
+
}
|
|
105287
|
+
|
|
104828
105288
|
/**
|
|
104829
105289
|
* This Behavior checks if the new element's type is in
|
|
104830
105290
|
* the list of elements the template applies to and unlinks
|