@steedos-widgets/reactflow 1.2.38 → 1.2.39-beta.1
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/reactflow.umd.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
*
|
|
8
8
|
* This source code is licensed under the MIT license found in the
|
|
9
9
|
* LICENSE file in the root directory of this source tree.
|
|
10
|
-
*/function requireWithSelector_production_min(){if(hasRequiredWithSelector_production_min)return withSelector_production_min;hasRequiredWithSelector_production_min=1;var e=require$$0__default.default,t=requireShim();var n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=t.useSyncExternalStore,r=e.useRef,i=e.useEffect,a=e.useMemo,s=e.useDebugValue;return withSelector_production_min.useSyncExternalStoreWithSelector=function(e,t,l,c,d){var u=r(null);if(null===u.current){var p={hasValue:!1,value:null};u.current=p}else p=u.current;u=a((function(){function e(e){if(!i){if(i=!0,o=e,e=c(e),void 0!==d&&p.hasValue){var t=p.value;if(d(t,e))return r=t}return r=e}if(t=r,n(o,e))return t;var a=c(e);return void 0!==d&&d(t,a)?t:(o=e,r=a)}var o,r,i=!1,a=void 0===l?null:l;return[function(){return e(t())},null===a?void 0:function(){return e(a())}]}),[t,l,c,d]);var f=o(e,u[0],u[1]);return i((function(){p.hasValue=!0,p.value=f}),[f]),s(f),f},withSelector_production_min}!function(e){e.exports=requireWithSelector_production_min()}(withSelector);var useSyncExternalStoreExports=getDefaultExportFromCjs(withSelector.exports);const{useSyncExternalStoreWithSelector:useSyncExternalStoreWithSelector}=useSyncExternalStoreExports;function useStore$1(e,t=e.getState,n){const o=useSyncExternalStoreWithSelector(e.subscribe,e.getState,e.getServerState||e.getState,t,n);return require$$0.useDebugValue(o),o}function shallow(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!Object.is(e[n[o]],t[n[o]]))return!1;return!0}var noop$2={value:()=>{}};function dispatch(){for(var e,t=0,n=arguments.length,o={};t<n;++t){if(!(e=arguments[t]+"")||e in o||/[\s.]/.test(e))throw new Error("illegal type: "+e);o[e]=[]}return new Dispatch(o)}function Dispatch(e){this._=e}function parseTypenames$1(e,t){return e.trim().split(/^|\s+/).map((function(e){var n="",o=e.indexOf(".");if(o>=0&&(n=e.slice(o+1),e=e.slice(0,o)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function get$2(e,t){for(var n,o=0,r=e.length;o<r;++o)if((n=e[o]).name===t)return n.value}function set$1(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=noop$2,e=e.slice(0,o).concat(e.slice(o+1));break}return null!=n&&e.push({name:t,value:n}),e}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(e,t){var n,o=this._,r=parseTypenames$1(e+"",o),i=-1,a=r.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++i<a;)if(n=(e=r[i]).type)o[n]=set$1(o[n],e.name,t);else if(null==t)for(n in o)o[n]=set$1(o[n],e.name,null);return this}for(;++i<a;)if((n=(e=r[i]).type)&&(n=get$2(o[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Dispatch(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(o=this._[e]).length;i<n;++i)o[i].value.apply(t,r)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)}};var xhtml="http://www.w3.org/1999/xhtml",namespaces={svg:"http://www.w3.org/2000/svg",xhtml:xhtml,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),namespaces.hasOwnProperty(t)?{space:namespaces[t],local:e}:e}function creatorInherit(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===xhtml&&t.documentElement.namespaceURI===xhtml?t.createElement(e):t.createElementNS(n,e)}}function creatorFixed(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function creator(e){var t=namespace(e);return(t.local?creatorFixed:creatorInherit)(t)}function none(){}function selector$h(e){return null==e?none:function(){return this.querySelector(e)}}function selection_select(e){"function"!=typeof e&&(e=selector$h(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=t[r],l=s.length,c=o[r]=new Array(l),d=0;d<l;++d)(i=s[d])&&(a=e.call(i,i.__data__,d,s))&&("__data__"in i&&(a.__data__=i.__data__),c[d]=a);return new Selection$1(o,this._parents)}function array(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function empty(){return[]}function selectorAll(e){return null==e?empty:function(){return this.querySelectorAll(e)}}function arrayAll(e){return function(){return array(e.apply(this,arguments))}}function selection_selectAll(e){e="function"==typeof e?arrayAll(e):selectorAll(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var a,s=t[i],l=s.length,c=0;c<l;++c)(a=s[c])&&(o.push(e.call(a,a.__data__,c,s)),r.push(a));return new Selection$1(o,r)}function matcher(e){return function(){return this.matches(e)}}function childMatcher(e){return function(t){return t.matches(e)}}var find=Array.prototype.find;function childFind(e){return function(){return find.call(this.children,e)}}function childFirst(){return this.firstElementChild}function selection_selectChild(e){return this.select(null==e?childFirst:childFind("function"==typeof e?e:childMatcher(e)))}var filter=Array.prototype.filter;function children(){return Array.from(this.children)}function childrenFilter(e){return function(){return filter.call(this.children,e)}}function selection_selectChildren(e){return this.selectAll(null==e?children:childrenFilter("function"==typeof e?e:childMatcher(e)))}function selection_filter(e){"function"!=typeof e&&(e=matcher(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a=t[r],s=a.length,l=o[r]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new Selection$1(o,this._parents)}function sparse(e){return new Array(e.length)}function selection_enter(){return new Selection$1(this._enter||this._groups.map(sparse),this._parents)}function EnterNode(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function constant$3(e){return function(){return e}}function bindIndex(e,t,n,o,r,i){for(var a,s=0,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new EnterNode(e,i[s]);for(;s<l;++s)(a=t[s])&&(r[s]=a)}function bindKey(e,t,n,o,r,i,a){var s,l,c,d=new Map,u=t.length,p=i.length,f=new Array(u);for(s=0;s<u;++s)(l=t[s])&&(f[s]=c=a.call(l,l.__data__,s,t)+"",d.has(c)?r[s]=l:d.set(c,l));for(s=0;s<p;++s)c=a.call(e,i[s],s,i)+"",(l=d.get(c))?(o[s]=l,l.__data__=i[s],d.delete(c)):n[s]=new EnterNode(e,i[s]);for(s=0;s<u;++s)(l=t[s])&&d.get(f[s])===l&&(r[s]=l)}function datum(e){return e.__data__}function selection_data(e,t){if(!arguments.length)return Array.from(this,datum);var n=t?bindKey:bindIndex,o=this._parents,r=this._groups;"function"!=typeof e&&(e=constant$3(e));for(var i=r.length,a=new Array(i),s=new Array(i),l=new Array(i),c=0;c<i;++c){var d=o[c],u=r[c],p=u.length,f=arraylike(e.call(d,d&&d.__data__,c,o)),m=f.length,h=s[c]=new Array(m),g=a[c]=new Array(m),_=l[c]=new Array(p);n(d,u,h,g,_,f,t);for(var y,b,v=0,w=0;v<m;++v)if(y=h[v]){for(v>=w&&(w=v+1);!(b=g[w])&&++w<m;);y._next=b||null}}return(a=new Selection$1(a,o))._enter=s,a._exit=l,a}function arraylike(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function selection_exit(){return new Selection$1(this._exit||this._groups.map(sparse),this._parents)}function selection_join(e,t,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof e?(o=e(o))&&(o=o.selection()):o=o.append(e+""),null!=t&&(r=t(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r}function selection_merge(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),l=0;l<a;++l)for(var c,d=n[l],u=o[l],p=d.length,f=s[l]=new Array(p),m=0;m<p;++m)(c=d[m]||u[m])&&(f[m]=c);for(;l<r;++l)s[l]=n[l];return new Selection$1(s,this._parents)}function selection_order(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o,r=e[t],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this}function selection_sort(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=ascending);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],l=s.length,c=r[i]=new Array(l),d=0;d<l;++d)(a=s[d])&&(c[d]=a);c.sort(t)}return new Selection$1(r,this._parents).order()}function ascending(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function selection_call(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function selection_nodes(){return Array.from(this)}function selection_node(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length;r<i;++r){var a=o[r];if(a)return a}return null}function selection_size(){let e=0;for(const t of this)++e;return e}function selection_empty(){return!this.node()}function selection_each(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r,i=t[n],a=0,s=i.length;a<s;++a)(r=i[a])&&e.call(r,r.__data__,a,i);return this}function attrRemove$1(e){return function(){this.removeAttribute(e)}}function attrRemoveNS$1(e){return function(){this.removeAttributeNS(e.space,e.local)}}function attrConstant$1(e,t){return function(){this.setAttribute(e,t)}}function attrConstantNS$1(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function attrFunction$1(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function attrFunctionNS$1(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function selection_attr(e,t){var n=namespace(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==t?n.local?attrRemoveNS$1:attrRemove$1:"function"==typeof t?n.local?attrFunctionNS$1:attrFunction$1:n.local?attrConstantNS$1:attrConstant$1)(n,t))}function defaultView(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function styleRemove$1(e){return function(){this.style.removeProperty(e)}}function styleConstant$1(e,t,n){return function(){this.style.setProperty(e,t,n)}}function styleFunction$1(e,t,n){return function(){var o=t.apply(this,arguments);null==o?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function selection_style(e,t,n){return arguments.length>1?this.each((null==t?styleRemove$1:"function"==typeof t?styleFunction$1:styleConstant$1)(e,t,null==n?"":n)):styleValue(this.node(),e)}function styleValue(e,t){return e.style.getPropertyValue(t)||defaultView(e).getComputedStyle(e,null).getPropertyValue(t)}function propertyRemove(e){return function(){delete this[e]}}function propertyConstant(e,t){return function(){this[e]=t}}function propertyFunction(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function selection_property(e,t){return arguments.length>1?this.each((null==t?propertyRemove:"function"==typeof t?propertyFunction:propertyConstant)(e,t)):this.node()[e]}function classArray(e){return e.trim().split(/^|\s+/)}function classList(e){return e.classList||new ClassList(e)}function ClassList(e){this._node=e,this._names=classArray(e.getAttribute("class")||"")}function classedAdd(e,t){for(var n=classList(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function classedRemove(e,t){for(var n=classList(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function classedTrue(e){return function(){classedAdd(this,e)}}function classedFalse(e){return function(){classedRemove(this,e)}}function classedFunction(e,t){return function(){(t.apply(this,arguments)?classedAdd:classedRemove)(this,e)}}function selection_classed(e,t){var n=classArray(e+"");if(arguments.length<2){for(var o=classList(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof t?classedFunction:t?classedTrue:classedFalse)(n,t))}function textRemove(){this.textContent=""}function textConstant$1(e){return function(){this.textContent=e}}function textFunction$1(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function selection_text(e){return arguments.length?this.each(null==e?textRemove:("function"==typeof e?textFunction$1:textConstant$1)(e)):this.node().textContent}function htmlRemove(){this.innerHTML=""}function htmlConstant(e){return function(){this.innerHTML=e}}function htmlFunction(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function selection_html(e){return arguments.length?this.each(null==e?htmlRemove:("function"==typeof e?htmlFunction:htmlConstant)(e)):this.node().innerHTML}function raise(){this.nextSibling&&this.parentNode.appendChild(this)}function selection_raise(){return this.each(raise)}function lower(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower(){return this.each(lower)}function selection_append(e){var t="function"==typeof e?e:creator(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))}function constantNull(){return null}function selection_insert(e,t){var n="function"==typeof e?e:creator(e),o=null==t?constantNull:"function"==typeof t?t:selector$h(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))}function remove(){var e=this.parentNode;e&&e.removeChild(this)}function selection_remove(){return this.each(remove)}function selection_cloneShallow(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function selection_cloneDeep(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function selection_clone(e){return this.select(e?selection_cloneDeep:selection_cloneShallow)}function selection_datum(e){return arguments.length?this.property("__data__",e):this.node().__data__}function contextListener(e){return function(t){e.call(this,t,this.__data__)}}function parseTypenames(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}function onRemove(e){return function(){var t=this.__on;if(t){for(var n,o=0,r=-1,i=t.length;o<i;++o)n=t[o],e.type&&n.type!==e.type||n.name!==e.name?t[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?t.length=r:delete this.__on}}}function onAdd(e,t,n){return function(){var o,r=this.__on,i=contextListener(t);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===e.type&&o.name===e.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=t);this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function selection_on(e,t,n){var o,r,i=parseTypenames(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?onAdd:onRemove,o=0;o<a;++o)this.each(s(i[o],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,d=s.length;c<d;++c)for(o=0,l=s[c];o<a;++o)if((r=i[o]).type===l.type&&r.name===l.name)return l.value}function dispatchEvent(e,t,n){var o=defaultView(e),r=o.CustomEvent;"function"==typeof r?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function dispatchConstant(e,t){return function(){return dispatchEvent(this,e,t)}}function dispatchFunction(e,t){return function(){return dispatchEvent(this,e,t.apply(this,arguments))}}function selection_dispatch(e,t){return this.each(("function"==typeof t?dispatchFunction:dispatchConstant)(e,t))}function*selection_iterator(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o,r=e[t],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}EnterNode.prototype={constructor:EnterNode,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}},ClassList.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var root$2=[null];function Selection$1(e,t){this._groups=e,this._parents=t}function selection(){return new Selection$1([[document.documentElement]],root$2)}function selection_selection(){return this}function select(e){return"string"==typeof e?new Selection$1([[document.querySelector(e)]],[document.documentElement]):new Selection$1([[e]],root$2)}Selection$1.prototype=selection.prototype={constructor:Selection$1,select:selection_select,selectAll:selection_selectAll,selectChild:selection_selectChild,selectChildren:selection_selectChildren,filter:selection_filter,data:selection_data,enter:selection_enter,exit:selection_exit,join:selection_join,merge:selection_merge,selection:selection_selection,order:selection_order,sort:selection_sort,call:selection_call,nodes:selection_nodes,node:selection_node,size:selection_size,empty:selection_empty,each:selection_each,attr:selection_attr,style:selection_style,property:selection_property,classed:selection_classed,text:selection_text,html:selection_html,raise:selection_raise,lower:selection_lower,append:selection_append,insert:selection_insert,remove:selection_remove,clone:selection_clone,datum:selection_datum,on:selection_on,dispatch:selection_dispatch,[Symbol.iterator]:selection_iterator};var nextId=0;function Local(){this._="@"+(++nextId).toString(36)}function sourceEvent(e){let t;for(;t=e.sourceEvent;)e=t;return e}function pointer(e,t){if(e=sourceEvent(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}Local.prototype={constructor:Local,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};const nonpassive={passive:!1},nonpassivecapture={capture:!0,passive:!1};function nopropagation$1(e){e.stopImmediatePropagation()}function noevent$1(e){e.preventDefault(),e.stopImmediatePropagation()}function dragDisable(e){var t=e.document.documentElement,n=select(e).on("dragstart.drag",noevent$1,nonpassivecapture);"onselectstart"in t?n.on("selectstart.drag",noevent$1,nonpassivecapture):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function yesdrag(e,t){var n=e.document.documentElement,o=select(e).on("dragstart.drag",null);t&&(o.on("click.drag",noevent$1,nonpassivecapture),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var constant$2=e=>()=>e;function DragEvent(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}function defaultFilter$1(e){return!e.ctrlKey&&!e.button}function defaultContainer(){return this.parentNode}function defaultSubject(e,t){return null==t?{x:e.x,y:e.y}:t}function defaultTouchable$1(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag(){var e,t,n,o,r=defaultFilter$1,i=defaultContainer,a=defaultSubject,s=defaultTouchable$1,l={},c=dispatch("start","drag","end"),d=0,u=0;function p(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",g).on("touchmove.drag",_,nonpassive).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var l=b(this,i.call(this,a,s),a,s,"mouse");l&&(select(a.view).on("mousemove.drag",m,nonpassivecapture).on("mouseup.drag",h,nonpassivecapture),dragDisable(a.view),nopropagation$1(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function m(o){if(noevent$1(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>u}l.mouse("drag",o)}function h(e){select(e.view).on("mousemove.drag mouseup.drag",null),yesdrag(e.view,n),noevent$1(e),l.mouse("end",e)}function g(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(o=b(this,s,e,t,a[n].identifier,a[n]))&&(nopropagation$1(e),o("start",e,a[n]))}}function _(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&(noevent$1(e),n("drag",e,o[t]))}function y(e){var t,n,r=e.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout((function(){o=null}),500),t=0;t<i;++t)(n=l[r[t].identifier])&&(nopropagation$1(e),n("end",e,r[t]))}function b(e,t,n,o,r,i){var s,u,f,m=c.copy(),h=pointer(i||n,t);if(null!=(f=a.call(e,new DragEvent("beforestart",{sourceEvent:n,target:p,identifier:r,active:d,x:h[0],y:h[1],dx:0,dy:0,dispatch:m}),o)))return s=f.x-h[0]||0,u=f.y-h[1]||0,function n(i,a,c){var g,_=h;switch(i){case"start":l[r]=n,g=d++;break;case"end":delete l[r],--d;case"drag":h=pointer(c||a,t),g=d}m.call(i,e,new DragEvent(i,{sourceEvent:a,subject:f,target:p,identifier:r,active:g,x:h[0]+s,y:h[1]+u,dx:h[0]-_[0],dy:h[1]-_[1],dispatch:m}),o)}}return p.filter=function(e){return arguments.length?(r="function"==typeof e?e:constant$2(!!e),p):r},p.container=function(e){return arguments.length?(i="function"==typeof e?e:constant$2(e),p):i},p.subject=function(e){return arguments.length?(a="function"==typeof e?e:constant$2(e),p):a},p.touchable=function(e){return arguments.length?(s="function"==typeof e?e:constant$2(!!e),p):s},p.on=function(){var e=c.on.apply(c,arguments);return e===c?p:e},p.clickDistance=function(e){return arguments.length?(u=(e=+e)*e,p):Math.sqrt(u)},p}function define(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function extend(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function Color(){}DragEvent.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var darker=.7,brighter=1/darker,reI="\\s*([+-]?\\d+)\\s*",reN="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",reP="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",reHex=/^#([0-9a-f]{3,8})$/,reRgbInteger=new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),reRgbPercent=new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),reRgbaInteger=new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),reRgbaPercent=new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),reHslPercent=new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),reHslaPercent=new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`),named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=reHex.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?rgbn(t):3===n?new Rgb(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?rgba(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?rgba(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=reRgbInteger.exec(e))?new Rgb(t[1],t[2],t[3],1):(t=reRgbPercent.exec(e))?new Rgb(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=reRgbaInteger.exec(e))?rgba(t[1],t[2],t[3],t[4]):(t=reRgbaPercent.exec(e))?rgba(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=reHslPercent.exec(e))?hsla(t[1],t[2]/100,t[3]/100,1):(t=reHslaPercent.exec(e))?hsla(t[1],t[2]/100,t[3]/100,t[4]):named.hasOwnProperty(e)?rgbn(named[e]):"transparent"===e?new Rgb(NaN,NaN,NaN,0):null}function rgbn(e){return new Rgb(e>>16&255,e>>8&255,255&e,1)}function rgba(e,t,n,o){return o<=0&&(e=t=n=NaN),new Rgb(e,t,n,o)}function rgbConvert(e){return e instanceof Color||(e=color(e)),e?new Rgb((e=e.rgb()).r,e.g,e.b,e.opacity):new Rgb}function rgb(e,t,n,o){return 1===arguments.length?rgbConvert(e):new Rgb(e,t,n,null==o?1:o)}function Rgb(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex(255*(isNaN(this.opacity)?1:this.opacity))}`}function rgb_formatRgb(){const e=clampa(this.opacity);return`${1===e?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${1===e?")":`, ${e})`}`}function clampa(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function clampi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function hex(e){return((e=clampi(e))<16?"0":"")+e.toString(16)}function hsla(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Hsl(e,t,n,o)}function hslConvert(e){if(e instanceof Hsl)return new Hsl(e.h,e.s,e.l,e.opacity);if(e instanceof Color||(e=color(e)),!e)return new Hsl;if(e instanceof Hsl)return e;var t=(e=e.rgb()).r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),a=NaN,s=i-r,l=(i+r)/2;return s?(a=t===i?(n-o)/s+6*(n<o):n===i?(o-t)/s+2:(t-n)/s+4,s/=l<.5?i+r:2-i-r,a*=60):s=l>0&&l<1?0:a,new Hsl(a,s,l,e.opacity)}function hsl(e,t,n,o){return 1===arguments.length?hslConvert(e):new Hsl(e,t,n,null==o?1:o)}function Hsl(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}function clamph(e){return(e=(e||0)%360)<0?e+360:e}function clampt(e){return Math.max(0,Math.min(1,e||0))}function hsl2rgb(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}define(Color,color,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb}),define(Rgb,rgb,extend(Color,{brighter(e){return e=null==e?brighter:Math.pow(brighter,e),new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?darker:Math.pow(darker,e),new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb})),define(Hsl,hsl,extend(Color,{brighter(e){return e=null==e?brighter:Math.pow(brighter,e),new Hsl(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?darker:Math.pow(darker,e),new Hsl(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new Rgb(hsl2rgb(e>=240?e-240:e+120,r,o),hsl2rgb(e,r,o),hsl2rgb(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=clampa(this.opacity);return`${1===e?"hsl(":"hsla("}${clamph(this.h)}, ${100*clampt(this.s)}%, ${100*clampt(this.l)}%${1===e?")":`, ${e})`}`}}));const radians=Math.PI/180,degrees$1=180/Math.PI,K=18,Xn=.96422,Yn=1,Zn=.82521,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1;function labConvert(e){if(e instanceof Lab)return new Lab(e.l,e.a,e.b,e.opacity);if(e instanceof Hcl)return hcl2lab(e);e instanceof Rgb||(e=rgbConvert(e));var t,n,o=rgb2lrgb(e.r),r=rgb2lrgb(e.g),i=rgb2lrgb(e.b),a=xyz2lab((.2225045*o+.7168786*r+.0606169*i)/Yn);return o===r&&r===i?t=n=a:(t=xyz2lab((.4360747*o+.3850649*r+.1430804*i)/Xn),n=xyz2lab((.0139322*o+.0971045*r+.7141733*i)/Zn)),new Lab(116*a-16,500*(t-a),200*(a-n),e.opacity)}function lab(e,t,n,o){return 1===arguments.length?labConvert(e):new Lab(e,t,n,null==o?1:o)}function Lab(e,t,n,o){this.l=+e,this.a=+t,this.b=+n,this.opacity=+o}function xyz2lab(e){return e>t3?Math.pow(e,1/3):e/t2+t0}function lab2xyz(e){return e>t1?e*e*e:t2*(e-t0)}function lrgb2rgb(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function rgb2lrgb(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function hclConvert(e){if(e instanceof Hcl)return new Hcl(e.h,e.c,e.l,e.opacity);if(e instanceof Lab||(e=labConvert(e)),0===e.a&&0===e.b)return new Hcl(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*degrees$1;return new Hcl(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function hcl(e,t,n,o){return 1===arguments.length?hclConvert(e):new Hcl(e,t,n,null==o?1:o)}function Hcl(e,t,n,o){this.h=+e,this.c=+t,this.l=+n,this.opacity=+o}function hcl2lab(e){if(isNaN(e.h))return new Lab(e.l,0,0,e.opacity);var t=e.h*radians;return new Lab(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}define(Lab,lab,extend(Color,{brighter(e){return new Lab(this.l+K*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new Lab(this.l-K*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new Rgb(lrgb2rgb(3.1338561*(t=Xn*lab2xyz(t))-1.6168667*(e=Yn*lab2xyz(e))-.4906146*(n=Zn*lab2xyz(n))),lrgb2rgb(-.9787684*t+1.9161415*e+.033454*n),lrgb2rgb(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),define(Hcl,hcl,extend(Color,{brighter(e){return new Hcl(this.h,this.c,this.l+K*(null==e?1:e),this.opacity)},darker(e){return new Hcl(this.h,this.c,this.l-K*(null==e?1:e),this.opacity)},rgb(){return hcl2lab(this).rgb()}}));var A=-.14861,B=1.78277,C=-.29227,D=-.90649,E=1.97294,ED=E*D,EB=E*B,BC_DA=B*C-D*A;function cubehelixConvert(e){if(e instanceof Cubehelix)return new Cubehelix(e.h,e.s,e.l,e.opacity);e instanceof Rgb||(e=rgbConvert(e));var t=e.r/255,n=e.g/255,o=e.b/255,r=(BC_DA*o+ED*t-EB*n)/(BC_DA+ED-EB),i=o-r,a=(E*(n-r)-C*i)/D,s=Math.sqrt(a*a+i*i)/(E*r*(1-r)),l=s?Math.atan2(a,i)*degrees$1-120:NaN;return new Cubehelix(l<0?l+360:l,s,r,e.opacity)}function cubehelix$1(e,t,n,o){return 1===arguments.length?cubehelixConvert(e):new Cubehelix(e,t,n,null==o?1:o)}function Cubehelix(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}define(Cubehelix,cubehelix$1,extend(Color,{brighter(e){return e=null==e?brighter:Math.pow(brighter,e),new Cubehelix(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?darker:Math.pow(darker,e),new Cubehelix(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*radians,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),o=Math.cos(e),r=Math.sin(e);return new Rgb(255*(t+n*(A*o+B*r)),255*(t+n*(C*o+D*r)),255*(t+n*(E*o)),this.opacity)}}));var constant$1=e=>()=>e;function linear(e,t){return function(n){return e+n*t}}function exponential(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function hue(e,t){var n=t-e;return n?linear(e,n>180||n<-180?n-360*Math.round(n/360):n):constant$1(isNaN(e)?t:e)}function gamma(e){return 1==(e=+e)?nogamma:function(t,n){return n-t?exponential(t,n,e):constant$1(isNaN(t)?n:t)}}function nogamma(e,t){var n=t-e;return n?linear(e,n):constant$1(isNaN(e)?t:e)}var interpolateRgb=function e(t){var n=gamma(t);function o(e,t){var o=n((e=rgb(e)).r,(t=rgb(t)).r),r=n(e.g,t.g),i=n(e.b,t.b),a=nogamma(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=r(t),e.b=i(t),e.opacity=a(t),e+""}}return o.gamma=e,o}(1);function interpolateNumber(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,reB=new RegExp(reA.source,"g");function zero(e){return function(){return e}}function one(e){return function(t){return e(t)+""}}function interpolateString(e,t){var n,o,r,i=reA.lastIndex=reB.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=reA.exec(e))&&(o=reB.exec(t));)(r=o.index)>i&&(r=t.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,l.push({i:a,x:interpolateNumber(n,o)})),i=reB.lastIndex;return i<t.length&&(r=t.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?one(l[0].x):zero(t):(t=l.length,function(e){for(var n,o=0;o<t;++o)s[(n=l[o]).i]=n.x(e);return s.join("")})}var degrees=180/Math.PI,identity$1={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},svgNode;function decompose(e,t,n,o,r,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,l/=s),e*o<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*degrees,skewX:Math.atan(l)*degrees,scaleX:a,scaleY:s}}function parseCss(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?identity$1:decompose(t.a,t.b,t.c,t.d,t.e,t.f)}function parseSvg(e){return null==e?identity$1:(svgNode||(svgNode=document.createElementNS("http://www.w3.org/2000/svg","g")),svgNode.setAttribute("transform",e),(e=svgNode.transform.baseVal.consolidate())?decompose((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):identity$1)}function interpolateTransform(e,t,n,o){function r(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],l=[];return i=e(i),a=e(a),function(e,o,r,i,a,s){if(e!==r||o!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:interpolateNumber(e,r)},{i:l-2,x:interpolateNumber(o,i)})}else(r||i)&&a.push("translate("+r+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,l),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:interpolateNumber(e,t)})):t&&n.push(r(n)+"rotate("+t+o)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:interpolateNumber(e,t)}):t&&n.push(r(n)+"skewX("+t+o)}(i.skewX,a.skewX,s,l),function(e,t,n,o,i,a){if(e!==n||t!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:interpolateNumber(e,n)},{i:s-2,x:interpolateNumber(t,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,o=l.length;++n<o;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var interpolateTransformCss=interpolateTransform(parseCss,"px, ","px)","deg)"),interpolateTransformSvg=interpolateTransform(parseSvg,", ",")",")"),epsilon2=1e-12;function cosh(e){return((e=Math.exp(e))+1/e)/2}function sinh(e){return((e=Math.exp(e))-1/e)/2}function tanh(e){return((e=Math.exp(2*e))-1)/(e+1)}var interpolateZoom=function e(t,n,o){function r(e,r){var i,a,s=e[0],l=e[1],c=e[2],d=r[0],u=r[1],p=r[2],f=d-s,m=u-l,h=f*f+m*m;if(h<epsilon2)a=Math.log(p/c)/t,i=function(e){return[s+e*f,l+e*m,c*Math.exp(t*e*a)]};else{var g=Math.sqrt(h),_=(p*p-c*c+o*h)/(2*c*n*g),y=(p*p-c*c-o*h)/(2*p*n*g),b=Math.log(Math.sqrt(_*_+1)-_),v=Math.log(Math.sqrt(y*y+1)-y);a=(v-b)/t,i=function(e){var o=e*a,r=cosh(b),i=c/(n*g)*(r*tanh(t*o+b)-sinh(b));return[s+i*f,l+i*m,c*r/cosh(t*o+b)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return r.rho=function(t){var n=Math.max(.001,+t),o=n*n;return e(n,o,o*o)},r}(Math.SQRT2,2,4);function cubehelix(e){return function t(n){function o(t,o){var r=e((t=cubehelix$1(t)).h,(o=cubehelix$1(o)).h),i=nogamma(t.s,o.s),a=nogamma(t.l,o.l),s=nogamma(t.opacity,o.opacity);return function(e){return t.h=r(e),t.s=i(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,o.gamma=t,o}(1)}cubehelix(hue),cubehelix(nogamma);var frame=0,timeout$1=0,interval=0,pokeDelay=1e3,taskHead,taskTail,clockLast=0,clockNow=0,clockSkew=0,clock="object"==typeof performance&&performance.now?performance:Date,setFrame="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function now(){return clockNow||(setFrame(clearNow),clockNow=clock.now()+clockSkew)}function clearNow(){clockNow=0}function Timer(){this._call=this._time=this._next=null}function timer(e,t,n){var o=new Timer;return o.restart(e,t,n),o}function timerFlush(){now(),++frame;for(var e,t=taskHead;t;)(e=clockNow-t._time)>=0&&t._call.call(void 0,e),t=t._next;--frame}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame=timeout$1=0;try{timerFlush()}finally{frame=0,nap(),clockNow=0}}function poke(){var e=clock.now(),t=e-clockLast;t>pokeDelay&&(clockSkew-=t,clockLast=e)}function nap(){for(var e,t,n=taskHead,o=1/0;n;)n._call?(o>n._time&&(o=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:taskHead=t);taskTail=e,sleep(o)}function sleep(e){frame||(timeout$1&&(timeout$1=clearTimeout(timeout$1)),e-clockNow>24?(e<1/0&&(timeout$1=setTimeout(wake,e-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame=1,setFrame(wake)))}function timeout(e,t,n){var o=new Timer;return t=null==t?0:+t,o.restart((n=>{o.stop(),e(n+t)}),t,n),o}Timer.prototype=timer.prototype={constructor:Timer,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?now():+n)+(null==t?0:+t),this._next||taskTail===this||(taskTail?taskTail._next=this:taskHead=this,taskTail=this),this._call=e,this._time=n,sleep()},stop:function(){this._call&&(this._call=null,this._time=1/0,sleep())}};var emptyOn=dispatch("start","end","cancel","interrupt"),emptyTween=[],CREATED=0,SCHEDULED=1,STARTING=2,STARTED=3,RUNNING=4,ENDING=5,ENDED=6;function schedule(e,t,n,o,r,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};create(e,n,{name:t,index:o,group:r,on:emptyOn,tween:emptyTween,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:CREATED})}function init(e,t){var n=get$1(e,t);if(n.state>CREATED)throw new Error("too late; already scheduled");return n}function set(e,t){var n=get$1(e,t);if(n.state>STARTED)throw new Error("too late; already running");return n}function get$1(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function create(e,t,n){var o,r=e.__transition;function i(l){var c,d,u,p;if(n.state!==SCHEDULED)return s();for(c in r)if((p=r[c]).name===n.name){if(p.state===STARTED)return timeout(i);p.state===RUNNING?(p.state=ENDED,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[c]):+c<t&&(p.state=ENDED,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[c])}if(timeout((function(){n.state===STARTED&&(n.state=RUNNING,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=STARTING,n.on.call("start",e,e.__data__,n.index,n.group),n.state===STARTING){for(n.state=STARTED,o=new Array(u=n.tween.length),c=0,d=-1;c<u;++c)(p=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(o[++d]=p);o.length=d+1}}function a(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(s),n.state=ENDING,1),i=-1,a=o.length;++i<a;)o[i].call(e,r);n.state===ENDING&&(n.on.call("end",e,e.__data__,n.index,n.group),s())}function s(){for(var o in n.state=ENDED,n.timer.stop(),delete r[t],r)return;delete e.__transition}r[t]=n,n.timer=timer((function(e){n.state=SCHEDULED,n.timer.restart(i,n.delay,n.time),n.delay<=e&&i(e-n.delay)}),0,n.time)}function interrupt(e,t){var n,o,r,i=e.__transition,a=!0;if(i){for(r in t=null==t?null:t+"",i)(n=i[r]).name===t?(o=n.state>STARTING&&n.state<ENDING,n.state=ENDED,n.timer.stop(),n.on.call(o?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete e.__transition}}function selection_interrupt(e){return this.each((function(){interrupt(this,e)}))}function tweenRemove(e,t){var n,o;return function(){var r=set(this,e),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===t){(o=o.slice()).splice(a,1);break}r.tween=o}}function tweenFunction(e,t,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=set(this,e),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=s;break}l===c&&r.push(s)}i.tween=r}}function transition_tween(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o,r=get$1(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((null==t?tweenRemove:tweenFunction)(n,e,t))}function tweenValue(e,t,n){var o=e._id;return e.each((function(){var e=set(this,o);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return get$1(e,o).value[t]}}function interpolate(e,t){var n;return("number"==typeof t?interpolateNumber:t instanceof color?interpolateRgb:(n=color(t))?(t=n,interpolateRgb):interpolateString)(e,t)}function attrRemove(e){return function(){this.removeAttribute(e)}}function attrRemoveNS(e){return function(){this.removeAttributeNS(e.space,e.local)}}function attrConstant(e,t,n){var o,r,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===o?r:r=t(o=a,n)}}function attrConstantNS(e,t,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===o?r:r=t(o=a,n)}}function attrFunction(e,t,n){var o,r,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===o&&s===r?i:(r=s,i=t(o=a,l));this.removeAttribute(e)}}function attrFunctionNS(e,t,n){var o,r,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===o&&s===r?i:(r=s,i=t(o=a,l));this.removeAttributeNS(e.space,e.local)}}function transition_attr(e,t){var n=namespace(e),o="transform"===n?interpolateTransformSvg:interpolate;return this.attrTween(e,"function"==typeof t?(n.local?attrFunctionNS:attrFunction)(n,o,tweenValue(this,"attr."+e,t)):null==t?(n.local?attrRemoveNS:attrRemove)(n):(n.local?attrConstantNS:attrConstant)(n,o,t))}function attrInterpolate(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function attrInterpolateNS(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function attrTweenNS(e,t){var n,o;function r(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&attrInterpolateNS(e,r)),n}return r._value=t,r}function attrTween(e,t){var n,o;function r(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&attrInterpolate(e,r)),n}return r._value=t,r}function transition_attrTween(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var o=namespace(e);return this.tween(n,(o.local?attrTweenNS:attrTween)(o,t))}function delayFunction(e,t){return function(){init(this,e).delay=+t.apply(this,arguments)}}function delayConstant(e,t){return t=+t,function(){init(this,e).delay=t}}function transition_delay(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?delayFunction:delayConstant)(t,e)):get$1(this.node(),t).delay}function durationFunction(e,t){return function(){set(this,e).duration=+t.apply(this,arguments)}}function durationConstant(e,t){return t=+t,function(){set(this,e).duration=t}}function transition_duration(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?durationFunction:durationConstant)(t,e)):get$1(this.node(),t).duration}function easeConstant(e,t){if("function"!=typeof t)throw new Error;return function(){set(this,e).ease=t}}function transition_ease(e){var t=this._id;return arguments.length?this.each(easeConstant(t,e)):get$1(this.node(),t).ease}function easeVarying(e,t){return function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw new Error;set(this,e).ease=n}}function transition_easeVarying(e){if("function"!=typeof e)throw new Error;return this.each(easeVarying(this._id,e))}function transition_filter(e){"function"!=typeof e&&(e=matcher(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a=t[r],s=a.length,l=o[r]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new Transition(o,this._parents,this._name,this._id)}function transition_merge(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,i=Math.min(o,r),a=new Array(o),s=0;s<i;++s)for(var l,c=t[s],d=n[s],u=c.length,p=a[s]=new Array(u),f=0;f<u;++f)(l=c[f]||d[f])&&(p[f]=l);for(;s<o;++s)a[s]=t[s];return new Transition(a,this._parents,this._name,this._id)}function start(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}function onFunction(e,t,n){var o,r,i=start(t)?init:set;return function(){var a=i(this,e),s=a.on;s!==o&&(r=(o=s).copy()).on(t,n),a.on=r}}function transition_on(e,t){var n=this._id;return arguments.length<2?get$1(this.node(),n).on.on(e):this.each(onFunction(n,e,t))}function removeFunction(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function transition_remove(){return this.on("end.remove",removeFunction(this._id))}function transition_select(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=selector$h(e));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,l,c=o[a],d=c.length,u=i[a]=new Array(d),p=0;p<d;++p)(s=c[p])&&(l=e.call(s,s.__data__,p,c))&&("__data__"in s&&(l.__data__=s.__data__),u[p]=l,schedule(u[p],t,n,p,u,get$1(s,n)));return new Transition(i,this._parents,t,n)}function transition_selectAll(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=selectorAll(e));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var l,c=o[s],d=c.length,u=0;u<d;++u)if(l=c[u]){for(var p,f=e.call(l,l.__data__,u,c),m=get$1(l,n),h=0,g=f.length;h<g;++h)(p=f[h])&&schedule(p,t,n,h,f,m);i.push(f),a.push(l)}return new Transition(i,a,t,n)}var Selection=selection.prototype.constructor;function transition_selection(){return new Selection(this._groups,this._parents)}function styleNull(e,t){var n,o,r;return function(){var i=styleValue(this,e),a=(this.style.removeProperty(e),styleValue(this,e));return i===a?null:i===n&&a===o?r:r=t(n=i,o=a)}}function styleRemove(e){return function(){this.style.removeProperty(e)}}function styleConstant(e,t,n){var o,r,i=n+"";return function(){var a=styleValue(this,e);return a===i?null:a===o?r:r=t(o=a,n)}}function styleFunction(e,t,n){var o,r,i;return function(){var a=styleValue(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=styleValue(this,e)),a===l?null:a===o&&l===r?i:(r=l,i=t(o=a,s))}}function styleMaybeRemove(e,t){var n,o,r,i,a="style."+t,s="end."+a;return function(){var l=set(this,e),c=l.on,d=null==l.value[a]?i||(i=styleRemove(t)):void 0;c===n&&r===d||(o=(n=c).copy()).on(s,r=d),l.on=o}}function transition_style(e,t,n){var o="transform"==(e+="")?interpolateTransformCss:interpolate;return null==t?this.styleTween(e,styleNull(e,o)).on("end.style."+e,styleRemove(e)):"function"==typeof t?this.styleTween(e,styleFunction(e,o,tweenValue(this,"style."+e,t))).each(styleMaybeRemove(this._id,e)):this.styleTween(e,styleConstant(e,o,t),n).on("end.style."+e,null)}function styleInterpolate(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function styleTween(e,t,n){var o,r;function i(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&styleInterpolate(e,i,n)),o}return i._value=t,i}function transition_styleTween(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==t)return this.tween(o,null);if("function"!=typeof t)throw new Error;return this.tween(o,styleTween(e,t,null==n?"":n))}function textConstant(e){return function(){this.textContent=e}}function textFunction(e){return function(){var t=e(this);this.textContent=null==t?"":t}}function transition_text(e){return this.tween("text","function"==typeof e?textFunction(tweenValue(this,"text",e)):textConstant(null==e?"":e+""))}function textInterpolate(e){return function(t){this.textContent=e.call(this,t)}}function textTween(e){var t,n;function o(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&textInterpolate(o)),t}return o._value=e,o}function transition_textTween(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,textTween(e))}function transition_transition(){for(var e=this._name,t=this._id,n=newId(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],l=s.length,c=0;c<l;++c)if(a=s[c]){var d=get$1(a,t);schedule(a,e,n,c,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Transition(o,this._parents,e,n)}function transition_end(){var e,t,n=this,o=n._id,r=n.size();return new Promise((function(i,a){var s={value:a},l={value:function(){0==--r&&i()}};n.each((function(){var n=set(this,o),r=n.on;r!==e&&((t=(e=r).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t})),0===r&&i()}))}var id=0;function Transition(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function newId(){return++id}var selection_prototype=selection.prototype;function cubicInOut(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}Transition.prototype={constructor:Transition,select:transition_select,selectAll:transition_selectAll,selectChild:selection_prototype.selectChild,selectChildren:selection_prototype.selectChildren,filter:transition_filter,merge:transition_merge,selection:transition_selection,transition:transition_transition,call:selection_prototype.call,nodes:selection_prototype.nodes,node:selection_prototype.node,size:selection_prototype.size,empty:selection_prototype.empty,each:selection_prototype.each,on:transition_on,attr:transition_attr,attrTween:transition_attrTween,style:transition_style,styleTween:transition_styleTween,text:transition_text,textTween:transition_textTween,remove:transition_remove,tween:transition_tween,delay:transition_delay,duration:transition_duration,ease:transition_ease,easeVarying:transition_easeVarying,end:transition_end,[Symbol.iterator]:selection_prototype[Symbol.iterator]};var exponent=3;function tpmt(e){return 1.0009775171065494*(Math.pow(2,-10*e)-.0009765625)}!function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n}(exponent),function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(exponent),function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(exponent);var overshoot=1.70158;!function e(t){function n(e){return(e=+e)*e*(t*(e-1)+e)}return t=+t,n.overshoot=e,n}(overshoot),function e(t){function n(e){return--e*e*((e+1)*t+e)+1}return t=+t,n.overshoot=e,n}(overshoot),function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(overshoot);var tau=2*Math.PI,amplitude=1,period=.3;!function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=tau);function r(e){return t*tpmt(- --e)*Math.sin((o-e)/n)}return r.amplitude=function(t){return e(t,n*tau)},r.period=function(n){return e(t,n)},r}(amplitude,period),function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=tau);function r(e){return 1-t*tpmt(e=+e)*Math.sin((e+o)/n)}return r.amplitude=function(t){return e(t,n*tau)},r.period=function(n){return e(t,n)},r}(amplitude,period),function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=tau);function r(e){return((e=2*e-1)<0?t*tpmt(-e)*Math.sin((o-e)/n):2-t*tpmt(e)*Math.sin((o+e)/n))/2}return r.amplitude=function(t){return e(t,n*tau)},r.period=function(n){return e(t,n)},r}(amplitude,period);var defaultTiming={time:null,delay:0,duration:250,ease:cubicInOut};function inherit(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function selection_transition(e){var t,n;e instanceof Transition?(t=e._id,e=e._name):(t=newId(),(n=defaultTiming).time=now(),e=null==e?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],l=s.length,c=0;c<l;++c)(a=s[c])&&schedule(a,e,t,c,s,n||inherit(a,t));return new Transition(o,this._parents,e,t)}selection.prototype.interrupt=selection_interrupt,selection.prototype.transition=selection_transition;var constant=e=>()=>e;function ZoomEvent(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function Transform(e,t,n){this.k=e,this.x=t,this.y=n}Transform.prototype={constructor:Transform,scale:function(e){return 1===e?this:new Transform(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Transform(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var identity=new Transform(1,0,0);function nopropagation(e){e.stopImmediatePropagation()}function noevent(e){e.preventDefault(),e.stopImmediatePropagation()}function defaultFilter(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function defaultExtent(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function defaultTransform(){return this.__zoom||identity}function defaultWheelDelta(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function defaultTouchable(){return navigator.maxTouchPoints||"ontouchstart"in this}function defaultConstrain(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function zoom(){var e,t,n,o=defaultFilter,r=defaultExtent,i=defaultConstrain,a=defaultWheelDelta,s=defaultTouchable,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,u=interpolateZoom,p=dispatch("start","zoom","end"),f=500,m=0,h=10;function g(e){e.property("__zoom",defaultTransform).on("wheel.zoom",x,{passive:!1}).on("mousedown.zoom",$).on("dblclick.zoom",N).filter(s).on("touchstart.zoom",E).on("touchmove.zoom",k).on("touchend.zoom touchcancel.zoom",C).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new Transform(t,e.x,e.y)}function y(e,t,n){var o=t[0]-n[0]*e.k,r=t[1]-n[1]*e.k;return o===e.x&&r===e.y?e:new Transform(e.k,o,r)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function v(e,t,n,o){e.on("start.zoom",(function(){w(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){w(this,arguments).event(o).end()})).tween("zoom",(function(){var e=this,i=arguments,a=w(e,i).event(o),s=r.apply(e,i),l=null==n?b(s):"function"==typeof n?n.apply(e,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,p="function"==typeof t?t.apply(e,i):t,f=u(d.invert(l).concat(c/d.k),p.invert(l).concat(c/p.k));return function(e){if(1===e)e=p;else{var t=f(e),n=c/t[2];e=new Transform(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function w(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=r.apply(e,t),this.taps=0}function x(e,...t){if(o.apply(this,arguments)){var n=w(this,t).event(e),r=this.__zoom,s=Math.max(l[0],Math.min(l[1],r.k*Math.pow(2,a.apply(this,arguments)))),d=pointer(e);if(n.wheel)n.mouse[0][0]===d[0]&&n.mouse[0][1]===d[1]||(n.mouse[1]=r.invert(n.mouse[0]=d)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[d,r.invert(d)],interrupt(this),n.start()}noevent(e),n.wheel=setTimeout(u,150),n.zoom("mouse",i(y(_(r,s),n.mouse[0],n.mouse[1]),n.extent,c))}function u(){n.wheel=null,n.end()}}function $(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,a=w(this,t,!0).event(e),s=select(e.view).on("mousemove.zoom",p,!0).on("mouseup.zoom",f,!0),l=pointer(e,r),d=e.clientX,u=e.clientY;dragDisable(e.view),nopropagation(e),a.mouse=[l,this.__zoom.invert(l)],interrupt(this),a.start()}function p(e){if(noevent(e),!a.moved){var t=e.clientX-d,n=e.clientY-u;a.moved=t*t+n*n>m}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=pointer(e,r),a.mouse[1]),a.extent,c))}function f(e){s.on("mousemove.zoom mouseup.zoom",null),yesdrag(e.view,a.moved),noevent(e),a.event(e).end()}}function N(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,a=pointer(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),u=i(y(_(n,l),a,s),r.apply(this,t),c);noevent(e),d>0?select(this).transition().duration(d).call(v,u,a,e):select(this).call(g.transform,u,a,e)}}function E(n,...r){if(o.apply(this,arguments)){var i,a,s,l,c=n.touches,d=c.length,u=w(this,r,n.changedTouches.length===d).event(n);for(nopropagation(n),a=0;a<d;++a)l=[l=pointer(s=c[a],this),this.__zoom.invert(l),s.identifier],u.touch0?u.touch1||u.touch0[2]===l[2]||(u.touch1=l,u.taps=0):(u.touch0=l,i=!0,u.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(u.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),f)),interrupt(this),u.start())}}function k(e,...t){if(this.__zooming){var n,o,r,a,s=w(this,t).event(e),l=e.changedTouches,d=l.length;for(noevent(e),n=0;n<d;++n)r=pointer(o=l[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var u=s.touch0[0],p=s.touch0[1],f=s.touch1[0],m=s.touch1[1],h=(h=f[0]-u[0])*h+(h=f[1]-u[1])*h,g=(g=m[0]-p[0])*g+(g=m[1]-p[1])*g;o=_(o,Math.sqrt(h/g)),r=[(u[0]+f[0])/2,(u[1]+f[1])/2],a=[(p[0]+m[0])/2,(p[1]+m[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(y(o,r,a),s.extent,c))}}function C(e,...o){if(this.__zooming){var r,i,a=w(this,o).event(e),s=e.changedTouches,l=s.length;for(nopropagation(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),r=0;r<l;++r)i=s[r],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=pointer(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<h)){var c=select(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return g.transform=function(e,t,n,o){var r=e.selection?e.selection():e;r.property("__zoom",defaultTransform),e!==r?v(e,t,n,o):r.interrupt().each((function(){w(this,arguments).event(o).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()}))},g.scaleBy=function(e,t,n,o){g.scaleTo(e,(function(){var e=this.__zoom.k,n="function"==typeof t?t.apply(this,arguments):t;return e*n}),n,o)},g.scaleTo=function(e,t,n,o){g.transform(e,(function(){var e=r.apply(this,arguments),o=this.__zoom,a=null==n?b(e):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),l="function"==typeof t?t.apply(this,arguments):t;return i(y(_(o,l),a,s),e,c)}),n,o)},g.translateBy=function(e,t,n,o){g.transform(e,(function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)}),null,o)},g.translateTo=function(e,t,n,o,a){g.transform(e,(function(){var e=r.apply(this,arguments),a=this.__zoom,s=null==o?b(e):"function"==typeof o?o.apply(this,arguments):o;return i(identity.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)}),o,a)},S.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=select(this.that).datum();p.call(e,this.that,new ZoomEvent(e,{sourceEvent:this.sourceEvent,target:g,type:e,transform:this.that.__zoom,dispatch:p}),t)}},g.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:constant(+e),g):a},g.filter=function(e){return arguments.length?(o="function"==typeof e?e:constant(!!e),g):o},g.touchable=function(e){return arguments.length?(s="function"==typeof e?e:constant(!!e),g):s},g.extent=function(e){return arguments.length?(r="function"==typeof e?e:constant([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),g):r},g.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],g):[l[0],l[1]]},g.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],g):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},g.constrain=function(e){return arguments.length?(i=e,g):i},g.duration=function(e){return arguments.length?(d=+e,g):d},g.interpolate=function(e){return arguments.length?(u=e,g):u},g.on=function(){var e=p.on.apply(p,arguments);return e===p?g:e},g.clickDistance=function(e){return arguments.length?(m=(e=+e)*e,g):Math.sqrt(m)},g.tapDistance=function(e){return arguments.length?(h=+e,g):h},g}Transform.prototype;const StoreContext=require$$0.createContext(null),Provider$1=StoreContext.Provider,errorMessages={"001":()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001","002":()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.","003":e=>`Node type "${e}" not found. Using fallback type "default".`,"004":()=>"The React Flow parent container needs a width and a height to render the graph.","005":()=>"Only child nodes can use a parent extent.","006":()=>"Can't create edge. An edge needs a source and a target.","007":e=>`The old edge with id=${e} does not exist.`,"009":e=>`Marker type "${e}" doesn't exist.`,"008":(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,"010":()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.","011":e=>`Edge type "${e}" not found. Using fallback type "default".`},zustandErrorMessage=errorMessages["001"]();function useStore(e,t){const n=require$$0.useContext(StoreContext);if(null===n)throw new Error(zustandErrorMessage);return useStore$1(n,e,t)}const useStoreApi=()=>{const e=require$$0.useContext(StoreContext);if(null===e)throw new Error(zustandErrorMessage);return require$$0.useMemo((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy})),[e])},selector$g=e=>e.userSelectionActive?"none":"all";function Panel({position:e,children:t,className:n,style:o,...r}){const i=useStore(selector$g),a=`${e}`.split("-");return jsxRuntime.exports.jsx("div",{className:cc(["react-flow__panel",n,...a]),style:{...o,pointerEvents:i},...r,children:t})}function Attribution({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:jsxRuntime.exports.jsx(Panel,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:jsxRuntime.exports.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const EdgeText=({x:e,y:t,label:n,labelStyle:o={},labelShowBg:r=!0,labelBgStyle:i={},labelBgPadding:a=[2,4],labelBgBorderRadius:s=2,children:l,className:c,...d})=>{const u=require$$0.useRef(null),[p,f]=require$$0.useState({x:0,y:0,width:0,height:0}),m=cc(["react-flow__edge-textwrapper",c]);return require$$0.useEffect((()=>{if(u.current){const e=u.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}}),[n]),void 0!==n&&n?jsxRuntime.exports.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:m,visibility:p.width?"visible":"hidden",...d,children:[r&&jsxRuntime.exports.jsx("rect",{width:p.width+2*a[0],x:-a[0],y:-a[1],height:p.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),jsxRuntime.exports.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:u,style:o,children:n}),l]}):null};var EdgeText$1=require$$0.memo(EdgeText);const getDimensions=e=>({width:e.offsetWidth,height:e.offsetHeight}),clamp=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),clampPosition=(e={x:0,y:0},t)=>({x:clamp(e.x,t[0][0],t[1][0]),y:clamp(e.y,t[0][1],t[1][1])}),calcAutoPanVelocity=(e,t,n)=>e<t?clamp(Math.abs(e-t),1,50)/50:e>n?-clamp(Math.abs(e-n),1,50)/50:0,calcAutoPan=(e,t)=>[20*calcAutoPanVelocity(e.x,35,t.width-35),20*calcAutoPanVelocity(e.y,35,t.height-35)],getHostForElement=e=>e.getRootNode?.()||window?.document,getBoundsOfBoxes=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),rectToBox=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),boxToRect=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),nodeToRect=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),getBoundsOfRects=(e,t)=>boxToRect(getBoundsOfBoxes(rectToBox(e),rectToBox(t))),getOverlappingArea=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},isRectObject=e=>isNumeric(e.width)&&isNumeric(e.height)&&isNumeric(e.x)&&isNumeric(e.y),isNumeric=e=>!isNaN(e)&&isFinite(e),internalsSymbol=Symbol.for("internals"),elementSelectionKeys=["Enter"," ","Escape"],devWarn=(e,t)=>{},isReactKeyboardEvent=e=>"nativeEvent"in e;function isInputDOMNode(e){const t=(isReactKeyboardEvent(e)?e.nativeEvent:e).composedPath?.()?.[0]||e.target,n=["INPUT","SELECT","TEXTAREA"].includes(t?.nodeName)||t?.hasAttribute("contenteditable"),o=e.ctrlKey||e.metaKey||e.shiftKey;return n&&!o||!!t?.closest(".nokey")}const isMouseEvent=e=>"clientX"in e,getEventPosition=(e,t)=>{const n=isMouseEvent(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},BaseEdge=({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l,style:c,markerEnd:d,markerStart:u,interactionWidth:p=20})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx("path",{style:c,d:e,fill:"none",className:"react-flow__edge-path",markerEnd:d,markerStart:u}),p&&jsxRuntime.exports.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:p,className:"react-flow__edge-interaction"}),o&&isNumeric(t)&&isNumeric(n)?jsxRuntime.exports.jsx(EdgeText$1,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l}):null]});function getMouseHandler$1(e,t,n){return void 0===n?n:o=>{const r=t().edges.find((t=>t.id===e));r&&n(o,{...r})}}function getEdgeCenter({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,a=Math.abs(o-t)/2;return[i,o<t?o+a:o-a,r,a]}function getBezierEdgeCenter({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){const l=.125*e+.375*r+.375*a+.125*n,c=.125*t+.375*i+.375*s+.125*o;return[l,c,Math.abs(l-e),Math.abs(c-t)]}var ConnectionMode,PanOnScrollMode,SelectionMode,ConnectionLineType,MarkerType,Position;function getControl({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===Position.Left||e===Position.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function getSimpleBezierPath({sourceX:e,sourceY:t,sourcePosition:n=Position.Bottom,targetX:o,targetY:r,targetPosition:i=Position.Top}){const[a,s]=getControl({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=getControl({pos:i,x1:o,y1:r,x2:e,y2:t}),[d,u,p,f]=getBezierEdgeCenter({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:c});return[`M${e},${t} C${a},${s} ${l},${c} ${o},${r}`,d,u,p,f]}BaseEdge.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(ConnectionMode||(ConnectionMode={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(PanOnScrollMode||(PanOnScrollMode={})),function(e){e.Partial="partial",e.Full="full"}(SelectionMode||(SelectionMode={})),function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(ConnectionLineType||(ConnectionLineType={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(MarkerType||(MarkerType={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(Position||(Position={}));const SimpleBezierEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,sourcePosition:r=Position.Bottom,targetPosition:i=Position.Top,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,interactionWidth:h})=>{const[g,_,y]=getSimpleBezierPath({sourceX:e,sourceY:t,sourcePosition:r,targetX:n,targetY:o,targetPosition:i});return jsxRuntime.exports.jsx(BaseEdge,{path:g,labelX:_,labelY:y,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,interactionWidth:h})}));SimpleBezierEdge.displayName="SimpleBezierEdge";const handleDirections={[Position.Left]:{x:-1,y:0},[Position.Right]:{x:1,y:0},[Position.Top]:{x:0,y:-1},[Position.Bottom]:{x:0,y:1}},getDirection=({source:e,sourcePosition:t=Position.Bottom,target:n})=>t===Position.Left||t===Position.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},distance=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function getPoints({source:e,sourcePosition:t=Position.Bottom,target:n,targetPosition:o=Position.Top,center:r,offset:i}){const a=handleDirections[t],s=handleDirections[o],l={x:e.x+a.x*i,y:e.y+a.y*i},c={x:n.x+s.x*i,y:n.y+s.y*i},d=getDirection({source:l,sourcePosition:t,target:c}),u=0!==d.x?"x":"y",p=d[u];let f,m,h=[];const[g,_,y,b]=getEdgeCenter({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[u]*s[u]==-1){f=r.x||g,m=r.y||_;const e=[{x:f,y:l.y},{x:f,y:c.y}],t=[{x:l.x,y:m},{x:c.x,y:m}];h=a[u]===p?"x"===u?e:t:"x"===u?t:e}else{const e=[{x:l.x,y:c.y}],n=[{x:c.x,y:l.y}];if(h="x"===u?a.x===p?n:e:a.y===p?e:n,t!==o){const t="x"===u?"y":"x",o=a[u]===s[t],r=l[t]>c[t],i=l[t]<c[t];(1===a[u]&&(!o&&r||o&&i)||1!==a[u]&&(!o&&i||o&&r))&&(h="x"===u?e:n)}f=h[0].x,m=h[0].y}return[[e,l,...h,c,n],f,m,y,b]}function getBend(e,t,n,o){const r=Math.min(distance(e,t)/2,distance(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){return`L ${i+r*(e.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(e.y<n.y?1:-1)}`}const s=e.x<n.x?1:-1;return`L ${i},${a+r*(e.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}function getSmoothStepPath({sourceX:e,sourceY:t,sourcePosition:n=Position.Bottom,targetX:o,targetY:r,targetPosition:i=Position.Top,borderRadius:a=5,centerX:s,centerY:l,offset:c=20}){const[d,u,p,f,m]=getPoints({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:s,y:l},offset:c});return[d.reduce(((e,t,n)=>{let o="";return o=n>0&&n<d.length-1?getBend(d[n-1],t,d[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`,e+=o}),""),u,p,f,m]}const SmoothStepEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,sourcePosition:u=Position.Bottom,targetPosition:p=Position.Top,markerEnd:f,markerStart:m,pathOptions:h,interactionWidth:g})=>{const[_,y,b]=getSmoothStepPath({sourceX:e,sourceY:t,sourcePosition:u,targetX:n,targetY:o,targetPosition:p,borderRadius:h?.borderRadius,offset:h?.offset});return jsxRuntime.exports.jsx(BaseEdge,{path:_,labelX:y,labelY:b,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:f,markerStart:m,interactionWidth:g})}));SmoothStepEdge.displayName="SmoothStepEdge";const StepEdge=require$$0.memo((e=>jsxRuntime.exports.jsx(SmoothStepEdge,{...e,pathOptions:require$$0.useMemo((()=>({borderRadius:0,offset:e.pathOptions?.offset})),[e.pathOptions?.offset])})));function getStraightPath({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,a,s]=getEdgeCenter({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}StepEdge.displayName="StepEdge";const StraightEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:u,markerStart:p,interactionWidth:f})=>{const[m,h,g]=getStraightPath({sourceX:e,sourceY:t,targetX:n,targetY:o});return jsxRuntime.exports.jsx(BaseEdge,{path:m,labelX:h,labelY:g,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:u,markerStart:p,interactionWidth:f})}));function calculateControlOffset(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function getControlWithCurvature({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case Position.Left:return[t-calculateControlOffset(t-o,i),n];case Position.Right:return[t+calculateControlOffset(o-t,i),n];case Position.Top:return[t,n-calculateControlOffset(n-r,i)];case Position.Bottom:return[t,n+calculateControlOffset(r-n,i)]}}function getBezierPath({sourceX:e,sourceY:t,sourcePosition:n=Position.Bottom,targetX:o,targetY:r,targetPosition:i=Position.Top,curvature:a=.25}){const[s,l]=getControlWithCurvature({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[c,d]=getControlWithCurvature({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[u,p,f,m]=getBezierEdgeCenter({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${s},${l} ${c},${d} ${o},${r}`,u,p,f,m]}StraightEdge.displayName="StraightEdge";const BezierEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,sourcePosition:r=Position.Bottom,targetPosition:i=Position.Top,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,pathOptions:h,interactionWidth:g})=>{const[_,y,b]=getBezierPath({sourceX:e,sourceY:t,sourcePosition:r,targetX:n,targetY:o,targetPosition:i,curvature:h?.curvature});return jsxRuntime.exports.jsx(BaseEdge,{path:_,labelX:y,labelY:b,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,interactionWidth:g})}));BezierEdge.displayName="BezierEdge";const NodeIdContext=require$$0.createContext(null),Provider=NodeIdContext.Provider;NodeIdContext.Consumer;const useNodeId=()=>require$$0.useContext(NodeIdContext),isEdge=e=>"id"in e&&"source"in e&&"target"in e,getEdgeId=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${n}${o||""}`,getMarkerId=(e,t)=>{if(void 0===e)return"";if("string"==typeof e)return e;return`${t?`${t}__`:""}${Object.keys(e).sort().map((t=>`${t}=${e[t]}`)).join("&")}`},connectionExists=(e,t)=>t.some((t=>!(t.source!==e.source||t.target!==e.target||t.sourceHandle!==e.sourceHandle&&(t.sourceHandle||e.sourceHandle)||t.targetHandle!==e.targetHandle&&(t.targetHandle||e.targetHandle)))),addEdge=(e,t)=>{if(!e.source||!e.target)return t;let n;return n=isEdge(e)?{...e}:{...e,id:getEdgeId(e)},connectionExists(n,t)?t:t.concat(n)},updateEdge=(e,t,n)=>{if(!t.source||!t.target)return n;if(!n.find((t=>t.id===e.id)))return devWarn("007",errorMessages["007"](e.id)),n;const o={...e,id:getEdgeId(t),source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter((t=>t.id!==e.id)).concat(o)},pointToRendererPoint=({x:e,y:t},[n,o,r],i,[a,s])=>{const l={x:(e-n)/r,y:(t-o)/r};return i?{x:a*Math.round(l.x/a),y:s*Math.round(l.y/s)}:l},rendererPointToPoint=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o}),getNodePositionWithOrigin=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],o=(e.height??0)*t[1],r={x:e.position.x-n,y:e.position.y-o};return{...r,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-o}:r}},getRectOfNodes=(e,t=[0,0])=>{if(0===e.length)return{x:0,y:0,width:0,height:0};const n=e.reduce(((e,n)=>{const{x:o,y:r}=getNodePositionWithOrigin(n,t).positionAbsolute;return getBoundsOfBoxes(e,rectToBox({x:o,y:r,width:n.width||0,height:n.height||0}))}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return boxToRect(n)},getNodesInside=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const l={x:(t.x-n)/r,y:(t.y-o)/r,width:t.width/r,height:t.height/r},c=[];return e.forEach((e=>{const{width:t,height:n,selectable:o=!0,hidden:r=!1}=e;if(a&&!o||r)return!1;const{positionAbsolute:d}=getNodePositionWithOrigin(e,s),u={x:d.x,y:d.y,width:t||0,height:n||0},p=getOverlappingArea(l,u);(void 0===t||void 0===n||null===t||null===n||i&&p>0||p>=(t||0)*(n||0)||e.dragging)&&c.push(e)})),c},getConnectedEdges=(e,t)=>{const n=e.map((e=>e.id));return t.filter((e=>n.includes(e.source)||n.includes(e.target)))},getTransformForBounds=(e,t,n,o,r,i=.1)=>{const a=t/(e.width*(1+i)),s=n/(e.height*(1+i)),l=Math.min(a,s),c=clamp(l,o,r);return[t/2-(e.x+e.width/2)*c,n/2-(e.y+e.height/2)*c,c]},getD3Transition=(e,t=0)=>e.transition().duration(t);function getHandles(e,t,n,o){return(t[n]||[]).reduce(((t,r)=>(`${e.id}-${r.id}-${n}`!==o&&t.push({id:r.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+r.x+r.width/2,y:(e.positionAbsolute?.y??0)+r.y+r.height/2}),t)),[])}function getClosestHandle(e,t,n){let o=null,r=1/0;return n.forEach((n=>{const i=Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2));i<=t&&i<r&&(r=i,o=n)})),o}const nullConnection={source:null,target:null,sourceHandle:null,targetHandle:null};function isValidHandle(e,t,n,o,r,i,a,s){const l="target"===i,c=s.querySelector(`.react-flow__handle[data-id="${t?.nodeId}-${t?.id}-${t?.type}"]`),{x:d,y:u}=getEventPosition(e),p=s.elementFromPoint(d,u),f=p?.classList.contains("react-flow__handle")?p:c,m={handleDomNode:f,isValid:!1,connection:nullConnection};if(f){const e=getHandleType(void 0,f),t=f.getAttribute("data-nodeid"),i=f.getAttribute("data-handleid"),s={source:l?t:o,sourceHandle:l?i:r,target:l?o:t,targetHandle:l?r:i};m.connection=s;(n===ConnectionMode.Strict?l&&"source"===e||!l&&"target"===e:t!==o||i!==r)&&(m.isValid=a(s))}return m}function getHandleLookup({nodes:e,nodeId:t,handleId:n,handleType:o}){return e.reduce(((e,r)=>{if(r[internalsSymbol]){const{handleBounds:i}=r[internalsSymbol];let a=[],s=[];i&&(a=getHandles(r,i,"source",`${t}-${n}-${o}`),s=getHandles(r,i,"target",`${t}-${n}-${o}`)),e.push(...a,...s)}return e}),[])}function getHandleType(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function resetRecentHandle(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function getConnectionStatus(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function handlePointerDown({event:e,handleId:t,nodeId:n,onConnect:o,isTarget:r,getState:i,setState:a,isValidConnection:s,edgeUpdaterType:l,onEdgeUpdateEnd:c}){const d=getHostForElement(e.target),{connectionMode:u,domNode:p,autoPanOnConnect:f,connectionRadius:m,onConnectStart:h,panBy:g,getNodes:_,cancelConnection:y}=i();let b,v=0;const{x:w,y:S}=getEventPosition(e),x=d?.elementFromPoint(w,S),$=getHandleType(l,x),N=p?.getBoundingClientRect();if(!N||!$)return;let E,k=getEventPosition(e,N),C=!1,j=null,O=!1,P=null;const F=getHandleLookup({nodes:_(),nodeId:n,handleId:t,handleType:$}),R=()=>{if(!f)return;const[e,t]=calcAutoPan(k,N);g({x:e,y:t}),v=requestAnimationFrame(R)};function I(e){const{transform:o}=i();k=getEventPosition(e,N),b=getClosestHandle(pointToRendererPoint(k,o,!1,[1,1]),m,F),C||(R(),C=!0);const l=isValidHandle(e,b,u,n,t,r?"target":"source",s,d);if(P=l.handleDomNode,j=l.connection,O=l.isValid,a({connectionPosition:b&&O?rendererPointToPoint({x:b.x,y:b.y},o):k,connectionStatus:getConnectionStatus(!!b,O)}),!b&&!O&&!P)return resetRecentHandle(E);j.source!==j.target&&P&&(resetRecentHandle(E),E=P,P.classList.add("connecting","react-flow__handle-connecting"),P.classList.toggle("valid",O),P.classList.toggle("react-flow__handle-valid",O))}function D(e){(b||P)&&j&&O&&o?.(j),i().onConnectEnd?.(e),l&&c?.(e),resetRecentHandle(E),y(),cancelAnimationFrame(v),C=!1,O=!1,j=null,P=null,d.removeEventListener("mousemove",I),d.removeEventListener("mouseup",D),d.removeEventListener("touchmove",I),d.removeEventListener("touchend",D)}a({connectionPosition:k,connectionNodeId:n,connectionHandleId:t,connectionHandleType:$,connectionStatus:null}),h?.(e,{nodeId:n,handleId:t,handleType:$}),d.addEventListener("mousemove",I),d.addEventListener("mouseup",D),d.addEventListener("touchmove",I),d.addEventListener("touchend",D)}const alwaysValid=()=>!0,selector$f=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Handle=require$$0.forwardRef((({type:e="source",position:t=Position.Top,isValidConnection:n=alwaysValid,isConnectable:o=!0,id:r,onConnect:i,children:a,className:s,onMouseDown:l,onTouchStart:c,...d},u)=>{const p=useStoreApi(),f=useNodeId();if(!f)return p.getState().onError?.("010",errorMessages["010"]()),null;const{connectionStartHandle:m,connectOnClick:h,noPanClassName:g}=useStore(selector$f,shallow),_=r||null,y="target"===e,b=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=p.getState(),r={...t,...e};if(o){const{edges:e}=p.getState();p.setState({edges:addEdge(r,e)})}n?.(r),i?.(r)},v=e=>{const t=isMouseEvent(e);(t&&0===e.button||!t)&&handlePointerDown({event:e,handleId:_,nodeId:f,onConnect:b,isTarget:y,getState:p.getState,setState:p.setState,isValidConnection:n}),t?l?.(e):c?.(e)};return jsxRuntime.exports.jsx("div",{"data-handleid":_,"data-nodeid":f,"data-handlepos":t,"data-id":`${f}-${_}-${e}`,className:cc(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",g,s,{source:!y,target:y,connectable:o,connecting:m?.nodeId===f&&m?.handleId===_&&m?.type===e}]),onMouseDown:v,onTouchStart:v,onClick:h?t=>{const{onClickConnectStart:o,onClickConnectEnd:r,connectionMode:i}=p.getState();if(!m)return o?.(t,{nodeId:f,handleId:_,handleType:e}),void p.setState({connectionStartHandle:{nodeId:f,type:e,handleId:_}});const a=getHostForElement(t.target),{connection:s,isValid:l}=isValidHandle(t,{nodeId:f,id:_,type:e},i,m.nodeId,m.handleId||null,m.type,n,a);l&&b(s),r?.(t),p.setState({connectionStartHandle:null})}:void 0,ref:u,...d,children:a})}));Handle.displayName="Handle";var Handle$1=require$$0.memo(Handle);const DefaultNode=({data:e,isConnectable:t,targetPosition:n=Position.Top,sourcePosition:o=Position.Bottom})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(Handle$1,{type:"target",position:n,isConnectable:t}),e?.label,jsxRuntime.exports.jsx(Handle$1,{type:"source",position:o,isConnectable:t})]});DefaultNode.displayName="DefaultNode";var DefaultNode$1=require$$0.memo(DefaultNode);const InputNode=({data:e,isConnectable:t,sourcePosition:n=Position.Bottom})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[e?.label,jsxRuntime.exports.jsx(Handle$1,{type:"source",position:n,isConnectable:t})]});InputNode.displayName="InputNode";var InputNode$1=require$$0.memo(InputNode);const OutputNode=({data:e,isConnectable:t,targetPosition:n=Position.Top})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(Handle$1,{type:"target",position:n,isConnectable:t}),e?.label]});OutputNode.displayName="OutputNode";var OutputNode$1=require$$0.memo(OutputNode);const GroupNode=()=>null;GroupNode.displayName="GroupNode";const selector$e=e=>({selectedNodes:e.getNodes().filter((e=>e.selected)),selectedEdges:e.edges.filter((e=>e.selected))}),selectId=e=>e.id;function areEqual(e,t){return shallow(e.selectedNodes.map(selectId),t.selectedNodes.map(selectId))&&shallow(e.selectedEdges.map(selectId),t.selectedEdges.map(selectId))}const SelectionListener=require$$0.memo((({onSelectionChange:e})=>{const t=useStoreApi(),{selectedNodes:n,selectedEdges:o}=useStore(selector$e,areEqual);return require$$0.useEffect((()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChange?.(r)}),[n,o,e]),null}));SelectionListener.displayName="SelectionListener";const changeSelector=e=>!!e.onSelectionChange;function Wrapper$1({onSelectionChange:e}){const t=useStore(changeSelector);return e||t?jsxRuntime.exports.jsx(SelectionListener,{onSelectionChange:e}):null}const selector$d=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function useStoreUpdater(e,t){require$$0.useEffect((()=>{void 0!==e&&t(e)}),[e])}function useDirectStoreUpdater(e,t,n){require$$0.useEffect((()=>{void 0!==t&&n({[e]:t})}),[t])}const StoreUpdater=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:r,onConnectStart:i,onConnectEnd:a,onClickConnectStart:s,onClickConnectEnd:l,nodesDraggable:c,nodesConnectable:d,nodesFocusable:u,edgesFocusable:p,elevateNodesOnSelect:f,minZoom:m,maxZoom:h,nodeExtent:g,onNodesChange:_,onEdgesChange:y,elementsSelectable:b,connectionMode:v,snapGrid:w,snapToGrid:S,translateExtent:x,connectOnClick:$,defaultEdgeOptions:N,fitView:E,fitViewOptions:k,onNodesDelete:C,onEdgesDelete:j,onNodeDrag:O,onNodeDragStart:P,onNodeDragStop:F,onSelectionDrag:R,onSelectionDragStart:I,onSelectionDragStop:D,noPanClassName:M,nodeOrigin:T,rfId:A,autoPanOnConnect:L,autoPanOnNodeDrag:V,onError:q,connectionRadius:B})=>{const{setNodes:z,setEdges:H,setDefaultNodesAndEdges:U,setMinZoom:K,setMaxZoom:Y,setTranslateExtent:W,setNodeExtent:X,reset:Z}=useStore(selector$d,shallow),G=useStoreApi();return require$$0.useEffect((()=>{const e=o?.map((e=>({...e,...N})));return U(n,e),()=>{Z()}}),[]),useDirectStoreUpdater("defaultEdgeOptions",N,G.setState),useDirectStoreUpdater("connectionMode",v,G.setState),useDirectStoreUpdater("onConnect",r,G.setState),useDirectStoreUpdater("onConnectStart",i,G.setState),useDirectStoreUpdater("onConnectEnd",a,G.setState),useDirectStoreUpdater("onClickConnectStart",s,G.setState),useDirectStoreUpdater("onClickConnectEnd",l,G.setState),useDirectStoreUpdater("nodesDraggable",c,G.setState),useDirectStoreUpdater("nodesConnectable",d,G.setState),useDirectStoreUpdater("nodesFocusable",u,G.setState),useDirectStoreUpdater("edgesFocusable",p,G.setState),useDirectStoreUpdater("elementsSelectable",b,G.setState),useDirectStoreUpdater("elevateNodesOnSelect",f,G.setState),useDirectStoreUpdater("snapToGrid",S,G.setState),useDirectStoreUpdater("snapGrid",w,G.setState),useDirectStoreUpdater("onNodesChange",_,G.setState),useDirectStoreUpdater("onEdgesChange",y,G.setState),useDirectStoreUpdater("connectOnClick",$,G.setState),useDirectStoreUpdater("fitViewOnInit",E,G.setState),useDirectStoreUpdater("fitViewOnInitOptions",k,G.setState),useDirectStoreUpdater("onNodesDelete",C,G.setState),useDirectStoreUpdater("onEdgesDelete",j,G.setState),useDirectStoreUpdater("onNodeDrag",O,G.setState),useDirectStoreUpdater("onNodeDragStart",P,G.setState),useDirectStoreUpdater("onNodeDragStop",F,G.setState),useDirectStoreUpdater("onSelectionDrag",R,G.setState),useDirectStoreUpdater("onSelectionDragStart",I,G.setState),useDirectStoreUpdater("onSelectionDragStop",D,G.setState),useDirectStoreUpdater("noPanClassName",M,G.setState),useDirectStoreUpdater("nodeOrigin",T,G.setState),useDirectStoreUpdater("rfId",A,G.setState),useDirectStoreUpdater("autoPanOnConnect",L,G.setState),useDirectStoreUpdater("autoPanOnNodeDrag",V,G.setState),useDirectStoreUpdater("onError",q,G.setState),useDirectStoreUpdater("connectionRadius",B,G.setState),useStoreUpdater(e,z),useStoreUpdater(t,H),useStoreUpdater(m,K),useStoreUpdater(h,Y),useStoreUpdater(x,W),useStoreUpdater(g,X),null},style={display:"none"},ariaLiveStyle={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ARIA_NODE_DESC_KEY="react-flow__node-desc",ARIA_EDGE_DESC_KEY="react-flow__edge-desc",ARIA_LIVE_MESSAGE="react-flow__aria-live",selector$c=e=>e.ariaLiveMessage;function AriaLiveMessage({rfId:e}){const t=useStore(selector$c);return jsxRuntime.exports.jsx("div",{id:`${ARIA_LIVE_MESSAGE}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ariaLiveStyle,children:t})}function A11yDescriptions({rfId:e,disableKeyboardA11y:t}){return jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsxs("div",{id:`${ARIA_NODE_DESC_KEY}-${e}`,style:style,children:["Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "]}),jsxRuntime.exports.jsx("div",{id:`${ARIA_EDGE_DESC_KEY}-${e}`,style:style,children:"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."}),!t&&jsxRuntime.exports.jsx(AriaLiveMessage,{rfId:e})]})}const shiftX=(e,t,n)=>n===Position.Left?e-t:n===Position.Right?e+t:e,shiftY=(e,t,n)=>n===Position.Top?e-t:n===Position.Bottom?e+t:e,EdgeUpdaterClassName="react-flow__edgeupdater",EdgeAnchor=({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:a,type:s})=>jsxRuntime.exports.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:a,className:cc([EdgeUpdaterClassName,`${EdgeUpdaterClassName}-${s}`]),cx:shiftX(t,o,e),cy:shiftY(n,o,e),r:o,stroke:"transparent",fill:"transparent"});var wrapEdge=e=>{const t=({id:t,className:n,type:o,data:r,onClick:i,onEdgeDoubleClick:a,selected:s,animated:l,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,style:h,source:g,target:_,sourceX:y,sourceY:b,targetX:v,targetY:w,sourcePosition:S,targetPosition:x,elementsSelectable:$,hidden:N,sourceHandleId:E,targetHandleId:k,onContextMenu:C,onMouseEnter:j,onMouseMove:O,onMouseLeave:P,edgeUpdaterRadius:F,onEdgeUpdate:R,onEdgeUpdateStart:I,onEdgeUpdateEnd:D,markerEnd:M,markerStart:T,rfId:A,ariaLabel:L,isFocusable:V,pathOptions:q,interactionWidth:B})=>{const z=require$$0.useRef(null),[H,U]=require$$0.useState(!1),[K,Y]=require$$0.useState(!1),W=useStoreApi(),X=require$$0.useMemo((()=>`url(#${getMarkerId(T,A)})`),[T,A]),Z=require$$0.useMemo((()=>`url(#${getMarkerId(M,A)})`),[M,A]);if(N)return null;const G=getMouseHandler$1(t,W.getState,a),J=getMouseHandler$1(t,W.getState,C),Q=getMouseHandler$1(t,W.getState,j),ee=getMouseHandler$1(t,W.getState,O),te=getMouseHandler$1(t,W.getState,P),ne=(e,n)=>{if(0!==e.button)return;const o=n?_:g,r=(n?k:E)||null,i=n?"target":"source",a=n,s=W.getState().edges.find((e=>e.id===t));Y(!0),I?.(e,s,i);handlePointerDown({event:e,handleId:r,nodeId:o,onConnect:e=>R?.(s,e),isTarget:a,getState:W.getState,setState:W.setState,isValidConnection:()=>!0,edgeUpdaterType:i,onEdgeUpdateEnd:e=>{Y(!1),D?.(e,s,i)}})},oe=()=>U(!0),re=()=>U(!1),ie=!$&&!i,ae=void 0!==R;return jsxRuntime.exports.jsxs("g",{className:cc(["react-flow__edge",`react-flow__edge-${o}`,n,{selected:s,animated:l,inactive:ie,updating:H}]),onClick:e=>{const{edges:n,addSelectedEdges:o}=W.getState();if($&&(W.setState({nodesSelectionActive:!1}),o([t])),i){const o=n.find((e=>e.id===t));i(e,o)}},onDoubleClick:G,onContextMenu:J,onMouseEnter:Q,onMouseMove:ee,onMouseLeave:te,onKeyDown:V?e=>{if(elementSelectionKeys.includes(e.key)&&$){const{unselectNodesAndEdges:n,addSelectedEdges:o,edges:r}=W.getState();"Escape"===e.key?(z.current?.blur(),n({edges:[r.find((e=>e.id===t))]})):o([t])}}:void 0,tabIndex:V?0:void 0,role:V?"button":void 0,"data-testid":`rf__edge-${t}`,"aria-label":null===L?void 0:L||`Edge from ${g} to ${_}`,"aria-describedby":V?`${ARIA_EDGE_DESC_KEY}-${A}`:void 0,ref:z,children:[!K&&jsxRuntime.exports.jsx(e,{id:t,source:g,target:_,selected:s,animated:l,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,data:r,style:h,sourceX:y,sourceY:b,targetX:v,targetY:w,sourcePosition:S,targetPosition:x,sourceHandleId:E,targetHandleId:k,markerStart:X,markerEnd:Z,pathOptions:q,interactionWidth:B}),ae&&jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(EdgeAnchor,{position:S,centerX:y,centerY:b,radius:F,onMouseDown:e=>ne(e,!0),onMouseEnter:oe,onMouseOut:re,type:"source"}),jsxRuntime.exports.jsx(EdgeAnchor,{position:x,centerX:v,centerY:w,radius:F,onMouseDown:e=>ne(e,!1),onMouseEnter:oe,onMouseOut:re,type:"target"})]})]})};return t.displayName="EdgeWrapper",require$$0.memo(t)};function createEdgeTypes(e){return{...{default:wrapEdge(e.default||BezierEdge),straight:wrapEdge(e.bezier||StraightEdge),step:wrapEdge(e.step||StepEdge),smoothstep:wrapEdge(e.step||SmoothStepEdge),simplebezier:wrapEdge(e.simplebezier||SimpleBezierEdge)},...Object.keys(e).filter((e=>!["default","bezier"].includes(e))).reduce(((t,n)=>(t[n]=wrapEdge(e[n]||BezierEdge),t)),{})}}function getHandlePosition(e,t,n=null){const o=(n?.x||0)+t.x,r=(n?.y||0)+t.y,i=n?.width||t.width,a=n?.height||t.height;switch(e){case Position.Top:return{x:o+i/2,y:r};case Position.Right:return{x:o+i,y:r+a/2};case Position.Bottom:return{x:o+i/2,y:r+a};case Position.Left:return{x:o,y:r+a/2}}}function getHandle(e,t){return e?t?e.find((e=>e.id===t)):1===e.length?e[0]:null:null}const getEdgePositions=(e,t,n,o,r,i)=>{const a=getHandlePosition(n,e,t),s=getHandlePosition(i,o,r);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}};function isEdgeVisible({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:r,targetHeight:i,width:a,height:s,transform:l}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+r),y2:Math.max(e.y+o,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const d=rectToBox({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:a/l[2],height:s/l[2]}),u=Math.max(0,Math.min(d.x2,c.x2)-Math.max(d.x,c.x)),p=Math.max(0,Math.min(d.y2,c.y2)-Math.max(d.y,c.y));return Math.ceil(u*p)>0}function getNodeData(e){const t=e?.[internalsSymbol]?.handleBounds||null,n=t&&e?.width&&e?.height&&void 0!==e?.positionAbsolute?.x&&void 0!==e?.positionAbsolute?.y;return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}function isParentSelected(e,t){if(!e.parentNode)return!1;const n=t.get(e.parentNode);return!!n&&(!!n.selected||isParentSelected(n,t))}function hasSelector(e,t,n){let o=e;do{if(o?.matches(t))return!0;if(o===n.current)return!1;o=o.parentElement}while(o);return!1}function getDragItems(e,t,n,o){return Array.from(e.values()).filter((n=>(n.selected||n.id===o)&&(!n.parentNode||!isParentSelected(n,e))&&(n.draggable||t&&void 0===n.draggable))).map((e=>({id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:n.x-(e.positionAbsolute?.x??0),y:n.y-(e.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:e.extent,parentNode:e.parentNode,width:e.width,height:e.height})))}function calcNextPosition(e,t,n,o,r=[0,0],i){let a=e.extent||o;if("parent"===e.extent)if(e.parentNode&&e.width&&e.height){const t=n.get(e.parentNode),{x:o,y:i}=getNodePositionWithOrigin(t,r).positionAbsolute;a=t&&isNumeric(o)&&isNumeric(i)&&isNumeric(t.width)&&isNumeric(t.height)?[[o+e.width*r[0],i+e.height*r[1]],[o+t.width-e.width+e.width*r[0],i+t.height-e.height+e.height*r[1]]]:a}else i?.("005",errorMessages["005"]()),a=o;else if(e.extent&&e.parentNode){const t=n.get(e.parentNode),{x:o,y:i}=getNodePositionWithOrigin(t,r).positionAbsolute;a=[[e.extent[0][0]+o,e.extent[0][1]+i],[e.extent[1][0]+o,e.extent[1][1]+i]]}let s={x:0,y:0};if(e.parentNode){const t=n.get(e.parentNode);s=getNodePositionWithOrigin(t,r).positionAbsolute}const l=a?clampPosition(t,a):t;return{position:{x:l.x-s.x,y:l.y-s.y},positionAbsolute:l}}function getEventHandlerParams({nodeId:e,dragItems:t,nodeInternals:n}){const o=t.map((e=>({...n.get(e.id),position:e.position,positionAbsolute:e.positionAbsolute})));return[e?o.find((t=>t.id===e)):o[0],o]}const getHandleBounds=(e,t,n,o)=>{const r=t.querySelectorAll(e);if(!r||!r.length)return null;const i=Array.from(r),a=t.getBoundingClientRect(),s=a.width*o[0],l=a.height*o[1];return i.map((e=>{const t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-a.left-s)/n,y:(t.top-a.top-l)/n,...getDimensions(e)}}))};function getMouseHandler(e,t,n){return void 0===n?n:o=>{const r=t().nodeInternals.get(e);n(o,{...r})}}function handleNodeClick({id:e,store:t,unselect:n=!1}){const{addSelectedNodes:o,unselectNodesAndEdges:r,multiSelectionActive:i,nodeInternals:a}=t.getState(),s=a.get(e);t.setState({nodesSelectionActive:!1}),s.selected?(n||s.selected&&i)&&r({nodes:[s]}):o([e])}function useGetPointerPosition(){const e=useStoreApi(),t=require$$0.useCallback((({sourceEvent:t})=>{const{transform:n,snapGrid:o,snapToGrid:r}=e.getState(),i=t.touches?t.touches[0].clientX:t.clientX,a=t.touches?t.touches[0].clientY:t.clientY,s={x:(i-n[0])/n[2],y:(a-n[1])/n[2]};return{xSnapped:r?o[0]*Math.round(s.x/o[0]):s.x,ySnapped:r?o[1]*Math.round(s.y/o[1]):s.y,...s}}),[]);return t}function wrapSelectionDragFunc(e){return(t,n,o)=>e?.(t,o)}function useDrag({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,selectNodesOnDrag:a}){const s=useStoreApi(),[l,c]=require$$0.useState(!1),d=require$$0.useRef([]),u=require$$0.useRef({x:null,y:null}),p=require$$0.useRef(0),f=require$$0.useRef(null),m=require$$0.useRef({x:0,y:0}),h=require$$0.useRef(null),g=require$$0.useRef(!1),_=useGetPointerPosition();return require$$0.useEffect((()=>{if(e?.current){const l=select(e.current),y=({x:e,y:t})=>{const{nodeInternals:n,onNodeDrag:o,onSelectionDrag:i,updateNodePositions:a,nodeExtent:l,snapGrid:p,snapToGrid:f,nodeOrigin:m,onError:g}=s.getState();u.current={x:e,y:t};let _=!1;if(d.current=d.current.map((o=>{const r={x:e-o.distance.x,y:t-o.distance.y};f&&(r.x=p[0]*Math.round(r.x/p[0]),r.y=p[1]*Math.round(r.y/p[1]));const i=calcNextPosition(o,r,n,l,m,g);return _=_||o.position.x!==i.position.x||o.position.y!==i.position.y,o.position=i.position,o.positionAbsolute=i.positionAbsolute,o})),!_)return;a(d.current,!0,!0),c(!0);const y=r?o:wrapSelectionDragFunc(i);if(y&&h.current){const[e,t]=getEventHandlerParams({nodeId:r,dragItems:d.current,nodeInternals:n});y(h.current,e,t)}},b=()=>{if(!f.current)return;const[e,t]=calcAutoPan(m.current,f.current);if(0!==e||0!==t){const{transform:n,panBy:o}=s.getState();u.current.x=(u.current.x??0)-e/n[2],u.current.y=(u.current.y??0)-t/n[2],y(u.current),o({x:e,y:t})}p.current=requestAnimationFrame(b)};if(!t){const t=drag().on("start",(e=>{const{nodeInternals:t,multiSelectionActive:n,domNode:o,nodesDraggable:l,unselectNodesAndEdges:c,onNodeDragStart:p,onSelectionDragStart:h}=s.getState(),g=r?p:wrapSelectionDragFunc(h);a||n||!r||t.get(r)?.selected||c(),r&&i&&a&&handleNodeClick({id:r,store:s});const y=_(e);if(u.current=y,d.current=getDragItems(t,l,y,r),g&&d.current){const[n,o]=getEventHandlerParams({nodeId:r,dragItems:d.current,nodeInternals:t});g(e.sourceEvent,n,o)}f.current=o?.getBoundingClientRect()||null,m.current=getEventPosition(e.sourceEvent,f.current)})).on("drag",(e=>{const t=_(e),{autoPanOnNodeDrag:n}=s.getState();!g.current&&n&&(g.current=!0,b()),u.current.x===t.xSnapped&&u.current.y===t.ySnapped||!d.current||(h.current=e.sourceEvent,m.current=getEventPosition(e.sourceEvent,f.current),y(t))})).on("end",(e=>{if(c(!1),g.current=!1,cancelAnimationFrame(p.current),d.current){const{updateNodePositions:t,nodeInternals:n,onNodeDragStop:o,onSelectionDragStop:i}=s.getState(),a=r?o:wrapSelectionDragFunc(i);if(t(d.current,!1,!1),a){const[t,o]=getEventHandlerParams({nodeId:r,dragItems:d.current,nodeInternals:n});a(e.sourceEvent,t,o)}}})).filter((t=>{const r=t.target;return!t.button&&(!n||!hasSelector(r,`.${n}`,e))&&(!o||hasSelector(r,o,e))}));return l.call(t),()=>{l.on(".drag",null)}}l.on(".drag",null)}}),[e,t,n,o,i,s,r,a,_]),l}function useUpdateNodePositions(){const e=useStoreApi();return require$$0.useCallback((t=>{const{nodeInternals:n,nodeExtent:o,updateNodePositions:r,getNodes:i,snapToGrid:a,snapGrid:s,onError:l,nodesDraggable:c}=e.getState(),d=i().filter((e=>e.selected&&(e.draggable||c&&void 0===e.draggable))),u=a?s[0]:5,p=a?s[1]:5,f=t.isShiftPressed?4:1,m=t.x*u*f,h=t.y*p*f;r(d.map((e=>{if(e.positionAbsolute){const t={x:e.positionAbsolute.x+m,y:e.positionAbsolute.y+h};a&&(t.x=s[0]*Math.round(t.x/s[0]),t.y=s[1]*Math.round(t.y/s[1]));const{positionAbsolute:r,position:i}=calcNextPosition(e,t,n,o,void 0,l);e.position=i,e.positionAbsolute=r}return e})),!0,!1)}),[])}const arrowKeyDiffs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var wrapNode=e=>{const t=({id:t,type:n,data:o,xPos:r,yPos:i,xPosOrigin:a,yPosOrigin:s,selected:l,onClick:c,onMouseEnter:d,onMouseMove:u,onMouseLeave:p,onContextMenu:f,onDoubleClick:m,style:h,className:g,isDraggable:_,isSelectable:y,isConnectable:b,isFocusable:v,selectNodesOnDrag:w,sourcePosition:S,targetPosition:x,hidden:$,resizeObserver:N,dragHandle:E,zIndex:k,isParent:C,noDragClassName:j,noPanClassName:O,initialized:P,disableKeyboardA11y:F,ariaLabel:R,rfId:I})=>{const D=useStoreApi(),M=require$$0.useRef(null),T=require$$0.useRef(S),A=require$$0.useRef(x),L=require$$0.useRef(n),V=y||_||c||d||u||p,q=useUpdateNodePositions(),B=getMouseHandler(t,D.getState,d),z=getMouseHandler(t,D.getState,u),H=getMouseHandler(t,D.getState,p),U=getMouseHandler(t,D.getState,f),K=getMouseHandler(t,D.getState,m);require$$0.useEffect((()=>{if(M.current&&!$){const e=M.current;return N?.observe(e),()=>N?.unobserve(e)}}),[$]),require$$0.useEffect((()=>{const e=L.current!==n,o=T.current!==S,r=A.current!==x;M.current&&(e||o||r)&&(e&&(L.current=n),o&&(T.current=S),r&&(A.current=x),D.getState().updateNodeDimensions([{id:t,nodeElement:M.current,forceUpdate:!0}]))}),[t,n,S,x]);const Y=useDrag({nodeRef:M,disabled:$||!_,noDragClassName:j,handleSelector:E,nodeId:t,isSelectable:y,selectNodesOnDrag:w});return $?null:jsxRuntime.exports.jsx("div",{className:cc(["react-flow__node",`react-flow__node-${n}`,{[O]:_},g,{selected:l,selectable:y,parent:C,dragging:Y}]),ref:M,style:{zIndex:k,transform:`translate(${a}px,${s}px)`,pointerEvents:V?"all":"none",visibility:P?"visible":"hidden",...h},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:B,onMouseMove:z,onMouseLeave:H,onContextMenu:U,onClick:e=>{if(!y||w&&_||handleNodeClick({id:t,store:D}),c){const n=D.getState().nodeInternals.get(t);c(e,{...n})}},onDoubleClick:K,onKeyDown:v?e=>{if(!isInputDOMNode(e))if(elementSelectionKeys.includes(e.key)&&y){const n="Escape"===e.key;n&&M.current?.blur(),handleNodeClick({id:t,store:D,unselect:n})}else!F&&_&&l&&Object.prototype.hasOwnProperty.call(arrowKeyDiffs,e.key)&&(D.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~r}, y: ${~~i}`}),q({x:arrowKeyDiffs[e.key].x,y:arrowKeyDiffs[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:v?0:void 0,role:v?"button":void 0,"aria-describedby":F?void 0:`${ARIA_NODE_DESC_KEY}-${I}`,"aria-label":R,children:jsxRuntime.exports.jsx(Provider,{value:t,children:jsxRuntime.exports.jsx(e,{id:t,data:o,type:n,xPos:r,yPos:i,selected:l,isConnectable:b,sourcePosition:S,targetPosition:x,dragging:Y,dragHandle:E,zIndex:k})})})};return t.displayName="NodeWrapper",require$$0.memo(t)};function createNodeTypes(e){return{...{input:wrapNode(e.input||InputNode$1),default:wrapNode(e.default||DefaultNode$1),output:wrapNode(e.output||OutputNode$1),group:wrapNode(e.group||GroupNode)},...Object.keys(e).filter((e=>!["input","default","output","group"].includes(e))).reduce(((t,n)=>(t[n]=wrapNode(e[n]||DefaultNode$1),t)),{})}}const getPositionWithOrigin=({x:e,y:t,width:n,height:o,origin:r})=>n&&o?r[0]<0||r[1]<0||r[0]>1||r[1]>1?{x:e,y:t}:{x:e-n*r[0],y:t-o*r[1]}:{x:e,y:t},doc="undefined"!=typeof document?document:null;var useKeyPress=(e=null,t={target:doc})=>{const[n,o]=require$$0.useState(!1),r=require$$0.useRef(new Set([])),[i,a]=require$$0.useMemo((()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter((e=>"string"==typeof e)).map((e=>e.split("+"))),n=t.reduce(((e,t)=>e.concat(...t)),[]);return[t,n]}return[[],[]]}),[e]);return require$$0.useEffect((()=>{if(null!==e){const e=e=>{if(isInputDOMNode(e))return!1;const t=useKeyOrCode(e.code,a);r.current.add(e[t]),isMatchingKey(i,r.current,!1)&&(e.preventDefault(),o(!0))},n=e=>{if(isInputDOMNode(e))return!1;const t=useKeyOrCode(e.code,a);isMatchingKey(i,r.current,!0)?(o(!1),r.current.clear()):r.current.delete(e[t])},s=()=>{r.current.clear(),o(!1)};return t?.target?.addEventListener("keydown",e),t?.target?.addEventListener("keyup",n),window.addEventListener("blur",s),()=>{t?.target?.removeEventListener("keydown",e),t?.target?.removeEventListener("keyup",n),window.removeEventListener("blur",s)}}}),[e,o]),n};function isMatchingKey(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function useKeyOrCode(e,t){return t.includes(e)?"code":"key"}function calculateXYZPosition(e,t,n,o){if(!e.parentNode)return n;const r=t.get(e.parentNode),i=getNodePositionWithOrigin(r,o);return calculateXYZPosition(r,t,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(r[internalsSymbol]?.z??0)>(n.z??0)?r[internalsSymbol]?.z??0:n.z??0},o)}function updateAbsoluteNodePositions(e,t,n){e.forEach((o=>{if(o.parentNode&&!e.has(o.parentNode))throw new Error(`Parent node ${o.parentNode} not found`);if(o.parentNode||n?.[o.id]){const{x:r,y:i,z:a}=calculateXYZPosition(o,e,{...o.position,z:o[internalsSymbol]?.z??0},t);o.positionAbsolute={x:r,y:i},o[internalsSymbol].z=a,n?.[o.id]&&(o[internalsSymbol].isParent=!0)}}))}function createNodeInternals(e,t,n,o){const r=new Map,i={},a=o?1e3:0;return e.forEach((e=>{const n=(isNumeric(e.zIndex)?e.zIndex:0)+(e.selected?a:0),o=t.get(e.id),s={width:o?.width,height:o?.height,...e,positionAbsolute:{x:e.position.x,y:e.position.y}};e.parentNode&&(s.parentNode=e.parentNode,i[e.parentNode]=!0),Object.defineProperty(s,internalsSymbol,{enumerable:!1,value:{handleBounds:o?.[internalsSymbol]?.handleBounds,z:n}}),r.set(e.id,s)})),updateAbsoluteNodePositions(r,n,i),r}function fitView(e,t={}){const{getNodes:n,width:o,height:r,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:d,nodeOrigin:u}=e(),p=t.initial&&!c&&d;if(s&&l&&(p||!t.initial)){const e=n().filter((e=>{const n=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return t.nodes?.length?n&&t.nodes.some((t=>t.id===e.id)):n})),c=e.every((e=>e.width&&e.height));if(e.length>0&&c){const n=getRectOfNodes(e,u),[c,d,p]=getTransformForBounds(n,o,r,t.minZoom??i,t.maxZoom??a,t.padding??.1),f=identity.translate(c,d).scale(p);return"number"==typeof t.duration&&t.duration>0?s.transform(getD3Transition(l,t.duration),f):s.transform(l,f),!0}}return!1}function handleControlledNodeSelectionChange(e,t){return e.forEach((e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[internalsSymbol]:n[internalsSymbol],selected:e.selected})})),new Map(t)}function handleControlledEdgeSelectionChange(e,t){return t.map((t=>{const n=e.find((e=>e.id===t.id));return n&&(t.selected=n.selected),t}))}function updateNodesAndEdgesSelections({changedNodes:e,changedEdges:t,get:n,set:o}){const{nodeInternals:r,edges:i,onNodesChange:a,onEdgesChange:s,hasDefaultNodes:l,hasDefaultEdges:c}=n();e?.length&&(l&&o({nodeInternals:handleControlledNodeSelectionChange(e,r)}),a?.(e)),t?.length&&(c&&o({edges:handleControlledEdgeSelectionChange(t,i)}),s?.(t))}const noop$1=()=>{},initialViewportHelper={zoomIn:noop$1,zoomOut:noop$1,zoomTo:noop$1,getZoom:()=>1,setViewport:noop$1,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:noop$1,fitBounds:noop$1,project:e=>e,viewportInitialized:!1},selector$b=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),useViewportHelper=()=>{const e=useStoreApi(),{d3Zoom:t,d3Selection:n}=useStore(selector$b,shallow),o=require$$0.useMemo((()=>n&&t?{zoomIn:e=>t.scaleBy(getD3Transition(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(getD3Transition(n,e?.duration),1/1.2),zoomTo:(e,o)=>t.scaleTo(getD3Transition(n,o?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(o,r)=>{const[i,a,s]=e.getState().transform,l=identity.translate(o.x??i,o.y??a).scale(o.zoom??s);t.transform(getD3Transition(n,r?.duration),l)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},fitView:t=>fitView(e.getState,t),setCenter:(o,r,i)=>{const{width:a,height:s,maxZoom:l}=e.getState(),c=void 0!==i?.zoom?i.zoom:l,d=a/2-o*c,u=s/2-r*c,p=identity.translate(d,u).scale(c);t.transform(getD3Transition(n,i?.duration),p)},fitBounds:(o,r)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=e.getState(),[c,d,u]=getTransformForBounds(o,i,a,s,l,r?.padding??.1),p=identity.translate(c,d).scale(u);t.transform(getD3Transition(n,r?.duration),p)},project:t=>{const{transform:n,snapToGrid:o,snapGrid:r}=e.getState();return pointToRendererPoint(t,n,o,r)},viewportInitialized:!0}:initialViewportHelper),[t,n]);return o};function useReactFlow(){const e=useViewportHelper(),t=useStoreApi(),n=require$$0.useCallback((()=>t.getState().getNodes().map((e=>({...e})))),[]),o=require$$0.useCallback((e=>t.getState().nodeInternals.get(e)),[]),r=require$$0.useCallback((()=>{const{edges:e=[]}=t.getState();return e.map((e=>({...e})))}),[]),i=require$$0.useCallback((e=>{const{edges:n=[]}=t.getState();return n.find((t=>t.id===e))}),[]),a=require$$0.useCallback((e=>{const{getNodes:n,setNodes:o,hasDefaultNodes:r,onNodesChange:i}=t.getState(),a=n(),s="function"==typeof e?e(a):e;if(r)o(s);else if(i){i(0===s.length?a.map((e=>({type:"remove",id:e.id}))):s.map((e=>({item:e,type:"reset"}))))}}),[]),s=require$$0.useCallback((e=>{const{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:i}=t.getState(),a="function"==typeof e?e(n):e;if(r)o(a);else if(i){i(0===a.length?n.map((e=>({type:"remove",id:e.id}))):a.map((e=>({item:e,type:"reset"}))))}}),[]),l=require$$0.useCallback((e=>{const n=Array.isArray(e)?e:[e],{getNodes:o,setNodes:r,hasDefaultNodes:i,onNodesChange:a}=t.getState();if(i){r([...o(),...n])}else if(a){a(n.map((e=>({item:e,type:"add"}))))}}),[]),c=require$$0.useCallback((e=>{const n=Array.isArray(e)?e:[e],{edges:o=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a}=t.getState();if(i)r([...o,...n]);else if(a){a(n.map((e=>({item:e,type:"add"}))))}}),[]),d=require$$0.useCallback((()=>{const{getNodes:e,edges:n=[],transform:o}=t.getState(),[r,i,a]=o;return{nodes:e().map((e=>({...e}))),edges:n.map((e=>({...e}))),viewport:{x:r,y:i,zoom:a}}}),[]),u=require$$0.useCallback((({nodes:e,edges:n})=>{const{nodeInternals:o,getNodes:r,edges:i,hasDefaultNodes:a,hasDefaultEdges:s,onNodesDelete:l,onEdgesDelete:c,onNodesChange:d,onEdgesChange:u}=t.getState(),p=(e||[]).map((e=>e.id)),f=(n||[]).map((e=>e.id)),m=r().reduce(((e,t)=>{const n=!p.includes(t.id)&&t.parentNode&&e.find((e=>e.id===t.parentNode));return("boolean"!=typeof t.deletable||t.deletable)&&(p.includes(t.id)||n)&&e.push(t),e}),[]),h=i.filter((e=>"boolean"!=typeof e.deletable||e.deletable)),g=h.filter((e=>f.includes(e.id)));if(m||g){const e=getConnectedEdges(m,h),n=[...g,...e],r=n.reduce(((e,t)=>(e.includes(t.id)||e.push(t.id),e)),[]);if((s||a)&&(s&&t.setState({edges:i.filter((e=>!r.includes(e.id)))}),a&&(m.forEach((e=>{o.delete(e.id)})),t.setState({nodeInternals:new Map(o)}))),r.length>0&&(c?.(n),u&&u(r.map((e=>({id:e,type:"remove"}))))),m.length>0&&(l?.(m),d)){d(m.map((e=>({id:e.id,type:"remove"}))))}}}),[]),p=require$$0.useCallback((e=>{const n=isRectObject(e),o=n?null:t.getState().nodeInternals.get(e.id);return[n?e:nodeToRect(o),o,n]}),[]),f=require$$0.useCallback(((e,n=!0,o)=>{const[r,i,a]=p(e);return r?(o||t.getState().getNodes()).filter((t=>{if(!(a||t.id!==i.id&&t.positionAbsolute))return!1;const o=nodeToRect(t),s=getOverlappingArea(o,r);return n&&s>0||s>=e.width*e.height})):[]}),[]),m=require$$0.useCallback(((e,t,n=!0)=>{const[o]=p(e);if(!o)return!1;const r=getOverlappingArea(o,t);return n&&r>0||r>=e.width*e.height}),[]);return require$$0.useMemo((()=>({...e,getNodes:n,getNode:o,getEdges:r,getEdge:i,setNodes:a,setEdges:s,addNodes:l,addEdges:c,toObject:d,deleteElements:u,getIntersectingNodes:f,isNodeIntersecting:m})),[e,n,o,r,i,a,s,l,c,d,u,f,m])}var useGlobalKeyHandler=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=useStoreApi(),{deleteElements:o}=useReactFlow(),r=useKeyPress(e),i=useKeyPress(t);require$$0.useEffect((()=>{if(r){const{edges:e,getNodes:t}=n.getState(),r=t().filter((e=>e.selected)),i=e.filter((e=>e.selected));o({nodes:r,edges:i}),n.setState({nodesSelectionActive:!1})}}),[r]),require$$0.useEffect((()=>{n.setState({multiSelectionActive:i})}),[i])};function useResizeHandler(e){const t=useStoreApi();require$$0.useEffect((()=>{let n;const o=()=>{if(!e.current)return;const n=getDimensions(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",errorMessages["004"]()),t.setState({width:n.width||500,height:n.height||500})};return o(),window.addEventListener("resize",o),e.current&&(n=new ResizeObserver((()=>o())),n.observe(e.current)),()=>{window.removeEventListener("resize",o),n&&e.current&&n.unobserve(e.current)}}),[])}const containerStyle={position:"absolute",width:"100%",height:"100%",top:0,left:0},viewChanged=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,eventToFlowTransform=e=>({x:e.x,y:e.y,zoom:e.k}),isWrappedWithClass=(e,t)=>e.target.closest(`.${t}`),isRightClickPan=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),selector$a=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),ZoomPane=({onMove:e,onMoveStart:t,onMoveEnd:n,onPaneContextMenu:o,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:a=!1,panOnScrollSpeed:s=.5,panOnScrollMode:l=PanOnScrollMode.Free,zoomOnDoubleClick:c=!0,elementsSelectable:d,panOnDrag:u=!0,defaultViewport:p,translateExtent:f,minZoom:m,maxZoom:h,zoomActivationKeyCode:g,preventScrolling:_=!0,children:y,noWheelClassName:b,noPanClassName:v})=>{const w=require$$0.useRef(),S=useStoreApi(),x=require$$0.useRef(!1),$=require$$0.useRef(!1),N=require$$0.useRef(null),E=require$$0.useRef({x:0,y:0,zoom:0}),{d3Zoom:k,d3Selection:C,d3ZoomHandler:j,userSelectionActive:O}=useStore(selector$a,shallow),P=useKeyPress(g),F=require$$0.useRef(0);return useResizeHandler(N),require$$0.useEffect((()=>{if(N.current){const e=N.current.getBoundingClientRect(),t=zoom().scaleExtent([m,h]).translateExtent(f),n=select(N.current).call(t),o=identity.translate(p.x,p.y).scale(clamp(p.zoom,m,h)),r=[[0,0],[e.width,e.height]],i=t.constrain()(o,r,f);t.transform(n,i),S.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[i.x,i.y,i.k],domNode:N.current.closest(".react-flow")})}}),[]),require$$0.useEffect((()=>{C&&k&&(!a||P||O?void 0!==j&&C.on("wheel.zoom",(function(e,t){if(!_||isWrappedWithClass(e,b))return null;e.preventDefault(),j.call(this,e,t)})):C.on("wheel.zoom",(e=>{if(isWrappedWithClass(e,b))return!1;e.preventDefault(),e.stopImmediatePropagation();const t=C.property("__zoom").k||1;if(e.ctrlKey&&i){const n=pointer(e),o=-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*10,r=t*Math.pow(2,o);return void k.scaleTo(C,r,n)}const n=1===e.deltaMode?20:1,o=l===PanOnScrollMode.Vertical?0:e.deltaX*n,r=l===PanOnScrollMode.Horizontal?0:e.deltaY*n;k.translateBy(C,-o/t*s,-r/t*s)})))}),[O,a,l,C,k,j,P,i,_,b]),require$$0.useEffect((()=>{k&&k.on("start",(e=>{if(!e.sourceEvent)return null;F.current=e.sourceEvent.button;const{onViewportChangeStart:n}=S.getState();if(x.current=!0,"mousedown"===e.sourceEvent?.type&&S.setState({paneDragging:!0}),t||n){const o=eventToFlowTransform(e.transform);E.current=o,n?.(o),t?.(e.sourceEvent,o)}}))}),[k,t]),require$$0.useEffect((()=>{k&&(O&&!x.current?k.on("zoom",null):O||k.on("zoom",(t=>{const{onViewportChange:n}=S.getState();if(S.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),$.current=!(!o||!isRightClickPan(u,F.current??0)),e||n){const o=eventToFlowTransform(t.transform);n?.(o),e?.(t.sourceEvent,o)}})))}),[O,k,e,u,o]),require$$0.useEffect((()=>{k&&k.on("end",(e=>{if(!e.sourceEvent)return null;const{onViewportChangeEnd:t}=S.getState();if(x.current=!1,S.setState({paneDragging:!1}),o&&isRightClickPan(u,F.current??0)&&!$.current&&o(e.sourceEvent),$.current=!1,(n||t)&&viewChanged(E.current,e.transform)){const o=eventToFlowTransform(e.transform);E.current=o,clearTimeout(w.current),w.current=setTimeout((()=>{t?.(o),n?.(e.sourceEvent,o)}),a?150:0)}}))}),[k,a,u,n,o]),require$$0.useEffect((()=>{k&&k.filter((e=>{const t=P||r,n=i&&e.ctrlKey;if(1===e.button&&"mousedown"===e.type&&(isWrappedWithClass(e,"react-flow__node")||isWrappedWithClass(e,"react-flow__edge")))return!0;if(!(u||t||a||c||i))return!1;if(O)return!1;if(!c&&"dblclick"===e.type)return!1;if(isWrappedWithClass(e,b)&&"wheel"===e.type)return!1;if(isWrappedWithClass(e,v)&&"wheel"!==e.type)return!1;if(!i&&e.ctrlKey&&"wheel"===e.type)return!1;if(!t&&!a&&!n&&"wheel"===e.type)return!1;if(!u&&("mousedown"===e.type||"touchstart"===e.type))return!1;if(Array.isArray(u)&&!u.includes(e.button)&&("mousedown"===e.type||"touchstart"===e.type))return!1;const o=Array.isArray(u)&&u.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&o}))}),[O,k,r,i,a,c,u,d,P]),jsxRuntime.exports.jsx("div",{className:"react-flow__renderer",ref:N,style:containerStyle,children:y})},selector$9=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function UserSelection(){const{userSelectionActive:e,userSelectionRect:t}=useStore(selector$9,shallow);return e&&t?jsxRuntime.exports.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function handleParentExpand(e,t){const n=e.find((e=>e.id===t.parentNode));if(n){const e=t.position.x+t.width-n.width,o=t.position.y+t.height-n.height;if(e>0||o>0||t.position.x<0||t.position.y<0){if(n.style={...n.style}||{},n.style.width=n.style.width??n.width,n.style.height=n.style.height??n.height,e>0&&(n.style.width+=e),o>0&&(n.style.height+=o),t.position.x<0){const e=Math.abs(t.position.x);n.position.x=n.position.x-e,n.style.width+=e,t.position.x=0}if(t.position.y<0){const e=Math.abs(t.position.y);n.position.y=n.position.y-e,n.style.height+=e,t.position.y=0}n.width=n.style.width,n.height=n.style.height}}}function applyChanges(e,t){if(e.some((e=>"reset"===e.type)))return e.filter((e=>"reset"===e.type)).map((e=>e.item));const n=e.filter((e=>"add"===e.type)).map((e=>e.item));return t.reduce(((t,n)=>{const o=e.filter((e=>e.id===n.id));if(0===o.length)return t.push(n),t;const r={...n};for(const e of o)if(e)switch(e.type){case"select":r.selected=e.selected;break;case"position":void 0!==e.position&&(r.position=e.position),void 0!==e.positionAbsolute&&(r.positionAbsolute=e.positionAbsolute),void 0!==e.dragging&&(r.dragging=e.dragging),r.expandParent&&handleParentExpand(t,r);break;case"dimensions":void 0!==e.dimensions&&(r.width=e.dimensions.width,r.height=e.dimensions.height),void 0!==e.updateStyle&&(r.style={...r.style||{},...e.dimensions}),"boolean"==typeof e.resizing&&(r.resizing=e.resizing),r.expandParent&&handleParentExpand(t,r);break;case"remove":return t}return t.push(r),t}),n)}function applyNodeChanges(e,t){return applyChanges(e,t)}function applyEdgeChanges(e,t){return applyChanges(e,t)}const createSelectionChange=(e,t)=>({id:e,type:"select",selected:t});function getSelectionChanges(e,t){return e.reduce(((e,n)=>{const o=t.includes(n.id);return!n.selected&&o?(n.selected=!0,e.push(createSelectionChange(n.id,!0))):n.selected&&!o&&(n.selected=!1,e.push(createSelectionChange(n.id,!1))),e}),[])}const wrapHandler=(e,t)=>n=>{n.target===t.current&&e?.(n)},selector$8=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Pane=require$$0.memo((({isSelecting:e,selectionMode:t=SelectionMode.Full,panOnDrag:n,onSelectionStart:o,onSelectionEnd:r,onPaneClick:i,onPaneContextMenu:a,onPaneScroll:s,onPaneMouseEnter:l,onPaneMouseMove:c,onPaneMouseLeave:d,children:u})=>{const p=require$$0.useRef(null),f=useStoreApi(),m=require$$0.useRef(0),h=require$$0.useRef(0),g=require$$0.useRef(),{userSelectionActive:_,elementsSelectable:y,dragging:b}=useStore(selector$8,shallow),v=()=>{f.setState({userSelectionActive:!1,userSelectionRect:null}),m.current=0,h.current=0},w=e=>{i?.(e),f.getState().resetSelectedElements(),f.setState({nodesSelectionActive:!1})},S=s?e=>s(e):void 0,x=y&&(e||_);return jsxRuntime.exports.jsxs("div",{className:cc(["react-flow__pane",{dragging:b,selection:e}]),onClick:x?void 0:wrapHandler(w,p),onContextMenu:wrapHandler((e=>{Array.isArray(n)&&n?.includes(2)?e.preventDefault():a?.(e)}),p),onWheel:wrapHandler(S,p),onMouseEnter:x?void 0:l,onMouseDown:x?t=>{const{resetSelectedElements:n,domNode:r}=f.getState();if(g.current=r?.getBoundingClientRect(),!y||!e||0!==t.button||t.target!==p.current||!g.current)return;const{x:i,y:a}=getEventPosition(t,g.current);n(),f.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),o?.(t)}:void 0,onMouseMove:x?n=>{const{userSelectionRect:o,nodeInternals:r,edges:i,transform:a,onNodesChange:s,onEdgesChange:l,nodeOrigin:c,getNodes:d}=f.getState();if(!e||!g.current||!o)return;f.setState({userSelectionActive:!0,nodesSelectionActive:!1});const u=getEventPosition(n,g.current),p=o.startX??0,_=o.startY??0,y={...o,x:u.x<p?u.x:p,y:u.y<_?u.y:_,width:Math.abs(u.x-p),height:Math.abs(u.y-_)},b=d(),v=getNodesInside(r,y,a,t===SelectionMode.Partial,!0,c),w=getConnectedEdges(v,i).map((e=>e.id)),S=v.map((e=>e.id));if(m.current!==S.length){m.current=S.length;const e=getSelectionChanges(b,S);e.length&&s?.(e)}if(h.current!==w.length){h.current=w.length;const e=getSelectionChanges(i,w);e.length&&l?.(e)}f.setState({userSelectionRect:y})}:c,onMouseUp:x?e=>{if(0!==e.button)return;const{userSelectionRect:t}=f.getState();!_&&t&&e.target===p.current&&w?.(e),f.setState({nodesSelectionActive:m.current>0}),v(),r?.(e)}:void 0,onMouseLeave:x?e=>{_&&(f.setState({nodesSelectionActive:m.current>0}),r?.(e)),v()}:d,ref:p,style:containerStyle,children:[u,jsxRuntime.exports.jsx(UserSelection,{})]})}));Pane.displayName="Pane";const selector$7=e=>{const t=e.getNodes().filter((e=>e.selected));return{...getRectOfNodes(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function NodesSelection({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=useStoreApi(),{width:r,height:i,x:a,y:s,transformString:l,userSelectionActive:c}=useStore(selector$7,shallow),d=useUpdateNodePositions(),u=require$$0.useRef(null);if(require$$0.useEffect((()=>{n||u.current?.focus({preventScroll:!0})}),[n]),useDrag({nodeRef:u}),c||!r||!i)return null;const p=e?t=>{const n=o.getState().getNodes().filter((e=>e.selected));e(t,n)}:void 0;return jsxRuntime.exports.jsx("div",{className:cc(["react-flow__nodesselection","react-flow__container",t]),style:{transform:l},children:jsxRuntime.exports.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(arrowKeyDiffs,e.key)&&d({x:arrowKeyDiffs[e.key].x,y:arrowKeyDiffs[e.key].y,isShiftPressed:e.shiftKey})},style:{width:r,height:i,top:s,left:a}})})}var NodesSelection$1=require$$0.memo(NodesSelection);const selector$6=e=>e.nodesSelectionActive,FlowRenderer=({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,deleteKeyCode:s,onMove:l,onMoveStart:c,onMoveEnd:d,selectionKeyCode:u,selectionOnDrag:p,selectionMode:f,onSelectionStart:m,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:_,zoomActivationKeyCode:y,elementsSelectable:b,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:S,panOnScrollSpeed:x,panOnScrollMode:$,zoomOnDoubleClick:N,panOnDrag:E,defaultViewport:k,translateExtent:C,minZoom:j,maxZoom:O,preventScrolling:P,onSelectionContextMenu:F,noWheelClassName:R,noPanClassName:I,disableKeyboardA11y:D})=>{const M=useStore(selector$6),T=useKeyPress(u),A=useKeyPress(_)||E,L=T||p&&!0!==A;return useGlobalKeyHandler({deleteKeyCode:s,multiSelectionKeyCode:g}),jsxRuntime.exports.jsx(ZoomPane,{onMove:l,onMoveStart:c,onMoveEnd:d,onPaneContextMenu:i,elementsSelectable:b,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:S,panOnScrollSpeed:x,panOnScrollMode:$,zoomOnDoubleClick:N,panOnDrag:!T&&A,defaultViewport:k,translateExtent:C,minZoom:j,maxZoom:O,zoomActivationKeyCode:y,preventScrolling:P,noWheelClassName:R,noPanClassName:I,children:jsxRuntime.exports.jsxs(Pane,{onSelectionStart:m,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:A,isSelecting:!!L,selectionMode:f,children:[e,M&&jsxRuntime.exports.jsx(NodesSelection$1,{onSelectionContextMenu:F,noPanClassName:I,disableKeyboardA11y:D})]})})};FlowRenderer.displayName="FlowRenderer";var FlowRenderer$1=require$$0.memo(FlowRenderer);function useVisibleNodes(e){return useStore(require$$0.useCallback((t=>e?getNodesInside(t.nodeInternals,{x:0,y:0,width:t.width,height:t.height},t.transform,!0):t.getNodes()),[e]))}const selector$5=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),NodeRenderer=e=>{const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,updateNodeDimensions:i,onError:a}=useStore(selector$5,shallow),s=useVisibleNodes(e.onlyRenderVisibleElements),l=require$$0.useRef(),c=require$$0.useMemo((()=>{if("undefined"==typeof ResizeObserver)return null;const e=new ResizeObserver((e=>{const t=e.map((e=>({id:e.target.getAttribute("data-id"),nodeElement:e.target,forceUpdate:!0})));i(t)}));return l.current=e,e}),[]);return require$$0.useEffect((()=>()=>{l?.current?.disconnect()}),[]),jsxRuntime.exports.jsx("div",{className:"react-flow__nodes",style:containerStyle,children:s.map((i=>{let s=i.type||"default";e.nodeTypes[s]||(a?.("003",errorMessages["003"](s)),s="default");const l=e.nodeTypes[s]||e.nodeTypes.default,d=!!(i.draggable||t&&void 0===i.draggable),u=!!(i.selectable||r&&void 0===i.selectable),p=!!(i.connectable||n&&void 0===i.connectable),f=!!(i.focusable||o&&void 0===i.focusable),m=e.nodeExtent?clampPosition(i.positionAbsolute,e.nodeExtent):i.positionAbsolute,h=m?.x??0,g=m?.y??0,_=getPositionWithOrigin({x:h,y:g,width:i.width??0,height:i.height??0,origin:e.nodeOrigin});return jsxRuntime.exports.jsx(l,{id:i.id,className:i.className,style:i.style,type:s,data:i.data,sourcePosition:i.sourcePosition||Position.Bottom,targetPosition:i.targetPosition||Position.Top,hidden:i.hidden,xPos:h,yPos:g,xPosOrigin:_.x,yPosOrigin:_.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!i.selected,isDraggable:d,isSelectable:u,isConnectable:p,isFocusable:f,resizeObserver:c,dragHandle:i.dragHandle,zIndex:i[internalsSymbol]?.z??0,isParent:!!i[internalsSymbol]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!i.width&&!!i.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:i.ariaLabel},i.id)}))})};NodeRenderer.displayName="NodeRenderer";var NodeRenderer$1=require$$0.memo(NodeRenderer);const defaultEdgeTree=[{level:0,isMaxLevel:!0,edges:[]}];function groupEdgesByZLevel(e,t,n=!1){let o=-1;const r=e.reduce(((e,r)=>{const i=isNumeric(r.zIndex);let a=i?r.zIndex:0;return n&&(a=i?r.zIndex:Math.max(t.get(r.source)?.[internalsSymbol]?.z||0,t.get(r.target)?.[internalsSymbol]?.z||0)),e[a]?e[a].push(r):e[a]=[r],o=a>o?a:o,e}),{}),i=Object.entries(r).map((([e,t])=>{const n=+e;return{edges:t,level:n,isMaxLevel:n===o}}));return 0===i.length?defaultEdgeTree:i}function useVisibleEdges(e,t,n){return groupEdgesByZLevel(useStore(require$$0.useCallback((n=>e?n.edges.filter((e=>{const o=t.get(e.source),r=t.get(e.target);return o?.width&&o?.height&&r?.width&&r?.height&&isEdgeVisible({sourcePos:o.positionAbsolute||{x:0,y:0},targetPos:r.positionAbsolute||{x:0,y:0},sourceWidth:o.width,sourceHeight:o.height,targetWidth:r.width,targetHeight:r.height,width:n.width,height:n.height,transform:n.transform})})):n.edges),[e,t])),t,n)}const ArrowSymbol=({color:e="none",strokeWidth:t=1})=>jsxRuntime.exports.jsx("polyline",{stroke:e,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:t,fill:"none",points:"-5,-4 0,0 -5,4"}),ArrowClosedSymbol=({color:e="none",strokeWidth:t=1})=>jsxRuntime.exports.jsx("polyline",{stroke:e,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:t,fill:e,points:"-5,-4 0,0 -5,4 -5,-4"}),MarkerSymbols={[MarkerType.Arrow]:ArrowSymbol,[MarkerType.ArrowClosed]:ArrowClosedSymbol};function useMarkerSymbol(e){const t=useStoreApi();return require$$0.useMemo((()=>Object.prototype.hasOwnProperty.call(MarkerSymbols,e)?MarkerSymbols[e]:(t.getState().onError?.("009",errorMessages["009"](e)),null)),[e])}const Marker=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:s="auto-start-reverse"})=>{const l=useMarkerSymbol(t);return l?jsxRuntime.exports.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:jsxRuntime.exports.jsx(l,{color:n,strokeWidth:a})}):null},markerSelector=({defaultColor:e,rfId:t})=>n=>{const o=[];return n.edges.reduce(((n,r)=>([r.markerStart,r.markerEnd].forEach((r=>{if(r&&"object"==typeof r){const i=getMarkerId(r,t);o.includes(i)||(n.push({id:i,color:r.color||e,...r}),o.push(i))}})),n)),[]).sort(((e,t)=>e.id.localeCompare(t.id)))},MarkerDefinitions=({defaultColor:e,rfId:t})=>{const n=useStore(require$$0.useCallback(markerSelector({defaultColor:e,rfId:t}),[e,t]),((e,t)=>!(e.length!==t.length||e.some(((e,n)=>e.id!==t[n].id)))));return jsxRuntime.exports.jsx("defs",{children:n.map((e=>jsxRuntime.exports.jsx(Marker,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id)))})};MarkerDefinitions.displayName="MarkerDefinitions";var MarkerDefinitions$1=require$$0.memo(MarkerDefinitions);const selector$4=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),EdgeRenderer=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:o,edgeTypes:r,noPanClassName:i,onEdgeUpdate:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:d,onEdgeClick:u,edgeUpdaterRadius:p,onEdgeDoubleClick:f,onEdgeUpdateStart:m,onEdgeUpdateEnd:h,children:g})=>{const{edgesFocusable:_,elementsSelectable:y,width:b,height:v,connectionMode:w,nodeInternals:S,onError:x}=useStore(selector$4,shallow),$=useVisibleEdges(t,S,n);return b?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[$.map((({level:t,edges:n,isMaxLevel:g})=>jsxRuntime.exports.jsxs("svg",{style:{zIndex:t},width:b,height:v,className:"react-flow__edges react-flow__container",children:[g&&jsxRuntime.exports.jsx(MarkerDefinitions$1,{defaultColor:e,rfId:o}),jsxRuntime.exports.jsx("g",{children:n.map((e=>{const[t,n,g]=getNodeData(S.get(e.source)),[b,v,$]=getNodeData(S.get(e.target));if(!g||!$)return null;let N=e.type||"default";r[N]||(x?.("011",errorMessages["011"](N)),N="default");const E=r[N]||r.default,k=w===ConnectionMode.Strict?v.target:(v.target??[]).concat(v.source??[]),C=getHandle(n.source,e.sourceHandle),j=getHandle(k,e.targetHandle),O=C?.position||Position.Bottom,P=j?.position||Position.Top,F=!!(e.focusable||_&&void 0===e.focusable);if(!C||!j)return x?.("008",errorMessages["008"](C,e)),null;const{sourceX:R,sourceY:I,targetX:D,targetY:M}=getEdgePositions(t,C,O,b,j,P);return jsxRuntime.exports.jsx(E,{id:e.id,className:cc([e.className,i]),type:N,data:e.data,selected:!!e.selected,animated:!!e.animated,hidden:!!e.hidden,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,source:e.source,target:e.target,sourceHandleId:e.sourceHandle,targetHandleId:e.targetHandle,markerEnd:e.markerEnd,markerStart:e.markerStart,sourceX:R,sourceY:I,targetX:D,targetY:M,sourcePosition:O,targetPosition:P,elementsSelectable:y,onEdgeUpdate:a,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:d,onClick:u,edgeUpdaterRadius:p,onEdgeDoubleClick:f,onEdgeUpdateStart:m,onEdgeUpdateEnd:h,rfId:o,ariaLabel:e.ariaLabel,isFocusable:F,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth},e.id)}))})]},t))),g]}):null};EdgeRenderer.displayName="EdgeRenderer";var EdgeRenderer$1=require$$0.memo(EdgeRenderer);const selector$3=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Viewport({children:e}){const t=useStore(selector$3);return jsxRuntime.exports.jsx("div",{className:"react-flow__viewport react-flow__container",style:{transform:t},children:e})}function useOnInitHandler(e){const t=useReactFlow(),n=require$$0.useRef(!1);require$$0.useEffect((()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),n.current=!0)}),[e,t.viewportInitialized])}const oppositePosition={[Position.Left]:Position.Right,[Position.Right]:Position.Left,[Position.Top]:Position.Bottom,[Position.Bottom]:Position.Top},ConnectionLine=({nodeId:e,handleType:t,style:n,type:o=ConnectionLineType.Bezier,CustomComponent:r,connectionStatus:i})=>{const{fromNode:a,handleId:s,toX:l,toY:c,connectionMode:d}=useStore(require$$0.useCallback((t=>({fromNode:t.nodeInternals.get(e),handleId:t.connectionHandleId,toX:(t.connectionPosition.x-t.transform[0])/t.transform[2],toY:(t.connectionPosition.y-t.transform[1])/t.transform[2],connectionMode:t.connectionMode})),[e]),shallow),u=a?.[internalsSymbol]?.handleBounds;let p=u?.[t];if(d===ConnectionMode.Loose&&(p=p||u?.["source"===t?"target":"source"]),!a||!p)return null;const f=s?p.find((e=>e.id===s)):p[0],m=f?f.x+f.width/2:(a.width??0)/2,h=f?f.y+f.height/2:a.height??0,g=(a.positionAbsolute?.x??0)+m,_=(a.positionAbsolute?.y??0)+h,y=f?.position,b=y?oppositePosition[y]:null;if(!y||!b)return null;if(r)return jsxRuntime.exports.jsx(r,{connectionLineType:o,connectionLineStyle:n,fromNode:a,fromHandle:f,fromX:g,fromY:_,toX:l,toY:c,fromPosition:y,toPosition:b,connectionStatus:i});let v="";const w={sourceX:g,sourceY:_,sourcePosition:y,targetX:l,targetY:c,targetPosition:b};return o===ConnectionLineType.Bezier?[v]=getBezierPath(w):o===ConnectionLineType.Step?[v]=getSmoothStepPath({...w,borderRadius:0}):o===ConnectionLineType.SmoothStep?[v]=getSmoothStepPath(w):o===ConnectionLineType.SimpleBezier?[v]=getSimpleBezierPath(w):v=`M${g},${_} ${l},${c}`,jsxRuntime.exports.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:n})};ConnectionLine.displayName="ConnectionLine";const selector$2=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function ConnectionLineWrapper({containerStyle:e,style:t,type:n,component:o}){const{nodeId:r,handleType:i,nodesConnectable:a,width:s,height:l,connectionStatus:c}=useStore(selector$2,shallow);return!!(r&&i&&s&&a)?jsxRuntime.exports.jsx("svg",{style:e,width:s,height:l,className:"react-flow__edges react-flow__connectionline react-flow__container",children:jsxRuntime.exports.jsx("g",{className:cc(["react-flow__connection",c]),children:jsxRuntime.exports.jsx(ConnectionLine,{nodeId:r,handleType:i,style:t,type:n,CustomComponent:o,connectionStatus:c})})}):null}const GraphView=({nodeTypes:e,edgeTypes:t,onMove:n,onMoveStart:o,onMoveEnd:r,onInit:i,onNodeClick:a,onEdgeClick:s,onNodeDoubleClick:l,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:u,onNodeMouseLeave:p,onNodeContextMenu:f,onSelectionContextMenu:m,onSelectionStart:h,onSelectionEnd:g,connectionLineType:_,connectionLineStyle:y,connectionLineComponent:b,connectionLineContainerStyle:v,selectionKeyCode:w,selectionOnDrag:S,selectionMode:x,multiSelectionKeyCode:$,panActivationKeyCode:N,zoomActivationKeyCode:E,deleteKeyCode:k,onlyRenderVisibleElements:C,elementsSelectable:j,selectNodesOnDrag:O,defaultViewport:P,translateExtent:F,minZoom:R,maxZoom:I,preventScrolling:D,defaultMarkerColor:M,zoomOnScroll:T,zoomOnPinch:A,panOnScroll:L,panOnScrollSpeed:V,panOnScrollMode:q,zoomOnDoubleClick:B,panOnDrag:z,onPaneClick:H,onPaneMouseEnter:U,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneScroll:W,onPaneContextMenu:X,onEdgeUpdate:Z,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:Q,onEdgeMouseLeave:ee,edgeUpdaterRadius:te,onEdgeUpdateStart:ne,onEdgeUpdateEnd:oe,noDragClassName:re,noWheelClassName:ie,noPanClassName:ae,elevateEdgesOnSelect:se,disableKeyboardA11y:le,nodeOrigin:ce,nodeExtent:de,rfId:ue})=>(useOnInitHandler(i),jsxRuntime.exports.jsx(FlowRenderer$1,{onPaneClick:H,onPaneMouseEnter:U,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneContextMenu:X,onPaneScroll:W,deleteKeyCode:k,selectionKeyCode:w,selectionOnDrag:S,selectionMode:x,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:$,panActivationKeyCode:N,zoomActivationKeyCode:E,elementsSelectable:j,onMove:n,onMoveStart:o,onMoveEnd:r,zoomOnScroll:T,zoomOnPinch:A,zoomOnDoubleClick:B,panOnScroll:L,panOnScrollSpeed:V,panOnScrollMode:q,panOnDrag:z,defaultViewport:P,translateExtent:F,minZoom:R,maxZoom:I,onSelectionContextMenu:m,preventScrolling:D,noDragClassName:re,noWheelClassName:ie,noPanClassName:ae,disableKeyboardA11y:le,children:jsxRuntime.exports.jsxs(Viewport,{children:[jsxRuntime.exports.jsx(EdgeRenderer$1,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:c,onEdgeUpdate:Z,onlyRenderVisibleElements:C,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:Q,onEdgeMouseLeave:ee,onEdgeUpdateStart:ne,onEdgeUpdateEnd:oe,edgeUpdaterRadius:te,defaultMarkerColor:M,noPanClassName:ae,elevateEdgesOnSelect:!!se,disableKeyboardA11y:le,rfId:ue,children:jsxRuntime.exports.jsx(ConnectionLineWrapper,{style:y,type:_,component:b,containerStyle:v})}),jsxRuntime.exports.jsx("div",{className:"react-flow__edgelabel-renderer"}),jsxRuntime.exports.jsx(NodeRenderer$1,{nodeTypes:e,onNodeClick:a,onNodeDoubleClick:l,onNodeMouseEnter:d,onNodeMouseMove:u,onNodeMouseLeave:p,onNodeContextMenu:f,selectNodesOnDrag:O,onlyRenderVisibleElements:C,noPanClassName:ae,noDragClassName:re,disableKeyboardA11y:le,nodeOrigin:ce,nodeExtent:de,rfId:ue})]})}));GraphView.displayName="GraphView";var GraphView$1=require$$0.memo(GraphView);const infiniteExtent=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],initialState={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:infiniteExtent,nodeExtent:infiniteExtent,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,multiSelectionActive:!1,connectionStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:devWarn},createRFStore=()=>createStore(((e,t)=>({...initialState,setNodes:n=>{const{nodeInternals:o,nodeOrigin:r,elevateNodesOnSelect:i}=t();e({nodeInternals:createNodeInternals(n,o,r,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:o={}}=t();e({edges:n.map((e=>({...o,...e})))})},setDefaultNodesAndEdges:(n,o)=>{const r=void 0!==n,i=void 0!==o,a=r?createNodeInternals(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:a,edges:i?o:[],hasDefaultNodes:r,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:o,nodeInternals:r,fitViewOnInit:i,fitViewOnInitDone:a,fitViewOnInitOptions:s,domNode:l,nodeOrigin:c}=t(),d=l?.querySelector(".react-flow__viewport");if(!d)return;const u=window.getComputedStyle(d),{m22:p}=new window.DOMMatrixReadOnly(u.transform),f=n.reduce(((e,t)=>{const n=r.get(t.id);if(n){const o=getDimensions(t.nodeElement);!(!o.width||!o.height||n.width===o.width&&n.height===o.height&&!t.forceUpdate)&&(r.set(n.id,{...n,[internalsSymbol]:{...n[internalsSymbol],handleBounds:{source:getHandleBounds(".source",t.nodeElement,p,c),target:getHandleBounds(".target",t.nodeElement,p,c)}},...o}),e.push({id:n.id,type:"dimensions",dimensions:o}))}return e}),[]);updateAbsoluteNodePositions(r,c);const m=a||i&&!a&&fitView(t,{initial:!0,...s});e({nodeInternals:new Map(r),fitViewOnInitDone:m}),f?.length>0&&o?.(f)},updateNodePositions:(e,n=!0,o=!1)=>{const{triggerNodeChanges:r}=t();r(e.map((e=>{const t={id:e.id,type:"position",dragging:o};return n&&(t.positionAbsolute=e.positionAbsolute,t.position=e.position),t})))},triggerNodeChanges:n=>{const{onNodesChange:o,nodeInternals:r,hasDefaultNodes:i,nodeOrigin:a,getNodes:s,elevateNodesOnSelect:l}=t();if(n?.length){if(i){const t=createNodeInternals(applyNodeChanges(n,s()),r,a,l);e({nodeInternals:t})}o?.(n)}},addSelectedNodes:n=>{const{multiSelectionActive:o,edges:r,getNodes:i}=t();let a,s=null;o?a=n.map((e=>createSelectionChange(e,!0))):(a=getSelectionChanges(i(),n),s=getSelectionChanges(r,[])),updateNodesAndEdgesSelections({changedNodes:a,changedEdges:s,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:o,edges:r,getNodes:i}=t();let a,s=null;o?a=n.map((e=>createSelectionChange(e,!0))):(a=getSelectionChanges(r,n),s=getSelectionChanges(i(),[])),updateNodesAndEdgesSelections({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:o}={})=>{const{edges:r,getNodes:i}=t(),a=o||r;updateNodesAndEdgesSelections({changedNodes:(n||i()).map((e=>(e.selected=!1,createSelectionChange(e.id,!1)))),changedEdges:a.map((e=>createSelectionChange(e.id,!1))),get:t,set:e})},setMinZoom:n=>{const{d3Zoom:o,maxZoom:r}=t();o?.scaleExtent([n,r]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:o,minZoom:r}=t();o?.scaleExtent([r,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:o}=t();updateNodesAndEdgesSelections({changedNodes:o().filter((e=>e.selected)).map((e=>createSelectionChange(e.id,!1))),changedEdges:n.filter((e=>e.selected)).map((e=>createSelectionChange(e.id,!1))),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:o}=t();o.forEach((e=>{e.positionAbsolute=clampPosition(e.position,n)})),e({nodeExtent:n,nodeInternals:new Map(o)})},panBy:e=>{const{transform:n,width:o,height:r,d3Zoom:i,d3Selection:a,translateExtent:s}=t();if(!i||!a||!e.x&&!e.y)return;const l=identity.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),c=[[0,0],[o,r]],d=i?.constrain()(l,c,s);i.transform(a,d)},cancelConnection:()=>e({connectionNodeId:initialState.connectionNodeId,connectionHandleId:initialState.connectionHandleId,connectionHandleType:initialState.connectionHandleType,connectionStatus:initialState.connectionStatus}),reset:()=>e({...initialState})}))),ReactFlowProvider=({children:e})=>{const t=require$$0.useRef(null);return t.current||(t.current=createRFStore()),jsxRuntime.exports.jsx(Provider$1,{value:t.current,children:e})};ReactFlowProvider.displayName="ReactFlowProvider";const Wrapper=({children:e})=>require$$0.useContext(StoreContext)?jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment,{children:e}):jsxRuntime.exports.jsx(ReactFlowProvider,{children:e});function useNodeOrEdgeTypes(e,t){require$$0.useRef(null);return require$$0.useMemo((()=>t(e)),[e])}Wrapper.displayName="ReactFlowWrapper";const defaultNodeTypes={input:InputNode$1,default:DefaultNode$1,output:OutputNode$1,group:GroupNode},defaultEdgeTypes={default:BezierEdge,straight:StraightEdge,step:StepEdge,smoothstep:SmoothStepEdge,simplebezier:SimpleBezierEdge},initNodeOrigin=[0,0],initSnapGrid=[15,15],initDefaultViewport={x:0,y:0,zoom:1},wrapperStyle={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},ReactFlow=require$$0.forwardRef((({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i=defaultNodeTypes,edgeTypes:a=defaultEdgeTypes,onNodeClick:s,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:p,onConnect:f,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:v,onNodeContextMenu:w,onNodeDoubleClick:S,onNodeDragStart:x,onNodeDrag:$,onNodeDragStop:N,onNodesDelete:E,onEdgesDelete:k,onSelectionChange:C,onSelectionDragStart:j,onSelectionDrag:O,onSelectionDragStop:P,onSelectionContextMenu:F,onSelectionStart:R,onSelectionEnd:I,connectionMode:D=ConnectionMode.Strict,connectionLineType:M=ConnectionLineType.Bezier,connectionLineStyle:T,connectionLineComponent:A,connectionLineContainerStyle:L,deleteKeyCode:V="Backspace",selectionKeyCode:q="Shift",selectionOnDrag:B=!1,selectionMode:z=SelectionMode.Full,panActivationKeyCode:H="Space",multiSelectionKeyCode:U="Meta",zoomActivationKeyCode:K="Meta",snapToGrid:Y=!1,snapGrid:W=initSnapGrid,onlyRenderVisibleElements:X=!1,selectNodesOnDrag:Z=!0,nodesDraggable:G,nodesConnectable:J,nodesFocusable:Q,nodeOrigin:ee=initNodeOrigin,edgesFocusable:te,elementsSelectable:ne,defaultViewport:oe=initDefaultViewport,minZoom:re=.5,maxZoom:ie=2,translateExtent:ae=infiniteExtent,preventScrolling:se=!0,nodeExtent:le,defaultMarkerColor:ce="#b1b1b7",zoomOnScroll:de=!0,zoomOnPinch:ue=!0,panOnScroll:pe=!1,panOnScrollSpeed:fe=.5,panOnScrollMode:me=PanOnScrollMode.Free,zoomOnDoubleClick:he=!0,panOnDrag:ge=!0,onPaneClick:_e,onPaneMouseEnter:ye,onPaneMouseMove:be,onPaneMouseLeave:ve,onPaneScroll:we,onPaneContextMenu:Se,children:xe,onEdgeUpdate:$e,onEdgeContextMenu:Ne,onEdgeDoubleClick:Ee,onEdgeMouseEnter:ke,onEdgeMouseMove:Ce,onEdgeMouseLeave:je,onEdgeUpdateStart:Oe,onEdgeUpdateEnd:Pe,edgeUpdaterRadius:Fe=10,onNodesChange:Re,onEdgesChange:Ie,noDragClassName:De="nodrag",noWheelClassName:Me="nowheel",noPanClassName:Te="nopan",fitView:Ae=!1,fitViewOptions:Le,connectOnClick:Ve=!0,attributionPosition:qe,proOptions:Be,defaultEdgeOptions:ze,elevateNodesOnSelect:He=!0,elevateEdgesOnSelect:Ue=!1,disableKeyboardA11y:Ke=!1,autoPanOnConnect:Ye=!0,autoPanOnNodeDrag:We=!0,connectionRadius:Xe=20,onError:Ze,style:Ge,id:Je,...Qe},et)=>{const tt=useNodeOrEdgeTypes(i,createNodeTypes),nt=useNodeOrEdgeTypes(a,createEdgeTypes),ot=Je||"1";return jsxRuntime.exports.jsx("div",{...Qe,style:{...Ge,...wrapperStyle},ref:et,className:cc(["react-flow",r]),"data-testid":"rf__wrapper",id:Je,children:jsxRuntime.exports.jsxs(Wrapper,{children:[jsxRuntime.exports.jsx(GraphView$1,{onInit:c,onMove:d,onMoveStart:u,onMoveEnd:p,onNodeClick:s,onEdgeClick:l,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:v,onNodeContextMenu:w,onNodeDoubleClick:S,nodeTypes:tt,edgeTypes:nt,connectionLineType:M,connectionLineStyle:T,connectionLineComponent:A,connectionLineContainerStyle:L,selectionKeyCode:q,selectionOnDrag:B,selectionMode:z,deleteKeyCode:V,multiSelectionKeyCode:U,panActivationKeyCode:H,zoomActivationKeyCode:K,onlyRenderVisibleElements:X,selectNodesOnDrag:Z,defaultViewport:oe,translateExtent:ae,minZoom:re,maxZoom:ie,preventScrolling:se,zoomOnScroll:de,zoomOnPinch:ue,zoomOnDoubleClick:he,panOnScroll:pe,panOnScrollSpeed:fe,panOnScrollMode:me,panOnDrag:ge,onPaneClick:_e,onPaneMouseEnter:ye,onPaneMouseMove:be,onPaneMouseLeave:ve,onPaneScroll:we,onPaneContextMenu:Se,onSelectionContextMenu:F,onSelectionStart:R,onSelectionEnd:I,onEdgeUpdate:$e,onEdgeContextMenu:Ne,onEdgeDoubleClick:Ee,onEdgeMouseEnter:ke,onEdgeMouseMove:Ce,onEdgeMouseLeave:je,onEdgeUpdateStart:Oe,onEdgeUpdateEnd:Pe,edgeUpdaterRadius:Fe,defaultMarkerColor:ce,noDragClassName:De,noWheelClassName:Me,noPanClassName:Te,elevateEdgesOnSelect:Ue,rfId:ot,disableKeyboardA11y:Ke,nodeOrigin:ee,nodeExtent:le}),jsxRuntime.exports.jsx(StoreUpdater,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:f,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:G,nodesConnectable:J,nodesFocusable:Q,edgesFocusable:te,elementsSelectable:ne,elevateNodesOnSelect:He,minZoom:re,maxZoom:ie,nodeExtent:le,onNodesChange:Re,onEdgesChange:Ie,snapToGrid:Y,snapGrid:W,connectionMode:D,translateExtent:ae,connectOnClick:Ve,defaultEdgeOptions:ze,fitView:Ae,fitViewOptions:Le,onNodesDelete:E,onEdgesDelete:k,onNodeDragStart:x,onNodeDrag:$,onNodeDragStop:N,onSelectionDrag:O,onSelectionDragStart:j,onSelectionDragStop:P,noPanClassName:Te,nodeOrigin:ee,rfId:ot,autoPanOnConnect:Ye,autoPanOnNodeDrag:We,onError:Ze,connectionRadius:Xe}),jsxRuntime.exports.jsx(Wrapper$1,{onSelectionChange:C}),xe,jsxRuntime.exports.jsx(Attribution,{proOptions:Be,position:qe}),jsxRuntime.exports.jsx(A11yDescriptions,{rfId:ot,disableKeyboardA11y:Ke})]})})}));function createUseItemsState(e){return t=>{const[n,o]=require$$0.useState(t),r=require$$0.useCallback((t=>o((n=>e(t,n)))),[]);return[n,o,r]}}ReactFlow.displayName="ReactFlow";const useNodesState=createUseItemsState(applyNodeChanges),useEdgesState=createUseItemsState(applyEdgeChanges);function useOnSelectionChange({onChange:e}){const t=useStoreApi();require$$0.useEffect((()=>{t.setState({onSelectionChange:e})}),[e])}const MiniMapNode=({id:e,x:t,y:n,width:o,height:r,style:i,color:a,strokeColor:s,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,onClick:p})=>{const{background:f,backgroundColor:m}=i||{},h=a||f||m;return jsxRuntime.exports.jsx("rect",{className:cc(["react-flow__minimap-node",c]),x:t,y:n,rx:d,ry:d,width:o,height:r,fill:h,stroke:s,strokeWidth:l,shapeRendering:u,onClick:p?t=>p(t,e):void 0})};MiniMapNode.displayName="MiniMapNode";var MiniMapNode$1=require$$0.memo(MiniMapNode);const defaultWidth=200,defaultHeight=150,selector$1=e=>{const t=e.getNodes(),n={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{nodes:t.filter((e=>!e.hidden&&e.width&&e.height)),viewBB:n,boundingRect:t.length>0?getBoundsOfRects(getRectOfNodes(t,e.nodeOrigin),n):n,rfId:e.rfId,nodeOrigin:e.nodeOrigin}},getAttrFunction=e=>e instanceof Function?e:()=>e,ARIA_LABEL_KEY="react-flow__minimap-desc";function MiniMap({style:e,className:t,nodeStrokeColor:n="transparent",nodeColor:o="#e2e2e2",nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:a=2,maskColor:s="rgb(240, 240, 240, 0.6)",maskStrokeColor:l="none",maskStrokeWidth:c=1,position:d="bottom-right",onClick:u,onNodeClick:p,pannable:f=!1,zoomable:m=!1,ariaLabel:h="React Flow mini map"}){const g=useStoreApi(),_=require$$0.useRef(null),{boundingRect:y,viewBB:b,nodes:v,rfId:w,nodeOrigin:S}=useStore(selector$1,shallow),x=e?.width??defaultWidth,$=e?.height??defaultHeight,N=getAttrFunction(o),E=getAttrFunction(n),k=getAttrFunction(r),C=y.width/x,j=y.height/$,O=Math.max(C,j),P=O*x,F=O*$,R=5*O,I=y.x-(P-y.width)/2-R,D=y.y-(F-y.height)/2-R,M=P+2*R,T=F+2*R,A="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision",L=`${ARIA_LABEL_KEY}-${w}`,V=require$$0.useRef(0);V.current=O,require$$0.useEffect((()=>{if(_.current){const e=select(_.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:o}=g.getState();if("wheel"!==e.sourceEvent.type||!n||!o)return;const r=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*10,i=t[2]*Math.pow(2,r);o.scaleTo(n,i)},n=e=>{const{transform:t,d3Selection:n,d3Zoom:o,translateExtent:r,width:i,height:a}=g.getState();if("mousemove"!==e.sourceEvent.type||!n||!o)return;const s={x:t[0]-e.sourceEvent.movementX*V.current*Math.max(1,t[2]),y:t[1]-e.sourceEvent.movementY*V.current*Math.max(1,t[2])},l=[[0,0],[i,a]],c=identity.translate(s.x,s.y).scale(t[2]),d=o.constrain()(c,l,r);o.transform(n,d)},o=zoom().on("zoom",f?n:null).on("zoom.wheel",m?t:null);return e.call(o),()=>{e.on("zoom",null)}}}),[f,m]);const q=u?e=>{const t=pointer(e);u(e,{x:t[0],y:t[1]})}:void 0,B=p?(e,t)=>{const n=g.getState().nodeInternals.get(t);p(e,n)}:void 0;return jsxRuntime.exports.jsx(Panel,{position:d,style:e,className:cc(["react-flow__minimap",t]),children:jsxRuntime.exports.jsxs("svg",{width:x,height:$,viewBox:`${I} ${D} ${M} ${T}`,role:"img","aria-labelledby":L,ref:_,onClick:q,children:[h&&jsxRuntime.exports.jsx("title",{id:L,children:h}),v.map((e=>{const{x:t,y:n}=getNodePositionWithOrigin(e,S).positionAbsolute;return jsxRuntime.exports.jsx(MiniMapNode$1,{x:t,y:n,width:e.width,height:e.height,style:e.style,className:k(e),color:N(e),borderRadius:i,strokeColor:E(e),strokeWidth:a,shapeRendering:A,onClick:B,id:e.id},e.id)})),jsxRuntime.exports.jsx("path",{className:"react-flow__minimap-mask",d:`M${I-R},${D-R}h${M+2*R}v${T+2*R}h${-M-2*R}z\n M${b.x},${b.y}h${b.width}v${b.height}h${-b.width}z`,fill:s,fillRule:"evenodd",stroke:l,strokeWidth:c,pointerEvents:"none"})]})})}function PlusIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:jsxRuntime.exports.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function MinusIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:jsxRuntime.exports.jsx("path",{d:"M0 0h32v4.2H0z"})})}function FitViewIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:jsxRuntime.exports.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function LockIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntime.exports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function UnlockIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntime.exports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}MiniMap.displayName="MiniMap",require$$0.memo(MiniMap);const ControlButton=({children:e,className:t,...n})=>jsxRuntime.exports.jsx("button",{type:"button",className:cc(["react-flow__controls-button",t]),...n,children:e});ControlButton.displayName="ControlButton";const isInteractiveSelector=e=>e.nodesDraggable&&e.nodesConnectable&&e.elementsSelectable,Controls=({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:a,onFitView:s,onInteractiveChange:l,className:c,children:d,position:u="bottom-left"})=>{const p=useStoreApi(),[f,m]=require$$0.useState(!1),h=useStore(isInteractiveSelector),{zoomIn:g,zoomOut:_,fitView:y}=useReactFlow();if(require$$0.useEffect((()=>{m(!0)}),[]),!f)return null;return jsxRuntime.exports.jsxs(Panel,{className:cc(["react-flow__controls",c]),position:u,style:e,children:[t&&jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(ControlButton,{onClick:()=>{g(),i?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",children:jsxRuntime.exports.jsx(PlusIcon,{})}),jsxRuntime.exports.jsx(ControlButton,{onClick:()=>{_(),a?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",children:jsxRuntime.exports.jsx(MinusIcon,{})})]}),n&&jsxRuntime.exports.jsx(ControlButton,{className:"react-flow__controls-fitview",onClick:()=>{y(r),s?.()},title:"fit view","aria-label":"fit view",children:jsxRuntime.exports.jsx(FitViewIcon,{})}),o&&jsxRuntime.exports.jsx(ControlButton,{className:"react-flow__controls-interactive",onClick:()=>{p.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),l?.(!h)},title:"toggle interactivity","aria-label":"toggle interactivity",children:h?jsxRuntime.exports.jsx(UnlockIcon,{}):jsxRuntime.exports.jsx(LockIcon,{})}),d]})};Controls.displayName="Controls";var Controls$1=require$$0.memo(Controls),BackgroundVariant;function LinePattern({color:e,dimensions:t,lineWidth:n}){return jsxRuntime.exports.jsx("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function DotPattern({color:e,radius:t}){return jsxRuntime.exports.jsx("circle",{cx:t,cy:t,r:t,fill:e})}!function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"}(BackgroundVariant||(BackgroundVariant={}));const defaultColor={[BackgroundVariant.Dots]:"#91919a",[BackgroundVariant.Lines]:"#eee",[BackgroundVariant.Cross]:"#e2e2e2"},defaultSize={[BackgroundVariant.Dots]:1,[BackgroundVariant.Lines]:1,[BackgroundVariant.Cross]:6},selector=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Background({variant:e=BackgroundVariant.Dots,gap:t=20,size:n,lineWidth:o=1,color:r,style:i,className:a}){const s=require$$0.useRef(null),{transform:l,patternId:c}=useStore(selector,shallow),d=r||defaultColor[e],u=n||defaultSize[e],p=e===BackgroundVariant.Dots,f=e===BackgroundVariant.Cross,m=Array.isArray(t)?t:[t,t],h=[m[0]*l[2]||1,m[1]*l[2]||1],g=u*l[2],_=f?[g,g]:h,y=p?[g/2,g/2]:[_[0]/2,_[1]/2];return jsxRuntime.exports.jsxs("svg",{className:cc(["react-flow__background",a]),style:{...i,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:s,children:[jsxRuntime.exports.jsx("pattern",{id:c,x:l[0]%h[0],y:l[1]%h[1],width:h[0],height:h[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${y[0]},-${y[1]})`,children:p?jsxRuntime.exports.jsx(DotPattern,{color:d,radius:g/2}):jsxRuntime.exports.jsx(LinePattern,{dimensions:_,color:d,lineWidth:o})}),jsxRuntime.exports.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${c})`})]})}Background.displayName="Background";var Background$1=require$$0.memo(Background);function _typeof$1(e){return _typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$1(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toPrimitive$1(e,t){if("object"!==_typeof$1(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof$1(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"===_typeof$1(t)?t:String(t)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey$1(o.key),o)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _possibleConstructorReturn(e,t){if(t&&("object"===_typeof$1(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _defineProperty$1(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableRest()}function ownKeys$6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var consoleLogger={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},Logger=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.init(t,n)}return _createClass$1(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||consoleLogger,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,o){return o&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,_objectSpread$6(_objectSpread$6({},{prefix:"".concat(this.prefix,":").concat(t,":")}),this.options))}},{key:"clone",value:function(t){return(t=t||this.options).prefix=t.prefix||this.prefix,new e(this.logger,t)}}]),e}(),baseLogger=new Logger,EventEmitter=function(){function e(){_classCallCheck$1(this,e),this.observers={}}return _createClass$1(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach((function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)})),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter((function(e){return e!==t})):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];if(this.observers[e]){var r=[].concat(this.observers[e]);r.forEach((function(e){e.apply(void 0,n)}))}if(this.observers["*"]){var i=[].concat(this.observers["*"]);i.forEach((function(t){t.apply(t,[e].concat(n))}))}}}]),e}();function defer(){var e,t,n=new Promise((function(n,o){e=n,t=o}));return n.resolve=e,n.reject=t,n}function makeString(e){return null==e?"":""+e}function copy(e,t,n){e.forEach((function(e){t[e]&&(n[e]=t[e])}))}function getLastOfPath(e,t,n){function o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var i="string"!=typeof t?[].concat(t):t.split(".");i.length>1;){if(r())return{};var a=o(i.shift());!e[a]&&n&&(e[a]=new n),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return r()?{}:{obj:e,k:o(i.shift())}}function setPath(e,t,n){var o=getLastOfPath(e,t,Object);o.obj[o.k]=n}function pushPath(e,t,n,o){var r=getLastOfPath(e,t,Object),i=r.obj,a=r.k;i[a]=i[a]||[],o&&(i[a]=i[a].concat(n)),o||i[a].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),o=n.obj,r=n.k;if(o)return o[r]}function getPathWithDefaults(e,t,n){var o=getPath(e,n);return void 0!==o?o:getPath(t,n)}function deepExtend(e,t,n){for(var o in t)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof t[o]||t[o]instanceof String?n&&(e[o]=t[o]):deepExtend(e[o],t[o],n):e[o]=t[o]);return e}function regexEscape(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var _entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function escape(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return _entityMap[e]})):e}var isIE10="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,chars=[" ",",","?","!",";"];function looksLikeObjectPath(e,t,n){t=t||"",n=n||"";var o=chars.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===o.length)return!0;var r=new RegExp("(".concat(o.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),i=!r.test(e);if(!i){var a=e.indexOf(n);a>0&&!r.test(e.substring(0,a))&&(i=!0)}return i}function deepFind(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var o=t.split(n),r=e,i=0;i<o.length;++i){if(!r)return;if("string"==typeof r[o[i]]&&i+1<o.length)return;if(void 0===r[o[i]]){for(var a=2,s=o.slice(i,i+a).join(n),l=r[s];void 0===l&&o.length>i+a;)a++,l=r[s=o.slice(i,i+a).join(n)];if(void 0===l)return;if(null===l)return null;if(t.endsWith(s)){if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s]}var c=o.slice(i+a).join(n);return c?deepFind(l,c,n):void 0}r=r[o[i]]}return r}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$3(e){var t=_isNativeReflectConstruct$3();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$3(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var ResourceStore=function(e){_inherits(n,e);var t=_createSuper$3(n);function n(e){var o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),o.data=e||{},o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),void 0===o.options.ignoreJSONStructure&&(o.options.ignoreJSONStructure=!0),o}return _createClass$1(n,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[e,t];n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(a=e.split("."));var s=getPath(this.data,a);return s||!i||"string"!=typeof n?s:deepFind(this.data&&this.data[e]&&this.data[e][t],n,r)}},{key:"addResource",value:function(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,a=[e,t];n&&(a=a.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(o=t,t=(a=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,a,o),r.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)"string"!=typeof n[r]&&"[object Array]"!==Object.prototype.toString.apply(n[r])||this.addResource(e,t,r,n[r],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},a=[e,t];e.indexOf(".")>-1&&(o=n,n=t,t=(a=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,a)||{};o?deepExtend(s,n,r):s=_objectSpread$5(_objectSpread$5({},s),n),setPath(this.data,a,s),i.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?_objectSpread$5(_objectSpread$5({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),n}(EventEmitter),postProcessor={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,o,r){var i=this;return e.forEach((function(e){i.processors[e]&&(t=i.processors[e].process(t,n,o,r))})),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$2(e){var t=_isNativeReflectConstruct$2();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$2(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var checkedLoadedFor={},Translator=function(e){_inherits(n,e);var t=_createSuper$2(n);function n(e){var o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(o)),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=baseLogger.create("translator"),o}return _createClass$1(n,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=t.ns||this.options.defaultNS||[],i=n&&e.indexOf(n)>-1,a=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||looksLikeObjectPath(e,n,o));if(i&&!a){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:r};var l=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,o){var r=this;if("object"!==_typeof$1(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"===_typeof$1(t)&&(t=_objectSpread$4({},t)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var i=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,a=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,s=this.extractFromKey(e[e.length-1],t),l=s.key,c=s.namespaces,d=c[c.length-1],u=t.lng||this.language,p=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&"cimode"===u.toLowerCase()){if(p){var f=t.nsSeparator||this.options.nsSeparator;return i?{res:"".concat(d).concat(f).concat(l),usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d}:"".concat(d).concat(f).concat(l)}return i?{res:l,usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d}:l}var m=this.resolve(e,t),h=m&&m.res,g=m&&m.usedKey||l,_=m&&m.exactUsedKey||l,y=Object.prototype.toString.apply(h),b=["[object Number]","[object Function]","[object RegExp]"],v=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,w=!this.i18nFormat||this.i18nFormat.handleAsObject,S="string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h;if(w&&h&&S&&b.indexOf(y)<0&&("string"!=typeof v||"[object Array]"!==y)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var x=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,h,_objectSpread$4(_objectSpread$4({},t),{},{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return i?(m.res=x,m):x}if(a){var $="[object Array]"===y,N=$?[]:{},E=$?_:g;for(var k in h)if(Object.prototype.hasOwnProperty.call(h,k)){var C="".concat(E).concat(a).concat(k);N[k]=this.translate(C,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),N[k]===C&&(N[k]=h[k])}h=N}}else if(w&&"string"==typeof v&&"[object Array]"===y)(h=h.join(v))&&(h=this.extendTranslation(h,e,t,o));else{var j=!1,O=!1,P=void 0!==t.count&&"string"!=typeof t.count,F=n.hasDefaultValue(t),R=P?this.pluralResolver.getSuffix(u,t.count,t):"",I=t["defaultValue".concat(R)]||t.defaultValue;!this.isValidLookup(h)&&F&&(j=!0,h=I),this.isValidLookup(h)||(O=!0,h=l);var D=t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,M=D&&O?void 0:h,T=F&&I!==h&&this.options.updateMissing;if(O||j||T){if(this.logger.log(T?"updateKey":"missingKey",u,d,l,T?I:h),a){var A=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));A&&A.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var L=[],V=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&V&&V[0])for(var q=0;q<V.length;q++)L.push(V[q]);else"all"===this.options.saveMissingTo?L=this.languageUtils.toResolveHierarchy(t.lng||this.language):L.push(t.lng||this.language);var B=function(e,n,o){var i=F&&o!==h?o:M;r.options.missingKeyHandler?r.options.missingKeyHandler(e,d,n,i,T,t):r.backendConnector&&r.backendConnector.saveMissing&&r.backendConnector.saveMissing(e,d,n,i,T,t),r.emit("missingKey",e,d,n,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&P?L.forEach((function(e){r.pluralResolver.getSuffixes(e,t).forEach((function(n){B([e],l+n,t["defaultValue".concat(n)]||I)}))})):B(L,l,I))}h=this.extendTranslation(h,e,t,m,o),O&&h===l&&this.options.appendNamespaceToMissingKey&&(h="".concat(d,":").concat(l)),(O||j)&&this.options.parseMissingKeyHandler&&(h="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(d,":").concat(l):l,j?h:void 0):this.options.parseMissingKeyHandler(h))}return i?(m.res=h,m):h}},{key:"extendTranslation",value:function(e,t,n,o,r){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(_objectSpread$4(_objectSpread$4({},n),{interpolation:_objectSpread$4(_objectSpread$4({},this.options.interpolation),n.interpolation)}));var a,s="string"==typeof e&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(s){var l=e.match(this.interpolator.nestingRegexp);a=l&&l.length}var c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c=_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),c)),e=this.interpolator.interpolate(e,c,n.lng||this.language,n),s){var d=e.match(this.interpolator.nestingRegexp);a<(d&&d.length)&&(n.nest=!1)}!n.lng&&"v1"!==this.options.compatibilityAPI&&o&&o.res&&(n.lng=o.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return r&&r[0]===o[0]&&!n.context?(i.logger.warn("It seems you are nesting recursively key: ".concat(o[0]," in key: ").concat(t[0])),null):i.translate.apply(i,o.concat([t]))}),n)),n.interpolation&&this.interpolator.reset()}var u=n.postProcess||this.options.postProcess,p="string"==typeof u?[u]:u;return null!=e&&p&&p.length&&!1!==n.applyPostProcessor&&(e=postProcessor.handle(p,e,t,this.options&&this.options.postProcessPassResolved?_objectSpread$4({i18nResolved:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,r,i,a=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!a.isValidLookup(t)){var l=a.extractFromKey(e,s),c=l.key;n=c;var d=l.namespaces;a.options.fallbackNS&&(d=d.concat(a.options.fallbackNS));var u=void 0!==s.count&&"string"!=typeof s.count,p=u&&!s.ordinal&&0===s.count&&a.pluralResolver.shouldUseIntlApi(),f=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,m=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);d.forEach((function(e){a.isValidLookup(t)||(i=e,!checkedLoadedFor["".concat(m[0],"-").concat(e)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(i)&&(checkedLoadedFor["".concat(m[0],"-").concat(e)]=!0,a.logger.warn('key "'.concat(n,'" for languages "').concat(m.join(", "),'" won\'t get resolved as namespace "').concat(i,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach((function(n){if(!a.isValidLookup(t)){r=n;var i,l=[c];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(l,c,n,e,s);else{var d;u&&(d=a.pluralResolver.getSuffix(n,s.count,s));var m="".concat(a.options.pluralSeparator,"zero");if(u&&(l.push(c+d),p&&l.push(c+m)),f){var h="".concat(c).concat(a.options.contextSeparator).concat(s.context);l.push(h),u&&(l.push(h+d),p&&l.push(h+m))}}for(;i=l.pop();)a.isValidLookup(t)||(o=i,t=a.getResource(n,e,i,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:o,usedLng:r,usedNS:i}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),n}(EventEmitter);function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}var LanguageUtil=function(){function e(t){_classCallCheck$1(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils")}return _createClass$1(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=capitalize(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var o=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(o)||(t=o)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var o=n.getLanguagePartFromCode(e);if(n.isSupportedCode(o))return t=o;t=n.options.supportedLngs.find((function(e){return e===o?e:e.indexOf("-")<0&&o.indexOf("-")<0?void 0:0===e.indexOf(o)?e:void 0}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],i=function(e){e&&(n.isSupportedCode(e)?r.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(e))):"string"==typeof e&&i(this.formatLanguageCode(e)),o.forEach((function(e){r.indexOf(e)<0&&i(n.formatLanguageCode(e))})),r}}]),e}(),sets=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},deprecatedJsonVersions=["v1","v2","v3"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5};function createRules(){var e={};return sets.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:_rulesPluralsTypes[t.fc]}}))})),e}var PluralResolver=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.languageUtils=t,this.options=n,this.logger=baseLogger.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=createRules()}return _createClass$1(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((function(e,t){return suffixesOrder[e]-suffixesOrder[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):o.numbers.map((function(o){return t.getSuffix(e,o,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(t)):this.getSuffixRetroCompatible(o,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,o=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[o];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):i():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?i():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}},{key:"shouldUseIntlApi",value:function(){return!deprecatedJsonVersions.includes(this.options.compatibilityJSON)}}]),e}();function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function deepFindWithDefaults(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=getPathWithDefaults(e,t,n);return!i&&r&&"string"==typeof n&&void 0===(i=deepFind(e,n,o))&&(i=deepFind(t,n,o)),i}var Interpolator=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return _createClass$1(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:escape,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?regexEscape(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?regexEscape(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?regexEscape(t.nestingPrefix):t.nestingPrefixEscaped||regexEscape("$t("),this.nestingSuffix=t.nestingSuffix?regexEscape(t.nestingSuffix):t.nestingSuffixEscaped||regexEscape(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,o){var r,i,a,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var d=function(e){if(e.indexOf(s.formatSeparator)<0){var r=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(r,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:e})):r}var i=e.split(s.formatSeparator),a=i.shift().trim(),c=i.join(s.formatSeparator).trim();return s.format(deepFindWithDefaults(t,l,a,s.options.keySeparator,s.options.ignoreJSONStructure),c,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:a}))};this.resetRegExp();var u=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,p=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?c(s.escape(e)):c(e)}}].forEach((function(t){for(a=0;r=t.regex.exec(e);){var n=r[1].trim();if(void 0===(i=d(n)))if("function"==typeof u){var l=u(e,r,o);i="string"==typeof l?l:""}else if(o&&Object.prototype.hasOwnProperty.call(o,n))i="";else{if(p){i=r[0];continue}s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),i=""}else"string"==typeof i||s.useRawValueToEscape||(i=makeString(i));var c=t.safeValue(i);if(e=e.replace(r[0],c),p?(t.regex.lastIndex+=i.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++a>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,o,r,i=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var o=e.split(new RegExp("".concat(n,"[ ]*{"))),i="{".concat(o[1]);e=o[0];var a=(i=this.interpolate(i,r)).match(/'/g),s=i.match(/"/g);(a&&a.length%2==0&&!s||s.length%2!=0)&&(i=i.replace(/'/g,'"'));try{r=JSON.parse(i),t&&(r=_objectSpread$3(_objectSpread$3({},t),r))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(i)}return delete r.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(r=(r=_objectSpread$3({},a)).replace&&"string"!=typeof r.replace?r.replace:r).applyPostProcessor=!1,delete r.defaultValue;var c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var d=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=d.shift(),l=d,c=!0}if((o=t(s.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=makeString(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),c&&(o=l.reduce((function(e,t){return i.format(e,t,a.lng,_objectSpread$3(_objectSpread$3({},a),{},{interpolationkey:n[1].trim()}))}),o.trim())),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function parseFormatStr(e){var t=e.toLowerCase().trim(),n={};if(e.indexOf("(")>-1){var o=e.split("(");t=o[0].toLowerCase().trim();var r=o[1].substring(0,o[1].length-1);if("currency"===t&&r.indexOf(":")<0)n.currency||(n.currency=r.trim());else if("relativetime"===t&&r.indexOf(":")<0)n.range||(n.range=r.trim());else{r.split(";").forEach((function(e){if(e){var t=_toArray(e.split(":")),o=t[0],r=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[o.trim()]||(n[o.trim()]=r),"false"===r&&(n[o.trim()]=!1),"true"===r&&(n[o.trim()]=!0),isNaN(r)||(n[o.trim()]=parseInt(r,10))}}))}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,o,r){var i=o+JSON.stringify(r),a=t[i];return a||(a=e(o,r),t[i]=a),a(n)}}var Formatter=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("formatter"),this.options=t,this.formats={number:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),currency:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2(_objectSpread$2({},t),{},{style:"currency"}));return function(e){return n.format(e)}})),datetime:createCachedFormatter((function(e,t){var n=new Intl.DateTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),relativetime:createCachedFormatter((function(e,t){var n=new Intl.RelativeTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e,t.range||"day")}})),list:createCachedFormatter((function(e,t){var n=new Intl.ListFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}}))},this.init(t)}return _createClass$1(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=t.interpolation;this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=createCachedFormatter(t)}},{key:"format",value:function(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=t.split(this.formatSeparator),a=i.reduce((function(e,t){var i=parseFormatStr(t),a=i.formatName,s=i.formatOptions;if(o.formats[a]){var l=e;try{var c=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},d=c.locale||c.lng||r.locale||r.lng||n;l=o.formats[a](e,d,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),r),c))}catch(e){o.logger.warn(e)}return l}return o.logger.warn("there was no format function for ".concat(a)),e}),e);return a}}]),e}();function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$1(e){var t=_isNativeReflectConstruct$1();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$1(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function removePending(e,t){void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)}var Connector=function(e){_inherits(n,e);var t=_createSuper$1(n);function n(e,o,r){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return _classCallCheck$1(this,n),i=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(i)),i.backend=e,i.store=o,i.services=r,i.languageUtils=r.languageUtils,i.options=a,i.logger=baseLogger.create("backendConnector"),i.waitingReads=[],i.maxParallelReads=a.maxParallelReads||10,i.readingCalls=0,i.maxRetries=a.maxRetries>=0?a.maxRetries:5,i.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(r,a.backend,a),i}return _createClass$1(n,[{key:"queueLoad",value:function(e,t,n,o){var r=this,i={},a={},s={},l={};return e.forEach((function(e){var o=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&r.store.hasResourceBundle(e,t)?r.state[s]=2:r.state[s]<0||(1===r.state[s]?void 0===a[s]&&(a[s]=!0):(r.state[s]=1,o=!1,void 0===a[s]&&(a[s]=!0),void 0===i[s]&&(i[s]=!0),void 0===l[t]&&(l[t]=!0)))})),o||(s[e]=!0)})),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var o=e.split("|"),r=o[0],i=o[1];t&&this.emit("failedLoading",r,i,t),n&&this.store.addResourceBundle(r,i,n),this.state[e]=t?-1:2;var a={};this.queue.forEach((function(n){pushPath(n.loaded,[r],i),removePending(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach((function(e){a[e]||(a[e]={});var t=n.loaded[e];t.length&&t.forEach((function(t){void 0===a[e][t]&&(a[e][t]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads)this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});else{this.readingCalls++;var s=function(s,l){if(o.readingCalls--,o.waitingReads.length>0){var c=o.waitingReads.shift();o.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&r<o.maxRetries?setTimeout((function(){o.read.call(o,e,t,n,r+1,2*i,a)}),i):a(s,l)},l=this.backend[n].bind(this.backend);if(2!==l.length)return l(e,t,s);try{var c=l(e,t);c&&"function"==typeof c.then?c.then((function(e){return s(null,e)})).catch(s):s(null,c)}catch(e){s(e)}}}},{key:"prepareLoading",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var i=this.queueLoad(e,t,o,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=e.split("|"),r=o[0],i=o[1];this.read(r,i,"read",void 0,void 0,(function(o,a){o&&t.logger.warn("".concat(n,"loading namespace ").concat(i," for language ").concat(r," failed"),o),!o&&a&&t.logger.log("".concat(n,"loaded namespace ").concat(i," for language ").concat(r),a),t.loaded(e,o,a)}))}},{key:"saveMissing",value:function(e,t,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t))this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=n&&""!==n){if(this.backend&&this.backend.create){var s=_objectSpread$1(_objectSpread$1({},i),{},{isUpdate:r}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,o,s):l(e,t,n,o))&&"function"==typeof c.then?c.then((function(e){return a(null,e)})).catch(a):a(null,c)}catch(e){a(e)}else l(e,t,n,o,a,s)}e&&e[0]&&this.store.addResource(e[0],t,n,o)}}}]),n}(EventEmitter);function get(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===_typeof$1(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===_typeof$1(e[2])||"object"===_typeof$1(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,o){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function transformOptions(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function noop(){}function bindMemberFunctions(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))}))}var I18n=function(e){_inherits(n,e);var t=_createSuper(n);function n(){var e,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(_classCallCheck$1(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(o),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),r&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,r),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout((function(){e.init(o,r)}),0)}return e}return _createClass$1(n,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var o=get();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},o),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},o.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var i;this.modules.logger?baseLogger.init(r(this.modules.logger),this.options):baseLogger.init(null,this.options),this.modules.formatter?i=this.modules.formatter:"undefined"!=typeof Intl&&(i=Formatter);var a=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);var s=this.services;s.logger=baseLogger,s.resourceStore=this.store,s.languageUtils=a,s.pluralResolver=new PluralResolver(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!i||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(s.formatter=r(i),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Interpolator(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new Connector(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),this.modules.languageDetector&&(s.languageDetector=r(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=r(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new Translator(this.services,this.options),this.translator.on("*",(function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),this.modules.external.forEach((function(t){t.init&&t.init(e)}))}if(this.format=this.options.interpolation.format,n||(n=noop),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var c=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];c.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));var d=["addResource","addResources","addResourceBundle","removeResourceBundle"];d.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var u=defer(),p=function(){var t=function(t,o){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),u.resolve(o),n(t,o)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?p():setTimeout(p,0),u}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,o=n,r="string"==typeof e?e:this.language;if("function"==typeof e&&(o=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&"cimode"===r.toLowerCase())return o();var i=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){i.indexOf(e)<0&&i.push(e)}))};if(r)a(r);else{var s=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);s.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(i,this.options.ns,(function(e){e||t.resolvedLanguage||!t.language||t.setResolvedLanguage(t.language),o(e)}))}else o(null)}},{key:"reloadResources",value:function(e,t,n){var o=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,(function(e){o.resolve(),n(e)})),o}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&postProcessor.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<this.languages.length;t++){var n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var o=defer();this.emit("languageChanging",e);var r=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},i=function(i){e||i||!n.services.languageDetector||(i=[]);var a="string"==typeof i?i:n.services.languageUtils.getBestMatchFromCodes(i);a&&(n.language||r(a),n.translator.language||n.translator.changeLanguage(a),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage&&n.services.languageDetector.cacheUserLanguage(a)),n.loadResources(a,(function(e){!function(e,i){i?(r(i),n.translator.changeLanguage(i),n.isLanguageChangingTo=void 0,n.emit("languageChanged",i),n.logger.log("languageChanged",i)):n.isLanguageChangingTo=void 0,o.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,a)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(i):this.services.languageDetector.detect(i):i(e):i(this.services.languageDetector.detect()),o}},{key:"getFixedT",value:function(e,t,n){var o=this,r=function e(t,r){var i;if("object"!==_typeof$1(r)){for(var a=arguments.length,s=new Array(a>2?a-2:0),l=2;l<a;l++)s[l-2]=arguments[l];i=o.options.overloadTranslationOptionHandler([t,r].concat(s))}else i=_objectSpread$7({},r);i.lng=i.lng||e.lng,i.lngs=i.lngs||e.lngs,i.ns=i.ns||e.ns,i.keyPrefix=i.keyPrefix||n||e.keyPrefix;var c,d=o.options.keySeparator||".";return c=i.keyPrefix&&Array.isArray(t)?t.map((function(e){return"".concat(i.keyPrefix).concat(d).concat(e)})):i.keyPrefix?"".concat(i.keyPrefix).concat(d).concat(t):t,o.t(c,i)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var o=n.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var a=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};if(n.precheck){var s=n.precheck(this,a);if(void 0!==s)return s}return!!this.hasResourceBundle(o,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!a(o,e)||r&&!a(i,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=defer();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){o.resolve(),t&&t(e)})),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],r=e.filter((function(e){return o.indexOf(e)<0}));return r.length?(this.options.preload=o.concat(r),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";var t=this.services&&this.services.languageUtils||new LanguageUtil(get());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),i=new n(r);void 0===t.debug&&void 0===t.prefix||(i.logger=i.logger.clone(t));var a=["store","services","language"];return a.forEach((function(t){i[t]=e[t]})),i.services=_objectSpread$7({},this.services),i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i.translator=new Translator(i.services,i.options),i.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];i.emit.apply(i,[e].concat(n))})),i.init(r,o),i.translator.options=i.options,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),n}(EventEmitter);_defineProperty$1(I18n,"createInstance",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new I18n(e,t)}));var instance=I18n.createInstance();function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"===_typeof(t)?t:String(t)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}instance.createInstance=I18n.createInstance,instance.createInstance,instance.dir,instance.init,instance.loadResources,instance.reloadResources,instance.use,instance.changeLanguage,instance.getFixedT,instance.t,instance.exists,instance.setDefaultNamespace,instance.hasLoadedNamespace,instance.loadNamespaces,instance.loadLanguages;var matchHtmlEntity=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,htmlEntities={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},unescapeHtmlEntity=function(e){return htmlEntities[e]},unescape=function(e){return e.replace(matchHtmlEntity,unescapeHtmlEntity)};function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var defaultOptions={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:unescape};function setDefaults(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};defaultOptions=_objectSpread(_objectSpread({},defaultOptions),e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var initReactI18next={type:"3rdParty",init:function(e){setDefaults(e.options.react)}};require$$0.createContext(),function(){function e(){_classCallCheck(this,e),this.usedNamespaces={}}_createClass(e,[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach((function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])}();var freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),_root=root$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol;Symbol$2&&Symbol$2.toStringTag;var Symbol$1=_Symbol;Symbol$1&&Symbol$1.toStringTag;var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},o=getAuthorization();o&&(n.Authorization=o),t.headers=Object.assign({},n,t.headers),t.credentials="include";const r=await fetch(`${getRootUrl()}${e}`,t);if(401===r.status)throw new Error(401);const i=await r.json();if(i.errors)throw console.error(i.errors),new Error("Failed to fetch API");return i}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||(e||"")}const Router={getTabDisplayAs(e){var t=new URLSearchParams(document.location.search);if(t.has("display"))return t.get("display");const n=`tab_${e}_display`,o=localStorage.getItem(n);return o||"grid"},setTabDisplayAs(e,t){const n=`tab_${e}_display`;localStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:o})=>`/app/${t}/${n}/grid/${o}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:o,recordId:r,listViewName:i,_templateType:a}=e;return"JavaScript"===a?`/app/${n}/${o}/view/${r}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${o}/view/${r}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:o,objectName:r,foreignKey:i})=>`/app/${t}/${n}/${o}/${r}/grid?related_field_name=${i}`};function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return(299*parseInt(t.substr(0,2),16)+587*parseInt(t.substr(2,2),16)+114*parseInt(t.substr(4,2),16))/1e3<128?"#ffffff":"#000000"}function getNumberTpl(e){return`<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return`<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getSelectMap(e){let t={};return ___default.forEach(e,(e=>{const n=e.value+"",o=e.color+"";if(o){const r="#"===o.charAt(0)?o:"#"+o,i="background:"+r+";color:"+getContrastColor(r);t[n]=`<span class="rounded-xl px-2 py-1" style='${i}'>${e.label}</span>`}else t[n]=e.label})),t}function getNameTplUrl(e,t){if("cms_files"===t.objectName)return"${context.rootUrl}/api/files/files/${versions[0]}?download=true";return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){const n=getNameTplUrl(e,t);let o="";return t&&t.isLookup&&(o="target='_blank'"),`<a href="${n}" ${o}>\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;let o="";t&&t.isLookup&&(o="target='_blank'");const r=t.onlyDisplayLabel;let i=`data._display.${e.name}`;if(e.isTableField&&(i=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=item.label%></a>`}n=`\n <% if (${i} && ${i}.length) { %><% ${i}.forEach(function(item,index) { %> <% if(index>0 && index<${i}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let i=`\${_display.${e.name}.label}`,a=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;if(e.isTableField&&(i=`\${${e.name}.label}`,a=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),!r){i=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${a}`,recordId:`${s}`})}" ${o}>${i}</a>`}n=i}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=item.label%></a>`}n=`\n <% if (${i} && ${i}.length) { %><% ${i}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const o=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${o}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%= data._display.${e.name} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : data._display.${e.name} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}function getLocationTpl(e){return`\${${e.name} ? ${e.name}.address : ''}`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLabel)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"location":return await getLocationTpl(e);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t){let n=[];0!=t&&(t=!0);let o=["_id"],r=[],i=[];i=___default__namespace.isArray(e)?e:___default__namespace.values(e);for(const e of i)e.expand?n.push(e):e.name.indexOf(".")<0?(!t||"lookup"!=e.type&&"master_detail"!=e.type?o.push(e.alias?`${e.alias}:${e.name}`:e.name):(o.push(`${e.name}`),r.push(`${e.name}`)),___default.includes(["time","date","datetime","boolean","number","currency"],e.type)&&o.push(`${e.name}`),___default.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&r.push(`${e.name}`)):(objectFieldName=e.name.split(".")[0],o.push(objectFieldName),r.push(objectFieldName));r=___default__namespace.uniq(r),o=___default__namespace.uniq(o);let a="";return n.length>0&&___default__namespace.each(n,(function(e){a+=`${e.expandInfo.fieldName}:${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`})),r.length>0?`${o.join(",")},${a},_display:_ui{${r.join(",")}}`:___default.trimEnd(`${o.join(" ")},${a}`,",")}async function getFindQuery(e,t,n,o){let r=o.limit||10,i=`(top: ${r})`;t&&(i=`(filters:["_id", "=", "${t}"], top: ${r})`);let a="data";o&&(o.alias&&(a=o.alias),o.filters&&(i=`(filters:${o.filters})`),o.queryOptions&&(i=`(${o.queryOptions})`));var s="";e.enable_tree&&___default__namespace.includes(___default__namespace.keys(e.fields),"parent")&&___default__namespace.includes(___default__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===o.count?"":`,count:${e.name}__count(filters:{__filters})`,d=o.moreQueries?.length?","+o.moreQueries.map((function(e){return e.replace(/^{/,"").replace(/}$/,"")})).join(","):"";return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${a}:${e.name}${i}{${await getFieldsTemplate(n,o.expand)}${s}${l}}${c}${d}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters}"}var frontend_field_group_generalization$1="Generalization",frontend_download$1="Download",frontend_form_save$1="Save",frontend_form_save_and_new$1="Save and New",frontend_form_cancel$1="Cancel",frontend_form_new$1="New",frontend_form_edit$1="Edit",frontend_form_preview$1="Preview",frontend_form_select$1="Select",frontend_form_please_select$1="Please select",frontend_form_confirm$1="Confirm",frontend_form_delete$1="Delete",frontend_form_view$1="view",frontend_delete_confirm_text$1="Are you sure you want to delete this item?",frontend_delete_many_selected_required$1="Please select the item to be deleted",frontend_delete_many_confirm_text$1="Are you sure you want to delete?",frontend_display_type_is_table$1="Table",frontend_display_type_is_split$1="Split View",frontend_display_as$1="Displayed as",frontend_record_sum$1="items",frontend_button_reload_tooltip$1="Refresh",frontend_button_search_tooltip$1="Search",frontend_fields_filter_button_search$1="Search",frontend_fields_filter_button_settings$1="Set search options",frontend_button_listview_control_tooltip$1="List View Controls",frontend_button_listview_control_label$1="LIST VIEW CONTROLS",frontend_listview_control_columns$1="Show List",frontend_listview_control_columns_mobile_group$1="Mobile side",frontend_listview_control_clone_label$1="Clone",frontend_listview_control_clone_title$1="Clone List View",frontend_listview_control_clone_defaultData_label_start$1="Copy of",frontend_listview_control_clone_defaultData_label_end$1="",frontend_listview_control_delete_label$1="Delete",frontend_listview_control_delete_confirm_text$1="If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?",frontend_listview_control_delete_message_success$1="Deletion successful",frontend_listview_control_filters$1="Filter settings",frontend_listview_control_filters_fields_extend$1="Conditional component 1",frontend_listview_control_new_label$1="New",frontend_listview_control_new_title$1="New List View",frontend_listview_control_new_message_success$1="Success",frontend_listview_control_new_message_failed$1="Failure",frontend_listview_control_rename_label$1="Rename",frontend_listview_control_rename_title$1="Rename List View",frontend_listview_control_share$1="Sharing Settings",frontend_listview_control_sort$1="Default sorting rule",frontend_export_excel$1="Export Excel",frontend_operation$1="Operation",frontend_import_data$1="Import data",frontend_import_data_object_name$1="Import object",frontend_import_data_queue_import$1="Data import",frontend_import_data_queue_import_description$1="Import description",frontend_import_data_queue_import_encoding$1="Character code",frontend_import_data_queue_import_template_url$1="Import template",frontend_import_data_file$1="Excel file",frontend_import_data_message_success$1="Importing has started...",frontend_import_data_message_failed$1="Import failed",frontend_record_detail_tab_detailed$1="Details",frontend_record_detail_tab_related$1="Related",frontend_all_apps$1="All apps",frontend_all_projects$1="All projects",frontend_application_launcher$1="Application launcher",frontend_menu$1="Menu",frontend_help$1="Help",frontend_setup$1="Setup",frontend_notifications$1="Notifications",frontend_notifications_allread$1="Mark all as read",frontend_notifications_allread_message$1="All marked as read",frontend_profile$1="Profile",frontend_about$1="About",frontend_log_out$1="Log out",frontend_listview_warning_start$1="The current ",frontend_listview_warning_end$1=" view does not exist!",frontend_record_detail_related_list_warning$1="Missing parent object, parent record, or related list object property!",frontend_record_detail_related_lists_warning$1="Missing parent object, or parent record property!",frontend_record_detail_related_lists_info$1="No related child tables found",frontend_calendar_listWeek$1="List",frontend_message_no_permission_to_edit$1="You don't have permission to edit this record!",frontend_message_modification_successful$1="Modification successful!",frontend_message_modification_failed$1="Modification failed!",frontend_objects_related_alert_start$1="No related table fields associated with the related list object",frontend_objects_related_alert_end$1="were found.",frontend_no_records_found$1="No records found.",en_us={frontend_field_group_generalization:frontend_field_group_generalization$1,frontend_download:frontend_download$1,frontend_form_save:frontend_form_save$1,frontend_form_save_and_new:frontend_form_save_and_new$1,frontend_form_cancel:frontend_form_cancel$1,frontend_form_new:frontend_form_new$1,frontend_form_edit:frontend_form_edit$1,frontend_form_preview:frontend_form_preview$1,frontend_form_select:frontend_form_select$1,frontend_form_please_select:frontend_form_please_select$1,frontend_form_confirm:frontend_form_confirm$1,frontend_form_delete:frontend_form_delete$1,frontend_form_view:frontend_form_view$1,frontend_delete_confirm_text:frontend_delete_confirm_text$1,frontend_delete_many_selected_required:frontend_delete_many_selected_required$1,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text$1,frontend_display_type_is_table:frontend_display_type_is_table$1,frontend_display_type_is_split:frontend_display_type_is_split$1,frontend_display_as:frontend_display_as$1,frontend_record_sum:frontend_record_sum$1,frontend_button_reload_tooltip:frontend_button_reload_tooltip$1,frontend_button_search_tooltip:frontend_button_search_tooltip$1,frontend_fields_filter_button_search:frontend_fields_filter_button_search$1,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings$1,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip$1,frontend_button_listview_control_label:frontend_button_listview_control_label$1,frontend_listview_control_columns:frontend_listview_control_columns$1,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group$1,frontend_listview_control_clone_label:frontend_listview_control_clone_label$1,frontend_listview_control_clone_title:frontend_listview_control_clone_title$1,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start$1,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end$1,frontend_listview_control_delete_label:frontend_listview_control_delete_label$1,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text$1,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success$1,frontend_listview_control_filters:frontend_listview_control_filters$1,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend$1,frontend_listview_control_new_label:frontend_listview_control_new_label$1,frontend_listview_control_new_title:frontend_listview_control_new_title$1,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success$1,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed$1,frontend_listview_control_rename_label:frontend_listview_control_rename_label$1,frontend_listview_control_rename_title:frontend_listview_control_rename_title$1,frontend_listview_control_share:frontend_listview_control_share$1,frontend_listview_control_sort:frontend_listview_control_sort$1,frontend_export_excel:frontend_export_excel$1,frontend_operation:frontend_operation$1,frontend_import_data:frontend_import_data$1,frontend_import_data_object_name:frontend_import_data_object_name$1,frontend_import_data_queue_import:frontend_import_data_queue_import$1,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description$1,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding$1,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url$1,frontend_import_data_file:frontend_import_data_file$1,frontend_import_data_message_success:frontend_import_data_message_success$1,frontend_import_data_message_failed:frontend_import_data_message_failed$1,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed$1,frontend_record_detail_tab_related:frontend_record_detail_tab_related$1,frontend_all_apps:frontend_all_apps$1,frontend_all_projects:frontend_all_projects$1,frontend_application_launcher:frontend_application_launcher$1,frontend_menu:frontend_menu$1,frontend_help:frontend_help$1,frontend_setup:frontend_setup$1,frontend_notifications:frontend_notifications$1,frontend_notifications_allread:frontend_notifications_allread$1,frontend_notifications_allread_message:frontend_notifications_allread_message$1,frontend_profile:frontend_profile$1,frontend_about:frontend_about$1,frontend_log_out:frontend_log_out$1,frontend_listview_warning_start:frontend_listview_warning_start$1,frontend_listview_warning_end:frontend_listview_warning_end$1,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning$1,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning$1,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info$1,frontend_calendar_listWeek:frontend_calendar_listWeek$1,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit$1,frontend_message_modification_successful:frontend_message_modification_successful$1,frontend_message_modification_failed:frontend_message_modification_failed$1,frontend_objects_related_alert_start:frontend_objects_related_alert_start$1,frontend_objects_related_alert_end:frontend_objects_related_alert_end$1,frontend_no_records_found:frontend_no_records_found$1},frontend_field_group_generalization="通用",frontend_download="下载",frontend_form_save="保存",frontend_form_save_and_new="保存并新建",frontend_form_cancel="取消",frontend_form_new="新建",frontend_form_edit="编辑",frontend_form_preview="预览",frontend_form_select="选择",frontend_form_please_select="请选择",frontend_form_confirm="确认",frontend_form_delete="删除",frontend_form_view="查看",frontend_delete_confirm_text="确定要删除此项目?",frontend_delete_many_selected_required="请选择要删除的项",frontend_delete_many_confirm_text="确定要删除吗?",frontend_display_type_is_table="表格",frontend_display_type_is_split="分栏视图",frontend_display_as="显示为",frontend_record_sum="个项目",frontend_button_reload_tooltip="刷新",frontend_button_search_tooltip="搜索",frontend_fields_filter_button_search="搜索",frontend_fields_filter_button_settings="设置搜索项",frontend_button_listview_control_tooltip="列表视图控制",frontend_button_listview_control_label="列表视图控制",frontend_listview_control_columns="显示的列",frontend_listview_control_columns_mobile_group="手机端",frontend_listview_control_clone="复制",frontend_listview_control_clone_label="复制",frontend_listview_control_clone_title="复制 列表视图",frontend_listview_control_clone_defaultData_label_start="",frontend_listview_control_clone_defaultData_label_end="的副本",frontend_listview_control_delete_label="删除",frontend_listview_control_delete_confirm_text="如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",frontend_listview_control_delete_message_success="删除成功",frontend_listview_control_filters="过滤设置",frontend_listview_control_filters_fields_extend="条件组件1",frontend_listview_control_new_label="新建",frontend_listview_control_new_title="新建 列表视图",frontend_listview_control_new_message_success="成功",frontend_listview_control_new_message_failed="失败",frontend_listview_control_rename_label="重命名",frontend_listview_control_rename_title="重命名 列表视图",frontend_listview_control_share="共享设置",frontend_listview_control_sort="默认排序规则",frontend_export_excel="导出",frontend_operation="操作",frontend_import_data="导入数据",frontend_import_data_object_name="导入对象",frontend_import_data_queue_import="数据导入",frontend_import_data_queue_import_description="导入描述",frontend_import_data_queue_import_encoding="字符代码",frontend_import_data_queue_import_template_url="导入模板",frontend_import_data_file="Excel文件",frontend_import_data_message_success="已开始导入...",frontend_import_data_message_failed="导入失败",frontend_record_detail_tab_detailed="详细",frontend_record_detail_tab_related="相关",frontend_all_apps="所有应用",frontend_all_projects="所有项目",frontend_application_launcher="应用程序启动器",frontend_menu="菜单",frontend_help="帮助",frontend_setup="设置",frontend_notifications="通知",frontend_notifications_allread="全部标记为已读",frontend_notifications_allread_message="已全部标记为已读",frontend_profile="个人资料",frontend_about="关于",frontend_log_out="注销",frontend_listview_warning_start="当前",frontend_listview_warning_end="视图不存在!",frontend_record_detail_related_list_warning="缺少父级对象、父级记录或相关列表对象属性!",frontend_record_detail_related_lists_warning="缺少父级对象或父级记录属性!",frontend_record_detail_related_lists_info="没有相关子表",frontend_calendar_listWeek="列表",frontend_message_no_permission_to_edit="您没有编辑该记录的权限!",frontend_message_modification_successful="修改成功!",frontend_message_modification_failed="修改失败!",frontend_objects_related_alert_start="未找到与相关列表对象",frontend_objects_related_alert_end="关联的相关表字段",frontend_no_records_found="无法找到记录",zh_cn={frontend_field_group_generalization:frontend_field_group_generalization,frontend_download:frontend_download,frontend_form_save:frontend_form_save,frontend_form_save_and_new:frontend_form_save_and_new,frontend_form_cancel:frontend_form_cancel,frontend_form_new:frontend_form_new,frontend_form_edit:frontend_form_edit,frontend_form_preview:frontend_form_preview,frontend_form_select:frontend_form_select,frontend_form_please_select:frontend_form_please_select,frontend_form_confirm:frontend_form_confirm,frontend_form_delete:frontend_form_delete,frontend_form_view:frontend_form_view,frontend_delete_confirm_text:frontend_delete_confirm_text,frontend_delete_many_selected_required:frontend_delete_many_selected_required,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text,frontend_display_type_is_table:frontend_display_type_is_table,frontend_display_type_is_split:frontend_display_type_is_split,frontend_display_as:frontend_display_as,frontend_record_sum:frontend_record_sum,frontend_button_reload_tooltip:frontend_button_reload_tooltip,frontend_button_search_tooltip:frontend_button_search_tooltip,frontend_fields_filter_button_search:frontend_fields_filter_button_search,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip,frontend_button_listview_control_label:frontend_button_listview_control_label,frontend_listview_control_columns:frontend_listview_control_columns,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group,frontend_listview_control_clone:frontend_listview_control_clone,frontend_listview_control_clone_label:frontend_listview_control_clone_label,frontend_listview_control_clone_title:frontend_listview_control_clone_title,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end,frontend_listview_control_delete_label:frontend_listview_control_delete_label,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success,frontend_listview_control_filters:frontend_listview_control_filters,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend,frontend_listview_control_new_label:frontend_listview_control_new_label,frontend_listview_control_new_title:frontend_listview_control_new_title,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed,frontend_listview_control_rename_label:frontend_listview_control_rename_label,frontend_listview_control_rename_title:frontend_listview_control_rename_title,frontend_listview_control_share:frontend_listview_control_share,frontend_listview_control_sort:frontend_listview_control_sort,frontend_export_excel:frontend_export_excel,frontend_operation:frontend_operation,frontend_import_data:frontend_import_data,frontend_import_data_object_name:frontend_import_data_object_name,frontend_import_data_queue_import:frontend_import_data_queue_import,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url,frontend_import_data_file:frontend_import_data_file,frontend_import_data_message_success:frontend_import_data_message_success,frontend_import_data_message_failed:frontend_import_data_message_failed,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed,frontend_record_detail_tab_related:frontend_record_detail_tab_related,frontend_all_apps:frontend_all_apps,frontend_all_projects:frontend_all_projects,frontend_application_launcher:frontend_application_launcher,frontend_menu:frontend_menu,frontend_help:frontend_help,frontend_setup:frontend_setup,frontend_notifications:frontend_notifications,frontend_notifications_allread:frontend_notifications_allread,frontend_notifications_allread_message:frontend_notifications_allread_message,frontend_profile:frontend_profile,frontend_about:frontend_about,frontend_log_out:frontend_log_out,frontend_listview_warning_start:frontend_listview_warning_start,frontend_listview_warning_end:frontend_listview_warning_end,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info,frontend_calendar_listWeek:frontend_calendar_listWeek,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit,frontend_message_modification_successful:frontend_message_modification_successful,frontend_message_modification_failed:frontend_message_modification_failed,frontend_objects_related_alert_start:frontend_objects_related_alert_start,frontend_objects_related_alert_end:frontend_objects_related_alert_end,frontend_no_records_found:frontend_no_records_found};const resources={"en-US":{translation:en_us},"zh-CN":{translation:zh_cn}};var locale="zh-CN";async function getListBody(e,t){const n=[];for(const o of e){const e=await getFieldTpl(o,t);let r="text";e&&(r="tpl"),o.hidden||o.extra||n.push({name:o.name,label:o.label,sortable:o.sortable,width:o.width,type:r,tpl:e,toggled:o.toggled})}return{type:"hbox",columns:n}}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||10}}async function getListSchema$1(e,t){const n=(await getListBody(e,t)).columns;return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...n],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:instance.t("frontend_form_view"),type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}"undefined"!=typeof window&&("en-us"==window.Builder?.settings.locale?locale="en-US":"zh-cn"==window.Builder?.settings.locale&&(locale="zh-CN")),instance.use(initReactI18next).init({resources:resources,lng:locale,interpolation:{escapeValue:!1}});const getSchema$5=async(e,t)=>{const n=`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n "layout": "normal"\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId;\n let relatedKeySaveValue = recordId;\n const fields = ${JSON.stringify(e.fields)};\n const relatedField = fields[relatedKey];\n if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let defaultData = {}; \n let relatedKeyValue; \n if(!_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n\n return {\n data: formSchema\n };\n `,o=`\n // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口\n // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击新建按钮的时候异常\n setTimeout(function(){\n doAction({\n "actionType": "cancel",\n "componentId": "object_actions_drawer_${e.name}"\n });\n }, 200);\n `;return{type:"service",body:[{type:"button",label:instance.t("frontend_form_new"),id:"u:standard_new",level:"default",onEvent:{click:{weight:0,actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}"},title:instance.t("frontend_form_new")+" ${uiSchema.label | raw}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:n}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg",onEvent:{cancel:{actions:[{actionType:"custom",script:o,expression:"${window:innerWidth < 768}"}]}},actions:[{type:"button",actionType:"cancel",label:instance.t("frontend_form_cancel")},{type:"button",label:instance.t("frontend_form_save_and_new"),actionType:"confirm",close:!1,id:"confirmAndNew"},{type:"button",actionType:"confirm",label:instance.t("frontend_form_save"),primary:!0}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}};async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",style:{"max-height":"SMALL"===e.formFactor?"30vh":"unset"},schemaApi:{method:"post",url:"${context.rootUrl}/graphql?reload=${filterFormSearchableFields|join}",data:{$self:"$$",query:'{\n data: objects(filters: [["_id","=",null]],top: 1, skip: 0){_id}\n }'},requestAdaptor:"\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n ",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n="btn_filter_form_search_"+(new Date).getTime();return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:'\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += (listName || "");\n }\n let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: false });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud/" + (listName || "");\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[await getObjectFieldsFilterFormSchema(t),{type:"wrapper",body:{type:"wrapper",body:[{type:"button",id:n,label:instance.t("frontend_fields_filter_button_search"),icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n }\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n let showFieldsFilter = false;\n const isMobile = window.innerWidth < 768;\n if(event.data.__from_fields_filter_settings_confirm){\n // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n showFieldsFilter = true;\n }\n else if(isMobile){\n // 如果是手机端,点击搜索后自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(event.data.displayAs === "split") {\n // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(window.innerHeight >= 1200){\n // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n showFieldsFilter = true;\n }\n filterService.setData({showFieldsFilter});\n resizeWindow();\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。\n let filterFormValues = event.data;\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n '}]}}},{type:"button",label:instance.t("frontend_form_cancel"),name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n var listView = scope.parent.parent.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + "/crud/" + (listName || "");\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n removedValues[k] = null;\n }\n }\n }\n filterForm.reset();\n listView.handleFilterSubmit(removedValues);\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100);\n // 移除搜索按钮上的红点\n let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n '}]}}},{type:"button",label:instance.t("frontend_fields_filter_button_settings"),onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:instance.t("frontend_fields_filter_button_settings"),body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = (payload.data?.options || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n "},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:instance.t("frontend_form_cancel"),onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:instance.t("frontend_form_confirm"),onEvent:{click:{actions:[{actionType:"custom",script:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += (listName || "");\n }\n sessionStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud/" + (listName || "");\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100)\n // ===END===\n '},{actionType:"click",componentId:n,args:{__from_fields_filter_settings_confirm:!0}},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:`border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap ${!t.isLookup&&"mt-2"}`,visibleOn:"this.showFieldsFilter"},className:"bg-white"}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getNewListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_new_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_new_title"),data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1,object_name:"${targetObjectName}"},fieldsExtend:fieldsExtend$4(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}},messages:{success:instance.t("frontend_listview_control_new_message_success"),failed:instance.t("frontend_listview_control_new_message_failed")}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns","sort","filters","mobile_columns","searchable_fields","is_system","shared"]}function fieldsExtend$4(){return{label:{is_wide:!0},name:{amis:{hidden:!0,required:!1}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0,required:!1}},columns:{amis:{hidden:!0,required:!1}},mobile_columns:{amis:{hidden:!0,required:!1}},searchable_fields:{amis:{hidden:!0,required:!1}},filter_fields:{amis:{hidden:!0,required:!1}},scrolling_mode:{amis:{hidden:!0,required:!1}},sort:{amis:{hidden:!0,required:!1}},show_count:{amis:{hidden:!0,required:!1}},type:{amis:{hidden:!0,required:!1}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getCopyListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_clone_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_clone_title"),data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:instance.t("frontend_listview_control_clone_defaultData_label_start")+" ${list_view.label} "+instance.t("frontend_listview_control_clone_defaultData_label_end"),shared:!1},fieldsExtend:fieldsExtend$3(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared"]}function fieldsExtend$3(){return{label:{is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_rename_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_rename_title"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_share"),disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_share"),data:{recordId:"${uiSchema.list_views[listName]._id}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["shared"]}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}}),getSetListviewFiltersButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_filters"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_filters"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{visible_on:"true",amis:{type:"condition-builder",label:instance.t("frontend_listview_control_filters_fields_extend"),source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_columns"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:instance.t("frontend_listview_control_columns"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{group:instance.t("frontend_listview_control_columns_mobile_group"),amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns?.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_sort"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_sort"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort?.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_delete_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:instance.t("frontend_listview_control_delete_confirm_text"),onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:instance.t("frontend_listview_control_delete_message_success")},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${!isLookup}",buttons:[{label:instance.t("frontend_button_listview_control_label"),children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e),o=[{type:"button",label:instance.t("frontend_display_type_is_table"),onClick:"const key = 'tab_"+e+'_display\';localStorage.setItem(key, \'grid\');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:instance.t("frontend_display_type_is_split"),onClick:"const key = 'tab_"+e+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}];return"split"===n?instance.t("frontend_display_type_is_split"):instance.t("frontend_display_type_is_table"),{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup}",buttons:[{label:instance.t("frontend_display_as"),children:o}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\nlet resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n}\nresizeWindow();\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById("service_listview_" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n// direction: "down", \n// name: "btn_filter_form_cancel" \n// });\n// buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n';function getObjectHeaderToolbar(e,t,{showDisplayAs:n=!1,hiddenCount:o=!1,headerToolbarItems:r,filterVisible:i=!0}={}){console.log("getObjectHeaderToolbar",e);if(window.innerWidth<768&&!1,"SMALL"===t){const t='\n const scope = event.context.scoped;\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n ';return[...r||[],o?{}:{type:"tpl",tpl:"${count} "+instance.t("frontend_record_sum")},{type:"button",align:"right",tooltipPlacement:"top",className:"bg-white p-2 rounded border-gray-300 text-gray-500",label:"",icon:"fa fa-sync",visibleOn:"${!showFieldsFilter}",onEvent:{click:{actions:[{actionType:"custom",script:t}]}}},i?{label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-search",type:"button",tooltipPlacement:"top",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false}"},align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},getDisplayAsButton(e?.name)]}return[...r||[],"bulkActions",{type:"columns-toggler",className:"hidden"},o?{}:{type:"tpl",tpl:"${count} "+instance.t("frontend_record_sum")},{type:"reload",align:"right",tooltip:"",tooltipPlacement:"top",className:"bg-white p-2 rounded border-gray-300 text-gray-500"},e?.permissions?.allowCreateListViews?getSettingListviewToolbarButtonSchema():{},getDisplayAsButton(e?.name),i?{label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-search",type:"button",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false}"},align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{}]}function getObjectFooterToolbar(e,t,n){return"SMALL"===t?["load-more"]:n&&n.isRelated?["statistics","pagination"]:["switch-per-page","statistics","pagination"]}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)]}}async function getSource(e,t){const n=t.objectName,o=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});o.query=o.query.replace(/,count\:.+/,"}");const r=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"});r.query=r.query.replace(/,count\:.+/,"}"),o.query=o.query.replace(/}$/,","+r.query.replace(/{(.+)}/,"$1}"));let i=`${e.name}`;e._prefix&&(i=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(i=`${t.fieldNamePrefix}${i}`),o.$value=`$${i}`,o.$="$$";const a=`\n var filters = [['parent', '=', null]];\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:a,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:o,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName,o=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let r=e.filters;"string"==typeof r&&(r=new Function(`return ${r}`),r=r()),"function"==typeof r&&(r=r(e)),o.query=o.query.replace(/,count\:.+/,"}"),o.query=o.query.replace("{_id}","{{__fields}}");const i=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n fields = "_id,value:${t.valueField},label:${t.labelField},children";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:i,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:o,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){const t=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const o={type:getAmisStaticFieldType("tree-select",t)};if(t)o.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(o,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(o,{joinValues:!1}),"boolean"!=typeof o.searchable&&(o.searchable=!0);const r=e.onEvent;r&&(o.onEvent=r)}return o}const getReferenceTo=async e=>{let t=e.reference_to;if(!t)return;"users"===t&&(t="space_users",e.reference_to_field="user");const n=await getUISchema(t);if(!n)return null;let o=null,r=e.reference_to_field;return r||(r=n.idFieldName||"_id"),o="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:n.fields[r]||{name:r},{objectName:t,valueField:o,labelField:n.fields[n.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:n.NAME_FIELD_KEY||"name"}};function getLookupSapceUserTreeSchema(){return[{type:"input-tree",className:"",inputClassName:"p-0",id:"u:7fd77b7915b0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",requestAdaptor:"\n ",data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n '}]}},label:"",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0},unfoldedLevel:2,style:{"max-height":"100%",position:"absolute",left:"-200px",width:"190px",bottom:0,top:"2px",overflow:"auto","min-height":"300px"},originPosition:"left-top"}]}async function lookupToAmisPicker(e,t,n){let o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName);n.idFieldName=r.idFieldName,n.objectName=r.name;const i=[];let a=0;const s=[],l=[],c=window.innerWidth<768,d=___default__namespace.find(r.list_views,((e,t)=>"all"===t));d&&d.columns?___default__namespace.each(d.columns,(function(e){___default__namespace.isString(e)&&r.fields[e]?l.push(r.fields[e]):___default__namespace.isObject(e)&&r.fields[e.field]&&l.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}))})):___default__namespace.each(r.fields,((e,t)=>{"_id"==t||e.hidden||(___default__namespace.has(e,"name")||(e.name=t),l.push(e))})),___default__namespace.each(___default__namespace.sortBy(l,"sort_no"),(function(e){a<5&&(___default__namespace.find(i,(function(t){return t.name===e.name}))||(a++,i.push(e),e.searchable&&s.push(e.name)))}));const u={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField};___default__namespace.each(i,(e=>{e.hidden||(u[e.name]=e)}));let p="";d&&(p=getListViewSort(d));const f=await getApi$1(r,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(f.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(f.url=`${f.url}?${t.join("&")}`,f.sendOn=`${n.join(" && ")}`)}f.data.$term="$term",f.data.$self="$$",f.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${p}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${"space_users"===o?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, "contains", keyValue]);\n }\n })\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${r.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,f.adaptor=`\n const enable_tree = ${r.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${o.labelField.name}", "${o.valueField.name}"]);\n })\n payload.data.rows = rows;\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(f.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let m=20;r.paging&&!1===r.paging.enabled&&(m=1e3);let h=null;if("SMALL"===n.formFactor)h=await getListSchema$1(i,{top:m,...n,actions:!1});else{h=await getTableSchema$1(i,{labelFieldName:r.NAME_FIELD_KEY,top:m,isLookup:!0,...n}),h.affixHeader=!1;var g=[];"space_users"!==o.objectName||"user"!==e.reference_to_field||c||(g=getLookupSapceUserTreeSchema(),h.style={"margin-left":"200px","min-height":"300px"},h.className=h.className||" steedos-select-user"),h.headerToolbar=getObjectHeaderToolbar(r,n.formFactor,{headerToolbarItems:g});if(r.permissions.allowCreate){const e=await getSchema$5(r,{appId:n.appId,objectName:r.name,formFactor:n.formFactor});e.align="right",h.headerToolbar.push(e)}h.footerToolbar=r.enable_tree?[]:getObjectFooterToolbar(),!1!==n.filterVisible&&(h.filter=await getObjectFilter(r,u,{isLookup:!0,...n})),h.data=Object.assign({},h.data,{"&":"$$",objectName:r.name,uiSchema:r,listName:"all",isLookup:!0}),h.onEvent||(h.onEvent={}),h.onEvent[`@data.changed.${r.name}`]={actions:[{actionType:"reload"},{actionType:"custom",script:`\n const masterRecord = event.data._master?.record;\n const fieldConfig = ${JSON.stringify(e)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。\n const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(n)};\n const componentId = ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `}]}}e.pickerSchema&&(h=Object.assign({},h,e.pickerSchema));const _={type:getAmisStaticFieldType("picker",t),modalTitle:instance.t("frontend_form_please_select")+" "+r.label,labelField:o.labelField.name,valueField:o.valueField.name,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || (this.relatedKey ==='${e.name}') )`,modalMode:"dialog",source:f,size:"lg",pickerSchema:h,joinValues:!1,extractValue:!0};return e.multiple&&(_.multiple=!0,_.extractValue=!0),t&&(_.tpl=await getLookupTpl(e,n)),_}async function lookupToAmisSelect(e,t,n){let o=await getReferenceTo(e);const r=o&&o.valueField?.name||"_id";let i;if(o){const e=await getFindQuery({name:o.objectName},null,[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.valueField,{alias:"value"})],{alias:"defaultValueOptions",filters:"{__options_filters}",count:!1});i=await getApi$1({name:o.objectName},null,[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.valueField,{alias:"value"})],{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"',moreQueries:[e.query]}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};const a=o&&await getUISchema(o.objectName),s=a&&___default__namespace.find(a.list_views,((e,t)=>"all"===t));let l="";if(s&&(l=getListViewSort(s)),i.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(i.url=`${i.url}?${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,___default__namespace.each(e.depend_on,(function(e){i.data[e]=`$${e}`})),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [["${o?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n if(${"space_users"===o?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${l}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${r}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${r}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,o&&o.labelField.name,o&&o.valueField.name,e.optionsFunction||e._optionsFunction?i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `:e.options&&(i.adaptor=`\n var options = ${JSON.stringify(e.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const c={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || (this.relatedKey ==='${e.name}') )`,source:i,autoComplete:i,searchable:!0};return c.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}",e.multiple&&(c.multiple=!0,c.extractValue=!0),t&&(c.tpl=await getLookupTpl(e,n)),c}async function getApi$1(e,t,n,o){const r=await getFindQuery(e,t,n,o);return{method:"post",url:getApi$2(),data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!___default__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:n};let o=await getReferenceTo(e);if(!o)return await lookupToAmisSelect(e,t,n);if("space_users"===o.objectName&&"user"===e.reference_to_field&&(n.idsDependOn||e.amis))return await lookupToAmisIdsPicker(e,t,n);const r=await getUISchema(o.objectName);return 1==r.enable_enhanced_lookup&&___default__namespace.isEmpty(e.depend_on)?await lookupToAmisPicker(e,t,n):r.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:o.labelField?.name||"name",valueField:o.valueField?.name||"_id",objectName:o.objectName})):await lookupToAmisSelect(e,t,n)}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName),{idsDependOn:i}=n,a={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField},s=[o.labelField],l=await getApi$1(r,null,a,{expand:!0,alias:"rows",queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}"});l.data.$term="$term",l.data.$self="$$",i&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${i} && ${i}.length}`,l.url=`${l.url}&depend_on_${i}=\${${i}|join}`),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${o.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${o.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${i}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${o.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip);\n return api;\n `;let c=null;"SMALL"===n.formFactor?c=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(c=await getTableSchema$1(s,{labelFieldName:r.NAME_FIELD_KEY,top:1e3,...n}),c.affixHeader=!1);const d={type:getAmisStaticFieldType("picker",t),labelField:o.labelField.name,valueField:o.valueField.name,modalMode:"dialog",source:l,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || (this.relatedKey ==='${e.name}') )`,size:"lg",pickerSchema:c,joinValues:!1,extractValue:!0};return e.multiple&&(d.multiple=!0,d.extractValue=!0),n.value&&(d.value=n.value),null!=n.selectFirst&&(d.selectFirst=n.selectFirst),t&&(d.tpl=await getLookupTpl(e,n)),d}const getMarkdownFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}}:{type:"control",label:e.label,body:[{type:"tabs",tabsMode:"strong",className:"steedos-markdown",tabs:[{title:instance.t("frontend_form_edit"),tab:[{type:"editor",name:e.name,language:"markdown"}]},{title:instance.t("frontend_form_preview"),tab:[{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]}]}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"html",name:e.name}}:{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",name:e.name},AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,n){return t?___default__namespace.includes(["text","image"],e)?"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"url"===e?"input-url":"static":___default__namespace.includes(AmisFormInputs,e)?`input-${e}`:"location"===e?"location-picker":e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{const t=e.type,n=getAmisFieldType$1(e,!0);return _.includes(["avatar","image"],t)?{type:n,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:n,tpl:`\n <% let fileData = data._display.${e.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",url:`\${context.rootUrl}/s3/${t}`,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0),n},getAmisFileSchema=(e,t)=>t?getAmisFileReadonlySchema(e):getAmisFileEditSchema(e),OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`)&&___default__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return ___default__namespace.each(e.options,(e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value),icon:e.icon});break;case"text":n.push({label:e.label,value:String(e.value),icon:e.icon});break;case"boolean":n.push({label:e.label,value:"false"!==e.value,icon:e.icon})}})),n}async function convertSFieldToAmisField(e,t,n){const o=window.innerWidth<=768;if(___default__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const r={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,required:___default__namespace.has(n,"required")?n.required:e.required};let i={};switch(e.type){case"text":i.type=getAmisStaticFieldType("text",t);break;case"textarea":i.type=getAmisStaticFieldType("textarea",t),i.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":i=getHtmlFieldSchema(e,t);break;case"markdown":i=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);i={type:"static-mapping",name:e.name,label:e.label,map:t}}else{i={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"};const n="<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>";i.menuTpl="${icon ? `"+n+"` : label}",e.multiple&&(i.multiple=!0,i.extractValue=!0)}break;case"boolean":i={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1};break;case"date":i=o&&!t?{type:"native-date",pipeIn:(e,t)=>e?e=moment(e).utc().format("YYYY-MM-DD"):"",pipeOut:(e,t,n)=>e?e=moment(e).format("YYYY-MM-DDT00:00:00.000[Z]"):""}:{type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1};break;case"datetime":i=o&&!t?{type:"combo",pipeIn:(t,n)=>{let o={};return t&&"Invalid date"!=t?(t=moment(t).format("YYYY-MM-DD HH:mm:ss"),o[e.name+"-native-date"]=t.split(" ")[0],o[e.name+"-native-time"]=t.split(" ")[1]):(o[e.name+"-native-date"]="",o[e.name+"-native-time"]=""),o},pipeOut:(t,n,o)=>{let r="";return t[e.name+"-native-date"]&&t[e.name+"-native-time"]&&(r=t[e.name+"-native-date"]+" "+t[e.name+"-native-time"],r=moment(r).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")),r},items:[{type:"native-date",name:e.name+"-native-date",className:"steedos-native-date",value:""},{type:"native-time",name:e.name+"-native-time",className:"steedos-native-time",value:""}]}:{type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":i=o&&!t?{type:"native-time",pipeIn:(e,t)=>e?e=moment(e).utc().format("HH:mm"):"",pipeOut:(e,t,n)=>e?e=moment("1970-01-01 "+e).format("1970-01-01THH:mm:00.000[Z]"):""}:{type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,r);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i=t?{type:"static-tpl",tpl:getUiFieldTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":i=await lookupToAmis(e,t,n);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:getAmisStaticFieldType("url",t,e),static:!!t},t&&e.show_as_qr&&(i={type:"control",label:e.label,body:{type:"qr-code",codeSize:128,name:e.name}});break;case"email":i={type:getAmisStaticFieldType("email",t)};break;case"location":let a="LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",s="baidu";if(window.Meteor){const e=Meteor.settings?.public?.amis?.map_ak;e&&(a=e);const t=Meteor.settings?.public?.amis?.map_vendor;t&&(s=t)}const l=e.coordinatesType||"bd09";i={type:getAmisStaticFieldType("location",t),tpl:t?getLocationTpl(e):null,ak:a,vendor:s,clearable:!0,coordinatesType:l,label:e.label,pipeOut:(e,t,n)=>{if(e){const t=e.lng,n=e.lat;let o=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);o=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(o=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:o},e}}};break;case"avatar":case"image":case"file":i=getAmisFileSchema(e,t);break;case"formula":case"summary":t&&(i={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":i={type:"editor",disabled:!!t,language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){i={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const o of e.subFields){const r=o.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),a=await convertSFieldToAmisField(Object.assign({},o,{name:r,isTableField:!0}),t,n);if(a){delete a.name,delete a.label;const e={name:r,label:o.label,quickEdit:!t&&a};"lookup"===o.type&&(e.type=a.type,e.tpl=a.tpl),i.columns.push(Object.assign({},e,o.amis,{name:r}))}}}break;case"object":if(e.subFields){i={type:"combo",items:[]};for(let o of e.subFields){let r=o.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===o.type?o=await getGridFieldSubFields(o,n.__formFields):t&&(r=`${e.name}.${r}`);const a=await convertSFieldToAmisField(Object.assign({},o,{name:r}),t,n);a&&(delete a.name,delete a.label,i.items.push(Object.assign({},a,{label:o.label},o.amis,{name:r})))}}}if(!___default__namespace.isEmpty(i)){e.is_wide||"group"===i.type?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=`${i.className} md:border-b`),t&&(i.quickEdit=!1);let o=" steedos-"+i.type+(t?"-readonly":"-edit");return i.className?i.className=i.className+o:i.className=o,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?i.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:i.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),___default__namespace.isString(r.required)&&r.required.startsWith("{{")&&(r.requiredOn=`${r.required.substring(2,r.required.length-2).replace(/formData./g,"data.")}`,delete r.required),"group"===i.type?(i.body[0]=Object.assign({},r,i.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),i):Object.assign({},r,i,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:r.name})}}async function getFieldSearchable(e,t,n){n||(n={});let o=e;"grid"===o.type?o=await getGridFieldSubFields(e,t):"object"===e.type&&(o=await getObjectFieldSubFields(e,t));let r="__searchable__";if(o.name.indexOf(".")<0){let e=___default.cloneDeep(o);___default.includes(["textarea","html","code","autonumber"],o.type)&&(e.type="text"),___default.includes(["formula","summary"],o.type)?(e.type=o.data_type,e.precision=o.precision,e.scale=o.scale):"select"===o.type&&o.data_type&&"text"!=o.data_type&&(e.type=o.data_type),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,r=`${r}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,r=`${r}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,r=`${r}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,r=`${r}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,e.required=!1,e.hidden=!1,e.omit=!1,e.amis&&(delete e.amis.static,delete e.amis.staticOn,delete e.amis.disabled,delete e.amis.disabledOn,delete e.amis.required,delete e.amis.requiredOn,delete e.amis.visible,delete e.amis.visibleOn,delete e.amis.hidden,delete e.amis.hiddenOn,delete e.amis.autoFill);const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:r,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!___default__namespace.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};async function getQuickEditSchema(e,t){const n=t.objectName+"_"+e.name+"QuickEdit";var o={body:[],id:n};if(e.disabled)o=!1;else{var r=await convertSFieldToAmisField(e,!1,___default__namespace.omit(t,"buttons"));if(r){o.body.push(r);var i="";o.body[0].onEvent={};const t=function(e){return{actions:[{actionType:"custom",script:`\n var _display = event.data._display;\n ${e}\n doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${n}"});\n `}]}};switch(e.type){case"lookup":case"master_detail":let n=o.body[0].labelField||"label",r=o.body[0].valueField||"value";i=e.multiple?`\n const preData = event.data.__super.${e.name};\n if(preData && event.data.${e.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${e.name}, item) == -1) _display["${e.name}"].splice(index, 1);\n })\n }else{\n _display["${e.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${r}: val });\n _display["${e.name}"].push(\n {\n "label": item.${n},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${e.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${e.name}"] = {\n "label": event.data.selectedItems.${n},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${e.reference_to}"\n }\n }else{\n _display["${e.name}"] = {}\n }\n `,o.body[0].onEvent.change=t(i);break;case"select":i=`\n _display["${e.name}"] = event.data.selectedItems.label;\n `,o.body[0].onEvent.change=t(i);break;case"percent":i=`\n _display["${e.name}"] = (event.data.value * 100).toFixed(${e.scale}) + '%';\n `,o.body[0].onEvent.change=t(i);break;case"time":i=`\n _display["${e.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,o.body[0].onEvent.change=t(i);break;case"date":i=`\n _display["${e.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,o.body[0].onEvent.change=t(i);break;case"datetime":i=`\n _display["${e.name}"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `,o.body[0].onEvent.change=t(i);break;case"boolean":i=`\n _display["${e.name}"] = event.data.value?"√":"";\n `,o.body[0].onEvent.change=t(i);break;case"number":case"currency":i=`\n _display["${e.name}"] = event.data.value?.toFixed(${e.scale});\n `,o.body[0].onEvent.change=t(i);break;case"file":var a="";e.multiple?(i=`\n _display["${e.name}"].push({\n "name": event.data.result.name,\n "url": event.data.result.url,\n "type": event.data.item.type,\n "size": event.data.item.size\n });\n `,a=`\n _.remove(_display["${e.name}"], function(file){return file.url == event.data.item.url});\n `):(i=` \n _display["${e.name}"] = {\n "name": event.data.result.name,\n "url": event.data.result.url,\n "type": event.data.item.type,\n "size": event.data.item.size\n };\n `,a=`\n if(_display["${e.name}"].url == event.data.item.url){\n _display["${e.name}"] = {};\n }\n `),o.body[0].onEvent.success=t(i),o.body[0].onEvent.remove=t(a);break;case"avatar":case"image":o.body[0].receiver.adaptor=`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${e.type}s/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `}}else o=!1;"file"==e.type&&e.multiple&&(o=!1),"location"==e.type&&(o=!1)}return o}function getFieldWidth(e){return"string"==typeof e?isNaN(e)?e:Number(e):"number"==typeof e?e:"unset"}async function getTableColumns(e,t){const n=[{name:"_index",type:"text",width:32,placeholder:""}],o=t.permissions?.allowEdit&&t.permissions?.modifyAllRecords&&!t.isLookup&&0!=t.enable_inline_edit;for(const r of e){const e=o?await getQuickEditSchema(r,t):o;let i,a="";if(1!=r.wrap&&(a+=" whitespace-nowrap"),!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)i=Object.assign({},{type:"switch",name:r.name,label:r.label,width:getFieldWidth(r.width),toggled:r.toggled,static:!0,className:a},r.amis,{name:r.name});else if("avatar"===r.type||"image"===r.type||"file"===r.type)i=Object.assign({},{type:"switch",name:r.name,label:r.label,width:getFieldWidth(r.width),toggled:r.toggled,static:!0,className:a,...getAmisFileReadonlySchema(r)},r.amis,{name:r.name});else if("select"===r.type){const e=getSelectMap(r.options);i=Object.assign({},{type:"mapping",name:r.name,label:r.label,map:e,sortable:r.sortable,width:getFieldWidth(r.width),toggled:r.toggled,className:a,static:!0},r.amis,{name:r.name})}else{const e=await getFieldTpl(r,t);let n="text";e?n="tpl":"html"===r.type?n="markdown":"url"===r.type&&(n=r.show_as_qr?"qr-code":"input-url"),"textarea"===r.type&&(a+="min-w-56"),r.hidden||r.extra||(i=Object.assign({},{name:r.name,label:r.label,sortable:r.sortable,width:getFieldWidth(r.width),type:n,tpl:e,toggled:r.toggled,className:a,static:!0,options:"html"===r.type?{html:!0}:null},r.amis,{name:r.name}))}else{const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${r.label}";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `;i={type:"button",label:`<%=data.versions ? data.name : "${r.label}"%>`,className:a,level:"link",onEvent:{click:{actions:[{args:{api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download",expression:"!!!window?.nw?.require"},{args:{},actionType:"custom",script:e,expression:"!!window?.nw?.require"}]}}}}i&&(e&&(i.quickEdit=e,i.quickEditEnabledOn="${is_system !== true}"),n.push(i))}if(!___default__namespace.some(n,{name:t.labelFieldName})){const e=Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`});n[0].type="tpl",n[0].tpl=`<a href="${e}">\${${n[0].name}}</a>`}return n}function getMobileLines(e){let t=[],n=[],o=!1,r=!0,i="",a="flex items-center justify-between h-[20px]";return e.forEach((function(e){o&&t.length<2&&(t.push({type:"wrapper",body:n,size:"none",className:a}),n=[]),r?(i="steedos-listview-item-left truncate",e.field.is_wide&&(i="steedos-listview-item-wide truncate"),0===t.length&&(i+=" font-bold text-gray-800")):i="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",n.push({type:"tpl",tpl:e.tpl,className:i}),e.field.is_wide?(r=!0,o=!0):(r=!r,o=r)})),n.length&&t.length<2&&t.push({type:"wrapper",body:n,size:"none",className:a}),t}async function getMobileTableColumns(e,t){const n=[];let o={},r=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(o=n,t.onlyDisplayLabel=!0,e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t.onlyDisplayLabel=!0),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||r.push({field:n,tpl:e})}const i=getNameTplUrl(o,t),a=getMobileLines(r);let s={name:o.name,label:o.label,sortable:o.sortable,type:"button",level:"link",actionType:"link",link:i,innerClassName:{"steedos-listview-item block text-gray-500":"true","max-w-[360px]":"${display == 'split'}"},body:{type:"wrapper",body:a,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(s=window.Meteor?.isCordova?{...s,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"\n Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...s,actionType:"",link:"",onEvent:{click:{actions:[{args:{api:{url:i,method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}],weight:0}}}),n.push(s),n}function getDefaultParams(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn(e){let t=e.visible;if(e._visible&&(t=e._visible),___default.isBoolean(t)&&(t=t.toString()),t)return t.trim().startsWith("function")?`${t}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`:t;if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(___default.each(t,(e=>{___default.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:"antd-Button--default"})})),!(n.length<1))return{type:"operation",label:instance.t("frontend_operation"),fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",requestAdaptor:"api.data={}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getTableSchema$1(e,t){let n=t&&t.isLookup;t||(t={});let o=[];return"SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1?o=await getMobileTableColumns(e,t):(o=await getTableColumns(e,t),n||o.push(await getTableOperation(t))),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:!1,defaultParams:getDefaultParams(t),columns:o,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>___default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?___default.isEmpty(e.mobile_columns)?___default.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&___default.each(e.sort,(function(e,n){if(___default.isArray(e)){let o=e[0]+" "+(e[1]||"");o=n>0?","+o:o,t+=o}else{let o=e.field_name+" "+e.order;o=n>0?","+o:o,t+=o}})),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(___default__default.default.isEmpty(n))n=[["owner","=",t]];else{if(___default__default.default.isString(n)&&___default__default.default.startsWith(___default__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!___default__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),___default.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&___default__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),___default.each(uiSchema.list_views,((e,t)=>{e.name=t,___default.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;n=await fetchAPI(t,{method:"get"})}if(!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function getUISchemaSync(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(n=Steedos.authRequest(t,{type:"GET",async:!1}),!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,o={}){const r=await getUISchema(t);if(!r)return{};const i=___default.find(r.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!i)return{uiSchema:r};if(i.enable_amis_schema&&i.amis_schema){return{uiSchema:r,isCustomAmisSchema:!0,amisSchema:___default.isString(i.amis_schema)?JSON.parse(i.amis_schema):i.amis_schema}}let a=getListViewColumns(i,o.formFactor),s=getListViewSort(i),l=getListViewFilter(i),c=i&&i._filters;if("calendar"===i.type){return{uiSchema:r,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...i.options}}}const d=o.defaults||{};d.headerSchema=null;try{const e=location.pathname+"/crud/"+(n||"");let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),d.listSchema=___default.defaultsDeep({},e,d.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}o.defaults=d,"recent"==n&&(c='\n function(filters, data) {\n var result = Steedos.authRequest(\'/graphql\', {\n type: \'POST\',\n async: false,\n data: JSON.stringify({\n query: \'{object_recent_viewed(filters: [["record.o","=","\' + data.objectName + \'"],["space","=","\' + data.context.tenantId + \'"],["owner","=","\' + data.context.userId + \'"]],sort:"modified desc",top:50){ _id,record} }\'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return ["_id", "=", _ids];\n }\n ');return{uiSchema:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:a,extraColumns:i.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:o,requestAdaptor:i.requestAdaptor,adaptor:i.adaptor,headerToolbarItems:o.headerToolbarItems,filterVisible:o.filterVisible,rowClassNameExpr:o.rowClassNameExpr}}}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync,window.getListSchema=getListSchema);var __assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},__assign.apply(this,arguments)};function createObject(e,t,n){e&&Object.isFrozen(e)&&(e=cloneObject(e));var o=e?Object.create(e,__assign(__assign({},n),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,n);return t&&isObject(t)&&Object.keys(t).forEach((function(e){return o[e]=t[e]})),o}function cloneObject(e,t){void 0===t&&(t=!0);var n=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return n[t]=e[t]})),n}function isObject(e){var t=typeof e;return e&&"string"!==t&&"number"!==t&&"boolean"!==t&&"function"!==t&&!Array.isArray(e)}var Flow=function(e){var t=e.dispatchEvent,n=e.config,o=e.backgroundConfig;__rest(e,["dispatchEvent","config","backgroundConfig"]),console.log("Flow render start with config:",n);var r=require$$0.useRef(!0),i=useReactFlow(),a=__read(useNodesState(n.nodes||n.defaultNodes),3),s=a[0];a[1];var l=a[2],c=__read(useEdgesState(n.edges||n.defaultEdges),3),d=c[0],u=c[1],p=c[2],f=require$$0.useCallback((function(e){return u((function(t){return addEdge(e,t)}))}),[]),m=require$$0.useCallback((function(){t("edgeUpdateStart",{edgeUpdateSuccessful:r})}),[]),h=require$$0.useCallback((function(e,n){u((function(t){return updateEdge(e,n,t)})),t("edgeUpdate",{oldEdge:e,newConnection:n,setEdges:u,updateEdge:updateEdge,edgeUpdateSuccessful:r})}),[]),g=require$$0.useCallback((function(e,n){t("edgeUpdateEnd",{_:e,edge:n,edgeUpdateSuccessful:r})}),[]);return useOnSelectionChange({onChange:function(e){var n=e.nodes,o=e.edges;t("selectionChange",{nodes:n,edges:o})}}),setTimeout((function(){t("getInstance",{reactFlowInstance:i})}),100),require$$0__default.default.createElement(ReactFlow,__assign$1({},n,{nodes:s,edges:d,onNodesChange:l,onEdgesChange:p,onConnect:f,onEdgeUpdateStart:m,onEdgeUpdate:h,onEdgeUpdateEnd:g}),!1===o?null:require$$0__default.default.createElement(Background$1,__assign$1({},o)),require$$0__default.default.createElement(Controls$1,null))},AmisReactFlow=function(e){var t=e.dispatchEvent,n=e.wrapperClassName,o=void 0===n?"w-full h-full":n,r=e.data;e.env,e.store,e.topStore,e.rootStore,e.scope,e.id,e.render,e.getValue,e.setValue,e.value;var i=e.config,a=e.backgroundConfig,s=__rest(e,["dispatchEvent","wrapperClassName","data","env","store","topStore","rootStore","scope","id","render","getValue","setValue","value","config","backgroundConfig"]);s.data||(s.data={});var l=require$$0.useRef();console.log("AmisReactFlow render start with config:",i,a);var c={};if("string"==typeof i)try{c=JSON.parse(i)}catch(e){console.log(e)}"object"==typeof i&&(c=i);var d={};if("string"==typeof a)try{d=JSON.parse(a)}catch(e){console.log(e)}else"object"==typeof a?d=a:!1===a&&(d=!1);var u=s.onDataFilter,p=s.dataFilter;u||"string"!=typeof p||(u=new Function("config","ReactFlow","data",p));try{u&&(c=u(c,window.ReactFlow,r)||c)}catch(e){console.warn(e)}var f=require$$0__default.default.createElement(ReactFlowProvider,__assign$1({},s),require$$0__default.default.createElement("div",{className:"steedos-react-flow "+o},require$$0__default.default.createElement(Flow,{dispatchEvent:function(e,n){return __awaiter(void 0,void 0,void 0,(function(){var o,i;return __generator(this,(function(a){switch(a.label){case 0:return t?[4,t(e,n?createObject(r,n):r,l.current)]:[2];case 1:return o=a.sent(),[2,null!==(i=null==o?void 0:o.prevented)&&void 0!==i&&i]}}))}))},config:c,backgroundConfig:d})));return l.current=f,f};"undefined"==typeof window&&(window.ReactFlow=ReactFlow),exports.AmisReactFlow=AmisReactFlow,exports.ReactFlow=ReactFlow,Object.defineProperty(exports,"__esModule",{value:!0})}));
|
|
10
|
+
*/function requireWithSelector_production_min(){if(hasRequiredWithSelector_production_min)return withSelector_production_min;hasRequiredWithSelector_production_min=1;var e=require$$0__default.default,t=requireShim();var n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=t.useSyncExternalStore,r=e.useRef,i=e.useEffect,a=e.useMemo,s=e.useDebugValue;return withSelector_production_min.useSyncExternalStoreWithSelector=function(e,t,l,c,d){var u=r(null);if(null===u.current){var p={hasValue:!1,value:null};u.current=p}else p=u.current;u=a((function(){function e(e){if(!i){if(i=!0,o=e,e=c(e),void 0!==d&&p.hasValue){var t=p.value;if(d(t,e))return r=t}return r=e}if(t=r,n(o,e))return t;var a=c(e);return void 0!==d&&d(t,a)?t:(o=e,r=a)}var o,r,i=!1,a=void 0===l?null:l;return[function(){return e(t())},null===a?void 0:function(){return e(a())}]}),[t,l,c,d]);var f=o(e,u[0],u[1]);return i((function(){p.hasValue=!0,p.value=f}),[f]),s(f),f},withSelector_production_min}!function(e){e.exports=requireWithSelector_production_min()}(withSelector);var useSyncExternalStoreExports=getDefaultExportFromCjs(withSelector.exports);const{useSyncExternalStoreWithSelector:useSyncExternalStoreWithSelector}=useSyncExternalStoreExports;function useStore$1(e,t=e.getState,n){const o=useSyncExternalStoreWithSelector(e.subscribe,e.getState,e.getServerState||e.getState,t,n);return require$$0.useDebugValue(o),o}function shallow(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!Object.is(e[n[o]],t[n[o]]))return!1;return!0}var noop$2={value:()=>{}};function dispatch(){for(var e,t=0,n=arguments.length,o={};t<n;++t){if(!(e=arguments[t]+"")||e in o||/[\s.]/.test(e))throw new Error("illegal type: "+e);o[e]=[]}return new Dispatch(o)}function Dispatch(e){this._=e}function parseTypenames$1(e,t){return e.trim().split(/^|\s+/).map((function(e){var n="",o=e.indexOf(".");if(o>=0&&(n=e.slice(o+1),e=e.slice(0,o)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function get$2(e,t){for(var n,o=0,r=e.length;o<r;++o)if((n=e[o]).name===t)return n.value}function set$1(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=noop$2,e=e.slice(0,o).concat(e.slice(o+1));break}return null!=n&&e.push({name:t,value:n}),e}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(e,t){var n,o=this._,r=parseTypenames$1(e+"",o),i=-1,a=r.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++i<a;)if(n=(e=r[i]).type)o[n]=set$1(o[n],e.name,t);else if(null==t)for(n in o)o[n]=set$1(o[n],e.name,null);return this}for(;++i<a;)if((n=(e=r[i]).type)&&(n=get$2(o[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Dispatch(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(o=this._[e]).length;i<n;++i)o[i].value.apply(t,r)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)}};var xhtml="http://www.w3.org/1999/xhtml",namespaces={svg:"http://www.w3.org/2000/svg",xhtml:xhtml,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),namespaces.hasOwnProperty(t)?{space:namespaces[t],local:e}:e}function creatorInherit(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===xhtml&&t.documentElement.namespaceURI===xhtml?t.createElement(e):t.createElementNS(n,e)}}function creatorFixed(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function creator(e){var t=namespace(e);return(t.local?creatorFixed:creatorInherit)(t)}function none(){}function selector$h(e){return null==e?none:function(){return this.querySelector(e)}}function selection_select(e){"function"!=typeof e&&(e=selector$h(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=t[r],l=s.length,c=o[r]=new Array(l),d=0;d<l;++d)(i=s[d])&&(a=e.call(i,i.__data__,d,s))&&("__data__"in i&&(a.__data__=i.__data__),c[d]=a);return new Selection$1(o,this._parents)}function array(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function empty(){return[]}function selectorAll(e){return null==e?empty:function(){return this.querySelectorAll(e)}}function arrayAll(e){return function(){return array(e.apply(this,arguments))}}function selection_selectAll(e){e="function"==typeof e?arrayAll(e):selectorAll(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var a,s=t[i],l=s.length,c=0;c<l;++c)(a=s[c])&&(o.push(e.call(a,a.__data__,c,s)),r.push(a));return new Selection$1(o,r)}function matcher(e){return function(){return this.matches(e)}}function childMatcher(e){return function(t){return t.matches(e)}}var find=Array.prototype.find;function childFind(e){return function(){return find.call(this.children,e)}}function childFirst(){return this.firstElementChild}function selection_selectChild(e){return this.select(null==e?childFirst:childFind("function"==typeof e?e:childMatcher(e)))}var filter=Array.prototype.filter;function children(){return Array.from(this.children)}function childrenFilter(e){return function(){return filter.call(this.children,e)}}function selection_selectChildren(e){return this.selectAll(null==e?children:childrenFilter("function"==typeof e?e:childMatcher(e)))}function selection_filter(e){"function"!=typeof e&&(e=matcher(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a=t[r],s=a.length,l=o[r]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new Selection$1(o,this._parents)}function sparse(e){return new Array(e.length)}function selection_enter(){return new Selection$1(this._enter||this._groups.map(sparse),this._parents)}function EnterNode(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function constant$3(e){return function(){return e}}function bindIndex(e,t,n,o,r,i){for(var a,s=0,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new EnterNode(e,i[s]);for(;s<l;++s)(a=t[s])&&(r[s]=a)}function bindKey(e,t,n,o,r,i,a){var s,l,c,d=new Map,u=t.length,p=i.length,f=new Array(u);for(s=0;s<u;++s)(l=t[s])&&(f[s]=c=a.call(l,l.__data__,s,t)+"",d.has(c)?r[s]=l:d.set(c,l));for(s=0;s<p;++s)c=a.call(e,i[s],s,i)+"",(l=d.get(c))?(o[s]=l,l.__data__=i[s],d.delete(c)):n[s]=new EnterNode(e,i[s]);for(s=0;s<u;++s)(l=t[s])&&d.get(f[s])===l&&(r[s]=l)}function datum(e){return e.__data__}function selection_data(e,t){if(!arguments.length)return Array.from(this,datum);var n=t?bindKey:bindIndex,o=this._parents,r=this._groups;"function"!=typeof e&&(e=constant$3(e));for(var i=r.length,a=new Array(i),s=new Array(i),l=new Array(i),c=0;c<i;++c){var d=o[c],u=r[c],p=u.length,f=arraylike(e.call(d,d&&d.__data__,c,o)),m=f.length,h=s[c]=new Array(m),g=a[c]=new Array(m),_=l[c]=new Array(p);n(d,u,h,g,_,f,t);for(var y,b,v=0,w=0;v<m;++v)if(y=h[v]){for(v>=w&&(w=v+1);!(b=g[w])&&++w<m;);y._next=b||null}}return(a=new Selection$1(a,o))._enter=s,a._exit=l,a}function arraylike(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function selection_exit(){return new Selection$1(this._exit||this._groups.map(sparse),this._parents)}function selection_join(e,t,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof e?(o=e(o))&&(o=o.selection()):o=o.append(e+""),null!=t&&(r=t(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r}function selection_merge(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),l=0;l<a;++l)for(var c,d=n[l],u=o[l],p=d.length,f=s[l]=new Array(p),m=0;m<p;++m)(c=d[m]||u[m])&&(f[m]=c);for(;l<r;++l)s[l]=n[l];return new Selection$1(s,this._parents)}function selection_order(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o,r=e[t],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this}function selection_sort(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=ascending);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],l=s.length,c=r[i]=new Array(l),d=0;d<l;++d)(a=s[d])&&(c[d]=a);c.sort(t)}return new Selection$1(r,this._parents).order()}function ascending(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function selection_call(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function selection_nodes(){return Array.from(this)}function selection_node(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length;r<i;++r){var a=o[r];if(a)return a}return null}function selection_size(){let e=0;for(const t of this)++e;return e}function selection_empty(){return!this.node()}function selection_each(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r,i=t[n],a=0,s=i.length;a<s;++a)(r=i[a])&&e.call(r,r.__data__,a,i);return this}function attrRemove$1(e){return function(){this.removeAttribute(e)}}function attrRemoveNS$1(e){return function(){this.removeAttributeNS(e.space,e.local)}}function attrConstant$1(e,t){return function(){this.setAttribute(e,t)}}function attrConstantNS$1(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function attrFunction$1(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function attrFunctionNS$1(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function selection_attr(e,t){var n=namespace(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==t?n.local?attrRemoveNS$1:attrRemove$1:"function"==typeof t?n.local?attrFunctionNS$1:attrFunction$1:n.local?attrConstantNS$1:attrConstant$1)(n,t))}function defaultView(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function styleRemove$1(e){return function(){this.style.removeProperty(e)}}function styleConstant$1(e,t,n){return function(){this.style.setProperty(e,t,n)}}function styleFunction$1(e,t,n){return function(){var o=t.apply(this,arguments);null==o?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function selection_style(e,t,n){return arguments.length>1?this.each((null==t?styleRemove$1:"function"==typeof t?styleFunction$1:styleConstant$1)(e,t,null==n?"":n)):styleValue(this.node(),e)}function styleValue(e,t){return e.style.getPropertyValue(t)||defaultView(e).getComputedStyle(e,null).getPropertyValue(t)}function propertyRemove(e){return function(){delete this[e]}}function propertyConstant(e,t){return function(){this[e]=t}}function propertyFunction(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function selection_property(e,t){return arguments.length>1?this.each((null==t?propertyRemove:"function"==typeof t?propertyFunction:propertyConstant)(e,t)):this.node()[e]}function classArray(e){return e.trim().split(/^|\s+/)}function classList(e){return e.classList||new ClassList(e)}function ClassList(e){this._node=e,this._names=classArray(e.getAttribute("class")||"")}function classedAdd(e,t){for(var n=classList(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function classedRemove(e,t){for(var n=classList(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function classedTrue(e){return function(){classedAdd(this,e)}}function classedFalse(e){return function(){classedRemove(this,e)}}function classedFunction(e,t){return function(){(t.apply(this,arguments)?classedAdd:classedRemove)(this,e)}}function selection_classed(e,t){var n=classArray(e+"");if(arguments.length<2){for(var o=classList(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof t?classedFunction:t?classedTrue:classedFalse)(n,t))}function textRemove(){this.textContent=""}function textConstant$1(e){return function(){this.textContent=e}}function textFunction$1(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function selection_text(e){return arguments.length?this.each(null==e?textRemove:("function"==typeof e?textFunction$1:textConstant$1)(e)):this.node().textContent}function htmlRemove(){this.innerHTML=""}function htmlConstant(e){return function(){this.innerHTML=e}}function htmlFunction(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function selection_html(e){return arguments.length?this.each(null==e?htmlRemove:("function"==typeof e?htmlFunction:htmlConstant)(e)):this.node().innerHTML}function raise(){this.nextSibling&&this.parentNode.appendChild(this)}function selection_raise(){return this.each(raise)}function lower(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower(){return this.each(lower)}function selection_append(e){var t="function"==typeof e?e:creator(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))}function constantNull(){return null}function selection_insert(e,t){var n="function"==typeof e?e:creator(e),o=null==t?constantNull:"function"==typeof t?t:selector$h(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))}function remove(){var e=this.parentNode;e&&e.removeChild(this)}function selection_remove(){return this.each(remove)}function selection_cloneShallow(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function selection_cloneDeep(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function selection_clone(e){return this.select(e?selection_cloneDeep:selection_cloneShallow)}function selection_datum(e){return arguments.length?this.property("__data__",e):this.node().__data__}function contextListener(e){return function(t){e.call(this,t,this.__data__)}}function parseTypenames(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}function onRemove(e){return function(){var t=this.__on;if(t){for(var n,o=0,r=-1,i=t.length;o<i;++o)n=t[o],e.type&&n.type!==e.type||n.name!==e.name?t[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?t.length=r:delete this.__on}}}function onAdd(e,t,n){return function(){var o,r=this.__on,i=contextListener(t);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===e.type&&o.name===e.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=t);this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function selection_on(e,t,n){var o,r,i=parseTypenames(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?onAdd:onRemove,o=0;o<a;++o)this.each(s(i[o],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,d=s.length;c<d;++c)for(o=0,l=s[c];o<a;++o)if((r=i[o]).type===l.type&&r.name===l.name)return l.value}function dispatchEvent(e,t,n){var o=defaultView(e),r=o.CustomEvent;"function"==typeof r?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function dispatchConstant(e,t){return function(){return dispatchEvent(this,e,t)}}function dispatchFunction(e,t){return function(){return dispatchEvent(this,e,t.apply(this,arguments))}}function selection_dispatch(e,t){return this.each(("function"==typeof t?dispatchFunction:dispatchConstant)(e,t))}function*selection_iterator(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o,r=e[t],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}EnterNode.prototype={constructor:EnterNode,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}},ClassList.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var root$2=[null];function Selection$1(e,t){this._groups=e,this._parents=t}function selection(){return new Selection$1([[document.documentElement]],root$2)}function selection_selection(){return this}function select(e){return"string"==typeof e?new Selection$1([[document.querySelector(e)]],[document.documentElement]):new Selection$1([[e]],root$2)}Selection$1.prototype=selection.prototype={constructor:Selection$1,select:selection_select,selectAll:selection_selectAll,selectChild:selection_selectChild,selectChildren:selection_selectChildren,filter:selection_filter,data:selection_data,enter:selection_enter,exit:selection_exit,join:selection_join,merge:selection_merge,selection:selection_selection,order:selection_order,sort:selection_sort,call:selection_call,nodes:selection_nodes,node:selection_node,size:selection_size,empty:selection_empty,each:selection_each,attr:selection_attr,style:selection_style,property:selection_property,classed:selection_classed,text:selection_text,html:selection_html,raise:selection_raise,lower:selection_lower,append:selection_append,insert:selection_insert,remove:selection_remove,clone:selection_clone,datum:selection_datum,on:selection_on,dispatch:selection_dispatch,[Symbol.iterator]:selection_iterator};var nextId=0;function Local(){this._="@"+(++nextId).toString(36)}function sourceEvent(e){let t;for(;t=e.sourceEvent;)e=t;return e}function pointer(e,t){if(e=sourceEvent(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}Local.prototype={constructor:Local,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};const nonpassive={passive:!1},nonpassivecapture={capture:!0,passive:!1};function nopropagation$1(e){e.stopImmediatePropagation()}function noevent$1(e){e.preventDefault(),e.stopImmediatePropagation()}function dragDisable(e){var t=e.document.documentElement,n=select(e).on("dragstart.drag",noevent$1,nonpassivecapture);"onselectstart"in t?n.on("selectstart.drag",noevent$1,nonpassivecapture):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function yesdrag(e,t){var n=e.document.documentElement,o=select(e).on("dragstart.drag",null);t&&(o.on("click.drag",noevent$1,nonpassivecapture),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var constant$2=e=>()=>e;function DragEvent(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}function defaultFilter$1(e){return!e.ctrlKey&&!e.button}function defaultContainer(){return this.parentNode}function defaultSubject(e,t){return null==t?{x:e.x,y:e.y}:t}function defaultTouchable$1(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag(){var e,t,n,o,r=defaultFilter$1,i=defaultContainer,a=defaultSubject,s=defaultTouchable$1,l={},c=dispatch("start","drag","end"),d=0,u=0;function p(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",g).on("touchmove.drag",_,nonpassive).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var l=b(this,i.call(this,a,s),a,s,"mouse");l&&(select(a.view).on("mousemove.drag",m,nonpassivecapture).on("mouseup.drag",h,nonpassivecapture),dragDisable(a.view),nopropagation$1(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function m(o){if(noevent$1(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>u}l.mouse("drag",o)}function h(e){select(e.view).on("mousemove.drag mouseup.drag",null),yesdrag(e.view,n),noevent$1(e),l.mouse("end",e)}function g(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(o=b(this,s,e,t,a[n].identifier,a[n]))&&(nopropagation$1(e),o("start",e,a[n]))}}function _(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&(noevent$1(e),n("drag",e,o[t]))}function y(e){var t,n,r=e.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout((function(){o=null}),500),t=0;t<i;++t)(n=l[r[t].identifier])&&(nopropagation$1(e),n("end",e,r[t]))}function b(e,t,n,o,r,i){var s,u,f,m=c.copy(),h=pointer(i||n,t);if(null!=(f=a.call(e,new DragEvent("beforestart",{sourceEvent:n,target:p,identifier:r,active:d,x:h[0],y:h[1],dx:0,dy:0,dispatch:m}),o)))return s=f.x-h[0]||0,u=f.y-h[1]||0,function n(i,a,c){var g,_=h;switch(i){case"start":l[r]=n,g=d++;break;case"end":delete l[r],--d;case"drag":h=pointer(c||a,t),g=d}m.call(i,e,new DragEvent(i,{sourceEvent:a,subject:f,target:p,identifier:r,active:g,x:h[0]+s,y:h[1]+u,dx:h[0]-_[0],dy:h[1]-_[1],dispatch:m}),o)}}return p.filter=function(e){return arguments.length?(r="function"==typeof e?e:constant$2(!!e),p):r},p.container=function(e){return arguments.length?(i="function"==typeof e?e:constant$2(e),p):i},p.subject=function(e){return arguments.length?(a="function"==typeof e?e:constant$2(e),p):a},p.touchable=function(e){return arguments.length?(s="function"==typeof e?e:constant$2(!!e),p):s},p.on=function(){var e=c.on.apply(c,arguments);return e===c?p:e},p.clickDistance=function(e){return arguments.length?(u=(e=+e)*e,p):Math.sqrt(u)},p}function define(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function extend(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function Color(){}DragEvent.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var darker=.7,brighter=1/darker,reI="\\s*([+-]?\\d+)\\s*",reN="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",reP="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",reHex=/^#([0-9a-f]{3,8})$/,reRgbInteger=new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),reRgbPercent=new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),reRgbaInteger=new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),reRgbaPercent=new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),reHslPercent=new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),reHslaPercent=new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`),named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=reHex.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?rgbn(t):3===n?new Rgb(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?rgba(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?rgba(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=reRgbInteger.exec(e))?new Rgb(t[1],t[2],t[3],1):(t=reRgbPercent.exec(e))?new Rgb(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=reRgbaInteger.exec(e))?rgba(t[1],t[2],t[3],t[4]):(t=reRgbaPercent.exec(e))?rgba(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=reHslPercent.exec(e))?hsla(t[1],t[2]/100,t[3]/100,1):(t=reHslaPercent.exec(e))?hsla(t[1],t[2]/100,t[3]/100,t[4]):named.hasOwnProperty(e)?rgbn(named[e]):"transparent"===e?new Rgb(NaN,NaN,NaN,0):null}function rgbn(e){return new Rgb(e>>16&255,e>>8&255,255&e,1)}function rgba(e,t,n,o){return o<=0&&(e=t=n=NaN),new Rgb(e,t,n,o)}function rgbConvert(e){return e instanceof Color||(e=color(e)),e?new Rgb((e=e.rgb()).r,e.g,e.b,e.opacity):new Rgb}function rgb(e,t,n,o){return 1===arguments.length?rgbConvert(e):new Rgb(e,t,n,null==o?1:o)}function Rgb(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex(255*(isNaN(this.opacity)?1:this.opacity))}`}function rgb_formatRgb(){const e=clampa(this.opacity);return`${1===e?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${1===e?")":`, ${e})`}`}function clampa(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function clampi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function hex(e){return((e=clampi(e))<16?"0":"")+e.toString(16)}function hsla(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Hsl(e,t,n,o)}function hslConvert(e){if(e instanceof Hsl)return new Hsl(e.h,e.s,e.l,e.opacity);if(e instanceof Color||(e=color(e)),!e)return new Hsl;if(e instanceof Hsl)return e;var t=(e=e.rgb()).r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),a=NaN,s=i-r,l=(i+r)/2;return s?(a=t===i?(n-o)/s+6*(n<o):n===i?(o-t)/s+2:(t-n)/s+4,s/=l<.5?i+r:2-i-r,a*=60):s=l>0&&l<1?0:a,new Hsl(a,s,l,e.opacity)}function hsl(e,t,n,o){return 1===arguments.length?hslConvert(e):new Hsl(e,t,n,null==o?1:o)}function Hsl(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}function clamph(e){return(e=(e||0)%360)<0?e+360:e}function clampt(e){return Math.max(0,Math.min(1,e||0))}function hsl2rgb(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}define(Color,color,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb}),define(Rgb,rgb,extend(Color,{brighter(e){return e=null==e?brighter:Math.pow(brighter,e),new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?darker:Math.pow(darker,e),new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb})),define(Hsl,hsl,extend(Color,{brighter(e){return e=null==e?brighter:Math.pow(brighter,e),new Hsl(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?darker:Math.pow(darker,e),new Hsl(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new Rgb(hsl2rgb(e>=240?e-240:e+120,r,o),hsl2rgb(e,r,o),hsl2rgb(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=clampa(this.opacity);return`${1===e?"hsl(":"hsla("}${clamph(this.h)}, ${100*clampt(this.s)}%, ${100*clampt(this.l)}%${1===e?")":`, ${e})`}`}}));const radians=Math.PI/180,degrees$1=180/Math.PI,K=18,Xn=.96422,Yn=1,Zn=.82521,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1;function labConvert(e){if(e instanceof Lab)return new Lab(e.l,e.a,e.b,e.opacity);if(e instanceof Hcl)return hcl2lab(e);e instanceof Rgb||(e=rgbConvert(e));var t,n,o=rgb2lrgb(e.r),r=rgb2lrgb(e.g),i=rgb2lrgb(e.b),a=xyz2lab((.2225045*o+.7168786*r+.0606169*i)/Yn);return o===r&&r===i?t=n=a:(t=xyz2lab((.4360747*o+.3850649*r+.1430804*i)/Xn),n=xyz2lab((.0139322*o+.0971045*r+.7141733*i)/Zn)),new Lab(116*a-16,500*(t-a),200*(a-n),e.opacity)}function lab(e,t,n,o){return 1===arguments.length?labConvert(e):new Lab(e,t,n,null==o?1:o)}function Lab(e,t,n,o){this.l=+e,this.a=+t,this.b=+n,this.opacity=+o}function xyz2lab(e){return e>t3?Math.pow(e,1/3):e/t2+t0}function lab2xyz(e){return e>t1?e*e*e:t2*(e-t0)}function lrgb2rgb(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function rgb2lrgb(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function hclConvert(e){if(e instanceof Hcl)return new Hcl(e.h,e.c,e.l,e.opacity);if(e instanceof Lab||(e=labConvert(e)),0===e.a&&0===e.b)return new Hcl(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*degrees$1;return new Hcl(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function hcl(e,t,n,o){return 1===arguments.length?hclConvert(e):new Hcl(e,t,n,null==o?1:o)}function Hcl(e,t,n,o){this.h=+e,this.c=+t,this.l=+n,this.opacity=+o}function hcl2lab(e){if(isNaN(e.h))return new Lab(e.l,0,0,e.opacity);var t=e.h*radians;return new Lab(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}define(Lab,lab,extend(Color,{brighter(e){return new Lab(this.l+K*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new Lab(this.l-K*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new Rgb(lrgb2rgb(3.1338561*(t=Xn*lab2xyz(t))-1.6168667*(e=Yn*lab2xyz(e))-.4906146*(n=Zn*lab2xyz(n))),lrgb2rgb(-.9787684*t+1.9161415*e+.033454*n),lrgb2rgb(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),define(Hcl,hcl,extend(Color,{brighter(e){return new Hcl(this.h,this.c,this.l+K*(null==e?1:e),this.opacity)},darker(e){return new Hcl(this.h,this.c,this.l-K*(null==e?1:e),this.opacity)},rgb(){return hcl2lab(this).rgb()}}));var A=-.14861,B=1.78277,C=-.29227,D=-.90649,E=1.97294,ED=E*D,EB=E*B,BC_DA=B*C-D*A;function cubehelixConvert(e){if(e instanceof Cubehelix)return new Cubehelix(e.h,e.s,e.l,e.opacity);e instanceof Rgb||(e=rgbConvert(e));var t=e.r/255,n=e.g/255,o=e.b/255,r=(BC_DA*o+ED*t-EB*n)/(BC_DA+ED-EB),i=o-r,a=(E*(n-r)-C*i)/D,s=Math.sqrt(a*a+i*i)/(E*r*(1-r)),l=s?Math.atan2(a,i)*degrees$1-120:NaN;return new Cubehelix(l<0?l+360:l,s,r,e.opacity)}function cubehelix$1(e,t,n,o){return 1===arguments.length?cubehelixConvert(e):new Cubehelix(e,t,n,null==o?1:o)}function Cubehelix(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}define(Cubehelix,cubehelix$1,extend(Color,{brighter(e){return e=null==e?brighter:Math.pow(brighter,e),new Cubehelix(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?darker:Math.pow(darker,e),new Cubehelix(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*radians,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),o=Math.cos(e),r=Math.sin(e);return new Rgb(255*(t+n*(A*o+B*r)),255*(t+n*(C*o+D*r)),255*(t+n*(E*o)),this.opacity)}}));var constant$1=e=>()=>e;function linear(e,t){return function(n){return e+n*t}}function exponential(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function hue(e,t){var n=t-e;return n?linear(e,n>180||n<-180?n-360*Math.round(n/360):n):constant$1(isNaN(e)?t:e)}function gamma(e){return 1==(e=+e)?nogamma:function(t,n){return n-t?exponential(t,n,e):constant$1(isNaN(t)?n:t)}}function nogamma(e,t){var n=t-e;return n?linear(e,n):constant$1(isNaN(e)?t:e)}var interpolateRgb=function e(t){var n=gamma(t);function o(e,t){var o=n((e=rgb(e)).r,(t=rgb(t)).r),r=n(e.g,t.g),i=n(e.b,t.b),a=nogamma(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=r(t),e.b=i(t),e.opacity=a(t),e+""}}return o.gamma=e,o}(1);function interpolateNumber(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,reB=new RegExp(reA.source,"g");function zero(e){return function(){return e}}function one(e){return function(t){return e(t)+""}}function interpolateString(e,t){var n,o,r,i=reA.lastIndex=reB.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=reA.exec(e))&&(o=reB.exec(t));)(r=o.index)>i&&(r=t.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,l.push({i:a,x:interpolateNumber(n,o)})),i=reB.lastIndex;return i<t.length&&(r=t.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?one(l[0].x):zero(t):(t=l.length,function(e){for(var n,o=0;o<t;++o)s[(n=l[o]).i]=n.x(e);return s.join("")})}var degrees=180/Math.PI,identity$1={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},svgNode;function decompose(e,t,n,o,r,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,l/=s),e*o<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*degrees,skewX:Math.atan(l)*degrees,scaleX:a,scaleY:s}}function parseCss(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?identity$1:decompose(t.a,t.b,t.c,t.d,t.e,t.f)}function parseSvg(e){return null==e?identity$1:(svgNode||(svgNode=document.createElementNS("http://www.w3.org/2000/svg","g")),svgNode.setAttribute("transform",e),(e=svgNode.transform.baseVal.consolidate())?decompose((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):identity$1)}function interpolateTransform(e,t,n,o){function r(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],l=[];return i=e(i),a=e(a),function(e,o,r,i,a,s){if(e!==r||o!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:interpolateNumber(e,r)},{i:l-2,x:interpolateNumber(o,i)})}else(r||i)&&a.push("translate("+r+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,l),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:interpolateNumber(e,t)})):t&&n.push(r(n)+"rotate("+t+o)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:interpolateNumber(e,t)}):t&&n.push(r(n)+"skewX("+t+o)}(i.skewX,a.skewX,s,l),function(e,t,n,o,i,a){if(e!==n||t!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:interpolateNumber(e,n)},{i:s-2,x:interpolateNumber(t,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,o=l.length;++n<o;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var interpolateTransformCss=interpolateTransform(parseCss,"px, ","px)","deg)"),interpolateTransformSvg=interpolateTransform(parseSvg,", ",")",")"),epsilon2=1e-12;function cosh(e){return((e=Math.exp(e))+1/e)/2}function sinh(e){return((e=Math.exp(e))-1/e)/2}function tanh(e){return((e=Math.exp(2*e))-1)/(e+1)}var interpolateZoom=function e(t,n,o){function r(e,r){var i,a,s=e[0],l=e[1],c=e[2],d=r[0],u=r[1],p=r[2],f=d-s,m=u-l,h=f*f+m*m;if(h<epsilon2)a=Math.log(p/c)/t,i=function(e){return[s+e*f,l+e*m,c*Math.exp(t*e*a)]};else{var g=Math.sqrt(h),_=(p*p-c*c+o*h)/(2*c*n*g),y=(p*p-c*c-o*h)/(2*p*n*g),b=Math.log(Math.sqrt(_*_+1)-_),v=Math.log(Math.sqrt(y*y+1)-y);a=(v-b)/t,i=function(e){var o=e*a,r=cosh(b),i=c/(n*g)*(r*tanh(t*o+b)-sinh(b));return[s+i*f,l+i*m,c*r/cosh(t*o+b)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return r.rho=function(t){var n=Math.max(.001,+t),o=n*n;return e(n,o,o*o)},r}(Math.SQRT2,2,4);function cubehelix(e){return function t(n){function o(t,o){var r=e((t=cubehelix$1(t)).h,(o=cubehelix$1(o)).h),i=nogamma(t.s,o.s),a=nogamma(t.l,o.l),s=nogamma(t.opacity,o.opacity);return function(e){return t.h=r(e),t.s=i(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,o.gamma=t,o}(1)}cubehelix(hue),cubehelix(nogamma);var frame=0,timeout$1=0,interval=0,pokeDelay=1e3,taskHead,taskTail,clockLast=0,clockNow=0,clockSkew=0,clock="object"==typeof performance&&performance.now?performance:Date,setFrame="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function now(){return clockNow||(setFrame(clearNow),clockNow=clock.now()+clockSkew)}function clearNow(){clockNow=0}function Timer(){this._call=this._time=this._next=null}function timer(e,t,n){var o=new Timer;return o.restart(e,t,n),o}function timerFlush(){now(),++frame;for(var e,t=taskHead;t;)(e=clockNow-t._time)>=0&&t._call.call(void 0,e),t=t._next;--frame}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame=timeout$1=0;try{timerFlush()}finally{frame=0,nap(),clockNow=0}}function poke(){var e=clock.now(),t=e-clockLast;t>pokeDelay&&(clockSkew-=t,clockLast=e)}function nap(){for(var e,t,n=taskHead,o=1/0;n;)n._call?(o>n._time&&(o=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:taskHead=t);taskTail=e,sleep(o)}function sleep(e){frame||(timeout$1&&(timeout$1=clearTimeout(timeout$1)),e-clockNow>24?(e<1/0&&(timeout$1=setTimeout(wake,e-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame=1,setFrame(wake)))}function timeout(e,t,n){var o=new Timer;return t=null==t?0:+t,o.restart((n=>{o.stop(),e(n+t)}),t,n),o}Timer.prototype=timer.prototype={constructor:Timer,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?now():+n)+(null==t?0:+t),this._next||taskTail===this||(taskTail?taskTail._next=this:taskHead=this,taskTail=this),this._call=e,this._time=n,sleep()},stop:function(){this._call&&(this._call=null,this._time=1/0,sleep())}};var emptyOn=dispatch("start","end","cancel","interrupt"),emptyTween=[],CREATED=0,SCHEDULED=1,STARTING=2,STARTED=3,RUNNING=4,ENDING=5,ENDED=6;function schedule(e,t,n,o,r,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};create(e,n,{name:t,index:o,group:r,on:emptyOn,tween:emptyTween,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:CREATED})}function init(e,t){var n=get$1(e,t);if(n.state>CREATED)throw new Error("too late; already scheduled");return n}function set(e,t){var n=get$1(e,t);if(n.state>STARTED)throw new Error("too late; already running");return n}function get$1(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function create(e,t,n){var o,r=e.__transition;function i(l){var c,d,u,p;if(n.state!==SCHEDULED)return s();for(c in r)if((p=r[c]).name===n.name){if(p.state===STARTED)return timeout(i);p.state===RUNNING?(p.state=ENDED,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[c]):+c<t&&(p.state=ENDED,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[c])}if(timeout((function(){n.state===STARTED&&(n.state=RUNNING,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=STARTING,n.on.call("start",e,e.__data__,n.index,n.group),n.state===STARTING){for(n.state=STARTED,o=new Array(u=n.tween.length),c=0,d=-1;c<u;++c)(p=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(o[++d]=p);o.length=d+1}}function a(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(s),n.state=ENDING,1),i=-1,a=o.length;++i<a;)o[i].call(e,r);n.state===ENDING&&(n.on.call("end",e,e.__data__,n.index,n.group),s())}function s(){for(var o in n.state=ENDED,n.timer.stop(),delete r[t],r)return;delete e.__transition}r[t]=n,n.timer=timer((function(e){n.state=SCHEDULED,n.timer.restart(i,n.delay,n.time),n.delay<=e&&i(e-n.delay)}),0,n.time)}function interrupt(e,t){var n,o,r,i=e.__transition,a=!0;if(i){for(r in t=null==t?null:t+"",i)(n=i[r]).name===t?(o=n.state>STARTING&&n.state<ENDING,n.state=ENDED,n.timer.stop(),n.on.call(o?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete e.__transition}}function selection_interrupt(e){return this.each((function(){interrupt(this,e)}))}function tweenRemove(e,t){var n,o;return function(){var r=set(this,e),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===t){(o=o.slice()).splice(a,1);break}r.tween=o}}function tweenFunction(e,t,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=set(this,e),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=s;break}l===c&&r.push(s)}i.tween=r}}function transition_tween(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o,r=get$1(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((null==t?tweenRemove:tweenFunction)(n,e,t))}function tweenValue(e,t,n){var o=e._id;return e.each((function(){var e=set(this,o);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return get$1(e,o).value[t]}}function interpolate(e,t){var n;return("number"==typeof t?interpolateNumber:t instanceof color?interpolateRgb:(n=color(t))?(t=n,interpolateRgb):interpolateString)(e,t)}function attrRemove(e){return function(){this.removeAttribute(e)}}function attrRemoveNS(e){return function(){this.removeAttributeNS(e.space,e.local)}}function attrConstant(e,t,n){var o,r,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===o?r:r=t(o=a,n)}}function attrConstantNS(e,t,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===o?r:r=t(o=a,n)}}function attrFunction(e,t,n){var o,r,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===o&&s===r?i:(r=s,i=t(o=a,l));this.removeAttribute(e)}}function attrFunctionNS(e,t,n){var o,r,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===o&&s===r?i:(r=s,i=t(o=a,l));this.removeAttributeNS(e.space,e.local)}}function transition_attr(e,t){var n=namespace(e),o="transform"===n?interpolateTransformSvg:interpolate;return this.attrTween(e,"function"==typeof t?(n.local?attrFunctionNS:attrFunction)(n,o,tweenValue(this,"attr."+e,t)):null==t?(n.local?attrRemoveNS:attrRemove)(n):(n.local?attrConstantNS:attrConstant)(n,o,t))}function attrInterpolate(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function attrInterpolateNS(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function attrTweenNS(e,t){var n,o;function r(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&attrInterpolateNS(e,r)),n}return r._value=t,r}function attrTween(e,t){var n,o;function r(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&attrInterpolate(e,r)),n}return r._value=t,r}function transition_attrTween(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var o=namespace(e);return this.tween(n,(o.local?attrTweenNS:attrTween)(o,t))}function delayFunction(e,t){return function(){init(this,e).delay=+t.apply(this,arguments)}}function delayConstant(e,t){return t=+t,function(){init(this,e).delay=t}}function transition_delay(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?delayFunction:delayConstant)(t,e)):get$1(this.node(),t).delay}function durationFunction(e,t){return function(){set(this,e).duration=+t.apply(this,arguments)}}function durationConstant(e,t){return t=+t,function(){set(this,e).duration=t}}function transition_duration(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?durationFunction:durationConstant)(t,e)):get$1(this.node(),t).duration}function easeConstant(e,t){if("function"!=typeof t)throw new Error;return function(){set(this,e).ease=t}}function transition_ease(e){var t=this._id;return arguments.length?this.each(easeConstant(t,e)):get$1(this.node(),t).ease}function easeVarying(e,t){return function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw new Error;set(this,e).ease=n}}function transition_easeVarying(e){if("function"!=typeof e)throw new Error;return this.each(easeVarying(this._id,e))}function transition_filter(e){"function"!=typeof e&&(e=matcher(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a=t[r],s=a.length,l=o[r]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new Transition(o,this._parents,this._name,this._id)}function transition_merge(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,i=Math.min(o,r),a=new Array(o),s=0;s<i;++s)for(var l,c=t[s],d=n[s],u=c.length,p=a[s]=new Array(u),f=0;f<u;++f)(l=c[f]||d[f])&&(p[f]=l);for(;s<o;++s)a[s]=t[s];return new Transition(a,this._parents,this._name,this._id)}function start(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}function onFunction(e,t,n){var o,r,i=start(t)?init:set;return function(){var a=i(this,e),s=a.on;s!==o&&(r=(o=s).copy()).on(t,n),a.on=r}}function transition_on(e,t){var n=this._id;return arguments.length<2?get$1(this.node(),n).on.on(e):this.each(onFunction(n,e,t))}function removeFunction(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function transition_remove(){return this.on("end.remove",removeFunction(this._id))}function transition_select(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=selector$h(e));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,l,c=o[a],d=c.length,u=i[a]=new Array(d),p=0;p<d;++p)(s=c[p])&&(l=e.call(s,s.__data__,p,c))&&("__data__"in s&&(l.__data__=s.__data__),u[p]=l,schedule(u[p],t,n,p,u,get$1(s,n)));return new Transition(i,this._parents,t,n)}function transition_selectAll(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=selectorAll(e));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var l,c=o[s],d=c.length,u=0;u<d;++u)if(l=c[u]){for(var p,f=e.call(l,l.__data__,u,c),m=get$1(l,n),h=0,g=f.length;h<g;++h)(p=f[h])&&schedule(p,t,n,h,f,m);i.push(f),a.push(l)}return new Transition(i,a,t,n)}var Selection=selection.prototype.constructor;function transition_selection(){return new Selection(this._groups,this._parents)}function styleNull(e,t){var n,o,r;return function(){var i=styleValue(this,e),a=(this.style.removeProperty(e),styleValue(this,e));return i===a?null:i===n&&a===o?r:r=t(n=i,o=a)}}function styleRemove(e){return function(){this.style.removeProperty(e)}}function styleConstant(e,t,n){var o,r,i=n+"";return function(){var a=styleValue(this,e);return a===i?null:a===o?r:r=t(o=a,n)}}function styleFunction(e,t,n){var o,r,i;return function(){var a=styleValue(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=styleValue(this,e)),a===l?null:a===o&&l===r?i:(r=l,i=t(o=a,s))}}function styleMaybeRemove(e,t){var n,o,r,i,a="style."+t,s="end."+a;return function(){var l=set(this,e),c=l.on,d=null==l.value[a]?i||(i=styleRemove(t)):void 0;c===n&&r===d||(o=(n=c).copy()).on(s,r=d),l.on=o}}function transition_style(e,t,n){var o="transform"==(e+="")?interpolateTransformCss:interpolate;return null==t?this.styleTween(e,styleNull(e,o)).on("end.style."+e,styleRemove(e)):"function"==typeof t?this.styleTween(e,styleFunction(e,o,tweenValue(this,"style."+e,t))).each(styleMaybeRemove(this._id,e)):this.styleTween(e,styleConstant(e,o,t),n).on("end.style."+e,null)}function styleInterpolate(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function styleTween(e,t,n){var o,r;function i(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&styleInterpolate(e,i,n)),o}return i._value=t,i}function transition_styleTween(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==t)return this.tween(o,null);if("function"!=typeof t)throw new Error;return this.tween(o,styleTween(e,t,null==n?"":n))}function textConstant(e){return function(){this.textContent=e}}function textFunction(e){return function(){var t=e(this);this.textContent=null==t?"":t}}function transition_text(e){return this.tween("text","function"==typeof e?textFunction(tweenValue(this,"text",e)):textConstant(null==e?"":e+""))}function textInterpolate(e){return function(t){this.textContent=e.call(this,t)}}function textTween(e){var t,n;function o(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&textInterpolate(o)),t}return o._value=e,o}function transition_textTween(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,textTween(e))}function transition_transition(){for(var e=this._name,t=this._id,n=newId(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],l=s.length,c=0;c<l;++c)if(a=s[c]){var d=get$1(a,t);schedule(a,e,n,c,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Transition(o,this._parents,e,n)}function transition_end(){var e,t,n=this,o=n._id,r=n.size();return new Promise((function(i,a){var s={value:a},l={value:function(){0==--r&&i()}};n.each((function(){var n=set(this,o),r=n.on;r!==e&&((t=(e=r).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t})),0===r&&i()}))}var id=0;function Transition(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function newId(){return++id}var selection_prototype=selection.prototype;function cubicInOut(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}Transition.prototype={constructor:Transition,select:transition_select,selectAll:transition_selectAll,selectChild:selection_prototype.selectChild,selectChildren:selection_prototype.selectChildren,filter:transition_filter,merge:transition_merge,selection:transition_selection,transition:transition_transition,call:selection_prototype.call,nodes:selection_prototype.nodes,node:selection_prototype.node,size:selection_prototype.size,empty:selection_prototype.empty,each:selection_prototype.each,on:transition_on,attr:transition_attr,attrTween:transition_attrTween,style:transition_style,styleTween:transition_styleTween,text:transition_text,textTween:transition_textTween,remove:transition_remove,tween:transition_tween,delay:transition_delay,duration:transition_duration,ease:transition_ease,easeVarying:transition_easeVarying,end:transition_end,[Symbol.iterator]:selection_prototype[Symbol.iterator]};var exponent=3;function tpmt(e){return 1.0009775171065494*(Math.pow(2,-10*e)-.0009765625)}!function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n}(exponent),function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(exponent),function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(exponent);var overshoot=1.70158;!function e(t){function n(e){return(e=+e)*e*(t*(e-1)+e)}return t=+t,n.overshoot=e,n}(overshoot),function e(t){function n(e){return--e*e*((e+1)*t+e)+1}return t=+t,n.overshoot=e,n}(overshoot),function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(overshoot);var tau=2*Math.PI,amplitude=1,period=.3;!function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=tau);function r(e){return t*tpmt(- --e)*Math.sin((o-e)/n)}return r.amplitude=function(t){return e(t,n*tau)},r.period=function(n){return e(t,n)},r}(amplitude,period),function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=tau);function r(e){return 1-t*tpmt(e=+e)*Math.sin((e+o)/n)}return r.amplitude=function(t){return e(t,n*tau)},r.period=function(n){return e(t,n)},r}(amplitude,period),function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=tau);function r(e){return((e=2*e-1)<0?t*tpmt(-e)*Math.sin((o-e)/n):2-t*tpmt(e)*Math.sin((o+e)/n))/2}return r.amplitude=function(t){return e(t,n*tau)},r.period=function(n){return e(t,n)},r}(amplitude,period);var defaultTiming={time:null,delay:0,duration:250,ease:cubicInOut};function inherit(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function selection_transition(e){var t,n;e instanceof Transition?(t=e._id,e=e._name):(t=newId(),(n=defaultTiming).time=now(),e=null==e?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],l=s.length,c=0;c<l;++c)(a=s[c])&&schedule(a,e,t,c,s,n||inherit(a,t));return new Transition(o,this._parents,e,t)}selection.prototype.interrupt=selection_interrupt,selection.prototype.transition=selection_transition;var constant=e=>()=>e;function ZoomEvent(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function Transform(e,t,n){this.k=e,this.x=t,this.y=n}Transform.prototype={constructor:Transform,scale:function(e){return 1===e?this:new Transform(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Transform(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var identity=new Transform(1,0,0);function nopropagation(e){e.stopImmediatePropagation()}function noevent(e){e.preventDefault(),e.stopImmediatePropagation()}function defaultFilter(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function defaultExtent(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function defaultTransform(){return this.__zoom||identity}function defaultWheelDelta(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function defaultTouchable(){return navigator.maxTouchPoints||"ontouchstart"in this}function defaultConstrain(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function zoom(){var e,t,n,o=defaultFilter,r=defaultExtent,i=defaultConstrain,a=defaultWheelDelta,s=defaultTouchable,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,u=interpolateZoom,p=dispatch("start","zoom","end"),f=500,m=0,h=10;function g(e){e.property("__zoom",defaultTransform).on("wheel.zoom",x,{passive:!1}).on("mousedown.zoom",$).on("dblclick.zoom",N).filter(s).on("touchstart.zoom",E).on("touchmove.zoom",k).on("touchend.zoom touchcancel.zoom",C).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new Transform(t,e.x,e.y)}function y(e,t,n){var o=t[0]-n[0]*e.k,r=t[1]-n[1]*e.k;return o===e.x&&r===e.y?e:new Transform(e.k,o,r)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function v(e,t,n,o){e.on("start.zoom",(function(){w(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){w(this,arguments).event(o).end()})).tween("zoom",(function(){var e=this,i=arguments,a=w(e,i).event(o),s=r.apply(e,i),l=null==n?b(s):"function"==typeof n?n.apply(e,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,p="function"==typeof t?t.apply(e,i):t,f=u(d.invert(l).concat(c/d.k),p.invert(l).concat(c/p.k));return function(e){if(1===e)e=p;else{var t=f(e),n=c/t[2];e=new Transform(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function w(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=r.apply(e,t),this.taps=0}function x(e,...t){if(o.apply(this,arguments)){var n=w(this,t).event(e),r=this.__zoom,s=Math.max(l[0],Math.min(l[1],r.k*Math.pow(2,a.apply(this,arguments)))),d=pointer(e);if(n.wheel)n.mouse[0][0]===d[0]&&n.mouse[0][1]===d[1]||(n.mouse[1]=r.invert(n.mouse[0]=d)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[d,r.invert(d)],interrupt(this),n.start()}noevent(e),n.wheel=setTimeout(u,150),n.zoom("mouse",i(y(_(r,s),n.mouse[0],n.mouse[1]),n.extent,c))}function u(){n.wheel=null,n.end()}}function $(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,a=w(this,t,!0).event(e),s=select(e.view).on("mousemove.zoom",p,!0).on("mouseup.zoom",f,!0),l=pointer(e,r),d=e.clientX,u=e.clientY;dragDisable(e.view),nopropagation(e),a.mouse=[l,this.__zoom.invert(l)],interrupt(this),a.start()}function p(e){if(noevent(e),!a.moved){var t=e.clientX-d,n=e.clientY-u;a.moved=t*t+n*n>m}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=pointer(e,r),a.mouse[1]),a.extent,c))}function f(e){s.on("mousemove.zoom mouseup.zoom",null),yesdrag(e.view,a.moved),noevent(e),a.event(e).end()}}function N(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,a=pointer(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),u=i(y(_(n,l),a,s),r.apply(this,t),c);noevent(e),d>0?select(this).transition().duration(d).call(v,u,a,e):select(this).call(g.transform,u,a,e)}}function E(n,...r){if(o.apply(this,arguments)){var i,a,s,l,c=n.touches,d=c.length,u=w(this,r,n.changedTouches.length===d).event(n);for(nopropagation(n),a=0;a<d;++a)l=[l=pointer(s=c[a],this),this.__zoom.invert(l),s.identifier],u.touch0?u.touch1||u.touch0[2]===l[2]||(u.touch1=l,u.taps=0):(u.touch0=l,i=!0,u.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(u.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),f)),interrupt(this),u.start())}}function k(e,...t){if(this.__zooming){var n,o,r,a,s=w(this,t).event(e),l=e.changedTouches,d=l.length;for(noevent(e),n=0;n<d;++n)r=pointer(o=l[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var u=s.touch0[0],p=s.touch0[1],f=s.touch1[0],m=s.touch1[1],h=(h=f[0]-u[0])*h+(h=f[1]-u[1])*h,g=(g=m[0]-p[0])*g+(g=m[1]-p[1])*g;o=_(o,Math.sqrt(h/g)),r=[(u[0]+f[0])/2,(u[1]+f[1])/2],a=[(p[0]+m[0])/2,(p[1]+m[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(y(o,r,a),s.extent,c))}}function C(e,...o){if(this.__zooming){var r,i,a=w(this,o).event(e),s=e.changedTouches,l=s.length;for(nopropagation(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),r=0;r<l;++r)i=s[r],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=pointer(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<h)){var c=select(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return g.transform=function(e,t,n,o){var r=e.selection?e.selection():e;r.property("__zoom",defaultTransform),e!==r?v(e,t,n,o):r.interrupt().each((function(){w(this,arguments).event(o).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()}))},g.scaleBy=function(e,t,n,o){g.scaleTo(e,(function(){var e=this.__zoom.k,n="function"==typeof t?t.apply(this,arguments):t;return e*n}),n,o)},g.scaleTo=function(e,t,n,o){g.transform(e,(function(){var e=r.apply(this,arguments),o=this.__zoom,a=null==n?b(e):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),l="function"==typeof t?t.apply(this,arguments):t;return i(y(_(o,l),a,s),e,c)}),n,o)},g.translateBy=function(e,t,n,o){g.transform(e,(function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)}),null,o)},g.translateTo=function(e,t,n,o,a){g.transform(e,(function(){var e=r.apply(this,arguments),a=this.__zoom,s=null==o?b(e):"function"==typeof o?o.apply(this,arguments):o;return i(identity.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)}),o,a)},S.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=select(this.that).datum();p.call(e,this.that,new ZoomEvent(e,{sourceEvent:this.sourceEvent,target:g,type:e,transform:this.that.__zoom,dispatch:p}),t)}},g.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:constant(+e),g):a},g.filter=function(e){return arguments.length?(o="function"==typeof e?e:constant(!!e),g):o},g.touchable=function(e){return arguments.length?(s="function"==typeof e?e:constant(!!e),g):s},g.extent=function(e){return arguments.length?(r="function"==typeof e?e:constant([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),g):r},g.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],g):[l[0],l[1]]},g.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],g):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},g.constrain=function(e){return arguments.length?(i=e,g):i},g.duration=function(e){return arguments.length?(d=+e,g):d},g.interpolate=function(e){return arguments.length?(u=e,g):u},g.on=function(){var e=p.on.apply(p,arguments);return e===p?g:e},g.clickDistance=function(e){return arguments.length?(m=(e=+e)*e,g):Math.sqrt(m)},g.tapDistance=function(e){return arguments.length?(h=+e,g):h},g}Transform.prototype;const StoreContext=require$$0.createContext(null),Provider$1=StoreContext.Provider,errorMessages={"001":()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001","002":()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.","003":e=>`Node type "${e}" not found. Using fallback type "default".`,"004":()=>"The React Flow parent container needs a width and a height to render the graph.","005":()=>"Only child nodes can use a parent extent.","006":()=>"Can't create edge. An edge needs a source and a target.","007":e=>`The old edge with id=${e} does not exist.`,"009":e=>`Marker type "${e}" doesn't exist.`,"008":(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,"010":()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.","011":e=>`Edge type "${e}" not found. Using fallback type "default".`},zustandErrorMessage=errorMessages["001"]();function useStore(e,t){const n=require$$0.useContext(StoreContext);if(null===n)throw new Error(zustandErrorMessage);return useStore$1(n,e,t)}const useStoreApi=()=>{const e=require$$0.useContext(StoreContext);if(null===e)throw new Error(zustandErrorMessage);return require$$0.useMemo((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy})),[e])},selector$g=e=>e.userSelectionActive?"none":"all";function Panel({position:e,children:t,className:n,style:o,...r}){const i=useStore(selector$g),a=`${e}`.split("-");return jsxRuntime.exports.jsx("div",{className:cc(["react-flow__panel",n,...a]),style:{...o,pointerEvents:i},...r,children:t})}function Attribution({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:jsxRuntime.exports.jsx(Panel,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:jsxRuntime.exports.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const EdgeText=({x:e,y:t,label:n,labelStyle:o={},labelShowBg:r=!0,labelBgStyle:i={},labelBgPadding:a=[2,4],labelBgBorderRadius:s=2,children:l,className:c,...d})=>{const u=require$$0.useRef(null),[p,f]=require$$0.useState({x:0,y:0,width:0,height:0}),m=cc(["react-flow__edge-textwrapper",c]);return require$$0.useEffect((()=>{if(u.current){const e=u.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}}),[n]),void 0!==n&&n?jsxRuntime.exports.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:m,visibility:p.width?"visible":"hidden",...d,children:[r&&jsxRuntime.exports.jsx("rect",{width:p.width+2*a[0],x:-a[0],y:-a[1],height:p.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),jsxRuntime.exports.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:u,style:o,children:n}),l]}):null};var EdgeText$1=require$$0.memo(EdgeText);const getDimensions=e=>({width:e.offsetWidth,height:e.offsetHeight}),clamp=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),clampPosition=(e={x:0,y:0},t)=>({x:clamp(e.x,t[0][0],t[1][0]),y:clamp(e.y,t[0][1],t[1][1])}),calcAutoPanVelocity=(e,t,n)=>e<t?clamp(Math.abs(e-t),1,50)/50:e>n?-clamp(Math.abs(e-n),1,50)/50:0,calcAutoPan=(e,t)=>[20*calcAutoPanVelocity(e.x,35,t.width-35),20*calcAutoPanVelocity(e.y,35,t.height-35)],getHostForElement=e=>e.getRootNode?.()||window?.document,getBoundsOfBoxes=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),rectToBox=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),boxToRect=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),nodeToRect=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),getBoundsOfRects=(e,t)=>boxToRect(getBoundsOfBoxes(rectToBox(e),rectToBox(t))),getOverlappingArea=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},isRectObject=e=>isNumeric(e.width)&&isNumeric(e.height)&&isNumeric(e.x)&&isNumeric(e.y),isNumeric=e=>!isNaN(e)&&isFinite(e),internalsSymbol=Symbol.for("internals"),elementSelectionKeys=["Enter"," ","Escape"],devWarn=(e,t)=>{},isReactKeyboardEvent=e=>"nativeEvent"in e;function isInputDOMNode(e){const t=(isReactKeyboardEvent(e)?e.nativeEvent:e).composedPath?.()?.[0]||e.target,n=["INPUT","SELECT","TEXTAREA"].includes(t?.nodeName)||t?.hasAttribute("contenteditable"),o=e.ctrlKey||e.metaKey||e.shiftKey;return n&&!o||!!t?.closest(".nokey")}const isMouseEvent=e=>"clientX"in e,getEventPosition=(e,t)=>{const n=isMouseEvent(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},BaseEdge=({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l,style:c,markerEnd:d,markerStart:u,interactionWidth:p=20})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx("path",{style:c,d:e,fill:"none",className:"react-flow__edge-path",markerEnd:d,markerStart:u}),p&&jsxRuntime.exports.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:p,className:"react-flow__edge-interaction"}),o&&isNumeric(t)&&isNumeric(n)?jsxRuntime.exports.jsx(EdgeText$1,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l}):null]});function getMouseHandler$1(e,t,n){return void 0===n?n:o=>{const r=t().edges.find((t=>t.id===e));r&&n(o,{...r})}}function getEdgeCenter({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,a=Math.abs(o-t)/2;return[i,o<t?o+a:o-a,r,a]}function getBezierEdgeCenter({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){const l=.125*e+.375*r+.375*a+.125*n,c=.125*t+.375*i+.375*s+.125*o;return[l,c,Math.abs(l-e),Math.abs(c-t)]}var ConnectionMode,PanOnScrollMode,SelectionMode,ConnectionLineType,MarkerType,Position;function getControl({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===Position.Left||e===Position.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function getSimpleBezierPath({sourceX:e,sourceY:t,sourcePosition:n=Position.Bottom,targetX:o,targetY:r,targetPosition:i=Position.Top}){const[a,s]=getControl({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=getControl({pos:i,x1:o,y1:r,x2:e,y2:t}),[d,u,p,f]=getBezierEdgeCenter({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:c});return[`M${e},${t} C${a},${s} ${l},${c} ${o},${r}`,d,u,p,f]}BaseEdge.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(ConnectionMode||(ConnectionMode={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(PanOnScrollMode||(PanOnScrollMode={})),function(e){e.Partial="partial",e.Full="full"}(SelectionMode||(SelectionMode={})),function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(ConnectionLineType||(ConnectionLineType={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(MarkerType||(MarkerType={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(Position||(Position={}));const SimpleBezierEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,sourcePosition:r=Position.Bottom,targetPosition:i=Position.Top,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,interactionWidth:h})=>{const[g,_,y]=getSimpleBezierPath({sourceX:e,sourceY:t,sourcePosition:r,targetX:n,targetY:o,targetPosition:i});return jsxRuntime.exports.jsx(BaseEdge,{path:g,labelX:_,labelY:y,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,interactionWidth:h})}));SimpleBezierEdge.displayName="SimpleBezierEdge";const handleDirections={[Position.Left]:{x:-1,y:0},[Position.Right]:{x:1,y:0},[Position.Top]:{x:0,y:-1},[Position.Bottom]:{x:0,y:1}},getDirection=({source:e,sourcePosition:t=Position.Bottom,target:n})=>t===Position.Left||t===Position.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},distance=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function getPoints({source:e,sourcePosition:t=Position.Bottom,target:n,targetPosition:o=Position.Top,center:r,offset:i}){const a=handleDirections[t],s=handleDirections[o],l={x:e.x+a.x*i,y:e.y+a.y*i},c={x:n.x+s.x*i,y:n.y+s.y*i},d=getDirection({source:l,sourcePosition:t,target:c}),u=0!==d.x?"x":"y",p=d[u];let f,m,h=[];const[g,_,y,b]=getEdgeCenter({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[u]*s[u]==-1){f=r.x||g,m=r.y||_;const e=[{x:f,y:l.y},{x:f,y:c.y}],t=[{x:l.x,y:m},{x:c.x,y:m}];h=a[u]===p?"x"===u?e:t:"x"===u?t:e}else{const e=[{x:l.x,y:c.y}],n=[{x:c.x,y:l.y}];if(h="x"===u?a.x===p?n:e:a.y===p?e:n,t!==o){const t="x"===u?"y":"x",o=a[u]===s[t],r=l[t]>c[t],i=l[t]<c[t];(1===a[u]&&(!o&&r||o&&i)||1!==a[u]&&(!o&&i||o&&r))&&(h="x"===u?e:n)}f=h[0].x,m=h[0].y}return[[e,l,...h,c,n],f,m,y,b]}function getBend(e,t,n,o){const r=Math.min(distance(e,t)/2,distance(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){return`L ${i+r*(e.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(e.y<n.y?1:-1)}`}const s=e.x<n.x?1:-1;return`L ${i},${a+r*(e.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}function getSmoothStepPath({sourceX:e,sourceY:t,sourcePosition:n=Position.Bottom,targetX:o,targetY:r,targetPosition:i=Position.Top,borderRadius:a=5,centerX:s,centerY:l,offset:c=20}){const[d,u,p,f,m]=getPoints({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:s,y:l},offset:c});return[d.reduce(((e,t,n)=>{let o="";return o=n>0&&n<d.length-1?getBend(d[n-1],t,d[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`,e+=o}),""),u,p,f,m]}const SmoothStepEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,sourcePosition:u=Position.Bottom,targetPosition:p=Position.Top,markerEnd:f,markerStart:m,pathOptions:h,interactionWidth:g})=>{const[_,y,b]=getSmoothStepPath({sourceX:e,sourceY:t,sourcePosition:u,targetX:n,targetY:o,targetPosition:p,borderRadius:h?.borderRadius,offset:h?.offset});return jsxRuntime.exports.jsx(BaseEdge,{path:_,labelX:y,labelY:b,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:f,markerStart:m,interactionWidth:g})}));SmoothStepEdge.displayName="SmoothStepEdge";const StepEdge=require$$0.memo((e=>jsxRuntime.exports.jsx(SmoothStepEdge,{...e,pathOptions:require$$0.useMemo((()=>({borderRadius:0,offset:e.pathOptions?.offset})),[e.pathOptions?.offset])})));function getStraightPath({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,a,s]=getEdgeCenter({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}StepEdge.displayName="StepEdge";const StraightEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:u,markerStart:p,interactionWidth:f})=>{const[m,h,g]=getStraightPath({sourceX:e,sourceY:t,targetX:n,targetY:o});return jsxRuntime.exports.jsx(BaseEdge,{path:m,labelX:h,labelY:g,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:u,markerStart:p,interactionWidth:f})}));function calculateControlOffset(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function getControlWithCurvature({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case Position.Left:return[t-calculateControlOffset(t-o,i),n];case Position.Right:return[t+calculateControlOffset(o-t,i),n];case Position.Top:return[t,n-calculateControlOffset(n-r,i)];case Position.Bottom:return[t,n+calculateControlOffset(r-n,i)]}}function getBezierPath({sourceX:e,sourceY:t,sourcePosition:n=Position.Bottom,targetX:o,targetY:r,targetPosition:i=Position.Top,curvature:a=.25}){const[s,l]=getControlWithCurvature({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[c,d]=getControlWithCurvature({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[u,p,f,m]=getBezierEdgeCenter({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${s},${l} ${c},${d} ${o},${r}`,u,p,f,m]}StraightEdge.displayName="StraightEdge";const BezierEdge=require$$0.memo((({sourceX:e,sourceY:t,targetX:n,targetY:o,sourcePosition:r=Position.Bottom,targetPosition:i=Position.Top,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,pathOptions:h,interactionWidth:g})=>{const[_,y,b]=getBezierPath({sourceX:e,sourceY:t,sourcePosition:r,targetX:n,targetY:o,targetPosition:i,curvature:h?.curvature});return jsxRuntime.exports.jsx(BaseEdge,{path:_,labelX:y,labelY:b,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:p,markerEnd:f,markerStart:m,interactionWidth:g})}));BezierEdge.displayName="BezierEdge";const NodeIdContext=require$$0.createContext(null),Provider=NodeIdContext.Provider;NodeIdContext.Consumer;const useNodeId=()=>require$$0.useContext(NodeIdContext),isEdge=e=>"id"in e&&"source"in e&&"target"in e,getEdgeId=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${n}${o||""}`,getMarkerId=(e,t)=>{if(void 0===e)return"";if("string"==typeof e)return e;return`${t?`${t}__`:""}${Object.keys(e).sort().map((t=>`${t}=${e[t]}`)).join("&")}`},connectionExists=(e,t)=>t.some((t=>!(t.source!==e.source||t.target!==e.target||t.sourceHandle!==e.sourceHandle&&(t.sourceHandle||e.sourceHandle)||t.targetHandle!==e.targetHandle&&(t.targetHandle||e.targetHandle)))),addEdge=(e,t)=>{if(!e.source||!e.target)return t;let n;return n=isEdge(e)?{...e}:{...e,id:getEdgeId(e)},connectionExists(n,t)?t:t.concat(n)},updateEdge=(e,t,n)=>{if(!t.source||!t.target)return n;if(!n.find((t=>t.id===e.id)))return devWarn("007",errorMessages["007"](e.id)),n;const o={...e,id:getEdgeId(t),source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter((t=>t.id!==e.id)).concat(o)},pointToRendererPoint=({x:e,y:t},[n,o,r],i,[a,s])=>{const l={x:(e-n)/r,y:(t-o)/r};return i?{x:a*Math.round(l.x/a),y:s*Math.round(l.y/s)}:l},rendererPointToPoint=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o}),getNodePositionWithOrigin=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],o=(e.height??0)*t[1],r={x:e.position.x-n,y:e.position.y-o};return{...r,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-o}:r}},getRectOfNodes=(e,t=[0,0])=>{if(0===e.length)return{x:0,y:0,width:0,height:0};const n=e.reduce(((e,n)=>{const{x:o,y:r}=getNodePositionWithOrigin(n,t).positionAbsolute;return getBoundsOfBoxes(e,rectToBox({x:o,y:r,width:n.width||0,height:n.height||0}))}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return boxToRect(n)},getNodesInside=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const l={x:(t.x-n)/r,y:(t.y-o)/r,width:t.width/r,height:t.height/r},c=[];return e.forEach((e=>{const{width:t,height:n,selectable:o=!0,hidden:r=!1}=e;if(a&&!o||r)return!1;const{positionAbsolute:d}=getNodePositionWithOrigin(e,s),u={x:d.x,y:d.y,width:t||0,height:n||0},p=getOverlappingArea(l,u);(void 0===t||void 0===n||null===t||null===n||i&&p>0||p>=(t||0)*(n||0)||e.dragging)&&c.push(e)})),c},getConnectedEdges=(e,t)=>{const n=e.map((e=>e.id));return t.filter((e=>n.includes(e.source)||n.includes(e.target)))},getTransformForBounds=(e,t,n,o,r,i=.1)=>{const a=t/(e.width*(1+i)),s=n/(e.height*(1+i)),l=Math.min(a,s),c=clamp(l,o,r);return[t/2-(e.x+e.width/2)*c,n/2-(e.y+e.height/2)*c,c]},getD3Transition=(e,t=0)=>e.transition().duration(t);function getHandles(e,t,n,o){return(t[n]||[]).reduce(((t,r)=>(`${e.id}-${r.id}-${n}`!==o&&t.push({id:r.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+r.x+r.width/2,y:(e.positionAbsolute?.y??0)+r.y+r.height/2}),t)),[])}function getClosestHandle(e,t,n){let o=null,r=1/0;return n.forEach((n=>{const i=Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2));i<=t&&i<r&&(r=i,o=n)})),o}const nullConnection={source:null,target:null,sourceHandle:null,targetHandle:null};function isValidHandle(e,t,n,o,r,i,a,s){const l="target"===i,c=s.querySelector(`.react-flow__handle[data-id="${t?.nodeId}-${t?.id}-${t?.type}"]`),{x:d,y:u}=getEventPosition(e),p=s.elementFromPoint(d,u),f=p?.classList.contains("react-flow__handle")?p:c,m={handleDomNode:f,isValid:!1,connection:nullConnection};if(f){const e=getHandleType(void 0,f),t=f.getAttribute("data-nodeid"),i=f.getAttribute("data-handleid"),s={source:l?t:o,sourceHandle:l?i:r,target:l?o:t,targetHandle:l?r:i};m.connection=s;(n===ConnectionMode.Strict?l&&"source"===e||!l&&"target"===e:t!==o||i!==r)&&(m.isValid=a(s))}return m}function getHandleLookup({nodes:e,nodeId:t,handleId:n,handleType:o}){return e.reduce(((e,r)=>{if(r[internalsSymbol]){const{handleBounds:i}=r[internalsSymbol];let a=[],s=[];i&&(a=getHandles(r,i,"source",`${t}-${n}-${o}`),s=getHandles(r,i,"target",`${t}-${n}-${o}`)),e.push(...a,...s)}return e}),[])}function getHandleType(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function resetRecentHandle(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function getConnectionStatus(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function handlePointerDown({event:e,handleId:t,nodeId:n,onConnect:o,isTarget:r,getState:i,setState:a,isValidConnection:s,edgeUpdaterType:l,onEdgeUpdateEnd:c}){const d=getHostForElement(e.target),{connectionMode:u,domNode:p,autoPanOnConnect:f,connectionRadius:m,onConnectStart:h,panBy:g,getNodes:_,cancelConnection:y}=i();let b,v=0;const{x:w,y:S}=getEventPosition(e),x=d?.elementFromPoint(w,S),$=getHandleType(l,x),N=p?.getBoundingClientRect();if(!N||!$)return;let E,k=getEventPosition(e,N),C=!1,j=null,O=!1,F=null;const P=getHandleLookup({nodes:_(),nodeId:n,handleId:t,handleType:$}),I=()=>{if(!f)return;const[e,t]=calcAutoPan(k,N);g({x:e,y:t}),v=requestAnimationFrame(I)};function R(e){const{transform:o}=i();k=getEventPosition(e,N),b=getClosestHandle(pointToRendererPoint(k,o,!1,[1,1]),m,P),C||(I(),C=!0);const l=isValidHandle(e,b,u,n,t,r?"target":"source",s,d);if(F=l.handleDomNode,j=l.connection,O=l.isValid,a({connectionPosition:b&&O?rendererPointToPoint({x:b.x,y:b.y},o):k,connectionStatus:getConnectionStatus(!!b,O)}),!b&&!O&&!F)return resetRecentHandle(E);j.source!==j.target&&F&&(resetRecentHandle(E),E=F,F.classList.add("connecting","react-flow__handle-connecting"),F.classList.toggle("valid",O),F.classList.toggle("react-flow__handle-valid",O))}function D(e){(b||F)&&j&&O&&o?.(j),i().onConnectEnd?.(e),l&&c?.(e),resetRecentHandle(E),y(),cancelAnimationFrame(v),C=!1,O=!1,j=null,F=null,d.removeEventListener("mousemove",R),d.removeEventListener("mouseup",D),d.removeEventListener("touchmove",R),d.removeEventListener("touchend",D)}a({connectionPosition:k,connectionNodeId:n,connectionHandleId:t,connectionHandleType:$,connectionStatus:null}),h?.(e,{nodeId:n,handleId:t,handleType:$}),d.addEventListener("mousemove",R),d.addEventListener("mouseup",D),d.addEventListener("touchmove",R),d.addEventListener("touchend",D)}const alwaysValid=()=>!0,selector$f=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Handle=require$$0.forwardRef((({type:e="source",position:t=Position.Top,isValidConnection:n=alwaysValid,isConnectable:o=!0,id:r,onConnect:i,children:a,className:s,onMouseDown:l,onTouchStart:c,...d},u)=>{const p=useStoreApi(),f=useNodeId();if(!f)return p.getState().onError?.("010",errorMessages["010"]()),null;const{connectionStartHandle:m,connectOnClick:h,noPanClassName:g}=useStore(selector$f,shallow),_=r||null,y="target"===e,b=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=p.getState(),r={...t,...e};if(o){const{edges:e}=p.getState();p.setState({edges:addEdge(r,e)})}n?.(r),i?.(r)},v=e=>{const t=isMouseEvent(e);(t&&0===e.button||!t)&&handlePointerDown({event:e,handleId:_,nodeId:f,onConnect:b,isTarget:y,getState:p.getState,setState:p.setState,isValidConnection:n}),t?l?.(e):c?.(e)};return jsxRuntime.exports.jsx("div",{"data-handleid":_,"data-nodeid":f,"data-handlepos":t,"data-id":`${f}-${_}-${e}`,className:cc(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",g,s,{source:!y,target:y,connectable:o,connecting:m?.nodeId===f&&m?.handleId===_&&m?.type===e}]),onMouseDown:v,onTouchStart:v,onClick:h?t=>{const{onClickConnectStart:o,onClickConnectEnd:r,connectionMode:i}=p.getState();if(!m)return o?.(t,{nodeId:f,handleId:_,handleType:e}),void p.setState({connectionStartHandle:{nodeId:f,type:e,handleId:_}});const a=getHostForElement(t.target),{connection:s,isValid:l}=isValidHandle(t,{nodeId:f,id:_,type:e},i,m.nodeId,m.handleId||null,m.type,n,a);l&&b(s),r?.(t),p.setState({connectionStartHandle:null})}:void 0,ref:u,...d,children:a})}));Handle.displayName="Handle";var Handle$1=require$$0.memo(Handle);const DefaultNode=({data:e,isConnectable:t,targetPosition:n=Position.Top,sourcePosition:o=Position.Bottom})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(Handle$1,{type:"target",position:n,isConnectable:t}),e?.label,jsxRuntime.exports.jsx(Handle$1,{type:"source",position:o,isConnectable:t})]});DefaultNode.displayName="DefaultNode";var DefaultNode$1=require$$0.memo(DefaultNode);const InputNode=({data:e,isConnectable:t,sourcePosition:n=Position.Bottom})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[e?.label,jsxRuntime.exports.jsx(Handle$1,{type:"source",position:n,isConnectable:t})]});InputNode.displayName="InputNode";var InputNode$1=require$$0.memo(InputNode);const OutputNode=({data:e,isConnectable:t,targetPosition:n=Position.Top})=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(Handle$1,{type:"target",position:n,isConnectable:t}),e?.label]});OutputNode.displayName="OutputNode";var OutputNode$1=require$$0.memo(OutputNode);const GroupNode=()=>null;GroupNode.displayName="GroupNode";const selector$e=e=>({selectedNodes:e.getNodes().filter((e=>e.selected)),selectedEdges:e.edges.filter((e=>e.selected))}),selectId=e=>e.id;function areEqual(e,t){return shallow(e.selectedNodes.map(selectId),t.selectedNodes.map(selectId))&&shallow(e.selectedEdges.map(selectId),t.selectedEdges.map(selectId))}const SelectionListener=require$$0.memo((({onSelectionChange:e})=>{const t=useStoreApi(),{selectedNodes:n,selectedEdges:o}=useStore(selector$e,areEqual);return require$$0.useEffect((()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChange?.(r)}),[n,o,e]),null}));SelectionListener.displayName="SelectionListener";const changeSelector=e=>!!e.onSelectionChange;function Wrapper$1({onSelectionChange:e}){const t=useStore(changeSelector);return e||t?jsxRuntime.exports.jsx(SelectionListener,{onSelectionChange:e}):null}const selector$d=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function useStoreUpdater(e,t){require$$0.useEffect((()=>{void 0!==e&&t(e)}),[e])}function useDirectStoreUpdater(e,t,n){require$$0.useEffect((()=>{void 0!==t&&n({[e]:t})}),[t])}const StoreUpdater=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:r,onConnectStart:i,onConnectEnd:a,onClickConnectStart:s,onClickConnectEnd:l,nodesDraggable:c,nodesConnectable:d,nodesFocusable:u,edgesFocusable:p,elevateNodesOnSelect:f,minZoom:m,maxZoom:h,nodeExtent:g,onNodesChange:_,onEdgesChange:y,elementsSelectable:b,connectionMode:v,snapGrid:w,snapToGrid:S,translateExtent:x,connectOnClick:$,defaultEdgeOptions:N,fitView:E,fitViewOptions:k,onNodesDelete:C,onEdgesDelete:j,onNodeDrag:O,onNodeDragStart:F,onNodeDragStop:P,onSelectionDrag:I,onSelectionDragStart:R,onSelectionDragStop:D,noPanClassName:T,nodeOrigin:M,rfId:A,autoPanOnConnect:L,autoPanOnNodeDrag:V,onError:q,connectionRadius:B})=>{const{setNodes:z,setEdges:H,setDefaultNodesAndEdges:U,setMinZoom:K,setMaxZoom:Y,setTranslateExtent:W,setNodeExtent:X,reset:Z}=useStore(selector$d,shallow),G=useStoreApi();return require$$0.useEffect((()=>{const e=o?.map((e=>({...e,...N})));return U(n,e),()=>{Z()}}),[]),useDirectStoreUpdater("defaultEdgeOptions",N,G.setState),useDirectStoreUpdater("connectionMode",v,G.setState),useDirectStoreUpdater("onConnect",r,G.setState),useDirectStoreUpdater("onConnectStart",i,G.setState),useDirectStoreUpdater("onConnectEnd",a,G.setState),useDirectStoreUpdater("onClickConnectStart",s,G.setState),useDirectStoreUpdater("onClickConnectEnd",l,G.setState),useDirectStoreUpdater("nodesDraggable",c,G.setState),useDirectStoreUpdater("nodesConnectable",d,G.setState),useDirectStoreUpdater("nodesFocusable",u,G.setState),useDirectStoreUpdater("edgesFocusable",p,G.setState),useDirectStoreUpdater("elementsSelectable",b,G.setState),useDirectStoreUpdater("elevateNodesOnSelect",f,G.setState),useDirectStoreUpdater("snapToGrid",S,G.setState),useDirectStoreUpdater("snapGrid",w,G.setState),useDirectStoreUpdater("onNodesChange",_,G.setState),useDirectStoreUpdater("onEdgesChange",y,G.setState),useDirectStoreUpdater("connectOnClick",$,G.setState),useDirectStoreUpdater("fitViewOnInit",E,G.setState),useDirectStoreUpdater("fitViewOnInitOptions",k,G.setState),useDirectStoreUpdater("onNodesDelete",C,G.setState),useDirectStoreUpdater("onEdgesDelete",j,G.setState),useDirectStoreUpdater("onNodeDrag",O,G.setState),useDirectStoreUpdater("onNodeDragStart",F,G.setState),useDirectStoreUpdater("onNodeDragStop",P,G.setState),useDirectStoreUpdater("onSelectionDrag",I,G.setState),useDirectStoreUpdater("onSelectionDragStart",R,G.setState),useDirectStoreUpdater("onSelectionDragStop",D,G.setState),useDirectStoreUpdater("noPanClassName",T,G.setState),useDirectStoreUpdater("nodeOrigin",M,G.setState),useDirectStoreUpdater("rfId",A,G.setState),useDirectStoreUpdater("autoPanOnConnect",L,G.setState),useDirectStoreUpdater("autoPanOnNodeDrag",V,G.setState),useDirectStoreUpdater("onError",q,G.setState),useDirectStoreUpdater("connectionRadius",B,G.setState),useStoreUpdater(e,z),useStoreUpdater(t,H),useStoreUpdater(m,K),useStoreUpdater(h,Y),useStoreUpdater(x,W),useStoreUpdater(g,X),null},style={display:"none"},ariaLiveStyle={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ARIA_NODE_DESC_KEY="react-flow__node-desc",ARIA_EDGE_DESC_KEY="react-flow__edge-desc",ARIA_LIVE_MESSAGE="react-flow__aria-live",selector$c=e=>e.ariaLiveMessage;function AriaLiveMessage({rfId:e}){const t=useStore(selector$c);return jsxRuntime.exports.jsx("div",{id:`${ARIA_LIVE_MESSAGE}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ariaLiveStyle,children:t})}function A11yDescriptions({rfId:e,disableKeyboardA11y:t}){return jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsxs("div",{id:`${ARIA_NODE_DESC_KEY}-${e}`,style:style,children:["Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "]}),jsxRuntime.exports.jsx("div",{id:`${ARIA_EDGE_DESC_KEY}-${e}`,style:style,children:"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."}),!t&&jsxRuntime.exports.jsx(AriaLiveMessage,{rfId:e})]})}const shiftX=(e,t,n)=>n===Position.Left?e-t:n===Position.Right?e+t:e,shiftY=(e,t,n)=>n===Position.Top?e-t:n===Position.Bottom?e+t:e,EdgeUpdaterClassName="react-flow__edgeupdater",EdgeAnchor=({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:a,type:s})=>jsxRuntime.exports.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:a,className:cc([EdgeUpdaterClassName,`${EdgeUpdaterClassName}-${s}`]),cx:shiftX(t,o,e),cy:shiftY(n,o,e),r:o,stroke:"transparent",fill:"transparent"});var wrapEdge=e=>{const t=({id:t,className:n,type:o,data:r,onClick:i,onEdgeDoubleClick:a,selected:s,animated:l,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,style:h,source:g,target:_,sourceX:y,sourceY:b,targetX:v,targetY:w,sourcePosition:S,targetPosition:x,elementsSelectable:$,hidden:N,sourceHandleId:E,targetHandleId:k,onContextMenu:C,onMouseEnter:j,onMouseMove:O,onMouseLeave:F,edgeUpdaterRadius:P,onEdgeUpdate:I,onEdgeUpdateStart:R,onEdgeUpdateEnd:D,markerEnd:T,markerStart:M,rfId:A,ariaLabel:L,isFocusable:V,pathOptions:q,interactionWidth:B})=>{const z=require$$0.useRef(null),[H,U]=require$$0.useState(!1),[K,Y]=require$$0.useState(!1),W=useStoreApi(),X=require$$0.useMemo((()=>`url(#${getMarkerId(M,A)})`),[M,A]),Z=require$$0.useMemo((()=>`url(#${getMarkerId(T,A)})`),[T,A]);if(N)return null;const G=getMouseHandler$1(t,W.getState,a),J=getMouseHandler$1(t,W.getState,C),Q=getMouseHandler$1(t,W.getState,j),ee=getMouseHandler$1(t,W.getState,O),te=getMouseHandler$1(t,W.getState,F),ne=(e,n)=>{if(0!==e.button)return;const o=n?_:g,r=(n?k:E)||null,i=n?"target":"source",a=n,s=W.getState().edges.find((e=>e.id===t));Y(!0),R?.(e,s,i);handlePointerDown({event:e,handleId:r,nodeId:o,onConnect:e=>I?.(s,e),isTarget:a,getState:W.getState,setState:W.setState,isValidConnection:()=>!0,edgeUpdaterType:i,onEdgeUpdateEnd:e=>{Y(!1),D?.(e,s,i)}})},oe=()=>U(!0),re=()=>U(!1),ie=!$&&!i,ae=void 0!==I;return jsxRuntime.exports.jsxs("g",{className:cc(["react-flow__edge",`react-flow__edge-${o}`,n,{selected:s,animated:l,inactive:ie,updating:H}]),onClick:e=>{const{edges:n,addSelectedEdges:o}=W.getState();if($&&(W.setState({nodesSelectionActive:!1}),o([t])),i){const o=n.find((e=>e.id===t));i(e,o)}},onDoubleClick:G,onContextMenu:J,onMouseEnter:Q,onMouseMove:ee,onMouseLeave:te,onKeyDown:V?e=>{if(elementSelectionKeys.includes(e.key)&&$){const{unselectNodesAndEdges:n,addSelectedEdges:o,edges:r}=W.getState();"Escape"===e.key?(z.current?.blur(),n({edges:[r.find((e=>e.id===t))]})):o([t])}}:void 0,tabIndex:V?0:void 0,role:V?"button":void 0,"data-testid":`rf__edge-${t}`,"aria-label":null===L?void 0:L||`Edge from ${g} to ${_}`,"aria-describedby":V?`${ARIA_EDGE_DESC_KEY}-${A}`:void 0,ref:z,children:[!K&&jsxRuntime.exports.jsx(e,{id:t,source:g,target:_,selected:s,animated:l,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,data:r,style:h,sourceX:y,sourceY:b,targetX:v,targetY:w,sourcePosition:S,targetPosition:x,sourceHandleId:E,targetHandleId:k,markerStart:X,markerEnd:Z,pathOptions:q,interactionWidth:B}),ae&&jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(EdgeAnchor,{position:S,centerX:y,centerY:b,radius:P,onMouseDown:e=>ne(e,!0),onMouseEnter:oe,onMouseOut:re,type:"source"}),jsxRuntime.exports.jsx(EdgeAnchor,{position:x,centerX:v,centerY:w,radius:P,onMouseDown:e=>ne(e,!1),onMouseEnter:oe,onMouseOut:re,type:"target"})]})]})};return t.displayName="EdgeWrapper",require$$0.memo(t)};function createEdgeTypes(e){return{...{default:wrapEdge(e.default||BezierEdge),straight:wrapEdge(e.bezier||StraightEdge),step:wrapEdge(e.step||StepEdge),smoothstep:wrapEdge(e.step||SmoothStepEdge),simplebezier:wrapEdge(e.simplebezier||SimpleBezierEdge)},...Object.keys(e).filter((e=>!["default","bezier"].includes(e))).reduce(((t,n)=>(t[n]=wrapEdge(e[n]||BezierEdge),t)),{})}}function getHandlePosition(e,t,n=null){const o=(n?.x||0)+t.x,r=(n?.y||0)+t.y,i=n?.width||t.width,a=n?.height||t.height;switch(e){case Position.Top:return{x:o+i/2,y:r};case Position.Right:return{x:o+i,y:r+a/2};case Position.Bottom:return{x:o+i/2,y:r+a};case Position.Left:return{x:o,y:r+a/2}}}function getHandle(e,t){return e?t?e.find((e=>e.id===t)):1===e.length?e[0]:null:null}const getEdgePositions=(e,t,n,o,r,i)=>{const a=getHandlePosition(n,e,t),s=getHandlePosition(i,o,r);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}};function isEdgeVisible({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:r,targetHeight:i,width:a,height:s,transform:l}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+r),y2:Math.max(e.y+o,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const d=rectToBox({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:a/l[2],height:s/l[2]}),u=Math.max(0,Math.min(d.x2,c.x2)-Math.max(d.x,c.x)),p=Math.max(0,Math.min(d.y2,c.y2)-Math.max(d.y,c.y));return Math.ceil(u*p)>0}function getNodeData(e){const t=e?.[internalsSymbol]?.handleBounds||null,n=t&&e?.width&&e?.height&&void 0!==e?.positionAbsolute?.x&&void 0!==e?.positionAbsolute?.y;return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}function isParentSelected(e,t){if(!e.parentNode)return!1;const n=t.get(e.parentNode);return!!n&&(!!n.selected||isParentSelected(n,t))}function hasSelector(e,t,n){let o=e;do{if(o?.matches(t))return!0;if(o===n.current)return!1;o=o.parentElement}while(o);return!1}function getDragItems(e,t,n,o){return Array.from(e.values()).filter((n=>(n.selected||n.id===o)&&(!n.parentNode||!isParentSelected(n,e))&&(n.draggable||t&&void 0===n.draggable))).map((e=>({id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:n.x-(e.positionAbsolute?.x??0),y:n.y-(e.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:e.extent,parentNode:e.parentNode,width:e.width,height:e.height})))}function calcNextPosition(e,t,n,o,r=[0,0],i){let a=e.extent||o;if("parent"===e.extent)if(e.parentNode&&e.width&&e.height){const t=n.get(e.parentNode),{x:o,y:i}=getNodePositionWithOrigin(t,r).positionAbsolute;a=t&&isNumeric(o)&&isNumeric(i)&&isNumeric(t.width)&&isNumeric(t.height)?[[o+e.width*r[0],i+e.height*r[1]],[o+t.width-e.width+e.width*r[0],i+t.height-e.height+e.height*r[1]]]:a}else i?.("005",errorMessages["005"]()),a=o;else if(e.extent&&e.parentNode){const t=n.get(e.parentNode),{x:o,y:i}=getNodePositionWithOrigin(t,r).positionAbsolute;a=[[e.extent[0][0]+o,e.extent[0][1]+i],[e.extent[1][0]+o,e.extent[1][1]+i]]}let s={x:0,y:0};if(e.parentNode){const t=n.get(e.parentNode);s=getNodePositionWithOrigin(t,r).positionAbsolute}const l=a?clampPosition(t,a):t;return{position:{x:l.x-s.x,y:l.y-s.y},positionAbsolute:l}}function getEventHandlerParams({nodeId:e,dragItems:t,nodeInternals:n}){const o=t.map((e=>({...n.get(e.id),position:e.position,positionAbsolute:e.positionAbsolute})));return[e?o.find((t=>t.id===e)):o[0],o]}const getHandleBounds=(e,t,n,o)=>{const r=t.querySelectorAll(e);if(!r||!r.length)return null;const i=Array.from(r),a=t.getBoundingClientRect(),s=a.width*o[0],l=a.height*o[1];return i.map((e=>{const t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-a.left-s)/n,y:(t.top-a.top-l)/n,...getDimensions(e)}}))};function getMouseHandler(e,t,n){return void 0===n?n:o=>{const r=t().nodeInternals.get(e);n(o,{...r})}}function handleNodeClick({id:e,store:t,unselect:n=!1}){const{addSelectedNodes:o,unselectNodesAndEdges:r,multiSelectionActive:i,nodeInternals:a}=t.getState(),s=a.get(e);t.setState({nodesSelectionActive:!1}),s.selected?(n||s.selected&&i)&&r({nodes:[s]}):o([e])}function useGetPointerPosition(){const e=useStoreApi(),t=require$$0.useCallback((({sourceEvent:t})=>{const{transform:n,snapGrid:o,snapToGrid:r}=e.getState(),i=t.touches?t.touches[0].clientX:t.clientX,a=t.touches?t.touches[0].clientY:t.clientY,s={x:(i-n[0])/n[2],y:(a-n[1])/n[2]};return{xSnapped:r?o[0]*Math.round(s.x/o[0]):s.x,ySnapped:r?o[1]*Math.round(s.y/o[1]):s.y,...s}}),[]);return t}function wrapSelectionDragFunc(e){return(t,n,o)=>e?.(t,o)}function useDrag({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,selectNodesOnDrag:a}){const s=useStoreApi(),[l,c]=require$$0.useState(!1),d=require$$0.useRef([]),u=require$$0.useRef({x:null,y:null}),p=require$$0.useRef(0),f=require$$0.useRef(null),m=require$$0.useRef({x:0,y:0}),h=require$$0.useRef(null),g=require$$0.useRef(!1),_=useGetPointerPosition();return require$$0.useEffect((()=>{if(e?.current){const l=select(e.current),y=({x:e,y:t})=>{const{nodeInternals:n,onNodeDrag:o,onSelectionDrag:i,updateNodePositions:a,nodeExtent:l,snapGrid:p,snapToGrid:f,nodeOrigin:m,onError:g}=s.getState();u.current={x:e,y:t};let _=!1;if(d.current=d.current.map((o=>{const r={x:e-o.distance.x,y:t-o.distance.y};f&&(r.x=p[0]*Math.round(r.x/p[0]),r.y=p[1]*Math.round(r.y/p[1]));const i=calcNextPosition(o,r,n,l,m,g);return _=_||o.position.x!==i.position.x||o.position.y!==i.position.y,o.position=i.position,o.positionAbsolute=i.positionAbsolute,o})),!_)return;a(d.current,!0,!0),c(!0);const y=r?o:wrapSelectionDragFunc(i);if(y&&h.current){const[e,t]=getEventHandlerParams({nodeId:r,dragItems:d.current,nodeInternals:n});y(h.current,e,t)}},b=()=>{if(!f.current)return;const[e,t]=calcAutoPan(m.current,f.current);if(0!==e||0!==t){const{transform:n,panBy:o}=s.getState();u.current.x=(u.current.x??0)-e/n[2],u.current.y=(u.current.y??0)-t/n[2],y(u.current),o({x:e,y:t})}p.current=requestAnimationFrame(b)};if(!t){const t=drag().on("start",(e=>{const{nodeInternals:t,multiSelectionActive:n,domNode:o,nodesDraggable:l,unselectNodesAndEdges:c,onNodeDragStart:p,onSelectionDragStart:h}=s.getState(),g=r?p:wrapSelectionDragFunc(h);a||n||!r||t.get(r)?.selected||c(),r&&i&&a&&handleNodeClick({id:r,store:s});const y=_(e);if(u.current=y,d.current=getDragItems(t,l,y,r),g&&d.current){const[n,o]=getEventHandlerParams({nodeId:r,dragItems:d.current,nodeInternals:t});g(e.sourceEvent,n,o)}f.current=o?.getBoundingClientRect()||null,m.current=getEventPosition(e.sourceEvent,f.current)})).on("drag",(e=>{const t=_(e),{autoPanOnNodeDrag:n}=s.getState();!g.current&&n&&(g.current=!0,b()),u.current.x===t.xSnapped&&u.current.y===t.ySnapped||!d.current||(h.current=e.sourceEvent,m.current=getEventPosition(e.sourceEvent,f.current),y(t))})).on("end",(e=>{if(c(!1),g.current=!1,cancelAnimationFrame(p.current),d.current){const{updateNodePositions:t,nodeInternals:n,onNodeDragStop:o,onSelectionDragStop:i}=s.getState(),a=r?o:wrapSelectionDragFunc(i);if(t(d.current,!1,!1),a){const[t,o]=getEventHandlerParams({nodeId:r,dragItems:d.current,nodeInternals:n});a(e.sourceEvent,t,o)}}})).filter((t=>{const r=t.target;return!t.button&&(!n||!hasSelector(r,`.${n}`,e))&&(!o||hasSelector(r,o,e))}));return l.call(t),()=>{l.on(".drag",null)}}l.on(".drag",null)}}),[e,t,n,o,i,s,r,a,_]),l}function useUpdateNodePositions(){const e=useStoreApi();return require$$0.useCallback((t=>{const{nodeInternals:n,nodeExtent:o,updateNodePositions:r,getNodes:i,snapToGrid:a,snapGrid:s,onError:l,nodesDraggable:c}=e.getState(),d=i().filter((e=>e.selected&&(e.draggable||c&&void 0===e.draggable))),u=a?s[0]:5,p=a?s[1]:5,f=t.isShiftPressed?4:1,m=t.x*u*f,h=t.y*p*f;r(d.map((e=>{if(e.positionAbsolute){const t={x:e.positionAbsolute.x+m,y:e.positionAbsolute.y+h};a&&(t.x=s[0]*Math.round(t.x/s[0]),t.y=s[1]*Math.round(t.y/s[1]));const{positionAbsolute:r,position:i}=calcNextPosition(e,t,n,o,void 0,l);e.position=i,e.positionAbsolute=r}return e})),!0,!1)}),[])}const arrowKeyDiffs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var wrapNode=e=>{const t=({id:t,type:n,data:o,xPos:r,yPos:i,xPosOrigin:a,yPosOrigin:s,selected:l,onClick:c,onMouseEnter:d,onMouseMove:u,onMouseLeave:p,onContextMenu:f,onDoubleClick:m,style:h,className:g,isDraggable:_,isSelectable:y,isConnectable:b,isFocusable:v,selectNodesOnDrag:w,sourcePosition:S,targetPosition:x,hidden:$,resizeObserver:N,dragHandle:E,zIndex:k,isParent:C,noDragClassName:j,noPanClassName:O,initialized:F,disableKeyboardA11y:P,ariaLabel:I,rfId:R})=>{const D=useStoreApi(),T=require$$0.useRef(null),M=require$$0.useRef(S),A=require$$0.useRef(x),L=require$$0.useRef(n),V=y||_||c||d||u||p,q=useUpdateNodePositions(),B=getMouseHandler(t,D.getState,d),z=getMouseHandler(t,D.getState,u),H=getMouseHandler(t,D.getState,p),U=getMouseHandler(t,D.getState,f),K=getMouseHandler(t,D.getState,m);require$$0.useEffect((()=>{if(T.current&&!$){const e=T.current;return N?.observe(e),()=>N?.unobserve(e)}}),[$]),require$$0.useEffect((()=>{const e=L.current!==n,o=M.current!==S,r=A.current!==x;T.current&&(e||o||r)&&(e&&(L.current=n),o&&(M.current=S),r&&(A.current=x),D.getState().updateNodeDimensions([{id:t,nodeElement:T.current,forceUpdate:!0}]))}),[t,n,S,x]);const Y=useDrag({nodeRef:T,disabled:$||!_,noDragClassName:j,handleSelector:E,nodeId:t,isSelectable:y,selectNodesOnDrag:w});return $?null:jsxRuntime.exports.jsx("div",{className:cc(["react-flow__node",`react-flow__node-${n}`,{[O]:_},g,{selected:l,selectable:y,parent:C,dragging:Y}]),ref:T,style:{zIndex:k,transform:`translate(${a}px,${s}px)`,pointerEvents:V?"all":"none",visibility:F?"visible":"hidden",...h},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:B,onMouseMove:z,onMouseLeave:H,onContextMenu:U,onClick:e=>{if(!y||w&&_||handleNodeClick({id:t,store:D}),c){const n=D.getState().nodeInternals.get(t);c(e,{...n})}},onDoubleClick:K,onKeyDown:v?e=>{if(!isInputDOMNode(e))if(elementSelectionKeys.includes(e.key)&&y){const n="Escape"===e.key;n&&T.current?.blur(),handleNodeClick({id:t,store:D,unselect:n})}else!P&&_&&l&&Object.prototype.hasOwnProperty.call(arrowKeyDiffs,e.key)&&(D.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~r}, y: ${~~i}`}),q({x:arrowKeyDiffs[e.key].x,y:arrowKeyDiffs[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:v?0:void 0,role:v?"button":void 0,"aria-describedby":P?void 0:`${ARIA_NODE_DESC_KEY}-${R}`,"aria-label":I,children:jsxRuntime.exports.jsx(Provider,{value:t,children:jsxRuntime.exports.jsx(e,{id:t,data:o,type:n,xPos:r,yPos:i,selected:l,isConnectable:b,sourcePosition:S,targetPosition:x,dragging:Y,dragHandle:E,zIndex:k})})})};return t.displayName="NodeWrapper",require$$0.memo(t)};function createNodeTypes(e){return{...{input:wrapNode(e.input||InputNode$1),default:wrapNode(e.default||DefaultNode$1),output:wrapNode(e.output||OutputNode$1),group:wrapNode(e.group||GroupNode)},...Object.keys(e).filter((e=>!["input","default","output","group"].includes(e))).reduce(((t,n)=>(t[n]=wrapNode(e[n]||DefaultNode$1),t)),{})}}const getPositionWithOrigin=({x:e,y:t,width:n,height:o,origin:r})=>n&&o?r[0]<0||r[1]<0||r[0]>1||r[1]>1?{x:e,y:t}:{x:e-n*r[0],y:t-o*r[1]}:{x:e,y:t},doc="undefined"!=typeof document?document:null;var useKeyPress=(e=null,t={target:doc})=>{const[n,o]=require$$0.useState(!1),r=require$$0.useRef(new Set([])),[i,a]=require$$0.useMemo((()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter((e=>"string"==typeof e)).map((e=>e.split("+"))),n=t.reduce(((e,t)=>e.concat(...t)),[]);return[t,n]}return[[],[]]}),[e]);return require$$0.useEffect((()=>{if(null!==e){const e=e=>{if(isInputDOMNode(e))return!1;const t=useKeyOrCode(e.code,a);r.current.add(e[t]),isMatchingKey(i,r.current,!1)&&(e.preventDefault(),o(!0))},n=e=>{if(isInputDOMNode(e))return!1;const t=useKeyOrCode(e.code,a);isMatchingKey(i,r.current,!0)?(o(!1),r.current.clear()):r.current.delete(e[t])},s=()=>{r.current.clear(),o(!1)};return t?.target?.addEventListener("keydown",e),t?.target?.addEventListener("keyup",n),window.addEventListener("blur",s),()=>{t?.target?.removeEventListener("keydown",e),t?.target?.removeEventListener("keyup",n),window.removeEventListener("blur",s)}}}),[e,o]),n};function isMatchingKey(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function useKeyOrCode(e,t){return t.includes(e)?"code":"key"}function calculateXYZPosition(e,t,n,o){if(!e.parentNode)return n;const r=t.get(e.parentNode),i=getNodePositionWithOrigin(r,o);return calculateXYZPosition(r,t,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(r[internalsSymbol]?.z??0)>(n.z??0)?r[internalsSymbol]?.z??0:n.z??0},o)}function updateAbsoluteNodePositions(e,t,n){e.forEach((o=>{if(o.parentNode&&!e.has(o.parentNode))throw new Error(`Parent node ${o.parentNode} not found`);if(o.parentNode||n?.[o.id]){const{x:r,y:i,z:a}=calculateXYZPosition(o,e,{...o.position,z:o[internalsSymbol]?.z??0},t);o.positionAbsolute={x:r,y:i},o[internalsSymbol].z=a,n?.[o.id]&&(o[internalsSymbol].isParent=!0)}}))}function createNodeInternals(e,t,n,o){const r=new Map,i={},a=o?1e3:0;return e.forEach((e=>{const n=(isNumeric(e.zIndex)?e.zIndex:0)+(e.selected?a:0),o=t.get(e.id),s={width:o?.width,height:o?.height,...e,positionAbsolute:{x:e.position.x,y:e.position.y}};e.parentNode&&(s.parentNode=e.parentNode,i[e.parentNode]=!0),Object.defineProperty(s,internalsSymbol,{enumerable:!1,value:{handleBounds:o?.[internalsSymbol]?.handleBounds,z:n}}),r.set(e.id,s)})),updateAbsoluteNodePositions(r,n,i),r}function fitView(e,t={}){const{getNodes:n,width:o,height:r,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:d,nodeOrigin:u}=e(),p=t.initial&&!c&&d;if(s&&l&&(p||!t.initial)){const e=n().filter((e=>{const n=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return t.nodes?.length?n&&t.nodes.some((t=>t.id===e.id)):n})),c=e.every((e=>e.width&&e.height));if(e.length>0&&c){const n=getRectOfNodes(e,u),[c,d,p]=getTransformForBounds(n,o,r,t.minZoom??i,t.maxZoom??a,t.padding??.1),f=identity.translate(c,d).scale(p);return"number"==typeof t.duration&&t.duration>0?s.transform(getD3Transition(l,t.duration),f):s.transform(l,f),!0}}return!1}function handleControlledNodeSelectionChange(e,t){return e.forEach((e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[internalsSymbol]:n[internalsSymbol],selected:e.selected})})),new Map(t)}function handleControlledEdgeSelectionChange(e,t){return t.map((t=>{const n=e.find((e=>e.id===t.id));return n&&(t.selected=n.selected),t}))}function updateNodesAndEdgesSelections({changedNodes:e,changedEdges:t,get:n,set:o}){const{nodeInternals:r,edges:i,onNodesChange:a,onEdgesChange:s,hasDefaultNodes:l,hasDefaultEdges:c}=n();e?.length&&(l&&o({nodeInternals:handleControlledNodeSelectionChange(e,r)}),a?.(e)),t?.length&&(c&&o({edges:handleControlledEdgeSelectionChange(t,i)}),s?.(t))}const noop$1=()=>{},initialViewportHelper={zoomIn:noop$1,zoomOut:noop$1,zoomTo:noop$1,getZoom:()=>1,setViewport:noop$1,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:noop$1,fitBounds:noop$1,project:e=>e,viewportInitialized:!1},selector$b=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),useViewportHelper=()=>{const e=useStoreApi(),{d3Zoom:t,d3Selection:n}=useStore(selector$b,shallow),o=require$$0.useMemo((()=>n&&t?{zoomIn:e=>t.scaleBy(getD3Transition(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(getD3Transition(n,e?.duration),1/1.2),zoomTo:(e,o)=>t.scaleTo(getD3Transition(n,o?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(o,r)=>{const[i,a,s]=e.getState().transform,l=identity.translate(o.x??i,o.y??a).scale(o.zoom??s);t.transform(getD3Transition(n,r?.duration),l)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},fitView:t=>fitView(e.getState,t),setCenter:(o,r,i)=>{const{width:a,height:s,maxZoom:l}=e.getState(),c=void 0!==i?.zoom?i.zoom:l,d=a/2-o*c,u=s/2-r*c,p=identity.translate(d,u).scale(c);t.transform(getD3Transition(n,i?.duration),p)},fitBounds:(o,r)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=e.getState(),[c,d,u]=getTransformForBounds(o,i,a,s,l,r?.padding??.1),p=identity.translate(c,d).scale(u);t.transform(getD3Transition(n,r?.duration),p)},project:t=>{const{transform:n,snapToGrid:o,snapGrid:r}=e.getState();return pointToRendererPoint(t,n,o,r)},viewportInitialized:!0}:initialViewportHelper),[t,n]);return o};function useReactFlow(){const e=useViewportHelper(),t=useStoreApi(),n=require$$0.useCallback((()=>t.getState().getNodes().map((e=>({...e})))),[]),o=require$$0.useCallback((e=>t.getState().nodeInternals.get(e)),[]),r=require$$0.useCallback((()=>{const{edges:e=[]}=t.getState();return e.map((e=>({...e})))}),[]),i=require$$0.useCallback((e=>{const{edges:n=[]}=t.getState();return n.find((t=>t.id===e))}),[]),a=require$$0.useCallback((e=>{const{getNodes:n,setNodes:o,hasDefaultNodes:r,onNodesChange:i}=t.getState(),a=n(),s="function"==typeof e?e(a):e;if(r)o(s);else if(i){i(0===s.length?a.map((e=>({type:"remove",id:e.id}))):s.map((e=>({item:e,type:"reset"}))))}}),[]),s=require$$0.useCallback((e=>{const{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:i}=t.getState(),a="function"==typeof e?e(n):e;if(r)o(a);else if(i){i(0===a.length?n.map((e=>({type:"remove",id:e.id}))):a.map((e=>({item:e,type:"reset"}))))}}),[]),l=require$$0.useCallback((e=>{const n=Array.isArray(e)?e:[e],{getNodes:o,setNodes:r,hasDefaultNodes:i,onNodesChange:a}=t.getState();if(i){r([...o(),...n])}else if(a){a(n.map((e=>({item:e,type:"add"}))))}}),[]),c=require$$0.useCallback((e=>{const n=Array.isArray(e)?e:[e],{edges:o=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a}=t.getState();if(i)r([...o,...n]);else if(a){a(n.map((e=>({item:e,type:"add"}))))}}),[]),d=require$$0.useCallback((()=>{const{getNodes:e,edges:n=[],transform:o}=t.getState(),[r,i,a]=o;return{nodes:e().map((e=>({...e}))),edges:n.map((e=>({...e}))),viewport:{x:r,y:i,zoom:a}}}),[]),u=require$$0.useCallback((({nodes:e,edges:n})=>{const{nodeInternals:o,getNodes:r,edges:i,hasDefaultNodes:a,hasDefaultEdges:s,onNodesDelete:l,onEdgesDelete:c,onNodesChange:d,onEdgesChange:u}=t.getState(),p=(e||[]).map((e=>e.id)),f=(n||[]).map((e=>e.id)),m=r().reduce(((e,t)=>{const n=!p.includes(t.id)&&t.parentNode&&e.find((e=>e.id===t.parentNode));return("boolean"!=typeof t.deletable||t.deletable)&&(p.includes(t.id)||n)&&e.push(t),e}),[]),h=i.filter((e=>"boolean"!=typeof e.deletable||e.deletable)),g=h.filter((e=>f.includes(e.id)));if(m||g){const e=getConnectedEdges(m,h),n=[...g,...e],r=n.reduce(((e,t)=>(e.includes(t.id)||e.push(t.id),e)),[]);if((s||a)&&(s&&t.setState({edges:i.filter((e=>!r.includes(e.id)))}),a&&(m.forEach((e=>{o.delete(e.id)})),t.setState({nodeInternals:new Map(o)}))),r.length>0&&(c?.(n),u&&u(r.map((e=>({id:e,type:"remove"}))))),m.length>0&&(l?.(m),d)){d(m.map((e=>({id:e.id,type:"remove"}))))}}}),[]),p=require$$0.useCallback((e=>{const n=isRectObject(e),o=n?null:t.getState().nodeInternals.get(e.id);return[n?e:nodeToRect(o),o,n]}),[]),f=require$$0.useCallback(((e,n=!0,o)=>{const[r,i,a]=p(e);return r?(o||t.getState().getNodes()).filter((t=>{if(!(a||t.id!==i.id&&t.positionAbsolute))return!1;const o=nodeToRect(t),s=getOverlappingArea(o,r);return n&&s>0||s>=e.width*e.height})):[]}),[]),m=require$$0.useCallback(((e,t,n=!0)=>{const[o]=p(e);if(!o)return!1;const r=getOverlappingArea(o,t);return n&&r>0||r>=e.width*e.height}),[]);return require$$0.useMemo((()=>({...e,getNodes:n,getNode:o,getEdges:r,getEdge:i,setNodes:a,setEdges:s,addNodes:l,addEdges:c,toObject:d,deleteElements:u,getIntersectingNodes:f,isNodeIntersecting:m})),[e,n,o,r,i,a,s,l,c,d,u,f,m])}var useGlobalKeyHandler=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=useStoreApi(),{deleteElements:o}=useReactFlow(),r=useKeyPress(e),i=useKeyPress(t);require$$0.useEffect((()=>{if(r){const{edges:e,getNodes:t}=n.getState(),r=t().filter((e=>e.selected)),i=e.filter((e=>e.selected));o({nodes:r,edges:i}),n.setState({nodesSelectionActive:!1})}}),[r]),require$$0.useEffect((()=>{n.setState({multiSelectionActive:i})}),[i])};function useResizeHandler(e){const t=useStoreApi();require$$0.useEffect((()=>{let n;const o=()=>{if(!e.current)return;const n=getDimensions(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",errorMessages["004"]()),t.setState({width:n.width||500,height:n.height||500})};return o(),window.addEventListener("resize",o),e.current&&(n=new ResizeObserver((()=>o())),n.observe(e.current)),()=>{window.removeEventListener("resize",o),n&&e.current&&n.unobserve(e.current)}}),[])}const containerStyle={position:"absolute",width:"100%",height:"100%",top:0,left:0},viewChanged=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,eventToFlowTransform=e=>({x:e.x,y:e.y,zoom:e.k}),isWrappedWithClass=(e,t)=>e.target.closest(`.${t}`),isRightClickPan=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),selector$a=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),ZoomPane=({onMove:e,onMoveStart:t,onMoveEnd:n,onPaneContextMenu:o,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:a=!1,panOnScrollSpeed:s=.5,panOnScrollMode:l=PanOnScrollMode.Free,zoomOnDoubleClick:c=!0,elementsSelectable:d,panOnDrag:u=!0,defaultViewport:p,translateExtent:f,minZoom:m,maxZoom:h,zoomActivationKeyCode:g,preventScrolling:_=!0,children:y,noWheelClassName:b,noPanClassName:v})=>{const w=require$$0.useRef(),S=useStoreApi(),x=require$$0.useRef(!1),$=require$$0.useRef(!1),N=require$$0.useRef(null),E=require$$0.useRef({x:0,y:0,zoom:0}),{d3Zoom:k,d3Selection:C,d3ZoomHandler:j,userSelectionActive:O}=useStore(selector$a,shallow),F=useKeyPress(g),P=require$$0.useRef(0);return useResizeHandler(N),require$$0.useEffect((()=>{if(N.current){const e=N.current.getBoundingClientRect(),t=zoom().scaleExtent([m,h]).translateExtent(f),n=select(N.current).call(t),o=identity.translate(p.x,p.y).scale(clamp(p.zoom,m,h)),r=[[0,0],[e.width,e.height]],i=t.constrain()(o,r,f);t.transform(n,i),S.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[i.x,i.y,i.k],domNode:N.current.closest(".react-flow")})}}),[]),require$$0.useEffect((()=>{C&&k&&(!a||F||O?void 0!==j&&C.on("wheel.zoom",(function(e,t){if(!_||isWrappedWithClass(e,b))return null;e.preventDefault(),j.call(this,e,t)})):C.on("wheel.zoom",(e=>{if(isWrappedWithClass(e,b))return!1;e.preventDefault(),e.stopImmediatePropagation();const t=C.property("__zoom").k||1;if(e.ctrlKey&&i){const n=pointer(e),o=-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*10,r=t*Math.pow(2,o);return void k.scaleTo(C,r,n)}const n=1===e.deltaMode?20:1,o=l===PanOnScrollMode.Vertical?0:e.deltaX*n,r=l===PanOnScrollMode.Horizontal?0:e.deltaY*n;k.translateBy(C,-o/t*s,-r/t*s)})))}),[O,a,l,C,k,j,F,i,_,b]),require$$0.useEffect((()=>{k&&k.on("start",(e=>{if(!e.sourceEvent)return null;P.current=e.sourceEvent.button;const{onViewportChangeStart:n}=S.getState();if(x.current=!0,"mousedown"===e.sourceEvent?.type&&S.setState({paneDragging:!0}),t||n){const o=eventToFlowTransform(e.transform);E.current=o,n?.(o),t?.(e.sourceEvent,o)}}))}),[k,t]),require$$0.useEffect((()=>{k&&(O&&!x.current?k.on("zoom",null):O||k.on("zoom",(t=>{const{onViewportChange:n}=S.getState();if(S.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),$.current=!(!o||!isRightClickPan(u,P.current??0)),e||n){const o=eventToFlowTransform(t.transform);n?.(o),e?.(t.sourceEvent,o)}})))}),[O,k,e,u,o]),require$$0.useEffect((()=>{k&&k.on("end",(e=>{if(!e.sourceEvent)return null;const{onViewportChangeEnd:t}=S.getState();if(x.current=!1,S.setState({paneDragging:!1}),o&&isRightClickPan(u,P.current??0)&&!$.current&&o(e.sourceEvent),$.current=!1,(n||t)&&viewChanged(E.current,e.transform)){const o=eventToFlowTransform(e.transform);E.current=o,clearTimeout(w.current),w.current=setTimeout((()=>{t?.(o),n?.(e.sourceEvent,o)}),a?150:0)}}))}),[k,a,u,n,o]),require$$0.useEffect((()=>{k&&k.filter((e=>{const t=F||r,n=i&&e.ctrlKey;if(1===e.button&&"mousedown"===e.type&&(isWrappedWithClass(e,"react-flow__node")||isWrappedWithClass(e,"react-flow__edge")))return!0;if(!(u||t||a||c||i))return!1;if(O)return!1;if(!c&&"dblclick"===e.type)return!1;if(isWrappedWithClass(e,b)&&"wheel"===e.type)return!1;if(isWrappedWithClass(e,v)&&"wheel"!==e.type)return!1;if(!i&&e.ctrlKey&&"wheel"===e.type)return!1;if(!t&&!a&&!n&&"wheel"===e.type)return!1;if(!u&&("mousedown"===e.type||"touchstart"===e.type))return!1;if(Array.isArray(u)&&!u.includes(e.button)&&("mousedown"===e.type||"touchstart"===e.type))return!1;const o=Array.isArray(u)&&u.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&o}))}),[O,k,r,i,a,c,u,d,F]),jsxRuntime.exports.jsx("div",{className:"react-flow__renderer",ref:N,style:containerStyle,children:y})},selector$9=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function UserSelection(){const{userSelectionActive:e,userSelectionRect:t}=useStore(selector$9,shallow);return e&&t?jsxRuntime.exports.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function handleParentExpand(e,t){const n=e.find((e=>e.id===t.parentNode));if(n){const e=t.position.x+t.width-n.width,o=t.position.y+t.height-n.height;if(e>0||o>0||t.position.x<0||t.position.y<0){if(n.style={...n.style}||{},n.style.width=n.style.width??n.width,n.style.height=n.style.height??n.height,e>0&&(n.style.width+=e),o>0&&(n.style.height+=o),t.position.x<0){const e=Math.abs(t.position.x);n.position.x=n.position.x-e,n.style.width+=e,t.position.x=0}if(t.position.y<0){const e=Math.abs(t.position.y);n.position.y=n.position.y-e,n.style.height+=e,t.position.y=0}n.width=n.style.width,n.height=n.style.height}}}function applyChanges(e,t){if(e.some((e=>"reset"===e.type)))return e.filter((e=>"reset"===e.type)).map((e=>e.item));const n=e.filter((e=>"add"===e.type)).map((e=>e.item));return t.reduce(((t,n)=>{const o=e.filter((e=>e.id===n.id));if(0===o.length)return t.push(n),t;const r={...n};for(const e of o)if(e)switch(e.type){case"select":r.selected=e.selected;break;case"position":void 0!==e.position&&(r.position=e.position),void 0!==e.positionAbsolute&&(r.positionAbsolute=e.positionAbsolute),void 0!==e.dragging&&(r.dragging=e.dragging),r.expandParent&&handleParentExpand(t,r);break;case"dimensions":void 0!==e.dimensions&&(r.width=e.dimensions.width,r.height=e.dimensions.height),void 0!==e.updateStyle&&(r.style={...r.style||{},...e.dimensions}),"boolean"==typeof e.resizing&&(r.resizing=e.resizing),r.expandParent&&handleParentExpand(t,r);break;case"remove":return t}return t.push(r),t}),n)}function applyNodeChanges(e,t){return applyChanges(e,t)}function applyEdgeChanges(e,t){return applyChanges(e,t)}const createSelectionChange=(e,t)=>({id:e,type:"select",selected:t});function getSelectionChanges(e,t){return e.reduce(((e,n)=>{const o=t.includes(n.id);return!n.selected&&o?(n.selected=!0,e.push(createSelectionChange(n.id,!0))):n.selected&&!o&&(n.selected=!1,e.push(createSelectionChange(n.id,!1))),e}),[])}const wrapHandler=(e,t)=>n=>{n.target===t.current&&e?.(n)},selector$8=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Pane=require$$0.memo((({isSelecting:e,selectionMode:t=SelectionMode.Full,panOnDrag:n,onSelectionStart:o,onSelectionEnd:r,onPaneClick:i,onPaneContextMenu:a,onPaneScroll:s,onPaneMouseEnter:l,onPaneMouseMove:c,onPaneMouseLeave:d,children:u})=>{const p=require$$0.useRef(null),f=useStoreApi(),m=require$$0.useRef(0),h=require$$0.useRef(0),g=require$$0.useRef(),{userSelectionActive:_,elementsSelectable:y,dragging:b}=useStore(selector$8,shallow),v=()=>{f.setState({userSelectionActive:!1,userSelectionRect:null}),m.current=0,h.current=0},w=e=>{i?.(e),f.getState().resetSelectedElements(),f.setState({nodesSelectionActive:!1})},S=s?e=>s(e):void 0,x=y&&(e||_);return jsxRuntime.exports.jsxs("div",{className:cc(["react-flow__pane",{dragging:b,selection:e}]),onClick:x?void 0:wrapHandler(w,p),onContextMenu:wrapHandler((e=>{Array.isArray(n)&&n?.includes(2)?e.preventDefault():a?.(e)}),p),onWheel:wrapHandler(S,p),onMouseEnter:x?void 0:l,onMouseDown:x?t=>{const{resetSelectedElements:n,domNode:r}=f.getState();if(g.current=r?.getBoundingClientRect(),!y||!e||0!==t.button||t.target!==p.current||!g.current)return;const{x:i,y:a}=getEventPosition(t,g.current);n(),f.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),o?.(t)}:void 0,onMouseMove:x?n=>{const{userSelectionRect:o,nodeInternals:r,edges:i,transform:a,onNodesChange:s,onEdgesChange:l,nodeOrigin:c,getNodes:d}=f.getState();if(!e||!g.current||!o)return;f.setState({userSelectionActive:!0,nodesSelectionActive:!1});const u=getEventPosition(n,g.current),p=o.startX??0,_=o.startY??0,y={...o,x:u.x<p?u.x:p,y:u.y<_?u.y:_,width:Math.abs(u.x-p),height:Math.abs(u.y-_)},b=d(),v=getNodesInside(r,y,a,t===SelectionMode.Partial,!0,c),w=getConnectedEdges(v,i).map((e=>e.id)),S=v.map((e=>e.id));if(m.current!==S.length){m.current=S.length;const e=getSelectionChanges(b,S);e.length&&s?.(e)}if(h.current!==w.length){h.current=w.length;const e=getSelectionChanges(i,w);e.length&&l?.(e)}f.setState({userSelectionRect:y})}:c,onMouseUp:x?e=>{if(0!==e.button)return;const{userSelectionRect:t}=f.getState();!_&&t&&e.target===p.current&&w?.(e),f.setState({nodesSelectionActive:m.current>0}),v(),r?.(e)}:void 0,onMouseLeave:x?e=>{_&&(f.setState({nodesSelectionActive:m.current>0}),r?.(e)),v()}:d,ref:p,style:containerStyle,children:[u,jsxRuntime.exports.jsx(UserSelection,{})]})}));Pane.displayName="Pane";const selector$7=e=>{const t=e.getNodes().filter((e=>e.selected));return{...getRectOfNodes(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function NodesSelection({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=useStoreApi(),{width:r,height:i,x:a,y:s,transformString:l,userSelectionActive:c}=useStore(selector$7,shallow),d=useUpdateNodePositions(),u=require$$0.useRef(null);if(require$$0.useEffect((()=>{n||u.current?.focus({preventScroll:!0})}),[n]),useDrag({nodeRef:u}),c||!r||!i)return null;const p=e?t=>{const n=o.getState().getNodes().filter((e=>e.selected));e(t,n)}:void 0;return jsxRuntime.exports.jsx("div",{className:cc(["react-flow__nodesselection","react-flow__container",t]),style:{transform:l},children:jsxRuntime.exports.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(arrowKeyDiffs,e.key)&&d({x:arrowKeyDiffs[e.key].x,y:arrowKeyDiffs[e.key].y,isShiftPressed:e.shiftKey})},style:{width:r,height:i,top:s,left:a}})})}var NodesSelection$1=require$$0.memo(NodesSelection);const selector$6=e=>e.nodesSelectionActive,FlowRenderer=({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,deleteKeyCode:s,onMove:l,onMoveStart:c,onMoveEnd:d,selectionKeyCode:u,selectionOnDrag:p,selectionMode:f,onSelectionStart:m,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:_,zoomActivationKeyCode:y,elementsSelectable:b,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:S,panOnScrollSpeed:x,panOnScrollMode:$,zoomOnDoubleClick:N,panOnDrag:E,defaultViewport:k,translateExtent:C,minZoom:j,maxZoom:O,preventScrolling:F,onSelectionContextMenu:P,noWheelClassName:I,noPanClassName:R,disableKeyboardA11y:D})=>{const T=useStore(selector$6),M=useKeyPress(u),A=useKeyPress(_)||E,L=M||p&&!0!==A;return useGlobalKeyHandler({deleteKeyCode:s,multiSelectionKeyCode:g}),jsxRuntime.exports.jsx(ZoomPane,{onMove:l,onMoveStart:c,onMoveEnd:d,onPaneContextMenu:i,elementsSelectable:b,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:S,panOnScrollSpeed:x,panOnScrollMode:$,zoomOnDoubleClick:N,panOnDrag:!M&&A,defaultViewport:k,translateExtent:C,minZoom:j,maxZoom:O,zoomActivationKeyCode:y,preventScrolling:F,noWheelClassName:I,noPanClassName:R,children:jsxRuntime.exports.jsxs(Pane,{onSelectionStart:m,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:A,isSelecting:!!L,selectionMode:f,children:[e,T&&jsxRuntime.exports.jsx(NodesSelection$1,{onSelectionContextMenu:P,noPanClassName:R,disableKeyboardA11y:D})]})})};FlowRenderer.displayName="FlowRenderer";var FlowRenderer$1=require$$0.memo(FlowRenderer);function useVisibleNodes(e){return useStore(require$$0.useCallback((t=>e?getNodesInside(t.nodeInternals,{x:0,y:0,width:t.width,height:t.height},t.transform,!0):t.getNodes()),[e]))}const selector$5=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),NodeRenderer=e=>{const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,updateNodeDimensions:i,onError:a}=useStore(selector$5,shallow),s=useVisibleNodes(e.onlyRenderVisibleElements),l=require$$0.useRef(),c=require$$0.useMemo((()=>{if("undefined"==typeof ResizeObserver)return null;const e=new ResizeObserver((e=>{const t=e.map((e=>({id:e.target.getAttribute("data-id"),nodeElement:e.target,forceUpdate:!0})));i(t)}));return l.current=e,e}),[]);return require$$0.useEffect((()=>()=>{l?.current?.disconnect()}),[]),jsxRuntime.exports.jsx("div",{className:"react-flow__nodes",style:containerStyle,children:s.map((i=>{let s=i.type||"default";e.nodeTypes[s]||(a?.("003",errorMessages["003"](s)),s="default");const l=e.nodeTypes[s]||e.nodeTypes.default,d=!!(i.draggable||t&&void 0===i.draggable),u=!!(i.selectable||r&&void 0===i.selectable),p=!!(i.connectable||n&&void 0===i.connectable),f=!!(i.focusable||o&&void 0===i.focusable),m=e.nodeExtent?clampPosition(i.positionAbsolute,e.nodeExtent):i.positionAbsolute,h=m?.x??0,g=m?.y??0,_=getPositionWithOrigin({x:h,y:g,width:i.width??0,height:i.height??0,origin:e.nodeOrigin});return jsxRuntime.exports.jsx(l,{id:i.id,className:i.className,style:i.style,type:s,data:i.data,sourcePosition:i.sourcePosition||Position.Bottom,targetPosition:i.targetPosition||Position.Top,hidden:i.hidden,xPos:h,yPos:g,xPosOrigin:_.x,yPosOrigin:_.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!i.selected,isDraggable:d,isSelectable:u,isConnectable:p,isFocusable:f,resizeObserver:c,dragHandle:i.dragHandle,zIndex:i[internalsSymbol]?.z??0,isParent:!!i[internalsSymbol]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!i.width&&!!i.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:i.ariaLabel},i.id)}))})};NodeRenderer.displayName="NodeRenderer";var NodeRenderer$1=require$$0.memo(NodeRenderer);const defaultEdgeTree=[{level:0,isMaxLevel:!0,edges:[]}];function groupEdgesByZLevel(e,t,n=!1){let o=-1;const r=e.reduce(((e,r)=>{const i=isNumeric(r.zIndex);let a=i?r.zIndex:0;return n&&(a=i?r.zIndex:Math.max(t.get(r.source)?.[internalsSymbol]?.z||0,t.get(r.target)?.[internalsSymbol]?.z||0)),e[a]?e[a].push(r):e[a]=[r],o=a>o?a:o,e}),{}),i=Object.entries(r).map((([e,t])=>{const n=+e;return{edges:t,level:n,isMaxLevel:n===o}}));return 0===i.length?defaultEdgeTree:i}function useVisibleEdges(e,t,n){return groupEdgesByZLevel(useStore(require$$0.useCallback((n=>e?n.edges.filter((e=>{const o=t.get(e.source),r=t.get(e.target);return o?.width&&o?.height&&r?.width&&r?.height&&isEdgeVisible({sourcePos:o.positionAbsolute||{x:0,y:0},targetPos:r.positionAbsolute||{x:0,y:0},sourceWidth:o.width,sourceHeight:o.height,targetWidth:r.width,targetHeight:r.height,width:n.width,height:n.height,transform:n.transform})})):n.edges),[e,t])),t,n)}const ArrowSymbol=({color:e="none",strokeWidth:t=1})=>jsxRuntime.exports.jsx("polyline",{stroke:e,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:t,fill:"none",points:"-5,-4 0,0 -5,4"}),ArrowClosedSymbol=({color:e="none",strokeWidth:t=1})=>jsxRuntime.exports.jsx("polyline",{stroke:e,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:t,fill:e,points:"-5,-4 0,0 -5,4 -5,-4"}),MarkerSymbols={[MarkerType.Arrow]:ArrowSymbol,[MarkerType.ArrowClosed]:ArrowClosedSymbol};function useMarkerSymbol(e){const t=useStoreApi();return require$$0.useMemo((()=>Object.prototype.hasOwnProperty.call(MarkerSymbols,e)?MarkerSymbols[e]:(t.getState().onError?.("009",errorMessages["009"](e)),null)),[e])}const Marker=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:s="auto-start-reverse"})=>{const l=useMarkerSymbol(t);return l?jsxRuntime.exports.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:jsxRuntime.exports.jsx(l,{color:n,strokeWidth:a})}):null},markerSelector=({defaultColor:e,rfId:t})=>n=>{const o=[];return n.edges.reduce(((n,r)=>([r.markerStart,r.markerEnd].forEach((r=>{if(r&&"object"==typeof r){const i=getMarkerId(r,t);o.includes(i)||(n.push({id:i,color:r.color||e,...r}),o.push(i))}})),n)),[]).sort(((e,t)=>e.id.localeCompare(t.id)))},MarkerDefinitions=({defaultColor:e,rfId:t})=>{const n=useStore(require$$0.useCallback(markerSelector({defaultColor:e,rfId:t}),[e,t]),((e,t)=>!(e.length!==t.length||e.some(((e,n)=>e.id!==t[n].id)))));return jsxRuntime.exports.jsx("defs",{children:n.map((e=>jsxRuntime.exports.jsx(Marker,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id)))})};MarkerDefinitions.displayName="MarkerDefinitions";var MarkerDefinitions$1=require$$0.memo(MarkerDefinitions);const selector$4=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),EdgeRenderer=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:o,edgeTypes:r,noPanClassName:i,onEdgeUpdate:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:d,onEdgeClick:u,edgeUpdaterRadius:p,onEdgeDoubleClick:f,onEdgeUpdateStart:m,onEdgeUpdateEnd:h,children:g})=>{const{edgesFocusable:_,elementsSelectable:y,width:b,height:v,connectionMode:w,nodeInternals:S,onError:x}=useStore(selector$4,shallow),$=useVisibleEdges(t,S,n);return b?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[$.map((({level:t,edges:n,isMaxLevel:g})=>jsxRuntime.exports.jsxs("svg",{style:{zIndex:t},width:b,height:v,className:"react-flow__edges react-flow__container",children:[g&&jsxRuntime.exports.jsx(MarkerDefinitions$1,{defaultColor:e,rfId:o}),jsxRuntime.exports.jsx("g",{children:n.map((e=>{const[t,n,g]=getNodeData(S.get(e.source)),[b,v,$]=getNodeData(S.get(e.target));if(!g||!$)return null;let N=e.type||"default";r[N]||(x?.("011",errorMessages["011"](N)),N="default");const E=r[N]||r.default,k=w===ConnectionMode.Strict?v.target:(v.target??[]).concat(v.source??[]),C=getHandle(n.source,e.sourceHandle),j=getHandle(k,e.targetHandle),O=C?.position||Position.Bottom,F=j?.position||Position.Top,P=!!(e.focusable||_&&void 0===e.focusable);if(!C||!j)return x?.("008",errorMessages["008"](C,e)),null;const{sourceX:I,sourceY:R,targetX:D,targetY:T}=getEdgePositions(t,C,O,b,j,F);return jsxRuntime.exports.jsx(E,{id:e.id,className:cc([e.className,i]),type:N,data:e.data,selected:!!e.selected,animated:!!e.animated,hidden:!!e.hidden,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,source:e.source,target:e.target,sourceHandleId:e.sourceHandle,targetHandleId:e.targetHandle,markerEnd:e.markerEnd,markerStart:e.markerStart,sourceX:I,sourceY:R,targetX:D,targetY:T,sourcePosition:O,targetPosition:F,elementsSelectable:y,onEdgeUpdate:a,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:d,onClick:u,edgeUpdaterRadius:p,onEdgeDoubleClick:f,onEdgeUpdateStart:m,onEdgeUpdateEnd:h,rfId:o,ariaLabel:e.ariaLabel,isFocusable:P,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth},e.id)}))})]},t))),g]}):null};EdgeRenderer.displayName="EdgeRenderer";var EdgeRenderer$1=require$$0.memo(EdgeRenderer);const selector$3=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Viewport({children:e}){const t=useStore(selector$3);return jsxRuntime.exports.jsx("div",{className:"react-flow__viewport react-flow__container",style:{transform:t},children:e})}function useOnInitHandler(e){const t=useReactFlow(),n=require$$0.useRef(!1);require$$0.useEffect((()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),n.current=!0)}),[e,t.viewportInitialized])}const oppositePosition={[Position.Left]:Position.Right,[Position.Right]:Position.Left,[Position.Top]:Position.Bottom,[Position.Bottom]:Position.Top},ConnectionLine=({nodeId:e,handleType:t,style:n,type:o=ConnectionLineType.Bezier,CustomComponent:r,connectionStatus:i})=>{const{fromNode:a,handleId:s,toX:l,toY:c,connectionMode:d}=useStore(require$$0.useCallback((t=>({fromNode:t.nodeInternals.get(e),handleId:t.connectionHandleId,toX:(t.connectionPosition.x-t.transform[0])/t.transform[2],toY:(t.connectionPosition.y-t.transform[1])/t.transform[2],connectionMode:t.connectionMode})),[e]),shallow),u=a?.[internalsSymbol]?.handleBounds;let p=u?.[t];if(d===ConnectionMode.Loose&&(p=p||u?.["source"===t?"target":"source"]),!a||!p)return null;const f=s?p.find((e=>e.id===s)):p[0],m=f?f.x+f.width/2:(a.width??0)/2,h=f?f.y+f.height/2:a.height??0,g=(a.positionAbsolute?.x??0)+m,_=(a.positionAbsolute?.y??0)+h,y=f?.position,b=y?oppositePosition[y]:null;if(!y||!b)return null;if(r)return jsxRuntime.exports.jsx(r,{connectionLineType:o,connectionLineStyle:n,fromNode:a,fromHandle:f,fromX:g,fromY:_,toX:l,toY:c,fromPosition:y,toPosition:b,connectionStatus:i});let v="";const w={sourceX:g,sourceY:_,sourcePosition:y,targetX:l,targetY:c,targetPosition:b};return o===ConnectionLineType.Bezier?[v]=getBezierPath(w):o===ConnectionLineType.Step?[v]=getSmoothStepPath({...w,borderRadius:0}):o===ConnectionLineType.SmoothStep?[v]=getSmoothStepPath(w):o===ConnectionLineType.SimpleBezier?[v]=getSimpleBezierPath(w):v=`M${g},${_} ${l},${c}`,jsxRuntime.exports.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:n})};ConnectionLine.displayName="ConnectionLine";const selector$2=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function ConnectionLineWrapper({containerStyle:e,style:t,type:n,component:o}){const{nodeId:r,handleType:i,nodesConnectable:a,width:s,height:l,connectionStatus:c}=useStore(selector$2,shallow);return!!(r&&i&&s&&a)?jsxRuntime.exports.jsx("svg",{style:e,width:s,height:l,className:"react-flow__edges react-flow__connectionline react-flow__container",children:jsxRuntime.exports.jsx("g",{className:cc(["react-flow__connection",c]),children:jsxRuntime.exports.jsx(ConnectionLine,{nodeId:r,handleType:i,style:t,type:n,CustomComponent:o,connectionStatus:c})})}):null}const GraphView=({nodeTypes:e,edgeTypes:t,onMove:n,onMoveStart:o,onMoveEnd:r,onInit:i,onNodeClick:a,onEdgeClick:s,onNodeDoubleClick:l,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:u,onNodeMouseLeave:p,onNodeContextMenu:f,onSelectionContextMenu:m,onSelectionStart:h,onSelectionEnd:g,connectionLineType:_,connectionLineStyle:y,connectionLineComponent:b,connectionLineContainerStyle:v,selectionKeyCode:w,selectionOnDrag:S,selectionMode:x,multiSelectionKeyCode:$,panActivationKeyCode:N,zoomActivationKeyCode:E,deleteKeyCode:k,onlyRenderVisibleElements:C,elementsSelectable:j,selectNodesOnDrag:O,defaultViewport:F,translateExtent:P,minZoom:I,maxZoom:R,preventScrolling:D,defaultMarkerColor:T,zoomOnScroll:M,zoomOnPinch:A,panOnScroll:L,panOnScrollSpeed:V,panOnScrollMode:q,zoomOnDoubleClick:B,panOnDrag:z,onPaneClick:H,onPaneMouseEnter:U,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneScroll:W,onPaneContextMenu:X,onEdgeUpdate:Z,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:Q,onEdgeMouseLeave:ee,edgeUpdaterRadius:te,onEdgeUpdateStart:ne,onEdgeUpdateEnd:oe,noDragClassName:re,noWheelClassName:ie,noPanClassName:ae,elevateEdgesOnSelect:se,disableKeyboardA11y:le,nodeOrigin:ce,nodeExtent:de,rfId:ue})=>(useOnInitHandler(i),jsxRuntime.exports.jsx(FlowRenderer$1,{onPaneClick:H,onPaneMouseEnter:U,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneContextMenu:X,onPaneScroll:W,deleteKeyCode:k,selectionKeyCode:w,selectionOnDrag:S,selectionMode:x,onSelectionStart:h,onSelectionEnd:g,multiSelectionKeyCode:$,panActivationKeyCode:N,zoomActivationKeyCode:E,elementsSelectable:j,onMove:n,onMoveStart:o,onMoveEnd:r,zoomOnScroll:M,zoomOnPinch:A,zoomOnDoubleClick:B,panOnScroll:L,panOnScrollSpeed:V,panOnScrollMode:q,panOnDrag:z,defaultViewport:F,translateExtent:P,minZoom:I,maxZoom:R,onSelectionContextMenu:m,preventScrolling:D,noDragClassName:re,noWheelClassName:ie,noPanClassName:ae,disableKeyboardA11y:le,children:jsxRuntime.exports.jsxs(Viewport,{children:[jsxRuntime.exports.jsx(EdgeRenderer$1,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:c,onEdgeUpdate:Z,onlyRenderVisibleElements:C,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:Q,onEdgeMouseLeave:ee,onEdgeUpdateStart:ne,onEdgeUpdateEnd:oe,edgeUpdaterRadius:te,defaultMarkerColor:T,noPanClassName:ae,elevateEdgesOnSelect:!!se,disableKeyboardA11y:le,rfId:ue,children:jsxRuntime.exports.jsx(ConnectionLineWrapper,{style:y,type:_,component:b,containerStyle:v})}),jsxRuntime.exports.jsx("div",{className:"react-flow__edgelabel-renderer"}),jsxRuntime.exports.jsx(NodeRenderer$1,{nodeTypes:e,onNodeClick:a,onNodeDoubleClick:l,onNodeMouseEnter:d,onNodeMouseMove:u,onNodeMouseLeave:p,onNodeContextMenu:f,selectNodesOnDrag:O,onlyRenderVisibleElements:C,noPanClassName:ae,noDragClassName:re,disableKeyboardA11y:le,nodeOrigin:ce,nodeExtent:de,rfId:ue})]})}));GraphView.displayName="GraphView";var GraphView$1=require$$0.memo(GraphView);const infiniteExtent=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],initialState={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:infiniteExtent,nodeExtent:infiniteExtent,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,multiSelectionActive:!1,connectionStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:devWarn},createRFStore=()=>createStore(((e,t)=>({...initialState,setNodes:n=>{const{nodeInternals:o,nodeOrigin:r,elevateNodesOnSelect:i}=t();e({nodeInternals:createNodeInternals(n,o,r,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:o={}}=t();e({edges:n.map((e=>({...o,...e})))})},setDefaultNodesAndEdges:(n,o)=>{const r=void 0!==n,i=void 0!==o,a=r?createNodeInternals(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:a,edges:i?o:[],hasDefaultNodes:r,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:o,nodeInternals:r,fitViewOnInit:i,fitViewOnInitDone:a,fitViewOnInitOptions:s,domNode:l,nodeOrigin:c}=t(),d=l?.querySelector(".react-flow__viewport");if(!d)return;const u=window.getComputedStyle(d),{m22:p}=new window.DOMMatrixReadOnly(u.transform),f=n.reduce(((e,t)=>{const n=r.get(t.id);if(n){const o=getDimensions(t.nodeElement);!(!o.width||!o.height||n.width===o.width&&n.height===o.height&&!t.forceUpdate)&&(r.set(n.id,{...n,[internalsSymbol]:{...n[internalsSymbol],handleBounds:{source:getHandleBounds(".source",t.nodeElement,p,c),target:getHandleBounds(".target",t.nodeElement,p,c)}},...o}),e.push({id:n.id,type:"dimensions",dimensions:o}))}return e}),[]);updateAbsoluteNodePositions(r,c);const m=a||i&&!a&&fitView(t,{initial:!0,...s});e({nodeInternals:new Map(r),fitViewOnInitDone:m}),f?.length>0&&o?.(f)},updateNodePositions:(e,n=!0,o=!1)=>{const{triggerNodeChanges:r}=t();r(e.map((e=>{const t={id:e.id,type:"position",dragging:o};return n&&(t.positionAbsolute=e.positionAbsolute,t.position=e.position),t})))},triggerNodeChanges:n=>{const{onNodesChange:o,nodeInternals:r,hasDefaultNodes:i,nodeOrigin:a,getNodes:s,elevateNodesOnSelect:l}=t();if(n?.length){if(i){const t=createNodeInternals(applyNodeChanges(n,s()),r,a,l);e({nodeInternals:t})}o?.(n)}},addSelectedNodes:n=>{const{multiSelectionActive:o,edges:r,getNodes:i}=t();let a,s=null;o?a=n.map((e=>createSelectionChange(e,!0))):(a=getSelectionChanges(i(),n),s=getSelectionChanges(r,[])),updateNodesAndEdgesSelections({changedNodes:a,changedEdges:s,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:o,edges:r,getNodes:i}=t();let a,s=null;o?a=n.map((e=>createSelectionChange(e,!0))):(a=getSelectionChanges(r,n),s=getSelectionChanges(i(),[])),updateNodesAndEdgesSelections({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:o}={})=>{const{edges:r,getNodes:i}=t(),a=o||r;updateNodesAndEdgesSelections({changedNodes:(n||i()).map((e=>(e.selected=!1,createSelectionChange(e.id,!1)))),changedEdges:a.map((e=>createSelectionChange(e.id,!1))),get:t,set:e})},setMinZoom:n=>{const{d3Zoom:o,maxZoom:r}=t();o?.scaleExtent([n,r]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:o,minZoom:r}=t();o?.scaleExtent([r,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:o}=t();updateNodesAndEdgesSelections({changedNodes:o().filter((e=>e.selected)).map((e=>createSelectionChange(e.id,!1))),changedEdges:n.filter((e=>e.selected)).map((e=>createSelectionChange(e.id,!1))),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:o}=t();o.forEach((e=>{e.positionAbsolute=clampPosition(e.position,n)})),e({nodeExtent:n,nodeInternals:new Map(o)})},panBy:e=>{const{transform:n,width:o,height:r,d3Zoom:i,d3Selection:a,translateExtent:s}=t();if(!i||!a||!e.x&&!e.y)return;const l=identity.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),c=[[0,0],[o,r]],d=i?.constrain()(l,c,s);i.transform(a,d)},cancelConnection:()=>e({connectionNodeId:initialState.connectionNodeId,connectionHandleId:initialState.connectionHandleId,connectionHandleType:initialState.connectionHandleType,connectionStatus:initialState.connectionStatus}),reset:()=>e({...initialState})}))),ReactFlowProvider=({children:e})=>{const t=require$$0.useRef(null);return t.current||(t.current=createRFStore()),jsxRuntime.exports.jsx(Provider$1,{value:t.current,children:e})};ReactFlowProvider.displayName="ReactFlowProvider";const Wrapper=({children:e})=>require$$0.useContext(StoreContext)?jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment,{children:e}):jsxRuntime.exports.jsx(ReactFlowProvider,{children:e});function useNodeOrEdgeTypes(e,t){require$$0.useRef(null);return require$$0.useMemo((()=>t(e)),[e])}Wrapper.displayName="ReactFlowWrapper";const defaultNodeTypes={input:InputNode$1,default:DefaultNode$1,output:OutputNode$1,group:GroupNode},defaultEdgeTypes={default:BezierEdge,straight:StraightEdge,step:StepEdge,smoothstep:SmoothStepEdge,simplebezier:SimpleBezierEdge},initNodeOrigin=[0,0],initSnapGrid=[15,15],initDefaultViewport={x:0,y:0,zoom:1},wrapperStyle={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},ReactFlow=require$$0.forwardRef((({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i=defaultNodeTypes,edgeTypes:a=defaultEdgeTypes,onNodeClick:s,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:p,onConnect:f,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:v,onNodeContextMenu:w,onNodeDoubleClick:S,onNodeDragStart:x,onNodeDrag:$,onNodeDragStop:N,onNodesDelete:E,onEdgesDelete:k,onSelectionChange:C,onSelectionDragStart:j,onSelectionDrag:O,onSelectionDragStop:F,onSelectionContextMenu:P,onSelectionStart:I,onSelectionEnd:R,connectionMode:D=ConnectionMode.Strict,connectionLineType:T=ConnectionLineType.Bezier,connectionLineStyle:M,connectionLineComponent:A,connectionLineContainerStyle:L,deleteKeyCode:V="Backspace",selectionKeyCode:q="Shift",selectionOnDrag:B=!1,selectionMode:z=SelectionMode.Full,panActivationKeyCode:H="Space",multiSelectionKeyCode:U="Meta",zoomActivationKeyCode:K="Meta",snapToGrid:Y=!1,snapGrid:W=initSnapGrid,onlyRenderVisibleElements:X=!1,selectNodesOnDrag:Z=!0,nodesDraggable:G,nodesConnectable:J,nodesFocusable:Q,nodeOrigin:ee=initNodeOrigin,edgesFocusable:te,elementsSelectable:ne,defaultViewport:oe=initDefaultViewport,minZoom:re=.5,maxZoom:ie=2,translateExtent:ae=infiniteExtent,preventScrolling:se=!0,nodeExtent:le,defaultMarkerColor:ce="#b1b1b7",zoomOnScroll:de=!0,zoomOnPinch:ue=!0,panOnScroll:pe=!1,panOnScrollSpeed:fe=.5,panOnScrollMode:me=PanOnScrollMode.Free,zoomOnDoubleClick:he=!0,panOnDrag:ge=!0,onPaneClick:_e,onPaneMouseEnter:ye,onPaneMouseMove:be,onPaneMouseLeave:ve,onPaneScroll:we,onPaneContextMenu:Se,children:xe,onEdgeUpdate:$e,onEdgeContextMenu:Ne,onEdgeDoubleClick:Ee,onEdgeMouseEnter:ke,onEdgeMouseMove:Ce,onEdgeMouseLeave:je,onEdgeUpdateStart:Oe,onEdgeUpdateEnd:Fe,edgeUpdaterRadius:Pe=10,onNodesChange:Ie,onEdgesChange:Re,noDragClassName:De="nodrag",noWheelClassName:Te="nowheel",noPanClassName:Me="nopan",fitView:Ae=!1,fitViewOptions:Le,connectOnClick:Ve=!0,attributionPosition:qe,proOptions:Be,defaultEdgeOptions:ze,elevateNodesOnSelect:He=!0,elevateEdgesOnSelect:Ue=!1,disableKeyboardA11y:Ke=!1,autoPanOnConnect:Ye=!0,autoPanOnNodeDrag:We=!0,connectionRadius:Xe=20,onError:Ze,style:Ge,id:Je,...Qe},et)=>{const tt=useNodeOrEdgeTypes(i,createNodeTypes),nt=useNodeOrEdgeTypes(a,createEdgeTypes),ot=Je||"1";return jsxRuntime.exports.jsx("div",{...Qe,style:{...Ge,...wrapperStyle},ref:et,className:cc(["react-flow",r]),"data-testid":"rf__wrapper",id:Je,children:jsxRuntime.exports.jsxs(Wrapper,{children:[jsxRuntime.exports.jsx(GraphView$1,{onInit:c,onMove:d,onMoveStart:u,onMoveEnd:p,onNodeClick:s,onEdgeClick:l,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:v,onNodeContextMenu:w,onNodeDoubleClick:S,nodeTypes:tt,edgeTypes:nt,connectionLineType:T,connectionLineStyle:M,connectionLineComponent:A,connectionLineContainerStyle:L,selectionKeyCode:q,selectionOnDrag:B,selectionMode:z,deleteKeyCode:V,multiSelectionKeyCode:U,panActivationKeyCode:H,zoomActivationKeyCode:K,onlyRenderVisibleElements:X,selectNodesOnDrag:Z,defaultViewport:oe,translateExtent:ae,minZoom:re,maxZoom:ie,preventScrolling:se,zoomOnScroll:de,zoomOnPinch:ue,zoomOnDoubleClick:he,panOnScroll:pe,panOnScrollSpeed:fe,panOnScrollMode:me,panOnDrag:ge,onPaneClick:_e,onPaneMouseEnter:ye,onPaneMouseMove:be,onPaneMouseLeave:ve,onPaneScroll:we,onPaneContextMenu:Se,onSelectionContextMenu:P,onSelectionStart:I,onSelectionEnd:R,onEdgeUpdate:$e,onEdgeContextMenu:Ne,onEdgeDoubleClick:Ee,onEdgeMouseEnter:ke,onEdgeMouseMove:Ce,onEdgeMouseLeave:je,onEdgeUpdateStart:Oe,onEdgeUpdateEnd:Fe,edgeUpdaterRadius:Pe,defaultMarkerColor:ce,noDragClassName:De,noWheelClassName:Te,noPanClassName:Me,elevateEdgesOnSelect:Ue,rfId:ot,disableKeyboardA11y:Ke,nodeOrigin:ee,nodeExtent:le}),jsxRuntime.exports.jsx(StoreUpdater,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:f,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:G,nodesConnectable:J,nodesFocusable:Q,edgesFocusable:te,elementsSelectable:ne,elevateNodesOnSelect:He,minZoom:re,maxZoom:ie,nodeExtent:le,onNodesChange:Ie,onEdgesChange:Re,snapToGrid:Y,snapGrid:W,connectionMode:D,translateExtent:ae,connectOnClick:Ve,defaultEdgeOptions:ze,fitView:Ae,fitViewOptions:Le,onNodesDelete:E,onEdgesDelete:k,onNodeDragStart:x,onNodeDrag:$,onNodeDragStop:N,onSelectionDrag:O,onSelectionDragStart:j,onSelectionDragStop:F,noPanClassName:Me,nodeOrigin:ee,rfId:ot,autoPanOnConnect:Ye,autoPanOnNodeDrag:We,onError:Ze,connectionRadius:Xe}),jsxRuntime.exports.jsx(Wrapper$1,{onSelectionChange:C}),xe,jsxRuntime.exports.jsx(Attribution,{proOptions:Be,position:qe}),jsxRuntime.exports.jsx(A11yDescriptions,{rfId:ot,disableKeyboardA11y:Ke})]})})}));function createUseItemsState(e){return t=>{const[n,o]=require$$0.useState(t),r=require$$0.useCallback((t=>o((n=>e(t,n)))),[]);return[n,o,r]}}ReactFlow.displayName="ReactFlow";const useNodesState=createUseItemsState(applyNodeChanges),useEdgesState=createUseItemsState(applyEdgeChanges);function useOnSelectionChange({onChange:e}){const t=useStoreApi();require$$0.useEffect((()=>{t.setState({onSelectionChange:e})}),[e])}const MiniMapNode=({id:e,x:t,y:n,width:o,height:r,style:i,color:a,strokeColor:s,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,onClick:p})=>{const{background:f,backgroundColor:m}=i||{},h=a||f||m;return jsxRuntime.exports.jsx("rect",{className:cc(["react-flow__minimap-node",c]),x:t,y:n,rx:d,ry:d,width:o,height:r,fill:h,stroke:s,strokeWidth:l,shapeRendering:u,onClick:p?t=>p(t,e):void 0})};MiniMapNode.displayName="MiniMapNode";var MiniMapNode$1=require$$0.memo(MiniMapNode);const defaultWidth=200,defaultHeight=150,selector$1=e=>{const t=e.getNodes(),n={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{nodes:t.filter((e=>!e.hidden&&e.width&&e.height)),viewBB:n,boundingRect:t.length>0?getBoundsOfRects(getRectOfNodes(t,e.nodeOrigin),n):n,rfId:e.rfId,nodeOrigin:e.nodeOrigin}},getAttrFunction=e=>e instanceof Function?e:()=>e,ARIA_LABEL_KEY="react-flow__minimap-desc";function MiniMap({style:e,className:t,nodeStrokeColor:n="transparent",nodeColor:o="#e2e2e2",nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:a=2,maskColor:s="rgb(240, 240, 240, 0.6)",maskStrokeColor:l="none",maskStrokeWidth:c=1,position:d="bottom-right",onClick:u,onNodeClick:p,pannable:f=!1,zoomable:m=!1,ariaLabel:h="React Flow mini map"}){const g=useStoreApi(),_=require$$0.useRef(null),{boundingRect:y,viewBB:b,nodes:v,rfId:w,nodeOrigin:S}=useStore(selector$1,shallow),x=e?.width??defaultWidth,$=e?.height??defaultHeight,N=getAttrFunction(o),E=getAttrFunction(n),k=getAttrFunction(r),C=y.width/x,j=y.height/$,O=Math.max(C,j),F=O*x,P=O*$,I=5*O,R=y.x-(F-y.width)/2-I,D=y.y-(P-y.height)/2-I,T=F+2*I,M=P+2*I,A="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision",L=`${ARIA_LABEL_KEY}-${w}`,V=require$$0.useRef(0);V.current=O,require$$0.useEffect((()=>{if(_.current){const e=select(_.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:o}=g.getState();if("wheel"!==e.sourceEvent.type||!n||!o)return;const r=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*10,i=t[2]*Math.pow(2,r);o.scaleTo(n,i)},n=e=>{const{transform:t,d3Selection:n,d3Zoom:o,translateExtent:r,width:i,height:a}=g.getState();if("mousemove"!==e.sourceEvent.type||!n||!o)return;const s={x:t[0]-e.sourceEvent.movementX*V.current*Math.max(1,t[2]),y:t[1]-e.sourceEvent.movementY*V.current*Math.max(1,t[2])},l=[[0,0],[i,a]],c=identity.translate(s.x,s.y).scale(t[2]),d=o.constrain()(c,l,r);o.transform(n,d)},o=zoom().on("zoom",f?n:null).on("zoom.wheel",m?t:null);return e.call(o),()=>{e.on("zoom",null)}}}),[f,m]);const q=u?e=>{const t=pointer(e);u(e,{x:t[0],y:t[1]})}:void 0,B=p?(e,t)=>{const n=g.getState().nodeInternals.get(t);p(e,n)}:void 0;return jsxRuntime.exports.jsx(Panel,{position:d,style:e,className:cc(["react-flow__minimap",t]),children:jsxRuntime.exports.jsxs("svg",{width:x,height:$,viewBox:`${R} ${D} ${T} ${M}`,role:"img","aria-labelledby":L,ref:_,onClick:q,children:[h&&jsxRuntime.exports.jsx("title",{id:L,children:h}),v.map((e=>{const{x:t,y:n}=getNodePositionWithOrigin(e,S).positionAbsolute;return jsxRuntime.exports.jsx(MiniMapNode$1,{x:t,y:n,width:e.width,height:e.height,style:e.style,className:k(e),color:N(e),borderRadius:i,strokeColor:E(e),strokeWidth:a,shapeRendering:A,onClick:B,id:e.id},e.id)})),jsxRuntime.exports.jsx("path",{className:"react-flow__minimap-mask",d:`M${R-I},${D-I}h${T+2*I}v${M+2*I}h${-T-2*I}z\n M${b.x},${b.y}h${b.width}v${b.height}h${-b.width}z`,fill:s,fillRule:"evenodd",stroke:l,strokeWidth:c,pointerEvents:"none"})]})})}function PlusIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:jsxRuntime.exports.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function MinusIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:jsxRuntime.exports.jsx("path",{d:"M0 0h32v4.2H0z"})})}function FitViewIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:jsxRuntime.exports.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function LockIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntime.exports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function UnlockIcon(){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntime.exports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}MiniMap.displayName="MiniMap",require$$0.memo(MiniMap);const ControlButton=({children:e,className:t,...n})=>jsxRuntime.exports.jsx("button",{type:"button",className:cc(["react-flow__controls-button",t]),...n,children:e});ControlButton.displayName="ControlButton";const isInteractiveSelector=e=>e.nodesDraggable&&e.nodesConnectable&&e.elementsSelectable,Controls=({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:a,onFitView:s,onInteractiveChange:l,className:c,children:d,position:u="bottom-left"})=>{const p=useStoreApi(),[f,m]=require$$0.useState(!1),h=useStore(isInteractiveSelector),{zoomIn:g,zoomOut:_,fitView:y}=useReactFlow();if(require$$0.useEffect((()=>{m(!0)}),[]),!f)return null;return jsxRuntime.exports.jsxs(Panel,{className:cc(["react-flow__controls",c]),position:u,style:e,children:[t&&jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(ControlButton,{onClick:()=>{g(),i?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",children:jsxRuntime.exports.jsx(PlusIcon,{})}),jsxRuntime.exports.jsx(ControlButton,{onClick:()=>{_(),a?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",children:jsxRuntime.exports.jsx(MinusIcon,{})})]}),n&&jsxRuntime.exports.jsx(ControlButton,{className:"react-flow__controls-fitview",onClick:()=>{y(r),s?.()},title:"fit view","aria-label":"fit view",children:jsxRuntime.exports.jsx(FitViewIcon,{})}),o&&jsxRuntime.exports.jsx(ControlButton,{className:"react-flow__controls-interactive",onClick:()=>{p.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),l?.(!h)},title:"toggle interactivity","aria-label":"toggle interactivity",children:h?jsxRuntime.exports.jsx(UnlockIcon,{}):jsxRuntime.exports.jsx(LockIcon,{})}),d]})};Controls.displayName="Controls";var Controls$1=require$$0.memo(Controls),BackgroundVariant;function LinePattern({color:e,dimensions:t,lineWidth:n}){return jsxRuntime.exports.jsx("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function DotPattern({color:e,radius:t}){return jsxRuntime.exports.jsx("circle",{cx:t,cy:t,r:t,fill:e})}!function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"}(BackgroundVariant||(BackgroundVariant={}));const defaultColor={[BackgroundVariant.Dots]:"#91919a",[BackgroundVariant.Lines]:"#eee",[BackgroundVariant.Cross]:"#e2e2e2"},defaultSize={[BackgroundVariant.Dots]:1,[BackgroundVariant.Lines]:1,[BackgroundVariant.Cross]:6},selector=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Background({variant:e=BackgroundVariant.Dots,gap:t=20,size:n,lineWidth:o=1,color:r,style:i,className:a}){const s=require$$0.useRef(null),{transform:l,patternId:c}=useStore(selector,shallow),d=r||defaultColor[e],u=n||defaultSize[e],p=e===BackgroundVariant.Dots,f=e===BackgroundVariant.Cross,m=Array.isArray(t)?t:[t,t],h=[m[0]*l[2]||1,m[1]*l[2]||1],g=u*l[2],_=f?[g,g]:h,y=p?[g/2,g/2]:[_[0]/2,_[1]/2];return jsxRuntime.exports.jsxs("svg",{className:cc(["react-flow__background",a]),style:{...i,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:s,children:[jsxRuntime.exports.jsx("pattern",{id:c,x:l[0]%h[0],y:l[1]%h[1],width:h[0],height:h[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${y[0]},-${y[1]})`,children:p?jsxRuntime.exports.jsx(DotPattern,{color:d,radius:g/2}):jsxRuntime.exports.jsx(LinePattern,{dimensions:_,color:d,lineWidth:o})}),jsxRuntime.exports.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${c})`})]})}Background.displayName="Background";var Background$1=require$$0.memo(Background);function _typeof$1(e){return _typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$1(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toPrimitive$1(e,t){if("object"!==_typeof$1(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof$1(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"===_typeof$1(t)?t:String(t)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey$1(o.key),o)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _possibleConstructorReturn(e,t){if(t&&("object"===_typeof$1(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _defineProperty$1(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableRest()}function ownKeys$6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var consoleLogger={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},Logger=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.init(t,n)}return _createClass$1(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||consoleLogger,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,o){return o&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,_objectSpread$6(_objectSpread$6({},{prefix:"".concat(this.prefix,":").concat(t,":")}),this.options))}},{key:"clone",value:function(t){return(t=t||this.options).prefix=t.prefix||this.prefix,new e(this.logger,t)}}]),e}(),baseLogger=new Logger,EventEmitter=function(){function e(){_classCallCheck$1(this,e),this.observers={}}return _createClass$1(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach((function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)})),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter((function(e){return e!==t})):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];if(this.observers[e]){var r=[].concat(this.observers[e]);r.forEach((function(e){e.apply(void 0,n)}))}if(this.observers["*"]){var i=[].concat(this.observers["*"]);i.forEach((function(t){t.apply(t,[e].concat(n))}))}}}]),e}();function defer(){var e,t,n=new Promise((function(n,o){e=n,t=o}));return n.resolve=e,n.reject=t,n}function makeString(e){return null==e?"":""+e}function copy(e,t,n){e.forEach((function(e){t[e]&&(n[e]=t[e])}))}function getLastOfPath(e,t,n){function o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var i="string"!=typeof t?[].concat(t):t.split(".");i.length>1;){if(r())return{};var a=o(i.shift());!e[a]&&n&&(e[a]=new n),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return r()?{}:{obj:e,k:o(i.shift())}}function setPath(e,t,n){var o=getLastOfPath(e,t,Object);o.obj[o.k]=n}function pushPath(e,t,n,o){var r=getLastOfPath(e,t,Object),i=r.obj,a=r.k;i[a]=i[a]||[],o&&(i[a]=i[a].concat(n)),o||i[a].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),o=n.obj,r=n.k;if(o)return o[r]}function getPathWithDefaults(e,t,n){var o=getPath(e,n);return void 0!==o?o:getPath(t,n)}function deepExtend(e,t,n){for(var o in t)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof t[o]||t[o]instanceof String?n&&(e[o]=t[o]):deepExtend(e[o],t[o],n):e[o]=t[o]);return e}function regexEscape(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var _entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function escape(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return _entityMap[e]})):e}var isIE10="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,chars=[" ",",","?","!",";"];function looksLikeObjectPath(e,t,n){t=t||"",n=n||"";var o=chars.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===o.length)return!0;var r=new RegExp("(".concat(o.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),i=!r.test(e);if(!i){var a=e.indexOf(n);a>0&&!r.test(e.substring(0,a))&&(i=!0)}return i}function deepFind(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var o=t.split(n),r=e,i=0;i<o.length;++i){if(!r)return;if("string"==typeof r[o[i]]&&i+1<o.length)return;if(void 0===r[o[i]]){for(var a=2,s=o.slice(i,i+a).join(n),l=r[s];void 0===l&&o.length>i+a;)a++,l=r[s=o.slice(i,i+a).join(n)];if(void 0===l)return;if(null===l)return null;if(t.endsWith(s)){if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s]}var c=o.slice(i+a).join(n);return c?deepFind(l,c,n):void 0}r=r[o[i]]}return r}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$3(e){var t=_isNativeReflectConstruct$3();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$3(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var ResourceStore=function(e){_inherits(n,e);var t=_createSuper$3(n);function n(e){var o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),o.data=e||{},o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),void 0===o.options.ignoreJSONStructure&&(o.options.ignoreJSONStructure=!0),o}return _createClass$1(n,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[e,t];n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(a=e.split("."));var s=getPath(this.data,a);return s||!i||"string"!=typeof n?s:deepFind(this.data&&this.data[e]&&this.data[e][t],n,r)}},{key:"addResource",value:function(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,a=[e,t];n&&(a=a.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(o=t,t=(a=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,a,o),r.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)"string"!=typeof n[r]&&"[object Array]"!==Object.prototype.toString.apply(n[r])||this.addResource(e,t,r,n[r],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},a=[e,t];e.indexOf(".")>-1&&(o=n,n=t,t=(a=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,a)||{};o?deepExtend(s,n,r):s=_objectSpread$5(_objectSpread$5({},s),n),setPath(this.data,a,s),i.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?_objectSpread$5(_objectSpread$5({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),n}(EventEmitter),postProcessor={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,o,r){var i=this;return e.forEach((function(e){i.processors[e]&&(t=i.processors[e].process(t,n,o,r))})),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$2(e){var t=_isNativeReflectConstruct$2();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$2(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var checkedLoadedFor={},Translator=function(e){_inherits(n,e);var t=_createSuper$2(n);function n(e){var o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(o)),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=baseLogger.create("translator"),o}return _createClass$1(n,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=t.ns||this.options.defaultNS||[],i=n&&e.indexOf(n)>-1,a=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||looksLikeObjectPath(e,n,o));if(i&&!a){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:r};var l=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,o){var r=this;if("object"!==_typeof$1(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"===_typeof$1(t)&&(t=_objectSpread$4({},t)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var i=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,a=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,s=this.extractFromKey(e[e.length-1],t),l=s.key,c=s.namespaces,d=c[c.length-1],u=t.lng||this.language,p=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&"cimode"===u.toLowerCase()){if(p){var f=t.nsSeparator||this.options.nsSeparator;return i?{res:"".concat(d).concat(f).concat(l),usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d}:"".concat(d).concat(f).concat(l)}return i?{res:l,usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d}:l}var m=this.resolve(e,t),h=m&&m.res,g=m&&m.usedKey||l,_=m&&m.exactUsedKey||l,y=Object.prototype.toString.apply(h),b=["[object Number]","[object Function]","[object RegExp]"],v=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,w=!this.i18nFormat||this.i18nFormat.handleAsObject,S="string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h;if(w&&h&&S&&b.indexOf(y)<0&&("string"!=typeof v||"[object Array]"!==y)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var x=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,h,_objectSpread$4(_objectSpread$4({},t),{},{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return i?(m.res=x,m):x}if(a){var $="[object Array]"===y,N=$?[]:{},E=$?_:g;for(var k in h)if(Object.prototype.hasOwnProperty.call(h,k)){var C="".concat(E).concat(a).concat(k);N[k]=this.translate(C,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),N[k]===C&&(N[k]=h[k])}h=N}}else if(w&&"string"==typeof v&&"[object Array]"===y)(h=h.join(v))&&(h=this.extendTranslation(h,e,t,o));else{var j=!1,O=!1,F=void 0!==t.count&&"string"!=typeof t.count,P=n.hasDefaultValue(t),I=F?this.pluralResolver.getSuffix(u,t.count,t):"",R=t["defaultValue".concat(I)]||t.defaultValue;!this.isValidLookup(h)&&P&&(j=!0,h=R),this.isValidLookup(h)||(O=!0,h=l);var D=t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,T=D&&O?void 0:h,M=P&&R!==h&&this.options.updateMissing;if(O||j||M){if(this.logger.log(M?"updateKey":"missingKey",u,d,l,M?R:h),a){var A=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));A&&A.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var L=[],V=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&V&&V[0])for(var q=0;q<V.length;q++)L.push(V[q]);else"all"===this.options.saveMissingTo?L=this.languageUtils.toResolveHierarchy(t.lng||this.language):L.push(t.lng||this.language);var B=function(e,n,o){var i=P&&o!==h?o:T;r.options.missingKeyHandler?r.options.missingKeyHandler(e,d,n,i,M,t):r.backendConnector&&r.backendConnector.saveMissing&&r.backendConnector.saveMissing(e,d,n,i,M,t),r.emit("missingKey",e,d,n,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&F?L.forEach((function(e){r.pluralResolver.getSuffixes(e,t).forEach((function(n){B([e],l+n,t["defaultValue".concat(n)]||R)}))})):B(L,l,R))}h=this.extendTranslation(h,e,t,m,o),O&&h===l&&this.options.appendNamespaceToMissingKey&&(h="".concat(d,":").concat(l)),(O||j)&&this.options.parseMissingKeyHandler&&(h="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(d,":").concat(l):l,j?h:void 0):this.options.parseMissingKeyHandler(h))}return i?(m.res=h,m):h}},{key:"extendTranslation",value:function(e,t,n,o,r){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(_objectSpread$4(_objectSpread$4({},n),{interpolation:_objectSpread$4(_objectSpread$4({},this.options.interpolation),n.interpolation)}));var a,s="string"==typeof e&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(s){var l=e.match(this.interpolator.nestingRegexp);a=l&&l.length}var c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c=_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),c)),e=this.interpolator.interpolate(e,c,n.lng||this.language,n),s){var d=e.match(this.interpolator.nestingRegexp);a<(d&&d.length)&&(n.nest=!1)}!n.lng&&"v1"!==this.options.compatibilityAPI&&o&&o.res&&(n.lng=o.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return r&&r[0]===o[0]&&!n.context?(i.logger.warn("It seems you are nesting recursively key: ".concat(o[0]," in key: ").concat(t[0])),null):i.translate.apply(i,o.concat([t]))}),n)),n.interpolation&&this.interpolator.reset()}var u=n.postProcess||this.options.postProcess,p="string"==typeof u?[u]:u;return null!=e&&p&&p.length&&!1!==n.applyPostProcessor&&(e=postProcessor.handle(p,e,t,this.options&&this.options.postProcessPassResolved?_objectSpread$4({i18nResolved:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,r,i,a=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!a.isValidLookup(t)){var l=a.extractFromKey(e,s),c=l.key;n=c;var d=l.namespaces;a.options.fallbackNS&&(d=d.concat(a.options.fallbackNS));var u=void 0!==s.count&&"string"!=typeof s.count,p=u&&!s.ordinal&&0===s.count&&a.pluralResolver.shouldUseIntlApi(),f=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,m=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);d.forEach((function(e){a.isValidLookup(t)||(i=e,!checkedLoadedFor["".concat(m[0],"-").concat(e)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(i)&&(checkedLoadedFor["".concat(m[0],"-").concat(e)]=!0,a.logger.warn('key "'.concat(n,'" for languages "').concat(m.join(", "),'" won\'t get resolved as namespace "').concat(i,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach((function(n){if(!a.isValidLookup(t)){r=n;var i,l=[c];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(l,c,n,e,s);else{var d;u&&(d=a.pluralResolver.getSuffix(n,s.count,s));var m="".concat(a.options.pluralSeparator,"zero");if(u&&(l.push(c+d),p&&l.push(c+m)),f){var h="".concat(c).concat(a.options.contextSeparator).concat(s.context);l.push(h),u&&(l.push(h+d),p&&l.push(h+m))}}for(;i=l.pop();)a.isValidLookup(t)||(o=i,t=a.getResource(n,e,i,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:o,usedLng:r,usedNS:i}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),n}(EventEmitter);function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}var LanguageUtil=function(){function e(t){_classCallCheck$1(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils")}return _createClass$1(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=capitalize(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var o=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(o)||(t=o)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var o=n.getLanguagePartFromCode(e);if(n.isSupportedCode(o))return t=o;t=n.options.supportedLngs.find((function(e){return e===o?e:e.indexOf("-")<0&&o.indexOf("-")<0?void 0:0===e.indexOf(o)?e:void 0}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],i=function(e){e&&(n.isSupportedCode(e)?r.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(e))):"string"==typeof e&&i(this.formatLanguageCode(e)),o.forEach((function(e){r.indexOf(e)<0&&i(n.formatLanguageCode(e))})),r}}]),e}(),sets=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},deprecatedJsonVersions=["v1","v2","v3"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5};function createRules(){var e={};return sets.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:_rulesPluralsTypes[t.fc]}}))})),e}var PluralResolver=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.languageUtils=t,this.options=n,this.logger=baseLogger.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=createRules()}return _createClass$1(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((function(e,t){return suffixesOrder[e]-suffixesOrder[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):o.numbers.map((function(o){return t.getSuffix(e,o,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(t)):this.getSuffixRetroCompatible(o,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,o=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[o];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):i():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?i():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}},{key:"shouldUseIntlApi",value:function(){return!deprecatedJsonVersions.includes(this.options.compatibilityJSON)}}]),e}();function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function deepFindWithDefaults(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=getPathWithDefaults(e,t,n);return!i&&r&&"string"==typeof n&&void 0===(i=deepFind(e,n,o))&&(i=deepFind(t,n,o)),i}var Interpolator=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return _createClass$1(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:escape,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?regexEscape(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?regexEscape(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?regexEscape(t.nestingPrefix):t.nestingPrefixEscaped||regexEscape("$t("),this.nestingSuffix=t.nestingSuffix?regexEscape(t.nestingSuffix):t.nestingSuffixEscaped||regexEscape(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,o){var r,i,a,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var d=function(e){if(e.indexOf(s.formatSeparator)<0){var r=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(r,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:e})):r}var i=e.split(s.formatSeparator),a=i.shift().trim(),c=i.join(s.formatSeparator).trim();return s.format(deepFindWithDefaults(t,l,a,s.options.keySeparator,s.options.ignoreJSONStructure),c,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:a}))};this.resetRegExp();var u=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,p=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?c(s.escape(e)):c(e)}}].forEach((function(t){for(a=0;r=t.regex.exec(e);){var n=r[1].trim();if(void 0===(i=d(n)))if("function"==typeof u){var l=u(e,r,o);i="string"==typeof l?l:""}else if(o&&Object.prototype.hasOwnProperty.call(o,n))i="";else{if(p){i=r[0];continue}s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),i=""}else"string"==typeof i||s.useRawValueToEscape||(i=makeString(i));var c=t.safeValue(i);if(e=e.replace(r[0],c),p?(t.regex.lastIndex+=i.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++a>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,o,r,i=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var o=e.split(new RegExp("".concat(n,"[ ]*{"))),i="{".concat(o[1]);e=o[0];var a=(i=this.interpolate(i,r)).match(/'/g),s=i.match(/"/g);(a&&a.length%2==0&&!s||s.length%2!=0)&&(i=i.replace(/'/g,'"'));try{r=JSON.parse(i),t&&(r=_objectSpread$3(_objectSpread$3({},t),r))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(i)}return delete r.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(r=(r=_objectSpread$3({},a)).replace&&"string"!=typeof r.replace?r.replace:r).applyPostProcessor=!1,delete r.defaultValue;var c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var d=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=d.shift(),l=d,c=!0}if((o=t(s.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=makeString(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),c&&(o=l.reduce((function(e,t){return i.format(e,t,a.lng,_objectSpread$3(_objectSpread$3({},a),{},{interpolationkey:n[1].trim()}))}),o.trim())),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function parseFormatStr(e){var t=e.toLowerCase().trim(),n={};if(e.indexOf("(")>-1){var o=e.split("(");t=o[0].toLowerCase().trim();var r=o[1].substring(0,o[1].length-1);if("currency"===t&&r.indexOf(":")<0)n.currency||(n.currency=r.trim());else if("relativetime"===t&&r.indexOf(":")<0)n.range||(n.range=r.trim());else{r.split(";").forEach((function(e){if(e){var t=_toArray(e.split(":")),o=t[0],r=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[o.trim()]||(n[o.trim()]=r),"false"===r&&(n[o.trim()]=!1),"true"===r&&(n[o.trim()]=!0),isNaN(r)||(n[o.trim()]=parseInt(r,10))}}))}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,o,r){var i=o+JSON.stringify(r),a=t[i];return a||(a=e(o,r),t[i]=a),a(n)}}var Formatter=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("formatter"),this.options=t,this.formats={number:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),currency:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2(_objectSpread$2({},t),{},{style:"currency"}));return function(e){return n.format(e)}})),datetime:createCachedFormatter((function(e,t){var n=new Intl.DateTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),relativetime:createCachedFormatter((function(e,t){var n=new Intl.RelativeTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e,t.range||"day")}})),list:createCachedFormatter((function(e,t){var n=new Intl.ListFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}}))},this.init(t)}return _createClass$1(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=t.interpolation;this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=createCachedFormatter(t)}},{key:"format",value:function(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=t.split(this.formatSeparator),a=i.reduce((function(e,t){var i=parseFormatStr(t),a=i.formatName,s=i.formatOptions;if(o.formats[a]){var l=e;try{var c=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},d=c.locale||c.lng||r.locale||r.lng||n;l=o.formats[a](e,d,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),r),c))}catch(e){o.logger.warn(e)}return l}return o.logger.warn("there was no format function for ".concat(a)),e}),e);return a}}]),e}();function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$1(e){var t=_isNativeReflectConstruct$1();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$1(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function removePending(e,t){void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)}var Connector=function(e){_inherits(n,e);var t=_createSuper$1(n);function n(e,o,r){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return _classCallCheck$1(this,n),i=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(i)),i.backend=e,i.store=o,i.services=r,i.languageUtils=r.languageUtils,i.options=a,i.logger=baseLogger.create("backendConnector"),i.waitingReads=[],i.maxParallelReads=a.maxParallelReads||10,i.readingCalls=0,i.maxRetries=a.maxRetries>=0?a.maxRetries:5,i.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(r,a.backend,a),i}return _createClass$1(n,[{key:"queueLoad",value:function(e,t,n,o){var r=this,i={},a={},s={},l={};return e.forEach((function(e){var o=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&r.store.hasResourceBundle(e,t)?r.state[s]=2:r.state[s]<0||(1===r.state[s]?void 0===a[s]&&(a[s]=!0):(r.state[s]=1,o=!1,void 0===a[s]&&(a[s]=!0),void 0===i[s]&&(i[s]=!0),void 0===l[t]&&(l[t]=!0)))})),o||(s[e]=!0)})),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var o=e.split("|"),r=o[0],i=o[1];t&&this.emit("failedLoading",r,i,t),n&&this.store.addResourceBundle(r,i,n),this.state[e]=t?-1:2;var a={};this.queue.forEach((function(n){pushPath(n.loaded,[r],i),removePending(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach((function(e){a[e]||(a[e]={});var t=n.loaded[e];t.length&&t.forEach((function(t){void 0===a[e][t]&&(a[e][t]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads)this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});else{this.readingCalls++;var s=function(s,l){if(o.readingCalls--,o.waitingReads.length>0){var c=o.waitingReads.shift();o.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&r<o.maxRetries?setTimeout((function(){o.read.call(o,e,t,n,r+1,2*i,a)}),i):a(s,l)},l=this.backend[n].bind(this.backend);if(2!==l.length)return l(e,t,s);try{var c=l(e,t);c&&"function"==typeof c.then?c.then((function(e){return s(null,e)})).catch(s):s(null,c)}catch(e){s(e)}}}},{key:"prepareLoading",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var i=this.queueLoad(e,t,o,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=e.split("|"),r=o[0],i=o[1];this.read(r,i,"read",void 0,void 0,(function(o,a){o&&t.logger.warn("".concat(n,"loading namespace ").concat(i," for language ").concat(r," failed"),o),!o&&a&&t.logger.log("".concat(n,"loaded namespace ").concat(i," for language ").concat(r),a),t.loaded(e,o,a)}))}},{key:"saveMissing",value:function(e,t,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t))this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=n&&""!==n){if(this.backend&&this.backend.create){var s=_objectSpread$1(_objectSpread$1({},i),{},{isUpdate:r}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,o,s):l(e,t,n,o))&&"function"==typeof c.then?c.then((function(e){return a(null,e)})).catch(a):a(null,c)}catch(e){a(e)}else l(e,t,n,o,a,s)}e&&e[0]&&this.store.addResource(e[0],t,n,o)}}}]),n}(EventEmitter);function get(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===_typeof$1(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===_typeof$1(e[2])||"object"===_typeof$1(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,o){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function transformOptions(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread$7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function noop(){}function bindMemberFunctions(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))}))}var I18n=function(e){_inherits(n,e);var t=_createSuper(n);function n(){var e,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(_classCallCheck$1(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(o),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),r&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,r),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout((function(){e.init(o,r)}),0)}return e}return _createClass$1(n,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var o=get();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},o),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},o.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var i;this.modules.logger?baseLogger.init(r(this.modules.logger),this.options):baseLogger.init(null,this.options),this.modules.formatter?i=this.modules.formatter:"undefined"!=typeof Intl&&(i=Formatter);var a=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);var s=this.services;s.logger=baseLogger,s.resourceStore=this.store,s.languageUtils=a,s.pluralResolver=new PluralResolver(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!i||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(s.formatter=r(i),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Interpolator(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new Connector(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),this.modules.languageDetector&&(s.languageDetector=r(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=r(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new Translator(this.services,this.options),this.translator.on("*",(function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),this.modules.external.forEach((function(t){t.init&&t.init(e)}))}if(this.format=this.options.interpolation.format,n||(n=noop),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var c=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];c.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));var d=["addResource","addResources","addResourceBundle","removeResourceBundle"];d.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var u=defer(),p=function(){var t=function(t,o){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),u.resolve(o),n(t,o)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?p():setTimeout(p,0),u}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,o=n,r="string"==typeof e?e:this.language;if("function"==typeof e&&(o=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&"cimode"===r.toLowerCase())return o();var i=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){i.indexOf(e)<0&&i.push(e)}))};if(r)a(r);else{var s=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);s.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(i,this.options.ns,(function(e){e||t.resolvedLanguage||!t.language||t.setResolvedLanguage(t.language),o(e)}))}else o(null)}},{key:"reloadResources",value:function(e,t,n){var o=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,(function(e){o.resolve(),n(e)})),o}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&postProcessor.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<this.languages.length;t++){var n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var o=defer();this.emit("languageChanging",e);var r=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},i=function(i){e||i||!n.services.languageDetector||(i=[]);var a="string"==typeof i?i:n.services.languageUtils.getBestMatchFromCodes(i);a&&(n.language||r(a),n.translator.language||n.translator.changeLanguage(a),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage&&n.services.languageDetector.cacheUserLanguage(a)),n.loadResources(a,(function(e){!function(e,i){i?(r(i),n.translator.changeLanguage(i),n.isLanguageChangingTo=void 0,n.emit("languageChanged",i),n.logger.log("languageChanged",i)):n.isLanguageChangingTo=void 0,o.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,a)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(i):this.services.languageDetector.detect(i):i(e):i(this.services.languageDetector.detect()),o}},{key:"getFixedT",value:function(e,t,n){var o=this,r=function e(t,r){var i;if("object"!==_typeof$1(r)){for(var a=arguments.length,s=new Array(a>2?a-2:0),l=2;l<a;l++)s[l-2]=arguments[l];i=o.options.overloadTranslationOptionHandler([t,r].concat(s))}else i=_objectSpread$7({},r);i.lng=i.lng||e.lng,i.lngs=i.lngs||e.lngs,i.ns=i.ns||e.ns,i.keyPrefix=i.keyPrefix||n||e.keyPrefix;var c,d=o.options.keySeparator||".";return c=i.keyPrefix&&Array.isArray(t)?t.map((function(e){return"".concat(i.keyPrefix).concat(d).concat(e)})):i.keyPrefix?"".concat(i.keyPrefix).concat(d).concat(t):t,o.t(c,i)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var o=n.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var a=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};if(n.precheck){var s=n.precheck(this,a);if(void 0!==s)return s}return!!this.hasResourceBundle(o,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!a(o,e)||r&&!a(i,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=defer();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){o.resolve(),t&&t(e)})),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],r=e.filter((function(e){return o.indexOf(e)<0}));return r.length?(this.options.preload=o.concat(r),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";var t=this.services&&this.services.languageUtils||new LanguageUtil(get());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),i=new n(r);void 0===t.debug&&void 0===t.prefix||(i.logger=i.logger.clone(t));var a=["store","services","language"];return a.forEach((function(t){i[t]=e[t]})),i.services=_objectSpread$7({},this.services),i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i.translator=new Translator(i.services,i.options),i.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];i.emit.apply(i,[e].concat(n))})),i.init(r,o),i.translator.options=i.options,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),n}(EventEmitter);_defineProperty$1(I18n,"createInstance",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new I18n(e,t)}));var instance=I18n.createInstance();function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"===_typeof(t)?t:String(t)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}instance.createInstance=I18n.createInstance,instance.createInstance,instance.dir,instance.init,instance.loadResources,instance.reloadResources,instance.use,instance.changeLanguage,instance.getFixedT,instance.t,instance.exists,instance.setDefaultNamespace,instance.hasLoadedNamespace,instance.loadNamespaces,instance.loadLanguages;var matchHtmlEntity=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,htmlEntities={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},unescapeHtmlEntity=function(e){return htmlEntities[e]},unescape=function(e){return e.replace(matchHtmlEntity,unescapeHtmlEntity)};function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var defaultOptions={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:unescape};function setDefaults(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};defaultOptions=_objectSpread(_objectSpread({},defaultOptions),e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var initReactI18next={type:"3rdParty",init:function(e){setDefaults(e.options.react)}};require$$0.createContext(),function(){function e(){_classCallCheck(this,e),this.usedNamespaces={}}_createClass(e,[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach((function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])}();var freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),_root=root$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol;Symbol$2&&Symbol$2.toStringTag;var Symbol$1=_Symbol;Symbol$1&&Symbol$1.toStringTag;var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},o=getAuthorization();o&&(n.Authorization=o),t.headers=Object.assign({},n,t.headers),t.credentials="include";const r=await fetch(`${getRootUrl()}${e}`,t);if(401===r.status)throw new Error(401);const i=await r.json();if(i.errors)throw console.error(i.errors),new Error("Failed to fetch API");return i}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||(e||"")}const Router={getTabDisplayAs(e){var t=new URLSearchParams(document.location.search);if(t.has("display"))return t.get("display");const n=`tab_${e}_display`,o=localStorage.getItem(n);return o||"grid"},setTabDisplayAs(e,t){const n=`tab_${e}_display`;localStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:o})=>`/app/${t}/${n}/grid/${o}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:o,recordId:r,listViewName:i,_templateType:a}=e;return"JavaScript"===a?`/app/${n}/${o}/view/${r}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${o}/view/${r}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:o,objectName:r,foreignKey:i})=>`/app/${t}/${n}/${o}/${r}/grid?related_field_name=${i}`};function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return(299*parseInt(t.substr(0,2),16)+587*parseInt(t.substr(2,2),16)+114*parseInt(t.substr(4,2),16))/1e3<128?"#ffffff":"#000000"}function getNumberTpl(e){return`<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return`<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getSelectMap(e){let t={};return ___default.forEach(e,(e=>{const n=e.value+"",o=e.color+"";if(o){const r="#"===o.charAt(0)?o:"#"+o,i="background:"+r+";color:"+getContrastColor(r);t[n]=`<span class="rounded-xl px-2 py-1" style='${i}'>${e.label}</span>`}else t[n]=e.label})),t}function getNameTplUrl(e,t){if("cms_files"===t.objectName)return"${context.rootUrl}/api/files/files/${versions[0]}?download=true";return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){const n=getNameTplUrl(e,t);let o="";return t&&t.isLookup&&(o="target='_blank'"),`<a href="${n}" ${o}>\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;let o="";t&&t.isLookup&&(o="target='_blank'");const r=t.onlyDisplayLabel;let i=`data._display.${e.name}`;if(e.isTableField&&(i=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=item.label%></a>`}n=`\n <% if (${i} && ${i}.length) { %><% ${i}.forEach(function(item,index) { %> <% if(index>0 && index<${i}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let i=`\${_display.${e.name}.label}`,a=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;if(e.isTableField&&(i=`\${${e.name}.label}`,a=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),!r){i=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${a}`,recordId:`${s}`})}" ${o}>${i}</a>`}n=i}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=item.label%></a>`}n=`\n <% if (${i} && ${i}.length) { %><% ${i}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const o=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${o}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%= data._display.${e.name} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : data._display.${e.name} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}function getLocationTpl(e){return`\${${e.name} ? ${e.name}.address : ''}`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLabel)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"location":return await getLocationTpl(e);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t){let n=[];0!=t&&(t=!0);let o=["_id"],r=[],i=[];i=___default__namespace.isArray(e)?e:___default__namespace.values(e);for(const e of i)e.expand?n.push(e):e.name.indexOf(".")<0?(!t||"lookup"!=e.type&&"master_detail"!=e.type?o.push(e.alias?`${e.alias}:${e.name}`:e.name):(o.push(`${e.name}`),r.push(`${e.name}`)),___default.includes(["time","date","datetime","boolean","number","currency"],e.type)&&o.push(`${e.name}`),___default.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&r.push(`${e.name}`)):(objectFieldName=e.name.split(".")[0],o.push(objectFieldName),r.push(objectFieldName));r=___default__namespace.uniq(r),o=___default__namespace.uniq(o);let a="";return n.length>0&&___default__namespace.each(n,(function(e){a+=`${e.expandInfo.fieldName}:${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`})),r.length>0?`${o.join(",")},${a},_display:_ui{${r.join(",")}}`:___default.trimEnd(`${o.join(" ")},${a}`,",")}async function getFindQuery(e,t,n,o){let r=o.limit||10,i=`(top: ${r})`;t&&(i=`(filters:["_id", "=", "${t}"], top: ${r})`);let a="data";o&&(o.alias&&(a=o.alias),o.filters&&(i=`(filters:${o.filters})`),o.queryOptions&&(i=`(${o.queryOptions})`));var s="";e.enable_tree&&___default__namespace.includes(___default__namespace.keys(e.fields),"parent")&&___default__namespace.includes(___default__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===o.count?"":`,count:${e.name}__count(filters:{__filters})`,d=o.moreQueries?.length?","+o.moreQueries.map((function(e){return e.replace(/^{/,"").replace(/}$/,"")})).join(","):"";return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${a}:${e.name}${i}{${await getFieldsTemplate(n,o.expand)}${s}${l}}${c}${d}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters}"}var frontend_field_group_generalization$1="Generalization",frontend_download$1="Download",frontend_form_save$1="Save",frontend_form_save_and_new$1="Save and New",frontend_form_cancel$1="Cancel",frontend_form_new$1="New",frontend_form_edit$1="Edit",frontend_form_preview$1="Preview",frontend_form_select$1="Select",frontend_form_please_select$1="Please select",frontend_form_confirm$1="Confirm",frontend_form_delete$1="Delete",frontend_form_view$1="view",frontend_delete_confirm_text$1="Are you sure you want to delete this item?",frontend_delete_many_selected_required$1="Please select the item to be deleted",frontend_delete_many_confirm_text$1="Are you sure you want to delete?",frontend_display_type_is_table$1="Table",frontend_display_type_is_split$1="Split View",frontend_display_as$1="Displayed as",frontend_record_sum$1="items",frontend_button_reload_tooltip$1="Refresh",frontend_button_search_tooltip$1="Search",frontend_fields_filter_button_search$1="Search",frontend_fields_filter_button_settings$1="Set search options",frontend_button_listview_control_tooltip$1="List View Controls",frontend_button_listview_control_label$1="LIST VIEW CONTROLS",frontend_listview_control_columns$1="Show List",frontend_listview_control_columns_mobile_group$1="Mobile side",frontend_listview_control_clone_label$1="Clone",frontend_listview_control_clone_title$1="Clone List View",frontend_listview_control_clone_defaultData_label_start$1="Copy of",frontend_listview_control_clone_defaultData_label_end$1="",frontend_listview_control_delete_label$1="Delete",frontend_listview_control_delete_confirm_text$1="If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?",frontend_listview_control_delete_message_success$1="Deletion successful",frontend_listview_control_filters$1="Filter settings",frontend_listview_control_filters_fields_extend$1="Conditional component 1",frontend_listview_control_new_label$1="New",frontend_listview_control_new_title$1="New List View",frontend_listview_control_new_message_success$1="Success",frontend_listview_control_new_message_failed$1="Failure",frontend_listview_control_rename_label$1="Rename",frontend_listview_control_rename_title$1="Rename List View",frontend_listview_control_share$1="Sharing Settings",frontend_listview_control_sort$1="Default sorting rule",frontend_export_excel$1="Export Excel",frontend_operation$1="Operation",frontend_import_data$1="Import data",frontend_import_data_object_name$1="Import object",frontend_import_data_queue_import$1="Data import",frontend_import_data_queue_import_description$1="Import description",frontend_import_data_queue_import_encoding$1="Character code",frontend_import_data_queue_import_template_url$1="Import template",frontend_import_data_file$1="Excel file",frontend_import_data_message_success$1="Importing has started...",frontend_import_data_message_failed$1="Import failed",frontend_record_detail_tab_detailed$1="Details",frontend_record_detail_tab_related$1="Related",frontend_all_apps$1="All apps",frontend_all_projects$1="All projects",frontend_application_launcher$1="Application launcher",frontend_menu$1="Menu",frontend_help$1="Help",frontend_setup$1="Setup",frontend_notifications$1="Notifications",frontend_notifications_allread$1="Mark all as read",frontend_notifications_allread_message$1="All marked as read",frontend_profile$1="Profile",frontend_about$1="About",frontend_log_out$1="Log out",frontend_listview_warning_start$1="The current ",frontend_listview_warning_end$1=" view does not exist!",frontend_record_detail_related_list_warning$1="Missing parent object, parent record, or related list object property!",frontend_record_detail_related_lists_warning$1="Missing parent object, or parent record property!",frontend_record_detail_related_lists_info$1="No related child tables found",frontend_calendar_listWeek$1="List",frontend_message_no_permission_to_edit$1="You don't have permission to edit this record!",frontend_message_modification_successful$1="Modification successful!",frontend_message_modification_failed$1="Modification failed!",frontend_objects_related_alert_start$1="No related table fields associated with the related list object",frontend_objects_related_alert_end$1="were found.",frontend_no_records_found$1="No records found.",frontend_records_no_allowedit$1="You do not have edit permission for this record",en_us={frontend_field_group_generalization:frontend_field_group_generalization$1,frontend_download:frontend_download$1,frontend_form_save:frontend_form_save$1,frontend_form_save_and_new:frontend_form_save_and_new$1,frontend_form_cancel:frontend_form_cancel$1,frontend_form_new:frontend_form_new$1,frontend_form_edit:frontend_form_edit$1,frontend_form_preview:frontend_form_preview$1,frontend_form_select:frontend_form_select$1,frontend_form_please_select:frontend_form_please_select$1,frontend_form_confirm:frontend_form_confirm$1,frontend_form_delete:frontend_form_delete$1,frontend_form_view:frontend_form_view$1,frontend_delete_confirm_text:frontend_delete_confirm_text$1,frontend_delete_many_selected_required:frontend_delete_many_selected_required$1,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text$1,frontend_display_type_is_table:frontend_display_type_is_table$1,frontend_display_type_is_split:frontend_display_type_is_split$1,frontend_display_as:frontend_display_as$1,frontend_record_sum:frontend_record_sum$1,frontend_button_reload_tooltip:frontend_button_reload_tooltip$1,frontend_button_search_tooltip:frontend_button_search_tooltip$1,frontend_fields_filter_button_search:frontend_fields_filter_button_search$1,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings$1,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip$1,frontend_button_listview_control_label:frontend_button_listview_control_label$1,frontend_listview_control_columns:frontend_listview_control_columns$1,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group$1,frontend_listview_control_clone_label:frontend_listview_control_clone_label$1,frontend_listview_control_clone_title:frontend_listview_control_clone_title$1,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start$1,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end$1,frontend_listview_control_delete_label:frontend_listview_control_delete_label$1,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text$1,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success$1,frontend_listview_control_filters:frontend_listview_control_filters$1,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend$1,frontend_listview_control_new_label:frontend_listview_control_new_label$1,frontend_listview_control_new_title:frontend_listview_control_new_title$1,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success$1,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed$1,frontend_listview_control_rename_label:frontend_listview_control_rename_label$1,frontend_listview_control_rename_title:frontend_listview_control_rename_title$1,frontend_listview_control_share:frontend_listview_control_share$1,frontend_listview_control_sort:frontend_listview_control_sort$1,frontend_export_excel:frontend_export_excel$1,frontend_operation:frontend_operation$1,frontend_import_data:frontend_import_data$1,frontend_import_data_object_name:frontend_import_data_object_name$1,frontend_import_data_queue_import:frontend_import_data_queue_import$1,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description$1,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding$1,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url$1,frontend_import_data_file:frontend_import_data_file$1,frontend_import_data_message_success:frontend_import_data_message_success$1,frontend_import_data_message_failed:frontend_import_data_message_failed$1,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed$1,frontend_record_detail_tab_related:frontend_record_detail_tab_related$1,frontend_all_apps:frontend_all_apps$1,frontend_all_projects:frontend_all_projects$1,frontend_application_launcher:frontend_application_launcher$1,frontend_menu:frontend_menu$1,frontend_help:frontend_help$1,frontend_setup:frontend_setup$1,frontend_notifications:frontend_notifications$1,frontend_notifications_allread:frontend_notifications_allread$1,frontend_notifications_allread_message:frontend_notifications_allread_message$1,frontend_profile:frontend_profile$1,frontend_about:frontend_about$1,frontend_log_out:frontend_log_out$1,frontend_listview_warning_start:frontend_listview_warning_start$1,frontend_listview_warning_end:frontend_listview_warning_end$1,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning$1,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning$1,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info$1,frontend_calendar_listWeek:frontend_calendar_listWeek$1,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit$1,frontend_message_modification_successful:frontend_message_modification_successful$1,frontend_message_modification_failed:frontend_message_modification_failed$1,frontend_objects_related_alert_start:frontend_objects_related_alert_start$1,frontend_objects_related_alert_end:frontend_objects_related_alert_end$1,frontend_no_records_found:frontend_no_records_found$1,frontend_records_no_allowedit:frontend_records_no_allowedit$1},frontend_field_group_generalization="通用",frontend_download="下载",frontend_form_save="保存",frontend_form_save_and_new="保存并新建",frontend_form_cancel="取消",frontend_form_new="新建",frontend_form_edit="编辑",frontend_form_preview="预览",frontend_form_select="选择",frontend_form_please_select="请选择",frontend_form_confirm="确认",frontend_form_delete="删除",frontend_form_view="查看",frontend_delete_confirm_text="确定要删除此项目?",frontend_delete_many_selected_required="请选择要删除的项",frontend_delete_many_confirm_text="确定要删除吗?",frontend_display_type_is_table="表格",frontend_display_type_is_split="分栏视图",frontend_display_as="显示为",frontend_record_sum="个项目",frontend_button_reload_tooltip="刷新",frontend_button_search_tooltip="查询",frontend_fields_filter_button_search="搜索",frontend_fields_filter_button_settings="设置搜索项",frontend_button_listview_control_tooltip="列表视图控制",frontend_button_listview_control_label="列表视图控制",frontend_listview_control_columns="显示的列",frontend_listview_control_columns_mobile_group="手机端",frontend_listview_control_clone="复制",frontend_listview_control_clone_label="复制",frontend_listview_control_clone_title="复制 列表视图",frontend_listview_control_clone_defaultData_label_start="",frontend_listview_control_clone_defaultData_label_end="的副本",frontend_listview_control_delete_label="删除",frontend_listview_control_delete_confirm_text="如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",frontend_listview_control_delete_message_success="删除成功",frontend_listview_control_filters="过滤设置",frontend_listview_control_filters_fields_extend="条件组件1",frontend_listview_control_new_label="新建",frontend_listview_control_new_title="新建 列表视图",frontend_listview_control_new_message_success="成功",frontend_listview_control_new_message_failed="失败",frontend_listview_control_rename_label="重命名",frontend_listview_control_rename_title="重命名 列表视图",frontend_listview_control_share="共享设置",frontend_listview_control_sort="默认排序规则",frontend_export_excel="导出",frontend_operation="操作",frontend_import_data="导入数据",frontend_import_data_object_name="导入对象",frontend_import_data_queue_import="数据导入",frontend_import_data_queue_import_description="导入描述",frontend_import_data_queue_import_encoding="字符代码",frontend_import_data_queue_import_template_url="导入模板",frontend_import_data_file="Excel文件",frontend_import_data_message_success="已开始导入...",frontend_import_data_message_failed="导入失败",frontend_record_detail_tab_detailed="详细",frontend_record_detail_tab_related="相关",frontend_all_apps="所有应用",frontend_all_projects="所有项目",frontend_application_launcher="应用程序启动器",frontend_menu="菜单",frontend_help="帮助",frontend_setup="设置",frontend_notifications="通知",frontend_notifications_allread="全部标记为已读",frontend_notifications_allread_message="已全部标记为已读",frontend_profile="个人资料",frontend_about="关于",frontend_log_out="注销",frontend_listview_warning_start="当前",frontend_listview_warning_end="视图不存在!",frontend_record_detail_related_list_warning="缺少父级对象、父级记录或相关列表对象属性!",frontend_record_detail_related_lists_warning="缺少父级对象或父级记录属性!",frontend_record_detail_related_lists_info="没有相关子表",frontend_calendar_listWeek="列表",frontend_message_no_permission_to_edit="您没有编辑该记录的权限!",frontend_message_modification_successful="修改成功!",frontend_message_modification_failed="修改失败!",frontend_objects_related_alert_start="未找到与相关列表对象",frontend_objects_related_alert_end="关联的相关表字段",frontend_no_records_found="无法找到记录",frontend_records_no_allowedit="您对这条记录没有编辑权限",zh_cn={frontend_field_group_generalization:frontend_field_group_generalization,frontend_download:frontend_download,frontend_form_save:frontend_form_save,frontend_form_save_and_new:frontend_form_save_and_new,frontend_form_cancel:frontend_form_cancel,frontend_form_new:frontend_form_new,frontend_form_edit:frontend_form_edit,frontend_form_preview:frontend_form_preview,frontend_form_select:frontend_form_select,frontend_form_please_select:frontend_form_please_select,frontend_form_confirm:frontend_form_confirm,frontend_form_delete:frontend_form_delete,frontend_form_view:frontend_form_view,frontend_delete_confirm_text:frontend_delete_confirm_text,frontend_delete_many_selected_required:frontend_delete_many_selected_required,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text,frontend_display_type_is_table:frontend_display_type_is_table,frontend_display_type_is_split:frontend_display_type_is_split,frontend_display_as:frontend_display_as,frontend_record_sum:frontend_record_sum,frontend_button_reload_tooltip:frontend_button_reload_tooltip,frontend_button_search_tooltip:frontend_button_search_tooltip,frontend_fields_filter_button_search:frontend_fields_filter_button_search,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip,frontend_button_listview_control_label:frontend_button_listview_control_label,frontend_listview_control_columns:frontend_listview_control_columns,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group,frontend_listview_control_clone:frontend_listview_control_clone,frontend_listview_control_clone_label:frontend_listview_control_clone_label,frontend_listview_control_clone_title:frontend_listview_control_clone_title,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end,frontend_listview_control_delete_label:frontend_listview_control_delete_label,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success,frontend_listview_control_filters:frontend_listview_control_filters,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend,frontend_listview_control_new_label:frontend_listview_control_new_label,frontend_listview_control_new_title:frontend_listview_control_new_title,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed,frontend_listview_control_rename_label:frontend_listview_control_rename_label,frontend_listview_control_rename_title:frontend_listview_control_rename_title,frontend_listview_control_share:frontend_listview_control_share,frontend_listview_control_sort:frontend_listview_control_sort,frontend_export_excel:frontend_export_excel,frontend_operation:frontend_operation,frontend_import_data:frontend_import_data,frontend_import_data_object_name:frontend_import_data_object_name,frontend_import_data_queue_import:frontend_import_data_queue_import,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url,frontend_import_data_file:frontend_import_data_file,frontend_import_data_message_success:frontend_import_data_message_success,frontend_import_data_message_failed:frontend_import_data_message_failed,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed,frontend_record_detail_tab_related:frontend_record_detail_tab_related,frontend_all_apps:frontend_all_apps,frontend_all_projects:frontend_all_projects,frontend_application_launcher:frontend_application_launcher,frontend_menu:frontend_menu,frontend_help:frontend_help,frontend_setup:frontend_setup,frontend_notifications:frontend_notifications,frontend_notifications_allread:frontend_notifications_allread,frontend_notifications_allread_message:frontend_notifications_allread_message,frontend_profile:frontend_profile,frontend_about:frontend_about,frontend_log_out:frontend_log_out,frontend_listview_warning_start:frontend_listview_warning_start,frontend_listview_warning_end:frontend_listview_warning_end,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info,frontend_calendar_listWeek:frontend_calendar_listWeek,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit,frontend_message_modification_successful:frontend_message_modification_successful,frontend_message_modification_failed:frontend_message_modification_failed,frontend_objects_related_alert_start:frontend_objects_related_alert_start,frontend_objects_related_alert_end:frontend_objects_related_alert_end,frontend_no_records_found:frontend_no_records_found,frontend_records_no_allowedit:frontend_records_no_allowedit};const resources={"en-US":{translation:en_us},"zh-CN":{translation:zh_cn}};var locale="zh-CN";async function getListBody(e,t){const n=[];for(const o of e){const e=await getFieldTpl(o,t);let r="text";e&&(r="tpl"),o.hidden||o.extra||n.push({name:o.name,label:o.label,sortable:o.sortable,width:o.width,type:r,tpl:e,toggled:o.toggled})}return{type:"hbox",columns:n}}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||10}}async function getListSchema$1(e,t){const n=(await getListBody(e,t)).columns;return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...n],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:instance.t("frontend_form_view"),type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}"undefined"!=typeof window&&("en-us"==window.Builder?.settings.locale?locale="en-US":"zh-cn"==window.Builder?.settings.locale&&(locale="zh-CN")),instance.use(initReactI18next).init({resources:resources,lng:locale,interpolation:{escapeValue:!1}});const getSchema$5=async(e,t)=>{const n=`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n "layout": "normal"\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId;\n let relatedKeySaveValue = recordId;\n const fields = ${JSON.stringify(e.fields)};\n const relatedField = fields[relatedKey];\n if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let defaultData = {}; \n let relatedKeyValue; \n if(!_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n\n return {\n data: formSchema\n };\n `,o=`\n // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口\n // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击新建按钮的时候异常\n setTimeout(function(){\n doAction({\n "actionType": "cancel",\n "componentId": "object_actions_drawer_${e.name}"\n });\n }, 200);\n `;return{type:"service",body:[{type:"button",label:instance.t("frontend_form_new"),id:"u:standard_new",level:"default",onEvent:{click:{weight:0,actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}"},title:instance.t("frontend_form_new")+" ${uiSchema.label | raw}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:n}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg",onEvent:{cancel:{actions:[{actionType:"custom",script:o,expression:"${window:innerWidth < 768}"}]}},actions:[{type:"button",actionType:"cancel",label:instance.t("frontend_form_cancel")},{type:"button",label:instance.t("frontend_form_save_and_new"),actionType:"confirm",close:!1,id:"confirmAndNew"},{type:"button",actionType:"confirm",label:instance.t("frontend_form_save"),primary:!0}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}};async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",style:{"max-height":"SMALL"===e.formFactor?"30vh":"unset"},schemaApi:{method:"post",url:"${context.rootUrl}/graphql?reload=${filterFormSearchableFields|join}",data:{$self:"$$",query:'{\n data: objects(filters: [["_id","=",null]],top: 1, skip: 0){_id}\n }'},requestAdaptor:"\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n ",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n="btn_filter_form_search_"+(new Date).getTime();return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:'\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: false });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[await getObjectFieldsFilterFormSchema(t),{type:"wrapper",body:{type:"wrapper",body:[{type:"button",id:n,label:instance.t("frontend_fields_filter_button_search"),icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n }\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n let showFieldsFilter = false;\n const isMobile = window.innerWidth < 768;\n if(event.data.__from_fields_filter_settings_confirm){\n // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n showFieldsFilter = true;\n }\n else if(isMobile){\n // 如果是手机端,点击搜索后自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(event.data.displayAs === "split") {\n // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(window.innerHeight >= 1200){\n // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n showFieldsFilter = true;\n }\n filterService.setData({showFieldsFilter});\n resizeWindow();\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。\n let filterFormValues = event.data;\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n '}]}}},{type:"button",label:instance.t("frontend_form_cancel"),name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n var listView = scope.parent.parent.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(k !== "__keywords"){\n removedValues[k] = null;\n }\n }\n }\n }\n filterForm.reset();\n listView.handleFilterSubmit(removedValues);\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100);\n // 移除搜索按钮上的红点\n let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n '}]}}},{type:"button",label:instance.t("frontend_fields_filter_button_settings"),onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:instance.t("frontend_fields_filter_button_settings"),body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = (payload.data?.options || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n "},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:instance.t("frontend_form_cancel"),onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:instance.t("frontend_form_confirm"),onEvent:{click:{actions:[{actionType:"custom",script:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n sessionStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100)\n // ===END===\n '},{actionType:"click",componentId:n,args:{__from_fields_filter_settings_confirm:!0}},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:`border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap ${!t.isLookup&&"mt-2"}`,visibleOn:"this.showFieldsFilter"},className:"bg-white"}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getNewListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_new_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_new_title"),data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1,object_name:"${targetObjectName}"},fieldsExtend:fieldsExtend$4(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}},messages:{success:instance.t("frontend_listview_control_new_message_success"),failed:instance.t("frontend_listview_control_new_message_failed")}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns","sort","filters","mobile_columns","searchable_fields","is_system","shared"]}function fieldsExtend$4(){return{label:{is_wide:!0},name:{amis:{hidden:!0,required:!1}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0,required:!1}},columns:{amis:{hidden:!0,required:!1}},mobile_columns:{amis:{hidden:!0,required:!1}},searchable_fields:{amis:{hidden:!0,required:!1}},filter_fields:{amis:{hidden:!0,required:!1}},scrolling_mode:{amis:{hidden:!0,required:!1}},sort:{amis:{hidden:!0,required:!1}},show_count:{amis:{hidden:!0,required:!1}},type:{amis:{hidden:!0,required:!1}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getCopyListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_clone_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_clone_title"),data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:instance.t("frontend_listview_control_clone_defaultData_label_start")+" ${list_view.label} "+instance.t("frontend_listview_control_clone_defaultData_label_end"),shared:!1},fieldsExtend:fieldsExtend$3(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared"]}function fieldsExtend$3(){return{label:{is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_rename_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_rename_title"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_share"),disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_share"),data:{recordId:"${uiSchema.list_views[listName]._id}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["shared"]}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}}),getSetListviewFiltersButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_filters"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_filters"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{visible_on:"true",amis:{type:"condition-builder",label:instance.t("frontend_listview_control_filters_fields_extend"),source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_columns"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:instance.t("frontend_listview_control_columns"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{group:instance.t("frontend_listview_control_columns_mobile_group"),amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns?.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_sort"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_sort"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort?.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_delete_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:instance.t("frontend_listview_control_delete_confirm_text"),onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:instance.t("frontend_listview_control_delete_message_success")},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${!isLookup}",buttons:[{label:instance.t("frontend_button_listview_control_label"),children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e),o=[{type:"button",label:instance.t("frontend_display_type_is_table"),onClick:"const key = 'tab_"+e+'_display\';localStorage.setItem(key, \'grid\');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:instance.t("frontend_display_type_is_split"),onClick:"const key = 'tab_"+e+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}];return"split"===n?instance.t("frontend_display_type_is_split"):instance.t("frontend_display_type_is_table"),{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup}",buttons:[{label:instance.t("frontend_display_as"),children:o}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\nlet resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n}\nresizeWindow();\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById("service_listview_" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n// direction: "down", \n// name: "btn_filter_form_cancel" \n// });\n// buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n';function getObjectHeaderToolbar(e,t,n,{showDisplayAs:o=!1,hiddenCount:r=!1,headerToolbarItems:i,filterVisible:a=!0}={}){const s=[];_.each(t,(function(e){e.searchable&&s.push(e.label)}));const l=location.pathname+"/crud";let c=sessionStorage.getItem(l),d="";c&&(c=JSON.parse(c),d=c&&c.__keywords||"");if(window.innerWidth<768&&!1,"SMALL"===n){const t='\n const scope = event.context.scoped;\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n ';return[...i||[],r?{}:{type:"tpl",tpl:"${count} "+instance.t("frontend_record_sum")},{type:"button",align:"right",tooltipPlacement:"top",className:"bg-white p-2 rounded border-gray-300 text-gray-500",label:"",icon:"fa fa-sync",visibleOn:"${!showFieldsFilter}",onEvent:{click:{actions:[{actionType:"custom",script:t}]}}},a?{label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-search",type:"button",tooltipPlacement:"top",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false}"},align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},getDisplayAsButton(e?.name)]}return[...i||[],"bulkActions",{type:"columns-toggler",className:"hidden"},r?{}:{type:"tpl",tpl:"${count} "+instance.t("frontend_record_sum")},a?{label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-filter",type:"button",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false}"},align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},{type:"reload",align:"right",tooltip:"",tooltipPlacement:"top",className:"bg-white p-2 rounded border-gray-300 text-gray-500"},e?.permissions?.allowCreateListViews?getSettingListviewToolbarButtonSchema():{},getDisplayAsButton(e?.name),{type:"tooltip-wrapper",align:"right",title:"",content:"可模糊搜索字段:"+s.join(","),placement:"bottom",tooltipTheme:"dark",trigger:"click",className:"mr-1",body:[{type:"search-box",name:"__keywords",placeholder:"请输入关键字",value:d,clearable:!0,clearAndSubmit:!0}]}]}function getObjectFooterToolbar(e,t,n){return"SMALL"===t?["load-more"]:n&&n.isRelated?["statistics","pagination"]:["switch-per-page","statistics","pagination"]}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)]}}async function getSource(e,t){const n=t.objectName,o=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});o.query=o.query.replace(/,count\:.+/,"}");const r=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"});r.query=r.query.replace(/,count\:.+/,"}"),o.query=o.query.replace(/}$/,","+r.query.replace(/{(.+)}/,"$1}"));let i=`${e.name}`;e._prefix&&(i=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(i=`${t.fieldNamePrefix}${i}`),o.$value=`$${i}`,o.$="$$";const a=`\n var filters = [['parent', '=', null]];\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:a,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:o,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName,o=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let r=e.filters;"string"==typeof r&&(r=new Function(`return ${r}`),r=r()),"function"==typeof r&&(r=r(e)),o.query=o.query.replace(/,count\:.+/,"}"),o.query=o.query.replace("{_id}","{{__fields}}");const i=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n fields = "_id,value:${t.valueField},label:${t.labelField},children";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:i,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:o,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){const t=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const o={type:getAmisStaticFieldType("tree-select",t)};if(t)o.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(o,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(o,{joinValues:!1}),"boolean"!=typeof o.searchable&&(o.searchable=!0);const r=e.onEvent;r&&(o.onEvent=r)}return o}const getReferenceTo=async e=>{let t=e.reference_to;if(!t)return;"users"===t&&(t="space_users",e.reference_to_field="user");const n=await getUISchema(t);if(!n)return null;let o=null,r=e.reference_to_field;return r||(r=n.idFieldName||"_id"),o="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:n.fields[r]||{name:r},{objectName:t,valueField:o,labelField:n.fields[n.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:n.NAME_FIELD_KEY||"name"}};function getLookupSapceUserTreeSchema(){return[{type:"input-tree",className:"",inputClassName:"p-0",id:"u:7fd77b7915b0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",requestAdaptor:"\n ",data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n '}]}},label:"",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0,placeholder:"查找部门"},unfoldedLevel:2,style:{"max-height":"100%",position:"absolute",left:"-220px",width:"210px",bottom:0,top:"0",overflow:"auto","min-height":"300px"},originPosition:"left-top"}]}async function lookupToAmisPicker(e,t,n){let o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName);n.idFieldName=r.idFieldName,n.objectName=r.name;let i=[],a=0;const s=[],l=[],c=window.innerWidth<768,d=___default__namespace.find(r.list_views,((e,t)=>"all"===t));d&&d.columns?___default__namespace.each(d.columns,(function(e){___default__namespace.isString(e)&&r.fields[e]?l.push(r.fields[e]):___default__namespace.isObject(e)&&r.fields[e.field]&&l.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}))})):___default__namespace.each(r.fields,((e,t)=>{"_id"==t||e.hidden||(___default__namespace.has(e,"name")||(e.name=t),l.push(e))})),___default__namespace.each(___default__namespace.sortBy(l,"sort_no"),(function(e){a<5&&(___default__namespace.find(i,(function(t){return t.name===e.name}))||(a++,i.push(e),e.searchable&&s.push(e.name)))}));const u={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField};___default__namespace.each(i,(e=>{e.hidden||(u[e.name]=e)}));let p="";d&&(p=getListViewSort(d));const f=await getApi$1(r,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(f.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(f.url=`${f.url}?${t.join("&")}`,f.sendOn=`${n.join(" && ")}`)}f.data.$term="$term",f.data.$self="$$",f.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${p}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${"space_users"===o?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, "contains", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, "=", keyValue]);\n }\n })\n }\n\n if(selfData.__keywords && allowSearchFields){\n const keywordsFilters = [];\n allowSearchFields.forEach(function(key, index){\n const keyValue = selfData.__keywords;\n if(keyValue){\n keywordsFilters.push([key, "contains", keyValue]);\n if(index < allowSearchFields.length - 1){\n keywordsFilters.push('or');\n }\n }\n })\n filters.push(keywordsFilters);\n };\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${r.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,f.adaptor=`\n const enable_tree = ${r.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${o.labelField.name}", "${o.valueField.name}"]);\n })\n payload.data.rows = rows;\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(f.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let m=20;r.paging&&!1===r.paging.enabled&&(m=1e3);let h=null;if("SMALL"===n.formFactor)h=await getListSchema$1(i,{top:m,...n,actions:!1});else{h=await getTableSchema$1(i,{labelFieldName:r.NAME_FIELD_KEY,top:m,isLookup:!0,...n}),h.affixHeader=!1;var g=[];"space_users"!==o.objectName||"user"!==e.reference_to_field||c||(g=getLookupSapceUserTreeSchema(),h.style={"margin-left":"220px","min-height":"300px"},h.className=h.className||" steedos-select-user"),h.headerToolbar=getObjectHeaderToolbar(r,n.formFactor,{headerToolbarItems:g});if(r.permissions.allowCreate){const e=await getSchema$5(r,{appId:n.appId,objectName:r.name,formFactor:n.formFactor});e.align="right",h.headerToolbar.splice(h.headerToolbar.length-1,0,e)}h.footerToolbar=r.enable_tree?[]:getObjectFooterToolbar(),!1!==n.filterVisible&&(h.filter=await getObjectFilter(r,u,{isLookup:!0,...n})),h.data=Object.assign({},h.data,{"&":"$$",objectName:r.name,uiSchema:r,listName:"all",isLookup:!0}),h.onEvent||(h.onEvent={}),h.onEvent[`@data.changed.${r.name}`]={actions:[{actionType:"reload"},{actionType:"custom",script:`\n const masterRecord = event.data._master?.record;\n const fieldConfig = ${JSON.stringify(e)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。\n const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(n)};\n const componentId = ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `}]}}e.pickerSchema&&(h=Object.assign({},h,e.pickerSchema));const _={type:getAmisStaticFieldType("picker",t),modalTitle:instance.t("frontend_form_please_select")+" "+r.label,labelField:o.labelField.name,valueField:o.valueField.name,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || (this.relatedKey ==='${e.name}') )`,modalMode:"dialog",source:f,size:"lg",pickerSchema:h,joinValues:!1,extractValue:!0};return e.multiple&&(_.multiple=!0,_.extractValue=!0),t&&(_.tpl=await getLookupTpl(e,n)),_}async function lookupToAmisSelect(e,t,n){let o=await getReferenceTo(e);const r=o&&o.valueField?.name||"_id";let i;if(o){const e=await getFindQuery({name:o.objectName},null,[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.valueField,{alias:"value"})],{alias:"defaultValueOptions",filters:"{__options_filters}",count:!1});i=await getApi$1({name:o.objectName},null,[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.valueField,{alias:"value"})],{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"',moreQueries:[e.query]}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};const a=o&&await getUISchema(o.objectName),s=a&&___default__namespace.find(a.list_views,((e,t)=>"all"===t));let l="";if(s&&(l=getListViewSort(s)),i.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(i.url=`${i.url}?${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,___default__namespace.each(e.depend_on,(function(e){i.data[e]=`$${e}`})),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [["${o?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n if(${"space_users"===o?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${l}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${r}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${r}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,o&&o.labelField.name,o&&o.valueField.name,e.optionsFunction||e._optionsFunction?i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `:e.options&&(i.adaptor=`\n var options = ${JSON.stringify(e.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const c={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || (this.relatedKey ==='${e.name}') )`,source:i,autoComplete:i,searchable:!0};return c.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}",e.multiple&&(c.multiple=!0,c.extractValue=!0),t&&(c.tpl=await getLookupTpl(e,n)),c}async function getApi$1(e,t,n,o){const r=await getFindQuery(e,t,n,o);return{method:"post",url:getApi$2(),data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!___default__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:n};let o=await getReferenceTo(e);if(!o)return await lookupToAmisSelect(e,t,n);if("space_users"===o.objectName&&"user"===e.reference_to_field&&(n.idsDependOn||e.amis))return await lookupToAmisIdsPicker(e,t,n);const r=await getUISchema(o.objectName);return 1==r.enable_enhanced_lookup&&___default__namespace.isEmpty(e.depend_on)?await lookupToAmisPicker(e,t,n):r.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:o.labelField?.name||"name",valueField:o.valueField?.name||"_id",objectName:o.objectName})):await lookupToAmisSelect(e,t,n)}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName),{idsDependOn:i}=n,a={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField},s=[o.labelField],l=await getApi$1(r,null,a,{expand:!0,alias:"rows",queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}"});l.data.$term="$term",l.data.$self="$$",i&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${i} && ${i}.length}`,l.url=`${l.url}&depend_on_${i}=\${${i}|join}`),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${o.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${o.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${i}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${o.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip);\n return api;\n `;let c=null;"SMALL"===n.formFactor?c=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(c=await getTableSchema$1(s,{labelFieldName:r.NAME_FIELD_KEY,top:1e3,...n}),c.affixHeader=!1);const d={type:getAmisStaticFieldType("picker",t),labelField:o.labelField.name,valueField:o.valueField.name,modalMode:"dialog",source:l,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || (this.relatedKey ==='${e.name}') )`,size:"lg",pickerSchema:c,joinValues:!1,extractValue:!0};return e.multiple&&(d.multiple=!0,d.extractValue=!0),n.value&&(d.value=n.value),null!=n.selectFirst&&(d.selectFirst=n.selectFirst),t&&(d.tpl=await getLookupTpl(e,n)),d}const getMarkdownFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}}:{type:"control",label:e.label,body:[{type:"tabs",tabsMode:"strong",className:"steedos-markdown",tabs:[{title:instance.t("frontend_form_edit"),tab:[{type:"editor",name:e.name,language:"markdown"}]},{title:instance.t("frontend_form_preview"),tab:[{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]}]}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"html",name:e.name}}:{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",name:e.name},AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,n){return t?___default__namespace.includes(["text","image"],e)?"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"url"===e?"input-url":"static":___default__namespace.includes(AmisFormInputs,e)?`input-${e}`:"location"===e?"location-picker":e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{const t=e.type,n=getAmisFieldType$1(e,!0);return _.includes(["avatar","image"],t)?{type:n,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:n,tpl:`\n <% let fileData = data._display.${e.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",url:`\${context.rootUrl}/s3/${t}`,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0),n},getAmisFileSchema=(e,t)=>t?getAmisFileReadonlySchema(e):getAmisFileEditSchema(e),OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`)&&___default__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return ___default__namespace.each(e.options,(e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value),icon:e.icon});break;case"text":n.push({label:e.label,value:String(e.value),icon:e.icon});break;case"boolean":n.push({label:e.label,value:"false"!==e.value,icon:e.icon})}})),n}async function convertSFieldToAmisField(e,t,n){const o=window.innerWidth<=768;if(___default__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const r={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,required:___default__namespace.has(n,"required")?n.required:e.required};let i={};switch(e.type){case"text":i.type=getAmisStaticFieldType("text",t);break;case"textarea":i.type=getAmisStaticFieldType("textarea",t),i.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":i=getHtmlFieldSchema(e,t);break;case"markdown":i=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);i={type:"static-mapping",name:e.name,label:e.label,map:t}}else{i={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"};const n="<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>";i.menuTpl="${icon ? `"+n+"` : label}",e.multiple&&(i.multiple=!0,i.extractValue=!0)}break;case"boolean":i={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1};break;case"date":i=o&&!t?{type:"native-date",pipeIn:(e,t)=>e?e=moment(e).utc().format("YYYY-MM-DD"):"",pipeOut:(e,t,n)=>e?e=moment(e).format("YYYY-MM-DDT00:00:00.000[Z]"):""}:{type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1};break;case"datetime":i=o&&!t?{type:"combo",pipeIn:(t,n)=>{let o={};return t&&"Invalid date"!=t?(t=moment(t).format("YYYY-MM-DD HH:mm:ss"),o[e.name+"-native-date"]=t.split(" ")[0],o[e.name+"-native-time"]=t.split(" ")[1]):(o[e.name+"-native-date"]="",o[e.name+"-native-time"]=""),o},pipeOut:(t,n,o)=>{let r="";return t[e.name+"-native-date"]&&t[e.name+"-native-time"]&&(r=t[e.name+"-native-date"]+" "+t[e.name+"-native-time"],r=moment(r).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")),r},items:[{type:"native-date",name:e.name+"-native-date",className:"steedos-native-date",value:""},{type:"native-time",name:e.name+"-native-time",className:"steedos-native-time",value:""}]}:{type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":i=o&&!t?{type:"native-time",pipeIn:(e,t)=>e?e=moment(e).utc().format("HH:mm"):"",pipeOut:(e,t,n)=>e?e=moment("1970-01-01 "+e).format("1970-01-01THH:mm:00.000[Z]"):""}:{type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,r);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i=t?{type:"static-tpl",tpl:getUiFieldTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":i=await lookupToAmis(e,t,n);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:getAmisStaticFieldType("url",t,e),static:!!t},t&&e.show_as_qr&&(i={type:"control",label:e.label,body:{type:"qr-code",codeSize:128,name:e.name}});break;case"email":i={type:getAmisStaticFieldType("email",t)};break;case"location":let a="LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",s="baidu";if(window.Meteor){const e=Meteor.settings?.public?.amis?.map_ak;e&&(a=e);const t=Meteor.settings?.public?.amis?.map_vendor;t&&(s=t)}const l=e.coordinatesType||"bd09";i={type:getAmisStaticFieldType("location",t),tpl:t?getLocationTpl(e):null,ak:a,vendor:s,clearable:!0,coordinatesType:l,label:e.label,pipeOut:(e,t,n)=>{if(e){const t=e.lng,n=e.lat;let o=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);o=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(o=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:o},e}}};break;case"avatar":case"image":case"file":i=getAmisFileSchema(e,t);break;case"formula":case"summary":t&&(i={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":i={type:"editor",disabled:!!t,language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){i={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const o of e.subFields){const r=o.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),a=await convertSFieldToAmisField(Object.assign({},o,{name:r,isTableField:!0}),t,n);if(a){delete a.name,delete a.label;const e={name:r,label:o.label,quickEdit:!t&&a};"lookup"===o.type&&(e.type=a.type,e.tpl=a.tpl),i.columns.push(Object.assign({},e,o.amis,{name:r}))}}}break;case"object":if(e.subFields){i={type:"combo",items:[]};for(let o of e.subFields){let r=o.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===o.type?o=await getGridFieldSubFields(o,n.__formFields):t&&(r=`${e.name}.${r}`);const a=await convertSFieldToAmisField(Object.assign({},o,{name:r}),t,n);a&&(delete a.name,delete a.label,i.items.push(Object.assign({},a,{label:o.label},o.amis,{name:r})))}}}if(!___default__namespace.isEmpty(i)){e.is_wide||"group"===i.type?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=`${i.className} md:border-b`),t&&(i.quickEdit=!1);let o=" steedos-"+i.type+(t?"-readonly":"-edit");return i.className?i.className=i.className+o:i.className=o,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?i.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:i.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),___default__namespace.isString(r.required)&&r.required.startsWith("{{")&&(r.requiredOn=`${r.required.substring(2,r.required.length-2).replace(/formData./g,"data.")}`,delete r.required),"group"===i.type?(i.body[0]=Object.assign({},r,i.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),i):Object.assign({},r,i,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:r.name})}}async function getFieldSearchable(e,t,n){n||(n={});let o=e;"grid"===o.type?o=await getGridFieldSubFields(e,t):"object"===e.type&&(o=await getObjectFieldSubFields(e,t));let r="__searchable__";if(o.name.indexOf(".")<0){let e=___default.cloneDeep(o);___default.includes(["textarea","html","code","autonumber"],o.type)&&(e.type="text"),___default.includes(["formula","summary"],o.type)?(e.type=o.data_type,e.precision=o.precision,e.scale=o.scale):"select"===o.type&&o.data_type&&"text"!=o.data_type&&(e.type=o.data_type),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,r=`${r}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,r=`${r}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,r=`${r}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,r=`${r}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,e.required=!1,e.hidden=!1,e.omit=!1,e.amis&&(delete e.amis.static,delete e.amis.staticOn,delete e.amis.disabled,delete e.amis.disabledOn,delete e.amis.required,delete e.amis.requiredOn,delete e.amis.visible,delete e.amis.visibleOn,delete e.amis.hidden,delete e.amis.hiddenOn,delete e.amis.autoFill);const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:r,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!___default__namespace.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};async function getQuickEditSchema(e,t){const n=t.objectName+"_"+e.name+"QuickEdit";var o={body:[],id:n};if(e.disabled)o=!1;else{var r=await convertSFieldToAmisField(e,!1,___default__namespace.omit(t,"buttons"));if(r){o.body.push(r);var i="";o.body[0].onEvent={};const s=function(e){return{actions:[{actionType:"custom",script:`\n var _display = event.data._display;\n ${e}\n doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${n}"});\n `}]}};switch(e.type){case"lookup":case"master_detail":let t=o.body[0].labelField||"label",n=o.body[0].valueField||"value";i=e.multiple?`\n const preData = event.data.__super.${e.name};\n if(preData && event.data.${e.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${e.name}, item) == -1) _display["${e.name}"].splice(index, 1);\n })\n }else{\n _display["${e.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${n}: val });\n _display["${e.name}"].push(\n {\n "label": item.${t},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${e.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${e.name}"] = {\n "label": event.data.selectedItems.${t},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${e.reference_to}"\n }\n }else{\n _display["${e.name}"] = {}\n }\n `,o.body[0].onEvent.change=s(i);break;case"select":i=`\n _display["${e.name}"] = event.data.selectedItems.label;\n `,o.body[0].onEvent.change=s(i);break;case"percent":i=`\n _display["${e.name}"] = (event.data.value * 100).toFixed(${e.scale}) + '%';\n `,o.body[0].onEvent.change=s(i);break;case"time":i=`\n _display["${e.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,o.body[0].onEvent.change=s(i);break;case"date":i=`\n _display["${e.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,o.body[0].onEvent.change=s(i);break;case"datetime":i=`\n _display["${e.name}"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `,o.body[0].onEvent.change=s(i);break;case"boolean":i=`\n _display["${e.name}"] = event.data.value?"√":"";\n `,o.body[0].onEvent.change=s(i);break;case"number":case"currency":i=`\n _display["${e.name}"] = event.data.value?.toFixed(${e.scale});\n `,o.body[0].onEvent.change=s(i);break;case"file":var a="";e.multiple?(i=`\n _display["${e.name}"].push({\n "name": event.data.result.name,\n "url": event.data.result.url,\n "type": event.data.item.type,\n "size": event.data.item.size\n });\n `,a=`\n _.remove(_display["${e.name}"], function(file){return file.url == event.data.item.url});\n `):(i=` \n _display["${e.name}"] = {\n "name": event.data.result.name,\n "url": event.data.result.url,\n "type": event.data.item.type,\n "size": event.data.item.size\n };\n `,a=`\n if(_display["${e.name}"].url == event.data.item.url){\n _display["${e.name}"] = {};\n }\n `),o.body[0].onEvent.success=s(i),o.body[0].onEvent.remove=s(a);break;case"avatar":case"image":o.body[0].receiver.adaptor=`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${e.type}s/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `}o.body[0].visibleOn="${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",o.body.push({type:"service",body:[{type:"tpl",tpl:instance.t("frontend_records_no_allowedit"),visibleOn:"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}"},{type:"spinner",showOn:"${quickedit_record_permissions_loading}"}],onEvent:{init:{actions:[{actionType:"setValue",componentId:`service_listview_${t.objectName}`,args:{value:{quickedit_record_permissions_loading:!0}}},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},cache:3e4,messages:{failed:"失败了呢。。"}}}},{actionType:"setValue",componentId:`service_listview_${t.objectName}`,args:{value:{quickedit_record_permissions_loading:!1}}},{actionType:"setValue",componentId:`service_listview_${t.objectName}`,args:{value:{quickedit_record_permissions:"${event.data}"}}}]}}})}else o=!1;"file"==e.type&&e.multiple&&(o=!1),"location"==e.type&&(o=!1)}return o}function getFieldWidth(e){return"string"==typeof e?isNaN(e)?e:Number(e):"number"==typeof e?e:"unset"}async function getTableColumns(e,t){const n=[{name:"_index",type:"text",width:32,placeholder:""}],o=t.permissions?.allowEdit&&!t.isLookup&&0!=t.enable_inline_edit;for(const r of e){const e=o?await getQuickEditSchema(r,t):o;let i,a="";if(1!=r.wrap&&(a+=" whitespace-nowrap"),!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)i=Object.assign({},{type:"switch",name:r.name,label:r.label,width:getFieldWidth(r.width),toggled:r.toggled,static:!0,className:a},r.amis,{name:r.name});else if("avatar"===r.type||"image"===r.type||"file"===r.type)i=Object.assign({},{type:"switch",name:r.name,label:r.label,width:getFieldWidth(r.width),toggled:r.toggled,static:!0,className:a,...getAmisFileReadonlySchema(r)},r.amis,{name:r.name});else if("select"===r.type){const e=getSelectMap(r.options);i=Object.assign({},{type:"mapping",name:r.name,label:r.label,map:e,sortable:r.sortable,width:getFieldWidth(r.width),toggled:r.toggled,className:a,static:!0},r.amis,{name:r.name})}else{const e=await getFieldTpl(r,t);let n="text";e?n="tpl":"html"===r.type?n="markdown":"url"===r.type&&(n=r.show_as_qr?"qr-code":"input-url"),"textarea"===r.type&&(a+="min-w-56"),r.hidden||r.extra||(i=Object.assign({},{name:r.name,label:r.label,sortable:r.sortable,width:getFieldWidth(r.width),type:n,tpl:e,toggled:r.toggled,className:a,static:!0,options:"html"===r.type?{html:!0}:null},r.amis,{name:r.name}))}else{const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${r.label}";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `;i={type:"button",label:`<%=data.versions ? data.name : "${r.label}"%>`,className:a,level:"link",onEvent:{click:{actions:[{args:{api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download",expression:"!!!window?.nw?.require"},{args:{},actionType:"custom",script:e,expression:"!!window?.nw?.require"}]}}}}i&&(e&&(i.quickEdit=e,i.quickEditEnabledOn="${is_system !== true}"),n.push(i))}if(!___default__namespace.some(n,{name:t.labelFieldName})){const e=Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`});n[0].type="tpl",n[0].tpl=`<a href="${e}">\${${n[0].name}}</a>`}return n}function getMobileLines(e){let t=[],n=[],o=!1,r=!0,i="",a="flex items-center justify-between h-[20px]";return e.forEach((function(e){o&&t.length<2&&(t.push({type:"wrapper",body:n,size:"none",className:a}),n=[]),r?(i="steedos-listview-item-left truncate",e.field.is_wide&&(i="steedos-listview-item-wide truncate"),0===t.length&&(i+=" font-bold text-gray-800")):i="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",n.push({type:"tpl",tpl:e.tpl,className:i}),e.field.is_wide?(r=!0,o=!0):(r=!r,o=r)})),n.length&&t.length<2&&t.push({type:"wrapper",body:n,size:"none",className:a}),t}async function getMobileTableColumns(e,t){const n=[];let o={},r=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(o=n,t.onlyDisplayLabel=!0,e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t.onlyDisplayLabel=!0),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||r.push({field:n,tpl:e})}const i=getNameTplUrl(o,t),a=getMobileLines(r);let s={name:o.name,label:o.label,sortable:o.sortable,type:"button",level:"link",actionType:"link",link:i,innerClassName:{"steedos-listview-item block text-gray-500":"true","max-w-[360px]":"${display == 'split'}"},body:{type:"wrapper",body:a,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(s=window.Meteor?.isCordova?{...s,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"\n Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...s,actionType:"",link:"",onEvent:{click:{actions:[{args:{api:{url:i,method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}],weight:0}}}),n.push(s),n}function getDefaultParams(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn(e){let t=e.visible;if(e._visible&&(t=e._visible),___default.isBoolean(t)&&(t=t.toString()),t)return t.trim().startsWith("function")?`${t}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`:t;if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(___default.each(t,(e=>{___default.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:"antd-Button--default"})})),!(n.length<1))return{type:"operation",label:instance.t("frontend_operation"),fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",requestAdaptor:"api.data={}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getTableSchema$1(e,t){let n=t&&t.isLookup;t||(t={});let o=[];return"SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1?o=await getMobileTableColumns(e,t):(o=await getTableColumns(e,t),n||o.push(await getTableOperation(t))),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:!1,defaultParams:getDefaultParams(t),columns:o,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>___default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?___default.isEmpty(e.mobile_columns)?___default.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&___default.each(e.sort,(function(e,n){if(___default.isArray(e)){let o=e[0]+" "+(e[1]||"");o=n>0?","+o:o,t+=o}else{let o=e.field_name+" "+e.order;o=n>0?","+o:o,t+=o}})),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(___default__default.default.isEmpty(n))n=[["owner","=",t]];else{if(___default__default.default.isString(n)&&___default__default.default.startsWith(___default__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!___default__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),___default.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&___default__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),___default.each(uiSchema.list_views,((e,t)=>{e.name=t,___default.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;n=await fetchAPI(t,{method:"get"})}if(!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function getUISchemaSync(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(n=Steedos.authRequest(t,{type:"GET",async:!1}),!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,o={}){const r=await getUISchema(t);if(!r)return{};const i=___default.find(r.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!i)return{uiSchema:r};if(i.enable_amis_schema&&i.amis_schema){return{uiSchema:r,isCustomAmisSchema:!0,amisSchema:___default.isString(i.amis_schema)?JSON.parse(i.amis_schema):i.amis_schema}}let a=getListViewColumns(i,o.formFactor),s=getListViewSort(i),l=getListViewFilter(i),c=i&&i._filters;if("calendar"===i.type){return{uiSchema:r,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...i.options}}}const d=o.defaults||{};d.headerSchema=null;try{const e=location.pathname+"/crud/"+(n||"");let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),d.listSchema=___default.defaultsDeep({},e,d.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}o.defaults=d,"recent"==n&&(c='\n function(filters, data) {\n var result = Steedos.authRequest(\'/graphql\', {\n type: \'POST\',\n async: false,\n data: JSON.stringify({\n query: \'{object_recent_viewed(filters: [["record.o","=","\' + data.objectName + \'"],["space","=","\' + data.context.tenantId + \'"],["owner","=","\' + data.context.userId + \'"]],sort:"modified desc",top:50){ _id,record} }\'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return ["_id", "=", _ids];\n }\n ');return{uiSchema:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:a,extraColumns:i.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:o,requestAdaptor:i.requestAdaptor,adaptor:i.adaptor,headerToolbarItems:o.headerToolbarItems,filterVisible:o.filterVisible,rowClassNameExpr:o.rowClassNameExpr}}}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync,window.getListSchema=getListSchema);var __assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},__assign.apply(this,arguments)};function createObject(e,t,n){e&&Object.isFrozen(e)&&(e=cloneObject(e));var o=e?Object.create(e,__assign(__assign({},n),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,n);return t&&isObject(t)&&Object.keys(t).forEach((function(e){return o[e]=t[e]})),o}function cloneObject(e,t){void 0===t&&(t=!0);var n=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return n[t]=e[t]})),n}function isObject(e){var t=typeof e;return e&&"string"!==t&&"number"!==t&&"boolean"!==t&&"function"!==t&&!Array.isArray(e)}var Flow=function(e){var t=e.dispatchEvent,n=e.config,o=e.backgroundConfig;__rest(e,["dispatchEvent","config","backgroundConfig"]),console.log("Flow render start with config:",n);var r=require$$0.useRef(!0),i=useReactFlow(),a=__read(useNodesState(n.nodes||n.defaultNodes),2),s=a[0],l=a[1],c=__read(useEdgesState(n.edges||n.defaultEdges),2),d=c[0],u=c[1],p=require$$0.useCallback((function(e){return u((function(t){return addEdge(e,t)}))}),[]),f=require$$0.useCallback((function(e){l((function(t){return applyNodeChanges(e,t)})),t("nodesChange",{changes:e,nodes:s,setNodes:l,edges:d,setEdges:u,applyNodeChanges:applyNodeChanges,reactFlowInstance:i})}),[l]),m=require$$0.useCallback((function(e){u((function(t){return applyEdgeChanges(e,t)})),t("edgesChange",{changes:e,nodes:s,setNodes:l,edges:d,setEdges:u,applyEdgeChanges:applyEdgeChanges,reactFlowInstance:i})}),[u]),h=require$$0.useCallback((function(){t("edgeUpdateStart",{edgeUpdateSuccessful:r})}),[]),g=require$$0.useCallback((function(e,n){u((function(t){return updateEdge(e,n,t)})),t("edgeUpdate",{oldEdge:e,newConnection:n,setEdges:u,updateEdge:updateEdge,edgeUpdateSuccessful:r,reactFlowInstance:i})}),[]),_=require$$0.useCallback((function(e,n){t("edgeUpdateEnd",{_:e,edge:n,edgeUpdateSuccessful:r,reactFlowInstance:i})}),[]);return useOnSelectionChange({onChange:function(e){var n=e.nodes,o=e.edges;t("selectionChange",{nodes:n,setNodes:l,edges:o,setEdges:u,reactFlowInstance:i})}}),setTimeout((function(){t("getInstance",{reactFlowInstance:i})}),100),require$$0__default.default.createElement(ReactFlow,__assign$1({},n,{nodes:s,edges:d,onNodesChange:f,onEdgesChange:m,onConnect:p,onEdgeUpdateStart:h,onEdgeUpdate:g,onEdgeUpdateEnd:_}),!1===o?null:require$$0__default.default.createElement(Background$1,__assign$1({},o)),require$$0__default.default.createElement(Controls$1,null))},AmisReactFlow=function(e){var t=e.dispatchEvent,n=e.wrapperClassName,o=void 0===n?"w-full h-full":n,r=e.data;e.env,e.store,e.topStore,e.rootStore,e.scope,e.id,e.render,e.getValue,e.setValue,e.value;var i=e.config,a=e.backgroundConfig,s=__rest(e,["dispatchEvent","wrapperClassName","data","env","store","topStore","rootStore","scope","id","render","getValue","setValue","value","config","backgroundConfig"]);s.data||(s.data={});var l=require$$0.useRef();console.log("AmisReactFlow render start with config:",i,a);var c={};if("string"==typeof i)try{c=JSON.parse(i)}catch(e){console.log(e)}"object"==typeof i&&(c=i);var d={};if("string"==typeof a)try{d=JSON.parse(a)}catch(e){console.log(e)}else"object"==typeof a?d=a:!1===a&&(d=!1);var u=s.onDataFilter,p=s.dataFilter;u||"string"!=typeof p||(u=new Function("config","ReactFlow","data",p));try{u&&(c=u(c,window.ReactFlow,r)||c)}catch(e){console.warn(e)}var f=require$$0__default.default.createElement(ReactFlowProvider,__assign$1({},s),require$$0__default.default.createElement("div",{className:"steedos-react-flow "+o},require$$0__default.default.createElement(Flow,{dispatchEvent:function(e,n){return __awaiter(void 0,void 0,void 0,(function(){var o,i;return __generator(this,(function(a){switch(a.label){case 0:return t?[4,t(e,n?createObject(r,n):r,l.current)]:[2];case 1:return o=a.sent(),[2,null!==(i=null==o?void 0:o.prevented)&&void 0!==i&&i]}}))}))},config:c,backgroundConfig:d})));return l.current=f,f};"undefined"==typeof window&&(window.ReactFlow=ReactFlow),exports.AmisReactFlow=AmisReactFlow,exports.ReactFlow=ReactFlow,Object.defineProperty(exports,"__esModule",{value:!0})}));
|